ページ 1 / 1
ダメージ0の時のエフェクトについて 【解決】
Posted: 2019年8月03日(土) 18:37
by tetu
攻撃後ダメージが0の場合
サウンドが再生されずに0のダメージポップが出るのですが
これを、例えば盾などを表示した後にダメージポップを行いたいのですがうまくいきません
サイドビューではアクターにも採用していきたいのですが
現在、トリアコンタン様のプラグイン、BattleEffectPopupを試してみたのですが
無効ではないので普通にダメージ0のポップが出るだけになってしまいます
スクリプトでいじろうと思ったのですが
rpg_spritesのdamagiでサウンドを流しているところに分岐を作って対象にアニメーション表示
かなと思っているのですが
ご助力お願いできますでしょうか?
Re: ダメージ0の時のエフェクトについて
Posted: 2019年8月04日(日) 22:13
by ジャングル
はじめまして。ジャングルといいます。
1時間前にご質問を見てプラグインを導入するなど試してみました。
「ダメージ0が表示される直前にガードモーションをさせたい」という例で行いました。
(「ガード」は「盾」に変更できます)
この場合は、Window_BattleLog の makeHpDamageText() でダメージが取得できるので、
そこでダメージが0であれば、任意の行動をさせれば済みます。
ガードモーションをさせたければ、このメソッド内に、
if (target.result().hpDamage === 0) { SceneManager._scene._spriteset._actorSprites[0].startMotion("guard") }
と書けばパーティの先頭キャラがガードモーションを取ります。
(ターゲットのキャラがガードをする場合はループで取り出す必要がありますが)
※「盾を表示する」は「アニメーションを表示する」という意味ですか?
もしそうなら、そこでアニメーションを流せば良いし、
あるいは「盾画像を表示する」という意味でしたら、盾スプライトをアクタースプライトに追加すれば済みます。
これで可能ではないでしょうか。
仕事後で疲れてて、何か間違ってたら済みません。
Re: ダメージ0の時のエフェクトについて
Posted: 2019年8月05日(月) 02:43
by tetu
ありがとうございます
バトルログをスキップするようにしているため
ほかの個所でダメージが0の時の条件式を使って試行錯誤してみました
箇所によってHPダメージの値がまだ入っていないところなど色々ありました
厳しいのはアニメーションを表示しようとした時の座標獲得が難しいです
ピクチャーとして表示も同じですね
バトルログ以外の場所だとダメージポップの場所がいいかと試しています
現状では教えて頂いた条件式で画面フラッシュやサウンドを流すなどが
一番楽に実装できそうです
もう少しスクリプトを参考に色々試してみます
補足でこの条件式を参考にして
ダメージが0の時は状態異常が発生しないが可能になりました
思わぬ所で大変勉強になりました。
Re: ダメージ0の時のエフェクトについて
Posted: 2019年8月05日(月) 16:42
by 剣崎 宗二
アニメーションを攻撃を受けたアクターに対して実行するだけなのであれば、targetとしてmakeHpDamageTextに投入されているので、該当の所で
コード: 全て選択
target.startAnimation(3)
(3は行うアニメーションのIDに直してください)
を行えばいいのではないでしょうか?
バトルログがスキップされているのであれば、他のどこかに攻撃のアニメーションを移植して再生していると思いますので(通常の攻撃アニメーションはBattleLogに依存してます)その同じ場所で攻撃のtargetに対して同様に行えばいい話かと。
尚、こちらはジャングルさんの回答への補足ですが、
「ターゲットのキャラがガードする場合」はループを使用せずとも、
コード: 全て選択
if (target.result().hpDamage === 0) { target.requestMotion('guard') }
と言う方法もあるかと思われます。
Re: ダメージ0の時のエフェクトについて 【解決】
Posted: 2019年8月06日(火) 23:31
by tetu
完璧でした。
エフェクトを出すスクリプトを座標指定しようとしていて戸惑っていましたが
この方法があったとは、思ったように動かすことができました。
ありがとうございました