1. Help us improve the editor usability and artist workflows. Join our discussion to provide your feedback.
    Dismiss Notice
  2. We're looking for feedback on Unity Starter Kits! Let us know what you’d like.
    Dismiss Notice
  3. We’re giving 2017.1 beta testers a chance to win t-shirts and a Nintendo Switch. Read more on the blog.
    Dismiss Notice
  4. We want to know how you learned Unity! Help us by taking this quick survey and have a chance at a $25 gift card
    Dismiss Notice
  5. Unity 5.6 is now released.
    Dismiss Notice
  6. Check out all the fixes for 5.6 on the patch releases page.
    Dismiss Notice

PuppetMaster - Advanced Character Physics Tool [RELEASED]

Discussion in 'Assets and Asset Store' started by Partel-Lang, Oct 1, 2015.

  1. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,392
    Hi all,
    I'll be in Germany from 27th to 5th for a brief vacation, so support might be slower than usual for the next week, sorry.


    Best,
    Pärtel
     
  2. arubaru

    arubaru

    Joined:
    Mar 24, 2017
    Posts:
    9
    Already tried that, but it's not the problem. Here you have what it looks like




    PD: Still dont know what caused the problem but reimporting the model and setting it up as a puppet and all the references again seemed to solve the problem
     
    Last edited: May 31, 2017
  3. wightwhale

    wightwhale

    Joined:
    Jul 28, 2011
    Posts:
    329
    When I updated puppetmaster and final IK I got a new issue. Now when I spawn in a creature into my game the puppetmaster part of the rig gets pushed way off the level. I'm not sure why this is happening. If I disable the puppetmaster component then reactivate it after the gameobject is created the puppetmaster won't fly off but will give me a warning that the bone's aren't close enough together which I might be able to do a workaround by freezing the position until the puppetmaster is enabled. Though it seems like I shouldn't need to do this at all. Have any ideas?
     
  4. CoolStuntz

    CoolStuntz

    Joined:
    Mar 12, 2017
    Posts:
    1
    Thanks for this, Partel. Your "PuppetMaster.Teleport" solution works perfectly in my testing so far. It solved a problem I was having!
     
  5. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,392
    Hi all! Back from my little vacation now, thank you all for your patience! :)

    Did you have "Fix Target Transforms" disabled in PuppetMaster?

    Hey,
    Could you send me that PuppetMaster rig in a repro project or something so I could take a closer look?

    Hey,
    Glad to hear that, thanks for letting me know! :)

    Pärtel
     
  6. arubaru

    arubaru

    Joined:
    Mar 24, 2017
    Posts:
    9
    It was checked :)

    Greetings
     
  7. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,392
    Then I really have no idea based on the information I have, but I'm glad the problem is gone.

    Best,
    Pärtel
     
  8. Hinnyboy

    Hinnyboy

    Joined:
    Apr 21, 2017
    Posts:
    1
    Hi Pärtel,

    As I understand, this tool is not meant for rag-dolls using 2D components (rigidbody2D, 2Dcolliders etc.), right? How hard would it be to adapt it for 2D?

    Anima2D is quite nice (and free) where you can create a skeleton based 2D animation with sprite-mesh and IK and stuff. I would really like my 2D animation to be affected by 2D physics just like your PuppetMaster is affecting 3D animations. Any ideas?
     
  9. HuginnRaven

    HuginnRaven

    Joined:
    Dec 20, 2015
    Posts:
    1
    So I really want to buy this asset, it looks great and might be exactly what I'm looking for.

    HOWEVER! the tutorials are very basic in nature and the documentation is very limited. I get that the asset isn't finished yet but how am I to understand this asset and use it if I can't delve deep into it? Am I missing something, is there documentation included when I buy the asset that gives me a detailed overview of the functions?
     
  10. Alfonso_CJ

    Alfonso_CJ

    Joined:
    Nov 19, 2015
    Posts:
    32
    Hiya! I've encountered this bug several times now GIFPMB2.gif several times now and I'm wondering if someone has solved how to fix this? I'll explain what this is first, This Model was rigged using Mixamo's Auto Rigger, this arm shaking occur when Angular limits is turned on and the humanoid animations look weird as well. I just can't figure out what the problem is. Yep that's it!
     
  11. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,392
    Hey,
    It can't be used with 2D physics components, but if you rig your sprite character with 3D physics components and make it a 2.5D character, it can be done. There is a demo included for that, in Plugis/RootMotion/PuppetMaster/_Integration/Goblin Archer (2.5D Puppets).

    Hey,
    You are quite right, it is still in beta technically. Dont know if you have found them already, but in addition to the tutorials there is the User Manual and Script Reference. Also demos for almost everything and all variables tooltipped.

    Hey,
    Perhaps the joint limits just dont' allow for the range of motion that puppet is trying to follow? What does the animation look like? Try loosening the limits..

    Best,
    Pärtel
     
  12. mburrows

    mburrows

    Joined:
    Jun 18, 2017
    Posts:
    1
    Hello Pärtel! Greetings from Germany.

    First of all I want to thank you for your comprehensive work, I got both Puppetmaster & Final IK.
    I am quite new to Unity & Game Development in General. Actually i am trying to build a Zombie-Shooter kind of game, but there is one issue with Puppetmaster, i do not really understand, and I would love to fix it.

    I have this ugly Zombie-Girl, she is ugly, but one thing makes her even uglier, that is, in some moments during Behavior-Puppet, her Bones become very much dislocated. In this case the knee is somehow twisted, and I have included the Ragdoll view into the example Image. I do not know, what causes this Problem, have you also encountered this "behavior", and know what I could do to solve it ?

    I attach a "beautiful" Image of my zombie-Lady, please don't judge her by her apperance. She can be quite nice, and she always longs to be very close.... ;)

    [​IMG]
     

    Attached Files:

  13. Alfonso_CJ

    Alfonso_CJ

    Joined:
    Nov 19, 2015
    Posts:
    32
    It's got the default Third person Puppet animations
     
  14. Alfonso_CJ

    Alfonso_CJ

    Joined:
    Nov 19, 2015
    Posts:
    32
    I'll just bring this back again because Unity's NavMeshAgent does not seem to work with the User Control AI, I tried editing that script so it would get NavMeshAgent component and Path but didn't work out so well. Help?
     
  15. chaneya

    chaneya

    Joined:
    Jan 12, 2010
    Posts:
    333

    Partel,

    Back in march, you provided a patch to prevent Prop colliders from being effected by PuppetMaster at all. You added a bool called disableColliders to BehaviorPuppet that's used in BehaviourPuppetStateSwitching.cs in the SetColliders method to prevent those Prop colliders from being disabled. However the Prop colliders are still being effected (enabled) if they are attached to the Ragdoll when SetColliders is called because line 176 is enabling all muscle colliders. c.enabled = true and the props are muscles while they are attached to the Ragdoll.

    To prevent PuppetMaster from messing with Prop colliders, I changed the code to the following in lines 176 and 177 in BehaviourPuppetStateSwitching.cs:
    Code (CSharp):
    1. if (!props.disableColliders && m.props.group != Muscle.Group.Prop)
    2.    c.enabled = true;
    Would you consider providing a patch with something like this code so I have the ability to prevent PuppetMaster from messing with prop colliders at all. Perhaps you might change that bool from disableColliders to something like TurnOnOffPropColliders. So if it is false Prop colliders will never be effected by PuppetMaster. You might also consider moving the the TurnOnOffPropColliders bool closer to the DropProps bool in the inspector since both of those concepts deal with Props.

    Thanks
    Allan
     
    Last edited: Jun 21, 2017 at 2:17 PM
  16. wisniowy88

    wisniowy88

    Joined:
    Dec 27, 2015
    Posts:
    3
    Hi Partel!

    I have encountered a shaking problem on some hills:
    ezgif.com-optimize (1).gif

    What I have is Puppet Extended scene with terrain added and these settings that I need:

    Behaviour Puppet Normal Mode = Active.
    When Unmapped - it reduces shaking, but not fix completely,
    When Kinematic - works.

    Animation Update = Animate Physics.
    When in Normal upd mode - works.

    Character Contoller; Ground Sticky = 10,
    Max Vertical Velocity On Ground = 1

    When decrease sticky and increase max velo - shaking reduced, but not fixed.

    When turn off PuppetMasters Map Position(s) - it works, but leads to many new problems.

    Is there any fix that i can stay with my setting?


    Great work!
     
    chaneya likes this.
  17. AlexKassabian

    AlexKassabian

    Joined:
    Apr 24, 2017
    Posts:
    1
    Hi,

    I've noticed that in a networked game, the puppet is split from the character's hierachy when spawned. This is causing issues with things like Raycasting for damage etc, any ideas on how to get around this?

    Thanks!
     
  18. Danirey

    Danirey

    Joined:
    Apr 3, 2013
    Posts:
    463
    Hi Partel!

    Playing with the stagger behaviour, i'm having a little issue. When the character dies, the arms seems to keep doing the windmill even if i disable all behaviours. Any clue? I've tried calling the finish function too, but it has no effect.

    Thanks a lot!
     
  19. matteumayo

    matteumayo

    Joined:
    Jul 25, 2016
    Posts:
    54
    Hello Partel!

    Just a quick question. I remember a while back you mentioned you were working on procedural animations for balancing. Are you still working on this? And if so, do you have an estimate on when we might be able to get our hands on it? It would really be an outstanding feature!

    Thanks,
    Matt
     
  20. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,392
    Hey, sorry for the delay!

    At which point does it happen, when the puppet is unbalanced? What happens if you enable/disable "Angular Limits" and "Internal Collisions" in PuppetMaster? I'm thinking perhaps either one is blocking the puppet from reaching the target animation.

    Hey,
    Could you share this script or even better that project, if possible, so I could test it out?

    Hey,
    Looks like a camera-puppet motion sync issue, the camera must be updating at a different frequency.
    Here, please try this patch.

    After that, go to the CameraController, set Update Mode to "Fixed Late Update", then to the third person controller and enable "Smooth Physics".

    Hey,
    Just replied to your email...

    Hey,
    Go to the "Windmill Weight", drag the last key a bit to the left, does that help?

    Hey,
    Yes, I have a precedural stagger behaviour, that also tries to keep the puppet balanced before switching to stagger), but it requires Final IK, its in the FIK integration package. This is how it looks like.

    Cheers,
    Pärtel
     
    wisniowy88 and matteumayo like this.
  21. chaneya

    chaneya

    Joined:
    Jan 12, 2010
    Posts:
    333
    Partel,

    I think you missed my message. I'm not sure if I should re-post.

    Can you check it out, just scroll up to right above wisniowy88's post with the gif. It's about BehaviourPuppetStateSwitching.cs still changing prop colliders.

    Thanks
    Allan
     
  22. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,392
    Hey, sorry, missed it indeed.

    Anyway, would just changing the code in SetColliders to this:
    Code (CSharp):
    1. // Sets colliders of a muscle to puppet or unpinned mode
    2.         private void SetColliders(Muscle m, bool unpinned) {
    3.             var props = GetProps(m.props.group);
    4.  
    5.             if (unpinned) {
    6.                 foreach (Collider c in m.colliders) {
    7.                     c.material = props.unpinnedMaterial != null? props.unpinnedMaterial: defaults.unpinnedMaterial;
    8.                        
    9.                     // Enable colliders
    10.                     if (props.disableColliders) c.enabled = true;
    11.                 }
    12.             } else {
    13.                 foreach (Collider c in m.colliders) {
    14.                     c.material = props.puppetMaterial != null? props.puppetMaterial: defaults.puppetMaterial;
    15.                        
    16.                     // Enable colliders
    17.                     if (props.disableColliders) c.enabled = false;
    18.                 }
    19.             }
    20.         }
    work for you?
    I can't think of anything that it would mess up right now.

    Best,
    Pärtel
     
  23. wisniowy88

    wisniowy88

    Joined:
    Dec 27, 2015
    Posts:
    3
    Thanks for response.
    Anfortunately it's not work. Now I can see true puppet-camera sync issues - constantly shaking along move direction:

    Maybe "on hills shaking" issue is not camera related, because it seems to shake in vertical directions only.
     

    Attached Files:

  24. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    1,392
    Hey,
    Please import this scene, (along with the patch I sent), does it look smooth to you?
     
  25. wisniowy88

    wisniowy88

    Joined:
    Dec 27, 2015
    Posts:
    3
    It looks like on the gif from my previous post.

    Edit: It's fixed partially. After patch, when I lock camera in position it works smooth (because of Smooth Physics in Character Controller now is on). When camera follows the target, then a camera sync problem comes up.
     
    Last edited: Jun 26, 2017 at 5:49 PM