咨询电话:400-810-1418服务与监督电话:400-810-1418转接2

教你使用UE3引擎的脚本系统

发布时间:2018-11-17 19:57:24

 

 

导言:

Unreal引擎是全球领先的游戏开发商和引擎研发商Epic Games的一款核心产品。作为一款成熟的商业引擎,Unreal引擎以其出色表现和强大的功能征服着游戏开发业,成为全球一流游戏公司购买引擎的首选产品,本教程全面介绍了Unreal引擎在动画、材质、特效、可以化脚本编辑,实时演算方面的强大功能,并对使用Unreal引擎制作游戏的方法与技巧进行了详细阐述。

 

下面教程开始

 

Kismet总览

简单来讲,Kismet是一个可视化脚本设计系统,允许用户快速简便地创设复杂的脚本序列,而无需具有丰富的编程知识。然而,这番简述并未阐明Kismet对gameplay的重要性。事实上,在gameplay中任何的有趣事物都会多多少少地用到Kismet,从为玩家打开一扇门的简单任务,到玩家在关卡的某一关键位置手持某一特殊物体时,调入一个错综复杂的事件系统,都能见到它的身影。

 

Kismet:巨大网络组合图

Kismet是以多个模块的网络组合形式出现,这些模块被称为序列对象(Sequnce Objects),它们之间以连线连接(图01)。各序列对象都实现一个特定功能,而它们之间的连线用于在序列对象间的信息传输。虽然这些网络看上去可能会非常复杂,但只要明确自己的创作意图,你就会很快发现创建这样的网络可以是一件轻而易举的工作。

 

下图所示序列可表述为:当玩家接触 Trigger_0时,将玩家传送至Teleporter_0。

 

图01

 

Kismet是关卡交互的中枢,因为它为艺术类工作者(非编程类工作人员)提供了创建复杂脚本的方法,以实现他们所设计的关卡。本章的目的是使您快速了解Kismet的工作方法,并协助您生成一系列基于gameplay的序列。跟着我们的进度,您完成的指南将越来越复杂,由这个过程您将领略到如何创建涵盖极其简单至有适当复杂度的序列。

 #p#e#

 

Kismet入门

现在你已经了解了Kismet的基本情况,就让我们来简单看一下它在UnrealED中的位置,同时快速了解一下它的界面(图02)。

 

通常是通过点击位于工具栏中间的“打开Kismet”按钮来进入。你也可以从UI编辑器系统内部进入Kismet。

 

图02

 

至此,你已初步了解的Kismet的情况,以及它的位置和外观,就让我们动手来创建一个实际的Kismet序列吧!你将使用Kismet创建一个简单的光源开关。

 

使用Kismet触发光源

 

第一步

打开UnrealED,并打开DM-Ch_09_KLightSound_Start.ut3地图文件。这是一个简单的平台关卡,仅有一个可供浏览的昏暗光源(图03)。我们将建立一个系统,通过它能够打开第二个光源并最后播放一个声音。

 

图03

 

第二步

在透视视口中,在关卡主平台的一个拐角附近右击,从关联菜单中选择Add Actor > Add Trigger。

 

立即打开此新建的Actor的属性窗口(双击或按F4键)。在Advanced(进阶)类别中,设置bHidden(隐藏)属性为否(取消对此复选框的勾选)。如此一来我们在测试此关卡时就能看到触发器了。(图04)

 

图04

 #p#e#

 

第三步

我们现在需要一个可触发的光源,可以按下列步骤来创建:

 

a、在UnrealEd主菜单栏中,选择View > Browser Windows > Actor Classes。

b、在Actor类浏览器内,展开Light > Point Light并选中PointLightToggleable(可开关点光源)。(图05)

 

图05

 

c、 在透视视口中,在关卡中触发器的相反方向角落右击,并选择Add PointLightToggleable(添加可开关点光源)。

d、使用平移控件将光源从关卡的底面向上移动。(图06)

 

图06

 

e、打开光源的属性窗口,并在Light类别下,展开LightComponent(光源组件),取消勾选bEnabled(开启)属性。这将使光源在关卡启动时关闭。

 

第四步

点击打开Kismet按钮,以打开Kismet编辑器。现在我们来创建一个简单的序列,使玩家在接触到触发器时打开和关闭光源。

 

第五步

我们从得知玩家何时接触触发器的事件开始。在透视视口中,选择触发器actor。然后在Kismet窗口中右击Sequence(序列)窗口中的空白区域,并从关联菜单选择New Event Using Trigger_1 > Touch。由此我们新建了一个Touch(接触)事件,使我们可以在玩家进入触发器接触半径时发起某些动作。 (图07)

 

图07

 #p#e#

 

第六步

现在我们需要在触发器被接触时建立一个发生动作。在Sequence(序列)窗口的空白区域、Touch(接触)事件的右方某处,右击并选择New Action > Toggle > Toggle。你可以通过按下Ctrl键拖动Toggle(开关)序列对象对其重新定位,正如在材质编辑器中对象的移动方法一样。(图08)

 

图08

 

第七步

仅仅创建一个Toggle(开关)序列对象是不够的。我们需要通知Kismet所接触的确切对象。要实现这个目标,请按照下列步骤:

 

a、在透视视口中,选择之前创建的PointLightToggleable(可开关点光源)。

b、回到Kismet窗口,右击Toggle(开关)对象之下的Sequence(序列)窗口空白区域,并选择New Object Var Using PointLightToggleable_1。由此创建了一个直接绑定至关卡中PointLightToggleable actor(可开关点光源actor)的变量。 (图09)

 

图09

 

c、在Toggle(开关)对象上,可以看到在“Target(目标)”字样下面有一个粉色的输入小方块。从该输入端拖出一条连线将其连至PointLightToggleable_1。触发器对象现在已经与光源连接,并能够进行打开与关闭动作了。 (图10)

 

图10

 

第八步

最后一步是将我们的Touch(接触)事件连接至Toggle(开关)动作,该动作将在玩家进入到触发器范围时通知Kismet,并触发光源状态。

 

从Touch(接触)对象的Touched(已接触)输出端拖出一条连线,连接至Toggle(开关)对象的Turn on(打开)输入端。(图11)

 

图11

 

第九步

点击Bulid all button 按钮,重建光照,保存关卡,并测试关卡中的新建触发器。你既可以向关卡中加入一个PlayerStart actor,或者右击地面,选择Play From Here(从此播放)。

 

开始时关卡中的光照将会很昏暗。当你的游戏人物走进触发器范围时,光源就会打开了。然而,此时的光源仅仅是打开了一次并无限期保持打开状态。