Chuckオーディオプログラミング言語とOpen Sound Control(OSC)を使用したUnity(Survival Shooter)でのプロジェクトの発声に関する短いメモ。
すべての操作の結果、次の結果が得られました。
すべてのサウンドは、チャックで「オンザフライ」で生成されます。 Wavファイルはまったく使用されません。 音声の見た目を生成するために、 Perry CookがChuck用に作成したソリューションが使用されました。ソリューションの本質は、 ゲームおよびインタラクティブシステムの物理ベースのサウンド合成コースで部分的に説明されています。 「入射」ピッチとコーラス効果が追加された通常のノコギリ波がショットとして使用されました。
仕組み
OSCメッセージを送信するために、 Mike Heaversの経験が使用されました 。 Unityプロジェクトにインポートする必要があります:Osc.csプラグイン、UDPPacketIO.csプラグイン、OSCTestSender.csスクリプト。 これらのプラグインと再設計されたスクリプトをサウンドを生成する各オブジェクトに添付します-それぞれ独自のオブジェクトがあるため、OSCメッセージのアドレスが変更されます。
合計で、プロジェクトには9つの音源があります。
- プレイヤーシュート
- プレーヤーを傷つける
- プレイヤーの死
- ゾンバニーハート(小さな緑の暴徒)
- ゾンバニーの死
- Zombear Hurt(小さな赤い暴徒)
- ゾンビの死
- ヘレファントハート(大きな黄色の暴徒)
- ヘレファントの死
Chuck環境でのOSCメッセージの受信は、OscInクラスを使用して行われます。 適切なポート(oin.port)とアドレス(oin.addAddress)を指定します。 次に、oscメッセージが到着すると、サウンドが生成されます。
チャック側では、5つの個別のプロジェクトが実行され、それぞれがポートでメッセージを受信し、対応するサウンドを生成します。
- oscin_shoot
- oscin_player_hurt
- oscin_zombunny_hurt
- oscin_zombear_hurt
- oscin_hellephant_hurt
テストでは、最初にすべてのChuckプログラムを実行する必要があります-別のinit.ck起動ファイルを作成します。 次に、Unityプロジェクトを起動します。 目的のイベントが発生するとすぐにOSCメッセージが生成され、チャックはメッセージを受信してサウンドを生成します。
これは、図によって明確に表すことができます。

私が遭遇した唯一の問題は、OSCポートを別の暴徒に切り替えることでした。 たとえば、3匹のゾンビウサギ、2匹のゾンビクマなど、多くのキャラクターがスポーンされた場合、サウンドは対応するタイプの最初のzapombirovannyモブでのみ再生されます。 チャンネルの切り替えは、この最初の暴徒の殺害後にのみ発生します。 私はまだ簡単な解決策を見つけていません。
誰かがこれらのトピック(OSC、サウンドジェネレーションなど)に興味深いリンクを持っていると面白いと思います-コメントで共有してください。
ご清聴ありがとうございました!