《游戏场景设计》课件-模块6 Unity动画系统_第1页
《游戏场景设计》课件-模块6 Unity动画系统_第2页
《游戏场景设计》课件-模块6 Unity动画系统_第3页
《游戏场景设计》课件-模块6 Unity动画系统_第4页
《游戏场景设计》课件-模块6 Unity动画系统_第5页
已阅读5页,还剩115页未读 继续免费阅读

下载本文档

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

文档简介

模块6Unity动画系统START认识Mecanim动画系统1认识时间轴Timeline2认识Cinemachine虚拟相机3目录Contents综合实践-制作CG动画4拓展训练5认识Mecanim动画系统1任务6.1认识Mecanim动画系统6.1.1准备动画模型1.模型导入美术师在建模时通常会制作一个称为“T-Pose”(双臂张开)的模型进行创建,并按照一定的格式(通常为FBX文件)导出,导出文件包含了相关的动画数据。开发者只需要在Unity的Project视图中单击鼠标右键选择“ImportNewAsset...”选项,在弹出的窗口中选择建模软件导出的FBX文件即可,也可以把FBX文件直接拖动到Project视图中。6.1认识Mecanim动画系统6.1.1准备动画模型2.模型配置在Project视图中选择导入的FBX模型文件,选择FBX模型后,在Inspector视图中就会看到该模型的配置信息。选择“Rig”骨骼类型标签,如下图所示。6.1认识Mecanim动画系统6.1.1准备动画模型在“Rig”标签下方,单击“AnimationType”下拉列表,选择骨骼类型。Unity的骨骼类型包含“None”“Legacy”“Generic”和“Humanoid”四种,如下图所示。“None”:

表示没有骨骼。“Legacy”:

表示为老版本动画系统的骨骼。“Generic”:

表示为通用的骨骼。“Humanoid”:表示为人形骨骼6.1认识Mecanim动画系统6.1.2设置动画1.动画分割

当导入的动画是一个多个动画剪辑的组合时,需要手动进行分割得到自己所需要的动画片段。单击“+”(添加)按钮为此文件创建新剪辑,单击“-”(删除)按钮删除所选的剪辑定义,如下图所示。6.1认识Mecanim动画系统6.1.2设置动画2.动画状态

在Project视图中单击鼠标右键创建一个新的“AnimatorController”或者选择项目中任意一个已有的“AnimatorController”选项,如下图所示。6.1认识Mecanim动画系统6.1.2设置动画2.动画状态

动画状态机创建完成后,双击打开Animator窗口,可以看到Animator窗口左面为“Layers”和“Parameters”按钮,右方是一个标准的动画状态机配置面板,其中的3个状态Entry”“AnyState”和“Exit”是由系统生成的,如下图所示。6.1认识Mecanim动画系统6.1.2设置动画3.状态面板

单击任意一个动画状态,在Inspector视图中可以看到该动画状态的详细信息,如下图所示。6.1认识Mecanim动画系统6.1.3Animator组件1.Animator组件

Animator组件用来控制人物动画的播放,其中需要的两个最核心的内容就是控制动画播放逻辑的AnimatorController以及动画骨骼“Avatar”对象。需要播放动画的角色都需要添加Animator组件,如下图所示。6.1认识Mecanim动画系统6.1.3Animator组件2.创建AnimatorController

在Project视图中单击鼠标右键创建AnimatorController,创建完成后双击打开动画控制器窗口,如下图所示。6.1认识Mecanim动画系统6.1.3Animator组件2.创建AnimatorController

在Animator窗口中有3个默认状态,这些状态是Unity自动创建的,无法删除。每个默认状态的含义如下:“Entry”:表示当进入当前状态机时的入口,该状态连接的状态会成为进入状态机后的第一个状态。“AnyState”:表示任意的状态,其作用是其指向的状态是在任意时刻都可以切换过去的状态。“Exit”:表示退出当前的状态机,如果有任意状态指向该出口,表示可以从指定状态退出当前的状态机。6.1认识Mecanim动画系统6.1.3Animator组件3.创建新动画状态

