《虚拟现实脚本与策划》教案-项目4.3:动画系统_第1页
《虚拟现实脚本与策划》教案-项目4.3:动画系统_第2页
《虚拟现实脚本与策划》教案-项目4.3:动画系统_第3页
《虚拟现实脚本与策划》教案-项目4.3:动画系统_第4页
《虚拟现实脚本与策划》教案-项目4.3:动画系统_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

任务3人物动画功能开发任务描述适配岗位与职责使用Unity中的动画功能,制作项目中的人物动画,包括:灭火器使用、逃生动画、调度员动画、消防员动画等。同时结合协程控制动画的播放和停止,是项目制作中不可或缺的一环。岗位:VR开发工程师职责:VR项目开发学习目标知识目标:了解动画功能中一般的开发流程以及需要的资源和制作的方式。了解不同的动画组件(Animator和Animation)的适用场景。利用状态机和混合树制作特定人物动画。学会编写动画触发的代码,控制指定动画播放和停止。理解协同程序和其他程序的区别,会写协程代码。能力目标:理解动画模块在UnityVR项目中使用的时机及适用场景。熟练使用Animator和Animation播放人物动画。熟练使用SetBool控制动画的播放和停止。熟练使用协程控制实验流程的进度。素质目标:能够对AnimatorClip进行剪辑,使用其中的一段动画。能够在两段不同状态的动画间进行平滑切换,使动画过渡顺畅。能够灵活使用协程实现延迟执行任务或异步资源加载。学习重难点重点:协同程序的使用。Animator组件,AnimatorController的使用。动画状态机的使用。难点:复杂动作中的MainStateMachine和Sub-StateMachine的切换和使用。使用代码播放指定动画片段。操作步骤职业知识人物动画概览查看项目中添加动画的人物步骤1:打开Tool-人员类型-火灾作业人员由于人物的动画更为复杂。动作较多,数量较多。包括一些交互触发停止。所以会花费较多篇幅进行介绍。步骤2:定位人物位置和动画组件找到人物的位置和Animation组件。这个人物后续的过程中会去救援他的矿工队友。把它展开。找到子物体和不同子物体对应的Animator。它下面有一些物体。有Playermove,还有佩戴的动画,佩戴自救器跑的一些动画。还有开盖拉开气囊,还有打开氧气开关等动画。找到代码中动画相关的内容步骤1:定位Tool菜单下代码中的位置双击打开HuoZaiController定位火灾作业人员的代码位置,在这个基础上找到动画相关的播放逻辑。步骤2:如何获取对象上的Animator组件,通过GetComponent方法。分析代码控制人物动画步骤1:控制逻辑找到播放代码的位置,播放方式是通过SetBool的方法,传入动画名称和bool值,控制动画的播放。根据代码中的ToolDic找到这段代码控制的对象打开动画控制器。AnimatorController(动画控制器)是Unity管理角色所有动画、动画切换逻辑的核心资源文件(后缀.controller),搭配Animator组件使用步骤2:动画控制器的简单介绍NewState的动画片段。从newstate0转换到newstate的过程中,它是有一个conditions,就是一个条件。当这个run的这个值设置为true的时候。它就会触发到这种状态,然后开始进行跑步。take001是它不断的跑动的一个状态。当它把run设置为true之后,它就开始跑动。退出状态的过渡。进入状态的条件。Transition就是变化的一个条件。这里是可以添加一个Condition,当它为True的时候,它就可以进入到Newstate中。AnyState的使用。AnyState是每个动画状态机自带的特殊虚拟节点,代表当前机器里所有普通动画状态(Idle、Walk、Attack、Jump、Hit、Death全部包含在内)工作任务验收步骤1:查看项目流程中使用到的人物和动画,在使用时能够快速定位到它们在代码和场景中的位置。步骤2:新建空动画控制器,按照火灾工作人员的动画结构来设置。步骤3:新建State和Transition,连接它们。知识点1:对象定位可以通过搜索关键词,在代码中快速定位到控制对象的代码位置知识点2:获取组件获取组件可以使用GetComponent<T>()的泛型方法知识点3:动画控制器动画控制器是这个文件,图中连线的内容是动画状态机知识点4:Conditions点击带箭头的线可以查看两个状态之间切换的条件

