Vovó ヘルプ

action.json と pad.json

Vovó がフォルダーや zip から読む 2 つのファイルのすべてのキーです。Vovó 自身のコードから生成されるので、常にこのバージョンと一致します。Vovó は各ファイルを受け取るときに確認し、何が間違っているかを一文で示して拒否します。知らないキーは何も言わずに読み飛ばしますが、スキーマを読むエディターはそこに下線を引きます。

キーは小文字、数字、_ からなり、名前には - も使えます。どちらも 32 文字までです。

エディターにキーを補完させ、間違いに下線を引かせるには、例のようにファイルの先頭でスキーマを指定します。vovo dev はアクションの各部分の横に action.schema.json を書き出します。Vovó のソースでは、両方が api フォルダーにあります。

action.json

アクションのマニフェストです。名前、聞くもの、求めるもの、配信を操作する人に提供するものを示します。パッケージやフォルダーの中で、index.html、style.css、script.js、files/ の横に置きます。

{
    "$schema": "./action.schema.json",
    "name": "Raffle",
    "id": "example.raffle",
    "version": "1.2.0",
    "api": 1,
    "author": "A maker",
    "site": "https://example.com/raffle",
    "description": "!join in chat joins the wheel; the panel draws the winner.",
    "license": "MIT",
    "triggers": ["chat", "timer"],
    "bindings": [
        { "event": "chat", "filter": [{ "field": "text", "op": "starts", "value": "!join" }] },
        { "event": "timer", "filter": [{ "field": "every", "op": "is", "value": 300 }] }
    ],
    "permissions": ["chat.send"],
    "controls": [
        { "key": "open", "label": "Entries open", "kind": "toggle" },
        { "key": "prize", "label": "Prize", "kind": "text" }
    ],
    "settings": [
        { "key": "color", "label": "Wheel colour", "kind": "color", "default": "#840926" },
        { "key": "size", "label": "Size", "kind": "number", "min": 200, "max": 800, "step": 10, "unit": "px", "default": 420 },
        { "key": "side", "label": "Side", "kind": "choice", "options": ["Left", "Right"], "default": "Right" }
    ],
    "panel": [
        { "kind": "control", "key": "open" },
        { "kind": "control", "key": "prize" },
        { "kind": "form", "name": "add", "label": "Put someone in", "button": "Put", "fields": [{ "key": "who", "label": "Name" }] },
        { "kind": "button", "name": "draw", "label": "Draw", "confirm": true },
        { "kind": "list", "key": "names", "label": "In the wheel", "empty": "Nobody yet", "buttons": [{ "name": "out", "label": "Take out", "confirm": true }] }
    ]
}

条件

各トリガーをもう一度、アクションを起動するためにすべて満たす必要がある条件とともに、エディターが保存する形で書きます。triggers の名前ごとに 1 つずつ、順序は自由です。一対一で対応しないと、すべての条件が何も言わずに外され、各トリガーはどんな場合にも起動します。

条件 1 つ

イベントのフィールドの 1 つを値と比べます。テキストは大文字と小文字を区別せずに比べ、テキストで書かれた数は数として読みます。

コントロール

アクションの動作中にパッドが変えるものです。それぞれキーの名前で vovo.state に保存され、control イベントとしてアクションに伝わります。一覧に書かなくても届きます。

設定

アクションを使う人がコードなしで「カスタマイズ」から変えられるものです。vovo.settings.<key> として、CSS では --vovo-<key> として読み、オン・オフと選択肢はドキュメントの data-vovo-<key> にもなります。選んだ内容はアクションとともに残り、パッケージには既定値だけが入ります。テキストは 8 つまでです。

設定: color

色です。アクションが指定しなければ、Vovó のワインレッド #840926 です。

設定: number

最小から最大までを刻みで動く数です。アクションが指定しなければ最小値です。

設定: toggle

オンかオフです。アクションが指定しなければオフです。

