SuperAPI AI 工具集

godot-genre-shooter-fps

编程与开发

查看项目

更新于 10-16 10:37

技能介绍

用途

本技能是 Godot 引擎第一人称射击(FPS)游戏的专家级蓝图,用于指导 FPS 核心玩法系统的实现与打磨。它围绕核心循环「移动/视角 → 瞄准 → 射击(hitscan)→ 后坐力恢复 → 再次索敌」组织,覆盖相机视角、移动物理、命中查询、武器摆动与后坐力等关键环节。

主要能力

技能提供一组强制阅读的脚本作为实现基础:

  • fps_camera_look.gd — 原始 _input 鼠标视角(yaw/pitch)
  • fps_movement_logic.gd — 加速度/摩擦力/空中控制
  • hitscan_weapon_query.gd — 空间状态 hitscan
  • weapon_bobbing_system.gd — 视图模型摆动/摇晃

此外还包含 procedural_recoil_handler.gd、hitscan_weapon_logic.gd、advanced_fps_controller.gd、weapon_state_machine.gd、frame_perfect_input.gd、bullet_decal_spawner.gd、weapon_spread_calc.gd、server_projectile_instance.gd、player_anim_bridge.gd、recoil_system.gd(弹道模式 + bloom)、aim_assist.gd(手柄摩擦/磁吸)等脚本。

技能还给出高级 FPS 技巧:视图模型的正弦摆动与视角摇晃、台阶抬升(step-up)、战术侧倾(tactical lean)。

使用方式

技能以「强制脚本阅读」为起点,要求先阅读核心脚本,再按需查阅参考文档。它列出大量「NEVER」规则,例如:

  • 枪战与命中注册:不要在 _process 中做命中检测,应使用 _physics_process + intersect_ray;后坐力不能只作用于枪模型,必须作用于相机并配合散布;不要信任客户端伤害,需服务端权威与延迟补偿;不要忘记为玩家 RID 设置 exclude / add_exception;浮点冷却不要用 ==,应使用 is_equal_approx。
  • 输入与移动:不要在 _physics_process 中轮询鼠标,视角应使用 _input / _unhandled_input;不要在原始 Transform3D 上累积视角,应存储 yaw/pitch 浮点;不要在 move_and_slide() 前将速度乘以 delta;枪口前向不要用 Transform3D.looking_at,应使用 -transform.basis.z。
  • 打磨:枪声不要用单个 AudioStreamPlayer,应分层机械音 + 射击音 + 尾音;贴花不要永久保留,应淡出/池化;武器数值不要硬编码,应使用 WeaponData Resources;热路径武器状态不要用普通 String,应使用 StringName。

技能还提供官方文档链接(如 Ray-casting、Physics introduction、Using 3D transforms、Using InputEvent、Mouse and input coordinates、Controllers/gamepads、Using decals、High-level multiplayer、Using AnimationTree、Resources、Audio streams、Optimization using Servers)以及相关技能路由(前置、补充、下游、主控)。

适用场景

适用于在 Godot 中开发 FPS 游戏、需要实现或优化射击手感、命中注册、后坐力、武器摆动、移动物理等系统的开发者。也适用于需要将 FPS 射击逻辑与多人网络、动画、音频、性能优化等模块集成的项目。

限制

技能中关于收费、价格、平台、效果等具体信息暂未提供。部分脚本与参考文档的具体内容需查阅原始仓库。TPS/掩体理论链接到 godot-genre-shooter 兄弟技能,本技能聚焦 FPS 专属装配。