任务3人物动画功能开发任务描述适配岗位与职责使用Unity中的动画功能,制作项目中的人物动画,包括:灭火器使用、逃生动画、调度员动画、消防员动画等。同时结合协程控制动画的播放和停止,是项目制作中不可或缺的一环。岗位:VR开发工程师职责:VR项目开发学习目标知识目标:了解动画功能中一般的开发流程以及需要的资源和制作的方式。了解不同的动画组件(Animator和Animation)的适用场景。利用状态机和混合树修改特定人物动画。学会编写动画触发的代码,控制指定动画播放和停止。理解协同程序和其他程序的区别,会写协程代码。能力目标:理解动画模块在UnityVR项目中使用的时机及适用场景。熟练使用Animator和Animation播放人物动画。熟练使用SetBool控制动画的播放和停止。熟练使用协程控制实验流程的进度。素质目标:能够对AnimatorClip进行剪辑,使用其中的一段动画。能够在两段不同状态的动画间进行平滑切换,使动画过渡顺畅。能够灵活使用协程实现延迟执行任务或异步资源加载。学习重难点重点:协同程序的使用。Animator组件,AnimatorController的使用。动画状态机的使用。难点:复杂动作中的MainStateMachine和Sub-StateMachine的切换和使用。使用代码播放指定动画片段。操作步骤职业知识区分动画系统中的概念在新场景中测试步骤:取出火灾作业人员进行调试新建人物预制体,人员类型-火灾作业人员新建测试场景,避免干扰在空场景中查看该人物的动画组件设置将人物放入场景,Reset调整位置,激活该对象Animation步骤1:了解AnimationAnimation最基础的单动作动画资源文件,是模型骨骼的关键帧数据,只记录一段固定动作。是静态资源,存放在项目文件夹里,不是组件、不是逻辑。只包含骨骼位移、旋转、缩放关键帧,没有任何切换逻辑、没有条件、没有参数。一个文件只对应一个动作:待机、走、跑、跳、攻击、倒地,各自单独一个.anim。可设置循环、播放速度、起始帧、结束帧、根运动等基础属性。步骤2:找到场景中的Animation和对应的资产点击Take001可以在右下角的窗口中对动画进行预览。Take是三维动画行业术语:指一段录制/渲染素材、一次动作录制片段;001代表第1段素材。Take001=默认未命名的动画片段(AnimationClip)Animator和AnimatorController步骤1:了解Animator组件Animator组件是挂载在角色/物体身上的运行时动画驱动组件,是动画系统的运行入口。必须指定一个AnimatorController才能工作。负责全局动画调度:更新帧率、动画层、身体遮罩、IK、动画插值、物理适配。是代码交互的唯一入口。步骤2:打开AnimatorController找到“人物站立”对象,找到Inspector中的Animator,Animator组件是挂载在角色/物体身上的运行时动画驱动组件,是动画系统的运行入口通过Animator上的Controller参数定位跑动状态下适用自救器的动画状态机点击Pao_ZiJiuQi,查看当前状态机的结构。查看这个状态机的过渡条件,右键选择MakeTransition指向对应的状态即可完成选择新增Parameters以及参数类型。Animator控制器内用于传递数值、控制动画过渡条件的变量集合,代码修改参数值驱动状态机切换动画。如何新增Transition:1.打开Animator窗口,从源状态/AnyState/子状态机按住鼠标拖拽箭头指向目标状态,松开生成Transition过渡线。2.选中过渡箭头,在右侧Inspector面板添加Conditions条件、调整过渡时长、退出时间等配置完成创建步骤3:使用Run控制人物动画运行该场景,使当前人物的状态是站立状态,预期效果是触发跑动后人物开始跑动。打开Animator-Parameters页签,查看可选参数类型。分析不同的参数类型的适用场景勾选Run后,人物开始跑动。在勾选后,点击Run后,白色箭头指向NewState变为蓝色。如何新建状态右键-CreateState-Empty空状态FromNewBlendTree混合树:是UnityAnimator中的特殊状态,基于1~2个浮点参数,按参数数值自动平滑混合多段动画,实现动作无缝过渡。如何新建子状态机右键-CreateSub-StateMachine子状态机=嵌套在主状态机内部的小型独立状态机,界面上显示为六边形图标,用来把同一类动作打包分组,把杂乱的动画逻辑分层收纳,大幅简化主界面连线双击可进入子状态机工作任务验收步骤1:新建好空场景,在场景中放置动画测试的人物。步骤2:新建控制器参数,测试状态下新增子状态机,调整状态机逻辑。知识点1:预制体使用快速复制当前场景中对象的状态,到新场景后再Unpack知识点2:Animation文件文件格式是.anim知识点3:动画预览右键可以调整观看动画的位置知识点4:参数提供多种参数类型,可进行多种多样的条件判断知识点5:子状态机子状态机可以用于控制更精细的动作

