代码之家  ›  专栏  ›  技术社区  ›  William Eguienta

通过Alembic SceneGraph重命名ReadGeo节点

  •  2
  • William Eguienta  · 技术社区  · 7 年前

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

    因为我需要在一个新的Alembic中导出完整的3D场景,所以我需要重命名 ReadGeo 节点在其他软件(如Maya)中易于读取。

    为此,我想给出Alembic中的几何体名称 Scenegraph 读地理 但我不知道怎么找到 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 回复  |  直到 7 年前
        1
  •  1
  •   Andy Jazz    7 年前

    若要在NUKE中访问ABC的Scenegraph层次结构,应尝试以下代码:

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

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

    enter image description here

        2
  •  0
  •   William Eguienta    7 年前

    解决方法

    myReadGeoNode['scene_view'].getSelectedItems()