public bool CopyParamTo(DynamicBone_Ver02 target)
        {
            if (parameters == null || particles == null)
            {
                return(false);
            }
            if (parameters.Count() != 3 || particles.Count() != 4)
            {
                return(false);
            }

            target.Gravity.Set(gravity.x, gravity.y, gravity.z);

            for (int i = 0; i < parameters.Count(); i++)
            {
                target.Patterns[0].Params[i].IsRotationCalc = parameters[i].IsRotationCalc;
                target.Patterns[0].Params[i].Damping        = parameters[i].Damping;
                target.Patterns[0].Params[i].Elasticity     = parameters[i].Elasticity;
                target.Patterns[0].Params[i].Stiffness      = parameters[i].Stiffness;
                target.Patterns[0].Params[i].Inert          = parameters[i].Inert;
            }

            for (int i = 0; i < particles.Count(); i++)
            {
                target.Patterns[0].ParticlePtns[i].IsRotationCalc = particles[i].IsRotationCalc;
                target.Patterns[0].ParticlePtns[i].Damping        = particles[i].Damping;
                target.Patterns[0].ParticlePtns[i].Elasticity     = particles[i].Elasticity;
                target.Patterns[0].ParticlePtns[i].Stiffness      = particles[i].Stiffness;
                target.Patterns[0].ParticlePtns[i].Inert          = particles[i].Inert;
            }
            return(true);
        }
 public bool Init(ChaControl _female)
 {
     this.chaFemale = _female;
     if (Object.op_Equality((Object)this.chaFemale, (Object)null))
     {
         return(false);
     }
     DynamicBone_Ver02[] dynamicBoneVer02Array = new DynamicBone_Ver02[2]
     {
         this.chaFemale.GetDynamicBoneBustAndHip(ChaControlDefine.DynamicBoneKind.BreastL),
         this.chaFemale.GetDynamicBoneBustAndHip(ChaControlDefine.DynamicBoneKind.BreastR)
     };
     for (int index1 = 0; index1 < 2; ++index1)
     {
         this.lstsRef[index1]   = new List <DynamicBoneReferenceCtrl.Reference>();
         this.bonePtns[index1]  = new DynamicBone_Ver02.BonePtn();
         this.lstsTrans[index1] = new List <Transform>();
         if (Object.op_Inequality((Object)dynamicBoneVer02Array[index1], (Object)null) && dynamicBoneVer02Array[index1].Patterns.Count > 0)
         {
             this.bonePtns[index1] = dynamicBoneVer02Array[index1].Patterns[0];
             for (int index2 = 1; index2 < this.bonePtns[index1].Params.Count; ++index2)
             {
                 this.lstsTrans[index1].Add(this.bonePtns[index1].Params[index2].RefTransform);
             }
         }
     }
     return(true);
 }
        public static void RegisterDynamicBone(DynamicBone_Ver02 bone, Action <DynamicBone_Ver02> updateListener)
        {
            bool foundBone = false;

            foreach (WeakReference <DynamicBone_Ver02> wr in DynamicBoneV2UpdateListeners.Keys)
            {
                bool found = wr.TryGetTarget(out DynamicBone_Ver02 checkBone);
                if (found && checkBone == bone)
                {
#if DEBUG
                    Log.LogInfo($"Adding Listener to {bone.name}");
#endif
                    DynamicBoneV2UpdateListeners[wr].Add(updateListener);
                    foundBone = true;
                    break;
                }
            }

            if (!foundBone)
            {
#if DEBUG
                Log.LogInfo($"Adding new Bone Listener {bone.name}");
#endif
                List <Action <DynamicBone_Ver02> > listeners = new List <Action <DynamicBone_Ver02> >();
                listeners.Add(updateListener);
                DynamicBoneV2UpdateListeners[new WeakReference <DynamicBone_Ver02>(bone)] = listeners;
            }
        }
            /// <summary>
            /// Apply adjustments to breast dynamic bones
            /// </summary>
            private void UpdateBreastDB(DynamicBone_Ver02 dynamicBone)
            {
                if (!BreastDBComments.Contains(dynamicBone.Comment))
                {
                    return;
                }

                //Expand the collision radius for the breast dynamic bones
                foreach (var pat in dynamicBone.Patterns)
                {
#if KK
                    pat.Params[0].CollisionRadius = BreastCollidersEnabled ? 0.08f * BreastCollisionRadiusMultiplier : 0;
                    pat.Params[1].CollisionRadius = BreastCollidersEnabled ? 0.06f * BreastCollisionRadiusMultiplier : 0;
#elif AI
                    pat.Params[2].CollisionRadius = BreastCollidersEnabled ? 0.8f * BreastCollisionRadiusMultiplier : 0;
                    pat.Params[3].CollisionRadius = BreastCollidersEnabled ? 0.6f * BreastCollisionRadiusMultiplier : 0;
#else
                    throw new System.NotImplementedException();
#endif
                }

                dynamicBone.GetType().GetMethod("InitNodeParticle", AccessTools.all).Invoke(dynamicBone, null);
                dynamicBone.GetType().GetMethod("SetupParticles", AccessTools.all).Invoke(dynamicBone, null);
                dynamicBone.InitLocalPosition();
                if ((bool)dynamicBone.GetType().GetMethod("IsRefTransform", AccessTools.all).Invoke(dynamicBone, null))
                {
                    dynamicBone.setPtn(0, true);
                }
                dynamicBone.GetType().GetMethod("InitTransforms", AccessTools.all).Invoke(dynamicBone, null);
            }
            /// <summary>
            /// Applies this character's arm colliders to breast dynamic bones
            /// </summary>
            private void UpdateArmCollidersBreastDB(DynamicBone_Ver02 dynamicBone)
            {
                if (!BreastDBComments.Contains(dynamicBone.Comment))
                {
                    return;
                }
                if (ArmColliders == null)
                {
                    return;
                }
                UpdateArmCollidersBreastDB(dynamicBone, ArmColliders);

                for (var i = 0; i < ArmColliders.Count; i++)
                {
                    var armCollider = ArmColliders[i];
                    if (!BreastCollidersEnabled)
                    {
                        dynamicBone.Colliders.Remove(armCollider);
                    }
                    else if (armCollider != null && !dynamicBone.Colliders.Contains(armCollider))
                    {
                        dynamicBone.Colliders.Add(armCollider);
                    }
                }
            }
            /// <summary>
            /// Apply adjustments to breast dynamic bones
            /// </summary>
            private void UpdateBreastDB(DynamicBone_Ver02 dynamicBone)
            {
                if (!BreastDBComments.Contains(dynamicBone.Comment))
                {
                    return;
                }

                //Expand the collision radius for the breast dynamic bones
                for (var index = 0; index < dynamicBone.Patterns.Count; index++)
                {
                    var pat = dynamicBone.Patterns[index];
#if KK || KKS
                    pat.Params[0].CollisionRadius = BreastCollidersEnabled ? 0.10f * BreastSize : 0;
                    pat.Params[1].CollisionRadius = BreastCollidersEnabled ? 0.08f * BreastSize : 0;
#elif AI || HS2
                    pat.Params[2].CollisionRadius = BreastCollidersEnabled ? 1.0f * BreastSize : 0;
                    pat.Params[3].CollisionRadius = BreastCollidersEnabled ? 0.8f * BreastSize : 0;
#endif
                }

                dynamicBone.GetType().GetMethod("InitNodeParticle", AccessTools.all).Invoke(dynamicBone, null);
                dynamicBone.GetType().GetMethod("SetupParticles", AccessTools.all).Invoke(dynamicBone, null);
                dynamicBone.InitLocalPosition();
                if ((bool)dynamicBone.GetType().GetMethod("IsRefTransform", AccessTools.all).Invoke(dynamicBone, null))
                {
                    dynamicBone.setPtn(0, true);
                }
                dynamicBone.GetType().GetMethod("InitTransforms", AccessTools.all).Invoke(dynamicBone, null);
            }
        public static bool ApplyParamBust(ParamBustCustom source, DynamicBone_Ver02 target)
        {
            Regex regex = new Regex("_R$");

            //For Params
            //Parameter Patterns[0]="通常"
            target.setGravity(0, new UnityEngine.Vector3(0, source.gravity, 0));

            for (int i = 0; i < target.Patterns[0].Params.Count; i++)
            {
                string boneName = regex.Replace(target.Patterns[0].Params[i].Name, "_L");
                if (source.paramBones.ContainsKey(boneName))
                {
                    ParamBone parameterSet = source.paramBones[boneName];
                    if (parameterSet != null)
                    {
                        parameterSet.CopyParameterTo(target.Patterns[0].Params[i]);
                    }
                    else
                    {
                        return(false);
                    }
                }
            }

            //For ParticlePtn
            //ParticlePtn Patterns[0]="通常"
            CopyParamsToParticlePtn(target);

            //For Particle. Must set at last.
            target.setPtn(0, true);

            return(true);
        }
