Unity でビデオ ファイルを再生する方法

Unity では、ビデオ クリップを再生すると、ゲームに深みと没入感を加えることができます。カットシーン、チュートリアル ビデオ、背景の雰囲気など、ビデオを統合することでプレーヤー エクスペリエンスを向上させることができます。このチュートリアルでは、Unity でビデオを再生する手順を説明し、MovieTexture を使用した古い方法と新しい VideoPlayer コンポーネントの両方を説明します。

1. MovieTexture の使用 (非推奨)

ステップ 1: ビデオ ファイルをインポートする

  • まず、ビデオ ファイルが Unity でサポートされている形式 (.mp4 や.mov など) であることを確認します。
  • ビデオ ファイルを Unity プロジェクトの Assets フォルダーにドラッグ アンド ドロップします。

ステップ 2: マテリアルを作成する

  • 「Assets」ウィンドウを右クリックし、「'Create -> Material'」に移動します。
  • マテリアルに適切な名前を付けます (例: "VideoMaterial")。
  • マテリアルを選択し、[インスペクター] ウィンドウで [シェーダー] ドロップダウンを選択し、["Legacy Shaders -> Diffuse"] を選択します。
  • 動画ファイルを素材のAlbedoスロットにドラッグ&ドロップします。

ステップ 3: 平面の作成

  • [階層] ウィンドウを右クリックし、'3D Object -> Plane' に移動します。
  • 必要に応じて平面を配置し、スケールします。

ステップ 4: マテリアルを平面に適用する

  • Videomaterial をシーン ビューの平面にドラッグします。

ステップ 5: スクリプトを作成する

  • 新しい C# スクリプト ("PlayVideo" など) を作成します。
  • スクリプトを開いて次のコードを記述します。
using UnityEngine;

public class PlayVideo : MonoBehaviour
{
    public MovieTexture video;

    void Start()
    {
        GetComponent<Renderer>().material.mainTexture = video;
        video.Play();
    }
}

ステップ 6: スクリプトを添付する

ステップ 7: テストをプレイする

  • プレイボタンを押してゲームをテストします。ビデオは飛行機の表面で再生されるはずです。

2. VideoPlayer コンポーネントの使用 (推奨)

Unity ビデオ再生の最新の代替として VideoPlayer コンポーネントが導入されました。より多くの機能とより優れたパフォーマンスを提供します。

ステップ 1: ビデオ ファイルをインポートする

  • 前の方法のステップ 1 に従ってビデオ ファイルをインポートします。

ステップ 2: UI キャンバスを作成する

  • [階層] ウィンドウを右クリックし、'UI -> Canvas' に移動します。
  • これにより、ビデオを表示するためのキャンバスが作成されます。

ステップ 3: Raw 画像を追加する

  • Canvas オブジェクトを右クリックし、'UI -> Raw Image' に移動します。
  • これにより、ビデオ テクスチャを表示するための画像オブジェクトが作成されます。

ステップ 4: VideoPlayer コンポーネントをアタッチする

  • Hierarchy ウィンドウで Raw Image オブジェクトを選択します。
  • 「インスペクター」ウィンドウで「"Add Component"」をクリックし、「"Video Player"」を検索します。
  • "New" をクリックして、新しいビデオ プレーヤー コンポーネントを作成します。

ステップ 5: ビデオクリップを設定する

  • ビデオ プレーヤー コンポーネントを選択した状態で、ビデオ ファイルを "Video Clip" フィールドにドラッグ アンド ドロップします。

ステップ 6: テストをプレイする

  • プレイボタンを押してゲームをテストします。ビデオは Raw Image オブジェクトで再生されるはずです。

結論

このチュートリアルでは、Unity ゲームでビデオを再生する 2 つの方法を学習しました。MovieTexture は非推奨ですが、VideoPlayer コンポーネントはより多くの機能と優れたパフォーマンスを提供するため、Unity でビデオを再生する場合に推奨されるアプローチとなっています。

おすすめの記事
Unity の GUILayout の概要
Unity でのタイマーの実装
Unity でオブジェクトをマウス カーソルに追従させる方法
Poppy Playtime からインスピレーションを得て Unity で GrabPack を作成する
Unity でバレットタイムエフェクトを作成する
Unity でインタラクティブなオブジェクトを作成する
Unity でのキネティック インタラクションの実装