Open2
バーチャルキャスト VCIスクリプトプライベートサンプル集
プライベートサンプル
主に始めたばかりでなにをしていいのかわからない方向けのかんたんなサンプル
...にしたい
ランダムに音が流れるスイッチ
- シーンにスイッチになるものを置いておく
- スイッチはSubItemにする
- スイッチのオブジェクトにAudio Sourceを全部アタッチする
function onUse(item)
local audios = item.GetAudioSources()
if (audios ~= nil) then return end
audios[math.random(#audios)]._ALL_Play(1.0, false)
end
VCIをロードしたら音が流れる
もっと基本的なとこから行ってみましょ
- EmptyObjectにAudioListnerだけつけて音声ファイルを入れる
-
Play on Awake
のチェックが入った状態(ループさせるならLoop
も)
であればVCIを出しただけで音が流れるはず
あとから来た人もロードされた段階で再生開始される(再生秒数同期はしない)
音声の再生/停止組み込みたかったり3D音声で発生位置を変えたいとかの場合はスイッチなり音声発生位置のオブジェクトなりが必要でスクリプトも必要になる
音声再生・停止スイッチ
- スイッチになるオブジェクト(SubItem)が必要
- 音声組み込みはそのオブジェクトでもいいし他のとこでもいい
local iItem = vci.assets.GetTransform("switch") -- スイッチのSubItem名
local BGM = iItem.GetAudioSources() -- スイッチにAudioSourceがある場合
local defaultVolume = 0.3 -- 音声ボリューム 別にいじれるようにしてもいい
local IsPlaying = false -- 再生中フラグ ローカル管理の場合
-- ロードされた状態では停止(ローカル)
if ((BGM ~= nil) and (BGM[1] ~= nil)) then
BGM[1].Stop()
IsPlaying = false
end
function onUse(item)
-- 音楽再生状態をトグル
if (not ((BGM ~= nil) and (BGM[1] ~= nil))) then return end
if (not (IsPlaying or false)) then
-- 再生状態へ遷移
BGM[1].Play(defaultVolume, true) -- ループ再生
IsPlaying = true
else
-- 停止状態へ遷移
BGM[1].Stop()
IsPlaying= false
end
end
state
とかに再生状態書き込んであとから来た人と再生状態同期するとかも可能(ラグはしょうがない)
3D音声にする
UniVCI 0.41以降が必要
- AudioSourceコンポーネントのReverb Zone Mixを1(
3D
側)にする - MinDistanceとMaxDistanceで減衰開始距離・最大距離を設定する
あとは他の音声と同じ