【解決済】トリアコンタン様のParallaxLayerMapのチラつきについて

アリクイマン
記事: 44
登録日時: 2018年5月06日(日) 12:30

【解決済】トリアコンタン様のParallaxLayerMapのチラつきについて

投稿記事by アリクイマン » 2018年12月16日(日) 08:34

お世話になっております。

トリアコンタン様の
HalfMove.js及び
ParallaxLayerMapを同時に使用しているのですが、
マップサイズをデフォルトの17x13以上のサイズから、高さ、幅共に増やし、
斜め移動をした際に、
ParallaxLayerMapで表示している画像が、1ピクセル単位でブレる現象が発生しました。
(移動中のみブレ、停止している際はブレません。)

上下左右の通常の移動の際や、マップの高さ、幅のどちらかが、
デフォルトのサイズと同じ場合は、当現象は発生しませんでした。
他プラグインは導入していない環境で確認を行いました。

ドット絵中心のゲームを作成しており、
1ピクセル単位でズレがないような画像を使用しているため、確認できました。

可能であれば、解決策を教えていただきたいです。
よろしくお願いいたします。
最後に編集したユーザー アリクイマン on 2018年12月20日(木) 22:26 [ 編集 1 回目 ]

アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: トリアコンタン様のParallaxLayerMapのチラつきについて

投稿記事by トリアコンタン » 2018年12月16日(日) 23:53

こんばんは!
プラグインのご利用ありがとうございます。

こちらで環境を作成して確認したのですが、ズレているのかちょっと判断がつきませんでした。
なので素材次第なのか判断したいのですが、現象に再現するプロジェクトをご提供いただくことは可能でしょうか。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アリクイマン
記事: 44
登録日時: 2018年5月06日(日) 12:30

Re: トリアコンタン様のParallaxLayerMapのチラつきについて

投稿記事by アリクイマン » 2018年12月17日(月) 00:49

ご返信ありがとうございます。
作成中のプロジェクトをそのままお渡しするのは少し恥ずかしく思い、
同じ環境と素材を利用し、新規プロジェクトを作成していたのですが、
こちらの新規プロジェクトでは当現象が発生せず、
一度、プロジェクトをお渡しする前に、原因を突き詰め直してみます。

A,他プラグインや自作プラグイン等を利用したデータ
・HalfMove.js及びParallaxLayerMap.js以外をオフに
・上記プラグインに関わる自作処理を全てコメントアウト
・index.htmlの変更箇所を元に戻す
結果:現象発生。

B,新規プロジェクトに素材及び該当プラグインを導入
結果:現象発生せず。

という状態です。
こちらから書き込んでおいて申し訳ないのですが、
少々再現の為にお時間をいただいてもよろしいでしょうか?

よろしくお願いいたします。
アリクイマン
記事: 44
登録日時: 2018年5月06日(日) 12:30

Re: トリアコンタン様のParallaxLayerMapのチラつきについて

投稿記事by アリクイマン » 2018年12月17日(月) 01:06

連投になってしまい申し訳ございません。

検証していたところ、HalfMove.jsのパラメーター、「斜め移動中減速」をtrueに設定している状態で
現象が発生することを確認いたしました。
デフォルトのfalseの状態では、他プラグイン等が導入されている状態でも、当現象は確認できませんでした。

プロジェクトファイルについてですが、
不特定多数に閲覧されることがまだ恥ずかしい段階であるので、
ツクマテ様以外の方法でお渡しする、という方法でも問題ないでしょうか?

よろしくお願いいたします。
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: トリアコンタン様のParallaxLayerMapのチラつきについて

投稿記事by トリアコンタン » 2018年12月17日(月) 02:36

こんばんは!
同パラメータをONにして試しましたが、やはりこちらではズレの判断が難しいです。。

プロジェクトの共有方法ですが、こちらとしてはどのようなかたちでも問題ありません。
ただ、プロジェクト自体は任意のアップローダ等にあげていただければOKですが、パスワードを共有するのがちょっと難しいかもしれません。
ツイッターをされていればDMで受け取ることができますが。。
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アリクイマン
記事: 44
登録日時: 2018年5月06日(日) 12:30

Re: トリアコンタン様のParallaxLayerMapのチラつきについて

投稿記事by アリクイマン » 2018年12月17日(月) 20:21

>> トリアコンタン様

ご返答ありがとうございます、またお手数をおかけして申し訳ございません。
TwitterにてDMでプロジェクトファイル及びgifアニメを送信させていただきました。
よろしくお願いいたします。
アリクイマン
記事: 44
登録日時: 2018年5月06日(日) 12:30

Re: 【解決済】トリアコンタン様のParallaxLayerMapのチラつきについて

投稿記事by アリクイマン » 2018年12月20日(木) 22:27

本件、原因が判明いたしましたので解決策を共有させていただきます。

コード: 全て選択

Game_CharacterBase.prototype.distancePerFrame


にて端数込みで座標を計算していたのが原因でした。

コード: 全て選択

return (this._additionalX || 0) - Math.round($gameMap.displayPixelX());


のように端数を丸めることで対策できます。
(トリアコンタン様確認済み)
アバター
トリアコンタン
記事: 2311
登録日時: 2015年11月10日(火) 21:13
お住まい: きのこ王国
連絡を取る:

Re: 【解決済】トリアコンタン様のParallaxLayerMapのチラつきについて

投稿記事by トリアコンタン » 2018年12月22日(土) 14:02

こんにちは!
本修正をプラグインに適用されました。
この度は調査対応ありがとうございました!

HalfMove.jsによる減速斜め移動など特定の条件下でマップの描画位置がずれる場合がある現象を修正(ver1.1.2)
https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/ParallaxLayerMap.js
プラグイン関連のトラブルが発生した際の切り分けと報告の方法です。
http://qiita.com/triacontane/items/2e227e5b5ce9503a2c30

[Blog] : http://triacontane.blogspot.jp/
[Twitter]: https://twitter.com/triacontane/
[GitHub] : https://github.com/triacontane/
アリクイマン
記事: 44
登録日時: 2018年5月06日(日) 12:30

Re: 【解決済】トリアコンタン様のParallaxLayerMapのチラつきについて

投稿記事by アリクイマン » 2019年1月24日(木) 22:12

移動速度がデフォルトの4以外で、
且つイベントによる移動ルート設定でのスクロールを伴うプレイヤーの移動の際に、
サイド該当現象が発生してしまいました。

調査を行ったので、対応方法を記載させていただきます。

コード: 全て選択

Game_Event.prototype.getLayerX = function() {
  return  Math.round((this._additionalX || 0) - $gameMap.displayPixelX());
};
Game_Event.prototype.getLayerY = function() {
  return Math.round((this._additionalY || 0) - $gameMap.displayPixelY());
};


Math.roundをdisplayPixelではなく、減算後の結果に代入することで、回避することができました。

“MV:質問” へ戻る