こんにちは!いつもお世話になっております。
戦闘シーンなのですが、現状の戦闘シーンは以下の流れだと思います。
①戦闘アニメーションを再生
②ダメージアクションを再生
例えば、2連続攻撃のスキルを使用した場合、
①アニメーションを再生
②「●●にXXのダメージ」「●●にYYのダメージ」というメッセージとポップアップが表示
これを、アニメーション再生時にダメージポップアップを同時に再生したいのです。
そこで、戦闘アニメーションの再生のメカニズムに関して知りたいのですが、どのクラスのどのメソッドを参照すればいいかどなたか教えていただけますでしょうか?
戦闘シーンの改造をしたい
戦闘シーンの改造をしたいの追加説明
現状
・アニメーションデータベースのメモ欄にダメージアクションを差し込むフレーム番号を列挙する
・アニメーションの再生時にフレームを監視して、フレーム番号でターゲットのダメージアクションを発火
という流れで実装できないかと考えています。
・アニメーションデータベースのメモ欄にダメージアクションを差し込むフレーム番号を列挙する
・アニメーションの再生時にフレームを監視して、フレーム番号でターゲットのダメージアクションを発火
という流れで実装できないかと考えています。
Re: 戦闘シーンの改造をしたい
Window_BattleLog.prototype.startAction
からshowAnimation関係を順にたどればよいかと考えます。
からshowAnimation関係を順にたどればよいかと考えます。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
Re: 戦闘シーンの改造をしたい
回答ありがとうございます!
こちらのメソッドですよね。
this.pushが何なのか見に行ってみたところ、
こんなメソッドでした。_methodというWindow_BattleLogクラスのメンバに実行するメソッドと引数の値を保存しているようでした。
実際どんなメソッド名が飛んできているのかconsole.logで調べてみたところ
「〇〇の攻撃!」
「〇〇に●●のダメージ!」
とこんな感じでメソッドが流れてきていました。
performActionやperformActionStartがアニメーション再生っぽいなと思って見に行きました。
subjectが敵の場合、 subject.performAction(action);はGame_Enemy.prototype.performAction;に該当するので、見に行くと
こんな内容で、 Game_Battler.prototype.performActionを呼び出して実行してるっぽいので、Game_Battler.prototype.performActionを見に行きました。
しかし、中身は何の記述もなかったです。
アニメーションの処理のたどり方ってこれで合っていますでしょうか??
こちらのメソッドですよね。
コード: 全て選択
Window_BattleLog.prototype.startAction = function(subject, action, targets, animeTargets) {
var item = action.item();
this.push('performActionStart', subject, action);
this.push('waitForMovement');
this.push('performAction', subject, action);
this.push('showAnimation', subject, animeTargets.clone(), item.animationId);
this.displayAction(subject, item);
};
this.pushが何なのか見に行ってみたところ、
コード: 全て選択
Window_BattleLog.prototype.push = function(methodName) {
console.log(methodName);
var methodArgs = Array.prototype.slice.call(arguments, 1);
this._methods.push({ name: methodName, params: methodArgs });
};
こんなメソッドでした。_methodというWindow_BattleLogクラスのメンバに実行するメソッドと引数の値を保存しているようでした。
実際どんなメソッド名が飛んできているのかconsole.logで調べてみたところ
「〇〇の攻撃!」
コード: 全て選択
rpg_windows.js:4852 wait
rpg_windows.js:4852 performActionStart
rpg_windows.js:4852 waitForMovement
rpg_windows.js:4852 performAction
rpg_windows.js:4852 showAnimation
rpg_windows.js:4852 addText
「〇〇に●●のダメージ!」
コード: 全て選択
rpg_windows.js:4852 pushBaseLine
rpg_windows.js:4852 pushBaseLine
rpg_windows.js:4852 popupDamage
rpg_windows.js:4852 popupDamage
rpg_windows.js:4852 performDamage
rpg_windows.js:4852 addText
rpg_windows.js:4852 waitForNewLine
rpg_windows.js:4852 popBaseLine
rpg_windows.js:4852 popBaseLine
rpg_windows.js:4852 waitForNewLine
rpg_windows.js:4852 clear
rpg_windows.js:4852 performActionEnd
[2]rpg_windows.js:4852 popupDamage
[2]rpg_windows.js:4852 popupDamage
とこんな感じでメソッドが流れてきていました。
performActionやperformActionStartがアニメーション再生っぽいなと思って見に行きました。
コード: 全て選択
Window_BattleLog.prototype.performAction = function(subject, action) {
subject.performAction(action);
};
subjectが敵の場合、 subject.performAction(action);はGame_Enemy.prototype.performAction;に該当するので、見に行くと
コード: 全て選択
Game_Enemy.prototype.performAction = function(action) {
Game_Battler.prototype.performAction.call(this, action);
};
こんな内容で、 Game_Battler.prototype.performActionを呼び出して実行してるっぽいので、Game_Battler.prototype.performActionを見に行きました。
コード: 全て選択
Game_Battler.prototype.performAction = function(action) {
};
しかし、中身は何の記述もなかったです。
アニメーションの処理のたどり方ってこれで合っていますでしょうか??
Re: 戦闘シーンの改造をしたい
アニメーションであればそちらではなく、
Window_BattleLog.prototype.showAnimation
↓(ほとんどの場合)
Window_BattleLog.prototype.showNormalAnimation
↓
Game_Battler.prototype.startAnimation
↓(Sprite_Battler=キャラ画像 側が毎フレームisAnimationRequestedを通してこれを監視)
Sprite_Base.prototype.startAnimation
↓(作られた各Sprite_Animationでそれぞれ毎フレーム)
Sprite_Animation.prototype.update
で各Spriteの画像を差し替えて、アニメーションを形成している形となります。
Window_BattleLog.prototype.showAnimation
↓(ほとんどの場合)
Window_BattleLog.prototype.showNormalAnimation
↓
Game_Battler.prototype.startAnimation
↓(Sprite_Battler=キャラ画像 側が毎フレームisAnimationRequestedを通してこれを監視)
Sprite_Base.prototype.startAnimation
↓(作られた各Sprite_Animationでそれぞれ毎フレーム)
Sprite_Animation.prototype.update
で各Spriteの画像を差し替えて、アニメーションを形成している形となります。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。