Animation Sets : can anyone get these to work correctly?

  • I’ve been trying to get Animation Sets to work for days (and nights),actually weeks now.

    If I delete an animation set then the drop down disappears so I can’t select another animation set. It also appears to not actually delete the animation sets often as if I try to create a new animation set with the same name as the one supposedly deleted it won’t let me.

    Also when I export to FBX most times the animation sets do not get exported at all. Sometimes one or two will export but not the rest.

    These issues effectively make the animation sets feature useless.

    Last night I spent five hours trying to export a figure to FBX with 3 very simple animation sets and gave up.

    Does anyone else have these issues with Poser Pro 11?

    I’m considering ditching Poser for Daz as these FBX features just do not work.

  • @ader42 Animation Sets in Poser appear to be an orphaned feature. I find them especially useful for defining within a scene exactly which parameters I need to be saved in a library pose, since the default pose saving features ignore important parameters like scale. The Poser 11 UI is lacking features for editing animSets which used to work correctly in previous versions. The Python interface for animSets is also missing essential features, like determining the UI name of each animSet in the scene.

    To use animation sets in a satisfactory manner, I have found it necessary to devise Python scripts which allow the user to select an animation set to be saved and completely supplant Poser's own library saving routines (apart from using them to create PNG library icons). I use a "Name" Attribute in each animSet, to preserve a Python readable name to be used to populate a selection list.

    Currently, Poser's pose saving dialog only uses a selected animSet (when a subset is chosen) to determine which actors will have parameters saved, not which parameters, and the Morphs/Body Transforms check boxes override any parameters specified in the animSets anyway. All of these mis-features have been reported to SMS.

  • Thanks for replying. I hadn't noticed fewer features in PP11 but I'm just coming back to Poser after a significant time away from 3D.
    I seem to have managed to get the export morphs feature to work now (so I have made progress) but it's looking like I'll have to do without the animation set feature and manually create the sets in Unity.

  • Poser Team

    @anomalaus @ader42 It's interesting to note the issues. I happened to be working on this right now and needed to look at the way users use this, and I find this recent message, exciting! Bear in mind we have no plans to immediately redesign this feature, but it is in the pipeline. I don't think this feature is orphaned, it has been around for some time, but as far as the FBX import, I will make sure that a deeper look at how this is handled gets considered for the next phase as we take a look at areas of the product around this feature. (No promises! But I will bear it in mind. We have a lot on our plate but want to repair or enhance features in this area.) Thanks for the feedback. I can see the need to provide a unique naming methodology, but I wonder if that feature is already present? Have you seen ? The first thing he does is name the animation set...

  • @h.elwood.gilliland thanks for letting us know that animation sets are still in Poser's pipeline!

    Yes, Poser's User Interface certainly allows you to manually create an animation set and assign it's name, but the Python API (should have referred to that rather than UI) cannot see the names of the animation sets. It only gets a list of them. I needed the name to populate a list box from which to choose the animation set to be applied, as Poser's own library save routines already do, but Python can't determine the GUI name of each animation set. It is not an available property and has no method to return the name string; hence my workaround of creating an attribute for the animation set containing it's name, which has to be done manually through the GUI (or created manually in a .cm2 camera file and loaded from the library, as I have found it useful to do). Python can request an animation set by name, but has no way to determine any of the names of existing animation sets created by the user or loaded from the library.

    The P11 GUI also seems to have lost the ability to view and edit the list of animation set attributes (at least on macOS), which one certainly used to be able to do in previous Poser releases. Currently, if I manually create a new animation set, and then click on the Attributes button which appears, absolutely nothing happens!

    It always felt to me as though someone had a great idea on how to make full use of animation sets, but then was pulled off to do something more important, and the implementation was left incomplete. E.g. what use does Poser even make of animation set attributes (though they're certainly useful to me)? The only one that was ever automatically created, "Clamp", doesn't seem to have any effect or be used in any way. It's certainly not referred to in the manual.

    [EDIT] I should add that I'll be happy to send you the python scripts I'm using if it will assist you in any way.

  • Poser Team

    @anomalaus Thanks for the feedback. I will look into the issues you describe and see what I can do.

  • Poser Team

    @anomalaus Do you have an example of a script where you try to look up the animation set's name in Python? I want to see what you're trying to do and compare it to what the implementation is doing. If you don't want to send the snippet here, please PM me the code you use to look up by name that doesn't work but should -- and/or, how you think it should work or be structured in Python --


  • @h.elwood.gilliland OK, here we go.

    I'm starting from a scene with 50 figures, 40 of which have animSets associated with them, because that's what I happened to have open at the moment. Each of those animSets was loaded from a .cm2 camera file, because that was a convenient place to keep them handy, but out of the way, otherwise. The files have a header which looks like a variation of this:

    	number 11
    	build 32974
    		animSet Morphforms
    			attrib Name
    			attrib Suffix
    			attrib Clamp

    So, what python currently lets me do is lets me see the " attrib Name\n Morphforms", but not the "animSet Morphforms" bit.

    Here's a code snippet and it's output from the scene I have currently loaded:

    >>> scene = poser.Scene()
    >>> asets = scene.AnimSets()
    >>> len(asets)
    >>> scene = poser.Scene()
    >>> itemList = []
    >>> setNum = 0
    >>> for animSet in scene.AnimSets():
    ...     foundName = False
    ...     for attrib in animSet.Attributes():
    ...         if attrib[0] == 'Name':
    ...             foundName = True
    ...             setName = attrib[1]
    ...             break
    ...     setNum += 1
    ...     if not foundName:
    ...         setName = 'AnimSet {}'.format(setNum)
    ...     itemList.append(setName)
    >>> itemList
    ['Morphforms', 'Expression', 'Clothing Selection', 'Paris', 'TPreeaHair', 'Pleats', 'Persephone', 'Second Skin (3)', 'WetHair', 'Skeleton', 'Christine', 'Brassiere', 'Pantie', 'EZCasual', 'JeanZ', 'FlexibleTail', 'B25BikiniPanties', 'B25BikiniTop', 'V4Bodysuit', 'LDTankTop', 'LDTubeTop', 'V4Gloves', 'FlexibleTongue', 'Drool', 'Breasts', 'V4Booties', 'OnePieceDress', 'Swimsuit', 'HoodedCloak', 'Maria', 'Gwenith', 'V4Cowl', 'V4BikerBoots', 'DownJacket', 'V4Mask', 'V4YShirt', 'BusinessTie', 'ChicThighBootR', 'ChicThighBootL', 'GitSJacket', 'Morphforms', 'Expression', 'Clothing Selection', 'Paris', 'TPreeaHair', 'Pleats', 'Persephone', 'Second Skin (3)', 'WetHair', 'Skeleton', 'Christine', 'Brassiere', 'Pantie', 'EZCasual', 'JeanZ', 'FlexibleTail', 'B25BikiniPanties', 'B25BikiniTop', 'V4Bodysuit', 'LDTankTop', 'LDTubeTop', 'V4Gloves', 'FlexibleTongue', 'Drool', 'Breasts', 'V4Booties', 'OnePieceDress', 'Swimsuit', 'HoodedCloak', 'Maria', 'Gwenith', 'V4Cowl', 'V4BikerBoots', 'DownJacket', 'V4Mask', 'V4YShirt', 'BusinessTie', 'ChicThighBootR', 'ChicThighBootL', 'GitSJacket']

    Yes, those are the names of all the animSets (40) I have in this scene.
    If I click on the pop-up AnimSet menu in the Animation Palette, I get the same list of AnimSet names:
    0_1521737732542_Screen Shot 2018-03-23 at 3.54.18 am.png
    but I can only see them in my list because I put them in the individual animsets' attributes myself.

    Oh, and when I click on the Attributes button to the left of the AnimSet Menu: [DUN, DUN, DUUUUUUNNNN... Absolutely Nothing Happens!] I can no longer edit the attributes directly from within Poser's UI, so I can't even add a Name attribute to an AnimSet I've just created, so that my scripts can offer me a pop-up list of which AnimSet to use when saving (unlike Poser's own library save routine which obviously has internal, non-python-API-restricted access to the list of AnimSet names).

    While I was typing the code into Poser's Python Shell, I took a screen shot of the auto-completion of the animSet instance in the loop.
    0_1521738136532_Screen Shot 2018-03-23 at 3.39.46 am.png
    What is obviously missing between 'Attributes' and 'ObjectRange' from the list of animSet's methods is "Name". Without an animSet.Name() method, like almost every other object instance in Poser Python's API has, I can't get at the name of the animSet. Python can't hack into my visual cortex and interpret the list of names that I see!

    Here are a couple of useful scripts, the first written today, and the second 5 years ago, according to the version string. lists the Name attributes of all animsets (or AnimSet 1, AnimSet 2... if no Name attribs present) lists all the attributes and object ranges of all AnimSets in the Scene.

    Interesting to note which things change in one's coding style over time, and which don't. ;-)

  • @h.elwood.gilliland here's some code I'd like to have work without errors:

    >>> for animSet in scene.AnimSets():
    ...     animSet.Name()
    Traceback (most recent call last):
      File "<input>", line 2, in <module>
    AttributeError: Name

    Fix that, so it just prints a list of the animSet names, and we're off to a good start.

Log in to reply

Looks like your connection to Graphics Forum was lost, please wait while we try to reconnect.