Maya中导入读取JSON并提取BlendShape顶点XYZ位移数据的方法
解析Maya BlendShape JSON并拆分轴向位移
核心逻辑
你提供的JSON数据层级如下,提取时按层级访问即可:
- 根节点键为BlendShape节点索引
- 每个节点下
name字段对应Maya中的变形节点名 data字段下的键为变形目标索引- 变形目标下的键为顶点编号,对应值为
[X位移, Y位移, Z位移]三元组
实现代码(Python)
import json # 读取JSON文件 with open("cube.json", "r", encoding="utf-8") as f: bs_data = json.load(f) x_list = [] y_list = [] z_list = [] # 遍历提取各轴向数据 for bs_item in bs_data.values(): print(f"处理变形节点:{bs_item['name']}") for target in bs_item["data"].values(): # 按顶点编号从小到大排序后提取 for vid in sorted(target.keys(), key=lambda k: int(k)): x, y, z = target[vid] x_list.append(x) y_list.append(y) z_list.append(z) # 打印结果验证 print("X轴各顶点位移:", x_list) print("Y轴各顶点位移:", y_list) print("Z轴各顶点位移:", z_list)
该脚本可直接在Maya内置Python环境中运行,无需额外安装依赖。
结果说明
- 三个输出列表的索引与顶点编号一一对应,比如
x_list[2]即为2号顶点的X轴向位移量 - 若你的JSON文件中包含多个BlendShape节点或多个变形目标,可自行添加字典层级存储不同节点/目标的轴向数据
内容的提问来源于stack exchange,提问作者teddude75
相关产品推荐
相关产品推荐

