Project1

标题: 纸娃娃V0.1 [打印本页]

作者: yangff    时间: 2008-6-29 01:07
标题: 纸娃娃V0.1
伸手党请自觉离开!!!

看到很多养成游戏都有设计人物衣着的环节
据说超级浪费美工 {/gg}
现在,只需要个脚本,可以省很多力起
但是对素材的要求更高。
注意!图层的编号越高,那么他的z坐标越低
由于xp窗口大小不够,所以把大美观
总之,这个脚本对于真心想做一个好游戏的人来说才有价值

下载地址:不猛击死全家

自动生成一个文件名为随机数的文件在角色图片目录,并记录文件名在$nn,要杀要剐随你便

以下是脚本:

  1. #==============================================================================
  2. # ■ Window_Command
  3. #------------------------------------------------------------------------------
  4. #  一般的命令选择行窗口。
  5. #==============================================================================

  6. class Window_Command < Window_Selectable
  7.   attr_reader   :commands              # 帮助窗口
  8.   def initialize(width, commands,h=0)
  9.     # 由命令的个数计算出窗口的高
  10.     h = commands.size * 32 + 32 if h == 0
  11.     super(0, 0, width, h)
  12.     @item_max = commands.size
  13.     @commands = commands
  14.     self.contents = Bitmap.new(width - 32, @item_max * 32)
  15.     refresh
  16.     self.index = 0
  17.   end

  18. end
  19. class Scene_Wawa
  20.   def main
  21.     @lv = []
  22.     @command_window = Window_Command.new(172,["新图层"],480)
  23.     @file_list = Dir.glob("Graphics/Characters/maker/*")
  24.     @command_window_1 = Window_Command.new(640-173,@file_list,480)
  25.     @command_window_1.x = 173
  26.     @command_window_1.active = false
  27.     @index = 0
  28.     # 停止演奏 ME、BGS
  29.     Audio.me_stop
  30.     Audio.bgs_stop
  31.     # 执行过渡
  32.     Graphics.transition
  33.     # 主循环
  34.     loop do
  35.       # 刷新游戏画面
  36.       Graphics.update
  37.       # 刷新输入信息
  38.       Input.update
  39.       # 刷新画面
  40.       update
  41.       # 如果画面被切换就中断循环
  42.       if $scene != self
  43.         break
  44.       end
  45.     end
  46.     # 装备过渡
  47.     Graphics.freeze
  48.     # 释放命令窗口
  49.     @command_window.dispose
  50.     @command_window_1.dispose
  51. #    @command_window_2.dispose
  52.   end
  53.   def update
  54.     @command_window.update
  55.     @command_window_1.update
  56.     if Input.trigger?(Input::C)
  57.       case @index
  58.       when 0
  59.         if @command_window.commands[@command_window.index] == "新图层"
  60.           @lv.push(Sprite.new)
  61.           @lv[@lv.size-1].z = @lv.size+999
  62.           @lv[@lv.size-1].y = 480-192-32
  63.           @lv[@lv.size-1].bitmap = Bitmap.new(@file_list[0])
  64.           a = @command_window.commands
  65.           @command_window.dispose
  66.           @command_window = Window_Command.new(172,["层" + a.size.to_s] + a,480)
  67.           @command_window.index = 0
  68. #          p "1"
  69.         else
  70.           @index = 1
  71.           @command_window.active = false
  72.           @command_window_1.active = true
  73.         end
  74.       when 1
  75. #       p "2"
  76.         @lv[@command_window.index].bitmap = Bitmap.new(@file_list[@command_window_1.index])
  77.         @index = 0
  78.         @command_window_1.active = false
  79.         @command_window.active = true
  80.       end
  81.     end
  82.    
  83.     if Input.trigger?(Input::B)
  84.       case @index
  85.       when 0
  86.         if @command_window.commands[@command_window.index] == "新图层"
  87.           p "error"
  88.         else
  89.           @command_window.commands.delete_at(@command_window.index)
  90.           @lv[@command_window.index].dispose
  91.           @lv.delete_at(@command_window.index)
  92.           a = []
  93.           for i in @command_window.commands
  94.             a.push(i)
  95.           end
  96.           @command_window.dispose
  97.           @command_window = Window_Command.new(172,a,480)
  98.           @lv = ""
  99.           a = []
  100.           for i in @lv
  101.             a.push(i)
  102.           end
  103.           @lv = a
  104.         end
  105.       when 1
  106.         @index = 0
  107.         @command_window_1.active = false
  108.         @command_window.active = true
  109.       end
  110.     end
  111.     if Input.trigger?(Input::A)
  112.       $scene = Scene_Map.new
  113.     end
  114.     if Input.trigger?(Input::Z)
  115.       a = Bitmap.new(128,192)
  116.       for i in [email protected]
  117.         a.blt(0, 0, @lv[i].bitmap, Rect.new(0,0,128,192))
  118.       end
  119.       $nn = rand(1561)+1852
  120.       a.save2png("Graphics/Characters/" + $nn.to_s + ".png")
  121.       
  122.     end
  123.    
  124.   end
  125. end
复制代码


A 键退出
Z 键保存退出


如果你对你的美工没有十足的把握,就会像范例里面一样,生成的东西有错位!!!
但是总比一张一张处理省力

不适用于加密游戏

版本号:0.1
环境号:1.03
主程序版本号:0.5
最后更新代码:M28Y60D821707

个人感觉放游戏里要在美化,操作这类上下点文章
这只是个框架
房子得最这盖!!!
放张图(最好的,但是素材没处理好,所以…………看图吧)

