关于 roblox-npc-ai
面向 Roblox NPC 和敌人行为开发的技能,涵盖寻路、状态机、目标检测与更新循环,并强调限制寻路重试和在服务器端执行决策。
主要功能
- 01PathfindingService 配置
- 02NPC 状态机转换
- 03距离、视野与视线检测
- 04网络所有权指导
- 05节流并错开 AI 循环
适用场景
- 01让 NPC 绕开障碍物移动
- 02实现巡逻、追击和逃跑状态
- 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,再进行部署;该属性无法通过脚本设置。 - 避免长时间请求和反复重新计算。可移动的碰撞几何体可能触发导航网格处理。
- 区域修饰器:锚定部件 +
PathfindingModifierLabel → Costs - 门使用
PassThrough = true;对于不连通的导航网格,使用PathfindingLink - 成本为
math.huge= 不可通行
状态机
idle → patrol → chase → attack → flee → dead
- idle/patrol → chase(检测到玩家)→ attack(进入范围)→ idle(目标丢失)
- 任意状态 → flee(生命值低)→ idle(安全);任意状态 → dead(生命值 ≤ 0)
- 状态转换负责管理移动变化、目标清理和取消
检测(距离 → 视野 → 视线)
- 距离
(a-b).Magnitude:开销最低,始终优先 - 视野
forward:Dot(toTarget)余弦值;使用为游戏配置的锥形范围,不要使用通用角度 - 视线
workspace:Raycast:开销高,最后执行
- 如果设计包含听觉或近距离检测,请将其设为单独配置的信号,而不是通用的视野绕过机制。
网络所有权
- 经典项目可对物理敏感型 NPC 使用
SetNetworkOwner(nil),但这并不能提供完整的安全保障。在 Server Authority 项目中,应配置权限模型,而不是将网络所有权视为安全边界。
更新循环
- 根据 NPC 数量、寻路开销和性能分析结果对 AI 进行节流和错峰处理,不要采用通用的固定频率。让 NPC 的决策和移动在服务端运行;客户端代码可处理表现效果。
有关生成器、生命周期清理、超时处理和性能预算,请加载 references/full.md。
评论
支持 Markdown