戦闘時に再生中のスキルアニメーションを最終フレームに強制移動させる方法
Posted: 2023年4月24日(月) 00:50
エンジニアの皆様
お疲れ様です。
表題のとおり、戦闘時に再生中のスキルアニメーションを
最終フレームに強制移動させる方法はありますでしょうか?
トリアコンタンさんの「TraitAnimation.js」を使っており、
これは、特定のステートが付与されたら、付与中は指定のアニメーションを再生させ続けるというプラグインなのですが
そのステートが付与されているメンバーを入れ替えで控えアクターにする際、
フレーム分、アニメーションが再生されてから消えるため、
ステートにかかっていない別のアクターがかかっているように見えてしまうという問題があります。
これを瞬時に消す方法を模索しておりますものの、
アニメーションのスプライトをsprite.remove();などで削除すると、
なぜかもう一度同じメンバーを入れ替えたときに
スプライトが再起できず、表示されない問題が生じてしまうため、
スプライトを削除せずに、最終フレームへ移動させることで、
瞬時に消す、という目的を達成しようとしております。
【TraitAnimation.js】
https://raw.githubusercontent.com/triac ... imation.js
スプライト削除のメソッドの全文
以下のif内に、再生中のアニメーションを最終フレームに移動させる処理を追加したいと考えております。
記述をご存知の方がおりましたら、どうかご教示のほど、何卒お願い申し上げます。
お疲れ様です。
表題のとおり、戦闘時に再生中のスキルアニメーションを
最終フレームに強制移動させる方法はありますでしょうか?
トリアコンタンさんの「TraitAnimation.js」を使っており、
これは、特定のステートが付与されたら、付与中は指定のアニメーションを再生させ続けるというプラグインなのですが
そのステートが付与されているメンバーを入れ替えで控えアクターにする際、
フレーム分、アニメーションが再生されてから消えるため、
ステートにかかっていない別のアクターがかかっているように見えてしまうという問題があります。
これを瞬時に消す方法を模索しておりますものの、
アニメーションのスプライトをsprite.remove();などで削除すると、
なぜかもう一度同じメンバーを入れ替えたときに
スプライトが再起できず、表示されない問題が生じてしまうため、
スプライトを削除せずに、最終フレームへ移動させることで、
瞬時に消す、という目的を達成しようとしております。
【TraitAnimation.js】
https://raw.githubusercontent.com/triac ... imation.js
スプライト削除のメソッドの全文
コード: 全て選択
Sprite_Battler.prototype.updateTraitAnimation = function() {
this._traitAnimationSprite = this._traitAnimationSprite.filter(function(sprite) {
if (!sprite.isPlaying()) {
sprite.remove();
}
if (this._battler instanceof Game_Actor && !$gameParty.members().contains(this._battler)) {
sprite.remove();
}
return sprite.isPlaying();
}, this);
this.setupTraitAnimation();
};
コード: 全て選択
if (this._battler instanceof Game_Actor && !$gameParty.members().contains(this._battler)) {
//sprite.remove(); ここは無効にする
}
記述をご存知の方がおりましたら、どうかご教示のほど、何卒お願い申し上げます。