【ウディタ】身につけて歩くといいことがある装備

レビニアよ。今回の解説は身につけていると歩くたびにいいことが起きる装備の作り方よ。

1歩歩くたびにHPが回復したり経験値やお金が入手出来たりする装備って、RPGでたまに見かけるわよね。あれをウディタの基本システムで実現してみるのよ。

ちなみに今回作るのは↓の効力がある装備よ。もちろん他の装備や効力にすることもできるから、好みでアレンジしてみてね。

  • 1歩歩くたびに経験値が1もらえる装飾品
  • 1歩歩くたびにお金が1ゴールドもらえる装飾品
  • 1歩歩くたびにHPが1ポイント回復する装飾品
  • 1歩歩くたびにSPが1ポイント回復する装飾品

歩くといいことが起きる装飾品を作成する


まずは実際に装備する装飾品を用意しましょう。ユーザーDB4番「防具」の空きデータIDに以下のとおり設定してね。
→名前:ゴールドリング、ハッピーリング、ヒールリング、フォースリング
→装備可能箇所:防具3と防具4

効果は名前の通り、上から「お金入手」「経験値入手」「HP回復」「SP回復」よ。といっても効果自体はコモンで実行させるから、このDBでは名前と装備箇所以外を設定をする必要はないわ。他の項目は好みで設定してOKよ。

歩くと〇〇コモンを作成する

次はコモンイベントの作成。各キャラの装備品をチェックして、お金や経験値を増やしたりHPやSPを回復させる処理をするのよ。


空きIDにコモンを新規作成するわ。
→コモン作成:名前「〇歩くと金入手」、起動条件「呼び出しのみ」


使用するセルフ変数はこちら。サンプルゲームは装飾品の装備欄が2つあるから、それらをチェックするためのセルフ変数も2つ必要になるわ。


まずは効果を発揮する装備品のIDをDBから読み込むわ。歩くとお金が入手できる装飾品はゴールドリングだったわね。
→■DB読込(ユーザ): CSelf12[対象装備ID] = ユーザDB[タイプ防具(4) データゴールドリング(33)のデータ番号]


次はパーティメンバー全員の装備をチェックするためのループ処理を作るから、そのためのセルフ変数に初期値を入力するわ。
→■変数操作: CSelf10[主人公ID] = 0 + 0
→■変数操作: CSelf11[〇番目?] = 1 + 0


その下にパーティの人数だけ繰り返すループを作成するわ。
→■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回


現在のパーティ人数は、可変DBの「基本システム用変数-現在パーティー人数」に格納されているのよ。だからこれを変数呼び出し値で呼び出せば、パーティ人数分のループが1行で作れるわね。


まずは主人公IDの取得。
→ |■DB読込(可変): CSelf10[主人公ID] = 可変DB[ パーティー情報 : メイン設定 : CSelf11[〇番目?] ] (6 : 0 : -)


そして取得した主人公IDを指定して装備状況のチェック
→■イベントの挿入[名]: CSelf13[装備中アクセ1ID] = [“▲装備取得”] <コモンEv 21> / CSelf10[主人公ID] / 4:防具欄3 / 1:防具
→■イベントの挿入[名]: CSelf14[装備中アクセ2ID] = [“▲装備取得”] <コモンEv 21> / CSelf10[主人公ID] / 5:防具欄4 / 1:防具


仲間の装備状況はコモン「▲装備取得」で調べられるわ。装飾品欄は2つあるから両方チェックしてね。


そしたら条件分岐で効果対象の装飾品(ゴールドリング)と装備している装飾品が一致しているかチェックして、一致していたらコモン「〇お金の増減」を使って実際にお金を取得させるわ。
→ |■条件分岐(変数): 【1】 CSelf12[対象装備ID] が CSelf13[装備中アクセ1ID] と同じ
→|-◇分岐: 【1】 [ CSelf12[対象装備ID] が CSelf13[装備中アクセ1ID] と同じ ]の場合↓
→| |■イベントの挿入[名]: [“○お金の増減”] <コモンEv 3> / 1 / 0:なし
→|◇分岐終了◇
→|■条件分岐(変数): 【1】 CSelf12[対象装備ID] が CSelf14[装備中アクセ2ID] と同じ
→|-◇分岐: 【1】 [ CSelf12[対象装備ID] が CSelf14[装備中アクセ2ID] と同じ ]の場合↓
→| |■イベントの挿入[名]: [“○お金の増減”] <コモンEv 3> / 1 / 0:なし
→|◇分岐終了◇


最後に次のループのためにセルフ変数に+1。
→■変数操作: CSelf11[〇番目?] += 1 + 0 

これで「歩くとお金がもらえる装飾品」のコモンはできたわ。他の3つも作っていきましょう。といっても対象装備と効果を変えるだけだから、コモンのコピペで簡単に作れるわ。


