コンテンツにスキップ
JA

Kit タブ

Kit タブ(副題 Vibration Clips)は Studio で最もよく使うタブです。WAV 触覚素材を Library で管理し、それらを Kit にまとめてデバイスへ配布します。

このページは 各コントロールが何をするか の網羅リファレンスです。「最初の Kit を作る手順」は 最初の Kit を作る、「Kit の作成・配布のワークフロー」は Kit を作って配布する、Kit / Event ID / manifest の概念は Event ID と Kit を参照してください。

Hapbeat Studio の Kit タブ全体。番号は下の凡例に対応(① タブ切替 / ② ツールバー / ③ Library パネル / ④ Kit Editor パネル / ⑤ モード説明 / ⑥ モード選択レール / ⑦ Deploy・Save Folder)

  1. タブ切替 — Kit / UI / Manage を切り替え(現在 Kit)
  2. ツールバー — 表示切替(side / stacked)・クリップ詳細(i)・操作説明(?
  3. Library パネル — 素材クリップの一覧(検索・並び替え・Import・Amp プリセット)
  4. Kit Editor パネル — 選択中 Kit(図は demo-kit)に含まれる Events
  5. モード説明 — 各再生モード(FIRE / CLIP / BOTH)の比較を開く
  6. モード選択レール — 各 Event の FIRE / CLIP / BOTH
  7. Deploy / Save Folder — デバイスへ転送 / フォルダへ書き出し

※ 画像はデモ表示(匿名のサンプルデータ)。

Kit タブは 2 ペイン構成です。

  • Library パネル: WAV 素材の一覧(左 / 上)
  • Kit Editor パネル: 選択中 Kit に含まれる Event の一覧(右 / 下)

ツールバー左端の view mode トグル で 2 つの配置を切り替えます。

ボタンモード配置
sideLibrary 左・Kit Editor 右(左右分割)
stackedLibrary 上・Kit Editor 下(上下分割、境界をドラッグでリサイズ可)

選択したビューモードは保存され、次回も復元されます。

共通ツールバー。① 表示切替(side / stacked)/ ② クリップ詳細(i)/ ③ 操作説明(?)

  1. 表示切替 — Library を左(side)/ 上(stacked)
  2. クリップ詳細(i — 長さ・ch・サイズ等の表示 ON/OFF
  3. 操作説明(? — マウス / キーボード操作の一覧

ペイン上部のツールバーにあるコントロール。

コントロール役割
view mode / Library を左 / 上どちらに置くか
i(info toggle)クリップ詳細(長さ・チャンネル・サンプルレート・サイズ・Note)の表示 ON/OFF
?(操作説明)マウス / キーボード操作のチートシートをポップオーバー表示。詳細は ショートカット一覧
DevicePill接続中デバイスの状態を表示
Vol ピル接続中デバイスのボリューム(MCP4018 wiper)を Vol {wiper}/128 ({percent}%) で表示(接続時のみ)

Library パネル。① Library フォルダ / ② 検索 / ③ フラット・ツリー / ④ Import / ⑤ Amp プリセット

  1. Library フォルダ — WAV 素材フォルダの指定
  2. 検索 — 名前 / タグ / グループでフィルタ
  3. フラット / ツリー — 一覧表示の切替
  4. Import — WAV を追加(隣の Refresh でディスク再スキャン)
  5. Amp プリセット — Amp 設定の保存 / 読込

WAV 触覚素材ファイルの一覧です。Library フォルダから自動 import されます。

Library フォルダチップ(📁 Library)

Section titled “Library フォルダチップ(📁 Library)”

WAV 素材を置くフォルダを指定します。ここから Studio が clips/ / メタデータを読み書きします。

  • 未指定時: + Library ボタンでフォルダを選択
  • 指定済み時: フォルダ名表示 + (変更) / ×(解除)
コントロール役割
Search ボックス名前 / タグ / グループでフィルタ
Sort セレクト並び順。名前 ↑ / ↓更新日時 (新しい順 / 古い順)長さ (短い順 / 長い順) の 6 通り(永続化)
+ Importファイルダイアログから WAV / mp3 / ogg / flac / aac / m4a を追加。2 件以上は進捗バー表示
Refreshディスク上の clips/ を再スキャン(新規 / 削除を反映)。ウィンドウ復帰時にも自動実行
フラット / ツリー= / 一覧をフラット表示するか、素材ファイルのフォルダ構造でグループ表示するか

Library 側の Amp(libraryIntensity)を一括で保存 / 読込します。

  • プリセット選択: (new)(全クリップの Amp を 0.5 にリセット)+保存済みプリセット。選ぶと即適用
  • Save as…: 現在の Amp 設定を新規プリセットとして保存(既定名 amp-YYYYMMDD、同名は上書き確認)
  • Delete: 選択中プリセットを削除(確認あり)

各素材ファイルが 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 パネルへドラッグして追加できます。

「Edit」で開くクリップ詳細モーダル。

  • Name(英小文字 / 数字 / - / _、最大 64 文字)
  • Note(自由記述メモ。import 時は原ファイル名が自動セットされ、カード hover で表示)
  • Group(整理用ラベル。例 impacts
  • Tags(チップ形式。Enter で追加、× で削除)
  • ⇅ Swap(Name ↔ Note。Name 側は拡張子除去 + 英数字 sanitize)
  • Archive(確認ダイアログ後に clips/archive/ へ退避)

Kit Editor 上部。① Kit 作成 / ② 容量ゲージ(青 = 重要な表示情報)

  1. Kit 作成 — Kit 名を入力して Create(Name / Version / Target Device もこの領域で編集)
  2. 容量ゲージ(青)— FIRE クリップが使う flash 容量(表示専用だが重要)

選択中の Kit に含まれる Event の一覧です。

Kit のビルド成果物(manifest.json + install-clips/ + stream-clips/)の書き出し先。未指定なら Library フォルダ直下に <kitId>/ を作成します。Unity の Assets/.../Kits/ を指定すると SDK が Kit を直接読めます(Kit を作って配布する)。

入力欄 + Create で Kit 名を入力して作成します。Kit 名は フォルダ名 + manifest.name + Event ID の prefix で共通利用され、命名規則は ^[a-z][a-z0-9-]*$(英小文字始まり・英小文字 / 数字 / -)。違反文字は入力時点で除去されます。

各 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 と再生モード。① モード説明 / ② 一括変更 / ③ イベント操作 / ④ モード選択レール

  1. モード説明 — FIRE / CLIP / BOTH の比較を開く
  2. 一括変更 — 全 Event を一括でモード切替
  3. イベント操作 — Amp スライダー / Edit / Swap / 削除
  4. モード選択レール — FIRE / CLIP / BOTH(Event ごと)
  • Events(N) と Kit 容量を表示(容量は FIRE モードのクリップのみが対象)
  • Sort セレクト: Library の 6 通りに加えて 追加順 / 追加順 (逆)(挿入順)。選択は hapbeat-studio-kit-sort に永続化
  • モード説明?): 各再生モードのデバイス側挙動を比較するモーダルを開く(正確な仕様は Mode を切り替える
  • 一括変更… セレクト: Kit 内全 Event を > FIRE / ♪ CLIP / >♪ BOTH のいずれかに一括切替

各 Event は Library と同じクリップカード + 右側の モードセレクタレール で構成されます。

  • カード部分は Library と同一(▶ 再生 / 名前 / Amp / Edit / ⇅ Swap / × Kit から削除)。名前・Amp・Note は Library とは独立した copy(Library で後から変更しても Kit 内 Event には影響しない)
  • × 削除: Kit から Event を外す(元の Library クリップは残る)
  • モードセレクタ(3 択ラジオ、下記)

各 Event の再生モードを 3 択で選びます(KitEvent.modes 配列の UI 表現)。

表示記号manifest 内部値主な用途
FIRE>['command']短い one-shot・本番運用。デバイス内蔵 WAV を再生(低遅延・オフライン)
CLIP['stream_clip']長尺・動的変調・プロトタイピング。SDK が WAV を UDP ストリーム
BOTH>♪['command', 'stream_clip']開発段階で両方を試すとき。eventsstream_events の両 bucket に同じ base eventId で並存

モード変更や一括変更の際は、再生中プレビューは自動停止します。判断材料は Fire と Clip の違い、Studio 上の操作と制約は Mode を切り替える を参照。

  • Name(英小文字 / 数字 / - / _。kit 内の表示名 + eventId を再構成)
  • Note(Event 独自のメモ。Library とは独立)
  • Event ID(読み取り専用。<kit名>.<clip名> で自動導出)
  • ⇅ Swap / Remove from kit(確認あり・Library 元クリップは残る)

Deploy と Save Folder。① Deploy / ② Save Folder

  1. Deploy — ビルドして Helper 経由でデバイスへ転送
  2. Save Folder — フォルダに書き出し(デバイスには送らない)

Kit 詳細の下部に 2 つのボタンが並びます(手順は Kit を作って配布する)。

ボタン動作必要なもの
Save Foldermanifest.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_-])に合致、を満たさないとブロックされます。


データ保存先
クリップ 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 を参照。


パネル内にカーソルがある / フォーカスしているときのみ反応します(テキスト入力中は無効)。

キーLibraryKit Editor
↑ / ↓選択を上下移動(表示順)選択を上下移動(表示順)
← / →選択クリップの Amp を ±5%選択 Event の Amp を ±5%
Space再生 / 停止再生 / 停止(再生開始時にデバイス wiper を取得)
Enter選択クリップをアクティブ Kit に追加
Delete / Backspace選択 Event を Kit から削除

全一覧は ショートカット一覧 を参照。