public static Vector GetFacePoint(int facePoint) { Rotation orientation = GetFaceOrientationRaw(); Vector facePointPosition = Rotation.Inverse(orientation) * faceGeometry[facePoint]; return(facePointPosition); }
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); }
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); }
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); }
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); }