VRChatで打楽器を作る。

私は実験的に音の出るカツカレーを作ってみました。

 

 

 

音を出すのは、基本的に下記リンクのAudioBankの技術メモの通りです。

ただ、僕が初めて見たとき、文字だけだとぱっと頭に入ってこなかったので、リンク先を画像付きに説明したい。

 

vrcworld.wiki.fc2.com

 

 

 以下がカツカレーの中身です。

f:id:alakialaca:20181023070323j:plain

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が増え、そこにオーディオがファイルを入れられます。

 

f:id:alakialaca:20181023071257j:plain

 

 

  1. Play On Awake のチェックを外す。

と書いてあるのに、やってなくてふええってなったのでお忘れなく。

f:id:alakialaca:20181023072714j:plain

 

2.VRC_Triggerを入れたGameObject作ります。

以下が中身です。

f:id:alakialaca:20181023074441j:plain

Advanced Modeにチェックを入れ、

 

叩いたら音を鳴るようにするため、OnEnterColliderにします。

コライダー同士がぶつかったら、反応するってものです。

f:id:alakialaca:20181023074858j:plain

このlayersをEverythingにして、

f:id:alakialaca:20181023075549j:plain

Actionsの+ボタンを押下しBasic EventsからSendRPC

f:id:alakialaca:20181023080213j:plain

Receiverにaudiobank(VRC_AudioBank を付けたオブジェクト)を入れて、

MethodにVRC_AudioBank.Play、TargetにAll

Use Player ID as last のチェックを外します。

 

f:id:alakialaca:20181023080626j:plain

 

僕はここでTargetから下の項目が消えていて困ったのですが、

Advanced Modeにチェックを入れてなかったせいでした。

f:id:alakialaca:20181023081024j:plain

 

そして下記リンクにも書いてあるのですが。

triggerの入ったGameObjectにコライダーを入れる必要があります。

f:id:alakialaca:20181024031709j:plain

OnEnterCollider - VRChat Document 日本語訳 Wiki*

 

f:id:alakialaca:20181023081227j:plain

 

叩く方の設定ですが、下記のリンクがわかりやすかったです。

衝突するオブジェクトのどっちかにRigidbodyを付けないといけないそうです。

そして、Kinematicなコライダは物理挙動の計算が効かなくなるそうです。

 

indie-du.com

僕はCapsuleを細長くして棒を作ったので以下のようになりました。

 

f:id:alakialaca:20181024033119j:plain

 

とりあえず、これで僕の環境では音がなりました。

以上です。