LoginSignup
2
3

More than 5 years have passed since last update.

【VRTK x PUN x Vive】Transformを同期させたい

Posted at

前提

Viveは一台のみ。PC1はViveに接続してSteamVR SDKを使用、PC2は何も接続せずにSimulator SDKを使用する。

目的

CameraRigのTransformを同期させたい。
SDKのスイッチは自動的に行いたい。

問題

【PUN】アバター生成・同期で、Avatarを同期させようとしたらうまくいかなかった。

SteamVRの[CameraRig]の子要素にAvatarを生成しても、Transformは0のまま。そりゃそうだ、動いているのは[CameraRig]だから。

しかし[CameraRig]にPhotonViewをつけてPhotonNetwork.Instantiateに渡すわけにはいかない。シーンに複数カメラが存在してしまうし、SDKの自動スイッチを使えなくなるのもつらい。

解決

似たような問題に直面している人を発見!
でもコレじゃない感が。。。
Spawn / Sync existing game object (Player)?

デモがあった!
PlayoVR, a VRTK-PUN-Voice Demo
こちらのコードを拝借してうまくいったので、ざっくり解説。

一言で言うと Avatarはヒエラルキーの直下に生成して、CameraRigのTransformをAvatarにリンクさせる方法。

AvatarCameraRigSync.csでアバターのHead, LeftHand, RightHandを設定する。内部ではアクティブなCameraRigにリンク用のコンポーネント(PhotonViewLink)をアタッチして、photonView.isMineで自分のアバターのみに紐づけている(VRTK_TransformFollow)。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3