FPS Microgame 的法老之鷹MOD製作分享

上次簡單介紹了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腳本:

public class PlayerCharacterController : MonoBehaviour

{

//...

Jetpack jetpack;

void Start()

{

jetpack = GetComponent<jetpack>();/<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官方教程:https://learn.unity.com/project/fps-microgame​


咱們的遊戲開發交流群也歡迎強勢插入:869551769

希望參與線下游戲開發學習的,歡~~~~~~迎訪問:http://levelpp.com/