Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

组件定义了实体可以做什么。

实体是容器。组件是附加到该容器的功能。

image.png

本课介绍你作为初学者会看到的主要组件类型。你现在不需要记住每个选项。目标是识别这种模式:

> 当实体需要某个功能时,通常会添加提供该功能的组件。

实体由组件构建

一个新的实体可以非常简单地开始。

之后,随着组件的添加,它会变得更强大:

  • 添加 Transform Component,实体将在3D世界中有位置。
  • 添加 Mesh Component,它可以变得可见。
  • 添加 Rigid Body Component,它可以与世界发生碰撞。
  • 添加 Python Component,它可以运行游戏逻辑代码。
  • 添加 Logic Bricks Component,它可以运行可视化逻辑。
  • 添加 Audio Player Component,它可以播放声音。

这就是常规的 Cave 工作流:通过组合组件来构建实体。

例如:

你想要的对象 可能的组件配置
火把 Transform, Mesh, Light, Audio Player.
Transform, Mesh, Rigid Body, Logic Bricks 或 Python.
玩家 Transform, Character, Camera, Animation, Python.
生命拾取物 Transform, Mesh, Rigid Body触发器, Logic Bricks 或 Python.

不必为每种情况寻找特殊的对象类型,而是组合你需要的对象。


核心组件

有些组件非常常见,你会经常见到它们。

组件 主要用途
Transform Component 存储位置、旋转和缩放。
Camera Component 定义摄像机视角。

Transform Component

Transform Component 存储位置、旋转和缩放。

image.png

大多数3D实体依赖它,因为大多数对象需要存在于世界中的某个位置。当你在3D视图中移动、旋转或缩放实体时,你实际上是在编辑它的变换。

很多其他组件都依赖变换:

  • 光源需要位置。
  • 网格需要位置。
  • 摄像机需要位置。
  • 3D声音源需要位置。

Camera Component

Camera Component 定义一个摄像机视角。

image.png

当你希望某实体作为游戏摄像机使用时,添加此组件。

摄像机被用于:

  • 第一人称游戏。
  • 第三人称游戏。
  • 俯视游戏。
  • 菜单。
  • 剧情动画。
  • 特殊视角。

场景有默认的场景摄像机,但游戏过程中的摄像机通常是带有 Camera Components 的实体。这使它们更容易移动、设置父子关系、动画、脚本控制或者在游戏中切换。


图形组件

图形组件控制玩家所看到的内容。

组件 用途
Mesh Component 可见的3D对象。
Light Component 局部光源。
Particle Component 由许多小片段组成的视觉效果。
Animation Component 骨骼动画播放。
Animation Socket Component 将子实体附加至动画骨骼。

Mesh Component

Mesh Component 使用材质渲染一个网格。

image.png

适用于:

  • 道具。
  • 墙壁。
  • 角色。
  • 门。
  • 武器。
  • 环境元素。
  • 任何可见物体。

网格组件通常引用一个网格资源和一个材质资源。网格提供形状,材质控制表面外观。

Light Component

Light Component 为场景添加局部光源。

image.png

用于:

  • 灯。
  • 火把。
  • 魔法光。
  • 发光道具。
  • 聚光灯。

场景的太阳光和环境光影响整个场景。需要在特定位置产生局部光照时,就在实体上放置光组件。

Particle Component

Particle Component 创建重复的视觉元素和效果。

image.png

用于:

  • 烟雾。
  • 火花。
  • 灰尘。
  • 火焰。
  • 风。
  • 碎片。
  • 魔法效果。

粒子系统很有用,因为你不想让每个火花或者灰尘都是一个完整的人工放置实体。一个粒子组件可以生成并控制许多小的视觉元素。

Animation Component

Animation Component 播放骨骼动画。

image.png

它与骨架和动画资源配合,能处理播放、混合、图层以及最终动画姿态。

适用于:

  • 有动画的角色。
  • 有动画的生物。
  • 骨骼道具。
  • 使用骨骼的任意导入动画网格。

Animation Socket Component

Animation Socket Component 将子实体附加到父实体动画的特定骨骼上。

image.png

用于:

  • 剑。
  • 枪。
  • 盾。
  • 头盔。
  • 背包。
  • 手持道具。

这样无需每帧手动更新道具,插槽会跟随选定骨骼。


物理组件

物理组件控制碰撞和物理运动。

组件 用途
Rigid Body Component 碰撞、物理对象、触发器。
Character Component 玩家和NPC角色移动。
Physics Constraint Component 连接刚体。

Rigid Body Component