任务3人物动画功能开发任务描述适配岗位与职责使用Unity中的动画功能,制作项目中的人物动画,包括:灭火器使用、逃生动画、调度员动画、消防员动画等。同时结合协程控制动画的播放和停止,是项目制作中不可或缺的一环。岗位:VR开发工程师职责:VR项目开发学习目标知识目标:了解动画功能中一般的开发流程以及需要的资源和制作的方式。了解不同的动画组件(Animator和Animation)的适用场景。利用状态机和混合树制作特定人物动画。学会编写动画触发的代码,控制指定动画播放和停止。理解协同程序和其他程序的区别,会写协程代码。能力目标:理解动画模块在UnityVR项目中使用的时机及适用场景。熟练使用Animator和Animation播放人物动画。熟练使用SetBool控制动画的播放和停止。熟练使用协程控制实验流程的进度。素质目标:能够对AnimatorClip进行剪辑,使用其中的一段动画。能够在两段不同状态的动画间进行平滑切换,使动画过渡顺畅。能够灵活使用协程实现延迟执行任务或异步资源加载。学习重难点重点:协同程序的使用。Animator组件,AnimatorController的使用。动画状态机的使用。难点:复杂动作中的MainStateMachine和Sub-StateMachine的切换和使用。使用代码播放指定动画片段。操作步骤职业知识控制器使用AI机器人动画的制作步骤1:定位机器人控制的对象找到AIGroup中的机器人(1)小机器人动画是一个自动播放的动画。在Canvas下面的Fixed层级。AIgroup它本质其实也是一个Animator。通过AIGroup机器人(1)的Animator来定位该机器人的Controller。路径是Assets-五大灾模型-Artwork-下的文件夹,找到机器人(1)即可双击可以打开机器人的动画控制器,查看该控制器下的机器人状态机步骤2:机器人状态机点击Take001如果想让这个人小机器人有更多表现那我们就可以给它把这个动画切成完整的三个部分,因为美术在给到动画资产的时候,是一整个动画。Parameters列表为空,当前机器人的设计是循环播放对应的动画片段,所以这里不需要添加参数触发单独的动画状态。点击Take001查看Take001状态,该动画文件在机器人模型下点击Edit机器人动画中的三个状态前后拖动动画帧数的进度条,可以看到三个状态下机器人的不同动作,动画关键帧的制作为1秒60帧,可以参考这里切割对应的动画时长。步骤3:如何添加动画切片点击加号可以添加动画切片,将当前的动画分成不同的部分。新增的动画切片可以在Clips列表中进行查看。调整Start和End的参数,这里调整为100-200。在新增动画切片后可以通过调整这两个参数,编辑动画切片的内容。播放对应的切片,查看效果。动画内容可以在右下角的Take001窗口中进行查看,控制播放和停止,调整模型观察的角度。点击Revert恢复、点击Apply应用。这个面板也可以对动画文件进行其他调整:如设置LoopTime和LoopPose,以及Curves等参数。起火原因处矿工对话的动画制作同上步骤1:找到矿工对象搜索关键词,在HuoZaiController脚本中按下Ctrl+F进行搜索。搜索关键字为“皮带机位置”,根据矿工台词搜索场景中说出台词的Animator。根据代码找到场景中的对象,找到与人物和Animator组件相关的内容,需要通过该行代码定位到讲话的矿工定位到人物对话物体,根据Tool找到-人物对话-Renwu_ShuoHua,定位到Animator组件步骤2:查看矿工对象动画组件激活人物对话子物体,激活人物说话下的RenWu_ShuoHua和RenWu_ShuoHua(1),双击找到该对象在场景中的位置。代码控制该组件激活,通过GetComponent方法获取该对象上的Animator组件,适用enabled属性完成激活。查看状态机,该状态机是一个播放简单动画的状态机,不存在多个动画状态的切换和动作的混合。查看该状态机中的动画,点击Take001定位到当前状态的AnimationClip,在右下角点击播放预览动画。按下左键平移观察视角,按下右键旋转当前的观察视角。查看另一个矿工的动画,进行相同的操作代码中在不同环节添加动画组件Enable属性控制可以实现。Animator.enabled布尔字段控制整个Animator组件是否启用、是否正常更新动画逻辑。true(默认):Animator正常工作,状态机更新、播放动画、混合、参数计算、IK、根运动全部生效。false:Animator完全暂停,停止所有动画运算。使用示例:在需要播放该动画片段的实验环节添加,该行代码即可实现。工作任务验收步骤1:主界面上机器人动画使用正确,循环播放正常。步骤2:人物对话动作播放正常,播放状态切换正确。步骤3:人物之间动画播放节奏正确,角色切换正确。知识点1:Take001从状态机可以快速定位到动画切片知识点2:动画切片比较简单的动画一般是放在一起的,需要自己去切割一下,本项目中的机器人动作只需要循环播放知识点3:对话动画使用同样的播放手法,控制三次即可知识点4:Enbale该属性控制组件的激活失活

