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。
- "黑色的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