Video Player コンポーネント を使って ビデオファイル を ゲームオブジェクト にアタッチし、ランタイムにビデオファイルをゲームオブジェクトの テクスチャ 上で再生できます。
下の図は、球状のゲームオブジェクトにアタッチされた Video Player コンポーネントを表示しています。
デフォルトでは、Video Player コンポーネントの Material Property は _MainTex に設定されています。つまり、レンダラーを持つゲームオブジェクトに Video Player コンポーネントをアタッチすると、自動的にそのレンダラーのテクスチャに割り当てられます (なぜなら、これはゲームオブジェクトの主要テクスチャであるため)。ここでは、ゲームオブジェクトに Mesh Renderer コンポーネントが設定されているので、Video Player コンポーネントは自動的にそれを Renderer フィールドに割り当てます。つまり、ビデオクリップは Mesh Renderer のテクスチャで再生されます。
ビデオを再生する特定の対象 (以下を含む) を設定することもできます。
プロパティー | 機能 | ||
---|---|---|---|
Source | ビデオソースのタイプを選択します。 | ||
Video Clip | ビデオクリップ をビデオプレイヤーに割り当てます。 | ||
Video Clip | このフィールドを使い Video Player コンポーネントに割り当てるビデオクリップを指定します。 | ||
URL | URL (例えば http:// や file://) をビデオに割り当てます。Unity は、ランタイムにこの URL からビデオを読み込みます。 | ||
URL | ビデオプレイヤーに割り当てたいビデオの URL を入力します。 | ||
Browse… | クリックしてローカルのファイルに移動し、file:// を開始する URL を選択します。 | ||
Play On Awake |
Play on Awake にチェックを入れると、シーンを起動する時にビデオ再生を開始します。ランタイムのほかのタイミングでビデオ再生を開始したい場合には、チェックを外します。スクリプトで Play() コマンドを使用して開始します。 |
||
Wait For First Frame | Wait For First Frame にチェックを入れると、ゲーム開始前にソースビデオの最初のフレームが表示できる状態になるのを待機します。チェックを外すと、ゲームの残存量に同期するために、ソースビデオのはじめの数フレームが破棄される場合があります。 | ||
Loop | Loop にチェックを入れると、ソースビデオが終りに達するとビデオを繰り返します。チェックを外すと、ソースビデオが終りに達すると再生を停止します。 | ||
Playback Speed | このスライダーと入力フィールドは、0 から 10 の間で再生スピードの乗数を表します。デフォルトでは 1 (通常スピード) に設定されています。フィールドが 2 に設定されている場合は、ビデオは通常のスピードの 2 倍の速さで再生します。 | ||
Render Mode | ドロップダウンを使ってビデオのレンダリング方法を選択します。 | ||
Camera Far Plane | ビデオをカメラの ファークリップ面 にレンダリングします。 | ||
Camera Near Plane | ビデオをカメラの ニアクリップ面 にレンダリングします。 | ||
Camera | ビデオを取得する カメラ を選択します。 | ||
Alpha | ソースビデオに加えられたグローバルな透明度レベル。これにより、面を透かして面の背後にある要素を表示できます。アルファチャンネルの詳細については、ビデオの透明度のサポート のページを参照してください。 | ||
Render Texture | レンダーテクスチャ にビデオをレンダリングします。 | ||
Target Texture | Video Player コンポーネントが画像をレンダリングするレンダーテクスチャを選択します。 | ||
Material Override | ビデオを、レンダラーの マテリアル を通してゲームオブジェクトの選択されたテクスチャプロパティーにレンダリングします。 | ||
Renderer | Video Player コンポーネントが画像をレンダリングする レンダラー。 None に設定すると、Video Player コンポーネントを使用するゲームオブジェクトの Renderer を使用します。 | ||
Material Property | Video Player コンポーネントの画像を受け取る Material Texture プロパティー の名。 | ||
API Only | ビデオを VideoPlayer.texture スクリプト API プロパティーにレンダリングします。テクスチャを意図する対象に割り当てるには、スクリプトを使用する必要があります。 | ||
Aspect Ratio | 該当する Render Mode が使用されているときに、 Camera Near Plane、Camera Far Plane、Render Texture に適用する画像のアスペクト比。 | ||
No Scaling | スケーリングを使用しません。ビデオは対象の矩形の中央に配置されます。 | ||
Fit Vertically | 対象の矩形の縦に一致するようにソースをスケールします。左右はクロップしたり、必要な場合は黒い部分として残します。ソースのアスペクト比は維持されます。 | ||
Fit Horizontally | 対象の矩形の横に一致するようにソースをスケールします。上下はクロップしたり、必要な場合は黒い部分として残します。ソースのアスペクト比は維持されます。 | ||
Fit Inside | クロップせずに対象の矩形に一致するようソースをスケールします。左右、または上下は、必要に応じて黒い部分として残します。ソースのアスペクト比は維持されます。 | ||
Fit Outside | 黒い部分を残さずに対象の矩形に一致するようソースをスケールします。左右、または上下は、必要に応じてクロップします。ソースのアスペクト比は維持されます。 | ||
Stretch | 対象の矩形に一致するように、ソースを平行/垂直にスケールします。ソースのアスペクト比は維持されません。 | ||
Audio Output Mode | ソースのオーディオトラックを出力する方法を選択します。 | ||
None | オーディオを再生しません。 | ||
Audio Source | オーディオサンプルが選択した オーディオソース に送信され、Unity のオーディオ処理が適用できるようになります。 | ||
Direct | オーディオサンプルは Unity のオーディオ処理を経由せず、直接オーディオ出力ハードウェアに送信されます。 | ||
API Only (Experimental) | Audio samples are sent to the associated AudioSampleProvider. | ||
Controlled Tracks | ビデオのオーディオトラックの数。 ソース が URL の場合にのみ表示されます。 ソース が ビデオクリップ の場合は、ビデオファイルの確認によってトラック数が決定されます。 |
||
Track No. | 該当するトラックにチェックを入れると、そのオーディオトラックが再生に使用されます。これは再生前に設定する必要があります。 チェックボックスの左側には、オーディオトラックに関する情報、具体的にはトラック番号、言語、チャンネル数が表示されます。 例えば、上のスクリーンショットでは、Track 0 [und. 1 ch] を表示しています。これは、1 番目のトラック (Track 0)、言語は未定義 (und.)、トラックには 1 つのチャンネル (1 ch)、つまりモノラルトラックを意味しています。 ソースが URL の場合、この情報は再生中のみ利用可能です。 このプロパティーは、ソースがオーディオトラック (またはトラック) を持つビデオクリップである場合、または、ソースが URL の場合 (再生中に URL から予想されるトラックの数を指定できる場合) にのみ表示されます。 |
||
Audio Source | オーディオトラックを再生する オーディオソース 。該当するオーディオソースもオーディオクリップを再生できます。 オーディオソースの再生制御 (スクリプト API の Play On Awake と Play() ) は、ビデオソースのオーディオトラックには適用されません。このプロパティーは、Audio Output Mode が Audio Source に設定されている場合にのみ表示されます。 |
||
Mute | 該当するオーディオトラックをミュートにします。Audio Source モードでは、オーディオソースの制御が使用されます。 このプロパティーは Audio Output Mode が Direct に設定されているときにのみ表示されます。 |
||
Volume | 該当するオーディオトラックの音量。Audio Source モードでは、オーディオソースの音量が使用されます。 このプロパティーは、Audio Output Mode が Direct に設定されているときにのみ表示されます。 |
The following script demonstrates a few of the VideoPlayer component’s features.
// Examples of VideoPlayer function
using UnityEngine;
public class Example : MonoBehaviour
{
void Start()
{
// Will attach a VideoPlayer to the main camera.
GameObject camera = GameObject.Find("Main Camera");
// VideoPlayer automatically targets the camera backplane when it is added
// to a camera object, no need to change videoPlayer.targetCamera.
var videoPlayer = camera.AddComponent<UnityEngine.Video.VideoPlayer>();
// Play on awake defaults to true. Set it to false to avoid the url set
// below to auto-start playback since we're in Start().
videoPlayer.playOnAwake = false;
// By default, VideoPlayers added to a camera will use the far plane.
// Let's target the near plane instead.
videoPlayer.renderMode = UnityEngine.Video.VideoRenderMode.CameraNearPlane;
// This will cause our Scene to be visible through the video being played.
videoPlayer.targetCameraAlpha = 0.5F;
// Set the video to play. URL supports local absolute or relative paths.
// Here, using absolute.
videoPlayer.url = "/Users/graham/movie.mov";
// Skip the first 100 frames.
videoPlayer.frame = 100;
// Restart from beginning when done.
videoPlayer.isLooping = true;
// Each time we reach the end, we slow down the playback by a factor of 10.
videoPlayer.loopPointReached += EndReached;
// Start playback. This means the VideoPlayer may have to prepare (reserve
// resources, pre-load a few frames, etc.). To better control the delays
// associated with this preparation one can use videoPlayer.Prepare() along with
// its prepareCompleted event.
videoPlayer.Play();
}
void EndReached(UnityEngine.Video.VideoPlayer vp)
{
vp.playbackSpeed = vp.playbackSpeed / 10.0F;
}
}
2017–05–07 Page amended
5.6 の新機能