UMA Error: "The left or right hand bone is not assigned"

Here's a screenshot of the full stack trace:
I'm using the first person controller with the latest UMA package with UMADynamicCharacterAvatar. I've followed the tutorial and things are actually working fine, despite this error, but I'd like to resolve it regardless.
 

Justin

Administrator
Staff member
That error indicates that the CharacterIK component can't find the left or right hand bone. Are you using the bone builder or generating the character at runtime?
 
I'm using the bone builder in the Character Menu at editor time. I followed this tutorial: https://opsive.com/support/documentation/ultimate-character-controller/integrations/uma/

I then added LeftShoulder and RightShoulder bones to the FirstPerson items in Character Manager, so they'll be drawn without clipping.
Please let me know if any of this is incorrect or should be adjusted. At this point I'm pretty much going for out-of-the-box UMA + Opsive FPC, without doing anything to out of the ordinary.
 

Justin

Administrator
Staff member
Selecting the shoulders shouldn't do anything since the bone still exists but if you remove those from the arms does it work? In the avatar for your character do you have the left and right bones? If you set a breakpoint within CharacterIK you'll see that all that line is doing is trying to get the bone from the animator. So if the animator isn't aware of the bone then it's going to cause problems.
 
Although I'm certain the hand bones existed at one point (I recall renaming the "Item" bones for each hand) they no longer exist. I'm not sure what happened, whether is was a mistaken deletion or something else. Either way, I created a new UMA Opsive character and then copy & pasted the complete bone tree over to the character, replacing the old malformed one. Seems to be finding the hands now. Thanks for your help.
 
I created a UMA character, generated all the bones, created with character manager, etc. The scene ran fine -- I could run, jump, etc. and everything worked great and no errors. I then save it all as a prefab by dragging it down to my project directory. I delete it from the scene and re-add the prefab. Nothing should have changed at this point -- I've just saved it as a prefab, removed it, added the same prefab back. However, now when I run I get this error:
This may seem a bit contrived, but I'm trying to create a solid UMA implementation in a test scene, save it as a prefab, and then use it in my actual game scene. If saving it to a prefab breaks CharacterIK, then this won't work.

Thank you for the help!
 
I thought maybe opening it up as an "existing character" in the Character Manager and updating it would rewire something which was lost, but interestingly, it doesn't consider it a humanoid anymore and had the "Model Type" set to "Generic." When I set it back to "Humanoid" I got this error:
Very odd. What am I missing?
 

Justin

Administrator
Staff member
Merging threads as they look like they are related. You'll get that error when the component can't find the head bone, so this looks similar to the issue that you had with the left or right bone. It looks like whatever change you made earlier to fix the left or right bones you'll need to do the same thing here.
 
I think this may be a different issue. In the "hand bone" issue, the bone was actually missing and I regenerated the UMA bone structure.

In this case, all the bones are present, including the "head" bone, and CharacterIK is failing on line 221, because it thinks the animator is not "human."

And again, all I did is make it a prefab and then re-add it to the scene.
 

Justin

Administrator
Staff member
I'm not sure how Unity determines if the character is a humanoid but it could be an issue with that. I would report the bug to Unity specifying that the avatar is humanoid but Animator.isHumanoid is returning failure.
 
Top