I have recently moved my project from UE5 Early Access to 5.0.3, and somehow the motion controllers have been changed to using Grip pose. I have manually changed it back to Aim pose but the controllers are still using the Grip pose. How do I keep it at Aim pose?
What VR plugin is active? The aim pose only exists on the OpenXR plugin, so if it switches to one of the legacy plugins, the motion source will not be available in the list.
It should work as long as the Oculus plugin is set to use OpenXR, and not the legacy API. It should be set up correctly by default. Setting the motion source should work the same from C++ as from Blueprint.
You might also want to check if it works properly in a fresh VR template project. The newest version of the template has the pawn set up with double motion controller components for both poses.
I have double checked and I am using the newest API, bot the legacy one. The VR template one works as well. The only thing I am doing differently from the template is that I do not have motion controller components attached to the player pawn, both of my contollers are separate actors inherited from my parent controller c++ class and they works independently. I was using this set up when the project was on UE5 Early Access and it worked as expected. Once I moved to 5.0.3 with OpenXR now operates as a hard requirement, the motion controllers keep using the default grip pose.
I have tried making a copy of the project and migrate back to Early Access and now the controllers’ button inputs are not reponding anymore. I am suspecting that maybe the project settings I am not aware of have been changed, but I have not been able to figure it out.
Just found out something weird, the aim pose works if I use the Standalone Game mode instead of VR Preview, though the in game controller mesh and arrow are still using the grip pose pointing vector. Not sure if it will stay this way when the game is packaged.
I tested making a blueprint only controller actor and spawning it from the player pawn, and that seems to work fine on 5.0.3. Guessing this could be some kind of issue from the C++ class inheritance.
Sorry for the late reply, and yes it was an inheritance issue. The tracking source was set to “Hand” in my parent controller cpp file. Deleted that line and everything worked!