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

 Video Player コンポーネント

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

下の図は、球状のゲームオブジェクトにアタッチされた Video Player コンポーネントを表示しています。

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

球状のゲームオブジェクトにアタッチされた Video Player コンポーネント。ゲームオブジェクトのメインテクスチャ (ここでは、Mesh Renderer のテクスチャ) でビデオクリップを再生します
球状のゲームオブジェクトにアタッチされた Video Player コンポーネント。ゲームオブジェクトのメインテクスチャ (ここでは、Mesh Renderer のテクスチャ) でビデオクリップを再生します

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

VideoPlayer コンポーネント

Video Player コンポーネント
Video Player コンポーネント
プロパティ 機能
Source ビデオソースのタイプを選択します。
Video Clip ビデオクリップ をビデオプレイヤーに割り当てます。
Video Clip このフィールドを使用して Video Player コンポーネントに割り当てるビデオクリップを指定します。ビデオファイルをこのフィールドにドラッグアンドドロップするか、ビデオファイルがプロジェクトフォルダーに格納されている場合はフィールドの右側にある円をクリックしてアセットのリストから選択します。これは WebGL ではサポートされていません。
URL URL (例えば http:// や file://) をビデオに割り当てます。Unity は、ランタイムにこの URL からビデオを読み込みます。
URL ビデオプレイヤーに割り当てたいビデオの URL を入力します。
Browse… Navigate your local file system and open URLs that begin with file://.
Update Mode Set the clock source that the Video Player component uses to update its timing.
DSP Time Select to use the same clock source that processes audio.
Game Time Select to use the same clock source as the game clock. This clock source is affected by the time scaling and capture frame rate settings.
Unscaled Game Time Select to use the same clock source as the game clock but without being affected by time scaling or capture frame rate.
Play On Awake Select to play the video when the Scene launches. Clear it if you want to trigger the video playback at another point during run time. Trigger it via scripting with the Play() command.
Wait For First Frame Select to wait for the first frame of the source video to be ready for display before the game starts. Clear it to keep the video time in sync with the rest of the game, which might cause the first few frames to be discarded.
Loop Select to make the Video Player component loop the source video when it reaches its end. Clear it to stop playing the video when it reaches the end.
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 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 の新機能

VideoPlayer

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