GA游戏教育
GA游戏教育

游戏MOD制作UDK之KISMET独家教程(二)

学生作品 cenjuebaobao 3977浏览

游戏MOD制作UDK之KISMET独家教程(二)

作者:疯来疯去(1988年生,毕业于常州信息技术学院通信工程专业,GA策划24期,就职于上海英佩数码,担任关卡设计师)

编辑注:作者是一名普通的游戏爱好者,这篇UDK的教程是作者在GA游戏教育基地就读期间编写的,是其个人MOD策划作品《墓室探险》制作教程。本教程共分为两部分,第一篇为整体制作思路与制作详情,第三篇是UDK之世界坐标基础教程,本篇是UDK之KISMET基础教程,希望作者的三部曲独家教程可以帮助到一些喜欢游戏策划,学习UDK,并且热爱MOD制作的游戏开发者们。

MOD视频《墓室探险》

作者的UDK个人MOD《墓室探险》(一):http://blog.gamea.com.cn/?p=8484&cat=10

作者UDK之世界坐标独家教程(三):http://blog.gamea.com.cn/?p=8546&cat=10

UDK虚幻引擎技术之KISMET的使用

下面简单的介绍一下kismet的使用,首先打开内容浏览器旁边的K图标,(见下图图1)。

1

这里介绍一下自动寻玩家攻击的炮台是怎么做的,其实也很简单了,我们需要一个假的炮台节点,叫做dummy weapon fire,和下图(见下图图2)的一样。

2

我们看看他的属性,从这个表面的东西上我们可以知道它有开始攻击,停止攻击,OUT输出,finished和stopped输出,底下的2个变量的意思是origin表示开火地点,也就是在什么地方开火,一般需要一个mesh或者其他的东西,target的意思就是开火目标,就是我们要它攻击什么人。有了这个节点我们就可以让我们的东西开火了(当然了这是一个假的开火,并不是武器真的在开火)。

下面我们还需要这么一个节点,gei location and rotation。(见下图图3)

3

从字面上理解就是获取坐标和旋转量,这个是用来获得玩家坐标的。

IN和OUT就不用说了,target就是目标,location表示坐标,rotation vector旋转向量,rotation旋转量。

我们还需要一个节点来输出坐标,set actor location,设置actor坐标。(见下图图4)

4

节点中的target就是要输出的对象。有了这些节点我们就可以制作会自动攻击玩家的炮台了。

首先我们需要一个事件level loaded,让关卡一加载就开始攻击,还需要一个玩家的变量,右击-新建变量-player,建立了之后不要忘记把all player的选项去掉,这样他就指玩家,而不是指所有的人。(见下图图5)

5

我们还需要一把枪,不然怎么像是一个炮台呢,我们在内容浏览器里面选择skeletal meshes,在里面找到我们要的枪,我们就选择火箭筒的枪吧,随便你选择1P还是3P,把他添加到场景中,你嫌他太小可以放大,随便你放多大。

在场景中选择这把枪的模型,在KISMET里面空白处右击-新建对象变量使用,我们就会得到一个这个模型的变量。(见下图图6)

6

得到这个变量之后把他连接到dummy weapon的origin的节点上,连接了之后我们来设置一下dummy weapon的属性,选择dummy weapon节点,看到下图的属性面板(见下图图7)。

7

Shots to fire表示他有多少子弹,设置0为无限子弹。

Weapon Class表示他的攻击使用的weapon是什么(这里的意思就是哪种武器的攻击效果),里面有UDK自带的3把枪,如果你有自己的自定义武器,也可以选,这里就选择linkgun吧。(见下图图8)

8

最后一个选项是是否启用武器声效,如果打钩武器就没有默认的声效了,这里我不打钩,就使用里面武器的声效。

Dummy Weapon这个节点设置好了,先放一边,下面我要开始获取坐标,好让这个节点知道要往哪攻击。

将get  location and rotation的target连上player 0(也就是玩家),在location和rotation变量节点右击-创建新的变量vector(鼠标要选在那个三角上),连个变量节点都创建。(见下图图9)

9

这样就能获取到玩家的坐标了,下面要设置输出坐标。将Get location and rotation的OUT节点连接到Set actor location的IN上面,将location和rotation上的vector变量连接到对应的set actor location节点上。

至于输出还需要一个actor来帮帮忙,到这里肯定有同学会问为什么不直接连接dummy weapon的target节点到player 0上面,这样连接的结果是dummy weapon只会攻击他第一次看见玩家开始攻击的坐标,不会实时更新玩家的坐标(没错,少年们,它就是这么笨),又会问那把输出坐标连接到玩家身上不就好了,这样也是不行的,因为玩家不是actor,是不能这么做的(不会程序就是这么麻烦啊),这里我们添加一个触发器来帮帮忙,在场景中创建一个触发器,在场景的空白处右键-添加actor-add trigger,同样在kismet里面右键-创建新的对象变量,将set location and rotation的target连接到触发器上。(见下图图10)

10

连接好之后应该是这个样子的。这里又有问题了,触发器又不是玩家,他怎么会有玩家的坐标信息呢?这里再使用一个节点Attach to actor,这个节点非常好用,适用于各种偷懒的地方,这个节点的作用是把actor绑定在某个东西上面,连好了就是下面的样子。(见下图图11)

11

连好之后再把dummy weapon的target连接到trigger上,最后一步把set actorlocation的OUT节点连接到gei location and rotation的IN上面,记着在set actorlocation的OUT节点上右键-设置有效延时0.1(不设置会爆程序,不连接OUT和IN炮台也不会跟着玩家打),然后进去场景炮台就是疯狂的攻击玩家了。到场景中试试吧!!

PS:请各位同学注意你们使用的mesh 的碰撞,不要MESH把子弹给挡掉了。

最近GA和英佩游戏出了2本精通UNREAL enginer 卷1和卷2,建议各位同学省下闲钱去买2本,里面可以学会基本所有unreal enginer的东西,其中的UIscene部分就可以略过了,unreal enginer已经没有这个功能了,其他的还是值得大家好好学习的。

GA游戏教育基地游戏策划全科班:http://www.gamea.com.cn/courses_gd.htm

扩展阅读

作者的UDK个人MOD《墓室探险》(一):http://blog.gamea.com.cn/?p=8484&cat=10

作者UDK之世界坐标独家教程(三):http://blog.gamea.com.cn/?p=8546&cat=10

GA新浪微博专区,与粉丝校友一起交流:http://t.sina.com.cn/gamea

GA腾讯微博:http://t.qq.com/gameacomcn

GA开心网:http://www.kaixin001.com/home/?uid=77968947

GA人人网:http://www.renren.com/profile.do?id=335993075

GA游戏教育基地首页:http://www.gamea.com.cn/

GA游戏教育官方博客:http://www.gamea.com.cn/blog/

乐活游戏开发论坛:http://www.lhgamer.com/

上海GA游戏培训教育基地教程抢鲜,转载请注明出处)http://www.gamea.com.cn/

转载请注明:游戏培训第一品牌【GA游戏教育】 » 游戏MOD制作UDK之KISMET独家教程(二)