Python 通过Alembic SceneGraph重命名ReadGeo节点

Python 通过Alembic SceneGraph重命名ReadGeo节点,python,python-2.7,nuke,alembic-format,Python,Python 2.7,Nuke,Alembic Format,我有7个镜头,每个镜头有2或3个Alembic文件,每个Alembic大约有20个几何体 由于需要在新的Alembic中导出完整的3D场景,因此需要重命名所有ReadGeo节点,以便在其他软件(如Maya)中轻松读取 为此,我想将几何体名称从AlembicScenegraph指定给ReadGeo,但我不知道如何使用Python找到Geo名称。我从以下代码开始: def AlembicRename(): for s in nuke.allNodes("ReadGeo2"):

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

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

为此,我想将几何体名称从Alembic
Scenegraph
指定给
ReadGeo
,但我不知道如何使用Python找到
Geo
名称。我从以下代码开始:

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

AlembicRename()
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']
知道我如何找到
几何体
名称吗


谢谢。

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

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

AlembicRename()
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 read从字符串内部提取子字符串。提取过程后,您可以将(
polySphere
)名称指定给
ReadGeo
节点。不要忘记:有一个Python列表只包含零索引

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

myReadGeoNode['scene_view'].getSelectedItems()

谢谢,我已经建立了相同的原则,但是使用myReadGeoNode['scene_view'].getSelectedItems(),然后我可以隔离想要的geometryhi,是的,因为它不是正确的名称,我只需要选择geo名称,所以我要找的命令是getSelectedItems()然后在最后一个条目中分离每个/以获得真实的地理名称如果在复合多层层次结构中有多组几何体,
。getAllItems()
nuke method+
子字符串提取
操作比仅
。getSelectedItems()
method.hi更健壮、更可靠,你能解释一下为什么吗?嗨)你可能有一个复合几何体,而不是单一几何体。因此,DAG层次结构中的确定层具有对象的所有部分,但
。getSelectedItems()
可能无法选择几何体的所有所需部分。在简单的情况下,
.getSelectedItems()
方法非常有用。