设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3106|回复: 2
打印 上一主题 下一主题

[已经解决] 游戏做出来太大了

[复制链接]

Lv1.梦旅人

梦石
0
星屑
116
在线时间
21 小时
注册时间
2018-9-18
帖子
2
跳转到指定楼层
1
发表于 2018-12-8 23:24:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
请教各位大佬,
很多va自带的音乐或者素材其实用不到,要怎么才能删掉?

Lv5.捕梦者

梦石
10
星屑
39440
在线时间
1914 小时
注册时间
2010-11-14
帖子
3315

R考场第七期纪念奖

2
发表于 2018-12-8 23:51:14 | 只看该作者
导出前的话,因为是直接关联RTP所以并不会在你的文件夹里占位置。
如果完全不用RTP的话(虽然这种情况不多),发布游戏的时候就不要勾选RTP就好
当然建议还是勾上……不带RTP的话不安装RM就玩不了

VA好像有自动拷贝RTP素材的脚本,可以搜索一下看看。
用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
1
星屑
14504
在线时间
2086 小时
注册时间
2017-9-28
帖子
662
3
发表于 2018-12-9 01:19:50 | 只看该作者
  1. =begin
  2. #==============================================================================
  3. ** 素材检查器
  4. Author: Hime
  5. Date: May 5, 2013
  6. ------------------------------------------------------------------------------
  7. ** Change log
  8. Feb 11, 2015
  9.    - added support for listing unused resources
  10. May 5, 2013
  11.    - added move routes
  12. Aug 2, 2012
  13.    - added support for VX
  14. Jul 27, 2012
  15.    - initial release
  16. ------------------------------------------------------------------------------   
  17. ** 说明

  18. 本脚本会检查所有数据文件夹,并告诉你,你的游戏使用了哪些图片和音频.

  19. 检查的原理很简单:检查你的数据库、地图事件,其中包含的素材就是你使用的素材 .

  20. 此外, 还可以告诉你哪些素材存在于你的工程文件夹中,却没有使用于游戏(未使用到的
  21. 素材)

  22. 本脚本的功能不适用于那些引用RTP素材的插件脚本
  23. 如果你用了引用RTP素材的插件脚本,你需要自己手动检查该脚本用到的素材.
  24. --------------------------------------------------------------------------------
  25. ** Installation

  26. Place this script below Materials and above Main

  27. --------------------------------------------------------------------------------
  28. ** 使用方法

  29. 在游戏里按 F5 来启用素材检查器. 你也可以在设定部分改变这个按键

  30. 素材检查完毕后,一个叫"used_resources.txt" 的文件会出现在你的工程文件夹里,告
  31. 诉你哪些素材被游戏用到.

  32. 还有一个 "unused_resources.txt" 会告诉你哪些素材没有被游戏用到.

  33. 你还可以选择从rtp文件夹中直接复制文件。
  34. 在设定部分,输入rtp的路径,以保证文件可以被成功复制.

  35. #==============================================================================
  36. =end
  37. $imported = {} if $imported.nil?
  38. $imported["Tsuki_Resource_Checker"] = true
  39. #==============================================================================
  40. # ** 设定
  41. #==============================================================================
  42. module Tsuki
  43.   module Resource_Checker
  44.    
  45.     # 将 RTP 路径复制到这里
  46.     # 别忘了最后一个反斜杠 (我可不会帮你检查)
  47.     RTP_Directory = "F:/Program Files/RPG Runtime/RPGVXAce/"
  48.    
  49.     # 是否将rtp文件拷贝到游戏目录中
  50.     #如果你仅希望创建一个“已使用素材”的列表文件,请设定为false
  51.     Copy_Files_Over = true
  52.    
  53.     # 启用素材检查器的按钮
  54.     Check_Key = Input::F5
  55. #==============================================================================
  56. # ** Rest of the script
  57. #==============================================================================
  58.     Graphics_Dirs = [:Animations, :Battlebacks1, :Battlebacks2, :Battlers,
  59.                      :Characters, :Faces, :Parallaxes, :Pictures, :System,
  60.                      :Tilesets, :Titles1, :Titles2]
  61.     Audio_Dirs = [:BGM, :BGS, :ME, :SE]
  62.     Font_Dirs = [:Fonts]
  63.    
  64.     # this is supposed to add some path checking...
  65.     def self.rtp_directory
  66.       RTP_Directory
  67.     end
  68.   
  69.     def self.rpgvxace?
  70.       defined? BasicObject
  71.     end
  72.    
  73.     def self.rpgvx?
  74.       defined? Graphics.resize_screen
  75.     end
  76.    
  77.     def self.show_message(message)
  78.       if rpgvxace?
  79.         $game_message.add(message)
  80.       elsif rpgvx?
  81.         $game_message.texts.push(message)
  82.       end
  83.     end
  84.    
  85.     def self.init_resource_finder
  86.       return Resource_Finder_Ace.new if rpgvxace?
  87.       return Resource_Finder_VX.new if rpgvx?
  88.     end
  89.   end
  90. end

  91. # just add it somewhere

  92. class Game_Player
  93.   
  94.   alias tsuki_Resource_Checker_update update
  95.   def update
  96.     tsuki_Resource_Checker_update
  97.     if Input.trigger?(Tsuki::Resource_Checker::Check_Key)
  98.       r = Tsuki::Resource_Checker.init_resource_finder
  99.       r.run
  100.     end
  101.   end
  102. end
  103. #~  
  104. # generic parser class. Subclasses should implement the methods if needed
  105. class Data_Parser
  106.   
  107.   def initialize
  108.     @data_animations = load_data_file("Animations")
  109.   end
  110.   
  111.   def make_data_path(filename)
  112.   end
  113.   
  114.   def load_data_file(filename)
  115.     path = make_data_path(filename)
  116.     return load_data(path)
  117.   end
  118.   
  119.   def parse_actors
  120.   end
  121.   
  122.   def parse_classes
  123.   end
  124.   
  125.   def parse_skills
  126.   end
  127.   
  128.   def parse_items
  129.   end
  130.   
  131.   def parse_weapons
  132.   end
  133.   
  134.   def parse_armors
  135.   end
  136.   
  137.   def parse_states
  138.   end
  139.   
  140.   def parse_enemies
  141.   end
  142.   
  143.   def parse_troops
  144.   end
  145.   
  146.   def parse_animations
  147.   end
  148.   
  149.   def parse_tilesets
  150.   end
  151.   
  152.   def parse_system
  153.   end
  154.   
  155.   def parse_fonts
  156.   end
  157.   
  158.   # takes a vehicle object stored in System.rvdata2
  159.   def parse_vehicle(vehicle)
  160.   end
  161.   
  162.   def parse_terms
  163.   end
  164.   
  165.   # map parsing
  166.   
  167.   def parse_datamaps
  168.   end
  169.   
  170.   # pass in a map ID
  171.   def parse_map(map_id)
  172.   end
  173.   
  174.   # takes an RPG::Map::Encounter object
  175.   def parse_encounters(encounters)
  176.   end
  177.   
  178.   # event parsers
  179.   
  180.   def parse_event_commands(list)
  181.   end
  182.   
  183.   def parse_event_page(page)
  184.   end
  185.   
  186.   def parse_event(event)
  187.   end
  188.   
  189.   def parse_map_events(events)
  190.   end
  191.   
  192.   def parse_common_events
  193.   end
  194.   
  195.   def parse_data_files
  196.     parse_actors
  197.     parse_classes
  198.     parse_skills
  199.     parse_items
  200.     parse_weapons
  201.     parse_armors
  202.     parse_enemies
  203.     parse_troops
  204.     parse_states
  205.     parse_animations
  206.     parse_tilesets
  207.     parse_common_events
  208.     parse_system
  209.     parse_terms
  210.     parse_datamaps
  211.     parse_fonts
  212.   end
  213. end

  214. class Resource_Finder_Ace < Data_Parser
  215.   
  216.   attr_reader :resources

  217.   def initialize
  218.     super
  219.     @resources = {}
  220.   end
  221.   
  222.   def make_data_path(filename)
  223.     "Data/#{filename}.rvdata2"
  224.   end
  225.   
  226.   def init_category(category)
  227.     @resources[category] = []
  228.   end
  229.   
  230.   def add_resource(category, name)
  231.     init_category(category) if @resources[category].nil?
  232.     return unless name && !name.empty?
  233.     @resources[category] |= [name]
  234.   end
  235.   
  236.   def parse_actors
  237.     actors = load_data_file("Actors")
  238.     actors.each {|actor|
  239.       next unless actor
  240.       add_resource(:Characters, actor.character_name)
  241.       add_resource(:Faces, actor.face_name)
  242.     }
  243.   end   
  244.   
  245.   def parse_enemies
  246.     enemies = load_data_file("Enemies")
  247.     enemies.each {|enemy|
  248.       next unless enemy
  249.       add_resource(:Battlers, enemy.battler_name)
  250.     }
  251.   end
  252.   
  253.   def parse_troops
  254.     troops = load_data_file("Troops")
  255.   end
  256.   
  257.   def parse_animations
  258.     anims = load_data_file("Animations")
  259.     anims.each {|anim|
  260.       next unless anim
  261.       add_resource(:Animations, anim.animation1_name)
  262.       add_resource(:Animations, anim.animation2_name)
  263.     }
  264.   end
  265.   
  266.   def parse_tilesets
  267.     tilesets = load_data_file("Tilesets")
  268.     tilesets.each {|tileset|
  269.       next unless tileset
  270.       tileset.tileset_names.each {|name|
  271.         add_resource(:Tilesets, name)
  272.       }
  273.     }
  274.   end
  275.   
  276.   def parse_common_events
  277.     events = load_data_file("CommonEvents")
  278.     events.each {|evt|
  279.       next unless evt
  280.       parse_command_list(evt.list)
  281.     }
  282.   end
  283.   
  284.   def parse_system
  285.     system = load_data_file("System")
  286.     add_resource(:BGM, system.title_bgm.name)
  287.     add_resource(:BGM, system.battle_bgm.name)
  288.     add_resource(:ME, system.battle_end_me.name)
  289.     add_resource(:ME, system.gameover_me.name)
  290.    
  291.     # add system sounds
  292.     system.sounds.each {|sound|
  293.       add_resource(:SE, sound.name)
  294.     }
  295.    
  296.     # test battle and editor related
  297.     add_resource(:Battlebacks1, system.battleback1_name)
  298.     add_resource(:Battlebacks2, system.battleback2_name)
  299.     add_resource(:Battlers, system.battler_name)   
  300.    
  301.     # vehicles
  302.     parse_vehicle(system.boat)
  303.     parse_vehicle(system.ship)
  304.     parse_vehicle(system.airship)
  305.    
  306.     # titles
  307.     add_resource(:Titles1, system.title1_name)
  308.     add_resource(:Titles2, system.title2_name)
  309.    
  310.     # some default stuff
  311.     add_resource(:System, "BattleStart")
  312.     add_resource(:System, "GameOver")
  313.     add_resource(:System, "IconSet")
  314.     add_resource(:System, "Shadow")
  315.     add_resource(:System, "Window")
  316.   end
  317.   
  318.   def parse_vehicle(vehicle)
  319.     add_resource(:Characters, vehicle.character_name)
  320.     add_resource(:BGM, vehicle.bgm.name)
  321.   end
  322.   
  323.   # just hardcoded...
  324.   def parse_fonts
  325.     add_resource(:Fonts, "VL-Gothic-Regular")
  326.     add_resource(:Fonts, "VL-PGothic-Regular")
  327.   end
  328.   
  329.   # map parser
  330.   
  331.   def parse_datamaps
  332.    
  333.     infos = load_data_file("MapInfos")
  334.     infos.each {|id, map|
  335.       next unless map
  336.       parse_map(id)
  337.     }
  338.   end
  339.   
  340.   def parse_map(map_id)
  341.     map = load_data_file(sprintf("Map%03d", map_id))
  342.     add_resource(:Parallaxes, map.parallax_name)
  343.     add_resource(:BGM, map.bgm.name)
  344.     add_resource(:BGS, map.bgs.name)
  345.     parse_map_events(map.events)
  346.   end
  347.   
  348.   # event parsing
  349.   
  350.   def check_event_resources(cmd)
  351.     code, params = cmd.code, cmd.parameters
  352.     case code
  353.     when 101 # show text
  354.       add_resource(:Faces, params[0]) # face name
  355.     when 205 # move route
  356.       check_move_route(params[1])
  357.     when 212 # show animation
  358.     when 213 # show balloon
  359.       add_resource(:System, "Balloon")
  360.     when 231 # show picture
  361.       add_resource(:Pictures, params[1])
  362.     when 241 # play BGM
  363.       add_resource(:BGM, params[0].name)
  364.     when 245 # play BGS
  365.       add_resource(:BGS, params[0].name)
  366.     when 249 # play ME
  367.       add_resource(:ME, params[0].name)
  368.     when 250 # play SE
  369.       add_resource(:SE, params[0].name)
  370.     when 261 # play movie
  371.     when 282 # change tileset
  372.       tset_id = params[0]
  373.     when 283 # change battleback
  374.       add_resource(:Battlebacks1, params[0])
  375.       add_resource(:Battlebacks2, params[1])
  376.     when 284 # change parallax
  377.       add_resource(:Parallaxes, params[0])
  378.     when 322 # Change Actor Graphic
  379.       add_resource(:Characters, params[1])
  380.       add_resource(:Faces, params[3])
  381.     when 323 # Change Vehicle Graphic
  382.       add_resource(:Characters, params[1])
  383.     when 335 # Enemy appear
  384.     when 336 # Enemy transform
  385.     when 337 # Show battle animation
  386.       add_resource(:Animations, @data_animations[params[1]].name)
  387.     end
  388.   end
  389.   
  390.   def check_move_route(route)
  391.     route.list.each do |cmd|
  392.       case cmd.code
  393.       when 41 # change character graphic
  394.         add_resource(:Characters, cmd.parameters[0])
  395.       when 44 # play SE
  396.         add_resource(:SE, cmd.parameters[0].name)
  397.       end
  398.     end
  399.   end
  400.   
  401.   def parse_command_list(list)
  402.     list.each {|cmd|
  403.       check_event_resources(cmd)
  404.     }
  405.   end
  406.   
  407.   def parse_event_page(page)
  408.    
  409.     add_resource(:Characters, page.graphic.character_name)
  410.     parse_command_list(page.list)
  411.   end
  412.   
  413.   def parse_event(event)
  414.     event.pages.each {|page|
  415.       parse_event_page(page)
  416.     }
  417.   end
  418.   
  419.   def parse_map_events(events)
  420.     events.each {|id, evt|
  421.       parse_event(evt)
  422.     }
  423.   end
  424.   
  425.   def run
  426.     parse_data_files
  427.     export
  428.   end
  429.   
  430.   def export
  431.     r = Resource_Exporter.new(@resources)
  432.     r.run
  433.   end
  434. end

  435. # basically the same thing, except no tilesets and different system
  436. class Resource_Finder_VX < Resource_Finder_Ace
  437.   
  438.   def make_data_path(filename)
  439.     "Data/#{filename}.rvdata"
  440.   end
  441.   
  442.   def parse_tilesets
  443.     system = load_data_file("System")
  444.     add_resource(:System, "TileA1")
  445.     add_resource(:System, "TileA2")
  446.     add_resource(:System, "TileA3")
  447.     add_resource(:System, "TileA4")
  448.     add_resource(:System, "TileA5")
  449.     add_resource(:System, "TileB")
  450.     add_resource(:System, "TileC")
  451.     add_resource(:System, "TileD")
  452.     add_resource(:System, "TileE")
  453.   end
  454.   
  455.   def parse_system
  456.     system = load_data_file("System")
  457.     add_resource(:BGM, system.title_bgm.name)
  458.     add_resource(:BGM, system.battle_bgm.name)
  459.     add_resource(:ME, system.battle_end_me.name)
  460.     add_resource(:ME, system.gameover_me.name)
  461.    
  462.     # add system sounds
  463.     system.sounds.each {|sound|
  464.       add_resource(:SE, sound.name)
  465.     }
  466.    
  467.     # test battle and editor related
  468.     add_resource(:Battlers, system.battler_name)   
  469.    
  470.     # vehicles
  471.     parse_vehicle(system.boat)
  472.     parse_vehicle(system.ship)
  473.     parse_vehicle(system.airship)
  474.    
  475.     # titles
  476.     add_resource(:System, "Title")
  477.    
  478.     # some default stuff
  479.     add_resource(:System, "BattleStart")
  480.     add_resource(:System, "BattleFloor")
  481.     add_resource(:System, "MessageBack")
  482.     add_resource(:System, "GameOver")
  483.     add_resource(:System, "IconSet")
  484.     add_resource(:System, "Shadow")
  485.     add_resource(:System, "Window")
  486.   end
  487.   
  488.   def parse_fonts
  489.     add_resource(:Fonts, "umeplus-gothic")
  490.   end
  491. end

  492. class Resource_Exporter
  493.   
  494.   def initialize(data)
  495.     @data = data
  496.     @outfile = nil
  497.   end
  498.   
  499.   def rtp_directory
  500.     Tsuki::Resource_Checker.rtp_directory
  501.   end
  502.   
  503.   def rtp_directory_valid?
  504.     return false unless File.directory?(rtp_directory)
  505.     return false unless File.directory?(rtp_directory + "Graphics")
  506.     return false unless File.directory?(rtp_directory + "Audio")
  507.     return false unless File.directory?(rtp_directory + "Fonts")
  508.     return true
  509.   end
  510.   
  511.   def create_outfile(name)
  512.     File.open(name, "w")
  513.   end
  514.   
  515.   def make_category_folder(category)
  516.     if Tsuki::Resource_Checker::Graphics_Dirs.include?(category)
  517.       name = "Graphics%s%s" %[File::Separator, category]
  518.     elsif Tsuki::Resource_Checker::Audio_Dirs.include?(category)
  519.       name = "Audio%s%s" %[File::Separator, category]
  520.     elsif Tsuki::Resource_Checker::Font_Dirs.include?(category)
  521.       return
  522.     end
  523.     Dir.mkdir(name) unless File.directory?(name)
  524.     return name
  525.   end
  526.   
  527.   def make_out_name(folder, category, name)
  528.     matches = Dir::glob("#{rtp_directory}#{folder}/#{category}/#{name}.*")
  529.     unless matches.empty?
  530.       ext = matches[0].split("/")[-1].split(".")[-1]
  531.     else
  532.       #Tsuki::Resource_Checker.show_message("%s was not found" %name)
  533.     end
  534.     return name #+ ".#{ext}"
  535.   end
  536.   
  537.   def make_path(category, name)   
  538.     outName = ""
  539.     if Tsuki::Resource_Checker::Graphics_Dirs.include?(category)
  540.       name = make_out_name("Graphics", category, name)
  541.       outName << sprintf("Graphics%s%s%s", File::Separator, category, File::Separator)
  542.     elsif Tsuki::Resource_Checker::Audio_Dirs.include?(category)
  543.       name = make_out_name("Audio", category, name)
  544.       outName << sprintf("Audio%s%s%s", File::Separator, category, File::Separator)
  545.     elsif Tsuki::Resource_Checker::Font_Dirs.include?(category)
  546.       name = make_out_name("", category, name)
  547.       outName << sprintf("Fonts%s", File::Separator)
  548.     end
  549.     return outName << name
  550.   end
  551.   
  552.   # just read/write
  553.   def copy_file(srcPath, destPath)
  554.     File.open(srcPath, 'rb') {|src_file|
  555.       File.open(destPath, 'wb') {|dest_file|
  556.         dest_file.write(src_file.read)
  557.       }
  558.     }
  559.   end
  560.   
  561.   def make_file(path)
  562.     begin
  563.       if FileTest.exist?(path)
  564.         # nothing. Don't clutter the console
  565.       elsif !FileTest.exist?(rtp_directory + path)
  566.         p "%s 不是 RTP 文件" %path
  567.       else
  568.         copy_file(rtp_directory + path, path)
  569.         p "%s - 已被成功复制" %path
  570.       end
  571.     rescue
  572.       Tsuki::Resource_Checker.show_message("某些地方出错了! 请注意")
  573.     end
  574.   end
  575.   
  576.   def write_heading(name)
  577.     @outfile.puts("== %s == " %name)
  578.   end
  579.   
  580.   def write_data(category, list)
  581.     list.sort.each {|name|
  582.       path = make_path(category, name)
  583.       @outfile.puts(sprintf("%s", path))
  584.     }
  585.     @outfile.puts("\n")
  586.   end
  587.   
  588.   # write the log out
  589.   def export_log
  590.     Tsuki::Resource_Checker.show_message("检查素材中")   
  591.     @outfile = create_outfile("used_resources.txt")
  592.    
  593.     @outfile.puts("以下素材在游戏中被使用:\n")
  594.     @data.each {|category, list|
  595.       write_heading(category)
  596.       write_data(category, list)
  597.     }
  598.     @outfile.close
  599.    
  600.     @outfile = create_outfile("unused_resources.txt")
  601.     write_unused_resources
  602.     @outfile.close
  603.    
  604.     Tsuki::Resource_Checker.show_message("检查素材结束")
  605.   end
  606.   
  607.   def write_unused_resources
  608.     @outfile.puts("=========================================\n")
  609.     @outfile.puts("以下素材在游戏中没有被使用\n")
  610.     @outfile.puts("=========================================\n")
  611.     @data.each do |category, list|
  612.       dirName = make_category_folder(category)
  613.       next unless dirName
  614.       
  615.       # Grab all of the files in the folder, without extensions
  616.       filenames = Dir.glob(dirName << "/*").collect {|path| File.basename(path, ".*") }
  617.       
  618.       # Remove the ones that we found in the game
  619.       filenames -= list
  620.       
  621.       # These are all unused      
  622.       write_heading(category)
  623.       write_data(category, filenames)
  624.     end
  625.   end
  626.   
  627.   # lol inefficient but I like it separated
  628.   def copy_files
  629.     Tsuki::Resource_Checker.show_message("开始复制文件")
  630.     t1 = Time.now
  631.     # check RTP folder exists
  632.     unless rtp_directory_valid?
  633.       Tsuki::Resource_Checker.show_message("你的 RTP 路径不可用或无法访问")
  634.       return
  635.     end
  636.     # basic folders
  637.     Dir.mkdir("Graphics") unless File.directory?("Graphics")
  638.     Dir.mkdir("Audio") unless File.directory?("Audio")
  639.     Dir.mkdir("Fonts") unless File.directory?("Fonts")
  640.     Dir.mkdir("Movies") unless File.directory?("Movies")
  641.     Dir.mkdir("System") unless File.directory?("System")
  642.    
  643.     @data.each {|category, list|
  644.       make_category_folder(category)
  645.       list.each { |name|
  646.         path = make_path(category, name)
  647.         make_file(path)
  648.       }
  649.     }
  650.     t2 = Time.now
  651.     Tsuki::Resource_Checker.show_message("文件复制完毕,用时 %f 秒." %(t2 - t1))
  652.   end
  653.   
  654.   def run
  655.     export_log
  656.     copy_files if Tsuki::Resource_Checker::Copy_Files_Over
  657.   end
  658. end

  659. class Game_Interpreter
  660.   
  661.   def build_resource_list
  662.     r = Tsuki::Resource_Checker.init_resource_finder
  663.     r.run
  664.   end
  665. end
复制代码

评分

参与人数 5星屑 +10 +4 收起 理由
VIPArcher + 10 认可答案
世界第一中二 + 1 认可答案
RMVXA + 1 这个厉害了
wwjj955 + 1 认可答案
KB.Driver + 1 我很赞同

查看全部评分

VA外站脚本汉化群:226308173   |    部分远古文件备份:https://wwzv.lanzoue.com/b02rac5pc  密码:acgm
回复 支持 2 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-4-30 15:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表