用途:面向 Godot 4.x 项目的 3D 玩法实现与排障,把控制器、相机与渲染当作一套协同系统来处理,并尽量沿用项目已有架构,基于观察到的实际行为调参,而不是用通用控制器替换可用系统。
主要能力:
- 控制器:以 CharacterBody3D 实现脚本驱动的角色,处理地面、墙面、斜坡与移动平台行为;在 _physics_process 中按每秒单位处理 velocity,每个物理帧调用一次 move_and_slide()。
- 相机:使用 SpringArm3D 相机架应对关卡几何遮挡,分离 yaw 与 pitch 枢轴,并排除玩家碰撞体。
- 物理体选型:AnimatableBody3D 用于承载角色的脚本或动画平台;RigidBody3D 用于受力驱动的物体,不用逐帧改写 transform 的方式驱动。
- 输入:使用 Input Map 动作而非物理键常量,使键盘与手柄共享玩法代码。
- 渲染与光照:先建立一个 WorldEnvironment 和一个主光源,保证基础画面可读后再增加后处理和额外阴影光源。
使用方式:先完成检查再编辑。定位 project.godot 确认项目根目录,读取 config/features、渲染方式、物理帧率、显示设置、3D 物理层名称与现有 Input Map 动作;用项目既有 Godot 可执行文件运行 --version,使 API 匹配具体的 4.x 版本,不静默升级项目或资源格式;检查代表性 .tscn、.gd 与导入的 3D 资源,记录场景归属、节点命名、typed GDScript 风格、信号风格、分组、autoload、目录结构以及节点引用方式;检查当前玩家、相机、关卡、环境、碰撞层与掩码、模型缩放、变换与输入绑定,编辑前确认网格或资源是否共享;确认目标渲染器与硬件。若编辑器版本、项目特性标签与所需 API 不一致,应先解决版本不匹配。之后定义可观察行为(移动参考系、最高速度、加速度、空中控制、斜坡限制、跳跃规则、相机范围与碰撞等),构建或改造可复用玩家场景,对齐碰撞体与脚部,保持根节点为单位变换,再按示例实现带类型的控制器代码,最后做验证。
验证:先用项目自带检查,再做可适用步骤,包括用匹配的编辑器导入解析,若支持无头验证可运行 <godot> --headless --path <project> --editor --quit 并检查完整输出;运行玩家场景与至少一个整合关卡,确认只有一个活动玩法相机;测试启动、停止、反向、斜向输入、无输入减速、跳跃按下与长按、天花板接触、边缘、楼梯、浅坡与超限斜坡、墙、拐角、移动平台;旋转相机全范围,检查移动朝向、俯仰限制、相机碰撞与遮挡恢复、近裁剪面相交与鼠标捕获释放;在低高渲染帧率下保持物理稳定;用可见碰撞形状与远程场景树核对碰撞体、层、掩码与运行时变换;对比暗、亮、室内、室外视图;在目标硬件上做性能剖析后再保留昂贵效果。
适用场景:Godot 4.x 3D 项目中的角色移动、第三人称相机、物理平台、基础环境光照与可读性调优,以及上述系统的排障。
限制:资料未提供具体收费、价格、平台支持范围或效果数据;文档要求以项目实际版本与环境为准,部分视觉与设备检查需在有渲染的环境中完成,无头解析不能替代视觉验证。