Exemple #8
0
        public void ReCalc(params int[] changePtn)
        {
            if (Object.op_Equality((Object)null, (Object)this.chaCtrl) || Object.op_Equality((Object)null, (Object)this.info) || changePtn.Length == 0)
            {
                return;
            }
            float rate        = Mathf.Clamp((float)((double)this.info.fileBody.bustSoftness * (double)this.info.fileBody.shapeValueBody[1] + 0.00999999977648258), 0.0f, 1f);
            float _stiffness  = this.TreeLerp(this.bustStiffness, rate);
            float _elasticity = this.TreeLerp(this.bustElasticity, rate);
            float _damping    = this.TreeLerp(this.bustDamping, rate);

            DynamicBone_Ver02[] dynamicBoneVer02Array = new DynamicBone_Ver02[2]
            {
                this.chaCtrl.GetDynamicBoneBustAndHip(ChaControlDefine.DynamicBoneKind.BreastL),
                this.chaCtrl.GetDynamicBoneBustAndHip(ChaControlDefine.DynamicBoneKind.BreastR)
            };
            foreach (int _ptn in changePtn)
            {
                foreach (DynamicBone_Ver02 dynamicBoneVer02 in dynamicBoneVer02Array)
                {
                    if (Object.op_Inequality((Object)dynamicBoneVer02, (Object)null))
                    {
                        dynamicBoneVer02.setSoftParams(_ptn, -1, _damping, _elasticity, _stiffness, true);
                    }
                }
            }
        }
