Pre-made poses mess up if character is facing opposite direction



  • When i load andy or any of the already rigged characters given in poser and insert a pose to the model it will perform correctly if the model is in the position its facing when it it loaded in, but if i 180 turn the character and insert a pose onto it the pose completely looks messed up or does not perform the action correctly. Is there a way to fix this to have the character face any direction and still execute the pose the way it should be executed?



  • I'm no expert when it comes to posing, but I suspect there's no way to do what you want, as the direction the character is in, IS actually part of the pose.

    IOW, if the pose works for Andy when he's facing forward, it's because the pose was created when Andy was facing forward. I don't see how you could use the pose with him facing backwards unless you recreate the pose for him while he's facing backwards.

    I'm sure someone who knows better about this sort of thing will chime in, hopefully with a way for you to get this done.



  • It depends on the rotation angles of the joint centres. Different figures have different orientation of the local axis system.
    I will skip the math here but it may help if you look at the hip actor of your posed figure, note down the y-rotation value, and then set that y-rotation to 0.0
    Then to rotate the figure set y-rotatio in the body instead.



  • @fverbaas @Miss-B Ah, thank you both for the helpful information i will apply and trial and error with the information given to see if it does fix or helps me to find a fix for the problem at hand lol.



  • Also this happens when I flip the the model around in the setup room to face the same direction as the skeleton donor i use, the bones just com-bust in all directions, this always happens after i save and re-open the file 0_1542875169805_Screenshot_122.png



  • If i 180 the model to match the facing position of the skeletal donor the poses i inject on the model come out perfect but the bones look like the picture above if i ever save and re-open the file and go into the setup room and i don't know if that will cause problems in the long run. If i 180 the skeletal donor tp match the position of the model in the setup room the bones act weird on the model when trying to perform injected poses, but the skeletal donor bones in the pose room will stay looking normal after saving and re-opening the file. I'm at a loss to keep everything normal.



  • @shadowofabyss the bone explosion happens because flipping the model (I assume you're just doing a 180° y-rotation of the body) is not changing the endpoints of the bones, only their origins. This looks like a bug to me. Bones may not always be set up with their origin at the endpoint of another bone.

    You may need to manually reposition each of those bone endpoints. (Tedious)

    @Miss-B there is a way to save poses without the body transforms. Initially, I'd suggest trying a pose you save yourself, but don't tick the Body Transforms checkbox. When you apply the saved pose, it should not override the translation or rotation of the BODY actor of your figure. There are more precise methods to choose what gets saved, such as Netherworks' PoseWriter Panel (though I've never used that, having written my own script).

    What does seem to be missing, currently, AFAIK, from the Poser sphere, is a script which can filter poses before applying them, so you can screen out Body translations or rotations, or morph settings that relate to a particular dialled character, rather than the general limb pose settings. It's always been easier to do the filtering at the point where the pose is saved, so using other people's supplied poses can be frustrating, if they override settings you want preserved.



  • By rotating either the donor figure or your model, you basically did invert the figure:
    Left became right, front became back, and vice versa.
    Just look at the feet bones. The right foot bone is facing backwards and to the left, the left foot bone backwards to the right.
    Also, from what I think to see in the bones melée, the donor and receiver figures may even have had different origins.

    SO what to do?

    • First, make sure that both figures are absolutely zero. This means translations AND rotations!

    • Also, the groupings in your figure should be the same as in the donor figure. Make sure that the group names match EXACTLY (case sensitive). You need the INTERNAL names here, not those that are displayed in the hierarchy editor.

    • Your setup figure should match the geometry of the donor figure as closely as possible. This means if your setup figure is modeled in an A-pose (from what it looks), then your donor figure should at best also come in an A-pose, or you must modify the imported rig before continuing:
      Select the bones that are not aligned (probably the shoulder and /or collar bones and rotate them until they match your setup model. The bones parented to it (forearm, hand etc.) should follow the rotated bone.
      If necessary, do the same with legs and feet.

    Remember that you only have to modify one side. Use the "Symmetry" command to mirror to the other side.

    If you want to leave the Setup Room and you get a message about groups with no bone, or bones with no geometry, then you have an error in your groupings or in your bone names.
    Fix that BEFORE leaving the Setup Room, and BEFORE saving anything!

    Only after you could leave the Setup Room without error messages, you can (and should) save your scene.

    Then reload the saved scene, check whether everything looks OK so far, and you can now delete the donor figure.

    Open the Joint Editor for fine tuning your rig further:
    Adjust the bones orientations and origins if necessary, and set up / tweak the joint zones.
    Start with the torso, then continue with leg and arm. Remember the "Symmetry" command is your friend!
    Finally set the neck and head.

    Save your scene by a different name (to have a backup) and start testing your figure.

    Hope that helped

    Karina



  • @anomalaus Ok i have a question, so if i manually make the bones would they behave more properly? Cause I built the model in Maya but when imported in poser its imported facing the opposite direction from andy which gives me the 180 flipping problem going into the setup room, if you would like the file itself i will gladly send it, cause i've been trying to find a solution to it for a while lol



  • @shadowofabyss I'd need you to confirm for me (since I can't find the answer with a quick search) which way the default camera faces in Maya. Is it along the Z-axis towards -Z, with +X to your right, or along the Z-axis towards +Z? From the quick searches, and assuming that the red, green and blue coloured axis arrows still correspond to X, Y and Z, all the documentation seems to imply that Maya uses the same coordinate axis orientations as Poser, at least for World Space.

    I'd be happy to take a look at the file. It would be a lot easier if I have it, since I can throw Python scripts at it to accurately fix bone origins and endpoints, without letting the GUI mess things up. A 180° rotation about the Y-axis is usually really easy to fix, and you could probably do it in the Joint Editor by inverting the signs of the X and Z coordinates (assuming your figure is centred on the origin).

    I use mega.nz for sharing mostly, as it saves all the time setting up an icon and descriptions that ShareCG requires, but some people can't access mega where they live.



  • @anomalaus said in Pre-made poses mess up if character is facing opposite direction:

    @Miss-B there is a way to save poses without the body transforms. Initially, I'd suggest trying a pose you save yourself, but don't tick the Body Transforms checkbox. When you apply the saved pose, it should not override the translation or rotation of the BODY actor of your figure. There are more precise methods to choose what gets saved, such as Netherworks' PoseWriter Panel (though I've never used that, having written my own script).

    Well, DUH, I hadn't thought of that, as I usually check the Body Transforms. Then again, I've never considered trying to apply a pose on a character that's facing in a different direction.

    As far as Joe's PoseWriter Panel, I have that, and it looks like I'll be playing with it in the near future. ~wink~

    @anomalaus said in Pre-made poses mess up if character is facing opposite direction:

    What does seem to be missing, currently, AFAIK, from the Poser sphere, is a script which can filter poses before applying them, so you can screen out Body translations or rotations, or morph settings that relate to a particular dialled character, rather than the general limb pose settings. It's always been easier to do the filtering at the point where the pose is saved, so using other people's supplied poses can be frustrating, if they override settings you want preserved.

    Now THAT would indeed be useful.



  • @Miss B

    You denfintely should try PoseWriter Panel!
    It's the best gadget written for Poser since someone invented .pz2 pose files!

    You can finally separate the body morphs from the pose to get a clean pose file (without all the unnecessary overhead that Poser adds!), and you can also save partial poses! (e.g.only Upper/lower Body, hand/finger poses etc.)

    As a bonus you can copy/paste a pose from one figure in your scene to another without even having to write a pose file to the library first!
    Vice-versa you can exclude body parts from the pose (the infamous hip rotations...)

    And the best things come last: it's already included in Poser!

    So for me there's no more excuse for poses which:

    • Reset your figure to default shape (a HUGE No-No!)
    • Or send it to Ouagadougou or Vladivostok once you apply a pose because the XYZ translations were set to 1000, -100, 100000...

    Netherworks also made a really great tutorial which comes with this gem.
    Only thing you need to do is to "read it!"
    ;)

    K



  • @karina Thanks for all that info. I'm definitely going to have to try it. I'm not good at creating poses from scratch, so I'm always tweaking poses from pose packs I buy, and I've recently been using a Partial Poses set I've had for a while, but haven't used much until recently. It'll be nice to be able to create my own. ~wink~



  • You may try exporting your animation as a .bvh file, then using a free utility called bvhacker(http://www.bvhacker.com) flip the orientation 180 degrees and reapply it to your character.
    Be mindful only to make changes in orientation at the start or endpoint of the animation else oddities can occur'



  • oops... I was intending that reply to someone in IM on a an animation question ,.....multitasking has been getting more challenging since I hit 60.... LOL



  • @jafo just wait till the O in JAFO stands for Octogenarian! (Not that I'm there yet, but I look after someone who is, so I see the challenges) [BTW, Blue Thunder has long been one of my favourite movies. I always enjoyed seeing Malcolm McDowell's characters achieve Karmic Equilibrium ;-) ]



  • @shadowofabyss OK, first take on looking at the unrigged model imported into Poser, is that Wavefront OBJ files never contain any explicit rigging information. When you import such a file into Poser, the first thing Poser will do when turning it into a prop actor that you can move around before you rig it, is to calculate an origin for the object. Poser literally uses the average of all the vertex coordinates as its calculated origin. If you left the "Centre" option checked when you imported the obj, Poser will place the calculated origin at the scene's origin.

    0_1542965566584_Screen Shot 2018-11-23 at 8.17.58 pm.png
    The model you've imported obviously includes some clothing which is intended to be rigged, but is not part of a standard human figure (which are generally hairless). I'm not exactly sure what that extension from the back of the neck/collar is, but it's presence greatly offsets the centre of the unrigged object. I'd consider using where the origin of the rigged hip is, to define where (at least the X and Z coordinates) the figure's origin should be (The body's Y origin can be at zero height).
    0_1542965642780_Screen Shot 2018-11-23 at 8.24.14 pm.png
    Here I've rotated the unrigged object to face +Z and moved it back (my display units are metres, but the joint editor ALWAYS displays PNU, so numbers don't match. My conversion factor is 1PNU = 2.62128m exactly - That comes from Poser's own preferences file, BTW: UnitScaleFactor)
    Once I plug the converted z translation value into the Centre Point Z of the Joint Editor, I get:
    0_1542965920844_Screen Shot 2018-11-23 at 8.25.49 pm.png
    the centre and endpoint now line up with the body of the figure object, but I need to negate the translation to put the centre back at the scene origin.

    The next step is to export that repositioned object (where the scene origin lines up with the body origin vertically) as a wavefront OBJ file.
    0_1542966103836_Screen Shot 2018-11-23 at 8.27.12 pm.png

    I want to keep the rotation and translation as part of the obj, so I make sure "As Morph Target" is off and "Include existing groups" is on. I didn't have any textures, so I didn't bother with that.

    Open a new scene and import the OBJ just saved.
    0_1542966239387_Screen Shot 2018-11-23 at 8.29.21 pm.png
    making sure that Centred and Place on floor are both off, so no vertices get moved. Poser always calculates its own normals from the facet winding order, so normals don't matter unless facets look strange in renders (Normals are also never, ever correct for single-sided möbius strips, either).

    Once imported with those settings:
    0_1542966448702_Screen Shot 2018-11-23 at 8.30.36 pm.png
    the revised object now stands on the origin facing forward as you would expect, ready for rigging.



  • @anomalaus Ok im looking at the info and am about to try and apply it into poser as we speak



  • Im going to rigg this model for the 6th time and see if all goes well, will report if any issues but @anomalaus i love you for explaining the center origin out to me this def helps out alot


  • Poser Ambassadors

    0_1542968178893_assasin1.jpg
    Opening the FBX in Blender shows.

    • The figure loads indeed 180° rotated front to back. (I turned it around to get the view above)
    • Most bones are also upside down. And the bones in the arms are also pointing upwards.
    • Most vertex groups are incomplete and/or touching the wrong vertex groups. => A result of the autogroup function
      Example : lThigh and rThigh can not touch each other, you need a hip group in between. (Same between hip and chest, you need a complete abdomen vertex group, and same between the shoulders and chest, you need a full collar group, and same between chest and head, you need a full neck group.
      The figure being very low poly, the setup room/autogroup had too few vertex to do a proper "split" on its own, so this requires a manual vertex group repair using the group editor before leaving the setup room.
    • The Andy rig used did not know what to do with the scarf, so it made a secondary separate Andy_Setup_1 prop. (The scarf polygons where not assigned by the autogroup function thus creating a separate prop.)

    How to fix/repair.
    Twist the FBX looking forward (internally or externally from Poser) and with a save in between. looking forward.
    Recheck the origin of the FBX. => This figure is about one yard / meter forward of its origin on the file I got.

    Load the figure in Poser, recheck the origin, and mare sure the figure is on the ground and looking exactly forward.
    You can use the Andy as donor rig.
    After using the autogroup function, go to the vertex group editor to correct all vertex groups, and assign the scarf to the neck bone. (When leaving the setup room, Poser gives a warning if not all vertex/polygons got assigned to a bone.) Be sure to have no such warning because the "leftovers" will go in a Andy_Setup_1 prop.