Hello, I am curious if anyone could show an blueprint example of how an object upon picking it up with your VR controllers will lock into a certain place with a certain rotation?
For example, I would like to pick up an Axe by the handle and I would like the blade to be pointing forward.
Any idea on how to set this up? I have seem something about sockets or attach to component, but I do not quite understand the right info/variables to input for the proper results.
Your first and easiest form of control is to make sure the mesh you are attaching to the hand has its origin point where it will be hold naturally and that the orientation of the blade in the mesh is toward the positive X if it has to point forward. Then you can use AttachToComponent with Snap to Target both for Location Rule and Rotation Rule. In this way your axe should naturally fall into place.
Another method, if you wanted different points/transforms for different objects to align in the hands correctly is having each object have a hold offset that you use against a main grab point (Possibly in the centre of the hand). When you grab the item, compose the transforms of the offset and the hold point (To find the position in the world you are going to place the object in relation to the hand). Then using this new location, set the World location/rotation of your object you are grabbing, which will be in the correct position of the hand.
You can then attach this to the hand, but instead of using Snap To like Marco mentioned, use âKeep Worldâ as the options, so that it stays in itâs current position but not attached to the hand.
It does require a little more work and you have to fiddle with the offsets a little, but if you implement an interface, you can then have the offset position on each of the objects you might want to pick-up and position into your hand.
Thank you. Can I change the origin points inside of Unreal? Is it the same as using the Alt-Middle mouse button to change the pivot point? Or do I need to take the mesh into a 3D editor, change the origin point and re-import?
Thank you, but that seems a little confusing still. Are the âOffset Transformâ and âCurrent Hand / Grab Locationâ variables? What would I use to set those variables? Event tick?
Easiest setup is just to add a socket to the root mesh and on grip check for a socket of that name (GripSnapPoint, for example).
If it exists, attach at that offset relative transform, if it doesnât, then attach at the contact point for free gripping.
This lets you visually set the offset transform (rotating and moving a socket on the mesh) and is the easiest to change and mess with (as well as supporting multiple locations).
Might the developers at Epic eventually release a VR project that starts with Oculus Touch ready hands ? (with the release of the next engine update etc)