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

用于需要:

  • 行走。
  • 跳跃。
  • 沿墙滑动。
  • 处理坡度。
  • 像角色而不是松散的物理对象移动。

通常这是控制角色的一个更好的起点,而不是一个普通的刚体。

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 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 Component的Python Script资产。

Logic Bricks Component

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

image.png

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

image.png

用于触发器、简单交互、用户界面行为以及更容易以可视方式理解的游戏事件。

State Machine Component

State Machine Component 将一个层次状态机附加到实体。

image.png

状态机适用于具有明确状态的行为,例如:

  • 静止。
  • 行走。
  • 追逐。
  • 攻击。
  • 逃跑。
  • 死亡。

它们对敌人、NPC 和结构化的游戏逻辑特别有用。


车辆组件

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

如果您生成启动器车辆内容,您可能会看到这些组件。

组件 目的
车辆组件 将物理对象转换为车辆样式的主体。
轮子组件 定义车辆的轮子行为。

车辆组件与刚体和轮子组件一起工作。

轮子组件包含轮子相关的行为,例如悬挂、转向、轮子半径,以及该轮子是否为前轮。

实用组件配方

以下是一些关于组件组合的简单思路:

目标 组件配方
可见静态道具 变换 + 网格。
固体墙壁 变换 + 网格 + 刚体。
移动玩家 变换 + 角色 + Python + 摄像机。
带氛围的火把 变换 + 网格 + 光源 + 音频播放器。
菜单中的按钮 UI 元素 + Python 或逻辑砖。
敌人行为 角色 + 动画 + 状态机或 Python。

这些不是严格的规则,而是起点。

随着您构建更多对象,您会更快选择合适的组件来完成任务。

其他组件

Cave 还有比本课涵盖的更多专业组件。

这是正常的。

在制作您的第一个场景之前,您不需要了解每个组件。现在,专注于这种有用的模式:当您为实体添加正确的组件时,它就会变得有用。