お世話になっております。
yanfly氏制作のAction sequenceを使用し、
1どのアニメーション中に多段ヒットするスキル、を作成しました。
action animation
action effect
action effect
...
のような設定です。(アニメーションに合わせウェイト等の設定はしています。)
通常のスキルであれば問題ありません。
しかし、ステートを付与する確率がある多段ヒットスキルを使用した際に、
ステート付与時のメッセージがバトルログに表示され、
そのメッセージが表示される処理の都合か、ステート付与メッセージが表示されない時と比較すると、
次のaction effectが処理されるまでの間にウェイトのようなものが発生してしまいます。
Window_BattleLog.prototype.displayAddedStates内の
this.push('waitForEffect');
を
this.push('clear ');
に変更することで、ウェイトは発生しなくなるのですが、
今度はステート付与時のメッセージ表示が非常に短くなってしまいます。
バトルログを一定時間表示しつつ、this.push('clear ');と同じ速度で次の処理へ移行することは不可能でしょうか。
よろしくお願いいたします。
戦闘中ステート付与時のメッセージのウェイトについて
- Plasma Dark
- 記事: 731
- 登録日時: 2020年2月08日(土) 02:29
- 連絡する:
Re: 戦闘中ステート付与時のメッセージのウェイトについて
Window_BattleLogにおいて、pushメソッドで積み上げているのは、callNextMethodメソッド内で実行されるメソッド名です。バトルログを一定時間表示しつつ、this.push('clear ');と同じ速度で次の処理へ移行することは不可能でしょうか。
this.push('waitForEffect') というコードでは、エフェクト表示のために待つ処理を積んでいます。
clearはメッセージを消す処理ですので、それをwaitの代わりに積んだらメッセージがすぐ消えるのは道理です。
お望みのテキスト持続時間次第ではありますが、 displayAddedStates の waitForEffect を積む処理だけ消してあげれば実現できそうな気はしています。
ただ、 rpg_windows.js を直接編集することは可能な限り避けてください。
Window_BattleLog.prototype.displayAddedStates だけが定義されたプラグインを用意されることを強く推奨します。
今回のケースでは結局 displayAddedStates メソッドを上書きする必要があると思いますが、それでも rpg_windows.js を直接編集してしまうと何か別の問題が起きたときに混乱する恐れがあります。
Re: 戦闘中ステート付与時のメッセージのウェイトについて
PlasmaDark様
ご返信ありがとうございます。
該当箇所をコメントアウトしてみましたが、やはり、ステート付与が成功しバトルログが発生する際に、
次のダメージが表示されるまでの間にややウェイトが挟まってしまいます。
仰るとおりだと思いますので、
プラグインとして別で制作しています。
ご返信ありがとうございます。
コード: 全て選択
お望みのテキスト持続時間次第ではありますが、 displayAddedStates の waitForEffect を積む処理だけ消してあげれば実現できそうな気はしています。
次のダメージが表示されるまでの間にややウェイトが挟まってしまいます。
コード: 全て選択
今回のケースでは結局 displayAddedStates メソッドを上書きする必要があると思いますが、それでも rpg_windows.js を直接編集してしまうと何か別の問題が起きたときに混乱する恐れがあります。
プラグインとして別で制作しています。
- Plasma Dark
- 記事: 731
- 登録日時: 2020年2月08日(土) 02:29
- 連絡する:
Re: 戦闘中ステート付与時のメッセージのウェイトについて
clearに差し替えるとウェイトがなくなり、単純にコメントアウトするとウェイトが挟まる、ということは、 displayAddedStates 以外のところで積まれた waitForNewLine が原因のような気がします。該当箇所をコメントアウトしてみましたが、やはり、ステート付与が成功しバトルログが発生する際に、
次のダメージが表示されるまでの間にややウェイトが挟まってしまいます。
と思って読み直したら、 displayAffectedStatus の waitForNewLine っぽいですね。
こっちをコメントアウトしたらウェイトしなくなると思います。
Re: 戦闘中ステート付与時のメッセージのウェイトについて
PlasmaDark様
ご返信ありがとうございます。
教えていただいた内容で、一先ず、
clearを指定した際と同じ速さで、ステート付与時メッセージを長めに表示することができました。
しかし、どうしてもステート付与が発生した時としない時で、付与時メッセージが表示される為か、
ダメージ判定の間隔がズレてしまようです。
ここまで来ると、解決方法はそもそものバトルログ表示方法を変えるくらいしかなさそうですね…。
ありがとうございました。
ご返信ありがとうございます。
教えていただいた内容で、一先ず、
clearを指定した際と同じ速さで、ステート付与時メッセージを長めに表示することができました。
しかし、どうしてもステート付与が発生した時としない時で、付与時メッセージが表示される為か、
ダメージ判定の間隔がズレてしまようです。
ここまで来ると、解決方法はそもそものバトルログ表示方法を変えるくらいしかなさそうですね…。
ありがとうございました。
- Plasma Dark
- 記事: 731
- 登録日時: 2020年2月08日(土) 02:29
- 連絡する:
Re: 戦闘中ステート付与時のメッセージのウェイトについて
addTextメソッドの内容を見ればわかる通り、addTextの中でもウェイトをかけています。
ステート付与時のメッセージだけこのウェイトをなくすには、ウェイトしない版のaddTextメソッドを新しく作り、displayAddedStates の中で積んでいる addText をそちらに差し替えてあげるのが一番安全でラクなんじゃないかと思います。
ステート付与時のメッセージだけこのウェイトをなくすには、ウェイトしない版のaddTextメソッドを新しく作り、displayAddedStates の中で積んでいる addText をそちらに差し替えてあげるのが一番安全でラクなんじゃないかと思います。
Re:【解決済み】 戦闘中ステート付与時のメッセージのウェイトについて
Plasma Dark様
ありがとうございます。
addTextそのものを見直すのは盲点でした。
無事に、理想としていた動作を実現することができました!
何度も答えてくださり、本当にありがとうございました。
ありがとうございます。
addTextそのものを見直すのは盲点でした。
無事に、理想としていた動作を実現することができました!
何度も答えてくださり、本当にありがとうございました。