3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

QualiArtsAdvent Calendar 2024

Day 4

今更だけどUniversal Scene Description (USD)を使ってみた

Posted at

Universal Scene Description (USD)ってなんだ?

Universal Scene Description (USD)とは

他のDCCツールと共有ができるすごいやつらしい・・・

以下のような強みがあるらしい
  • 派生、バリアント
  • 読み込み速度
  • カスタムアトリビュート追加

とりあえず使ってみる

HoudiniとMayaでUSDを使ってみる
適当に階段っぽいものを作成

image.png
image.png
image.png

ステップになるような感じで調整をして、USDを出力してみる

image.png

HoudiniでいったんUSDをインポートしてしっかり確認

image.png

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のプラグインをオンにしてインポート

image.png

image.png

Houdiniで値を変えて階段の角度を変えてHoudini側で保存

その後Mayaでインポート
image.png

Pythonで読み込み

from pxr import Usd, UsdGeom

# USDファイルを読み込む
stage = Usd.Stage.Open("パス")
root = UsdGeom.Xform.Define(stage, '/Root')
print("USD Stage loaded:", stage)

うまくインポートできた。

Mayaで新しいUSDステージを作成してみる。
image.png

適当にステージにメッシュを追加
image.png

保存後、HoudiniのUSDImportノードのRelodeをしてみると

image.png

うまく反映していた。

使ってみた感想

USDステージごとの追加でオリジナルを非破壊的に変更することができて、便利だと感じた。
各ソフトを開きなおしたり、インポートする手間がなくなってすごく楽に感じた。
Mayaで作成、Houdiniで配置みたいなことをしたときにUSDで楽に管理できそう。

次はカスタムアトリビュートの追加もやって見たいと思います。

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?