USDの便利なツールたち (2) usdcat
USD AdventCalendar2021 6 日目は USD に付属する便利ツール usdcat について
紹介したいとおもいます。
usdcat とは¶
usdcat は、
https://graphics.pixar.com/usd/release/toolset.html#usdcat
USD ツールの1つで、引数で受け取った usd ファイルを、テキストとして標準出力・またはファイルに出力します。
1 |
|
使用方法は、コマンドプロンプトから usdcat 確認したい usd ファイルを指定します。
指定すると、上のように指定した usd ファイルの中身を表示してくれます。
USDA - USDC 変換¶
引数を指定しない場合は、標準出力で usd ファイルの中身を表示するだけですが、
引数を指定することでアスキーとバイナリの変換をすることができます。
1 |
|
アスキーのファイルをバイナリに変換した例。逆の場合は usdFormat を usda にすることで変換できます。
flatten/flattenLayerStack¶
usdcat の機能に flatten という機能があります。
これは、指定の usd のコンポジションをすべてベイクした状態で出力する機能です。
たとえばこんな Cube の usd ファイルを、
このようにリファレンスしたファイルを usdcat を用意します。
1 |
|
--flatten をつけずに実行すると、指定した usda の中身をそのまま(コンポジションなどの情報も含んだまま)
表示されます。
対して、--flatten するとどうなるかというと
--flatten した場合、コンポジションの情報はなくなり1つの usd で完結する状態になりました。
コンポジションがあった部分(refCube に cube.usda の cubePrim がリファレンスされている)はなくなり
コンポジションの結果の Prim になっているのがわかるかとおもいます。
1 2 |
|
--flattenLayerStack はすべてを Flatten するのではなく、サブレイヤー部分だけを Flatten します。
こんな感じにサブレイヤーにして実行すると
このようになります。
サブレイヤーだけ Flatten されていますが、リファレンスは残っているのがわかります。
mask¶
mask は、 PopulationMask(OpenMasked)について で説明した OpenMask で指定した Path 以下だけをロード・表示する機能です。
こんな感じでファイルのうち /a のみロードする場合
1 |
|
このようになります。
まとめ¶
以上が usdcat でした。
usdcat は usdc を usda に変換したりまたその逆をしたりする場合や
手書きの usda のフォーマットが正しいか確認したり、コンポジションの結果を確認したり
大量のレイヤーに分けられた usd を1つにまとめたりといったことが可能になります。
usdchecker と同様、とても便利なツールなのでぜひともお試しください。