TimelineとPlayable Switchでエレベータをつくる

今回はエレベータを例に、Timelineの応用的な使い方を紹介します。

TimelineにはAnimatorのように動きを切り替える機能はありませんが、Playable Switchを使うことで他の動きに移り変わるように見せることができます。

clusterにワールドをアップロードできる環境を用意しましょう!

まず、clusterにワールドをアップロードできる環境を事前に用意してください。

準備はこちらを参考にしてください。

はじめてのワールド作成

上記で紹介する方法以外ではテンプレートプロジェクトを利用するのがおすすめです。下記URLからテンプレートプロジェクトをダウンロードして、Unityで開くことで、clusterへアップロードする環境まで一気に準備することができます。
テンプレートワールドって何?って方はこちらの記事で導入方法を解説しているので、ぜひご覧ください。動画でも解説しています。

Timelineとは?

TimelineはUnityの機能のひとつで、時系列に沿ってオブジェクトのアクティブ状態の切り替えやアニメーションなどを実行することができます。

clusterではPlay Timeline Gimmickを使ってTimelineを再生することで他のプレイヤーとアニメーションを同期させることができるというメリットがあります。
※Animatorでは場合によって同期されないことがあります。

Timelineで上昇するエレベータをつくる

まずはTimelineとPlay Timeline Gimmickを利用して上昇するエレベータをつくります。

  • 始めにエレベータの親になるオブジェクトを作成します。
  • Hierarchyを右クリックか、上部メニューのGame ObjectからCreate Emptyで新しいオブジェクトを作成し、名前を「Elevator」としておきます。
  • Positionを変更してエレベータを設置したい場所に移動しておきましょう。

続いてエレベータの足場となるCubeを設置します。

  • Elevatorを右クリックして3D Object>Cubeを作成します。名前を「ElevatorUp」としておきます。ElevatorUpがElevatorの子になっていることを確認してください。
  • ElevatorUpのScaleを変更してX=2、Y=0.1、Z=2の板状にしておきます。

※間違った例。ElevatorUpはElevatorの子にしてください。

このElevatorUpにTimelineを適用しましょう。

  • こちらの記事を参考に、Timelineを使ってElevatorUpのPositionが2秒(120フレーム)かけてY=0からY=2まで上昇するよう設定します。

ボタンを押すとエレベータが動くようにする

さらに、ボタンを押すとこのTimelineを再生するようにしていきます。

  • まず、ElevatorUpのPlayable DirectorでPlay On Awakeのチェックを外します。
  • 続いてElevatorUpにPlay Timeline Gimmickを追加し、Targetを「Global」、Keyを「ExecElevatorUp」とします。

こうすることで、指定のSignalが発行されたときにTimelineを再生し、さらにその再生が同期されるようになります。

最後にボタンを設置しましょう。

  • エレベータの乗り場にCubeを設置し、名前を「ElevatorUpButton」としたうえでScaleを調整しておきます。
  • ElevatorUpButtonにInteract Item Triggerを追加します。
  • +ボタンを押してKeyを追加し、Targetを「Global」、Key名を「ExecElevatorUp」、Typeを「Signal」としましょう。

以上で「ボタンを押すと上昇するエレベータ」が完成しました。アップロードして確かめてみましょう。

Playable Switchで上昇と下降を切り替えられるエレベータをつくる

Playable Switchを使うと複数のTimelineの切り替えが簡単にできます。
エレベータの上昇と下降を切り替えられるようにしてみましょう。

  • 先ほどと同様の手順で「下降するエレベータ」をElevatorの子に、それを動作させるボタンをつくります。
  • オブジェクト名は「ElevatorDown」、Key名は「ExecElevatorDown」とし、TimelineではPositionがY=2からY=0まで移動するようにしましょう。
  • 始めはエレベータが下りている状態にするため、ElevatorDownのPlayable DirectorのPlay On Awakeにはチェックを入れておきます。
    ※上昇用と下降用の両方でPlay On Awakeのチェックが外れていると、Playable Directorの働きにより両方とも見えない状態になります。
  • 続いて、親オブジェクトであるElevatorに「Playable Switch」コンポーネントを追加します。

TimelineとPlay Timeline Gimmickのついた複数のオブジェクトを子に持つ親オブジェクトにPlayable Switchをつけておくと、子オブジェクトのTimelineを再生すると他の子のTimelineが非表示になります。
つまり、複数のTimelineからひとつだけ再生するということが可能になります。

この状態でアップロードして確認してみましょう。
上昇ボタンを押すとエレベータが上昇し、上昇した後で下降ボタンを押すとエレベータが下降するはずです。

Playable Switchを上手く使って複数のTimelineを組み合わせた仕掛けを作ってみましょう!

記事をシェアしてワールド制作を盛り上げよう!