1.先选中骨骼
2.再运行代码

代码:

import bpy
import pandas as pd

def print_bone_properties_to_csv(armature_obj):
    """
    打印骨骼的所有属性并将它们输出到一个CSV文件。

    :param armature_obj: Armature对象。
    """
    if armature_obj.type != 'ARMATURE':
        print("请选择一个Armature对象。")
        return

    # 存储骨骼属性的字典列表
    bones_data = []

    # 遍历骨骼对象中的所有骨骼
    for bone in armature_obj.data.bones:
        bone_data = {}
        bone_data['Bone Name'] = bone.name
        # 遍历骨骼的属性并添加到字典中
        for prop_name in dir(bone):
            if not prop_name.startswith('__'):
                prop_value = getattr(bone, prop_name)
                bone_data[prop_name] = prop_value
        bones_data.append(bone_data)

    # 创建DataFrame
    df = pd.DataFrame(bones_data)

    # 弹出保存文件对话框,让用户选择保存路径
    csv_file_path = bpy.path.abspath("//bones_properties.csv")  # 使用双斜杠作为Blender的跨平台路径分隔符
    bpy.ops.wm.save_as_mainfile(filepath=csv_file_path)

    # 导出DataFrame到CSV文件
    df.to_csv(csv_file_path, index=False)
    print(f"骨骼属性已导出到CSV文件: {csv_file_path}")

# 使用示例
# 确保在对象模式下
bpy.ops.object.mode_set(mode='OBJECT')  
armature_obj = bpy.context.view_layer.objects.active  # 假设活动对象是Armature

if armature_obj and armature_obj.type == 'ARMATURE':
    print_bone_properties_to_csv(armature_obj)
else:
    print("请选择一个Armature对象。")

 

posted on 2024-04-18 21:22  大话人生  阅读(90)  评论(0)    收藏  举报