コンテンツにスキップ
JA

プロジェクト構成

kit(Studio が作る内容)と触覚ファイル(target などを足す設定)を分けると、 コードは event id を呼ぶだけになります。各イベントの詳細は次の 2 つのレイヤーに 分かれます。

何を持つ誰が作る
kit manifest<kit>-manifest.jsonkit の内容: intensity / clip / command か clip かHapbeat Studio が自動生成
触覚ファイルhaptics.json, EventMap overlay)アプリ側の指定: target(どの端末/部位) / gain 上書き開発者が書く(kit を参照)

manifest は「kit の中身の記述」で、どの端末/部位に出すか(target)は持ちません (どこに出すかはアプリ・運用の都合なので kit には入れません)。それを足すのが 触覚ファイルです。

my-app/
app.py ← 呼ぶ側(event id を play するだけ)
haptics.json ← 触覚ファイル(kit を参照し target 等を足す)
kits/
my-kit/
my-kit-manifest.json ← kit の内容(Studio 生成)
install-clips/ ← command clip(Studio でデバイスに書込)
stream-clips/
rain.wav ← clip モードで SDK がストリームする WAV
// haptics.json
{
"kit": "kits/my-kit",
"events": {
"sample-kit.sine_100hz": { "target": "player_1/chest", "gain": 0.8 },
"rain.loop": { "target": "*/back" }
}
}
import hapbeat
hb = hapbeat.connect(app_name="MyApp", haptics="haptics.json")
hb.play("sample-kit.sine_100hz") # player_1/chest に gain 0.8 で(触覚ファイルが決める)
hb.play("rain.loop") # */back に clip ストリーム

connect(haptics=...) は触覚ファイルを読み、その中の kit から manifest(intensity/clip) を取り込み、overlay の target/gain を上乗せします。「いつ鳴らすか」だけがコード、 「何を・どこへ・どれくらい」は触覚ファイルという分担です。

targeting が要らない(全台ブロードキャストでよい)なら kit だけでも可:

hb = hapbeat.connect(app_name="MyApp", kit="kits/my-kit") # target は play(id, target=) で都度指定
  1. Hapbeat Studio で kit を編集(クリップ・強度・command/clip)。
  2. kit フォルダをプロジェクトの kits/ に置く。
  3. haptics.json に各イベントの target(と必要なら gain)を書く。
  4. コードは play("event.id") を呼ぶだけ。

完全に動く例: GitHub の examples/clip_project/ (kit)と examples/osc_remote/ (触覚ファイル + OSC)。