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

Project1

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

充分榨取数据库动画的剩余价值 [公众版]

 关闭 [复制链接]

Lv1.梦旅人

66RPG站长

梦石
0
星屑
54
在线时间
615 小时
注册时间
2005-10-10
帖子
5734

RMVX自由创作大赛亚军第2届短篇游戏比赛亚军第5届短篇游戏比赛冠军

跳转到指定楼层
1
发表于 2007-5-26 08:45:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
数据库动画是制作起来非常费力的一项工作——如果你自己尝试做过一整个中大型游戏的全部数据库动画,你肯定是会认同我的看法的。

那么,现在咱们来榨取一下数据库动画的剩余价值吧。



本脚本功能:

将数据库1号动画,变成垂直镜像、水平镜像、垂直+水平镜像、旋转90度等版本。




使用方法:

1、新建一个工程

2、把工程的数据库-动画清空。然后把动画总数设置在20左右。

3、把你喜欢的动画放在1号位置

4、插入脚本

5、保存工程

6、关闭工程

7、运行game.exe

8、打开工程




这样你就有了你喜欢动画的多个角度的版本



  1. $data_animations    = load_data("Data/Animations.rxdata")

  2. animation = $data_animations[1]

  3. def remirror(ind)
  4.   return (ind - 1).abs
  5. end

  6. def _mirror(res, dst)
  7.   d = $data_animations[res]
  8.   a = RPG::Animation.new
  9.   a.name = d.name + " -"
  10.   a.animation_name = d.animation_name
  11.   a.frame_max = d.frame_max
  12.   a.timings = d.timings
  13.   
  14.   for j in 0...a.frame_max
  15.     a.frames[j] = RPG::Animation::Frame.new
  16.     a.frames[j].cell_max = d.frames[j].cell_max
  17.     a.frames[j].cell_data = Table.new(a.frames[j].cell_max, 8)
  18.     d_c = d.frames[j].cell_data
  19.     next if d_c[0,0] == nil
  20.     for i in 0...a.frames[j].cell_max
  21.       for k in 0...8
  22.         a.frames[j].cell_data[i,k] = d_c[i,k]
  23.       end
  24.     end
  25.   end
  26.   $data_animations[dst] = a
  27. end

  28. def ag(a)
  29.   return (a + 720) % 360
  30. end

  31. for i in 3..9
  32.   $data_animations[i] = _mirror(1, i)
  33. end

  34. #------------------------------------------------------
  35. # 左右翻转
  36. #------------------------------------------------------
  37. for frame in $data_animations[3].frames
  38.   for i in 0..frame.cell_max
  39.     if frame.cell_data[i, 1] != nil
  40.       frame.cell_data[i, 1] = -frame.cell_data[i, 1]
  41.       frame.cell_data[i, 5] = (frame.cell_data[i, 5] - 1).abs
  42.       frame.cell_data[i, 4] = ag(360 - frame.cell_data[i, 4])
  43.     end
  44.   end
  45. end
  46. $data_animations[3].name += "-水平翻转"

  47. #------------------------------------------------------
  48. # 转向2:上下翻转
  49. #------------------------------------------------------
  50. for frame in $data_animations[4].frames
  51.   for i in 0..frame.cell_max
  52.     if frame.cell_data[i, 1] != nil
  53.       frame.cell_data[i, 2] = -frame.cell_data[i, 2]
  54.       frame.cell_data[i, 4] = ag(180 - frame.cell_data[i, 4])
  55.       frame.cell_data[i, 5] = (frame.cell_data[i, 5] - 1).abs
  56.     end
  57.   end
  58. end
  59. $data_animations[4].name += "-垂直翻转"

  60. #------------------------------------------------------
  61. # 转向3:左右 + 垂直
  62. #------------------------------------------------------
  63. for frame in $data_animations[5].frames
  64.   for i in 0..frame.cell_max
  65.     if frame.cell_data[i, 1] != nil
  66.       frame.cell_data[i, 1] = -frame.cell_data[i, 1]
  67.       frame.cell_data[i, 5] = (frame.cell_data[i, 5] - 1).abs
  68.       frame.cell_data[i, 4] = ag(360 - frame.cell_data[i, 4])
  69.       frame.cell_data[i, 2] = -frame.cell_data[i, 2]
  70.       frame.cell_data[i, 4] = ag(180 - frame.cell_data[i, 4])
  71.       frame.cell_data[i, 5] = (frame.cell_data[i, 5] - 1).abs
  72.     end
  73.   end
  74. end
  75. $data_animations[5].name += "-水平垂直"

  76. #------------------------------------------------------
  77. # 转向4:其他……说不清是什么
  78. #------------------------------------------------------
  79. for frame in $data_animations[6].frames
  80.   for i in 0..frame.cell_max
  81.     if frame.cell_data[i, 1] != nil   
  82.       temp = frame.cell_data[i, 1]
  83.       frame.cell_data[i, 1] = frame.cell_data[i, 2]
  84.       frame.cell_data[i, 2] = temp
  85.       frame.cell_data[i, 4] = ag(frame.cell_data[i, 4] - 90)
  86.     end
  87.   end
  88. end
  89. $data_animations[6].name += "-逆90度"


  90. for frame in $data_animations[7].frames
  91.   for i in 0..frame.cell_max
  92.     if frame.cell_data[i, 1] != nil
  93.       temp = frame.cell_data[i, 1]
  94.       frame.cell_data[i, 1] = frame.cell_data[i, 2]
  95.       frame.cell_data[i, 2] = temp
  96.       frame.cell_data[i, 4] = ag(frame.cell_data[i, 4] - 90)
  97.       frame.cell_data[i, 1] = -frame.cell_data[i, 1]
  98.       frame.cell_data[i, 5] = (frame.cell_data[i, 5] - 1).abs
  99.       frame.cell_data[i, 4] = ag(360 - frame.cell_data[i, 4])
  100.     end
  101.   end
  102. end
  103. $data_animations[7].name += "-逆90度镜像"

  104. for frame in $data_animations[8].frames
  105.   for i in 0..frame.cell_max
  106.     if frame.cell_data[i, 1] != nil
  107.       temp = frame.cell_data[i, 1]
  108.       frame.cell_data[i, 1] = frame.cell_data[i, 2]
  109.       frame.cell_data[i, 2] = temp
  110.       frame.cell_data[i, 4] = ag(frame.cell_data[i, 4] + 90)
  111.     end
  112.   end
  113. end
  114. $data_animations[8].name += "-顺90度"

  115. for frame in $data_animations[9].frames
  116.   for i in 0..frame.cell_max
  117.     if frame.cell_data[i, 1] != nil
  118.       temp = frame.cell_data[i, 1]
  119.       frame.cell_data[i, 1] = frame.cell_data[i, 2]
  120.       frame.cell_data[i, 2] = temp
  121.       frame.cell_data[i, 4] = ag(frame.cell_data[i, 4] + 90)
  122.       frame.cell_data[i, 2] = -frame.cell_data[i, 2]
  123.       frame.cell_data[i, 4] = ag(180 - frame.cell_data[i, 4])
  124.       frame.cell_data[i, 5] = (frame.cell_data[i, 5] - 1).abs
  125.     end
  126.   end
  127. end
  128. $data_animations[9].name += "-顺90度镜像"


  129. save_data($data_animations, "Data/Animations.rxdata")
  130. exit
