【解決】解像度幅を広げると「逃げる」コマンド成功時に画面外にアクターが右に移動しきらない

#ツクルーム フォーラム RPGツクールMZ (RPG Maker MZ) 【解決】解像度幅を広げると「逃げる」コマンド成功時に画面外にアクターが右に移動しきらない

  • このトピックには3件の返信、2人の参加者があり、最後にmunokuraにより7ヶ月、 2週前に更新されました。
4件の投稿を表示中 - 1 - 4件目 (全4件中)
  • 投稿者
    投稿
  • #645 返信
    munokura
    参加者

    RPGツクールMZの標準機能で、ゲームの解像度を1280×720にしました。
    UIのサイズは816×720にしました。
    サイドビュー戦闘で「逃げる」コマンド成功時に画面内にアクターが残ってしまいます。

    # やりたいこと
    「逃げる」コマンド成功時に画面内にアクターが右に消えるまで移動させたい。

    ## 可能であれば機能追加
    敵キャラにSRD_WalkCharBattlersMZで歩行キャラを表示させている場合、アクターが「逃げる」時にもSVアクターと同様の動きをします。
    下記の2つのどちらかにしたい。
    1.上記と同様に画面外まで左に消えるまで移動させたい。
    2.通常の敵キャラが逃げた時と同じように、画像がフェードアウトするようにしたい。

    # 試したこと
    新規プロジェクト作成し、解像度を変更した状態でテストしました。
    サイドビュー戦闘で「逃げる」コマンド成功時に画面内にアクターが残ることを確認しました。
    また、対応できるプラグインを探しましたが、見つかりませんでした。

    ## 調べたこと
    Sprite_Actor、Sprite_Battler 周辺のコアのコードを読みましたが、どこで移動量を指定しているのかが分かりませんでした。

    • このトピックはmunokuraが7ヶ月、 2週前に変更しました。
    #646 返信
    ツクールAI君
    メンバー

    ## RPGツクールMZ 解像度変更時の「逃げる」動作に関する問題の要約

    – **実現したいこと**
    – 解像度1280×720、UIサイズ816×720のサイドビューバトルにおいて、「逃げる」コマンド成功時にアクターが画面右端まで移動して画面外に消える動作の実現。
    – SRD_WalkCharBattlersMZ使用時の敵キャラにも同様の「逃げる」動作適用(画面左端への移動 or フェードアウト)。

    – **試したこと**
    – 新規プロジェクト作成、解像度変更による動作確認。
    – 対応プラグインの探索。
    – Sprite_Actor、Sprite_Battler周辺のコード調査。

    – **試用プラグイン**
    – 特になし (見つからない)

    – **問題点**
    – アクターの移動量が不足し、画面内に残ってしまう。
    – SRD_WalkCharBattlersMZ使用時の敵キャラの「逃げる」動作未対応。
    – 移動量の制御箇所特定が困難。

    **不明点**

    – SRD_WalkCharBattlersMZのダウンロード元URL。 バージョン。
    – アクターの「逃げる」アニメーションの終了タイミングと移動完了タイミングの同期状況。
    – 他のプラグインとの競合の可能性。

    投稿者様、こちらの要約は意図通りでしょうか?不明点が補足・追記いただけると回答が得やすくなると思われます。

    ## 回答

    この問題は、画面幅の拡張に伴い、アクターの「逃げる」動作の移動距離が不足していることが原因です。RPGツクールMZのデフォルト機能では、画面解像度の変更に対応した「逃げる」動作の調整は提供されていません。

    解決策としては、プラグインによるカスタマイズが必要になります。残念ながら、現状公開されているプラグインでこの問題に直接対応するものは見当たりません。

    そのため、新規にプラグインを作成するか、既存の戦闘関連プラグインを改造する必要があります。Sprite_Actorクラスの`updateMotionEscape()`メソッドが「逃げる」動作を制御しているので、このメソッドをオーバーライドし、移動量を調整することで対応可能です。

    SRD_WalkCharBattlersMZについても、そのプラグインのコードを確認し、同様の修正が必要になります。フェードアウトを実現する場合は、`Sprite_Enemy`クラスの`updateCollapse()`メソッドなどを参考に、透明度を操作する処理を追加する必要があります。

    **プラグイン作成のヒント:**

    – `$gameSystem.screenPadding()`で画面パディングを取得し、移動距離の計算に利用する。
    – `Sprite_Actor.prototype.updateMotionEscape`をオーバーライドし、`this._escapeDirection`に基づいて移動量を調整する。
    – SRD_WalkCharBattlersMZを使用している場合は、そのプラグインのコードも同様に修正する必要がある。

    ※閲覧者の皆様、私の回答に問題がありましたら、ご指摘いただけると助かります。
    また、解決できた場合、トピックを編集し「トピックを解決済みにする」にチェックを入れてください。

    #647 返信
    munokura
    参加者

    コア内に ~.updateMotionEscape が見つかりません。
    .updateMotionEscape メソッドも見つかりません。
    _escapeDirection の値も見つかりません。

    参考になりそうもありません。

    SRD_WalkCharBattlersMZ MV時点からのバグが見つかっていて(敵キャラ消滅エフェクト:ボス 時にエラー)、暫定修正したようなバージョンです。
    多少の機能追加と、エラーが出ないようにした v1.03を使用しています。
    https://raw.githubusercontent.com/munokura/SRD-MZ-Plugins-Ported-MNKR/refs/heads/main/SRD_WalkCharBattlersMZ.js

    消滅エフェクトは、本来のエフェクトになっていないので、未完成です。
    こちらも修正方法が分からず、困っていますが、優先順位は低いですし、別案件と考えています。

    #661 返信
    munokura
    参加者

    下記プラグインを作って、解決できました。
    Graphics.widthはゲームの解像度の幅値になるので、大きすぎる方は適当な数値に置き換えると良いと思います。

    `JavaScript
    (() => {
    ‘use strict’;

    Sprite_Actor.prototype.retreat = function () {
    this.startMove(Graphics.width, 0, 30);
    };

    })();
    `

    • この返信は7ヶ月、 2週前にmunokuraが編集しました。
4件の投稿を表示中 - 1 - 4件目 (全4件中)
返信先: 【解決】解像度幅を広げると「逃げる」コマンド成功時に画面外にアクターが右に移動しきらない
あなたの情報:




ゲスト