任务3人物动画功能开发任务描述适配岗位与职责使用Unity中的动画功能,制作项目中的人物动画,包括:灭火器使用、逃生动画、调度员动画、消防员动画等。同时结合协程控制动画的播放和停止,是项目制作中不可或缺的一环。岗位:VR开发工程师职责:VR项目开发学习目标知识目标:了解动画功能中一般的开发流程以及需要的资源和制作的方式。了解不同的动画组件(Animator和Animation)的适用场景。利用状态机和混合树制作特定人物动画。学会编写动画触发的代码,控制指定动画播放和停止。理解协同程序和其他程序的区别,会写协程代码。能力目标:理解动画模块在UnityVR项目中使用的时机及适用场景。熟练使用Animator和Animation播放人物动画。熟练使用SetBool控制动画的播放和停止。熟练使用协程控制实验流程的进度。素质目标:能够对AnimatorClip进行剪辑,使用其中的一段动画。能够在两段不同状态的动画间进行平滑切换,使动画过渡顺畅。能够灵活使用协程实现延迟执行任务或异步资源加载。学习重难点重点:协同程序的使用。Animator组件,AnimatorController的使用。动画状态机的使用。难点:复杂动作中的MainStateMachine和Sub-StateMachine的切换和使用。使用代码播放指定动画片段。操作步骤职业知识自救环节动画制作矿工跑动动画该环节从镜头定位至自救人员就绪位置开始,到自救器使用结束为止,整个过程包括人员跑动,佩戴自救器等。步骤1:在代码中找到对应的内容搜索上风处。在HuoZaiController脚本中搜索“上风”定位到该段代码第986行位置。定位人员存储所在的字典ToolDic,对应HuoZaiController脚本中960行前后,找到和初期自救、灭火等相关的内容。步骤2:在场景中找到该对象根据代码中的内容,找到“火灾-Tool-人员类型-火灾作业人员”,双击定位到该对象所在的位置。激活该对象,查看当前情景下,该对象的所在的位置,起始角度,挂载的组件等内容。找到人物站立,该对象是接下来分析自救环节所有动画的基础。位置在“火灾-Tool-人员类型-火灾作业人员-PlayerMove-人物站立”找到Conditions,查看当前人物的动画状态切换条件。代码控制逻辑。在HuoZaiController定位到958行,找到SetBool方法,该方法是设置动画参数并进行播放的方法。这里使用SetBool(“动画名”,bool)的方式进行控制。步骤3:移动和播放过程中控制输入禁止移动旋转,在奔跑过程中禁止控制镜头,避免人物和镜头的相对位置发生变化,也能避免用户使用过程中出现眩晕。恢复移动旋转。分别设置镜头禁止/恢复两种状态进行管理,步骤4:控制Animation播放代码控制播放。Animation的播放可以直接使用Play方法,若使用的是Animator,则可以使用enabled和Set方式控制。找到播放动画的AnimationClip。该AnimationClip的位置在Assets/五大灾模型/Artwork/动作类/Animation/火灾初始去尝试灭火.animAnimator的控制方式。当前的动画控制器中存在参数控制,只有触发指定参数后才会进行播放。自救器动画步骤1:佩戴自救器代码中的位置,HuoZaiController中第423行前后,点击UI上的自救器按钮,触发动画播放。点击按钮后相关的操作,添加按钮的事件监听,在大括号中编写触发的相关方法,逐行运行。找到字典中的位置。在HuoZaiController中1154行前后。佩戴自救器属于人物动画,人物动画都保存在Tool的字典中。佩戴过程的代码。佩戴过程的动画不是连续动画,而是多个动画片段进行拼接而成的,在每段动画分别激活对应的物体,然后使用Set方法进行播放。多个动画之间的间隔使用协程隔开。PlayerMove对象上有MovePlayer脚本,该脚本负责控制该环节下的镜头锁定和解锁两种状态。步骤2:分步动画开盖动画。点击NewState和Take001之间的连线,查看Inspector的面板,找到Conditions列表,存在Play参数,当Play参数为true时,触发动画播放。动画效果预览。在右下角Take001窗口处,点击播放可对当前选中的动画效果进行预览。长按左键拖拽平移观察视角,长按右键拖拽旋转观察视角。Play参数控制动画播放。该对象挂载Animator组件,添加动画触发的参数为Play。需要使用Set方法传入参数名称和bool值进行控制。工作任务验收步骤1:完成自救动画播放,完成代码控制。步骤2:完成自救动画播放时的人物移动和镜头锁定,移动完成后解锁镜头。步骤3:完成自救器使用的逻辑控制,自救器开盖的动画播放。知识点1:跑动时的逻辑跑动时设置跟随动画的模型位置,避免被留在原地知识点2:字典本项目中大量使用字典来实现对象快速获取知识点3:控制设置开启/禁用镜头控制,有效避免实验过程中出现其他问题知识点4:Animation播放anim.Play(“动画名称”);可以控制动画播放知识点5:自救器对象控制控制佩戴过程中不同部分显示隐藏,保证显示内容正确知识点6:参数名称参数名称可以根据实际情况编写,要求符合控制内容

