重生馬老弟(2)關(guān)鍵
很快的,我來到了
script-key-4K.mui
的編寫。“4.0真的是一個(gè)奇怪的版本?!蔽胰缡堑?。因?yàn)槲募渲?K的K必須大寫,否則會造成皮膚無法正常使用的問題?!伴_源啊開源,你真的是讓人又愛又恨?!蔽覠o奈地嘆了口氣,繼續(xù)進(jìn)入編寫狀態(tài)。
script-key-4K.mui
UTF-8*
1║
#
Original Author:
2║
#
Ported by iTristan/Mr-Mania
3║
@version
4.0.0 4║
@include
skin.ini.mui
沒啥好說,跳
5║_mania-stage-left
6║ anchor=8
7║ szie=0,480
8║ pos=
N????
,0
9║ zindex=1
10║ tex=mania-stage-left.png
11║_mania-stage-right
12║ anchor=6
13║ size=0,480
14║ pos=
N????
+{4xColumnWidth}+{3xColumnSpacing}
15║_mania-stage-bottom
16║ anchor=6
17║ size={4xCloumnWidth}+{3xColumnWidth},0
18║ pos=
N????
,0
19║ zindex=0
20║ tex=mania-stage-bottom.png
21║_mania-stage-hint
22║ anchor=3
23║ size={4xColumnWidth}+{3xColumnSpacing},0
24║ pos=
N????
,{HitPosition}
25║ zindex=8
26║ tex=mania-stage-hint.png
這一部分是皮膚修飾元件,跟著下面兩個(gè)也是,但下面需要小小講解一下
上一章要求計(jì)算的百分比數(shù)字就是這個(gè)N????,后面所有出現(xiàn)的地方我都會標(biāo)紅111
27║_mania-stage-play_bg-[1-4]
28║ anchor=6
29║ size={ColumnWidth},480
30║ pos=
N????
${ColumnWidth}+{ColumnSpacing},0
31║ zindex=0
32║ tex=texture?.png
33║# fix=1
34║_mania-stage-background
35║ anchor=6
36║ size={4xColumnWidth}+{3xColumnSpacing},480
37║ pos=
N????
,0
38║ zindex=0
39║ tex=texture?.png
這里是軌道背景,兩個(gè)元件其實(shí)是二選一的情況:當(dāng)ColumnSpacing=0時(shí),play_bg-[1-4]不選;當(dāng)ColumnSpacing>0時(shí),background不選。兩個(gè)元件的核心是texture?.png。首先這張png圖的像素為1x1;回到OSU側(cè)skin.ini文件并找到Colour#:[R,G,B(,a)],通過簡單的染色,我們便可以將這4個(gè)值用一張png圖片表示出來(不知道a是什么的笨蛋,a是透明度,取值也是0-255),在mui里將圖片進(jìn)行拉伸,就能還原OSU側(cè)的效果。
大部分OM皮都不會改這個(gè)東西,而是默認(rèn)全黑,如果你在skin.ini里找不到Colour#屬性,用black.png就行了
噢噢對了,OSU皮膚如果素材缺少會使用默認(rèn)皮膚的素材,使用模板時(shí)如果發(fā)現(xiàn)這種情況去原皮里面找
fix這種UIS手冊沒有的東西好像不太穩(wěn)定,所以需要background元件
接下來是功能性元件
40║note-[1-4]
41║ anchor=4
42║ size={ColumnWidth},
N?
43║ pos=
N????
+{Half_ColumnWidth}${ColumnWidth}+{ColumnSpacing},480+{Half_ColumnWidth}
44║ pos2=
N????
+{Half_ColumnWidth}${ColumnWidth}+{ColumnSpacing},{HitPosition}+{Half_ColumnWidth}
45║ tex=
46║ tex2=
47║ tex3=
48║ tex5=
49║ type=2
50║ type2=0
51║ toggle=1
52-66║
#留空,若有需要則分別填入note2-4 tex1-5對應(yīng)圖片
為什么toggle=1呢?因?yàn)橐€原OM長條摁下時(shí)吸附到判定點(diǎn)的特效。這里我還是喜歡MaV里可選的編輯,開源這里你做得好啊
size中的N?不能為0,因?yàn)樾枰WCtex3(即面尾)的正常顯示
tex3與tex的長寬比必須一致,否則會導(dǎo)致顯示問題。一般來講note的寬高比都是1:1,這個(gè)時(shí)候N?處直接填寫{ColumnWidth}即可
若note圖片長寬比不是1:1或WidthForNoteHeightScale與Columnwidth不一樣,則需要對面尾進(jìn)行修改。前者具體修改方法為新建圖片,使圖片長寬比與note圖片相同,然后修改OM側(cè)的面尾圖(上下翻轉(zhuǎn)),將面尾圖下切線與新建圖片的中線對齊,并將面尾圖上調(diào)一個(gè)像素的距離(若直接對齊中線會導(dǎo)致面身與面尾有1像素的重疊,當(dāng)然如果面尾是長方形的就沒關(guān)系了),具體見下圖1
小tip:如果你想面短一點(diǎn),圖2是一種效果一般但是比較簡單的做法。
(兩圖綠色部分表示透明)
67║key-[1-4]
68║ anchor=3
69║ size={ColumnWidth},0
70║ pos=
N????
${ColumnWidth}+{ColumnSpacing},{HitPosition}+{Half_ColumnWidth}
71║ zindex=
#7 or 11 //取決于skin.ini里KeysUnderNote取值
72║ tex=
73-78║
#留空,同note元件
79║press-[1-4]
80║ anchor=3
81║ size={ColumnWidth},0
82║ pos=
N????
${ColumnWidth}+{ColumnSpacing},{HitPosition}+{Half_ColumnWidth}
83║ zindex=
#8 or 13 //同key元件
84║ frame=
85║ frame2=
86║ interval=128
87-96║
#留空 //同上
這里我將OM的key拆成了兩個(gè)元件來寫。眾所周知,OM在你按下按鍵后,無論你按下的時(shí)長,key總是會持續(xù)一段時(shí)間的按下顯示。這種情況下連續(xù)鍵入不受影響,但視覺效果就是key似乎沒有抬起過一樣。我覺得很有特色,而且通過press元件的frame2(松手動效)剛好可以還原,于是就做了。
僅限于OM皮有press或key其中一個(gè)的情況,如果兩個(gè)都有,那還是犧牲還原度key寫key,press寫press(可以看我往期作品)
這方面還是MaV做得好,獻(xiàn)上愛心?
注意,OM側(cè)key的拉伸十分詭異,規(guī)律似乎仍沒有完全摸清,基本上都是改一點(diǎn)進(jìn)游戲看一下,移植的時(shí)候建議先看看OM側(cè)的key在游戲里大概長什么樣子,再直接編輯圖片拉伸成對應(yīng)的形狀,最后Ma的等比例縮放會解決剩下的東西
97║bar
98║ anchor=6
99║ size={4xColumnWidth}+{3xColumnSpacing},N?
100║ pos=
N????
,{HitPosition}
101║ pos2=
N????
,{HitPosition}
102║ zindex=
#9 or 14 //唉好傻逼噢這個(gè)keysundernote
103║ tex=bar.png
bar.png的繪制跟前面texture?.png的繪制大差不差,OM側(cè)對應(yīng)的屬性是ColourBarline: [R,G,B(,a)]
104║judge-1
105║ anchor=4
106║ size=
107║ pos=
N????
+{2xColumnWidth}+{1.5xColumnSapcing},{ScorePosition}
108║ zindex=15
109║ frame=mania-hit/0-3
110║ interval=24
111║ type=1
judge元件
講個(gè)冷知識,主播曾經(jīng)試圖手搓序列幀還原OM側(cè)的判定跳動效果,當(dāng)時(shí)的筆記如下:一至三級判定:第一幀:原圖;第二幀:原圖大小x0.95;第三幀:原圖大小x0.9;第四幀:原圖大小x0.85;第五幀至第七幀:原圖大小x0.8;;四級判定(miss):第一幀:原圖旋轉(zhuǎn)-5°;第二幀:原圖不旋轉(zhuǎn),大小x0.9;第三幀:原圖旋轉(zhuǎn)5°,大小x0.7;第四到第五幀:原圖大小x0.7
有大佬有OSU判定序列幀的工程(小hundred),我最后還是找了他幫忙(人很好說話很善良)
唉我那時(shí)好蠢
112║score-combo
113║ anchor=4
114║ fsize=
115║ pos=
N????
+{2xColumnWidth}+{1.5xColumnSpacing},{ComboPosition}
116║ pos2=N?px,0
117║ zindex=16
#是的判定和combo的覆蓋關(guān)系就是combo在上,這個(gè)我也研究過
118║ frame=combo/0-9
119║hit-[1-4]
120║ anchor=4
121║ size={ColumnWidth},0
122║ pos=
N????
+{Half_ColumnWidth}${ColumnWidth}+{ColumnSpacing},{HitPosition}+{Half_ColumnWidth}
123║ zindex=12
124║ frame=0/0-0
125║ frame2=h1/0-0
126║ frame3=h1/0-0
127║ interval=64
128-139║
#留空,同
這里是模板的一個(gè)重點(diǎn):通過hit元件來還原OM側(cè)長條吸附效果。這種方法并不是我原創(chuàng),而是我通過學(xué)習(xí)一位前輩的作品復(fù)現(xiàn)出來的(忘了在哪)
在hitposition比較高的皮膚里不太好用,例如我的bojii轉(zhuǎn)皮(新一點(diǎn)的那個(gè))
如果OM皮有hit那就要做出取舍,保留效果還是hit二選一
我曾經(jīng)用過hit來還原press,但效果不太一樣,見仁見智吧。你如果想也可以試著做一下
?。。1-0.png繪制要點(diǎn)?。?!
若KeysUnderNote取值為0,則
新建空白圖片。檢查note圖片與key圖片寬多少像素,選擇較大的那一個(gè)數(shù)值作為圖片的寬,高留出足夠的空間
將note圖片居中放置在原來的圖片中,保持note的寬高比不變
新建圖層,使新圖層在原圖層下面
在新圖層中繪制一個(gè)矩形,顏色與軌道背景相同(軌道不能透明,如果透明效果會很影響觀感),寬度與圖片相同,高度為圖片一半
將矩形上切線與圖片中線對齊
保存圖片
若KeysUnderNote取值為1,則需新建圖層,使新圖層位于矩形圖層與note圖層之間,再在新圖層里放置按下后key的圖片
140║_scorebar-bg
141║ anchor=0
142║ size=
143║ pos=
N????
+{4xColumnWidth}+{3xColumnSpacing},0
144║ zindex=11
145║ tex=scorebar-bg.png
146║ rotate=-90
147║score-hp
148║ anchor=0
149║ size=
150║ pos=
N????
+{4xColumnWidth}+{3xColumnSpacing}+
Y
,
X
151║ zindex=12
152║ tex=scorebar-colour.png
153║ type=0
154║ rotate=-90
這個(gè)
XY
看下面注釋
首先hp與hp背景的大小為它們的像素乘以三分之一,得到的數(shù)值為元件size屬性數(shù)值
然后打開圖片編輯器,選中hp背景
插入hp圖片,手動對齊hp與hp背景
查看hp圖片左上角坐標(biāo),分別記錄XY的值
將兩個(gè)值分別乘以三分之一,得到
XY
得到的這兩個(gè)就是模板hp元件里pos屬性的
XY
155║score-score
156║ anchor=2
157║ fsize=26
158║ pos=100%-5,100%
159║
# pos2一般來講這一行不用寫
160║ zindex=12
161║ frame=score/0-9
162║ interval=256
163║score-acc
164║ anchor=5
165║ fsize=14
166║ pos=100%-5,100%-35.75
167║
#Pos2同
168║ xindex=12
169║ frame=score/0-11
170║ interval=150
171║@define 1 N?
172║_progress1
173║ anchor=4
174║ tex=hitcircle.png
175║ size=2.66,2.66
176║ pos=100%-{1},100%-35.75
177║progress
178║ anchor=4
179║ type=0
180║ opacity=30
181║ tex=s0-0.png
182║ size=22.66,22.66
183║ pos=100%-{1},100%-35.75
184║ zindex=12
185║_progress
186║ anchor=4
187║ tex=approachcircle.png
188║ size=20,20
189║ pos=100%-{1},100%-35.75
190║ zindex=12
這里N?是圓餅進(jìn)度條中心離屏幕最右側(cè)的距離,打開游戲一邊看一邊改數(shù)值吧,這樣反而比計(jì)算來的快。
“終于完成了!”我這樣喊道?!半m然還沒有優(yōu)化到極致,但對于這個(gè)時(shí)代來說已經(jīng)是非常超前的作品了。倘若我將模板公布出去,必定會迎來整個(gè)skin圈子的動蕩?!?/p>
接下來我進(jìn)行了一些操作:先是繪制出我原本作為經(jīng)典的頭像,其次輸入了記憶中的各個(gè)皮膚交流群群號,有的已經(jīng)發(fā)出了申請,有的卻還沒建群。不由得讓我感慨那時(shí)UIS的冷清。打包好模板,我不禁心想:pc皮在我模板制作好后就已經(jīng)被我預(yù)定下了半壁江山,那么下一個(gè)目標(biāo)就是連隱世后的幻滅都露面贊嘆的自4k用改皮了。
我向未來張開雙臂,感受屬于我獨(dú)有的機(jī)緣,不禁笑容綻放。