在Animator窗口空白区域,可以通过右击菜单创建新的动画状态,也可以通过把一个已有的AnimationClip从Project视图拖动到状态机窗口中进行创建。如下图所示。创建的第一个状态被设置为默认的第一个状态,这个状态会被标记为黄色6.1认识Mecanim动画系统6.1.3Animator组件4.动画状态切换

在Mecanim动画中,播放动画是通过判断参数的变换来进行状态即动画的切换。打开Parameters面板,这里可以用来设置状态机使用到的各种参数,如下图所示。6.1认识Mecanim动画系统6.1.4反向动力学动画

IK(inversekinematics)即反向动力学,即可以使用场景中的各种物体来控制和影响角色身体部位的运动。要为角色设置IK,通常要在场景周围放置与角色互动的对象,同时必须在需要使用IK动画的“Animator”的“Layers”上开启“IKPass”,单击“BaseLayer”右侧的设置图标,在弹出的菜单项中勾选“IKPass”,只有选择了这个选项,系统才会调用IK相应的方法,如下图所示。6.1认识Mecanim动画系统6.1.5动画层

动画层(AnimatorLayers)可以用来解决什么样的问题呢?试想一下如果你要开发一款第三人称的射击游戏,那么肯定是希望游戏人物身体的动画分为上下两部分,上方根据瞄准的位置和是否射击进行动画播放,下方根据移动播放动画,这样身体上下方的动画需要在不同的层进行控制。6.1认识Mecanim动画系统6.1.5动画层

1.AvatarMask

“AvatarMask”(动画遮罩)用来定义应该对动画的哪些部分进行遮罩,被遮罩的骨骼不再受该层动画的控制。如果动画使用人形Avatar,可以选择是否简化人形身体图的某些部分,从而指示需要遮罩的动画位置,如下图所示。6.1认识Mecanim动画系统6.1.5动画层

1.AvatarMask身体图将身体部位分为以下部分:头(Head)。左臂(LeftArm)。右臂(RightArm)。左手(LeftHand)。右手(RightHand)。左腿(LeftLeg)。右腿(RightLeg)。根(Root,由脚下的“阴影”表示)。6.1认识Mecanim动画系统6.1.6混合树

在AnimatorController中除了可以创建一个“State”外,还可以创建一个“BlendTree”(混合树),新创建的“BlendTree”和“State”有一定的区别,如下图所示。区别就是“Montion”指向的类型变成了“BlendTree”类型,一个“BlendTree”其实也就是一个状态,和状态不同的地方就是一个状态只能设定一个动画,而一个“BlendTree”则可以设定为多个动画的混合。6.1认识Mecanim动画系统6.1.6混合树

1.一维混合树

比如使用一维混合树来实现下面的效果:人物的行走分为3个动画,分别是向前走、向左走和向右走,其中向左走和向右走人物都会有一定的倾斜,这样更加符合现实的情况。由于在状态机中行走只有一个状态,所以行走需要设置为混合树来混合这3个动画。6.1认识Mecanim动画系统6.1.6混合树

1.一维混合树

首先创建一个“AnimatorController”状态机控制器,并对其进行配置,创建混合树“WalkBlendTree”,拖动到“HumanoidIdle”动画状态,创建浮点型动画参数“walkBlend”,如下图所示。6.1认识Mecanim动画系统6.1.6混合树

2.二维混合树

同一维混合树,不过二维混合树已经作为一个平面来处理,同时需要两个参数来进行控制。对于更复杂的动画融合可以使用该模式。还可以将两个一维混合树合并为一个二维混合树来控制6.1认识Mecanim动画系统6.1.7动画重定向

动画重定向:让一个没有动画、没有状态机的模型使用其他已经创建好的模型的动画“AnimationClip”和状态机“AnimatorController”,达到和参考模型相同的动画效果。6.1认识Mecanim动画系统6.1.7动画重定向

1.重定向基本步骤(1)设置相同的动画类型。

动画类型设置为:执行“Rig”→“AnimationType”→“Humanoid”命令。(2)设置骨骼节点。

如果模型之间骨骼节点相同,使用:执行“AvatarDefinition”→“CopyFromOtherAvatar”命令。不同则需重新创建骨骼映射,则单击“CreateFromThisModel”按钮。6.1认识Mecanim动画系统6.1.7动画重定向

