ChilloutVRでのカメラPropの作り方

はじめに

ChilloutVRにはもともとカメラ機能がありますが、Propとして自作も可能です。
「CVR Camera Helper」というコンポーネントを使うと作成できるのですが、ドキュメントがないため、作り方を記しておこうと思います。

CVR Camera Helper

For use with Animation Events. Allows you to call TakeScreenshot to save the Camera Render Texture output. Limited to once per second.

アニメーション・イベント用。TakeScreenshot を呼び出して、Camera Render Texture 出力を保存できるようにします。1秒に1回に制限されます。

※必要最低限の、もっともシンプルな作り方になります。

ベースとなるPropを作成する

インタラクトできるPropを作ります。
(CVR Spawnable, CVR Pickup Object, CVR Interactableをアタッチする)

カメラとビューを作成する

子にCamera, Quadを配置します。
Cameraは撮影に使用するカメラ、Quadはカメラのビューになります。
Cameraは向こうが見えるよう、Quadはこちらから見えるようそれぞれYを180度回転させます。
(CameraのYが0度だと、インカメになります)
CameraのAudioListenerは不要なので削除しておきます。
QuadのMeshColliderは不要なので削除しておきます。

MaterialとRenderTextureを作成します。

MaterialのShaderを「Unlit/Texture」にします。

MaterialのTextureにRenderTextureを設定します。

CameraのTargetTextureにRenderTextureを設定します。
これで、カメラの映像がRenderTextureに映るようになります。

Quadにマテリアルを設定します。

CVR Camera Helperをアタッチし、Cameraに作成したカメラを設定します。

撮影用のアニメーションを作成する

Animatorをアタッチします。
※CVR Camera HelperがアタッチされているオブジェクトにAnimatorをアタッチしてください

AnimationEventを作成し、Functionを「TakeScreenshot()」にします。
※FunctionにTakeScreenshot()がない場合は、CVR Camera HelperとAnimationが別のオブジェクトにアタッチされている可能性があります

Animatorを編集します。
デフォルトで空のステートに遷移するようにします。
TriggerのParameterを作成します。
Triggerが発火すると、撮影用のアニメーションが再生されるようにし、再生が終わると再び空のステートに戻るようにします。

  

CVR Interactableに、AnimatorのTriggerが発火するTriggerを作成します。

これで完成です。

さいごに

PropをSpawnすると、Quadにカメラの映像が映ります。
インタラクトすると、写真が保存される場所に、カメラの写真が保存されます。


解像度は、RenderTextureのSizeで設定できます。
※アスペクト比に合わせてQuadのScaleを変更する必要があります

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