気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM等について、学んだことや備忘録をアウトプットとして残し、情報を必要としている誰かにとって「かゆいところに手が届く」ブログとなることを願いながら記事を書いています。

【RGSS3】[超便利]戦闘アニメーションをスクリプトから制御する方法

スポンサーリンク

戦闘アニメーションをスクリプトから制御

ミニゲーム等で「よーい!どん!」みたいな開始の合図を表示し、 その後ゲームを開始するような場合に使えます!

「開始の合図」については、戦闘アニメーションを設定しておき、 スクリプトから呼び出し、終了まで待ちます。

前提

  • ミニゲーム専用マップを作成しておく
  • ミニゲーム専用マップの座標(x=10, y=10)に戦闘アニメーション表示対象のイベントを配置しておく
  • 戦闘アニメーションの100番目に、「開始の合図」用のアニメーションを設定しておく

スクリプト

class Scene_MiniGame < Scane_Map
  def start
    super
    # 現在のマップでx=10, y=10に存在するイベントIDを取得
    event_id = $game_map.event_id_xy(10, 10)

    # イベントIDからイベントを取得
    char = $game_map.events[event_id]

    # イベントに対して、アニメーションを設定
    char.animation_id = 100

    # イベントのアニメーションが終了するまで待つ
    f = Fiber.new do
      Fiber.yield while char.animation_id > 0
    end
  end
end

イベントコマンドからしか、実行できないとか、アニメーション終了まで待ってくれないと思っていたのですが、以外と短いコードで実現することができました。

スクリプトから制御できると、ミニゲーム以外にも色々と使えそうですね!

それでは、皆様も楽しいツクールライフを!