私が「Escape from the Eccentric」を制作するにあたり、多数のフリー素材を使用させていただいております。

特に、プラグインはゲームを特徴付ける上で極めて重要となるものです。

Escape from the Eccentric」では、28種類の「RPGツクールMV」用プラグインを用いております。

EfEで使用しているプラグイン(その1) EfEで使用しているプラグイン(その2)

これらのすべてについては紹介しきれませんが、「RPGツクールMV」において非RPGを作る上で有用と思われるものを、いくつかピックアップしてゆきたいと思います。

Horror Menu Customizer.js

Horror Menu Customizer.js

名称通り、ホラーゲーム向けの簡易なメニューを実現するためのプラグインです。

次の5項目のみのシンプルなメニューが出現します。

  • Item(アイテム)
  • Option(オプション)
  • Load(ロード)
  • Save(セーブ)
  • Quit(ゲーム終了)
    • To Title Screen(タイトルに戻る)
    • Cancel(キャンセル)

それぞれの項目名は変更可能です。

なお、「Escape from the Eccentric」では、セーブは特定の地点でのみ可能ということにしていますので、スクリーンショットの画面には「Save」というメニューは出現していません。これは、RPGツクールの「データベース」の設定に連動します。

プラグイン作者
Soulpour777 氏
プラグイン配布ページ
Horror Menu Customizer @  Soul X Regalia

HzInputCommand.js

HzInputCommand.js

方向キーとボタンでのコマンド入力を実現するためのプラグインです。

コマンドに指定できるキーは次の通りです。

  • Zキー(ゲームパッドの決定ボタン可)
  • Xキー(ゲームパッドのキャンセルボタン可)

また、入力ミスをしたときに再入力させるか失効させるか、コマンドにランダム性を持たせるか、時間制限を設けるか等の設定を追加することもできます。

image

Escape from the Eccentric」では、扉を通過してエリア移動をしたときに、通過した扉を閉じるためのコマンドに、このプラグインを採用しています。

ゲーム内に登場する開閉可能なすべての扉に対して、次のプラグインコマンドを埋め込んでおります。

  • HzCommand 2 66 xx 408 240

扉通過後にコマンド入力を求め、成功すると扉を閉めるコモンイベントが発動します。実装面倒くさかった~!!

なお、このコマンドを含む扉の開閉については、ある意味このゲームのキモとなる部分でありますので、後ほど「4. イベント編」にて解説します。

プラグイン作者
hiz 氏
プラグイン配布ページ
tkool

DTextPicture.js (動的文字列ピクチャ生成プラグイン)

Escape from the Eccentric」の作中で最も多用しているプラグインの一つです。

「動的文字列ピクチャ生成プラグイン」と銘打っていますが、プラグインコマンドで指定した文字列をピクチャとして扱い、画面に重ねて表示させるというものです。

このプラグインはかなり使い勝手がよく、「Escape from the Eccentric」ではゲーム開始前から終了まで至るところで用いております。

その一部を紹介いたします。

初心者マニュアル クレジット テレビドラマなどでよくあるタイプの注意書き

プロローグ 扉開閉時等のテロップ エンディング後のプレイ評価

特に本作では、5番目のスクリーンショットのように、ゲーム中のテロップとして多用しています。テロップとしての使い方については、後ほど「4. イベント編」にて解説します。

プラグイン作者
トリアコンタン 氏
プラグイン配布ページ
動的文字列ピクチャ生成プラグインDelusional Field

FatefulLocationUF.js (BGM自動演奏・BGS自動演奏制御プラグインの簡易版)

時と場合によって、マップ移動時に、BGMの切替をおこないたいときとそうでないときがあるかと思われます。

そのときに有用なのが、「自動演奏・BGS自動演奏制御プラグイン」です。

このプラグインには、高機能な通常版と機能を絞り込んだ簡易版がありますが、「Escape from the Eccentric」ではとりあえず簡易版の機能で十分であるため、簡易版を採用させていただきました。

