Unity には多くの形式のビデオファイルをインポートできます。Unity はインポートしたビデオファイルを ビデオクリップ アセットとして保存します。
Unity でビデオファイルをプレビューするためには、そのファイルが Unity エディターを実行するプラットフォームと互換性がある必要があります。また、ファイルはターゲットとなるビルドプラットフォームと互換性がある必要があります。Unity には、ファイルを一般的にサポートされている形式にトランスコードするオプションが用意されていますが、自身で互換性を管理することもできます。詳しくは、後述の ターゲットプラットフォームとの互換性 を参照してください。
ビデオソースファイルは、エディタープラットフォームがサポートする形式を使用する必要があります。各プラットフォームは、異なるビデオファイル形式をサポートします。
拡張子 | Windows | macOS | Linux |
---|---|---|---|
.asf | ✓ | ||
.avi | ✓ | ||
.dv | ✓ | ✓ | |
.m4v | ✓ | ✓ | |
.mov | ✓ | ✓ | |
.mp4 | ✓ | ✓ | |
.mpg | ✓ | ✓ | |
.mpeg | ✓ | ✓ | |
.ogv | ✓ | ✓ | ✓ |
.vp8 | ✓ | ✓ | ✓ |
.webm | ✓ | ✓ | ✓ |
.wmv | ✓ |
ビデオファイルトラックのエンコードには、対応するコーデックを使用する必要があります。各プラットフォームは、そのプラットフォームのバージョンごとに変更される可能性がある特定のコーデックをサポートします。
サポートされていないコーデックを使用するビデオファイルからは、エディターでエラーメッセージが表示されます。この場合、互換性のあるコーデックに変換しないと使用できません。
H.264 は、ほとんどのプラットフォームでサポートされている最適なビデオコーデックです。クロスプラットフォームの互換性が最も高いのですが、Linux エディターはこのコーデックをサポートしていません。
Linux の場合、最適なエンコーディングは、以下のコーデックを使用した .webm コンテナです。
コーデックのサポートについては、エディターのプラットフォームの公式ドキュメントを参照してください。Windows と macOS のコーデックの互換性については、以下のリンクを参照してください。
Video Clip Importer (ビデオクリップインポーター) は、 Unity にインポートしたビデオファイルをトランスコードできます。これは、ビデオがエディタープラットフォームがサポートするコーデックを使用しているが、ファイルとターゲットプラットフォーム間に互換性がない場合に便利です。
ターゲットプラットフォームと互換性があるが、エディタープラットフォームと互換性のないビデオファイルを使用するには、それらを ストリーミングアセット として設定します。例えば、エディターが VP8 しかサポートしていない場合でも、Android ビルドに VP9 コーデックを使用したいなどの場合に役立ちます。
ビデオファイルをストリーミングアセットとして設定するには、それらをプロジェクトの StreamingAssets
フォルダーに保存します。Video Player コンポーネントがストリーミングアセットを指すようにするには、URL プロパティを使用します。
また、Application.streamingAssetsPath を使って、スクリプト経由でストリーミングアセットへのプラットフォーム特定のパスにアクセスすることもできます。これらのパスをエディターでプレビューすることはできません。
エディターと互換性のあるバージョンのプレースホルダーを用意したいが、ターゲットプラットフォームには別のバージョンを使用したい場合、両方のバージョンをプロジェクトに加え、エディターと互換性のあるバージョンをプレースホルダーとして使用し、ランタイムにどちらのバージョンを使用するか決定することができます。
以下の例は、異なるプラットフォームで異なるビデオ URL を使用する方法を示しています。詳細については、プラットフォーム依存のコンパイル を参照してください。
void SetupMovieFile(VideoPlayer vp)
{
# if UNITY_EDITOR || UNITY_LINUX
vp.url = pathToMyVp8File;
# elif UNITY_ANDROID
vp.url = pathToMyVp9File;
# elif UNITY_STANDALONE_WIN
vp.url = pathToMyWmvFile;
# else
vp.url = pathToMyMp4File;
# endif
}
Video Player コンポーネントは、エディタープラットフォームのネイティブのオーディオおよびビデオデコーディングライブラリを使用して、エディターでビデオファイルを再生します。また、ファイルがターゲットプラットフォームの要件を満たしていることを確認する必要があります。
ハードウェアアクセラレーションにネイティブでサポートされている最高のビデオコーデックは H.264 です。
VP8 は、クロスプラットフォームサポートを優先する場合に適しています。幅広くサポートされており、包括的な機能セットを備えていますが、H.264 などのハードウェアアクセラレーションコーデックよりも多くのリソースを消費します。
H.265 は、H.265 をサポートするデバイスで使用できます。詳細は、後述の H.265互換性 を参照してください。
Android はネイティブライブラリを使用して VP8 をサポートします。そのため、一部の Android デバイスでは VP8 もハードウェア支援される場合があります。
Unity エディターでは .ogv 形式をサポートしていますが、他のプラットフォームではあまりサポートされていません。ターゲットプラットフォームに応じて、.ogv ファイルを .mp4 (H.264) または .webm (VP8) にトランスコードします。
以下の表は、エンコードパラメーターで確認するキー値の一覧です。
パラメーター | 説明 |
---|---|
Video Codec | H.264、H.265、VP8。 |
Resolution | ディスプレイの解像度。例: 1280×720 |
Profile | プロファイルは一揃いの機能と制約で、多くの場合、Baseline や Main などのベンダーによって指定されます。H.264/H.265 に適用されます。詳しくは、H.264 または H.265 を参照してください。 |
Profile | H.264/H.265 に適用されます。あるプロファイルの中では、ベースライン3.1のように、レベルによって性能要件が指定されます。 |
Audio Codec | AAC (H.264/H.265 を使用する mp4 ビデオ向け)、または Vorbis (VP8 を使用する webm ビデオ向け)。 |
オーディオチャンネル | プラットフォームに依存します。プラットフォームの開発者ガイドを参照してください。例えば、Androidの場合は、Supported media formats を参照してください。 |
Video Clip Importer には、VideoClip アセットを以下のいずれかのビデオコーデックにトランスコードするオプションがあります。
トランスコードされた VideoClips は適切なオーディオコーデックを自動的に使用します。
Note: The Video Clip Importer provides only basic transcoding options. Depending on how your source files are encoded, you might not get optimal performance from clips transcoded with the importer options. In that case, you might get better results with an external transcoding program.
ターゲットシステムが確かにサポートしているビデオを使用する場合は、ビデオクリップインポーター のトランスコーディングオプションを無効にしておくことができます。無効にすると、Unity はファイルを変更しません。このようにすると、外部プログラムを使用してエンコードを管理できます。それによって、より細かいコントロールが可能 です。
このセクションでは、ビデオの互換性に関する有用な情報と、外部リソースへのリンクを提供します。
コーデックのサポートについては、ベンダーの推奨事項に従うことが重要です。古いモバイルプラットフォームで、コーデックの選択が制限されます。複数のデバイスで実行するゲームに加える予定のビデオに対しては注意深く検査し、変換/再エンコードする必要があるかもしれません。
以下の表は、H.265 コーデックのプラットフォーム固有の要件と情報を示しています。
Platform | 要件 | エンコード/デコード | ノート |
---|---|---|---|
macOS | SDK 10.13 以降 |
ハードウェアエンコード: 第 6 世代インテル Core プロセッサー ソフトウェアエンコード: すべての Mac ハードウェアエンコード: 第 6 世代インテル Core プロセッサー ソフトウェアエンコード: すべての Macs |
|
Windows | Windows 10 + HEVC 拡張 |
エンコーダー デコーダー |
HEVC 拡張子 (ハードウェアのみ) HEVC 拡張子 (ハードウェア + ソフトウェアサポート) |
iOS | SDK 11.0 以降 |
ハードウェアデコード: A9 チップ ソフトウェアのデコード: すべての iOS デバイス |
|
tvOS | SDK 11.0 以降 | ||
UWP | Windows 10 以降 | あるデバイスのリストに H.265 に対応していると記載されていても、それがデバイスファミリー内のすべてのデバイスに適用されるとは限りません。 | |
Android | 5.0+ |
2019–05–07 修正されたページ
5.6 の新機能