🐨
UnityのTextureで描画している動画をMRTK2で動かせるようにしたい
やりたいこと
Textureを使って描画している動画を自由に動かせるようにしたいです。
以下の記事で、ACSで通話している相手側の映像をTextureで表示させることに成功しました。
しかしCanvas上のRawImageオブジェクトを使って描画しているので、MRTK2を使って動かしたりすることができない状況です。
ですので、3Dオブジェクト上でTextureを使って描画させることでMRTK2のハンドトラッキングで動かせるようにします。
実現方法
結論、Materialを使ったらいけます。
「Render Texture」はRawImageコンポーネントのTextureに入れないと描画がされません。
ですので3Dオブジェクトで表示させたいときはTextureのMaterialを作成して、「Mesh Renderer」に設定すること実現ができます。
実装
1. 描画用のMaterialを作成
右クリック → 「create」 → 「Material」を選択
2. MaterialにRenderer Text
作成したMaterialのInspector画面にいき、Shaderを変更します。
「Unit」→「Texture」を選択
Selectと記載されている箇所をクリック
Incoming Video Renderを選択
これでMaterialの設定はOKです。
3. Materialを3Dオブジェクトに割り当てる
3Dオブジェクトは何でもいいですが、今回はPlaneにしました。
そのままだとめちゃくちゃでかいので、かなりscaleを小さくします。
「Mesh Renderer」のMaterialを選択して、先ほど作成したMaterialを選択
最後に3DオブジェクトをACSManagerのコンポーネントに紐づける。
これでハンドトラッキングで動画を動かすことができるようになります。
Discussion