Download

VR Move in direction of motion controller

Hi,

I am trying to move a character or a pawn in the direction that the motion controller is facing.

I get forward vector of the motion controller and use that to add movement when trigger is held I can move forward backward and strafe.
I would likelikeike to rotate character if controller points left or right. I tried playing with orientate to rotation and changing yaw and use controller desired rotation. None of that helped.

I was also getting world rotation of motion controller and look at rotation then adding rotation in the tick, but I just kept spinning. I’m guessing there is a problem between using relative rotation versus world and likely an issue with where and how I am applying the add rotation (should I do it in event tick? Would it be add world rotation or local rotation.)

Please help if you can.

Thanks

I was able to get the pitch by getting the world rotation of motion controller dividing by X and directly setting the actor pitch in the event tick. Not awesome but it mostly works. Still having issues with the yaw.

Okay the goal was to move in the direction your motion controller is facing. In the event tick I get the WORLD rotation of the motion controller, drag from player controller ref and “set control rotation”. On character tab under pawn make sure use controller Yaw, Pitch, Roll are all unchecked. On character movement tab “Use controller desired rotation” is UNCHECKED, also on character movement “orientate to movement” is CHECKED. In the move forward event (however you move forward) get Control rotation- get forward vector and plug that into world direction pin of the add movement input. The controller will face the rotation you want and the character will face the rotation of the controller (over time). Overtime is key. My motion controller is attached to my character so as the character turns so does the motion controller which makes the character turn. It is IMPORTANT to go in character movement tab and adjust the rotation rate of X Y Z. A value of 0 seems to ignore that rotor (which is convenient), etting the others to 25 was good for me. AT 400 in the spinning loop. Hope this helps someone else eventually.