【教程】紅色警戒2美工設計入門指引 - 第三章 - SHP創(chuàng)作基本指南(一) - SHP原理概論

第三章? SHP創(chuàng)作基本指南
SHP也是TS和RA2的一種基本美工素材格式,在開始這一章的介紹之前,首先我要勸退對3D建模創(chuàng)作,或者對二維點陣像素畫繪制完全沒基礎的人,對以上內容沒啥基礎,你看了以下教程指南也不會有什么收獲。

老樣子,進行SHP原創(chuàng)開發(fā)的基本工具:






我們對SHP素材創(chuàng)作的講解,將分為幾個分章節(jié),在本章節(jié)中主要講授關于SHP的原理概論。
在后面的章節(jié)中將會逐一講述:
SHP Builder使用基本手冊
ImageShaper使用基本手冊
Photoshop像素畫基本繪畫指南
3ds Max RA2模型創(chuàng)作基本思路自學指南
SHP色盤應用初級入門
按照慣例,我不長篇大論說廢話,直接從怎么用開始說起。
關于SHP的基本原理,通俗地講,就是在一個文件里通過色盤的色號索引,來保存了一大堆圖片幀,然后游戲程序使用代碼來在游戲里調用對應序列的幀或者多個幀。
SHP做素材,主要做幾種:
建筑物
步兵
單位(飛行器/載具)
特效和動畫
建筑物
用SHP制作建筑物,簡單概括其基本原理的話,建筑物的SHP素材主要包括:本體,本體動畫,損壞動畫,運作動畫
其中,本體包括:本體幀(1),本體損壞幀(2),本體影子幀(1),本體損壞幀(2)
具體到素材原圖,那就是:

上圖中的0到5號幀,就是建筑的本體序列幀
建筑物的本體需要按照這個順序來排列序列幀,并導入到SHPB里。
此外,我們都知道在建筑物上還有一些日常小動畫,比如建筑上閃爍的小燈,還有盟軍兵營和重工上面的小旗子,還有空指部的那個停機坪動畫,這些都是獨立于本體幀以外的“動畫幀”
本體動畫幀理論上并不限制幀數(shù),而且可以沒有影子,動畫是否啟用影子是可以在art.ini或artmd.ini中獨立設置的。

但是,本體動畫的正常狀態(tài),和本體動畫的損壞狀態(tài)是在ini中分開的,不過只是代碼層面分開,在素材層面,正常狀態(tài)和損壞狀態(tài)依然可以合成在同一個SHP里

除了建筑物日常動畫,還有一種是建筑物運作動畫,這種動畫包括:重工生產時的動畫(比如原版的開門關門,開天窗關天窗),生產建筑時基地的大爪子抓箱子,和礦場被倒礦時的動畫(在RA2原版里被砍沒了)

還有一種類型,那就是建筑物的建造動畫,建筑物建造動畫理論上無幀數(shù)上限,但存在幀數(shù)下限,取值與建筑物拔起全局值相關。同時,建筑物建造動畫幀存在硬編碼,只能使用建筑物本體使用的調色盤。
附:
建筑物拔起與建筑動畫幀相關計算公式
(提供:Uranusian)
BuildupTimex900
步兵
SHP步兵素材,一般不像建筑物素材,文件碎一地,大多所有序列幀都放置在同一個shp文件中,然后通過art代碼來引用shp中的序列片段。

步兵shp素材,一般包含的基本序列類型:
靜止(站立)
閑置A
閑置B
行走
開火
匍匐(受到攻擊)
死亡
而且根據(jù)所做步兵的特殊性,還可以增加額外的內容:
部署(使用能力)
游泳
特殊死亡動畫
等等等

