Version: 2021.2
言語: 日本語
ビデオの概要
MovieTexture から VideoPlayer への移行

 Video Player コンポーネント

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.

A Video Player component attached to a spherical GameObject, playing the Video Clip on the GameObject’s main Texture (in this case, the Texture of the Mesh Renderer)
A Video Player component attached to a spherical GameObject, playing the Video Clip on the GameObject’s main Texture (in this case, the Texture of the Mesh Renderer)

ビデオを再生する特定の対象 (以下を含む) を設定することもできます。

VideoPlayer コンポーネント

Video Player コンポーネント
Video Player コンポーネント
プロパティ 機能
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 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 PlaneCamera Far PlaneRender 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 AwakePlay()) は、ビデオソースのオーディオトラックには適用されません。

このプロパティは、Audio Output ModeAudio Source に設定されている場合にのみ表示されます。
Mute 該当するオーディオトラックをミュートにします。Audio Source モードでは、オーディオソースの制御が使用されます。

このプロパティは Audio Output ModeDirect に設定されているときにのみ表示されます。
Volume 該当するオーディオトラックの音量。Audio Source モードでは、オーディオソースの音量が使用されます。

このプロパティは、Audio Output ModeDirect に設定されているときにのみ表示されます。

Video Playerスクリプトの例

次のスクリプトは、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 の新機能

ビデオの概要
MovieTexture から VideoPlayer への移行