SpriteStudio / SS5PlayerForUnity

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

v1.3.0 ソースアニメの総フレーム数が1の場合にフリーズする #162

Open gigacee opened 8 years ago

gigacee commented 8 years ago

SpriteStudio で、ソースアニメの総フレーム数が 1 のインスタンスアニメーションを作成し、 Unity にインポートすると、 Hierarchy にそのアニメーションデータ (Prefab) を置こうとしたタイミングで、 Unity がフリーズします。 Unity 5.3.2 と Unity5.3.3 で、この現象を確認しています。

確認用プロジェクトを作成したので、参考にしていただければと思います。 https://github.com/Gigacee/SS5PfU130_instance (「MainAnimation_NG_Control」を Hierarchy にドラッグ&ドロップするとフリーズします。)

以上、よろしくお願いいたします。

DKAlpha commented 8 years ago

ご迷惑をおかけします。検証データの方ありがとうございます。 現象を調査しますので少々お待ちください。

MasamiYitsuse commented 8 years ago

Gigacee様

お世話になっております。 レポートと検証データ有難う御座います。また、現象を確認できました。

原因としては、 Script_SpriteStudio_Root.csのTimeElapsedSetForce関数において フレーム数が1のデータに限り処理が無限ループしてしまう症状がありました。

現在、解消方法について細かく検証中(下記方法で良いのかのテストなどをしています)ですので、SS5PUのGitHub::develop上のバージョンアップまで少々お待ちください。


もし、当該症状を(バージョンアップを待たず)早急に回避する必要がございましたら、お手元の同ソース(Assets/SpriteStudio/Script/Script_SpriteStudio_Root.cs)の561行目を修正することでハングアップを回避することが可能です。

修正前: float TimeRange = (float)(FrameNoEnd - FrameNoStart) * TimePerFrame; 修正後: float TimeRange = (float)((FrameNoEnd - FrameNoStart) + 1) * TimePerFrame;


お忙しい中ご迷惑をおかけいたしますが、何卒今後とも宜しくおねがいいたします。

gigacee commented 8 years ago

早急なご対応、ありがとうございます。どうぞよろしくお願いいたします。

DKAlpha commented 8 years ago

この不具合を修正したVer1.3.1をdevelopブランチにアップいたしました。 こちらを取得していただき動作を確認してみてください。 よろしくお願いいたします。

gigacee commented 8 years ago

v1.3.1 に更新して動作を確認いたしましたが、 Unity がフリーズする症状はそのままでした。

以下のリポジトリに、 v1.3.1 で検証したプロジェクトファイルをあげています。 (以前と同様、「MainAnimation_NG_Control」を Hierarchy にドラッグ&ドロップするとフリーズします。) https://github.com/Gigacee/SS5PfU130_instance/tree/master

ご確認していただけると幸いです。よろしくお願いいたします。

gigacee commented 8 years ago

また、 v1.3.0 では問題なかった、「総フレーム数が 2 のインスタンスアニメーション」でも固まるようになってしまっているようです。3フレームに増やしましたところ、解消しましたので、こちらも合わせてご報告させていただきます。

MasamiYitsuse commented 8 years ago

Gigacee様

お世話になっております。 状況が改善しない旨、了解致しました。

ご提供いただいたプロジェクト上で検証を行っていたのですが、お手元のプロジェクトで支障が出ているとのことですので、こちらでも再度検証を進めたいと思います。

具体的な対処法が判明するまでご面倒をおかけするかもしれませんが、何卒宜しくお願い致します。

MasamiYitsuse commented 8 years ago

Gigacee様

お世話になっております。 こちらの症状ですが、最初の障害を修正したものをGitHubの側のソースに転記する際にミスしておりました。 修正更新いたしましたので、再度GitHubのdevelopから取得をお願い致します。

お忙しい中大変申し訳ありません。

gigacee commented 8 years ago

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

v1.3.2 にアップデートしたところ、総フレーム数が 1 のソースアニメを含んだインスタンスアニメーションによって Unity がフリーズする問題は、解決いたしました。

ただ、そのインスタンスアニメーションに対して AnimationPlay 関数を実行すると、アニメーションの終了時にインスタンスが消えてしまうという問題が発生しています。こちら、別 issue にてご報告させていただければと思います。

MasamiYitsuse commented 8 years ago

Gigacee様

お世話になっております。 1フレームのインスタンスアニメーションのAnimationPlayの件については、

164

のIssueにて承りました(本コメント時点で同件も解消いたしました)。

関連Issueとして、こちらでも報告させて頂きます。

今後とも何卒よろしくお願い致します。