設定: choice

選択肢の 1 つです。アクションが指定しなければ最初のものです。

設定: text

1 行のテキストです。アクションが指定しなければ空です。

設定: file

使う人が選ぶ画像、音、動画で、50 MB までです。アクションの初期値は、自分のファイルのどれか(パスで指定)か、なしです。

設定: font

コンピューターのフォントの 1 つで、ファミリー名で指定します。アクションが指定しなければ Segoe UI です。

設定: camera

コンピューターのカメラのひとつ。アクションを使う人が「カスタマイズ」で選び、アクションが置いた場所に表示されます(vovo.camera.place、camera.show 権限が必要)。最大 4 つ。初期状態ではカメラがないので、既定値はありません。

パネル

サイドバーの「パネル」で、配信を操作する人にアクションが見せるものです。部品を順に並べ、それぞれ kind で種類を示し、Vovó が描きます。そこで行われたことは panel イベントとしてアクションに届き、一覧に書かなくても受け取れます。panel の部品は別のパネルを始め、次のパネルまでの部品がそこに入ります。最初のパネルより前の部品はすべてのパネルに表示されます。tab も同じようにパネルをセクションに分けます。ボタン、フォーム、リストのボタンの名前はアクション内で一意です。1 つのアクションが宣言できるパネルは 24 個まで、各パネルの部品は 40 個まで、タブは 12 個までです。

パネル: panel

ここから別のパネルが始まり、「パネル」に専用の項目ができます。

パネル: tab

パネルのセクションです。次のタブまでの部品が入ります。

パネル: heading

後に続く部品の見出しで、それらは 1 枚のカードにまとまります。

パネル: note

何かを伝える 1 行です。

パネル: control

アクションのコントロールの 1 つで、パッドと同じようにここで操作します。

パネル: button

ボタンです。

パネル: form

いくつかの欄とボタンです。入力した内容は押したときにイベントの values で届きます。欄が 1 つのフォームはパネルの中で直接入力します。

フォームの欄

それぞれパネルで入力する 1 行で、キーの名前でフォームとともに送られます。

パネル: list

アクションの状態から読むリストで、項目ごとに 1 行、何千行でも構いません。8 行を超えるリストには専用の検索が付きます。

リストのボタン

リストの各行に付くボタンです。

pad.json

パッドのボタンのパックです。効果音や動画の zip またはフォルダーで、ルートの pad.json がグループとそのボタンを示します。なければ、各フォルダーがグループに、各効果音や動画がファイル名のボタンになります。もう一度取り込むと、名前を挙げたものを更新し、残りはそのままにします。

{
    "$schema": "./pad.schema.json",
    "groups": [
        {
            "name": "Sounds",
            "color": "#2F6FDB",
            "buttons": [
                { "label": "Applause", "icon": "👏", "sound": "sounds/applause.mp3", "favorite": true, "hotkey": "F13" },
                { "label": "Drum roll", "sound": "sounds/drums.ogg", "volume": 130 },
                { "label": "Rain", "video": "videos/rain.mp4", "key": "luma", "loop": true }
            ]
        },
        {
            "name": "Live",
            "buttons": [
                { "label": "Raffle", "action": "Raffle" },
                { "label": "Entries", "action": "Raffle", "control": "open" },
                { "label": "Starting", "scene": "Starting soon" },
                { "label": "Camera", "scene": "Game", "source": "Camera" },
                { "label": "Blur", "source": "Camera", "filter": "Blur" },
                { "label": "One minute", "team": "One minute, then I'm back." }
            ]
        }
    ]
}

グループ

パッドのグループと、そのボタンを順に並べたものです。

ボタン

ボタンとその働きです。Vovó は次の順に、最初に見つかったものを読みます:sound、video、control 付きの action、action、filter 付きの source または source 付きの scene、scene。1 つのパックで取り込めるボタンは 2,000 個までです。