【ウディタ】基本システムでパッシブスキル②「毎ターン終了時に発動」

レビニアよ。今回の解説は「基本システムにパッシブスキルを実装してみよう②」なのよ。

第1回では「戦闘終了時に発動」だったけど、第2回目の解説では毎ターン終了時に自動で発動するパッシブスキルを作成するわ。

ぶっちゃけ第1回とやり方はほとんど変わらないから、未読の方はお手数だけど前回の解説からご参照くださいね。

レビニアよ。今回の解説は「基本システムにパッシブスキルを実装してみよう①」なのよ。 パッシブスキルというのは、「習得していると自動で発動したり常に効果が表れる技能」のことね。...

ターン終了時に自動発動する技能を作成する

例として「習得しているとターン終了時にHPが50ポイント回復する技能」を作成してみるわね。技能名は「サガ2秘宝伝説」から拝借して「自己修復」としましょう。


まずはユーザーDB0番「技能」でパッシブスキルを作成。この項目自体で効果を設定するわけじゃないから、名前と説明だけ入れて、使用不可の技能にするだけでいいわよ。
→名前:【自己修復】
→使用可能シーン:使用不可


技能を用意したら次はコモンイベントを作成。
→コモン作成:名前「〇P技能:ターン終了時発動」、起動条件「呼び出しのみ」

スキルの効果はこのコモンで発動させるわ。「パーティ全員の習得技能をチェックして、自己修復を覚えていたらHPを50ポイント回復させる」のね。

ちなみに処理自体はほとんど前回の「〇P技能:戦闘終了時発動」と一緒だから、コモンをコピペして修正して作った方が早いと思うわ。


セルフ変数の設定は前回と一緒よ。


まずはメンバーの習得技能をチェックするためのループを作成。ここも前回と一緒ね。
→■変数操作: CSelf10[主人公ID] = 0 + 0
→■変数操作: CSelf11[〇番目?] = 1 + 0
→■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回


ループ回数には「118000400」を指定して、現在のパーティ人数の回数だけループさせるのも一緒よ。


そして該当する主人公の習得している技能をチェック
→■DB読込(可変): CSelf10[主人公ID] = 可変DB[ パーティー情報 : メイン設定 : CSelf11[〇番目?] ] (6 : 0 : -)
→■イベントの挿入[名]: CSelf12[習得している?] = [“▲特殊技能の有無取得”] <コモンEv 25> / CSelf10[主人公ID] / 42:【自己修復】


やはり同様に「▲習得技能の有無取得」を使って技能の習得状況をチェックするわ。対象主人公にセルフ変数10番を指定、返り値の代入先にセルフ変数12番を指定するのを忘れないでね。


そして、技能「自己修復」を覚えていたらHPを50ポイント回復させる。
→■条件分岐(変数): 【1】 CSelf12[習得している?] が 1 と同じ
→-◇分岐: 【1】 [ CSelf12[習得している?] が 1 と同じ ]の場合↓
→|■イベントの挿入[名]: [“○回復・ダメージ処理”] <コモンEv 4> / 1:HPの回復・減少 / CSelf10[主人公ID] / 50
→◇分岐終了◇


最後にループ用の変数に+1して終了。
→■変数操作: CSelf11[PTの〇番目?] += 1 + 0

※他にもターン終了時に発動させたいパッシブスキルを作りたければ、同じく技能を作って発動効果をこのコモンに追記してね。コピペして対象技能と効果だけ変えるだけでいいわ。

あとはこのコモンを毎ターン終了時に呼び出して実行させればいいわね。前回は「○[変更可]戦闘終了後処理」を使ったけど、


今度は「○[変更可]1ターン終了時処理」から呼び出すのよ。
→■イベントの挿入[名]: [“〇P技能:ターン終了時発動”] <コモンEv 268> 

※「1ターン」と名前がついているけど、別に1ターン目だけしか実行されないわけじゃなく、ちゃんと毎ターンの終了時に実行されるから大丈夫よ。

これで毎ターンHPを50ポイント回復してくれるパッシブスキル「自己修復」が完成よ。

ターン終了時に自動発動する技能を試してみる

それじゃテストしてみましょう。前回と同様に「スキルを習得していない状態」「スキルを習得した状態」の2通りで戦闘をしたところを動画にまとめたわ↓。


技能を習得した状態で、毎ターン終了時にHPが回復していれば成功よ。うまくできた?

「基本システムでパッシブスキル②:毎ターン終了時に自動発動する技能」の作成解説は以上よ。

ちなみに今回活用した「○[変更可]1ターン終了時処理」だけど、うまく使えばとても便利なのよ。

例えば、セルフ変数にターン数をカウントさせておけば「特定のターン数のみイベントや技能を発生させる」ということもできるわ。いろいろ試してみてね。