====== 拍手(わんコメ対応) ====== **[[deliverytool/onecomme/plugin]]**でYouTube・ニコニコ生放送のコメントを受信してアクションを起こすVCIのサンプルです。 * 「8888」の文字列を含むコメントを受信すると、拍手のSEが鳴る * [[https://developer.virtualcast.jp/vci-docs/manual/osc/onecomme_osc/index.html|プラグインの仕様ドキュメント]] \\ === サンプルデータ === https://virtualcast.jp/products/9b99ef286cf9ca514ebd71832a490c00f2b5458b15fade874248211555f09a8f === Unitypackage === {{ vci:sample:oscapi:onecomme:clap.unitypackage |}} ===== コンポーネント設定 ===== VCI Object {{:vci:sample:oscapi:onecomme:clap1.png?direct}} ===== 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