《虚拟仿真实验脚本与策划》课件-项目4.3:动画系统_第1页
《虚拟仿真实验脚本与策划》课件-项目4.3:动画系统_第2页
《虚拟仿真实验脚本与策划》课件-项目4.3:动画系统_第3页
《虚拟仿真实验脚本与策划》课件-项目4.3:动画系统_第4页
《虚拟仿真实验脚本与策划》课件-项目4.3:动画系统_第5页
已阅读5页,还剩138页未读 继续免费阅读

下载本文档

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

文档简介

矿井灾害应急救援(火灾)虚拟仿真实验人物动画绑定-1目录01人物动画概览添加动画02工作任务验收检查本节内容的掌握程度Part1人物动画概览01对话模块制作查看项目中添加动画的人物■打开Tool-人员类型-火灾作业人员由于人物的动画更为复杂。动作较多,数量较多。包括一些交互触发停止。接下来会花费较多篇幅进行介绍。定位场景中的对象01对话模块制作查看项目中添加动画的人物■找到人物的位置和Animation组件。这个人物后续的过程中会去救援他的矿工队友定位矿工对象01对话模块制作查看项目中添加动画的人物■找到子物体和不同子物体对应的Animator。它下面有一些物体。有Playermove,还有佩戴的动画,佩戴自救器跑的一些动画。还有开盖拉开气囊,还有打开氧气开关等动画找到动画组件01对话模块制作查看项目中添加动画的人物■定位Tool菜单下代码中的位置■双击打开HuoZaiControllerTool相关的代码01对话模块制作查看项目中添加动画的人物■定位火灾作业人员的位置■在这个基础上找到动画相关的播放逻辑定位作业人员代码01对话模块制作查看项目中添加动画的人物■获取对象上的Animator组件■获取组件可以使用GetComponent<T>()的泛型方法定位作业人员代码01对话模块制作查看项目中添加动画的人物■控制逻辑■找到播放代码的位置。找到播放代码的位置,播放方式是通过SetBool的方法,传入动画名称和bool值,控制动画的播放。播放方法01对话模块制作查看项目中添加动画的人物■根据代码中的ToolDic找到这段代码控制的对象控制器组件01对话模块制作查看项目中添加动画的人物■打开动画控制器■AnimatorController是Unity管理角色所有动画、动画切换逻辑的核心资源文件动画状态机01对话模块制作动画控制器的简单介绍■NewState的动画片段。■当Conditions的Run的这个值设置为True的时候。它就会触发到这种状态,然后开始进行跑步动画片段的使用01对话模块制作动画控制器的简单介绍■退出状态的过渡状态过渡01对话模块制作动画控制器的简单介绍■进入状态的条件■Transition就是变化的一个条件。这里是可以添加一个Condition,当它为True的时候,它就可以进入到Newstate中。过渡条件01对话模块制作动画控制器的简单介绍■AnyState的使用■AnyState是每个动画状态机自带的特殊虚拟节点,代表当前机器里所有普通动画状态任意状态转变的方式Part2工作任务验收02工作任务验收工作内容1■检查是否项目流程中使用到的人物和动画,在使用时能够快速定位到它们在代码和场景中的位置定位到场景中的人物对象并修改他们的动画组件了解动画组件中的连线和各种不同的状态工作内容2■检查是否新建空动画控制器,按照火灾工作人员的动画结构来设置。是否新建State和Transition,并连接它们感谢观看安全第一·预防为主矿井灾害应急救援(火灾)虚拟仿真实验人物动画绑定-2目录01区分动画概念动画系统中的术语02工作任务验收检查本节内容的掌握程度Part1区分动画中的概念01区分动画中的概念取出火灾作业人员进行调试■新建人物预制体,选择“人员类型-火灾作业人员”预制体的使用01区分动画中的概念取出火灾作业人员进行调试■新建测试场景,避免干扰在空场景中查看该人物的动画组件设置一般都在新场景中进行测试,可以避免同场景中其他对象的干扰01区分动画中的概念取出火灾作业人员进行调试■将人物放入场景,Reset调整位置,激活该对象■将该人物放到摄像机视角中央预制体的使用01区分动画中的概念Animation■找到场景中的Animation和对应的资产■Animation最基础的单动作动画资源文件,是模型骨骼的关键帧数据,只记录一段固定动作Animation组件01区分动画中的概念Animation■点击Take001可以在右下角的窗口中对动画进行预览■Take指一段录制/渲染素材、一次动作录制片段;001代表第1段素材。■Take001=默认未命名的动画片段(AnimationClip)查看动画切片01区分动画中的概念Animator■Animator组件是挂载在角色/物体身上的运行时动画驱动组件,是动画系统的运行入口■找到“人物站立”对象,找到Inspector中的AnimatorAnimator提供代码接口方便使用01区分动画中的概念Animator■通过Animator上的Controller参数定位跑动状态下适用自救器的动画状态机。AnimatorController01区分动画中的概念Animator■点击Pao_ZiJiuQi,查看当前状态机的结构。AnimatorController01区分动画中的概念Animator■新增Parameters以及参数类型。■参数类型可以是Float、Int、Trigger、Bool等。可选参数类型01区分动画中的概念Animator■新增Transition制作过渡■右键选择MakeTransition指向对应的状态即可完成选择。新增连线转换状态01区分动画中的概念Animator■使用Run控制人物动画

