LoginSignup
9
12

More than 5 years have passed since last update.

Unity 5.6からの動画再生機能 VideoPlayerで動画再生

Last updated at Posted at 2017-06-22

[Unity] ドラッグ&ドロップ一切使わずスクリプトのみでいろいろ取り込みより
再生形式やインポートの不具合(記事)に苦しめられたうえに、ビルド後の仕上がりを見てMovieTextureになんとなく嫌気がさしてきたところで、VideoPlayerというものがとっくに存在することを確認

やること

上リンクと同じ、スクリプトだけで動画を再生。

MovieTextureとの違い

MovieTextureは動画(イメージ)をテクスチャとしてオブジェクト(平面など)に貼り付けるのに対して、VideoPlayerは動画をクリップとして扱えるため直感的で扱いやすく、機能も動画用に特化してて豊富。

url、clipから読み込める事ができることを確認。

早速

Using
using UnityEngine.Video;

VideoPlayer

VideoPlayer videoPlayer;
VideoClip videoClip;



void play_byClip()
{
    GameObject plane = GameObject.Find("Plane");
    //すでに存在するアセット(ライトやカメラ)に予めVideoPlayerを付けておくか、AddComponentで取得
    videoPlayer = GetComponent<VideoPlayer>();

    //記入漏れ clip使う際のみ必要です
    videoPlayer.targetMaterialRenderer = plane.GetComponent<Renderer>();
    vp.clip = vc;
    vp.play();
}

void play_byURL(string _url)
{
/**************
    ほぼ一緒 clipの部分だけ削除
**************/
    vp.url = _url;


    // 2017年07月06日追記
    if(vp.isPrepared)
    {
        vp.play(); 
    }
}



「最低限」を脱するために

音声

MovieTextureのときと同じく同時にAudioSource再生かな。
VideoPlayerにaudioあるからうまく使いたいところ。

VideoPlayerにスクリプトで音をつけたい (http://qiita.com/gshirato/items/88096b0b350f5921f8d4)

その他

ScriptingAPIより

//動画のレンダリングの仕方。デフォルトだとカメラが見れる一番遠く(Far)でレンダリングするっぽい 
//カメラの設定を使う場合はスクリプトをカメラにアタッチしたほうが良いかも
videoPlayer.renderMode = VideoRenderMode.CameraNearPlane;
//開始フレームの設定(最初にスキップするフレームの数)
videoPlayer.frame = 100;
//ループONに
videoPlayer.isLooping = true;
//動画が最後まで来たときのループ処理
videoPlayer.loopPointReached += Loop;

//引数ないと怒られます
void Loop(VideoPlayer vp)
{
       print("LoooooP");
}

など

VideoRenderMode

Mode 説明
CameraFarPlane Far位置にレンダリング(背景化?)
CameraNearPlane Near位置にレンダリング(とにかく動画だけ見える)
MarterialOverride Rendererに上書き(Planeなどに貼る場合はコレ)
RenderTexture Renderer Textureに使う(あまり使い方にピンときてないです)
APIOnly データだけ使う、レンダリングなし

参考

Unity Documentation: VideoPlayer

HoloLens開発記事一覧

こちらから

9
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
12