Video Player コンポーネント を使って ビデオファイル を ゲームオブジェクト にアタッチし、ランタイムにビデオファイルをゲームオブジェクトの テクスチャ 上で再生できます。
下の図は、球状のゲームオブジェクトにアタッチされた Video Player コンポーネントを表示しています。
By default, the Material Property of a Video Player component is set to a GameObject’s main texture, which means that when the Video Player component is attached to a GameObject that has a Renderer, it automatically assigns itself to the Texture on that Renderer (because this is the main Texture for the GameObject). Here, the GameObject has a Mesh Renderer component, so the Video Player automatically assigns it to the Renderer field, which means the Video Clip plays on the Mesh Renderer’s Texture.
ビデオを再生する特定の対象 (以下を含む) を設定することもできます。
プロパティ | 機能 | ||
---|---|---|---|
Source | ビデオソースのタイプを選択します。 | ||
Video Clip | ビデオクリップ をビデオプレイヤーに割り当てます。 | ||
Video Clip | Use this field to define the Video Clip assigned to the Video Player component. Drag-and-drop the video file into this field, or click the circle to the right of the field and choose it from a list of Assets if it is in your Project folder. This isn’t supported in WebGL. | ||
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 | When you enable this option, and the Video Player component detects drift between the playback position and the game clock, the Video Player skips ahead. When you disable this option, the VideoPlayer does not attempt to correct for drift and systematically plays all frames. | ||
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 | When you enable this option, the Video Player component selects the Renderer’s main texture automatically. When you disable this option, you can set the Material Property option manually. | ||
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 の新機能