1.重定向基本步骤(3)设置骨骼节点和状态机。

重定向模型选择参照模型的骨骼映射“Avatar”(若骨骼相同,则选择该项;不相同,则为自身创建)、“AnimatorController”状态机。认识时间轴Timeline2任务6.2认识时间轴Timeline

Unity3D引擎在2017.1版本中正式发布了Timeline,Timeline是一套基于时间轴的多轨道动画系统,它支持可视化编辑,实时预览。使用Timeline可以通过直观排列链接到场景游戏对象的轨道和剪辑来创建过场动画、影片和游戏序列。6.2认识时间轴Timeline6.2.1了解Timeline的组成部分

每一个通过Timeline创建的游戏过场动画、影片等都会包含Timeline资源和Timeline实例这两个部分。Timeline资源:Unity会将与物体相关的轨道、剪辑和录制动画等保存为Timeline资源,Timeline资源保存于项目中,独立于场景,不存储要动画化的特定游戏对象的链接。Timeline实例:Timeline实例是Timeline资源的实例,它记录了由Timeline资源动画化的特定游戏对象的链接,这些链接通过游戏对象的PlayableDirector组件进行设置,并保存到场景中。6.2认识时间轴Timeline6.2.2创建Timeline资源和Timeline实例

资源的创建方法有两种:

第一种创建方法:首先选中Project视图中的Assets文件夹,单击鼠标右键创建一个新的文件夹,命名为“TimelineAssets”,用于存放所有的Timeline资源。6.2认识时间轴Timeline6.2.2创建Timeline资源和Timeline实例

选中TimelineAssets文件夹,单击鼠标右键选择“Create”→

“Timeline”创建Timeline资源并对其进行命名。6.2认识时间轴Timeline6.2.2创建Timeline资源和Timeline实例

选中创建好的Timeline资源,单击鼠标右键,选择“ShowInExplorer”可以查看创建好的Timeline资源。6.2认识时间轴Timeline6.2.2创建Timeline资源和Timeline实例

创建一名为“Timeline”的空物体,用来负责场景中所有时间轴动画的管理。选中Timeline空物体,单击“AddComponent”按钮,搜索并添加“PlayableDirector”组件,完成组件的添加。6.2认识时间轴Timeline6.2.2创建Timeline资源和Timeline实例

单击“PlayableDirector”组件的“Playable”属性右侧的按钮,选择之前创建好的Timeline资源,完成物体与Timeline资源的关联,也可以直接将创建好的Timeline资源拖拽到“Playable”属性框中,此时Timeline实例创建完成。6.2认识时间轴Timeline6.2.2创建Timeline资源和Timeline实例

第二种创建方法:新建Unity项目,在场景中创建空物体并命名为“Timeline”,单击“Window”→

“Sequencing”→“Timeline”菜单项,弹出“Timeline”面板。6.2认识时间轴Timeline6.2.2创建Timeline资源和Timeline实例

选中场景中需要添加Timeline动画的物体,单击“Timeline”面板中的“create”按钮,并在弹出的窗口中选择需要存放的位置进行保存。6.2认识时间轴Timeline6.2.3创建Timeline轨道Timeline资源和实例创建好后,接下来就需要在Timeline窗口制作动画了。而制作动画,首先需要创建Timeline轨道。Timeline提供了6种基本轨道类型:ActivationTrackAnimationTrackAudioTrackControlTrackSignalTrackPlayableTrack6.2认识时间轴Timeline6.2.3创建Timeline轨道-ActivationTrack

ActivationTrack:激活轨道。当绑定游戏对象后,可在Timeline中进行隐藏和显示操作。例如实现一个物体的闪烁动画,首先创建一个Cube物体,然后选中之前创建好的Timeline空物体,单击“Window”→“Sequencing”→“Timeline”,打开Timeline面板,单击面板左侧的按钮,选择“ActivationTrack”选项,即可创建一个激活轨道。6.2认识时间轴Timeline6.2.3创建Timeline轨道-ActivationTrack单击激活轨道卡槽右侧的设置按钮选中Cube进行绑定,还可以直接将Cube物体拖入激活轨道的卡槽中进行绑定。绑定游戏物体后,选中轨道中自动生成的ActivationClip,将光标移动到其结尾位置,当光标变成可以左右拉动的箭头时,调整其长度。6.2认识时间轴Timeline6.2.3创建Timeline轨道-ActivationTrack

