了解UE游戏的基本构成
资源(Asset):
· 在UE中,资源(Asset)是指游戏中使用到的各种素材,例如模型、纹理、材质、声音、动画、蓝图、数据表格、关卡等(通常以uasset结尾),他们是构成游戏的基本组成部分。
· 资源可以是从外部导入的文件,也可以是通过UE提供的编译器创建的内容。右键可以创建的类型,都是UE里的资源
· 大部分资源并不由开发人员制作,但是需要了解并使用它们
资产创建的位置:
由虚幻编辑器中创建:
- 游戏关卡
- 材质(Materials)
- 粒子系统
- 过场动画序列
- 蓝图脚本
- 给人工智能用的导航网格(AI Navigation Meshes)
- 预计算光照信息(Light Maps)
- 场景(光卡)光照
由外部应用程序中创建:
- 静态网格物体(Static Meshes)
- 骨架网格物体(Skeletal Meshes)
- 骨架动画(Skeletal Animation)
- 贴图(Textures)
- 声音(WAVS)
- IES灯光信息
- Nvidia APEX文件(APB 及 APX)
逻辑(Logic):
· 在使用UE的开发过程中,资源和逻辑是密不可分的
· 逻辑是指游戏中的各种行为和交互逻辑,例如角色控制、AI、任务等
· 资源可以包含逻辑,如蓝图(BP)、行为树(BT)、动画状态机等
· C++代码则是纯粹的逻辑
· 将逻辑和资源有机地结合起来,以实现游戏的玩法,是游戏的核心任务
· 在游戏开发中,逻辑和资源是相互依存的,只有合理的组合和利用它们,才能够打造出丰富、生动、有趣的游戏体验
对每一个组成部分有简单的认识
静态网格体(Static Mesh):
· 是由一系列多边形构成的几何体的组成部分,缓存在视频存储器中,可以使用显卡进行渲染
· 俗称 不可动的3D模型,通常用于构建游戏世界中的静态元素,如建筑物、装饰物、地形等(不可动指的是不支持动画和形变、但可以进行平移旋转和缩放)
· Static Mesh通常是由建模软件(如 3ds Max、Maya等)创建完成后,通过导入插件将其导入到虚幻引擎中
· UE还提供了一些工具来优化Static Mesh的性能,如静态光照、LOD(Level of detail)和碰撞体等
在内容游览其中筛选静态网格体
材质(Materials):
· 虚幻引擎中的材质定义了场景中对象的表面属性,广义上,可以将材质理解为网格体上控制其视觉外观的“涂料”
· 在虚幻引擎中,Materials的应用非常广泛。它不仅可以应用于静态模型(Static Meshs),还可以应用于骨骼模型(Skeletal Meshs),并且可以通过实例化材料(Materials Instances)的方式实现实时的材质变化
· 此外,虚幻引擎还提供了各种材质优化技术,例如材质实例(Materials Instances)、材质球(Materials Layers),以满足游戏开发者对材质可定制性和性能的要求
打开材质编辑器
纹理(Texture):
· 纹理是一种主要用于材质的图像资源
· 材质可能会用到多种纹理,实现多种目的,例如一个普通材质可能用到基础颜色纹理,高光纹理、以及法线纹理
· 纹理也可用于UI
骨架网格体(Skeletal Meshes & Skeletal Animation):
· 骨架网格体由两部分构成:表面的一层多边形,使多边形顶点产生动画的一组层次化的关联骨骼
` 骨骼动画是指将骨骼网格与动画动作捆绑在一起,实现角色模型的动态表现。在Skeletal Animation中,每个骨骼都有自己的动画曲线,通过将这些动画曲线结合在一起,就能够实现整个角色的动态动画效果
在内容游览其中筛选骨架网格体
查看动画
蓝图(Blueprint):
· 虚幻引擎中的 蓝图可视化脚本 系统是一类完整的游戏性脚本系统,此系统的基础概念是使用基于节点的界面在虚幻编辑器中创建游戏性元素。和其它一些常见的脚本语言一样,蓝图的用法也是通过定义在引擎中的面向对象的类或者对象。使用虚幻引擎后便知,使用蓝图所定义的对象通常被直接称为“蓝图”
· 该系统灵活而强大,使设计师能够使用通常仅面向程序员的几乎所有概念和工具。此外,程序员可以借助虚幻引擎C++实现可用的蓝图特定标记创建基线系统,而此系统又可被设计师加以拓展
动画蓝图(Animation Blueprint):
· 动画蓝图是一种特殊的蓝图,它用于控制骨骼网格体的动画效果,动画蓝图编辑器(Animation Blueprint Editor) 中的 图表(Graphs)可以效果动画,允许直接控制骨架的骨骼,或设置骨骼网格体逐帧逻辑,以便创建最终动画姿势
玩家输入(PlayerInput):
· 玩家输入对象负责将来自玩家的输入转换为Actor(如 PlayerControllers 或 Pawn)可以理解的数据,PlayerInput是输入处理流程的一部分,通过玩家输入映射和输入组件,将玩家的硬件输入转化为游戏事件和运动。
· PlayerInput是用于管理玩家输入的,PlayerController类中的UObject。它仅在客户端上生成。PlayerInput 中定义了两种结构体,第一种是FInputActionKeyMapping,它定义了操作映射(ActionMapping)。另一种是FInputAxisKeyMapping,它定义了轴映射(AxisMapping)
摄像机(Camera):
· 摄像机代表了玩家的视角,比如玩家如何查看世界。因此,摄像机只和玩家控制的人物有关
· PlayerController会指定一个摄像机类,并实例化一个Camera Actor(ACameraActor)以此计算玩家从哪个位置和角度观察世界
用户界面(UI):
· 用户界面和头显(HUD)是游戏向玩家提供游戏信息以及在某些情况下允许玩家与游戏互动的方式
· 虚幻示意图形界面处理器(Unreal Motion Graphic UI Designer)(UMG)是虚幻引擎中的一套用户界面系统,用于创建游戏中的图形用户界面(GUI),UMG提供了一套可视化的工具和蓝图系统,使开发者能创建交互式和响应式的UI元素,如按钮、文本、图像、滚动条等
关卡(Level):
· 关卡是游戏的“世界”的全部或一部分。关卡包含玩家可以看到并于之交互的所有内容,例如环境、可用对象、其他角色,等等。在电子游戏中,常常有多个关卡,彼此之间有划分明确的过度(例如,在你打败一个关卡中的boss之后,你就会继续到下一个关卡)
· 虚幻引擎将每个关卡保存为单独的“.umap”文件
Level与World的关系:
· 为了游戏布置和其他因素,将整个游戏世界(World)划分为多个关卡(Level),一个World由一个或多个Level组成,World负责这些Level的加载和释放,对他们进行管理
· 多个Level拼接成为一个游戏世界
行为树(Behavior Tree):
行为树是用于创建角色AI行为的一种模块,行为树是一种基于状态机和决策树的机制,它可以使开发人员以图形化的方式创建角色的AI行为,从而使角色可以自主的及逆行决策并执行相应的行为
· 执行逻辑时,行为树会使用一种名为 黑板 的独立资源来存储它需要知道的信息,黑板解耦了行为树和外部的数据交换,让行为树变成存粹的逻辑