版权声明:本文为博主原创文章,欢迎转载。请保留博主链接:http://blog.csdn.net/andrewfan


偶然从csdn上看见各位大佬为Unity事业做出这么大的贡献,故献出自己的一份力,今天找来andrewfan翻译的动画系统的文档,供大家参考学习。上一篇文章大家可以详细通读一下,然后接着看这篇文章,进一步对动画系统进行系统的学习。
Animation
● Animation System Overview
● Animation Clips
○ Animation from external source
■ Working with humanoid animations
● Creating the Avatar
● Configuring the Avatar
● Muscle setup
■ Asset preparation and import
● Using humanoid Characters
● Preparing your own character
■ Non-humanoid Animations 【目前翻译到这里-_#!】
■ Splitting Animations
■ Looping animation clips
■ Masking Imported Clips
■ Animation Curves on Imported Clips
■ Animation events on imported clips
■ Selecting a Root Motion Node
■ Euler Curve Import
○ Animation Window Guide
■ Using the Animation view
■ Creating a New Animation Clip
■ Animating a GameObject
■ Using Animation Curves
■ Editing Curves
■ Key manipulation in Dopesheet mode
■ Key manipulation in Curves mode
■ Objects with Multiple Moving Parts
■ Using Animation Events
● Animator Controllers
○ The Animator Controller Asset
○ The Animator Window
○ Animation State Machines
■ State Machine Basics
■ Animation Parameters
■ State Machine Transitions
■ State Machine Behaviours
■ Sub-State Machines
■ Animation Layers
■ Solo and Mute functionality
■ Target Matching
■ Inverse Kinematics
■ Root Motion - how it works
● Tutorial: Scripting Root Motion for “in-place” humanoid animations
○ Blend Trees
■ 1D Blending
■ 2D Blending
■ Direct Blending
■ Additional Blend Tree Options
○ Animation Blend Shapes
○ Animator Override Controllers
● Retargeting of Humanoid animations
● Performance and Optimization
● Animation Reference
○ Animation Clip
○ Animator Component
○ Animator Controller
■ Creating an AnimatorController
■ Animation States
■ Animation transitions
○ Avatar Mask
○ Human Template files
○ Importing models
■ Models
■ FBX Importer, Rig options
■ FBX Importer - Animations Tab
■ 3D formats
● Animation HOWTOs
○ Animation FAQ
○ Using Blender and Rigify
● Playables API
○ The PlayableGraph
○ ScriptPlayable and PlayableBehaviour
○ Playables Examples

● A Glossary of animation terms

动画片段>使用外部导入的动画>使用人形动画>肌肉绑定

Mecanim允许您使用肌肉控制不同骨骼的运动范围。
如果Avatar 被正确配置,Mecanim将“理解”骨骼结构,并激活Avatar检视面板(选中FBX文件中的Avatar组件并单击常规检视面板中的”Configure Avatar”可以进入Avatar检视面板)中的Muscles & Settings(“肌肉&设置”)选项卡。 在这里,可以方便地调整角色的运动范围,角色的肢体将在人类关节变化所能到达的范围内的发生变形,不会发生变形错误或自我重叠。

你可以调整身体中的单个骨骼(上图中的下半部分),也可以使用预定义的几种操作方式来操纵角色的变形,这些预定义的操作可以一次性操纵几个骨骼(图中的上部)。
Additional Setting(附加设置)部分底部显示的“Translate DoF”选项允许你启用对人形骨骼的移动动画(例如:手臂可以伸长)。 禁用此选项后,骨骼仅能发生旋转。 只有在你的动画中包含针对某些骨骼的运动,你才需要启用此选项。 启用“Translate DoF”选项具有一些性能成本,因为动画系统需要做一个额外的步骤来重新定位人形动画。 “Translate DoF”可用于Chest(胸部),UpperChest(胸部上部)、Neck(颈部)、LeftUpperLeg(左腿上部)、RightUpperLeg(右腿上部)、LeftShoulder(左肩)和RightShoulder(右肩)部分的肌肉。
动画片段>使用外部导入的动画>准备和导入资源>使用人形动画
为了充分利用Mecanim的人形动画系统和重定位功能,你需要有一个可操纵的、已经蒙皮的人形网格。
1. 角色模型通常由存储于一个3D数据包裹中的多边形组成的,也可能它是源于很复杂的一个网格模型,后来被导出为多边形或三角形网格使用。
2. 我们需要创建一个关节层次结构,也被称为“骨架”,它定义了网格内的骨骼以及骨骼之间的相对运动关系(层次结构中的每个节点在Unity内部都是一个GameObject),我们通过骨架来控制角色的运动。创建这个骨架的过程被称为“骨骼绑定”。
3. 然后,网格或皮肤将被关联到这个骨架,以便定义出,在给定的关节发生运动时,网格哪些相应部分的将发生移动。将骨架关联到网格的过程称为“蒙皮”。

