[VRC Constraints] Local Space Rotation Ignores Inverse Scale
available in future release
Voxian
It's often very helpful to be able to "invert" the rotation of a local constraint. I previously did this by inverting the scale of the parent object when calculating local rotations.
VRC Parent and Rotation Constraints do not seem to behave as expected under a parent with inverted scale.
Expected Behavior: Rotation Values are copied as is from the Source to the Target.
Actual Behavior: Rotation Constraints ignore the parent scale.
(I have attached a screenshot, but I will also do my best to explain via text)
Hierarchy:
- Source Object
- Root Object (X Scale is -1)
- Target Object (Rotation Constrained to Source Object with Local Space Checked)
I then rotate the source object 30 degrees in Y. The target object automatically moves -30 degrees in Y relative to it's parent.
This also occurs for the Rotation portion of Parent Constraints.
For local rotations, what I am looking for is a weighted copy paste of the raw transform values pasted into the Target Object.
I've marked this as a Bug Report, because I do not know your design approach to this situation. If you have a different design approach, please convert to Feature Request and respond and to let us know. However, be aware that this situation is one limitation of the currently implemented solution.
Thank you so much for looking into this!
Log In
This post was marked as
available in future release
Dexvoid
This will be updated so the local euler angles of the source should be what's written to the local euler angles of the target (with weighting applied) while solving locally. This gives me the expected result in my testing - please let us know if you're still having this issue once the beta is updated.
In case it's useful, I'll also mention that you can negate the result of a constraint by ticking the Free Edit box next to its overall weight and setting the value to -1. For rotation constraints, this should negate the rotation that would otherwise be set.
Ahzealion
Dexvoid Currently this doesn't solve the issue we have at the moment since we only want to invert one axis of rotation, and currently theres strange behavior if you make two constraints on an object (one with two axis locked and a positive weight, and one with one axis locked and a negative weight) so the scale work around is still something we want to manipulate.
Dexvoid
tracked
Ahzealion
To my knowledge, if you invert the parent of the target object's scale it begins to respect that for some reason. However, inverting the target does not change the result. (I haven't tested this thoroughly though)
Voxian
Here's a screenshot of how I expected it to move.
Voxian
This is PARTICULARLY useful for inverting and copying your leg movements to a set of back legs. :)