Unreal教学(8)——蓝图学习快速开始(Blueprints Quick Start Guide)
之前几个篇章中主要讲到如何使用C++的代码实现相关游戏的相关功能,我们已经学习到了Actor是什么东西,
经常会使用Empty Actor这个东西,那么它到底是什么,我们可以这样假设Actor是我们定义一个物体,这个物体但是现在看不到,也摸不着,但是有些整体的属性,相当于于一个人的灵魂吗,有灵魂之后才能有物体,有感知,有行动,已经对外界做出相关的反应,不知道这个比喻恰不恰当。^_^
这篇中我们将讲述如何使用Blueprint制作一个发射台,当玩家(游戏里指的player,使用的pawn类,这个类具体的用法可以自己查阅,不过我们现在应该更关心Actor类。)跑到这个发射台之后,就会被弹起,应该弹3000高吧,估计是3m的样子,这里的单位不知道是什么,反正从图形上来看是挺高的。
这个工程只是添加了一个发射台,其余的什么其它事情都没有干。
玩家是模板已经建立好的,可以通过A, D键控制左右的移动。
(1)新建一个蓝图的工程,这里使用的Side Scroller 模板进行建立。
英文讲述在
https://docs.unrealengine.com/latest/INT/Engine/Blueprints/QuickStart/1/index.html
命名,然后就会打开UEditor4进行编辑。
首先选择一个Actor拖到Level Editor界面中,然后添加两个Component, 一个是Cube,一个是Box.
增加cube可以让它显示出来,这里的通过Basic Shapes里的cube进行添加。
另外一个是Box,可以理解为检测碰撞的盒子,就是其它的物体和这个盒子碰撞之后就会被弹起来。
通过缩放,可以将它们的cube设计称(1, 1, 0,1), 将box设计称(1.25, 1.25, 1.5),就会显示称下面的样式。
(2)到这里我们的弹跳台就设计完成了,那么接下来的工作就是设计它的工作逻辑,我们这里使用的是blueprint,在Add component的右边有ADD blueprint接口,将这个actor转换为blueprint,保存,打开命令新的文件。
我们要画的蓝图是下面这个样子的
是不是看起来很有趣?
那么为什么要画成这个样子呢?
首先点我们的Event Graph界面,然后点击Box component,那么会弹出下面的图谱。
首先给Box 增加一个OnComponentBeginOverlap node(节点),任何联系上这个时间的node, 当有东西和这个Box 组件接触的时候会被执行。
然后从other actor中拉出一条线出来,会有一个提示框,我们选择等号。
选取另外一个Actor为pawn,那么执行会生成下面的图形
这里的意思就是GetPlayerPawn函数的返回值是另外一个Actor。
然后我们拖拽出执行的线条,我们通过Branch关键字进行搜索。可以收缩到branch分支。
然后把equal分支和Condition分支连上,也就是说只有是pawn类的时候,这个才会执行,当然选择的条件应该是true。
我们的发射台的功能执行是通过一个调用Launch Character函数工作的,Launch Charactor函数,它会在你制定的Character上增加速度,允许你任意方向。它作用于Charactor类,我们应该确保我们的Pawn(avatar)是一个Character(humanoid avatar).
我们通过类型转换做到这点。类型转换允许你将你的输入转化为不停的类型,因此你可以使用特别类上的一些功能函数。如果你的输入的基类是那个类型,那么就会成功。
任何在level上的物体都是Actor,因此可以转换,但是任何在Level上的物体不一定是pawn,所以不能随意转换。
通过拖拽Get Player Pawn函数的Return Value接口,我们敲一下Cast,就会有提示Cast to Character。
然后我们选择As Character,然后进行拖拽,选择Launch Character函数,那么就会执行相关的功能。
最后我们设置Z轴的坐标为3000.
然后编译,拖拽几个去相关的接口,然后play,可以看到我们的玩家在接触到LanuchPad的时候被弹得很高。
最后布置了几道习题,目前只会做第一道,看起来效果还挺不错的。
-
Play a sound when your Character is launched using an Audio Component.
-
Create a variable to store your Launch Velocity, and expose it so you can set it on each copy in the level.
-
Add a Particle System Component to your Blueprint and use one of the Particle Systems from the Starter Content.
-
Add an Arrow Component and use its rotation to define the direction to launch the character.
-
Using Timelines, add some animation to the Box Mesh to represent it launching the character.
就是在跳起来的时候加一个声音Sound Component,这个还比较好实现,
蓝图长下面这个样子的。
还是挺好实现相关的逻辑的。