SpriteStudio / SS5PlayerForUnity

OPTPiX SpriteStudio 5 Player for Unity
http://www.webtech.co.jp/spritestudio/
MIT License
39 stars 15 forks source link

v1.3.9 エフェクトZ回転速度変更の到達時間%に0を入れるとエラーが発生する #178

Open DKAlpha opened 8 years ago

DKAlpha commented 8 years ago

お世話になっております。 Unityにインポートして動作させたときに、エフェクトで以下の条件を満たすとコンソールにエラーが出て表示されなくなります。

0ではなく0.01でも値を入れると正常に動作します。 これは推奨されない設定なのか、それともランタイムの不具合なのか、ご教授いただけると助かります。 各種環境です。 SpriteStudio: 5.6.1.6003 SS5Player For Unity: 1.3.9 Unity: 5.3.4f1

DKAlpha commented 8 years ago

上記のバグを修正したバージョンを、GitHubのDevelopブランチにVer.1.3.10として更新いたしました。

原因の詳細としては、SS5PUで再生時に、(エフェクトの計算において)当該パラメータが0の場合に0除算が起こり結果がNanになってしまっていたものを、そのまま以後の計算を進めていたため、回転の更新計算結果が異常値となり・各種エラーを引き起こしていた……となります。 ※また、恐らくそのような値は設定できないとは思いますが、0に近似する非常に小さな値を設定した場合、Infの結果を示し、ほぼ類似の症状を起こすこともわかりました。

対処としては、SS5PUのランタイム(プレーヤー)側で、パーティクル(エフェクトのパーツ)回転の当該計算時に異常を示す値に対して「正常な値範囲(0.0~1.0)になるようにチェックを行う」ように致しました。

お忙しい中お手数とは存じますが、ご検証の程お願い申し上げます。

追伸: また、本件は純粋にランタイム側の修正のみとなりますため、データの再インポートなどは必要ありません(インポータ側は変更されておりません)。