You have to handle the input like a vector in 2D space. Then transform it to the characters local space. Fortunately this can be done very easily in 2D space. The animation should then be blended using the transformed input vector.
float x = Input.GetAxis("Horizontal");
float y = Input.GetAxis("Vertical");
Vector3 worldInput = new Vector3(x, y, 0);
Vector3 localInput = transform.InverseTransformDirection(worldInput);