赤枠内の9つのマップチップにカウンター属性が付与されます
「小さな大冒険」で使用したスクリプトを、素材として提供していこうと思います。
まずは簡単なものから、「カウンター属性拡張スクリプト」です。
RPGツクールVXでは、TileA2-Cにある4種類のマップチップには、自動的にカウンター属性が付与され、お店等でカウンター越しに話しかけることができます。
ただ、これだけでは少し中途半端で、TileCにあるテーブル類のマップチップにも、カウンター属性があった方が自然かと思われます。XPまでは、エディタでカウンター属性を編集することができましたが、VXではカウンター属性が自動的に設定されるようになったため、変更するにはスクリプトを利用する必要があります。
上記スクリプトを組み込めば、TileCのテーブル類のマップチップ(右の赤枠内の9つのチップ)にもカウンター属性が付与され、家の住人などにテーブル越しに話しかけることができるようになります。
スクリプトの組み込み方法は、以下の通りです。
- スクリプトエディタを開き、「▼ 素材」の「( ここに追加 )」の下に挿入する。
- 名前欄に任意の名前(例:「PANDA_AdditionalCounter」など)を入力する。
- 上記スクリプトの内容を全てコピーして、エディタ欄に貼り付ける。
テーブル越しに話しかけられるようになります
変更しているのは、Scene_Titleクラスのload_databaseメソッドと、Game_Mapクラスのcounter?プロパティです。load_databaseメソッドの方はエイリアスによる追加定義なので、競合などはあまり起こらないと思いますが、counter?プロパティの方は再定義していますので、もし他のスクリプトでGame_Mapクラスのcounter?プロパティを使用している場合は、競合の解消やスクリプトの順序など、調整などが必要になってくると思われます。
また、あくまでRTPデフォルトに準拠していますので、もしRTP素材を改変していて、別のチップにカウンター属性を付与したい場合には、「$data_system.passages[342] |= 0x80」などとある部分の、「342」などのタイルIDを変更すればOKです。タイルIDは、TileBの左上が0、TileEの右下が1023となっているようです。
あとは、大きなテーブル越しにも話しかけられるように、複数のカウンター属性チップが間にあってもイベントが発動する(XPまでは確か3ブロックまではカウンター越しに話しかけられた)ようにしたかったのですが、修正すべき箇所が多くなりそうだったのと、既に大きなテーブル越しには話しかけられないことを前提にイベントを組んでいた部分もあって、面倒なので断念しました。次回作では組み込みたいと思います。
今後も、自作ゲーム内で使ったスクリプトやテクニック、素材などで、汎用性が高く手軽に公開・実装ができそうなものを、随時シェアしていこうと思います。
使用に際しての報告や提供元としての記載などは任意ですが、ご報告いただければ需要把握などもできますので、一言でも残してもらえるとありがたいです。改造や改造後のスクリプトの公開などもご自由にどうぞ。ご質問や、もっとこうした方がいいのでは?などのアドバイス等ありましたら、お気軽にコメントいただければと思います。