VirtualLens詳細リファレンス
このページではセットアップガイドで触れなかった細かい項目について説明します。
VirtualLens Settings の設定項目の詳細
Avatar | 設定対象のアバター。 VRC_Avatar Descriptor コンポーネントを持っている必要があります。 |
---|---|
Custom Animations | Emotesを登録するカスタムオーバーライドコントローラ。Avatar設定時に自動的に選択されます。 |
Parent of lenses | 拡張レンズ配置時の基準となるオブジェクト。拡張レンズの配置の詳細については後述の拡張レンズの配置もご参照ください。 |
Lenses | アバターに設定する拡張レンズのリスト。番号に対応するEmoteスロットにそのレンズが登録されます。 |
Optional Objects | 拡張レンズに連動して出し入れするオブジェクト。チェックが入っていない場合は拡張レンズ無効時に非表示、チェックが入っている場合は拡張レンズ有効時に非表示となります。 |
Artifacts folder | アニメーションやマテリアルなどの自動生成されるファイルの出力先です。1プロジェクトで複数のアバターを管理している場合、それぞれに異なるフォルダを指定することをおすすめします。 |
Clear artifacts | Applyボタンを押した際に Artifacts folder の中をクリアして自動生成ファイルが累積していくのを防ぎます。 |
Parent of hijacker | VRカメラに画像を送るために配置するメッシュの配置先を指定します。通常はアバターのHeadボーンで問題ありません。 |
Base animation clip | カメラ切り替え時に再生するアニメーションクリップを指定します。VRCSDK2/Examples2/Animation/Male_Standing_Pose.fbx/IDLE あたりを指定しておくのがおすすめです。設定するアニメーションによっては EmoteSwitch の動作に影響を及ぼす場合があります。 |
Disable local system | 演算用オブジェクトのローカル化機構を無効化します。負荷対策のため基本的にはチェックを外しておいてください。プレビューが真っ黒かつVRカメラの映像が上書きされない症状が出る場合、この項目にチェックを入れることで改善することがあります。 |
カスタムレンズの作成
レンズの種類によってはパラメータを持つ場合があります。このとき、対応するアセットを生成することによりパラメータを細かく調整した拡張レンズを利用することができるようになります。例として基本パックに同梱されているシンプルレンズのパラメータを調整してみましょう。
まず、Projectビュー上のアセットを保存したいフォルダで右クリック → "Create" → "VirtualLens" → "Simple" とたどってください。そうすると新たなアセットファイルが生成されるので適切な名前を設定しましょう。
そして、生成されたアセットを選択するとInspectorビューに設定可能なパラメータが表示されます。ここで設定を変更した後、 VirtualLens Settings
コンポーネントのLensesに作成したレンズアセットを割り当てることで新たに作成した拡張レンズを使用することができるようになります。
シンプルレンズのパラメータ
基本パッケージに付属しているシンプルレンズのパラメータの説明は以下の通りです:
Mode | Field Of View | 画角を高さ方向の視野角で指定します。Unityのカメラコンポーネントと同様の指定方法です。 |
---|---|---|
Focal Length | 画角を35mm判換算の焦点距離で指定します。 | |
Zoom | 画角をVRChat標準のVRカメラに対する拡大率で指定します。 | |
Additional Layers | UI | レイヤー "UI" に属するオブジェクト (HUD, Tooltipなど) を映すようにします。 |
UiMenu | レイヤー "UiMenu" に属するオブジェクト (ネームプレートなど) を映すようにします。 |
拡張レンズの配置
拡張レンズに対応するカメラコンポーネントは "Parent of lenses" として指定したオブジェクトと同じ姿勢で配置されます。カメラの向きはZ軸正の方向が正面、Y軸正の方向が上となります。また、セットアップガイドでは基準オブジェクトとしてPrefabを利用していますが、代わりに Empty Object などを利用しても構いません。
カメラモデルの差し替え
VirtualLens基本パッケージにはおまけとしてカメラの3Dモデルが付属していますが、他のカメラに差し替えて利用することもできます。
プレビューを配置したい場合はマテリアルとして VirtualLens/Common/Materials/PreviewMaterial.mat
を指定したQuadを配置することで、付属のモデルと同様のプレビュー表示を実現することができます。LensBase Prefab 内にある PreviewQuad
も参考になるかと思います。
自動生成されたオブジェクトの削除
VirtualLensではアバターのヒエラルキー内に多くのオブジェクトを自動生成します。一方で自動的に削除はされないため、場合によっては手動で削除していく必要がある場合があります。以下にそのようなときに削除するべきオブジェクトの場所を示します。
- アバター直下
_VirtualLens
で始まるオブジェクト群- 拡張レンズの親 (LensBase) 直下
_VirtualLens
で始まるオブジェクト群- Head直下
_VirtualLens_CameraJacker_Switch
- Optional Objects として指定したオブジェクトがあった場所
- もともとのオブジェクトは子孫要素として保持されています。必要に応じて取り出してください。
既知の不具合・仕様
- プレビュー・VRカメラのどちらも真っ暗になってしまうことがある
- まれに発生することがあるようですがまだ詳細が把握てきていません。
- 常にこの現象が発生する場合、別プロジェクトにすると解決することが多いです。
- 使用中に発生した場合、いったん別のアバターに切り替えて戻すことで復帰できることが多いです。
- アバターロードからEmote呼び出しまでの間隔が短いと映像が得られない
- 仕様です。正常に起動するためにはアバターロードから0.5秒程度待つ必要があります。
- 落ち着いて再度Emoteを呼び出すことで動作が再開されます。
- プレビューが真っ黒かつVRカメラの映像が上書きされない
- 詳細は調査中ですが環境によってまれに発生することがあるようです。Disable local system のチェックを入れることで改善することがあります。