欢迎光临散文网 会员登陆 & 注册

FPS Microgame 的法老之鹰MOD制作分享

2020-03-07 15:10 作者:皮皮关做游戏  | 我要投稿

作者:Truly

上次简单介绍了FPS Microgame的玩法,不知道小伙伴们有没有制作出自己喜欢的MOD呢?由于在道具里看到有火箭背包,突然联想到守望先锋里的法老之鹰,因此萌生了能不能制作一个法老之鹰MOD的想法。一翻捣鼓之后,成品如下:

接下来我们打开FPS Microgame工程的MainScene场景,开始修改吧~

一、推进背包

1 空格键喷气悬浮

首先从最简单的部分开始,由于推进背包的脚本已经写好挂在角色身上,我们只需要调节参数就能大约地模拟一下法鸡浮空的手感。

(1)解锁:解锁之后,游戏开始就能立刻使用火箭背包。

在Hierarchy窗口里选中Player,在Inspector窗口里找到Jetpack脚本,勾选Is Jetpack Unlocked At Start


(2)调节悬浮参数

找到Durations部分参数,调节参数(仅供参考,小伙伴们可以自行优化):

  • Consume Duration:2,如果一直按着空格键,喷气背包可持续使用秒数(可以理解为燃料值)。

  • Refill Duration Ground: 3,在地面完全填充燃料值所需的秒数(值越小,填充速度越快)。

  • Refill Duration In The Air:3,在空中完全填充燃料值所需的秒数(值越小,填充速度越快)。

  • Refill Delay:0.2,停用悬浮(放开空格键)多久后开始填充燃料。

调节完成后可以试下手感哦,没有制作shift推进之前需要先跳一下才能空格控制浮空。


2 Shift键喷射升空

(1)守望先锋中法鸡Shift可以喷射上升一段距离,由于FPS Microgame里设置Shift是奔跑,且只有治疗兵76的Shift才是奔跑,因此需要在脚本中做一些改动,打开PlayerCharacterController脚本:

①声明并获取Jetpack变量

public class PlayerCharacterController : MonoBehaviour

{

    //...

    Jetpack jetpack;

    void Start()

    {

        jetpack = GetComponent<Jetpack>();

        //...

    }

}

 

②找到void HandleCharacterMovement(),这是控制角色移动的方法。

③找到声明bool isSprinting的地方修改为:

这样设置之后,在推进背包解锁的情况下,就不会奔跑了。


(2)编写推进背包功能

①在Jetpack脚本的Update()中添加以下语句,当按下左Shift键的时候,执行喷射方法Jet()。

public class Jetpack : MonoBehaviour

{

    void Update()

    {

        //...

        if (Input.GetKeyDown(KeyCode.LeftShift) && isJetpackUnlocked)

        {

            Jet();//喷射上升

        }

    }

}

 

②喷射方法

  • PlayerCharacterController脚本 中的m_LastTimeJumped 变量修饰符改为public,方便在Jetpack脚本中调用。

  • Jetpack脚本声明喷射速度jetUpSpeed。

  • 喷射时修改角色竖直向上的速度(characterVelocity的Y方向的值),并且刷新m_LastTimeJumped,免去起飞时的地面检测,否则会被往地上吸。

public class Jetpack : MonoBehaviour

{

    //...

    public float jetUpSpeed=26f;

    //...

    public void Jet()

    {

        m_PlayerCharacterController.m_LastTimeJumped = Time.time;

        //抵消向下的速度

        var tempV = m_PlayerCharacterController.characterVelocity;

        tempV.y = 0;

        m_PlayerCharacterController.characterVelocity = tempV;

        m_PlayerCharacterController.characterVelocity += Vector3.up * jetUpSpeed;

    }

}

 

推进背包的主要功能基本就改造完成了,还有冷却时间之类的细节追求完美的小伙伴可自行添加~

二、武器制作

1 火箭发射器

法鸡的火箭发射器是单发、无扩散的、6发弹药,那么我们开始设置吧~

(1)打开文件夹Assets > FPS > Prefabs > Weapons,找到Weapon_Blaster预制体,Ctrl+D复制做好备份。

(2)双击Weapon_Blaster进入预制体编辑模式。

(3)在Inspector窗口中找到Weapon Controller脚本组件,调节以下参数:

①Shoot Parameters(射击参数):

  • Delay Between Shot(射击间隔):0.5,两枪的最短间隔时间为0.5秒。

  • Bullet Spread Angle(发射角度):0,无扩散。

  • Bullets Per Shot(每次发射子弹数):1,每次射1颗子弹。

