ASTROFOX
外掛程式

外掛程式參考資料

Astrofox 外掛程式資訊清單、控制項、音訊資料、uniform 與影格的參考資料。

每個外掛程式都從一個 astrofox.plugin.json 資訊清單開始。

資訊清單欄位#

欄位類型說明
apinumber外掛程式規格版本。請使用 1。
namestring必填的命名空間 ID,例如 @author/plugin-name。
versionstring外掛程式發行版本。
labelstring顯示在選單與圖層面板中的名稱。
descriptionstring安裝期間顯示的簡短說明。
authorstring外掛程式作者或組織。
typestringdisplay 或 effect。
runtimestringshader 或 worker。顯示元件可使用任一種;效果必須使用 shader。
shaderstringshader 執行環境使用的片段著色器路徑。
entrystringworker 執行環境使用的 ES 模組路徑。
iconstring選用,顯示在選單中的圖示路徑。
permissionsstring[]要求的功能,目前包括 network。
librariesstring[]worker 要求的主程式程式庫;目前為 three。
cameraboolean為 worker 顯示元件加入主程式攝影機控制。
audioobject外掛程式要求的 FFT 與時域資料。
defaultPropertiesobject每個新實例的初始屬性值。
controlsobject宣告式的控制面板結構描述。
uniformsobjectshader 執行環境中屬性到 uniform 的對應。

路徑會以資訊清單 URL 為基準進行解析。已發布的檔案必須使用 HTTPS;開發時允許使用 http://localhost。

音訊資料#

只宣告外掛程式需要的音訊資料:

值範圍與意義
fft.bins1–512 個標準化的頻率值
fft.minFrequency / maxFrequency以赫茲為單位的頻率範圍
fft.smoothing0–0.99 的指數平滑
fft.minDecibels / maxDecibels輸入音量標準化的上下限
td.samples時域波形取樣數

FFT 值的範圍為 0 到 1。時域值的範圍同樣為 0 到 1,靜音位於中心的 0.5。Worker 顯示元件可以同時要求 FFT 與時域資料。著色器顯示元件只會接收 FFT 與 volume。著色器效果會接收 volume、time、delta 與 inputTexture,但不會接收 FFT 或時域陣列。播放與影片匯出期間使用相同的分析流程。

控制項#

支援的控制項類型有 text、number、toggle、checkbox、color、colorrange、range、select 與 time。

常用欄位包括:

欄位用途
label供人閱讀的控制項名稱
type要渲染的輸入元件
min、max、step數值上下限與精確度
withRange為數值輸入顯示滑桿
withReactor允許反應器驅動此屬性
items下拉選單輸入的可用值
hidden有條件或永久隱藏此輸入

由於資訊清單是 JSON,動態值需使用參照:

舞台參照可以包含 scale;例如,{ "$stage": "width", "scale": -1 } 會解析為負的舞台寬度。

Uniform 對應#

shader 執行環境會將屬性對應到 GLSL uniform:

color 會將十六進位顏色轉換成三分量向量。向量對應會從列出的屬性讀取各個分量。

Worker 工廠函式輸入#

依照資訊清單的內容,worker 工廠函式會收到:

輸入說明
properties資訊清單與實例的初始屬性值
seed每個實例穩定的隨機種子
size目前的舞台尺寸
libraries要求的主程式程式庫命名空間
renderer要求 three 時提供的共用 Three.js renderer

影格資料#

render(frame) 會收到:

欄位說明
id影格識別碼
time以秒為單位的確定性時間
delta距離上一個影格的時間,以毫秒為單位
playing時間軸或即時輸入是否正在進行
exporting是否正在渲染離線匯出
volume整體標準化音訊音量
seed穩定的外掛程式實例種子
fft已設定時,所要求的 FFT 陣列
td已設定時,所要求的時域陣列

匯出期間,delta 固定為 1000 / fps。請使用 time、delta 與 seed 來製作可重現的動畫。

渲染結果#

worker 的 render() 方法可以回傳:

寬度與高度設定圖層的邊界。選用的 origin 值則設定其變形原點。