查看: 2164|回复: 4

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

[复制链接]
梦石
0
星屑
50
在线时间
521 小时
注册时间
2011-12-7
回帖
148
发表于 2013-8-21 10:28:05 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 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
梦石
0
星屑
50
在线时间
79 小时
注册时间
2007-6-23
回帖
147
发表于 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列的才行。使用默认素材也没问题。

以防万一,贴上完整方法
[pre lang="ruby" line="1"]  #--------------------------------------------------------------------------
  # ● 设置动画的精灵
  #     frame : 帧数据(RPG::Animation::Frame)
  #--------------------------------------------------------------------------
  def animation_set_sprites(frame)
    cell_data = frame.cell_data
    @ani_sprites.each_with_index do |sprite, i|
      next unless sprite
      pattern = cell_data[i, 0]
      if !pattern || pattern < 0
        sprite.visible = false
        next
      end
      sprite.bitmap = pattern < 100 ? @ani_bitmap1 : @ani_bitmap2
      sprite.visible = true
      sw = sprite.bitmap.width / 5
      sx = (sw - 192) / 2
      sprite.src_rect.set(pattern % 5 * sw + sx,
        pattern % 100 / 5 * sw + sx, 192, 192)
      if @ani_mirror
        sprite.x = @ani_ox - cell_data[i, 1]
        sprite.y = @ani_oy + cell_data[i, 2]
        sprite.angle = (360 - cell_data[i, 4])
        sprite.mirror = (cell_data[i, 5] == 0)
      else
        sprite.x = @ani_ox + cell_data[i, 1]
        sprite.y = @ani_oy + cell_data[i, 2]
        sprite.angle = cell_data[i, 4]
        sprite.mirror = (cell_data[i, 5] == 1)
      end
      sprite.z = self.z + 300 + i
      sprite.ox = 96
      sprite.oy = 96
      sprite.zoom_x = cell_data[i, 3] / 100.0
      sprite.zoom_y = cell_data[i, 3] / 100.0
      sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
      sprite.blend_type = cell_data[i, 7]
    end
  end[/pre]

评分

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

查看全部评分

回复

使用道具 举报

梦石
0
星屑
50
在线时间
521 小时
注册时间
2011-12-7
回帖
148
 楼主| 发表于 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

回复

使用道具 举报

梦石
0
星屑
50
在线时间
79 小时
注册时间
2007-6-23
回帖
147
发表于 2013-8-21 13:19:09 | 显示全部楼层
Ceopal 发表于 2013-8-21 13:10
=  0 = 好像很难弄好的样子,我的数据库动画那里还是断掉的样子

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

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

使用道具 举报

梦石
0
星屑
50
在线时间
79 小时
注册时间
2007-6-23
回帖
147
发表于 2013-8-21 13:29:05 | 显示全部楼层
这样的话你怎么设置动画……
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部