コンテンツにスキップ

modelAPIとKind

ipynbFile modelAPI__modelAPIとKind.ipynb

[36]:

from pxr import Usd,Sdf

[2]:

stage = Usd.Stage.CreateInMemory()

[9]:

prim = stage.DefinePrim("/testPrim")
stage.SetDefaultPrim(prim)

[47]:

# APIを取得する
Usd.ModelAPI.Get(stage,Sdf.Path('/testPrim'))

Success

Usd.ModelAPI(Usd.Prim(</testPrim>))

[5]:

# ModelAPI にPrimを渡してAPIを取得する
api = Usd.ModelAPI(prim)

[39]:

# Primに対していろんなシーンに関連するMetadataを入れる
api.SetAssetName('testAsset')
api.SetAssetVersion('1.0')
api.SetAssetInfo({'test':'hello world',
                  'num':10,
                  'hoge':[10,11,12]})

[40]:

# Kindを設定
api.SetKind('component')

Success

True

[41]:

print(api.IsKind('component'))
print(api.IsModel())
print(api.IsGroup())

Success

True
True
False

[42]:

print(stage.GetRootLayer().ExportToString())

Success

#usda 1.0
(
    defaultPrim = "testPrim"
)

def "testPrim" (
    assetInfo = {
         hoge = [10, 11, 12]
        int num = 10
        string test = "hello world"
    }
    kind = "component"
)
{
}

Kindを取得する方法

[48]:

from pxr import Kind

[51]:

# 登録されているKindを取得する
Kind.Registry().GetAllKinds()

Success

['charprop',
 'chargroup',
 'subcomponent',
 'model',
 'component',
 'group',
 'assembly',
 'newRootKind']

[52]:

# Kindの階層構造を取得できる
Kind.Registry().GetBaseKind('component')

Success

'model'

[54]:

print(Kind.Registry().HasKind('hoge'))
print(Kind.Registry().HasKind('charprop'))

Success

False
True

最終更新日: 2020-12-20 17:16:59