search
LoginSignup
3

More than 1 year has passed since last update.

posted at

updated at

【Unity 2019.4〜】4K超の360動画を実用的なパフォーマンスで再生する(8Kまで対応)

概要

Unityで360度動画を再生するとき,4Kの解像度を境界に動画コンテナに工夫が必要でした。

360度動画をUnity上で再生するための操作は,公式ドキュメントに手順が掲載されていますが,Unityにインポートするまでの工夫や,そうならざるを得ない背景事情を取り扱います。

環境

ソフトウェア

  • Windows 10
  • Unity 2019.4.x
  • SteamVR
  • HTC Vive

ハードウェア

  • Intel Core i7 10700
  • NVIDIA RTX 2070 Super
  • DDR4-2133 32GB

カメラ

  • Insta360 Pro 2

背景

一般的にUnityに動画をインポートする際には,H.264 (typically in a .mp4, .m4v, or .mov format)を選択するが一般的です。

しかし,H.264形式は4K30p(4,096×2,048)までが標準仕様で,それを超える解像度(例. H.264形式の8K動画)をUnityで扱う際には,iGPU(CPU内蔵グラフィックス)やdGPU(グラフィックボード)のデコード支援が利用できませんでした。
その結果,デコード処理がCPUで行われるため,動画の再生がカクカクになります。

H.264の次世代規格であるH.265は,8K120p(8192×4320)まで標準仕様です。UnityでもUnity 2019.1からH.265をサポートしています。

Unityにインポートするまでの準備

  1. H.265形式で動画をエンコード
  2. HEVC ビデオ拡張機能の導入(120円)

1. H.265形式で動画をエンコード

お好みのエンコーダーで,動画をH.265形式でエンコードします。筆者の環境では以下の設定で運用しています。H.265形式のCPUエンコードは非常に時間がかかるため,Intel QSVやNVIDIA NVENCやAMD VCEによるハードウェアエンコードをおすすめします。
エンコードについては,私はいつもこちらの方のブログを参考にしています。

形式 2D, 3D プロファイル 生成動画のビットレート(参考程度)
8K30p(7680x3840) 単眼視 Main@L6.1@High 約150Mbps
8K30p(7680x7680) 両眼立体視 Main@L6.2@High 約300Mbps

2. HEVC ビデオ拡張機能の導入

現在VRヘッドマウントディスプレイを扱うには,Windows一択のため,Windowsで動かしている方が大半だと思います。

Unityは,Unity 2019.1からH.265をサポートしましたが,Windows上でのUnity
では,動画のインポートと再生にHEVC ビデオ拡張機能を導入する必要があります。

これは,UnityがMicrosoft Media Foundationを利用しているためです。

この拡張機能は実質有償化しましたが,OSレベルでH.265デコード機能が扱えるようになり,UnityでH.265が扱えるほか,エクスプローラのサムネイルでの表示やプレビューに対応するようになります。120円です。将来的にOS標準サポートになるといいですね。

こぼれ話:カメラRAWやAV1の拡張機能は無償提供されています。

Unityにインポートしてからの手順

公式ドキュメントに手順が掲載されています。2Dも3Dもどんとこい。

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
What you can do with signing up
3