选中激活轨道的空白区域,单击鼠标右键选择AddActivationClip,添加一段新的显示剪辑,调整其长度及位置。6.2认识时间轴Timeline6.2.3创建Timeline轨道-ActivationTrack

重复添加几段ActivationClip,排列完成后单击Play按钮进行播放,此时可以看到场景中的Cube物体生成了一段闪烁的动画。6.2认识时间轴Timeline6.2.3创建Timeline轨道-AnimationTrack

AnimationTrack:动画轨道。在使用时首先需要绑定Animator组件,接着在Timeline中编辑动画信息。例如实现一个物体上下移动动画,首先在场景中创建一Sphere并调整其位置,单击时间轴面板中的

按钮添加一个AnimationTrack,并将Sphere拖动到AnimationTrack的卡槽中。6.2认识时间轴Timeline6.2.3创建Timeline轨道-AnimationTrack在弹出的菜单中单击“CreateAnimatoronSphere”选项,为Sphere物体添加Animator组件。6.2认识时间轴Timeline6.2.3创建Timeline轨道-AnimationTrack单击AnimationTrack中的录制按钮

,并将当前帧滑块拖动到第0帧,选中Sphere,微调其Y轴位置,此时在第0帧增加了一个关键帧。也可以选中场景中的Sphere,在Inspector视图中找到Transform组件中的Y属性,单击鼠标右键,选择AddKey,在第0帧增加关键帧。6.2认识时间轴Timeline6.2.3创建Timeline轨道-AnimationTrack单击时间轴面板右上角的设置按钮,将时间轴单位切换为以秒为单位。6.2认识时间轴Timeline6.2.3创建Timeline轨道-AnimationTrack将当前帧滑块拖动到0.5秒的位置,选中场景中的Sphere,并沿Y轴方向向上移动一段距离,此时在0.5秒的位置也添加了一个关键帧。6.2认识时间轴Timeline6.2.3创建Timeline轨道-AnimationTrack此时若想将0.5秒位置处的关键帧移动到1.0秒的位置,则需要双击轨道,打开Animation面板,选中30帧(即0.5秒处)的关键帧,将其拖动到60帧(即1秒处)的位置即可。6.2认识时间轴Timeline6.2.3创建Timeline轨道-AnimationTrack接下来分别在2秒,3秒和4秒的位置修改Y轴坐标为0,3,0。单击录制按钮停止录制,播放动画,即可看到Sphere实现了上下浮动动画。6.2认识时间轴Timeline6.2.3创建Timeline轨道-AudioTrack

AudioTrack:声音轨道。需要绑定音频文件,在Timeline中可对音频进行简单的裁剪和操作。例如想为之前制作的动画加上音乐效果,首先在Assets文件夹中创建AudioSource文件夹,用于存放所有的音效,并将提前准备好的音乐资源拖入该文件夹中。6.2认识时间轴Timeline6.2.3创建Timeline轨道-AudioTrack

单击时间轴面板左上角的按钮

,添加AudioTrack,然后选中AudioTrack轨道,单击鼠标右键,选择“AddFromAudioClip”,在弹出的对话框中选择需要添加的音乐。6.2认识时间轴Timeline6.2.3创建Timeline轨道-AudioTrack

