ライセンスについて
Spineランタイムをアプリケーションに組み込むにはSpineライセンスが必要です。
Timeline 拡張UPMパッケージ
Timelineサポートは、別のUPM(Unity Package Manager)パッケージとして提供されています。このパッケージをダウンロードしてインストールする方法についてはオプションの拡張UPMパッケージセクションを、アップデートする方法については拡張UPMパッケージのアップデートセクションを参照してください。タイムライン拡張パッケージのインストールと使い方については以下のビデオが参考になるでしょう。
Spine-Unity Timeline Playables
Spine Timelineでは現在、以下3種類のTimeline Playablesを提供しています:
SkeletonAnimation Track
(SkeletonAnimation
をアニメーションさせます)、SkeletonGraphic Track
(SkeletonGraphic
をアニメーションさせます)、Skeleton Flip Track
(SkeletonAnimation
およびSkeletonGraphic
を反転させます)。
注意: Timelineの各トラックは、読みやすさを向上させるために最近のバージョンで名前が変更されました。
SkeletonAnimation Track
は、以前はSpine AnimationState Track
、SkeletonGraphic Track
は、以前はSpine AnimationState Graphic Track
、Skeleton Flip Track
は、以前はSpine Skeleton Flip Track
と呼ばれていました。
制限事項: 現在サポートされているのは、SkeletonAnimationとSkeletonGraphicのみです。SkeletonMecanimはTimelineでサポートされていません。
SkeletonAnimation Track と SkeletonGraphic Track
これらのトラックタイプは、対象となるSkeletonAnimation
またはSkeletonGraphic
のAnimationStateにアニメーションを設定するために使用できます。SkeletonAnimation
にはSkeletonAnimation Track
、SkeletonGraphic
にはSkeletonGraphic Track
というトラックタイプが使用されます。
パラメーター
-
Track Index : アニメーションの設定対象となるAnimationStateトラックのインデックスです。複数のタイムライントラックを使用する場合は、忘れずにこの値を適宜設定してください。
重要な注意事項: 現在のところ、タイムライントラックの順番は、ベーストラックが上、オーバーレイトラックが下になるようにする必要があり、そうしないとエディタープレビューで正しくない結果が表示されてしまいます。
-
Unscaled Time : このトラックの新しいアニメーションクリップを開始するたびに、
SkeletonAnimation.UnscaledTime
(またはSkeletonGraphic.UnscaledTime
) がこの値に設定されます。これにより、Timeline クリップを通常のゲーム時間で再生したり、スケーリングされていないゲーム時間で再生することができます。 ただし、PlayableDirector.UpdateMethod
が無視されてこのプロパティに置き換えられるので、Timelineトラックごとにより細かい制御が可能になることに注意してください。
Spine Animation State Clip
AnimationReferenceAsset
をTimelineトラックにドラッグすることでSkeletonAnimation Track
(またはSkeletonGraphic Track
)にSpine Animation State Clip
を追加することができます。SkeletonDataAsset
のAnimationReferenceAssets
を生成する方法についてはSkeletonData - Previewセクションをご覧ください。
パラメーター
Clip Timing
- Clip In : このアニメーションを再生する際に適用される初期のローカル開始時間のオフセット。クリップの左端をドラッグして調整することもできます。
- Blend In Duration :
Use Blend Duration
が有効かつDefault Mix Duration
が無効な場合に使用されるブレンドトランジションのデュレーションです。クリップを前のクリップに移動させることで、トランジション時にクロスフェードの三角形が表示され、調整することができます。 - Speed Multiplier : 再生速度の倍率。2.0に設定するとアニメーションの再生速度が2倍になり、0.5に設定すると半分に減速します。
Spine Animation State Clip
- Don't Pause with Director : trueに設定すると、Directorが一時停止してもアニメーションが継続して再生されるようになります。
- Don't End with Clip : 通常、タイムライン上でクリップの後に空のスペースが続くと、トラックに空のアニメーションが設定されますが、このパラメータをtrueに設定すると、代わりにクリップのアニメーションを再生し続けます。
- Clip End Mix Out Duration :
Don't End with Clip
がfalseの場合で、クリップの後に空白がある、または停止していると、このMixDuration
で空のアニメーションが設定されます。0未満の値を設定した場合、クリップは代わりに一時停止されます。
Mixing Setting
- Default Mix Duration : 無効にすると、前のアニメーションからこのアニメーションへの移行時に、後述の
Mix Duration
の値が使用されます。有効にすると、アニメーションペアのSkeletonDataアセットで設定されたMix Duration
の値が使用されます。 - Use Blend Duration : 有効にすると、
Mix Duration
の値は、タイムラインクリップのトランジションデュレーション「Ease In Duration」と同期するようになります。これを有効にすると、クリップを前のクリップに移動させることでトランジションのデュレーションを調整し、トランジション時にクロスフェードの三角形が表示されます。 - Mix Duration : Default Mix Durationが無効な場合、前のアニメーションからこのアニメーションへの移行時にここで設定したミックスデュレーションが使用されます。
- Event Threshold : TrackEntry.EventThresholdをご覧ください。
- Attachment Threshold : TrackEntry.MixAttachmentThresholdをご覧ください。
- Draw Order Threshold : TrackEntry.MixDrawOrderThresholdをご覧ください。
- Alpha : TrackEntry.Alphaをご覧ください。
無視されるパラメーター
- Ease Out Duration、Blend Curves : これらのパラメーターは無視され、何の影響もありません。
注意: Default Mix Duration は、以前は Custom Duration と呼ばれており、有効と無効が反転していました。これは読みやすさを向上させるために変更されました。
使用方法
- SkeletonAnimation GameObjectに
SkeletonAnimationPlayableHandle
コンポーネントを、またはSkeletonGraphic
の場合にはSkeletonGraphicPlayableHandle
を追加します。 - すでにUnity Playable Directorがある状態で、Unity Timelineウィンドウで左側の何もないスペースを右クリックして
Spine
-SkeletonAnimation Track
を選択します。 - SkeletonAnimationまたはSkeletonGraphic GameObjectを、新しいSpine AnimationState Trackの空の参照プロパティにドラッグします。
- トラックにアニメーションを追加するには、通常のアニメーションクリップと同じように、それぞれの
AnimationReferenceAsset
をクリップビュー(Timelineパネルの右側)にドラッグし てください。
アニメーションごとのAnimationReferenceAsset
を作成する方法についてはspine-unityランタイムドキュメントのPreviewセクションを参照してください。
補足: 複製機能(
CTRL
/CMD
+D
)を使って、クリップビューで選択したクリップを複製することができます。
このトラックの挙動
AnimationState.SetAnimation()
はAnimationReferenceAsset
に基づいてすべてのクリップの最初に呼び出されます。- Timelineのバージョン4.0以降、クリップのデュレーションが重要になりました。
補足 : バージョン3.8の挙動では、クリップのデュレーションは問題ではありませんでした。タイムライン上のクリップの後に何もない空間に到達しても、アニメーションはクリアされませんでした。
- 空のアニメーション : クリップに
AnimationReferenceAsset
が割り当てられていない場合は、代わりにSetEmptyAnimation
が呼び出されます。 - エラー処理 : 提供された
AnimationReferenceAsset
を持つアニメーションが見つからない場合は、何もしません(前のアニメーションが通常通り再生されます)。 - タイムラインの再生開始前に再生されているアニメーションは、最初のクリップの再生が始まるまで中断されません。
- クリップの終わりやタイムラインの終わりに何が起こるかは、クリップの設定によって異なります。
Don't End with Clip
がtureの場合、クリップの終わりには何も起こりません。これは、最後のクリップのSetAnimation
コールが、AnimationStateで他のコールを発行するまで持続することを意味します。Don't End with Clip
がfalseの場合、Clip End Mix Out Duration
に設定されたデュレーションで空のアニメーションにミックスアウトされるか、Clip End Mix Out Duration
が0より小さい場合は一時停止されます。 - 編集モードのプレビューミキシングは、再生モードのミキシングとは異なって見える場合があります。実際の結果は、実際のプレイモードで確認してください。複数のトラックを重ねてプレビューする際の正しいトラックの順序についてはSpine AnimationState Trackセクションを参照してください。
Skeleton Flip Track
このトラックタイプは、対象となるSkeletonAnimation
またはSkeletonGraphic
のスケルトンを反転させるために使用できます。
Spine Skeleton Flip Clip
パラメーター
- Flip X : クリップの範囲内で、スケルトンをX軸に沿って反転させます。
- Flip Y : クリップの範囲内で、スケルトンをY軸に沿って反転させます。
使用方法
- SkeletonAnimation GameObjectには
SkeletonAnimationPlayableHandle
コンポーネントを、SkeletonGraphic
の場合はSkeletonGraphicPlayableHandle
を追加します。 - すでにUnity Playable Directorがある状態で、Unity Timelineウィンドウで左側の何もないスペースを右クリックし、
Spine
-Skeleton Flip Track
を選択します。 - SkeletonAnimationまたはSkeletonGraphic GameObjectを、新しいSpine Skeleton Flip Trackの空の参照プロパティにドラッグします。
- Timelineのドープシートの何もないところで行を右クリックし、
Add Spine Skeleton Flip Clip
を選択します。 - 新しいクリップの開始時間と終了時間を調整し、Inspectorの上部で適切な名前を付け、必要なFlipXおよびFlipYの値を選択します。
このトラックの挙動
- 指定されたスケルトンのFlip値は、各トラックのデュレーション内のすべてのフレームに適用されます。
- タイムラインが終了すると、トラックはスケルトンのFlipをそのタイムラインの再生開始時に取得したFlip値に戻します。
既知の問題
- コンソールで
DrivenPropertyManager has failed to register property "m_Script" of object "Spine GameObject (spineboy-pro)" with driver "" because the property doesn't exist.
という誤った無害なエラーが記録される可能性があります。これはUnity側の既知の問題です。詳しくはこちらをご覧ください: https://forum.unity.com/threads/default-playables-text-switcher-track-error.502903/