【ウディタ解説】戦闘中だけ戦ってくれる味方を召喚する①【改造】

今回は戦闘中だけ一緒に戦ってくれる味方を召喚するコモンを作成するのよ。

仕様はこんな感じ↓。

  • 技能で仲間を呼ぶコモン(召喚)を実行する
  • 5ターン経過するか戦闘終了すると自動で送還される
  • 技能「送還」を実行すれば5ターン経っていなくても送還させられる
  • 召喚できる味方は1キャラのみ


試しに召喚する仲間にはサンプルゲームのニワトリさんを使うわ。

※本来なら召喚用の仲間は成長(レベルアップ)しないよう設定した方がいいわね。あと歩行グラフィックは空白にした方がいいわ(召喚中にマップ画面に歩行グラが表示されてしまう)。

可変DBのパーティー情報に召喚枠を設定する


まずは可変DB「パーティー情報」を修正するわ。召喚キャラを管理するための項目を追加するの。


追加するのは「召喚中のキャラ」と「召喚残りターン」よ。
→項目名7:名前「召喚中のキャラ」、設定方法「▼特(後述)」、初期値「-1」
→項目名8:名前「召喚残りターン」、設定方法「変数」、初期値「0」


「召喚中のキャラ」は可変DB0番「主人公情報」を参照するのよ。誰も召喚されていない用の値のために-1~-3の選択肢も追加しておいてね。

これで可変DBの準備はOKよ。

味方を召喚するコモンを作成する


次は味方を召喚するためのコモンを作成するわ。
→コモン作成:名前「〇召喚:夕一」、起動条件「呼び出しのみ」

技能から呼び出す場合は入力値が使えないから、このコモンで呼び出せる味方は夕一のみよ。他の召喚キャラを増やしたいなら、このコモンをコピペして対象主人公だけ変えて別途作成する必要があるわ。

※キャラごとに召喚可能フラグを作って選択肢を出すような方法なら、呼び出し用のコモンを1つだけで済ますこともできるけど、処理が細かくなっちゃうから今回はやめておくわ。興味があれば改造に挑戦してみてね。


セルフ変数と文字列は1つずつ使用するわ。


ますは召喚対象の主人公IDと名前を読み込む。
→可変DB読込:「主人公ステータス-夕一」のデータ番号をセルフ変数10番に代入する
→可変DB読込:「主人公ステータス-(セルフ変数10番)-キャラ名」をセルフ文字列5番に代入する


※DBからデータ番号を取得する方法は↑よ。


次は条件分岐を使って、既に味方が召喚されている場合は処理終了させるわ。演出として、基本システムのコモンイベント30番「◆[戦闘用]メッセージ表示」を使ってメッセージも表示させましょう。
→条件分岐:可変DB「パーティー情報-メイン設定-召喚中のキャラが0以上」を作成
→コモン呼出:「◆[戦闘用]メッセージ表示」で既に召喚されている旨のメッセージを表示
→イベント制御:「イベント処理中断」を入力

※メッセージのモードには「流れるメッセージ」を指定してね。


次は実際に味方を召喚する処理よ。基本システムのコモン「○メンバーの増減」を使うだけだから簡単だけど、それだけじゃ寂しいからメッセージやアニメーションも入れましょう(別になくてもいいわよ)。
→コモン呼出:「X[戦]技能エフェクト描画」でお好みのアニメーションを指定
→サウンド:お好みのSEを指定
→イベント制御:アニメーション再生用のウェイトを適当なフレーム数だけ入力
→コモン呼出:「◆[戦闘用]メッセージ表示」で味方を召喚した旨のメッセージを表示
→コモン呼出:「○メンバーの増減」でセルフ変数10番の主人公を仲間に加える

※表示される召喚キャラクターの名前には、特殊文字「\cself[5]」でセルフ文字列5番を使うのよ。


最後に召喚した味方のIDと残りターンを可変DBに書込んで終了よ。
→可変DB書込:「パーティー情報-メイン設定-召喚中のキャラ」にセルフ変数10番を書込む
→可変DB書込:「「パーティー情報-メイン設定-召喚残りターン」に「5」を書込む

召喚したキャラを送還するコモンを作成する


次は召喚した味方を送還(戻す)するためのコモンを作成するわ。これは「5ターン経過した時」、「戦闘が終了した時」「技能から呼び出した時」に呼び出すのよ。
→コモン作成:名前「〇召喚キャラを送還」、起動条件「呼び出しのみ」


セルフ変数の設定はこちら。0番を使っているのは入力設定で「送還するのが戦闘中か戦闘終了時か」を設定させるためよ。


こんな感じで「戦闘中か」と「戦闘終了時か」の選択を入力設定に作っておいてね。
→数値1:名前「タイミング」、選択肢「0:戦闘中」「1:戦闘終了時」を設定

ちなみになぜこんなことをするかというと、戦闘中に送還する場合だけ「帰っていった」というメッセージを表示させたいからよ(戦闘終了時の自動送還にはメッセージはなくてもいいわよね?)。


最初に作るのは「召喚中の味方がいない場合はコモンを終了させる処理」よ。技能からも任意で呼び出せるコモンだから、誰も召喚されていない場合の処理も必要になるわ。
→条件分岐:可変DB「パーティー情報-メイン設定-召喚中のキャラが-1以下」を作成
→コモン呼出:「◆[戦闘用]メッセージ表示」で誰も召喚されていない旨のメッセージを表示
→イベント制御:「イベント処理中断」を入力


次に送還対象(召喚されているキャラ)がいる場合の処理。まずは対象キャラの主人公IDと名前を読み込むわ。
→可変DB読込:「パーティー情報-メイン設定-召喚中のキャラ」をセルフ変数10番に代入する
→可変DB読込:「主人公ステータス-(セルフ変数10番)-キャラ名」をセルフ文字列5番に代入する


次は「〇〇は帰っていった」的なメッセージの表示よ。前述の通り戦闘終了時の送還では表示させたくないから、条件分岐で判別させるわ(セルフ変数0が0の場合のみ)。
→条件分岐:「セルフ変数0番が0と同じ」を作成
→コモン呼出:「◆[戦闘用]メッセージ表示」で味方を送還した旨のメッセージを表示
→サウンド:お好みのSEを指定


次は送還するキャラを仲間から外す処理。召喚した時と同じく「○メンバーの増減」コモンを使えばいいわ。でもそれだけだと次に召喚した時にHPやSPが消耗したままになっちゃうから、「〇回復・ダメージ処理」で完全回復させておきましょう。
→コモン呼出:「○メンバーの増減」でセルフ変数10番の主人公を仲間から外す
→コモン呼出:「○回復・ダメージ処理」でセルフ変数10番の主人公を完全回復させる


後は召喚時に書込んだ可変DBを初期化すれば完了よ。
→可変DB書込:「パーティー情報-メイン設定-召喚中のキャラ」に「-1」を書込む
→可変DB書込:「「パーティー情報-メイン設定-召喚残りターン」に「0」を書込む

ここまでが「味方を召喚するコモン」と「召喚した味方を送還するコモン」の解説よ。

後は「戦ってくれる残りターンを管理して期限がきたら送還するコモン」の作成と、これら作成したコモンを戦闘中に呼び出すための設定が必要だけど、長くなったから続きは次の投稿にしましょうか。

↓前回の投稿 続きなのよー。残っているのは後は「戦ってくれる残りターンを管理して期限がきたら送還するコモン」の作成と、これら作成したコモンを戦闘中に呼び出すための設定...