Exemple #9
0
        public void LoadFrom(BoobsEditor other)
        {
            PHPE._self.ExecuteDelayed(() =>
            {
                ChaControl charFemale  = this._target.ociChar.charInfo;
                ChaControl otherFemale = other._target.ociChar.charInfo;

                this._alternativeUpdateMode = other._alternativeUpdateMode;
                foreach (KeyValuePair <DynamicBone_Ver02, BoobData> kvp in other._dirtyDynamicBones)
                {
                    DynamicBone_Ver02 db = this.GetDynamicBone(other.GetID(kvp.Key));

                    if (db != null)
                    {
                        if (kvp.Value.originalEnabled.hasValue)
                        {
                            db.enabled = other.GetEnabled(kvp.Key);
                        }
                        if (kvp.Value.originalForce.hasValue)
                        {
                            db.Force = other.GetForce(kvp.Key);
                        }
                        if (kvp.Value.originalGravity.hasValue)
                        {
                            db.Gravity = other.GetGravity(kvp.Key);
                        }
                        this._dirtyDynamicBones.Add(db, new BoobData(kvp.Value));
                    }
                }
            }, 2);
        }
        public void CopyParamFrom(DynamicBone_Ver02 target)
        {
            gravity.Set(target.Gravity.x, target.Gravity.y, target.Gravity.z);
            parameters = new ParamBone[target.Patterns[0].Params.Count()];
            for (int i = 0; i < parameters.Count(); i++)
            {
                ParamBone param = new ParamBone("");
                param.IsRotationCalc = target.Patterns[0].Params[i].IsRotationCalc;
                param.Damping        = target.Patterns[0].Params[i].Damping;
                param.Elasticity     = target.Patterns[0].Params[i].Elasticity;
                param.Stiffness      = target.Patterns[0].Params[i].Stiffness;
                param.Inert          = target.Patterns[0].Params[i].Inert;
                parameters[i]        = param;
            }


            particles = new ParamBone[target.Patterns[0].ParticlePtns.Count()];
            for (int i = 0; i < particles.Count(); i++)
            {
                particles[i] = new ParamBone("");
                particles[i].IsRotationCalc = target.Patterns[0].ParticlePtns[i].IsRotationCalc;
                particles[i].Damping        = target.Patterns[0].ParticlePtns[i].Damping;
                particles[i].Elasticity     = target.Patterns[0].ParticlePtns[i].Elasticity;
                particles[i].Stiffness      = target.Patterns[0].ParticlePtns[i].Stiffness;
                particles[i].Inert          = target.Patterns[0].ParticlePtns[i].Inert;
            }
        }
