SpriteStudio / SS5PlayerForUnity

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

v1.3.13 インスタンスパーツについて最後のキーフレームが反映されない #181

Open munegon opened 8 years ago

munegon commented 8 years ago

Library_SpriteStudio.csにつきまして、IndexGetValueメソッドの処理にバグがあるのではと思い ご報告させていただきます。

forループ内のIndexGetValue_Endへのgoto直前でFrameNoKeyが再算出されていないため 最後のキーフレーム以外ではFrameNoOriginがひとつ先にずれることで最後のキーフレームが 変化なしとみなされるようです。 FrameNoOriginによる変化チェックはUpdateInstance内でしか行われていないようなので インスタンスパーツのみで起こるバグだと思いますが、TimeOffsetの算出にも使われているので 副作用がないか調査および修正をお願いいたします。

暫定ですが手元では以下の2行挿入で反映を確認しております。

for(int i=1; i<Count; i++)
{
    StatusTemp = ListStatus[i] & FlagBit.FRAMENO;
    FrameNoKey = (FlagBit.FRAMENO == StatusTemp) ? -1 : (int)StatusTemp;
    if(FrameNo < FrameNoKey)
    {
        // 挿入:ここから
        StatusTemp = ListStatus[i - 1] & FlagBit.FRAMENO;
        FrameNoKey = (FlagBit.FRAMENO == StatusTemp) ? -1 : (int)StatusTemp;
        // ここまで

        StatusTemp = ListStatus[i - 1] & FlagBit.INDEX;
        Index = (FlagBit.INDEX == StatusTemp) ? -1 : ((int)StatusTemp >> 15);
        goto IndexGetValue_End;
    }
}
MasamiYitsuse commented 8 years ago

munegon様

お世話になっております。 バグのレポートありがとうございます。 また、対処法についてもいただき、心から御礼申し上げます。

検証後、GitHubに更新した際にはこちらで改めて適用バージョンなども一緒に報告させていただきます。 検証に少々(恐らくは数日の範囲内だと思われます)のお時間をいただけますようお願い申し上げます。

重ねて御礼もうしあげますとともに、今後とも何卒宜しくお願い致します。

MasamiYitsuse commented 8 years ago

munegon様

お待たせいたしました。 本件について、対処したバージョンを、GitHubのdevelopブランチに「Ver.1.3.14」としてアップいたしました。

頂いた障害は、アトリビュートが圧縮されている時の基部処理になっているため、この障害がインスタンス以外にもエフェクトやユーザーデータなどにも影響する可能性が高いことがわかったため、対処後の確認に時間がかかってまったことから、アップが遅れてしまい大変申し訳ございません。

お忙しい中お手数をおかけして大変申し訳ございません。 また、対処方法について、ご提供有難うございます。 何卒今後とも宜しくお願い致します。

追伸: 上記アップデート時に、アップするファイルを間違えてしまったため、(数分後に)追加で正しい内容を再度アップいたしました(そのためGitHubのログにはVer.1.3.14の更新が2回記述されています)。

munegon commented 8 years ago

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

Ver.1.3.14で正常な動作を確認いたしました。 早速の対応ありがとうございます。

DKAlpha commented 8 years ago

1.3.14で解決されたという事で、発生バージョンを1.3.13に変更しました。 1.3.xだと1.3系全般で発生するものに見えるので混乱を回避するためです。