WWDC Quick Look 💓 By SwiftGGTeam
Explore video experiences for visionOS

Explore video experiences for visionOS

元の動画を見る

ハイライト

visionOS 26 では Apple Projected Media Profile という単一の QuickTime コンテナフォーマットによって、180°、360°、Wide FOV の 3 種類の非矩形ビデオを AVKit、RealityKit、QuickLook、Safari の再生パイプラインに統合します。さらに Apple Immersive Video の制作ワークフローを開発者向けに初めて開放しました。


主要内容

これまで Vision Pro で GoPro が撮影した魚眼素材を再生しようとすると、開発者は投影方式の判定、メッシュの記述、レンズ歪みの補正、そしてウィンドウ表示か没入表示かの判断まで、すべて自前で処理する必要がありました。Canon EOS VR が撮る 180° ステレオビデオ、Insta360 の 360° 球面ビデオ、各社アクションカムの Wide FOV 素材は、いずれも独自のメタデータ規約を持っています。結果としてビデオ App ごとにフォーマット判別と投影パイプラインを重複実装することになり、ユーザーが写真ライブラリからファイルをドラッグしてきても、再生できるのか、どう再生されるのか分からないという状況が発生していました。

visionOS 26 はこの問題を 1 本の QuickTime movie profile、すなわち Apple Projected Media Profile(APMP)に統一しました。既存の spatial video コンテナにフィールドを拡張し、180° 半球面、360° 全球面、Wide FOV のパラメトリック曲面という 3 種類の非矩形投影を記述できるようにしたものです(16:11)。EOS VR、GoPro MAX、Insta360 X5、HERO13、Ace Pro 2 といった主要機種のソースファイルを開くと、システムが自動的に APMP に変換し(16:56)、Google Spherical Video v1/v2 の equirectangular マーカーとも互換性があります。AVKit、RealityKit、QuickLook、Safari、WebKit のすべてが APMP の拡張と没入再生に対応し、HLS 配信とも組み合わせられます(18:10)。開発者がやるべきことは「投影パイプラインを自前で書く」から「標準のプレーヤを呼ぶだけ」へと退化しました。

もう 1 つの軸は、Apple Immersive Video の制作ワークフローが初めて開放されたことです(19:25)。Blackmagic URSA Cine Immersive カメラは各レンズが出荷時に parametric 投影に基づき個別キャリブレーションされており、片眼あたり 8160×7200、90fps、水平 FOV 210° を実現します(20:22)。素材は DaVinci Resolve Studio で編集し、Apple Immersive Video Utility を使って macOS / visionOS 上でプレビュー検証、最後に Compressor でセグメント化して HLS で配信します(21:19)。Pro ツールの開発者は、新しい ImmersiveMediaSupport フレームワークを使って macOS と visionOS 26 上で Apple Immersive コンテンツをプログラム的に読み書きすることもできます(21:51)。


詳細

Session ではビデオ形態を 5 段階に分類しており、それぞれが特定の画面ジオメトリに対応します。ジオメトリを理解することがフォーマット選択の出発点です。

2D / 3D ビデオ:rectilinear 投影、平面に落ちる。2D は任意の UI に inline 埋め込みでき、板状レイアウトと共存します(01:55)。3D ビデオを inline 埋め込みすると、優雅に 2D 再生へフォールバックします(02:09)。立体視するには expanded モードが必要です。Destination Video のサンプルプロジェクトでは、expanded ビューからフェードアウトし、Reality Composer Pro で作成したカスタム環境にフェードインして docked 再生する流れを示しており、画面からは自動的に動的なライトスピルが生成されます(02:42)。visionOS 26 では 2D/3D ビデオに per-frame dynamic mask が追加され、フレームごとに画面サイズと比率を変えてもブラックバーが入りません(03:35)。仕様は developer.apple.com の「Rectangular Mask Payload Metadata」ドキュメントを参照してください。

Spatial Video:ステレオ+メタデータ、ウィンドウと没入の二重モード。デフォルトはウィンドウ再生で、エッジに発光のハロが表示されます。没入モードに切り替えるとウィンドウの縁が消え、コンテンツが実物大のサイズに拡大されます(04:57)。ウィンドウモードでは、画面をあえてウィンドウ背後に埋め込みエッジをぼかしています。これは片眼がもう一方より多くクロップされることによる不快感を緩和する設計です(05:38)。撮影側は、iPhone 15 Pro / 16 / 16 Pro の Camera App と AVCaptureDevice API、Vision Pro、Canon R7/R50 + DUAL レンズが対応しています(05:59)。visionOS 26 は spatial スタイルを QLPreviewController、AVKit、RealityKit、Safari、WebKit に拡張し、HLS にも対応します(06:31)。編集側では Compressor、DaVinci Resolve Studio、Final Cut Pro がすでに対応済みです。

180° / 360° / Wide FOV:APMP の 3 種類の投影。180° ビデオは正面方向の半球に投影され、画面が前方視野を埋めます。典型的にはステレオ形式です(09:37)。360° ビデオは equirectangular で全球面に投影され、幅:高さ = 2:1 です(11:03)。180° は half-equirectangular を採用し、正方形のフレームを半球にマッピングします(11:34)。ステレオ 180° ビデオは伝統的に左右の眼を side-by-side に配置して幅 2 倍のフレームに収めますが、両眼の類似度が高く帯域を浪費します。

