so the title is probably chosen pretty bad. Basically my issue is: I rotate my character based on the normal of the trace I use to move.
If I do this directly (plugging a “Make Rot from ZX” directly into “Set Rotation”) it works like a charm… with the drawback that the transition is super hard… unacceptably so.
As soon as I try a RInterp though it nudges my character to the right if I move upwards or left if downwards.
Here’s a video to showcase my issue a bit better and also show my BP setup.
Any Ideas? Is it something with the “Make Rot from ZX”? Since Y is missing and just calculated off it and the interpolation uses a value between the current rotation and the desired it might screw with that… but I honestly have no idea.
Hello,
I suppose that z is where you walk : down up axe of character , x where you go : front back axe of character. Then left right is y. I wonder if you would have the same if you rotate your floor 90. I maybe wrong but i think that you need to set y too to have it working. I am not sure if it has to be related to floor orientation or character orientation but as it seems to be not relative values, i would say the floor, but it needs a try.
Edit : maybe only add 90 to x before make rot could solve it too but if it is an y orientation issue it will not be ok if you rotate floor.
ZY and make rotation from axes have exactly the same result. Even exactly the same axis.
ZY I shouldn’t have to show as it’s exactly the same as ZX with the difference that one has to use the right vector instead of forward.
And here’s the make rot from axes:
I seriously have no idea what causes this and would really need to smooth this out a bit more.
EDIT: Well well well. Look at that. So apparently it’s not the interp function itself. The error is happening with direct input as well… it might be due to the difference my right vector has compared to the new up and forward one… since those have the updated normal but the right vector is still facing where it was previously. But how is that fixable?
I had somewhat similar issue. Try excluding your yaw rotator’s component from interpolation. Some of the nodes which can create rotator, don’t provide all of the axis of rotation. Like for example LookAt node gives only pitch and yaw and as you try to interpolate it with rotator that has some roll value it will screw it up.
I get the actor rotation which should really provide all rotations properly. Also I want to be able to walk on walls… excluding yaw is not really a solution there.
I got it to work fairly well with pretty much exactly what I posted at the beginning… I seriously have no idea why. Maybe I changed something with the location of my trace or something stupid like that.