トップ Tsugiブログ GodotとGameSynth Tool API
GameSynthとGodotゲームエンジン
2024/05/16

GodotとGameSynth Tool API

GameSynth Tool APIは、GameSynthとゲームエンジンなどの他の制作ツールとのインターフェースを容易にします。前回の投稿では、Unityエディタでサウンドのバリエーションを直接生成する方法について説明しました。 今回は、ゲーム作成時のオーディオワークフローを改善するGodot Engine用の2つの新しいプラグインについて解説していきます。



最初に

プラグインは、(Python に似ている) Godotの組み込みスクリプト言語・GDScriptで記述されており、エディタ機能を拡張します。これらは、Godot内の設定でいつでも有効化・無効化できます。

まず、GameSynth Tool API Web サイトのサンプルページからスクリプトをダウンロードします。これらのスクリプトをゲームエンジンで認識するには、Godotプロジェクトのルートフォルダに"addons"という新規フォルダを作成し、そこにスクリプトをコピーします。

エディタでプラグインを有効化するには、まずGameSynthが実行されていてスクリプトが通信可能であることを確認します。次に、Godot 内で [プロジェクト] > [プロジェクト設定…] をクリックし、[プラグイン]タブを開き、[ステータス]列の下のボックスにチェックを入れてプラグインを有効にします。



すると、GameSynthとの接続が確立されたメッセージが出力ドックに表示されます。


Godot内でのパッチのレンダリング

GSAPI_RenderCurrentPatch プラグインは、現在の GameSynthパッチをレンダリングして、そのWAVファイルをオーディオノードに自動的に割り当てます。この機能はAudioStreamPlayerAudioStreamPlayer2D、およびAudioStreamPlayer3Dノードのインスペクターに追加される「Render GameSynth Patch」ボタンを押すことで使用できます。



ボタンを押すと、生成するWaveファイルのサンプルレート、ビット深度、チャンネル数などの書き出し設定と、その保存先フォルダを選択できます。GameSynthパッチが無限である場合、レンダリング時間も指定する必要があることに注意してください。



WAVファイルが生成されると、プロジェクトに自動的に追加され、AudioノードのStreamプロパティに割り当てられます。



GameSynthパッチにランダム幅を持ったパラメーターがある場合、生成するサウンドバリエーションの数を指定できます。すべてのバリエーションが一度に書き出され、GodotのAudioStreamRandomizerタイプのStreamに割り当てられます。Audioノードが再生されるたびに、新しいバリエーションがランダムに選択されます。 衝撃音や足音など、頻繁にトリガーされる効果音の単純な繰り返し再生を避けることができます。

Godotのアニメーションを使って音を操る

GSAPI_ExportAnimationCurveプラグインを使うと、AnimationPlayerノードからトラックを選択してそのカーブをGameSynth にエクスポートできます。カーブはGameSynth内では、オーディオパラメーターの制御に使用できるAutomation Curveとして利用できます。 これにより、アニメーションに完全に一致する効果音を作成できるようになります。

このスクリプトで、「Export Curve to GameSynth」ボタンがAnimationPlayerノードのインスペクターに追加されます。



エクスポートを開始する前に、アニメーションドックで適切なアニメーションが選択されていることを確認してください。少なくとも 2 つのキーが含まれており、タイプは「ベジェ曲線」「3D ポジション」「3D 回転」「3D スケール」のどれかである必要があります。

GodotとGameSynthではカーブセグメントタイプが異なるため、Godot カーブは一定の間隔で評価 (サンプリング) され、GameSynthで同様のカーブが生成されます。 設定ウィンドウでは、「1 秒あたりのポイント数」によってこれらの間隔が決まります。



OKボタンを押すと、選択したAutomation Curveが現在のGameSynthパッチに追加されます。



このAutomation Curveを使用して、1 つまたは複数の合成パラメーターを制御し、アニメーションで操作が可能な効果音を生成できるようになります。

これらのインテグレーションの例が、GodotとGameSynth Tool API を使った開発アイディアに繋がれば幸いです。 皆さんがどのようなプラグインやスクリプトを構築されていくか、楽しみにしています。


GameSynth




Copyright © Tsugi GK. All rights reserved.