CharacterMovement seems to always "Ignore Base Rotation" (?)

Hello everyone :slight_smile:

I’m not sure if this is a bug or not so I’m posting it here first but I can’t seem to find an easy way to make a character inherit the rotation of the object he is walking on… even though the “Ignore Base Rotation” variable in the MovementComponent is set to false (isn’t that supposed to do that? or is it for something else that I’m not aware of?).

Here is a simple test that you can do to see what I’m talking about:

Create a new blueprint, add a cube mesh to it and then add a RotatingMovement component (which is going to make the cube spin)…
Then place it in your level, hit play and jump onto it with your character.

You will see that the character does not spin along with the box but keeps his orientation, kinda as if he is floating just above it.

Is that the intended behavior?

Unreal Engine 4 Player Movement on Submarine - YouTube You mean something like this? Also we are using that component on the sub.

I think mine is unchecked, the rotation at base, give that a try if not let me know if you need help.

Yeah like that, how are you doing this? :stuck_out_tongue:

I had to manually get the base rotation then add relative rotation to the movement component accordingly every tick.

I’m using the third person template though… maybe it’s fixed on first person?

I didn’t have to do any of that, I just have the character falling onto the sub, a regular default one. And it works, I am also building the collider as a separate box. Not using the vessels colliders at all. Try doing it with a box and a default first person character. It could be your mesh causing an issue. If your using third person, maybe your camera is not moving, but the character should be firmly planted, unless you have it scripted to change the rotation of the player to where the camera is facing.

Just tested in first person and it worked first try… I’m guessing the movement component is different from the third person one? weird.

Gonna investigate further but I’m fairly sure it’s a bug in the third person movement component at this point.

Edit: I found the difference… first person one has “Use Controller Rotation Yaw” enabled by default but that of course messes up the movement in third person.

I still consider this a bug (why would you need to use controller yaw to inherit base rotation?) I guess I will use my “manual” workaround for now.

Edit: You posted while I was posting TK. Yes indeed a third person setup sends it all to whack again unfortunatly so I would too consider that a bug, has the staff gotten back to you, have you even submitted a report? I submit reports of anything over a minor bug and get same day responses.

Edit2: Yes when you disable “Use Controller Rotation Yaw” it reverses forward and backwards (W is back S is forward) easy fix but kind’ve weird. Rotation for view still works as normal with it unchecked.

I’ll pull an Avo and reply to my partners post as if we are discussing to eachother. The setup in the video is a static mesh roughly the same size as the boat with a simple collider the exact size of the mesh. Set to visible == false (or visible == true but hidden in game == true; your preference), but we use the cube for physics, which the ship mesh and everything else is a child of. The buoyancy component is now acting on the cube which is used for all the physics now. The ship mesh is just there for looks and to attach things to sockets since its skeletal.

The ship SkelMesh has gravity == false, simulate physics == false and ATM blocks every collision response except raytraces as well as ECB == ‘No’ (default ‘Player’) it also doesnt auto activate (not that that matters with this setup I dont think) the rest of the settings are the stock settings when you add a SkeletalMesh component to your blueprint heirarchy with a pawn as the base class.

Since we didnt have a setup for switching between pawns/characters and we are just manually setting the ship or the 1P character to be ‘Auto Posess Player’ index 0 for now whenver we wanna play with one of them what he did in the video was have the boat move at a certain speed and rotate at a certain speed by setting default values for rotation rate and forward vector velocity since they are dynamic so without a script to switch between the 1P player and the boat on a InputEvent() that had to be done to show it moving.

The firstpersoncharacter_BP is all default values. The capsule component is scaled down by .5 so the ship seems bigger but impart base rotation is stock: unchecked. If you’d like any pictures or the blueprints PM me, I can trust you, just dont wanna give my whole project away to the public. Or you can skype me blendertek (in the siggy) and I can show you anything youd like.

The only problem I’ve found so far is the player (or the mesh, no idea yet) jiggles in some places on the deck, have to trace that down, it only happens on certain places.

Will it work commanding the boat at the same time as having the 1P player on it, like on the bridge for example or making a hard turn at speed and tehn switching back to the 1P player sitting on the deck, that will come in time.

A bit of history on how the player and ship is and was setup: this was first setup by myself by just taking the first person template in 4.7.1 or was it hotfix 2, anyways the 1P template and deleting the stock level then moving all the blueprints for the stock 1P setup very carefully over to our standardized folder structure as to not break the animations and stuff, some things I had to fix up manually re-setting meshes and animation trees and some things like the firing sound had to be re-selected in the FirstPersonCharacter_BP blueprint.

I had never tested the player moving on an object with buoyancy, only static meshes but your post about this thread sparked my interest, I was just too busy to do any real testing. Today I was trying to figure out why the boat was rolling, pitching, and yawing on its own both above (expected; wave action) and below even with the waves set to nill (no movement in wireframe mode). Avo and me got to trying to figure out why this was happening as I had just offset the test points, which is not future proof because every test point you add in the future would have thrown it off, we tried a few other methods then he had the idea to make a simple standard cube the mesh that the physics get applied to.

Played around with it on Skype for a bit and got it kind’ve working but I said “I dont have a backup of this project let me send it to you and you can play with it”. I come back from town and he had the setup described above.

When I get time I’m gonna test a setup with the rotating cube like you describe to see what happens.

Heres a couple pics, if you’d like more details let one of us know. I played with a ton of values on the character mesh and could not get the jigging solved so it may have something to do with the hierarchy of our boat in some way.

Ill see if tomorrow I can get a third person character to work, technically you can still attach a third person cam to a first person controller and it might work, but Ill see what happens.

Just in case someone else is struggling with this… here is my workaround.

It works but it’s a little too much for something that should be already working if you ask me :stuck_out_tongue:

Much agreed. Gotta remember how new UE4 is, I was never a part of UE before version 4.2 so I have no idea how it was setup back in the day.

That was my workaround I had thought of when you first posted that question but I never had the time to actually to put it to code or nodes, and youve done a good job of simplifying it.

Submit a bug report: 1P character inherits rotation while 3P does not. Thats what I do when I find something like us like my last problem: I couldnt setup or use a gate or multigate inside a function. That just doesnt make sense, 2 hours later “Its fixed and slated for 4.8”

Im still waiting for when I can use doubles inside of BP’s grrr

I just fixed this for 4.8. This was indeed an issue when there was no UseControllerRotationYaw set, as in the ThirdPersonTemplate where they use OrientRotationToMovement instead. Thanks for the bug report and sorry for the inconvenience!

Awesome :slight_smile: thank you Zak, keep up the good work!

Seven years later and this is image is still relevant! If you have UseControllerRotationYaw, IgnoreBaseRotation, UseControllerDesiredRotation, and OrientRotationtoMovement all unchecked (disabled), then this blueprint section is what’s needed to get a character to rotate with whatever it is standing on.