Request for a puppetmaster integration video; AKA, help i broke it :(

Howdy!

I'm extremely happy that the puppetmaster integration is out, I've been eager to integrate the two for months. Thank you! However, the demo out of the box acts very oddly as the character just wiggles hard in place and contorts when moving. I'm attempting to set up my own from scratch, but i admit the instructions are a bit dense and i'm not quite clicking with them. Would it be possible to record a quick vid about putting the two together, as it's a pretty complex setup and seeing it would help make the process click.

I've ensured that the ragdoll and collision layers are made and set to not mess with eachother as well. I've also applied various humanoid puppetweight presets, but it wigs out with them on or off regardless.

Edit:
So i have two vids; the first is just the demo running. I've ran it on a fresh project, i've ran it with it's defaults, and i've ran it after reassigning layers to ensure everything's tagged properly, it all does whatever this is. It runs a bit long but the back half is largely me showing off the setting and to show that it should all be good, but isn't.

The second vid is what happens when i create a character following the instructions. I included my hands to show that i'm not touching anything, so god knows what physics weirdness is pulling it apart. It doesn't do THIS until i assign both the puppet and master in the puppet ability, but without them i can't move so all kinds of movement seems to break this thing hard. this one also runs long but mostly because it was just weird af to look at, and in the back half it DOES stop freaking out only to freak out more the moment i try to move it.

I also made ragdoll/collsions not impact subcharacter layers as well, just to see if that helped, and it didn't.


big edit:
So i followed the advice in this thread of adding ragdoll to the solid objects layer, adn for my own opsive character this fixes the wild automatic swinging, but there still is weird jitters on movement but it's at least a more stable place to work from. This does not however fix the included demo scene, which is still all kinds of busted as far as i can tell.
 
Last edited:
Let me figure out what is going wrong based on JohnG's thread, and then I'll have a better idea. If I need to create a video tutorial I can, but I first want to figure out what is going wrong.
 
Howdy!

I'm extremely happy that the puppetmaster integration is out, I've been eager to integrate the two for months. Thank you! However, the demo out of the box acts very oddly as the character just wiggles hard in place and contorts when moving. I'm attempting to set up my own from scratch, but i admit the instructions are a bit dense and i'm not quite clicking with them. Would it be possible to record a quick vid about putting the two together, as it's a pretty complex setup and seeing it would help make the process click.

I've ensured that the ragdoll and collision layers are made and set to not mess with eachother as well. I've also applied various humanoid puppetweight presets, but it wigs out with them on or off regardless.

Edit:
So i have two vids; the first is just the demo running. I've ran it on a fresh project, i've ran it with it's defaults, and i've ran it after reassigning layers to ensure everything's tagged properly, it all does whatever this is. It runs a bit long but the back half is largely me showing off the setting and to show that it should all be good, but isn't.

The second vid is what happens when i create a character following the instructions. I included my hands to show that i'm not touching anything, so god knows what physics weirdness is pulling it apart. It doesn't do THIS until i assign both the puppet and master in the puppet ability, but without them i can't move so all kinds of movement seems to break this thing hard. this one also runs long but mostly because it was just weird af to look at, and in the back half it DOES stop freaking out only to freak out more the moment i try to move it.

I also made ragdoll/collsions not impact subcharacter layers as well, just to see if that helped, and it didn't.


big edit:
So i followed the advice in this thread of adding ragdoll to the solid objects layer, adn for my own opsive character this fixes the wild automatic swinging, but there still is weird jitters on movement but it's at least a more stable place to work from. This does not however fix the included demo scene, which is still all kinds of busted as far as i can tell.


For the first video, did you see the warning? I have done this before. Set the two layers to ignore in the physics collision matrix.
 
I actually did, yeah, Ragdoll/character and Collision/character are set to ignore eachother, but no dice.

now it's more than possible i just did it wrong, and i would legit love for that to be the case, that's an easy answer. But that's part of wanting a video detailing the process as from what i've read and followed it SHOULD be right, but... very much isn't.
 
I actually did, yeah, Ragdoll/character and Collision/character are set to ignore eachother, but no dice.

now it's more than possible i just did it wrong, and i would legit love for that to be the case, that's an easy answer. But that's part of wanting a video detailing the process as from what i've read and followed it SHOULD be right, but... very much isn't.

I just tried to do the sample scene from a brand new project. It is hard to get that one working as none of the layers are setup. Took me about an hour to check back and forth between a project that is working for puppetmaster and UCC separately. I think this is why Justin in the instructions suggests that:

Before setting up the integration it is recommend that you have first independently setup a Ultimate Character Controller character and PuppetMaster puppet before.

I didn't quite understand what he was trying to say until I attempted to run the demo from a new project. All my other attempts were from a project where I already had puppetmaster and ucc working independently, so I didn't have that full body jitters in your video, however when set it up as a new project I also experienced the full body jitters. Ill try to do a video tomorrow, unless you have it sorted by then.
 
I've gotten the same errors in a fresh file as i've gotten in one i've already installed both in, so perhaps i purely installed it wrong or did something wrong with the layers. I took the line about "setup both first" to mean "hey, know what you're doing first before you mess with this."
 
To get started, have you gotten the demo scene working? I just added more details to the PuppetMaster documentation about the layers.
 
Okay good news, yeah i got the demo to work. I don't know why it wasn't before, but this time when i set all the puppetmaster components to Ragdoll layer they played nice, ontop of the solid layer and invisible layer ragdoll stuff. The problem was indeed that the collision layers were rubbing up on eachother. I know i did that before, and it didn't seem to work then, but it seems to not be breaking as hard right now. Def recommend putting a note to assign the proper layers in the demo as they all come busted outta the box.

Haven't redone it with my own custom character yet, but hey it's progress. Here's a vid of it breaking, me changing. the settings, and then it not breaking anymore. The smoothed feet didn't seem to change anything, but i'll keep it in mind when i build up my own char in a bit.

EDIT:
okay more rad news, the custom character also seems to be alot more functional now. Turning the smoothed bones off seemed to help, as well as playing with the Solid Layers. I included a video of it working both with and without the layers. It's also likely worth putting in the notes that with Collisions as part of the solid layers, your character doesn't normally touch the collison walls in the way it needs to severely de-pin, which means you only ragdoll when you hit stuff at extreme angles (which might be what people want, of course), but turning it off means that you'll rub up against the objects and the collision layer is gonna act directly on the ragdoll, leading to far more extreme results (which is the stuff i'm after.) I'm sure you've messed with this already and know this stuff but it's worth making a note of to cut off people asking about it later.

