PR

Unityパスから動画を再生する方法

はじめに

UnityのVideoPlayerコンポーネントを使用することによって、パスから動画を読み込むことができます。
今回はUnityのVideoPlayerを使用して、パスから動画を読み込む方法について解説していきます。

その1.下準備

まずシーンに動画を表示させるために、ヒエラルキー内を右クリックして、①UIをクリックして、
②のRawImageを配置してください。
ここのRawImageの画面サイズはお好みのサイズにしてください。

次に配置したRawImageのインスペクターの①AddComponentをクリックして、
②検索欄にVideoPlayerと入力して、③VideoPlayerをクリックして追加してください。

次にVideoPlayerコンポーネントの設定を下の画像と同じに設定してください。

これにて、下準備は完了です。
次に動画を読み込むためのスクリプトを書いていきましょう。

その2.スクリプトを記述

まず、PathToVideoという名前でスクリプトを作成してください。

次に作成したスクリプトのusing UnityEngine;の下に以下のコードを追加してください。

C#
using UnityEngine;
using UnityEngine.UI;//これを追加してください
using UnityEngine.Video;//これを追加してください

次にパスから動画を読み込むための関数を入力してください。

C#
    /// <summary>
    /// パスから動画を再生する
    /// </summary>
    /// <param name="path">動画のパス</param>
    private void PlayPathToVideo(string path)
    {
        videoPlayer.url = path;
        
        videoPlayer.prepareCompleted += OnPrepareCompleted;
        videoPlayer.Prepare();
    }

    /// <summary>
    /// 準備完了時の処理
    /// </summary>
    /// <param name="videoPlayer"></param>
    private void OnPrepareCompleted(VideoPlayer videoPlayer)
    {
        rawImage.texture = videoPlayer.texture;

        videoPlayer.Play();
    }

スクリプト全体は以下の通りです。

C#
using UnityEngine;
using UnityEngine.UI;//これを追加してください
using UnityEngine.Video;//これを追加してください

public class PathToVideo : MonoBehaviour
{

    /// <summary>
    /// 動画のパス
    /// </summary>
    public string VideoPath;

    /// <summary>
    /// 動画を表示させるRawImage
    /// </summary>
    public RawImage rawImage;

    /// <summary>
    /// 動画プレイヤー
    /// </summary>
    public VideoPlayer videoPlayer;

    void Start()
    {
        PlayPathToVideo(VideoPath);
    }

    /// <summary>
    /// パスから動画を再生する
    /// </summary>
    /// <param name="path">動画のパス</param>
    private void PlayPathToVideo(string path)
    {
        videoPlayer.url = path;
        
        videoPlayer.prepareCompleted += OnPrepareCompleted;
        videoPlayer.Prepare();
    }

    /// <summary>
    /// 準備完了時の処理
    /// </summary>
    /// <param name="videoPlayer"></param>
    private void OnPrepareCompleted(VideoPlayer videoPlayer)
    {
        rawImage.texture = videoPlayer.texture;

        videoPlayer.Play();
    }

}

その3.作成したスクリプトをアタッチ

先ほど配置したRawImageオブジェのインスペクターに書いたスクリプトをドラッグアンドドロップしてください。
次にVideoPathに再生したい動画のパスを入力してください。

次にRawImageに配置したRawImageコンポーネントをアタッチしてください。

次にVideoPlayerに配置したVideoPlayerをアタッチしてください。

実行してみてください。
実行すると動画が再生されていると思います。
もし読み込まれていない場合はパスが間違っている可能性があるので、確認をお願いします。

最後に

今回はUnityパスから動画を再生する方法について紹介しました。

ここまで読んでいただいてありがとうございました。
私たちはプペポタイピングという自由に問題やテーマを作ったり遊んだりできるゲームを
開発しています!
もし興味を持って頂けたのであれば遊んで頂けるとありがたいです!!