Alembic Python Вопрос: Как получить значение из arbGeomParams?
Наверное, это простой вопрос. Я новичок в перегонном питоне, а не хардкорный программист, я пытаюсь получить строковое значение атрибута перегонного куба, добавленного в кэш-память сфера из майя. Я начал со скрипта, который нашел здесь (спасибо BigRoy!)
https://gist.github.com/BigRoy/eea07a0fb60437eb5cecd9fc6c4fd324
Моя урезанная версия теперь выглядит так:
import alembic
def _print_properties(property, depth=1):
# Property name
print ("\t" * depth) + property.getName()
# Metadata
metadata = property.getMetaData()
if metadata.size():
# Can hold things like "sourceName" for UVs
print ("\t" * depth) + " - metadata -> %s" % metadata
print("")
# CompoundProperty print children
if isinstance(property, alembic.Abc.ICompoundProperty):
num_sub_properties = property.getNumProperties()
for i in range(num_sub_properties):
sub_property = property.getProperty(i)
_print_properties(sub_property, depth+1)
def print_alembic_shape_attributes(filename):
filename = str(filename) # ensure str
archive = alembic.Abc.IArchive(filename)
root = archive.getTop()
iterator = list(root.children)
for obj in iterator:
md = obj.getMetaData()
if alembic.AbcGeom.IPolyMesh.matches(md):
polymesh = alembic.AbcGeom.IPolyMesh(obj, alembic.Abc.WrapExistingFlag.kWrapExisting)
schema = polymesh.getSchema()
print obj
meshSamp = schema.getValue
# Arbitrary Geometry Parms
arbgeomparms = schema.getArbGeomParams()
if arbgeomparms.valid():
# Should always be valid
_print_properties(arbgeomparms)
print("")
# include children for coming iterations
iterator.extend(obj.children)
path = "test4.abc"
print_alembic_shape_attributes(path)
Вывод выглядит следующим образом:
/pSphere1/pSphereShape1
.arbGeomParams
- metadata -> .arbGeomParams
myMaterialTag
- metadata -> arrayExtent=1;isGeomParam=true;podExtent=1;podName=string
Итак, скрипт работает — он находит мой пользовательский атрибут «myMaterialTag». Мой вопрос в том, как заставить его распечатать значение этого атрибута, которое должно читаться как «тест».
Что мне не хватает?
Заранее спасибо!