怎样获得人形动画模型
Mecanim动画系统主要有三种方法获取人形动画模型:
1. 使用程序化角色系统或角色生成器,如Poser,Makehuman或Mixamo。 这些系统中有的将对你的网格进行绑定和蒙皮(例如,Mixamo),有些则不会。 此外,这些过程中有的可能会要求你减少原始网格中的多边形数量,以使其适用于Unity。
2. 从Unity Asset Store购买角色模型。
3. 你当然可以从零开始制作自己的角色模型。
导出和验证
Unity可以导入许多不同的3D文件格式,有通用的,也有原生的格式。 我们建议你使用FBX 2012格式来导出和验证你的模型,因为它将允许你:
● 在导出网格时,可以包含骨架层次、法线,贴图和动画
● 它允许你重新导入3D包裹(FBX文件),来验证你的动画模型是否按照你预期的方式导出
● 它允许你仅仅导出动画,不包含网格
动画片段>使用外部导入的动画>准备和导入资源>制作你自己的角色
从零开始创建你自己的人形动画角色的话,需要三个步骤:建模、骨骼绑定、蒙皮
建模
这个阶段,你将在一些3D模型软件( 3DSMax, Maya, Blender等等)中创建你自己的人形角色的模型网格。尽管这是另外一个非常庞大的主题,但是这里仍然需要你遵循一些准则,来确保模型在Unity项目中与动画可以正常协调工作。
● 遵守合理的拓扑结构。模型的网格结构是相当敏感的,一般来说,您需要清楚的是,模型的顶点和三角形将如何跟随动画而变形。拓扑结构不合理的话,甚至将导致模型无法移动,以避免对网格造成不好的变形。你可以通过研究别人制作的3D人物网格,可以了解到如何布置拓扑结构以及为什么。
● 注意模型网格的尺寸。你可以进行一次导入测试,即将导入的模型的大小与“1米标准立方体”(Unity的标准立方体原型边长为一个单位(1米),因此可以用作很多测量的用途)进行比较。检查你的模型使用的单位,并调整导出设置,使导出的模型的尺寸比例正确。除非你很小心,否则很容易创建没有任何尺度概念的模型,这样最终会导致你导入模型到Unity时大小不一致。
● 调整你的网格,使得人物的脚站立在模型的本地原点或“锚点”上。由于角色通常都是在地板上直立行走,所以如果锚点(即其变换位置Transform)直接位于地面位置的话,那么它更容易处理。
● 如果允许的话,最好使用T型的模型。这将在一些需要的地方留有空间,有助于处理多边形细节(例如腋下)。这也将使您的网格更容易与骨骼进行绑定。
● 把你的模型清理干净。在可能的情况下,执行封孔、焊缝和去除隐藏的面等清理操作,这将有助于蒙皮操作,特别是自动蒙皮过程。

Skin Mesh, textured and triangulated
骨骼绑定
这是创建关节骨架以控制模型运动的过程。
很多3D软件提供了许多方法来为人形骨架创建关节。 这些提供的方法可以让你:从现成的两足动物骨架,缩放以适应您的网格;也可以使用独立的骨骼创建工具,以创建您自己的骨骼结构。 要与Mecanim协调工作,臀部应该是骨骼层级的根元素,另外,整个骨架中至少需要15个骨骼。
关节/骨骼层次应该遵循您所创建的角色的自然结构。 鉴于手臂和双腿成对,您应该使用一致的约定来命名它们(例如,左臂的“arm_L”,右臂的“arm_R”等)。 层次结构的可能结构可能是:
● HIPS - spine - chest - shoulders - arm - forearm - hand
● HIPS - spine - chest - neck - head
● HIPS - UpLeg - Leg - foot - toe - toe_end

Biped Skeleton, positioned in T-pose
蒙皮
这是将模型网格连接到骨架的过程。
蒙皮是为了将网格中的顶点绑定到骨骼,这个过程可以采用直接绑定(硬绑定),或者采用影响到多个骨骼的混合绑定(软绑定)。不同的软件会使用不同的方法。例如,在计算每个骨骼对的网格顶点的影响权重的过程的时候,此数据计算的初始化过程是自动的,不过有软件的会通过查找临近区域来计算影响权重,有的则会使用”热度图”(heatmaps)的方法来产生。蒙皮过程通常需要在动画测试上做大量的工作,以获得满意的皮肤变形结果。在这个过程中,存在一些一般准则:
● 首先使用自动化过程设置一些皮肤(请参阅3DMax,Maya等相关教程)。
● 为您的骨架创建一个简单的动画或导入一些动画用作蒙皮的测试。这样你可以快速查看皮肤在运动过程中是否是否完好。
● 逐步编辑来改善你的蒙皮方案。
● 使用软绑定时,每个顶点最多可能会受到四根骨骼的影响,因为这是Unity将处理的最大数量。如果使用超过四个影响值,那么在Unity中播放动画时,有一些信息将会丢失。


