UnityのTimelineでSpineを使う
Unityの強力なシーン作成ツールにTimelineがあります。ゲームのムービーシーンとかを作るツールですね。簡単な操作でカメラ操作とか、アニメーション再生ができてしまいます。ワオって感じですね。で、これをSpineのゲームオブジェクトでも使えます。
まだUnityもSpineもいじりはじめたばかりなのでさわり程度しかわかりませんが、とりあえず動くところまでは持って行こうかなと思いまっす。
まずはUnityプロジェクトを作成しSpineランタイムを導入します。
次に、ランタイムとは別で外部拡張として提供されているtimeline用のパッケージをダウンロードします。「Timeline Extensions UPM package 」ってやつね。これ分けられてるの気づかないと地味にハマるポイントです。ドキュメントは、ちゃんと読もう!!!
Limitations: currently only SkeletonAnimation is supported. You can find an implementation for SkeletonGraphic kindly provided by a forum user on this forum thread.
で、注意書きがあって、現在はスケルトンアニメーションでしかタイムライン機能は対応できてないよ、との事です。これも気をつけましょう。
ダウンロードしたzipを解凍してUnityから読み込みます。window>package managerでパッケージマネージャーを開き、左上の+からAdd package from diskを選択し、さっき解凍したzip内のpackage.jsonを読み込みます。これでタイムライン拡張が導入されました。
実際にタイムラインを使っていきます。window>sequencing>timelineでタイムラインウィンドウを開きます。適当なゲームオブジェクトを選択して、シーンに追加したSpineゲームオブジェクトを選択し、ウインドウに現れたcreateボタンをクリックします。
timeline.playableを保存。
こんな感じでトラックが生成されます。spineのアニメーショントラックを追加するには、左上の+を選択してSpine.unity.PlayablesのSpine AnimationState Trackを追加します。Spine Skeleton Flip Trackは反転用のものらしいです。
トラックにアニメーションを再生するSpineのゲームオブジェクト対象を設定する必要があります。
これでこのトラックはそのゲームオブジェクト専用になりました。ここにモーションを追加していくわけですね。実際にここに追加していくモーションは、スケルトンデータと同じ場所に生成されるリファレンスアニメーションを追加していく感じになります。
無い場合はスケルトンデータのインスペクターで生成できます。
このボタンで生成できます。
あとはリファレンスアニメをドラッグアンドドロップでぽいぽい追加していきます。
設定のLoopをオンにしてタイムラインのクリップを伸ばせば、その時間分モーションをループしてくれます。
複数のアニメーションを同時再生
もちろんできます。トラック自体のインスペクターにはトラックインデックスが設定されています。これを別の物にしてトラックを追加すれば複数のアニメーションを同時に再生できます。
こうすると複数のアニメーションを同時再生できます・・・が、できるものとできないものがあったり、機能不全起こす気が・・・。ちょっと癖がありそうです。
他に、普通にスクリプト組んでそれをタイムラインに乗っけるとかしたいんですが、方法あるんですかねえ? ここらへん、unity側の問題なのか、spine側の問題なのかって切り分けがまだ難しくて試行錯誤の日々です。
この記事が気に入ったらサポートをしてみませんか?