Roll getting ignored in Rotator

Hi,

i’ve come across the following problem, that the “make rotator” blueprint is ignoring the Roll input. basicly the following screenshot is outputting the same result with and without the Roll pin connected.

And yes, i checked if it has a Value, it does and having 2 channel by trace running at the same time, one with and one withou the roll produce the exact same line.

Also using a combine rotator afterwards with only the roll input as the second rotation does not actually change the rotation.

For those interested, the rotation comes from a position on a spline and it does not make a difference if it is the world rotation or the local rotation.
Also the reason i break up the rotator and add values manually is because if i used a second rotator and added them that way, the rotation would just be “wrong” i dont know why or how.
Also the rotation combining rotators blueprint did worse the further away i got from the starting positions rotation (not distance), it basicly was a straight line when it was facing 90° to the right or left from the starting position and not a fanned out in a vertical line.

If you have any questions feel free to ask, i am a bit busy because this is part of my thesis and it’s nearing it’s end, but i’ll try to get back to you.

Fun fact, it lead me to do the following equations for the rotators:

grafik

grafik

If you’re having problems with rotators, you do have to use ‘combine rotator’, breaking the pins and changing specific values will break it.

You should be ok with ‘combine’ and rinterp / rlerp, although it does make a difference what order you do the ‘combine’ in.

Well that is what suprised me, that the shown solutions is resulting in the correct rotations. If i use combine rotators it does not produce the desired rotation since it ignores the roll value. I tried roll = 0° and roll = 45° and it led to the same rotation

And something i missed in my first post was that the default values for all variables, except the one off-screen coming from the top are zero. Which should make it more clear what is happening.
The Value off screen is a slowly incrementing values, which i meant with “fanned out in a vertical line”.

And using the rotation i want to add in a Rotator and then combining these does not work. Do you mean by “what order you combine” if i use a lot of rotators or already if i use only one combine rotators, that it is important what rotator is “on top” and which one is below?

It just struck me as odd and i wanted to make sure it is working as intended, because the Roll value changing actually nothing does not seem to be correct.

Edit 1: It is not that i “need a solution” i just want to bring awareness that this behaviour exists and perhaps find out why (if at all) it seems to not work correctly.

Edit 2: The simple way to test it yourself (maybe i do something wrong) would be to make a rotator in a blueprint, apply that rotation to an objekt with different roll values and see if you get the same result as i did.

Yes, this.

It’s not intuitive AT ALL how rotators work. You could add a rotator to an object with has roll and the result seems totally wrong, but I think it’s not. Can you give a specific example?

For instance, I made a BP, with a cube at 45 roll. And I can add Z rotation to it using

Z

And the result is different with

Z2

So basicly it is this:


The Object i am rotating is made so that you see all of its axis.
The first thing i do is “Get Rotation at Distance Along Spline” this step works fine.
The second step is turning the object to the left and right (for this example only right) and creating these red rays
Roll = 45°

Afterwards i did the same but with Roll = 0°

It is suprising since 45° in any direction should show some effect if im not completly wrong

Also changing the order in the “Combine Rotators” had no effect
One thing that may have influence is that i am doing these while in Play mode, not the Editor view.

So I have a spline with an object at some location ( with axis show )

I can rotate the object

rot1

I can also roll the spline BP and still rotate the object

rot2

Trouble is with splines, there’s so many different ways of doing things. All I have is

I don’t get why you’re using ‘get rotation at distance’. Are you twisting the spline?

Yeah its close to what i got.
What i am doing is that im “walking” along the spline, thats why i use “at distance” since the spline itself can change rotation and does not need to go straight or horizontal.

For clarification: looking at the pictures i provided, the yellow bars going horizontally, are the spline, they are used to visualize it in play mode.

At first i didnt notice it, but when i used to turn/curve the spline or simply just go down/up like seen in my post above, the behaviour was odd, since the seen Pitch did not convert “properly”.

The blueprints i use are
“Get Rotation at Distance Along Spline”
->On this Rotation i am adding the second rotation as seen in the pictures
“Set Actor Location and Rotation”
and that is basicly it

I twisted the spline, so the orientation of the object is 90 out

But I can still rotate it on it’s own Z axis with

rot3

I’m sure there is some weirdness, but I can’t find it right now.

Could you try it on the Roll? That is the one not working for me, Yaw and Pitch are working fine.
Btw i am using the Coordinate Space “world” and not local.

I also i believe that if you “request” the rotation the first time on the spline the resulting rotation will always be returned with yaw and pitch, while the roll is zero. But that test is from a while back

It works with add roll to the roll. I’ve got a very twisted spline now :slight_smile:

Also I get changes in all 3 coords when I request the rotation. Although I have a very vague memory of someone having problems with this…

Are you using ‘set relative’, or ‘set world’?

I am using set actor location and rotation for the moving of the object, it just states rotation, yet since there is “set relative rotation” i assume it is world rotation
grafik

What i am saying is that:
I am requesting the World rotation on the position of the Spline with “Get Rotation along…” and i get Roll = 0
grafik
Then i Turn the spline around and get this result
grafik
completly different rotation, yet roll is still 0
That is what suprised me and why i thought “Roll gets ignored”

Ok, so ‘set actor’ is world.

Another difference, you see :slight_smile: My object was in the spline BP.

I see you moving the actor with spline around, but you actually have to manipulate the spline to get different data back from ‘rotation at length’ ( rotate the spline points ).

rot4

This works for transmitting the spline transform to an external actor, and adding to the Z rotation

Okay i think i found it, after checking back with everything and returning to the Combine Rotator function i ensured that the Rotation for the turning left and turning right is the “basis” for the calculation → the first rotation in “Combine Rotator”
giffi
And it actually worked… no rotation of the spline itself or any kind of it screws the rotation of it, even with me using all the additional values (following picture)
btw the final calculation looks like this:

Thats for helping me on that one :smiley:

The only thing that comes to mind that led to this, was me using the wrong order for combine rotator, which considering how much time i spend on this and the goose chase that ensued, is realy way to much

1 Like

:smiley: