美文网首页人工智能AI 在Unity中的实现
Unity GameAI-(11)组合操纵行为三种方式

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

作者: Levi_Wan | 来源:发表于2016-12-10 17:09 被阅读216次

    组合操纵行为三种方式

    • 加权截断求和(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)解决方案

    • 最简单的方式是给每一种操控性为乘上一个权值,把它们加在一起,然后把结果截断到可允许的最大操控力。
    Paste_Image.png

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

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

    Paste_Image.png Paste_Image.png Paste_Image.png

    带优先级的抖动

    Paste_Image.png
    • 通过概率值来实现
    Paste_Image.png Paste_Image.png

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

    Paste_Image.png

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

    Paste_Image.png Paste_Image.png

    相关文章

      网友评论

        本文标题:Unity GameAI-(11)组合操纵行为三种方式

        本文链接:https://www.haomeiwen.com/subject/racumttx.html