【Aegisub】粒子系統(tǒng)之簡單煙花效果

? ? ? ? 本來是沒打算講這的,看到有一些人不知道怎么做煙花效果,不過煙花有很多種,不知道大家想做哪樣的,就挑一鐘常見的,隨便亂做一下就是了

????????比方說要做一個(gè)煙花,那么顯然可以將整個(gè)過程分成兩個(gè)部分,第一是發(fā)射階段第二是爆炸階段。就先看爆開的階段怎么做,首先設(shè)定比如有多少束粒子、每一束粒子總共有多少個(gè)。可以隨機(jī)設(shè)定粒子束在35條到40條,然后比如設(shè)定每一條都有160個(gè)粒子,那么接下來隨便算一算每一條粒子束的每一個(gè)粒子的坐標(biāo)即可。所以可以外層for遍歷煙花條數(shù)內(nèi)層for遍歷每條的粒子個(gè)數(shù),然后計(jì)算一個(gè)個(gè)粒子的坐標(biāo)。對于每一條粒子束,假設(shè)一開始粒子從(0,0)飛出來的,可以設(shè)定它以一個(gè)隨機(jī)的速度飛出去,比如你設(shè)定一個(gè)最大的vx、vy,然后隨機(jī)出的vx和vy就在0到最大值之間、方向也是隨機(jī)的正負(fù)

然后比如再設(shè)定一下衰減就可以算算每個(gè)粒子的坐標(biāo)了,比方說每個(gè)粒子的速度vx是上一個(gè)粒子的0.975,這樣x方向最后就幾乎沒有速度了

當(dāng)然這些數(shù)值你可以自己調(diào)節(jié)。然后每次的坐標(biāo)就累積起來就行了

每條粒子束,粒子一開始從x=0,y=0開始飛出去,下一個(gè)粒子的坐標(biāo)就可以這樣隨便的算一下
然后每一條粒子束的顏色都可以有一定程度的隨機(jī),比如

所以現(xiàn)在煙花爆炸部分的所有曲線不就有了嗎,對于每一條,設(shè)定local x,y=0,0、設(shè)定local vx,vy隨機(jī)速度、設(shè)定local c隨機(jī)顏色,然后再對于每一條的每一個(gè)粒子,衰減vx,vy并累加出x,y,并將坐標(biāo)信息和顏色信息放進(jìn)表里,這樣就有了所有需要的粒子了:


有了所有粒子以后,就可以通過調(diào)節(jié)retime來設(shè)定每個(gè)粒子的開始時(shí)間結(jié)束時(shí)間。比如你可以設(shè)定整個(gè)爆炸部分的持續(xù)時(shí)間是2.5秒即2500ms,那如果每個(gè)粒子開始時(shí)間的間隔是一樣的話,那第 i?個(gè)粒子的開始時(shí)間可以是(i-1)/(n-1)*2500(假設(shè)一條有n個(gè)粒子),當(dāng)然也可以設(shè)定一定的加速度,比如第 i 個(gè)粒子的開始時(shí)間可以是((i-1)/(n-1))^1.3*2500這樣粒子開始出現(xiàn)得就更快后面的粒子就出現(xiàn)的越來越慢。那結(jié)束的時(shí)間也一樣的隨便調(diào)節(jié)一下就行了,比如開始時(shí)間是(i-1)/(n-1)*2500、結(jié)束時(shí)間是(i+30)/(n-1)*2500這之類的

那現(xiàn)在很明顯粒子的大小可以調(diào)節(jié)一下,因?yàn)楝F(xiàn)在的每個(gè)粒子都一樣大看起來不太可愛,所以可以隨便調(diào)一下大小,比如讓每個(gè)粒子在持續(xù)時(shí)間內(nèi)從原本的大小變成原來的一半,比如\fsc200\t(,\fsc100)或者直接利用fad淡出效果,因?yàn)槊總€(gè)粒子的開始時(shí)間是不同的而fad效果會錯(cuò)開淡出的時(shí)間,所以每個(gè)粒子的顯示當(dāng)然也錯(cuò)開了。當(dāng)然fad也隨便設(shè)定一下就行,如\fad(0,1111)

唉反正隨便瞎做嘛。這樣視覺上不僅有了粒子大小的不同還有了一點(diǎn)淡出的效果。然后可以在前面加個(gè)頭頭,就再加一行模板行,然后控制每個(gè)粒子的開始時(shí)間和結(jié)束時(shí)間,當(dāng)然下一個(gè)粒子的開始時(shí)間就是此時(shí)粒子的結(jié)束時(shí)間,那么就可以有頭頭了:

然后比如可以讓這些星星在是最后一個(gè)粒子的時(shí)候持續(xù)時(shí)間長一點(diǎn),讓它們隨機(jī)的閃爍一下,比如可以用之前我講過的隨機(jī)autotag函數(shù)讓透明度隨機(jī)的變化就行了

然后其實(shí)你想控制一下煙花的半徑也行,比如你可以改變你設(shè)定的vx,vy最大值,也可以直接大概計(jì)算一下煙花此時(shí)的半徑,然后縮放一下得到相應(yīng)的半徑,比如x和y都乘以2半徑就擴(kuò)大了一倍。算半徑的話,比如就看在x方向最多能走多少,根據(jù)你設(shè)定的vx最大值來,每個(gè)粒子的vx都是上一個(gè)的0.975倍,那一條一共有n個(gè)粒子,到最后第n個(gè)粒子時(shí)x方向走了多少用等比數(shù)列求一下和就行了,隨便估計(jì)一下半徑就行了

那一個(gè)煙花除了爆炸階段還有發(fā)射階段,發(fā)射階段隨便算一算就行了嘛,設(shè)定個(gè)發(fā)射速度設(shè)定個(gè)加速度之類的。唉反正隨便瞎做嘛。就一條豎線而已

當(dāng)然比如你也可以對坐標(biāo)加一些隨機(jī),那么就會得到這樣的效果

反正大家可以發(fā)揮自己的想象力做各種效果嘛
然后有了一個(gè)煙花以后,就可以做很多個(gè)煙花放來放去的效果。比如瞎寫個(gè)函數(shù),讓隔一定時(shí)間就有一定的概率發(fā)射一個(gè)煙花,或者每隔一定范圍的隨機(jī)時(shí)間就放一個(gè)煙花之類的。
? ? ? ? 其它代碼啥的就在相應(yīng)的視頻里講
? ? ? ? 這篇專欄對比其它專欄看起來也太短了吧