エディタの使い方
ToneBeyond Editor は資産管理・試聴・非破壊編集・バンクビルド・実機プロファイラを 1画面にまとめたデスクトップアプリです(macOS / Windows)。
インポート — 音を取り込む
手動の取込はすべて素材棚(検索・試聴用カタログ)へ入ります。ゲームのバンクに 入る経路は2つだけ — ①ゲームプロジェクトの「割当て / 差し替え」(探した音を入れる) ②監視フォルダ(Nuendo で作った完成音源が自動で入る)。どの方法も 元ファイルを一切変更しません。
| 方法 | 動作 |
|---|---|
| ドラッグ&ドロップ(推奨) | フォルダ / 音声ファイル → 素材棚へ登録 |
| インポート欄 + ボタン | パスを入力して「素材棚に登録」 |
| 監視(ウォッチフォルダ) | 「監視」ボタンで Nuendo の書き出し先を登録 → 以後、保存されたファイルを2秒以内に自動でゲーム行きに取込(ファイル名 = イベント名。 書き込み完了を待ってから取り込み) |
| コマンドライン | tb_editor --import <path>(ゲーム行き)/
--import-lib <path>(素材棚)— スクリプト用 |
プロジェクトとライブラリの違い
プロジェクト = ゲームに入れる音(バンクに焼かれる)。
ライブラリ = 探して聴くための参照カタログ([lib] 表示、バンクには入らない)。
気に入ったライブラリの音は「プロジェクトに登録」ボタン、またはゲームプロジェクトの「選択中の音を割当て」で昇格します。
/Volumes/...)上の数千ファイルも一括登録できます。波形は初めて選択した
瞬間に生成・キャッシュされます。iCloud Drive のフォルダはファイルを一切開かずに登録され
(尺が「-」表示)、選択したときに初めてその1ファイルだけダウンロードされます。検索と試聴
- 検索欄: 名前・カテゴリ・説明を横断検索(SQLite キャッシュなので数千件でも数ms)
- フィルタ: すべて / プロジェクト / ライブラリ
- ↑↓ で選択移動、Space で再生・もう一度押して停止、Esc で停止、Home / End でジャンプ。 ゲームプロジェクトの発注一覧でも同じ操作が使えます(行をクリックするとそちらに キーボードフォーカスが移り、Space は収録済みならバンクの音、割当て済みなら割当てた 音源を再生。ハイライトの濃い方がフォーカス中の一覧です)
- 波形の正確性ガード: ディスク上のファイルが取込後に変わっていた場合 (サイズ変化で検知)、選択した瞬間に波形を自動で作り直し、その旨を表示します。 疑わしい波形は行の右クリック → 「波形を再検証・再生成」でいつでも確認でき、 「一致していた / 長さを修正した」が結果として表示されます — トリム位置の事故防止に
- 編集の取り消しは上段の「元に戻す / やり直す」ボタンか Cmd/Ctrl+Z / Shift+Cmd/Ctrl+Z(プロパティ・チェイン・RTPC・ リネーム/バリエーション化が対象。戻せる操作が無いときはボタンがグレーアウト)。 チェインの個々の項目は各行の x でも外せます
- カラムヘッダをクリックで昇順/降順ソート(名前・カテゴリ・長さ・SR・ch・パス。 検索やインポート後も並びは維持、選択中の行は追従)。パスが切れているときは セルにホバーで全文表示
- 波形: マウスホイールで最大512倍ズーム(カーソル位置基準)、ドラッグでスクロール。 背景に時間目盛り(ズームに応じて ms/秒)と dB 目安線(-6/-12/-24)を表示。 波形上部のツールバーは固定レイアウトです: 再生 / 元音源 / 停止 / ここを開始に / ここを終了に / 開始を先頭に / 終了を末尾に / トリム / フェードイン / フェードアウト が常に同じ位置に並び、使えない操作は グレーアウトされます。「再生」はループ再生 — 選択範囲があればその区間を、 なければ全体を繰り返します。選択区間の ms はボタン列の後ろに表示 (Esc で解除。操作ヒントは波形右上に常時表示)
- 再生バーは動かせます: 波形をクリックするとその位置へジャンプ、 バー付近をドラッグでスクラブ、← → キーで 10ms(Shift で 1ms)刻みの 微調整。再生はバーの位置から始まるので、「だいたいの場所をクリック → ←→で追い込み → ここを開始に」が完結します
- 再生ヘッド: 再生中は緑のインジケーターが波形上を進み、停止するとその位置に マーカーが残ります。「ここを開始に」「ここを終了に」ボタンで再生/停止位置を そのまま選択範囲の始点・終点にできるので、「聴きながら止めてトリム」が完結します
音ごとの設定(左パネル)
| 設定 | 使いどころ |
|---|---|
| ループ | BGM・環境音など繰り返す音 |
| ストリーミング (BGM) | 長い曲。メモリに展開せずディスクから再生(3分の曲でも常駐約256KB) |
| 圧縮 (QOA) | 容量を約1/10に。モバイルはほぼ常時ON推奨。ストリーミングと併用可 |
| バス | カテゴリ音量バス名(例: BGM、SFX)。ゲーム側の
setBusVolume("BGM", v) で「BGM だけ下げる」設定スライダーがそのまま作れます。
バリエーション(__vN)グループは __v0 に入力します |
| ループ開始 ms | ループ有効時に表示。イントロの長さを入れると、 ループが先頭ではなくこの位置に巻き戻ります(イントロ1回 → 本体シームレスループ。BGM 用) |
| ラウドネス / ノーマライズ | 取込時に計測した LUFS(ITU-R BS.1770)を 表示。目標値(既定 -16 LUFS)を入れて「ノーマライズ」を押すと、不足分のゲインが 非破壊チェインに追加されます。ライブラリ素材の音量バラつきがワンクリックで揃います |
| 優先度 | 0〜100(既定50)。同時発音が上限を超えたとき、低い音から 順に消えて高い音が生き残ります(BGM=90、足音=20 など)。聞こえていない音は自動で 「仮想化」されて CPU も節約されます |
| ステートグループ / 値 | 同じグループ名・別の値を持つ音は、ビルド時に
1つのミュージックスイッチになります(例: グループ Music_Stage01 に
値 Normal と Boss)。ゲームはグループ名を1回 postEvent し、
setState("Music_Stage01", "Boss") でクロスフェード切替するだけです |
ダッキング — 右下の「ダッキング」ボタンで「ソースバスの再生中はターゲット
バスを自動で下げる」ルールを最大8本設定できます(dB / attack / release)。設定は
バンクに焼かれ、ゲーム側のコードは不要です(例: Voice 再生中に
BGM を -6dB)。
編集チェイン(非破壊)
素材棚の音にもそのまま使えます — 元ファイルには一切触れず、ゲームのイベントに 割当てるとチェインごと引き継がれるので、「見つけた場所でトリム/フェードを整えてから ゲーム行きにする」流れができます(波形の Shift+ドラッグ →「選択範囲でトリム」も同様)。
トリム / ゲイン / フェードイン / フェードアウト / リバースを順に並べます。 適用結果はアンバー色の波形で表示され、「再生(処理後)」で元と聴き比べできます。 設定は DB に保存され、ビルド時に焼き込まれるため、エディタで聴いた音と ゲームで鳴る音は必ず一致します。
バリエーション(同じイベントで毎回違う音)
足音や打撃音の「機械っぽさ」をなくす機能です。作り方は2通り:
- 一覧でグループ化(推奨) — Cmd/Ctrl+クリックで2〜8件を選択すると検索行に
「バリエーション化 (N)」ボタンが現れます。グループ名(= イベント名)とモードを入れて
実行すると、選択したアセットが
名前__v0..Nに一括リネームされて1つの イベントになります(ファイル自体はリネームされません)。 - ファイル名規約 —
footstep__v0.wav, footstep__v1.wav, ...の__vN規約でそろえてインポートしても同じ結果になります。
ビルド時に1つのイベント footstep にまとまり、再生のたびに
ランダム(直前と同じ音は選ばない)またはラウンドロビンで切り替わります。
モードは __v0 のアセットを選択すると出るコンボでも変更可能。
ゲーム側のコードは普通の postEvent のままです。
RTPC バインディング
「ゲームの連続値(例: 危険度 0..1)」が「この音の音量 / ピッチ」をどう動かすかを
折れ線カーブ(最大8点)で描きます。カーブはバンクに焼かれ、ゲーム側のコードは
setParameter("Danger", 0.7) と値を渡すだけです。詳しい意味づけは
API リファレンスへ。
ビルドとエクスポート(ウィンドウ右下)
出口工程のボタンはステータスバー右端にまとまっています。 ゲームの .tbb を更新したいときはここではなく、ゲームプロジェクトセクションの 「このバンクへ再ビルド」を使います(右下の「.tbb ビルド」は作業フォルダへの 汎用書き出しで、ゲーム内のバンクには触れません)。
| ボタン | 出力 |
|---|---|
| .tbb ビルド | tb_bank_export.tbb — ゲームが読む唯一のファイル |
| bank.json 書き出し | バンク定義のテキスト(CI で bankc に渡す・
差分レビュー用)。音声パスは書き出し先からの相対パスになるので、リポジトリに
コミットすればそのまま CI で焼けます |
| 組み込みキット | tb_integration_kit/ — iOS / Android のファサード + イベント定数 +
README + ビルド済み .tbb(手順は組み込みページ) |
ゲームプロジェクト突合(発注書方式)
「ゲームプロジェクト」セクション(既定はウィンドウ下部、ヘッダクリックで開閉、
選んだフォルダは次回起動時に自動復元)でゲームのフォルダを選ぶと、コード側の発注書
tb_sound_requests.json と .tbb を突合し、
収録済み / 未制作 / 要求外を一覧表示します。さらに .swift / .kt / .m / .mm
ソースを静的スキャンし、「コードから呼ばれているのに発注書に無いイベント」も
ファイル名:行番号つきで検出します(発注書の書き忘れ防止)。サウンド制作の TODO リストが
常に自動で最新になります。
突合表示だけでなく、このパネルから制作を完結できます:
- マウスオーバーで詳細 — イベント名にカーソルを乗せると、発注内容 (説明・希望尺・備考)とバンク内の実状態(収録尺・ループ/ストリーミング/QOA・ バス・ループ開始・RTPC パラメータ)がカードでポップアップ表示されます。 列を隠して幅を詰めていても、詳細はホバーだけで確認できます。
- 収録済みの試聴 — 各行の「再生」ボタンで、出荷される .tbb の中の音を そのまま再生します(QOA 圧縮もデコード)。元の WAV が手元になくても、ゲームで 実際に鳴る音を確認できます。バリエーションは先頭の子を再生します。
- 未制作への割当て — メイン一覧でライブラリの音を選び、未制作行の
「選択中の音を割当て」を押すと、その音がイベント名にリネームコピーされて
プロジェクトに登録されます(発注書の loop/stream ヒントも自動適用。コピーは
tb_assigned/に置かれ、元ファイルは変更されません)。行は即座に 「割当て済み(要ビルド)」表示に変わり、再ビルドで「収録済み」になります。 - 既存イベントの自動取り込み — バンクに居るのにエディタに登録されていない
イベントがある場合(他ツール製のバンクなど)、再ビルド時にそれらの音声が .tbb から
自動でデコードされて
tb_bank_import/に WAV 化され、ループ/ストリーミング/ 圧縮フラグに加えて RTPC カーブ・バス割当て・バリエーション構成まで含めて プロジェクトに登録されてから焼き直されます。ワンクリックで何も失われません。 以後はエディタがバンクの単一ソースになります。 - 収録済みの差し替え — 既に組み込み済みの行でも「差し替え」で選択中の音に
入れ替えられます(仮音源を本番音源に置き換える、など)。差し替え・解除の際は
その時点のバンク音声が
tb_originals/に自動バックアップされ (最初の1回=真のオリジナルを保持)、「元に戻す」ボタンでいつでも復元できます (ループ/ストリーミング/圧縮フラグも一緒に戻ります)。 - 割当て解除と削除 — 「解除」で割当てを取り消します。バンクに入っている音の
場合は「削除予定(要ビルド)」になり、再ビルドでバンクから外れます(自動取り込みで
復活しない削除予定リストつき。再割当てすれば取り消し)。ディスクから消すのは
このアプリが作ったコピー(
tb_assigned/・tb_bank_import/)だけで、 元のライブラリファイルには一切触れません。 - このバンクへ再ビルド — バンク行のボタンで、プロジェクトの全アセットを ゲーム内の .tbb パスへ直接ビルドし、自動で再スキャンします。割当て・差し替え・削除が まとめて反映されます。WAV を Xcode プロジェクトに追加する必要はありません — ゲームが読むのは .tbb 1ファイルだけで、それがその場で更新されます。
一覧の列はヘッダのドラッグで入れ替えられ、ヘッダの右クリックで列ごとの 表示/非表示を選べます(アセット一覧・発注一覧とも。配置は記憶されます)。 右側の情報欄(要求外イベント / コード参照 / RTPC パラメータ)は「情報欄」ボタンで まるごと隠せるので、発注一覧を全幅で見たいときに便利です。
表示はセクション右上の 下 / 右 / 別ウィンドウ ボタンで切り替えられます (選択は記憶されます): 下 = ウィンドウ下部ドック(境界を上下ドラッグで高さ調整)、 右 = 右側カラム(境界を左右ドラッグで幅調整。縦長なので発注一覧が一度に多く見えます)、 別ウィンドウ = フローティングウィンドウ — メインウィンドウの外へドラッグすると 独立した OS ウィンドウになるので、2画面環境ではサブモニタに常駐させられます。
MIDI 雛形 — 発注から仮データ・DAW の土台まで
発注書の「尺・用途」に合わせた曲の立ち上げを自動化します。各行の「雛形」ボタンで ポップアップが開き、希望尺から BPM × 小節数の候補を自動計算します (ループは必ず小節境界に着地。「300〜800ms」のような ms 表記も解釈)。 ムードは発注の説明文から自動推定され(「ボス」「緊迫」→緊迫系 など6種)、 キー・イントロ1小節・ガイドアルペジオを選べます。生成される曲は 8小節以上で A/B 2セクション構成になり、ボイスリーディング・経過和音・ ベロシティのゆらぎ・ドラムフィル入り。「別テイク」で同じ設定のまま アレンジを何度でも引き直せます(テイク番号で完全再現)。
- 試聴 — その場でレンダリングして再生(ループ曲はループ再生)。
- .mid 書き出し — テンポ・拍子・LOOP_START マーカー・コード/ベース/ アルペジオ/ドラムの5トラック入り SMF。DAW に読み込めば尺とループが仕様どおりの 状態から本制作を始められます。
- 仮データとして割当て — レンダリング音をそのままイベントに割当て。 ゲーム実装は仕様どおりの音で即進められ、完成したら差し替えるだけです。
プラグイン音源 (AU)
ポップアップの「プラグイン音源 (AU)」を開くと、インストール済みの AudioUnit インストゥルメントをトラック別(コード/ベース/アルペジオ/ドラム)に 割り当てられます(既定は OS 内蔵 GM 音源)。GUI ボタンでプラグイン本来の画面が 開くので、Kontakt 等でパッチを読み込んでからレンダリングできます。 ファクトリープリセットの選択にも対応し、プラグインの状態(読み込んだ音色)は 保存されて次回起動時に復元されます。レンダリングは常にその時点のプラグイン状態を 使います。注意: プラグインはエディタと同一プロセスで動くため、不安定なプラグインは エディタごと落とすことがあります(DB は逐次保存なので作業は失われません)。
一括出力 → DAW → 一括差し替え
サマリ行のボタンで制作サイクル全体を回せます:
- 雛形を一括出力 — 未制作の全発注を
{プロジェクト名}_{イベント名}_{尺}s.mid / .wavとして雛形フォルダへ 書き出します(既定はゲームルートのtb_sketches/、「出力先...」で変更可。 曲はイベントごとに違うアレンジになります)。 - DAW で仕上げ — .mid を開いて本制作し、同名の .wav に上書き書き出し。
- 雛形から一括割り当て — フォルダの wav をファイル名からイベントに自動マッチ して一括差し替え(発注書の loop/stream フラグ適用、原音バックアップなどの安全装置は 通常の割当てと同じ)。あとは「このバンクへ再ビルド」でゲームに反映されます。
Live Profiler
右下のパネルは普段は細いタブに畳まれていて、波形表示が全幅を使えます。 タブの「<」で開閉でき(境界の左右ドラッグで幅調整、状態は記憶)、ゲームが接続 してきた最初のパケットで自動的に開きます(接続中はタブが緑になります)。 パネルは UDP ポート 9990 で待ち受けています。ゲーム側(実機可)で プロファイラ送信を開始すると、LIVE 表示に変わり、同時発音数の履歴グラフ・ マスターレベル・RTPC の現在値・発火したイベント名が流れます。 「鳴らない原因」「カーブの効き具合」を見ながらチューニングしてください。
フィードバック
ウィンドウ右下の「フィードバック」ボタンを押すと、ブラウザで ToneBeyond のフィードバックフォームが開きます。トラッキングや解析 SDK は一切ありません。 まだ初リリースなので、使ってみての感想・要望・不具合をぜひお寄せください。
コマンドライン
tb_editor [--db <path>] # 資産DBの場所(既定 tb_assets.db)
[--import <file|folder>] # プロジェクト取込
[--import-lib <folder>] # ライブラリ取込(高速スキャン)
[--scan-project <dir>] # ヘッドレス突合(CI向け、結果を表示して終了)
[--selftest <wav>] # ヘッドレス自己診断
[--build-bank <out.tbb>] # ヘッドレスでバンクをビルド(CI向け)
[--diff-bank <old.tbb> <new.tbb>] # バンク差分(追加/削除/変更)
[--export-sketches <gameRoot> [outDir]] # 雛形一括出力(GM音源固定)
[--screenshot <png>] # 画面PNG保存