通过 Alembic Sc​​eneGraph 重命名 ReadGeo 节点

Rename ReadGeo nodes by Alembic SceneGraph

我有 7 个镜头,每个镜头有 2 或 3 个 Alembic 文件,每个 Alembic 大约有 20 个几何图形。

由于我需要在新的 Alembic 中导出完整的 3D 场景,因此我需要重命名所有 ReadGeo 节点,以便在其他软件(如 Maya)中轻松读取。

为此,我想将 Alembic Scenegraph 中的几何名称命名为 ReadGeo,但我不知道如何使用 [=26= 找到 Geo 名称].我从这段代码开始:

def AlembicRename():
    for s in nuke.allNodes("ReadGeo2"):
        GeoName = # don't know how to find this
        s['name'].setValue(GeoName)

AlembicRename()

知道如何找到 Geometry 名称吗?

谢谢。

要在 NUKE 中访问 ABC 的场景图形层次结构,您应该尝试此代码:

import nuke

# 'ReadGeo2' – node's class 
nuke.createNode('ReadGeo2', 'file { /Users/swift/Desktop/scene.abc }') 

def alembicRename():
    # 'ReadGeo18' – node's name in graph 
    for s in nuke.allNodes('ReadGeo18'):
        sceneView = s['scene_view']
        hierarchy = sceneView.getAllItems()
        print hierarchy

alembicRename()

# Result: ['/root/polySphere/polySphereShape']

要了解如何使用 Python 从字符串中提取子字符串,请阅读 This Post。在提取过程之后,您可以将(例如,polySphere)名称分配给您的 ReadGeo 节点。并且不要忘记:有一个 Python 的列表只包含零索引。

s['name'].setValue(hierarchy[0])

已解决

myReadGeoNode['scene_view'].getSelectedItems()