Rigid Body Component 赋予实体物理行为。

image.png

用于:

  • 静态碰撞。
  • 动态物体。
  • 物理道具。
  • 类触发器的幽灵物体。

例如,墙壁可用静态刚体防止玩家穿过,可移动箱子用动态刚体以响应物理力。

Character Component

Character Component 专为角色移动设计。

image.png

用于需要:

  • 行走。
  • 跳跃。
  • 沿墙滑行。
  • 处理斜坡。
  • 像角色而非松散物理体那样移动的玩家或NPC。

通常作为可控角色的更好起点,而非普通刚体。

Physics Constraint Component

Physics Constraint Component 连接刚体。

适用于更高级物理设置,如:

  • 铰链。
  • 关节。
  • 桥梁。
  • 类布偶系统设置。
  • 连接的物理对象。

你不必立即使用,但认识它有助于后续处理摆动门、悬挂物或机械装置等场景。


世界和游戏组件

有些组件能帮助构建世界或向玩家展示游戏。

组件 用途
Terrain Component 户外地形和雕刻地面。
Audio Player Component 声音、音乐、氛围音和3D音频。
UI Element Component 文字、按钮、面板、HUD和菜单。

Terrain Component

Terrain Component 创建和编辑地形。

image.png

用于户外关卡、景观、山丘、山谷、道路和大面积地面。

地形有专用编辑工具,稍后会介绍。

Audio Player Component

Audio Player Component 播放声音或音乐。

可用于:

  • 音乐。
  • 环境循环音。
  • 音效。
  • 3D定位音频。
  • 界面声音。

音频也可以通过脚本、Logic Bricks、时间轴、UI回调和动画回调触发。

UI Element Component

UI Element Component 创建游戏界面元素。

image.png

用于:

  • 文字。
  • 按钮。
  • 面板。
  • 菜单。
  • 生命值条。
  • HUD元素。

Cave中的UI也是由实体构建,因此UI可以使用层级、组件、属性和逻辑,就像游戏其他部分一样。


逻辑组件

逻辑组件使实体有行为。

组件 用途
Python Component 可重用的Python游戏行为。
Python Code Component 小型内联Python行为。
Logic Bricks Component 可视化脚本图形。
State Machine Component 基于状态的行为。

Python Component

Python Component 将Python脚本资源附加到实体。

image.png

用于可重用的游戏逻辑,如:

  • 门的行为。
  • 敌人行为。
  • 交互。
  • 界面逻辑。
  • 游戏规则。
  • 自定义系统。

Python Code Component

Python Code Component 直接在组件中存储小型内联Python代码段。

image.png

用于快速测试、小型局部行为或一次性原型。

对于较大的可重用逻辑,推荐使用Python Script资源搭配Python Component。

Logic Bricks Component

Logic Bricks Component 将Logic Bricks资源附加到实体。

image.png

Logic Bricks是Cave的可视化脚本系统。通过连接节点创建行为,而不是直接编写代码。

image.png

适用于触发器、简单交互、UI行为和通过视觉方式更易理解的游戏事件。

State Machine Component

State Machine Component 将分层状态机附加到实体。

image.png

状态机适用于具有清晰状态的行为,例如:

  • 待机。
  • 行走。
  • 追逐。
  • 攻击。
  • 逃跑。
  • 死亡。

它们特别适合敌人、NPC 以及结构化的游戏玩法逻辑。


车辆组件

Cave 还包含与车辆相关的组件。

如果你生成了初始车辆内容,可能会看到这些。

Component 作用
Vehicle Component 将物理对象变成车辆风格的车体。
Wheel Component 定义车辆轮子的行为。

Vehicle Component 与刚体和轮子组件配合使用。

Wheel Component 包含与轮子相关的行为,如悬挂、转向、轮子半径以及是否为前轮。

实用组件方案

这里有一些简单的组件组合思路:

目标 组件方案
可见的静态道具 Transform + Mesh。
实心墙壁 Transform + Mesh + Rigid Body。
移动玩家 Transform + Character + Python + Camera。
有环境效果的火炬 Transform + Mesh + Light + Audio Player。
菜单中的按钮 UI Element + Python 或 Logic Bricks。
敌人行为 Character + Animation + State Machine 或 Python。

这些不是严格规则,仅供参考起步。

随着你构建更多对象,选择合适组件的速度会越来越快。

其他组件

Cave 还有比本课介绍的更专业的组件。

这是很正常的。

你无需在制作第一个场景前知道所有组件。现在重点掌握一个实用模式:给实体添加合适的组件,实体就会变得有用。