查看: 3052|回复: 5

[已经解决] 请问心情动画可以扩展吗?

[复制链接]
梦石
0
星屑
55
在线时间
52 小时
注册时间
2006-12-8
回帖
24
发表于 2013-3-13 08:17:33 | 显示全部楼层 |阅读模式

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

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

×
我想尽量丰富角色的动作,心情之类的,但是心情动画好像只有8个,如果把别的图命名为balloon放到system文件夹就替换了原有的文件了,想问下有没有脚本之类的可以扩展心情动画呢?另外,VA的有些只有三格的人物动作不知道怎么用啊,换上如果跟人对话就会跳到别人的动作去了,也想问下这是怎么回事
梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
回帖
1526
发表于 2013-3-13 17:54:34 | 显示全部楼层
本帖最后由 j433463 于 2013-3-13 18:35 编辑

呃,有个月姬(姬公主)的图标气球脚本,看了网站的使用条款没有提到禁止转贴,只有保持原脚本和脚本上方的说明,所以我就贴出了,若有疑义,请说一声,我好及时删除。

脚本需要配合一张气球图:



图片请放到 Graphics/System 内。

下面这是脚本:

[pre lang="ruby" line="1"]=begin
#==============================================================================
** Icon Balloon
Author: Tsukihime
Date: Sep 3, 2012
------------------------------------------------------------------------------
** Change log
Sep 3
   - updated with more method aliasing
   - initial release
------------------------------------------------------------------------------   
Similar to the emotion balloons, except it uses an icon instead.
You will need a copy of the Icon-Balloon.png file, which is basically
one row of balloon frames copied from the Balloon.png file.

Script call:

    show_icon_balloon(char_id, icon_index, wait?)
   
`char_id` is the character on the map
     (-1 = player, 0 = this event, 1+ is specific event ID)

`icon_index` is the index of the icon
`wait` is a boolean representing whether the game should wait until the balloon disappears
#==============================================================================
=end
$imported = {} if $imported.nil?
$imported["Tsuki_IconBalloons"] = true
#==============================================================================
# ** Configuration
#==============================================================================
module Tsuki
  module Icon_Balloon
  end
end
#==============================================================================
# ** Rest of script
#==============================================================================

class Game_Interpreter
  
  def show_icon_balloon(char_id, icon_index, need_wait=false)
    character = get_character(char_id)
    if character
      character.icon_balloon_id = icon_index
      Fiber.yield while character.icon_balloon_id > 0 if need_wait
    end
  end
end

class Game_CharacterBase
  
  attr_accessor :icon_balloon_id
  
  alias :th_icon_balloon_init_public :init_public_members
  def init_public_members
    th_icon_balloon_init_public
    @icon_balloon_id = 0
  end
end

class Sprite_Character
  
  alias :th_icon_balloon_initialize :initialize
  def initialize(viewport, character = nil)
    @icon_balloon_duration = 0
    th_icon_balloon_initialize(viewport, character)
  end
  
  alias :th_icon_balloon_dispose :dispose
  def dispose
    th_icon_balloon_dispose
    end_icon_balloon
  end

  alias :th_icon_balloon_update :update
  def update
    th_icon_balloon_update
    update_icon_balloon #new  
  end
  
  alias :th_icon_balloon_setup_new :setup_new_effect
  def setup_new_effect
    th_icon_balloon_setup_new
    if !@icon_balloon_sprite && @character.icon_balloon_id > 0
      @icon_balloon_id = @character.icon_balloon_id
      start_icon_balloon
    end
  end
  
  # new icon balloon methods
  
  def start_icon_balloon
    dispose_icon_balloon
   
    @icon_balloon_duration = 8 * balloon_speed + balloon_wait
    @icon_balloon_sprite = ::Sprite.new(viewport)
    @icon_balloon_sprite.bitmap = Cache.system("Icon-Balloon")
    @icon_balloon_sprite.ox = 16
    @icon_balloon_sprite.oy = 32
   
    @icon = Cache.system("Iconset")
    @icon_rect = Rect.new(@icon_balloon_id % 16 * 24, @icon_balloon_id / 16 * 24, 24, 24)
    @icon_balloon_sprite.bitmap.blt(4, 2, @icon, @icon_rect, 255)
   
    update_icon_balloon
  end
  #--------------------------------------------------------------------------
  # * Free Balloon Icon
  #--------------------------------------------------------------------------
  def dispose_icon_balloon
    if @icon_balloon_sprite
      @icon_balloon_sprite.dispose
      @icon_balloon_sprite = nil
    end
  end
  #--------------------------------------------------------------------------
  # * Update Balloon Icon
  #--------------------------------------------------------------------------
  def update_icon_balloon
    if @icon_balloon_duration > 0
      @icon_balloon_duration -= 1
      if @icon_balloon_duration > 0
        @icon_balloon_sprite.x = x
        @icon_balloon_sprite.y = y - height
        @icon_balloon_sprite.z = z + 200
        
        sx = balloon_frame_index * 32
        sy = 0
        @icon_balloon_sprite.src_rect.set(sx, sy, 32, 32)
        @icon_balloon_sprite.bitmap.blt(sx+4, sy+2, @icon, @icon_rect, 255)
      else
        end_icon_balloon
      end
    end
  end
  #--------------------------------------------------------------------------
  # * End Balloon Icon
  #--------------------------------------------------------------------------
  def end_icon_balloon
    dispose_icon_balloon
    @character.icon_balloon_id = 0
  end
  #--------------------------------------------------------------------------
  # * Balloon Icon Display Speed
  #--------------------------------------------------------------------------
  def balloon_speed
    return 8
  end
  #--------------------------------------------------------------------------
  # * Wait Time for Last Frame of Balloon
  #--------------------------------------------------------------------------
  def balloon_wait
    return 12
  end
  #--------------------------------------------------------------------------
  # * Frame Number of Balloon Icon
  #--------------------------------------------------------------------------
  def balloon_frame_index
    return 7 - [(@icon_balloon_duration - balloon_wait) / balloon_speed, 0].max
  end
