Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

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

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

  1. DeidreReay

    DeidreReay

    Joined:
    Oct 28, 2019
    Posts:
    49
    Maybe I can be a little more straight forward with my question. We have a Hair Mesh setup as a skin mesh renderer. Want to place a few bones in the ponytail of mesh to then use dynamic bone or similar situation to add some movement to the hair. What are correct steps to do so?? My thought is this.
    1.) Create bones and place inside the hair mesh.
    2.) Hair uses a skin mesh renderer so we need to add a mesh filter to this and apply the hair mesh.
    3.) Use the bind smooth skin function of puppet 3d?
    4.) Use paint weight function of puppet 3d if issues arise??

    Anything else we are missing here? It seemed to somewhat work trying this approach, and we just added the Bones as children of the Hair (which is a child of player character)
     
  2. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    Best way is to select the hair model and click "Unbind Skin." Then click "Freeze Model".
    Make sure all the bones you want to skin to have a bone component (they will if you make them with puppet3D). Then select all the bones and the mesh and click "Bind Skin"
    Yup, that should work. I assumed your hair was part of your original character and had skin weights that you wanted to keep. When its a separate model you are adding its much simpler :)
     
  3. DeidreReay

    DeidreReay

    Joined:
    Oct 28, 2019
    Posts:
    49
    Thank you for your reply. Will give this a shot again later tonight, and yes models came in with the hair but could look into seperating them etc, or perhaps the unbind skin will do exactly that (remove the previous weights etc.
     
  4. UnityXizor21

    UnityXizor21

    Joined:
    Jan 14, 2021
    Posts:
    36
    Hi, I'm just discovering your Puppet 3D asset.

    I have three Puppet 3D questions:


    Puppet 3D default mod rigs seem to be great for stretchy characters. For example if you lower the control for the hips then the character's torso located between the chest control and the hips control will elongate to accommodate the new position. This brings me to question #1.

    Q1: Does Puppet 3D support a way for one control to influence another?

    For example: Is it possible to lower the hip control and have the chest, neck, and head controls follow in relation to the hips to maintain body proportions? (I do understand that a user could select all of these controls and move them together, but that's a little cumbersome and I'll touch on this in Q3. Is there a more efficient way?)

    (For reference, this functionality would be similar to the Animation Rigging Package's center of gravity control or pelvis control as implemented in the ninja megacity demo from Unity's 2019 animation rigging package workshop which is already very outdated and problematic to implement in modern projects.)

    Q2: Does Puppet 3D support adding additional, more detailed controls to auto rigged characters?

    For example, is it possible to add shoulder rigging controls to characters for more precise animating? The video tutorials show that auto rigging and the one click mod rigging built into Puppet 3D only create controls for the chest.

    Q3: Is there an easy way to grab controls for Puppet 3D rigs? (Grabbing wire frames can be a pain and it's often easier to grab wireframe controls from the hierarchy than from within Scene view - but this is also inconvenient because it requires drilling down every time you want to select a control.)

    Is there a Puppet 3D setting for using a more convenient effector / control handle?
     
    ftejada likes this.
  5. BenrajSD

    BenrajSD

    Joined:
    Dec 17, 2020
    Posts:
    25
    Hi,

    I would like to have following clarifications,
    Working on a project in which we have a character with it's own rig and 3d dress models without skinning and rigging. Is it possible to auto skin and rig at run time using script and transfer the skin weight, rig to dress model from character and play. Looking to stream the dress model from web and automate the processes mentioned above. Whether we can achieve that using Puppet3D? or can we do it manually at least in that, instead of rigging every model with character from 3d team?
     
  6. BenrajSD

    BenrajSD

    Joined:
    Dec 17, 2020
    Posts:
    25
    Any updates?
     
  7. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    Currently the skinning functions are editor time. The code is open, so in theory you should be able to move the functions over into a runtime script. The "Transfer Weights" feature would probably your best starting point - so you can transfer the weights in world space from an already skinned character.
    Skirts are one of the trickiest things to get good skin weights on - so I would recommend painting weights on a base (low res) skirt model and transferring the weights onto the the other models.
     
  8. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    An easy way to do this would be to parent the upper spine's control's parent to the hip control, and the neck control parent to the spine control. Or you could make another control and parent the spine, hip and neck control's parents under it.

    NB - when parenting controls - always parent their parents so the control itself keeps local transforms to 0,0,0 - much better for animating


    It also makes shoulder controls (Called clavL_CTRL and clavR_CTRL - clavicle) - they may have been hidden in the video

    I find wire controls to be fine to select in the view as long as your character has its prefab broken/unpacked. (Break it for animating - it can be made back into a prefab after)
     
  9. BenrajSD

    BenrajSD

    Joined:
    Dec 17, 2020
    Posts:
    25
    Hi,

    We have progressed well with Auto-rigging by converting editor scripts, but the skinning is not getting done properly and when we apply animation it looks weird. Could you please help on this, what could be the issue? When we do rigging manually it is in acceptable shape.

    Please do find the video feed for reference
    https://drive.google.com/file/d/1-IkfWZ4Z1kpe_kfThSV7Fk0zc2rEDfdL/view?usp=sharing
     
  10. skanev

    skanev

    Joined:
    Oct 15, 2018
    Posts:
    14
    Hello!
    I imported Puppet 3D in my project and I get the following errors:

    Assets\Puppet3D\Scripts\Util\BakeAnimation.cs(117,15): error CS1061: 'AnimationEvent' does not contain a definition for 'time' and no accessible extension method 'time' accepting a first argument of type 'AnimationEvent' could be found (are you missing a using directive or an assembly reference?)


    Assets\Puppet3D\Scripts\Util\BakeAnimation.cs(118,50): error CS1503: Argument 2: cannot convert from 'AnimationEvent[]' to 'UnityEngine.AnimationEvent[]'



    Assets\Puppet3D\Scripts\Util\BakeAnimation.cs(120,50): error CS1503: Argument 2: cannot convert from 'AnimationEvent[]' to 'UnityEngine.AnimationEvent[]'

    Unity 2020.1.17f1 - HDRP Project
     
  11. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    From the looks of the error it appears there is something (a package?) in your project that overrides the Unity AnimationEvent,
    as you can see here: https://docs.unity3d.com/ScriptReference/AnimationEvent.html
    time does exist in the AnimationEvent:
    upload_2021-6-1_10-30-11.png
    If you can't track it down, simply replace all the references to AnimationEvent in the BakeAnimation.cs script to UnityEngine.AnimationEvent
     
    skanev likes this.
  12. lizkin

    lizkin

    Joined:
    Jun 22, 2013
    Posts:
    18
    Hello,

    Can I use Mixamo animations after autorigging a human model with Puppet 3D ?
     
  13. GerardUnity

    GerardUnity

    Joined:
    Sep 24, 2018
    Posts:
    3
    Hi, I need help :)
    I made a rig on Tiltbrush model with Mixamo, the rig work very well but I lose shape and texture of my model (normal because Tiltbrush model are very special, they can be imported only on Unity without problem). So, I want to transfer the Mixamo rig in Unity on a clean Tiltbrush model imported directly in Unity. And add more bones (for jaw or wings) with puppet3D.
    Somebody have an idea or do the same thing??
    Thanks a lot
     
  14. dawnseeker8

    dawnseeker8

    Joined:
    Jul 1, 2021
    Posts:
    5
    Hello, I just purchase your tools yesterday, but it doesn't quite work for my unity 2019.4.2,
    I got a tiger model, and try to create some sprint and bone for it, but when i click "Create Bone tool" and start to draw a bone in tiger model, the bone appear as line and didnt attach to mesh in the model, ( not like what you show in your youtube tutorial) and also the console display as following error:

    Undo object may not be null.
    UnityEngine.StackTraceUtility:ExtractStackTrace ()
    Puppet3D.SplineEditor:SplineCreationMode (UnityEngine.Vector3,UnityEngine.Ray,bool,single,single,single) (at Assets/Puppet3D/Scripts/Editor/SplineEditor.cs:118)
    Puppet3D.Puppet3DEditor:OnSceneGUI (UnityEditor.SceneView) (at Assets/Puppet3D/Scripts/Editor/Puppet3DEditor.cs:983)
    UnityEngine.GUIUtility:processEvent (int,intptr)


    I currently stuck on using this tools, can you tell me what to do? or can i get a refund of this tools?
     
  15. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    To get the bones to centre inside your tiger make sure the tiger has a mesh collider.
    To skin your tiger to the bones, select it and the bones and click "Bind Smooth Skin". If the tiger already is skinned to other bones you will need to first select it and click "Detach Skin"

    Are you able to start again in a fresh scene and see if and when you get this error again, then let me know what you did that made it come up?

    A refund is always available - I'd like to help you through the issues though :)
     
  16. dawnseeker8

    dawnseeker8

    Joined:
    Jul 1, 2021
    Posts:
    5
    Hello, Can i get a refund? it is not easy to use, i finally decide to use external tools to do rigging.
     
  17. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    Email me your invoice number at puppet3dunity@gmail.com
     
  18. bthanse

    bthanse

    Joined:
    Jun 24, 2019
    Posts:
    114
    Have a problem with hand and foot pole after autorig, they end up wrong place. How to move them to correct place without foot and arm start bending ? How can I rig a charecter to use common animation ? Like this Basic Motions | 3D Animations | Unity Asset Store. When I add some of this animations, the caracter go back to T-pose.

     
  19. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    When you set the guides, Make sure the knee guide is at least slightly in front of the hip and foot. The elbow guide should be at least slightly behind the shoulder and hand. If auto-centering of the controls is making this difficult you can just turn it off in the Inspector.
     
    bthanse likes this.
  20. bthanse

    bthanse

    Joined:
    Jun 24, 2019
    Posts:
    114
    Thanks. The next problem I have now is that the feet is wrong way. Trying turning them, but when the testanimation run, they flip to wrong way again. upload_2021-9-24_20-19-42.png
     
  21. bthanse

    bthanse

    Joined:
    Jun 24, 2019
    Posts:
    114
    How can I get ordinary human animations to work ?
     
  22. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    Your character should be looking forward down positive Z axis when you rig it (it looks like its looking down negative z in your video)
     
  23. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    You can export the character after you rig it (Export Skin & Bones). Now you can set the exported file as a humanoid and then you will be able to use any humanoid animations on it. You can also export the the animations (using the bake and export anims button - these can also be set to humanoid and used with the exported character).
     
    Mark_01 likes this.
  24. bthanse

    bthanse

    Joined:
    Jun 24, 2019
    Posts:
    114
    Maybe I have done something wrong. This is the error I got:
     

    Attached Files:

  25. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    Did you autorig and then export the demomanFingers model? It looks like it doesnt have any bones?
    The order should be this:
    1. autorig/ rig the unskinned character
    2. select the skinned mesh and click "Export Skin and Bones"
    3. This should make a new file that can be set to a humanoid
     
  26. bthanse

    bthanse

    Joined:
    Jun 24, 2019
    Posts:
    114
    I will take a closer look at this the next days. Maybe you can add a new video to the asset that show how to do this?
     
    Last edited: Oct 1, 2021
  27. bthanse

    bthanse

    Joined:
    Jun 24, 2019
    Posts:
    114
    I do not know if I select the right file. I get something strange that move with the animation I added.
     

    Attached Files:

  28. GamePowerNetwork

    GamePowerNetwork

    Joined:
    Sep 23, 2012
    Posts:
    257
    Is the follow possible to do with Puppet3D::

    1. I add bones, weight paint, and rig a humanoid model
    2. I have a clothing item for the humanoid model and I copy the bones from #1.
    3. I paint the weight for the clothing item.

    My main concern is #2. Can I take the bones from one model and add them to my new model, then paint the weights using those copied bones?
     
  29. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    Yes.
    You can rig the model from scratch using AUTORIG (or manually if you want). Then you can export it so it can be set to a humanoid in the inspector.
    If the character already rigged, and you want to add some bones (let say pony tail bones) let me know and I can explain how to do this.

    Yes. Make sure the bones all have a Bone component on it. Then select the bones and the new cloth model and click Bind Smooth Skin. Then to save having to paint weights you can select the body model, followed by the cloth model and click Transfer Weights. Then the cloth will have the same weights as the body!

    See (2) you can achieve a lot just by transferring the weights over. (You can also paint weights if you need to).
     
  30. bthanse

    bthanse

    Joined:
    Jun 24, 2019
    Posts:
    114
    I think I have figured it out now how to get it work with other animations. Some problems with Unity to show the new file. Have some strange thing on the avatar:
     
  31. GamePowerNetwork

    GamePowerNetwork

    Joined:
    Sep 23, 2012
    Posts:
    257
    This is all awesome! thank you so much.
     
  32. Dave_LeDev

    Dave_LeDev

    Joined:
    Apr 14, 2015
    Posts:
    33
    Just started using this, and I see great possibilities as a competitor for 3DS Max's CAT and biped rigging tools. I do have a couple of ideas if you're open to them, though.

    Spline Bones - Rename Children
    For readability, I name the controls to what they're related to. With a spline chain, that can be a large list of objects to rename without a custom script. CAT rigs are an example of this feature.

    Bone Count in Auto-Rig
    Out of the box, if I want additional bones in the forearms and in other limbs, I'll need to use a spline chain. If I can set the amount of bones in between guides, it'd save me much time in setting up twist links groups, as used by 3DS Max. Bonus if the rig controls offer similar functionality.
     
  33. buc

    buc

    Joined:
    Apr 22, 2015
    Posts:
    123
    Can your software be used for the following problem?

    I have a character which has 3 LODs of the mesh, but only the first LOD is rigged and bound to the bones.
    So it would be needed:
    - either a function to transfer the data based on the closest vertex of the source to the other LODs
    - or: when placing the control-hints in the auto-rigger (like wrists, chin, etc.) these exact positions can be used to rig all 3 LODs either at once (can handle different overlapping meshes, which is the case with LODs at the same position) or at least with the same setting (I really don't want to drag them just to somewhat close to that point or mark my monitor with some transparent markers, etc.)

    So can the totally same autorig-hint points be used to rig 3 LOD meshes to the same rig?
     
  34. silentslack

    silentslack

    Joined:
    Apr 5, 2013
    Posts:
    391
    Hi,

    Sorry if this has been asked but does this use Unity's own Rigging system to handle the IK or its own solution?

    Thanks!
     
  35. DeadCastles

    DeadCastles

    Joined:
    Sep 23, 2019
    Posts:
    14
    I'm using puppet 3d's mod rig for animating a humanoid character with timeline. When key framing the scene, the character moves as it's supposed to. When I hit "play" the character position and rig components become distorted and all the time I spent animating is lost. Has this problem been seen before? Can I send you the model to test out?
     
  36. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    Maybe there are other animations on the animator controller that are interfering with the default states of the animation. Are you able to make a new animator controller, add just the one animation to it and see if it works?
     
  37. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    Its own solution, but you can use Unity's one along side the bones/skinning made using Puppet3D if you want.
     
  38. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    Yes - there is a Transfer Weights button that works in world space.
    As long as they are skinned to the same bones you just need to select the source model, followed by the destination model and click "Transfer Weights"
     
  39. matukazekun

    matukazekun

    Joined:
    Jan 17, 2016
    Posts:
    1
    hi. am japanese i bought this having Umotion vision. and use.but....
    Umotion say use MIXAMO these a what do think work creatuers.
    Then puppet 3d is very kind work through I had. i search what issue of inport setting to Umotions is
    Them Opener avator setting into going exist bone but in not a meshes.(MIXAMO avater setting into exist both.)
    finally jamienimans Think you what my says funny?? i think serious couse i pay and could use to Umotion !!!!
     
  40. anton88pro

    anton88pro

    Joined:
    Jul 20, 2017
    Posts:
    61
    Hello,
    I've imported my human model, which is already rigged and have bones, and I've used Mode Rig and it seemed to work for the most part (it has all the controls and stuff) , but it didn't create bones or controls for a jaw bone and I need it, because my character's mouth is always open during an animation.
    so....
    1) is it possible just simply take existing bones and rigging and "transfer" them into Puppet3d's bones?
    2) and how do I edit controls for a character after Mod Rig? Like for example, adjusting different bones to CTRL, if I didn't like some results of Mod Rig.
    otherwise, I would find very tiresome to basically redoing bones and rigging for a jaw (when I already did it with 3rd party app), if I want to continue working with Puppet3d.
    However, as a possible solution I've found that I can just use blendshape to close mouth. In my case, it's adjusting "Mouth_Open" blendshape to -100. Would you think it's viable solution or is there more proper way to fix the open mouth problem using Puppet3d.
    I've attached a screenshot demonstrating the problem, just in case. It shows, puppet3d completely ignored all the face bones and just created one big head bone.
    p.s: I'm using Unity 2020.3.16f1
    Снимок экрана (418).png
     
  41. DeadCastles

    DeadCastles

    Joined:
    Sep 23, 2019
    Posts:
    14
    How do I deal with a difference between skeleton hierarchies after animation baking?

    My model looks like this :
    AndyAnim - Original humanoid model
    Body@TestingRedo2_Baked - Baked animation
    animatioproblem.png

    The baked animation loses the "Armature.001" in the hierarchy.
    This makes me unable to transfer the original model's avatar during the rigging process.
     
  42. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    Apologies, it looks like what you used to translate didn't work so well this time - perhaps could you try in your native language and I can try google translate? :)
     
  43. Admiral_Ali_Cat

    Admiral_Ali_Cat

    Joined:
    Jan 23, 2019
    Posts:
    1
    Hey, is there a way to ensure that all the bone transforms created by Auto Rig are a uniform (1,1,1)? I'm using Unity 2021.3.2f1 with Puppet3D 1.11 and when I use Auto Rig it seems to make all bones (1,1,1) scale except for the shoulders scaled down to (0.006383582), thighs scaled down to (0.01180323), and the first joint of every finger scaled way up to (156.6519).

    Actually, I just went into the source code to try and find out myself why that was the case. It looks like the MakeLimb method in AutoRigEditor.cs gets a limbScale value and uses it as a divisor for some scaled positions, and then multiplies the shoulderBone localScale by that same limbScale, which is what causes the first bone in each limb (shoulder, thigh, fingers) to be a scale other than (1,1,1). I removed the limbScale divisor from the 3 locations in that method and removed the multiplication of shoulderBone localScale by the limbScale, but instead of completely getting rid of the limbScale local variable I left it in specifically for the IKCreateTool method call to scale the handles correctly. This seems to have returned all bones to being a uniform (1,1,1) scale and I haven't run into any bugs with that change yet. All the bones appear in the expected place and there doesn't seem to be any issue with the IK or upon doing any animations with these changes.

    Is there some reason I'm not understanding for dividing the bone positions by limb scale and then multiplying the local scale of the shoulder by that same value?
     
  44. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    Just to give a brief explanation of how ModRig is setup - which will help you understand how to edit the rig:
    There are 3 bone hierarchies:
    upload_2022-5-15_13-11-39.png
    The green one is the one it is skinned to
    The blue one is the one that has the controls on it
    The red one is the one that receives any input animation.

    The green one will have the extra bones (like the jaw etc) You can select the jaw bone and create a parent (or orient) control for it and then parent it's parent gameObject to the head control.
     
  45. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    Is there any chance you could email me your character - so I can take a look into it? (Puppet3dUnity@gmail.com)
     
  46. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    Yes, looking at it - I'm not sure why that was there - could have been a legacy issue. From the looks of things, that change is safe - and has improved things, so I'll role it in to the next update. Thanks for pointing it out to me.
     
  47. Dave_LeDev

    Dave_LeDev

    Joined:
    Apr 14, 2015
    Posts:
    33
  48. Willbkool_FPCS

    Willbkool_FPCS

    Joined:
    Jun 13, 2018
    Posts:
    169
    There are most of the tutorial videos on youtube.
     
  49. jamieniman

    jamieniman

    Joined:
    Jan 7, 2013
    Posts:
    985
    Thanks for bringing this to my attention - its back up now
     
    Dave_LeDev likes this.
  50. UnityRocksAlt

    UnityRocksAlt

    Joined:
    Dec 28, 2015
    Posts:
    157
    I am facing a major problem, how do you translate Animator.T to Global Control position?
    Double Trouble lol, since I use old version of Unity, I have to use two Unity versions.
     
    Last edited: Oct 13, 2022