Exemple #1
0
    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++;
        }
    }
Exemple #2
0
    // 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);
         *              }*/
    }