音乐添加后,即可在AudioTrack轨道上看到资源音轨,选中资源音轨进行拖动,可以调整音乐播放的起始位置,也可以通过调整Inspector视图中“ClipTiming”下面的“Start”属性改变音乐播放的位置,s代表单位是秒,f代表单位是帧。6.2认识时间轴Timeline6.2.3创建Timeline轨道-AudioTrack如果想要删除添加的音乐资源,可直接选中资源音轨按下Delete键进行删除,也可以选中音轨后单击鼠标右键,选择delete进行删除。6.2认识时间轴Timeline6.2.3创建Timeline轨道-AudioTrack将光标移动到资源音轨结尾位置,当光标变成左右箭头时即可调整音乐的播放长度,也可以通过调整Inspector视图中“ClipTiming”下面的“Duration”属性改变音乐播放的长度。6.2认识时间轴Timeline6.2.3创建Timeline轨道-ControlTrackControlTrack:控制轨道。ControlTrack轨道既可以用来控制Prefab、特效等,也可以添加子Timeline进行嵌套。例如实现控制Cylinder预制体,首先在Hierarchy视图中单击鼠标右键,创建一个Cylinder,调整其位置,并在Assets文件夹下创建Prefabs文件夹,将Hierarchy视图中的Cylinder拖拽到Prefabs文件夹中,做成预制体,将Hierarchy视图中的Cylinder删除。6.2认识时间轴Timeline6.2.3创建Timeline轨道-ControlTrack单击时间轴面板左上角的按钮,添加ControlTrack,然后选中Prefabs文件夹中的Cylinder,将其拖拽到ControlTrack的轨道中,调整其播放起始位置及显示时长。单击Play按钮即可发现在播放的起始位置预制体Cylinder被动态实例化,播放完成后被销毁。认识Cinemachine虚拟相机3Part6.3认识Cinemachine虚拟相机

Cinemachine是Unity2017新增加的一个功能,它实际是一个摄像系统,可以为摄影师、设计师、艺术家及其它使用摄像机的人士提供一种无需编写任何代码即可创建复杂行为的方式。

Cinemachine中包含许多模块,可以组合在一起,用于创建从电影到全自动游戏内摄像系统等各种内容。Cinemachine与Timeline组合使用可以制作出精美的CG动画。6.3认识Cinemachine虚拟相机6.3.1安装与删除Cinemachine

Cinemacine可通过PackageManager进行导入,选择“Window”→

“PackageManager”,打开包管理器窗口。将PackageManager窗口上方显示的“Package:InProject”切换成“UnityRegistry”。6.3认识Cinemachine虚拟相机6.3.1安装与删除Cinemachine

在搜索框中输入Cinemachine,即可看到Cinemachine插件,单击其右下角的“Install”按钮即可完成安装。6.3认识Cinemachine虚拟相机6.3.1安装与删除Cinemachine

安装完成后在“GameObject”菜单项中增加了Cinemachine的子菜单,Project视图中的Packages文件夹下也多了一个Cinemachine文件夹,里面是Cinemachine插件用到的相关资源。6.3认识Cinemachine虚拟相机6.3.1安装与删除Cinemachine

再次打开PackageManager,找到Cinemachine插件,单击“Samples”,在展开的面板中会出现“Import”按钮,单击“Import”按钮可导入Cinemachine的官方范例。

单击下方的“Remove”按钮,可将Cinemachine从项目中移除。6.3认识Cinemachine虚拟相机6.3.2创建VirtualCamera虚拟相机

VirtualCamera是Cinemachine中最简单也是最核心的一个组件,通过创建VirtualCamera可以为场景中添加一个虚拟相机,添加的虚拟相机并非真实的Unity相机,而是相当于一个摄像师,这个摄像师可以扛起场景中的主相机去拍摄不同的镜头。

在Hierarchy视图中单击鼠标右键选择“Cinemachine”→“VirtualCamera”或单击“GameObject”菜单项选择“Cinemachine”→“VirtualCamera”创建虚拟相机。6.3认识Cinemachine虚拟相机6.3.2创建VirtualCamera虚拟相机

6.3认识Cinemachine虚拟相机6.3.2创建VirtualCamera虚拟相机

创建虚拟相机后,MainCamera相机的右侧出现一个红色图标,并增加一个名为“CinemachineBrain”的组件。“CinemachineBrain”用于管理所有的虚拟摄像机,其“LiveCamera”属性代表当前正在使用的虚拟摄像机,当场景中有多个虚拟相机时,“LiveCamera”默认选中的是最后创建的虚拟相机。6.3认识Cinemachine虚拟相机6.3.2创建VirtualCamera虚拟相机虚拟相机的基础参数:Status:表示虚拟相机的状态。虚拟相机有Live、Standby和Disabled三种状态。Solo:当场景中有多个虚拟相机时,单击Solo按钮Game视图切换为当前选中虚拟相机拍摄画面。SaveDuringPlay:是否保存运行模式下所做的修改。Follow:虚拟相机跟随目标。LookAt:虚拟相机瞄准目标。6.3认识Cinemachine虚拟相机6.3.2创建VirtualCamera虚拟相机

