Exemple #1
0
        /*
         * 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);
        }
Exemple #3
0
        /*
         * Initiating and setting defaults
         * */
        protected override void OnInitiate()
        {
            if (boneMap == null)
            {
                boneMap = new BoneMap();
            }

            boneMap.Initiate(bone, solver);
        }
Exemple #4
0
        /*
         * 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);
            }
        }
Exemple #5
0
        /*
         * 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);
            }
        }
Exemple #6
0
 /*
  * Initiating and setting defaults
  * */
 protected override void OnInitiate()
 {
     boneMap.Initiate(bone, solver);
 }