Search Unity

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

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

  1. HeadClot88

    HeadClot88

    Joined:
    Jul 3, 2012
    Posts:
    736
    Hey - Just discovered Puppet3D.

    Got a few questions -
    1. Are fingers going to be an option for auto rigging? I saw this on the Puppet 3D roadmap. Just asking for clarification.
    2. Will there be optional support for facial rigging?
    3. Is there any plans for supporting Quadrupeds?
     
  2. UnityRocksAlt

    UnityRocksAlt

    Joined:
    Dec 28, 2015
    Posts:
    157
    Is there a way to mirror keyframes, it is tedious to copy/paste and change values.

    Puppet3D is still awesome though. It is the best tool, minimal interface, intuitive workflow congrats
     
  3. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    309
    Your post and the silent video were very helpful... thank you! The process didn't work completely as it does in the video for me, though. It never adjusted the shader to the Puppet3D shader to display the weighting, and then at the end I had to switch the shader back manually as well. Still, I was able to get through the steps and manually paint some weights for the first time, woohoo!
     
  4. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Yes. My plan is first to implement driven keys (these will be custom animation sliders you can set up). Then using this feature I'll hopefully make automated version for the humanoid fingers.
    The driven key feature will hopefully be great for this.

    (At the moment you can make bones for the fingers and face and create "Parent/Orient" Controls to make animating them cleaner.)
    You can manually rig quadrapeds now.

    Hopefully i'll add multi-bone IK in the future which would work great for animal legs.

    I have no plans for any autorig quadrapeds yet.
     
  5. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Animation mirroring. Yes, ill add that to my future feature list. :)
     
  6. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Was your character a previously skinned FBX? If it is you'll need to detach it from its previous bones and reskin it. This is so that it creates a new mesh with all the new skin weights. (The skin weights are stored in the mesh file which should get saved in the same folder as your source character model). If its still using a mesh which had weights on it before, that may be whats causing it to update and lose your skin weights.

    Do you think that could be whats causing your issue?
     
  7. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    309
    Unfortunately, this asset does not appear to work for me.

    What I need it to be able to do is to rig clothing to an existing avatar skeleton. With your help, I was able to get the mod rig setup to work and was able to paint weights, but the way that process appears to work is to change that existing avatar skeleton by adding its own skeleton structure (I'm guessing that's what the JNTP structure is). That's no good for me, since what I need is to be able to do is to rig the clothing to the existing skeleton.

    I am making clothing for a Unity-based virtual world (called SineSpace). The way that works is I set up the rigging for one of the avatar skeleton models, and then I upload the clothing item to the virtual world's servers for processing. Since Puppet3D doesn't actually weight it to the existing model (instead it appears to create a modified version), the uploaded content does not rig to the in-world avatar.

    Is there a way to get Puppet3D to rig to the existing avatar and its existing bone structure? If not, I can't use this tool.
     
  8. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    You only need to use the Mod-rig feature if you're planning on changing or making new animations.

    Otherwise instead what you want to do is take you're characters bone gameObjects and add the Bone component to them (its a Puppet3D component). Then you can select all the bones and you clothing mesh and skin them.
    You'll need to make a prefab of this new clothing mesh with the bones, so that the new clothing model will know its linked to those bones.
     
  9. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Just to let everyone know I've released an update (v1.1)
    Here's whats changed:

    - Now Supports Submeshes
    - Fixed - Global control moves ModRig
    - Fixed, hold Ctrl to remove weights
     
  10. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    309
    Like I said, I need to be able to have it work with the existing avatar/character models... as is. Adding a bone component or any other changes doesn't work.

    I am making clothing content for a Unity-based virtual world. I then upload that clothing (and just the clothing) to their servers, where it is applied and worn on the avatar models by players/users.

    I've got local copies of the male and female avatar models for the purpose of design reference and for rigging, but my uploads are my own content only, I am not able to upload changes or additions to the system avatar itself.
     
  11. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    ooh I see. I was going to say you can actually remove the bone components after you skin it - but you'll still need it to be a prefab and shared as a unity pakage if you want to give it to someone else.

    Sounds to me you'll be needing an export skinned model feature. Its actually high up on my to-do list. When I do its likely to be a collada file (works like an FBX).
     
  12. HitsuSan

    HitsuSan

    Joined:
    Sep 28, 2014
    Posts:
    158
    Nope, i've got a skinned body on it's own fbx and the unskinned helmet on a separate fbx. I'm skinning the tail on the helmet and then i'm attaching the helmet on the body hierarchy in the scene.
     
  13. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    309
    I can probably work with a collada file (though ideally I'd prefer to keep with fbx format).
     
  14. ikemen_blueD

    ikemen_blueD

    Joined:
    Jan 19, 2013
    Posts:
    341
    Can I export the final result out as a normal FBX file?
     
  15. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Not yet, ill be hopefully doing a collada file export which can be converted to an fbx using the autodesk tools. Though coĺlada files work in unity in the same way as fbxs
     
  16. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Are you able to email me a pic of what youre doing? Puppet3dunity@gmail.com
     
  17. UnityRocksAlt

    UnityRocksAlt

    Joined:
    Dec 28, 2015
    Posts:
    157
    Sometimes the rig breaks when you break out of play mode, you have to rig animations again. Or when you select object other than rig when animation recording is on I think. Thankfully the animations are not lost.

    I will let you know how to reproduce this bug, as this is happening frequently
     
  18. HitsuSan

    HitsuSan

    Joined:
    Sep 28, 2014
    Posts:
    158
    Let me update everything and retry, i'll make you a video right after if still happens.

    Edit: Done and sent.
     
    Last edited: Mar 28, 2018
  19. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Is your model an FBX? I just discovered a bug with non-fbx meshes that I think I've got a quick fix for:

    open the skinning.cs and change line 1064 to this:

    Code (CSharp):
    1. if (extension == ".asset")
    2.  
    (if you're model is an FBX please let me know, as this would mean its a bug I'm unaware of)
     
  20. UnityRocksAlt

    UnityRocksAlt

    Joined:
    Dec 28, 2015
    Posts:
    157
    The model is FBX:

    NullReferenceException: Object reference not set to an instance of an object
    Puppet3D.IKFKBlend.RunConstrianedControls () (at Assets/Puppet3D/Scripts/Controls/IKFKBlend.cs:88)
    Puppet3D.GlobalControl.Run () (at Assets/Puppet3D/Scripts/Controls/GlobalControl.cs:246)
    Puppet3D.GlobalControl.LateUpdate () (at Assets/Puppet3D/Scripts/Controls/GlobalControl.cs:230)

    This repeats like more than 80+ times.
     
  21. csofranz

    csofranz

    Joined:
    Apr 29, 2017
    Posts:
    1,556
    This looks amazing, especially for someone like me who isn't a 3D artist but hardcore coder. So two questions, and please use only small words when responding :)

    How does P3D interact with other IK solutions? I'm using FinalIK for some of my animations - will they work together seamlessly or will I need to manage precedence of scripts?

    Can I use this to add bones to an existing 3rd party skeleton and then use it with other extensions? I'm also using DynamicBone - will that asset be able to transparently use any bones I've added to an existing model with P3D?

    Oh, and on a completely unrelated topic: your asset store entry for P3D links to the P2D ("*two* dee") website that has no link to your 3D site.

    Thanks,
    -ch
     
  22. ecutruin

    ecutruin

    Joined:
    Aug 19, 2014
    Posts:
    39
    This project looks rather interesting. One of my biggest curiosities is if this can rig ProBuilder models. Given how ProBuilder is a Unity package now (as of 2018.1, I believe), it seems like it would be rather useful to be able to model and rig right within Unity.

    I suppose a follow up question would be if there are plans to make this Mecanim compatible in the future?

    Edit: Given you use your own bone setup (from what I understand), does this also mean existing humanoid animations are not supported?
     
    Last edited: Apr 1, 2018
  23. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Hmmm, this could be because of the latest update, the modrig needs to reference the globalControl, and this only gets assigned when you first make the modrig. You might want to remake the modrig (all animations should all work all the same)
     
  24. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Not sure really, I don't have FinalIK.
    I've already seen someone use DynamicBone with Puppet3D - so you can do that.

    If you have some external bones - you just need to add the Puppet3D bone component to them and then you can bind other meshes to them or create controls on them as normal.

    Oh - yeah thats the linke to my publisher site. Will need to add a link to Puppet3D when I get a chance. Thanks for the heads up :)
     
  25. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    I'll be releasing a fix very soon to allow the use of non-fbx models. Then you'll be able to export your probuilder model as an obj and rig it using Puppet3D.

    The next stage will be the collada exporter. This will essentially make any animations made go back into the Mecanim system.

    You can make use of all Humanoid animations with ModRig - its just that subsequent animations will not have the humanoid features you see on the import settings.
     
  26. ecutruin

    ecutruin

    Joined:
    Aug 19, 2014
    Posts:
    39
    Sounds great. Do you have any idea of a rough ETA on the collada stuff? Sounds like this would be perfect for me once those are available.
     
  27. andyz

    andyz

    Joined:
    Jan 5, 2010
    Posts:
    2,276
    Wow just being able to skin a mesh in Unity is cool, but then you can animate with IK...!

    Can you also update IK in code for walking on terrain, grabbing items etc?
    If you animate with IK like that on the arms, you might then want to bake the animation later to reduce runtime overhead
     
  28. eagleeyez

    eagleeyez

    Joined:
    Mar 21, 2013
    Posts:
    406
    Holy Guacamole! After reading all this and taking a look at the tutorial videos, this seems to be one of those products in Unity that Unity will eventually buy like ProBuilder, Text Mesh Pro and many hundreds more that I have supported over the years are now free.

    I have just purchased this Asset and will have time over the weekend to look at it. It imported fine and looks good.
    If you get fingers working you’re on your way to great success. Put fingers on your number 1 top list of things to get done ASAP.

    Also, think about animation problems that many have like getting in cars, maybe opening the door, driving a car, bike, and so on and on. Make llife easier for the animation process too and you’re a winner.
    Well done and keep up your good work


     
  29. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    working on both collada and finger rigging at the moment - they're quite hefty features so may take a month or so. I'll try to keep everyone informed on how its going :)
     
  30. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    IK can all be controlled at runtime.

    Theres also a bake to bones feature as you said - if you really need to free up some CPU
     
  31. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    You can actually already use Puppet3D to manually rig fingers at the moment. But of course I'm working on making that much better. :)
     
  32. ecutruin

    ecutruin

    Joined:
    Aug 19, 2014
    Posts:
    39
    Sounds good. I'll keep an eye on the thread, definitely looks like something that could be right up my alley.
     
  33. vamky

    vamky

    Joined:
    Aug 9, 2014
    Posts:
    70
    Alverik likes this.
  34. eagleeyez

    eagleeyez

    Joined:
    Mar 21, 2013
    Posts:
    406
    Cool, I didn't realize that. I will give it a go but I also look forward to more automatic finger rigging. Your product is great.
    please add a hotkey to turn off all controls except the selected one you are working with. Then pressing the hotkey again would show all controls so that you could select another one and then pressing the hotkey again would hide all other controls. This will save clutter on screen. Also a global handle size option, so I can set the size of all handels at once.

    Great product, keep up the very good work you are doing here.
     
  35. namdo

    namdo

    Joined:
    Feb 23, 2015
    Posts:
    200
    I just found this and I'm interested in it. Will I be able to use it to alter animations in scene. For example, I have a scene where I need a characters hand to be on an object but it was animated in a way that the hand isn't fully on the object.

    Can i use this software to update it?
     
  36. HitsuSan

    HitsuSan

    Joined:
    Sep 28, 2014
    Posts:
    158
    A bone mirroring function will help a lot in the mean time :)
     
  37. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Yes, you can use the modrig feature to do that
     
    Alverik and chelnok like this.
  38. UnityRocksAlt

    UnityRocksAlt

    Joined:
    Dec 28, 2015
    Posts:
    157
    I would like to ask this very important thing as it can cause slight delays. I already have animations say idle, attack, etc Noe when I bake them - they become idle_Baked.

    Assume I change the original idle animation ("idle") and click Bake, will it create new animation file idle_Baked2. Not a big deal, but I really wish it replaces. If it does not replace, will you please write some code and make an option?

    I might need to send you an email.
     
  39. UnityRocksAlt

    UnityRocksAlt

    Joined:
    Dec 28, 2015
    Posts:
    157
    Also another question, there is an animation that toggles an object on/off but also uses hands. When I bake this animation, the object does not appear. I will try again and let you know.

    Is this a glitch?
     
  40. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Currently only the bone animation bakes. You'll need to copy the other animations over manually. You can do this using CTRL-C and and CTRL-V between the animation clips.
     
  41. dozhwal

    dozhwal

    Joined:
    Aug 21, 2014
    Posts:
    59
    Hi,

    Thx for this new tool !
    I didn't try it yet (and will there be a trial version ?) but i'm asking myself if there is a morph feature ?
    I am making clothes for characters, and while rigging is not too hard, morph application to cloths is.
    Do you plan to add any solution to this ?
    (i'm trying to make clothers for MCS Morph3d characters and the tool they provide is not working well)
    Sorry if i'm off topic ! ;)
     
  42. daville

    daville

    Joined:
    Aug 5, 2012
    Posts:
    303
    Hi I just found out about this asset.

    I few questions before buying.

    Do rigs made with this, become a .fbx that can be used elsewhere?
    Do Rigs made with this have to be animated using it's own animation tools?

    Some practical cases of my questions:
    Can I rig here, and use an humanoid animation downloaded from mixamo?
    Can I rig here, and use uMotion to animate?
     
    chelnok likes this.
  43. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    You can skin clothes to bones, and paint/adjust the skin weights as necessary.
    There isn't a blend shape feature yet though.
     
  44. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    I'm working on an exporter as the moment. It will be in collada format - (collada files easilly be converted to fbx using autodesks fbx converter tools, collada files also work the same as fbxs in Unity).

    Puppet3D rigs can be animated in anything that can animate a gameobjects transforms. That could be any of Unitys inbuilt animation eiditors, or any other Unity assets that have their own animation editors will work.
    In theory if you managed to mimic the exact skeletal hierarchy it would work. Ideally, this would be better when the export feature is made, as then you'll be able to make it into a mod-rig and import and retarget the animations via the mechanim system.
    Haven't tried, but in principle I would certainly imagine so. Puppet3D is a rigging tool. Once you've made a rig you can animate it in anyway you like. In the end the controls are gameObjects that can be manipulated however you want. For example adding rigid bodies to the hand and leg controls can be fun :)
     
    Alverik, vamky and daville like this.
  45. KumaBeer

    KumaBeer

    Joined:
    Dec 13, 2016
    Posts:
    16
    Looks like submeshes with different materials does not work. upload_2018-5-2_10-54-40.png
     
  46. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Could you check what version of Puppet3D you're using. That should have been fixed since v1.1 (its on v1.2 now)
     
  47. KumaBeer

    KumaBeer

    Joined:
    Dec 13, 2016
    Posts:
    16
    Yes, it is 1.1 but on 1.2 it does not work also(dont rig all)
     
  48. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Thats really odd. Could you perhaps email the offending character so i can see what the issue is. Puppet3dunity@gmail.com
     
  49. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Just seen what the issue is. The skinning has trouble when the root model name is the same as the mesh model name. If you rename the root model that should fix it - I'll fix it for next release.
     
    Last edited: May 3, 2018
  50. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Just found a bug with the latest release with voxel skinning. I've submitted an update - but in the meantime if you search for the following line in the skinning.cs script and comment it out it should be fixed.

    Code (CSharp):
    1.                 Undo.RegisterCreatedObjectUndo(VoxelsGOParent, "voxel");
    2.