(解決済)ボスの消滅エフェクトを変えたい

アバター
エコー
記事: 35
登録日時: 2016年6月14日(火) 09:25

(解決済)ボスの消滅エフェクトを変えたい

投稿記事by エコー » 2017年12月16日(土) 18:54

データベースの特徴に消滅エフェクト「ボス」を設定している敵を倒したとき、ブレンドをかけながら地面へ消えていくようになってますが、これを少し調整したいと思いましてファイナルファンタジーレコードキーパーのボスを倒したときと全く同じようにさせたいと思ってます。

以下に動画の例があります。5:59あたりです。
https://www.youtube.com/watch?v=-WaVnjmVZN8

MVデフォルトと違い、もう少し体が左右に揺れ、赤くなりながらゆっくりフェードアウトしているのがわかると思います。
rpg_spritesのSprite_Enemy.prototype.updateBossCollapse = function() { あたりを弄ればいいのはなんとなくわかったのですが、フェードアウトさせたり体を揺らす方法がいまいちわかりませんでした。
また海外のMOG様のプラグインではコラプスエフェクトを変更するものがありますが、上記のようなコラプスを満たすものはありませんでした。
どなたかお力添えをいただけたらと思います。
最後に編集したユーザー エコー on 2017年12月22日(金) 20:46 [ 編集 1 回目 ]

アバター
しぐれん
記事: 973
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: ボスの消滅エフェクトを変えたい

投稿記事by しぐれん » 2017年12月16日(土) 22:19

プラグイン作り方を聞いていると考えて回答します。
sprite_enemyのRGBおよび透明度に変更をすれば色は変更できます。
Rを大きく・GBを小さくする赤に近い色へと徐々に変化していくでしょう。
透明度はopacityだったと思います。
0に近づくほど透明になっていき、0だと完全に見えなくなります。

振動ですが、トリアコンタンさんの「ピクチャ関連のイベント機能拡張プラグイン」にあるシェイク機能を利用して作ることになりそうです。
viewtopic.php?t=3214
ピクチャもエネミーも表示してしまえばどちらも画像ですので。

作るとすれば、振動だけ・色の変更だけでそれぞれ作り、同時に動くように調整するのが良いと思います。
現在、プラグイン依頼はお休み中です。
アバター
エコー
記事: 35
登録日時: 2016年6月14日(火) 09:25

Re: ボスの消滅エフェクトを変えたい

投稿記事by エコー » 2017年12月17日(日) 20:39

>>しぐれん様

ご回答ありがとうございます。
if (this._effectType === 'bossCollapse') {の部分をコメントアウトし
以下のコードをプラグインとしてjsファイルに組み込んでみました。

コード: 全て選択

Sprite_Enemy.prototype.updateBossCollapse = function(power, speed, duration) {
    this._shake = this._effectDuration % 2 * 11 - 6;
    this.opacity *= this._effectDuration / (this._effectDuration + 1);
    this.setBlendColor([255, 0, 0, 255 - this.opacity]);
    if (this._effectDuration % 20 === 0) {
        SoundManager.playBossCollapse2();
    }
   
};


おかげさまでかなり近いものとなりました。
本当にありがとうございます。
あと振動スピードを調整しようとトリアコンタン様の「ピクチャ関連のイベント機能拡張プラグイン」を参考にしてみましたが、知識が浅はかなため私にはうまく作ることができませんでした。。

また言い忘れてましたが、ボスを倒したときにボスが完全に消滅して消えるまでウェイト(「敵を倒した!」などのメッセージを表示させないようにする)させるにはどうすればいいでしょうか?
アバター
しぐれん
記事: 973
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: ボスの消滅エフェクトを変えたい

投稿記事by しぐれん » 2017年12月17日(日) 21:22

確かthis._shakeがX座標に追加される移動量です。
負の値なら左に移動します。
例えば「this._shake = Math.sin(this._effectDuration ))*振動の強さ」などとやれば面白い感じになると思います。
this._effectDurationはシェイクの経過時間か残り時間だと思いますので、時間が経過するごとにシェイクを大きくするような式を組めばいいと思います。
手元で試していませんが、近い感じになるんじゃないかと。
現在、プラグイン依頼はお休み中です。
アバター
エコー
記事: 35
登録日時: 2016年6月14日(火) 09:25

Re: ボスの消滅エフェクトを変えたい

投稿記事by エコー » 2017年12月18日(月) 19:16

しぐれん様
ありがとうございます!
this._shake = Math.sin(this._effectDuration * 20) * 3;
に変更すると揺れ具合とスピードを調整でき、理想のものに近づけることができました。
ほぼ動画のコラプスエフェクトと変わらないほど完璧に再現されてると思います。
本当に助かりました!

最後にひとつだけよろしいでしょうか?
コラプスエフェクトについてはひとまず一件落着したのですが、もうひとつだけ問題がありまして・・・
ボスを倒したとき、まだコラプスエフェクトが完全に終わってない状態からすぐに「敵を倒した!」のあと勝利MEへと進んでしまいます。
これを敵が完全に消滅し終わってからメッセージ&勝利MEを流すようにしたいと思ってます。
調べていくとYEP_BattleEngineCoreを入れているとこうなるようです。プラグインパラメータでもその辺を変更できるような箇所は見つかりませんでした。中を見ましたがどこをどう改変すればいいのかちんぷんかんぷんでした。
rpg_managersと見比べてはみたのですが・・・
解決法があればご助言いただけるとありがたいです。
アバター
しぐれん
記事: 973
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: ボスの消滅エフェクトを変えたい

投稿記事by しぐれん » 2017年12月18日(月) 22:33

すみません、YEP_BattleEngineCoreは対応外です。
(改造部分が多く、何が起こるかわからないので自分でも使っていない)
おそらくBattleManager.updateで実行されている処理の内、終了条件の取得が正しく行われていないことが原因だと思います。
VScodeあたりでコールスタックを監視して、探ってみてください。

BattleManager.processVictoryの呼び出し元の関数を探っていってください。
戦闘の勝利条件の評価などに問題があることが考えられます。
現在、プラグイン依頼はお休み中です。
アバター
剣崎 宗二
記事: 678
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: ボスの消滅エフェクトを変えたい

投稿記事by 剣崎 宗二 » 2017年12月19日(火) 20:05

エコー さんが書きました:ボスを倒したとき、まだコラプスエフェクトが完全に終わってない状態からすぐに「敵を倒した!」のあと勝利MEへと進んでしまいます。
これを敵が完全に消滅し終わってからメッセージ&勝利MEを流すようにしたいと思ってます。
調べていくとYEP_BattleEngineCoreを入れているとこうなるようです。


こちらはデフォルトのボス消滅エフェクトでも起こる事相でしょうか?
それとも改変したボス消滅エフェクトのみで発生する事相でしょうか?
また、他のプラグインを全てOFFにしてみましたでしょうか?

と言うのも、当方でBattleEngineCoreの最新版(v1.45)を使用して新規プロジェクトにてテストしてみましたが、問題の再現が出来なかった物で…
(ちゃんと完全に消滅してから表示された)
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
アバター
エコー
記事: 35
登録日時: 2016年6月14日(火) 09:25

Re: ボスの消滅エフェクトを変えたい

投稿記事by エコー » 2017年12月19日(火) 22:08

しぐれん様
しぐれん様の言うとおりBattleManager.processVictoryが勝利の後を決めているとは思ってたのですが、コアスクリプトにない関数を付け加えたりなどいろいろやっていると途中で動かなくなり断念しました;;
もう少し時間があるときに調べてみます。
いろいろとご助言ありがとうございました。

剣崎宗二様
すみません。
剣崎様の言ったとおり新規プロジェクトで試すとなぜかちゃんと完全に消滅してから表示されました。
プラグインはBattleEngineCoreの最新版(v1.45)と改変したボス消滅エフェクトプラグインのみです。
ちょっと意味がわからず信じられない状態です。
何故ならこちらの自作プロジェクトはもう一度公式からダウンロードしたコアスクリプトやlibsフォルダ内で全て上書きし、
上記の2つのプラグイン以外を全てOFFにして検証したのに現象が変わらなかったからです。
MVのバージョンは1.5.1。敵キャラを新たに作り設定しなおしたが変わらず。
デフォルトのボス消滅エフェクトと改変したボス消滅エフェクトの両方も試しましたが結果は同じでした。
嫌な予感でしかないのですが、ひょっとしてjsonフォルダの中身と何か関係ありますでしょうか?
アバター
剣崎 宗二
記事: 678
登録日時: 2016年11月12日(土) 20:36
連絡を取る:

Re: ボスの消滅エフェクトを変えたい

投稿記事by 剣崎 宗二 » 2017年12月20日(水) 09:49

エコー さんが書きました:剣崎宗二様
すみません。
剣崎様の言ったとおり新規プロジェクトで試すとなぜかちゃんと完全に消滅してから表示されました。
プラグインはBattleEngineCoreの最新版(v1.45)と改変したボス消滅エフェクトプラグインのみです。
ちょっと意味がわからず信じられない状態です。
何故ならこちらの自作プロジェクトはもう一度公式からダウンロードしたコアスクリプトやlibsフォルダ内で全て上書きし、
上記の2つのプラグイン以外を全てOFFにして検証したのに現象が変わらなかったからです。
MVのバージョンは1.5.1。敵キャラを新たに作り設定しなおしたが変わらず。
デフォルトのボス消滅エフェクトと改変したボス消滅エフェクトの両方も試しましたが結果は同じでした。
嫌な予感でしかないのですが、ひょっとしてjsonフォルダの中身と何か関係ありますでしょうか?


残念ながらその場合、データを保有していない私の方からはなんとも申し上げられません。
(問題が発生するコードに対するトレースが出来ない為原因が確認できない)

低確率ながら考えられる可能性は、プラグインの再ロードが必要な事態ですが…
YEP_BattleEngineCoreを最新版にした後、一旦プラグイン画面から削除し、その後に再度追加すると言う手を取ってみてください。

それで直らない場合は、新規プロジェクトに旧プロジェクトのファイルを少しずつ差し替えると言う地道な作業で問題の有るファイルを確認するしかないと思います…
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
アバター
エコー
記事: 35
登録日時: 2016年6月14日(火) 09:25

Re: ボスの消滅エフェクトを変えたい

投稿記事by エコー » 2017年12月20日(水) 23:29

剣崎 宗二様
どうもありがとうございます。
最終的に自作プロジェクトのイベントを少しずつコピーするという地道な作業を繰り返すことでようやく原因がわかりました。BattleEngineCoreのアクションシーケンスコードである<finish action>が入ったスキルで倒したときに再現されるようでした。
これを削除すると正常に動作したため、finishactionの呼び出し元の関数を探ってみました。
・・・でも恥ずかしながらわかりませんでした。
<finish action>内のコードは<target action>で記述してもいちおう応用がきくため、いまはこのままで製作を進めていこうと思います。
タイトルと質問の趣旨が最初と違って申し訳ございません。
しかしこれで完璧なボス消滅演出を成し遂げることができました。
aa.gif
aa.gif (770.62 KiB) 閲覧数: 6959 回

お二人方、最後まで付き合っていただき誠にありがとうございました。

“MV:質問” へ戻る