<div style="padding:15px 15px 2px 20px; border-radius:2px; margin-bottom:20px; border:1px solid #ddd">

<callout>
<p style="margin-bottom:0.75em"><b>ライセンスについて</b></p>!!
Spineランタイムをアプリケーションに組み込むにはSpineライセンスが[必要](/git/spine-runtimes/spine-unity#licensing)です。
</callout>

<div style="font-size: 1.6em; margin: 0 0 .5em;">spine-unityランタイム ドキュメント</div>!!
* [インストール](/spine-unity-installation)
* [サンプル](/spine-unity-examples)
* [アセット](/spine-unity-assets)
* [主要なコンポーネント](/spine-unity-main-components)
* [ユーティリティコンポーネント](/spine-unity-utility-components)
* [レンダリング](/spine-unity-rendering)
* [Timeline 拡張UPMパッケージ](/spine-unity-timeline)
* [オンデマンドローディング 拡張UPMパッケージ](/spine-unity-on-demand-loading)
* [FAQ](/spine-unity-faq)
</div>!!

# Timeline 拡張UPMパッケージ

![](/img/spine-runtimes-guide/spine-unity/timeline/timeline.png)

Timelineサポートは、別のUPM(Unity Package Manager)パッケージとして提供されています。このパッケージをダウンロードしてインストールする方法については[オプションの拡張UPMパッケージ](/spine-unity-installation#オプションの拡張UPMパッケージ)セクションを、アップデートする方法については[拡張UPMパッケージのアップデート](/spine-unity-installation#拡張UPMパッケージのアップデート)セクションを参照してください。タイムライン拡張パッケージのインストールと使い方については以下のビデオが参考になるでしょう。

<iframe width="560" height="315" src="https://www.youtube.com/embed/V2z6FZxIrb0" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>!!

<h4 style="font-size: 1.714em; line-height: 1.1666em; margin-bottom: .4555em; letter-spacing: .04em; padding-top: 1em; margin-top: -.75em">Spine-Unity Timeline Playables</h4>!!

![](/img/spine-runtimes-guide/spine-unity/timeline/add-menu.png)

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](/spine-unity-main-components#SkeletonAnimationコンポーネント)と[SkeletonGraphic](/spine-unity-main-components#SkeletonGraphicコンポーネント)のみです。[SkeletonMecanim](/spine-unity-main-components#SkeletonMecanimコンポーネント)はTimelineでサポートされていません。

## SkeletonAnimation Track と SkeletonGraphic Track

![](/img/spine-runtimes-guide/spine-unity/timeline/animationstate-track.png)  

これらのトラックタイプは、対象となる`SkeletonAnimation`または`SkeletonGraphic`のAnimationStateにアニメーションを設定するために使用できます。`SkeletonAnimation`には`SkeletonAnimation Track`、`SkeletonGraphic`には`SkeletonGraphic Track`というトラックタイプが使用されます。

![](/img/spine-runtimes-guide/spine-unity/timeline/animationstate-track-inspector.png)  

**パラメーター**
- *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](/spine-unity-assets#Preview)セクションをご覧ください。

![](/img/spine-runtimes-guide/spine-unity/timeline/animationstate-clip-inspector.png)  

**パラメーター**  
*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](/spine-api-reference#TrackEntry-eventThreshold)をご覧ください。
- *Attachment Threshold* ：　[TrackEntry.MixAttachmentThreshold](/spine-api-reference#TrackEntry-mixAttachmentThreshold)をご覧ください。
- *Draw Order Threshold* ：　[TrackEntry.MixDrawOrderThreshold](/spine-api-reference#TrackEntry-mixDrawOrderThreshold)をご覧ください。
- *Alpha* ：　  [TrackEntry.Alpha](/spine-api-reference#TrackEntry-alpha)をご覧ください。

*無視されるパラメーター*
- *Ease Out Duration、Blend Curves* ：　これらのパラメーターは無視され、何の影響もありません。

> 注意: *Default Mix Duration* は、以前は *Custom Duration* と呼ばれており、有効と無効が反転していました。これは読みやすさを向上させるために変更されました。

**使用方法**
1. SkeletonAnimation GameObjectに `SkeletonAnimationPlayableHandle` コンポーネントを、または `SkeletonGraphic` の場合には`SkeletonGraphicPlayableHandle` を追加します。
2. すでにUnity Playable Directorがある状態で、Unity Timelineウィンドウで左側の何もないスペースを右クリックして `Spine` - `SkeletonAnimation Track` を選択します。
3. SkeletonAnimationまたはSkeletonGraphic GameObjectを、新しいSpine AnimationState Trackの空の参照プロパティにドラッグします。
4. トラックにアニメーションを追加するには、通常のアニメーションクリップと同じように、それぞれの [`AnimationReferenceAsset`](/spine-unity-assets#Preview) をクリップビュー（Timelineパネルの右側）にドラッグし
てください。

アニメーションごとの`AnimationReferenceAsset`を作成する方法についてはspine-unityランタイムドキュメントの[Previewセクション](/spine-unity-assets#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](#SkeletonAnimation-Track-と-SkeletonGraphic-Track)セクションを参照してください。

## Skeleton Flip Track

![](/img/spine-runtimes-guide/spine-unity/timeline/skeleton-flip-track.png)  

このトラックタイプは、対象となる`SkeletonAnimation`または`SkeletonGraphic`のスケルトンを反転させるために使用できます。

### Spine Skeleton Flip Clip

![](/img/spine-runtimes-guide/spine-unity/timeline/skeleton-flip-clip-inspector.png)  

**パラメーター**
- *Flip X* ：　クリップの範囲内で、スケルトンをX軸に沿って反転させます。
- *Flip Y* ：　クリップの範囲内で、スケルトンをY軸に沿って反転させます。

**使用方法**
1. SkeletonAnimation GameObjectには`SkeletonAnimationPlayableHandle`コンポーネントを、`SkeletonGraphic`の場合は`SkeletonGraphicPlayableHandle`を追加します。
2. すでにUnity Playable Directorがある状態で、Unity Timelineウィンドウで左側の何もないスペースを右クリックし、`Spine` - `Skeleton Flip Track`を選択します。
3. SkeletonAnimationまたはSkeletonGraphic GameObjectを、新しいSpine Skeleton Flip Trackの空の参照プロパティにドラッグします。
4. Timelineのドープシートの何もないところで行を右クリックし、`Add Spine Skeleton Flip Clip`を選択します。
5. 新しいクリップの開始時間と終了時間を調整し、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/

[次: オンデマンドローディング](/spine-unity-on-demand-loading)
[前: レンダリング](/spine-unity-rendering)