mcpField
R
roblox-npc-ai

roblox-npc-ai

github.com/tabooharmony开发1382.1k 次安装2 周前更新
代码仓库

关于 roblox-npc-ai

面向 Roblox NPC 和敌人行为开发的技能,涵盖寻路、状态机、目标检测与更新循环,并强调限制寻路重试和在服务器端执行决策。

主要功能

  1. 01PathfindingService 配置
  2. 02NPC 状态机转换
  3. 03距离、视野与视线检测
  4. 04网络所有权指导
  5. 05节流并错开 AI 循环

适用场景

  1. 01让 NPC 绕开障碍物移动
  2. 02实现巡逻、追击和逃跑状态
  3. 03分阶段检测玩家

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/tabooharmony/roblox-brain --skill roblox-npc-ai

安装后在 Claude Code 中输入/roblox-npc-ai确认已加载。

附带文件references/full.md

详细介绍

Roblox NPC 与 AI

何时加载

用于 NPC/敌人:寻路、状态机、视线/视野检测、生成、AI 循环或物理所有权。

快速参考

PathfindingService
local path = PathfindingService:CreatePath({
    AgentRadius = 2, AgentHeight = 5, AgentCanJump = true,
    Costs = { Water = 20, DangerZone = math.huge },
})
path:ComputeAsync(npcPos, targetPos)
if path.Status ~= Enum.PathStatus.Success then return end
for _, wp in path:GetWaypoints() do
    if wp.Action == Enum.PathWaypointAction.Jump then humanoid.Jump = true end
    humanoid:MoveTo(wp.Position)
    if not humanoid.MoveToFinished:Wait() then return end
end
  • 遇到路径受阻时,使用有界重试或取消策略重新计算。
  • 在 Studio 中,先在有代表性的地图上测试 Workspace.PathfindingUseImprovedSearch,再进行部署;该属性无法通过脚本设置。
  • 避免长时间请求和反复重新计算。可移动的碰撞几何体可能触发导航网格处理。
  • 区域修饰器:锚定部件 + PathfindingModifier Label → Costs
  • 门使用 PassThrough = true;对于不连通的导航网格,使用 PathfindingLink
  • 成本为 math.huge = 不可通行
状态机

idle → patrol → chase → attack → flee → dead

  • idle/patrol → chase(检测到玩家)→ attack(进入范围)→ idle(目标丢失)
  • 任意状态 → flee(生命值低)→ idle(安全);任意状态 → dead(生命值 ≤ 0)
  • 状态转换负责管理移动变化、目标清理和取消
检测(距离 → 视野 → 视线)
  1. 距离 (a-b).Magnitude:开销最低,始终优先
  2. 视野 forward:Dot(toTarget) 余弦值;使用为游戏配置的锥形范围,不要使用通用角度
  3. 视线 workspace:Raycast:开销高,最后执行
  • 如果设计包含听觉或近距离检测,请将其设为单独配置的信号,而不是通用的视野绕过机制。
网络所有权
  • 经典项目可对物理敏感型 NPC 使用 SetNetworkOwner(nil),但这并不能提供完整的安全保障。在 Server Authority 项目中,应配置权限模型,而不是将网络所有权视为安全边界。
更新循环
  • 根据 NPC 数量、寻路开销和性能分析结果对 AI 进行节流和错峰处理,不要采用通用的固定频率。让 NPC 的决策和移动在服务端运行;客户端代码可处理表现效果。

有关生成器、生命周期清理、超时处理和性能预算,请加载 references/full.md。

评论

支持 Markdown