Beispiel #1
0
 public static void char_kinematic(Actor chara, ActorData param)
 {
     // param = 0-none, 1-IK, 2-FK
     chara.set_kinematic(param.kinematicType);
 }
Beispiel #2
0
        virtual public void Apply(Actor a)
        {
            a.Visible = visible;
            if (visible)
            {
                //if (this.kinematicType != KinematicMode.IK)
                //{
                if (a.Position != position || a.Animation.no != anim.no)
                {
                    a.BreastDBEnable = false;
                }
                //}


                a.Position           = position;
                a.Rotation           = rotation;
                a.Scale              = scale;
                a.AnimeSpeed         = animeSpeed;
                a.AnimePattern       = animePattern;
                a.AnimationForceLoop = forceLoop;
                a.Accessories        = accessoryStatus;
                a.FaceRedness        = faceRedness;
                son = a.Son;

                if (anim.normalizedTime is float time)
                {
                    a.SetAnimate(anim.group, anim.category, anim.no, time);
                }
                else
                {
                    a.SetAnimate(anim.group, anim.category, anim.no);
                }


                //(height, breast) = a.animeOption;

                a.Clothes = cloth;

                a.Juice       = juice;
                a.NippleStand = nippleHardness;

                a.Simple      = simple;
                a.SimpleColor = simpleColor;

                a.Gaze            = eyeLookPattern;
                a.GazeTarget      = eyeLookPos;
                a.LookNeckPattern = neckPattern;

                a.LookNeckFull2  = neck;
                a.EyebrowPattern = eyebrowPattern;
                a.EyePattern     = eyePattern;
                a.EyeAngles      = eyeAngles;
                a.EyesOpenLevel  = eyesOpen;
                a.EyesBlink      = blinking;
                a.MouthPattern   = mouthPattern;
                a.MouthOpenLevel = mouthOpen;
                a.LipSync        = lipSync;
                a.HandPattern    = handMotions;

                if (a.Kinematic != kinematicType)
                {
                    a.set_kinematic(kinematicType);
                }

                if (kinematicType == KinematicMode.IK)
                {
                    a.set_IK_active(ikActive);
                    a.import_ik_target_info(ik);
                }
                else if (kinematicType == KinematicMode.FK)
                {
                    a.set_FK_active(fkActive);
                    a.import_fk_bone_info(fk);
                }
                else if (kinematicType == KinematicMode.IKFK)
                {
                    a.set_IK_active(ikActive);
                    a.set_FK_active(fkActive);
                    a.import_ik_target_info(ik);
                    a.import_fk_bone_info(fk);
                }


                //voice_lst = voiceList;
                a.VoiceRepeat = voiceRepeat;

                if (a.Position != position || a.Animation.no != anim.no)
                {
                    a.BreastDBEnable = true;
                }

                //External plugin data

                try
                {
                    if (kinematicType == KinematicMode.IK)
                    {
                        advIKData.Apply(a);
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                }
            }
        }