東中野ミュージックラボのブロマガ

VCIスクリプトってのをやってみる(サンプラー)04

2019/06/26 20:57 投稿

  • タグ:
  • VCI
  • VCIスクリプト
  • バーチャルキャスト
サンプラー!オリジナルのサンプラーを使いたいの。
なんかくだらない音が出そうなサンプラー!
サンプラーがゲシュタルト崩壊してテンプラーとの違いが分からないよ もう。

そしてこないだ作ったライダーベルトだよ 音を出せるようになったら歌うベルト作れるかな!
タ・ト・バ! タトバタ・ト・バ!


ようやくスクリプトだよ!
こっからが本番かと思ったら、ここまでですっかり疲弊してますけど。
最初に動くスクリプトを書くまでが大変だったのでそのままサンプルとして挙げておくよ。
どういう挙動をしてるのか見るためにprintをいっぱい書きました。
local music = { "Claps","Cymbal","Dog2","midnightVoice","Snare","Vibraslap"}--音データの名前を配列に格納
local table = {}--空の配列を用意
for i = 1, 6 do--button01~button06まで名前を付けて配列に格納
table[i] = "button0"..i
end
for i = 1, #table do
print("table "..i.." の値は "..table[i])--配列ができたかどうだか中身を1行ずつ出力
end


--手で触って判別できるか
function onTriggerEnter(item, hit)--触ったものとか触られたものとかのオブジェクト名を取得
print("ietm"..item.."です")--触られたほうかな
print("hit"..hit.."です")--それとも触ったほうかも
print("ここまでおk")--とりあえずここまではエラー出てないよ


for i = 1, #table do--ボタンの数分だけループ処理
print("table "..i.." の値は "..table[i])--今処理してるループの値はコレ
print("hitの値は"..hit.."です")--触ってるほうの手とかその他の名前が取得できるよ
print("ボタンは"..item.."です")--ボタンの名前はitemで取得できるっぽいね

if (item == table[i]) then--触ったボタンと名前が同じだったら音を鳴らす
vci.assets._ALL_PlayAudioFromName(music[i])
break--音を鳴らしたらループ処理を抜ける
end
end

end
やった!とりあえず音が鳴った!
持ち運び出来て、ボタンを手で触って音が出せる そんな必要最小限のサンプラーだぞ!

でもまだもうちょっと工夫が必要そう。
手で触った時だけじゃなくて 何にあたっても音が出てしまうので不用意に振り回すとうるさくてかなわぬ。
手だけに反応するようにしたい。

それから一度鳴り始めたら一曲分鳴りっぱなしになるので、少し長い効果音だと次の音と被って邪魔になる。
違うボタンを押したら前の音が止まるようにしたい。


次回で最後、のはず!




コメント

コメントはまだありません
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事