19.デバッグ&調整

ここでは、ゲームが一通り完成してからの不具合を見つけ修正していく「デバッグ」作業の効率的な進め方を考えたり、「戦闘バランスの調整」やゲームに細かい要素の追加などをしていきます。

デバッグのコツ

「デバッグ」は安心してプレイしてもらえる作品を作るために非常に重要です。どんなに良い作品でも、不具合(バグ)が残っていると楽しめなくなってしまいます。

不具合もゲームの進行に大きな影響を及ぼすものから、台詞の誤字脱字といった細かいものまで、色々発生する可能性があります。

こういったゲームに限らずですが、はじめから何の問題も発生せずに一発で完璧なものが仕上がることはありえませんので、何度も繰り返しチェックを行って、できるだけ不具合を修正していく努力が必要です。

大きな不具合はすぐに気付くでしょうが、大きいものだけに修正が大変かもしれません。台詞の誤字脱字は細かいものですが、重要なシーンでそういうものが残っていた場合に、プレイしている方から見ると萎えてしまいますので、放置しておくわけにはいきません。

こうした不具合を見つけ修正を行って行く「デバッグ」は地味な作業ではありますが、なるべく効率的に進めていける方法を考えていきたいと思います。

デバッグに便利な機能

ウディタには「テストプレイ」時のみ有効な「デバッグ」用機能がいくつ備わっています。
機能を把握して、活用していきましょう。

「デバッグウィンドウ」 ■対応キー:[F3]

ウディタからのエラー情報や、イベントコマンド「文章の表示」にある「デバッグ文」機能による文章を表示することができるサブウィンドウです。

テストプレイ中に「F3キー」を押すか、テストプレイ前に「ゲーム設定」>「デバッグウィンドウ使用」をチェックしておくと表示させることができます。
またデバッグウィンドウ表示中ゲーム画面側で「F3キー」を押すとデバッグウィンドウが非表示になり、もう一度押すとデバッグウィンドウに表示されていた内容がリセットされます。

マップイベントやコモンイベントで「文章の表示」コマンドを使用して、文章を入力し、「デバッグ文」を押すことで、デバッグウィンドウに表示させるデバッグ文として機能させることができます。

変数の値などを表示できる特殊文字なども使用できます。

デバッグウィンドウでは右下の「ログ保存ボタン」を押すと、現在表示されているデバッグ文をテキストファイルとして保存することができます。
スクリーンショット画像と同じで、ウディタの実行ファイルなどがあるフォルダに保存されています。

デバッグウィンドウ中で範囲選択して、デバッグ文をコピーすることも出来ます。

デバッグウィンドウに表示されるデバッグ文の末尾には「[MapEv15/1行]」といったデバッグ文の表示が実行されている「イベントID」と「行数」が表示されるため、どこのイベントで表示されているデバッグ文なのかすぐにわかります。

マップイベント、コモンイベントのIDはそれぞれのイベント編集画面上で確認することが出来ます。
イベントコマンドの行数については、コモンイベントのみ右上に現在選択されている行数が表示されています。また、ここに行数を入力することでその行を素早く選択することもできます。

「デバッグデータ」 ■対応キー:[F8]

現在読み込まれているファイル情報(各種画像ファイル(マップ画像やキャラクター画像やピクチャとして読み込まれている画像)、各種サウンドファイル)や、現在表示されているピクチャの番号を表示します。

他に、並列処理で実行中の「コモンイベントID」と現在実行中の「イベントID」も表示されます。 

画像の表示やサウンドの再生が行われていない場合に、ファイルがきちんと読み込まれているのかを確認するのに便利です。

また、ゲーム画面の上部にステータス表示を行うことができ、イベント実行時に負荷などをリアルタイムで確認することが出来ます。
もし違う表示になっている時は、「F8キー」を押すことで表示されます。

「変数一覧」 ■対応キー:[F9]

「通常変数」「予備変数」「文字列変数」「システム変数」「システム文字列」の「番号」・「変数名」・「格納されている値」を一覧を表示します。

画面表示後に何かしらキーを押すかマウスでクリックすると次ページへ表示が切り替ります。 これは「通常変数」に設定してある「フラグ」の状態を確認することができますので、ゲームの進行がうまく処理されているか確認するのに欠かせない機能です。
また、「システム変数」にもゲーム状態を表す重要な情報が設定されていますので、こういったデータを確認できるのも非常に便利です。

