🐨

UnityのTextureで描画している動画をMRTK2で動かせるようにしたい

2024/03/31に公開

やりたいこと

Textureを使って描画している動画を自由に動かせるようにしたいです。

以下の記事で、ACSで通話している相手側の映像をTextureで表示させることに成功しました。

https://zenn.dev/headwaters/articles/a3cf92718604c9

しかし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