DHR-動畫研究字幕組

標題: [羽的Aegisub教學(3)]使用Aegisub的內建函數製作隨機顏色 [打印本頁]

作者: 羽hane    時間: 2012-5-9 13:38
標題: [羽的Aegisub教學(3)]使用Aegisub的內建函數製作隨機顏色
本文章最後由 羽hane 於 2012-5-9 14:04 編輯

會寫本篇文章只是無聊寫的
Aegisub的功能很多 有些真得很難發覺~所以常常繞遠路
之前看到水姬的一個隨機顏色寫法 還不錯~

其實寫隨機顏色另一種方法可以直接使用Aegisub的內件函數
就不必大費周章再一堆lua code
這篇算是我教學中寫最短的文章吧...

當然Aegisub的內建函數也可以寫出彩虹出來 (例如我的簽名中那爸爸的ED 在此不透露怎麼寫)
彩虹顏色再搭配\1vc(MOD的語法)就變得更好看了(但我懶得用)
彩虹的事到此為止~先進入正題吧

因為ASS語法的顏色和透明度設定都是用16進位運算 所以必須要用函數作轉換
這部分Aegisub已經為我們想到了

1.顏色 R G B 轉換成 ASS代碼 [ass_color(r, g, b)]
ass_color(r, g, b)
r(紅).g(綠).b(藍)皆為0~255
例如:白色為 ass_color(255, 255, 255)
根據此函數再搭配math.random就成了隨機顏色的效果
範例如下
  1. \1c!_G.ass_color(math.random(255),math.random(255),math.random(255))!
複製代碼
如果有多行字幕想用同樣產生出來的隨機顏色 就用set_temp吧 詳細請看上一篇

當然覺得太長 也可以寫成函數
效果:code once
  1. function rand_color() return _G.ass_color(math.random(255),math.random(255),math.random(255)) end
複製代碼
之後可以寫成這樣
  1. \1c!rand_color()!
複製代碼
2.透明度 (0~255) 轉換成 ASS代碼 [ass_alpha(a)]
ass_alpha(a)
a為10進位的透明度 範圍 (0~255)

完全透明
\alpha!_G.ass_alpha(255)!
完全不透明
\alpha!_G.ass_alpha(0)!
隨機透明度
\alpha!_G.ass_alpha(math.random(255))!


隨機顏色範例
想要讓一行文字顏色都隨機時
效果:template char
  1. {\pos($x,$y)\1c!_G.ass_color(math.random(255),math.random(255),math.random(255))!}
複製代碼
效果:karaoke
  1. 在此打上你要打的文字
複製代碼
然後自動化處理~就會出現隨機顏色的文字了

教學3結束~
作者: Crazy小神乂    時間: 2012-5-9 19:25
恩..
您真是太強了!= =
作者: sil_yuzhe    時間: 2012-5-10 16:53
强大的内建函数
另外哪里找一份这个内建函数的表?




歡迎光臨 DHR-動畫研究字幕組 (https://dhr.moe/) Powered by Discuz! X3.1