void playFrame() { KeyframeBar holder = GameObject.Find("KeyframeBar/KeyframeGameRegistry").GetComponent <KeyframeBar>(); //Debug.Log("HOLDER TARGET---------------------" + holder.motionCaptureTarget.transform.parent); target.transform.position = playbackKeys[currentFrame].Position; target.transform.rotation = playbackKeys[currentFrame].QRotation; //subframeCount++; dorsalAmount = playbackKeys[currentFrame].DorsalAmount; lpelvicHAmount = playbackKeys[currentFrame].LPecAmount.x; lpelvicVAmount = playbackKeys[currentFrame].LPecAmount.y; rpelvicHAmount = playbackKeys[currentFrame].RPecAmount.x; rpelvicVAmount = playbackKeys[currentFrame].RPecAmount.y; analHAmount = playbackKeys[currentFrame].AnalAmount.x; analVAmount = playbackKeys[currentFrame].AnalAmount.y; if (fishModel == FishType.Poeciliid) { Messenger <float> .Broadcast("AdjustDorsalFin", dorsalAmount); Messenger <float, float> .Broadcast("AdjustLPelvicFin", lpelvicHAmount, lpelvicVAmount); Messenger <float, float> .Broadcast("AdjustRPelvicFin", rpelvicHAmount, rpelvicVAmount); Messenger <float, float> .Broadcast("AdjustAnalFin", analHAmount, analVAmount); } playbackClock += Time.deltaTime; if (currentFrame == 0) { if (playbackClock > 7) { ProduceScreenShots.TakePic(); currentFrame++; } } else if (playbackClock > (1.0f / (float)playbackRate)) { //Debug.Log("Playback clock: " + playbackClock); playbackClock = 0.0f; //yeild WaitForEndOfFrame; ProduceScreenShots.TakePic(); if (currentFrame == playbackKeys.Count - 1) { isReadyToStartRecording = false; canLoadNextSet = true; currentFrame = 0; currentSetIndex++; target.transform.position = playbackKeys[0].Position; target.transform.rotation = playbackKeys[0].QRotation; Debug.Log("One Batch Finished"); } currentFrame++; } }
// Update is called once per frame void Update() { if (isInitialized) { if (canLoadNextSet) { if (currentSetIndex > renderSets.Count - 1) { Debug.Log("************** Done rendering all sets"); isActivelyRecording = false; canLoadNextSet = false; isReadyToStartRecording = false; return; } int startIndex = 0; int endindex = 0; endindex = renderSets[currentSetIndex][0].LastIndexOf("."); startIndex = renderSets[currentSetIndex][0].LastIndexOf("\\"); string pathName = renderSets[currentSetIndex][0].Substring(startIndex + 1, (endindex - startIndex - 1)); endindex = renderSets[currentSetIndex][1].LastIndexOf("."); startIndex = renderSets[currentSetIndex][1].LastIndexOf("\\"); string tpsName = renderSets[currentSetIndex][1].Substring(startIndex + 1, (endindex - startIndex - 1)); endindex = renderSets[currentSetIndex][2].LastIndexOf("."); startIndex = renderSets[currentSetIndex][2].LastIndexOf("\\"); string textureName = renderSets[currentSetIndex][2].Substring(startIndex + 1, (endindex - startIndex - 1)); pathName = Regex.Replace(pathName, @"\t|\n|\r", ""); tpsName = Regex.Replace(tpsName, @"\t|\n|\r", ""); textureName = Regex.Replace(textureName, @"\t|\n|\r", ""); Debug.Log("path: " + pathName + ", tpsName: " + tpsName); string name = pathName + tpsName + textureName; ProduceScreenShots.newFolderName(name); // We'll start by positioning the first fish and waiting a few seconds before recording loadMorph(renderSets[currentSetIndex][2]); loadTexture(renderSets[currentSetIndex][1]); loadStateData(renderSets[currentSetIndex][0]); Messenger <int> .Broadcast("SwitchCamera", 1); canLoadNextSet = false; isReadyToStartRecording = true; isActivelyRecording = true; currentFrame = 0; playbackClock = 0; } else if (isReadyToStartRecording) { playFrame(); } else if (isActivelyRecording == false) { GameRegistry activeRegistry = gameObject.GetComponent <GameRegistry>(); activeRegistry.switchState(States.ProjectSelector); } } /* * if(fishModel == FishType.Poeciliid) * { * Messenger<float>.Broadcast("AdjustDorsalFin", dorsalAmount); * Messenger<float, float>.Broadcast("AdjustLPelvicFin", lpelvicHAmount, lpelvicVAmount); * Messenger<float, float>.Broadcast("AdjustRPelvicFin", rpelvicHAmount, rpelvicVAmount); * Messenger<float, float>.Broadcast("AdjustAnalFin", analHAmount, analVAmount); * }*/ }