Godot 3D 场景基础
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/godot-3d-essentials-sh-80z5dw。
技能介绍
要解决什么问题
在 Godot 4.x 里新建或修补 3D 场景时,常见问题不是「缺模型」,而是场景能跑却全黑、视口里没有当前相机、父子节点局部/全局变换混用导致位移诡异,或是 GridMap 配了却一格都铺不出来。本技能面向 Godot 4.3+,把「能看的、能搭关卡的 3D 场景」拆成可执行的检查清单:变换、相机、光照、环境/后处理、材质与 GridMap 白盒。
技能如何组织工作流
核心约定是:一切 3D 对象都是带 Transform3D 的 Node3D。移动用 global_position,绕 Y 轴转用 rotate_y,对准目标用 look_at(注意 from/up 退化会出 NaN)。
典型步骤包括:
- 放置
Camera3D,设current或make_current(),并配置fov/near/far;跟拍相机可挂在 rig/pivot 上。 - 打光:
DirectionalLight3D当日光,OmniLight3D/SpotLight3D作局部光,按需开阴影;无光且无环境时表面会黑。 - 挂
WorldEnvironment,用Environment管天空/背景、环境光、tonemap 与 glow、SSAO、雾等后处理。 - 在
MeshInstance3D上赋StandardMaterial3D或ShaderMaterial。 - 用
GridMap+ MeshLibrary 在网格上铺关卡块(类似 2D TileMap 的 3D 版)。
技能内还给出跟拍相机、代码里搭太阳与环境、代码赋材质、向 GridMap 填格等模式示例,并指向 references/scene-and-environment.md 查 Transform、投影、阴影与 GI 等细节。
适用边界与常见坑
- 不要用它写空间着色器 → 用 godot-shaders;3D 物理与射线 → godot-physics;角色动画混合 → godot-animation;完整 FPS 模板 → fps-shooter 类技能。
- 非均匀缩放父
Node3D会扭曲子碰撞与灯光,优先缩放网格资源或保持均匀 scale。 - HDR/glow 过曝时检查
tonemap_mode与 glow 阈值;自发光在 filmic tonemap 下很容易炸 bloom。 - GridMap 未绑定 MeshLibrary 不会放置任何格子;
set_cell_item(cell, -1)可清空单元格。
使用场景
- 在 Godot 4.3+ 新建 3D 场景后视口全黑,需要按步骤补上 DirectionalLight3D 与带 ambient/sky 的 WorldEnvironment。
- 做第三人称或跟随视角原型时,要配置当前 Camera3D 的 fov/near/far,并把相机挂到 rig 上实现平滑跟拍。
- 关卡白盒阶段要用 GridMap 绑定 MeshLibrary,在 3D 网格上铺块并清空指定格子,而不是逐个手摆 MeshInstance。
- 场景发灰或过曝时,需要检查 Environment 的 tonemap、glow 阈值,并在 MeshInstance3D 上正确赋 StandardMaterial3D 或 ShaderMaterial。
适合人员
- 用 Godot 4 做 3D 玩法原型、刚遇到「有模型却全黑」却不知道相机与环境缺哪一项的独立开发者
- 从 2D/UI 项目转到 Godot、第一次要搭室外光照、天空与基础后处理环境的游戏学习者
- 负责关卡构图与白盒、需要在引擎里用 GridMap 快速铺关卡块而非只导入成品场景的技术策划
- 维护 Godot 4 三维场景、常因父子节点下混用 position 与 global_position 导致 look_at 或位移异常的后端向游戏程序员