如果您使用过Unity,那么,也许会听说过“PlayMaker”这个插件,本系列的文章将围绕着这个插件开展。这个分享的主旨是希望能够帮助想开发游戏,但是苦于学习代码,或者对于开发游戏无从下手的朋友。另外对于PlayMaker有兴趣的程序朋友,也可以了解一下,一起交流。技术大神可以无视本系列文章:D。 使用PlayMaker的人很多,从美术,策划到程序,都有人使用。所以有很多很多项目很多独立游戏,都是使用其来开发的,原因很简单,功能强大,易于上手。 比如:暴雪的《炉石传说》就使用了PlayMaker,得益于它强大的事件系统,帮助炉石15人的小团队创造出一个奇迹。以下是炉石传说的PD,Jason Chayes的原话。 曾经有国内行业的朋友不相信,便使用了特殊手段,将炉石传说的资源文件反编译出来,结果里面确实存在PlayMaker的资源,并且还有暴雪自己为PlayMaker(以下简称PM)开发了代号为“Pegasus”Action(下文会解释)包。 还有另外一个例子,近期推出的独立游戏大作《Inside》,也是使用了PM,在PM官方的Youtube频道可以看到 还有海量不知名游戏,都是使用其开发的。 实际上,负责任的说,单单靠PM本身,是可以独立完成大多数游戏的,从开发到发布,一点问题没有,但是总会有局限,所以,如果能掌握c#,自己去写需要的action,或者使用脚本与PM进行交互,那么一切就近乎完美了。在会c#的情况下,PM是一个多功能武器,你只需要制作出需要的子弹,装填到这个强大的武器里面即可。 那么,PlayMaker究竟是什么呢,它是一个有限状态机(Finite State Machines)系统,它代表了一种工作方式,并且,是我个人非常喜欢的工作方式。每一个状态机里面可以包含有一个或者多个行为,这些行为就是上文里提到过的“Action”。 来看下图,这张图诠释了PM在Unity里的执行流程: 先简要说一下这个FSM的执行流程:首先START事件会被发送,然后Walking状态会被激活,当Walking里所有的Action都执行完毕后,stop事件会被发送,然后4箭头所指的Idle状态会被激活,此时执行流程一直停留在Idle。当“hit”全局事件被发送后(START执行以后的任何时候都可以发送),FallFown状态会被激活,一个FSM里只能同时激活一个状态。1:START事件,当此FSM被执行的时候,START事件将会被发送,从而进入“Walking”这个状态。无论怎样,START事件都是最先被发送的。2:State状态,在本机制中,一个FSM里只能同时激活一个state,被激活的状态会执行其中的Action以及接收事件。3:Transition Event跳转事件;当Unity发送此事件(可以通过collision,trigger,鼠标点击,动画事件等发送)后,会跳转到4箭头所指向的状态。也可以通过Action来发送此事件。4:这根箭头用户可以自行拖拽,用来连接想要链接的状态,连接完成接收到事件以后的状态切换会按照箭头连线来跳转。5:Global Transition全局变换,全局变换可以在任意时间进行,只要发送了此事件,箭头所指的状态会立即被激活。它的运作方式跟unity mecanim中animator的“Any State”类似。Action上图画框的地方,就是一个action,这个action可以让相机淡入,用户可以设置淡入的颜色,淡入的时间,以及完成淡入行为后要发送的事件,和是否使用实时。每一个Action大多是一个脚本文件,可以在脚本里暴露一些属性,在PM编辑器里进行操作。PM默认将Unity一些常用的API都写成了Action,用户只需要选择相应的行为,进行组合拼装,完成设计,达到自己的目的: 上图为Action Browser,所有内置和自定义的Actions都是在这里调出来使用。Variables变量PM中也存在变量,与代码里的变量一致,只是其提供的变量类型稍微少了一些,但是没有太多影响。以下是PM里能够使用的变量类型。上图表示Time这个属性可以使用原本定义写死的一个参数,也可以使用一个变量来来控制。使用了PM很长时间,中肯的说一下自己的感受:缺点:1、Unity每一次的版本更新,可能会对其造成影响,以往的经验告诉我,作者会在短时间内修复。2、局限性,内置的Action不足以制作所有类型的游戏。甚至,没有你所需要的功能。3、数据管理先天不足。4、假如想要在通常的游戏公司就业,学习其不能给你来带优势。优点:1、可以高效出DEMO,甚至出成品。小型团队或者个人开发者,使用其绝对是可以事半功倍。2、易于扩展,可以自行编写需要的Action,添砖加瓦。或者使用脚本与PM交互。3、状态机工作方式,条理清晰,逻辑明确。4、Unity Assets Store里的大多数流行插件都能与PM交互,方便省心。5、不会写代码的朋友,学习之后,确实可以做出游戏。 以上是自己的一些感受,能力有限,有很多不足,或者表述不清楚,希望说的能让各位看懂。接下来的时间会陆续介绍PM的工作界面,以及更多的实例。希望能帮助到一些人。官方主页:http://www.hutonggames.com/官方论坛:http://www.hutonggames.com/playmakerforum/index.php用户手册:https://hutonggames.fogbugz.com/default.asp?W1能与PM交互的插件列表以及对应的Action包:https://hutonggames.fogbugz.com/default.asp?W714官方示例:https://hutonggames.fogbugz.com/default.asp?W178
PlayMaker是个非常好用的工具,我们的游戏AngerForce的关卡逻辑全部是用PlayMaker实现的。
最近由 GuoScreambox 修改于:2016-08-30 11:08:46这个团队的名字很有趣,Hutonggame(胡同儿),团队中似乎有来自北京的开发者,图标也是个汉字“玩”。
@GuoScreambox:AngerForce游戏画面很赞,人设风格很喜欢
最近由 ChristianTam 修改于:2016-08-30 12:31:44@ChristianTam:期待《Mexel》。(●'◡'●)ノ