Hey, did you mean you can’t use Animator.SetLookAtPosition or were you talking about LookAtIK of Final IK?
Either way, if the puppet is ragdolled or partially ragdolled, you’ll need to convert the look at target position to muscle space using the pelvis muscle as reference:
If you were using Final IK’s LookAtIK, I suggest you switch to AimIK, it works better in this scenario.
Hey,
The ankle joint is a ball-socket type of joint that rotates more or less the same amount around every axis. It doesn’t really matter much if the green axis is switched with the blue (can be fixed easily with the RagdollEditor). I can’t see the video about getting up, might be set to private.
Hey, thanks for the info. And sorry about the video, I think it’s fixed now (direct link).
The reason I asked this is because I placed my model and the pilot model side by side and made them both puppets in the same way, then when I killed/resurrected them the feet on the pilot looked fine while my model looked like it was twisting.
Video showing two puppets created together in the same way, pilot gets up normally while my model’s feet twist a little:
Upon looking at the bone rotations between the two armatures I noticed that they weren’t the same. Also when I turned off angular limits the issue disappears, this is what lead to me suspect the rotation of the joints.
If I may ask one other related question, what is the reasoning behinde why the yellow limit has two handles and can be inverted, while the green and blue limits have only one handle and can’t be inverted? I feel as though I don’t fully understand the joint limits and why they would ever need to be swapped if it is a ball socket. Like, what is the rule of thumb when adjust the limits (yellow axis is the primary rotation plane)?
[UPDATE] After reading this from the docs I decided to open up the limits a little on the knee joints. Which helped, but not until I opened them up completely did it look a little better (still occasional twitching). I will try simply widening the limits of all joints on the legs and see what happens. But I still don’t understand the purpose of the yellow axis verses the red and blue. [UPDATE] I left the knee joints default but completely opened the limits on the thigh and foot and still saw the leg twist. Only when I fully open the limits on the knee does it look better, but not perfect. I really don’t want to have to disable limits and any suggestions would be nice.
I have purchased only puppet master tool.I am using normal transform.LookAt(). So i want to know that how i can archive that my victom player always face towards my camera with puppet master tool. i also see the final Ik package in the integration folder and add into my project but there after have some errors related to Final IK namespace. please help…
Hey,
Do both PuppetMasters have the same values under “State Settings”? Looks like to me based on that video that the problem might actually be that the feet don’t have much muscle spring so they easily collapse to the limits.
Oh I see, just use that transform.LookAt() on the target root transform (see “Target Root” under PuppetMaster), not the PuppetMaster transform.
About that Final IK package, it is just an integration package for FIK, only import that if you have Final IK installed.
I am using Unity 2017.2.0f3 and am having problems in a demo scene.
In the “Puppet Extended” scene I am trying to turn the character using the A and D keys but the character does not turn, he continues straight even though I keep pressing the keys.
I do not know if it does not set correctly, I took a quick look but found nothing. I would appreciate it if you could help me, thanks
@Partel-Lang Is there any reason why puppet master would behave differently in editor and build? I have a prefab of a puppet, when I drag 5 of them into my scene, they work fine and normal in editor, but when I build my project, 1-3 of them start going crazy and flying across the scene.
I noticed jumpy behavior from some puppets when I forgot to enable animate physics. Took me a while to realize it too. Perhaps it’s something to check…
Hey,
Haven’t seen that before, made tons of builds of it. Which Unity version are you using and any chance you could send me a link to a repro project to support@root-motion.com?
@CloudyVR Thank, you are absolutely correct, I had forgotten to set the prefabs to Animate Physics - that was causing the jumping and crazyness. @Partel-Lang This was the problem, got it working fine now, thank you.
Hi @Partel-Lang I haven’t touched puppet for a long time, so maybe situation is different now: I want to control the puppet in VR, but use locomotion for legs, because otherwise legs movement looks like its owner is a drunk sailor (or I didn’t find a way to move it realistically)
Could you give an example how to achieve a realistic legs movement without legs tracking? E.g. when puppet moves legs are animated by Animator (lets say just forward/backward/sidesteps), and when doesn’t move (or rotating) - by puppet master. Is that even possible?
Hey,
With just PuppetMaster the only way to do this kind of procedural locomotion would to unpin the legs and use kinematic rigidbodies jointed to the feet as footstseps, but I can’t really imagine that looking very good.
If you’re looking for procedural locomotion for VR, I suggest you check out VRIK of Final IK.
I’m having an issue where I crash into an object and reparent my puppet setup my character flies off way further than what would happen normally in the physics. I’m setting the velocity negative to put the character on the ground but it’s never enough. I’m not sure what’s going on, but I could add a force to the puppetmaster rigidbodies but that doesn’t seem like what I should need to do because normally I only move the rigid on the character and everything works fine.
Maybe i was really really lucky but the error was coming when i was using the UMA HumanMale character race and i used it at last a long time ago.
I hope the log statements help you to optimize your product
Ran into a small problem I havent been able to solve, but its one of those things I cant get out of my head until its figured out and im going to work so IO cant test anything out at the moment …I have been using VRIK to punch Puppetmaster AI, but I wanted to change it to react like the Puppetmaster HitReaction.
What I want to do is have a game object connected to the controllers (sphere collider) and when it hits/touches the Puppetmaster dummy it essentially mimics the Raycastshooter.cs on the Puppet RaycastHit scene… I assume I should use OnCollisionEnter but I dont know how to go about it. I’m fairly certain it has to do with these lines of code:
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
// Raycast to find a ragdoll collider
RaycastHit hit = new RaycastHit();
if (Physics.Raycast(ray, out hit, 100f, layers)) {
var broadcaster = hit.collider.attachedRigidbody.GetComponent();
if (broadcaster != null) {
broadcaster.Hit(unpin, ray.direction * force, hit.point);
I haven’t used Puppetmaster long and still dont know how to communicate with it properly, and I have not used Raycast before so that messes me up with understanding what im reading/looking at.
Hey,
How exactly are you unpinning the puppet on that collision, by setting it to Dead state or using behaviourPuppet.SetState or jut setting puppetMaster.pinWeight to 0?
Hey,
Thank you very much! Is the one that is on the top the very first error that was logged?
Hey,
You might get better results with another technique. Please import this package to check it out. I used a similar technique for setting up Rick and Morty so they could be slapped around in that VR game.
Yes there was a log before but this was my stuff, i need to found out a value of a float while i was working on the character, but all logs what you can see on the Screenshot is yours.