交互式皮肤绑定,许多蒙皮方法之一重点内容


谢谢大家!请关注我们V客学院的二维码哦!

VR开发——Unity动画系统2(V客it学院技术分享)相关推荐

  1. VR开发——Unity动画系统(V客it学院技术分享)

    在我们进行VR开发的过程中,免不了需要各种各样的模型动画.那么面对这样的简单动画,我们大可以使用Unity的动画系统来完成整个事情. 前段时间我在博客看见了一篇非常不错的动画系统讲解,今天我就借花献佛 ...

  2. Unity游戏开发之游戏动画(Unity动画系统)

    文章目录 Unity动画系统 动画片段 Animation Clip 在Unity中制作动画 动画复用 替身系统 Avatar Animator 组件 Animator Component 动画状态机 ...

  3. Unity动画系统学习

    Unity动画系统学习 文章目录 Unity动画系统学习 AnimationState 动画状态 Animation Transitions 动画过渡 动画分层和遮罩 动画混合 1D混合 2D混合 动 ...

  4. unity 动画系统

    Unity动画系统 Unity动画系统是Unity中非常重要的一部分,它提供了一个强大的框架来实现动画.Unity动画系统可以处理几乎所有的动画需求,从简单的2D动画到复杂的3D动画. Unity动画 ...

  5. Unity动画系统详解10:子状态机是什么?

    摘要:除了使用Layer还有没有更好的组织状态的方式呢?感觉一个Layer里面状态多的时候,还是很显得很乱. 洪流学堂,让你快人几步.你好,我是跟着大智学Unity的萌新,我叫小新,这是复(yu)习( ...

  6. Unity动画系统详解9:Target Matching是什么?

    摘要:在游戏中,经常有这种情况:角色的手或者脚需要在特定时间放在特定的位置.比如角色需要用手撑着跳过一个石头或一堵墙,或者跳起抓住房梁.Target Match就是让动画的特定片段去匹配特定的位置. ...

  7. Unity动画系统详解5:BlendTree混合树是什么?

    摘要:"Animator中有一个功能,用来解决多个动画之间的混合,经常用于移动动画之间的混合,这个功能叫做BlendTree,混合树." 洪流学堂,让你快人几步.你好,我是跟着大智 ...

  8. Unity动画系统详解4:如何用代码控制动画?

    摘要:通过上一篇咱们知道了播放动画需要使用Animator,那么如何用代码控制动画呢? 洪流学堂,让你快人几步.你好,我是跟着大智学Unity的萌新,我叫小新,这几周一起来复(yu)习(xi)动画系统 ...

  9. Unity动画系统常用知识总结

    Unity动画系统常用知识总结 资源导入需要注意的地方 常用的组件 Animator 组件 Avatar Mask 骨骼遮罩 Animator Controller 动画切换 Any State Ha ...

最新文章

  1. JavaScript定时器的工作原理(翻译)
  2. 平衡树性质与基本算法
  3. python编程题-分享13个python编程笔试题
  4. javascript 运算优先级
  5. 网易云创大会如何论道科技+教育?
  6. 打开高效文本编辑之门_Linux awk之关联数组
  7. 分布式锁是啥?zk还是redis?
  8. pg 日期和时间的运算操作
  9. 安卓渗透测试工具——Drozer(安装和使用)
  10. osql sql2012_您可能不知道SQL Server实用程序-SQLdiag,osql和SqlLocalDB
  11. Codeforces Round #467 (Div. 1): C. Lock Puzzle(构造)
  12. MACOS,应用签名后就崩溃?
  13. 事务(进程 ID )与另一个进程已被死锁在 lock 资源上,且该事务已被选作死锁牺牲品...
  14. SAP 各模块常用T-Code
  15. C语言打印输出图形(初版)
  16. 点击开始十秒倒计时html,十秒倒计时案例.html
  17. 买传奇域名空间要注意什么?
  18. 开源按键组件Multi_Button的使用,含测试工程
  19. 如何系统学游戏建模?游戏建模必备知识有哪些?
  20. 配置Cross-Origin的几种方法

热门文章

  1. java动物类问题_java笔记--动物:具体猫和狗以多态方式写出
  2. CAD入门级:如何绘制矩形
  3. 2019年MathorCup数学建模A题数据驱动的城市轨道交通网络优化策略解题全过程文档及程序
  4. jQuery阻止冒泡和HTML默认操作
  5. ubuntu20.04挂起/休眠后无法唤醒,只能强制重启
  6. 命令行远程登录Mysql
  7. 课件计算机教育软件评审,广东计算机教育软件评审活动.doc
  8. ppt转换成pdf转换器在线
  9. win10 C盘突然爆满 清理方法
  10. map forEach循环遍历数组