the first half is bopping around with the setting as given in the notes, adn the othe rhalf are me doing it with the solid objects saying to ignore collision.

I don't actually know why my animator broke like halfway through though, and wouldn't animate anymore. It might have something to do with it just not liking to return to normal from the extreme contortions of hitting the collision layer directly? I could have also just pressed some buttons wrong and broke it, i dunno, i'm not too worried about it atm.

I also haven't really tried any real gameplay with this yet, so i don't know anything about weird dead states like JohnG has or moment-to-moment usability concerns, but i'll be sure to mention anything that comes up.
 
Last edited:
Great to see the progress! What animation state is the character in when the legs don't move?
 
So an actual use-case question; i need to be able to hit the ragdoll layer on the character, but the overall character collider is in the way soaks up the damage. If i ignore the character layer i can shoot the model and it wiggles around just, but then of course i can't damage the guy due to not hitting the actual proper collider. Any recommendations on how to both hit the ragdolls, as well as damage the actual character (more or less the reason i wanted that integration)

I've been poking at the various hitscan/collider gun options, what layers they impact and what the character itself sees, and i'm just not finding a solution that lets me damage the character, as well as hit the ragdoll colliders so they can wiggle around. I've changed the solid layers, the invisible layers, ect. I'm thinking i might need to write soem custom onimpact event scripting, but i feel like i shouldn't have to? This seems like something critical and so i just feel like i'm missing something.


EDIT: included a vid: if i shoot the center of the model, there's no wiggle as it's hitting the capsule collider for the character, but if i shoot he limbs it wiggles as the projectile is set to be a collider and so it's able to hit the ragdoll collider dangling out from the main capsule. So it wiggles all i want if i shoot the limbs, but no damage. if i turn off impact with the char layer, then i can shoot it all over and it (sorta) acts in the kind of manner i want, but obviously it's never gonna kill the guy.
 
Last edited:
I’m going to recommend that you get rid of projectile for guns. This is for your own sanity as you will be running into problem after problem. I have been down this route, so it’s my personal experience/opinion.

How I have handled this type of situation is to do a few things, and I warn you in advance that it’s elaborate ...


  1. Change to hitscan.
  2. set impact layer to Ragdoll layer.
  3. have outer trigger collider, make sure it’s layer is Ragdoll.
  4. put script on collider and all body parts (Ragdoll body parts)
  5. in script check if you hit outer collider (using hitscan), if yes, create Ray cast from end of weapon to hitscan impact point.
  6. if above raycast hits body part, use puppetmasters unpin to create hitforce on body part.
I think the above is a very basic overview ofhow I deal with puppet master /opsive impacts.

i am not sure how to handle health yet.
 
Yeah that seems doable, more steps than i figured i'd need to handle but alright. I was using hitscan before but just swapped to projectile for a test. I'm imagining that actually damaging the ucc character like this is gonna be wrapped up in the OnImpact event, and/or taking the damage value from the cast/event "what hit me" info and passing it to health. I'll give that a go and try to expand on it when i have some time later.
 
One method that you could also take is to subclass CharacterHealth.Damage and then apply another raycast based on the hit location to the ragdoll layers. This will allow you to work with any object type.
 
Top