Open Zyro1331 opened 1 week ago
There is no time for a user's avatar animations to settle down after their velocity is reset and their position is restored, so it causes the feet to be wildly offset from where their intended respawn position is.
This portion is effectively the same issue I highlight in #2850.
Is your feature request related to a problem? Please describe.
I've ran into a problem while developing a game world, I normally use the "Set Feet Position" ProtoFlux node to teleport users between various locations.
The Set Feet Position node is currently being offset by the Procedural Animation System, which causes it to be wildly inaccurate upon setting a user's Feet Position after a large change in velocity. Here's a screenshot showcasing said offset.
There is no time for a user's avatar animations to settle down after their velocity is reset and their position is restored, so it causes the feet to be wildly offset from where their intended respawn position is. I'd like to try and propose two new nodes that allow me to reliably set the position of a user, that also gives more options to not be offset by the Procedural Animation System.
Describe the solution you'd like
Currently, the only nodes to discreetly set the position of a user is Set Head Position, Set Hips Position, and Set Feet Position. All of which seem to be offset by the Procedural Animation System. (It's the same story with their rotational counterparts too.)
Something that would help with my endeavor is something like a "Set UserNode Position" node. It's certainly an odd name but it would massively increase the reliability of teleporting users to various points with ease. It would allow more flexibility than it's already existing counterparts by simply allowing users to select what UserNode to use as a basis. This node could also replace the above Set Feet, Set Hips, and Set Head nodes since it would already capable of doing those same things depending on the option chosen.
Set Head Direction / Rotation suffers from the same offset by the Procedural Animation System when in Desktop mode. So if you want to orient a user's Viewport to directly point at a certain object or direction, the "Set UserNode Rotation" node would allow this without any weirdness. Another scenario, If you wished to use the center direction of a user's playspace as a reference point to rotate off of, you could do exactly that too.
Describe alternatives you've considered
I'm not aware of any other ProtoFlux implementations that allow me to Set Position / Rotation of a user while ignoring any offsets the Procedural Animation System would introduce. I feel that the above solution would be great as it could clean up those six other nodes and simplify it to just two, as well as increase the capabilities.
Additional Context
UserNode (AKA UserRoot+UserNode) is seen in many components, but I'm surprised to not see it used anywhere in ProtoFlux. You can get a full list of components that utilize it here: https://wiki.resonite.com/index.php?search=UserNode&title=Special%3ASearch&profile=default&fulltext=1
Requesters
@zyro1331