見出し画像

clusterで作るTimeline式ローカルギミック

この記事ではユーザーごとに違うオブジェクトを表示することができる、
通称ローカルギミックを作成する方法を解説します。

Constraint式はこちら

注意点

現在、CCKにはローカルギミックというものは存在しません。
今回紹介する方法も、他の方法もオブジェクトの同期ずれを利用したものになります。

また、Itemをローカルギミックにする場合はOwnerについての知識が必要になります。
わからない場合はこちらの記事を参考にすることをお勧めします。
(難易度は高めです)

完成系

このようなローカルで表示されるミラーを作成します。

ローカルで動作します

仕組み概要

このローカルギミックはPlayerLocalUI下にTimelineを設置し、その有効無効を切り替えることでPlayerLocalUI外のオブジェクトを変更する方法を使用します。

作成手順

制御対象のMirror、切り替え用のCube(Switch)、ロジック用のPlayerLocalUI、Timeline用のEmptyを2個(MirrorOn/Off)用意します。

名称は適宜変更しています

MirrorOnを選択し、Mirrorを有効にするActivationTrackを作成します。

TimelineウィンドウはWindow>Sequencing>Timelineにあります

MirrorOffを選択して、Mirrorを無効にするActivationTrackを作成します。

ActivationTrackのActivationClipを削除します

Switchを選択し、InteractされるたびにOwnerの「isMirrorOn」「isMirrorOff」のBool値が切り替わるようなロジックを組みます。

isMirroOn/OffがInteract時に切り替わります

MirrorOn/OffにSetGameObjectActiveGimmickを追加し、それぞれのBool値で切り替わるように設定します。

最初の状態をロジックと一致させるためMirrorOn/MirrorOffは無効にします。

状態によっては最初の挙動がおかしくなるのでその対策です

以上で完成です。

この方法のメリット・デメリット

メリット
Constraintを使用する必要がなくシンプル
・画面サイズを変えている間も表示がおかしくならない
VRでも正常に当たり判定が作動する
・頑張ればMovableItem等もローカル風にできる

デメリット
・On/OffそれぞれでGameObject、Timeline、ロジックが必要になる

Item系をローカル化する際の注意点

(意味がわからない人は無視してください)

・OnCollideItemTriggerはそのアイテムのOwner基準で当たり判定が発生する
・アイテムのOwner視点で無効になったGrabbableItemは他の人から見ると原点位置に居ることになる

最後に

正直ローカルギミックは公式機能として欲しいです。

この記事が気に入ったらサポートをしてみませんか?