任务3人物动画功能开发任务描述适配岗位与职责使用Unity中的动画功能,制作项目中的人物动画,包括:灭火器使用、逃生动画、调度员动画、消防员动画等。同时结合协程控制动画的播放和停止,是项目制作中不可或缺的一环。岗位:VR开发工程师职责:VR项目开发学习目标知识目标:了解动画功能中一般的开发流程以及需要的资源和制作的方式。了解不同的动画组件(Animator和Animation)的适用场景。利用状态机和混合树制作特定人物动画。学会编写动画触发的代码,控制指定动画播放和停止。理解协同程序和其他程序的区别,会写协程代码。能力目标:理解动画模块在UnityVR项目中使用的时机及适用场景。熟练使用Animator和Animation播放人物动画。熟练使用SetBool控制动画的播放和停止。熟练使用协程控制实验流程的进度。素质目标:能够对AnimatorClip进行剪辑,使用其中的一段动画。能够在两段不同状态的动画间进行平滑切换,使动画过渡顺畅。能够灵活使用协程实现延迟执行任务或异步资源加载。学习重难点重点:协同程序的使用。Animator组件,AnimatorController的使用。动画状态机的使用。难点:复杂动作中的MainStateMachine和Sub-StateMachine的切换和使用。使用代码播放指定动画片段。操作步骤职业知识报警和调度室动画制作电话报警动画制作步骤1:确认代码位置打开HuoZaiController,按下Ctrl+F搜索“电话报警”,定位到脚本中480行前后,定位到电话报警相关环节的代码。找到Animator控制相关的代码,HuoZaiController脚本中1037行前后。后续播放调度室中调度人员相关的动画。步骤2:确认场景中的位置找到HuoZaiController中的代码1032行前后,根据该路径找到物体位置,具体为:火灾-美工资源-打电话-Camera双击定位到场景中的位置,查看动画播放前人物的状态。该物体下的子物体分为三个,DianHua、DaDianHua、Camera分别查看这些物体的组件。打电话的动画,查看DaDianHua对象的动画控制器。点击在Animator窗口中进行查看,选中Take001状态,可以在Inspector底部预览动画。调度室动画制作步骤1:代码位置找到HuoZaiController中1026行的位置,查找“跳转调度室场景”的注释内容,激活“打电话“对象。步骤2:场景中的位置根据代码找到场景中的位置,HuoZaiController中第1037行,定位到Tool-DD-Model对象位置。找到场景中调度员的动画组件。点击展开Model,找到DH-JieDianHua,查看该物体的Animator组件,展开Controller内容。步骤3:动作切换接电话状态。该状态分为三个过程NewState-JieDianHua-放下电话。分别对应在收到报警电话后,拿起电话-接听-放下电话的三个过程。接电话动画内容以及后续两个动画片段的内容均可以在Inspector窗口底部的动画预览窗口进行查看。放下电话的动画内容。放下电话的动画内容播放完毕后,进入救援队出警环节,切换到救援队伍镜头和队伍选择面板。接电话触发动画代码编写,找到HuoZaiController中的1037行,查找动画处进行播放的设置方法,传入JieDianHua参数和bool值对播放进行控制。放下电话的动画触发,参数字符串为FangXiaDianHua,需要将该参数传入Set方法后,才能控制。放下电话的代码,使用Set方法传入参数名称,传入bool值后,控制动画播放。气体检测动画内容气体检测动画代码中气体检测相关内容,在HuoZaiController代码中搜索“请进行气体检测”定位到该代码中613行前后的位置。救援队伍在场景中的位置为:火灾场景-Tool-人员类型-救援人员-player。点击该player可以显示救援人员模型与人物碰撞范围。步骤1:动画组件救援人员动画组件,由多个子状态机组成,能够控制队员和队长不同角色的人物动画,能够根据当前输入的情况实现动画状态的平滑过渡。气体检测按钮点击后的代码逻辑,通过GetComponent方法获取Button组件,添加按钮的监听。然后通过UIManager的实例方法控制按钮点击后UI的显示。救援人员的状态机,由两个部分组成:SM_Landing子状态机和SM_Airborne子状态机SM_Landing子状态机SM_Airborne子状态机工作任务验收步骤1:电话汇报动画播放正常触发,动画播放流畅。步骤2:明确救援队伍的位置完成救援队伍的动画控制器。知识点1:打电话动画打电话的动画是包含电话模型的,所以可以直接播放知识点2:接电话动画接电话的动画是包含电话模型的,所以可以直接播放。后续的放下电话原理同上。

