見出し画像

ウディタ講座 第4回 バトルイベント(前編)

今回は戦闘中に特定タイミングで呼び出されるイベントを扱っていきます。基本システムには戦闘開始時/終了時、および、ターン開始時/終了時に毎回呼び出されるイベントが標準で用意されています。とは言っても初期状態では中身は空っぽです。全てユーザが作成していくわけです。

講座04_01_デフォルト

この講座でやること

・F3キー(デバッグウインドウ)の利用
・1行動終了時に呼び出されるイベントの追加
・戦闘開始時、条件を満たしている場合にステータス上昇

Step1 呼び出しタイミングの確認

まずは基本システムでこれらのイベントがいつ呼び出されるかを見ていきます。「A 文章の表示」からデバッグ文を挿入してみましょう。画像はコモン203『○[変更可]戦闘開始時処理』ですが、204~206にも同様に。

講座04_02_デバッグ文追加

テストプレイを実行したら、F3キーを押してデバッグウインドウを表示してください。この状態で戦闘に突入すると先ほど追加したデバッグ文が表示されるはずです。
※途中の「●行動」で始まる行は基本システムが出力しているデバッグ文なので気にしないでください。コモン217『X┃┗◆1行動ループ』の末尾で表示されています。

講座04_03_デバッグ文表示結果

Step2 1行動終了時の処理の追加

ここでこんな疑問を抱いた方もいるでしょう。
「ターンの途中、キャラが行動するごとに呼ばれるイベントは無いの?」
残念ながら無いようです。そんな時は自分で作ってみましょう。
 
まずコモン223に『○1行動終了処理』というコモンを作成します。コモン203~206と同じようにデバッグメッセージを表示できるようにしましょう。

講座04_04_コモン作成

引数で編成何番目のキャラが動いたかを受け取れるようにしておきます。数値1にチェックを付けて「発動者スロット」と名付けておきましょう。

講座04_05_コモン引数設定

コモン195『X┣◆1ターンの処理を実行』の32行目にコモン223の呼び出しを追加します。発動者スロットにはcself[16]を渡してください。

講座04_06_コモン呼び出し部分

講座04_07_コモン呼び出し詳細設定

テストプレイで正しく動作することを確認しておきましょう。直上の「●行動」の発動者と同じ番号が表示されていたら成功です。

講座04_08_1行動終了処理_実行テスト

Step3 使用例

これを使えば色々なことができます。毎ターン終了時の自動回復とか、戦闘開始時に条件に応じて特定の効果をかけるなどです。今回は例として「特定キャラが特定種別の武器を装備している場合、戦闘開始時にバフ効果」を考えてみます。
 
画像の赤髪のキャラ(ID=3:明日華)は侍系キャラなので装備タイプ=15:刀の武器を装備している場合に、緑髪のキャラ(ID=6:エルネスタ)は銃士系キャラなので装備タイプ=16:銃の武器を装備している場合に、それぞれバフ効果をかけてみます。

講座04_11_明日華とエルネスタ

まずudb[5]で装備タイプを追加。15番『刀』と16番『銃』を追加しました。

講座04_12_装備タイプ追加

udb[3]でその装備タイプを持つ武器を追加。25番『無銘刀』と26番『61式魔導銃』を追加しました。

講座04_13_装備追加

cdb[0]でキャラに装備可能武器の設定をします。比較の為、明日華とエルネスタの両方に刀と銃を設定しました。

講座04_14_装備設定追加

Step4 処理の作成

いよいよ本題。コモン203『○[変更可]戦闘開始時処理』に実際の処理を組んでいきます。
 
味方側の全スロットを調べる必要がある為、パーティ人数(cdb[18:4:0])分のループを回します。ループカウンタはcself[10]を使用します(これが今見ているスロット番号)。
スロット番号からのキャラID取得にはコモン141を、キャラの装備武器IDの取得にはコモン21『▲装備取得』を使用します。武器IDからの装備タイプの取得はDB読込を使用しましょう。
※素手(武器ID=-1)の場合の処理もお忘れなく!

講座04_15_ループ作成

ループ内でキャラIDと装備タイプが条件を満たしている場合、能力値を上昇させる処理を作成します。攻撃力はコモン135『X[戦]パラメータ増減』で上げられるのでそちらから。クリティカル率はコモン135が使えないので直接DBに書き込みます。 
今はテストなので数値は過剰なくらいにしておきましょう。そうでないと確認がしにくいですので……

講座04_16_バフ効果作成

Step5 テストプレイ

毎度お馴染み、お楽しみの実行タイムです。明日華に刀を、エルネスタに銃を装備して攻撃しましょう。数値以上の効果が得られているはずです。
確認したら次は装備を逆にしてみましょう。今度は数値並の効果しか得られないはずです。

講座04_17_テストプレイ

※上記画像の「オオカミ」はデフォルト敵の1体ですが、こいつは生意気にも物理耐性を持ってやがるのでご注意を。「あれ? ダメージが低い?」と思っても焦らないように。

補足:応用例

今回の講座の内容を応用すれば、ターン終了時に「特定のキャラ」かつ「現在HPが0」かつ「他に生存者がいる」場合にHP50%で蘇生なんてこともできたりします。難しく……はないですがひたすら面倒なので、コモンと実行例だけ上げておきます。 
ポイントは「戦闘不能の解除やHPの増減は基本システム標準のコモンを使用する」こと!(コモン4やコモン9のこと) さもないと変更が描画内容に反映されなかったりしますのでご注意を。詳細な解説は要望があればやるかもしれないし、やらないかもしれません。

講座04_21_自動復活コモン例

講座04_22_自動復活実行例


いいなと思ったら応援しよう!