Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【CEDEC2024】USDのゲームアセットへの応用について

 【CEDEC2024】USDのゲームアセットへの応用について

jsonなどが使われることが多いゲームアセットについて、USDを使用する手法を解説します。
また、ゲームアセットにUSDを採用したときのメリットやデメリットも解説します。

Bandai Namco Studios Inc.

January 30, 2025
Tweet

More Decks by Bandai Namco Studios Inc.

Transcript

  1. 自己紹介 主に関わったタイトル ・ACE COMBAT6 ・ACE COMBAT ASSAULT HORIZON ・テイルズ オブ

    カードエボルブ ・アイドルマスター ミリオンライブ! ・ポッ拳 ・New ポケモンスナップ 過去の講演 ・CEDEC2011 ACE COMBAT ASSAULT HORIZONにおける継続的インテグレーション ・CEDEC2011 「エースコンバット アサルト・ホライゾン」インゲームカメラ制作事例 ・CEDEC2015 ポッ拳におけるゲームエディタの設計と実装 ・CEDEC2019 家庭用ゲーム開発におけるゲームエディタの基礎設計と、安定かつ高速なアセット管理について ・CEDEC2019 DirectX Raytracingを用いたライトベイカーの実装について ・CEDEC2021 『New ポケモンスナップ』におけるライティング ・CEDEC2022 MaterialXとStandard Surfaceのゲームグラフィックスへの応用について ・CEDEC2023 DCCツールを用いた広色域テクスチャワークフロー など 多田 航 Wataru Tada
  2. USDを使ったゲームアセットフロー 開発環境 (ゲームエディタなど) #usda 1.0 def "Mission" { def "Mission_1"

    { custom string Comment = "テストミッション" custom int ID = 1 } } バイナリファイル USD ゲームランタイム バイナリファイル
  3. コンポジションを使う • ゲームアセットがコンポジションアークに従ってファイル分割 されている必要がある • subLayers (レイヤー) • inherits (継承)

    • variantSets (バリエーション) • references (参照) • payloads (ペイロード) • specializes (特殊化) キャラクター共通パラメータ.USD 個別キャラクターパラメータ.USD 参照 コンポジション例
  4. USDライブラリ • USDはファイルフォーマットとしてのUSD(.usdなど)を扱うた めにライブラリが提供されている • 本講演ではUSD 24.05 Windows版をMonolithic Libraryとして ビルドしたものを使用している

    (コンソール移植を行っていない) →ゲームランタイムではなくツールでのみUSDを扱っている https://github.com/PixarAnimationStudios/OpenUSD USD Windows開発環境 ゲームランタイム バイナリ
  5. 基本型 • 基本型はUSDで用意されているので、C#の型を変換できる C# USD bool bool char uchar int,sbyte,short

    int uint,byte,ushort uint long,decimal,nint int64 ulong,nuint uint64 float float double double string string C# USD bool[] pxr::VtArray<bool> char[] pxr::VtArray<uchar> int[],sbyte[],short[] pxr::VtArray<int> uint[],byte[],ushort[] pxr::VtArray<uint> long[],decimal[],nint[] pxr::VtArray<int64> ulong[],nuint[] pxr::VtArray<uint64> float[] pxr::VtArray<float> double[] pxr::VtArray<double> string[] pxr::VtArray<string> 基本型 配列
  6. コリジョンコンバーター • コリジョンアセットをUSDで扱うことで、ゲームエディタでの 編集の他、DCCツールでも編集可能なアセットとなる コリジョンアセットUSD Houdini ゲームエディタ Maya バイナリ ファイル

    コリジョンモデルはUsdGeomMeshを使用 ゲーム中で必要な追加パラメータはCustom Dataに設定 (草や地面といったコリジョン種別など) ポリゴン判定用にfaceVertexCountsは3に設定
  7. USD Toolset • USDはUSD Toolset(USD公式ツール)を提供しており、データ デバッグなどに活用できる 名前 概要 usdedit テキストエディタでのデータ編集

    usdcat .usdaの文法チェック usddiff diff表示 usdview 階層構造のプレビュー usdrecord usdresolve usdtree 階層構造のテキスト表示 名前 概要 usdzip .usdzの作成 usdchecker usdstitch 複数USDのマージ usdstitchclips usddumpcrate sdfdump SdfPathやTfTokenの調査用 sdffilter
  8. References • https://openusd.org • https://github.com/PixarAnimationStudios/OpenUSD • Academy Software Foundation Slack

    • [CEDEC 2017] Pixar USD 入門:新たなコンテンツパイプラインを構築する • [CEDEC 2022]『グランツーリスモ7』開発におけるUSD活用事例