void Update() { if (speechManager == null) { speechManager = SpeechManager.Instance; } // use speech recognizer to control the mocap recorder if (speechManager != null && speechManager.IsSapiInitialized()) { if (speechManager.IsPhraseRecognized()) { string sPhraseTag = speechManager.GetPhraseTagRecognized(); switch (sPhraseTag) { case "RECORD": if (mocapRecorder) { mocapRecorder.StartRecording(); } break; case "STOP": if (mocapRecorder) { mocapRecorder.StopRecording(); } break; } speechManager.ClearPhraseRecognized(); } } // alternatively, use the Jump-button (space-key) if (Input.GetButtonDown("Jump")) { if (mocapRecorder) { if (!mocapRecorder.IsRecording()) { mocapRecorder.StartRecording(); } else { mocapRecorder.StopRecording(); } } } }
void FixedUpdate() { // get the speech manager instance if (speechManager == null) { speechManager = SpeechManager.Instance; } if (speechManager != null && speechManager.IsSapiInitialized()) { if (speechManager.IsPhraseRecognized()) { string sPhraseTag = speechManager.GetPhraseTagRecognized(); switch (sPhraseTag) { case "FORWARD": //GameObject m=GameObject.Find("Next"); levelLoaded = true; Application.LoadLevel(3); NextPage(); break; case "Next": //GameObject m=GameObject.Find("Next"); //levelLoaded = true; // Application.LoadLevel (3); //NextPage (); // levelLoaded = true; // Application.LoadLevel (3); break; case "Back": //GameObject m=GameObject.Find("Next"); //levelLoaded = true; // Application.LoadLevel (3); LastPage(); break; } speechManager.ClearPhraseRecognized(); } } else { Debug.Log("FAIL TO RECOGNIZE "); } }
void Update() { if (speechManager == null) { speechManager = SpeechManager.Instance; } if (speechManager != null && speechManager.IsSapiInitialized()) { if (speechManager.IsPhraseRecognized()) { string sPhraseTag = speechManager.GetPhraseTagRecognized(); switch (sPhraseTag) { case "RECORD": if (saverPlayer) { saverPlayer.StartRecording(); } break; case "PLAY": if (saverPlayer) { saverPlayer.StartPlaying(); } break; case "STOP": if (saverPlayer) { saverPlayer.StopRecordingOrPlaying(); } break; } speechManager.ClearPhraseRecognized(); } } }
void FixedUpdate() { if (speechManager != null && speechManager.IsSapiInitialized()) { if (speechManager.IsPhraseRecognized()) { string sPhraseTag = speechManager.GetPhraseTagRecognized(); switch (sPhraseTag) { case "FORWARD": walkSpeed = 0.2f; walkDirection = 0f; break; case "BACK": walkSpeed = -0.2f; walkDirection = 0f; break; case "LEFT": walkDirection = -0.2f; if (walkSpeed == 0f) { walkSpeed = 0.2f; } break; case "RIGHT": walkDirection = 0.2f; if (walkSpeed == 0f) { walkSpeed = 0.2f; } break; case "RUN": walkSpeed = 0.5f; walkDirection = 0f; break; case "STOP": walkSpeed = 0f; walkDirection = 0f; break; case "JUMP": jumpNow = true; walkSpeed = 0.5f; walkDirection = 0f; break; case "HELLO": waveNow = true; walkSpeed = 0.0f; walkDirection = 0f; break; } speechManager.ClearPhraseRecognized(); } } else { walkDirection = Input.GetAxis("Horizontal"); // setup h variable as our horizontal input axis walkSpeed = Input.GetAxis("Vertical"); // setup v variables as our vertical input axis jumpNow = Input.GetButtonDown("Jump"); waveNow = Input.GetButtonDown("Jump"); } anim.SetFloat("Speed", walkSpeed); // set our animator's float parameter 'Speed' equal to the vertical input axis anim.SetFloat("Direction", walkDirection); // set our animator's float parameter 'Direction' equal to the horizontal input axis anim.speed = animSpeed; // set the speed of our animator to the public variable 'animSpeed' anim.SetLookAtWeight(lookWeight); // set the Look At Weight - amount to use look at IK vs using the head's animation currentBaseState = anim.GetCurrentAnimatorStateInfo(0); // set our currentState variable to the current state of the Base Layer (0) of animation if (anim.layerCount == 2) { layer2CurrentState = anim.GetCurrentAnimatorStateInfo(1); // set our layer2CurrentState variable to the current state of the second Layer (1) of animation } // LOOK AT ENEMY // // if we hold Alt.. // if(Input.GetButton("Fire2")) // { // // ...set a position to look at with the head, and use Lerp to smooth the look weight from animation to IK (see line 54) // anim.SetLookAtPosition(enemy.position); // lookWeight = Mathf.Lerp(lookWeight,1f,Time.deltaTime*lookSmoother); // } // // else, return to using animation for the head by lerping back to 0 for look at weight // else // { // lookWeight = Mathf.Lerp(lookWeight,0f,Time.deltaTime*lookSmoother); // } // STANDARD JUMPING // if we are currently in a state called Locomotion (see line 25), then allow Jump input (Space) to set the Jump bool parameter in the Animator to true if (currentBaseState.nameHash == locoState) { if (jumpNow) { jumpNow = false; anim.SetBool("Jump", true); } } // if we are in the jumping state... else if (currentBaseState.nameHash == jumpState) { // ..and not still in transition.. if (!anim.IsInTransition(0)) { if (useCurves) { // ..set the collider height to a float curve in the clip called ColliderHeight col.height = anim.GetFloat("ColliderHeight"); } // reset the Jump bool so we can jump again, and so that the state does not loop anim.SetBool("Jump", false); } // Raycast down from the center of the character.. Ray ray = new Ray(transform.position + Vector3.up, -Vector3.up); RaycastHit hitInfo = new RaycastHit(); if (Physics.Raycast(ray, out hitInfo)) { // ..if distance to the ground is more than 1.75, use Match Target if (hitInfo.distance > 1.75f) { // MatchTarget allows us to take over animation and smoothly transition our character towards a location - the hit point from the ray. // Here we're telling the Root of the character to only be influenced on the Y axis (MatchTargetWeightMask) and only occur between 0.35 and 0.5 // of the timeline of our animation clip anim.MatchTarget(hitInfo.point, Quaternion.identity, AvatarTarget.Root, new MatchTargetWeightMask(new Vector3(0, 1, 0), 0), 0.35f, 0.5f); } } } // JUMP DOWN AND ROLL // // if we are jumping down, set our Collider's Y position to the float curve from the animation clip - // // this is a slight lowering so that the collider hits the floor as the character extends his legs // else if (currentBaseState.nameHash == jumpDownState) // { // col.center = new Vector3(0, anim.GetFloat("ColliderY"), 0); // } // // // if we are falling, set our Grounded boolean to true when our character's root // // position is less that 0.6, this allows us to transition from fall into roll and run // // we then set the Collider's Height equal to the float curve from the animation clip // else if (currentBaseState.nameHash == fallState) // { // col.height = anim.GetFloat("ColliderHeight"); // } // // // if we are in the roll state and not in transition, set Collider Height to the float curve from the animation clip // // this ensures we are in a short spherical capsule height during the roll, so we can smash through the lower // // boxes, and then extends the collider as we come out of the roll // // we also moderate the Y position of the collider using another of these curves on line 128 // else if (currentBaseState.nameHash == rollState) // { // if(!anim.IsInTransition(0)) // { // if(useCurves) // col.height = anim.GetFloat("ColliderHeight"); // // col.center = new Vector3(0, anim.GetFloat("ColliderY"), 0); // // } // } // IDLE // check if we are at idle, if so, let us Wave! else if (currentBaseState.nameHash == idleState) { if (waveNow) { waveNow = false; anim.SetBool("Wave", true); } } // if we enter the waving state, reset the bool to let us wave again in future if (layer2CurrentState.nameHash == waveState) { anim.SetBool("Wave", false); } }
void FixedUpdate() { // get the speech manager instance if (speechManager == null) { speechManager = SpeechManager.Instance; } if (speechManager != null && speechManager.IsSapiInitialized()) { if (speechManager.IsPhraseRecognized()) { string sPhraseTag = speechManager.GetPhraseTagRecognized(); switch (sPhraseTag) { case "FORWARD": walkSpeed = 0.2f; walkDirection = 0f; break; case "BACK": walkSpeed = -0.2f; walkDirection = 0f; break; case "LEFT": walkDirection = -0.2f; if (walkSpeed == 0f) { walkSpeed = 0.2f; } break; case "RIGHT": walkDirection = 0.2f; if (walkSpeed == 0f) { walkSpeed = 0.2f; } break; case "RUN": walkSpeed = 0.5f; walkDirection = 0f; break; case "STOP": walkSpeed = 0f; walkDirection = 0f; break; case "JUMP": jumpNow = true; walkSpeed = 0.5f; walkDirection = 0f; break; case "HELLO": waveNow = true; walkSpeed = 0.0f; walkDirection = 0f; break; } speechManager.ClearPhraseRecognized(); } } else { walkDirection = Input.GetAxis("Horizontal"); // setup h variable as our horizontal input axis walkSpeed = Input.GetAxis("Vertical"); // setup v variables as our vertical input axis jumpNow = Input.GetButtonDown("Jump"); waveNow = Input.GetButtonDown("Jump"); } anim.SetFloat("Speed", walkSpeed); // set our animator's float parameter 'Speed' equal to the vertical input axis anim.SetFloat("Direction", walkDirection); // set our animator's float parameter 'Direction' equal to the horizontal input axis anim.speed = animSpeed; // set the speed of our animator to the public variable 'animSpeed' anim.SetLookAtWeight(lookWeight); // set the Look At Weight - amount to use look at IK vs using the head's animation currentBaseState = anim.GetCurrentAnimatorStateInfo(0); // set our currentState variable to the current state of the Base Layer (0) of animation if (anim.layerCount == 2) { layer2CurrentState = anim.GetCurrentAnimatorStateInfo(1); // set our layer2CurrentState variable to the current state of the second Layer (1) of animation } // if we are currently in a state called Locomotion (see line 25), then allow Jump input (Space) to set the Jump bool parameter in the Animator to true //if (currentBaseState.nameHash == locoState) //{ // if(jumpNow) // { // jumpNow = false; // anim.SetBool("Jump", true); // } //} // if we are in the jumping state... // else if (currentBaseState.nameHash == jumpState) // { // // ..and not still in transition.. // if(!anim.IsInTransition(0)) // { // if(useCurves) // // ..set the collider height to a float curve in the clip called ColliderHeight // col.height = anim.GetFloat("ColliderHeight"); // // reset the Jump bool so we can jump again, and so that the state does not loop // anim.SetBool("Jump", false); // } // // Raycast down from the center of the character.. // Ray ray = new Ray(transform.position + Vector3.up, -Vector3.up); // RaycastHit hitInfo = new RaycastHit(); // if (Physics.Raycast(ray, out hitInfo)) // { // // ..if distance to the ground is more than 1.75, use Match Target // if (hitInfo.distance > 1.75f) // { // // MatchTarget allows us to take over animation and smoothly transition our character towards a location - the hit point from the ray. // // Here we're telling the Root of the character to only be influenced on the Y axis (MatchTargetWeightMask) and only occur between 0.35 and 0.5 // // of the timeline of our animation clip // anim.MatchTarget(hitInfo.point, Quaternion.identity, AvatarTarget.Root, new MatchTargetWeightMask(new Vector3(0, 1, 0), 0), 0.35f, 0.5f); // } // } //} // check if we are at idle, if so, let us Wave! //else if (currentBaseState.nameHash == idleState) //{ // if(waveNow) // { // waveNow = false; // anim.SetBool("Wave", true); // } //} // if we enter the waving state, reset the bool to let us wave again in future //if(layer2CurrentState.nameHash == waveState) //{ // anim.SetBool("Wave", false); //} }
void Update() { if (speechManager == null) { speechManager = SpeechManager.Instance; } if (speechManager != null && speechManager.IsSapiInitialized()) { if (speechManager.IsPhraseRecognized()) { string sPhraseTag = speechManager.GetPhraseTagRecognized(); switch (sPhraseTag) { case "RECORD": if (saverPlayer) { saverPlayer.StartRecording(); } break; case "PLAY": if (saverPlayer) { saverPlayer.StartPlaying(); } break; case "STOP": if (saverPlayer) { saverPlayer.StopRecordingOrPlaying(); } break; } speechManager.ClearPhraseRecognized(); } } // alternatively, use the keyboard if (Input.GetButtonDown("Jump")) // start or stop recording { if (saverPlayer) { if (!saverPlayer.IsRecording()) { saverPlayer.StartRecording(); } else { saverPlayer.StopRecordingOrPlaying(); } } } if (Input.GetButtonDown("Fire1")) // start or stop playing { if (saverPlayer) { if (!saverPlayer.IsPlaying()) { saverPlayer.StartPlaying(); } else { saverPlayer.StopRecordingOrPlaying(); } } } }