【UE4】创建首个关卡

UE4 构建首个关卡

  本文利用 UE4 中的 “Third Person” 模板,从空项目创建出一个小关卡出来。

最终效果:

参考资料:

  1. 虚幻引擎入门 第一个小时

具体步骤

1. 创建 Third Person 游戏项目

  在 Epic Games Launcher 中启动 UE4 引擎,创建新项目,选择 “Games” Category,“Third Person” Template。Project Settings 的设置方式可以参考:Project Settings

2. 创建level

  在 “Content” 中右键,选择 “New Folder”,命名 Levels,作为游戏场景文件夹。在 “Levels” 文件夹中,右键,新建一个 “Level”,命名后,双击打开。

3. 创建一个地板

  在 “Content Browser” 中的 “Filters” 中只选择 “Static Mesh”,选一个地板到 view 窗口中,并在 “Details” 面板中,将 Location 设为 (0, 0, 0)。应该是黑色的,因为还没有添加光源。

4. 光源

  在 “Place Actors”(之前好像叫 “Modes”)中选择 Lights -> “Directional Light”,设置 Location (0, 0, 100),应该就可以看到地板了。这时候点击 view 中的 Play,就可以进入游戏了,不过角色开始的位置,这时候是取决于 view 状态下相机的位置的,所以需要将角色出生点进行设置。

5. Player Start

  在 “Place Actors” 中搜索 “start”,将 “Player Start” 拖动到视窗中,设置 Location。Player Start不能与物体相交,不然会出现 “Bad Size” 错误提示。

6. Fog

  在 “Place Actors” 中搜索 “fog”,将 “Atmospheric Fog” 拖进场景中,设置 Location (0, 0, 300),可以看到很明显的光晕效果。

  可以看到在 fog 中有一个模拟的太阳光点,可以将它与定向光源连接,以更准确地表示太阳。

7. 光源连接

  首先在 Wolrd Outliner 中选中 “Directional Light”,然后在它的 Details 面板中的 “Search Detals” 中搜索 “fog”,可以看到一个 “Atmosphere / Fog Sun Light” 的开关。打开开关,可以看到天空变成了蓝色,然后选中 “Directional Light” 进行方向的旋转,可以看到太阳也跟着旋转,光照也随之发生了变化。

8. 球型反射采集

  光照的另一个固有特征,就是 “反射采集” (Reflection Caputrue)。在 “Place Actors” 中搜索 “reflection”,将 “Sphere Reflection Capture” 拖进场景中,设置 Location (0, 0, 500)。在 view 窗口上边的 “build” 菜单中,选择 “Build Reflection Caputure”。

9. 添加场景

  在场景中添加各种物体,设计场景。在 “Content Browser” 中的 “Filters” 中只选择 “Static Mesh” 可以看到所有静态网格,这些都是可以直接拖进场景中的。

10. Sky Light

  这时候可以看到场景中的阴影还是全黑的,光照也很粗糙。这是由于场景中只有一个 Directional Light,没有任何种类的辅助光,比如反射光照(Bounced Light),UE 中有专门用来解决这个问题的光照方案,叫做 “Sky Light”。在 “Place Actors” 中的 “Lights” 中找到 “Sky Light” 并拖进场景中,设置 Location (0, 0, 400)。这时阴影效果会好很多。

11. Post Process Volume

  我们还需要稳定的曝光来提供合适的光照效果。在 “Place Actors” 中搜索 “post”,将 “Post Process Volume” 拖进场景中,设置 Location (0, 0, 0)。在它的 Details 面板中的 “Lens” 部分,将 “Exposure” 中的 “Min Brightness” 和 “Max Brightness” 都设为 1,这样可以强制将自适应曝光度锁定在默认曝光度。在 PostProcessVolume 中所搜 “infinite”,将 “Infinite Extent” 勾选上,这样可以将它的范围设置为整个关卡,而不是限于特定区域。

12. Sky Sphere

  在 “Place Actors” 中搜索 “sky”,将 “BP_Sky_Sphere” 拖进场景,设置位置 (0, 0, 0)。和 “天气雾” 一样,Sky Sphere 也是链接到定向光源最好。在 Details 中的 Default 中,将 “Directional Light Actor” 选为之前设置好的 DirectionalLight

13. 光照资源分组

  在 World Outliner 中,按住 ctrl 选择 “DirectionalLight”、“BP_Sky_Sphere”、“AtmosphericFog” 以及 “SkyLight”,右键选择 “Move to”,创建新的 folder 并放进去。将 “DirectionalLight” 中的 “Intensity” 设为 1,会得到黄昏般的光照强度。值得注意的是,这时调整 DirectionalLight 的方向,太阳不会跟着转动了,这时只需要暂时禁用 “BP_Sky_Sphere”(在 Outliner 中点一下它前边的眼睛),太阳就会正确地跟着转动了。太阳调整至合适位置后,重新点击 BP_Sky_Sphere 的眼睛使其恢复,并且点击 Details 中的 “refresh Material” 按钮即可。

14. 光照继续调整

  勾选 DirectionalLight 中 “Light Shafts” 中的 “Light Shaft Occulusion” 以及 “Light Shaft Bloom”,会看到很明显的太阳光晕。把 Sky Sphere 中的 “Sun Brightness” 设为 1,然后再返回 DirectionalLight 调整 “Bloom Scale”,直到调整出一个满意的效果。

15. Actors

  到此为止,我们就已经创建了一个 Level(还没有人),我们可以把它当作一个空白的空间,可以在其中构建场景布置。场景布置本身主要由 Static Meshes,光照以及其他不可移动的资源(Non-moving assests)组成。接下来就是 Actor,Actor 同样由添加到关卡中的这些事物组成,但由于他们作为单一实体存在,因此更便于为他们提供简单的生命。
在 “Content” 文件夹下,右键创建 New Folder,命名为 “BP_Actors”,代表 BluePrint Actors。在文件夹中,右键创建一个 BluePrint Class,并选择父类为 “Actor”,命名为 “BP_Lamp” 并打开。在 Content Browser 中搜索 “”,并将 “SM_Plains_CastleArch_Iron_Torch_01” 拖到 BP_Lamp 的 viewport 中(这需要在 Epic Game Launcher 中将免费资源 “Infinite Blade: Grass Land” 添加到当前工程中)。
  拖进场景之后 torch 直接到了原点,继续搜索并将 “P_Fire” 拖进 BP_Lamp 中,调整火焰 z 坐标到一个合适的位置。现在还没有光照,虽然看起来有火焰。在 BP_Lamp 的 Component 面板中选择 “+Add Component”,并添加 “Point Light”,稍微将 z 值上调一些。然后拖动 Component 中的三个元素,使得它们都位于 DefaultSceneRoot 路径下(即三个级别相同)。最后 Compile and Save 就可以关闭当前 BP_Lamp 窗口,在游戏中将 BP_Lamp 拖进场景了(按住 alt 点击方向轴可以复制)。

  重新打开 BP_Lamp,在 Event_graph 中,修改为下图所示效果。

  将 PointLight 的 Intensity 设为 500,并将 Light Color 调整为合适的颜色。Compile and Save,退出。就可以看到游戏运行时,火炬的光照效果是随机闪烁的。这时候,如果阴影中出现 “Preview” 字样,点击 “Play” 旁边的 “Build” 即可。
这样一个简单的小 level 就完成了。效果如文章开头的最终效果所示。

其他内容:
  1. 在游戏中添加 AI NPC
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值