作者: 越前リョーマ    时间: 2008-6-29 01:13
这个成品………………
作者: yangff    时间: 2008-6-29 01:34
以下引用越前リョーマ于2008-6-28 17:13:34的发言:

这个成品………………

素材问题啦...
作者: 灯笼菜刀王    时间: 2008-6-29 01:58
- -

不太明白使用方法。

是将衣服眼睛等素材放到游戏中随机组合?还是输出成品后输入游戏?这个脚本就是工具类?

第一种的话,貌似以前有个亿万发的角色装备换装系统。

第二种,怎么说呢- -,这个成品确实需要加工....而加工还不如直接PS合成....
作者: yangff    时间: 2008-6-29 02:08
以下引用灯笼菜刀王于2008-6-28 17:58:58的发言:

- -

不太明白使用方法。

是将衣服眼睛等素材放到游戏中随机组合?还是输出成品后输入游戏?这个脚本就是工具类?

第一种的话,貌似以前有个亿万发的角色装备换装系统。

第二种,怎么说呢- -,这个成品确实需要加工....而加工还不如直接PS合成....

就是玩家可以随意组合心仪的走图

当然,素材是个问题
还有一些高级功能(微调、色相)没做
换句话说就是一些游戏里的组合角色走图

本来是每种情况一张
这样是素材准备好就行
作者: 灯笼菜刀王    时间: 2008-6-29 02:15
-3-,有点明白了?

类似网络游戏里的角色样貌自定义功能了,

不错不错~~~

不过,使用这个系统要准备好一大份报酬给美工...
作者: yangff    时间: 2008-6-29 02:55
以下引用灯笼菜刀王于2008-6-28 18:15:13的发言:

-3-,有点明白了?

类似网络游戏里的角色样貌自定义功能了,

不错不错~~~

不过,使用这个系统要准备好一大份报酬给美工...

那总比准备三大份报酬给美工好啊
作者: 灯笼菜刀王    时间: 2008-6-29 06:49
那啥,我说的是要额外准备一大份-v-,前面的报酬不变
作者: 司马睿风    时间: 2008-6-29 07:06
人工屏蔽{/fn}

作者: 越前止まる殇    时间: 2008-6-29 16:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: yangff    时间: 2008-6-29 17:08
以下引用越前止まる殇于2008-6-29 8:26:28的发言:

我只说,想要vx的

只要vx纸娃娃素材放到maker目录
然后修改生成的走图前面+$!
素材格式是
3*4
()()()
()()()
()()()
()()()
这就是层概念的好处
不过脚本里控制生成走图大小部分要改动
脚本是兼容的
就不知道command那里。。。。
整合一些照样用
作者: 越前止まる殇    时间: 2008-6-30 03:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: cmbljsw    时间: 2008-6-30 03:51
很强大……不过貌似消除时会有BUG
作者: yangff    时间: 2008-6-30 05:12
以下引用cmbljsw于2008-6-29 19:51:22的发言:

很强大……不过貌似消除时会有BUG

所以才是0.1
作者: jackxiao    时间: 2008-6-30 05:18
提示: 作者被禁止或删除 内容自动屏蔽
作者: yangff    时间: 2008-6-30 06:04
以下引用jackxiao于2008-6-29 21:18:16的发言:

有一些素材显示位置不一样,出来的人会偏的。显示出来怪模怪样的。。。。

所以说对素材要求高
以后会推出移位系统 {/wx}
作者: 灯笼菜刀王    时间: 2008-6-30 06:14
以下引用yangff于2008-6-29 22:04:53的发言:


以下引用jackxiao于2008-6-29 21:18:16的发言:

有一些素材显示位置不一样,出来的人会偏的。显示出来怪模怪样的。。。。


所以说对素材要求高
以后会推出移位系统  


所以说更要准备一大大份报酬给美工- -~

----提供一个制作此素材的方法---------

使用这个脚本, 要求素材在像素上的位置完全一致,通常情况下可以使用网格调整,但是行走图不是规则的正方形,所以用网格也有一定局限。
其实,只要把行走图长宽平均分成4份,然后设置参考线,然后把参考线其中一格用选择框框起来,内部描边,然后套到模型上,连接起来,就可以随便移动了,后面的材料就参照这个模型摆放,最后把模型放回原位,然后删掉框框图层,OVER,100%对齐的行走图完成。

作者: yangff    时间: 2008-6-30 17:50
以下引用灯笼菜刀王于2008-6-29 22:14:06的发言:


以下引用yangff于2008-6-29 22:04:53的发言:


以下引用jackxiao于2008-6-29 21:18:16的发言:

有一些素材显示位置不一样,出来的人会偏的。显示出来怪模怪样的。。。。


所以说对素材要求高
以后会推出移位系统  



所以说更要准备一大大份报酬给美工- -~

----提供一个制作此素材的方法---------

使用这个脚本, 要求素材在像素上的位置完全一致,通常情况下可以使用网格调整,但是行走图不是规则的正方形,所以用网格也有一定局限。
其实,只要把行走图长宽平均分成4份,然后设置参考线,然后把参考线其中一格用选择框框起来,内部描边,然后套到模型上,连接起来,就可以随便移动了,后面的材料就参照这个模型摆放,最后把模型放回原位,然后删掉框框图层,OVER,100%对齐的行走图完成。



[本贴由作者于 2008-6-29 22:18:58 最后编辑]

正解
不过后悔推出移位系统,即行走图可以移动位置。不过ui要重新设计 {/hx}




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1