2017年12月11日SHAREツイートシェアはてブLINEPocket前回の記事で書いたアイテム関係の不満について、というか注意事項です。アイテムはこちらのデータベースエディタで制作しますね。ここでは上記で制作した「太陽の杖」を例として扱っていきます。宝箱(ここではクリスタルから、ですが)などからアイテムを入手する場合、このような流れになるかと思います。「○○○を手に入れた!」「○○○を装備した」のアイテム名を手入力で打たなければいけない、ということです。後でアイテム名を変更した場合、これを手動で入力し直さなければいけません。開発終盤、シナリオの関係で「太陽の杖」を「マグマの杖」に変更したとしましょう。アイテム名はデータベースをいじるだけで変更は終わりです。「○○○を手に入れた!」「○○○を装備した」の文章は手入力でアイテム名を書いているので、ここのイベントも手動で直さなければいけません。「○○○を手に入れた!」「○○○を装備した」だけで済むアイテムならまだ幸運でしょう。これが「レッドオーブ」のようにシナリオ中のセリフで何度も登場してくるアイテムだった場合、全て思い出せますか?どこかで旧名のまま残ってしまう可能性があります。プレイしているユーザーからしたらハテナでいっぱいです。最低限、アイテム名を制御文字で書けるのかと思っていたのですが、まさかの取得不可です。変数でアイテム名を代入すればいいか、と思い「変数の操作」メニューを選ぶと...取得できるのは所持数のみ。アイテム名やアイテムIDを取得するには、スクリプトを書くしか手段がなかったのです。使いアイテム名を取り出す。※手入力スクリプトで変数にアイテム名を代入することで、1と4は処理としては、ひとつにまとまります。何が言いたいかというと3箇所それぞれでアイテムIDを個々に設定しているということです。「太陽の杖」のアイテムIDは7番です。「1,4」で7番を設定し、「2」ではダイアログから7番を選択、「3」でもダイアログから7番を選択。イベントを作っていると、どこかのイベントで「2」だけ別のIDを設定していた、「3」だけ別のIDを...なんてウッカリは結構あるものです。変数AのアイテムIDの武器を装備こんな感じが理想ですね。これなら「1」で取得したアイテムIDを「2」「3」「4」でも使用するので、個々に手動でアイテムIDを設定していた時に比べて、バグが発生する箇所は1箇所だけになります。これを実現するにはプラグインという形でまとめるしかないです。武器を装備したりしなかったり、武器なのか防具なのか道具なのか、といった色んな状況における分岐があるため、プラグインとしても設定が多くなってしまい、呼び出す度にプラグインに渡す引数がずらずらと長くなる。アイテムIDを渡すにはデータベースからIDを調べて、プラグインにはIDそのものを記述する。equip=true」この辺は最低でも渡す必要があるでしょう。要は後からイベントファイルを見た時、プラグイン呼び出し箇所の視認性が悪くなり、これが新たなバグの温床になります。さきほどの「1」変数Aにダイアログから選択する形でアイテムIDを取得ダイアログからとしているのは、あとでイベントエディタを見たときの視認性と、ID番号の記述ミスをなくしたいためです。これを実現するにはRPGツクールMVのツール本体の改造が可能でなければ実現できません。ここまでのまとめ今まで通り手を加えず、素直にアイテム名を手入力アイテム名を変更したら全イベントを思い出す必要がある思い出せなかったイベントはバグとして残ってしまうアイテムIDを個々に設定するのでバグの発生原因が複数残る視認性は良いのでイベントエディタさえ見れば間違いに気づきやすい変数にアイテム名だけは代入する場合アイテム名の問題は片付くアイテムIDを個々に設定する問題は残る変数にスクリプトで代入する、という手間が生まれている割にはアイテム処理全体に残るバグの発生原因が1つしか減っていないので労力にあっていない。変数に代入するためのIDもデータベースから調べて記述するため、記述ミスが起こりやすいそれでいて視認性は若干低下する。プラグインを作った場合IDを調べるためにデータベースと行ったり来たりする手間プラグインの引数がうっかりミスが発生しやすい項目の多さそれでいて見返した時に視認性が悪くイベントエディタ上で気づきづらい結局どうするの僕が選択したのは、なんと「1」番。結局これが一番視認性がよい。イベント作成する上で一番楽。アイテム名を変更した場合、どうするの?Grepを使いあぶり出すことにしました。ファイルで「太陽の杖」が記述されていることがわかります。アイテムの増減や装備変更の有無などはテストプレイで比較的気づきやすいバグだろうと判断して、この形で落ち着きました。できればRPGツクールMVの「イベント検索」の機能で検索できれば嬉しいんですがね、検索機能が貧弱すぎです。長くなったのでGrepに関してはまた別記事にまとめたいと思います。:TIPS初心者セカンドシーンファーストシーン[TIPS]マップ作成はサンプルマップを活用[TIPS]続・アイテム名の途中変更に注意RPGツクールMV始めます[TIPS]開発中はスプラッシュロゴをOFFにしようこの記事を書いた人ぺらラボ永遠のダイエッターツクール、Cocos、Unityと触ってきて、最近ようやくWEBに手を出した移り気な人。直近の目標はダイエッター卒業。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。前の記事セカンドシーン次の記事[TIPS]続・アイテム名の途中変更に注意ぺらラボツクール、Cocos、Unityと触ってきて、最近ようやくWEBに手を出した移り気な人。直近の目標はダイエッター卒業。人気記事mixhostを1ヶ月試用したら注意点がポロポロ出てきた。初心者にオススメするならエックスサーバーかなと思った。Audible(オーディブル)レビュー。flier(フライヤー)が実用的で面白かったのでレビュー。開封&AirPodsと接続ColorfulBox(カラフルボックス)実際に使ってサーバーの実力をレビュー。