复制代码

Lv1.梦旅人

66RPG站长

梦石
0
星屑
54
在线时间
615 小时
注册时间
2005-10-10
帖子
5734

RMVX自由创作大赛亚军第2届短篇游戏比赛亚军第5届短篇游戏比赛冠军

2
 楼主| 发表于 2007-5-26 08:45:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
数据库动画是制作起来非常费力的一项工作——如果你自己尝试做过一整个中大型游戏的全部数据库动画,你肯定是会认同我的看法的。

那么,现在咱们来榨取一下数据库动画的剩余价值吧。



本脚本功能:

将数据库1号动画,变成垂直镜像、水平镜像、垂直+水平镜像、旋转90度等版本。




使用方法:

1、新建一个工程

2、把工程的数据库-动画清空。然后把动画总数设置在20左右。

3、把你喜欢的动画放在1号位置

4、插入脚本

5、保存工程

6、关闭工程

7、运行game.exe

8、打开工程




这样你就有了你喜欢动画的多个角度的版本



  1. $data_animations    = load_data("Data/Animations.rxdata")

  2. animation = $data_animations[1]

  3. def remirror(ind)
  4.   return (ind - 1).abs
  5. end

  6. def _mirror(res, dst)
  7.   d = $data_animations[res]
  8.   a = RPG::Animation.new
  9.   a.name = d.name + " -"
  10.   a.animation_name = d.animation_name
  11.   a.frame_max = d.frame_max
  12.   a.timings = d.timings
  13.   
  14.   for j in 0...a.frame_max
  15.     a.frames[j] = RPG::Animation::Frame.new
  16.     a.frames[j].cell_max = d.frames[j].cell_max
  17.     a.frames[j].cell_data = Table.new(a.frames[j].cell_max, 8)
  18.     d_c = d.frames[j].cell_data
  19.     next if d_c[0,0] == nil
  20.     for i in 0...a.frames[j].cell_max
  21.       for k in 0...8
  22.         a.frames[j].cell_data[i,k] = d_c[i,k]
  23.       end
  24.     end
  25.   end
  26.   $data_animations[dst] = a
  27. end

  28. def ag(a)
  29.   return (a + 720) % 360
  30. end

  31. for i in 3..9
  32.   $data_animations[i] = _mirror(1, i)
  33. end

  34. #------------------------------------------------------
  35. # 左右翻转
  36. #------------------------------------------------------
  37. for frame in $data_animations[3].frames
  38.   for i in 0..frame.cell_max
  39.     if frame.cell_data[i, 1] != nil
  40.       frame.cell_data[i, 1] = -frame.cell_data[i, 1]
  41.       frame.cell_data[i, 5] = (frame.cell_data[i, 5] - 1).abs
  42.       frame.cell_data[i, 4] = ag(360 - frame.cell_data[i, 4])
  43.     end
  44.   end
  45. end
  46. $data_animations[3].name += "-水平翻转"

  47. #------------------------------------------------------
  48. # 转向2:上下翻转
  49. #------------------------------------------------------
  50. for frame in $data_animations[4].frames
  51.   for i in 0..frame.cell_max
  52.     if frame.cell_data[i, 1] != nil
  53.       frame.cell_data[i, 2] = -frame.cell_data[i, 2]
  54.       frame.cell_data[i, 4] = ag(180 - frame.cell_data[i, 4])
  55.       frame.cell_data[i, 5] = (frame.cell_data[i, 5] - 1).abs
  56.     end
  57.   end
  58. end
  59. $data_animations[4].name += "-垂直翻转"

  60. #------------------------------------------------------
  61. # 转向3:左右 + 垂直
  62. #------------------------------------------------------
  63. for frame in $data_animations[5].frames
  64.   for i in 0..frame.cell_max
  65.     if frame.cell_data[i, 1] != nil
  66.       frame.cell_data[i, 1] = -frame.cell_data[i, 1]
  67.       frame.cell_data[i, 5] = (frame.cell_data[i, 5] - 1).abs
  68.       frame.cell_data[i, 4] = ag(360 - frame.cell_data[i, 4])
  69.       frame.cell_data[i, 2] = -frame.cell_data[i, 2]
  70.       frame.cell_data[i, 4] = ag(180 - frame.cell_data[i, 4])
  71.       frame.cell_data[i, 5] = (frame.cell_data[i, 5] - 1).abs
  72.     end
  73.   end
  74. end
  75. $data_animations[5].name += "-水平垂直"

  76. #------------------------------------------------------
  77. # 转向4:其他……说不清是什么
  78. #------------------------------------------------------
  79. for frame in $data_animations[6].frames
  80.   for i in 0..frame.cell_max
  81.     if frame.cell_data[i, 1] != nil   
  82.       temp = frame.cell_data[i, 1]
  83.       frame.cell_data[i, 1] = frame.cell_data[i, 2]
  84.       frame.cell_data[i, 2] = temp
  85.       frame.cell_data[i, 4] = ag(frame.cell_data[i, 4] - 90)
  86.     end
  87.   end
  88. end
  89. $data_animations[6].name += "-逆90度"


  90. for frame in $data_animations[7].frames
  91.   for i in 0..frame.cell_max
  92.     if frame.cell_data[i, 1] != nil
  93.       temp = frame.cell_data[i, 1]
  94.       frame.cell_data[i, 1] = frame.cell_data[i, 2]
  95.       frame.cell_data[i, 2] = temp
  96.       frame.cell_data[i, 4] = ag(frame.cell_data[i, 4] - 90)
  97.       frame.cell_data[i, 1] = -frame.cell_data[i, 1]
  98.       frame.cell_data[i, 5] = (frame.cell_data[i, 5] - 1).abs
  99.       frame.cell_data[i, 4] = ag(360 - frame.cell_data[i, 4])
  100.     end
  101.   end
  102. end
  103. $data_animations[7].name += "-逆90度镜像"

  104. for frame in $data_animations[8].frames
  105.   for i in 0..frame.cell_max
  106.     if frame.cell_data[i, 1] != nil
  107.       temp = frame.cell_data[i, 1]
  108.       frame.cell_data[i, 1] = frame.cell_data[i, 2]
  109.       frame.cell_data[i, 2] = temp
  110.       frame.cell_data[i, 4] = ag(frame.cell_data[i, 4] + 90)
  111.     end
  112.   end
  113. end
  114. $data_animations[8].name += "-顺90度"

  115. for frame in $data_animations[9].frames
  116.   for i in 0..frame.cell_max
  117.     if frame.cell_data[i, 1] != nil
  118.       temp = frame.cell_data[i, 1]
  119.       frame.cell_data[i, 1] = frame.cell_data[i, 2]
  120.       frame.cell_data[i, 2] = temp
  121.       frame.cell_data[i, 4] = ag(frame.cell_data[i, 4] + 90)
  122.       frame.cell_data[i, 2] = -frame.cell_data[i, 2]
  123.       frame.cell_data[i, 4] = ag(180 - frame.cell_data[i, 4])
  124.       frame.cell_data[i, 5] = (frame.cell_data[i, 5] - 1).abs
  125.     end
  126.   end
  127. end
  128. $data_animations[9].name += "-顺90度镜像"


  129. save_data($data_animations, "Data/Animations.rxdata")
  130. exit
