【VR Chat ワールド作成メモ】カメラ映像をディスプレイへ表示する

VRChatのワールドで、設置したカメラからの映像をディスプレイに見立てたオブジェクトへ表示したい場合があります。

いつもやり方がわからなくなるため、メモします。

◇ カメラ映像を表示するものを作成する

プロジェクトの「Assets」→「Create」→「Render Texture」を指定してRender Textureを作成し、名前を付ける。

作成したRender Textureを選択してInspectorのSizeを調整する。例えば1280,720、1920,1080など。

Render Textureをシーン上に作ったディスプレイ(Cubeや取り込んだディスプレイのモデルなど)にドロップし、大きさや奥行き(表示されるように)を調整する。

◇ カメラを作成して設定する

Hierarchy のカメラを作りたい階層を選択して右クリックメニューから「Camera」を選択してシーンに新しくカメラを作成する。

作成したカメラを表示するものが映る位置へ移動させる。

作成したカメラのInspectorの「Target Texture」に作ったRender Textureを指定する。

カメラに表示したくないものがあれば、CameraのInspectorのCulling MaskでPlayerLocal、UI、UiMenu、reserved2などを指定する。reserved2はプレーヤーが使ってるカメラをマスクするときに使用する。

◇ ディスプレイの設定

作ったディスプレイ(Render Textureをドロップしたもの)のMaterialコンポーネントのShaderをUnlit → Textureに設定する。
これでカメラ映像が表示される。表示されない場合は奥行きを手前に調整する。

下の画像は宇宙船のアセットについてきたディスプレイのフレーム部分を再利用して、薄く作ったCubeをうまくディスプレイの位置に設置し、Render Textureを指定したもの。カメラには宇宙船とその向こうの土星の環が見える。