虚拟相机的三种状态6.3认识Cinemachine虚拟相机6.3.2创建VirtualCamera虚拟相机

“Lens”属性主要用来设置虚拟相机对应的Unity相机的镜头参数,如垂直视野范围、最近裁剪面、最远裁剪面等。虚拟相机的Lens参数:VerticalFOV:虚拟相机的垂直视野范围,值越大时视野范围越大,反之越小。当虚拟相机对应Unity相机的Projection属性为Perspective时有效。NearClipPlane:最近剪裁面。FarClipPlane:最远剪裁面。Dutch:镜头沿Z轴的旋转角度,取值范围-180~180。6.3认识Cinemachine虚拟相机6.3.2创建VirtualCamera虚拟相机VerticalFOV值为10(左)和100(右)时的显示效果6.3认识Cinemachine虚拟相机6.3.2创建VirtualCamera虚拟相机Dutch值为60(左)和-30(右)时的显示效果6.3认识Cinemachine虚拟相机6.3.2创建VirtualCamera虚拟相机

“Body”属性用来设置虚拟相机的移动规则,Unity支持“DoNothing”、“3rdPersonfollow”、“FramingTransposer”、“HardLocktoTarget”、“OrbitalTransposer”、“TrackedDolly”和“Transposer”七种移动模式。

“Transposer”为默认的移动模式,采用这种移动模式时摄像机与Follow对象始终保持一个固定距离。6.3认识Cinemachine虚拟相机6.3.2创建VirtualCamera虚拟相机

Body属性为Transposer时的参数:BindingModes:虚拟相机跟随目标的方式。FollowOffset:虚拟相机与Follow对象的相对位置。X/Y/ZDamping:当Follow对象沿X/Y/Z轴移动时,虚拟相机的响应速度,值越大响应越慢。YawDamping:当Follow对象沿自身的Y轴转动时,虚拟相机的响应速度,值越大响应越慢。6.3认识Cinemachine虚拟相机6.3.2创建VirtualCamera虚拟相机Dutch值为60(左)和-30(右)时的显示效果6.3认识Cinemachine虚拟相机6.3.2创建VirtualCamera虚拟相机Aim属性为Composer时的参数功能:TrackedObjectOffset:虚拟相机相对于LookAt对象的偏移量。LookaheadTime:当LookAt对象发生旋转时,虚拟相机随之旋转所需要的预测时间。LookaheadSmoothing:平滑度,值越大抖动越平滑,但是也会增加预测的延时。。ScreenX:Deadzone在屏幕空间的X坐标。ScreenY:Deadzone在屏幕空间的Y坐标。6.3认识Cinemachine虚拟相机6.3.2创建VirtualCamera虚拟相机TrackedObjectOffset中y值为-4(左)和5(右)时的显示效果6.3认识Cinemachine虚拟相机6.3.3创建FreeLookCamera自由相机

FreeLookCamera是可以基于第三人称视角进行自由观察的虚拟相机。

在Hierarchy视图中单击鼠标右键选择“CineMachine”→“FreeLookCamera”,或单击“GamObject”菜单选择“CineMachine”→“FreeLookCamera”创建自由相机。6.3认识Cinemachine虚拟相机6.3.3创建FreeLookCamera自由相机

两种创建FreeLookCamera方式6.3认识Cinemachine虚拟相机6.3.3创建FreeLookCamera自由相机

FreeLookCamera自由相机有上中下三个轨道,每个轨道限定了自由相机的运动范围。

Orbits属性各个参数的含义:BindingModes:自由相机跟随目标的运动的方式SplineCurvature:连接轨道曲线的曲率,控制自由相机在Y轴上的变化轨迹TopRig:上轨道,Height用来调整轨道高度,Radius用来调整轨道半径MiddleRig:中间轨道,Height和Radius参数同TopRigBottomRig:下轨道,Height和Radius参数同TopRig6.3认识Cinemachine虚拟相机6.3.3创建FreeLookCamera自由相机

