ページ 11

身代わりをする時に対象の前に移動するプラグインが欲しいです

Posted: 2022年4月14日(木) 21:15
by スヴェン
デフォルト機能である身代わり機能なのですがログを消した状態でやっていたので身代わりが発動していることに長いこと気づきませんでした。
サイドビューだと見栄え的にも映えませんし身代わりが発動した時に対象の仲間の前に一瞬でパッと移動するような演出がされるようにしたいです。
よろしくお願いします。

Re: 身代わりをする時に対象の前に移動するプラグインが欲しいです

Posted: 2022年4月18日(月) 01:33
by くろうど
作ってみました。
必要な点があれば適宜改造してください。

↓ダウンロードはGitHub↓
https://github.com/kuroudo119/RPGMZ-Plu ... 8%E7%A4%BA

Re: 身代わりをする時に対象の前に移動するプラグインが欲しいです

Posted: 2022年4月18日(月) 04:14
by スヴェン
ありがとうございます!
早速導入してみましたが競合もなく無事機能しました。

ただ、すみません、かばってから元のポジションに戻るのが早いので出来ることなら任意でウェイトをかけて戻るようにしたいと思っているのですが、どこにどういう風に記述をすればいいのか教えて頂けないでしょうか?
当方、プラグイン知識は皆無なもので検討が付きません(汗)
よろしくお願いします。

くろうど さんが書きました:作ってみました。
必要な点があれば適宜改造してください。

↓ダウンロードはGitHub↓
https://github.com/kuroudo119/RPGMZ-Plu ... 8%E7%A4%BA

Re: 身代わりをする時に対象の前に移動するプラグインが欲しいです

Posted: 2022年4月18日(月) 19:01
by くろうど
スヴェン さんが書きました: ただ、すみません、かばってから元のポジションに戻るのが早いので出来ることなら任意でウェイトをかけて戻るようにしたいと思っているのですが、どこにどういう風に記述をすればいいのか教えて頂けないでしょうか?
当方、プラグイン知識は皆無なもので検討が付きません(汗)
よろしくお願いします。
これなんですが、プラグイン中でウエイトをかける方法は私にも分かりません。
ただ、本プラグインが何をしているかは説明できます。

87行目:startMove がSVアクター画像を移動する予約をしています。

42行目:requestMotionRefresh で予約された移動を実行しています。

本プラグインでは、かばうようにSVアクター画像を移動させていますが、実は元の位置に戻す処理は書いていません。
ですので、コアスクリプトのどこかに書いてある元の位置に戻す処理を探してそれを改変すればなんとかなるかもしれませんが、私の方では断念しました。

よろしくお願いします。

Re: 身代わりをする時に対象の前に移動するプラグインが欲しいです

Posted: 2022年4月19日(火) 00:59
by スヴェン
そうなんですか、残念です。
他に誰か分かる方が居るかもしれないので解決済みにはせずに残しておこうと思います。
ありがとうございました。

Re: 身代わりをする時に対象の前に移動するプラグインが欲しいです

Posted: 2022年4月19日(火) 16:32
by 剣崎 宗二
こちら私は今作業時間が取れませんが、後で作るかもしれない方の為にヒントを出しておきます。

・移動圧を掛けているのはSprite_Actor.prototype.updateMain内のupdateTargetPosition()

コード: 全て選択

Sprite_Actor.prototype.updateTargetPosition = function() {
    if (this._actor.canMove() && BattleManager.isEscaped()) {
        this.retreat();
    } else if (this.shouldStepForward()) {
        this.stepForward();
    } else if (!this.inHomePosition()) {
        this.stepBack();
    }
};
移動中でなく、Home Positionにもいない限り常にStepBackの位置への移動Requestがかかる事になる

・修正例としてはSprite_Actor.prototype.substituteMoveにてモーション全体時間のカウンターを設け、updateMainかupdateTargetPositionでカウンターを減らし0になるまで上記移動Requestを停止させる

・但し他にもupdateTargetPositionを使っている可能性のある場所もあるので要注意

と言った所ですね。

飽くまでも参考意見として。

Re: 身代わりをする時に対象の前に移動するプラグインが欲しいです

Posted: 2022年4月24日(日) 02:19
by スヴェン
剣崎さん

ありがとうございます。
私は知識が無いのでチンプンカンプンですがどなたか分かる方が参考にして制作して下さったら嬉しいです。
剣崎 宗二 さんが書きました:こちら私は今作業時間が取れませんが、後で作るかもしれない方の為にヒントを出しておきます。

・移動圧を掛けているのはSprite_Actor.prototype.updateMain内のupdateTargetPosition()

コード: 全て選択

Sprite_Actor.prototype.updateTargetPosition = function() {
    if (this._actor.canMove() && BattleManager.isEscaped()) {
        this.retreat();
    } else if (this.shouldStepForward()) {
        this.stepForward();
    } else if (!this.inHomePosition()) {
        this.stepBack();
    }
};
移動中でなく、Home Positionにもいない限り常にStepBackの位置への移動Requestがかかる事になる

・修正例としてはSprite_Actor.prototype.substituteMoveにてモーション全体時間のカウンターを設け、updateMainかupdateTargetPositionでカウンターを減らし0になるまで上記移動Requestを停止させる

・但し他にもupdateTargetPositionを使っている可能性のある場所もあるので要注意

と言った所ですね。

飽くまでも参考意見として。