ID:2300387
 
(See the best response by Lummox JR.)
So I made a projectile system where players can shoot arrows from a turf to another and simulated the parabolic arc. Thing is I cant rotate my arrows to match the velocity direction. I know the rotation values in 3D but I need a way to transform them in isometric projection. or anything that works

eg. The arrow 3D Rotation on frame 1 is (45,0,45) how can I get the rotation in a 2D plane
animate() and matrices friend
Best response
Assuming you're okay simulating the arrow's rotation on the logical Z axis by just squashing it on the visual X axis, what you want should be doable; it's just a question of working out the math.

Let's say your arrow icon points from left to right, and the direction it's traveling in logical coordinates (map coordinates, not visually on the screen) is vector V.

The isometric transform for a given 3D vector into 3D visual coords is as follows (hoping I got the math right):

s = 1/sqrt(2)
t = sqrt(3)/2
u = 1/2

|x|   | s s 0 0|   |1 0  0 0|
|y| × |-s s 0 0| × |0 t -u 0|
|z|   | 0 0 1 0|   |0 u  t 0|
|1|   | 0 0 0 1|   |0 0  0 1|

|x|   | s st -su 0|
|y| × |-s st -su 0|
|z|   | 0  u  t  0|
|1|   | 0  0  0  1|


And the conversion of that vector to screen coords is:
s = 1/sqrt(2)

|x|
|y| × |s 0 0 0|
|z|   |0 0 s 0|
|1|

Which is a fancier way of saying you just take the 3D X and Z, divided by sqrt(2), to be your screen X and Y.

Starting with a unit vector V/|V| representing only the direction of the arrow, that can get you a X and Y screen values. Those in turn can be used to calculate how a 2D arrow icon needs to be transformed to give you a reasonable facsimile of a 3D transform.

At the moment I'm a little too foggy to figure out the remaining calculation, but at least I've taken you part of the way.
Thanks for the help, I've searched online as well but there are a ton of systems and everywhere I find a new formula.

I've managed to find the 3d location and rotation in the 3 axes by simulating gravity and initial velocity.

And then to achieve the movement in 2D space I just added the 3DZ to 2DY.

Its not ideal but works now about the rotation I have no problem simulating the rotation on z axis its the skewing stuff that I cant simulate

https://www.youtube.com/watch?v=AeFbgDxJuxw
Here is a link of what I'm trying to achieve, thanks for your help anyways :)
Well at last I nailed it it was actually a lot simpler than I thought.

For the movement I just projected it back and forth using
Sx=x+y
Sy=-(x/2) + (y/2) + z

and then I just used atan2(previous_Sy-curent_Sy,previous_Sx-curent_Sx).

Camera settings are 45 rotation for Z axis and 60 for X axis