-
USDKitの概要とOpenUSDの新機能
AppleプラットフォームにおけるUniversal Scene Description(USD)サポートの最新の進歩について、SwiftベースのUSDKit、新しいSpatial Preview API、強化された空間Web機能などを中心に紹介します。OpenUSD標準の最新アップデートで追加された、アクセシビリティ、ガウシアンスプラッティング、圧縮ジオメトリのサポートについて確認しましょう。Macの「プレビュー」のUSD編集およびレンダリングのツールの機能拡張の概要と、これらの機能をアプリで活用する方法も解説します。
関連する章
- 0:07 - Introduction
- 0:53 - OpenUSD: Industry Foundation and New Standards
- 2:51 - Gaussian Splats and Particle Fields
- 3:47 - Introducing USDKit
- 4:06 - 3D Editing in Preview and New Renderers
- 5:42 - Spatial Preview: Live Collaboration Between Mac and Vision Pro
- 6:25 - USD on the Web: The Safari Model Tag
- 6:57 - USDKit: Key Concepts and Swift API Walkthrough
- 10:05 - Accessibility Metadata in USD
- 11:19 - Asset Compression: Mesh and Texture
- 12:36 - Integration Paths: USDKit, SwiftUSD, and OpenUSD
- 13:24 - Next steps
リソース
関連ビデオ
WWDC26
-
このビデオを検索
「USDKitの発見」へようこそ。 OpenUSDの新機能についてお伝えします。 私はLeeです。Spatial Standards チームのエンジニアです。 USDは、Appleが作る 空間体験の基盤であり、 空間シーンを表現する方法です。 あなたが作るアプリから、 私たちのプラットフォーム全体で ご覧いただけるコンテンツまで、 これらの空間体験はすべて USDの上に構築されています。
USDはPixarによって生み出され、 Appleはいち早くその可能性を 見出しました。 私たちはそれ以来、 彼らと協力し続けています。 今日、私たちはさらに一歩進みます。 私たちのプラットフォームにおける USDの最新の進歩と、 USDKitという強力な新しいフレームワーク、 そしてそれがMacとVision Proの間で シームレスな3D体験を どのようにつなぐかをご説明します。
まず、私たちのプラットフォームにおける USDへの基盤的な更新を 見ていきましょう。
USDは多くの産業で 共通の3D言語となっています。 受賞歴のある映画、AAAゲーム、 工場の現場、手術室、 自動運転車、AI駆動シミュレーション。 その普及はさらに広がっています。 Appleは、次世代の空間体験の基盤として USDを確立するための 先頭に立っています。 USDを支えるオープンソースプロジェクトは OpenUSDと呼ばれ、 3Dシーンを記述するための 業界標準ライブラリであり、 もともとPixarが開拓しました。 しかし、USDは単独では機能しません。 リッチなマテリアル記述のために、 もともとLucasfilmが生み出したMaterialXと 統合しており、 今年新たに、DreamWorksが生み出した OpenVDBと統合しました。 ボリューメトリックデータが加わります。 これらの技術はそれぞれ、 世界トップクラスの 視覚効果・アニメーションスタジオによって 構築されており、合わさることで 3Dの強力で構成可能な基盤を形成します。 今年は全プラットフォームにわたって 3つすべてを更新しました。 それぞれの最新の改善点を ご活用いただけます。
AppleはAcademy Software Foundation のメンバーであり、 MaterialXやOpenVDBなどの オープンソースプロジェクトの拠点です。 Foundationを通じて、 私たちはこれらのプロジェクトに 積極的に貢献し、 開発者やクリエイターの利益になる形で 進化させています。 私たちのプラットフォームだけでなく、 3Dエコシステム全体として。 コードを超えて、 AppleはAlliance for OpenUSDの 創設メンバーであり、 USDを真の業界標準にするべく 取り組んでいます。 実践においてだけでなく、 文書の上でも。
今年、私たちはUSDのコアに関する 最初の正式な仕様の公開を支援しました。 ジオメトリ、マテリアル、物理演算の ドメイン仕様も既に進行中です。 これはオープンな取り組みであり、 これらのワーキンググループこそが USDの未来が決まる場所です。 業界が3Dコンテンツを どのように構築するかを 形作ることに声を上げたいなら、 ぜひ参加してください。 ガウシアンスプラットは 最も刺激的な 3D表現における 最近のブレークスルーの一つです。 従来のジオメトリを使う代わりに、 スプラットはシーンを数百万の ぼんやりと重なり合う粒子として捉え、 それぞれが位置、色、不透明度を エンコードして 複雑な現実世界の環境を 忠実に再現します。 このビジュアライゼーションで ご覧のように、スプラットは 非常に微妙な光の反応を 捉えることができ、 現実世界のシーンを 生き生きと表現できます。
Alliance for OpenUSDパートナーと 協力して、 NVIDIA、Adobe、Pixarを含む パートナーと共に、 新しいUSDプリミティブ型 「Particle Fields」を導入します。 これはガウシアンスプラットを 記述できるほか、 この急速に発展する研究領域の 他の表現方法にも対応しています。
これにより、ガウシアンスプラットが メッシュやマテリアルと 同じシーンに 初めて組み込まれるようになります。 プラットフォーム全体にわたる 強力な新しい体験と、 それを支えるために構築された新しい USDKitフレームワークを見ていきましょう。
USDKitが重労働を引き受けるので、 コンテンツとアプリケーションに 集中できます。 これはすべて可能になっています。 私たちが積み重ねてきた 標準化作業によって。
Previewは長らく、 Macで画像、PDF、 3Dコンテンツを表示する 定番の場所でした。 画像やPDFについては、 常に強力な編集ツールのセットを すぐに使える形で提供し、 追加ソフトウェアは不要でした。 今年、私たちはその同じ哲学を 3Dにも持ち込みます。
Previewはmacに不可欠な 3D編集機能をもたらし、 最もよく使う操作を カバーします。 シーン内でオブジェクトを 直接操作したり、 プロパティやライティングを編集したり、 完全なシーン階層で作業したり、 アセットを変換・圧縮したりできます。 専用の3Dアプリケーションを 習得する必要はありません。 表面はシンプルですが、 すべてプロダクションクオリティの レンダリングおよび処理パイプラインで 支えられています。
Mac上のPreviewとQuick Lookは、 レンダラーを選択できるようになりました。 RealityKitは、Mac、iPhone、iPad、 Vision Proにわたる一貫性をもたらし、 Stormは既存のプロダクションパイプラインの ニーズにも引き続き対応します。
最も複雑なシーンに対して、 Previewはまったく新しいRaytracerを追加し、 目を見張るような高品質な結果を実現します。
3つすべてがOpenPBRをサポートしており、 USDPreviewSurfaceから 大幅にアップグレードされ、 よりリッチで物理的に正確な マテリアルをワークフローにもたらします。
Previewの新しいRaytracerは、 より高い要求を持つシーン向けに 構築されています。 建築空間のビジュアライゼーションでも、 製品画像の準備でも、 正確な反射、 精密な影、 物理的に正しいライティングを提供します。 すべてのMacで使えるプロダクションクオリティの グラウンドトゥルースレンダラーです。
PreviewはmacOS 27の新しい Spatial Previewフレームワークと統合し、 MacとVision Pro上のQuick Lookの間に 直接的なつながりを作ります。 PreviewでUSDシーンに取り組む中で、 変更はVision Pro上のQuick Lookで 自分のスペースにリアルタイムで反映され、 SharePlayを通じて チーム全員を一度に参加させることができます。 クリエイティブディレクターやアーティストが 同じシーンを一緒に歩き回り、 ライティング、構図、空間スケールを リアルタイムでレビューできます。 そして今、Spatial Previewフレームワークにより、 このような協調的な空間ワークフローが これまで以上に簡単になりました。 自分のMacアプリに 組み込むことができます。 その方法については Spatial Previewセッションをご覧ください。
USDはウェブの一部にもなりました。 Safariはモデルタグを導入し、 3DコンテンツをWebページに 画像や動画と同じように 自然に組み込めるようにします。
USDモデルをページに埋め込むと、 macOSとiOSでは、 ユーザーがブラウザ内で 完全なインタラクティブ3D体験を得られます。 visionOSではさらに先へ進みます。 同じモデルがページから飛び出し、 ユーザーの空間内に 空間的に表示されます。 今日ご覧いただいたものすべては、まったく新しい システムフレームワークによって動いています USDKitです。 見ていきましょう。 USDKitはSwiftアプリに ファーストクラスのUSDサポートをもたらし、 RealityKitとSpatial Previewとの 深い統合が組み込まれています。 USDKitはすべての人が使えるように 設計しました。 USDをすでに知っている開発者は、 コンセプトがすぐに 馴染み深く感じられるでしょう。 初めてUSDに触れる Swift開発者も、 USDKitは今あなたがいる場所から 始められます。 すでに知っているパターンや パラダイムで使えます。 例に入る前に、 USDのいくつかの重要なコンセプトを 確認しておきましょう。 USDでは、Layerは単一のデータファイルです。 Layerは、Compositionと呼ばれる 強力な機能によって組み合わせることができます。 Stageは、1つ以上のLayerの Compositionされた結果です。 これがシーン全体への ウィンドウです。 シーン内のすべては USD Primとして表現されます。 各Primにはそのタイプを定義する Schemaがあります。 PrimはAttributeも持ち、 実際のデータを保持します。 そしてMetadataは、 Prim自体に関する情報を記述します。 重要なコンセプトを説明しました。 実際にUSDKitをどのように使うか、 例を通じて見ていきましょう。 Stageを読み込み、 いくつかの変更を加え、 結果をエクスポートします。 USDKitを始めるには Stageから始めます。 シンプルなUSDStageイニシャライザで メモリ上に新しいものを作れます。 ただし、このデモでは、 使いたい既存のシーンが あります。 USDStage.openにファイルURLを渡すことで 開くことができます。 ファイルアクセスが伴うため、 エラーが発生する可能性があり、 tryを使います。 そして出ました。 シーンが読み込まれ、 すでに良い感じです。 作業台にオシロスコープが あるはずでしたが。 シーンのどこかにあるか確認して、 なければ追加しましょう。 まず、Stageの階層を トラバースして、 オシロスコープがすでに 含まれているか確認します。 ありません! そこで、配置したいパスに 新しいTransform Primを定義します。 ここからが 本当に便利なところです。 アセットのすべてのデータを 自分のStageに直接コピーする代わりに、 軽量なリファレンスを 追加できます。 アセットは独自のファイル(Layer)に存在し、 まったく別の誰かが作成したものです。 私はそれを引き込んでいる だけです。 これがCompositionの力です。 全員が自分のシーンの 一部分を担い、 USDがすべてをまとめます。 最良の点は? 彼らが加えた更新は 自動的に自分のStageにも反映されます。 彼らのファイルをリファレンスしている だけですから。 いいですね! アセットがシーンに入りましたが、 ご覧のように、 希望通りの場所にはありません。 正しい位置に移動する方法を お見せします。 Primを移動するには、まず addTransformOperationを呼び出します。 これがPrimに正しい Attributeを作成し、 Transformの順序を 自動的に更新します。 その後は Translation値を設定するだけで、 アセットが作業台の上に 移動します。 ちょうど望んだ場所に。
完璧です! 見た目がずっと良くなりましたが、 これを世界と共有する前に、 準備が整っているか確認したいです。 できるだけ広いオーディエンスに向けて。 優れた3D体験は 誰もがアクセスできるべきです。 Appleにとってアクセシビリティは コアバリューであり、空間コンテンツも含まれます だからこそ私たちは推進してきました。 アクセシビリティメタデータの標準化を USDに直接取り入れ、 補助的なラベルのあり方を確立しました。 説明が3Dオブジェクト上でどのように 定義されるかが業界全体で決まります。 将来に向けて進化できるよう、 柔軟性を組み込んで設計しています。 USDにネイティブであるため、 あらゆるUSD APIからオーサリングでき、 できるだけ簡単に採用できるよう、 BlenderとMayaに直接サポートを 追加しました。
新しいアセットにアクセシビリティデータを 追加するには、 まずAccessibilityAPI Schemaを Primに適用します。 これによりSchemaが存在することを示す 必要なメタデータが追加されます。 USDKitはスキーマ固有のAPIを すべて提供しているわけではないため、 ラベルと説明のAttributeを 直接作成します。 正しいAttribute名を 使うようにして、 仕様で定義されている通りに します。 それらを設定したら、 値を設定できます: 簡潔なラベルと、支援技術に コンテキスト内でオブジェクトを 理解するのに必要なすべてを与える リッチな説明です。 アセットの準備が整いました。 しかし、高品質なプロダクション用 USDシーンは数ギガバイトにもなります。 今日使ってきたALabシーンは その好例です。 これほど大きなファイルを共有するのは 常に実用的とは限りません。 縮小する方法を お見せしましょう。
Alliance for Open Mediaとの 協力により、 最先端のメッシュ圧縮コーデックを サポートするようにしました。 メッシュサイズを 最大90%削減できます。 AVIFを使った既存の テクスチャ圧縮と組み合わせると、 数字が語ってくれます。 平均的なアセットは 7倍小さくなり、 視覚品質は損なわれません。 小さなアセットはより速い配信、 低いストレージコスト、 すべてのプラットフォームで ユーザーのより良い体験をもたらします。 USDKitの圧縮サポートは exportPackage APIに直接組み込まれています。 StageのexportPackageメソッドに 出力URLを渡し、 エクスポートオプションでテクスチャと メッシュの圧縮を有効にします。 数行で完了です。 コードを書かない場合は、 Previewから直接 同じ結果を得ることができます。 またはusdcrushコマンドラインツールを 通じても可能です。 私たちはPixarと協力して この圧縮サポートを OpenUSDプロジェクトに取り込んでいます。 エコシステム全体が 恩恵を受けられるようにです。 USDの統合は複雑になることがあるため、 技術にアクセスするための さまざまな方法があります。 私たちのプラットフォームのアプリ開発者には、 USDKitが最適です。 システムが提供し、深く統合されており、 今日お見せしたものはすべて その上に構築されています。 より高度なニーズを持つ方や、 USDKitの範囲を超えた クロスプラットフォームワークフローの方も サポートしています。 SwiftUSDはオープンソースのSwift バインディングを提供し、 Swift Package Managerから利用できます。 クロスプラットフォームのC++コードベースには、 OpenUSDをフレームワークとして直接 組み込むことがこれまで以上に簡単になりました。 ワークフローに合ったどの方法でも、 すべて同じ基盤の上に 構築されています。 つまり、USDファイルは それらすべての間を自由に移動できます。 今日カバーした内容を まとめましょう。 AppleプラットフォームのUSDは 今年大きく前進しました。 Previewは不可欠な3D編集機能と 強力なレンダリングオプションを Macにもたらします。 Spatial Previewを使えば、コンテンツに 没入しやすくなり、 他の人と共有できます。 SafariのモデルタグがUSDを ウェブにネイティブにもたらします。 すべての中心にあるのはUSDKitです。 SwiftでUSDを扱うことを ファーストクラスの体験にする 新しいシステムフレームワークです。 アプリで3Dコンテンツをオーサリングし 扱いたいなら、 USDKitが始める最適な場所です。 今年はさらに探索できることが たくさんあります。 Spatial Previewをより深く掘り下げる セッションがあり、 USDをウェブに展開する方法や、 RealityKitとReality Composer Proで リッチな空間体験を構築する方法もあります。 どのようなワークフローでも、 あなたに合ったものがあります。 リンクされたリソースを確認して 詳細をご確認ください。 USDはかつてないほど強力になりました。 皆さんが何を作るのか、 今から楽しみにしています。 ご視聴ありがとうございました!
-
-
8:12 - Opening a USD Stage
import USDKit // Create a new empty in-memory stage let stage = USDStage() // Open a stage from a file on disk let url = URL(fileURLWithPath: "/ALab/entry.usda") let stage = try USDStage.open(url) -
8:44 - Traversing the Stage Hierarchy
// Traverse all prims looking for the oscilloscope for prim in stage.descendants { if prim.name == "scope" { // There it is! 🔬 } } // It wasn't there — define a new Xform prim for it let scope = stage.definePrim(at: "/World/scope", type: “Xform")) // Add a file reference to the prim try scope.references.add(“/ALab/assets/scope.usda”) -
9:36 - Moving a Prim with a Transform Operation
// Creates xformOp:translate and updates xformOpOrder automatically scope.addTransformOperation(type: .translate) scope["xformOp:translate", as: USDValue.Vec3d.self] = [2.5, 0.0, -1.0] -
10:42 - Applying Accessibility Metadata
// Apply the multi-apply AccessibilityAPI schema with instance name "default" try scope.applyAPISchema("AccessibilityAPI", instanceName:"default") // Create the label and description attributes scope.makeAttribute(named: "accessibility:default:label", as: .string) scope.makeAttribute(named: "accessibility:default:description", as: .string) // Set their values scope["accessibility:default:label", as: String.self] = "Oscilloscope" scope["accessibility:default:description", as: String.self] = "Vintage signal analyzer with a 3D wireframe display, topped by a color bar test monitor" -
12:05 - Exporting with Mesh and Texture Compression
let output = URL(fileURLWithPath: "/ALab/alab_compressed.usdz") // Export the stage as a USDZ package try stage.exportPackage( to: output, options: [ .preferSmallTextureFiles(quality: .standard), // compress textures .preferSmallMeshFiles // compress mesh geometry ] )
-
-
- 0:07 - Introduction
Frames USD as the backbone of Apple's spatial experiences and outlines the topics covered: foundational USD updates, the new USDKit framework, and how they enable rich 3D experiences across Apple platforms.
- 0:53 - OpenUSD: Industry Foundation and New Standards
Apple's evolving role in the OpenUSD ecosystem: updates to OpenUSD, MaterialX, and OpenVDB across all platforms; Apple's membership in the Academy Software Foundation and Alliance for OpenUSD; and the release of the first formal USD core specification.
- 2:51 - Gaussian Splats and Particle Fields
Introduces a new USD primitive type — Particle Fields — co-developed with NVIDIA, Adobe, and Pixar through the Alliance for OpenUSD, enabling Gaussian Splats to be represented natively in USD and composited alongside traditional 3D data.
- 3:47 - Introducing USDKit
A high-level overview of USDKit, the new first-party Swift framework that brings USD support to Apple apps with built-in RealityKit and Spatial Preview integration, designed to be approachable for both USD veterans and Swift developers new to 3D.
- 4:06 - 3D Editing in Preview and New Renderers
Preview on Mac gains essential 3D editing capabilities: direct scene manipulation, property and lighting editing, hierarchy browsing, and asset conversion — all backed by a choice of three renderers: RealityKit, Storm, and a new high-fidelity Raytracer. All three support OpenPBR materials.
- 5:42 - Spatial Preview: Live Collaboration Between Mac and Vision Pro
The new Spatial Preview framework on macOS 27 creates a live link between Preview on Mac and Quick Look on Vision Pro, enabling real-time spatial review and SharePlay collaboration. Developers can integrate the same workflow into their own Mac apps.
- 6:25 - USD on the Web: The Safari Model Tag
Safari's new Model tag brings interactive 3D USD content to web pages on macOS and iOS, with full spatial breakout on visionOS — making USD as native to the web as images and video.
- 6:57 - USDKit: Key Concepts and Swift API Walkthrough
A walkthrough of core USD concepts — Layers, Composition, Stages, Prims, Schemas, Attributes, and Metadata — followed by a practical Swift code example: opening a stage, traversing the hierarchy, adding a referenced asset via composition, and repositioning it with transform operations.
- 10:05 - Accessibility Metadata in USD
Apple has driven standardization of accessibility metadata directly in USD, defining how assistive labels and descriptions are authored on 3D objects. The API is supported in Blender and Maya, and the USDKit walkthrough shows how to apply the AccessibilityAPI schema and set label and description attributes.
- 11:19 - Asset Compression: Mesh and Texture
Introduces state-of-the-art mesh compression (up to 90% reduction) developed with the Alliance for Open Media, combined with existing AVIF texture compression — achieving 7× smaller assets on average. Demonstrated via USDKit's exportPackage API, Preview's UI, and the usdcrush command-line tool.
- 12:36 - Integration Paths: USDKit, SwiftUSD, and OpenUSD
Outlines the three integration paths: USDKit for Apple platform app developers; SwiftUSD via Swift Package Manager for advanced or open-source Swift workflows; and OpenUSD as an embeddable C++ framework for cross-platform codebases. All share the same USD foundation, ensuring file interoperability.
- 13:24 - Next steps
Recap of the session's key announcements — 3D editing in Preview, Spatial Preview collaboration, the Safari Model tag, and USDKit — with pointers to related sessions on Spatial Preview, USD on the web, RealityKit and Reality Composer Pro.