「ピクチャ詳細一覧」 ■対応キー:[F7]

現在画面上に表示されているピクチャの詳細を表示することが出来ます。

ピクチャ番号やピクチャを表示させているイベントIDと行数、画面上でのおおまかな形状と位置などを確認することが出来ます。

ピクチャが表示されているかどうかを確認するのに便利です。
座標設定を誤っていて画面外に表示されていたり、不透明度や拡大率の設定を誤っていて画面上では見えなくなっている場合などの発見に役立ちます。

「データ読み込み」 ■対応キー:[F11]

現在のプレイヤーの位置を保持したまま、
「マップファイル」「タイルセット設定」「コモンイベント」「ユーザデータベース」「システムデータベース」をファイルから再読み込みします。 これも非常に便利な機能です。

マップに使用しているマップチップ画像を変更した場合や、マップに配置した「イベント」の位置や内容を変更した場合も一からテストプレイすることなく、変更内容を反映し確認することができます。
台詞などにちょっとした誤字脱字を見つけた場合も修正して、即時に修正結果を確認することができます。
ゲームを起動させたままリアルタイムに修正・反映・確認ができるのが非常に便利です。

ただし、「可変データベース」は更新されないため、主人公のステータスやパーティー情報、所持アイテム個数などは変更されません。


その他の役立つ機能

また、「テストプレイ」時だけでなく、通常使える機能にも「デバッグ」に有効なものがあります。

  • サブキー、戦闘中に押すと戦闘が高速化 ■対応キー:[Cキー] [Shift]
    戦闘バランスの調整をしたり、通しプレイをしてイベント進行を確認したりする場合に、戦闘に掛かる時間というのはけっこう多くなってきます。この機能を使って多少短縮することで、全体的な「デバッグ」時間も短縮されます。
  • 「画面サイズの変更」(ウィンドウモード時のみ) ■対応キー:[F4]
    下記の3種類の画面サイズに切り替えていきます。
    ・320×240(ゲームの画面解像度が「320×240」でグラフィックモードが「3Dモード」の場合のみ)
    ・640×480(デフォルトサイズ)
    ・疑似フルスクリーン(ディスプレイに合わせた最大のサイズ、処理がやや重くなります) 画面サイズを変更することで見えてくる不具合というのもあります。
    例えば、
     マップチップが欠けている:「マップチップ画像」がうまくマップに配置されていない。
     キャラの見た目的な動きがおかしい:「キャラチップ画像」のパターン配置が間違っている。
     画像に不自然なゴミが?:画像自体の塗り残しや消し忘れなど。
    といったものを発見できる可能性があります。大きく表示した際は細かいところを、小さく表示した際は全体の広い範囲で確認しやすいと思います。
  • 「ポーズ」 ■対応キー:[F10]
    画面の動きを一時停止します。 イベント中の動作なども一時停止しますので、イベント中のキャラクターの動きを確認したりできます。
  • 「ゲームのリセット」 ■対応キー:[F12]
    タイトル画面(ゲーム開始位置)に戻る。 これも「デバッグ」でよく使う機能になると思います。
    「ゲーム開始位置」からの再開なので、「ゲーム開始位置」を特定のイベントの近くに設定し、動作を確認してはリセットでまた「ゲーム開始位置」から再開して確認というかんじです。
    [F11]「データの再読込」でも補える部分はあるのですが、「可変データベース」を変更した場合は対応できないので、両方をうまく使っていきましょう。
  • 「スクリーショットの撮影」 ■対応キー:[PrintScreen][ScrollLock][Pause]
    ※一部環境では[PrintScreen]が機能しない場合があります。また、ノートパソコン等のキーボードの場合は「Fn」キーを押しながらでないと[PrintScreen]キーが押せません。
    撮影されたゲーム画面の画像はGame.exeがあるフォルダに保存されます。 こちらはチームで作業を進める際に、「デバッグ」してくれるメンバーからの不具合報告などに便利です。
    言葉や文字で足りるものもありますが、やはり画面を見るのが一番わかりやすいので、伝えにくい不具合などはこの機能でゲーム画面を保存して、活用しましょう。

その他の操作方法については、逆引き辞典 ウディタでの操作を参照してください。

コマンド文・イベントコードのクリップボードへコピー

