New PuppetMaster Integration (Bug and Instruction addition)

JohnG

Member
@Justin

Can you verify the following please:

Addition to instructions:

After point 13.

Subtract the “Ragdoll” layer on the “Solid Objects Layer” mask in the CharacterLayerManager component on the character. (or else character acts strangely)

Bug:

  1. When you change puppet to "Dead" in the State setting (on PuppetMaster component). The character does die, however the mesh warps and stretches upwards.
  2. Setting animator update mode causes the character to jitter. Keeping it as normal removed the jitter. (disabling character IK also removes issue)
 
Last edited:
Not sure if this will help ...

  1. I paused the game.
  2. Set the puppet to dead.
  3. Hit the step button (approximately 50 times)
  4. Character falls perfectly without distortion.
  5. On the next step, the animator is disabled, and character distorts.
 
Temp solution for the character distorting:

when setting puppet to dead, at the same time disable the UltimatedCharacterLocomotion(script) component.
 
For further insight go to this thread: https://www.opsive.com/forum/index....bug-and-instruction-addition.3403/#post-16703

Issues are:

  1. When you change puppet to "Dead" in the State setting (on PuppetMaster component). The character does die, however the mesh warps and stretches upwards. (Disabling ultimatecharacterlocation(script) at the same time is a workaround)
  2. Setting animator update mode causes the character to jitter. Keeping it as normal removed the jitter. (disabling character IK also removes issue)
  3. When Puppet is knocked down, it reverts back to original position and not new position.
  4. Mesh also warps on hard hit and then recovers to regular shape (this is inconsistent and happens in 1 out of every 10 hard hits)
 
Last edited:
Subtract the “Ragdoll” layer on the “Solid Objects Layer” mask in the CharacterLayerManager component on the character. (or else character acts strangely)
Thanks - I'll add it.

When you change puppet to "Dead" in the State setting (on PuppetMaster component). The character does die, however the mesh warps and stretches upwards. (Disabling ultimatecharacterlocation(script) at the same time is a workaround)
Does the sample scene with the dummy character work for you? I just changed the PuppetMaster state to dead and it worked correctly.

Setting animator update mode causes the character to jitter. Keeping it as normal removed the jitter. (disabling character IK also removes issue)
Hmm, from when Partel and I tested it we found that FixedUpdate was required for it not to jitter. If it works with your scene though then that's good.

When Puppet is knocked down, it reverts back to original position and not new position.
Mesh also warps on hard hit and then recovers to regular shape (this is inconsistent and happens in 1 out of every 10 hard hits)

Can you repro these in the demo scene?
 
Didnt know you had a sample scene in there.

Does the sample scene with the dummy character work for you? I just changed the PuppetMaster state to dead and it worked correctly.

Works fine in sample. Will test with new character, in that scene.

Hmm, from when Partel and I tested it we found that FixedUpdate was required for it not to jitter. If it works with your scene though then that's good.

I dont see this issue in the sample. Will test with new character, in that scene, and see if I can replicate.

Can you repro these in the demo scene?

I will test this in the demo scene and see if I can reproduce warping.
 
Very frustrating.

I can reproduce the warping in the demo scene when I follow the instructions (100%)

I can remove the issue when I follow these steps (not a practical solution):

  1. Copy the values of UltimateCharacterLocomotion component script from the demo character, and paste them onto my test character.
  2. Change the puppet and puppet master ability setting to my character components (to overwrite the values from the paste above)
Now there is no distorting when setting character to dead.

I have gone through each setting and under UltimateCharacterLocomotion component script and compared them to my character, and can not see a single difference.

Can you think of anything that you did in setup that is not mentioned in the instructions (re UltimateCharacterLocomotion component script)?

Pulling my hair out here.
 
Howdy JohnG, just figured i'd drop the link to my thread with a few videos of things fucking up in a similar fashion to show you aren't the only one dealing with this stuff. Your tips about the solid layer helped,though there's still problems and i dunno if my issues look like your issues. My demo scene is straight up uberbroken.

 
At least the demo scene works! On the Ultimate Character Locomotion do you have Smoothed Bones set to 0? This is the only thing that I think could be causing this, and I'll add it to the PuppetMaster docs.
 
At least the demo scene works! On the Ultimate Character Locomotion do you have Smoothed Bones set to 0? This is the only thing that I think could be causing this, and I'll add it to the PuppetMaster docs.

Well done, smoothed bones was the culprit (Damn those drop down fields). The character now has an honorable death.
 
I think you still need to add this to the instructions:

Subtract the “Ragdoll” layer on the “Solid Objects Layer” mask in the CharacterLayerManager component on the character.

Here is a video on my setup on a new project with just opsive/pm/integration.

I noticed that some things didn't show up correctly through the screen capture:

1. link to integration - https://opsive.com/support/documentation/ultimate-character-controller/integrations/puppetmaster/
2. To flatten puppetmaster hierarchy, click on puppetmaster, then right click on puppetmaster component in inspector, and a dropdown should appear that has the flatten hierarchy option.

Here is my first video (If you cant understand my accent, tough luck:) )
 
Great to see both you and @LethDavidson making progress on this integration :) I've added the note to the documentation - thanks for helping debug it and posting that video!
 
  1. When Puppet is knocked down, it reverts back to original position and not new position.

FYI, Re the above issue. I found out that this was the health script. The character reverts back to original position when respawn after death. So this works exactly how it is supposed to. I just changed the hit points so that I could damage the character more before it was killed (100hps is default).
 
Oh yeah, sorry i hadn't even clicked that this was an issue you were having. I had that as well, but i mucked with the respawner settings and i was able to get 'em to stand back up at their new location and not where they started. I forget which one worked, spawn point/start lcoation/none, but one of them got the correct behavior.
 
Top