■使当前人物的状态是站立状态,预期效果是触发跑动后人物开始跑动。这里需要使用参数触发人物跑动动画。触发动画播放01区分动画中的概念Animator■打开Animator-Parameters页签,查看可选参数类型。分析不同的参数类型的适用场景。动画中的参数传递01区分动画中的概念Animator■运行场景,在勾选Run后,人物开始跑动

■在勾选后,点击Run后,白色箭头指向NewState变为蓝色动画中的Trigger01区分动画中的概念Animator■新建状态(鼠标右键-选择CreateState)■右键CreateState-Empty空状态FromNewBlendTree混合树混合树01区分动画中的概念Animator■新建子状态机■右键CreateSub-StateMachine,双击可进入子状态机子状态机Part2工作任务验收02工作任务验收工作内容1■检查是否新建好空场景,在场景中放置动画测试的人物实例化是制作相同内容的多个物体时的常用方法多次提问测试程序健壮性工作内容2■检查是否新建控制器参数,测试状态下新增子状态机,调整状态机逻辑感谢观看安全第一·预防为主矿井灾害应急救援(火灾)虚拟仿真实验动画状态机-1目录01控制器的使用功能使用02工作任务验收检查本节内容的掌握程度Part1控制器的使用01控制器的使用AI机器人动画的制作■找到AIGroup中的机器人(1)■小机器人动画是一个自动播放的动画。在Canvas下面的Fixed层级。AIgroup本质其实也是一个Animator机器人的动画组件01控制器的使用AI机器人动画的制作■通过AIGroup机器人(1)

