目次

拍手(わんコメ対応)

VirtualCast公式わんコメOSCプラグインでYouTube・ニコニコ生放送のコメントを受信してアクションを起こすVCIのサンプルです。


サンプルデータ

https://virtualcast.jp/products/9b99ef286cf9ca514ebd71832a490c00f2b5458b15fade874248211555f09a8f

Unitypackage

clap.unitypackage

コンポーネント設定

VCI Object

VCIスクリプト

main.lua
local roomFlag
local preSoundTime = 0
local interval = 2.2
local soundVol = 1
--local sound = vci.assets.GetTransform("SoundObj")
 
local youtubeAdress1 = "/vc-official/onecomme/youtube/comment"
local youtubeAdress2 = "/vc-official/onecomme/youtube/super"
local niconicoAdress1 = "/vc-official/onecomme/niconico/comment"
--local niconicoAdress2 = "/vc-official/onecomme/niconico/gift"
 
--わんコメで「8888」が含まれるコメントを受信すると、拍手SEが鳴る
--「8888」が連投された際、程よく重なるように、SE再生にインターバルを設ける
local function wankomeHakushu(content)
    if roomFlag then
        if vci.state.Get("OwnerID") == vci.vc.room.GetLocalPlayer().GetId() then
            if os.time(sec) - preSoundTime >= interval and string.find(json.parse(content).comment, "8888") ~= nil then
                --sound.GetAudioSources()[1]._ALL_PlayOneShot(soundVol)
                print("拍手SE")
                preSoundTime = os.time(sec)
            end
        end
    end
end
 
vci.osc.RegisterMethod(youtubeAdress1, wankomeHakushu, {ExportOscType.BlobAsUtf8})
vci.osc.RegisterMethod(youtubeAdress2, wankomeHakushu, {ExportOscType.BlobAsUtf8})
vci.osc.RegisterMethod(niconicoAdress1, wankomeHakushu, {ExportOscType.BlobAsUtf8})
--vci.osc.RegisterMethod(niconicoAdress2, wankomeHakushu, {ExportOscType.BlobAsUtf8})
 
--ルームでの動作を保証するため、ルームの識別
if vci.vc.GetSpaceType() == ExportVcSpaceType.studio then
    roomFlag = false
else
    roomFlag = true
end
 
--VCIオーナーをstateに記録
--置き忘れ時の誤動作防止用など
if roomFlag and vci.assets.IsMine then
    if vci.state.Get("OwnerID") == nil then
        vci.state.Set("OwnerID", vci.vc.room.GetLocalPlayer().GetId())
    end
end