人机交互技术 课件 第8--10章 寻路(进阶)、群组行为、梦幻森林案例教学.pptx

人机交互技术 课件 第8--10章 寻路(进阶)、群组行为、梦幻森林案例教学.pptx

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

人机交互技术

AI寻路系统(进阶)

目录Catalog1教学目的与要求2重点、难点3教学进程安排4课后学习任务布置

教学目的与要求01.

本章将更深入地介绍AI寻路系统,更有深度的探究寻路组件的其他功能。目的:教学目的与要求学生能够深入了解寻路系统,完成课堂的学习与讨论,并且能够积极完成课后作业。要求:

重点、难点02.

在寻路系统入门的基础上进行进阶学习,学习寻路系统的其他功能。重点:重点、难点寻路系统的整理。难点:

教学进程安排03.

梯子效果爬坡功能允许攀爬的只有最大限度为60°的坡度,当面对更大的坡度时,MaxSlope就已经无法满足我们的需求了。这时我们需要用到一个新的组件:OffMeshLink。我们只需要给梯子添加OffMeshLink组件并挂载底端和顶端的空物体,我们就可以完成爬梯子的效果,实现垂直爬坡了。

寻路路线限制到此为止我们学习的寻路都是在同一片烘焙区域,通过最短路径自行寻找目标的AI行为,但有时候我们需要限定不同的AI可以走的路线进行区分,这种情况我们就需要用到Navigation组件的Areas功能了。在Areas中我们可以添加烘焙区域名称,添加后Object中可以给烘焙区域限定区域名称,最后就可以在NavmeshAgent里面选择行走区域来限定AI的行走路线了。

道路阻断在寻路系统中,只要AI开始寻路,就会“一去不回头”。要怎么做才能在它寻路过程中对它进行中途阻止呢,我们只需要在相应的路段上添加一个名为NavMeshObstacle的组件,这一段路就会阻止AI通过了,再通过代码控制该组件的显隐性,就可以控制AI寻路时,相应路段的阻断和连通了。

课后学习任务布置学生分组讨论,并整理进阶寻路实现过程的笔记。

人机交互技术

群组行为

教学目的与要求1重点难点2教学进程安排3课后学习任务布置4目录CONTENTS

教学目的与要求1

教学目的与要求目的:本章将介绍群组行为功能的实现方法,让学生了解群组行为的实现流程。要求:学生能够使用群组行为模拟AI行为,完成课堂的学习与讨论,并且能够积极完成课后作业。

重点难点2

重点难点重点:在本章中我们要学会力学的简单运算,组的管理方法,完成对整个群组的控制。难点:整理逻辑的整理,权重的把控。

教学进程安排3

群组行为的作用群组行为队列聚集分离力学计算距离检测碰撞组管理当有一群的人或者动物与环境进行真实的交互的时候,我们要想模拟出最真实的行为,就要让群体的行为符合群体的特征。在不加入unity3d环境中的人工智能的情况下,用简单的视觉模糊来进行鸟群的行为模拟。

主要方法队列的力力学计算聚集的力距离检测分离的力碰撞组管理整个集体的前进方向恒定,不会因为个体而进行变动。每个个体都会向集体汇聚,不会脱离大部队,分散太远。每个个体都会与其他个体保持一定距离,不会非常靠近。通过牛顿第二定律计算每一个个体的前进方向和速度每一个个体通过距离检测判断自身附近是否有其他个体将附近的同类放到一个碰撞组中进行管理。

群组行为的实现定义并初始化变量:publicTransformtarget;publicVector3velocity=Vector3.forward;privateVector3startVelocity;publicVector3SumForce=Vector3.zero;voidStart(){target=GameObject.Find(Target).transform;startVelocity=velocity;}ForceCompute(){SumForce=Vector3.zero;Lisan_Force=Vector3.zero;Duilie_Partner.Clear();//清除队列数据Collider[]colliders=Physics.OverlapSphere(transform.position,Lisan_Distance);//physicis之后代码的作用:用来检测以某个位置为半径发射一个圆以检测球体内有哪些游戏物体(用来做物理检测,得到的结果是coliider的集合)for(inti=0;icolliders.Length;i++){if(colliders[i]!=nullcolliders[i].gameObject!=this.gameObject){Duilie_Partner.Add(colliders[i].gameObjec

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档