Ejemplo n.º 1
0
        private static bool Prefix(HEditGlobal __instance, ChaControl _chara, Motion.IK _ik, KinematicCtrl _kinematicCtrl)
        {
            if (_chara == null || _ik == null || _kinematicCtrl == null)
            {
                return(false);
            }

            for (int i = 0; i < 13; i++)
            {
                var area = _ik.areas[i];
                __instance.SetIKParent(_chara, _kinematicCtrl, area.parentCharaID, area.parentArea, i);
                __instance.SetIKPos(_kinematicCtrl.lstIKBone[i].changeAmount, area.amount);
            }
            return(false);
        }
Ejemplo n.º 2
0
        static void Postfix(HEditGlobal __instance, ChaControl _chara, Motion.IK _ik, KinematicCtrl _kinematicCtrl)
        {
            if (_chara == null || _ik == null || _kinematicCtrl == null)
            {
                return;
            }

            for (int i = 0; i < Hooks.NonHardcodedIKTargets.Length; i++)
            {
                int ikTargetIndex = (int)Hooks.NonHardcodedIKTargets[i];
                var area          = _ik.areas[ikTargetIndex];
                area.parentCharaID = -1;
                area.parentArea    = -1;
                __instance.SetIKParent(_chara, _kinematicCtrl, area.parentCharaID, area.parentArea, ikTargetIndex);
            }
        }
Ejemplo n.º 3
0
        static void Postfix(HEditGlobal __instance, ChaControl _chara, Motion.IK _ik, KinematicCtrl _kinematicCtrl)
        {
            if (_chara == null || _ik == null || _kinematicCtrl == null)
            {
                return;
            }

            for (int i = 0; i < Hooks.NonHardcodedIKTargets.Length; i++)
            {
                int ikTargetIndex = (int)Hooks.NonHardcodedIKTargets[i];
                var area          = _ik.areas[ikTargetIndex];
                var bone          = _kinematicCtrl.lstIKBone[ikTargetIndex];
                // The IK targets not hardcoded to have IK parents don't have this method called for them
                __instance.SetIKParent(_chara, _kinematicCtrl, area.parentCharaID, area.parentArea, ikTargetIndex);
                // Then we need to call these to make sure everything is set up
                __instance.SetIKPos(bone.changeAmount, area.amount);
                bone.CalcTransform();
            }
        }