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

版权声明:本文为博主原创文章,欢迎转载。请保留博主链接: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客学院的二维码哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值