microsoft / MixedReality-UXTools-Unreal

UX tools and components for developing Mixed Reality applications in UE4.
https://microsoft.github.io/MixedReality-UXTools-Unreal/
MIT License
316 stars 86 forks source link

One hand rotation not working #30

Closed SuperFreqA closed 3 years ago

SuperFreqA commented 3 years ago

I am running UE 4.26.1 and UXT 0,11 Creating an actor with a static mesh, a UxtGenericManipulator and a UxtBoundsControl results in the ability to rotate and scale using bounds control objects with one hand, but one hand translation and rotation without using the bounds control manipulators does not seem to work.

SuperFreqA commented 3 years ago

I am now using only the GenericManipulator and here is my configuration: image The UXT demo game seems to work fine, so I must be missing something. I tried adding the Grab and Ungrab events to trigger debug and the event seems to be occurring, but not doing the action to translate or rotate. All settings on the GenericManipulator are default. I also tried adding the grab events from the demo BP_Grabbable like this: image this did not change the behavior. I must be missing some important piece here.

camccaf-msft commented 3 years ago

Hey SuperFreqA! Can you check your UxtGenericManipulator's One Hand Rotation Mode setting? UXT 0.11 has the unfortunate default of setting this to Maintain Original Rotation which will prevent the object from rotating as you manipulate it. Setting this to Rotate About Grab Point should give you the expected behavior. Most of these flags have been replaced by a more flexible transform constraint system in the upcoming 0.12 release so this gotcha will no longer exist.

I haven't been able to reproduce the translation issue you mentioned, would you have a minimal repro project we could take a look at?

SuperFreqA commented 3 years ago

Setting the hand rotation mode didn't fix the problem unfortunately. I still see no translation or rotation of any kind coming through to the static mesh. Do I need to manually push the transform from the GenericManipulator to the static mesh? I don't recall having to do anything besides adding the component to my actor blueprint in 0.10. It feels like there is an update loop that is not happening.

camccaf-msft commented 3 years ago

You don't have to manually apply the transform, the component should function the same as it did in 0.10. I've been able to replicate the behavior you're seeing by setting the StaticMesh and/or the DefaultSceneRoot's Mobility to Static instead of Movable. Could this be what you're seeing here?

I've attached the project I've been using to try and repro this in-case that helps spot the difference with the setup you have in your project. To dig in further we will need more information about your specific project/actor settings or ideally an example project with this issue visible. UxtExample.zip

camccaf-msft commented 3 years ago

Hey @SuperFreqA, any updates on if you have managed to get to the bottom of the issue you were seeing? If not we'd be happy to investigate further if you can provide the project+actor configuration / a sample repro project as mentioned above.

luis-valverde-ms commented 3 years ago

Closing this as it has been inactive for a while. @SuperFreqA feel free to re-open if your issue hasn't been solved. If you fixed it on your side, please do share the solution here so it can help others and maybe give us a hint about things that can be more clear. Thanks!