-------------------------------- ---動画用メッセージ -------------------------------- ---Webビデオプレイヤーの情報 local MESSAGE_KEY_WEB_VIDEO_INFO_FROM_REMOCON = "WebVideoInfoFromRemocon" -------------------------------- ---定義データ -------------------------------- ---演出に使用する動画タイトル local TARGET_VIDEO_TITLE = "【リアルとメタバースを連携できる!】バーチャルキャスト OSCプロトコル対応" -------------------------------- ---動画データ -------------------------------- ---動画タイトル local videoTitle = "" ---動画時間 local videoDuration = 0 ---動画の再生開始時間 local videoPlayStartTime = 0 ---動画再生中 local isPlayingVideo = false ---動画の再生開始時のクロック local videoPlayStartClock = os.clock() -------------------------------- ---演出データ -------------------------------- ---再生エフェクト local effect = vci.assets.GetEffekseerEmitter("Effect") ---演出開始時間(動画の秒数) local playEffectTimeTable = {5, 48, 84} ---直前フレームでの動画再生時間 local beforePlayTime = 0 -------------------------------- ---関数 -------------------------------- ---Web動画プレイヤーの情報をリモコンアイテムから取得 local function HandleGetWebVideoInfo(sender, name, message) --動画タイトル videoTitle = message.title --動画時間 videoDuration = message.duration --現在の再生時間 videoPlayStartTime = message.currentTime beforePlayTime = message.currentTime --再生中 isPlayingVideo = message.isPlaying print("動画情報更新\nタイトル:" .. videoTitle .. "\n再生時間時間:" .. string.format("%0.2f / %0.2f", videoPlayStartTime, videoDuration) .. "\n再生状態:" .. tostring(isPlayingVideo)) --動画の再生開始時のクロック videoPlayStartClock = os.clock() end vci.message.On(MESSAGE_KEY_WEB_VIDEO_INFO_FROM_REMOCON, HandleGetWebVideoInfo) ---全ユーザーで毎フレーム呼ばれる function updateAll() --動画再生中の場合 if isPlayingVideo then --対象動画である場合 if videoTitle == TARGET_VIDEO_TITLE then local currentTime = videoPlayStartTime + (os.clock() - videoPlayStartClock) for index, playEffectTime in ipairs(playEffectTimeTable) do --エフェクトの再生時間を通過した場合 if (beforePlayTime <= playEffectTime) and (playEffectTime <= currentTime) then effect.Play() end end beforePlayTime = currentTime end end end