Example #1
0
        public PersonalityControl(WizardManager inputWizardManager, PersonalityComponent inputComponent)
        {
            wm      = inputWizardManager;
            Visited = false;

            lastBackground = "";

            currentComponent        = inputComponent;
            choices                 = new List <string>();
            currentlyDisplayedIndex = 0;

            InitializeComponent();
            initializeContent();
        }
Example #2
0
    private void ComputeEffort(PersonalityComponent p)
    {
        for (int i = 0; i < 4; i++)
        {
            p.Effort[i] = 0;
            float maxP = 0;
            float minP = 0;
            for (int j = 0; j < 5; j++)
            {
                float val = _significantEfforts[i][j] * p.Personality[j];
                if (val > maxP)
                {
                    maxP = val;
                }
                if (val < minP)
                {
                    minP = val;
                }
            }

            p.Effort[i] = maxP + minP;
        }
    }
 public void SetUp()
 {
     _component = (PersonalityComponent)Game.Player.GetComponent <PersonalityComponent>();
 }
Example #4
0
    public void MapPersonalityToMotion(PersonalityComponent p)   //, DriveParams[] driveParams) {
    {
        ComputeEffort(p);

        for (int i = 0; i < _motionEffortCoefs[0].Length; i++)
        {
            float param = _motionEffortCoefs[0][i] + p.Effort[0] * _motionEffortCoefs[1][i] +
                          p.Effort[1] * _motionEffortCoefs[2][i] + p.Effort[2] * _motionEffortCoefs[3][i] + p.Effort[3] * _motionEffortCoefs[4][i];

            //We multiply time-related parameters by animLength * fps /1.625 * 24  considering pointing animation's length and fps and current animations length and fps
            float timeScale = (p.GetComponent <AnimationInfo>().AnimLength *p.GetComponent <AnimationInfo>().Fps) / (1.625f * 24);

            float timeScale2 = p.GetComponent <AnimationInfo>().AnimLength / 1.625f;
            if (p.GetComponent <AnimationInfo>().AnimName.ToUpper().Contains("CONVERS"))
            {
                timeScale2 /= 6f;
            }
            //float timeScale2 = timeScale;
            //Apply constraints

            if (i == (int)MotionCoef.Speed)
            {
                if (p.GetComponent <AnimationInfo>().AnimName.ToUpper().Contains("CONVERS"))
                {
                    p.GetComponent <AnimationInfo>().AnimSpeed = param.Constrain(0.7f, 0.8f);
                }
                else if (p.GetComponent <AnimationInfo>().AnimName.ToUpper().Contains("FOOTBALL"))
                {
                    p.GetComponent <AnimationInfo>().AnimSpeed = 0.7f;
                }
                else if (p.GetComponent <AnimationInfo>().AnimName.ToUpper().Contains("WALK"))
                {
                    p.GetComponent <AnimationInfo>().AnimSpeed = param;
                }
                //  p.GetComponent<AnimationInfo>().AnimSpeed = param.Map(0.7f, 1.5f);
                else
                {
                    p.GetComponent <AnimationInfo>().AnimSpeed = param.Constrain(0.5f, 1f);
                }
                // p.GetComponent<AnimationInfo>().AnimSpeed = param.Constrain(0.7f, 0.8f);
                //p.GetComponent<AnimationInfo>().AnimSpeed = param.Constrain(0.7f, 0.8f);
            }

            else if (i == (int)MotionCoef.V0)
            {
                p.GetComponent <AnimationInfo>().V0 = param.Constrain(0, 1);
            }
            else if (i == (int)MotionCoef.V1)
            {
                p.GetComponent <AnimationInfo>().V1 = param.Constrain(0, 1);
            }
            else if (i == (int)MotionCoef.Ti)
            {
                p.GetComponent <AnimationInfo>().Ti = (0.5f - (0.5f - param) / timeScale).Constrain(0, 1); //need to scale //param.Constrain(0, 1);
            }
            else if (i == (int)MotionCoef.Texp)
            {
                p.GetComponent <AnimationInfo>().Texp = param.Constrain(0);
            }
            else if (i == (int)MotionCoef.GoalThreshold)
            {
                //determines goal frequency
                //Adjust with new scale

                p.GetComponent <AnimationInfo>().GoalThreshold = param.Constrain(0f, 1f);


                p.GetComponent <AnimationInfo>().InitKeyPoints();
            }

            else if (i == (int)MotionCoef.TVal)
            {
                p.GetComponent <AnimationInfo>().Tval = param.Constrain(-1, 1);
                p.GetComponent <AnimationInfo>().InitInterpolators(p.GetComponent <AnimationInfo>().Tval,
                                                                   p.GetComponent <AnimationInfo>().Continuity, 0);
            }

            else if (i == (int)MotionCoef.T0)
            {
                p.GetComponent <AnimationInfo>().T0 = (param / timeScale).Constrain(0, p.GetComponent <AnimationInfo>().Ti);
            }
            else if (i == (int)MotionCoef.T1)
            {
                p.GetComponent <AnimationInfo>().T1 = (1 - (1 - param) / timeScale).Constrain(p.GetComponent <AnimationInfo>().Ti, 1); //need to scale
            }
            else if (i == (int)MotionCoef.HrMag)
            {
                p.GetComponent <IKAnimator>().HrMag = param.Constrain(-0.8f, 0.8f);
            }
            else if (i == (int)MotionCoef.HSign)
            {
                if (param < 0)
                {
                    param = -1;
                }
                else if (param > 0)
                {
                    param = 1;
                }
                p.GetComponent <IKAnimator>().HrMag = Mathf.Abs(p.GetComponent <IKAnimator>().HrMag) * param;
                //hrmag comes first
            }
            else if (i == (int)MotionCoef.HfMag)
            {
                p.GetComponent <IKAnimator>().HfMag = (param * timeScale2).Constrain(0);
            }
            else if (i == (int)MotionCoef.SquashMag)
            {
                p.GetComponent <IKAnimator>().SquashMag = param.Constrain(0, 1);
            }
            else if (i == (int)MotionCoef.WbMag)
            {
                p.GetComponent <FlourishAnimator>().WbMag = param.Constrain(-1, 1);
            }
            else if (i == (int)MotionCoef.WxMag)
            {
                p.GetComponent <FlourishAnimator>().WxMag = param.Constrain(-1.8f, 1.8f);
            }
            else if (i == (int)MotionCoef.WtMag)
            {
                p.GetComponent <FlourishAnimator>().WtMag = param.Constrain(0, 1.4f);
            }
            else if (i == (int)MotionCoef.WfMag)
            {
                p.GetComponent <FlourishAnimator>().WfMag = (param * timeScale2).Constrain(0);
            }
            else if (i == (int)MotionCoef.EtMag)
            {
                p.GetComponent <FlourishAnimator>().EtMag = param.Constrain(0, 1.4f);
            }
            else if (i == (int)MotionCoef.EfMag)
            {
                p.GetComponent <FlourishAnimator>().EfMag = (param * timeScale2).Constrain(0);
            }
            else if (i == (int)MotionCoef.DMag)
            {
                p.GetComponent <FlourishAnimator>().DMag = param.Constrain(0, 1.4f);
            }
            else if (i == (int)MotionCoef.TrMag)
            {
                p.GetComponent <FlourishAnimator>().TrMag = param.Constrain(-1, 1);
            }
            else if (i == (int)MotionCoef.TfMag)
            {
                p.GetComponent <FlourishAnimator>().TfMag = (param * timeScale2).Constrain(0); //normalize to the animation range
            }
            else if (i == (int)MotionCoef.EncSpr0)
            {
                p.GetComponent <IKAnimator>().EncSpr[0] = param.Constrain(-1, 1);
            }
            else if (i == (int)MotionCoef.SinRis0)
            {
                p.GetComponent <IKAnimator>().SinRis[0] = param.Constrain(-1, 1);
            }
            else if (i == (int)MotionCoef.RetAdv0)
            {
                p.GetComponent <IKAnimator>().RetAdv[0] = param.Constrain(-1, 1);
            }
            else if (i == (int)MotionCoef.EncSpr1)
            {
                p.GetComponent <IKAnimator>().EncSpr[1] = param.Constrain(-1, 1);
            }
            else if (i == (int)MotionCoef.SinRis1)
            {
                p.GetComponent <IKAnimator>().SinRis[1] = param.Constrain(-1, 1);
            }
            else if (i == (int)MotionCoef.RetAdv1)
            {
                p.GetComponent <IKAnimator>().RetAdv[1] = param.Constrain(-1, 1);
            }
            else if (i == (int)MotionCoef.EncSpr2)
            {
                p.GetComponent <IKAnimator>().EncSpr[2] = param.Constrain(-1, 1);
            }
            else if (i == (int)MotionCoef.SinRis2)
            {
                p.GetComponent <IKAnimator>().SinRis[2] = param.Constrain(-1, 1);
            }
            else if (i == (int)MotionCoef.RetAdv2)
            {
                p.GetComponent <IKAnimator>().RetAdv[2] = param.Constrain(-1, 1);
            }


            else if (i == (int)MotionCoef.Continuity)
            {
                p.GetComponent <AnimationInfo>().Continuity = param.Constrain(-1, 1);
                p.GetComponent <AnimationInfo>().InitInterpolators(p.GetComponent <AnimationInfo>().Tval,
                                                                   p.GetComponent <AnimationInfo>().Continuity, 0);
            }


            else if (i == (int)MotionCoef.Arm0X)
            {
                p.GetComponent <AnimationInfo>().Hor = param.Constrain(-1, 1);
                p.GetComponent <AnimationInfo>().UpdateKeypointsByShape(0); //Update keypoints
            }
            else if (i == (int)MotionCoef.Arm0Y)
            {
                p.GetComponent <AnimationInfo>().Ver = param.Constrain(-1, 1);
                p.GetComponent <AnimationInfo>().UpdateKeypointsByShape(0); //Update keypoints
            }
            else if (i == (int)MotionCoef.Arm0Z)
            {
                p.GetComponent <AnimationInfo>().Sag = param.Constrain(-1, 1);
                p.GetComponent <AnimationInfo>().UpdateKeypointsByShape(0); //Update keypoints
            }
            else if (i == (int)MotionCoef.Arm1X)
            {
                p.GetComponent <AnimationInfo>().Hor = param.Constrain(-1, 1);
                p.GetComponent <AnimationInfo>().UpdateKeypointsByShape(1); //Update keypoints
            }
            else if (i == (int)MotionCoef.Arm1Y)
            {
                p.GetComponent <AnimationInfo>().Ver = param.Constrain(-1, 1);
                p.GetComponent <AnimationInfo>().UpdateKeypointsByShape(1); //Update keypoints
            }

            else if (i == (int)MotionCoef.Arm1Z)
            {
                p.GetComponent <AnimationInfo>().Sag = param.Constrain(-1, 1);
                p.GetComponent <AnimationInfo>().UpdateKeypointsByShape(1); //Update keypoints
            }

            else if (i == (int)MotionCoef.ShapeTi)
            {
                p.GetComponent <IKAnimator>().ShapeTi = param.Constrain(0, 1);
            }

            else if (i == (int)MotionCoef.ExtraGoal)
            {
                p.GetComponent <AnimationInfo>().ExtraGoal = Mathf.RoundToInt(param);
                p.GetComponent <AnimationInfo>().InitKeyPoints();
            }
            else if (i == (int)MotionCoef.UseCurveKeys)
            {
                p.GetComponent <AnimationInfo>().UseCurveKeys = Mathf.RoundToInt(param);
                p.GetComponent <AnimationInfo>().InitKeyPoints();
            }
            else if (i == (int)MotionCoef.FixedTarget)
            {
                p.GetComponent <IKAnimator>().FixedTarget = Mathf.RoundToInt(param);
            }
            else if (i == (int)MotionCoef.SquashF)
            {
                p.GetComponent <IKAnimator>().SquashF = (param * timeScale2).Constrain(0);
            }
        }
    }