長押しでのイベント2倍速を禁止する【ツクールMV】

ホラーゲームでイベント早送りされると怖くないよね

ツクールMVには標準で「ボタン長押し時にイベントが2倍速で進む」という機能が備わっています。

マウスならクリック長押し、スマホなら画面をロングタッチでイベントを早送りできます。

普通のゲームならイベントをスキップしたい時に便利な機能なのですが、ホラーゲームって快適性よりも不快感とか、じわじわと恐怖が忍び寄るような「間」を感じさせる演出が大事な気がするんですよね。

ほら、さっさと扉を開ければいいのに、ゆーっくりドアノブに手を伸ばして、カメラをドアにズームして、ドアノブをひねってもなかなか開けずに、ある瞬間にバッとドアが開くとか(結局ドアの向こうには何もいなかったりする)

とにかく、イベントを早送りしてほしくない時に倍速を禁止する方法をご紹介します。

スクリプトの「rpg_scenes.js」ファイルの「Scene_Map.isFastForward」に早送りの条件が定義されています。

Scene_Map.prototype.isFastForward = function() {
 return ($gameMap.isEventRunning() && !SceneManager.isSceneChanging() &&
     (Input.isLongPressed('ok') || TouchInput.isLongPressed()));
};

手っ取り早くイベント早送りを禁止するなら、問答無用で以下のように書き換えてしてしまいましょう。

Scene_Map.prototype.isFastForward = function() {
 return false;
};

これで全てのイベントが倍速にならなくなりました。

スイッチで倍速を制御する

オープニングからエンディングまでずっと通常速度でいいのなら上記の方法でいいのですが、もしかするとある特定のイベントだけを早送り可能にしたい時があるかもしれません。

そのような場合は、スクリプトの同じ箇所を以下のように追記してみましょう。

Scene_Map.prototype.isFastForward = function() {
 return ($gameMap.isEventRunning() && !SceneManager.isSceneChanging() &&
     (Input.isLongPressed('ok') || TouchInput.isLongPressed())
     && $gameSwitches.value(スイッチ番号));
};

こうすると、指定した番号のスイッチがONの時は早送りを許可、スイッチがOFFの時は早送りを禁止する事ができます。

作るゲームに合わせてお試し下さい(^-^)