SplineCurvature参数为0.2(左)和1.0(右)时的效果6.3认识Cinemachine虚拟相机6.3.3创建FreeLookCamera自由相机

Height参数为4、2、0(左)和6、3、0(右)时的效果6.3认识Cinemachine虚拟相机6.3.3创建FreeLookCamera自由相机

Radius参数为1、2、1(左)和2、4、2(右)时的效果6.3认识Cinemachine虚拟相机6.3.3创建FreeLookCamera自由相机

“AxisControl”用于设置虚拟相机在垂直和水平方向的输入控制。

AxisControl常用参数含义:X、YAxisValue:自由相机在对应坐标轴上的位置Speed:自由相机在对应坐标轴上的移动速度AccelTime:从当前速度加速到最大速度所需要的时间DecelTime:从当前速度减速到0所需要的时间InputAxisName:控制自由相机沿对应坐标轴移动的输入名InputAxisValue:对应坐标轴上输入的值,当玩家停止输入后该值会变回0Invert:是否反转输入6.3认识Cinemachine虚拟相机6.3.3创建FreeLookCamera自由相机

Value值为1(左)和0(右)时的效果6.3认识Cinemachine虚拟相机6.3.3创建FreeLookCamera自由相机FreeLookCamera默认使用鼠标控制自由相机的运动,如果想使用其它方式控制自由相机,可通过单击“Edit”→“ProjectSettings”打开项目设置窗口,然后单击“InputManager”选项卡,展开“Axes”查看不同输入控制的名称,然后将选定的名称输入“InputAxisName”属性框中即可。6.3认识Cinemachine虚拟相机6.3.3创建FreeLookCamera自由相机例如实现通过上下箭头或WS键控制自由相机在Y轴上的移动,在“Axes”中查看该输入对应的名称为“Vertical”,将Vertical输入到“InputAxisName”属性框中即可完成设置。6.3认识Cinemachine虚拟相机6.3.4创建轨道相机DollyCameraWithTrack

DollyCameraWithTrack是一种带有滑轨的虚拟相机。在Hierarchy视图中单击鼠标右键选择“CineMachine”→“DollyCameraWithTrack”,或单击“GamObject”菜单选择“CineMachine”→“DollyCameraWithTrack”创建轨道相机。6.3认识Cinemachine虚拟相机6.3.4创建轨道相机DollyCameraWithTrack

两种方式创建轨道相机6.3认识Cinemachine虚拟相机6.3.4创建轨道相机DollyCameraWithTrack

轨道相机创建完成后,在Hierarchy视图中出现了“CMvcam1”和“DollyTrack1”两个对象,其中“CMvcam1”为虚拟相机,“DollyTrack1”为轨道对象。双击“DollyTrack1”,调整场景视图,这时可以看到场景中出现了一条绿色轨道。6.3认识Cinemachine虚拟相机6.3.4创建轨道相机DollyCameraWithTrack

选中“DollyTrack1”,在Inspector视图中可以看到它具有“Transform”和“CinemachineSmoothPath”两个组件,其中“CinemachineSmoothPath”用来绘制路径,其主要参数含义如下:Resolution:每个路径点之间采样的次数PathColor:轨道颜色Width:轨道宽度Looped:是否循环(轨道头尾相连)Waypoints:路径点(位置和旋转)6.3认识Cinemachine虚拟相机6.3.4创建轨道相机DollyCameraWithTrack

Resolution为20(左)和100(右)的效果6.3认识Cinemachine虚拟相机6.3.4创建轨道相机DollyCameraWithTrack

选中“DollyTrack1”,将其位置调整至(-6,24,75),选中“CMvcam1”,将其旋转调整至(90,0,0),从空中俯拍场景,拍摄效果如下图所示。6.3认识Cinemachine虚拟相机6.3.4创建轨道相机DollyCameraWithTrack

再次选中“DollyTrack1”,单击“Waypoints”属性下面的“+”按钮,添加3个新的路径点,使用移动工具调整每个路径点的位置,生成一条自定义的拍摄轨道。6.3认识Cinemachine虚拟相机6.3.4创建轨道相机DollyCameraWithTrack