こちらは作成したイベントがうまく動作しないときなど、友人やネット上などで質問するのに便利な機能です。
スクリーンショット画像などでもいいですが、コピペすることで相手の環境でもある程度実行可能な形式で渡せるので、ちょっと内容を確認してもらうのに便利です。

マップイベントやコモンイベントのイベントコマンド表示欄でイベントコマンド文を範囲選択し、右クリックメニューから下記の3つの機能が実行できます。

  • 「コマンド文→クリップボードへコピー」
    コマンド文をそのままの表示状態でクリップボードにコピーしてテキストとして使用可能です。
  • 「イベントコード→クリップボードへコピー」
    コマンド文をウディタでイベントコマンドとして処理可能な形式(イベントコード)でクリップボードにコピーします。
  • 「クリップボード→コード貼り付け」
    クリップボードにある「イベントコード」をコマンド表示欄にイベントコマンド文として貼り付けます。
    友人やネット上から送ってもらった「イベントコード」をコピペして自分の作品内で簡単に使用することができます。

「コマンド文→クリップボードへコピー」 でコピーした内容です。

「イベントコード→クリップボードへコピー」 でコピーした内容です。

ゲーム開始位置に設定

もう一つ、これまでの記事の中でも何度も使用してきましたが、「マップエディタ」上で設定できる「ゲーム開始位置に設定」「デバッグ」にたいへん役立ちます。

通常は「タイトル画面」など、そのままの意味でゲームが開始される場所に設定しますが、ここが最初にプレイヤーキャラが配置される場所になりますので、作ったばかりの特定のイベントの目の前に「ゲーム開始位置に設定」を設置し、テストプレイですぐにイベントの動作確認ができたりします。

あとは新しく作ったマップを確認する際にも、そのマップ上に「ゲーム開始位置に設定」を設定すれば、既存のマップとの場所移動設定をしていなくても、ゲーム内で新しいマップの確認ができます。

今回の制作で「タイトル画面」を最後の方で制作したのも、こういった手法で「ゲーム開始位置に設定」を変更しながら制作していたためだったりします。
この「ゲーム開始位置に設定」の活用方法もぜひ習得しましょう。

デバッグの進め方

「デバッグ」の進め方は色々あると思いますが、参考例で筆者の手順をご紹介します。

都度都度で動作確認しながら、ゲームが一通り完成した状態とします。

まずはゲームをはじめからおわりまで淡々とプレイしていく「通しプレイ」を何度かやってみます。

「通しプレイ」では、いらなくなったプリント用紙の裏側とペンを用意して、細かい誤字脱字から、イベント上の動作の不具合、演出のタイミングなど、問題がある部分をかたっぱしから、紙にメモしていきます。

どうしても気になったものは、途中で修正する作業をしてしまうのですが、基本的には「ゲームクリア」まで修正作業はせずに不具合の洗い出しだけに専念します。

数回か「通しプレイ」→「修正」を繰り返したら、今度は「イレギュラーな操作」をしてみます。

RPGで言うと、ストーリー上はAという街に行かなければならないのに、Bという街に行ってみたり、通常は選ばないような選択肢を実行してみたり、といった行為です。

こういうのをやると、倒していないはずのボスモンスターを倒したことになって、街の人が感謝の台詞を行ってくれたり、死んだはずのNPCが生き返っていたりと主にストーリー上のおかしな問題が発覚していきます。

主にストーリー上の「フラグ管理」がきちんと出来ていないのが、原因ですが、ひどい状況に驚き・大笑しながら・そしてため息をついて、淡々と修正していきます。

場合によっては台詞を追加したり、新たなイベントを用意する必要がありますので、けっこう時間が掛かる可能性があります。

そして、再び「通しプレイ」を数回行い、問題がなさそうというところで完成とします。

こだわり出すと、終わらないところもあったり、だんだんプレイしていて、ここをこうしたいとかああしたいとかの願望も出てきてしまいますので、ある程度妥協して、一度完成としましょう。

大雑把にですが、このような流れで「デバッグ」を進めています。
基本はやっぱり何度もプレイするということに尽きますね。

紙とペンという部分は、最近はPCモニターも大画面のものが安くなってますから、ゲームとテキストエディタを並べて、テキストエディタに不具合を書いていくのも良いと思います。

チームで制作している場合は「デバッグ」期間を決めて、この日まで不具合を上げてもらい、修正期間を設け上がった不具合をまとめて修正し、最新版の「デバッグ」というのを繰り返しですね。当たり前ですが、チーム作業の場合はスケジュールというのが大事です。

