
unityAI
文章平均质量分 59
再学一个我就睡
每天进步一点点!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
实现AI角色的群体操控-队列Alignment行为
队列(Alignment)行为队列行为视图保持AI角色的运动朝向与邻居一致,这样就会得到像鸟群朝着一个方向飞行的效果。通过迭代邻居,可以求出AI角色朝向向量的平均值以及速度向量的平均值,得到想要的朝向,然后减去AI角色的当前朝向,就可以得到队列操控力。C#脚本代码using UnityEngine;namespace AI.Steering{ /// <summary> /// 队列 /// </summary> public clas原创 2021-03-16 14:37:23 · 640 阅读 · 1 评论 -
实现AI角色的群体操控-分离Separation行为
分离(Separation)行为分离行为的作用是使角色与周围其他角色保持一定的距离,这样可以避免多个角色相互挤到一起。当分离行为应用在许多AI角色(如鸟群中的鸟)上时,它们将会向四周散开,尽可能拉开距离。C#脚本代码using UnityEngine;namespace AI.Steering{ /// <summary> /// 分散 /// </summary> public class SteeringForDisperse : S原创 2021-03-15 13:10:39 · 612 阅读 · 1 评论 -
实现AI角色的群体操控-聚集Cohesion行为
聚集(Cohesion)行为聚集行为产生一个使AI角色移向邻居的质心的操控力,这个操控力使得多个AI角色聚集到了一起。迭代所有邻居,求AI角色平均值,然后利用靠近行为,将平均值作为目标。C#脚本代码using UnityEngine;namespace AI.Steering{ /// <summary> /// 聚集 /// </summary> public class SteeringForCollect : Steering原创 2021-03-14 07:46:01 · 815 阅读 · 1 评论 -
实现AI角色的自主移动-群体操控行为
组行为群体操控行为,正如大多数人工生命仿真一样,组行为是展示操控行为的一个很好的例子,它的复杂度来源于个体之间的交互,并遵循一些简单的规则。模仿群体行为需要下面几种操控行为分离(Separation):避免个体在局部过于拥挤的操控力。队列(Alignment):朝向附件同伴的平均朝向的操控力。聚集(Cohesion):向附近同伴的平均位置移动的操控力。雷达(Radar)从上面几种操控行为可以看出,每种操控行为都决定角色对相邻的其他角色做出任何反应。为了实现组行为,首先需要检测位于当前AI角原创 2021-03-13 08:06:08 · 714 阅读 · 2 评论 -
实现AI角色的自主移动-避开障碍物Obstacle行为
避开障碍物(Obstacle)行为避开障碍物行为是指操控AI角色避开路上的障碍物,例如动物奔跑时,避免与树、墙碰撞。当AI角色的行进路线上发现比较近的障碍时,产生一个排斥力,是AI角色远离这个障碍物。using UnityEngine;namespace AI.Steering{ public class SteeringForEvadeObstacle : Steering { //字段 //障碍物标记 public string原创 2021-03-12 09:57:52 · 1601 阅读 · 0 评论 -
实现AI角色的自主移动-路径跟随Path Following行为
路径跟随(Path Following)行为C#脚本代码using System;using UnityEngine;namespace AI.Steering{ /// <summary> /// 路径跟随:算法如同巡逻 需要路点 /// </summary> class SteeringForFollowPath : Steering { public enum PartolMode {原创 2021-03-11 08:07:03 · 1663 阅读 · 0 评论 -
实现AI角色的自主移动-徘徊Wander行为
徘徊(Wander)行为许多时候,人们需要让游戏中的角色在游戏环境中随机移动(如巡逻的士兵、惬意吃草的牛羊等),就像这些角色是在等待某些事情发生,或者是在寻找什么东西,当角色出现在玩家视线中,人们通常希望这种随机移动看上去是真实的,如果玩家发现角色实际上是在沿事先预定好的路径移动,就会有不真实的感觉,那么便会影响到他的游戏体验。随机徘徊行为就是让角色产生有真实感的随机移动,那么这会让玩家感觉角色是有生命的,而且正在到处移动。using UnityEngine;namespace AI.Steer原创 2021-03-10 08:23:50 · 1015 阅读 · 1 评论 -
实现AI角色的自主移动-逃避Evade行为
逃避(Evade)行为逃避行为是指猎物躲避捕猎者的行为,举例说明:鹿被狼追逐,鹿要不断变化逃跑方向,试逃离狼预测的追逐方向。与追逐行为算法相似。C#脚本代码using UnityEngine;/// <summary>/// 逃避与拦截相似/// </summary>namespace AI.Steering{ /// <summary> /// 逃避 /// </summary> public class原创 2021-03-09 12:39:13 · 1190 阅读 · 0 评论 -
实现AI角色的自主移动-追逐Pursuit行为
追逐(Pursuit)行为追逐行为也叫拦截行为,与靠近算法很像,只不过如果模拟动物追逐猎物的时候,绝不是直接向猎物的当前位置奔跑,而是预测猎物的未来位置,然后向着未来位置的方向追去,这样才能在最短时间内追上猎物。实现追逐行为的一个关键是如何确定预测间隔T,我们可以把它设成一个常数,也可以当追逐者距离目标较远时设较大的值,而接近目标时,设为较小的值,也可以设定预测时间和追逐者与逃避者之间的距离成正比,与二者的速度成反比。一般情况下,追逐行为可能会提前结束,当逃避者在追逐者前方,那么追逐者直接向逃避者的当原创 2021-03-08 10:06:33 · 753 阅读 · 0 评论 -
实现AI角色的自主移动-抵达Arrival行为
抵达(Arrival)行为有时我们希望AI角色能够减速并停在目标位置,避免冲过目标。当角色距离目标较远时,抵达和靠近行为状态一样,但是接近目标时,不再是全速向目标前进,而是减速,最终恰好停到目标位置。设置一个减速区和到达区域,当AI角色进入减速区,速度逐渐减小到预期速度,直到到达区域,AI角色停止移动。C#脚本代码using UnityEngine;namespace AI.Steering{ /// <summary> /// 抵达 /// </原创 2021-03-07 12:49:19 · 522 阅读 · 0 评论 -
实现AI角色的自主移动-离开Flee行为
离开(Flee)行为离开和靠近行为正好相反,它产生一个操控AI角色离开目标的力,而不是靠近目标的力。可以进一步调整,当AI角色进入一定范围内,才产生离开的力,这样可以模仿出AI角色的有限感知范围。C#脚本代码using UnityEngine;namespace AI.Steering{ /// <summary> /// 远离 /// </summary> public class SteeringForFlee:Steering原创 2021-03-06 19:33:53 · 431 阅读 · 0 评论 -
实现AI角色的自主移动-靠近Seek行为
靠近(Seek)行为操控行为中的靠近是指,指定一个目标位置,根据当前的运动速度向量,返回一个操控AI角色到达该目标位置的“操控力”,使AI角色自动向该位置移动。要想AI角色靠近目标,首先需要计算出AI角色在理想情况下到达目标的预期速度,该速度可以看作是从AI角色的当前位置到目标位置的向量。操控向量是预期速度与AI角色当前速度的差,该向量大小随着当前位置变化而变化,从而形成图中的靠近路线。using UnityEngine;namespace AI.Steering{ /// <s原创 2021-03-05 10:20:43 · 910 阅读 · 0 评论 -
实现AI角色的自主移动-主要基类
运动层-AI操控行为基本操作行为Unity3D操控行为编程的主要基类Vehicle类Steering类LocomotionController类基本操作行为“操作行为”是指操作控制角色,让他们能以模拟真实的方式在游戏世界中移动,它的工作方式是通过产生一定大小和方向的操控力,使角色以某种方式移动。“操控行为”包括一组基本“行为”。对于单独的AI角色,基本的操控行为包括:基本行为中的每一个行为,都产生相应的操控力,将这些操控力以一定的方式组合起来,就能得到更复杂的“行为”,从而实现更高级的目标。对原创 2021-03-04 10:43:53 · 1040 阅读 · 0 评论 -
Unity3D游戏AI架构
Unity-AI游戏AI架构模型运动层决策层战略层AI架构模型其他部分为了学习游戏人工智能AI模块,购买了《Unity3D-人工智能编程精粹》,记录自己的学习的过程。游戏AI架构模型尽管每种游戏需要的AI技术都有所不同,但绝大多数线代游戏中对AI的需求都可以用三种基本能力来概括。运动:移动角色的能力决策:做出决策的能力战略:战略战术思考的能力运动层导航和寻路是运动层AI的主要任务,它们决定了角色的移动路径。当然,具体的移动行为还需要动画层的配合才能完成。决策层决策层的任务是决定角色原创 2021-03-03 00:13:11 · 3845 阅读 · 1 评论 -
Unity人工智能-----感知系统-----视觉实现(1)
AI感知系统--视觉功能实现概念感知系统架构图:感知触发系统类图抽象感应器(AbstractSensor)抽象触发器(AbstractTrigger)触发器的类型(TriggerType)视觉感应器(SightSensor)视觉触发器(SightTrigger)感知触发系统(SensorTriggerSystem)测试用例概念概念:感知系统:在软件领域中:模拟人【或动物】的感觉的软件系统。【代码 数据类型】人的基本感觉:视觉、听觉、触觉、【嗅觉、味觉】视觉、听觉:目前是对视觉听觉模拟!智能感知原创 2021-01-24 00:55:57 · 1880 阅读 · 0 评论 -
Unity人工智能-----感知系统-----听觉实现(2)
听觉触发器:using System.Collections;using UnityEngine;/// <summary>/// 听觉触发器/// </summary>namespace AI.Perception{ public class SoundTrigger:AbstractTrigger { //传播距离 public float caseDistance = 5; //有效时间原创 2021-01-30 21:19:11 · 708 阅读 · 0 评论