clusterで作るTimeline式ローカルギミック
この記事ではユーザーごとに違うオブジェクトを表示することができる、
通称ローカルギミックを作成する方法を解説します。
Constraint式はこちら
注意点
現在、CCKにはローカルギミックというものは存在しません。
今回紹介する方法も、他の方法もオブジェクトの同期ずれを利用したものになります。
また、Itemをローカルギミックにする場合はOwnerについての知識が必要になります。
わからない場合はこちらの記事を参考にすることをお勧めします。
(難易度は高めです)
完成系
このようなローカルで表示されるミラーを作成します。
仕組み概要
このローカルギミックはPlayerLocalUI下にTimelineを設置し、その有効無効を切り替えることでPlayerLocalUI外のオブジェクトを変更する方法を使用します。
作成手順
制御対象のMirror、切り替え用のCube(Switch)、ロジック用のPlayerLocalUI、Timeline用のEmptyを2個(MirrorOn/Off)用意します。
MirrorOnを選択し、Mirrorを有効にするActivationTrackを作成します。
MirrorOffを選択して、Mirrorを無効にするActivationTrackを作成します。
Switchを選択し、InteractされるたびにOwnerの「isMirrorOn」「isMirrorOff」のBool値が切り替わるようなロジックを組みます。
MirrorOn/OffにSetGameObjectActiveGimmickを追加し、それぞれのBool値で切り替わるように設定します。
最初の状態をロジックと一致させるためMirrorOn/MirrorOffは無効にします。
以上で完成です。
この方法のメリット・デメリット
メリット
・Constraintを使用する必要がなくシンプル
・画面サイズを変えている間も表示がおかしくならない
・VRでも正常に当たり判定が作動する
・頑張ればMovableItem等もローカル風にできる
デメリット
・On/OffそれぞれでGameObject、Timeline、ロジックが必要になる
Item系をローカル化する際の注意点
(意味がわからない人は無視してください)
・OnCollideItemTriggerはそのアイテムのOwner基準で当たり判定が発生する
・アイテムのOwner視点で無効になったGrabbableItemは他の人から見ると原点位置に居ることになる
最後に
正直ローカルギミックは公式機能として欲しいです。
この記事が気に入ったらサポートをしてみませんか?