SecretAnorak

UMA 101 - Mood Script from Episode 14

Mar 15th, 2018
2,180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 7.02 KB | None | 0 0
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UMA;
  5. using UMA.CharacterSystem;
  6. using UMA.PoseTools;
  7.  
  8. public class UMAMoodSlider : MonoBehaviour {
  9.    
  10.     private DynamicCharacterAvatar avatar;
  11.     private ExpressionPlayer expression;
  12.     private bool connected = false;
  13.    
  14.     [Range(0,4)]
  15.     public int mood;
  16.    
  17.     void OnEnable()
  18.     {
  19.         avatar = GetComponent<DynamicCharacterAvatar>();
  20.         avatar.CharacterCreated.AddListener(OnCreated);
  21.     }
  22.    
  23.     void OnDisable()
  24.     {
  25.         avatar.CharacterCreated.RemoveListener(OnCreated);
  26.     }
  27.    
  28.     public void OnCreated(UMAData data)
  29.     {
  30.         expression = GetComponent<ExpressionPlayer>();
  31.         expression.enableBlinking = true;
  32.         expression.enableSaccades = true;
  33.         connected = true;
  34.     }
  35.    
  36.     void Update()
  37.     {
  38.         if(connected)
  39.         {
  40.             float delta = 10 * Time.deltaTime;
  41.             switch(mood)
  42.             {
  43.             case 0:
  44.                 expression.leftMouthSmile_Frown = Mathf.Lerp(expression.leftMouthSmile_Frown,0,delta);
  45.                 expression.rightMouthSmile_Frown = Mathf.Lerp(expression.rightMouthSmile_Frown,0,delta);
  46.                 expression.midBrowUp_Down = Mathf.Lerp(expression.midBrowUp_Down,0,delta);
  47.                 expression.leftBrowUp_Down = Mathf.Lerp(expression.leftBrowUp_Down,0,delta);
  48.                 expression.rightBrowUp_Down = Mathf.Lerp(expression.rightBrowUp_Down,0,delta);
  49.                 expression.rightUpperLipUp_Down = Mathf.Lerp(expression.rightUpperLipUp_Down,0,delta);
  50.                 expression.leftUpperLipUp_Down = Mathf.Lerp(expression.leftUpperLipUp_Down,0,delta);
  51.                 expression.rightLowerLipUp_Down = Mathf.Lerp(expression.rightLowerLipUp_Down,0,delta);
  52.                 expression.leftLowerLipUp_Down = Mathf.Lerp(expression.leftLowerLipUp_Down,0,delta);
  53.                 expression.mouthNarrow_Pucker = Mathf.Lerp(expression.mouthNarrow_Pucker,0,delta);
  54.                 expression.jawOpen_Close = Mathf.Lerp(expression.jawOpen_Close,0,delta);
  55.                 expression.noseSneer = Mathf.Lerp(expression.noseSneer,0,delta);
  56.                 expression.leftEyeOpen_Close = Mathf.Lerp(expression.leftEyeOpen_Close,0,delta);
  57.                 expression.rightEyeOpen_Close = Mathf.Lerp(expression.rightEyeOpen_Close,0,delta);
  58.                 break;
  59.             case 1:
  60.                 expression.leftMouthSmile_Frown = Mathf.Lerp(expression.leftMouthSmile_Frown,0.7f,delta);
  61.                 expression.rightMouthSmile_Frown = Mathf.Lerp(expression.rightMouthSmile_Frown,0.7f,delta);
  62.                 expression.midBrowUp_Down = Mathf.Lerp(expression.midBrowUp_Down,-0.7f,delta);
  63.                 expression.leftBrowUp_Down = Mathf.Lerp(expression.leftBrowUp_Down,0f,delta);
  64.                 expression.rightBrowUp_Down = Mathf.Lerp(expression.rightBrowUp_Down,0f,delta);
  65.                 expression.rightUpperLipUp_Down = Mathf.Lerp(expression.rightUpperLipUp_Down,0f,delta);
  66.                 expression.leftUpperLipUp_Down = Mathf.Lerp(expression.leftUpperLipUp_Down,0f,delta);
  67.                 expression.rightLowerLipUp_Down = Mathf.Lerp(expression.rightLowerLipUp_Down,-0f,delta);
  68.                 expression.leftLowerLipUp_Down = Mathf.Lerp(expression.leftLowerLipUp_Down,-0f,delta);
  69.                 expression.mouthNarrow_Pucker = Mathf.Lerp(expression.mouthNarrow_Pucker,0f,delta);
  70.                 expression.jawOpen_Close = Mathf.Lerp(expression.jawOpen_Close,0f,delta);
  71.                 expression.noseSneer = Mathf.Lerp(expression.noseSneer,0.1f,delta);
  72.                 expression.leftEyeOpen_Close = Mathf.Lerp(expression.leftEyeOpen_Close,-0.2f,delta);
  73.                 expression.rightEyeOpen_Close = Mathf.Lerp(expression.rightEyeOpen_Close,-0.2f,delta);
  74.                 break;
  75.             case 2:
  76.                 expression.leftMouthSmile_Frown = Mathf.Lerp(expression.leftMouthSmile_Frown,-0.8f,delta);
  77.                 expression.rightMouthSmile_Frown = Mathf.Lerp(expression.rightMouthSmile_Frown,-0.8f,delta);
  78.                 expression.midBrowUp_Down = Mathf.Lerp(expression.midBrowUp_Down,0.7f,delta);
  79.                 expression.leftBrowUp_Down = Mathf.Lerp(expression.leftBrowUp_Down,-0.3f,delta);
  80.                 expression.rightBrowUp_Down = Mathf.Lerp(expression.rightBrowUp_Down,-0.3f,delta);
  81.                 expression.rightUpperLipUp_Down = Mathf.Lerp(expression.rightUpperLipUp_Down,0f,delta);
  82.                 expression.leftUpperLipUp_Down = Mathf.Lerp(expression.leftUpperLipUp_Down,0,delta);
  83.                 expression.rightLowerLipUp_Down = Mathf.Lerp(expression.rightLowerLipUp_Down,0f,delta);
  84.                 expression.leftLowerLipUp_Down = Mathf.Lerp(expression.leftLowerLipUp_Down,0f,delta);
  85.                 expression.mouthNarrow_Pucker = Mathf.Lerp(expression.mouthNarrow_Pucker,-0.7f,delta);
  86.                 expression.jawOpen_Close = Mathf.Lerp(expression.jawOpen_Close,0f,delta);
  87.                 expression.noseSneer = Mathf.Lerp(expression.noseSneer,-0.1f,delta);
  88.                 expression.leftEyeOpen_Close = Mathf.Lerp(expression.leftEyeOpen_Close,0.5f,delta);
  89.                 expression.rightEyeOpen_Close = Mathf.Lerp(expression.rightEyeOpen_Close,0.5f,delta);
  90.                 break;
  91.             case 3:
  92.                 expression.leftMouthSmile_Frown = Mathf.Lerp(expression.leftMouthSmile_Frown,-0.3f,delta);
  93.                 expression.rightMouthSmile_Frown = Mathf.Lerp(expression.rightMouthSmile_Frown,-0.3f,delta);
  94.                 expression.midBrowUp_Down = Mathf.Lerp(expression.midBrowUp_Down,-1f,delta);
  95.                 expression.leftBrowUp_Down = Mathf.Lerp(expression.leftBrowUp_Down,1f,delta);
  96.                 expression.rightBrowUp_Down = Mathf.Lerp(expression.rightBrowUp_Down,1f,delta);
  97.                 expression.rightUpperLipUp_Down = Mathf.Lerp(expression.rightUpperLipUp_Down,0.7f,delta);
  98.                 expression.leftUpperLipUp_Down = Mathf.Lerp(expression.leftUpperLipUp_Down,0.7f,delta);
  99.                 expression.rightLowerLipUp_Down = Mathf.Lerp(expression.rightLowerLipUp_Down,-0.7f,delta);
  100.                 expression.leftLowerLipUp_Down = Mathf.Lerp(expression.leftLowerLipUp_Down,-0.7f,delta);
  101.                 expression.mouthNarrow_Pucker = Mathf.Lerp(expression.mouthNarrow_Pucker,0.7f,delta);
  102.                 expression.jawOpen_Close = Mathf.Lerp(expression.jawOpen_Close,-0.3f,delta);
  103.                 expression.noseSneer = Mathf.Lerp(expression.noseSneer,0.3f,delta);
  104.                 expression.leftEyeOpen_Close = Mathf.Lerp(expression.leftEyeOpen_Close,-0.2f,delta);
  105.                 expression.rightEyeOpen_Close = Mathf.Lerp(expression.rightEyeOpen_Close,-0.2f,delta);
  106.                 break;
  107.             case 4:
  108.                 expression.leftMouthSmile_Frown = Mathf.Lerp(expression.leftMouthSmile_Frown,0f,delta);
  109.                 expression.rightMouthSmile_Frown = Mathf.Lerp(expression.rightMouthSmile_Frown,0f,delta);
  110.                 expression.midBrowUp_Down = Mathf.Lerp(expression.midBrowUp_Down,1f,delta);
  111.                 expression.leftBrowUp_Down = Mathf.Lerp(expression.leftBrowUp_Down,1f,delta);
  112.                 expression.rightBrowUp_Down = Mathf.Lerp(expression.rightBrowUp_Down,1f,delta);
  113.                 expression.rightUpperLipUp_Down = Mathf.Lerp(expression.rightUpperLipUp_Down,0f,delta);
  114.                 expression.leftUpperLipUp_Down = Mathf.Lerp(expression.leftUpperLipUp_Down,0f,delta);
  115.                 expression.rightLowerLipUp_Down = Mathf.Lerp(expression.rightLowerLipUp_Down,-0f,delta);
  116.                 expression.leftLowerLipUp_Down = Mathf.Lerp(expression.leftLowerLipUp_Down,-0f,delta);
  117.                 expression.mouthNarrow_Pucker = Mathf.Lerp(expression.mouthNarrow_Pucker,-1f,delta);
  118.                 expression.jawOpen_Close = Mathf.Lerp(expression.jawOpen_Close,0.8f,delta);
  119.                 expression.noseSneer = Mathf.Lerp(expression.noseSneer,-0.3f,delta);
  120.                 expression.leftEyeOpen_Close = Mathf.Lerp(expression.leftEyeOpen_Close,1f,delta);
  121.                 expression.rightEyeOpen_Close = Mathf.Lerp(expression.rightEyeOpen_Close,1f,delta);
  122.                 break;
  123.             default:
  124.                 break;
  125.             }
  126.         }
  127.     }
  128. }
Advertisement
Add Comment
Please, Sign In to add comment