vciを使って弾き語り用のVR楽器(ただ叩いたらコードが鳴る)を作ってみたメモです。vciのバージョンはUniVCI-0.17です。
以下のようになりました。
コードをならすやーつ をシードオンラインに公開しておきました。
— alaki paca/荒木パカ たれ乳アルパカ作曲系vtuber🍤💗🐺 (@arabiiiiiiiiiii) 2019年4月28日
あるのはCのキーのコードだけです。
なので、歌の方をCのキーに合わせて弾き語りする仕様です。
みんなもVCで弾き語りしよー
https://t.co/B03hp1yaNV #THESEEDONLINE #TSO_ITEM #バーチャルキャスト pic.twitter.com/rdtgB0Dv69
Lua言語なんて初めて聞いたのでさっぱりわからなかったけど、下の画像の様に配置して
onCollisionEnterのイベント関数をprint表示して、
Capsuleでそれぞれのコードのオブジェクト叩いたら、
function onCollisionEnter(item, hit)
print(item)
print(hit)
end
hitは「ぶつかったもの」でitemは「Capsule」となった。
とりあえず音を出すにはこうするらしいので。
vci.assets._ALL_PlayAudioFromName("音声ファイル名")
VCI Sub Itemをアタッチしたオブジェクトに、Audio Sourceをアタッチして、AudioClipに音声ファイルを入れて
function onCollisionEnter(item, hit)
if hit == "C" and item =="Capsule" then
vci.assets._ALL_PlayAudioFromName("C")
end
if hit == "Dm" and item =="Capsule" then
vci.assets._ALL_PlayAudioFromName("Dm")
end
if hit == "Em" and item =="Capsule" then
vci.assets._ALL_PlayAudioFromName("Em")
end
if hit == "F" and item =="Capsule" then
vci.assets._ALL_PlayAudioFromName("F")
end
if hit == "G" and item =="Capsule" then
vci.assets._ALL_PlayAudioFromName("G")
end
if hit == "Am" and item =="Capsule" then
vci.assets._ALL_PlayAudioFromName("Am")
end
end
これで、一応鳴らすことが出来ました。
条件分岐をだらだら書いてしまいましたが、
..文字列で連結できるみたいなので、音声ファイルやオブジェクト名を名前+数字にして、ループ内でインクリメントする数字で連結して、オブジェクトを探すようにすれば、たくさんのオブジェクトをだらだら条件分岐させずに探すことができるかな?
今度ためしてみます。