Hi I need a bit of help figuring out what this would look like in Blueprint format.
This Where I got to before I become lost
Hi I need a bit of help figuring out what this would look like in Blueprint format.
If I’m not mistaken, in Unreal it should look like:
I’ll test it later when at pc.
Thanks for the reply. as this is prob not an easy subject.
And im No coder, But I have picked up some in BP. but This Is Pushing my knowledge.
This issue I have is really all down to the problem described in the first paragraph. Where if my hands/motioncontrollers are at my sides or go backwards the body mesh flips To facing the wrong direction Like the exorcist. And Im currently not understanding how they clamped it using the YAW rotation of the HMD
This Is what I understood. Not sure if its correct!
Believe controllers need to be over HMD when subtracting. What this does is make HMD (0,0) and the two controllers are two points that will form a cone away from the HMD.
if you notice on the second image (and if i understood correctly) what it does is a V shape using LC ↔ HMD ↔ RC and the torso will always face middle towards the opening of that V. If both controller go behind HMD, V flips, so torso flips to do what you are telling it to do, look at the middle of the V. If you move a controller to the other side to have LC ↔ RC ↔ HMD, the torso should point at the center of the two controllers. This should be fun in a ski game or rowing on a boat. ![]()
There are ways to do this using the HMD forward vector. For example: https://www.youtube.com/watch?v=E4U4z0mVS6M
Even though the use here is different, it’s a way to know what’s in front or behind something and / or looking same direction or not when you normalize the vectors. Even so it has its limitations.
I was wrong here. You need both X and Y. Dunno why I thought X was 0.
This is how it should work. Added some extra arrows for better reference.
*Edit: added the red sphere that’s 100% independent of the “torso” to show exactly where the torso is looking at and why it flips.
Used construction script just to test it in viewport. You can ignore that.
EPIC!
Huge thanks for taking the time to answer this in such detail.
I have had this blocker for months and actually just came back to try and tackle it again after a 2 month break from it. If this all works this will be like a flood gate opening for me On what Im working on

yikes…
Before I created this post I had actually done this. which works in a similar way. But I am faced with the issue of the body rotation flipping backwards when my hands go to my sides or back. I understand why It happens . But didnt know how to solve it Hence Why I started exploring this method from the document.
While I have your attention Do you know how I could implement a yaw clamp on the body relative the the HMD yaw.
This is the fun part… I would propose a different solution. ![]()
An idea is:
Erase everything and get a vector that is in between both controllers (like the red sphere). Have torso look at that vector. you’ll need to use the forward vector of the HMD to nudge that vector a few cm away from the HMD.
You’ll need to combine a Select and a branch :
– Per controller → If the dot product of the controller and HMD <= 0, select from the vector relative location of the controller to a vector generated from the HMD’s right vector in the direction the controller is supposed to be, if dot product > 0, feed controller’s vector.
The select should feed the vector between the controllers. It should have 2 inputs : 1 controller’s relative position and 2 a vector generated from the HMD to the left or right of its forward vector. If a controller moves behind HMD, bool connected to select will change and feed the other vector.
If both controllers are behind, torso should look same direction as HMD. Offset is important to keep the look at vector in front of HMD. if it is equal, weird things will happen.
If only one controller is behind, torso should look middle point between HMD vector from the side of its forward vector and the controller still in front.
So the V created in the other method is not longer necessary. This way… in theory… torso should always aim within -90 ↔ 90 degrees from the HMD’s forward vector.
You can then add some lag or something to the torso’s rotation to avoid any pops when controllers move front/back.
Now, this will never work to get the pose bellow… but it’s close.
![]()
Tested it and It kinda works. It can 360 as a normal player would… (I’m just too lazy to plug in the HMD…)
Needs a lot more work for certain positions but as proof of concept, I’m happy.