トップ Tsugiブログ リアルタイムにシーンの音を生み出す! Unity×GameSynth Tool APIデモ
リアルタイムにシーンの音を生み出す! Unity×GameSynth Tool APIデモ
2025/03/26

リアルタイムにシーンの音を生み出す! Unity×GameSynth Tool APIデモ

竹本晋太郎

GameSynthは、プロシージャル生成で リアルタイムに音を創り出せるソリューションです。

現在、あらかじめ音を創り出す GameSynth Tool のみが一般向けに提供されていますが、 Tool API を使えば、ゲームでリアルタイムに起こっている様々なパラメーターをTCP/IPで受信しながら、 リアルタイムに音を作り出す演出もできます。下のデモをご覧ください。

魔王様の怒りパラメーターから、再生中のキャラクターボイスを怪物化

宇宙船の高度と速度から、リアルタイムにエンジンの鳴りをコントロール

これらの音演出は、UnityゲームエンジンからゲームパラメーターをGameSynth Tool APIにリアルタイム送信することで実現しています。概要を見ていきましょう。

全体像

以下の図のように、Unityでのゲームプレビューの開始・アップデート・終了ごとに、GameSynth Tool APIに用意されている「 play(再生) 」「 set_metavalue(メタパラメータ変更) 」「 stop(停止) 」コマンドを呼び出します。

また以前より、こちらで配布されているUnityスクリプトの"GSAPI_TPClient.cs"に、TCP/IP通信するための便利な関数がまとめられているので、Unityでのスクリプティングに活用していくといいでしょう。

通信の概略図

GameSynth側ではパッチ内でメタパラメータを設定し、ゲームコードからその値を更新する仕組みです。これは、GameSynth Tool API に1つの文字列を送信するだけで簡単に実行できます。メタパラメータは、インデックスまたは名前で参照できます。名前で参照する場合は、次の文字列となります。

“set_metavalue BY_NAME energy 0.7”
※名前にスペースが含まれている場合は、引用符で囲むことを忘れないでください。
※送信する値は 0~1で正規化する必要があります。

それでは実装例を見てみましょう。

魔王様デモ解説

Unity側

Wrath(怒り)と命名した1つのパラメーターを作り、ツノや炎と結び付けて、キャラクターが人間→小悪魔→魔王らしい姿になるように実装。updateごとにパラメーターをGameSynthに送信しています。

GameSynth側

wrath(怒り)と命名した1つのメタパラメータを作り、エフェクトラックの複数のパラメーターに結び付けています(リポジトリのAlien Hiveというパッチを参考にしています)。

なおキャラクターボイスは、声優の浅見ゆいさんのご協力のもと、部下を叱咤する上司役のサンプルボイスをお借りしています。

浅見ゆい さん

twitter
ご協力ありがとうございました!

宇宙船デモ解説

Unity側

宇宙船の高度、速度、位置の3つのパラメーターを取得し、updateごとにパラメーターをGameSynthに値を送信しています。

GameSynth側

3つのメタパラメータで、エンジン出力や風音、パンをコントロールしています(リポジトリのAntigrav Speederというパッチを参考にしています) 。

最後に

GameSynth Toolは「効果音作成ツール」として販売されていますが、内部ではリアルタイムに音を生み出すエンジンが備わっています。今回のようにTool APIでアクセスすれば、GameSynth Runtimeがなくてもリアルタイムな音の生成・コントロールが手軽に行えます。

ゲーム展示会、デジタルインスタレーションなどで活用すれば、アイディア次第で市販ゲームとは一味違う、よりインタラクティブな音演出が行えるでしょう。



Copyright © Tsugi GK. All rights reserved.