/// <summary> /// Prepare references /// </summary> void InitialSetup() { eyesBone = anim.BoneController.GetBone("両目"); eyesBone.FollowAnimation = false; morphes = mesh.Morphes; EyeLocationX = 0; EyeLocationY = 0; DefaultExpression = new NPCExpression("Def"); }
internal NPCExpression Clone() { var val = new NPCExpression(Name); val.canSpeak = canSpeak; val.eyeLocationX = eyeLocationX; val.eyeLocationY = eyeLocationY; val.expressionList = expressionList; return(val); }
/// <summary> /// /// </summary> /// <param name="transit"> transit time in seconds</param> public void ChangeEspression(NPCExpression expression, float transit = 0) { changeMorphs.Clear(); GetExpression = expression.Clone(); //get values to change foreach (var morph in morphes) { if (morph.MorphDegree != 0) { //reset morph to zero if (!GetExpression.expressionList.ContainsKey(morph.Name)) { GetExpression.SetExpression(morph.Name, 0); } } } //get morph pointers foreach (var morphName in GetExpression.expressionList.Keys) { var morph = Array.Find(morphes, (a) => a.Name == morphName); if (morph != null) { changeMorphs.Add(morph, GetExpression.expressionList[morphName]); } else { logger.Warning(String.Format("Morph {0} not found in model", morphName)); } } if (transit > 0) { timer = transit; } else { timer = 1; PerformExpressionChange(1); } }
void PrepareExpressions(Animator rigged) { var meshDrawer = Node.GetComponent <MeshDrawer>(); faceController = new NPCFaceController(meshDrawer, rigged); var expression = new NPCExpression("Default"); expressionDict.Add(1, expression); expression = new NPCExpression("Smile"); expression.SetExpression("笑い", 0.7f); expression.SetExpression("照れ", 1); expressionDict.Add(2, expression); expression = new NPCExpression("Aspire"); expression.SetExpression("びっくり2", 1f); expression.SetExpression("HL無し", 1); expression.SetExpression("ハート目3", 1); expression.SetExpression("デフォ", 1); expression.SetExpression("照れ", 1); expression.SetExpression("照れ2", 0.9f); expressionDict.Add(3, expression); expression = new NPCExpression("Blush"); expression.SetExpression("にこり", 1f); expression.SetExpression("照れ", 1); expression.SetExpression("照れ2", 0.9f); expression.SetExpression("まばたき", 0.3f); expressionDict.Add(4, expression); expression = new NPCExpression("Atronished"); expression.SetExpression("びっくり2", 1f); expression.SetExpression("瞳小", 0.3f); expression.SetExpression("むぅ", 1f); expression.SetExpression("照れ", 1); expressionDict.Add(5, expression); expression = new NPCExpression("Fuu"); expression.SetExpression("困る", 1f); expression.SetExpression("まばたき", 0.3f); expression.SetExpression("ぷくー", 0.9f); expressionDict.Add(6, expression); expression = new NPCExpression("Not"); expression.SetExpression("怒りみけん", 1f); expression.SetExpression("むみ", 1f); expression.SetExpression("むぅ", 1f); expression.SetExpression("照れ2", 0.9f); expression.SetExpression("照れ", 1); expressionDict.Add(7, expression); expression = new NPCExpression("Tired"); expression.SetExpression("ジト目", 1f); expression.SetExpression("無表情", 1f); expression.SetExpression("汗右", 1f); expressionDict.Add(8, expression); expression = new NPCExpression("Cry"); expression.SetExpression("悲しい", 1); expression.SetExpression("涙2", 1f); expression.SetExpression("うるうる", 1f); expression.SetExpression("まばたき", 0.3f); expression.SetExpression("無表情", 1f); //expression.SetExpression("照れ", 1); expressionDict.Add(9, expression); expression = new NPCExpression("Exhausterd"); expression.SetExpression("悲しい", 1); expression.SetExpression("汗右", 1f); expression.SetExpression("汗", 1f); expression.SetExpression("半目", 1f); expression.SetExpression("無表情", 1f); //expression.SetExpression("照れ", 1); expressionDict.Add(10, expression); }