【VRChat】瞳に目の前の景色を映す方法!!

こんにちは!ケーキです♪

今回ご紹介するのは、
Unityのカメラ機能を使ったアバターの瞳に目の前の景色を映す方法です!

実施するにあたって必要なものはありますが、
新しい技術の一つとして覚えてみてはいかがでしょうか♪♪

また、今回進めるにあてった以下のサイトを参考にさせていただきました!
本当にありがとうございます。

kro’s note 【VRChat】VRChatのアバターに鏡を持たせてみた

※目に映したい場合は目のメッシュが単体メッシュとなっている方がやりやすいです。
もし単体メッシュになっていない場合はBlender等でメッシュを分ける必要もあるかと思います・・・。

準備物

目の単体メッシュがあるアバター

今回紹介のために使用させていただきますモデルは、「ALL_ALONE_KURO」様のクロちゃん(分霊)です!
私も普段VRChatではお世話になっておりますが、とても可愛いですね♪♪

画像内赤枠でありますが、このモデルには目の単体メッシュがあるためとてもやりやすいです。
(わかりやすくするために目のメッシュを移動してきました。普段はモデルHead内にあり移動する必要はありません。)

Unity側で用意するもの

Unity側で用意するものは以下の3点になります。
●Cameraオブジェクト
●レンダーテクスチャ
●アニメーションクリップ

では実設定作業に入っていきましょう!!

設定作業

ここからはUnityでの設定作業になっていきます。
一つずつ一緒に設定していきましょう♪

アニメーションクリップ、テクスチャ、オブジェクトの作成

①まずはアニメーションクリップとテクスチャを用意するためにUnity左下のProjectにフォルダを作成しましょう(わかりやすく名前を「Camera」としました)

②作成したCameraフォルダに移動し右クリックメニューから「Animation」「Render Texture」を作成(こちらもわかりやすい名前にしておきましょう)

③Unity左上のHierarchyに右クリックから「Camera」オブジェクトを作成

各種設定

ここでは上で作成したアニメーションクリップ、テクスチャ、オブジェクトに細かい設定を加えていきます。
Hierarchy-Cameraを選択しUnity右側のInspectorを出してください。

①「Camera」内Culling Maskを開きUIのチェックを外す

②Clipping Planes- Nearの値を0.01にする(どこまで近い距離を描写するかの設定)

③Target Textureに作成したレンダーテクスチャ(CameraTX)をドラッグ&ドロップ

④同じInspector内のAudio Listenerを削除(右側の歯車からRemove Component)

⑤レンダーテクスチャのInspectorで解像度を変更する(任意)

次に設定したレンダーテクスチャをモデル側の目(マテリアル)に設定していきます。

⑥Project内モデルのマテリアルを開き目にあたるところをCtrl+Dでコピーする(名前はわかりやすいものにしておく)

⑦コピーしたマテリアルInspectorにてShaderを「Standard」にする

⑧マテリアルにレンダーテクスチャとモデルの目のテクスチャをドラッグ&ドロップ(一緒にsmoothnessも設定しておきましょう)

⑨目のメッシュ(Fase_Eye_Mesh)のInspectorを開き、カメラマテリアルを設定する
(設定した後目の色を変えたい場合は⑧のマテリアル時にAlbedoの右隣の色を変更すれば変わります♪)

⑩HierarchyにあるCameraをモデル内Headに移動(ドラッグ&ドロップ)し、Inspector内Transformで顔の正面を向くように設定しましょう

⑪カメラオブジェクトのInspector内にあるCameraコンポーネントのチェックを外す(これを外さないとアップロードできないため)

⑫カメラオブジェクトにアニメーションクリップ(Camera)をドラッグ&ドロップする

これで最後になります。

⑬上部のツールバーからWindow→Animationからアニメーションクリップを設定する
詳しくはAdd Propertyを押しCamera→Enableを追加、追加したEnableにチェックを入れ0:00と0:01にコピーする
設定後アニメーションクリップのループ設定にもチェックを入れておきましょう


お疲れ様でした!!これで完成となります♪
アップロードして確認してみましょう!!