blender:如何使用Python导出形状键?

2 投票
1 回答
2974 浏览
提问于 2025-04-17 03:05

我想把某个物体的形状键导出。请问我怎么才能访问到形状键的网格呢?我正在使用Blender 2.59。谢谢!

1 个回答

7

我做到了。这里是脚本。也许对某些人会有帮助:

import bpy
import xml.dom.minidom

path = "/Users/x/Documents/y/game_projects/test.xml"

dom = xml.dom.minidom.getDOMImplementation()
tree = dom.createDocument(None, "document", None)

root = tree.documentElement
root.setAttribute("version", "0.1")

for object in bpy.data.objects:
    if object.type == 'MESH' and object.data.shape_keys:

        objectElement = tree.createElement("object")
        objectElement.setAttribute("name", object.name)
        root.appendChild(objectElement)

        keysElement = tree.createElement("shape_keys")
        objectElement.appendChild(keysElement)

        keyBlocks = object.data.shape_keys.key_blocks
        for block in keyBlocks:
            keyElement = tree.createElement("key")
            keyElement.setAttribute("name", block.name)
            keysElement.appendChild(keyElement)

            for data in block.data:
                vertex = data.co
                element = tree.createElement("vertex")
                element.setAttribute("x", str(vertex.x))
                element.setAttribute("y", str(vertex.y))
                element.setAttribute("z", str(vertex.z))
                keyElement.appendChild(element)


file = open(path, "w", encoding="utf8")
tree.writexml(file, encoding = "UTF-8", indent = "\n", addindent = "\t")
file.close()

撰写回答