UDN
Search public documentation:

KismetTutorialCH
English Translation
日本語訳
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

Unreal Kismet 指南

文档概要:关于使用UnrealKismet 创建简单序列的指南。

文档变更记录: 由Alan Willard创建。

简介

关于使用UnrealKismet的更多信息,请参照Kismet用户指南Kismet参考指南

指南

UnrealKismet中的脚本创建是相当的简单的。本指南假设您熟悉虚幻引擎3中的关卡创建。首先,我们将创建一个用于打开和关闭光源的简单脚本。

  1. 创建一个简单的关卡,仅具有一个PlayerStart 和一个PointLightToggleable。
  2. 在PointLightToggleable actor 上启用动态光源(properties(属性)>Light(光源)>bForceDynamicLight=true)。
  3. 在世界中放置一个trigger(触发器),并设置它不能被隐藏(properties(属性)>Advanced(高级)>bHidden(是否隐藏)=false)。
  4. 选择一个光源,并通过点击工具条上的K图标来打开UnrealKismet工作区。
  5. 右击Kismet工作区,然后通过选择'New Object Var Using Selected Actor(使用选中的Actor新建对象变量)'菜单项(Selected Actor(选中的Actor) 将会被选中的actor的名称所替换)。现在您应该可以在对象变量的里面看到一个光源的图标和一个具有唯一名称的光源。
  6. 下一步是向Trigger附加一个事件。在主编辑器窗口中选择那个Trigger。
  7. 右击Kismet工作区并通过选择'New Event Using Trigger_0(使用Trigger_0新建事件)'来创建一个Touch事件。这是一个情境关联的菜单,所以您仅可以看到Trigger支持的那些事件。在'Create Event(创建事件)'子菜单,选择'Touch'选项来为Trigger_0创建一个Touch事件。
  8. 下一步是为事件分配一个动作来执行。右击Kismet工作区,并选择'NewAction(新建动作) -> Toggle(切换) -> Toggle(切换)'。
  9. 从Touch事件的'Touched'输出端向Toggle动作的输入端拖拽一条连线。您将会注意到Toggle动作有一个底部标记为'Target'的节点。Kismet中的组件的输入端和输出端是根据可以和它们一同使用的变量类型进行颜色编码的。在这种情况下,Target是紫色,所以需要一个对象型变量。
  10. 在这个例子中,我们想通过从‘Target’节点向创建的包含光源的对象变量拖拽一条线,从而把target和光源对象变量连接到一起。这将会导致Toggle动作在每次被触发时,将会打开或者关闭光源。如果您仅想关闭或打开光源,您仅需要把它和与那个动作相关的输入端连接到一起即可。
  11. 几乎要完成了, 设置Touch事件并查看下面的编辑器属性。因为我们想不止一次地打开并关闭这个光源,所以设置MaxTriggerCount(最大触发数)为0,这等同于触发的次数没有限制。
  12. 同时,设置ReTriggerDelay为一个较小的值,比如.1,从而避免可能会出现的快速地处罚两次事件的情形出现。

当您完成这些操作后,应该会看到以下状态:

kismet_tutorial.gif

现在,关闭UnrealKismet,并通过使用编辑器顶部的Build(构建)菜单或者通过右击世界并选择'Play from here(从这里开始播放)'并当您在关卡内部时按下‘P’键来播放关卡。假设您正在运行一个干净版本的ExampleGame clientspec,现在应该会有一个默认的人物出现在世界中,并且附加到您的相机上,而不是像幽灵那样到处乱跑。找到Trigger(触发器)并触摸它。光源将会关闭。远离Trigger然后再回来,光源应该变为打开状态! 恭喜您啊,现在您已经创建了一个可以正常工作的UnrealKismet游戏脚本。

另一各种完成这个情形的方法是:

您可以把touch事件和Toggle上的Turn Off(关闭)相连,然后再创建一个UnTouch事件和Toggle的Turn On(打开)输入端相连。这样将会仅在玩家触摸触发器时光源关闭。

问题解决

要想触发Touch(触摸)事件,使用启用了碰撞(bCollideActors)的Pawn是必要的。默认情况下,ExampleGame包中的ExamplePlayerController是观看模式,这样将不会触发您的序列。

注意: 你必须使用一个'PointLightToggleable(可切换的点光源)’,使用'PointLight(点光源)'这将不会工作的。如果您的光源没有切换,但是您的Kismet序列却在工作,请检查您是否意外地使用了错误的光源类型。