Yellow-Dog-Man / Resonite-Issues

Issue repository for Resonite.
https://resonite.com
102 stars 0 forks source link

Mechanism to Set the Default Pose Rotation for an AvatarPoseRotationConstraint #1969

Open Azavit opened 1 week ago

Azavit commented 1 week ago

Is your feature request related to a problem? Please describe.

Using Pose constraints that includes rotation is annoying at the moment especially if using box constraints with a Default Pose Reference set on a slot for posing.

Describe the solution you'd like

A slot reference on the AvatarPoseRotationConstraint similar to the AvatarPoseBoxConstraint that uses the slot's position/rotation to control rotation of a body node.

Describe alternatives you've considered

Using flux with an AvatarPoseOffset to translate rotation to a slots rotation. Having a Default Pose Reference slot for AvatarPoseOffset (could also be useful) Not using slots to position/rotate and just using math to calculate the relative rotations.

Additional Context

I'm currently using Protoflux to do similar systems at the moment using AvatarPoseOffset, but it's annoying to do for every pose node involving rotation if there is a lot of them if controlling a lot of poses (such as for animating a desktop user)

While this is my current main use, using this for things like animating recoil, positioning a user's head for eye exam educational experience and similar things would also be useful.

Requesters

Azavit

shiftyscales commented 1 week ago

You seem to cover a few separate issues here, and I am having difficulties parsing what you are requesting/what you are trying to accomplish.

Using Anchors to pose avatars that includes rotation

Rotation of what?


Separately, you also mention animating users that are in anchors. Is that the end goal of the system? To be able to more easily pose and animate avatars that are in an anchor? Because achieving that goal well would require some system/mechanism to set up/create/import an animation, and be able to retarget it to various rigs/avatar proportions.

Azavit commented 1 week ago

AvatarPoseBoxConstraint handles constraining a bodynode to a position and has a slot input for what object should be controlling this position.

AvatarPoseRotationConstraint handles constraining a bodynode's rotation, but does not include a slot input even though it is just important to be able to control rotation via slot as it would be to control posistion via a slot.

PoseBoxConstraint allows posing a user via anchor but also handles ToolAvatarPoseFilter and GrabableAvatarPoseFilter which could also both benefit from this.

Both AvatarPoseRotationConstraint and PoseBoxConstraint are things in Resonite and work as I have described, the only diffrence is RotationConstraint is missing a feature BoxConstraint has.

Azavit commented 1 week ago

Cleaned up my original post to make it more clear and removed most comments on "animation" which seemed to cause over focus on that aspect of what this feature could be useful for and added some other "use cases"

Sadly there isn't any "end goal" to add as this feature enables many things mostly involving anchors, tools and grabbables that deal with rotation of body nodes. And is more of a focus on granting rotation constraints the same benefits that box constraints (which is often used for position) already have. But hopefully the new context and clean up is enough information to get the "needs more information" removed.

shiftyscales commented 1 week ago

Thanks. That does clear things up. So you are just looking for some means of independently controlling the rotation of a body node's base pose.