【無料】RARAのマイク【ワールドギミック】


説明
マイクを持たなくても声がワールド全体に聞こえたら便利だよねってことでつくりました。
ワールド内のマイクをポン置き → マイクヘッドをインタラクトすると放送ON/OFF。 ON/OFFのたびに「マイク、オン」「マイク、オフ」と喋る効果音つき。放送者が退室すると自動で解除され、元のボイス設定に戻す安全設計。
これで解決できること
イベント/集会で司会の声をワールド全域に確実に届けることができます。 オブジェクトを持ち続ける必要はありません。
クリック1回でON/OFFトグル、乗っ取り可否の制御も可能
放送中はNear/Far/Gain/Volumetric/Lowpassを放送仕様へ一時的に変更。終了時は必ず元の値へロールバック
主な機能
インタラクトでON/OFF(マイクヘッドをクリック) 効果音:「マイク、オン」「マイク、オフ」(ぼくがしゃべります 音量はAudioSourceで適当に調整してください 差し替え推奨)
ローカル再生/重なり防止オプションあり
放送パラメータ(Inspectorで可変)
Far(上限は実質約10,000mでクランプ) Near(推奨0) Voice Gain(0–24dB) Volumetric Radius(Far未満に自動補正) Lowpass無効化ON/OFF アクセス制御 他人が放送中でも上書き(乗っ取り)を許可/禁止
安全設計 放送者が退室/スクリプト無効化時に必ず元設定へ復帰 ロールバックは各クライアントで独立に保持
同期方式:BehaviourSyncMode.Manual 同期するのは「放送ON/OFF」と「放送者のplayerId」のみ。音声効果音はローカル再生で負荷軽め。
対応環境
Unity 2022.3 LTS VRChat SDK3 Worlds UdonSharp(最新) PC/Quest 両対応(音声距離/Gain操作はクライアント側で機能)
導入手順(最速)
本パッケージをインポート。
prefab をシーンへドラッグ。
プレファブ直下の WorldVoiceBroadcastToggle を確認し、SFX (Local Only) に
sfxSource:AudioSource(プレファブ同梱のもの or 任意) sfxOn:マイク、オン sfxOff:マイク、オフ を割り当て。Play On Awake はOFF推奨。 最初からその設定はなされているはずです。
必要なら放送パラメータ(Far/Near/Gain/Volumetric/Lowpass)と乗っ取り可否を調整。 ビルド&アップロード → ワールド内でマイクヘッドをインタラクト。
使い方
ON:マイクヘッドをインタラクト → 放送者=自分に設定、効果音「マイク、オン」 OFF:もう一度インタラクト(放送者本人)→ 効果音「マイク、オフ」
他人が放送中 allowOverrideByOthers = true なら上書きして自分が放送者に false なら無視(効果音も鳴らない)
インスペクター項目(要点)
farWhenOn:放送中のFar。実質上限は約10,000m。 nearWhenOn:0推奨。 gainWhenOn:0–24dB、既定15。 volumetricRadiusWhenOn:通常0でOK(Farより小さく自動補正)。 disableLowpassWhenOn:遠距離ローパスを放送時に無効化するか。 allowOverrideByOthers:他人からの上書き許可。 SFX:sfxSource/sfxOn/sfxOff/sfxVolume/stopBeforePlay
注意点・既知の仕様
エンジン側クランプにより、極端なFarは実質~10,000mに丸められる。 放送者が退室/リスポーンすると自動でOFF→元の音声設定へ復帰。 効果音はローカル再生(ネットワーク同期しない)。 他スクリプトで同時に音声距離/Gainを変更している場合、挙動が干渉する可能性がある。必要に応じて適用順や対象を整理。
トラブルシューティング
声が遠い/近すぎる:farWhenOn / nearWhenOn / gainWhenOn を調整。 Volumetricが効きすぎる:volumetricRadiusWhenOn を小さく、または0に。 上書きできない:allowOverrideByOthers が false になっていないか確認。 効果音が鳴らない:sfxSource と sfxOn/sfxOff の割り当て、AudioSource の Mute/Volume/Spatial Blend を確認。
バグがあったらすみません。作者にクレームいただければ可能な限り対応します。