デバッグメニューの作成

「デバッグ」はなるべくプレイヤーと同じ状況でプレイすることで、不具合の状況を的確に把握することができますが、プレイ時間が長めになるRPGなどでは、「通しプレイ」を数回するだけで、何時間~何十時間ととても時間が掛かってしまいます。

そこで、「デバッグ」時間を短縮するために、ある程度「デバッグ」が楽になるような機能をゲーム内に盛りこんでおきます。

例えば、ストーリー部分の進行だけ見て行きたくてプレイする時は、ザコ敵との戦闘はしたくないですし、ボスとの戦闘も楽にしたいものです。そういう場合は、「雑魚敵が出現しなくなる機能」や「味方キャラの強さが最高になる機能」というのを付けておくと、非常に楽です。

今回は以下の機能を盛り込んだ「デバッグメニュー」を実際に作っていきます。

  • 「ワープ」:特定の場所に瞬時に移動させます。
    今回は「村の入り口」、「森の入口」「森の奥」、「フィールド」の4ヶ所に移動できるようにします。
  • 「フラグON/OFF」:特定のフラグのON/OFFを切り替えます。
    フラグのON/OFFは安易に行うと、ゲーム進行がおかしくなる可能性がありますので、今回は問題が少なそうな「森入った」、「薬草入手」の2つのフラグを対象とします。
  • 「戦闘」:特定の敵グループと戦闘を発生させます。
    今回は「スライム×1」と「森のボス」と戦闘できるようにします。
    これは後の内容で、大幅な改造をします。
  • 「全回復」:HP/SP/状態異常を全回復します。
  • 「ザコ敵出現OFF」:ザコ敵を出現しないようにします。
    もう一度実行すると出現するようになります。

この「デバッグメニュー」はゲーム中にキーボードの「Dキー」を押すことで表示されるようにします。

それでは、さっそく作っていきましょう。

どのマップにいても呼び出せるようにしたいため、「コモンイベント」で作っていきます。

「コモンイベントエディタ」を開き、「222番」を選択、名前「デバッグメニュー」とします。
起動条件「並列実行(常時)」とすることで、常にこの「コモンイベント」の内容を実行することができます。

ゲームを本公開する段階になったら、「デバッグメニュー」は表示されないようにしなければいけませんので、起動条件「呼び出しのみ」に変更しましょう。

キー入力受け付け

キーボードの「Dキー」が押されたらという処理を作っていきます。

「キー入力」で、「キー入力受け付け」にチェックをし、「キー種」を「キーボード全キー」、「キーコード」は「132(Dキー)」、「特定キーのみ判定」「キーが押されるまで待つ」をチェックします。

「キーが押されるまで待つ」としたことで、「Dキー」が押されたら次のイベントコマンド文を実行するようになったので、「代入先」は特に意識する必要はありません。。

キーコードについてはキーコードを参照してください。
また、下の欄に入力したキーコードの対応キー名が表示されます。

メニュー項目の設定

次は「メニュー」を表示していきます。

「選択肢」で、「デバッグメニュー」の機能名を入力していきます。
これで、各「選択肢」ごとの分岐が作られます。

各機能ごとの分岐が作られましたので、あとは各機能ごとに処理を入力していくだけです。

「ワープ」機能の作成

まずは「ワープ」から見ていきます。
「選択肢」で、「ワープ」先の名称を入力していきます。
これで、各「ワープ」先ごとの分岐が作られます。

各分岐ごとに「ワープ」先「場所移動」する処理を入れていきます。
「ワープ」機能の処理はこれで完了です。
他の機能もそうですが、「デバッグ」用の機能なので、特に余計な演出はせずに目的の処理だけを実行する簡素なものにします。

「フラグON/OFF」の作成

「フラグON/OFF」も同様に「選択肢」で、操作する「フラグ」の名称を入力していきます。
これで、各「フラグ」ごとの分岐が作られます。

今度は選ばれた「フラグ」の値を判断して、「0:フラグが立っていない場合」(0 と同じ)、「1:フラグが立っている場合」(「上記以外の場合」を作成にチェック)に分岐させていきます。

「0:フラグが立っていない場合」は「フラグ」を「1」にします。

「1:フラグが立っている場合」は「フラグ」を「0」にします。

