Search Unity

Puppet2D - An advanced skeletal animation tool

Discussion in 'Assets and Asset Store' started by jamieniman, Dec 31, 2013.

  1. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    Thanks. But I already bought SVGImporter which does the same thing so I'll not buy Simply SVG. I'm just deciding if I should buy Puppet2D.
     
  2. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Yes, currently you cant animate this using the sorting order script.

    You could make a little script that exposes the sorting order to be animated and attach it to the component.
    Use GetCompoent<SkinnedMeshRenderer>().sortingOrder;
     
  3. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    There should be no problems parenting the svg sprites to the bones. But mesh skinning would most likely require using Puppet2ds mesh creation and skinning tools.
     
  4. tkoknordic

    tkoknordic

    Joined:
    Jan 31, 2013
    Posts:
    93
    I think you should ;)
     
  5. berdanka

    berdanka

    Joined:
    Sep 29, 2015
    Posts:
    24
    Thanks. One more question.
    Can I change the Z position of mesh after I attaching it to the FFD mesh via Bind Smooth Skin 4 FFD?
    I have an object like a crocodile jacket from tutorial. And (I do not know, it's a bug or something else) when I change the Z transformation - it does not affect the scene.
     
  6. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    You will need to create the FFD mesh at z=0, and then you can offset it in the Z by moving the parent GRP (called something like FFD_Ctrls_GRP_1)
     
  7. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Hi,

    I have a problem,

    I can animate a bone IK control and the animation is recorded, but if i animate a FFD control vertex the animation is also stored and plays alone.
    But i can't get the bone IK control and the FFD control both at same time registering in the animation editor, and i can't see both at same time display in the animation editor.
    It is some channel or parenting problem ?

     
  8. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    You need to make sure you haven't accidentally made an animator component on the controls - there should only be one animator component on the global_CTRL and not on any of its children.

    Let me know if thats it :)
     
  9. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    When i select controls bones and FFD controls all them, and just move them, keeping them selected, the timeline just registers one bone control IK.
    So if i move some FFD control , it creates a new Animator and don't register the movement in the same animation as the previous registered bone IK control ?

    What is the way to stay in the same animation and animator whatever bone IK control or FFD controls we move and register keyframe ?
     
  10. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    You need to make sure you have the animator on the global_CTRL before you animate any of the children, otherwise it will attempt to make a new animator.
     
  11. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Yes i have.
    I found the problem as i selected all controls IK and FFD by mouse than removeing unecessary ones, i had for example :
    Spline_CTRL_1 selected and not Spline_CTRL_GRP_1 selected, so this caused problem making it impossible to register FFD and IK controls in the same animation.
    I selected all FFD and selected manually all Spline_CTRL_GRP_Number , and mving them all , they registered in the same animation.
    Perhaps you could add something to prevent that in the editor like able to select only the hight level CTRL Group ?

    Anyway, thank you for taking a look.
     
    Last edited: Nov 19, 2015
  12. jianloong

    jianloong

    Joined:
    Dec 7, 2013
    Posts:
    6
    Screen Shot 2015-11-19 at 2.03.36 PM.png Screen Shot 2015-11-19 at 2.03.47 PM.png
    I have a problem (picture 1) when i build into ipad, when in the unity editor the model no problem (picture 2), any solution? why have this problem?
     
  13. zenGarden

    zenGarden

    Joined:
    Mar 30, 2013
    Posts:
    4,538
    Perhaps it is some Z ordering problem ?
    You can try putting some elements within z=0 and some others in Z = -10 , and see what happens.
     
  14. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    You need to make sure the your texture is:
    1. square
    2. power of 2
    3. turn off mip maps

    Let me know if any of those solves your issue
     
  15. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    Does Puppet2D have a way to limit bone/joint rotation? Like preventing an elbow from bending backwards?
     
  16. Freeubi

    Freeubi

    Joined:
    May 30, 2014
    Posts:
    21
    Hello guys,
    can somebody help me out?

    I have a character, with a mesh neck (the stretch option enabled).
    I want to achieve a spring effect on it: drag the head and on release i want to move back to the starter position with a spring effect.

    Is there any easy way to do this?
     
  17. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    The default IK only bends in 1 direction (unless you flip it). If you change it to multi bone IK then you have a limits check box
     
  18. Enki-Studios

    Enki-Studios

    Joined:
    Feb 3, 2014
    Posts:
    9
    Hello All,
    First off, just to say thanks for a great product, I loved it when I first used it. But... I have now returned to it a few months later, and have gone to start a new project with it, and had a series of issues, mainly skinning.

    I import Puppet 2D it into a new project, dragged a sprite into the scene, selected the sprite, opened the Puppet2D menu and clicked on the skinning tab.

    Now, if I choose any of the options I do not get the desired result and I get these errors:

    CREAT FFD TOOL:
    NullReferenceException: Object reference not set to an instance of an object
    Puppet2D_FFD.FFDFinishCreation () (at Assets/Puppet2D/Scripts/Editor/Puppet2D_FFD.cs:203)
    Puppet2D_Editor.OnGUI () (at Assets/Puppet2D/Scripts/Editor/Puppet2D_Editor.cs:554)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)


    CONVERT SPRITE TO MESH:
    NullReferenceException: Object reference not set to an instance of an object
    Puppet2D_Skinning.ConvertSpriteToMesh (Int32 triIndex) (at Assets/Puppet2D/Scripts/Editor/Puppet2D_Skinning.cs:81)
    Puppet2D_Editor.OnGUI () (at Assets/Puppet2D/Scripts/Editor/Puppet2D_Editor.cs:319)
    System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System.Reflection/MonoMethod.cs:222)

    Does anybody know waht I have done wrong or how to fix this? I am running the latest version of Unity, so I dont know if that is an issue. I am downloading 4.9 to see if that lets me crack on with work.

    Thanks in advance to anybody,
    Cheers

    -EDIT
    I have donw the same in Unity 4.9 and I get the same result.
     
    Last edited: Dec 11, 2015
  19. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Could you make sure you have the following folder: Puppet2D/Models/Materials
    If its not there then you need to create it. (Unity sometimes deletes it for some reason)
     
  20. Enki-Studios

    Enki-Studios

    Joined:
    Feb 3, 2014
    Posts:
    9
    Hiya,
    Great!, I think that did it, I had :
    Puppet2D/Models/DemoModel/Materials.
    Thanks bud, keep up the good work ;)
     
  21. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    I want to buy Puppet2D now but I am afraid to buy it because of all the sales coming up. With my luck I'll buy it and the next day it'll be on a 24hr sale or a Christmas/Year End Sale.
     
  22. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    Well I bought Puppet2D anyway. I just hope there is no sale in the next few weeks so I won't want to kick myself.
     
  23. Riscvul

    Riscvul

    Joined:
    Dec 18, 2012
    Posts:
    5
    Question about Puppet2D. I've been using spriter and I still haven't been able to get a good workflow setup so i'm looking to switch. However Spriter has a feature called character maps which allows me to create different "clothing" I can switch between for a given character. I was wondering if such a thing would be possible with Puppet2D?
     
  24. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    Is there any way that I can setup an SVG Asset (created by SVG Importer) that can be used in Puppet2D to do what is being done to the dragon's eye between 2:00 and 2:40 in THIS VIDEO? I tried and nothing works.

    It'd be great and of value to Puppet2D if you could work with the SVG Importer developers to add this functionality.
     
    Last edited: Dec 19, 2015
  25. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    Why doesn't the mesh deformation functionality of Puppet2D work with the meshes created by SVG Importer (Especially since many of the corresponding techniques in this video are done after converting sprites to meshes)?
     
  26. ilyamez

    ilyamez

    Joined:
    Feb 17, 2015
    Posts:
    1
    Hi!
    Seems like a great tool! Quick question - is it possible to control the IK handles positions via code during runtime or can they only be controlled by animation?
     
  27. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    The IK handles are normal GamObjects with transforms so yes they can be controlled via code during runtime.
     
  28. CarterG81

    CarterG81

    Joined:
    Jul 25, 2013
    Posts:
    1,773
    Using Unity 5.3

    Whenever I try to take my sprite and "Convert Sprite to Mesh", I get an extra two points that shouldn't be created. (Bottom left and right, on image)

    puppet2d error.png

    Is there any way to fix this so those points aren't created? The image is cropped, so there is no extra pixels or whitespace. I have no idea why those corner points are made.
     
    Last edited: Dec 23, 2015
  29. imtheproof

    imtheproof

    Joined:
    Jun 19, 2015
    Posts:
    4
    Hi,

    I'm running 5.2.3f1 and having a problem when using 'Convert Sprite To Mesh' or similar tools like 'Create FFD Tool'. When following the Croc tutorial here:



    but applying it to my own sprites, I seem to get a mesh that is a solid pink object in the shape of the original sprite or FFD that I draw. If I'm using an FFD, they move around the new pink object instead of the original sprite. Here's what the 3 look like:

    http://i.imgur.com/FTqWXoT.png

    Is this just a wrong mouse/keyboard input or an incorrect setting somewhere?

    Thanks
     
  30. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    OK, I've had this happen ages ago. It's unlikely a 5.3 thing. I found that it could be fixed by making it a multi sprite and changing the sprite bounds slightly. Let me know if you manage to get it to work
     
    CarterG81 likes this.
  31. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    You need to recreate your Puppet2d/Models/Materials folder
     
  32. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    I can't get the Create FFD Tool to work no matter what I do. I place a Face.png file into my scene. I select it then I click Create FFD Tool and place controls around the eye, finish the path by right-clicking, then inside that path I create another path. Then I click Finish FFD. And that clips my Face.png so that everything outside the 1st larger area path disappears so that only the eye with the two FFD paths can be seen.

    Should I do Convert Sprite To Mesh first? I tried that and even that doesn't work as it doesn't bind the mesh to the FFD controls.

    Also I notice that a "New GameObject" is being created which is a pink color. What is that for? I can delete it and it seems to affect nothing.
     
  33. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    I'm having the same problem, among others.
     
  34. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    I am really getting annoyed with Puppet2D. I can follow the same exact steps twice in a row but get two different results. Either the mesh doesn't bind to the FFD controls, or the mesh outside of the FFD controls gets clipped. I want a simple how-to of how to use FFD with Bind Smooth Skin and no bones.
     
  35. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Could you make a video of this issue happening. I want to see what steps you are doing exactly. It's hard to work out what's going wrong from your description.
    Also, a couple of things to clarify:
    - make sure your sprite is power of 2 and square, has no scale and isn't parented.
    - make sure it is at z =0
    - first draw the outer path then the inner paths (right clicking in between )
    -make sure you have your Puppet2d/Models/Materials folder
    - pink objects indicate an error. Please send me the full error log
     
  36. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    Thanks. I'll try it again following your suggestions and if I can't get it right I'll with make a video or do a Google hangout as you suggested in your email.
     
  37. pishock

    pishock

    Joined:
    Jun 14, 2013
    Posts:
    1
    Hi, thank you for a great tool.
    I've hit a slight problem though: I am trying to bind an FFD mesh to a skeleton (similar to what has been done to the body in the croc tutorial). It seems to work, however, the binding is less than ideal, so what I'd like to do is to repaint the weights myself. When I start the Paint Weights tool, I see that the mesh has zero weights for all the bones, I only see weights for FFD controls. Is there a way to edit bone weights, i.e. how bone movement affects the mesh generated with FFD tool?

    Here are a few screenshots, if that helps:
    http://imgur.com/ttOQb7F
    http://imgur.com/wdwQuzY
    http://imgur.com/JscYwXZ

    Thanks.
     
  38. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Currently you can't paint weights for FFDs. (Painting weights is for skinned meshes) Instead you can change the weights for each FFD control in the inspector. Also if you want to change the bone assignments for a specific FFD control you can select the controls and the desired bones and click bind smooth skin.
     
    pishock likes this.
  39. funshark

    funshark

    Joined:
    Mar 24, 2009
    Posts:
    225
    HI there,

    Which workflow do you advise to work at the same time with controllers AND baked animations?
    Having two identical gameObject, one for working and the other for publishing?
     
  40. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    ''
    Have an animation character which has all the controls and its own simple animator controller. Use this to create the animations, and reset it after you bake (using version control eg GIT/SVN)
    The game global_CTRL will only have bones and skin, with the main animator controller using only baked animations.

    By the way - Baking animations is a trade off between increased CPU performance, but more memory usage (as baked animations have more keyframe information) So sometimes it maybe better not to bake, depending on whats better for your game.
     
  41. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Hi Everyone,

    Just to let you know I've released an update to Puppet2D (v2.4)
    Always make sure you back up before updating.

    Here's whats changed:

    - IK flip now animatable
    - Multi Edit FFD controls
    - Fix to allow FFDs to be modified after they've been created.
    - Squash & Stretch fixes
    - Skinning retains vertex colors
    - Memory Management & GC optimisations
    - Weight painting fixes
    - Fixed weight handle control

    If you would like to know anything about the update just ask.
     
    CarterG81 and Manny Calavera like this.
  42. ask80me

    ask80me

    Joined:
    Sep 17, 2015
    Posts:
    43
    Sale please!!!
     
  43. ask80me

    ask80me

    Joined:
    Sep 17, 2015
    Posts:
    43
    Hello. Discount PLEASE!!! Thank you for understanding.
     
  44. imtheproof

    imtheproof

    Joined:
    Jun 19, 2015
    Posts:
    4
    Hi,

    I recreated the Materials folder and updated Puppet2D to your recent release. This time I got a white object (instead of a pink). The 2 new files in the Materials folder are:

    New Game Object_MAT.met

    New Game Object_MAT.mat.meta

    I made sure the sprite is at z=0 and drew the outer paths first.

    Any ideas? Thanks
     
  45. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Did you select the sprite before you started creating the FFD? If you dont it will create a new FFD mesh and material not based on any sprite.
     
  46. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    I can't be sure when Unity will put it on sale, sorry :-(
     
  47. imtheproof

    imtheproof

    Joined:
    Jun 19, 2015
    Posts:
    4
    I'm clicking the sprite before clicking "Create FFD Tool" and I noticed that the FFD names are "FFD_CTRL_GRP_1", 2, etc. However, on the CoolCroc tutorial video, the FFD names are "CoolCrocBody_Ctrl_GRP_1". My sprite is "archer_pieces_torso", so should be FFD ctrl grp name be "archer_pieces_torso_CTRL_GRP_1" if it was working correctly?
     
  48. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Are you selecting the sprite in the hierarchy? (not in the project window)
    If so, could you make a video so I can see it going wrong - do u get any errors in the console?
     
  49. imtheproof

    imtheproof

    Joined:
    Jun 19, 2015
    Posts:
    4
    Thanks a ton, that was the issue. I was'n't clicking the sprite in the hierarchy.
     
  50. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    https://youtu.be/gefJ5IVETYU?list=PLLxqVHb4t86PUXYUo2G36YGjf7vSCXTLe
    In this video you start off showing a human leg and say it has three bones. To me that looks like 3 joints and TWO bones. Also in all of your videos you use the word bone when I think it'd be less confusing to use the word joint. When you name bones you do the same thing, for example. You select the 1st bone and call it leg, then the 2nd bone and call it knee (this is OK as it is a joint), the 3rd bone you call foot. But when these are selected it always looks like the joint is selected. So when naming 'bones' I think it is less confusing to joint names: use hip instead of leg, again knee is OK as it's a joint, then ankle for foot. For an arm, use shoulder instead of arm, elbow is OK, then wrist instead of hand. Your naming conventions always confused me because I'd try to select a bone but couldn't because in the Scene view a joint would always be marked as the object that is selected (well in the hierarchy you can select bones but it always looks like the starting point...a joint...is selected).