*.tvp 天天動聽V3.3.0及以上版本可的視化效果配置檔案,後綴為tvp,存在放在x:/ttpod/plugins/內。(註:x 代表軟體安裝盤,如,C:,E:盤)
可視化效果語法說明,需要對基礎程式語言有一些了解,有興趣的朋友可以研究一下。波形圖的語法其實是很簡單的,所有的操作參數都遵照這樣的格式
(運算符 參數 ...)
參數可以(通常)是下面的一種
一個字 支持只有數值,及所有浮點數字
例如 1.0 23.92
一個變數 變數的引用方式為'$名字','名字'可以是任何字元或數字
文字式的組合。
例如:$x $Volume $Y3
腳本現在支持一種簡單的數組類型,在一個數組中
最大可自定義的數字為1024。這個數組可以按下面的方式
書寫
[$名字 參數]
注意:這個'$'是必須填寫的。'參數'可能是任
何參數的類型。只有'參數'的整數部分的內容是有用的。
任何可以使用變數的地方都可以使用數組。
一個運算符 大多數的參數可以是另一個運算的返回值
例如 (運算 (運算 參數) 參數)
你需要在你的腳本中定義一些在恰當時間運行的函式。比如,腳本的所有類型應該有
一個用來為主函式準備相關變數和設定的初始函式,一個初始函式的範本應該是
(function init
(= $RandomX (- (rnd 2.0) 1.0))
(= $RandomY (- (rnd 2.0) 1.0))
)
要讀懂腳本代碼,最好是從內到外。所以,在這個例子中最裡層的函式是(rnd 2.0),
這個會返回一個在0.0和2.0之間的隨機數字;
向外一層是(- (rnd 2.0) 1.0),
這個是指用0.0到2.0之間的一個隨機數值減去1.0的差值;
外層是(= $RandomX (- (rnd 2.0) 1.0)),
指的是設定變數$RandomX的值為我們剛才計算出的值(也就是(- (rnd 2.0) 1.0));
翻譯成C語言也就是:$RandomX = rnd(2.0) - 1.0
你會注意到:整個函式包含在(function init ..)內。
這是如何定義函式。此時如果不能運行你自己的函式,那么你只需要為每種類型的腳本創建所需的函式。
儘管語言可能看上去令人費解,但它很容易學,並且它獨特的布局設計允許簡單快速的編譯並運行這些腳本。
函式列表
-------------
下面的函式是可用的
數學運算符:
這些是一些數學函式,及三角函式和其他一些標準數學函式。三角函
數中的所有角度都是按弧度的(一個滿圓是2π×弧度)
函式 用法 注釋
-------- ----------------------- --------------------------------------
+ (+ arg1 arg2 ...) 和:返回(arg1 + arg2)的值,可以添加更多參數。
- (- arg1 arg2) 差:返回(arg1 - arg2)的值
* (* arg1 arg2 ...) 積:返回(arg1 * arg2)的值,可以添加更多參數。
/ (/ arg1 arg2) 商:返回(arg1 / arg2)的值,如果arg2 = 0,那么返回結果0
mod (mod arg1 arg2) 餘數:返回(arg1 / arg2)的餘數
% (% arg1 arg2) 餘數:和mod含義相同
abs (abs arg1) 絕對值:返回arg1的絕對數值
trunc (trunc arg1) 整數部分:返回arg1的整數部分
sign (sign arg1) 正負:如果arg1 >= 0,返回值為1.0,否則為-1.0
pos (pos arg1) 非負數:如果arg1 >= 0,返回值為arg1,否則為0.0
neg (neg arg1) 反數:返回arg1的反數。注意:這個不同於pos函式,而是等同於(- 0 arg1)。
sqrt (sqrt arg1) 平方根:返回arg1的平方根值
log (log arg1) 對數:返回arg1的對數
exp (exp arg1) 指數:返回arg1的指數
pow (pow arg1 arg2) 冪指數:返回arg1的arg2次方冥
sin (sin arg1) 正弦:返回arg1的正弦值
cos (cos arg1) 餘弦:返回arg1的餘弦值
tan (tan arg1) 正切:返回arg1的正切值
atan (atan arg1 arg2) 反正切:返回arg2 / arg1 的反正切。正確對待arg1 = 0。
rnd (rnd [arg1 [arg2]]) 隨機:返回一個在arg1和arg2之間的隨機數值。
如果沒有arg2,則會返回一個在0和arg1之間的值;
如果都沒有,那么返回一個0和1之間的值。
wrap (wrap arg1 [arg2 剪下arg1到[arg2, arg3]的範圍內
[arg3]])
clamp (clamp arg1 [arg2 如果arg1小於arg2,返回arg2
[arg3]]) 如果arg1大於arg3,返回arg3
否則返回arg1
邏輯運算符:
邏輯運算使用了布爾函式的許多語法。
由於腳本只支持浮點數,所以值1.0表示真,值0.0表示假。
在使用邏輯數字時,所有非0數字都被認為是真。
函式 用法 注釋
-------- ----------------------- --------------------------------------
&& (&& arg1 arg2 ...) 當arg1和arg2同時非0時,視為真。
如果添加更多參數,那么它們必須同樣是非0數值。
當找到第一個0值時,只有足夠的參數會被評估,
否則全部參數會被評估。
|| (|| arg1 arg2 ...) 當arg1或者arg2為非0值時,視為真。
如果添加更多參數,那么它們必須同樣是非0數值。
當找到第一個非0值時,只有足夠的參數會被評估,
否則全部參數會被評估。
! (! arg1) 當arg1為0時,視為真。
== (== arg1 arg2) 如果arg1和arg2相等時,視為真。
!= (!= arg1 arg2) 當arg1不等於arg2時,視為真。
< (< arg1 arg2) 當arg1小於arg2時,視為真。
<= (<= arg1 arg2) 當arg1小於等於arg2時,視為真。
> (> arg1 arg2) 當arg1大於arg2時,視為真。
>= (>= arg1 arg2) 當arg1大於等於arg2時,視為真。
位運算符
儘管腳本中的所有變數是浮點數字,但一小部分的位運算符還是可用的。位運
算符的小數部分將被丟棄,整數部分可以調用。
函式 用法 注釋
-------- ----------------------- --------------------------------------
& (& arg1 arg2 ...) 返回arg1和arg2的按二進制位進行“與”運算的值,
如果提供更多參數,它們同樣按“與”運算。
| (| arg1 arg2 ...) 返回arg1和arg2的按二進制位進行“或”運算的值,
如果提供更多參數,它們同樣按“或”運算。
<< (<< arg1 arg2) arg1整數值左移arg2位。
>> (>> arg1 arg2) arg1整數值右移arg2位。
賦值操作
函式 用法 注釋
-------- ----------------------- --------------------------------------
= (= $v arg1) 等於
polar (polar $v1 $v2 arg1 轉換arg1和arg2的x,y坐標為極坐標,
arg2) 並且把它們賦予給變數$v1和$v2(分別為半徑和角度)
函式返回值為$v1
cart (cart $v1 $v2 arg1 轉換arg1和arg2的極坐標為x,y坐標,
arg2) 並且把它們賦予給變數$v1和$v2(分別為x和y坐標)
這個函式的值為$v1的值
+= (+= $v arg1) 等同於(= $v (+ $v arg1))
-= (-= $v arg1) 等同於(= $v (- $v arg1))
*= (*= $v arg1) 等同於(= $v (* $v arg1))
/= (/= $v arg1) 等同於(= $v (/ $v arg1))
%= (%= $v arg1) 等同於(= $v (% $v arg1))
流程函式:
這些功能允許輔助於下面的函式
函式 用法 注釋
-------- ----------------------- --------------------------------------
function (delcare name [arg 運行一個函式。name是函式名,arg為參數
...]) 沒有值從函式中返回。它只能最外層而且同樣只在最外層有效。
block (block [arg ...]) 執行一個代碼段。返回值是最後的參數。
if (if arg1 arg2 [arg3]) 如果arg1, arg2, arg3同時為真,返回1
否則返回0
loop (loop $v1 arg1 arg2 不斷從[arg1, arg2]中順序取一個整數值,賦值給$v1
arg3 並執行arg3
while (while arg1 arg2) 只要arg1為真,則不斷執行arg2
音頻數據函式:
這些函式允許你獲取當前時間的音頻數據,它們只能用在在Color,Wave,Sugar函式中。
函式 用法 注釋
-------- ----------------------- --------------------------------------
lSpect (lspect arg1) 返回arg1對應的頻率強度。arg1應該
在0到1的範圍。這個數據是左聲道的。返回的
數值在0到1的範圍。
rSpect (rspect arg1) 同lspect相同,除了數據是右聲道的。
lWave (lwave arg1) 返回此時arg1(範圍是0到1)指定的波動值
(範圍為-1到1)。數據取自左聲道。
rWave (rwave arg1) 同lwave相同,除了數據是取自右聲道。
3D函式:3dSetup和3dRotate會在很多點將要以相同的角度鏇轉時使用。
3dSetup被調用一次,而更多的會被調用為3dRotate。
函式 用法 注釋
-------- ----------------------- --------------------------------------
3dSetup (3dSetup arg1 arg2 用arg1,arg2和arg3分別對應x,y和z的
arg3 ) 轉動數值來確定一個鏇轉的點陣。這個函式
應該在3dRotate函式調用前調用,當你以相
同角度選擇很多點時會預先計算。
3dRotate (3dRotate $v1 $v2 $v3 鏇轉通過3dSetup確定的arg1,arg2和arg3
arg1 arg2 arg3) 的點(x,y,z)並把值存儲在($v1,$v2,$v3)中。
特殊變數和函式
-------------------------------
在每個腳本中,有很多有著特殊含義的變數,其中一些可以通過腳本來決定運行狀態-
這個通常在初始函式中完成。其他的放在函式前面被調用,可以有效地傳送參數到函式。
==============================================================================
Color(色彩)
==============================================================================
函式: init
可用變數: 無
返回變數: 無
調用時機: 在色彩圖將要被第一次調用的時候調用。
------------------------------------------------------------------------------
函式: action
可用變數: $Time 時間(單位秒)- 參照下面的$UseTime和$RelativeTime
$Value 色彩值(從0到1.0這個範圍被看做是背景色,
1為最亮的色)
$LeftPeak, 左聲道平均強度
$RightPeak, 右聲道平均強度
$MidPeak 整個波形的平均強度
返回變數: $H, $S, $V 色彩,顏色的飽和度和強度,每一個的範圍
為0到1。只有當$UseHSV為真時,才可使用。
$R, $G, $B 紅,綠和藍部分,每一個的範圍為0
到1。只有當$UseHSV不為真時,才可使用。
調用: 無論何時,一種顏色是必須的,色彩第一次被調用時,色彩
(256色)中的每一種顏色將被調用一次。如果$UseTime為
真,每幀圖片消失前,那么它會被色彩中的每一種顏色調用。
------------------------------------------------------------------------------
特殊變數: $UseHSV 如果為真,色彩模型而非RGB數值將被用來
確定色彩
------------------------------------------------------------------------------
特殊變數: $UseTime 如果為真,色彩會隨時間改變並且每幀圖片也會
隨時間變化。
------------------------------------------------------------------------------
特殊變數: $RelativeTime 如果為真,時間變數被設定為相對於色彩第
一次被調用的時間,否則為系統時間。
------------------------------------------------------------------------------
特殊變數: $PI PI值(3.14159265358979323)
==============================================================================
Move(移動)
==============================================================================
函式: init
可用變數: 無
返回變數: 無
調用: 在移動將要被第一次調用的時候調用。
------------------------------------------------------------------------------
函式: action
可用變數: $X 橫坐標範圍從-1到1
$Y 縱坐標範圍從-1到1
$Radius 極徑,距極坐標的半徑
$Theta 極角,和極軸的角度
返回變數: $SrcX, $SrcY x,y坐標軸,新色彩x,y起點
$SrcRadius, 極軸和極角,新色彩ρ,θ起點
$SrcTheta
調用: 當前螢幕的每一個(x,y)被調用一次
------------------------------------------------------------------------------
特殊變數: $RequireRadius 如果真,當動作函式被調用時,將計算和輸
出極徑的(x,y)點值
------------------------------------------------------------------------------
特殊變數: $RequireTheta 如果真,當動作函式被調用時,將計算和輸
出極角的(x,y)值
------------------------------------------------------------------------------
特殊變數: $UsePolar 如果真,極徑值$SrcRadius和極角值$SrcTheta
將替代SrcX和SrcY。如果在初始函式中設定
為真,那么$RequireRadius和$RequireTheta
同樣會被設定為真。
------------------------------------------------------------------------------
特殊變數: $UseAspect 如果真,那么x,y的範圍是從(-1,-1)到
(1,1)定義最小的正方形來適應所有螢幕,
否則是用長方形來完全適應螢幕。
------------------------------------------------------------------------------
特殊變數: $PI PI值(3.14159265358979323)
------------------------------------------------------------------------------
==============================================================================
Wave(波形)
==============================================================================
函式: init
可用變數: 無
返回變數: $Paths 獨立波形的數量,最多為16,默認為1
調用: 當波形被第一次調用的時候調用。
------------------------------------------------------------------------------
函式: prepare
可用變數: $Time 時間(單位秒)- 參照下面的$UseTime
和$RelativeTime
$LeftPeak, 左聲道平均強度
$RightPeak, 右聲道平均強度
$MidPeak 整個波形的平均強度
返回變數: 無
調用: 新波形的每一幀在開始之前被調用一次,
------------------------------------------------------------------------------
函式: action
可用變數: $Time 同上
$Leftpeak,
$RightPeak,
$MidPeak,
$Step 當前所處步驟,範圍從0到1
$Left, $Right, 左右聲道的音量數據,範圍從0到1
$Mid 左右聲道平均值,範圍從0到1
返回變數: $X0, $Y0, 每個路徑(從0到$NumPaths - 1)
$X1, $Y1 你需要提供波形在這步的x和y點值
$Fade0, $Fade1 畫線用的色彩。參照下面的特殊變數。
調用: 波形的$Steps(參見下面的$NumSteps)被調用一次。每一次
調用會計算出各自路徑的x,y坐標。
------------------------------------------------------------------------------
特殊變數: $Paths 獨立波形顯示的數量
------------------------------------------------------------------------------
特殊變數: $Steps 沿著波形要走的步數。默認值為256。
最大值為512,最小值為2.
------------------------------------------------------------------------------
特殊變數: $Loop0, 在每一個路徑中,如果$Loopn為真,那么會
$Loop1, 從最後一點到第一個點的,一個環狀波形。
------------------------------------------------------------------------------
特殊變數: $NoLines0 在每一個路徑中,如果真,那么只會顯示波
$NoLines1 形的點而非畫線。
------------------------------------------------------------------------------
特殊變數: $Fade0 在0到1的範圍內,一個新畫的波形消退的程
$Fade1 度。值為0時,會在出現的地方畫出最亮的
顏色,同時值為1時,畫出的是背景色。
------------------------------------------------------------------------------
特殊變數: $RelativeTime 如果真,當波形第一次被調用的時候,$Time
是相對於0的一個時間值,否則為系統
時間。
------------------------------------------------------------------------------
特殊變數: $UseAspect 如果真,那么X,Y的範圍是從(-1,-1)到
(1,1)定義最小的正方形來適應所有螢幕,
否則是用長方形來完全適應螢幕。
------------------------------------------------------------------------------
特殊變數: $useBlendType 設定繪畫色彩的方式。混合方式為0時會填
入指定的色彩,混合方式為1時,會填入實
時值,混合方式為2時,只有新色彩比現在
的色彩明亮時才會填入。
------------------------------------------------------------------------------
特殊變數: $PI PI值(3.14159265358979323)
------------------------------------------------------------------------------
==============================================================================
sugar(粒子)
==============================================================================
函式: init
可用變數: 無
返回變數: $Steps 繪製的顆粒的數量。粒子函式會依次設定$Step為從0到($Steps - 1)的整數值
調用: 當粒子被第一次調用的時候會被調用,
------------------------------------------------------------------------------
函式: prepare
可以變數: $Time 時間(單位秒)- 參照下面的$UseTime和$RelativeTime
$LeftPeak, 左聲道平均強度
$RightPeak, 右聲道平均強度
$MidPeak 整個波形的平均強度
返回變數: 無
調用: 在新框架開始之前被調用一次。
------------------------------------------------------------------------------
函式: action
可用變數: $Time, 同上
$Leftpeak,
$RightPeak,
$MidPeak,
$Step 這是當前的粒子數量,包括0到($Steps - 1)
返回變數: $X, $Y 粒子的x值和y值
$Xend, $Yend 結束點的x值和y值
$Size 粒子的大小。大小的值應該在0.01到1.0之間
,大於1.0的話會很大。
$Style 這個值決定了要繪製的粒子的風格。目前支
持下面的類型
1 一個圓,使用大小$Size。
2 一條線,在($x,$y)和($Xend,$Yend)這
兩點之間。$Size將會被忽略。
其他值按類型1對待。
$Fade 粒子被繪製的顏色。參照下面的特殊變數。
調用: 每一個在0到(Steps - 1)的粒子被調用一次,每次
調用會計算出xy坐標和粒子大小。
------------------------------------------------------------------------------
特殊變數: $Steps 顯示的粒子數量。
每個粒子的每一幀會被粒子函式調用一次
------------------------------------------------------------------------------
特殊變數: $Fade 在0到1的範圍內,新粒子引起的消退程度。
0值時,粒子會繪製最明亮的顏色,1值時,
會繪製背景色
------------------------------------------------------------------------------
特殊變數: $RelativeTime 如果為真,當波形被第一次調用時,那么
$Time是相對於0的時間,否則為
系統時間。
------------------------------------------------------------------------------
特殊變數: $UseAspect 如果真,那么x,y的範圍是從(-1,-1)到
(1,1)定義最小的正方形來適應所有螢幕,
否則是用長方形來完全適應螢幕。
------------------------------------------------------------------------------
特殊變數: $useBlendType 設定繪畫色彩的方式。混合方式為0時會填
入指定的色彩,混合方式為1時,會填入實
時值,混合方式為2時,只有新色彩比現在
的色彩明亮時才會填入。
------------------------------------------------------------------------------
特殊變數: $PI PI值(3.14159265358979323)
2. 星際爭霸中人族(Tarren)對戰神族(Protoss)的簡稱。