Exemple #11
0
 public static void ResetButtGravity(DynamicBone_Ver02 bone)
 {
     UpdateButtGravity(bone, new Vector3(
                           BoobController.floatDefaults[BoobController.BUTT + BoobController.GRAVITY_X],
                           BoobController.floatDefaults[BoobController.BUTT + BoobController.GRAVITY_Y],
                           BoobController.floatDefaults[BoobController.BUTT + BoobController.GRAVITY_Z]
                           ));
 }
Exemple #12
0
        private void DisplaySingle(DynamicBone_Ver02 elem, string label)
        {
            GUILayout.BeginHorizontal();
            GUILayout.Label(label + (this.IsDirty(elem) ? "*" : ""));
            GUILayout.FlexibleSpace();
            bool e    = this.GetEnabled(elem);
            bool newE = GUILayout.Toggle(e, "Enabled");

            if (newE != e)
            {
                this.SetEnabled(elem, newE);
            }
            GUILayout.EndHorizontal();

            GUILayout.Label("Gravity");
            Vector3 gravity    = this.GetGravity(elem);
            Vector3 newGravity = this.Vector3Editor(gravity, AdvancedModeModule._redColor, "X:   ", "Y:   ", "Z:   ");

            if (newGravity != gravity)
            {
                this.SetGravity(elem, newGravity);
            }

            GUILayout.Label("Force");
            Vector3 force    = this.GetForce(elem);
            Vector3 newForce = this.Vector3Editor(force, AdvancedModeModule._blueColor, "X:   ", "Y:   ", "Z:   ");

            if (newForce != force)
            {
                this.SetForce(elem, newForce);
            }

            GUILayout.BeginHorizontal();

            if (GUILayout.Button("Go to root", GUILayout.ExpandWidth(false)))
            {
                this._parent.EnableModule(this._parent._bonesEditor);
                this._parent._bonesEditor.GoToObject(elem.Root.gameObject);
            }

            if (GUILayout.Button("Go to tail", GUILayout.ExpandWidth(false)))
            {
                this._parent.EnableModule(this._parent._bonesEditor);
                this._parent._bonesEditor.GoToObject(elem.Root.GetDeepestLeaf().gameObject);
            }

            GUILayout.FlexibleSpace();
            Color c = GUI.color;

            GUI.color = AdvancedModeModule._redColor;
            if (GUILayout.Button("Reset", GUILayout.ExpandWidth(false)))
            {
                this.SetNotDirty(elem);
            }
            GUI.color = c;
            GUILayout.EndHorizontal();
        }
Exemple #13
0
        public static void UpdateButtGravity(DynamicBone_Ver02 bone, Vector3 gravity)
        {
            if (bone == null)
            {
                return;
            }

            bone.setGravity(0, gravity, true);
        }
Exemple #14
0
        public BoobsEditor(CharaPoseController parent, GenericOCITarget target) : base(parent)
        {
            this._target = target;
            this._parent.onLateUpdate += this.LateUpdate;
            if (_debugLines == null)
            {
                _debugLines = new DebugLines();
                _debugLines.SetActive(false);
            }

            this._leftBoob  = this._target.ociChar.charInfo.human.body.bustDynamicBone_L;
            this._rightBoob = this._target.ociChar.charInfo.human.body.bustDynamicBone_R;

            DynamicBone_Ver02_LateUpdate_Patches.shouldExecuteLateUpdate += this.ShouldExecuteDynamicBoneLateUpdate;
            MethodInfo initTransforms     = typeof(DynamicBone_Ver02).GetMethod("InitTransforms", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy);
            MethodInfo updateDynamicBones = typeof(DynamicBone_Ver02).GetMethod("UpdateDynamicBones", BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy);

            this._leftBoobInitTransforms      = (Action)Delegate.CreateDelegate(typeof(Action), this._leftBoob, initTransforms);
            this._leftBoobUpdateDynamicBones  = (Action <float>)Delegate.CreateDelegate(typeof(Action <float>), this._leftBoob, updateDynamicBones);
            this._rightBoobInitTransforms     = (Action)Delegate.CreateDelegate(typeof(Action), this._rightBoob, initTransforms);
            this._rightBoobUpdateDynamicBones = (Action <float>)Delegate.CreateDelegate(typeof(Action <float>), this._rightBoob, updateDynamicBones);

            this._dynamicBones = this._parent.GetComponentsInChildren <DynamicBone_Ver02>(true);

            foreach (KeyValuePair <DynamicBoneColliderBase, CollidersEditor> pair in CollidersEditor._loneColliders)
            {
                DynamicBoneCollider normalCollider = pair.Key as DynamicBoneCollider;
                if (normalCollider == null)
                {
                    continue;
                }
                HashSet <object> ignoredDynamicBones;
                if (pair.Value._dirtyColliders.TryGetValue(pair.Key, out CollidersEditor.ColliderDataBase data) == false || data.ignoredDynamicBones.TryGetValue(this._parent, out ignoredDynamicBones) == false)
                {
                    ignoredDynamicBones = null;
                }
                foreach (DynamicBone_Ver02 bone in this._dynamicBones)
                {
                    if (ignoredDynamicBones != null && ignoredDynamicBones.Contains(bone)) // Should be ignored
                    {
                        if (bone.Colliders.Contains(normalCollider))
                        {
                            bone.Colliders.Remove(normalCollider);
                        }
                    }
                    else
                    {
                        if (bone.Colliders.Contains(normalCollider) == false)
                        {
                            bone.Colliders.Add(normalCollider);
                        }
                    }
                }
            }
            this._incIndex = -3;
        }
