未提供

教程实例-贪婪岛(RPG)说明书:瞄准玩法房间的功能制作

完成效果

  本处的制作过程,同样主要用来阐述房间中功能的实现。场景摆件、场景怪物的模型设置与摆放此前已进行介绍,本处不再赘述。

   

  在这一房间中,主要共有以下的功能:

  1、玩家进入房间门口区域后,刷出小boss。

  2、玩家进入小boss门口的区域后,打开小boss门,小boss会移动出门。

  3、小boss移动出门后,会追击玩家。

  4、玩家可以进入【获取载具】区域内,此时玩家的主控单位由英雄变为地图中的炮车,炮车可以使用技能,炮击敌方单位造成伤害。

  特别地,只有先进入的玩家能操控炮车,后进入的玩家不能操控,需要吸引boss仇恨和先进入的玩家协作击杀小boss。

  5、小boss死亡后,玩家通往下一关的道路开启。此时如果有玩家的主控单位是炮车,则主控单位会变回英雄。

   

  首先是准备工作,从预设库中的单位类型中,选出适合作为小boss的单位类型,复制并进行各属性(名称、模型、普攻、最大生命值等)的修改。同样需要设置炮车的属性。

  我们还需要制作坦克的坦克炮技能。这里,我们制作一个简单的投射物技能,让单位在释放技能后,能创建投射物并使其向指定方向移动,对单位造成伤害后销毁。

  关于技能制作的详细内容,可以进一步参考【技能说明书】和技能模板。本文中仅对此处技能的制作思路进行简单介绍。

  在技能触发器中,我们需要在前摇开始后播放施法动作;在前摇结束后创建投射物使其运动;在技能结束后停止动作。

  而投射物对单位造成伤害的功能逻辑,我们在投射物触发器内进行制作。

   

  技能触发器制作如下:

  在投射物触发器中,我们需要每隔一段时间检测投射物是否击中敌方目标。

  如果击中,则造成伤害、播放受击特效并销毁自身;如果没有击中,则在达到运动距离后销毁自身。

 

  投射物的触发器制作如下:

  最后,不要忘了把做好的技能设置到炮车单位上,如图。

   

  接下来进行全局触发器的制作。为了实现房间的所有功能,我们需要制作多个触发器。

  新建一个文件夹,用来进行完整的瞄准玩法编辑。

  在文件夹下创建2个触发器组,其一名为“瞄准玩法触发器组”,用来实现前述的功能1、2、3、4;其二名为“小boss死亡”,用来实现前述的功能5。如下图所示。

  在“瞄准玩法触发器组”触发器组下依次创建5个触发器,分别命名为“创造小boss”、“打开小boss门”、“小bossAI”、“载具1”、“载具2”。

  其中“创造小boss”用来实现前述的功能1,“打开小boss门”用来实现前述的功能2,“小bossAI”用来实现前述的功能3,“载具1”、“载具2”用来实现前述的功能4。

  将“瞄准玩法触发器组”的初始状态设为打开,如图所示。

  接下来,在“小boss死亡”触发器组下创建2个触发器,分别命名为“小boss死亡”、“英雄解绑”,用来实现前述的功能5。

  由于我们的功能5依赖于功能1,所以需要把触发器组的初始状态设为禁用,在功能1执行后再开启(具体细节后面会描述)。如图所示。

 

  以下对各个触发器的功能和制作方法分别进行说明。

  1、触发器【创造小boss】

  选择“新建事件”。这里我们需要监听的事件是单位进入指定区域,因此选择【单位-任意单位区域事件】,如图。

  填写需要填写的参数,包含区域行为、区域、延迟。如图。

  然后在指定的点创建小boss单位。选择“新建动作”,如图。

  同样填写需要填写的参数,如图。

  为了后续对创建出的小boss进行后续操作,本处将其设置为单位实体变量。

  首先创建单位实体类型的变量,如图所示

  接下来,创建动作指令“设置变量”,并将变量“boss1”设置为“函数-触发器-最后创建的单位”,如图所示。

  此外,后续4、5两项功能是在小boss出生后开始触发,因此,这里还需要开启后续的4、5两项功能触发器。

  最后,由于只需要创建1只小boss,因此需要在完成创建后关闭本触发器。

  这3条指令的实现方式一致,新建动作指令“开启/禁用触发器”,再填写触发器名、状态即可。

  至此,基本的逻辑即已完成。最后实现的【创造小boss】触发器如下图所示:

   

  2、触发器【打开小boss门】

  本触发器的目的是让玩家进入小boss门口的区域后,打开小boss门,并让小boss会移动出门。

  这里我们需要监听的事件同样是单位进入指定区域,因此,和前一个触发器一致,选择【单位-任意单位区域事件】,并填写参数,如图。

  对于动作,首先我们需要把阻挡的门去除,让boss能出门。这里我们使用动作【单位-删除单位】,再选择相应的单位

  接下来,我们让小boss单位向指定的点移动。这里我们需要使用预设的行为树AI,并填写相应参数,如图所示。

  最后,执行完删除和移动指令后,我们需要关闭本触发器。

  最后实现的【打开小boss门】触发器如下图所示:

   

  3、触发器【小bossAI】

  本触发器的目的是让小boss在出门达到区域后,追击玩家。

  这里我们需要监听的事件是特定的单位(小boss)进入指定区域,这里我们需要选择【单位-指定单位区域事件】,并填写参数,如图。

  对于动作,首先我们需要在小boss达到区域后,首先停止AI指令,让其不再移动。这里我们使用动作【AI-终止单位的所有指令】,如图所示

  接下来,我们让小boss单位攻击一定范围内的敌方单位。这里我们编写了2个自定义的行为树AI,包括编辑行为树和填写行为树内参数,分别如图所示。

  行为树1:读取单位的当前位置

  行为树2:攻击一定范围内的玩家

  关于行为树的原理、各类节点介绍,以及其他更为详细的AI模块说明,可参考【AI模块说明书】,本处不再展开。

  完成行为树编写后,我们需要再在触发器内进行调用,并填写行为树参数。如图所示。

  最后,执行完删除和移动指令后,我们需要关闭本触发器。

  最后实现的【小bossAI】触发器如下图所示:

   

  4、触发器【载具1、载具2】

  这两个触发器的目的是让玩家在进入载具区域后,切换玩家的主控单位为载具。

  特别地,对于2名玩家,只有先进入区域的玩家能触发切换载具,后进入的玩家不会触发。

  因此,我们需要针对2名玩家分别制作2个触发器。本处说明触发器【载具1】的制作,【载具2】方法同理,不再赘述。

  这里我们需要监听的事件是任意单位(玩家)进入指定区域,这里我们需要选择【单位-任意单位区域事件】,并填写参数,如图。

  然后我们需要设置条件进行判断。选择【通用-任意判断】,设置触发单位所属为玩家1。

  对于动作,首先我们需要在玩家进入炮车预设区域后,首先创建一个新的炮车实体,并进行变量设置方便后续操作;再把地图上的提示炮车单位删除。

  然后,我们需要使用动作【玩家-玩家解绑主控单位】和【玩家-玩家绑定主控单位】依次解除玩家对英雄的绑定,并实现对炮车的绑定。

  分别如下:

  接下来,我们使用2个变量实现后续用来对玩家英雄绑定的还原,分别是hero1(玩家操作的英雄实体),和playername(表示使用炮车的玩家编号)。

  需要说明的是,hero1在玩家选择英雄时已设置;而playername的初值设为0,表示暂无玩家使用炮车。

  一方面,设置playername为玩家的编号1,如图所示:

  另一方面,把hero1移动到地图玩家活动区域外的一点,从而在保留玩家英雄的情形下,暂时让玩家无法看到自己的英雄。

  这里我们需要使用动作【单位-传送单位】,选择单位为玩家的英雄实体hero1,并设定短暂的延迟,以及目标地点,如图所示。

  最后,在任意一个载具触发器被触发后,我们需要调整2个载具开关为关闭。如图所示。

  完整的【载具1】触发器如图所示。

  【载具2】触发器和载具1完全同理,如下图所示。

   

  5、触发器【小boss死亡、英雄解绑】

  这两个触发器的目的是在小boss死亡后,打开通道,并把玩家的主控单位切换回英雄。

  由于小boss是在先前的触发器【创造小boss】中创建的,并非地图初始化时即存在,因此需要把这两个触发器的初始状态设定为关闭,在完成小boss创建后,再设定为开启。

  这里,为了按功能区分,我们把打开通道的各个动作规整到【小boss死亡】触发器内,把玩家取消和载具绑定,并还原和英雄的绑定动作规整到【英雄解绑】触发器内。

  当然,各位编辑者也可依据自己的习惯进行不同的分类,本处仅提供一种可行的分类方式。

   

  首先是【小boss死亡】触发器。

  这里我们需要监听的事件是指定单位(小boss)的死亡事件,因此我们需要选择【单位-指定单位事件】,并填写参数,如图。

  对于动作,我们需要的是删除地图上阻挡玩家的场景摆件,如图所示。

  接下来是【英雄解绑】触发器。

  这里我们需要监听的事件同样是指定单位(小boss)的死亡事件,和上一个一致,如图。

  对于动作,我们首先需要在小boss死亡后,关闭触发器【载具1】、【载具2】,让玩家无法再进入载具。

  如图。

  然后,我们需要把玩家先前解绑的英雄单位移动回来,再把玩家和坦克解除绑定,把玩家和英雄单位重新进行绑定,最后删除炮车。

  同样的,我们使用动作【单位-传送单位】、【玩家-玩家解绑主控单位】和【玩家-玩家绑定主控单位】实现功能,最后删除炮车单位。

  需要注意的是,这里我们需要针对不同的情形分别处理。可能出现的情形包括玩家1触发了炮车、玩家2触发了炮车、没有玩家触发炮车。为此我们需要进行区分。

  最终实现的【英雄解绑】触发器如下图所示。