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

我的专栏目录:

小IVan:急速游戏开发综述及目录​zhuanlan.zhihu.com图标

概述:

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

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

效果预览:

v2-ec6f689b50be6e6855c83115d2e3fb96_b.gif

使用工具:

(1)UnrealEngine4

(2)3DMax2017


开发步骤:

(1)资源准备:

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

v2-36bcc8b0306ae8bbec541620206e8f78_b.jpg
v2-2d586e7fb353ee39c44dd6698a3a08fd_b.jpg

然后给模型准备材质

v2-1631eec58990218abc744f9eff8aed13_b.jpg

新建一个GameMode类

v2-49925353cdaf39b35ca8a9b724a0e264_b.jpg

并在项目设置中指认

v2-f977f295fdd47b235bcba6229f2c8e78_b.jpg

在GameMode中指认我们的player类

v2-ff00f65ac771ca04d39489438119b0c1_b.jpg

然后在worldsetting里指认GameMode类

v2-1b781792a44001bb7f57e5bbf66eb267_b.jpg

新建一个Pawn类取名为BP_SRBasicCharacter

v2-dd44bc63494a213521a21d9d7c9c9ba6_b.jpg

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

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

v2-c215fe74036fbbd625b817b6c291e862_b.jpg

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

v2-4f61a2ee5b2e3a4ff7dd37760c6a2ca8_b.jpg

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

v2-d1af18b305d98952a35047d11aef8802_b.jpg

同理制作一个受伤函数

v2-841e982d5e8a2ee632b87bf997b4b6dc_b.jpg

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

v2-67f2d690f8f0994a4972cb2f7ec82ac0_b.jpg

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

v2-2ca7c4237d33d3bf889e357bf7e74171_b.jpg

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

v2-8d9f146316f458b3eb4a7853864de66c_b.jpg

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

v2-f0742cbdd13b18e2b228f81eb88ce3db_b.jpg

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

v2-2bfe29a0469486cc5b0c2c60ff5ea507_b.jpg

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

v2-ed9594c43b1aad9eff9aac44852d5b79_b.jpg

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

v2-f7efffd471ca08c8e4ac682011842149_b.jpg

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

v2-77f21712ec644032b98408d654db532b_b.jpg

注意把它设置为public

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

v2-926fd1f522092aac90483067004815f2_b.jpg

在BP_Player的BeginPlay做如下设置

v2-fbeaeb5139b0b94d34e82d55e8962630_b.jpg

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

v2-eecad6bc90b9ce09a34b71bf7914b36c_b.jpg

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

v2-3171af8a00aa257c95828ac5de5fe6ae_b.jpg

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

v2-832b1b64460338ed8ffdd148e9bbf19c_b.jpg

然后是第人类的摧毁逻辑

v2-90a4aab29a823d3eb359902d2846bb64_b.jpg

然和是第人类的攻击逻辑

v2-34e39cfbae00297ea24000cd61080eae_b.jpg

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

然后做如下设置

v2-743f915c082d6bea19fb0942caf9f21f_b.jpg

这就是我们的子弹了


然后是我们的UI

新建一个UMG命名为BP_GameUI

v2-167f86d088c92083311d4598dd9313d4_b.jpg

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

v2-072bd528f80b1c785d1f22ed2299c475_b.jpg
v2-679272829613e621aa3cafb5cf7f0799_b.jpg

在这里创建一个绑定函数

v2-ea8149c29a22f09ed1d582512ec62ad6_b.jpg

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

v2-90333953d52be003d66d7ffd1cacd3b1_b.jpg
v2-bc15a1f9c598c0b844b6399e8d5370b5_b.jpg

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

v2-4f651c4615ce0490332058077fd8262b_b.jpg

至此我们的UI完成了。


然和是关卡搭建

v2-0810dafb20c6624f80f228a35eb2f135_b.jpg

红笔圈的是KillingVolume

蓝笔是BlockVolume

黑笔是PostProccess


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

文件分享​share.weiyun.com

Enjoy it !!!


Next:

小IVan:虚幻4渲染编程(游戏Demo篇)【第二卷:蘑菇森林大冒险】​zhuanlan.zhihu.com图标

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cpongo11

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值