「戦闘」の作成

「戦闘」も同様に「選択肢」で、戦闘をする「敵グループ」の名称を入力していきます。
これで、各「敵グループ」ごとの分岐が作られます。

「コモンイベント」で、「コモンイベント28:バトルの発生」を呼び出して、戦闘させる敵グループ番号を選択します。

ただ、「並列実行時」のデバックメニューの中で「コモンイベント28:バトル発生」を呼び出して実行すると、うまく動作しないため、デバッグメニューを終了してから「コモンイベント28:バトル発生」を実行するようにします。

「コモンイベント28:バトル発生」で敵グループ番号などの設定をしてから、「予約」をチェックします。
こうすることで、現在実行している「コモンイベント222:デバックメニュー」が終了後に「コモンイベント28:バトル発生」が実行されるようになります。

現在実行している「コモンイベント222:デバックメニュー」を終了させるには、「イベント制御」「イベント処理中断」を押します。

「全回復」の作成

「全回復」「コモンイベント」で、STEP18で作成した「コモンイベント220:全回復」を呼び出すだけです。

「ザコ敵出現OFF」の作成

「ザコ敵出現OFF」は、少し複雑になるのですが、まずは専用のフラグを作成する必要があります。
一旦、「システムデータベース」を開いて、「14:通常変数名 データ10番」「フラグ:ザコ敵出現OFF」を追加します。

また、「フラグ:ザコ敵出現OFF」が機能するように、マップ上に配置してあるザコ敵が出現するすべてのイベント内容を修正していきます。

起動条件「フラグ:ザコ敵出現OFF」を「0:フラグが立っていない場合」とするだけです。
これで「フラグ:ザコ敵出現OFF」が「0:フラグが立っていない場合」のみイベントが実行され、「1:フラグが立っている場合」はイベントが実行されません。

「コモンイベントエディタ」に戻り、「フラグON/OFF」機能で行った処理と同様に「フラグ」の値を判断して、「0:フラグが立っていない場合」(0 と同じ)、「1:フラグが立っている場合」(「上記以外の場合」を作成をチェック)に分岐させていきます。

「0:フラグが立っていない場合」は「フラグ」を「1」にします。

「1:フラグが立っている場合」は「フラグ」を「0」にします。

以上で、「デバッグメニュー」が完成しましたの、「OKボタン」を押して「コモンイベント」を保存します。

デバッグメニューの完成

こちらが「デバッグメニュー」の全処理です。
分岐が多いので、長くなっていますが、処理自体は単純なものになっています。

テストプレイで問題なく、「Dキー」を押して「デバッグメニュー」がを表示し機能させることができました。

今回の「デバッグメニュー」で実装した機能以外にも、ウディタと「基本システム」でできることなら色々な機能を実装させることが出来ます。不自由に感じることがあったら、解決する機能を実装していく形で発展させていける項目だと思います。

また、ウディタの公式HPにある「WOLF RPGエディター コモンイベント集」には「デバッグ」機能に特化した「コモンイベント」がいくつか登録されていますので、そういったものを利用してみるのも良いと思います。

戦闘バランスの調整

RPGにおいて「戦闘」はゲーム性の主たる部分になります。
ここがきちんとできていないとゲームとして面白く感じられません。

今回の制作では、「基本システム」に実装されている「戦闘」の要素である「属性」(火属性の魔法などそういったもの。属性については別コーナーSTEP+4 属性の設定にて説明しております。)を取り上げていないため、より深い「戦闘」とはなりませんが、それとは別に適度な難易度というのが重要な要素になります。

敵が極端に強すぎたり・弱すぎたりするとプレイヤーは面白いと感じてくれませんので、うまく「戦闘のバランス」を調整しなければなりません。

そのためには何度と無く、実際にゲーム中での「戦闘」を行い、「敵・味方・技能」など各種パラメータを調整する必要があります。

ただ、「戦闘バランス」を調整するにあたって、毎回マップをうろうろして「戦闘」するのは効率がよくありません。

「デバッグメニューの作成」で作った「戦闘」機能のように、任意の「敵グループ」と「戦闘」できるような環境を作るのが効率的です。

「デバッグメニュー」上ですと、毎回「デバッグメニュー」を開いて「敵グループ」を選択する必要があるため、もっとスムーズに「戦闘」が開始できるような「戦闘バランス調整用マップ」をつくってみようと思います。