BGM自動演奏・BGS自動演奏制御プラグインの簡易版BGM、BGSのそれぞれに、マップ切替時に移動先で設定したサウンドを鳴らさないようにするスイッチを設定できます。スクリーンショットの例では、変数1がONになっているときにはBGM、変数2がONになっているときにはBGSについて、マップ移動時にも移動前のものが鳴りっぱなしになります。

また、このプラグイン(簡易版含む)には、何故か、マップ移動時に特定の変数を1つだけ初期化するという機能がついています 1)できれば複数の変数を初期化できればよかったのだが、それを要求するのは贅沢というものか? 。「Escape from the Eccentric」では、変数4を汎用的な変数として用いているため、スクリーンショットのようにパラメータ「ufinitVariable」に初期化し大変数のIDを指定することで、いちいちイベントのたびに初期化処理を埋め込まずに済むようにしました。

プラグイン作者
まっつUP 氏
プラグイン配布ページ
自動演奏・BGS自動演奏制御プラグインツクマテ

TN_LongKeyPressForMenu.js (キー長押しでメニューを開くようにするプラグイン)

image_20161123_121302このプラグインは、メニューキー 2)初期状態では、キーボードの「X」キーやゲームパッドの「Y」ボタンに割り当てられている を長押ししないとメニューを開けないようにするためのもので、特にオプション項目はありません。

済みません白状します。実はこのプラグイン、「Escape from the Eccentric」のテストプレイ時に、先述の「Horror Menu Customizer.js」による扉閉めコマンドがメニュー開閉機能に干渉してしまうことを、テストプレイに参加されていたterunon氏が発見された事から生まれました。

そのときterunon氏はキーボードでプレイされていたということですが、初期状態ではキーボードの「X」キーにキャンセルとメニュー開閉の両方の機能が設定されているため、「X」キーを連打すると開いて欲しくもないメニューが開いてしまい、ゲームを快適に進めることができなくなっていたのでした。はじめからゲームパッドでしかテストしていなかった自分は、これについて全く気付いていませんでした…。

このプラグインを導入することで、メニューキーを長押ししないとメニューが開かなくなります。これにより、先ほどの「X」キー連打ではメニューが開かなくなるということです。

しかし、このままでは、ゲームパッドの「Y」ボタン(メニュー機能単独)についても、長押しする必要が生じます。そこで私は、プラグインファイルの15行目を次のように書き換えました。これで、ゲームパッドでもキーボードでもストレスなくプレイできるようになりました(はずです)。

  • 修正前
    • return Input.isLongPressed('menu') || TouchInput.isCancelled();
  • 修正後
    • return (Input.isTriggered('menu') && !Input.isTriggered('cancel')) || (Input.isLongPressed('menu') || TouchInput.isCancelled());
プラグイン作者
terunon 氏
プラグイン配布ページ
キー長押しでメニューを開くようにするプラグインツクマテ

Chikuwa.js

このプラグインは、「どのデータをロードしても共有した変数を読み込める」プラグインです。

変数は数値しか扱えないようですが、それでもできることの幅は広がります。共有変数を設定したければ、プラグインコマンドを呼び出せば即反映されます 3)ゲームデータを明示的にセーブする必要はない 。一度共有変数を設定すれば、別のセーブデータを呼び出した場合でも共有変数の内容を読み込むことができます。

Escape from the Eccentric」では、次の用途に用いています。

  • ゲーム初回にオープニング・デモを見れば、2回目以降はスキップできる機能
  • エンディング後の追加特典付与機能

2回目プレイ以降のオープニングスキップ エンディング後の追加特典付与

プラグイン作者
saronpasu 氏
プラグイン配布ページ
RMMV/Chikuwa at masterGitHub

AudioSource.js (特定の位置から音を鳴らすプラグイン)

その名の通り、特定の位置から音を鳴らすプラグインです。

Escape from the Eccentric」は、「ホラーテイスト脱出系アドベンチャーゲーム」を銘打っていますので、敵の声(?)がプレイヤーとの距離や位置によって変わる演出というのはまさにのどから手が出るほど欲しかったものです。

