Here is a collection of tips and tricks for getting other assets to work with UMA.
To setup the Invector 3rd person controller, you need to be using a version of UMA that has the 'Bone Builder'. This is in Release 2.7 of UMA, but also available as a feature tree for 2.6 on GITHUB.
Press the button on the Invector Character Creator, and you're done! It creates a new gameobject that is ready to go.
You need to add the FullBodyIK during runtime. Just hook in to the CharacterCreated callback on your UMA and add the following code:
using RootMotion; // Need to include the RootMotion namespace as well because of the BipedReferences FullBodyBipedIK ik; void AddFBBIK (GameObject go, BipedReferences references = null) { if (references == null) { // Auto-detect the biped definition if we don't have it yet BipedReferences.AutoDetectReferences(ref references, go.transform, BipedReferences.AutoDetectParams.Default); } ik = go.AddComponent<FullBodyBipedIK>(); // Adding the component ik.SetReferences(references, null); ik.solver.SetLimbOrientations(BipedLimbOrientations.UMA); // The limb orientations definition for UMA skeletons }
You need to add the VRIK during runtime. Just hook in to the CharacterCreated callback on your UMA and add the following code:
using RootMotion.FinalIK; vrik = go.AddComponent<VRIK>(); // Adding the component vrik.AutoDetectReferences(); vrik.solver.leftArm.shoulderRotationMode = IKSolverVR.Arm.ShoulderRotationMode.FromTo; vrik.solver.rightArm.shoulderRotationMode = IKSolverVR.Arm.ShoulderRotationMode.FromTo;