Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using System.Collections;
- public class BlendShapeControllerTest : MonoBehaviour
- {
- public Transform source;
- public Transform target;
- SkinnedMeshRenderer skinnedMeshRenderer;
- float blendVal1 = 0f;
- float blendVal2 = 50f;
- float blendVal3 = 100f;
- float mouthspeed = .1f;
- float speed = .1f;
- bool up2 = true;
- bool up3 = true;
- bool other = false;
- int state = -1;
- void Awake ()
- {
- skinnedMeshRenderer = GetComponent<SkinnedMeshRenderer> ();
- }
- void Start ()
- {
- skinnedMeshRenderer.SetBlendShapeWeight (34, 50f); //tongue thinner
- }
- void Update ()
- {
- //modify lick speed by dpad input
- float value = Input.GetAxis("dpad") / 1000;
- if( Input.GetKey(KeyCode.L) )
- {
- value = .001f;
- }
- else if( Input.GetKey(KeyCode.K) )
- {
- value = -.001f;
- }
- if (speed > .01f && value < 0f)
- {
- speed += value;
- }
- else if (speed < .4f && value > 0f)
- {
- speed += value;
- }
- float distance = Vector3.Distance(source.position, target.position);
- if (distance > 1.1f)
- {
- if(state != 0)
- {
- state = 0;
- //skinnedMeshRenderer.SetBlendShapeWeight (1, 0f); //mouth open
- skinnedMeshRenderer.SetBlendShapeWeight (9, 75f); //smile
- skinnedMeshRenderer.SetBlendShapeWeight (22, 0f); //eye lids
- skinnedMeshRenderer.SetBlendShapeWeight (24, 0f); //eye brows
- skinnedMeshRenderer.SetBlendShapeWeight (31, 0f); //tongue out
- //skinnedMeshRenderer.SetBlendShapeWeight (32, 30f); //tongue up
- skinnedMeshRenderer.SetBlendShapeWeight (41, 0f); //blush
- skinnedMeshRenderer.SetBlendShapeWeight (32, 0f); //tongue up
- skinnedMeshRenderer.SetBlendShapeWeight (33, 0f); //tongue lick
- }
- }
- else if (distance > .8f)
- {
- if(state != 1)
- {
- state = 1;
- //skinnedMeshRenderer.SetBlendShapeWeight (1, 100f); //mouth open
- skinnedMeshRenderer.SetBlendShapeWeight (9, 75f); //smile
- skinnedMeshRenderer.SetBlendShapeWeight (22, 100f); //eye lids
- skinnedMeshRenderer.SetBlendShapeWeight (24, 100f); //eye brows
- skinnedMeshRenderer.SetBlendShapeWeight (31, 100f); //tongue out
- //skinnedMeshRenderer.SetBlendShapeWeight (32, 30f); //tongue up
- skinnedMeshRenderer.SetBlendShapeWeight (41, 100f); //blush
- }
- }
- else
- {
- if(state != 2)
- {
- state = 2;
- //skinnedMeshRenderer.SetBlendShapeWeight (1, 100f); //mouth open
- skinnedMeshRenderer.SetBlendShapeWeight (9, 75f); //smile
- skinnedMeshRenderer.SetBlendShapeWeight (22, 100f); //eye lids
- skinnedMeshRenderer.SetBlendShapeWeight (24, 100f); //eye brows
- skinnedMeshRenderer.SetBlendShapeWeight (31, 100f); //tongue out
- //skinnedMeshRenderer.SetBlendShapeWeight (32, 30f); //tongue up
- skinnedMeshRenderer.SetBlendShapeWeight (41, 100f); //blush
- }
- }
- //mouth open/close animation anytime players is within distance
- if(state != 0)
- {
- if( blendVal1 < 100f)
- {
- blendVal1 += mouthspeed / Time.deltaTime;
- skinnedMeshRenderer.SetBlendShapeWeight (1, blendVal1); //mouth open
- }
- }
- else
- {
- if( blendVal1 > 0f)
- {
- blendVal1 -= mouthspeed / Time.deltaTime;
- skinnedMeshRenderer.SetBlendShapeWeight (1, blendVal1); //mouth open
- }
- }
- if(state == 2) //licking
- {
- if (up2)
- {
- blendVal2 += speed / Time.deltaTime;
- if(blendVal2 >= 100f)
- {
- up2 = false;
- }
- }
- else
- {
- blendVal2 -= speed / Time.deltaTime;
- if(blendVal2 <= 0f)
- {
- up2 = true;
- }
- }
- if (up3)
- {
- blendVal3 += speed / Time.deltaTime;
- if(blendVal3 >= 100f)
- {
- up3 = false;
- }
- }
- else
- {
- blendVal3 -= speed / Time.deltaTime;
- if(blendVal3 <= 0f)
- {
- up3 = true;
- }
- }
- if (other)
- {
- //skinnedMeshRenderer.SetBlendShapeWeight (31, blendVal1); //tongue out
- skinnedMeshRenderer.SetBlendShapeWeight (32, blendVal2); //tongue up
- skinnedMeshRenderer.SetBlendShapeWeight (33, blendVal3); //tongue lick
- other = false;
- }
- else
- {
- other = true;
- }
- }
- else if(state == 3) //sucking
- {
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement