用途
该技能用于创建或修复 Roblox 中的 NPC、机器人或敌人。当需要处理寻路、状态机、视线与视野检测、生成点、AI 更新循环或物理所有权时加载使用。
主要能力
寻路(PathfindingService)
使用 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(丢失目标)any → flee(生命值低)→idle(安全);any → dead(生命值 ≤ 0)- 状态转换负责处理移动变更、目标清理和取消操作。
检测(距离 → FOV → LOS)
- 距离
(a-b).Magnitude:成本最低,始终最先执行。 - FOV:使用
forward:Dot(toTarget)的余弦;视野锥角度应按游戏配置,而非通用角度。 - LOS:使用
workspace:Raycast,成本高,最后执行。 - 如果设计包含听觉或接近检测,应将其作为单独配置的信号,而不是绕过通用 FOV。
网络所有权
传统项目可能对物理敏感的 NPC 使用 SetNetworkOwner(nil),但这并非完整的安全保障。在服务器权威(Server Authority)项目中,应配置权威模型,而不是将网络所有权视为安全边界。
更新循环
根据 NPC 数量、路径成本和性能分析证据对 AI 进行节流与错峰,而非使用通用 tick 频率。NPC 的决策与移动保持在服务端;客户端代码可处理表现层。
对于生成器、生命周期清理、超时处理和性能预算,可加载 references/full.md 参考文档。
适用场景
适用于 Roblox 中 NPC、敌人、机器人的寻路、状态流转、目标检测、生成与性能优化等实现与调试任务。
限制
该技能聚焦于 Roblox NPC 与 AI 的技术实现指导。关于收费、价格、支持的平台或具体效果等事实,资料中暂未提供。