ページ 11

サイドビュー時、バトルアニメの表示面について

Posted: 2020年3月23日(月) 09:43
by 進撃のエレン
この度、ご質問させて頂く内容ですが「サイドビュー時のバトルアニメーション表示面について」です。

現在サイドビューにて作成していて、バトルアニメが画面の最前面で表示され
これをアクターのすぐ前の面で表示出来ないかと思い色々探していたところ、
公式の「新機能活用講座」の画像では、きちんとアクターのすぐ前の面で表示されています。

こちらが「新機能活用講座」の画像です。
image004.jpg
image004.jpg (81.07 KiB) 閲覧された回数 4019 回
新規プロジェクトを作成し
データベース「システム」→サイドビュー戦闘を使用にチェック
を入れただけのプロジェクトでバトルアニメを表示させたところ
vlcsnap-2020-03-23-09h21m42s766.png
この様に他のアクターにかぶってしまっています。
これを「新機能活用講座」の画像の様にする事は可能でしょうか?

そもそもこれは「新機能活用講座」の画像が間違っているのか
現在のVer1.6.2ではこの様にならないのかどちらでしょうか?

何卒宜しくお願い致します。

Re: サイドビュー時、バトルアニメの表示面について

Posted: 2020年3月23日(月) 13:31
by 剣崎 宗二
現在のVer1.6.2ではこの様にならないのかどちらでしょうか?
こちらの可能性が高いです。

現状(1.6.2)のコードを見た所、アニメーションのSpriteは常に「開始時の一番上」に追加される動きになっております。
一応私の方でコードを変更し
download/file.php?mode=view&id=14741
この様な効果を生み出すことには成功しましたが、じっくり改修する時間が取れず、他の表示順並び替えのプラグインと著しく相性が悪い方法を使う事に成りましたのであまりお勧めできない状態です。

Re: サイドビュー時、バトルアニメの表示面について

Posted: 2020年3月23日(月) 14:30
by 進撃のエレン
剣崎 宗二 様

早々にお答え頂きましてありがとうございます。
こちらの可能性が高いです。
そうだったのですね。
この様な効果を生み出すことには成功しましたが、じっくり改修する時間が取れず、他の表示順並び替えのプラグインと著しく相性が悪い方法を使う事に成りましたのであまりお勧めできない状態です。
ご面倒かとは思いますが、どのように改修されたか教えて頂いても宜しいでしょうか?

rpg_sprites.js のこちらの部分に何か関係があるのでしょうか?
Sprite_Battler.prototype.setupAnimation = function() {
while (this._battler.isAnimationRequested()) {
var data = this._battler.shiftAnimation();
var animation = $dataAnimations[data.animationId];
var mirror = data.mirror;
var delay = animation.position === 3 ? 0 : data.delay;
this.startAnimation(animation, mirror, delay);
for (var i = 0; i < this._animationSprites.length; i++) {
var sprite = this._animationSprites;
sprite.visible = this._battler.isSpriteVisible();
}
}
};

Re: サイドビュー時、バトルアニメの表示面について

Posted: 2020年3月24日(火) 14:46
by 剣崎 宗二
改変する側はこっちです。

コード: 全て選択

Sprite_Base.prototype.startAnimation = function(animation, mirror, delay) {
    var sprite = new Sprite_Animation();
    sprite.setup(this._effectTarget, animation, mirror, delay);
    this.parent.addChild(sprite);
    this._animationSprites.push(sprite);
};
詳しいコードを昨日誤って消してしまったので掲載できませんが、基本的な考え方としては、addChildではなく、addChildAtを使う事により、現Spriteの1個上(+1)のindexにSprite_Animationを追加する話です。
(これをやるには「現Spriteの、parent.childrenに於けるindex」を調べる事が必須条件となります)

Re: サイドビュー時、バトルアニメの表示面について

Posted: 2020年3月25日(水) 15:51
by 進撃のエレン
ご返信、誠にありがとうございます。
詳しいコードを昨日誤って消してしまったので掲載できませんが、基本的な考え方としては、addChildではなく、addChildAtを使う事により、現Spriteの1個上(+1)のindexにSprite_Animationを追加する話です。
(これをやるには「現Spriteの、parent.childrenに於けるindex」を調べる事が必須条件となります)
教えて頂きましてありがとうございます。
しかしながら、現在の私の力では上記の問題を解決する事が出来ませんでした。
方法を教えて頂いたのに関わらず大変申し訳ございません。

ありがとうございました。