Search Unity

PuppetMaster - Advanced Character Physics Tool [RELEASED]

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

  1. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,685
    Not in the store yet.
     
  2. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    Clearly they're having too much fun using it to publish it.
     
    Partel-Lang, hopeful and RickyX like this.
  3. RickyX

    RickyX

    Joined:
    Jan 16, 2013
    Posts:
    280
    Probbably yeah xD


    Okay thanks bud'
     
  4. Viktor88

    Viktor88

    Joined:
    Apr 26, 2014
    Posts:
    3
    Oh glorious Unity gods!
    When will you finally redeem us and release PuppetMaster?
     
    Partel-Lang and DMeville like this.
  5. Greg-Bassett

    Greg-Bassett

    Joined:
    Jul 28, 2009
    Posts:
    628
    It has to be today... :rolleyes:
     
  6. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,554
    Sorry guys, I have no idea why it takes so long, it is still pending. I'm guessing it was the birthday sale, maybe they don't want to push new assets at that time for they would go unnoticed. Maybe it's today :)
     
  7. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,532
    Blame Fallout 4. :p
     
    Partel-Lang, Dbone, Nyt0x and 2 others like this.
  8. Elenesski

    Elenesski

    Joined:
    May 19, 2013
    Posts:
    22
    It's too bad there isn't an alternate way to distribute assets. It takes ages to approve and costs you 30 cents on the dollar to list.
     
  9. Dbone

    Dbone

    Joined:
    Mar 10, 2014
    Posts:
    56
    Is that really the cost of listing on the Asset store? 30% of your list price?
     
    DMeville likes this.
  10. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,554
    I've been thinking about selling though my website, but have been too busy to set it up..

    Yes, that is correct.

    Cheers,
    Pärtel
     
  11. Filhanteraren

    Filhanteraren

    Joined:
    May 14, 2014
    Posts:
    47
    Seems insane that it should take 2 - 3 weeks to get it approved. You already have assets on the store and what I can assume, one that have sold quite good and got one of the highest ranking on the store, that alone seems like it should have pushed the approve time faster. If you would have sold it somewhere else I think a lot of people would prefer buying it from you directly if it would result in faster releases/patches.
     
  12. Dbone

    Dbone

    Joined:
    Mar 10, 2014
    Posts:
    56
    Agreed. I'm thinking of flying to Estonia with a USB stick and cash.
     
  13. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,685
  14. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,554
    Hey, I was just gonna post that :)

    It's weird that it shares ratings and reviews with Final IK because of the discount for Final IK users..

    Anyway, actually the timing is exactly what I didn't hope for because I'll be gone till Monday, it happens to be my 30th birthday. But I'll try to check in as ofter as I can. :)

    I hope you all find PuppetMaster to be live up to your expectations.

    Cheers,
    Pärtel
     
    SteveB, cdfru472, SarperS and 5 others like this.
  15. gurayg

    gurayg

    Joined:
    Nov 28, 2013
    Posts:
    269
    Happy new year! and congrats Pärtel.
    Looks like you've given us a gift this year for your birthday :)
     
    Partel-Lang, EvilFox and DMeville like this.
  16. hippocoder

    hippocoder

    Digital Ape

    Joined:
    Apr 11, 2010
    Posts:
    29,723
    It also shares reviews with Final IK, although I honestly doubt it would be people saying any different or going lower than 5 stars anyway so none of your customers mind :D

    Unity should fix this, as it's just something they never considered properly. Perhaps @caitlyn will take a peep for the future. Anyway, happy birthday.
     
    Partel-Lang, LaneFox and hopeful like this.
  17. Nadan

    Nadan

    Joined:
    Jan 20, 2013
    Posts:
    341
    Awesome, just purchased Puppet Master. Happy birthday.
     
    Partel-Lang likes this.
  18. SarperS

    SarperS

    Joined:
    Mar 10, 2009
    Posts:
    824
    Purchased, happy birthday Pärtel!
     
    Partel-Lang likes this.
  19. Greg-Bassett

    Greg-Bassett

    Joined:
    Jul 28, 2009
    Posts:
    628
  20. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,532
    Well, it seems there are two classes of upgrades - legit version jumps and previous product ownership discounts. It looks like an oversight. @caitlyn
     
  21. Greg-Bassett

    Greg-Bassett

    Joined:
    Jul 28, 2009
    Posts:
    628
    Just bought it! ;) Wahoo!!! One on one realistic fighting game here we come! Virtua Fighter eat your heart out! :)
     
    Partel-Lang likes this.
  22. SteveB

    SteveB

    Joined:
    Jan 17, 2009
    Posts:
    1,451
    Very exciting! You has my monies! :D
     
    Partel-Lang likes this.
  23. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Congratulations! Worth noting that this works extremely easily with Opsives Third Person Controller so a good pairing there (I wasn't paid to say that aha it just turned out to be straightforward)
     
    Partel-Lang and Dbone like this.
  24. Filhanteraren

    Filhanteraren

    Joined:
    May 14, 2014
    Posts:
    47
    Got it also, a lot of fun to play around with.
    A question: I can´t figure out how to move the animation rig ( the blue skeleton) to the position of the ragdoll if the ragdoll has moved a lot from it´s original position. I noticed that the Puppetbehavior seems to move the skeleton to the ragdoll and then blend to a getup animation. Sorry if it dosn´t make sense. :)

    Edit: Figured it out, you can move puppetMaster.targetRoot.position to your ragdoll position, seems to work.
     
    Last edited: Nov 20, 2015
  25. jdameron

    jdameron

    Joined:
    Oct 2, 2013
    Posts:
    5
    Hey Partel, I was wondering if this tool set would be useful for super wobbly cartoony stuff.

    I know most ragdoll set ups are rotation only, but Im looking to let physics squash and stretch the character.

    The animation I would use to drive it would be normal animation (probably no joint translate).... basically the config joints have freedom of movement and spring and damper in the translate as well as rotate.

    bouncyPhysicsCharacter.gif

    This is basically the kinda feel Im going for (minus the walking, arms swings, etc...) This is only a few config joints, I tried animating forces to get some walking type motion but it seems tough to get right. Having animations to influence the movement sounds much easier and also opens doors for much more.

    I hope I made sense of that, just wondering if that'll interfere with the target anim.
    (it doesnt have to be very accurate to the target anim at all, I want the physics to mostly be in control).

    And if that all works, your tool makes it look like a breeze to blend in to tighter animations when needed. Super great work.
     
  26. Elenesski

    Elenesski

    Joined:
    May 19, 2013
    Posts:
    22
    Hadn't been paying attention to the store, thinking it would take weeks more ... then discovered it and insto-buy. :)
     
    Partel-Lang likes this.
  27. Der_Kevin

    Der_Kevin

    Joined:
    Jan 2, 2013
    Posts:
    517
    Its there! and its awesome!
    ezgif-3226404808.gif
     
  28. Alfonso_CJ

    Alfonso_CJ

    Joined:
    Nov 19, 2015
    Posts:
    35
    I really need a Demo version of this...
     
  29. RickyX

    RickyX

    Joined:
    Jan 16, 2013
    Posts:
    280
    Partel, i'm thinking of buying the asset. Does puppetmaster include final ik in it ? Or you have to get both assets (final ik + puppetmaster) in order for it to work ? Or puppetmaster doesen't even require final ik ? Or is it that puppetmaster works alone but gives better results with final ik ? I'm really confused. Thanks in advance.
     
  30. DMeville

    DMeville

    Joined:
    May 5, 2013
    Posts:
    418
    99% sure puppetmaster works without Final IK, however if you want IK to work with your puppets you can drop Final IK onto your character and it will just work
     
    Partel-Lang and RickyX like this.
  31. RickyX

    RickyX

    Joined:
    Jan 16, 2013
    Posts:
    280
    Hmmm, thanks then.
     
  32. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    11,791
    Must quickly think of a game idea where puppet master is useful, because it looks so much fun, but it really doesn't fit with what I'm working on currently :'(
     
    Partel-Lang likes this.
  33. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Just stick it in somewhere for the hell of it. That's how i justify everything
     
  34. Dbone

    Dbone

    Joined:
    Mar 10, 2014
    Posts:
    56
    Did you need to do anything special to integrate with TPC? I'm on that path as well, but haven't gotten started yet with PuppetMaster.
     
  35. lazygunn

    lazygunn

    Joined:
    Jul 24, 2011
    Posts:
    2,749
    Getting the basic functionality can be down to making your character model a puppet with the tools provided then putting the resulting 'character controller' gameobject (it will be a child of the root gameobject created) into the third person controller's character builder. It's not just as simple when it comes to getting the abilities working well but it's a lot more straightforward than i imagined
     
    Partel-Lang, Dbone and DMeville like this.
  36. DMeville

    DMeville

    Joined:
    May 5, 2013
    Posts:
    418
    I've got a (hopefully simple) question. I've got puppetmaster setup into my character controller so I can control my player, and I'd like to make him go full ragdoll (and stop animating) - what's the suggested method for doing this?

    If I drop the pin weight to 0 the character falls over but retains stiffness in his current animation.
    So I drop the muscle weight to 0 and now the joints start slowly twisting. Screen Shot 2015-11-21 at 11.51.02 AM.png
    Increasing the muscle weight value to something really small but not zero (0.01) fixes the slow twisting, but introduces the problem of animation still having a small effect on the character. So even though he's sitting on the ground limp he wobbles a bit from the trying to (very loosely) trying to match the animation pose.
    Dropping the muscle spring down to a lower value (5) makes nice looking floppy ragdolls, but they still jitter a bit from trying to match the target animation pose.

    Additionally I'm getting very springy movement when pin weight is ~0.5 and muscle weight is at 0.01, which is quite neat looking but is there a way to fix that springiness? So it doesn't overshoot and bounce back 10 times before settling? http://i.imgur.com/BFETH24.gifv

    I've played with all of the settings on the puppetmaster script but maybe I just haven't found a good set of values? Any input? :)

    Edit: Another question, what about transferring velocity from animation when ragdoll is entered? Currently when I'm mid jump (moving up) and enter ragdoll by dropping the pin weight I start falling instantly, instead of keeping that upward momentum from the jump. I guess this would be tricky to achieve because how things are set up? Hmmm..

    Really loving this asset so far though!!
     
    Last edited: Nov 21, 2015
  37. Obsurveyor

    Obsurveyor

    Joined:
    Nov 22, 2012
    Posts:
    277
    I was also surprised there were no Behaviors for just going into a plain old ragdoll. I'm sure it's just a first release thing and it will get in there, Partel makes good stuff. I know I've been anticipating Puppet Master for like 2 years now. It has exceeded my expectations a lot. I also noticed that AnimFollow was recently made free, wondered if Puppet Master's release had anything to do with that.

    I saw that springiness too when I was playing around with the included scenes and wasn't sure how to damp it out more but it sure would be nice.

    Can't wait for Partel to get back and start answering everyone's questions and maybe have some of my own by then.
     
    DMeville likes this.
  38. hopeful

    hopeful

    Joined:
    Nov 20, 2013
    Posts:
    5,685
    It looks like it is $90 in the store ...?

    (Ah, I see. It's free on his website.)
     
  39. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,554
    Hey all, I'm back finally, thank you all for your wishes and support! :)
    I'll try to start answering all those questions now..

    I have not tried to use it on this kind of wobbly characters yet, but I can't see why it shouldn't work. You'll have to enable "Update Joint Anchors" and "Support Translation Animation" in the PuppetMaster.

    I don't have a demo version, sorry. But I have no problem refunding your purchase should you be unable to use it for some reason.

    PuppetMaster doesn't include Final IK, they are separate assets that can work both independently and combined.
    FinalIK enhances the capabilities of PuppetMaster, for it enables you to use full body IK and stuff like that to modify the pose that PuppetMaster will follow. Read more from here.

    Hi!,
    If you wish to stop the animation, just disable the Animator. Then set muscle weight to a low value to get rid of the stiffness. If you set muscle weight to 0, the slow twisting occurs because the joint anchors are being updated to match the animation.

    The springy motion when pin weight is at half is inevitable. I never meant it to be kept at half, it is a slider just for smooth transition from 0 to 1 or back. But the springiness can be adjusted by "Pin Pow" and "Pin Distance Falloff", maybe it helps.

    About transferring velocity, I'm a bit confused, I usually have problems with too much initial velocity because the animations are sometimes super fast. Do you drop the pin weight gradually or just set it to 0? Are you using the BehaviourPuppet?

    Thanks for the feedback, it is really easy to overlook the most basic things sometimes :)
    To kill the puppet and also stop muscle animation, one should write like this:

    Code (CSharp):
    1. puppetMaster.pinWeight = 0f; // Disable the pinning
    2.             animator.enabled = false; // Disable the Animator
    3.             puppetMaster.muscleWeight = 0.01f; // Set muscle weight to something low so the character would not be too stiff. It's best to avoid 0.
    4.             puppetMaster.angularLimits = true; // In case it was disabled
    5.             puppetMaster.internalCollisions = true; // In case it was disabled
    6.             puppetMaster.updateJointAnchors = false; // No need to have this enabled anymore, the character is not animated
    7.             puppetMaster.fixTargetTransforms = false; // Do not force the target to the initial pose in each update

    Cheers,
    Pärtel
     
  40. RickyX

    RickyX

    Joined:
    Jan 16, 2013
    Posts:
    280
    Okay then, thanks !
     
  41. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,554
    Hey all,

    Just letting you know that I will have to remove the discount of PuppetMaster for Final IK users.
    Because of the upgrade, the reviews and ratings are shared between the 2 packages, which is wrong and confusing for the customers. So if you think you'll need PM, get it before the next week.
    A proper discount system is in the Asset Store roadmap though. :)

    Best Regards,
    Pärtel
     
  42. montyfi

    montyfi

    Joined:
    Aug 3, 2012
    Posts:
    548
    Oh, snap! But thanks for warning, just bought it.
     
    Partel-Lang likes this.
  43. cygnusprojects

    cygnusprojects

    Joined:
    Mar 13, 2011
    Posts:
    767
    Hoi Partel,

    Doesn't know if it already has been answered but I made a beginner mistake and created a ragdoll for the wrong character prefab :oops:.
    Is there a way to remove all Configurable Joint and colliders?

    Great product by the way!
     
  44. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,554
    Hey,

    Put this little script on the root of the character:

    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. public class RemoveJointsAndColliders : MonoBehaviour {
    5.  
    6.     [ContextMenu("Remove Joints and Colliders")]
    7.     void Do() {
    8.         Joint[] joints = gameObject.GetComponentsInChildren<Joint>();
    9.         for (int i = 0; i < joints.Length; i++) {
    10.             DestroyImmediate(joints[i]);
    11.         }
    12.  
    13.         Collider[] colliders = gameObject.GetComponentsInChildren<Collider>();
    14.         for (int i = 0; i < colliders.Length; i++) {
    15.             DestroyImmediate(colliders[i]);
    16.         }
    17.     }
    18. }
    19.  
    Then right-click on the component header and select "Remove Joints and Colliders".

    Cheers,
    Pärtel
     
  45. cygnusprojects

    cygnusprojects

    Joined:
    Mar 13, 2011
    Posts:
    767
    Thank you Pärtel, works like a charm ;-)
     
  46. Filhanteraren

    Filhanteraren

    Joined:
    May 14, 2014
    Posts:
    47
    What would be the best way to handle pickup weapons? Before PuppetMaster I used the Interaction system with FinalIK, but will that work well with Puppetmaster? The player will still hold on to the weapon after going ragdoll. Would it be better to use the prop system instead. Haven´t tried the prop thing yet so not really sure how it works/ is different. Thanks
     
  47. AlbertSwart

    AlbertSwart

    Joined:
    Oct 17, 2015
    Posts:
    15
    Hi Partel,

    Bought Final IK and PuppetMaster - great additions to the toolbox, thank you. :)

    Question re PuppetMaster:
    If I wanted to, could I replace the Box or Sphere Colliders on limbs with custom Mesh Colliders? As an example, say I wanted to improve accuracy for collisions on your Dummy Character and wanted to use 'low poly' Mesh Dolliders for the chest and pelvis instead of boxes or spheres.

    Thanks
     
    Last edited: Nov 26, 2015
  48. Partel-Lang

    Partel-Lang

    Joined:
    Jan 2, 2013
    Posts:
    2,554
    That is a very good question..
    Basically, if your prop is not physically relevant, I mean if you're not interested in smashing it to anyone's head, you should be able to continue using the InteractionSystem as you were.

    If you need to pick it up the PuppetMaster way (using PropRoot as in the "Prop" demo), you should not use the "Pick Up" toggle in the InteractionObject, but rather make a message that calls a function in your script and that function should assign the Prop to the PropRoot:

    Code (CSharp):
    1. public void OnPickUp() {
    2.         propRoot.currentProp = prop;
    3.     }
    But I really need to think a bit about how to make this stuff more intuitive.

    Hey, thanks for the purchases, welcome aboard!

    I have not tested with MeshColliders, but I can't think of a reason why they shouldn't work.

    Cheers,
    Pärtel
     
    umcherrel likes this.
  49. chaneya

    chaneya

    Joined:
    Jan 12, 2010
    Posts:
    416
    Partel,

    Does PuppetMaster have any functionality for determining whether the character is grounded?

    Or is it assumed that grounded checks will be handled by the specific character controller used or by using GrounderFBBIK or GrounderBipedIK in FinalIK?

    I just don't want to be duplicating functionality.

    Looking at the Grounder Demo scene in FinalIK, it looks like both the character controller (CharacterThirdPerson.cs) and GrounderFBBIK are both doing grounding checks. That seems redundant.

    Thanks
    Allan
     
  50. leevermeulen

    leevermeulen

    Joined:
    Sep 17, 2014
    Posts:
    6
    Anyway to have this work with a increased scale/gravity?

    I am doing a VR project with the HTC Vive. And to get the physics to feel right I had to increase the scale of things 10x (and also increase the gravity by 10x also, to 98.1). I've talked to a number of other Vive developers who had to do this also.

    Just scaling up the root transform 10x, then increasing muscle spring by about 50x and damper by 10x seems to work okay. But the puppet is unable to get up after that
    Any other values I should tweak to get it working with increased scale?