MV-HEVC が冗長性を解決する。Apple プラットフォームは HEVC をハードウェアでサポート済みであり、ステレオビデオには MV-HEVC を使います。各眼の pixel buffer を同一の video track 内に書き込み、第 2 の眼は差分のみをエンコードします(12:50)。ストリーミング再生時に特に効いてきます。

Wide FOV は parametric immersive projection を使う。GoPro HERO13 や Insta360 Ace Pro 2 のようなアクションカムは 120°〜180° の水平視野をキャプチャし、魚眼レンズを使うことが多いため直線が湾曲します(13:51)。visionOS 26 のアプローチは、各カメラレンズの焦点距離、skew、歪みパラメータを基に曲面メッシュを構築し、その上にビデオを貼り付けるというものです。曲面が魚眼歪みを相殺するため、現実世界の直線がビュー上でも直線のまま保たれます(14:44)。このようにレンズ投影をパラメータで記述する方式が parametric immersive projection です(16:11)。

APMP の自動変換:Canon EOS VR Utility が出力する 180° ステレオ、GoPro MAX / Insta360 X5 の 360°、Google Spherical v1/v2 の equirectangular マーカー、HERO13 / Ace Pro 2 の直接出力ファイル、360° カメラの片レンズスライスのいずれも、Vision Pro で開いた時点で自動的に APMP として認識されます(16:56)。macOS の avconvert コマンドラインツールも拡張され、180°/360° → APMP のオフライン変換に対応しました(18:00)。

APMP の再生制約:expanded と immersive の 2 つのモードに対応しますが、inline embedded 再生はサポートしません18:21)。没入再生はカメラの揺れに敏感なので(サーフボードに括り付けたカメラを想像してください)、QuickLook、AVKit、RealityKit には high motion 自動検出が組み込まれており、激しい動きを検知すると没入度を自動的に下げます。ユーザーも「設定」から自分の感度を調整できます(18:46)。

Apple Immersive Video の開放:URSA Cine Immersive は片眼 59 MP、90fps、毎秒 100 億ピクセルを超えます(20:30)。完全なパイプラインは、撮影 → DaVinci Resolve Studio で編集 → Apple Immersive Video Utility(macOS + visionOS 両対応)でプレビュー検証 → Compressor でセグメント化 → HLS 配信、という流れです(21:19)。ImmersiveMediaSupport フレームワークが Apple Immersive のプログラマブルな入出力エンドポイントを提供します(21:56)。フォーマット固有の機能としては、ショットごとのエッジ alpha フェザリング曲線(動的カーブとして格納され、各ショットのエッジをカスタム背景環境に溶け込ませる)、カスタム backdrop environment、新しい Apple Spatial Audio Format、Apple Vision Pro 上でのリアルタイムプレビューが挙げられます(22:13)。


重要ポイント

1. APMP をビデオ App のデフォルトインポートフォーマットとして扱う

なぜ価値があるか:カメラブランドごとにメタデータパーサを書く必要がなくなり、システムがファイルを開く際に自動で識別して APMP に変換してくれます。1 つのプレーヤで 180°、360°、Wide FOV の 3 種類の投影をすべてカバーできます。

どう始めるか:インポート処理で AVKit または RealityKit の immersive 再生 API を直接使い、投影方式の判定はシステムに任せます。inline サムネイルが必要な場面だけ 2D 表示にフォールバックしてください。APMP は inline 再生をサポートしないためです。

2. 非矩形ビデオの App には high motion 設定への導線を加える

なぜ価値があるか:アクションカムの素材は本質的に揺れが激しく、没入再生では不快感が増幅されます。システム層に high motion detection による自動低下機能はありますが、手動で制御したいユーザーもいます。

どう始めるか:再生画面からユーザーを「設定」の高動的感度設定へ誘導し、UI には「没入度を下げる」トグルを用意して、酔いやすいユーザーが App を離れずに調整できるようにします。

3. ImmersiveMediaSupport フレームワークで Apple Immersive を自分の Pro ツールに組み込む

なぜ価値があるか:Apple Immersive は今回初めて開発者に開放されました。ノンリニア編集ソフト、トランスコードツール、アセット管理ツールを作っているなら、URSA Cine Immersive がスタジオに導入された後の需要を最初に取り込めるのは、いち早く読み書きを実装したプレーヤです。

どう始めるか:macOS / visionOS 26 の ImmersiveMediaSupport フレームワークから着手し、サンプルコード Authoring Apple Immersive VideoConverting projected video to Apple Projected Media Profile の 2 つのプロジェクトと組み合わせて最小限の読み書きデモを作ります。まず per-shot edge blend カーブの読み書きをサポートし、その後 Spatial Audio Format に拡張するのが現実的です。

4. 既存の spatial ビデオ App に QLPreviewController / AVKit / RealityKit / WebKit のマルチエントリを追加する

なぜ価値があるか:visionOS 26 では spatial スタイルが Apple のすべてのメディアフレームワークに拡張されました。つまり Web 埋め込み、AVPlayer コントロール、RealityKit エンティティの 3 箇所で同じアセットを共用できるということです。

どう始めるか:App 内でビデオを再生しているすべての場所を棚卸しし、単一プレーヤを各シーンに対応した公式コンポーネントへ置き換え、HLS ストリームを同一の配信パイプラインに通します。


関連セッション

コメント

GitHub Issues · utterances