Unity AR-VR虚拟现实开发基础(第2版)课件 第6章 Unity3D中的Mecanim动画系统_第1页
Unity AR-VR虚拟现实开发基础(第2版)课件 第6章 Unity3D中的Mecanim动画系统_第2页
Unity AR-VR虚拟现实开发基础(第2版)课件 第6章 Unity3D中的Mecanim动画系统_第3页
Unity AR-VR虚拟现实开发基础(第2版)课件 第6章 Unity3D中的Mecanim动画系统_第4页
Unity AR-VR虚拟现实开发基础(第2版)课件 第6章 Unity3D中的Mecanim动画系统_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Mecanim动画系统中的核心概念目录Unity动画系统简介动画片段(AnimationClips)动画控制器(AnimatorControllers)和状态机(StateMachine)混合树(BlendTrees)Unity动画系统简介动画系统简介在游戏的世界中,我们希望看到其中的人物和环境都可以如同真实世界中的一样活灵活现。而为了让游戏角色能够活起来,我们就需要用到动画系统。Unity动画系统分为以下两种:1、LegacyAnimationSystem2、Mecanim动画系统LegacyAnimationSystemLegacy动画系统的设计初衷在于,开发者可以完全通过代码来控制动画播放,不必依赖于状态机(StateMachine)。Legacy动画系统使用起来比较简单,但它功能也有很大的局限性:当某个对象的动画越来越多,项目越来越大的时候,它存在的问题就愈加明显。在这种情况下,没有状态机的支持反而成了Legacy系统的缺点。Mecanim动画系统Mecanim动画系统主要是通过控制它的AnimationClip(动画片段)来实现效果Mecanim动画系统的核心概念Mecanim动画系统有两大核心概念,它们分别是:(1)AnimationClips(动画片段)(2)AnimatorController(动画控制器)和StateMachine(状态机)动画片段AnimationClipsMecanim动画系统中的一个核心概念是AnimationClips(动画片段),其中包含了许多的动画信息,比如一些特定的对象将如何更改它的位置、旋转以及其他属性等。每一个动画都可以看做是一个简单的线性记录。AnimationClipsUnity3D支持使用第三方软件所创建的动画片段,如3dsMax或Maya,或是使用动作捕捉设备及软件所获取的动画片段。1.使用动作捕捉设备和软件(如MotionBuilder)所捕捉的人形角色动画2.由美术设计人员使用第三方3D软件从零开始创建的动画,如3dsmax或Maya。3.通过第三方资源库(如UnityAssetStore)所获取的动画资源4.从导入的单个timeline(时间线)中切割出的多段动画片段。与此同时,Unity3D也允许开发者使用内置的Animation编辑器来从零创建和编辑所需的动画片段。AnimationClips与此同时,Unity3D也允许开发者使用内置的Animation编辑器来从零创建和编辑所需的动画片段。具体来说,内置的Animation窗口可以用来设置游戏对象的位置、旋转和缩放。此外,还可以动态调整材质的色彩、灯光的强度和音量的大小等。不止于此,开发者还可以在脚本中动态调整各种属性,包括调用函数的时间等。具体来说,我们可以使用Unity内置的Animation窗口来创建和编辑以下类似的动画片段:(1)场景中物体的位移、旋转和缩放(2)更改场景中物体的组件属性,比如材质颜色、灯光强度和声音强度等(3)使用自定义的代码来更改其它属性(4)使用自定义的代码来更改函数调用的计时动画控制器和状态机AnimatorControllerUnity中的AnimatorControlller允许开发者设置角色和动画对象的动画。

AnimatorController通过一种名为StateMachine(状态机)的方式来管理某个游戏对象的动画片段。与AnimationClips不同,AnimationController必须在Unity内部创建。

StateMachineBlendTreesBlendTrees在某些情况下,为了让角色的动作更为自然,需要将角色的不同动画混合在一起。举例而言,我们可以根据角色的速度将行走和奔跑动画混合在一起。在实际使用的时候,需要将Transitions和BlendTrees区分开来。简单来说,Transitions是状态机的一部分,它用于在指定的时间范围内从某个动画状态切换到另外一个动画状态。而BlendTrees则用于将多种不同的动画混合在一起,从而形成一种更为自然的效果。每种动画都会对最终的效果产生影响,并通过某种数值化的动画参数与AnimatorController关联在一起。BlendTrees在场景中添加角色动画王寒目录案例描述案例实施案例描述案例描述通过让场景中的角色动起来,可以让AR/VR项目具有更强的沉浸感。在这个实战项目中,我们将在场景中添加一个虚拟的数字角色,并通过本章所学习的内容设置其动画。最后,我们将通过键盘来控制角色在场景中自由移动,并产生对应的动画。案例描述案例实施开始前的准备1. 创建新项目打开Unity3D编辑器,创建一个全新的项目,并将其命名为AnimationTest。2. 导入场景资源在AssetStore中搜索FantasyForestEnvironment,下载并导入到项目中。3.打开主场景在Project视图中找到Assets-FantasyForestEnvironmentFreeSample-Scenes,双击打开demoScene_free,将其作为示例项目的主场景开始前的准备4.导入角色的模型和动画资源从菜单中进入-Window-AssetStore,搜索Unity-Chan将角色添加到场景中在Project视图中找到Assets-unity-chan!-Unity-chan!Model-Prefabs,找到unitychan_dynamic,将其拖动到场景的合适位置对角色进行基础设置在Hierarchy视图中选中角色,然后在Inspector视图中对相关属性进行设置。将Animator组件中的Controller设置为None,因为我们将创建一个全新的动画控制器。删除IdleChange和FaceUpdate两个组件创建角色的动画控制器在Project视图中右键单击,选择Create-AnimatorController,从而创建一个新的动画控制器,将其更名为GirlAnimationController创建和设置BlendTree在动画控制器视图的空白处右键单击,选择CreateState-FromNewBlendTree,从而创建一个动画blendtree。双击进入BlendTree创建和设置BlendTree点击左侧Parameters下面的加号,添加两个参数,分别命名为xaxis和yaxis,并将类型设置为float类型,也就是浮点数创建和设置BlendTree使用鼠标单击选中BlendTree,在Inspector视图中进行如下设置:(1) 将BlendType从默认的1D更改为2DSimpleDirectional(2)将Parameters参数部分的下拉选项设置为xaxis和yaxis(3) 在Parameters参数部分的Motion下面点击加号,选择AddMotionField,添加五个动作状态。(4) 点击Motion下面的小圆圈,将五个动作状态分别设置为WAIT00,WALK00_F,WALK00_B,WALK00_L,WALK00_R。这五种状态分别代表静止等待,向前行走,向后行走,向左行走,向右行走。(5) 更改PosX和PosY创建和设置BlendTree创建和设置BlendTree(5) 为了预览动画效果,可以点击右下角的人形图标,并指定unitychan_dynamic为人物角色编写控制角色动画的脚本在Project视图中右键单击,选择Create-C#Script,从而创建一个新的脚本文件,将其命名为GirlController。双击将其在VisualStudio中打开,更改其中的代码。具体参考GirlController.cs将角色控制脚本添加为角色的组件回到编辑器,选中unitychan_dynamic对象,然后在Inspector视图中通过AddComponent的方法添加GirlController组件。最后还需要将GirlController组件中的GirlAnimator设置为unity

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论