Exemple #15
0
 public static void ResetButtPhysics(DynamicBone_Ver02 bone)
 {
     UpdateButtPhysics(
         bone,
         BoobController.floatDefaults[BoobController.BUTT + BoobController.DAMPING],
         BoobController.floatDefaults[BoobController.BUTT + BoobController.ELASTICITY],
         BoobController.floatDefaults[BoobController.BUTT + BoobController.STIFFNESS],
         BoobController.floatDefaults[BoobController.BUTT + BoobController.INERT]
         );
 }
Exemple #16
0
        public static void UpdateBustInert(DynamicBone_Ver02 bone, float inert)
        {
            if (bone == null)
            {
                return;
            }

            bone.setSoftParamsEx(0, -1, inert, true);
            bone.ResetPosition();
        }
Exemple #17
0
        private void SetForce(DynamicBone_Ver02 bone, Vector3 force)
        {
            BoobData data = this.SetDirty(bone);

            if (data.originalForce.hasValue == false)
            {
                data.originalForce = bone.Force;
            }
            data.force = force;
        }
Exemple #18
0
        private void SetGravity(DynamicBone_Ver02 bone, Vector3 gravity)
        {
            BoobData data = this.SetDirty(bone);

            if (data.originalGravity.hasValue == false)
            {
                data.originalGravity = bone.Gravity;
            }
            data.gravity = gravity;
        }
Exemple #19
0
        private void SetEnabled(DynamicBone_Ver02 bone, bool e)
        {
            BoobData data = this.SetDirty(bone);

            if (data.originalEnabled.hasValue == false)
            {
                data.originalEnabled = bone.enabled;
            }
            data.enabled = e;
        }
Exemple #20
0
        private Vector3 GetForce(DynamicBone_Ver02 bone)
        {
            BoobData data;

            if (this._dirtyDynamicBones.TryGetValue(bone, out data) && data.originalForce.hasValue)
            {
                return(data.force);
            }
            return(bone.Force);
        }
Exemple #21
0
        private Vector3 GetGravity(DynamicBone_Ver02 bone)
        {
            BoobData data;

            if (this._dirtyDynamicBones.TryGetValue(bone, out data) && data.originalGravity.hasValue)
            {
                return(data.gravity);
            }
            return(bone.Gravity);
        }
Exemple #22
0
        private bool GetEnabled(DynamicBone_Ver02 bone)
        {
            BoobData data;

            if (this._dirtyDynamicBones.TryGetValue(bone, out data) && data.originalEnabled.hasValue)
            {
                return(data.enabled);
            }
            return(bone.enabled);
        }
        public void OnDynamicBoneV2Update(DynamicBone_Ver02 bone)
        {
#if DEBUG
            if (parentTransform == null)
            {
                Log.LogInfo($"Receiving Update on Dead Controller: {bone.name}");
            }
#endif
            LateUpdate();
        }
Exemple #24
0
        public void UpdateBone(DynamicBone_Ver02 bone)
        {
            if (bone == null)
            {
                return;
            }

            UpdateSoftness(bone);
            UpdateWeight(bone);
        }
Exemple #25
0
            public static bool Prefix(DynamicBone_Ver02 __instance)
            {
                bool result = true;

                if (shouldExecuteLateUpdate != null)
                {
                    shouldExecuteLateUpdate(__instance, ref result);
                }
                return(result);
            }
