[vci楽器制作メモ] VCI上で音量調節する。
楽器を作ったはいいものの、バーチャルキャスト上で音量調整が難しい。
今のところの経験則的には弾き語りするならボリュームは0.25くらいかなって感じ。
音だけ聞かせるならもう少し大きくてもいいかなって感じ。
コード鳴らすやつも音量調整付けた、あと棒二つにした。
— alaki paca/荒木パカ @作曲系バーチャル巨乳アルパカ (@arabiiiiiiiiiii) 2019年6月22日
Cのキーのコードをならすやーつ / VCI https://t.co/B03hp1yaNV
Gのキーのコードをならすやーつ / VCI https://t.co/5woBfibzNa#THESEEDONLINE #TSO_ITEM #バーチャルキャスト pic.twitter.com/awbDhcBfY6
アップデートです。
— alaki paca/荒木パカ @作曲系バーチャル巨乳アルパカ (@arabiiiiiiiiiii) 2019年6月22日
音量調整機能と首絞めて(use)も音を鳴らせるようになりました。
アルパカの声を鳴らすやーつ / VCI https://t.co/Q5PFjwT41c #THESEEDONLINE #TSO_ITEM #バーチャルキャスト pic.twitter.com/EGJeJpgC7c
たまにコメントで「音大きすぎ」とか「小さすぎ」とかくる。
正直視聴者のリスニング環境の違いだろうと思うが、
VCI上で音量調整する機能があったらいいなと思い実装。
音量調節できた。 pic.twitter.com/lzd9slbEzx
— alaki paca/荒木パカ @作曲系バーチャル巨乳アルパカ (@arabiiiiiiiiiii) 2019年6月20日
上記のアルパカの声を出すVCIのスクリプトは以下のように書いた。
--初期設定
bgmvol = 0.2
count = 1
vci.assets._ALL_SetMaterialColorFromIndex(4, Color.__new(255,255,0))
vci.assets._ALL_SetMaterialColorFromIndex(5, Color.__new(255,255,255))
vci.assets._ALL_SetMaterialColorFromIndex(6, Color.__new(255,255,255))
vci.assets._ALL_SetMaterialColorFromIndex(7, Color.__new(255,255,255))
vci.assets._ALL_SetMaterialColorFromIndex(8, Color.__new(255,255,255))
function onCollisionEnter(item, hit)
if hit == "alpaca" and item =="Capsule" then
vci.assets.audio._ALL_Play("alpaca_sound", bgmvol, false)
end
end
function onUse(use)
if use == "alpaca" then
vci.assets.audio._ALL_Play("alpaca_sound", bgmvol, false)
end
end
function onTriggerEnter(item, hit)
if (hit == "Cube1 (1)" or item == "Cube1 (1)") and count < 5 and 0 <= count then
bgmvol = bgmvol + 0.2
count = count + 1
end
if (hit == "Cube1" or item == "Cube1") and count <= 5 and 0 < count then
bgmvol = bgmvol - 0.2
count = count - 1
end
if count == 0 then
vci.assets._ALL_SetMaterialColorFromIndex(4, Color.__new(255,255,255))
vci.assets._ALL_SetMaterialColorFromIndex(5, Color.__new(255,255,255))
vci.assets._ALL_SetMaterialColorFromIndex(6, Color.__new(255,255,255))
vci.assets._ALL_SetMaterialColorFromIndex(7, Color.__new(255,255,255))
vci.assets._ALL_SetMaterialColorFromIndex(8, Color.__new(255,255,255))
end
if count == 1 then
vci.assets._ALL_SetMaterialColorFromIndex(4, Color.__new(255,255,0))
vci.assets._ALL_SetMaterialColorFromIndex(5, Color.__new(255,255,255))
vci.assets._ALL_SetMaterialColorFromIndex(6, Color.__new(255,255,255))
vci.assets._ALL_SetMaterialColorFromIndex(7, Color.__new(255,255,255))
vci.assets._ALL_SetMaterialColorFromIndex(8, Color.__new(255,255,255))
end
if count == 2 then
vci.assets._ALL_SetMaterialColorFromIndex(4, Color.__new(255,255,0))
vci.assets._ALL_SetMaterialColorFromIndex(5, Color.__new(255,255,0))
vci.assets._ALL_SetMaterialColorFromIndex(6, Color.__new(255,255,255))
vci.assets._ALL_SetMaterialColorFromIndex(7, Color.__new(255,255,255))
vci.assets._ALL_SetMaterialColorFromIndex(8, Color.__new(255,255,255))
end
if count == 3 then
vci.assets._ALL_SetMaterialColorFromIndex(4, Color.__new(255,255,0))
vci.assets._ALL_SetMaterialColorFromIndex(5, Color.__new(255,255,0))
vci.assets._ALL_SetMaterialColorFromIndex(6, Color.__new(255,255,0))
vci.assets._ALL_SetMaterialColorFromIndex(7, Color.__new(255,255,255))
vci.assets._ALL_SetMaterialColorFromIndex(8, Color.__new(255,255,255))
end
if count == 4 then
vci.assets._ALL_SetMaterialColorFromIndex(4, Color.__new(255,255,0))
vci.assets._ALL_SetMaterialColorFromIndex(5, Color.__new(255,255,0))
vci.assets._ALL_SetMaterialColorFromIndex(6, Color.__new(255,255,0))
vci.assets._ALL_SetMaterialColorFromIndex(7, Color.__new(255,255,0))
vci.assets._ALL_SetMaterialColorFromIndex(8, Color.__new(255,255,255))
end
if count == 5 then
vci.assets._ALL_SetMaterialColorFromIndex(4, Color.__new(255,255,0))
vci.assets._ALL_SetMaterialColorFromIndex(5, Color.__new(255,255,0))
vci.assets._ALL_SetMaterialColorFromIndex(6, Color.__new(255,255,0))
vci.assets._ALL_SetMaterialColorFromIndex(7, Color.__new(255,255,0))
vci.assets._ALL_SetMaterialColorFromIndex(8, Color.__new(255,255,0))
end
end
以下の関数で音を鳴らせるから、第2引数のボリュームを変えれるようにしただけです。
vci.assets.audio._ALL_Play(鳴らしたい音ファイル, ボリューム, false)
以下で+-をタッチすると、1~5まででbgmvolとcountも増減できるようにした。
countの数字で条件分岐させてマテリアルの色を変えている。
function onTriggerEnter(item, hit)
if (hit == "Cube1 (1)" or item == "Cube1 (1)") and count < 5 and 0 <= count then
bgmvol = bgmvol + 0.2
count = count + 1
end
if (hit == "Cube1" or item == "Cube1") and count <= 5 and 0 < count then
bgmvol = bgmvol - 0.2
count = count - 1
end
end
最初はbgmvolの値で条件分岐させようとしたけど、
0と0.6、0.8の時に反応しなかった。
丸め誤差? pic.twitter.com/p7yKDgOpX0
— alaki paca/荒木パカ @作曲系バーチャル巨乳アルパカ (@arabiiiiiiiiiii) 2019年6月21日
どうやら計算誤差というやつが起きているらしい。
↓のサイトがわかりやすい。
とりあえず、小数点の値を使用するのはできないみたいなので、countの変数を用意して条件分岐させた。
if count == 0 then
vci.assets._ALL_SetMaterialColorFromIndex(4, Color.__new(255,255,255))
vci.assets._ALL_SetMaterialColorFromIndex(5, Color.__new(255,255,255))
vci.assets._ALL_SetMaterialColorFromIndex(6, Color.__new(255,255,255))
vci.assets._ALL_SetMaterialColorFromIndex(7, Color.__new(255,255,255))
vci.assets._ALL_SetMaterialColorFromIndex(8, Color.__new(255,255,255))
end
(255,255,0)で黄色、(255,255,255)で白なので、だらだらとif文書いて音量に合わせて色が変わるようにした。
これで、放送中に音量に対するリクエストに答えられるようになったはず!
Programming in Lua プログラミング言語Lua公式解説書
- 作者: Roberto Ierusalimschy,新丈径
- 出版社/メーカー: アスキー・メディアワークス
- 発売日: 2009/08/28
- メディア: 大型本
- 購入: 5人 クリック: 78回
- この商品を含むブログ (18件) を見る