戦闘バランス調整用マップの作成

今回制作する「戦闘バランス調整用マップ」というのは、接触するとすぐに「戦闘が開始されるイベント」を多数配置したマップになります。

マップ上には「戦闘イベント」だけでなく、「全回復イベント」「マップ脱出イベント」も設置してみましょう。

これで延々と「戦闘」を行い、「戦闘バランスの調整」をしていくことができます。

マップを新規作成します。
不要ですが、BGMも設定しておきます。
タイルセットでダンジョンを使ってなかったので、ダンジョンのタイルセットを使ってみることにします。

マップを作ったら「マップ選択ウィンドウ」「データ更新ボタン」も押しておきましょう

「戦闘が開始されるイベント」は「敵グループ」の数分配置しますので、「ユーザーデータベース タイプ13:敵グループ」で「敵グループ」の数を確認します。

「敵グループ」の数は0~9で「10」でした。

無駄に装飾してみましたが、ざっくりとマップを作ってみました。

 は「敵が出現するイベント」の目印。
 は「全回復するイベント」の目印。
 は「フィールドマップに移動するイベント」(脱出用)の目印。

「敵が出現するイベント」の目印の上に「イベント」を設置します。
起動条件は「プレイヤー接触」です。

「コモンイベント28:バトルの発生」を呼び出す「イベントコマンド」を入力します。

はじめに作った「敵が出現するイベント」「イベントコピー」「イベント貼り付け」「Cキー」(コピー)「Vキー」(貼り付け)で複製していき、「コモンイベント28:バトル発生」を呼び出す「イベントコマンド」敵グループの設定だけ変更していきます。

「全回復するイベント」「フィールドマップに移動するイベント」(脱出用)起動条件は「プレイヤー接触」で作成し、各機能を設定して、マップは完成となります。

あとは「ゲーム開始位置に設定」をこのマップに設定してもいいですが、せっかくなので、「デバッグメニューの作成」で作った「デバッグメニュー」「戦闘」機能をこのマップに移動する内容に変更しておきます。

敵との戦闘メニュー部分を削除してあっさりとしてしまいました。

テストプレイで動作を確認します。

これで、「戦闘バランス調整用マップ」は完成しましたので、地道に「戦闘」をしながら、各種パラメータを調整していくのみです。

各種パラメータの設定方法についてはこちらを参照してください。
「STEP11 技能・ステータス状態の設定」「STEP12 敵の設定」「STEP13 味方の設定」

また、「デバッグに便利な機能」で説明した「データの再読込」(■対応キー:[F11])を活用すれば、「技能・ステータス状態の設定」「敵の設定」「アイテムの設定」がある「ユーザーデータベース」を編集しながら即反映できるので、より効率よく調整していくことができます。

ただし、「味方の設定」がある「可変データベース」「データの再読込」(■対応キー:[F11])には対応していないので、注意が必要です。


こちらは「デバッグ」作業の参考に。

「戦闘」をしつつ敵のパラメータを調整する際にバランスよく組めるよう、一度パラメータを「Googleスプレッドシート」に写して、全体を見ながら調整を行った際の画面になります。

ウディタの設定画面では全体のバランスがわかりにくいので、全体を見て各種パラメータの調整を行う場合は、入力作業の手間はかかるのですが、「Googleスプレッドシート」のような表計算ソフトを使うとたいへん便利です。

アイテムの追加

「ゲームバランスの調整」として、「アイテム」を2種類追加していきます。

「毒けし」アイテム

「STEP11 技能・ステータス状態の設定」「ステータス状態 毒」を及ぼす敵の「技能」を作成しましたが、「ステータス状態 毒」を回復する方法が「自宅のベッドでの回復」と「森の泉での回復」しかありませんので、「ステータス状態 毒」を回復する「アイテム」を作っていきます。

「アイテム設定」の詳細については「STEP10 アイテム&お店の設定」を参照してください。

追加する「アイテム」の詳細はこちら。

アイテムの種類アイテム名値段効果入手場所
消耗品毒けし30「ステータス状態 毒」を回復する道具屋

「ユーザーデータベース」を開き、タイプ「2:アイテム」「データ4番」に「毒けし」を追加していきます。基本的な設定は「下級キズ薬」などの回復アイテムと同様にして、「回復するステータス」で「毒」と設定すれば「毒けし」アイテムの完成です。

