バーチャル3Dクリエイター神部まゆみです(*^-^*)
この記事はVRChatワールドのInteractで音を鳴らしてみたのでそれについてのメモです。
できたら私のVRChatワールドで動くようにしたいですね。

やりたいこと:照明のスイッチを押したら音が鳴るようにしたい
照明のスイッチを押すと「パチッ」みたいにボタン音を鳴らしたい。
まぁ無くてもいいっちゃいいけど、勉強がてらやってみます。
照明については以前の記事を参照。



効果音素材を探す
効果音ラボさんのボタン・システム音素材を借りました。
ありがとうございます(*^-^*)




カーソル移動8のやつがそれっぽかったです。
音の鳴らし方1:オンオフする照明にオーディオソースをつけてゲーム開始時に再生にしておく
これで「ゲーム開始時に再生」にしたら点ける時だけは音が鳴った。
最初から照明をオンにしている場合、ゲーム開始時に再生されるからワールドに入った時にも鳴ってしまうけど、まぁこれでもいいっちゃいいかな。
動画だとこんな感じ。※音が出ます
インスペクターオンにして照明が点いた時だけ音が鳴る。
Found 2D audio source with no VRC Spatial Audio component, this is deprecated. Press ‘fix’ to add a (disabled) VRC_SpatialAudioSource. って警告が出るのでAuto Fixしておく
オーディオソースコンポーネントを追加するとこんな警告が出るのでAuto FixしておけばOK。
これでVRC Spatial AudioSourceとかいうコンポーネントが追加されて警告消えた。
多分VRChat向けにオーディオソースを最適化する感じのコンポーネントみたいな感じかな?たぶん。
音の鳴らし方2:スイッチのUdonノードを組んで鳴らす
こんな感じのノードにしてあるので、処理の最後にオーディオソースを持ってくれば行けるか?
ノードの詳しい解説は以前の記事を参照。



多分audiosource.playで再生できると思う。

こんな感じのノードを組んだら行けました。
ノードの組み方や手順
ノードを組んだオブジェクト(ここではスイッチ)にオーディオソースコンポーネントを追加して、オーディオクリップを設定しておく。
AutoFixもしておく。
スイッチのノードを開いて、ノードグラフにオーディオソースコンポーネントをD&Dする。
追加したswitchのAudioSourceからノードを伸ばして、「audio」って検索して出てくるAudioSource.Playを選ぶ。
あとはSetActive二つからノードを繋げば、オンにした時もオフにした時もオーディオソースがplayされます。
最後にUdon Behaviorのオーディオソース参照がされてなかったのでちゃんと指定しておく。
ここが「なし」になってたり参照が間違ってると正常に動かないので注意。
VRChatにアップして動作確認してみる
これでオンにした時もオフにした時も音が鳴った!
これなら押せば音楽が鳴るボタンみたいな感じにも使えるかな。
玄関のところに呼び鈴でも設置してみるか…。
おわりに
案外簡単にできて良かった。
Interactだけでもそこからの派生処理で色々できそう。
でも複雑な処理をさせるにはUdon#とかいじらないとダメかな?そろそろいじってみたいかも。
まぁぼちぼちいじってみます(*^-^*)