敵との距離や位置で声が変化する…敵の移動ルート設定で音声(SE)を指定することにより、敵がプレイヤーに接近してくるに従って、声(?)が大きくなってゆき、敵が右にいるときは右から、左にいるときは左から声(?)が聞こえてくるようになります 4)声と書いているけど実際はハァハァ言っているだけ。本当は、吸血鬼らしく「…血をよこせ…」みたいな呻き声のヴォイス素材が欲しかったけど、そんなの都合よくあるわけないよなぁ…

プラグイン作者
くらむぼん 氏
プラグイン配布ページ
特定の位置から音を鳴らすプラグインツクマテ

YEP_StopMapMovement.js

RPGツクールMV」においては、通常はイベント実行中でも、他のマップ内のイベントは動作しています。

そのため、会話中やアイテム入手などでメッセージを表示させているときに、別のイベントに近づかれてしまうことになります。もしそのイベントが、本作の吸血鬼のような即死イベントだとしたら…もう何が起こるかおわかりですよね?

それを避けるために、イベント実行中に他のイベントの動きを止める「YEP_StopMapMovement.js」というプラグインが必要になるのです。

アイテム入手時、敵の動きを一時的に止める。

あるイベントの開始時と終了時にプラグインコマンドを追加することにより、そのイベントが実行している間だけ他のイベントの動きを止めることができます。

これにより、たとえばスクリーンショットの例のように、敵に追跡されている最中にアイテムを入手したときでも、そのメッセージをのんびりと読むことができます。

触れると即死するイベントが存在するエリアでは不可欠なプラグインと言えるでしょう。

プラグイン作者
Yanfly Engine Plugins 氏
プラグイン配布ページ
Stop Map Movementyanfly.moe

YEP_EventChasePlayer.js

このプラグインは、イベントにプレイヤーを追跡させる機能を追加するものです。

本作では、特定条件を満たしてエンディングを迎えると、「VERY HARD」モードが開放されますが、このモードでは大半の敵にプレイヤー追跡機能を追加しています。

敵が壁を避けてプレイヤーを追跡する

RPGツクールMV」の標準機能でイベントの移動ルートに「プレイヤーに近づく」を指定しても、自動的には障害物や他のイベントを避けてくれません。そのため、敵が小部屋から出てくるといった場面を、なかなか思い通りに実装できません。

しかし、「YEP_EventChasePlayer.js」を導入することで、敵が小部屋から次々と出てくるような場面をそれっぽく実装できるようになります。

私も、「Escape from the Eccentric」制作段階でこのプラグインの存在に気付いていればよかったのですが、それはそれで難易度調整がとんでもなく大変なことになっていたかも知れません。特に狭いところでは敵から逃げにくくなります。

とはいえ、ホラーゲームを制作する上では、是非とも導入を検討すべきプラグインの一つではあります。

プラグイン作者
Yanfly Engine Plugins 氏
プラグイン配布ページ
Event Chase Playeryanfly.moe

最後に

今回紹介させていただいたプラグインの中には、「RPGツクールMV」の名の通り普通にRPGを制作する上ではあまり必要性を感じないものも少なくありません。

しかし、アドベンチャーゲーム、とりわけ脱出系ゲームを制作する上では、是非とも導入を検討すべきものもまた、少なくありません。

とはいえ、プラグインを単に導入するだけではできないこともあります。

Escape from the Eccentric」においては、プラグイン導入だけではできなかった演出の一部に、スクリプトを用いています。「4. イベント編」ではそのいくつかについて解説いたします。

公式ページ
Escape from the Eccentric
おしながき
1. はじめに
2. 設定資料編
3. プラグイン編
4. イベント編
5. おわりに
戻る
【「RPGツクールMV Advent Calendar 2016」特別投稿】『脱出ゲーム未経験者による脱出ゲームの作り方』

References   [ + ]

1. できれば複数の変数を初期化できればよかったのだが、それを要求するのは贅沢というものか?
2. 初期状態では、キーボードの「X」キーやゲームパッドの「Y」ボタンに割り当てられている
3. ゲームデータを明示的にセーブする必要はない
4. 声と書いているけど実際はハァハァ言っているだけ。本当は、吸血鬼らしく「…血をよこせ…」みたいな呻き声のヴォイス素材が欲しかったけど、そんなの都合よくあるわけないよなぁ…
I footnotes