# Unityにてスクリプトでレイヤーを利用したアニメーション再生について

**URL:** <https://creatorsforum.live2d.com/t/topic/3631>\
**Category:** 制作の質問やTips紹介\
**Created:** [2025 年 7 月 4 日午前 8:41 UTC](https://creatorsforum.live2d.com/t/topic/3631 "2025-07-04T08:41:49Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![koha](https://avatars.discourse-cdn.com/v4/letter/k/e9c0ed/32.png) [@koha](https://creatorsforum.live2d.com/u/koha)\
**Post date:** [2025 年 7 月 4 日午前 8:41 UTC](https://creatorsforum.live2d.com/t/topic/3631/1 "2025-07-04T08:41:49Z")

</div>

> **[Motion | SDKマニュアル | Live2D Manuals & Tutorials](https://docs.live2d.com/cubism-sdk-manual/motion-unity/)**

こちらを参考に、普段はレイヤー0を使用し、（攻撃など）特定のタイミングでレイヤー1で一部パラメータを上書きし、モーションが終了すればレイヤー1の動作を止めるという処理をしたいと思っています。  
まず、レイヤー1のアニメーションが終了してもStopAnimationで終了させないとレイヤー1で使ったパラメータが硬直してしまうため、OnAnimationEndが通知された時にレイヤー1のモーション終了時にレイヤー1のアニメーションを停止させようと考えたのですが、instanceIdのみ通知されレイヤーが通知されないため、レイヤー0、1どちらのアニメーションなのか判別できません。  
レイヤー1に使用するアニメーションのinstanceIDをfadeMotionListファイルから手作業で探し、数値をメモしておく事も考えましたが、あまり効率的なやり方とは思えません。  
再生時にinstanceIDを保存しておくことも考えましたが、やはりOnAnimationBeginはレイヤーを問わず通知されるため、非常に不便に感じています。  
再生時はAnimationClipを使うのに停止時はID（animationIndex）を要求されるのがちぐはぐだからかな、と思います。

１，AnimationClipから直接AnimationIndexを知る方法は有りませんか？  
２，コールバック関数でレイヤーを通知する方法は有りませんか？

上記どちらかが可能であれば楽に実装できるのかなと思うのですが、そういった方法は無いのでしょうか？

---

<div class="post-metadata">

**Author:** ![ono-at-live2d-com](https://sea1.discourse-cdn.com/flex015/user_avatar/creatorsforum.live2d.com/ono-at-live2d-com/32/167_2.png) [@ono-at-live2d-com](https://creatorsforum.live2d.com/u/ono-at-live2d-com)\
**Post date:** [2025 年 7 月 7 日午前 8:26 UTC](https://creatorsforum.live2d.com/t/topic/3631/2 "2025-07-07T08:26:04Z")

</div>

@koha 様

いつも弊社製品をご愛顧のほど誠にありがとうございます。  
Live2D スタッフでございます。

モーション終了時のコールバックの `CubismMotionController.AnimationEndHandler` は、`CubismMotionController.OnAnimationEnd()` から呼び出されています。

> <https://github.com/Live2D/CubismUnityComponents/blob/174b7954dc923edf2cb738f59f910ac8c14b3e72/Assets/Live2D/Cubism/Framework/Motion/CubismMotionController.cs#L53>

ここではレイヤーのインデックスを取得できますので、ユーザ側でこちらをカスタマイズしていただけばレイヤーを検知することが可能です。

よろしくお願いいたします。

---

<div class="post-metadata">

**Author:** ![koha](https://avatars.discourse-cdn.com/v4/letter/k/e9c0ed/32.png) [@koha](https://creatorsforum.live2d.com/u/koha)\
**Post date:** [2025 年 7 月 7 日午前 11:12 UTC](https://creatorsforum.live2d.com/t/topic/3631/3 "2025-07-07T11:12:17Z")

</div>

ありがとうございます、解決できました。  
こうしたSDKソースコードを書き換える形での対応をした場合、  
リリースまでにSDKバージョンが変更され、  
アップデートをしたくなった時は再度対応しなければならないのでしょうか？

---

<div class="post-metadata">

**Author:** ![ono-at-live2d-com](https://sea1.discourse-cdn.com/flex015/user_avatar/creatorsforum.live2d.com/ono-at-live2d-com/32/167_2.png) [@ono-at-live2d-com](https://creatorsforum.live2d.com/u/ono-at-live2d-com)\
**Post date:** [2025 年 7 月 9 日午前 4:25 UTC](https://creatorsforum.live2d.com/t/topic/3631/4 "2025-07-09T04:25:47Z")

</div>

@koha 様

はい、ソース自体をカスタマイズした場合はアップデート時に対応が必要になります。
