エンジン内で旋回、色調変換、波打つなどのエフェクト付きで戦闘背景をアニメーション化するスクリプトやコードをご存知の方がいらっしゃいましたら教えていただきたいです。色々と探してみましたが、そのような機能を持つスクリプトは見つかりませんでした。シェーダーが必要になる可能性は理解していますが、RMXPエンジンがどのように動作しているかについては詳しくないため、これが可能かどうかは分かりません。
バトルバックの画像は、連続した名前で命名します(例:Forest、Forest1、Forest2、Forest3)。スクリプトは指定された速度でこれらを切り替えることで、アニメーションを作成します。 []
コード:
スクリプトエディタの Main の直上に新しいスクリプトセクションを作成し、以下のコードを貼り付けてください: [1, 2]
ruby
#==============================================================================
# Animated Battle Background by Blizzard
# Version: 1.1b (Slightly modified for brevity)
#==============================================================================
class Game_System
attr_accessor :ANIMATED_BATTLE_BACKGROUND
alias init_abb_game_system initialize
def initialize
init_abb_game_system
@ANIMATED_BATTLE_BACKGROUND = true
end
end
module BattlebackAnimation
SPEED = 8 # Lower = faster, higher = slower
end
class Spriteset_Battle
alias init_animated_battle_background_later initialize
def initialize
@frame = 0; @max_frame = 0; @origin_name = ""
init_animated_battle_background_later
end
alias upd_animated_battle_background_later update
def update
if $game_system.ANIMATED_BATTLE_BACKGROUND
if @origin_name != $game_temp.battleback_name
@origin_name = $game_temp.battleback_name
@frame = 0; @max_frame = 1
while FileTest.exist?("Graphics/Battlebacks/#{@origin_name}#{@max_frame}.png")
@max_frame += 1
end
end
if @max_frame > 1 && Graphics.frame_count % BattlebackAnimation::SPEED == 0
@frame = (@frame + 1) % @max_frame
fname = @frame == 0 ? @origin_name : @origin_name + @frame.to_s
$game_temp.battleback_name = fname
@battleback1_sprite.bitmap = RPG::Cache.battleback(fname)
end
end
upd_animated_battle_background_later
end
end
コードを使用する際は注意してください。
ファイルの設定方法:
- ベースとなるバトルバックを作成し、
Graphics/Battlebacksにインポートします。 - アニメーションのフレームには、ベースファイルの名前に番号を付けたものを正確に使用します(例:ベースファイル:
Grass.png、アニメーションフレーム:Grass1.png、Grass2.pngなど)。 - アニメーションの再生速度が速すぎる場合や遅すぎる場合は、スクリプトモジュール内の
SPEED定数(10〜13行目)を調整してください。 []
「いいね!」 2