Переименование узлов ReadGeo с помощью Alembic SceneGraph
У меня есть 7 выстрелов с 2 или 3 файлами Alembic в каждой и около 20 геометрий на Alembic.
Поскольку мне нужно экспортировать мою полную 3D-сцену в новый Alembic, мне нужно переименовать все ReadGeo
узлы должны быть легко читаемыми в другом программном обеспечении (например, Maya).
Для этого я хочу дать имя геометрии из Alembic Scenegraph
к ReadGeo
но я не вижу, как найти Geo
имя с Python. Я начал с этого кода:
def AlembicRename():
for s in nuke.allNodes("ReadGeo2"):
GeoName = # don't know how to find this
s['name'].setValue(GeoName)
AlembicRename()
Любая идея, как я могу найти Geometry
Название?
Спасибо.
2 ответа
Чтобы получить доступ к иерархии ABC Scenegraph в NUKE, вы должны попробовать этот код:
import nuke
nuke.createNode('ReadGeo', 'file {/Users/swift/Desktop/scene.abc}')
def AlembicRename():
for s in nuke.allNodes('ReadGeo4'):
sceneView = s['scene_view']
fullHierarchy = sceneView.getAllItems()
print fullHierarchy
AlembicRename()
# Result: ['/root/polySphere/polySphereShape']
Чтобы узнать, как извлечь подстроку из строки, используя Python, прочитайте этот пост. После извлечения процесса вы можете назначить (polySphere
например) имя к вашему ReadGeo
узел. И не забывайте: есть список Python, содержащий только нулевой индекс.
s['name'].setValue(fullHierarchy[0])