【ウディタSRPG】改良①通常パート追加

銀日記さんのSRPGシステムは、通常パートから戦闘パートに移行する際にシステムを起動する想定で制作されているんですが、配布されているデータでは移行処理が省略されています。


まずはこれをなんとかしましょうっ!


SRPGシステムの起動を行っている処理はここ、コモンEv7[◆起動時イベント]ですね。

銀日記さんの第3回講座でも解説がありますが、どうやらこのコモンEvの起動条件を自動実行から呼び出しのみにすれば良さそう。


変数V2[起動時イベントフラグ]はこのコモンEvの起動条件にしか使われてないので、もう必要無いですね。削除します。


それと通常パートにはウディタの基本システムが必須なので、基本システムに銀日記さんのSRPGシステムをマージします。
なんで必須かって?僕が素人だからです!!基本システムがないと何もできないですww


そんなわけでまずは、SRPGコモンEvを全てコピーして、ウディタ基本システムに読み込みます!

銀日記さんのSRPG側:複数保存でコモンを出力して

ウディタ基本システム側:読込で先ほど出力したファイルを選択

キリのいい数字が良かったので、コモンEv220以降に上書きしました。
最新バージョンなので見た目も若干違うみたいですね。


同じようにユーザーDB可変DB変数、さらにキャラクター画像も出力と読み込みでコピーしていきます。
 ※「タイプ&全データ」をタイプ数分

  変更点
 1.ユーザーDB[すきる]スキルに変更
 2.可変DB[キャラデータ]ユニットデータに変更



通常変数V0[[サンプルゲーム]コック出現]は必要ないので削除(上書き)

  変更点
 通常変数V2[起動時イベントフラグ]は必要ないので削除





さらにDataフォルダ内の以下のファイルをコピペします。

BattleEffectフォルダ内
 Pショット・タックル・なぐる.png
 イ8F4C~1.PNG
 聖剣.png

CharaChipフォルダ内
 [Animal]Chicken_E.png
 [Monster]Goblin1_tapis_E.png

SystemGraphicフォルダ丸ごと




このマージ作業で一番大変なのが、SRPGコモンEvでDBの書き込みや読み込みを行っている箇所が全て直値になってるっていう点です。
どういうことかというと、例えば…


ユーザーDB[すきる]0番から20番に変更


可変DB[マップ情報]0番から22番に変更

となっているので、コモンEv側で呼び出している全ての以下のような箇所の数字を修正する必要があるわけです。

※可変DB0番は[主人公ステータス]だけどここは22番の[マップ情報]になってないといけない



これらをすべて修正するのは骨が折れますが、見落とすと後でバグるのは明白なので頑張るしかない…


さすがに全部のコモンEvを一行ずつ見ていくのは大変なので、パッと見で変更すべき箇所がわかるように一工夫する方法を考えてみました。
こちらで解説したので参考にしてみてください。


ウディタには名前呼び出し機能があるので、これも使っていきます。

というか基本システム云々よりも先にこの処理しておいた方がよかったのでは…←


完了☆




それとコモンEvの引数(入力内容)も変更が必要です。


これ自体はコモンEv220[■移動範囲計算]と、コモンEv224[■移動パネル表示]だけなので簡単ですが、問題なのは...
このコモンEvを呼び出している側も修正が必要
ということ。


例えばコモンEv238[☆計算のトリガー]

チェックを外して選択を修正


こんな感じに、コモンEv220[■移動範囲計算]と、コモンEv224[■移動パネル表示]を呼び出している箇所を探して修正していきます。
めんどくせーーーー!!!


  修正が必要だったコモンEv一覧
 コモンEv238[☆計算のトリガー]
 コモンEv241[┣攻撃位置の選択]
 コモンEv243[┗相手ターン]
 コモンEv265[■敵AI処理]
 コモンEv271[[スキル]自爆]
とはいえ、いざ探してみたらこれだけでした。


コモンEv271[[スキル]自爆]に関してはそもそも選択肢に該当の数値がなかったので、コモンEv220[■移動範囲計算]の入力内容に28[AI計算用紙①]を追加


コモンEvを呼び出している側の修正はこれで完了。




まだあります

コモンEv221[■検索範囲ごとの処理判定]の条件分岐も直値です...。

本当はこの修正方法は良くないのですが、とりあえず今は数字を直書きします。
後でちゃんと修正します。






で、最終的に戦闘パート用のマップとは別に、通常パート用のマップを作り、適当なマップEvを作って、話しかけるとコモンEv7[◆起動時イベント]を呼び出して主人公を戦闘パートのマップに移動させるようにします。


戦闘パート用のマップ作成


ユニット(マップEv)をこんな感じに並べておきます。


タグ番号設定で移動コストを設定します。
とりあえず移動できるタイルは1、移動できないマス(山とか)は20くらいに設定しておきます。


ゲーム設定の変更も忘れずに。



通常パート用のマップ作成
こんな感じの処理でいいでしょう。
ゲーム開始地点もこちらのマップに設定しておきます。



これで通常パートは追加できた…はず。
戦闘が終わると相変わらずゲームが即終了しますが、これはまた後で修正します。


最後に、このままだと戦闘中にメニューを開ける状態になってしまっているので、これを修正します。

基本システムのコモンEv126[X[移]歩行時_並列キー処理]に以下の処理を追加。


これで、変数V0[戦闘中?]が0の時でないとメニューは起動しない、というようになりました。


あとはコモンEv227[◆起動時イベント]変数V0[戦闘中?]に1をセットしてやればおkです。



お疲れ様でした。
次回からは細かい点を改良していきます。


コラム

DBの参照を効率的に変更する方法について考えてみたので紹介します。

といってもやることは単純で、以下の通り名前を適当に長くするだけです。

これで、変更すべき箇所が一目瞭然!!

※ただし名前を戻すのを忘れずに!!戻さないと基本システムがバグります



変数を変更する場合も同じ方法が使えそうです。


まあ変数についてはもっと効率的な方法で一気にババッ!とできそうなので、機会があれば解説しますね。