Problem statement
Unity上で加算トラックを使用したアニメが正常に描画されません。
剣の柄を引っ張られている剣士のアニメ「GrabbedSword」があります。
動きを追加した「GrabbedSword_add」アニメをTrack1で加算描画します。
Spineエディタ上では問題なくミックス描画されました。
これをUnityに実装しました。
すると上の動画のように赤いパーツが拡大され続けて画面を覆い尽くしてしまいます。
調べてみるとこれはキャラクターの口のパーツでした。
キャラクターの口のパーツは加算トラックでスケールを縮小しています。
試しに口のスケール縮小キーだけを消した「GrabbedSword_add2」を作成し、同様の条件でアニメを再生したスケルトンはパーツの拡大は起こりませんでした。
スケールを調整したアニメを加算トラックで再生する際に何らかの不具合が起こっているように見えます。
public class TestAnim : MonoBehaviour
{
public SkeletonAnimation skeletonAnimation;
[HideInInspector] public TrackEntry trackEntry0; // Main
[HideInInspector] public TrackEntry trackEntry1; // Blend.Add
void Start()
{
skeletonAnimation = GetComponent<SkeletonAnimation>();
trackEntry0 = skeletonAnimation.AnimationState.SetAnimation(0, "Test/GrabbedSword", true);
trackEntry1 = skeletonAnimation.AnimationState.AddAnimation(1, "Test/GrabbedSword_add", true, 0f);
trackEntry1.MixBlend = MixBlend.Add;
}
}
コードはこのように記述しました。
・Spineのバージョン:4.2.33
・ランタイム:2024_7_30の最新版
・Unityのバージョン:2022_3.13f1
こちらの現象が再現するプロジェクトをメールでお送りさせて頂きました。
ご確認いただけますと幸いです