的Animator来定位该机器人的Controller。■该文件的路径是Assets-五大灾模型-Artwork-下的文件夹中的内容,找到机器人(1)即可。机器人的动画组件01控制器的使用AI机器人动画的制作■双击可以打开机器人的动画控制器,查看该控制器下的机器人状态机机器人的动画组件01控制器的使用AI机器人动画的制作■点击Take001查看动画切片■如果想让这个人小机器人有更多表现那可以给它把这个动画切成三个部分,因为这里的动画资产是一整个动画机器人状态机01控制器的使用AI机器人动画的制作■Parameters列表为空。当前机器人的设计是循环播放对应的动画片段,所以这里不需要添加参数触发单独的动画状态机器人状态机01控制器的使用AI机器人动画的制作■点击Take001查看Take001状态,该动画文件在机器人模型下机器人状态机01控制器的使用AI机器人动画的制作■机器人动画中的三个状态前后拖动动画帧数的进度条,可以看到三个状态下机器人的不同动作■动画关键帧的制作为1秒60帧,可以参考这里切割对应的动画时长机器人的三个动画片段01控制器的使用AI机器人动画的制作■点击加号可以添加动画切片,将当前的动画分成不同的部分■新增的动画切片可以在Clips列表中进行查看。机器人添加动画切片态01控制器的使用AI机器人动画的制作■调整Start和End的参数,这里调整为100-200■在新增动画切片后可以通过调整这两个参数,编辑动画切片的内容和动画的长度。机器人状添加首位帧数参数01控制器的使用AI机器人动画的制作■播放对应的切片,查看效果。■动画内容可以在右下角的Take001窗口中进行查看,控制播放和停止,调整模型观察的角度。切片播放01控制器的使用起火原因处矿工对话的动画制作■搜索关键词,在HuoZaiController脚本中按下“Ctrl+F”进行搜索。■搜索关键字为“皮带机位置”,找到第929行代码。动画播放代码片段01控制器的使用起火原因处矿工对话的动画制作■根据代码找到场景中的对象■找到与人物和Animator组件相关的内容,需要通过该行代码定位到讲话的矿工动画播放代码片段01控制器的使用起火原因处矿工对话的动画制作■定位到人物对话物体■根据Tool找到-人物对话-Renwu_ShuoHua,定位到Animator组件定位人物01控制器的使用起火原因处矿工对话的动画制作■查看矿工对象动画组件,激活人物对话子物体■激活人物说话下的RenWu_ShuoHua和RenWu_ShuoHua(1),双击找到该对象在场景中的位置相同人物模型激活01控制器的使用起火原因处矿工对话的动画制作■查看状态机。该状态机是一个播放简单动画的状态机,不存在多个动画状态的切换和动作的混合。矿工状态机01控制器的使用起火原因处矿工对话的动画制作■查看该状态机中的动画,点击Take001定位到当前状态的AnimationClip,在右下角点击播放预览动画■按下左键平移观察视角,按下右键旋转当前的观察视角矿工状态机01控制器的使用起火原因处矿工对话的动画制作■代码中在不同环节添加动画组件Enable属性控制可以实现动画片段的播放和停止。■true:Animator正常工作,状态机更新、播放动画、混合、参数计算、IK、根运动全部生效。false:Animator完全暂停,停止所有动画运算动画控制代码片段01控制器的使用起火原因处矿工对话的动画制作■使用示例:在需要播放该动画片段的实验环节添加,该行代码即可实现。通过代码获取对象Part2工作任务验收02工作任务验收工作内容1■检查主界面上机器人动画使用正确,循环播放正常小机器人的动画是三个片段循环播放检查播放时的人物动作工作内容2■检查人物对话动作播放正常,人物之间动画播放节奏正确,播放状态切换正确感谢观看安全第一·预防为主矿井灾害应急救援(火灾)虚拟仿真实验动画状态机-2目录01自救环节动画制作流程02工作任务验收检查本节内容的掌握程度Part1自救环节动画01自救环节动画矿工跑动动画■搜索上风处■在HuoZaiController脚本中搜索“上风”定位到该段代码第986行位置动画相关代码片段01自救环节动画矿工跑动动画■人员存储所在的字典ToolDic,对应HuoZaiController脚本中

960

行前后,找到和初期自救、灭火等相关的内容动画相关代码片段01自救环节动画矿工跑动动画■根据代码中的内容,找到“火灾-Tool-人员类型-火灾作业人员”,双击定位到该对象所在的位置场景中的对象01自救环节动画矿工跑动动画■激活该对象,查看当前情景下,该对象的所在的位置,起始角度,挂载的组件等内容场景中的对象01自救环节动画矿工跑动动画■找到人物站立该对象是接下来分析自救环节所有动画的基础。■该对象位置在“火灾-Tool-人员类型-火灾作业人员-PlayerMove-人物站立”场景中的对象01自救环节动画矿工跑动动画■找到Conditions,查看当前人物的动画状态切换条件场景中的对象01自救环节动画矿工跑动动画■代码控制■在HuoZaiController定位到958行,找到SetBool方法,该方法是设置动画参数并进行播放的方法。这里使用SetBool(“动画名”,bool)的方式进行控制动画相关代码片段01自救环节动画矿工跑动动画■禁止移动旋转■在奔跑过程中禁止控制镜头,避免人物和镜头的相对位置发生变化,也能避免用户使用过程中出现眩晕动画相关代码片段01自救环节动画矿工跑动动画■恢复移动旋转,分别设置镜头禁止/恢复两种状态进行管理动画相关代码片段01自救环节动画矿工跑动动画■控制Animation播放■Animation的播放可以直接使用Play方法,若使用的是Animator,则可以使用enabled和Set方式控制动画相关代码片段01自救环节动画矿工跑动动画■找到播放动画的AnimationClip■该AnimationClip的位置在Assets/五大灾模型/Artwork/动作类/Animation/火灾初始去尝试灭火.anim动画播放切片01自救环节动画矿工跑动动画■Animator的控制方式。当前的动画控制器中存在参数控制,只有触发指定参数后才会进行播放动画相关代码片段01自救环节动画自救器动画■佩戴自救器在代码中的位置。HuoZaiController中第

