
_
A JEV NPC 不是整个大脑都外包给模型的角色。它是一个游戏角色,其战术决策层评估不断变化的状态并在游戏已经合法的行动中进行选择。感知、运动、动画、能力和世界规则仍然保留在游戏中。
从感知到行动
强大的 NPC 管道具有不同的阶段:感知决定角色知道什么;状态预测总结了相关事实;动作生成器创建合法的 Choices; JEV 评估决策;执行者运行选定的意图; 兜底策略 策略处理超时或无效响应。
NPC 状态应该包含什么?
包括角色、生命值、耐力、可见威胁、目标距离、掩护候选人、盟友需求、目标状态、冷却时间、弹药、库存限制、当前行动和相关记忆。排除隐藏信息和原始引擎对象。状态应该描述什么可以改变下一个有意义的 Choice,而不是关卡中的每个对象.
攻击、撤退、治疗或探索?
这些 Choice 揭示了真正的权衡。攻击可能会消除威胁,但会暴露 NPC。撤退可能会保留性格,但会放弃目标。治疗可以在消耗冷却时间的同时帮助盟友。探索可能会揭示一条路线,同时也会增加风险。游戏定义了硬性前提条件; JEV 有助于比较上下文中的合法选项。
JEV 和行为树
行为树在透明序列(例如移动、等待、重试导航和发挥能力)方面表现出色。 JEV 可以选择在树执行细节时激活分支的意图。这使得模型的贡献足够窄以进行测试并且执行路径熟悉。
JEV 和有限状态机
FSM可以保持明确的模式,例如巡逻、警报、战斗和逃跑。 JEV 可以帮助选择模式内的转换或高级操作,但它不应该默默地创建无界状态图。保持转换可观察,并让确定性代码处理安全关键的更改。
NPC 应该多久询问一次?
使用事件和有限的战术计时器。当威胁出现、行动完成、目标改变、目标丢失或冷却时间可用时重新考虑。避免每帧调用。低级别运动继续执行最后一个经过验证的意图,而延迟的请求则安全回退。
兜底策略 是 NPC 设计的一部分
根据角色和风险选择 兜底策略。受伤的同伴可以移动掩护;守卫可以控制目标;平民可以沿着指定路线逃离; Boss可以继续当前阶段。记录每个 兜底策略 的原因,以便设计人员可以将错误的决策与超时或过时的目标区分开来。
- 如何评估 JEV 它是否只接收它可以感知的信息?_Choice在当前是否有意义情况?_每个返回的操作都可以验证并执行吗?_模型运行时是否安全地继续不可用?_团队可以重播相同的状态并检查结果吗?_
- 特定于角色的决策合同
- 不同的 NPC 角色需要不同的状态和操作词汇。警卫可以选择巡逻、调查、呼叫支援、追击或封锁。治疗者可以选择治疗、掩护、撤退或协助。平民可以选择隐藏、逃跑、寻求帮助或继续日常生活。重复使用一种通用提示通常会使行为变得模糊;特定于角色的合同使测试和平衡更加清晰。
- 没有隐藏全知的短期记忆
- NPC 可以记住最后一次看到的威胁、中断的行动、最近的盟友请求或已知的不安全路线。将内存存储为具有过期和置信度的显式状态。不要将记忆变成不受限制的记录,以揭示角色不知道的事实。记忆预测应该解释为什么它会影响下一个决定。
将行为质量与有效性分开衡量
有效的操作不一定是好的操作。将合同有效性、战术结果、客观进度、生存、团队支持、玩家感知、延迟和 兜底策略 率作为单独的指标进行跟踪。总是选择合法行动但放弃目标的守卫存在平衡问题,而不是 API 问题。
当 JEV 不是正确的工具时
使用编写的逻辑来实现固定动画、安全联锁、精确的教程节拍、服务器权限检查或只有一个可能答案的决策。使用导航进行寻路,使用行为树进行多步骤执行。 JEV 当多项有意义的行动合法并且最佳行动随上下文而变化时会增加价值。
NPC 审核清单
_设计者能否解释当前状态和候选操作?_NPC是否仅在允许的情况下起作用感知?_动作转换是否可观察到?_兜底策略对此是否可信角色?_玩家能否理解角色的意图?_QA 能否重播准确的内容遇到?_对于更广泛的架构,请阅读JEV游戏AI
。有关 API 详细信息,请参阅JEV API 用法_。对于 Unity,请继续JEV Unity 教程
.
NPC review checklist
- Can a designer explain the current state and candidate actions?
- Does the NPC act only on permitted perception?
- Are action transitions observable?
- Is the 兜底策略 believable for this role?
- Can a player understand the character's intent?
- Can QA replay the exact encounter?
For broader architecture, read JEV Game AI. For API details, see JEV API usage. For Unity, continue to JEV Unity tutorial.


