こんにちは、今日はRPGツクールMVで画面外のイベントも移動するようにする方法についてまとめていきます。
イベントの移動ルート設定等でイベントが画面外にいる場合、通常だと移動が停止するようになっているため、プラグインを作成して挙動を変更します。
確認環境
RPGツクールMV Version 1.6.2
画面外のイベントも移動するようにする
js/rpg_objects.js 8512行目に定義されているGame_EventクラスのupdateSelfMovement関数でイベントの移動処理が行われています。
画面外だとisNearTheScreen関数がfalseを返すため移動処理が行われません。
プラグインでこの条件を削除することにより、画面外のイベントも移動するようになります。
元の処理は以下のようになっており、この関数を上書きしていきます。
Game_Event.prototype.updateSelfMovement = function() {
    if (!this._locked && this.isNearTheScreen() &&
            this.checkStop(this.stopCountThreshold())) {
        switch (this._moveType) {
        case 1:
            this.moveTypeRandom();
            break;
        case 2:
            this.moveTypeTowardPlayer();
            break;
        case 3:
            this.moveTypeCustom();
            break;
        }
    }
};
以下のようなコードの自作プラグインを読み込むと、画面外のイベントも移動を続けるようになります。
元のコードからの変更点はthis.isNearTheScreen()の条件を削除したのみです。
(function() {
    Game_Event.prototype.updateSelfMovement = function() {
        if (!this._locked && this.checkStop(this.stopCountThreshold())) {
            switch (this._moveType) {
            case 1:
                this.moveTypeRandom();
                break;
            case 2:
                this.moveTypeTowardPlayer();
                break;
            case 3:
                this.moveTypeCustom();
                break;
            }
        }
    };
})();