Search Unity

Unity で動画(360 度動画や VR も含む)

  • 開発者向け

<このページで学べる内容>

Video Player コンポーネントを使用してシーンに動画を配置する方法の手順を説明します。Video Player は、モバイルを含むすべてのプラットフォームで 4k、8k、さらにそれ以上の高画質動画もサポートします。3D や VR のゲームやインタラクティブコンテンツへの 360 度動画の配置も可能です。

1)Unity で動画をセットアップする方法

Unity にビデオを取り込むためには、まずはビデオクリップをインポートし、Video Player コンポーネントを使ってそれを設定します。サポートされているビデオコーデックの中では、プラットフォーム間の互換性に最も優れている H.264(通常は .mp4、.m4v、.mov のいずれかのフォーマット)が最適です。

ビデオクリップを選択すると、インスペクターにビデオ専用のオプション、プレビュー、ソース詳細などを利用できるビデオクリップインポーターが表示されます。設定オプションで、ビデオを水平方向や垂直方向にフリップしたり、プラットフォームを指定してトランスコード処理を行ったりといったことができます。プレビューの右上にある「Play」ボタンをクリックすると、ビデオクリップが最初のオーディオトラックと共に再生されます(下のスクリーンショットをご覧ください)。

「Inspector」ウィンドウに表示されたビデオクリップアセット(表示されているのはビデオクリップインポーターのオプション)。

Video Player コンポーネント

ビデオファイルをゲームオブジェクトにアタッチし、実行時にゲームオブジェクトのテクスチャ上で再生するには、Video Player コンポーネントを使います。

「Video Player」コンポーネントの「Material Property」は、デフォルトで「_MainTex」に設定されています。この設定では、Video Player コンポーネントがレンダラーを持つゲームオブジェクトにアタッチされると、そのコンポーネントが自動的にそのレンダラー上のテクスチャに割り当てられます(これがゲームオブジェクトのメインのテクスチャであるため)。

Video Player コンポーネントが Sphere ゲームオブジェクトにアタッチされ、ゲームオブジェクトのメインテクスチャ(この場合メッシュレンダラーのテクスチャ)上でビデオクリップが再生されている様子。

Video Player コンポーネントには多くのプロパティーがあり、どのように表示するかをとても柔軟に調整できます。そのうえ、「Audio Output Mode」を使用すると、ビデオの音声を管理できます。たとえば、「Audio Source」に設定すると、Audio Mixer を使って簡単にサウンドを細かく調整できます。

2)Video Player のレンダリングモード

数々の便利なプロパティーの中でも、ぜひお試しいただきたいのが「Render Mode」です。
「Render Mode」では、以下をはじめとする多様な方法でビデオを表示できます。

  • Camera Far Plane:ゲーム内のすべての要素の背後でビデオをレンダリングします。
  • Camera Near Plane:ゲーム内のすべての要素の前面でビデオをレンダリングします。
  • Render Texture:ビデオを UI などの上でイメージエフェクトとしてレンダリングします。
  • Material Override:ゲームオブジェクトの選択したテクスチャプロパティー内に、レンダラーのマテリアルを使用してビデオをレンダリングできます。ホログラムとしてビデオをレンダリング(ビデオをホログラムシェーダーに入力)したり、メッシュの外面に沿ってビデオを貼り付けたりするなど、ビデオを使った特殊効果に適したオプションです。「Material Override」を選択すると、「Mesh Renderer」、「Skin Renderer」、「Particle Renderer」 など、レンダラーを入力するためのドロップダウンフィールドが追加されます。

3)Unity の 360 度動画レンダリングでさらなる高みへ

Video Player を使えば 360 度動画もいたって簡単です。基本的には、ラップすると 360 度動画として使用されるテクスチャを出力するだけです。また、設定手順も通常のビデオとそれほど変わりません。以下をご覧ください。

  • 360 度または 180 度のエクイレクタンギュラー(正距円筒図法)式またはキューブマップ式コンテンツを含んでいて、サポートされているビデオファイルであればどれでも使えます。
  • そのファイルをビデオクリップアセットとしてインポートし、Video Player コンポーネントを通じて再生します。
  • 重要:Video Player のターゲットをビデオと同じ次元のレンダーテクスチャに設定します。その後、そのテクスチャをマテリアルに接続します。このマテリアルは、シーンのスカイボックスマテリアルとして、新登場の Skybox/Panoramic シェーダー(現在ベータ版)を使うように設定されています。

このようにスカイボックスがパノラマ動画で動き出すはずです。

VR での利用

Player の Virtual Reality Support 設定をオンにして VR ヘッドセットを装着するだけで、完全な 360 度ビデオの形で見ることができるようになります。

便利なヒントやコツ

Unity シニアエバンジェリストの Andy Touch が数多くのすばらしいテクニックをこちらの Unite セッションで実演しています。
*Youtubeの自動字幕をご利用いただくと日本語の字幕が表示されます。

ピクセルのサンプリング(21:20 頃):Andy がシーンのライティングを調整して、ビデオの明かりや色がリアルに反射しているように見せる技術を披露しています。

Unity UI へのレンダリング(25:08 頃):Unity UI には、ビデオを直接挿入するためのレンダラーがありません。代わりに、独自のカメラ設定やイメージ設定があり、別の方法を使って UI 要素をバッチングしたりレンダリングしたりします。たとえば、レンダーテクスチャを UI 要素にレンダリングしてビデオを再生するというテクニックがあります。

その他のリソース

この記事はいかがでしたか?