Exemple #26
0
        private BoobData SetDirty(DynamicBone_Ver02 boob)
        {
            BoobData data;

            if (this._dirtyDynamicBones.TryGetValue(boob, out data) == false)
            {
                data = new BoobData();
                this._dirtyDynamicBones.Add(boob, data);
            }
            return(data);
        }
Exemple #27
0
        private void DynamicBoneDraggingLogic()
        {
            if (this._preDragAction != null)
            {
                this._preDragAction();
            }
            this._preDragAction = null;
            if (Input.GetMouseButtonDown(0))
            {
                float distanceFromCamera = float.PositiveInfinity;

                Vector3 leftBoobRaycastPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Vector3.Project(this._leftBoob.Bones[2].position - Camera.main.transform.position, Camera.main.transform.forward).magnitude));
                if ((leftBoobRaycastPos - this._leftBoob.Bones[2].position).sqrMagnitude < (_dragRadius * _dragRadius))
                {
                    this.isDraggingDynamicBone         = true;
                    distanceFromCamera                 = (leftBoobRaycastPos - Camera.main.transform.position).sqrMagnitude;
                    this._dynamicBoneDragType          = DynamicBoneDragType.LeftBoob;
                    this._dragDynamicBoneStartPosition = leftBoobRaycastPos;
                    this._lastDynamicBoneGravity       = this.GetGravity(this._leftBoob);
                }

                Vector3 rightBoobRaycastPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Vector3.Project(this._rightBoob.Bones[2].position - Camera.main.transform.position, Camera.main.transform.forward).magnitude));
                if ((rightBoobRaycastPos - this._rightBoob.Bones[2].position).sqrMagnitude < (_dragRadius * _dragRadius) &&
                    (rightBoobRaycastPos - Camera.main.transform.position).sqrMagnitude < distanceFromCamera)
                {
                    this.isDraggingDynamicBone         = true;
                    distanceFromCamera                 = (leftBoobRaycastPos - Camera.main.transform.position).sqrMagnitude;
                    this._dynamicBoneDragType          = DynamicBoneDragType.RightBoob;
                    this._dragDynamicBoneStartPosition = rightBoobRaycastPos;
                    this._lastDynamicBoneGravity       = this.GetGravity(this._rightBoob);
                }
            }
            else if (Input.GetMouseButton(0) && this.isDraggingDynamicBone)
            {
                this._dragDynamicBoneEndPosition = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Vector3.Project(this._dragDynamicBoneStartPosition - Camera.main.transform.position, Camera.main.transform.forward).magnitude));
                DynamicBone_Ver02 db = null;
                switch (this._dynamicBoneDragType)
                {
                case DynamicBoneDragType.LeftBoob:
                    db = this._leftBoob;
                    break;

                case DynamicBoneDragType.RightBoob:
                    db = this._rightBoob;
                    break;
                }
                this.SetGravity(db, this._lastDynamicBoneGravity + (this._dragDynamicBoneEndPosition - this._dragDynamicBoneStartPosition) * (this._inc * 1000f) / 12f);
            }
            else if (Input.GetMouseButtonUp(0))
            {
                this.isDraggingDynamicBone = false;
            }
        }
Exemple #28
0
        public string GetID(DynamicBone_Ver02 db)
        {
            if (db == this._leftBoob)
            {
                return("BreastL");
            }
            if (db == this._rightBoob)
            {
                return("BreastR");
            }

            return(null);
        }
Exemple #29
0
        private void ShouldExecuteDynamicBoneLateUpdate(DynamicBone_Ver02 bone, ref bool b)
        {
            if (this._parent.enabled && this._alternativeUpdateMode &&
                (
                    bone == this._leftBoob ||
                    bone == this._rightBoob

                )
                )
            {
                b = this._target.ociChar.oiCharInfo.enableIK == false && this._target.ociChar.oiCharInfo.enableFK == false;
            }
        }
        private bool DynamicBoneSetup(DynamicBone_Ver02 bone)
        {
            List <DynamicBone_Ver02.Particle> particleList = (List <DynamicBone_Ver02.Particle>)mParticles2Field.GetValue(bone);

            foreach (DynamicBone_Ver02.Particle particle in particleList)
            {
                if (particle.Transform != null)
                {
                    return(true);
                }
            }
            return(false);
        }