まずは経験値が入手できる装備から。「〇歩くと金入手」コモンを丸ごとコピペして名前を変えて作成しましょう。セルフ変数はまったく同じでOKよ。
→コモン「〇歩くと金入手」をコピー
→名前を「〇歩くとEXP入手」に変更


対象装備の指定と効果の部分だけ修正して頂戴。
→■DB読込(ユーザ): CSelf12[対象装備ID] = ユーザDB[タイプ防具(4) データハッピーリング(34)のデータ番号]
→■イベントの挿入[名]: [“○能力値増減”] <コモンEv 7> / CSelf10[主人公ID] / 11:経験値 / 1 / 0:なし
→■イベントの挿入[名]: [“○能力値増減”] <コモンEv 7> / CSelf10[主人公ID] / 11:経験値 / 1 / 0:なし


経験値を入手させるには、基本システムのコモン「〇能力値増減」を呼び出せばいいわ。

あとの2つもコピペでサクッと作っていくわよ。


3つ目はHP回復装備「ヒールリング」のコモン。
→コモン「〇歩くとEXP入手」をコピー
→名前を「〇歩くとHP回復」に変更


同様に対象装備の指定と効果の部分だけ修正
→■DB読込(ユーザ): CSelf12[対象装備ID] = ユーザDB[タイプ防具(4) データヒールリング(35)のデータ番号]
→■イベントの挿入[名]: [“○能力値増減”] <コモンEv 7> / CSelf10[主人公ID] / 22:HP / 1 / 0:なし
→■イベントの挿入[名]: [“○能力値増減”] <コモンEv 7> / CSelf10[主人公ID] / 22:HP / 1 / 0:なし


最後にSP回復装備「フォースリング」のコモンもコピペで作成
→コモン「〇歩くとHP入手」をコピー
→名前を「〇歩くとSP回復」に変更


→■DB読込(ユーザ): CSelf12[対象装備ID] = ユーザDB[タイプ防具(4) データフォースリング(36)のデータ番号]
→■イベントの挿入[名]: [“○能力値増減”] <コモンEv 7> / CSelf10[主人公ID] / 23:SP / 1 / 0:なし
→■イベントの挿入[名]: [“○能力値増減”] <コモンEv 7> / CSelf10[主人公ID] / 23:SP / 1 / 0:なし

これでコモンは作成完了。あとはこのコモンを実際に歩行中に呼び出すための設定をすればいいわ。

歩くと〇〇コモンを歩行時に呼び出す

さて、どうやって主人公が歩いたかどうかを判別して作成したコモンを呼び出せばいいのかというと、これは基本システムのコモン「126:X[移]歩行時_並列キー処理」を修正すればいいのよ。

※以前の解説「【ウディタ】いろんな戦績を記録してみる④」でも使った方法ね。


110行目辺りに「1歩でも動いたかどうか」を判別している処理があるから、そこに作成した4コモンの呼び出しを入力してやればいいわ。X座標とY座標の両方に入力してね。
→■イベントの挿入[名]: [“〇歩くと金入手”] <コモンEv 262>
→■イベントの挿入[名]: [“〇歩くとEXP入手”] <コモンEv 263>
→■イベントの挿入[名]: [“〇歩くとHP回復”] <コモンEv 264>
→■イベントの挿入[名]: [“〇歩くとSP回復”] <コモンEv 265>

※ちなみにこのコモン「126:X[移]歩行時_並列キー処理」は、起動条件が並列実行だからコモンのコピペは×よ。元からあるコモンを直接改造してね。

これで「歩くと〇〇装備」の基本システムへの導入は全て完了! お疲れさまでした。

「歩くと〇〇装備」を試してみる


それじゃテストしましょう。まずは歩くとお金がもらえる装飾品「ゴールドリング」から。元々の所持金は100000ゴールドなのだけど……。


成功! 1歩ごとに1ゴールド入手しているわね。


次は歩くと経験値がもらえる「ハッピーリング」


歩いただけで経験値がもらえてレベルアップまでしたわ。レベルアップ時になんのアナウンスも起きないのが残念だけど、これはやむを得ないわね。


最後に歩くとHPが回復する「ヒールリング」SPが回復する「フォースリング」を同時にテスト。HPとSPはあらかじめ減らしてあるわ。


枯渇していたHPとSPが歩くたびに回復。うまくできたかしら?

「身につけていると歩くたびにいいことが起きる装備の作り方」解説は以上よ。

冒頭で言った通り発生する効果はアレンジ可能よ。例えば「逆にお金やHPが減少してしまううえに外せない呪いの装備」なんていうのも面白かもしれないわね。いろいろ試してみて頂戴。