WWDC Quick Look 💓 By SwiftGGTeam
What's new in USD and MaterialX

What's new in USD and MaterialX

元の動画を見る

Highlight

昨年 visionOS の RealityKit に初導入された OpenUSD と MaterialX の 2 つのオープン標準が、今年 iOS、iPadOS、macOS に拡大。QuickLook は USD Variants のインタラクティブ切り替えに対応し、Preview の Storm レンダラーは MaterialX をサポートします。


主要内容

3D コンテンツ開発者が長年直面してきた課題:制作ツール、ランタイムレンダラー、ファイルフォーマットがそれぞれ独立した体系を形成し、アセットをプラットフォーム間で移動するたびに情報の欠落、マテリアルの作り直し、効果の再調整が必要になる。MaterialX ShaderGraph は昨年 visionOS に導入されたが visionOS のみ利用可能——同じ shader を iOS 版で書き直す必要があった。

Apple のアプローチ:Pixar の OpenUSD と ILM の MaterialX をプラットフォーム基盤とし、すべての Apple プラットフォームが同一のアセットフォーマットとマテリアル記述を共有。今年 RealityKit の ShaderGraph ノードが visionOS から iOS、iPadOS、macOS に拡大——1 つのマテリアル定義ですべてのプラットフォームで一貫した表現。blend shapes(表情アニメーション)と subdivision surfaces(ランタイム滑らか曲面)が新規追加され、QuickLook と RealityKit API で USD Variants のインタラクティブ切り替えも可能に。macOS では Preview に Storm レンダラーの MaterialX サポートが追加され、Finder の USDZ 変換とサムネイルプレビューも——制作からプレビュー、配布までの 3D ワークフロー全体がシステムツールチェーン内で完結。


詳細

RealityKit ShaderGraph のクロスプラットフォーム拡張01:00

MaterialX ShaderGraph は昨年 visionOS のみ利用可能でした。今年これらのノード(Apple カスタムの bespoke nodes を含む)が iOS、iPadOS、macOS に全面拡大。Apple はノード定義をオンラインドキュメントに公開し、サードパーティ DCC ツールの統合を支援。アプリごとにレンダラー能力が異なるためノード動作に差異がある可能性はあるが、定義自体は統一されています。

Blend Shapes と Subdivision Surfaces03:37

Blend Shapes でキャラクターがプリセット表情を作れます(Animoji と同様のメカニズム)。Subdivision Surfaces ではエディタで低ポリゴンモデルを維持しつつ、ランタイムで自動的に滑らかな曲面を生成——高ポリゴンアセットによるメモリ消費を回避。両者のパフォーマンス注意事項は開発者ドキュメントを参照。

USD Variants インタラクティブ切り替え04:07

USD は Variants をネイティブサポート——同一 prim 上に複数の外観バリアントを定義。今年 QuickLook でインタラクティブに切り替え可能。重要な制約:Variants は USD シーンの default prim 上に宣言する必要がある。RealityKit API も USD ファイル読み込み時に variant を指定可能。

以下は “What’s new in Quick Look for visionOS” のコード例からの USD Variants 典型的な宣言方法:

#usda 1.0
(
    defaultPrim = "iPhone"
)

def Xform "iPhone" (
    variants = {
        string Color = "Black_Titanium"
    }
    prepend variantSets = ["Color"]
)
{
    variantSet "Color" = {
        "Black_Titanium" { }
        "Blue_Titanium" { }
        "Natural_Titanium" { }
        "White_Titanium" { }
    }
}

キーポイント:

  • defaultPrim = "iPhone" でシーンのデフォルト prim を宣言——Variants はこの prim 上に定義する必要があり、QuickLook が認識・切り替え可能
  • variants = { string Color = "Black_Titanium" } でデフォルト選択バリアントを Black_Titanium に指定
  • prepend variantSets = ["Color"] でこの prim に Color という名前の variant set があることを宣言
  • variantSet "Color" = { ... } で利用可能なすべての色バリアントを列挙——各バリアント内部に異なるマテリアルやサブ階層定義を含められる

macOS ツールチェーン更新04:53

Preview に Adjust Size ツールが追加——3D エディタを開かずにモデルサイズと向きを調整。エクスポート時にテクスチャ圧縮を選択してファイルサイズを削減。Storm レンダラーのライティングが RealityKit に近い効果に更新され、MaterialX(複数の ShaderGraph ノードを含む)をサポート開始。

Finder 面:右クリックメニューに Convert to USDZ(Shortcuts app 経由)が追加。Archive Utility で USDZ を解凍可能。大容量ファイルはプリレンダーサムネイルをサポート——大きな USD ファイルを含むディレクトリの閲覧がスムーズに。

システムライブラリとコマンドラインツール06:38

OpenUSD アップグレードで Unicode prim 名(ヒンディー語、中国語など)をサポート——NVIDIA と Pixar が共同貢献。macOS には複数の USD コマンドラインツールが内蔵:usdcat(フォーマット変換)、usdchecker(ファイル検証)、usdzip(USDZ パッケージ作成)、usdcrush(USDZ 圧縮)。


重要ポイント

  • やること: 商品展示系アプリに USD Variants を導入し、ユーザーが色/スタイルをインタラクティブに切り替え。価値: QuickLook が variant 切り替えをネイティブサポート——カスタム UI 不要。USD フォーマットで 1 アセットファイルにすべてのバリアントを含め、パッケージサイズを削減。始め方: USD ファイルの default prim 上に variantSet を宣言、RealityKit の Entity.loadModel または QuickLook で開く——プレビュー内で切り替え可能。

  • やること: 手書きカスタム shader の代わりに MaterialX ShaderGraph を使用。価値: ShaderGraph は Reality Composer Pro でビジュアル編集、プログラミング不要。visionOS / iOS / iPadOS / macOS で一貫した表現——プラットフォーム適応コストを削減。始め方: Reality Composer Pro で ShaderGraph マテリアルを作成、Apple の bespoke nodes を使用、エクスポートして各プラットフォームの RealityKit で直接読み込み。

  • やること: キャラクターアニメーションで blend shapes + subdivision surfaces の組み合わせを使用。価値: エディタで低ポリゴンを維持して操作しやすく、ランタイム自動細分で画質を確保。blend shapes で表情を制御可能かつ再利用可能。始め方: DCC ツールで blend shape ターゲットと低ポリモデルを制作、USD 形式でエクスポート——RealityKit が細分と表情ブレンドを自動処理。

  • やること: macOS コマンドラインツールで USD アセットパイプラインを自動化。価値: usdchecker で CI 中にアセット合法性を検証、usdzip / usdcrush で USDZ を一括パッケージ・圧縮——手動操作ミスを回避。始め方: ビルドスクリプトに usdchecker 検証ステップを追加、パッケージ段階で usdzip 生成、その後 usdcrush でテクスチャ圧縮。


関連セッション

コメント

GitHub Issues · utterances