选中“CMvcam1”,将光标移动到Inspector视图中“Body”属性下的“PathPosition”上,当光标变成左右移动箭头时,拖动改变“PathPosition”的属性值,在Game视图中可预览拍摄效果。6.3认识Cinemachine虚拟相机6.3.4创建轨道相机DollyCameraWithTrack

轨道制作完成后,在Hierarchy视图中新建一个空物体并命名为“Timeline”,然后单击“Window”→“Sequencing”→“Timeline”为其创建时间轴资源并保存到TimelineAssets文件夹中。添加一条“AnimationTrack”轨道,将虚拟相机“CMvcam1”拖入“AnimationTrack”的卡槽中,在弹出的菜单中选择“CreateAnimatoronCMvcam1”。6.3认识Cinemachine虚拟相机6.3.4创建轨道相机DollyCameraWithTrack

单击录制按钮,在第1帧将“PathPosition”属性设置为0,如下图所示,接下来分别在60、120、180、240帧处将“PathPosition”属性设置为1、2、3、4,并停止录制。单击Play按钮运行项目,此时一段俯拍动画就制作完成了。综合实践-制作CG动画4Part6.4综合实践-制作CG动画6.4.1创建远景相机

打开随书资源Module06中的D06_C&T项目,在Hierarchy视图创建一名为“CGCameras”的空物体,用来管理所有拍摄CG动画的虚拟相机,重置“CGCameras”的“Transform”组件,使其位置和旋转属性均为0。然后在Hierarchy视图中单击鼠标右键创建一个VirtualCamera,并将其命名为“CMWideShot”,拖拽到“CGCameras”下。6.4综合实践-制作CG动画6.4.1创建远景相机

选中“CMWideShot”,将“Character”的子物体“FollowTarget”拖入“CMWideShot”的“Follow”和“LookAt”属性卡槽中,使虚拟相机永远看向角色并跟随角色移动。6.4综合实践-制作CG动画6.4.1创建远景相机

单击“CMWideShot”的“Body”属性,设置“FollowOffset”属性为(-1.2,-0.3,-6.6)。6.4综合实践-制作CG动画6.4.2创建近景相机并实现镜头切换

选中“CMWideShot”,按下“Ctr+D”键进行复制,并将复制好的虚拟相机改名为“CMCloseUp”,修改“Body”下的“FollowOffset”属性为(-0.25,0,-2)。6.4综合实践-制作CG动画6.4.2创建近景相机并实现镜头切换

选中“CGCameras”,为其添加“PlayableDirector”组件。6.4综合实践-制作CG动画6.4.2创建近景相机并实现镜头切换

单击“Window”→“Sequencing”→“Timeline”,打开时间轴面板,单击“Create”按钮,创建一个名为“CutScene”的时间轴资源,并保存在Assets下的TimelineAssets文件夹中。

选中“CGCameras”,单击Timeline面板中的添加轨道按钮,创建一条“CinemachineTrack”。6.4综合实践-制作CG动画6.4.2创建近景相机并实现镜头切换

选中“MainCamera”并将其拖拽到“CinemachineTrack”的卡槽中。6.4综合实践-制作CG动画6.4.2创建近景相机并实现镜头切换

单击Timeline面板的设置按钮,将时间轴切换成以秒为单位。选中“CMWideShot”,将其拖拽到“CinemachineTrack”轨道中,调整其位置,使其从0.0秒播放到3.0秒。同理,将“CMCloseUp”拖拽到轨道中,调整其位置,使其从2.5秒播放到5.0秒,两个镜头交叉的部分进行了融合。6.4综合实践-制作CG动画6.4.3创建轨道相机

选中“CGCameras”并单击鼠标右键创建DollyCameraWithTrack轨道相机,并将其命名为“CMDrone”。6.4综合实践-制作CG动画6.4.3创建轨道相机

选中“DollyTrack1”,设置“Position”属性为(0,15,-20),“Resolution”属性为25,“Width”属性为1.2。6.4综合实践-制作CG动画6.4.3创建轨道相机

单击“Waypoints”属性右下方的“+”按钮,添加2个路径点,其值设

温馨提示

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

评论

0/150

提交评论