Updated:2024/01/16Tatsuya Yamagishi
Created:2024/01/15 Tatsuya Yamagishi
※ 記事の内容に一切の責任を持ちません。
USDをインポートではなく、USD layerのreferenceとして読み込むスクリプト
Maya PythonでUSDをStageで読み込むと(Importの方ではなく、USD Layerとして読み込み)Unresolved reference prim path
と表示され、USDがインポートできない
USD Layer Editor > Create > Stage from File
は 問題なく読み込むことが出来る。読めるもの
と読めないもの
がある。Houdiniからusdを保存する際に defaultPrim
が指定されていないのが問題だったようだ。USDをReferenceする際はdefaultPrimの指定はとても大事
今まで1つの環境でテストしてたため問題が起きていなった。
(houdiniからUSD出力時はパイプラインで default primitive を自動で入力するようにしていた)
新たな環境を追加した際に、問題が発覚
Houdiniから出力する際にdefaultPrim
を指定する事で、問題なく動作するようになった。
defaultPrim が記述されない
#usda 1.0
(
endTimeCode = 1
framesPerSecond = 24
metersPerUnit = 1
startTimeCode = 1
timeCodesPerSecond = 24
upAxis = "Y"
)
def Cube "cube1"
{
float3[] extent = [(-1, -1, -1), (1, 1, 1)]
double size = 2
matrix4d xformOp:transform = ( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1) )
uniform token[] xformOpOrder = ["xformOp:transform"]
}
MayaPythonでusd referenceを作成しようとするとエラーで読めない
Unresolved reference prim path
defaultPrim = "cube1"
が記載される
#usda 1.0
(
defaultPrim = "cube1"
endTimeCode = 1
framesPerSecond = 24
metersPerUnit = 1
startTimeCode = 1
timeCodesPerSecond = 24
upAxis = "Y"
)
def Cube "cube1"
{
float3[] extent = [(-1, -1, -1), (1, 1, 1)]
double size = 2
matrix4d xformOp:transform = ( (1, 0, 0, 0), (0, 1, 0, 0), (0, 0, 1, 0), (0, 0, 0, 1) )
uniform token[] xformOpOrder = ["xformOp:transform"]
}
無事読めるように
Houdini Refereceノードは Primitiveを読み込み時に指定出来る。
Add a Reference — Omniverse Developer Guide latest documentation
Dirty propagation issues on basic scenes · Autodesk/maya-usd · Discussion #2254
MayaからUSDを普通のオブジェクトのように In/Export する際はこちら
Maya2022のUSDを触ってみよう - いろいろExportする
defaultPrimについて