423

行前后,点击UI上的自救器按钮,可以触发动画播放事件。动画相关代码片段01自救环节动画自救器动画■点击按钮后相关的操作,添加按钮的事件监听,在大括号中编写触发的相关方法,逐行运行动画相关代码片段01自救环节动画自救器动画■PlayerMove对象上有MovePlayer脚本,该脚本负责控制该环节下的镜头锁定和解锁两种状态控制移动的代码01自救环节动画自救器动画■开盖动画■点击NewState和Take001之间的连线,查看Inspector的面板,找到Conditions列表,存在Play参数,当Play参数为true时,触发动画播放自救器使用动画01自救环节动画自救器动画■Play控制播放■佩戴过程的动画不是连续动画,而是多个动画片段进行拼接而成的,在每段动画分别激活对应的物体,然后使用Set方法进行播放。多个动画之间的间隔使用协程隔开动画相关代码片段Part2工作任务验收02工作任务验收工作内容1■检查是否完成自救动画播放,完成代码控制。是否完成自救器使用的逻辑控制,自救器开盖的动画播放自救动画是完整的过程,涉及到的动画片段较多,需要综合控制在播放动画的时候需要固定镜头避免实验内容被忽略工作内容2■检查是否完成自救动画播放时的人物移动和镜头锁定,移动完成后解锁镜头感谢观看安全第一·预防为主矿井灾害应急救援(火灾)虚拟仿真实验动画触发-1目录01报警动画调度室和避难时内的动画02工作任务验收检查本节内容的掌握程度Part1报警动画01报警动画电话报警动画制作■打开HuoZaiController,按下Ctrl+F搜索“电话报警”,定位到脚本中480行前后,定位到电话报警相关环节的代码动画制作的部分代码01报警动画电话报警动画制作■找到Animator控制相关的代码,HuoZaiController脚本中1037行前后。后续播放调度室中调度人员相关的动画。动画制作的部分代码01报警动画电话报警动画制作■找到HuoZaiController中的代码1032行前后,根据该路径找到物体位置,具体为:火灾-美工资源-打电话-Camera动画制作的部分代码01报警动画电话报警动画制作■双击定位到场景中的位置,查看动画播放前人物的状态。该物体下的子物体分为三个,DianHua、DaDianHua、Camera分别查看这些物体的组件场景中的报警矿工01报警动画电话报警动画制作■打电话的动画,查看DaDianHua对象的动画控制器。点击在Animator窗口中进行查看,选中Take001状态,可以在Inspector底部预览动画场景中的报警矿工01报警动画调度室动画制作■找到HuoZaiController中1026行的位置,查找“跳转调度室场景”的注释内容,激活“打电话“对象动画制作的部分代码01报警动画调度室动画制作■根据代码找到场景中的位置,HuoZaiController中第1037行,定位到Tool-DD-Model对象位置该段代码的物体在场景中的位置01报警动画调度室动画制作■找到场景中调度员的动画组件,点击展开Model,找到DH-JieDianHua,查看该物体的Animator组件,展开Controller内容该段代码的物体在场景中的位置01报警动画调度室动画制作■接电话状态。该状态分为三个过程NewState-JieDianHua-放下电话。分别对应在收到报警电话后,拿起电话-接听-放下电话的三个过程该段代码的物体在场景中的位置01报警动画调度室动画制作■接电话动画内容以及后续两个动画片段的内容均可以在Inspector窗口底部的动画预览窗口进行查看接电话的动画切片01报警动画调度室动画制作■放下电话的动画内容,放下电话的动画内容播放完毕后,进入救援队出警环节,切换到救援队伍镜头和队伍选择面板放下电话的动画切片01报警动画调度室动画制作■接电话触发动画代码编写,找到HuoZaiController中的1037行,查找动画处进行播放的设置方法,传入JieDianHua参数和bool值对播放进行控制动画制作的部分代码01报警动画调度室动画制作■放下电话的代码控制,参数字符串为FangXiaDianHua,需要将该参数传入Set方法后,才能控制动画制作的部分代码01报警动画气体检测动画内容■气体检测:动画码中气体检测相关内容,在HuoZaiController代码中搜索“请进行气体检测”定位到该代码中613行前后的位置动画制作的部分代码01报警动画气体检测动画内容■救援队伍在场景中的位置:火灾场景-Tool-人员类型-救援人员-player。点击该player可以显示救援人员模型与人物碰撞范围场景中的救援队对象01报警动画气体检测动画内容■救援人员动画组件,由多个子状态机组成,能够控制队员和队长不同角色的人物动画,能够根据当前输入的情况实现动画状态的平滑过渡场景中的救援队对象01报警动画气体检测动画内容■气体检测按钮点击后的代码逻辑,通过GetComponent方法获取Button组件,添加按钮的监听。然后通过UIManager的实例方法控制按钮点击后UI的显示。动画制作的部分代码01报警动画气体检测动画内容■救援人员的状态机,由两个部分组成:SM_Landing子状态机和SM_Airborne子状态机救援队的状态机Part2工作任务验收02工作任务验收工作内容1■检查是否电话汇报动画播放正常触发,动画播放流畅接起电话和放下电话可以使用相同片段播放速度选择正负即可救援队伍状态机比较复杂,编辑时需要额外注意工作内容2■检查是否明确救援队伍的位置完成救援队伍的动画控制器感谢观看安全第一·预防为主矿井灾害应急救援(火灾)虚拟仿真实验动画触发-2目录01救援人员动画制作流程02工作任务验收检查本节内容的掌握程度Part1救援人员动画01救援人员动画触发救援环节■找到JiuYuanRenYuanController脚本,打开。■该脚本是Tool对象下,所有救援人员动作的控制脚本。动画触发部分代码01救援人员动画触发救援环节■寻找救援人员上的队长动作节点。路径为火灾场景-Tool-人员类型-救援人员。场景中的队长动作01救援人员动画触发救援环节■编写播放救援动作的代码。使用Find方法定位到场景中的敲帮问顶对象物体,通过GetComponent方法获取动画组件Animator,通过设置Set方法中的字符串为触发条件实现动画控制。动画触发部分代码01救援人员动画临时急救环节动画■代码中搜索关键词临时急救,(1)找到临时急救环节的控制代码,位于HuoZaiController下的779行前后,控制临时急救的步骤。动画触发部分代码01救援人员动画临时急救环节动画■找到场景中救援动画分解的对象,该对象位于Canvas-Normal-救援动画分解-Btn。面板层级分为Fixed、Normal等,这里是普通面板,需要放在Normal下。救援面板01救援人员动画临时急救环节动画■找到代码中救护伤员的字典。在HuoZaiController中搜索“临时急救”可定位到对应的代码位置,按下Ctrl点击左键可以定位到ToolDic的位置。动画触发部分代码01救援人员动画临时急救环节动画■根据字典中找到场景中救护伤员的位置,激活。激活伤员后可以直接查看伤员相关的动画实现原理。救援位置01救援人员动画临时急救环节动画■找到CommonFunc脚本(控制解开衣服相关的代码)■在CommonFunc中编写脚本,使用Find方法获取对象位置,使用GetComponent方法获取组件,Set方法传入条件和bool实现动画播放。动画触发部分代码01救援人员动画临时急救环节动画■设置触发参数:jieyifu传入Conditions的字符串,传入对应的布尔值,如果是播放,传入true。动画触发部分代码01救援人员动画临时急救环节动画■查看解衣服对应的动画。对应的动画片段可以在Inspector窗口底部进行预览。急救的动画切片01救援人员动画临时急救环节动画■添加j

温馨提示

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

评论

0/150

提交评论