Heya I purchased the Blueprint Quaternions Library and willing to “PAY” someone to help out, However I’m not sure if Quaternions are what we need.
it doesn’t seem to do what I was hoping, which is perfectly ok, I’m sure we can use it for other things! Perhaps Its because i lack the knowledge how to put it to work for our cause.
When I print the Numbers data to screen, it seems to have the same issue as the Euler Angles where the numbers data jumps all over the place, but just adds in a 4th axis.
Anyways Below is a copy paste from another Forum post to outline the situation, and again, I’m also willing to pay someone to figure things out for us.
Pretty Desperate and at wits end with this whole thing.
[SIZE=13px][SIZE=16px]Our team has Been working on and off this past year to figure a way around a rotation related issue we have been having.
Now that our game has some major progress, this limitation is really starting to hold us back from finishing up a few important features for our game.
Anyways, We need to get Rotational data from XY&Z from 0 to360 and or beyond 360 without the data jumping all over the place. [/SIZE][/SIZE] (We need to have Axis data gathering or rather Data Translation to linear data and be able to lets have for example 45 degrees on X and than rotate Z 90 degrees but keep the X displaying the 45 Degrees, and if we add in Y of 190 degrees than the Z and X numbers data should remain unchanged as well.)
[SIZE=13px][SIZE=16px]We need it to drive the sprite animation system that we’ve already done, part of which is based on the rotation of an actor,
The sprite system has some sprites that have 360 degrees worth of angles rendered out to a sprite sheet. Everything works so far with the Sprite system. However, the Rotation Values are jumping all over the place.
Kind of a recap: We need to locally rotate Z to 45 degrees, Y to 250 degrees, and X to 300 degrees, each needs to give out that exact number of the rotation even when combined like described above so we can use that to select the correct Animation frame based on the model’s rotation for the 360 degree Sphere rendered Sprite system. Not just that, but we also need to drive mesh to mesh rotation values but lock out specific Axis.[/SIZE][/SIZE] To better explain what limits I’m hitting here and to help visualize… ( I figure due to Gimbal lock)
[SIZE=13px][SIZE=13px]First lets Make an actor BP [/SIZE][/SIZE] and lets do this:
*add a mesh inside that BP.
*get the mesh or the root of the actor.
*get the world rotation.
*split the pins so we get X,Y, and Z.
*Round each of the Values so that its less confusing.
*print string for each of the rounded X,Y,and Z so that when we run the game the data is at your disposal.
Now lets go into the Editor,
Place the new BP actor in the level, and don’t fire up the game yet, but grab the Rotation gizmos directly in the viewport and rotate them, notice how the data displays next to the Gizmo goes from 0 to 360 and beyond? This is the data that we need to be able to grab inside the BP or C++. ( don’t look at the Details panel data btw)
fire up the game in viewport mode, press F8 and lets grab and rotate the Y axis on the positive rotation,
We will see some funky results which first start when reaching every 90 degrees.
Here’s a break down of what i see happening as i spin a mesh 360 degrees:
At 0 to 90 degrees: that works ok ( X: 0) (Y:0 to 90 as we spin) (Z= 0)
At: 90 to 180 degrees: (X= -180) (Y getting: 90 to and back to 0 as we spin) (Z= -180)
At 180 to 270 degrees: (X= -180,) (Y is getting 0 to -90 as we spin) (Z= -180)
At 270 to 360 degrees: (X= 0) (Y is getting -90 to 0 as we spin) (Z = 0)
The thing is that i need to have a consecutive numbers feed back from Y axis 0 up to 360.
I can’t use X or Z because they are feeding other parameters (For example i can spin 0 to 360 on each X and Z and they are not jumping around),
So my question: Is there a way to cheat around the Y axis issue or some kind of solution i can use to translate above outlined issue into consecutive degrees digits for Y axis ?
Here is one failed attempt to get the Y Axis to go from 0 to 360:
Its failed because the X and Z values still interact with the Y Axis.
https://i.imgur.com/D805KjQ.png Anyways! Having the rotation data correctly display 0 to 360 and Beyond and be divided for each axis is something that we really need for our project so that each axis does not interfere with other axis.