Пример #1
0
 /// <summary>
 /// Prepare  references
 /// </summary>
 void InitialSetup()
 {
     eyesBone = anim.BoneController.GetBone("両目");
     eyesBone.FollowAnimation = false;
     morphes           = mesh.Morphes;
     EyeLocationX      = 0;
     EyeLocationY      = 0;
     DefaultExpression = new NPCExpression("Def");
 }
Пример #2
0
        internal NPCExpression Clone()
        {
            var val = new NPCExpression(Name);

            val.canSpeak       = canSpeak;
            val.eyeLocationX   = eyeLocationX;
            val.eyeLocationY   = eyeLocationY;
            val.expressionList = expressionList;

            return(val);
        }
Пример #3
0
        /// <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);
            }
        }
Пример #4
0
        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);
        }