任务3人物动画功能开发任务描述适配岗位与职责使用Unity中的动画功能,制作项目中的人物动画,包括:灭火器使用、逃生动画、调度员动画、消防员动画等。同时结合协程控制动画的播放和停止,是项目制作中不可或缺的一环。岗位:VR开发工程师职责:VR项目开发学习目标知识目标:了解动画功能中一般的开发流程以及需要的资源和制作的方式。了解不同的动画组件(Animator和Animation)的适用场景。利用状态机和混合树制作特定人物动画。学会编写动画触发的代码,控制指定动画播放和停止。理解协同程序和其他程序的区别,会写协程代码。能力目标:理解动画模块在UnityVR项目中使用的时机及适用场景。熟练使用Animator和Animation播放人物动画。熟练使用SetBool控制动画的播放和停止。熟练使用协程控制实验流程的进度。素质目标:能够对AnimatorClip进行剪辑,使用其中的一段动画。能够在两段不同状态的动画间进行平滑切换,使动画过渡顺畅。能够灵活使用协程实现延迟执行任务或异步资源加载。学习重难点重点:协同程序的使用。Animator组件,AnimatorController的使用。动画状态机的使用。难点:复杂动作中的MainStateMachine和Sub-StateMachine的切换和使用。使用代码播放指定动画片段。操作步骤职业知识救援人员动画触发触发救援环节脚本步骤1:找到控制救援人员的脚本选中救援人员,路径为火灾场景-Tool-人员类型-救援人员。找到JiuYuanRenYuanController脚本,打开。该脚本是Tool对象下,所有救援人员动作的控制脚本。寻找救援人员上的队长动作节点,节点路径为“火灾场景-Tool-救援人员-队长动作”展开该节点可以查看队长的动作控制子物体。步骤2:设置触发条件设置触发救援流程的Conditions为Play。当设置的Conditions的bool参数为true时,触发对应的动画播放。编写播放救援动作的代码。使用Find方法定位到场景中的敲帮问顶对象物体,通过GetComponent方法获取动画组件Animator,通过设置Set方法中的字符串为触发条件实现动画控制。临时急救环节动画触发步骤1:找到临时急救环节面板代码中搜索关键词临时急救,找到临时急救环节的控制代码,位于HuoZaiController下的779行前后,控制临时急救的步骤。找到场景中救援动画分解的对象,位于Canvas-Normal-救援动画分解-Btn。面板层级分为Fixed、Normal等,这里是普通面板,需要放在Normal下。步骤2:设置紧急救援面板按钮显示添加按钮设置交互样式,使用:父物体-Text/Btn的设计方式,通过救援的其中一个环节后,将Btn的状态设置为不可交互,同时显示Image,标记实验进度。添加按钮事件,在Btton的OnClick事件列表中添加事件,新增事件可以点击列表底部的加号,删除事件先点击事件再点击减号。在点击某个环节的按钮后,关闭当前按钮交互,改变该按钮样式制作相同的内容,在这里的四个按钮上步骤3:开启救护伤员找到代码中救护伤员的字典。在HuoZaiController中搜索“临时急救”可定位到对应的代码位置,按下Ctrl点击左键可以定位到ToolDic的位置。根据字典中找到场景中救护伤员的位置,激活。激活伤员后可以直接查看伤员相关的动画实现原理。点击解开衣服,查看动画控制器步骤4:找到CommonFunc脚本(控制解开衣服相关的代码)在CommonFunc中编写脚本,使用Find方法获取对象位置,使用GetComponent方法获取组件,Set方法传入条件和bool实现动画播放。设置触发参数:jieyifu。传入Conditions的字符串,传入对应的布尔值,如果是播放,传入true。查看解衣服对应的动画。对应的动画片段可以在Inspector窗口底部进行预览。添加jieyifu的Conditions,当代码中运行到该片段动画的环节时,运行Set方法,传入参数进行播放。工作任务验收步骤1:添加敲帮问顶、生命探测、气体检测的动画和触发。步骤2:添加急救环节的代码,根据按钮点击播放不同的动画。步骤3:设置面板按钮点击逻辑,点击后切换按钮状态。知识点1:复杂动画复杂动画在控制的时候可以使用子状态机,但是子状态机的层数不能太多知识点2:救援流程中的使用气体检测、生命探测、敲帮问顶的动画播放流程都是类似的知识点3:临时急救的代码临时急救的代码控制核心是在CommonFunc中知识点4:按钮状态切换切换状态功能是独立的,可以用手动关联的方式分别设置知识点5:救援过程动画控制使用按钮监听分别进行播放即可

