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