【解決済み】重なったイベントがちらつく

返信する
アバター
しぐれん
記事: 975
登録日時: 2017年3月28日(火) 22:22
連絡する:

【解決済み】重なったイベントがちらつく

投稿記事 by しぐれん »

Spriteset_Mapに新規のスプライトを追加しましたが、これがあるとイベントがちらつきます。
フォロワーの座標が重なった場合・プライオリティを通常キャラの下に設定したイベントと重なった場合でちらつきます。
同様の現象に遭遇した方はいませんでしょうか?
MVでのみ発生し、MZ環境で同じプラグインを動かした際は問題は発生しませんでした。

表示内容を見る限り、同じ座標にあるイベント同士が前に出ようと奪い合っているように見えました。
最後に編集したユーザー しぐれん [ 2021年2月16日(火) 11:29 ], 累計 1 回
現在、プラグイン依頼はお休み中です。
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡する:

Re: 重なったイベントがちらつく

投稿記事 by トリアコンタン »

こんにちは!

こちらで再現確認を試してみたのですが、近い挙動にはなりましたが、正確な現象は再現できませんでした。
(こちらでは「追加したスプライト」と「既存のイベント」とがちらつく現象が発生しました)

なので、以下の話はある程度の推測を含みます。ご報告の事象に該当するかどうかは分かりません。

コアスクリプトではTilemap配下のスプライトに対して毎フレームソートしています。
ソートには以下の比較関数が与えられます。

コード: 全て選択

Tilemap.prototype._compareChildOrder = function(a, b) {
    if (a.z !== b.z) {
        return a.z - b.z;
    } else if (a.y !== b.y) {
        return a.y - b.y;
    } else {
        return a.spriteId - b.spriteId;
    }
};
この比較関数の中にNaNを返すケースがあると、実行環境によってはソート結果が不確定になる場合があります。
例えば、zというプロパティを持たないスプライトをTilemapの子要素として追加すると「a.z - b.z」が「NaN」を返します。

もしスプライトをTilemapに追加していて、かつzプロパティを設定していない場合、設定することでちらつきが解消される可能性があります。
その場合、MZでは再現しないのは、MZのChromiumのバージョンがより新しいからかもしれません。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アバター
しぐれん
記事: 975
登録日時: 2017年3月28日(火) 22:22
連絡する:

【解決済み】Re: 重なったイベントがちらつく

投稿記事 by しぐれん »

Zの追加を試してみたところ、ちらつきは発生しなくなりました。
ありがとうございます。
現在、プラグイン依頼はお休み中です。
返信する

“MV:質問”に戻る