代碼詞典中介紹的有效動作序列標簽:
Ready=?
用于當步兵單位站在那里等待的時候。 ■
Guard=?
用于當步兵單位被置于防御模式中。在紅警2中似乎使用的不多。?
Tread=?
指定當步兵單位在水中游泳,并不斷打水保持自己浮在水面上的幀序列。(譚雅?)?
Prone=?
指定步兵單位臥倒(企圖減少傷害)的所有幀序列。?
Walk=?
指定當步兵行走的時候的幀序列。 ■
Swim=?
指定當步兵在水中游泳的幀序列。?
FireUp=?
指定當步兵單位站著向敵方單位開火的幀序列。 ■
WetAttack=?
指定當步兵單位在水中向敵方單位開火的幀序列。?
Down=?
指定當步兵單位遭到攻擊臥倒的幀序列。?
Crawl=?
指定當步兵單位爬行的幀序列。當步兵在移動的時候遭到攻擊會出現(xiàn)這種動作。?
Up=?
和down=相反。指定當危險過后步兵單位站起來的幀序列。?
FireProne=?
指定當步兵臥倒開火的幀序列。?
Idle1=?
Idle2=?
指定當步兵單位站著閑得沒事的幀序列。這會使步兵單位不至于看起來像一尊雕像一樣。 ■
WetIdle1=?
WetIdle2=?
同上。不同點是這里的標簽指的是水中。?
Die1=?
指定當步兵單位被某種擁有InfDeath=1彈頭的武器殺死的幀序列。 ■
Die2=?
指定當步兵單位被某種擁有InfDeath=2彈頭的武器殺死的幀序列??赡軙腄ie2=和Die3=中隨機選擇一種。 ■
Die3=?
指定當步兵單位被某種擁有InfDeath=1彈頭的武器殺死的幀序列??赡軙腄ie3=和Die2=中隨機選擇一種。 ■
Die4=?
指定當步兵單位被某種擁有InfDeath=3彈頭的武器殺死的幀序列。 ■
Die5=?
指定當步兵單位被某種擁有InfDeath=4彈頭的武器殺死的幀序列。 ■
WetDie1=?
指定當步兵單位在水中被殺死的幀序列??赡軙腤etDie1=和WetDie2=中隨機選擇一種。?
WetDie2=?
指定當步兵單位在水中被殺死的幀序列??赡軙腤etDie2=和WetDie1=中隨機選擇一種。?
Deploy=?
指定當步兵單位被命令“部署”從而激活某種功能(就像美國大兵會在身邊擺放沙袋并架起機關槍)的幀序列。?
Deployed=?
指定當步兵單位被部署且目前閑的沒事的幀序列。?
Undeploy=?
指定當步兵被命令“取消部署”的幀序列。?
Cheer=?
指定步兵單位歡呼的幀序列。 ■
Paradrop=?
指定當步兵單位被空投到戰(zhàn)場上的幀。該幀不要有影子。 ■
(YR) SecondaryFire=?
(僅用于尤里的復仇)和FireUp=相同,不同的是這里使用第二武器開火。 ■
(YR) SecondaryProne=?
(僅用于尤里的復仇)和FireProne=相同,不同的是這里使用第二武器臥倒開火。
單位(飛行器/載具)
SHP單位素材類似于SHP步兵,但是相比步兵來說,SHP單位被允許使用8x(x≥1,x∈N*)個方向。

但是素材本身的基本制作流程和步兵基本一致,不同處僅在于代碼和朝向方向面數(shù)。
特效和動畫

特效,或者動畫的SHP素材,本質上就是動畫幀序列了,并沒有特殊之處,不同的點在于,理論上很多個動畫可以被塞在同一個文件里,因為游戲程序是通過art代碼來調用相應的動畫幀序列,但是并不建議這樣做,因為如果色系差異較大的動畫特效,而且使用了自定義色盤,會因為色系類型過多而影響自定義色盤的效果發(fā)揮。

本章節(jié)主要講述了關于SHP素材的基本原理概論,以及主要素材類型應用途徑。在后面的章節(jié),我將通過SHPB和IS這兩種軟件的使用基本方法來引入如何制作一個可以被使用在游戲中的SHP素材。