AI info

来源:互联网 发布:美迪wt软件 编辑:程序博客网 时间:2024/04/30 02:31

MOD制作者参考

概要

  • 用FG的AIExecute节点来让AI在战斗状态的时候做你想让他做的事情;
  • AI一次只能做一件事情.
然后AI能够一边移动一边开火。他可能走的比较慢,但是最终他会走到目的地;
-放置一个tagPoint (RollUpBar --> AI button --> TagPoint) 作为AI的目的地.
-在FG中,加入一个AI:AIExecute节点和一个Entity:EntityID节点;
-选中场景中的AI,然后在AI:AIExecute节点上右键点击,Assign selection;同样,选中tag point,Assign到Entity:EntityID节点;
-连接Entity:EntityID的ObjectID端口到AI:AIExecute上;
-在AI:AIExecute节点上,给set_defend_pos选择一个动作;
按你需要激活这个动作;
注意:
上述设置实际上让AI找到一个地方作为据点,AI会在这个据点上反击. 如果他不在这个据点,他会在战斗一开始就尝试往据点移动。记住所有属于这个组的AI都会具有这样的行为,所以你需要关注到每个AI的Group ID。
  • AI具备同一组行为的两个条件:相同的GroupID 和相同的Character(在SandBox可以看到).

AI Characters



  • 在Crysis中,我们有3个基本角色(和一些特殊的): Cover2, Camper and Flanker.
Cover2 - 基础步兵. 他们会趋向于在玩家前进的方向上从一个掩体一个掩体的交换,具备强烈的攻击性,会给玩家带来很大的挑战,是最常见的单位。
Camper - 趋向于防守的单位。他们的行为趋向于躲在某个特定的地点。是防守型的很好选择。会人很多的雷。
Flanker (sneaker) - 趋向于在掩体间循环走动,侧翼攻击。
  • 其他Characters:
Leader - 协助单位。当这个单位被打死后,群组中的AI会陷入混乱,很容易解决。
WatchTowerGuard - 一般呆在一个地方攻击。设计做看护警戒塔用的,所以他经常蹲在掩体后。
Sniper - 找到掩体后攻击玩家。
SuitHurricane - '移动火炮', 当敌人近距离后会使用重击.
FriendlyNPC: - 蹲着射击,不会移动的人.
SuitBoss: - 跟SuitHurricane相似,只不过他有个“Press Mode”,这个被激活的时候如果他血量在50%以下,他就会尝试走进敌人,并且快速解决这个敌人。

AI Behaviours

  • AI行为并不是一成不变的。行为由AI Character脚本来控制,所以它从某种意义上来说,只在开始的时候有意义。只要Character脚本发出了一些信息,这个行为就会改变了。
SuitHurricaneIdle - AI持武器
Job_ProneIdle - 俯卧的AI

Job_StandIdle - 标准行为

Job_LookAround - 很容易发现玩家

Job_Investigate - 持武器并且进入潜行状态
  • ReineforcementSpot 会让AI收到警报的时候跑到该点,并且播放特定的动画。任何其他你想让AI做的事情都必须通过FG来设置。

Cover

  • 掩体是让让AI有挑战性的最重要的因素
-掩体对AI来说是一个参考点,这个参考点可以让AI在枪林弹雨中躲藏。
-AI在移动和寻找玩家的时候也会考虑掩体。所以放置把掩体放在一个正确的位置是一个很重要的工作。理想的状况是,掩体之间互相相聚12到15米。
-AI不会把已经有AI在使用的掩体和20米之外的掩体考虑在内;
-设计的时候需要考虑的事情是普通的和第二躲藏点,其他都是由AI行为控制的。
  • 掩体和可以躲藏的地方需要通过放置AIAnchor,同时这个东西的属性AnchorType需要被设置COMBAT_HIDESPOT或者是COMBAT_HIDESPOT_SECONDARY。

AI Navigation



  • "黑色的links(AINavModifiers)表示的是:这些链接会在链接中的物体被移走后生效。举例来说,如果两个AI Points中间有个酒桶,那这个链接开始是黑色的,当这个酒桶被拿走后,这个链接就有效了,这个时候AI就 可以用到这些链接。
  • "在大的,平坦的区域,如大型停车场,你可以不用frobidden areas。

  • "打开AI_debugdraw 85 (设置成0的时候是关闭). 这个调试信息让我们放置forbidden areas到斜坡上。红色表示太陡,绿色表示可能AI能移动到那里,但是很有可能会发生一些问题。
  • "植物,譬如说树、灌木丛和石头,你必须设置AIRadius。
  • "每次都必须重新生成AI triangulation"



Perception(感知,指让AI模拟人对外界事物的反应)

  • 如果你想让驾驶LTV的AI忽略你,而只做他本来想做的事情。但是同时你想让LTV的机枪手继续射击,AI:AIIgnore节点可以用来让驾驶者和乘坐者忽略你。
  • 在sightrange (SandBox中)中,你可以设置感知半径。
举例来说,AI Camper\Camp.Heavy_Rifle的感知范围是70米。
如果你把PerceptionScale设置成0.5,那么他就只能在35米的半径内看到你(事实上,除了半径,AI跟玩家一样,具有视角范围)
如果你把PerceptionScale设置成2,也就是他拥有的半径是140米。
但是也请注意,在AI进入战斗模式后,这个感知范围值会被重置成默认的,在上面的例子中,也就是70。
如果你想要调小这个范围,特别是在AI进入战斗后。你必须修改'attackrange'参数。
  • ai_SOM - 两个ai_SOM变量,决定了玩家的“猫步前进“被AI感知的速度。一般来说,这个值越高,那么敌人就越是容易感知到玩家,并且引起反应的速度也更快。
  • ai_RODStanceInc决定了在掩体中,或趴着的时候,给AI带来的感知难度。
ai_RODStanceInc=0.15就比较难了。
ai_RODStanceInc=0就更加的难了。
  • ai_WaterOcclusion
这个值决定在水中时被AI发现的难度系数。这个值越大,那么AI发现在水中的你的机会就越小。


Debugging

  • Flow Graph: 最好的FG的调试方法是在HUD文件夹中打印出的消息,这样能知道相应的FG是否激活了。
加入一个HUD:DisplayTimedDebugMessage,在相应的栏位填入一些内容。
你可以在重要的节点的开始和结束后的地方加入相应的HUD,来看这些节点是否像你想像的运行。


  • ai_DebugDraw 1
ai_DebugDrawHidespotRange 50
你会看到大多数的物品会自动产生隐藏点。
  • AI 战术调试:
ai_DebugDraw 1
ai_DrawGroup -1
ai_DrawGroupTactic 2
这些命令能显示一些组队战术。


  • sys_AI [0,1] - 如果设置成0,AI就不会被更新了。ai_IgnorePlayer只是让AI忽略玩家。
  • ai_IgnorePlayer=0 (0=关),这个能让AI忽略玩家(调试的时候他就不会看见你就开枪)。
  • 为了得到NPC等地调试信息: 在编辑器中或在游戏中的时候,按数字键#7 ("DebugGun") (命令=debug)
这个开关打开的时候,如果按下右键来瞄准一个AI的时候,可以看到更多的信息。
  • ai_debugdraw 79 (显示寻路方面的辅助信息)
  • 关闭调试信息:
ai_StatsTarget=0
ag_debug=0
v_debugVehicle=0