Python 通过Alembic SceneGraph重命名ReadGeo节点
我有7个镜头,每个镜头有2或3个Alembic文件,每个Alembic大约有20个几何体 由于需要在新的Alembic中导出完整的3D场景,因此需要重命名所有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"):
ReadGeo
节点,以便在其他软件(如Maya)中轻松读取
为此,我想将几何体名称从AlembicScenegraph
指定给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()
方法非常有用。