Kit タブ
This content is not available in your language yet.
Kit タブ(副題 Vibration Clips)は Studio で最もよく使うタブです。WAV 触覚素材を Library で管理し、それらを Kit にまとめてデバイスへ配布します。
このページは 各コントロールが何をするか の網羅リファレンスです。「最初の Kit を作る手順」は 最初の Kit を作る、「Kit の作成・配布のワークフロー」は Kit を作って配布する、Kit / Event ID / manifest の概念は Event ID と Kit を参照してください。

- タブ切替 — Kit / UI / Manage を切り替え(現在 Kit)
- ツールバー — 表示切替(side / stacked)・クリップ詳細(
i)・操作説明(?) - Library パネル — 素材クリップの一覧(検索・並び替え・Import・Amp プリセット)
- Kit Editor パネル — 選択中 Kit(図は
demo-kit)に含まれる Events - モード説明 — 各再生モード(FIRE / CLIP / BOTH)の比較を開く
- モード選択レール — 各 Event の FIRE / CLIP / BOTH
- Deploy / Save Folder — デバイスへ転送 / フォルダへ書き出し
※ 画像はデモ表示(匿名のサンプルデータ)。
レイアウトとビューモード
Section titled “レイアウトとビューモード”Kit タブは 2 ペイン構成です。
- Library パネル: WAV 素材の一覧(左 / 上)
- Kit Editor パネル: 選択中 Kit に含まれる Event の一覧(右 / 下)
ツールバー左端の view mode トグル で 2 つの配置を切り替えます。
| ボタン | モード | 配置 |
|---|---|---|
⊥ | side | Library 左・Kit Editor 右(左右分割) |
─ | stacked | Library 上・Kit Editor 下(上下分割、境界をドラッグでリサイズ可) |
選択したビューモードは保存され、次回も復元されます。
共通ツールバー
Section titled “共通ツールバー”
- 表示切替 — Library を左(side)/ 上(stacked)
- クリップ詳細(
i) — 長さ・ch・サイズ等の表示 ON/OFF - 操作説明(
?) — マウス / キーボード操作の一覧
ペイン上部のツールバーにあるコントロール。
| コントロール | 役割 |
|---|---|
view mode(⊥ / ─) | Library を左 / 上どちらに置くか |
i(info toggle) | クリップ詳細(長さ・チャンネル・サンプルレート・サイズ・Note)の表示 ON/OFF |
?(操作説明) | マウス / キーボード操作のチートシートをポップオーバー表示。詳細は ショートカット一覧 |
| DevicePill | 接続中デバイスの状態を表示 |
| Vol ピル | 接続中デバイスのボリューム(MCP4018 wiper)を Vol {wiper}/128 ({percent}%) で表示(接続時のみ) |
Library パネル
Section titled “Library パネル”
- Library フォルダ — WAV 素材フォルダの指定
- 検索 — 名前 / タグ / グループでフィルタ
- フラット / ツリー — 一覧表示の切替
- Import — WAV を追加(隣の Refresh でディスク再スキャン)
- Amp プリセット — Amp 設定の保存 / 読込
WAV 触覚素材ファイルの一覧です。Library フォルダから自動 import されます。
Library フォルダチップ(📁 Library)
Section titled “Library フォルダチップ(📁 Library)”WAV 素材を置くフォルダを指定します。ここから Studio が clips/ / メタデータを読み書きします。
- 未指定時:
+ Libraryボタンでフォルダを選択 - 指定済み時: フォルダ名表示 +
⇄(変更) /×(解除)
Library ツールバー
Section titled “Library ツールバー”| コントロール | 役割 |
|---|---|
| Search ボックス | 名前 / タグ / グループでフィルタ |
| Sort セレクト | 並び順。名前 ↑ / ↓・更新日時 (新しい順 / 古い順)・長さ (短い順 / 長い順) の 6 通り(永続化) |
| + Import | ファイルダイアログから WAV / mp3 / ogg / flac / aac / m4a を追加。2 件以上は進捗バー表示 |
| Refresh | ディスク上の clips/ を再スキャン(新規 / 削除を反映)。ウィンドウ復帰時にも自動実行 |
フラット / ツリー(= / ▸) | 一覧をフラット表示するか、素材ファイルのフォルダ構造でグループ表示するか |
Amp プリセットバー
Section titled “Amp プリセットバー”Library 側の Amp(libraryIntensity)を一括で保存 / 読込します。
- プリセット選択:
(new)(全クリップの Amp を 0.5 にリセット)+保存済みプリセット。選ぶと即適用 - Save as…: 現在の Amp 設定を新規プリセットとして保存(既定名
amp-YYYYMMDD、同名は上書き確認) - Delete: 選択中プリセットを削除(確認あり)
クリップカード
Section titled “クリップカード”各素材ファイルが 1 カードとして並びます。
| 要素 | 説明 |
|---|---|
| ▶ / ■ | 再生 / 停止。Helper + デバイス接続時は実機で振動、未接続はブラウザ音声でプレビュー |
| 名前(インライン編集) | クリックで rename。使用可能文字は英小文字 / 数字 / - / _(違反は警告) |
| Amp スライダー | 基準振動強度(0〜100%、5% ステップ)。数値クリックで直接入力 |
| + Kit | 選択中(アクティブ)Kit に追加。アクティブ Kit が無いと無効 |
| Edit | 詳細モーダル(Name / Note / Group / Tags の編集、Swap、Archive) |
| × Archive | クリップを clips/archive/ に退避(Studio から非表示・確認なし・ファイルを戻せば復活) |
| ⇅ Swap | クリップ名 ↔ Note を入れ替え(素材ファイル名を一時退避してリネームしたいとき)。Note が空だと無効 |
i(info toggle)が ON のときは、カード下部に 長さ / チャンネル(Mono/Stereo)/ サンプルレート / ファイルサイズ / Note が表示されます。
ドラッグ&ドロップ: クリップを Kit Editor パネルへドラッグして追加できます。
Library の Edit モーダル
Section titled “Library の Edit モーダル”「Edit」で開くクリップ詳細モーダル。
- Name(英小文字 / 数字 /
-/_、最大 64 文字) - Note(自由記述メモ。import 時は原ファイル名が自動セットされ、カード hover で表示)
- Group(整理用ラベル。例
impacts) - Tags(チップ形式。Enter で追加、
×で削除) - ⇅ Swap(Name ↔ Note。Name 側は拡張子除去 + 英数字 sanitize)
- Archive(確認ダイアログ後に
clips/archive/へ退避)
Kit Editor パネル
Section titled “Kit Editor パネル”
- Kit 作成 — Kit 名を入力して Create(Name / Version / Target Device もこの領域で編集)
- 容量ゲージ(青)— FIRE クリップが使う flash 容量(表示専用だが重要)
選択中の Kit に含まれる Event の一覧です。
Kit フォルダチップ(📦 Kit)
Section titled “Kit フォルダチップ(📦 Kit)”Kit のビルド成果物(manifest.json + install-clips/ + stream-clips/)の書き出し先。未指定なら Library フォルダ直下に <kitId>/ を作成します。Unity の Assets/.../Kits/ を指定すると SDK が Kit を直接読めます(Kit を作って配布する)。
新規 Kit 作成
Section titled “新規 Kit 作成”入力欄 + Create で Kit 名を入力して作成します。Kit 名は フォルダ名 + manifest.name + Event ID の prefix で共通利用され、命名規則は ^[a-z][a-z0-9-]*$(英小文字始まり・英小文字 / 数字 / -)。違反文字は入力時点で除去されます。
Kit リストと Kit 詳細
Section titled “Kit リストと Kit 詳細”各 Kit 行は [▸/▼] [Kit 名] [N events] [×] で、クリックで開閉します。アクティブ Kit を開くと詳細が展開されます。
Kit メタ
- Name(インライン編集、
^[a-z][a-z0-9-]*$。無効時は赤字でエラー表示) - Version(semver 慣習・強制なし)
Target Device(折りたたみ / 任意)— Kit 作者が調整したハードウェア設定を manifest に記録します。
| フィールド | 内容 |
|---|---|
| Board | 対象基板(例 duo_wl_v3) |
| FW min | 必要ファーム最低バージョン(firmware_version_min) |
| Volume level / Wiper (0-127) / Volume steps | 基準ボリューム。⟳ デバイスから取り込む で接続中デバイスの現在値を反映 |
Capacity ゲージ — install-clips/(FIRE モード)が消費するデバイス flash 容量を可視化します。Kit が空き容量を超えると赤く警告します(超過してもデプロイ自体は可能)。デバイス未接続時は推定値表示です。
Events ヘッダーと一括操作
Section titled “Events ヘッダーと一括操作”
- モード説明 — FIRE / CLIP / BOTH の比較を開く
- 一括変更 — 全 Event を一括でモード切替
- イベント操作 — Amp スライダー / Edit / Swap / 削除
- モード選択レール — FIRE / CLIP / BOTH(Event ごと)
- Events(N) と Kit 容量を表示(容量は FIRE モードのクリップのみが対象)
- Sort セレクト: Library の 6 通りに加えて
追加順/追加順 (逆)(挿入順)。選択はhapbeat-studio-kit-sortに永続化 - モード説明(
?): 各再生モードのデバイス側挙動を比較するモーダルを開く(正確な仕様は Mode を切り替える) - 一括変更… セレクト: Kit 内全 Event を
> FIRE/♪ CLIP/>♪ BOTHのいずれかに一括切替
Kit Event 行
Section titled “Kit Event 行”各 Event は Library と同じクリップカード + 右側の モードセレクタレール で構成されます。
- カード部分は Library と同一(▶ 再生 / 名前 / Amp / Edit / ⇅ Swap / × Kit から削除)。名前・Amp・Note は Library とは独立した copy(Library で後から変更しても Kit 内 Event には影響しない)
- × 削除: Kit から Event を外す(元の Library クリップは残る)
- モードセレクタ(3 択ラジオ、下記)
再生モード(FIRE / CLIP / BOTH)
Section titled “再生モード(FIRE / CLIP / BOTH)”各 Event の再生モードを 3 択で選びます(KitEvent.modes 配列の UI 表現)。
| 表示 | 記号 | manifest 内部値 | 主な用途 |
|---|---|---|---|
| FIRE | > | ['command'] | 短い one-shot・本番運用。デバイス内蔵 WAV を再生(低遅延・オフライン) |
| CLIP | ♪ | ['stream_clip'] | 長尺・動的変調・プロトタイピング。SDK が WAV を UDP ストリーム |
| BOTH | >♪ | ['command', 'stream_clip'] | 開発段階で両方を試すとき。events と stream_events の両 bucket に同じ base eventId で並存 |
モード変更や一括変更の際は、再生中プレビューは自動停止します。判断材料は Fire と Clip の違い、Studio 上の操作と制約は Mode を切り替える を参照。
Kit Event の Edit モーダル
Section titled “Kit Event の Edit モーダル”- Name(英小文字 / 数字 /
-/_。kit 内の表示名 + eventId を再構成) - Note(Event 独自のメモ。Library とは独立)
- Event ID(読み取り専用。
<kit名>.<clip名>で自動導出) - ⇅ Swap / Remove from kit(確認あり・Library 元クリップは残る)
Deploy と Save Folder
Section titled “Deploy と Save Folder”
- Deploy — ビルドして Helper 経由でデバイスへ転送
- Save Folder — フォルダに書き出し(デバイスには送らない)
Kit 詳細の下部に 2 つのボタンが並びます(手順は Kit を作って配布する)。
| ボタン | 動作 | 必要なもの |
|---|---|---|
| Save Folder | manifest.json + WAV を Kit フォルダに書き出す(デバイスには送らない) | Library / Kit フォルダ |
| Deploy | 同じビルドを行い、その zip を Helper 経由でデバイスに転送 | + Helper + オンラインの再生デバイス |
- 音声が前回保存から変わっていない Event は WAV 再エンコードがキャッシュで skip されます(Amp 調整だけなら高速)
- ボタン横の ステータスが、フォルダ未指定 / Kit 名無効 / 保存中 / 保存済み / デバイス準備状況(
Helper offline/デバイスが見つかりません/N device(s) ready)を示します - 複数デバイス選択時は各デバイスへ順に配信し、デバイスごとの進捗 / 成否が表示されます
デプロイ前チェック: Kit フォルダ指定・全 Event が空でない Event ID を持つ・Event ID が contracts 形式(category.name、[a-z0-9_-])に合致、を満たさないとブロックされます。
永続化とデータモデル
Section titled “永続化とデータモデル”| データ | 保存先 |
|---|---|
クリップ WAV / Kit 出力(manifest.json / install-clips/ / stream-clips/) | Library / Kit ローカルフォルダ(disk が真実) |
| クリップ音声・エンコード済み WAV キャッシュ | ブラウザ IndexedDB |
| クリップ / Kit メタ・Amp プリセット | Library フォルダ内の JSON(clips-meta.json / kits-meta.json / amp-presets.json) |
| view mode・sort・info toggle 等の UI 状態 | localStorage |
ディスクの変更は自動検出されません(Refresh ボタン、またはウィンドウ復帰で再スキャン)。Kit メタは編集ごとに自動保存されますが、Kit フォルダ内の WAV / manifest は Save Folder / Deploy を押すまで書き換わりません。Kit / manifest の構造は Event ID と Kit を参照。
キーボード操作
Section titled “キーボード操作”パネル内にカーソルがある / フォーカスしているときのみ反応します(テキスト入力中は無効)。
| キー | Library | Kit Editor |
|---|---|---|
| ↑ / ↓ | 選択を上下移動(表示順) | 選択を上下移動(表示順) |
| ← / → | 選択クリップの Amp を ±5% | 選択 Event の Amp を ±5% |
| Space | 再生 / 停止 | 再生 / 停止(再生開始時にデバイス wiper を取得) |
| Enter | 選択クリップをアクティブ Kit に追加 | — |
| Delete / Backspace | — | 選択 Event を Kit から削除 |
全一覧は ショートカット一覧 を参照。
- 最初の Kit を作る — 初回チュートリアル
- Kit を作って配布する — 作成・配布の作業手順
- Mode を切り替える — FIRE / CLIP / BOTH の操作と制約
- Event ID と Kit — Kit / manifest / Event ID の概念
- Fire と Clip の違い — mode 選択の判断材料
- gain の乗算構造 — intensity が乗算チェーンのどこに入るか