あとは、村の「道具屋」に商品として追加すれば完了です。
詳しい商品の追加の仕方は「STEP10のお店設定」を参照してください。

「ワープ」アイテム

今度は少し変り種の「アイテム」で、使用することにより村にワープできる「アイテム」を作っていきます。

これは予め「ワープするイベント」を作っておき、「アイテムを使用した時」「ワープするイベント」が呼び出されるという仕組みで実現できます。

追加する「アイテム」の詳細はこちら。

アイテムの種類アイテム名値段効果入手場所
消耗品村への道しるべ50村に瞬時に移動することができる道具屋

まずは、「ワープするイベント」を作成していきましょう。

この「イベント」はどこからでも呼び出せる「コモンイベント」で作っていくことにします。

「マップ」に設置された「イベント」「マップイベント」を設定することも出来ますが、その「マップイベント」がある「マップ」でしか機能しないものになります。

「コモンイベントエディタ」を開き、「223番」に「ワープアイテム」を追加します。

こちらが全処理内容になります。

画面を白くフラッシュさせたりしていますが、「STEP8のマップの移動設定」と同様に単純に「場所移動」をするイベントです。

完成したら、「OKボタン」「更新ボタン」を押して「コモンイベント」を保存します。

続いて、「アイテム設定」をしていきます。

「ユーザーデータベース」を開き、タイプ「2:アイテム」「データ5番」に「村への道しるべ」を追加します。基本的な設定は「下級キズ薬」などの消耗アイテムと同様にして、

  • 使用可能な場面を「マップ時だけ」。
  • 効果タイプ「イベント起動」
  • イベント番号指定「500223」
    イベント番号指定マップイベントの場合は「0~」コモンイベントの場合は「500000~」と指定しますので、「コモンイベント223番:ワープアイテム」を指定するには「500000+223」で「500223」となります。

コモンイベントの番号はコモンイベントエディタで確認できます。

これで、「ワープ」アイテムの完成です。

あとは、村の「道具屋」に商品として追加すれば完了です。
詳しい商品の追加の仕方は「STEP10のお店設定」を参照してください。

「アイテム入手イベント」の作成

「コモンイベント」を作成して行った「STEP18 お宝イベントを作ろう」は多少難しい内容になってしまいましたので、こちらではより簡単な「アイテム入手イベント」の作成していきます。

「アイテム入手イベント」は、そのままツボや宝箱を調べると、アイテムを発見入手する「イベント」となります。

「アイテムを入手させる機能」「コモンイベント0:アイテム増減」「コモンイベント1:武器増減」「コモンイベント2:防具増減」「コモンイベント3:お金の増減」を呼び出すことで実現できます。

あとは、何度も同じ場所で「アイテム入手イベント」が発生しないよう、入手イベントのセルフ変数を使って「フラグ」を立てておく必要があります。

それでは、実際にマップ上に「アイテム入手イベント」を設置していきます。

「タルでお宝ゲット」イベントの作成

村のマップに切り替えます。
もし、STEP18でツボでのアイテム入手イベントを作成していた場合は、混乱しないように削除しておくと良いと思います。

それでは、村マップの中で「タル」のある場所にしてみます。
猟師の家の入口前になります。

イベントの名前を「タル1」、起動条件「セルフ変数0 が 0 と同じ」とします。
これで、「フラグ:セルフ変数0」が立ったあと(「1」になったあと)は、「アイテム入手イベント」が起動しなくなります。

イベントコマンドを入力していきます。
まずは、入手させたいアイテムが持てるかどうか確認する必要があります。

アイテムが持てるかどうか確認せず、アイテムを入手させることも出来ますが、基本システムではアイテムが持てない場合は、メッセージ表示などもないため、ゲームを遊ぶプレイヤーにはバグのように思われてしまいますので、アイテムが持てるか確認し持てない場合はなんらかのメッセージ表示を行うようにします。

「コモンイベント」を選択して、「コモンイベント17:アイテム所持数取得」を呼び出し、「アイテム」に入手させたいアイテムを設定します。
「結果【アイテム個数】」を「このEv:Self1」とし、「このイベントのセルフ変数1」にアイテムの所持個数が代入されます。

入手するアイテムの所持個数がいっぱい(上限)ではなかったら、アイテムが入手できるようにします。

