/* * Initiating and setting defaults * */ protected override void OnInitiate() { if (iterations <= 0) { iterations = 3; } // Creating the bone maps if (spine.Length != spineBones.Length) { spine = new BoneMap[spineBones.Length]; } rootNodeIndex = -1; for (int i = 0; i < spineBones.Length; i++) { if (spine[i] == null) { spine[i] = new BoneMap(); } spine[i].Initiate(spineBones[i], solver); // Finding the root node if (spine[i].isNodeBone) { rootNodeIndex = i; } } leftUpperArm.Initiate(leftUpperArmBone, solver); rightUpperArm.Initiate(rightUpperArmBone, solver); leftThigh.Initiate(leftThighBone, solver); rightThigh.Initiate(rightThighBone, solver); for (int i = 0; i < spine.Length; i++) { spine[i].SetIKPosition(); } // Defining the plane for the first bone spine[0].SetPlane(spine[rootNodeIndex].node, leftThigh.node, rightThigh.node); // Finding bone lengths and axes for (int i = 0; i < spine.Length - 1; i++) { spine[i].SetLength(spine[i + 1]); spine[i].SetLocalSwingAxis(spine[i + 1]); spine[i].SetLocalTwistAxis(leftUpperArm.transform.position - rightUpperArm.transform.position, spine[i + 1].transform.position - spine[i].transform.position); } // Defining the plane for the last bone spine[spine.Length - 1].SetPlane(spine[rootNodeIndex].node, leftUpperArm.node, rightUpperArm.node); spine[spine.Length - 1].SetLocalSwingAxis(leftUpperArm, rightUpperArm); useFABRIK = UseFABRIK(); }
/* * Initiating and setting defaults * */ public override void Initiate(IKSolverFullBody solver) { if (boneMap == null) { boneMap = new BoneMap(); } boneMap.Initiate(bone, solver); }
/* * Initiating and setting defaults * */ protected override void OnInitiate() { if (boneMap == null) { boneMap = new BoneMap(); } boneMap.Initiate(bone, solver); }
/* * Initiating and setting defaults * */ protected override void OnInitiate() { // Finding the nodes if (parentBone != null) { boneMapParent.Initiate(parentBone, solver); } boneMap1.Initiate(bone1, solver); boneMap2.Initiate(bone2, solver); boneMap3.Initiate(bone3, solver); // Define plane points for the bone maps boneMap1.SetPlane(boneMap1.node, boneMap2.node, boneMap3.node); boneMap2.SetPlane(boneMap2.node, boneMap3.node, boneMap1.node); // Find the swing axis for the parent bone if (parentBone != null) { boneMapParent.SetLocalSwingAxis(boneMap1); } }
/* * Initiating and setting defaults * */ public override void Initiate(IKSolverFullBody solver) { if (boneMapParent == null) { boneMapParent = new BoneMap(); } if (boneMap1 == null) { boneMap1 = new BoneMap(); } if (boneMap2 == null) { boneMap2 = new BoneMap(); } if (boneMap3 == null) { boneMap3 = new BoneMap(); } // Finding the nodes if (parentBone != null) { boneMapParent.Initiate(parentBone, solver); } boneMap1.Initiate(bone1, solver); boneMap2.Initiate(bone2, solver); boneMap3.Initiate(bone3, solver); // Define plane points for the bone maps boneMap1.SetPlane(solver, boneMap1.transform, boneMap2.transform, boneMap3.transform); boneMap2.SetPlane(solver, boneMap2.transform, boneMap3.transform, boneMap1.transform); // Find the swing axis for the parent bone if (parentBone != null) { boneMapParent.SetLocalSwingAxis(boneMap1); } }
/* * Initiating and setting defaults * */ protected override void OnInitiate() { boneMap.Initiate(bone, solver); }