SamTherapy opened this issue on Dec 30, 2019 ยท 21 posts
an0malaus posted Tue, 31 December 2019 at 3:08 AM
Universal poses, and all pose conversion between different figure type suffer from the conceptual problems of how to deal with differing limb proportions.
If you imagine a bent knee pose on a figure with a short shin and a long thigh, what are the parameter references you will use to define the pose? Just the joint rotations? The joint rotations AND the origins and endpoints of each limb as a whole, or the joint rotations, origins and endpoints of each actor within that limb?
Now imagine applying that pose to a figure with a long shin and a short thigh, but the same overall leg length. What are your criteria for the pose to match? Just the joint rotations? The short thigh will have the knee at its endpoint in a different position to the first figure, so if the shin bend is the same angle as the first figure, the shins will be parallel, but the foot at the shin's endpoint will be in a different position to the first figure. Does that mean the poses are a match or not? If you want the limb endpoints to correspond, it can probably be done, but the second figure's joint angles will need to be different to put the foot in the same place as the first figure.
For figures with more or less the same proportions, but different zeroed joint angles, simple additions to angles can be a useful adjustment. Some figures have hands laid out differently, with the thumb either parallel to the fingers, or out at right angles (or some other angle). If their joint rotation orders are different, then matrix conversions need to be applied to swap axial rotations to match.
Every such circumstance of meaningful difference between a pair of figures needs to be treated appropriately, and the pose match criteria explicitly specified or know to achieve an approximate match of poses. That is all conceptually possible, but the simplest solutions may not give the required results, if different figures have to interact with props scaled to match a particular figure. Can a child sit on an adult seat with their feet on the ground? Perhaps not.
The other problem with saved poses, that @hborre alludes to is that the pose only refers to the figure geometry name. The pose does not detail the joint configurations stored in the figure's CR2 file, nor does the geometry OBJ file. Using a reference figure as an intermediary requires joint comparisons between the source figure and the reference figure, and then again between the reference figure and the figure the universal pose will be applied to. Unfortunately, none of the criteria for those translations (meaning joint angle conversions, not axial displacements) are documented anywhere, so the results are unpredictable and cannot be adjusted in any case. Change the scaling of limbs on your target figure and who knows whether that will modify the applied universal pose?
I have no criticism for any of the scripts which attempt to convert poses between figures. I've written some myself and they served a need at the time, but they're not a perfect solution unless they allow the user to specify what kind of matching the converted pose must adhere to and be able to analyse any new figure presented and act appropriately when converting poses to or from that figure.
Verbosity: Profusely promulgating Graham's number epics of complete and utter verbiage by the metric monkey barrel.