うどんコンプレッサー
- Digital0 JPY



VRChatのワールド用のコンプレッサーエフェクトです。 コンプレッサーとは、音の大きい部分を小さくすることで、音の大きさの変動を抑えるエフェクトです。 例えば全体にかけた場合、プレイヤーごとの声の大きさの差や距離での減衰による、過剰な音の大きさの変動を抑えられます。 Udon Compressor Demo https://vrchat.com/home/launch?worldId=wrld_b1f1d405-c2ec-43fb-a2c0-ff09cfca3b10 こちらのワールドで実際に試せます。
導入方法
ダウンロードしたユニティパッケージをインポートします。
使用方法
1. 全体の音にかける場合はオーディオリスナー、個別の音にかける場合はそのオーディオソースがアタッチされたゲームオブジェクトに、うどんコンプレッサー(Udon Compressor)をアタッチします。 2. コンプレッサーメーター(Compressor Meter)プレハブをシーンの適当な場所に置きます。 3. シーンに置いたコンプレッサーメーターのプロパティのターゲット(Target)にアタッチしたうどんコンプレッサーを割り当てます。 4. ビルド&テストで音を鳴らしてメーターが示す値を確認します。 5. エディターに戻り確認した値をもとにうどんコンプレッサーの各調節項目を調節します。 6. 再びビルド&テストしてメーターで調節の効果を確認します。 7. 求める効果が得られたらシーンのコンプレッサーメーターを削除します。 なお、オーディオリスナーと同じゲームオブジェクトにアタッチしたうどんコンプレッサーまたはそのゲームオブジェクトは無効化できません。 無効化すると雑音が発生すると共に本来の音が聞こえなくなります。 VRC Scene Descriptorのリファレンスカメラに割り当てたゲームオブジェクトは無効化されるため、シーンの構成例の画像のように別のゲームオブジェクトにする必要があります。
調節項目の一覧
* Threshold: 圧縮が起きるしきい値(dB)です。ピークがこれを超えた音を圧縮します。 * Ratio: 圧縮の強さです。圧縮率(しきい値を超えた音の大きさの差を何分の1にするか)を指定します。 * Knee: 圧縮の強さの境目のなめらかさです。しきい値を中心とした圧縮率の遷移の幅(dB)を指定します。 * Attack time: 圧縮が強まる速さです。圧縮量を増やすときの時定数(ミリ秒)を指定します。 * Release time: 圧縮が弱まる速さです。圧縮量を減らすときの時定数(ミリ秒)を指定します。 * Makeup gain: 圧縮後の音の大きさを一律に変える量です。利得(dB)を指定します。 * Output ceiling: 出力の上限(dB)です。出力のピークは圧縮の設定に関わらずこれより大きくなりません。 閾値と出力上限は振幅1.0を0dBとしたときの値です。 時定数とは、ここでは実際の圧縮量と圧縮率通りの圧縮量との差を約63%縮めるのにかかる時間です。
メーターの内容
* In: 圧縮する前の音の大きさです。入力のピーク(dB)を示します。 * Out: 圧縮した後の音の大きさです。出力のピーク(dB)を示します。 * GR: 圧縮の量(dB)です。出力上限の効果は含まれません。 InとOutは振幅1.0を0dBとしたときの値です。ラベルは符号(マイナス)が省略されています。
削除方法
アタッチしたうどんコンプレッサーを削除して、Reimbo/UdonAudioフォルダーを削除します。
更新方法
新しいユニティパッケージをインポートします。それでうまくいかなければ一度削除して導入し直します。
同時使用数について
処理の負荷が高いため同時に多くは使えません。 多すぎると処理が間に合わなくなり雑音や音の遅延が発生します。
空間化音源20個と動画プレイヤーひとつの再生時の参考値
* PC (CPU: Ryzen 5 PRO 5650GE): 9個 * Pico 4: 3個 VRChat Build 1903で計測
その他の仕様
* 任意のチャンネル数に対応(圧縮量は全チャンネルで共有) * 音声ブロック(数十ミリ秒程度のかたまり)ごとのピークの検出と圧縮量の更新および出力上限の適用(ブロック間の補間なし)
対応プラットフォーム
* Windows * Android iOSでも動くかもしれませんが未検証です
権利
CC0です。
更新履歴
[2026-10-03] 初版