end[/pre]


调用方法是:

[pre lang="ruby" line="1"]show_icon_balloon(角色 id, 图标 id, 保持几帧时间)[/pre]

角色 id 可以是 -1 玩家, 0 本事件, 1 或以上为指定的事件 id



好像还有一个 tomoaky 写的 icon 脚本也是做类似的效果,脚本名是 RGSS3_アイコンポップ ver 1.2,
日文脚本请自己下载吧:

http://hikimoki.sakura.ne.jp/rgss3/script_map/tmicpop.rb


评分

参与人数 1梦石 +1 收起 理由
Mic_洛洛 + 1 认可答案

查看全部评分

修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复

使用道具 举报

梦石
0
星屑
55
在线时间
52 小时
注册时间
2006-12-8
回帖
24
 楼主| 发表于 2013-3-13 09:22:52 | 显示全部楼层
76213585 发表于 2013-3-13 08:50
VA的三格的人物动作用固定朝向就好了
如果想要他們转的話   就自己去弄或是求 要不然就找現成

谢谢,不过有时候我用了固定朝向(比如人倒在地上之类的),但只要人物试着对话就会跳到下一格图,不对话了又会恢复= =
回复

使用道具 举报

梦石
0
星屑
50
在线时间
687 小时
注册时间
2012-10-29
回帖
1526
发表于 2013-3-13 12:39:53 | 显示全部楼层
心情图本身无法扩增,就那几种,不过可以用动画来做,其实以前 XP 也是用动画做心情图的,

或者可以用脚本来扩展,但这样扩展的心情图名称不会出现在下拉选单中,要用时必须用脚本命令去调用,

另外,还有一种图标心情脚本,是用现成的图标来做心情图,有多少合适图标,就可以做出多少种心情。

评分

参与人数 1星屑 +3 收起 理由
怪蜀黍 + 3 我很赞同

查看全部评分

修改劇本中,仔細審查原來的劇情大綱,覺得有點不太滿意,嘗試編寫不同主角不同主線的劇情,希望能寫得出來。
回复

使用道具 举报

梦石
0
星屑
55
在线时间
52 小时
注册时间
2006-12-8
回帖
24
 楼主| 发表于 2013-3-13 17:25:20 | 显示全部楼层
j433463 发表于 2013-3-13 12:39
心情图本身无法扩增,就那几种,不过可以用动画来做,其实以前 XP 也是用动画做心情图的,

或者可以用脚本 ...

谢谢指点!我试了用动画来做心情,不过图太小了,自己用PS改大又虚了。。= =
图标的话,该怎么让它出现在人物头顶上方呢?
回复

使用道具 举报

梦石
0
星屑
55
在线时间
52 小时
注册时间
2006-12-8
回帖
24
 楼主| 发表于 2013-3-13 21:32:03 | 显示全部楼层
j433463 发表于 2013-3-13 17:54
呃,有个月姬(姬公主)的图标气球脚本,看了网站的使用条款没有提到禁止转贴,只有保持原脚本和脚本上方的 ...

好的,非常感谢~{:2_280:}
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部