②Ammo Parameters(弹药参数):

  • Ammo Reload Rate(每秒填充弹药的速度):6,每秒恢复6次发射次数。

  • Ammo Reload Delay:0.5,停止开火0.5秒后开始恢复发射次数(换弹)。

  • Max Ammo(最大弹药数):6,表示最多可以连发6次。


2 火箭弹

武器参数已经调节完成,接下来开始设置火箭弹。

(1)创建火箭弹预制体

① 在Hierarchy窗口中新建空的GameObject,重命名为Projectile_Rocket,并且Reset Transform。

② 把Projectile_Rocket拖进文件夹Assets > FPS > Prefabs > Projectiles,生成预制体,然后删除Hierarchy窗口中的Projectile_Rocket。

③ 双击Projectile_Cookie打开预制体:

  • 打开文件夹Assets > ModAssets > SpaceProps

  • 把Rocket拖动到Hierarchy窗口的Projectile_Rocket下,作为其子对象。

  • 调节Rocket的Transform组件参数:Rotation:(90,0,0); Scale:(0.05,0.05,0.05)。设置后火箭头的朝向就是移动的方向。


(2)添加脚本并设置参数

通过以上操作便完成了火箭弹的外观设置,下边来要完成脚本上的设置。

①在Hierarchy窗口中选中Projectile_Rocket,在Inspector面板中搜索并添加添加脚本:

  • ProjectileBase(发射物基础脚本)

  • ProjectileStandard(用于调节子弹的碰撞判定、飞行速度和伤害等)

  • DamageArea(伤害范围)


②设置ProjectileStandard参数

a 设置碰撞相关参数

  • 在Rocket下新建空物体,命名为Tip,并且移动到火箭的位置。

  • 在Rocket下新建空物体,命名为Tail,并且移动到火箭的位置。

  • 把Tail拖进ProjectileStandard脚本的Root中进行赋值。

  • 把Tip拖进ProjectileStandard脚本的Tip中进行赋值。

  • Radius:0.1,把炮弹的检测半径设为0.1。


b 设置Movement炮弹移动相关参数

法鸡的火箭弹不是即时命中的子弹,因此飞行速度相对子弹来说较慢。

  • Speed(飞行速度):30。

  • Trajectory Correction Distance(轨道修正距离):10,炮弹在飞行前10米的过程中,会渐渐修正到发射时屏幕中心正方向的轨道上。

c 设置伤害

  • Damage:120。


③设置DamageArea参数

火箭弹具有溅射伤害,通过DamageArea脚本可以设置伤害范围,并且伤害能随着距离变化。

  • Area Of Effect Distance:5,伤害范围半径。

  • Damage Ratio Over Distance:点击右侧图框,可以通过曲线调节伤害,使距离爆炸中心越远,溅射伤害越低。

  • 把设置好的Damage Area拖进ProjectileStandard的 Area Of Damage变量框中。

完成以上操作便能进行初步试玩了,可是现在只会投射一个小火箭头出去,看起来没有什么威力。

3 添加特效

为了让火箭弹更加看起来更加有表现力,需要在火箭的尾部添加烟雾效果,并且击中目标时播放爆炸特效。特效可以自行制作或者在Asset Store里边找合适的,底部链接地址提供本次使用的两个特效。

双击打开Projectile_Rocket预制体进行编辑:

(1)把烟雾特效VFX_TailSmokeEffect拖到Hierarchy窗口中的Tail节点下。

(2)找到Projectile Standard脚本,把爆炸特效VFX_DiskRange_Rocket拖到Impact VFX框中。

赶紧试试效果吧,是不是酷炫了好多呢~

结语:FPS Microgame的法老之鹰MOD制作分享就到这里了,小伙伴们可以充分发挥自己的想象力,做出各种自己喜欢的功能,例如艾什的延时雷管等等,希望大家玩得愉快。

烟雾和爆炸特效链接:https://pan.baidu.com/share/init?surl=OvmZoPdiVXqRj4sl2aERBw

提取码:78w3

参考资料:

FPS Microgame官方教程:


咱们的游戏开发交流群也欢迎强势插入:869551769

希望参与线下游戏开发学习的,欢~~~~~~迎访问:levelpp.com/

FPS Microgame 的法老之鹰MOD制作分享的评论 (共 条)

分享到微博请遵守国家法律