大气家具行业商城类公司网站织梦模板,网络推广培训1对1,网站建设亿金手指花总14,企业网站部署计划每日一句#xff1a;实践出真知#xff0c;试错方确信 目录
最开始我想的原因#xff01;
分析一下动画相关参数
Animator组件参数详解#xff1a;
人物模型的导入设置参数#xff1a;
Skinned Mesh Renderer组件详解:
Skinned Mesh Renderer工作原理
设置Skinned … 每日一句实践出真知试错方确信 目录
最开始我想的原因
分析一下动画相关参数
Animator组件参数详解
人物模型的导入设置参数
Skinned Mesh Renderer组件详解:
Skinned Mesh Renderer工作原理
设置Skinned Mesh Renderer
动画重定向Animation Retargeting
原因待续
最终原因 【我想很多初学者都会有这个困惑那么我就把我学解决这个的所感所想记录下来】 这个网盘中的一个unity项目两个小男孩模型【骨骼层级结构不一样】还有一个小女孩的模型含动画以及一个去骨骼的小男孩模型可以帮助更好的学习实践 链接https://pan.baidu.com/s/1_Q095rRhu00HzQgsdR0keA?pwd9a2p 提取码9a2p --来自百度网盘超级会员V4的分享 前两天遇到了一个做人物模型总会出现的问题。今天整理一下这个问题。
当给一个人物模型用别的动画重定向时会遇到人物与动画不匹配问题怎么解决呢
这算是一个典型的动画不匹配问题。直接说一下我的解决方案
最开始我想的原因 我看它其他一切都正常排查感觉应该是Mesh的问题可能是Mesh的顶点权重分配不正确动画播放时出现变形或不正常的行为。这个需要在模型软件中检查在模型软件中我们也不会看它到底正不正确因此我们的解决方案让模型的同学到3dmaxs把人物骨骼去掉重新到mixamo里面生成完全匹配,之后在unity中使用.就是完全正确的啦~ 我们用这个办法解决对比解决前解决后的用控制变量法 感觉mesh不一样但是也不确定是不是这个原因还有就是老师unity文件中的模型是没有根节点的但是通过网站导出来的根节点是存在的也可能是根节点的原因Root Motion与模型的根节点设置不一致导致出现偏移或跳动 ———————————————————————————————————————————
这是上述的解决方案完全可以解决的但是原因也不是很确定因此在这里
分析一下动画相关参数
Animator组件参数详解 Avatar 功能Avatar是一个定义了骨骼和蒙皮网格Skinned Mesh的配置文件。它用于确保动画能够正确映射到模型的骨骼结构。 Apply Root Motion 功能此选项决定是否使用动画中的位移数据Root Motion来驱动角色的移动。设置勾选或取消勾选“Apply Root Motion”选项。勾选时动画中的位移和旋转会应用到角色的Transform。 Update Mode 功能设置Animator的更新模式。选项 Normal在Update周期中更新Animator。Animate Physics在FixedUpdate周期中更新Animator适用于物理驱动的动画。Unscaled Time使用不受时间缩放影响的时间来更新Animator。 Culling Mode 功能控制Animator何时更新和渲染。选项 Always AnimateAnimator总是更新和渲染。Cull Update Transforms当角色不可见时Animator停止更新但会更新Transform。Cull Completely当角色不可见时Animator停止更新和渲染。 人物模型的导入设置参数 1. Model 参数 Model 参数用于配置模型的基本设置包括网格Mesh、几何体、规范化等。 Scale Factor模型的缩放比例。通常默认值为1可以根据需要进行调整。Use File Scale是否使用文件自带的缩放比例。Mesh Compression设置网格压缩等级以减少文件大小但可能会影响精度。Read/Write Enabled是否允许读取和写入模型数据。Optimize Mesh优化网格数据以提高渲染性能。Generate Colliders是否为模型生成碰撞体。Keep Quads保持四边形面片而不转化为三角形。Weld Vertices焊接顶点以减少顶点数量。Import BlendShapes是否导入BlendShapes用于面部动画等。Normals设置法线导入方式如Import、Calculate、None。Tangents设置切线导入方式如Import、Calculate Mikk、Calculate Legacy、None。Material Naming设置材质命名规则。Material Search设置材质搜索路径。 2. Rig 参数 Rig 参数用于配置模型的骨骼设置包括骨骼类型和Avatar定义。 Animation Type动画类型包括以下选项 None无动画。Legacy使用传统动画系统。Generic通用动画类型适用于非人形角色。Humanoid人形动画类型适用于具有标准人形骨骼结构的角色。Avatar DefinitionAvatar定义方式 Create From This Model从当前模型创建Avatar。Copy From Other Avatar从其他模型复制Avatar。Root Node设置骨骼层次结构的根节点。Optimize Game Objects优化游戏对象以提高性能。 3. Animation 参数 Animation 参数用于配置动画剪辑和动画设置包括动画片段的分割和属性。 Animation Clips显示和管理导入的动画片段可以添加、删除和编辑动画片段。Import Animation是否导入动画数据。Anim. Compression设置动画压缩等级如Off、Keyframe Reduction、Optimal。Resample Curves重新采样曲线以提高兼容性。Root Motion Node设置根运动节点。Root Transform Position (Y)配置根运动的Y轴位置设置。Root Transform Position (XZ)配置根运动的XZ平面位置设置。Root Transform Rotation配置根运动的旋转设置。Animation Import Settings Loop Time是否循环动画。Loop Pose是否平滑循环动画姿势。Cycle Offset设置动画循环的偏移量。Mirror是否镜像动画。 4. Materials 参数 Materials 参数用于配置模型的材质和纹理设置。 Import Materials是否导入材质。Material Naming设置材质命名规则如By Base Texture Name、From Model’s Material。Material Search设置材质搜索路径如Local Materials Folder、Recursive-Up、Project-Wide。Remap Materials手动重新映射材质到模型。 Skinned Mesh Renderer组件详解: Mesh 功能指定要渲染的网格Mesh。设置选择一个网格资源通常是一个已经绑定骨骼的网格。 Materials 功能指定用于渲染网格的材质。设置添加一个或多个材质资源。每个子网格可以指定一个不同的材质。 Root Bone 功能指定骨骼层次结构的根骨骼。设置选择一个Transform对象作为根骨骼通常是角色的骨盆或根节点。 Bones 功能包含所有影响网格的骨骼Transform。设置列表中的每个Transform对象对应一个骨骼用于控制网格的变形。 Bounds 功能定义网格的包围盒用于确定网格在场景中的位置和大小。设置自动计算或手动调整包围盒。 Quality 功能设置蒙皮质量。选项 Auto根据硬件性能自动选择质量。1 Bone每个顶点受一个骨骼影响。2 Bones每个顶点受两个骨骼影响。4 Bones每个顶点受四个骨骼影响。 Update When Offscreen 功能指定模型在屏幕外时是否继续更新动画。设置勾选此选项可以确保动画在角色不可见时也继续更新但会增加性能开销。 Skinned Motion Vectors 功能启用蒙皮网格的运动矢量用于运动模糊效果。设置勾选此选项以启用运动矢量。 Dynamic Occlusion 功能设置是否启用动态遮挡剔除。设置勾选此选项可以提高性能通过剔除被遮挡的部分网格。 Root Bone Transform 功能设置根骨骼的Transform用于定位和旋转整个网格。设置选择一个Transform对象作为根骨骼的Transform。 Skinned Mesh Renderer工作原理 Skinned Mesh Renderer组件通过骨骼Transform控制网格的顶点变形从而实现复杂的角色动画。每个顶点的变形由一个或多个骨骼的变换位置、旋转和缩放决定顶点的位置根据骨骼的变换进行插值。 设置Skinned Mesh Renderer 假设你有一个角色模型导入Unity并配置Skinned Mesh Renderer 选择模型并检查Skinned Mesh Renderer 在Hierarchy窗口中选择角色模型。在Inspector窗口中找到Skinned Mesh Renderer组件。 配置网格和材质 在“Mesh”字段中选择角色的网格资源。在“Materials”字段中添加或选择适当的材质资源。 设置骨骼 在“Root Bone”字段中选择角色的根骨骼例如骨盆。在“Bones”列表中确保所有影响网格的骨骼Transform都已正确设置。 调整其他参数 根据需要调整“Bounds”、“Quality”、“Update When Offscreen”等参数以优化性能和动画效果。 动画重定向Animation Retargeting 动画重定向Animation Retargeting是指将一个角色的动画应用到另一个角色上。这个过程通常用于不同的角色共享相同的动画避免重复制作动画。 1. 骨架一致性
首先确保两个角色使用相同或类似的骨骼结构。这是重定向动画的基础。如果骨骼结构不一致重定向的效果可能会不理想。
2. Avatar设置
Unity使用Avatar来定义角色的骨骼结构。确保两个角色都配置了Avatar并且骨骼映射正确。
配置Avatar 为模型创建Avatar 选择模型文件在Inspector面板中找到Rig选项卡。设置Animation Type为Humanoid。点击Configure按钮进入Avatar配置界面确保骨骼映射正确。 应用相同的Avatar 在动画文件的Rig选项卡中设置Avatar Definition为Copy From Other Avatar。选择已经配置好的角色的Avatar。 3. 动画控制器Animator Controller
把两个模型的 Animator 都设置为 同一个 动画控制器
Avatar Definition选项解释 Create From This Model Unity会根据当前导入的模型自动生成一个Avatar。Unity将会尝试根据模型中的骨骼层次结构和骨骼命名来创建一个Avatar定义。这个选项适合于从头开始创建一个角色模型或者对已有的角色模型进行重新导入和处理。 Copy From Other Avatar Unity会复制另一个已存在的Avatar的定义。这个选项适合于确保多个角色模型共享相同的骨骼结构和动画数据以便于动画重定向和共享动画资源。 使用Copy From Other Avatar来进行动画重定向的前提条件具备相同的骨骼层级结构 原因待续 经过上述参数的详解我找到了原因以及最重要的动画重定向怎么使用 原因是小男孩小女孩不具备相同的骨骼层级结构无法进行动画重定向 解决 方法一让模型的同学到3dmaxs把人物骨骼去掉重新到mixamo里面重新生成骨骼 方法二在3D建模软件中重新生成或调整模型的骨骼层级结构使其与小女孩骨骼结构尽可能相似或一致。 得到两个完全匹配的骨骼让小女孩的模型用小男孩的骨骼两个角色共用一个骨骼Avatar),骨骼匹配成功后小男孩的模型便可用小女孩的动画也就是所说的动画重定向 分析 这里的动画重定向Animation Retargeting是指将小女孩的动画数据应用到小男孩的角色身上。 注意unity中的动画重定向的实现不是一个直观的方法而是封装到Humanoid类型的动画系统里面unity在自己的内部定义了一套骨架模板所有的Avatar骨骼都必须映射到这套模板上才可以由同一个Animator来驱动产生Retargeting之后的动画效果 上述的【原因待续】的解决方案一定是对的但是具体的解决思想我并不确定我又没有一阵见血的切中要害可能有点繁琐了
最终原因 我知道了答案就是两个角色的骨骼层级结构不一样导致的动画重定向失败 我想了好多种可能的原因一个个都试了一下又都给排除了发现原因无他就是骨骼层级不一致我也试了一下能能在untiy内部解决发现也不太能实现导入模型软件中调整又太麻烦了程序同学也可能不会最好的办法就是有时可能需要去骨骼导入到mixamo重新生成两个层级结构一样的骨骼便可以调用一样的动画便可实现动画重定向 我之前不太确定有点模糊这两天研究了一下。确定了他的原因和解决方案对动画重定向的细节掌握又有了新的理解