VRChatで打楽器を作る。
私は実験的に音の出るカツカレーを作ってみました。
早起きしたのでVRChatで無限音階カツカレー作成しときました。
— alaki paca (@arabiiiiiiiiiii) 2018年10月22日
一周してもオクターブが上下せず、無限に音階が上がり続けるカツカレーです。 pic.twitter.com/D7Hjcff1za
音を出すのは、基本的に下記リンクのAudioBankの技術メモの通りです。
ただ、僕が初めて見たとき、文字だけだとぱっと頭に入ってこなかったので、リンク先を画像付きに説明したい。
以下がカツカレーの中身です。
audiobankがVRC_Audio Bankを入れたGameObject
playがtriggerを入れたGameObjectです。
これで音を鳴らしています。
1.まずはaudiobankを入れたGameObjectを作ります。
VRC_AudioBank は AudioSource と同じ GameObject に付けてもよい。
とあるので、Audio Source,VRC_Audio Bankセットしました。まとめれるものはまとめといてよいのでしょ論。
Sourceの中には、今いじっているaudiobankのGameObjectを入れます。
clipのsizeの数字の分、elementが増え、そこにオーディオがファイルを入れられます。
-
Play On Awake のチェックを外す。
と書いてあるのに、やってなくてふええってなったのでお忘れなく。
2.VRC_Triggerを入れたGameObject作ります。
以下が中身です。
Advanced Modeにチェックを入れ、
叩いたら音を鳴るようにするため、OnEnterColliderにします。
コライダー同士がぶつかったら、反応するってものです。
このlayersをEverythingにして、
Actionsの+ボタンを押下しBasic EventsからSendRPC
Receiverにaudiobank(VRC_AudioBank を付けたオブジェクト)を入れて、
MethodにVRC_AudioBank.Play、TargetにAll
Use Player ID as last のチェックを外します。
僕はここでTargetから下の項目が消えていて困ったのですが、
Advanced Modeにチェックを入れてなかったせいでした。
そして下記リンクにも書いてあるのですが。
triggerの入ったGameObjectにコライダーを入れる必要があります。
OnEnterCollider - VRChat Document 日本語訳 Wiki*
叩く方の設定ですが、下記のリンクがわかりやすかったです。
衝突するオブジェクトのどっちかにRigidbodyを付けないといけないそうです。
そして、Kinematicなコライダは物理挙動の計算が効かなくなるそうです。
僕はCapsuleを細長くして棒を作ったので以下のようになりました。
とりあえず、これで僕の環境では音がなりました。
以上です。