1. 前言:
帝國的戰役製作經歷了20年,留下了不少被認為無法攻克的難題。例如問上所有的高分戰役製作者:英雄的光環效果有沒有辦法實現。所有人都會告訴你不可能。同樣的,能否讓死掉的單位再活過來,所有人也都會告訴你不可能。而這兩個問題本質上,其實是同一個問題:只要能復活死掉的單位,英雄光環就不會是夢想。而這個問題在帝國二發行近20年的今天,終於有了解決方法。
2. 困難點與理論背景:
2.1 技術困難點. 死者復活的困難點在於地圖ID的繼承。所謂地圖ID,就是一開始放在地圖上所有單位的編號。地圖ID有點像是單位的"真名",例如在觸發中寫入ID 001號的單位增加100血,那對應的就只會是001號單位增加100血。以今天的技術而言,利用觸發或MOD要在死去的單位原地建立一個單位是很容易的。但新建立的單位,他的地圖ID和死去的單位必定不同(就算改變屍體單位也是一樣的)。因此,如何在單位死亡後建立一個和原本單位有相同地圖ID的單位,就變成死者復活的主要困難之處。
值得一提的是,死者復活這個技術目前只有在004觸發系統上做得到。當初1.4和etp推出後004發表的這個觸發擴充版本沒有多少人重視(可能只有在下有好好鑽研過),非常可惜。以在下來看,up1.5當今技術仍不能完全取代004的觸發擴充。
2.2 死亡狀態與真實死亡. 描述完此技術的困難點後,我們還需要知道幾個技術的理論背景。第一個是有關死亡。一個單位在血量為0時,會進入死亡狀態,在短暫的跑完死亡動作後,才會進入真實死亡。有趣的是,只要在進入真實死亡前,單位都是可以受到觸發和科技影響的,但只要一旦進入死亡狀態,單位就不可避免得一定會邁向真實死亡。而進入真實死亡後,所有觸發和科技對此單位都會無效,而且此單位的地圖ID就會永遠地從這場戰役中消失(無論你之後建立了什麼單位,都不會是這個ID)。
既然死亡狀態是不可逆的,有沒有辦法能永久暫停呢?答案是可以,以下圖為例,一個弓兵死亡瞬間,利用擁有較少單位就可以偵測出來。此時將這個弓兵瞬間進駐到一個建築(或單位)裡,這個單位就會以死亡狀態保存於此建築中,但永遠不會進入真實死亡。(下圖最右邊是在死亡狀態時,研發弩兵科技後讓單位變成死亡單位升級成弩兵(死亡的弩兵)的結果)。
2.3 同ID技術與真假單位. 第二個理論背景是關於同ID的。這裡說的是同正ID,不了解背景知識的可以閱讀在下之前撰寫的關於同ID的按鈕技術。004觸發中最有趣的幾個效果,一個是可以用指派的方式將A的ID變成和B的ID一樣,其中A也可以換成一個區域。指派後兩單位A、B的地圖ID會完全一樣,但B會是真單位而A會是假單位。真單位的意思是在遊戲中不管是觸發或是AI,甚至是電腦在判定單位的狀態時,都是以真單位的狀態為準。也就是因為如此,如果假單位進駐時進行卸載,真單位才會以"被放出"的形式移動到卸載的位置。至於假單位,無法被選取也無法控制。
但同ID技術有很多侷限之處,例如它對單位的改權十分敏感。因此如果不熟悉這技術的新人製作者,在製作過程鐵定會產生一堆BUG (ex. 《流镝》的技能存檔後失效就是個很好的例子 )。這類BUG包含許多狀況,其中一個就是真假單位會調換身分。以004觸發為例,如果用指派的方式將A的ID變成和B的ID一樣,然後再把A改權幾秒後改回來,這樣A就會變成真單位,而B就會變成假單位。
2.4 作法. 有了上述兩個理論背景,我們就可以製作死者復活。順序如下:
1. 單位進入死亡動作那一剎那,將A單位先用觸發進駐起來,以確保A不進入真實死亡。
2. 建立一個新單位B,保持所有舊單位的能力值,並讓新單位與舊單位ID相同,此時A為真單位,B為假單位。
3. 此時新舊單位的ID相同,但進入死亡的單位為真單位,所以我們必須逆轉真假單位的順序。
4. 將新單位改權幾秒後改回來,此時新單位B就會變成可操作的真單位,其地圖ID和原本一樣。
注意到,在此之後絕對不可以將假單位A放出來。一旦A進入真實死亡,電腦就會檢查地圖上所有單位的地圖ID,並將新單位B的ID重新置換。此時,有極大機率會產生跳出。
3. 應用與總結:
看完後大家可能會覺得,此技術如此困難,到底值不值得?答案是非常值得。打個比方,單人戰役就像是一堆演員在我們設計的舞台上表演。而隨著戰役的進行,新建立的單位們就像是一群不受觸發控制的臨時演員。但是如果我們能讓單位復活,那麼每次我們就可以讓這固定的一兩百人在場上表演,每個都可以受到觸發控制,想製作英雄光環效果也能用觸發與AI處理。這樣一來就可以大幅的增加戰役製作的效果。 |