Metadataを仕込む
ipynbFile USDMetadata__Metadataを仕込む.ipynb
[67]:¶
from pxr import Usd,Vt
[68]:¶
stage = Usd.Stage.CreateInMemory()
layer = stage.GetRootLayer()
prim = stage.DefinePrim('/testPrim')
path = prim.GetPath()
layer.defaultPrim = '/testPrim'
[69]:¶
# レイヤーに対して色々Metadataを入れる
layer.comment = 'hello world'
layer.documentation = 'docs'
layer.startTimeCode = 1
layer.endTimeCode = 30
[70]:¶
# Primに対しても入れる
# 配列の場合は Vt.~~Arrayを使う必要あり。
prim.SetCustomDataByKey('value', 10) # Int
prim.SetCustomDataByKey('listdata',Vt.StringArray(['a','b','c']))
prim.SetCustomDataByKey('intlist',Vt.IntArray([1,2,3,4,5]))
prim.SetDocumentation('hello world')
Success
True
[71]:¶
# AttributeにもMetadataを入れられる
attr = prim.CreateAttribute('testAttr',Sdf.ValueTypeNames.String)
attr.Set('hoge')
# Attributeに対してもMetadataを仕込める
attr.SetCustomDataByKey('meta','data')
[72]:¶
prim.GetAllMetadata()
Success
{'customData': {'intlist': Vt.IntArray(5, (1, 2, 3, 4, 5)),
'listdata': Vt.StringArray(3, ('a', 'b', 'c')),
'value': 10},
'documentation': 'hello world',
'specifier': Sdf.SpecifierDef}
[73]:¶
print(layer.ExportToString())
Success
#usda 1.0
(
"hello world"
defaultPrim = "/testPrim"
doc = "docs"
endTimeCode = 30
startTimeCode = 1
)
def "testPrim" (
customData = {
int[] intlist = [1, 2, 3, 4, 5]
string[] listdata = ["a", "b", "c"]
int value = 10
}
doc = "hello world"
)
{
custom string testAttr = "hoge" (
customData = {
string meta = "data"
}
)
}
最終更新日: 2020-10-18 11:57:21