SpriteStudio / SS5PlayerForUnity

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

v1.2.16 インスタンスパーツの開始フレームがずれる現象について #134

Open westzakk opened 9 years ago

westzakk commented 9 years ago

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

SpriteStudioのアニメーションに複数のアニメーション(attack, idle...)がある場合、インスタンスパーツの開始フレームがずれる現象を確認したので、こちらでご報告させていただきます。

原因

TimeElapsedSetForce に渡す FrameCount を計算している箇所で animationNo が1以上のとき、FrameNo(ScriptRoot.FrameNoNow) が対象のアニメーション内の経過フレームと一致しなくなるため。

修正例

対象アニメーション内での経過フレームを計算するプロパティを追加する。

diff --git a/Assets/SpriteStudio/Script/Script_SpriteStudio_PartsRoot.cs b/Assets/SpriteStudio/Script/Script_SpriteStudio_PartsRoot.cs
index 6c0f03b..6b4deca 100644
--- a/Assets/SpriteStudio/Script/Script_SpriteStudio_PartsRoot.cs
+++ b/Assets/SpriteStudio/Script/Script_SpriteStudio_PartsRoot.cs
@@ -335,6 +335,16 @@ public float TimeFramePerSecond
    }
  }

+ public int ProgressFrameCount
+ {
+   get
+   {
+     var animRef = this.SpriteStudioDataReferenced;
+     var animationInfo = animRef.ListInformationAnimation[this.AnimationNo];
+     return this.FrameNoNow - animationInfo.FrameStart;
+   }
+ }
+
  private int countLoopThisTime;
  internal int CountLoopThisTime
  {
diff --git a/Assets/SpriteStudio/ScriptLibrary/Library_SpriteStudio.cs b/Assets/SpriteStudio/ScriptLibrary/Library_SpriteStudio.cs
index 2361060..e554ebc 100644
--- a/Assets/SpriteStudio/ScriptLibrary/Library_SpriteStudio.cs
+++ b/Assets/SpriteStudio/ScriptLibrary/Library_SpriteStudio.cs
@@ -1914,7 +1914,7 @@ public bool UpdateInstanceData(int FrameNo, GameObject GameObjectNow, Script_Spr
                          DataBody.OffsetEnd
                        );

-       int FrameCount = FrameNo - FrameNoInstanceBase;
+       int FrameCount = ScriptRoot.ProgressFrameCount - FrameNoInstanceBase;
        FrameCount = (0 > FrameCount) ? 0 : FrameCount;
        ScriptPartsRootSub.TimeElapsedSetForce(FrameCount * ScriptRoot.TimeFramePerSecond, FlagIndipendent);
        PartsInstance.FrameNoPreviousUpdate = FrameNoInstanceBase;
MasamiYitsuse commented 9 years ago

westzakk 様

お世話になっております。 また、バグのご報告と修正点のご指摘、ありがとうございます。

現在(1.3系の作成に向けて)1.2.x系のFIX準備を行っているため、そのFIX準備の作業中に頂いた内容を反映したいと思っております。

重ねて、ご連絡、ありがとうございます。

westzakk commented 9 years ago

内容をご確認いただき、ありがとうございます。 バージョンアップでご対応いただく旨について、承知致しました。 引き続きよろしくお願い致します。

MasamiYitsuse commented 9 years ago

報告が遅れて申し訳ありません。 Ver.1.2.17にて解消を致しました。