アイテムの所持個数の上限は「ユーザーデータベース 17:システム基本設定」「アイテム最大所持数」で設定されていますので、この数と「セルフ変数1」に代入した所持個数を比較すればアイテムが持てるかどうか判断できます。

「条件(変数)」「「セルフ変数1」が「1017000000」未満」とします。
少し難しくなりますが、「1017000000」「ユーザーデータベース17のアイテム最大所持数」を呼び出す変数呼び出し値となっています。
「「上記以外の場合」を作成」をチェックします。

もし難しいようなら、「99」をそのまま入力しても構いません。
「アイテムの所持数 セルフ変数1」が「アイテム最大所持数 99」未満であれば、アイテムを入手可能となります。

アイテムが入手可能な場合は、「コモンイベント」を選択して、「コモンイベント0:アイテム増減」を呼び出します。

  • アイテム番号を「下級キズ薬」。
  • 増減数を「1」。
  • 入手メッセージを「あり[個数無し]」。

最後にアイテムを入手したフラグを立てます。
「セルフ変数0」に「1」を代入します。

アイテムが持てない場合は「文章の表示」でメッセージを表示します。
アイテム名を入れたいところなのですが、今回は簡単にこのようにします。

これで、「アイテムの入手」「メッセージ表示」の処理ができました。

あとはこのイベントをコピペして、アイテムの種類を変更し色々な場所でアイテムが入手できるようにしてみましょう。

テストプレイで動作を確認します。
問題なくアイテム入手ができました。

「武器・防具・お金」も入手できるようにする

入手させたいアイテムが「武器」「防具」「お金」の場合は、それぞれ「所持数を調べるコモンイベント」「増減させるコモンイベント」を変更すればいいわけです。

「お金」入手の際の変更点

ただし、「お金」の場合だけ若干処理が変わります。

「条件(変数)」にある「アイテムの最大所持数 99」としていた部分を、「最大所持金額 999999」に変更します。
「最大所持金額」は基本システムで設定する箇所はなく、単純にウディタが扱える数値の上限となっています。

「お金」の場合の処理はこのようになります。

「お金」の場合はさらに問題があり、お金を入手して所持金が「999,999」を「1」でも超えた場合は、超えた分のお金は消えてしまいます。

これを回避するには「STEP18 お宝イベント」のような少し複雑な処理を作る必要があります。

「宝箱でお宝ゲット」イベントの作成

「STEP18 「宝箱でお宝ゲット」イベント作成」で作成しましたが、今回のアイテム入手イベントの内容を使って、改めて作ってみましょう。

まずは、村マップで作成したタルのお宝ゲットイベントを選択し、コピーします。

次に森マップに変更します。
イベントはマップをまたいでコピー&ペーストすることが出来ますので、宝箱を置きたい場所に村マップからコピーしてきたイベントを貼り付けます。

もし、STEP18で宝箱でのアイテム入手イベントを作成していた場合は、混乱しないように削除しておくと良いと思います。

それでは、貼り付けたイベントを宝箱に変えていきます。

「名前」と「グラフィック」を変更します。

グラフィックは「(タイルセット)」から閉じている宝箱のチップを選択します。

次にアイテムを入手したらフタが開いて空っぽになった宝箱になるようにします。

「新規ページボタン」でページ2を作成し、ページ2に変更してから「起動条件」を「セルフ変数0 が 1 と同じ」(アイテムを入手したフラグが立っていた場合)とします。

グラフィックも前と同じ様に「(タイルセット)」から開いている宝箱のチップを選択します。

これで「宝箱でお宝ゲットイベント」は完成しました。
これをコピペして森のあちこちでアイテムを入手できるようにしていきましょう。

サンプルゲームデータの設定削除・変更

ウディタのバージョンによっては影響がない可能性がありますが、基本システム入りデータにはサンプルゲームの設定内容が残っているため、修正する必要があります。

これまでの記事中でもデータベースの設定などで、サンプルゲームの設定内容を削除してきました。

あらたにまた見つかった場合は追記していきますが、設定を変更する箇所がありましたので、こちら修正しておいてください。

みなさんもなにか見つけたら、コメントなどでお知らせください。

ユーザーデータベース 

「17:システム基本設定」「メニュー欄コマンド1」が「特殊メニューA」になっている可能性があります。
こちらを「空欄」にしてください。

続いて、「STEP20 ゲーム完成」に進みましょう。

コメント(匿名投稿OK、メールアドレスとWEBサイトも任意です)