【RGSS3】ツクールXPのキャラクターチップVXAceで使えるようにするやつ

Saara

ユーザー
読んで字の如く。
画像の規格を直接VXAce方式にせずともXPのキャラチップが使用可能になります。
これにより、アニメパターンが4枚でないと動きが不自然になるキャラチップも、自然に利用できるようになります
また、VXAce本来の規格のキャラチップとも併用可能です。

  • 製作者: Saara
  • 非商用利用: 自由(クレジット不要)
  • 商用利用: 自由(クレジット必須)
  • 再配布: クレジット必須
  • 加工: OK(部分的な色変えも化)
  • 加工後の再配布: クレジット必須
  • シリーズ: ツクールVXAce

【使い方と仕様について】
  • XP規格のキャラチップのファイル名先頭に「#を加えると、自動でXPのキャラチップと判断します
  • エディタには反映されません
  • 「$」を先頭につけていなくても、自動で単一のキャラチップであると判断します(つけたほうがエディタ上で扱いやすいです
  • イベントに設定された「向き」「足踏みパターン」は反映されます

Ruby:
#===============================================================================
#
# ★ ツクールXPのキャラクターチップVXAceで使えるようにするやつ
#
#===============================================================================

module Saara_XPCha
    
#--カスタマイズポイントここから--------------------------------------
 

  # XP規格キャラチップのファイル名頭文字
  InitialMark = '#'
 
 
 
#--カスタマイズポイントここまで--------------------------------------
 
end




module Saara_XPCha
  InitialMark4Regxp = '\\' + InitialMark
end

class Game_Event
  #--------------------------------------------------------------------------
  # ● イベントページの設定をセットアップ
  #--------------------------------------------------------------------------
  alias :saara_xpcha_setup_page_settings :setup_page_settings
  def setup_page_settings
    saara_xpcha_setup_page_settings
    sign = @character_name[/^[\!\$#{Saara_XPCha::InitialMark4Regxp}]./]
    if sign && sign.include?(Saara_XPCha::InitialMark)
      xp_pattern = (@page.graphic.pattern + 1) % 4
      if @original_pattern != xp_pattern
        @pattern            = xp_pattern
        @original_pattern   = @pattern
      end
    end
  end
end

class Sprite_Character
  #--------------------------------------------------------------------------
  # ● キャラクターのビットマップを設定
  #--------------------------------------------------------------------------
  def set_character_bitmap
    self.bitmap = Cache.character(@character_name)
    sign = @character_name[/^[\!\$#{Saara_XPCha::InitialMark4Regxp}]./]
    if sign && sign.include?(Saara_XPCha::InitialMark)
      @cw = bitmap.width / 4
      @ch = bitmap.height / 4
    elsif sign && sign.include?('$')
      @cw = bitmap.width / 3
      @ch = bitmap.height / 4
    else
      @cw = bitmap.width / 12
      @ch = bitmap.height / 8
    end
    self.ox = @cw / 2
    self.oy = @ch
  end
  #--------------------------------------------------------------------------
  # ● 転送元矩形の更新
  #--------------------------------------------------------------------------
  def update_src_rect
    if @tile_id == 0
      sign = @character_name[/^[\!\$#{Saara_XPCha::InitialMark4Regxp}]./]
      index = @character.character_index
      if sign && sign.include?(Saara_XPCha::InitialMark)
        pattern = (@character.pattern + 3) % 4
        sx = pattern * @cw
        sy = ((@character.direction - 2) / 2) * @ch
      else
        pattern = @character.pattern < 3 ? @character.pattern : 1
        sx = (index % 4 * 3 + pattern) * @cw
        sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
      end
      self.src_rect.set(sx, sy, @cw, @ch)
    end
  end
end

class Window_Base
  #--------------------------------------------------------------------------
  # ● 歩行グラフィックの描画
  #--------------------------------------------------------------------------
  def draw_character(character_name, character_index, x, y)
    return unless character_name
    bitmap = Cache.character(character_name)
    sign = character_name[/^[\!\$#{Saara_XPCha::InitialMark4Regxp}]./]
    if sign && sign.include?(Saara_XPCha::InitialMark)
      cw = bitmap.width / 4
      ch = bitmap.height / 4
      src_rect = Rect.new(0, 0, cw, ch)
    elsif sign && sign.include?('$')
      cw = bitmap.width / 3
      ch = bitmap.height / 4
      src_rect = Rect.new(cw, 0, cw, ch)
    else
      cw = bitmap.width / 12
      ch = bitmap.height / 8
      n = character_index
      src_rect = Rect.new((n%4*3+1)*cw, (n/4*4)*ch, cw, ch)
    end
    contents.blt(x - cw / 2, y - ch, bitmap, src_rect)
  end
end
 
ありそうでなかった、便利なプラグインですね!
僕は相当ツクールXPを使い倒したクチなので、4パターンのアニメに慣れていて、
かつて青鬼(ツクールXP製)をMVに移植する仕事を請けたのですが、
その際に4パターンすべて異なる画像のキャラチップ(鳥など)を
どう再現するか、相当悩んでいました。
これがそのころあれば、喜んで使っていたと思います。
未だにツクールXPの独自の特殊仕様は、他のツクールでの再現を困難にしていますが、
これがあれば、ハードルをひとつ超えられることになりますね。
 
トップ