Search Unity

  1. Unity 6 Preview is now available. To find out what's new, have a look at our Unity 6 Preview blog post.
    Dismiss Notice
  2. Unity is excited to announce that we will be collaborating with TheXPlace for a summer game jam from June 13 - June 19. Learn more.
    Dismiss Notice

[RELEASED] Puppet3D - a professional rigging toolset for Unity.

Discussion in 'Assets and Asset Store' started by jamieniman, Feb 28, 2018.

  1. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    Yup, it is :)
     
  2. RendCycle

    RendCycle

    Joined:
    Apr 24, 2016
    Posts:
    330
  3. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    I'm not sure, any one else have both Puppet3D and Voxel Importer?
     
  4. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    Just to let people know, v1.4 is out - which has an export Skin and bones button. Just select the skinned mesh that you want to export and click:
    upload_2018-6-13_16-8-14.png
    (in the skinning tab)

    Currently it will export your newly skinned character's skin and bones into a collada file (works like an FBX). You can then take it into an external program - or make use of it with all of Unity's extra import settings.
     
    Mark_01, mishappp and Alverik like this.
  5. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    Just to let people know, v1.4 is out - which has an export Skin and bones button. Just select the skinned mesh that you want to export and click:
    View attachment 282911
    (in the skinning tab)

    Currently it will export your newly skinned character's skin and bones into a collada file (works like an FBX). You can then take it into an external program - or make use of it with all of Unity's extra import settings.
     
    Mark_01 and Alverik like this.
  6. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    Gues what I'm working on :)

     
    Mark_01, Alverik, disya75 and 2 others like this.
  7. TakaakiIchijo

    TakaakiIchijo

    Joined:
    Mar 16, 2013
    Posts:
    9
    Hi jamieniman, I've just imported Puppet 3D in my project on Unity 2018.1.1f.
    And I found some Unity functions are obsolete so I try to fix those with define directives.

    EventType.keyDown is obsolete after Unity 2017.3
    It appears in Puppet3DEditor.cs, So I put instead EventType.KeyDown like this:

    Code (CSharp):
    1. #if UNITY_2017_3_OR_NEWER
    2.                 case EventType.KeyDown:
    3. #else
    4.                 case EventType.keyDown:
    5. #endif    
    EditorGUIUtility.HSVToRGB is obsolute after Unity 5.3
    It appears in Puppet3DEditor.cs and Skinning.cs, So I put instead EventType.KeyDown like this:

    Code (CSharp):
    1. #if UNITY_5_3_OR_NEWER
    2.                     Color col = Color.HSVToRGB(hue * 1f, 1f, 1f);
    3. #else
    4.                     Color col = EditorGUIUtility.HSVToRGB(hue * 1f, 1f, 1f);
    5. #endif  
    I'm not sure those fixes could get correct results because I've just started using it, but it seems work well.
    Anyway, I think puppet 3D must be a great asset and I'm excited to use this.
     
  8. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    Yes, those should get update when you allow it to upgrade.
    I'm planning on losing support for Unity 5 soon anyway, as I need to use 2017 for the Blend shape feature I'm working on.
     
    Mark_01, Alverik and TakaakiIchijo like this.
  9. BinaryStylus

    BinaryStylus

    Joined:
    May 9, 2018
    Posts:
    3
    Ohh no - nearly everything I use is Unity 5. But I expect it will all upgrade! In fact - I don't care - It needs to.. So actually that's cool.

    Anyway :- The exporter functionality looks to be fantastic. I haven't tried it yet - I will this weekend. But it seems like it will allow me to do everything I could possibly want to do now. I'll be able to take an existing asset I've bought (use the mesh editor add-in) to add and change geometry - then use your stuff to add bones or remove bones or adjust them - adjust the vertex bone weights where they are a bit off - and then export a fresh mesh - re-import that - and use that new mesh with things like the Third Person Motion Controller. Does that work flow sound correct?

    Kindest regards,
    Tim
     
  10. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    Thats right.
    I think i just need to move to Unity 5.4 so should be ok.

    If you need to edit the skin weights of an fbx imported, i have a script ill be adding that converts it to a unity asset so you can modify it. Email me if thats something youd like im advance of the next release (puppet3dunity@gmail.com)
     
  11. Image3d

    Image3d

    Joined:
    Jun 20, 2008
    Posts:
    155
    Hi Jamieniman,

    Does Puppet3D support LOD ?
     
  12. DanTaylor

    DanTaylor

    Joined:
    Jul 6, 2013
    Posts:
    119
    Hi there! I am having a few difficulties using this new tool, and was wondering if anyone could answer some questions for me...
    1) Once I have created a skeleton using Auto Rig, how do I the tweak the bone positions? (E.g. I have the tops of the thighs too low, and I want to slide them up and regenerate the skin).
    2) In order to use the generated rigs with existing bipedal animations I Export the Skin and Bones, HOWEVER none of the UV Mapping is exported. Am I missing something?
    Thanks,
    Dan
     
    Last edited: Jun 20, 2018
    HeadClot88 likes this.
  13. Rumbleboxer

    Rumbleboxer

    Joined:
    Dec 26, 2012
    Posts:
    27
    Hi @jamieniman , is there a way to correctly orient the bones's rotation after creating them?
     
  14. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    309
    Congrats on the 1.4 release! Does it yet have the ability to rig and weight to existing custom avatars and their existing skeleton? If you remember, I picked this asset up early on after being led to believe it was possible, but as it turned out it couldn't yet do what I needed.
     
  15. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    I've done that for v1.5 still working on the blend shape feature, but once thats ready I'll be releasing it (hopefully soon).

    If you'd like a copy of v1.5 (as it is now) then email me puppet3dunity@gmail.com and ill send you a copy.
     
    Alverik likes this.
  16. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    Currently joints don't have separate orients to their rotations. This is a pretty big feature I hope to tackle one day.
     
    Alverik likes this.
  17. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    When using autorig, I would recommend just remaking the autorig with the handles in the new positions. This is so that all the controls get set up in the right places. I could do it manually but it would likely be quite fiddly. (This can be done by detaching the skin moving the bones and all the control parent gameObjects, then reskin the mesh to the bones)
    I've fixed it for the next release. If you'd like to get it earlier please contact me at puppet3dunity@gmail.com
     
    Last edited: Jun 20, 2018
  18. Rumbleboxer

    Rumbleboxer

    Joined:
    Dec 26, 2012
    Posts:
    27
    Thank you for responding. It's still an awesome tool. Hope to see this feature someday. Mad props.
     
    Alverik likes this.
  19. ChaseRLewis73003

    ChaseRLewis73003

    Joined:
    Apr 23, 2012
    Posts:
    85
    hm, seems Unity 2018.1.5f1 breaks this package AutoRigEditor.MakeGuides, CreateControls.CreateOrientControl and several other functions all say 'MenuCommand' is the only optional supported parameter. This breaks many of the menu items.

    Very interested in using the package, curious if there is an estimated timeframe when Unity 2018 will be supported.
     
  20. halley

    halley

    Joined:
    Aug 26, 2013
    Posts:
    2,491
    So I have been looking through all the doc and forum text along with the videos, and have been hovering over the "buy" button for a few days. However, my big question is whether this can be used to fill in the animation action gaps for existing Mecanim characters which already have a pile of FBX animations. Say I have a character, I buy a mega-library of stock animations, and then realize they didn't include a "kneel" or a "dive into water" animation. I want to be able to mix and match, export an FBX or something, and add it into the character like any other animation. Can Puppet3D work in that kind of workflow?
     
    Alverik and RendCycle like this.
  21. dl290485

    dl290485

    Joined:
    Feb 4, 2018
    Posts:
    160
    I don't know what I'm doing wrong.

    I click on the bone tool while the model is selected then click on the model, but it starts the bone off way into the distant void. There is nothing in the scene except the model which I want the bone to be placed into.

    Confusing me more is the fact that the tutorial video shows being made on to nothing but featuring circle node points and triangular connections. The 'bones' I'm making are just 1px wide lines with no node circles.

    I've had a go at this extension once using autorig on a humanoid, but right now I was trying to rig up a quadruped.
     
  22. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    309
    I appreciate the offer, I'll hang on til you've got it ready.
     
  23. RendCycle

    RendCycle

    Joined:
    Apr 24, 2016
    Posts:
    330
    I also have this question. o_O
     
    Alverik likes this.
  24. Rocktavious

    Rocktavious

    Joined:
    May 10, 2017
    Posts:
    44
    @jamieniman Really awesome job with Puppet3D - really makes the workflow nice and easy right inside of unity. +100. I was playing around with the demo scenes and models and playing with the IK/FK blending on the arms. I used to be an animator by day(now i'm a programmer by day) but when i was animating i found i prefer doing arm animations in FK mode always unless i need to "pin" the hand/wrist to a specific thing. With that said i noticed that the AutoRig Humanoid doesn't have a "shoulder" FK control - only Clav, Elbow and Wrist/Hand. Without a control for the shoulder its impossible to rotate the arms down to rest as the sides in an idle from the T pose (even though this is possible with IK + elbow pivot controls)

    I was wondering if you could add a "shoulder" FK control to the default humanoid rig? Or if you could direct me in how to modify your asset so that i could have this on my FK arms control rig.

    Thanks
     
  25. Rocktavious

    Rocktavious

    Joined:
    May 10, 2017
    Posts:
    44
    @jamieniman NVM - it seems the "scale" on the transform for the "shoulder" is super small making the handle gizmos draw super tiny. The same seems to be the case for Upper leg FK. (Image attached) I'm using Unity 2017.4.4f1.
     

    Attached Files:

  26. Rocktavious

    Rocktavious

    Joined:
    May 10, 2017
    Posts:
    44
    @jamieniman - Not sure if you have a way for the community to contribute back to puppet3D - but when i was an animator i wrote a selection tool to make selecting things in the rig much easier (really speeds up the animation workflow). So i dug out my old code and applied it to your puppet 3D asset in the Animation Editor tab. Here is a picture of the changes - happy to share the code if you'd like to integrate it into the asset for others. Its fairly straightforward changes. The only limitation is it only works with 1 rig in the scene because it selects the control rig by name.

    FWIW - i highly recommend setting up a Discord server (its free) for you assets for the community to congregate and chat / share code changes like this - or getting on one of the bigger discord servers - such as DevDog's - https://discordapp.com/
     

    Attached Files:

    Alverik and RendCycle like this.
  27. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    That's awesome! Share it with me (puppet3dunity@gmail.com). I'd need to test it, but it would be a nice addition to the tool. Thanks!
     
    Alverik and RendCycle like this.
  28. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    Yes, that needs fixing. I'll put it on my list :)
     
    Mark_01 and Alverik like this.
  29. Xomanowar

    Xomanowar

    Joined:
    Apr 2, 2014
    Posts:
    40
    Hello! My character is made of several unconnected parts, such helmet, gloves etc... I only can rig single mesh objects?
     
  30. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    You can rig multiple models to the same bones.
     
    Xomanowar and Alverik like this.
  31. Alverik

    Alverik

    Joined:
    Apr 15, 2016
    Posts:
    417
    I also have this same need: to create new animations on the fly for characters that already have a set of standard animations and have them play nice with each other. I know this can be done with baking, but, in my case, I'd specially like to be able to create new animations or poses while I'm using Timeline without baking the animation every time. Currently it doesn't seem to work... If I use a character with a modeRig, using a single unbaked animation made with puppet3D overwrites all non-puppet3D animations in an animation track, and animating the modRig controller's weights has either erratic or no results at all (scrubbing the timeline breaks the sequence)...

    I may be asking too much, but I really would love to be able to use character's with modRigs in Timeline, and have them use both standard and puppet3D animations without having to bake the animations every time. I don't mind it if we can't have animation blending between standard and puppet3D animations, as long as I can use unbaked puppet3D animations or poses to fill in for missing animations during a Timeline sequence, and/or maybe one day use them on Override tracks to override parts of existing animations (which would be so amazing to do right on the spot, without baking, but I know it would be hard to do with the current design, since what's really been animated is the controllers, not the bones themselves...).
     
    Last edited: Jun 29, 2018
  32. dl290485

    dl290485

    Joined:
    Feb 4, 2018
    Posts:
    160
    Is there a quick way to explain how to blend animation with scripts that move the limbs?

    I currently have my humanoid rig with a (Playmaker) script which uses iTween to move the right hand position and rotation to look like they are slowly reaching for a gun on their hip. The idea of the game is a bit like 'red light', where you look at them and they stop moving, so I need full control over that motion to change speed, timing, etc (which is why I'm using tween rather than animation).

    The first problem I've come into is that when the Animator is enabled the animation that plays overrides the tween script, even if the right hand isn't one of the animation keys.

    Is there a setting in the rig somewhere that will allow me to cancel the animation for particular parts (like the right hand) while having all other parts playing a set animation?
     
  33. jorisvanlaar

    jorisvanlaar

    Joined:
    Jan 5, 2018
    Posts:
    2
    Is this also usable for creature rigs like quadrupeds, birds etc?
     
  34. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    I'm currently looking at improving this use case,

    In any case here's a way to work as it is now:

    1. Set it to humanoid to make the modrig
    2. Now change it, and its animations to Generic (humanoid features will only be supported when I've done the keyframe exporting feature)
    3. Duplicate all the current animations, and keyframe all the global control sliders to 1 (body, arm left, arm right, leg left, leg right)
    4. In any of your control animations make sure you key frame all the global control sliders to 0.
     
    Alverik likes this.
  35. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    Yes, you can manually rig any type of character:
     
    Alverik likes this.
  36. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    Try unparenting the control (or its parent gameobject) at runtime and using animator.rebind to tell it that it has changed parent. Its a bit of a hack but it works I think.
     
    Alverik and dl290485 like this.
  37. mishappp

    mishappp

    Joined:
    Aug 9, 2017
    Posts:
    11
    Hey I'm trying out your asset here to rig a spider, I have a mesh collider on the legs but when I go to add a bone it shoots straight through into the ground instead of hitting on the mesh. What am I doing wrong here?
     
  38. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    You should ideally rig it in an empty scene - it basically checks for any collision, so the the collider on the ground is most likely interfering with it.
     
  39. dl290485

    dl290485

    Joined:
    Feb 4, 2018
    Posts:
    160
    I had a similar problem. As mentioned in the other reply, first start by using an empty scene. Second though, go check your collider and make all is working. Turn the mesh renderer off to make sure you see the green outline of the collider. Maybe even drop a rigid body object on it to check for the collision. When I started looking into this for myself I found that the mesh renderer wasn't working properly for some of my models.
     
  40. ina

    ina

    Joined:
    Nov 15, 2010
    Posts:
    1,085
    Hi! On moving the IK controls at runtime, would you recommend another method than just directly moving the control transform (i.e., script manipulating transform.position etc) ?
     
  41. marcusestes

    marcusestes

    Joined:
    Feb 2, 2017
    Posts:
    17
    I'm having the same issue with 2018.1.7f1.
     
  42. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    Did you let Unity upgrade it? It should be working fine in 2018,1,7 (just opened it myself and it worked, those warnings shouldn't be breaking it).

    You should be able to right click and re-import Puppet3D, then tell it to upgrade.
     
  43. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    The issue is if you have animation on the control it wont work.
    There's a trick that can make it work though:

    Unparent the control (or its parent gameobject) at runtime and using animator.rebind to tell it that it has changed parent. Its a bit of a hack but it works I think.
     
  44. ina

    ina

    Joined:
    Nov 15, 2010
    Posts:
    1,085
    Is there a way to set joint movement limits, at least for Humanoids?

    It seems the IK/FK controls are pretty limited and doesn't account for the limits case, i.e., will rotate your entire leg or arm > 360 degrees (and other movements that will break your arm)
     
  45. ina

    ina

    Joined:
    Nov 15, 2010
    Posts:
    1,085
    Cool! Are you saying it is somehow officially possible to have the character be under a regular mechanim animation and still modify the controls at runtime? The current way I am able to do this is to just have LateUpdate keep forcing the control there, but this seems to add unnecessary processing per frame. Is there a better way to have your controls override some parts of an existing Mecanim animation at runtime?

    (Also, for runtime update, it should be on the _CTRL_GRP transform and not the _CTRL (editor only right?)
     
  46. ina

    ina

    Joined:
    Nov 15, 2010
    Posts:
    1,085
    Is there a way to scale a character once these controls have been added? Or a way to globally scale all the controls?
     
  47. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    This method means you can actually override the _CTRL itself. Otherwise if you want you can move the _CTRL_GRP without this method, but any animation on the _CTRL will still remain (just relative to the new _CTRL_GRP position)
     
  48. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    It doesn't have limits at the moment. Its designed for the use of an animator - in my experience, for the animator, its better not to have bone limits as these restrict the rig to much.
    I understand how limits are useful when using the controls in runtime - but currently this isn't the primary use case so its lower down on the feature list.
     
  49. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    You can scale the global control to scale the character up or down itself.
    You can change the size of each control in the inspector for that control.
     
  50. ina

    ina

    Joined:
    Nov 15, 2010
    Posts:
    1,085
    Tried scaling the Global Control but it seems to lead to the other controls all getting awry?
     
  51. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    988
    Just tried - the other control handle scales don't scale in proportion to the global control - looks like a bug I need to fix. Work around would be to manually correct the control scales to make selection easier when the global control is at radically different size