请求协助:Cesium模型骨骼节点修改与行走人物姿态定制
Cesium人物模型骨骼动画实现方案
骨骼节点名称匹配问题
Cesium官方未提供通用的模型部件-骨骼名称对应文档,Skeleton_arm_joint_L__3_这类命名是模型导出时由建模工具自动生成的,不同模型的命名规则可能存在差异。要精准对应骨骼,需用Blender、3ds Max等建模软件打开目标GLTF模型,查看骨骼层级结构,找到左右臂对应的骨骼节点名称,替换到CZML代码中。
两种行走人物动画的CZML实现
1. 双臂抬起(无旋转)
[ { "id": "document", "name": "人物行走-双臂抬起", "version": "1.0" }, { "id": "walking-man", "name": "行走人物模型", "position": { "cartographicDegrees": [116.397, 39.907, 0] }, "model": { "gltf": "./your-model.gltf", "scale": 1.0, "nodeTransformations": { // 替换为模型实际的左臂骨骼节点名称 "Skeleton_arm_joint_L__3_": { "translation": { "cartesian": [0, 0.5, 0] // 沿Y轴向上平移,数值根据模型比例调整 } }, // 替换为模型实际的右臂骨骼节点名称 "Skeleton_arm_joint_R__2_": { "translation": { "cartesian": [0, 0.5, 0] // 沿Y轴向上平移,数值根据模型比例调整 } } } }, "availability": "2020-07-30T00:00:00Z/2020-07-30T00:01:00Z" } ]
2. 双臂下垂
若模型默认姿态非双臂下垂,可通过重置骨骼变换实现:
[ { "id": "document", "name": "人物行走-双臂下垂", "version": "1.0" }, { "id": "walking-man", "name": "行走人物模型", "position": { "cartographicDegrees": [116.397, 39.907, 0] }, "model": { "gltf": "./your-model.gltf", "scale": 1.0, "nodeTransformations": { // 重置左臂骨骼到初始下垂姿态 "Skeleton_arm_joint_L__3_": { "translation": { "cartesian": [0, 0, 0] }, "rotation": { "quaternion": [0, 0, 0, 1] // 无旋转,保持初始状态 } }, // 重置右臂骨骼到初始下垂姿态 "Skeleton_arm_joint_R__2_": { "translation": { "cartesian": [0, 0, 0] }, "rotation": { "quaternion": [0, 0, 0, 1] // 无旋转,保持初始状态 } } } }, "availability": "2020-07-30T00:00:00Z/2020-07-30T00:01:00Z" } ]
关键注意事项
- 替换代码中的
./your-model.gltf为你的模型实际路径 - 骨骼节点名称必须与模型导出时的命名完全一致,建议通过建模工具确认
- 平移、旋转数值需根据模型比例和初始姿态调整,若效果不符合预期,可微调轴向数值
内容的提问来源于stack exchange,提问作者Andrea Vannini
相关产品推荐
相关产品推荐

