Universal Scene Description (USD)ってなんだ?
Universal Scene Description (USD)とは
他のDCCツールと共有ができるすごいやつらしい・・・
以下のような強みがあるらしい
- 派生、バリアント
- 読み込み速度
- カスタムアトリビュート追加
とりあえず使ってみる
HoudiniとMayaでUSDを使ってみる
適当に階段っぽいものを作成
ステップになるような感じで調整をして、USDを出力してみる
HoudiniでいったんUSDをインポートしてしっかり確認
PythonApiを使用しての保存もできる。
from pxr import Usd, UsdGeom
# 新しいUSD Stageを作成
stage = Usd.Stage.CreateNew("output.usda")
root = UsdGeom.Xform.Define(stage, '/Root')
# ジオメトリを追加
sphere = UsdGeom.Sphere.Define(stage, '/Root/Sphere')
sphere.GetRadiusAttr().Set(2.0)
# 保存
stage.GetRootLayer().Save()
print("USDファイルが保存されました: output.usda")
このUSDデータをMayaにインポートしてみる。
mayaのプラグインをオンにしてインポート
Houdiniで値を変えて階段の角度を変えてHoudini側で保存
Pythonで読み込み
from pxr import Usd, UsdGeom
# USDファイルを読み込む
stage = Usd.Stage.Open("パス")
root = UsdGeom.Xform.Define(stage, '/Root')
print("USD Stage loaded:", stage)
うまくインポートできた。
保存後、HoudiniのUSDImportノードのRelodeをしてみると
うまく反映していた。
使ってみた感想
USDステージごとの追加でオリジナルを非破壊的に変更することができて、便利だと感じた。
各ソフトを開きなおしたり、インポートする手間がなくなってすごく楽に感じた。
Mayaで作成、Houdiniで配置みたいなことをしたときにUSDで楽に管理できそう。
次はカスタムアトリビュートの追加もやって見たいと思います。