Unity GameAI-(11)组合操纵行为三种方式

组合操纵行为三种方式

  • 加权截断求和(Weighted Truncated Sum)
  • 带优先级的加权截断累计(Weighted Truncated Running Sum with Prioritization)
  • 带优先级的抖动 (Prioritized Dithering)

什么是权值?
在数学领域,权值指加权平均数中的每个数的频数,也称为权数或权重。
首先,我们需要了解加权平均数的概念。
加权平均数是不同比重数据的平均数,加权平均数就是把原始数据按照合理的比例来计算,
若 n个数中,x1出现f1次,x2出现f2次,…,xk出现fk次,那么(x1f1 + x2f2 + ... xkfk)/(f1 + f2 + ... + fk) 叫做x1,x2,…,xk的加权平均数。f1,f2,…,fk是x1,x2,…,xk的权值。.

计算机领域中(数据结构)
权值就是定义的路径上面的值。可以这样理解为结点间的距离。通常指字符对应的二进制编码出现的概率。

1. 操纵行为的应用场景

  • 应用场景一示例: [纯操控行为实现,不能借助刚体与导航网格]让角色从A移动到B(可以是Path Following,也可以做Seek行为或者Arrival行为),在路上需避开障碍,还要避开其他动态角色(分离),此时需将这三种操纵行为组合起来。

  • 应用场景二示例:

    • 鹿群
    • 群聚(包括分离,聚集,对齐)
    • 同时还需要在环境中随机徘徊(随机徘徊)
    • 避开石头和树木(避障)
    • 遇到狼走近时要四处逃散(evade)

2. 加权截断求和(Weighted Truncated Sum)解决方案

  • 最简单的方式是给每一种操控性为乘上一个权值,把它们加在一起,然后把结果截断到可允许的最大操控力。
Unity GameAI-(11)组合操纵行为三种方式_第1张图片
Paste_Image.png

缺陷:每帧都要分别计算每一个激活的操控力,代打太大。
有相互冲突力的时候,难以调节行为的加权和的参数值。一个情景是交通工具被许多其他的交通工具逼到一堵墙的时候,要使交通工具离开临近区域交通工具的分离力可能大于墙的阻挡力,结果交通工具被推过墙的边界,这是非常不好的现象。当然可以把wall avoidacne的权值增大,那么下次当交通工具再单独靠近墙时,就会发生奇怪的行为。

3. 带优先级的加权截断求和。

Unity GameAI-(11)组合操纵行为三种方式_第2张图片
Paste_Image.png
Unity GameAI-(11)组合操纵行为三种方式_第3张图片
Paste_Image.png
Unity GameAI-(11)组合操纵行为三种方式_第4张图片
Paste_Image.png

带优先级的抖动

Unity GameAI-(11)组合操纵行为三种方式_第5张图片
Paste_Image.png
  • 通过概率值来实现
Unity GameAI-(11)组合操纵行为三种方式_第6张图片
Paste_Image.png
Unity GameAI-(11)组合操纵行为三种方式_第7张图片
Paste_Image.png

5. 应用场景一的三种操控行为的组合。

Unity GameAI-(11)组合操纵行为三种方式_第8张图片
Paste_Image.png

效果:动态避障,然后聚集

Unity GameAI-(11)组合操纵行为三种方式_第9张图片
Paste_Image.png
Unity GameAI-(11)组合操纵行为三种方式_第10张图片
Paste_Image.png

你可能感兴趣的:(Unity GameAI-(11)组合操纵行为三种方式)