Project1

标题: 关于人物行走图的大小 [打印本页]

作者: 埃诗冬马Elsa    时间: 2015-2-15 11:12
标题: 关于人物行走图的大小
这里是新人,有事想请教大小
VXAce的人物行走图的大小是只能占“一格”么?可以改变大小么?因为游戏中的人物有身高差,我想体现那个身高差,所以想调整大小。
我记得XP里的行走图是占“两格”来着?我就想调整成那样的大小,有办法么?
作者: 翻滚牛宝宝    时间: 2015-2-15 11:17
修改行走图就可以了,你把行走图拉到2格那么大 就是2格了 另 注意单独一个人物的行走图文件名前面记得加$
作者: 埃诗冬马Elsa    时间: 2015-2-15 11:19
翻滚牛宝宝 发表于 2015-2-15 11:17
修改行走图就可以了,你把行走图拉到2格那么大 就是2格了 另 注意单独一个人物的行走图文件名前面 ...

谢谢,我去试试ww
作者: QY钢琴之雨    时间: 2015-2-17 10:03
http://tieba.baidu.com/p/3539701726
可以参考此教程
作者: tseyik    时间: 2015-2-17 10:16
本帖最后由 tseyik 于 2015-2-17 10:23 编辑

VX and VXAce使用XP行走图
xpP行走图 名前加$
例: 001-Fighter01.png -> $xp001-Fighter01.png
這脚本可用於 VX /VXAce.
  1. #==============================================================================
  2. # ** MSX - XP Characters on VX/VXAce
  3. #==============================================================================
  4. # Author: Melosx
  5. # Notes translated by ShinGamix
  6. # http://www.rpgmakervxace.net/index.php?/user/1272-shingamix/
  7. # Version: 1.0
  8. # Compatible with VX and VXAce
  9. #
  10. #==============================================================================
  11. # * Description
  12. # -----------------------------------------------------------------------------
  13. # This script allows you to use xp in vx chara simply inserting the tag
  14. # $xp
  15. # Before the name of the file.                  
  16. # You can then use the normal VX / VXAce along with those of XP.
  17. #
  18. #==============================================================================
  19. # * Instructions
  20. # -----------------------------------------------------------------------------
  21. # Place the script under Materials and above Main. Add to chara of XP
  22. # $xp before the tag name.
  23. #
  24. #==============================================================================
  25. #==============================================================================
  26. # ** Sprite_Character
  27. #==============================================================================
  28. class Sprite_Character < Sprite_Base

  29.   def update_bitmap
  30.         if @tile_id != @character.tile_id or
  31.                   @character_name != @character.character_name or
  32.                   @character_index != @character.character_index
  33.                   @tile_id = @character.tile_id
  34.                   @character_name = @character.character_name
  35.                   @character_index = @character.character_index
  36.                   if @tile_id > 0
  37.                         sx = (@tile_id / 128 % 2 * 8 + @tile_id % 8) * 32;
  38.                         sy = @tile_id % 256 / 8 % 16 * 32;
  39.                         self.bitmap = tileset_bitmap(@tile_id)
  40.                         self.src_rect.set(sx, sy, 32, 32)
  41.                         self.ox = 16
  42.                         self.oy = 32
  43.                   else
  44.                         self.bitmap = Cache.character(@character_name)
  45.                         sign = @character_name[/^[!$]./]
  46.                         if sign != nil and sign.include?(')
  47.                                   @cw = bitmap.width / 3
  48.                                   @ch = bitmap.height / 4
  49.                         else
  50.                                   @cw = bitmap.width / 12
  51.                                   @ch = bitmap.height / 8
  52.                         end
  53.                         if @character_name != nil and @character_name.include?('$xp')
  54.                                   @cw = bitmap.width / 4
  55.                                   @ch = bitmap.height / 4
  56.                         end
  57.                         self.ox = @cw / 2
  58.                         self.oy = @ch
  59.                   end
  60.         end
  61.   end
  62.                                
  63.   def update_src_rect
  64.         if @character_name != nil and @character_name.include?('$xp')
  65.                   if @tile_id == 0
  66.                         pattern = @character.pattern > 0 ? @character.pattern - 1 : 3
  67.                         sx = pattern * @cw
  68.                         sy = (@character.direction - 2) / 2 * @ch
  69.                         self.src_rect.set(sx, sy, @cw, @ch)
  70.                   end
  71.         else
  72.                   if @tile_id == 0
  73.                         index = @character.character_index
  74.                         pattern = @character.pattern < 3 ? @character.pattern : 1
  75.                         sx = (index % 4 * 3 + pattern) * @cw
  76.                         sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
  77.                         self.src_rect.set(sx, sy, @cw, @ch)
  78.                   end
  79.         end
  80.   end
  81. end
  82. #==========================================================================
  83. # ** Window_Base
  84. #==========================================================================
  85. class Window_Base < Window
  86.   def draw_character(character_name, character_index, x, y)
  87.         return if character_name == nil
  88.         bitmap = Cache.character(character_name)
  89.         sign = character_name[/^[!$]./]
  90.         if character_name != nil and character_name.include?('$xp')
  91.                   cw = bitmap.width / 4
  92.                   ch = bitmap.height / 4
  93.                   n = character_index
  94.                   src_rect = Rect.new(0, 0, cw, ch)
  95.         else
  96.                   if sign != nil and sign.include?(')
  97.                         cw = bitmap.width / 3
  98.                         ch = bitmap.height / 4
  99.                   else
  100.                         cw = bitmap.width / 12
  101.                         ch = bitmap.height / 8
  102.                   end
  103.                   n = character_index
  104.                   src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
  105.         end
  106.         self.contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  107.   end

  108. end
复制代码
另一個,
・{p=n}
nは整数で、キャラクターの画像名に{p=4}のように入れてください。
例 $001-Fighter01.png → $001-Fighter01{p=4}.png


・パターン(コマ)数拡張
キャラクターの画像は各方向につき3コマ(足踏みの演出)で構成されていますが、このコマ数を変えることができます。
画像名に{p=n}が入っているとコマ数がnになります。
{p=4}だとXPのキャラクター画像をそのまま使用できます。
{p=3}ならコマ数はデフォルトと同じですが、アニメーション方式(下を参照)だけが変わります。


・キャラクターのアニメーション方式
VXAceのRTP規格では3コマの内、2コマ目が「足を揃えた状態」で1・3コマ目が「片足を出した状態」です。
デフォルトではこのコマのアニメーションを

 2コマ目  3コマ目  2コマ目 1コマ目  2→3→2→1→2→3→2→
足を揃える 左足を出す 足を揃える 右足を出す 揃 左 揃 右 揃 左 揃

という風にして足踏みさせています。

画像名に{p=n}が入っているとこのアニメーション方式が変わり、例えば{p=5}なら
1→2→3→4→5→1→2→3→4→5→1→
という風に1コマ目から始まって、最後まで行ったらまた1コマ目に戻るようになります。

RUBY 代码复制
  1. #==============================================================================
  2. # RGSS3_キャラ画像コマ数拡張
  3. # 2012/07/10公開
  4. # C Winter ([url]http://ccwinter.blog.fc2.com/[/url])
  5. #==============================================================================
  6.  
  7. #==============================================================================
  8. # ■ Sprite_Character
  9. #==============================================================================
  10. class Sprite_Character < Sprite_Base
  11.   #--------------------------------------------------------------------------
  12.   # ● キャラクターのビットマップを設定
  13.   #--------------------------------------------------------------------------
  14.   def set_character_bitmap
  15.     self.bitmap = Cache.character(@character_name)
  16.     sign = @character_name[/^[\!\$]./]
  17.     max_pattern = @character_name =~ /{p=(\d+)}/i ? $1.to_i : 3
  18.     if sign && sign.include?('$')
  19.       @cw = bitmap.width / max_pattern
  20.       @ch = bitmap.height / 4
  21.     else
  22.       @cw = bitmap.width / (max_pattern * 4)
  23.       @ch = bitmap.height / 8
  24.     end
  25.     self.ox = @cw / 2
  26.     self.oy = @ch
  27.   end
  28.   #--------------------------------------------------------------------------
  29.   # ● 転送元矩形の更新
  30.   #--------------------------------------------------------------------------
  31.   def update_src_rect
  32.     if @tile_id == 0
  33.       index = @character.character_index
  34.       if @character_name =~ /{p=(\d+)}/i
  35.         max_pattern = $1.to_i
  36.         ori_pattern = 0
  37.       else
  38.         max_pattern = 3
  39.         ori_pattern = 1
  40.       end
  41.       pattern = @character.pattern < max_pattern ? @character.pattern : ori_pattern
  42.       sx = (index % 4 * 3 + pattern) * @cw
  43.       sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
  44.       self.src_rect.set(sx, sy, @cw, @ch)
  45.     end
  46.   end
  47. end
  48. #==============================================================================
  49. # ■ Game_CharacterBase
  50. #==============================================================================
  51. class Game_CharacterBase
  52.   #--------------------------------------------------------------------------
  53.   # ● アニメパターンの更新
  54.   #--------------------------------------------------------------------------
  55.   def update_anime_pattern
  56.     max_pattern = @character_name =~ /{p=(\d+)}/i ? $1.to_i : 4
  57.     if !@step_anime && @stop_count > 0
  58.       @pattern = @original_pattern
  59.     else
  60.       @pattern = (@pattern + 1) % max_pattern
  61.     end
  62.   end
  63. end

作者: 丑小猪    时间: 2015-2-17 17:24
QY钢琴之雨 发表于 2015-2-17 10:03
http://tieba.baidu.com/p/3539701726
可以参考此教程

简单来说就是把 0123 里的 0 割掉,然后图片名字前面要写!$(貌似是这样,以前弄过,有点忘了)
(图片来自链接)



作者: chd114    时间: 2015-2-17 21:02
在行走图的文件的名字的最前面加上$呗




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