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

Project1

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

[已经过期] 【数据库 - 动画 - 非RM规格素材使用】寻找更简便处理手段

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
521 小时
注册时间
2011-12-7
帖子
305
跳转到指定楼层
1
发表于 2013-8-21 10:28:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 Ceopal 于 2013-8-21 13:26 编辑


默认使用192X192 一张,横5张 ,纵20行

手上素材512X512,可视面积大概为中间192X192以内

如果PS为默认规格素材,流程是:每张素材裁剪512X512中间的192X192,然后拼成960 X  192*n的图片 ——这工作量……

有没有简便的办法利用非RM规格素材……改动脚本也许能实现,只使用素材中间192X192部分的胶片?





@fangyc  数据库无视你图片大小,它还是按规矩办事,只扫你图片0,0开始,横960,纵192*n的面积

点评

华丽而优雅地处理素材+1  发表于 2013-8-21 12:26
PS有批处理别偷懒了  发表于 2013-8-21 11:08

Lv1.梦旅人

梦石
0
星屑
50
在线时间
79 小时
注册时间
2007-6-23
帖子
154
2
发表于 2013-8-21 12:10:06 | 只看该作者
本帖最后由 fangyc 于 2013-8-21 12:18 编辑

我估计把Sprite_Base的194和195行删去,插入下面几行,估计可行
  1.       sw = sprite.bitmap.width / 5
  2.       sx = (sw - 192) / 2
  3.       sprite.src_rect.set(pattern % 5 * sw + sx,
  4.         pattern % 100 / 5 * sw + sx, 192, 192)
复制代码
但你仍需把512x512的素材拼成5行20列的才行。使用默认素材也没问题。

以防万一,贴上完整方法
RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 设置动画的精灵
  3.   #     frame : 帧数据(RPG::Animation::Frame)
  4.   #--------------------------------------------------------------------------
  5.   def animation_set_sprites(frame)
  6.     cell_data = frame.cell_data
  7.     @ani_sprites.each_with_index do |sprite, i|
  8.       next unless sprite
  9.       pattern = cell_data[i, 0]
  10.       if !pattern || pattern < 0
  11.         sprite.visible = false
  12.         next
  13.       end
  14.       sprite.bitmap = pattern < 100 ? @ani_bitmap1 : @ani_bitmap2
  15.       sprite.visible = true
  16.       sw = sprite.bitmap.width / 5
  17.       sx = (sw - 192) / 2
  18.       sprite.src_rect.set(pattern % 5 * sw + sx,
  19.         pattern % 100 / 5 * sw + sx, 192, 192)
  20.       if @ani_mirror
  21.         sprite.x = @ani_ox - cell_data[i, 1]
  22.         sprite.y = @ani_oy + cell_data[i, 2]
  23.         sprite.angle = (360 - cell_data[i, 4])
  24.         sprite.mirror = (cell_data[i, 5] == 0)
  25.       else
  26.         sprite.x = @ani_ox + cell_data[i, 1]
  27.         sprite.y = @ani_oy + cell_data[i, 2]
  28.         sprite.angle = cell_data[i, 4]
  29.         sprite.mirror = (cell_data[i, 5] == 1)
  30.       end
  31.       sprite.z = self.z + 300 + i
  32.       sprite.ox = 96
  33.       sprite.oy = 96
  34.       sprite.zoom_x = cell_data[i, 3] / 100.0
  35.       sprite.zoom_y = cell_data[i, 3] / 100.0
  36.       sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
  37.       sprite.blend_type = cell_data[i, 7]
  38.     end
  39.   end

评分

参与人数 1星屑 +150 收起 理由
Sion + 150 感谢帮忙

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
521 小时
注册时间
2011-12-7
帖子
305
3
 楼主| 发表于 2013-8-21 13:10:14 | 只看该作者
fangyc 发表于 2013-8-21 12:10
我估计把Sprite_Base的194和195行删去,插入下面几行,估计可行但你仍需把512x512的素材拼成5行20列的才行 ...

=  0 = 好像很难弄好的样子,我的数据库动画那里还是断掉的样子

你用这张图试试……

普通攻击png.rar

211.23 KB, 下载次数: 47

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
79 小时
注册时间
2007-6-23
帖子
154
4
发表于 2013-8-21 13:19:09 | 只看该作者
Ceopal 发表于 2013-8-21 13:10
=  0 = 好像很难弄好的样子,我的数据库动画那里还是断掉的样子

你用这张图试试…… ...

呃……我身边目前没有RM
晚上回去看看吧~~
不过你用规格不同的图片,数据库设置那里没有问题吗?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
79 小时
注册时间
2007-6-23
帖子
154
5
发表于 2013-8-21 13:29:05 | 只看该作者
这样的话你怎么设置动画……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 18:43

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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