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),就会显示称下面的样式。

Unreal教学(8)——蓝图学习快速开始(Blueprints Quick Start Guide)

(2)到这里我们的弹跳台就设计完成了,那么接下来的工作就是设计它的工作逻辑,我们这里使用的是blueprint,在Add component的右边有ADD blueprint接口,将这个actor转换为blueprint,保存,打开命令新的文件。

我们要画的蓝图是下面这个样子的

Unreal教学(8)——蓝图学习快速开始(Blueprints Quick Start Guide)

是不是看起来很有趣?

那么为什么要画成这个样子呢?

首先点我们的Event Graph界面,然后点击Box component,那么会弹出下面的图谱。

Unreal教学(8)——蓝图学习快速开始(Blueprints Quick Start Guide)

首先给Box 增加一个OnComponentBeginOverlap node(节点),任何联系上这个时间的node, 当有东西和这个Box 组件接触的时候会被执行。

Unreal教学(8)——蓝图学习快速开始(Blueprints Quick Start Guide)

然后从other actor中拉出一条线出来,会有一个提示框,我们选择等号。

选取另外一个Actor为pawn,那么执行会生成下面的图形

Unreal教学(8)——蓝图学习快速开始(Blueprints Quick Start Guide)

这里的意思就是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,这个还比较好实现,

蓝图长下面这个样子的。

Unreal教学(8)——蓝图学习快速开始(Blueprints Quick Start Guide)

还是挺好实现相关的逻辑的。