Video Player コンポーネント を使って ビデオファイル を ゲームオブジェクト にアタッチし、ランタイムにビデオファイルをゲームオブジェクトの テクスチャ 上で再生できます。
下の図は、球状のゲームオブジェクトにアタッチされた Video Player コンポーネントを表示しています。
デフォルトでは、Video Player コンポーネントの Material Property はゲームオブジェクトのメインテクスチャに設定されています。つまり、レンダラーを持つゲームオブジェクトに 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 にチェックを入れると、ソースビデオが終りに達するとビデオを繰り返します。チェックを外すと、ソースビデオが終りに達すると再生を停止します。 | ||
Skip On Drop | このオプションを有効にすると、Video Player コンポーネントが再生位置とゲームクロック間のドリフトを検出した場合、Video Player はスキップして先に進みます。このオプションを無効にすると、Video Player はドリフトを修正しようとせず、すべてのフレームを系統的に再生します。 | ||
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 を使用します。 | ||
Auto-Select Property | このオプションを有効にすると、Video Player コンポーネントは レンダラー のメインテクスチャを自動的に選択します。このオプションを無効にすると、Material Property オプションを手動で設定することができます。 | ||
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) | オーディオサンプルは関連する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 に設定されているときにのみ表示されます。 |
次のスクリプトは、VideoPlayerコンポーネントの機能の一部を示しています。
//VideoPlayer 関数の例
using UnityEngine;
public class Example : MonoBehaviour
{
void Start()
{
// VideoPlayer を main camera にアタッチ
GameObject camera = GameObject.Find("Main Camera");
// VideoPlayerは、カメラオブジェクトに追加されると、カメラのバックプレーンを自動的にターゲットにします。
// videoPlayer.targetCameraを変更する必要はありません。
var videoPlayer = camera.AddComponent<UnityEngine.Video.VideoPlayer>();
// Play on awake はデフォルトで true。Start() を使用しているため、
// 以下に設定されている URL が自動再生を開始しないようにするには、falseに設定します。
videoPlayer.playOnAwake = false;
// デフォルトで カメラに加えられた VideoPlayers はファークリップ面を使います。
//代わりに、ニアクリップ面をターゲットにします。
videoPlayer.renderMode = UnityEngine.Video.VideoRenderMode.CameraNearPlane;
// これにより、再生中のビデオを通してシーンが表示されます。
videoPlayer.targetCameraAlpha = 0.5F;
// 再生するビデオを設定します。 URLは、ローカルの絶対パスまたは相対パスをサポートします。
// Here, using absolute.
videoPlayer.url = "/Users/graham/movie.mov";
// 最初の 100 フレームをスキップ
videoPlayer.frame = 100;
// 完了したら、最初からやり直します。
videoPlayer.isLooping = true;
// 最後に到達するたびに、再生速度が10分の1になります。
videoPlayer.loopPointReached += EndReached;
// 再生を開始します。 これは、VideoPlayerが準備をしなければならない可能性があることを意味します(リソースの予約、数フレームのプリロードなど)。
// この準備に関連する遅延をより適切に制御するために、
// videoPlayer.Prepare()をそのprepareCompletedイベントと一緒に使用できます。
videoPlayer.Play();
}
void EndReached(UnityEngine.Video.VideoPlayer vp)
{
vp.playbackSpeed = vp.playbackSpeed / 10.0F;
}
}
2017–05–07 修正されたページ
5.6 の新機能