Unity在Mixamo下载的骨骼动画模型报错Error(s) found while importing rig in this animation file.

以上是原报错信息,在Animation一栏也是有报错。

最近在mixamo下了一个骨骼动画,把骨骼设置为Copy From Other avatar后,选择了很久之前在mixamo下载的模型骨骼,直接报错了。

百度好像也找不到比较好的解决办法,于是仔细审查了一下,发现是最新下载的模型,骨骼的名称都已经变了

(图一)

(图二)

图一是最近下的,叫mixamorig:hips;而图二是最近下载的的,骨骼叫hips,晕。就是因为名称不一致导致Unity无法识别然后报错了。

解决方法:

1、重新命名骨骼,两边都改成一样的应该就可以了(我没试过,因为太多了,不推荐)

2、重新下载模型(推荐)

### UnityMixamo 角色骨骼绑定教程 #### 准备工作 为了确保顺利进行,需先确认模型已成功上传至Mixamo平台,并完成自动化的骨骼绑定过程[^1]。 #### 导入模型Unity 当准备就绪后,将处理完毕的FBX文件拖拽进入Unity项目中的Assets目录下。此时,Unity会尝试解析该文件内的骨架结构以及动画数据。 #### 骨骼映射调整 如果遇到`Error(s) found while importing rig in this animation file.`这样的错误提示,则可能是由于不同版本间存在的骨骼命名差异所引起的匹配失败情况[^2]。对于这种情况,建议采取如下措施: - **检查Rig配置** 在Inspector面板里找到刚导入的资产,切换到 Rig标签页,这里可以指定Avatar Type选项为“Humanoid”。这样做有助于让Unity更好地理解人体关节的位置关系。 - **手动修正骨骼关联** 若上述操作仍未能解决问题,那么可能需要更细致的手动干预来建立正确的对应表。通过点击Configure按钮打开Avatar Settings窗口,在此界面内能够逐一对比源目标之间的节点名称并作出相应修改直至完全吻合为止。 ```csharp // 此处提供一段用于辅助验证骨骼映射是否成功的简单脚本示例 using UnityEngine; public class BoneMappingChecker : MonoBehaviour { void Start() { Animator animator = GetComponent<Animator>(); foreach (var bone in HumanBodyBones.GetNames(typeof(HumanBodyBones))) { Transform t = animator.GetBoneTransform((HumanBodyBones)System.Enum.Parse(typeof(HumanBodyBones), bone)); Debug.Log($"{bone}: {(t != null ? "Mapped" : "Not Mapped")}"); } } } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值