复制代码

Lv1.梦旅人

66RPG站长

梦石
0
星屑
54
在线时间
615 小时
注册时间
2005-10-10
帖子
5734

RMVX自由创作大赛亚军第2届短篇游戏比赛亚军第5届短篇游戏比赛冠军

3
 楼主| 发表于 2007-5-26 08:48:48 | 只看该作者
相关截图:

回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

帅无敌

梦石
0
星屑
50
在线时间
2 小时
注册时间
2006-7-23
帖子
1313
4
发表于 2007-5-26 09:02:00 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

苹果梨

梦石
0
星屑
43
在线时间
6 小时
注册时间
2007-2-14
帖子
720
5
发表于 2007-5-26 10:09:17 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (暗夜天使)

精灵族の天使

梦石
0
星屑
1702
在线时间
3038 小时
注册时间
2007-3-16
帖子
33731

开拓者贵宾

6
发表于 2007-5-26 16:09:29 | 只看该作者
不错。纵版战斗改为横板战斗的时候全屏魔法需要重新调整,旋转+放缩这个思路不错。由于以后可能需要向左放缩或者向右放缩的魔法效果(也就是说,横板的全屏魔法只在敌人或者我方那边释放),希望能改进一下。
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-5-24
帖子
192
7
发表于 2007-5-26 18:44:06 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

Lv1.梦旅人

66RPG站长

梦石
0
星屑
54
在线时间
615 小时
注册时间
2005-10-10
帖子
5734

RMVX自由创作大赛亚军第2届短篇游戏比赛亚军第5届短篇游戏比赛冠军

8
 楼主| 发表于 2007-5-26 20:58:24 | 只看该作者
昨天晚上发完公众版的直接断网了,VIP的没发出来。刚补上了……

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
0 小时
注册时间
2006-12-20
帖子
213
9
发表于 2007-5-26 22:35:49 | 只看该作者
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
50
在线时间
0 小时
注册时间
2007-5-24
帖子
192
10
发表于 2007-5-26 23:31:49 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-23 14:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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