Another Simple Script.
Use case:
The physical state of the controllers is your main concern.
"Mirroring" the limbs, to turn a "left-handed" pose into a "right-handed" pose is your main objective.
Quickness / "real time" swap.
Non-Use case:
Physical state is not your concern (other solutions I looked into wiped my values out).
The accurate flip of the entirety of the character (not just limbs) is your main objective.
For saving/sharing static pixel-perfect flipped pose data.
Uses the general chest area as a dynamically calculated reference point.
Swaps physics settings and positions for limbs, based on the reference point, and nothing else. Note that rotational drive values were a focus, having noticed initially how differently their rotations are categorized (you can see the clear distinctions laid out in the script source).
Limbs include: 4 in the legs (Toes, Feet, Knees, Thighs) and 4 in the arms (Hands, Elbow, Arm, Shoulder)
v3 includes only the state of the Joint Drive values.
v4 includes the joint's Rotation values.
v3 is for those keeping rotations on controllers off, to drive all rotations by drive forces.
v4 will not ignore controller rotation values - mirroring them in the same manner as the drive values.
Seeing as how other plugins still wiped my physics values out, I feel there is still no overlap with other plugins, having a version include rotation along with the joint drive, for limbs only.
Tip: If anyone was interested in using SimpleStateMachine, only to test physics values during state transitions, this is a more streamlined place to start getting familiar with those, since it will mimic that plugin's behavior for 'Controller' state collection types (ofc, being limited to limbs, and a singular secondary (mirrored) state).
While hip, abdomen, neck, head, etc., are not physically swapped, you can get a good sense of how those values will work during transitions as well, once acquainted with the limbs.
See video to understand how it compares vs. solutions aimed at more static/complete mirroring, which would include morphs, and central controllers.
Further notes:
The dynamic calculation of a reference point is aimed at users attempting (like myself) to link together physical states, needing to "bake" and/or tinker with how physics will play into state transitions.
If you are wanting to reverse a legs-crossed sitting pose, and you're not as concerned with the physics transitions related to the pose, other pose plugins are the way to go. Otherwise, with this approach, you will need to use off-positioned controllers to unbind crossed limbs.
Until next time, happy coding/creating!
For those interested in using as a starter to create something else, here's a peek at the relevant code
Use case:
The physical state of the controllers is your main concern.
"Mirroring" the limbs, to turn a "left-handed" pose into a "right-handed" pose is your main objective.
Quickness / "real time" swap.
Non-Use case:
Physical state is not your concern (other solutions I looked into wiped my values out).
The accurate flip of the entirety of the character (not just limbs) is your main objective.
For saving/sharing static pixel-perfect flipped pose data.
Uses the general chest area as a dynamically calculated reference point.
Swaps physics settings and positions for limbs, based on the reference point, and nothing else. Note that rotational drive values were a focus, having noticed initially how differently their rotations are categorized (you can see the clear distinctions laid out in the script source).
Limbs include: 4 in the legs (Toes, Feet, Knees, Thighs) and 4 in the arms (Hands, Elbow, Arm, Shoulder)
v3 includes only the state of the Joint Drive values.
v4 includes the joint's Rotation values.
v3 is for those keeping rotations on controllers off, to drive all rotations by drive forces.
v4 will not ignore controller rotation values - mirroring them in the same manner as the drive values.
Seeing as how other plugins still wiped my physics values out, I feel there is still no overlap with other plugins, having a version include rotation along with the joint drive, for limbs only.
Tip: If anyone was interested in using SimpleStateMachine, only to test physics values during state transitions, this is a more streamlined place to start getting familiar with those, since it will mimic that plugin's behavior for 'Controller' state collection types (ofc, being limited to limbs, and a singular secondary (mirrored) state).
While hip, abdomen, neck, head, etc., are not physically swapped, you can get a good sense of how those values will work during transitions as well, once acquainted with the limbs.
See video to understand how it compares vs. solutions aimed at more static/complete mirroring, which would include morphs, and central controllers.
Further notes:
The dynamic calculation of a reference point is aimed at users attempting (like myself) to link together physical states, needing to "bake" and/or tinker with how physics will play into state transitions.
If you are wanting to reverse a legs-crossed sitting pose, and you're not as concerned with the physics transitions related to the pose, other pose plugins are the way to go. Otherwise, with this approach, you will need to use off-positioned controllers to unbind crossed limbs.
Until next time, happy coding/creating!
For those interested in using as a starter to create something else, here's a peek at the relevant code