LoginSignup
0
0

More than 1 year has passed since last update.

Unity の Video Player で 複数の動画を同時に再生する

Posted at

はじめに

Unity の シーン中で Video Player を用いたストリーミングで複数の動画を同時に再生したかったのですが、リクエストが複数飛ぶことによる負荷や遅延が生じたときに再生タイミングがずれることなどに悩まされまして、その際の対処について記します。

方法

あらかじめすべての動画を一つの画面の中にまとめて出力しておき、ストリーミング元に置いておいて、読み込んだあとUnityシーン中で分割する方法をとりました。

セッティング

Video のストリーミング

シーン中の Video Player は一つだけにして、その出力先を動画ファイルと同じアスペクト比のRender Texture にします。今回は1:2 の動画を5つ表示したかったので、横に並べてつなげた5:2の動画・Render Texture を用意します。
image.png

確認

普通にPlane に Render Texture を適用するとこのようになります。
image.png

表示用のマテリアル

表示する箇所ごとにマテリアルを用意します。シェーダは共通で Unlit Shader のデフォルトのものでかまいません。
5つのPlaneを用意し、それらにこのマテリアルを適用します。次に、Inspector からテクスチャとして先ほどのレンダーテクスチャを選び、に適用すると、次のようになります。
image.png

タイリングとオフセット

次に、uv座標とレンダーテクスチャ上のピクセルとの関係を設定していきます。
次のように設定すると、左端の領域だけが表示されるようになります。
image.png

image.png

これは、tiling で 横方向のuv座標を 0 ~ 0.2 の範囲に再設定しています。

さらに、offset のx成分を0.2ずつずらしていくと、次のような結果が得られます。
image.png

image.png

これは上記のuv座標範囲を設定した値だけずらす処理に相当し、左から 0.0~0.2, 0.2~0.4 ... となっています。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0