任务3人物动画功能开发任务描述适配岗位与职责使用Unity中的动画功能,制作项目中的人物动画,包括:灭火器使用、逃生动画、调度员动画、消防员动画等。同时结合协程控制动画的播放和停止,是项目制作中不可或缺的一环。岗位:VR开发工程师职责:VR项目开发学习目标知识目标:了解动画功能中一般的开发流程以及需要的资源和制作的方式。了解不同的动画组件(Animator和Animation)的适用场景。利用状态机和混合树制作特定人物动画。学会编写动画触发的代码,控制指定动画播放和停止。理解协同程序和其他程序的区别,会写协程代码。能力目标:理解动画模块在UnityVR项目中使用的时机及适用场景。熟练使用Animator和Animation播放人物动画。熟练使用SetBool控制动画的播放和停止。熟练使用协程控制实验流程的进度。素质目标:能够对AnimatorClip进行剪辑,使用其中的一段动画。能够在两段不同状态的动画间进行平滑切换,使动画过渡顺畅。能够灵活使用协程实现延迟执行任务或异步资源加载。学习重难点重点:协同程序的使用。Animator组件,AnimatorController的使用。动画状态机的使用。难点:复杂动作中的MainStateMachine和Sub-StateMachine的切换和使用。使用代码播放指定动画片段。操作步骤职业知识协程协程是什么协程是能分段暂停、分步执行的特殊函数。不是多线程,依旧在主线程运行,和

Update

在同一条线程。可以把一段逻辑拆成多帧慢慢执行,不用写复杂计时器、不用堆大量状态判断。核心本质普通方法:一帧内从头到尾跑完,中途不能停。协程方法:执行到

yield

return

就暂停,等到指定条件满足,下一帧继续往下执行。协程不是异步新开线程,而是主线程里的分时执行。方法规范和常用关键字方法规范返回值必须是IEnumerator方法里必须有至少一个yieldreturn不能用普通方法调用,必须用StartCoroutine(Method());常用关键字yield

return

null暂停一帧,下一帧继续执行。等同于“等到下一帧再往下走”。yield

re

温馨提示

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

评论

0/150

提交评论