public void CreatePosition(Vector3 origin, Vector3 moveDir, bool isMid) { delta = Time.deltaTime; HandleAnim(moveDir, isMid); //if (!isMid) //{ // UpdateGoals(moveDir); // prevMoveDir = moveDir; //} //else { // UpdateGoals(prevMoveDir); //} UpdateGoals(moveDir); prevMoveDir = moveDir; IKSnapshot ik = CreateSnapShot(origin); CopySnapshot(ref current, ik); SetIKPosition(isMid, goals.lf, current.lf, AvatarIKGoal.LeftFoot); SetIKPosition(isMid, goals.lh, current.lh, AvatarIKGoal.LeftHand); SetIKPosition(isMid, goals.rf, current.rf, AvatarIKGoal.RightFoot); SetIKPosition(isMid, goals.rh, current.rh, AvatarIKGoal.RightHand); UpdateIKWeight(AvatarIKGoal.LeftFoot, 1); UpdateIKWeight(AvatarIKGoal.LeftHand, 1); UpdateIKWeight(AvatarIKGoal.RightFoot, 1); UpdateIKWeight(AvatarIKGoal.RightHand, 1); }
public void CopySnapshot(ref IKSnapshot to, IKSnapshot from) { to.rh = from.rh; to.lh = from.lh; to.rf = from.rf; to.lf = from.lf; }
public IKSnapshot CreateSnapShot(Vector3 o) { IKSnapshot r = new IKSnapshot(); Vector3 _lh = localToWorld(ikBase.lh); r.lh = GetPosActual(_lh, AvatarIKGoal.LeftHand); Vector3 _rh = localToWorld(ikBase.rh); r.rh = GetPosActual(_rh, AvatarIKGoal.RightHand); //r.rh = localToWorld(ikBase.rh); Vector3 _lf = localToWorld(ikBase.lf); r.lf = GetPosActual(_lf, AvatarIKGoal.LeftFoot); //r.lf = localToWorld(ikBase.lf); Vector3 _rf = localToWorld(ikBase.rf); r.rf = GetPosActual(_rf, AvatarIKGoal.RightFoot); return(r); }
public void Init(FreeClimb c, Transform helper) { anim = c.anim; ikBase = c.baseIKSnapshot; h = helper; }