Beispiel #1
0
        public static Vector GetFacePoint(int facePoint)
        {
            Rotation orientation       = GetFaceOrientationRaw();
            Vector   facePointPosition = Rotation.Inverse(orientation) * faceGeometry[facePoint];

            return(facePointPosition);
        }
Beispiel #2
0
        public static Vector GetFacePoint(FaceBone faceBone)
        {
            Rotation orientation       = GetFaceOrientationRaw();
            int      facePoint         = faceBoneIndex[(int)faceBone];
            Vector   facePointPosition = Rotation.Inverse(orientation) * faceGeometry[facePoint] + faceBias[(int)faceBone];

            return(facePointPosition);
        }
Beispiel #3
0
        public static Vector GetNeckLocalFacePoint(int facePoint)
        {
            Rotation faceOrientation = Rotation.AngleAxis(180, Vector.up) * GetFaceOrientation();

            Vector faceTargetPosition = ToWorldPosition(GetFacePosition());
            Vector worldFacePoint     = ToWorldPosition(GetFacePoint(facePoint));
            Vector neckLocalFacePoint = worldFacePoint + faceTargetPosition;

            neckLocalFacePoint = Rotation.Inverse(faceOrientation) * neckLocalFacePoint;
            return(neckLocalFacePoint);
        }
Beispiel #4
0
        public static Rotation GetFacePointOrientation(FaceBone facePoint)
        {
            Rotation faceOrientation    = GetFaceOrientation();
            Vector   facePosition       = GetFacePosition();
            Vector   worldFacePoint     = GetFaceWorldPoint(facePoint);
            Vector   neckLocalFacePoint = worldFacePoint + facePosition;

            Rotation facePointOrientation = Rotation_.FromToRotation(Vector.forward, neckLocalFacePoint);

            facePointOrientation = Rotation.Inverse(faceOrientation) * facePointOrientation;

            return(facePointOrientation);
        }
Beispiel #5
0
        private static Vector GetFacePointRaw(FaceBone faceBone)
        {
            int facePoint = faceBoneIndex[(int)faceBone];

            if (facePoint < 0)
            {
                return(Vector.zero);
            }

            Rotation orientation       = GetFaceOrientationRaw();
            Vector   facePointPosition = Rotation.Inverse(orientation) * faceGeometry[facePoint];

            return(facePointPosition);
        }