Search Unity

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

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

  1. UnityRocksAlt

    UnityRocksAlt

    Joined:
    Dec 28, 2015
    Posts:
    157
    How do I locally offset the position, so say he moves 1 unit forward, from (0,0,0) to (0,0,1), and when I bake it only his bones are baked. Now if I add position, he will move from (0,0,0) to (0,0,1) and not from his lcoal position one unit ahead. Even when Root Motion is applied it does not work
     
  2. UnityRocksAlt

    UnityRocksAlt

    Joined:
    Dec 28, 2015
    Posts:
    157
    Ok it worked, when I clicked it, sometimes Unity is buggy. After restart.
     
  3. trilobyteme

    trilobyteme

    Joined:
    Nov 18, 2016
    Posts:
    309
    Do you have any kind of ETA on when this might be possible?
     
  4. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Working on it at the moment. Cant give you an exact eta as its quite an involved feature to implement. Had my first breakthrough today though - managed to export the demoman with the correct skin weights (only his bones were all flipped in the yz plane!)
     
    mensch-mueller likes this.
  5. MP-ul

    MP-ul

    Joined:
    Jan 25, 2014
    Posts:
    230
    FK-IK match? or Auto IK-FK match? is a neet tool that will give you more controll over the rig.
     
  6. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    There's also a "limb" control maker, which sets up IK/FK on any 3 bone setup you make.

     
  7. UnityRocksAlt

    UnityRocksAlt

    Joined:
    Dec 28, 2015
    Posts:
    157
    I need a solution, how do I move the rig down but not it's actual whole position? For instance when he crouches, he is not in the same place since his legs are bent, so you have to move him down. But the only way to do this is to move the whole rig so entire transform changes.

    When I just select all children, and move them down, the rig bugs out. I try not selecting the controls and then see, it still bugs out. Please let me know as my project is on halt.

    Or I will have have to redo the animation
     
  8. Zdemo

    Zdemo

    Joined:
    Oct 2, 2016
    Posts:
    2
    How to convert rig into unitys avatar?
     
  9. RainyMcMaddin

    RainyMcMaddin

    Joined:
    Dec 15, 2017
    Posts:
    1
    Is there already a solution? I think the keyboard controls are wrong. Smoothing works, add "white" and remove to "black" not

    Your update solved it, thanks! Great tool
     
    Last edited: May 10, 2018
  10. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Not 100% clear on what you are asking.
    You can move the whole character around by moving either:
    • The global_CTRL itself
    • These controls: spline_Ctrl_1, spline_Ctrl_2, fooL_CTRL, footL_POLE, footR_CTRL, footR_POLE, handL_CTRL, handL_POLE, handR_CTRL, handR_POLE
     
    UnityRocksAlt likes this.
  11. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    I'm working on the rig export. Once this feature is ready (getting there - I had a breakthrough yesterday), you'll be able to export it and add an avatar to it.
     
  12. therewillbebrad

    therewillbebrad

    Joined:
    Mar 2, 2018
    Posts:
    151
    Anyone have reports on how well this works with final ik and umotion?
     
    Willbkool_FPCS likes this.
  13. UnityRocksAlt

    UnityRocksAlt

    Joined:
    Dec 28, 2015
    Posts:
    157
    That is one solution I knew, but is there any solution where you just write code and suddenly offset everything by a certain amount. Because I am used to Puppet3D I can do it fast, I know that you cannot write code in editor (likeOdin) and manipulate the bones in animation, that is not allowed.

    Either way, I am really happy with Puppet3D
     
    Last edited: May 14, 2018
  14. UnityRocksAlt

    UnityRocksAlt

    Joined:
    Dec 28, 2015
    Posts:
    157
    Another question, I have an animation like say climbing up stairs, where he moves up. The main transform does not move, I just move the whole character by spline_Ctrl, spline_Ctrl_2, etc But when I bake the animation, how do I make it in place? Is there some way to way to make sure the entire animation takes in place.
     
  15. UnityRocksAlt

    UnityRocksAlt

    Joined:
    Dec 28, 2015
    Posts:
    157
    I guess one solution is since he does not offset as whole is to move him after animation. Well. Let me know if there is another solution.
     
  16. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Thats something root motion will help with - but you'll need to wait for the animation (and model) export script to make use of that. I'm currently working on the skinned model exporter
     
  17. UnityRocksAlt

    UnityRocksAlt

    Joined:
    Dec 28, 2015
    Posts:
    157
    No there is code needed for it which has to be written in api, like offset all the bones by this amount like that, etc, I know of root animation. I had to redo some animations. But is there anyway for instance, when I ad a NEW ANIMATION, and I wish to bake, every animation is baked and the old ones have to be deleted. Is there any way to to replace the animations when they are baked and they exist and not have to replace them in Animator.

    Because I have more than 100 animations done with Puppet3D!
     
  18. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Wow 100! Perhaps you could batch rename them externally and copy them over the original animations. (After backing them up of course)
     
  19. UnityRocksAlt

    UnityRocksAlt

    Joined:
    Dec 28, 2015
    Posts:
    157
    I tried that before buddy, it breaks links in the animator that is why I asked. Well, I found a better way. I am facing another problem, one of my Puppet 3D character does not seem to update whole position in Animation tab, like say if the at 0:00 the z position is (0,0,0) and at 0:10 the position is (0,0,10), the last position is also applied to all frames!

    Why is this?
     
  20. ParadoxSolutions

    ParadoxSolutions

    Joined:
    Jul 27, 2015
    Posts:
    325
    @jamieniman

    Hello,

    Would Puppet3D be adaptable to work at runtime? I'm working on in-game mod tools and am looking around for a good runtime rigging solution before I write my own. Is the editor code modulated so I could copy functions into monobehaviours for use at runtime or is it completely dependent on the UnityEditor class?
     
  21. UnityRocksAlt

    UnityRocksAlt

    Joined:
    Dec 28, 2015
    Posts:
    157
    Will you please kindly add mirroring, I can't add it through code because Unity doesn't update in animation in edit or run time in Animation Tab. Please
     
    awesomedata likes this.
  22. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    I actually came to this topic to request that feature.

    @jamieniman

    Everything else looks really good! -- the only other thing that seems to be "missing" is setting the number of finger bones that are generated in the autorig (...or am I missing that option someplace?)

    Maybe the only other thing I could see adding (to put the final cherry on top) is setting blendshapes for the face (perhaps by using something like Probuilder to move the verts around, or making a circle-brush tool with some nice falloff settings?) This would be amazingly-useful and would pretty much give this the "Animation in a box -- inside Unity" tag it so totally deserves. :D

    This tool actually looks quite amazing for everything it does. Keep up the good work man! -- I hope to see these last couple of features soon! D:
     
  23. Yasuchiki

    Yasuchiki

    Joined:
    Jun 19, 2015
    Posts:
    4
    Hello, Please tell me how to use DrivenKey.
    I would like to rotate the additional bones of the hip according to the rotation of the character's thigh bone.
    Is it possible to adjust in the graph editor in the same way as maya?
    Thank you for your consideration.
     
  24. barryhuang

    barryhuang

    Joined:
    May 15, 2015
    Posts:
    1
    HI, i have a question.

    How can I set up spline control with a existed bone chain?

    I have a imported octopus model which is already rigged in maya. It already has bone chains on its tentacles already. But the spline tool in puppet3D can only generate bone chain by itself along with the controllers. I didn't able to figure out a way to apply spline controls onto the already existed bone chain yet.

    Is there any ways I can do this with puppet3d?
     
  25. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    The controls (IK etc) are all runtime.
    Other features like autorig and skinning are editor scripts. It would take some thought as to whether they can be converted to easily runtime scripts, I know there's lots of Undo commands there, and it has things connected to the Editor Window for example.
     
  26. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    There's a number of things you could be referring to when you say mirroring. Do you mean flipping the animation itself, or the bones (when you create them), or mirror skin weights?
     
  27. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Blend shapes like that would be an awesome feature to add.
     
    awesomedata likes this.
  28. UnityRocksAlt

    UnityRocksAlt

    Joined:
    Dec 28, 2015
    Posts:
    157
    Flipping bones, basically making Y, Z negative like that.
     
  29. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    Both of these. As fast as it is to create bones/weights (minus finger bones) with autorig, with finger bone creation (which apparently I have to do manually), that can get tedious when trying to make sure they're considered "mirrored" by my modeling program.

    @jamieniman -- Does this option exist already someplace?
     
  30. MadeFromPolygons

    MadeFromPolygons

    Joined:
    Oct 5, 2013
    Posts:
    3,983
    Are you still working on blend shapes and rig exporting? Basically the only 2 reasons we have not purchased yet.
     
  31. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Bone Mirroring and skin weight mirroring is def on my todo list.

    I've recently added fingers to the autorig (theres a fingers checkbox - ticking this before making guides adds the finger guides) - it currently assumes your character has 4 fingers + 1 thumb. If you're character has less then you can hide the other finger bones after it does the rig.
     
    Last edited: Jun 2, 2018
    awesomedata likes this.
  32. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Currently working on the export feature. Blend shapes is a big one I'm looking forward to tackling. One step at a time :)
     
    MadeFromPolygons and awesomedata like this.
  33. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    At the moment spline controls work only on newly created bones. I'll add this one to my feature list.
     
    Alverik likes this.
  34. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    Could you make a few checkboxes on the auto rig panel to auto-hide the fingers we don't need after auto-rigging is complete?
     
  35. rapidrunner

    rapidrunner

    Joined:
    Jun 11, 2008
    Posts:
    944
    Hi, I was wondering about this package for a while; and I hope you can give me some answers.

    I can see that you can rig from scratch, kinda like Mixamo autorig (which is free); but the advantage here is to be directly in Unity, so I assume that the rig you create, will take advantage of the whole mecanim features?

    What I am trying to figure out, is if I can re-target any animations I already have, when using your tools. With Mixamo I can do that, because their rig is set to work with their animations; so importing a mixamo rigged mesh, and loading mixamo animations, works out of the box. While if I want to use different animations, I end up having to fiddle a bit, which takes time.

    Another issue is related to meshes that use clothing or armor parts; does the rigging account for that, allowing me to be able to rig one figure with all the parts on it, and then remove them or swap them at will? To do so I spend I lot of time jumping between software packages, so if your solution save me time and simplify my workflow, I will be more than happy to pick it from the store.

    Thanks in advance!
     
    MadeFromPolygons likes this.
  36. MadeFromPolygons

    MadeFromPolygons

    Joined:
    Oct 5, 2013
    Posts:
    3,983
    Well I will take your word for it, bought a copy today :)
     
  37. MadeFromPolygons

    MadeFromPolygons

    Joined:
    Oct 5, 2013
    Posts:
    3,983
    Any idea how long this will take to complete? We just purchased and are happy to wait for the blendshape feature, but being able to use the rig in DCC apps, retarget etc is a must :)
     
  38. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Email me at puppet3dunity@gmail.com and I'll send you a copy of the current export process - its WIP, but perhaps you'll find it useful.
     
    MadeFromPolygons likes this.
  39. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    If you have a character with bones and have animations already, you can use the ModRig feature to apply a control rig to it. Then you can blend it back and forth to the control or the source rig - allowing you to make use of both the imported animations or new animations made with Puppet3D. (Or a blend of both) See here:


    Animations made with Puppet3D's Autorig will automatically work on other Puppet3D Autorigged characters (with different proportions), as well as on a ModRig.



    You can keep on skinning meshes to the bones however you like, yes Puppet3D will work for adding clothes to your models.

    (NB if you want to skin to bones not made by Puppet3D, you just need to first add the Puppet3D bone component to them)
     
    rapidrunner likes this.
  40. MadeFromPolygons

    MadeFromPolygons

    Joined:
    Oct 5, 2013
    Posts:
    3,983
    thanks very much will do tomorrow :)
     
  41. Yasuchiki

    Yasuchiki

    Joined:
    Jun 19, 2015
    Posts:
    4
    Hey! I seem to have overlooked my last post so I will ask you again.

    I heard that there was no information in the manual nor in the tutorial video.

    How do I use DrivenKey? please tell me.
    You can move and rotate the additional bones of the hip in conjunction with the rotation of the thighs, right?
    It would be great if you could edit the graph if possible.

    Because DrivenKey was a long-awaited feature, I thought that it would add a SetDriven function similar to MAYA, but I have already purchased it, but if it is not such a function, it is too bad but there was no meaning to purchase for me.
     
  42. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Hi,

    Apologies, must have missed it. The driven key feature is in early devlopment, I'm going to be improving it going forward hopefully.
    - here's a quick guide to how to use it currently:

    upload_2018-6-5_17-37-3.png

    Select the driver object and click "Set Driver". This will add the Driven Key script to it.
    Now select all the objects you want to drive and click Set Driven. It will set their current local position and rotation as the initial position.
    Move the objects to the target position and rotation and click "Set End Position". This will set the end position and rotation to their current local pos and rotation.
    Now toggle the Enabled check box to make it work.

    Eventually the plan would to make it like the Maya Set Driven Key - but this is a first step.
    Currently its great for making little controls for face rigs, or even a rudimentary foot roll could be done with it. I'm currently using it on the fingers to do an open-close control
     
    I_hope_Unity_DIES likes this.
  43. awesomedata

    awesomedata

    Joined:
    Oct 8, 2014
    Posts:
    1,419
    @jamieniman -- Regarding manual "weight painting" -- would you mind giving the option to make a sort of interactive cylinder (and sphere) shape around the joints that would use a slider to set the distance and falloff (or radius and feathering) of the weights between all selected bones (summing up to 1.0 where other bones are not connected) for a fast "skinning" process?

    Currently there is nothing out there yet that does this, but it makes total sense to do skinning tweaks to weights for stuff like arms/tentacles (cylindrical) and torsos/volumes (spherical) in this way, instead of painting them and haphazardly getting their blending "correct" like you attempted to do in the video (especially where "fixes" exist in places where long bone chains or spherical areas of influence occur, where straight voxel-weighting is looking too rigid) --

    Another tool/utility built right into the weight-painting "tool" (for particularly tricky or "bendy" areas) would be to let one paint a small number of bone weight influences at a time (for a small subset of selected bones and meshes) to easily visualize blending on a particularly tricky (usually "bendy" or armor- / mesh- heavy) area a LOT more easily when you're hand-painting the weights. This will ensure that you don't accidentally paint over another bone's influence (and also on a mesh you didn't intend to paint on, since it won't paint if the mesh is selected). :)

    To be clear, these would each take the form of separate "tools" in a "skinning toolbox" with inspector properties that each allow you to fine-tune your weight-mapping result after initially voxel-mapping your weights. You'd just have to pick a bone (or a group of bones) and a mesh (or group of meshes) to operate on (except in the case of the paint tool, where you could do either one bone or many [connected] bones and operate on the whole mesh or just parts of it if you wish to). Ensure there's a multi-bone/multi-mesh selection mode for each tool before they become active (otherwise default to painting or operating on the whole mesh). :)

    This would make this the go-to skinning tool for everything "skinning" related! :D
     
    Last edited: Jun 6, 2018
  44. rapidrunner

    rapidrunner

    Joined:
    Jun 11, 2008
    Posts:
    944
    Thanks for the reply; I assume that once rigged, the mesh can be saved in a package and re-used it; or do I need to import every time also the puppet3d package?

    BTW I am not planning to animate using the puppet3d functionalities; I will be mostly using it for rigging; since it can work offline and it is integrated in Unity. I wish you had a demo package to try it out; thanks again for the reply!
     
  45. MadeFromPolygons

    MadeFromPolygons

    Joined:
    Oct 5, 2013
    Posts:
    3,983
    @jamieniman Just wanted to say well done on getting featured on the unity blog, I also commented congratulating you on the official blog post too :)
     
    jamieniman likes this.
  46. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    I'm with you, a couple of those features are already on my list. Transfering skin weights is also a big one for me. In maya I often like to make a low res version of the character and transfer the weights over to my high poly one.

    On a related note - I've found a silly error in the Voxel skinning algorithm I'll be submitting a fix for very soon. It'll hopefully improve the default weights you get a lot.
     
  47. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    Thank you so much!
     
    MadeFromPolygons likes this.
  48. shubhank008

    shubhank008

    Joined:
    Apr 3, 2014
    Posts:
    107
    Can the AutoRig feature be accessed via script/APIs ? I wanted to add such feature in our Steam Workshop support to allow users to easily auto rig their custom models/content
     
  49. superspit

    superspit

    Joined:
    Aug 15, 2016
    Posts:
    6
    2018.1 support?

    cheers

    Johnny
     
  50. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    987
    The autorigging and skinning are currently editor scripts, however all the code is exposed, so there's no reason in principle you wouldn't be able to extract the bits you need into a runtime script.