虚幻4渲染编程(游戏Demo篇)【第一卷:飞机大战】

虚幻4渲染编程(游戏Demo篇)【第一卷:飞机大战】

3 年前 · 来自专栏 虚幻4渲染编程

我的专栏目录:

概述:

技术美术需要对整个游戏制作流程都非常清楚,这样才能在开发中提出合理的制作方法。有时候有空可以自己做做游戏demo,这个过程也非常有趣。游戏Demo篇将会在Unreal中制作各种游戏Demo,慢慢总结游戏开发过程中除了效果实现外的一些经验技巧。

下面就先从一个非常简单的飞机大战小游戏开始,我花了四十分钟制作下面的demo。

效果预览:

使用工具:

(1)UnrealEngine4

(2)3DMax2017


开发步骤:

(1)资源准备:

瞎做两个模型,一个是玩家自己一个是敌人,瞎做得连UV都不分了

然后给模型准备材质

新建一个GameMode类

并在项目设置中指认

在GameMode中指认我们的player类

然后在worldsetting里指认GameMode类


新建一个Pawn类取名为BP_SRBasicCharacter

新建三个组件,分别是胶囊体,staticmeshcomponent,还有个FloatingPawnMovement移动组件

然后新建两个变量,一个bDie用来判断角色是否死亡,一个LiveValue,角色的血量

新建两个CustomEvent,分别取名叫MoveForward和MoveRight,然后调用移动命令

然后新建一个customEvent,命名为Die

同理制作一个受伤函数

在做这步之前需要在资源浏览器中新建一个派生自这个类的BP_Player类,这样才能Cast哈


然后对BP_SRBasicCharacter的胶囊体组件做如下设置:

对模型Plane组件做如下设置:

然后来到我们刚才说的,派生自BP_SRBasicCharacter的角色类BP_Plater中

我们新家一个SceneComponent然后把它移动到合适位置,作为我们发射子弹的点

然后来到项目设置里面,绑定按键

然和再回到BP_PLayer脚本中,用按键绑定父类我们实现的移动函数

我们新建一个相机指针变量

注意把它设置为public

然后在场景里拖一个摄像机然和指认关系

在BP_Player的BeginPlay做如下设置

然后在后面继续做一些逻辑,设置碰撞更新组件


做完这些之后,我们新建一个敌人类,第人类派生自BP_SRBasicCharacter

下面是第敌类的移动逻辑:

然后是第人类的摧毁逻辑

然和是第人类的攻击逻辑


我们新建一个Actor类,命名为BP_BasicBulet

然后做如下设置

这就是我们的子弹了


然后是我们的UI

新建一个UMG命名为BP_GameUI

双击点开新建一个百分比控件

在这里创建一个绑定函数

然和新建两个float变量,并且初始值都是100

然和到BP_Player实例化它,在BeginPlay后面接上如下逻辑,新建了一个CustomEvent负责UI更新

至此我们的UI完成了。


然和是关卡搭建

红笔圈的是KillingVolume

蓝笔是BlockVolume

黑笔是PostProccess


呼呼呼,我们的游戏终于完成了,我总共花了40分钟左右,有兴趣的朋友可以挑战一下,有没有更快的。下面是工程链接:

Enjoy it !!!


Next:

编辑于 2019-04-26 11:39

文章被以下专栏收录

    虚幻4渲染编程

    虚幻4渲染编程

    在虚幻4中学习图形编程