Example #1
0
        protected void SyncfloatTarget(string floatTargetName)
        {
            floatTarget = null;
            if (storableSelected.storable != null && floatTargetName != null && floatTargetName != "None")
            {
                floatTarget = storableSelected.storable.GetFloatJSONParam(floatTargetName);
                if (floatTarget != null)
                {
                    SuperController.LogMessage(">> " + floatTarget.val);
                    if (!insideRestore)
                    {
                        currentValue.val = floatTarget.val;
                    }
                    currentValue.min = floatTarget.min;
                    currentValue.max = floatTarget.max;

                    currentValueSlider.gameObject.SetActive(true);
                }
            }
            else
            {
                floatTarget = null;
                currentValueSlider.gameObject.SetActive(false);
            }
        }
 protected void SyncReceiverTarget(string receiverTargetName)
 {
     _receiverTargetName = receiverTargetName;
     receiverTarget      = null;
     if (receiver != null && receiverTargetName != null)
     {
         receiverTarget = receiver.GetFloatJSONParam(receiverTargetName);
         if (receiverTarget != null)
         {
             lowerValueJSON.min   = receiverTarget.min;
             lowerValueJSON.max   = receiverTarget.max;
             upperValueJSON.min   = receiverTarget.min;
             upperValueJSON.max   = receiverTarget.max;
             currentValueJSON.min = receiverTarget.min;
             currentValueJSON.max = receiverTarget.max;
             targetValueJSON.min  = receiverTarget.min;
             targetValueJSON.max  = receiverTarget.max;
             if (!insideRestore)
             {
                 lowerValueJSON.val   = receiverTarget.val;
                 upperValueJSON.val   = receiverTarget.max;
                 currentValueJSON.val = receiverTarget.val;
                 targetValueJSON.val  = receiverTarget.val;
             }
         }
     }
 }
Example #3
0
 protected void RotationMultiFloatCallback(JSONStorableFloat jf)
 {
     if (jFoot != null)
     {
         jFoot.val = "\n" + jf.name + " set to " + jf.val.ToString("0.00");
     }
 }
Example #4
0
        public override void Init()
        {
            try
            {
                containingAtom.freeControllers.ToList().ForEach((controller) =>
                {
                    initialRotationSpring[controller] = controller.RBHoldRotationSpring;
                    initialPositionSpring[controller] = controller.RBHoldPositionSpring;
                });

                rotationAmount = new JSONStorableFloat("rotationAmount", 300.0f, 0.0f, 500.0f);
                RegisterFloat(rotationAmount);
                CreateSlider(rotationAmount);

                rotationSpeed = new JSONStorableFloat("rotationSpeed", 0.3f, 0.0f, 10.0f);
                RegisterFloat(rotationSpeed);
                CreateSlider(rotationSpeed);

                positionAmount = new JSONStorableFloat("positionAmount", 400.0f, 0.0f, 500.0f);
                RegisterFloat(positionAmount);
                CreateSlider(positionAmount);

                positionSpeed = new JSONStorableFloat("positionSpeed", 0.45f, 0.0f, 10.0f);
                RegisterFloat(positionSpeed);
                CreateSlider(positionSpeed);
            }
            catch (Exception e)
            {
                SuperController.LogError("Exception caught: " + e);
            }
        }
Example #5
0
        public void InitBreathing(Atom containingAtom, JSONStorableFloat theStomachMorph)
        {
            try
            {
                stomachMorph = theStomachMorph;

                chestController = containingAtom.GetStorableByID("chestControl") as FreeControllerV3;

                if (chestController != null)
                {
                    chestController.jointRotationDriveSpring = 90.0f;
                    chestController.jointRotationDriveDamper = 1.0f;
                }


                breatheNeedInit = true;

                float v     = 0.2f * (breathEntries.Length - 1);
                float min   = Mathf.Max(0 - v - 1.0f, -0.5f);
                float max   = Mathf.Min(v + 1.0f, breathEntries.Length - 0.5f);
                int   index = Mathf.RoundToInt(UnityEngine.Random.Range(min, max));
                breatheIndex = Mathf.Clamp(index, 0, breathEntries.Length - 1);

                breatheCycle    = 0.0f;
                breathePower    = UnityEngine.Random.Range(0.8f, 1.2f);
                breatheDuration = UnityEngine.Random.Range(0.0f, 1.5f);
            }
            catch (Exception e) { SuperController.LogError("Exception caught: " + e + " (May be related to: Easy Sounds must be loaded on a female Person atom."); }
        }
    private JSONStorableFloat CreateAnalog(string ns, string jsfName)
    {
        var jsf = new JSONStorableFloat(jsfName, 0f, -1f, 1f);

        _remoteCommandsManager.Add(new JSONStorableFloatCommandInvoker(_owner, ns, jsfName, jsf));
        return(jsf);
    }
Example #7
0
 public FloatParamAnimationTarget(JSONStorable storable, JSONStorableFloat floatParam)
     : this(storable.containingAtom, storable.storeId, floatParam.name)
 {
     this.storable   = storable;
     this.floatParam = floatParam;
     _available      = true;
 }
        public override void Init()
        {
            try
            {
                headDistance           = new JSONStorableFloat("Camera to head distance required", 0.2f, 0f, 0.5f, true);
                headDistance.storeType = JSONStorableParam.StoreType.Full;
                RegisterFloat(headDistance);
                CreateSlider(headDistance, false);

                xOffsetSlider           = new JSONStorableFloat("X Offset", 0.045f, -0.1f, 0.1f, true);
                xOffsetSlider.storeType = JSONStorableParam.StoreType.Full;
                RegisterFloat(xOffsetSlider);
                CreateSlider(xOffsetSlider, false);

                provider = FindObjectOfType <LeapProvider>() as LeapProvider;
                frame    = provider.CurrentFrame;
                hands    = frame.Hands;

                if (SuperController.singleton.isOVR)
                {
                    mainCamera = SuperController.singleton.ViveCenterCamera;
                }
                else
                {
                    mainCamera = SuperController.singleton.lookCamera;
                }
            }
            catch (Exception e)
            {
                SuperController.LogError("Exception caught: " + e);
            }
        }
Example #9
0
        public UIDynamicSlider CreateUISliderInCanvas(JSONStorableFloat jsf, float x, float y)
        {
            var canvas = _atom.GetComponentInChildren <Canvas>();

            if (canvas == null)
            {
                throw new NullReferenceException("Could not find a canvas to attach to");
            }

            var transform = UnityEngine.Object.Instantiate(_owner.manager.configurableSliderPrefab.transform);

            if (transform == null)
            {
                throw new NullReferenceException("Could not instantiate configurableSliderPrefab");
            }
            _components.Add(transform);
            transform.SetParent(canvas.transform, false);
            transform.gameObject.SetActive(true);

            var ui = transform.GetComponent <UIDynamicSlider>();

            if (ui == null)
            {
                throw new NullReferenceException("Could not find a UIDynamicSlider component");
            }
            ui.Configure(jsf.name, jsf.min, jsf.max, jsf.defaultVal, jsf.constrained, "F3", true, !jsf.constrained);
            jsf.slider             = ui.slider;
            ui.slider.interactable = true;

            transform.Translate(Vector3.down * y, Space.Self);
            transform.Translate(Vector3.right * x, Space.Self);

            return(ui);
        }
            public Receiver(Breathe script, List <string> atoms, int index, bool rightSide)
            {
                this.index = index;

                script.CreateSpacer(rightSide);

                vartrigChooser = new JSONStorableStringChooser("receiver" + index, atoms, "", "Variable Trigger " + index);
                vartrigChooser.setCallbackFunction += (string atomId) => {
                    Atom         atom     = script.GetAtomById(atomId);
                    JSONStorable storable = (atom != null) ? storable = atom.GetStorableByID("Trigger") : null;
                    vartrig = (storable != null) ? storable.GetFloatJSONParam("value") : null;
                };
                script.CreateScrollablePopup(vartrigChooser, rightSide);
                script.RegisterStringChooser(vartrigChooser);

                List <string> modes = new List <string>()
                {
                    "Out+In", "OutHold", "InHold", "OutInSmooth", "OutSmooth", "InSmooth"
                };

                blendModeChooser = new JSONStorableStringChooser("mode" + index, modes, modes[blendMode], "Mode " + index);
                blendModeChooser.setCallbackFunction += (string modeName) => {
                    blendMode = modes.FindIndex((string entry) => { return(entry == modeName); });
                };
                script.CreateScrollablePopup(blendModeChooser, rightSide);
                script.RegisterStringChooser(blendModeChooser);

                offsetStart = script.SetupSlider("Time Offset Start " + index, 0.0f, -0.5f, 0.5f, rightSide);
                offsetEnd   = script.SetupSlider("Time Offset End " + index, 0.0f, -0.5f, 2.0f, rightSide);
                power       = script.SetupSlider("Power " + index, 1.0f, 0.0f, 1.0f, rightSide);
            }
Example #11
0
        public FloatSelector(
            MVRScript plug, bool insideRestore,
            CallbackAction call,
            string startAtom = null,
            AtomStorableSelector _storableSelected = null)
        {
            try
            {
                currentValue = new JSONStorableFloat("current value", 0f, setValue, -1f, 1f, false);
                plug.RegisterFloat(currentValue);

                currentValueSlider = plug.CreateSlider(currentValue, true);
                currentValueSlider.gameObject.SetActive(false);

                this.insideRestore = insideRestore;
                if (_storableSelected == null)
                {
                    storableSelected = new AtomStorableSelector(plug, SyncStorable, startAtom);
                }
                else
                {
                    storableSelected = _storableSelected;
                    storableSelected.Add(SyncStorable);
                }

                floatChooser = new JSONStorableStringChooser("floatTarget", null, null, "Value", SyncfloatTarget);
                UIDynamicPopup dp = plug.CreateScrollablePopup(floatChooser);
                dp.popupPanelHeight = 820f;
                plug.RegisterStringChooser(floatChooser);
            }
            catch (Exception e)
            {
                SuperController.LogError("Exception caught: " + e);
            }
        }
Example #12
0
        private void InitSequenceUI(bool rightSide)
        {
            _nextAnimationJSON = new JSONStorableStringChooser("Next Animation", GetEligibleNextAnimations(), "", "Next Animation", (string val) => ChangeNextAnimation(val));
            RegisterStorable(_nextAnimationJSON);
            var nextAnimationUI = plugin.CreateScrollablePopup(_nextAnimationJSON, rightSide);

            nextAnimationUI.popupPanelHeight = 260f;
            RegisterComponent(nextAnimationUI);

            _nextAnimationTimeJSON = new JSONStorableFloat("Next Blend After Seconds", 0f, (float val) => SetNextAnimationTime(val), 0f, 60f, false)
            {
                valNoCallback = current.NextAnimationTime
            };
            RegisterStorable(_nextAnimationTimeJSON);
            var nextAnimationTimeUI = plugin.CreateSlider(_nextAnimationTimeJSON, rightSide);

            nextAnimationTimeUI.valueFormat = "F3";
            RegisterComponent(nextAnimationTimeUI);

            _blendDurationJSON = new JSONStorableFloat("BlendDuration", AtomAnimationClip.DefaultBlendDuration, v => UpdateBlendDuration(v), 0f, 5f, false);
            RegisterStorable(_blendDurationJSON);
            var blendDurationUI = plugin.CreateSlider(_blendDurationJSON, rightSide);

            blendDurationUI.valueFormat = "F3";
            RegisterComponent(blendDurationUI);

            UpdateNextAnimationPreview();
        }
Example #13
0
        public ExpressionController(DollmasterPlugin dm) : base(dm)
        {
            expressionsEnabled = new JSONStorableBool("expressionsEnabled", true);
            dm.RegisterBool(expressionsEnabled);
            UIDynamicToggle moduleEnableToggle = dm.CreateToggle(expressionsEnabled);

            moduleEnableToggle.label           = "Enable Expressions + Voice";
            moduleEnableToggle.backgroundColor = Color.green;

            JSONStorable         geometry  = atom.GetStorableByID("geometry");
            DAZCharacterSelector character = geometry as DAZCharacterSelector;

            morphControl = character.morphsControlUI;

            mouthOpenMorph   = morphControl.GetMorphByDisplayName("Mouth Open Wide");
            tongueRaiseMorph = morphControl.GetMorphByDisplayName("Tongue Raise-Lower");

            interpolationSpeed = new JSONStorableFloat("expression speed", 8f, 0.1f, 20.0f, true);
            dm.RegisterFloat(interpolationSpeed);
            dm.CreateSlider(interpolationSpeed);

            upperJaw = atom.GetStorableByID("upperJaw") as DAZBone;
            lowerJaw = atom.GetStorableByID("lowerJaw") as DAZBone;

            //  Hack to fix bad tongue morph values
            morphControl.GetMorphByDisplayName("Tongue In-Out").startValue = 1.0f;

            dm.CreateSpacer();
        }
Example #14
0
        private void InitializeUI()
        {
            vibrationFrequencyStorable = new JSONStorableFloat("Frequency", 0.2f,
                                                               (float value) => {
                if (vibrationAutoStrength.val)
                {
                    // 1-Mathf.Pow(valueFrom0to1,3)
                    vibrationStrengthStorable.valNoCallback = StrengthFromFrequency(value);
                }
            },
                                                               0f, 1f);
            RegisterFloat(vibrationFrequencyStorable);
            CreateSlider(vibrationFrequencyStorable);

            vibrationStrengthStorable = new JSONStorableFloat("Strength", 0.03f,
                                                              (float value) => {
                vibrationAutoStrength.val = false;
            },
                                                              0f, 1f);
            RegisterFloat(vibrationStrengthStorable);
            var strengthSlider = CreateSlider(vibrationStrengthStorable, rightSide: true);


            vibrationAutoStrength = new JSONStorableBool("AutoStrength", true, (bool value) => {
                if (value)
                {
                    vibrationStrengthStorable.valNoCallback = StrengthFromFrequency(vibrationFrequencyStorable.val);
                }
            });
            RegisterBool(vibrationAutoStrength);
            CreateToggle(vibrationAutoStrength, rightSide: true);
        }
Example #15
0
    public override void Awake()
    {
        try
        {
            base.Awake();

            autoSetup = new SnugAutoSetup(context.containingAtom, this);

            disableSelfGrabJSON = new JSONStorableBool("DisablePersonGrab", false);
            falloffJSON         = new JSONStorableFloat("Falloff", 0.3f, 0f, 5f, false);

            _lHand = new SnugHand {
                controller = containingAtom.freeControllers.FirstOrDefault(fc => fc.name == "lHandControl")
            };
            _rHand = new SnugHand {
                controller = containingAtom.freeControllers.FirstOrDefault(fc => fc.name == "rHandControl")
            };

            InitAnchors();
            InitVisualCues();
        }
        catch (Exception exc)
        {
            SuperController.LogError($"{nameof(SnugModule)}.{nameof(Awake)}: {exc}");
        }
    }
Example #16
0
        public void OnInitStorables(VAMLaunch plugin)
        {
            _minPosition = new JSONStorableFloat("oscSourceMinPosition", 10.0f, 0.0f, 99.0f);
            plugin.RegisterFloat(_minPosition);
            _maxPosition = new JSONStorableFloat("oscSourceMaxPosition", 80.0f, 0.0f, 99.0f);
            plugin.RegisterFloat(_maxPosition);
            _speed = new JSONStorableFloat("oscSourceSpeed", 30.0f, 20.0f, 80.0f);
            plugin.RegisterFloat(_speed);
            _animationOffset = new JSONStorableFloat("oscAnimationOffset", 0.0f, 0.0f, 0.5f);
            plugin.RegisterFloat(_animationOffset);

            _targetAnimationAtomChooser = new JSONStorableStringChooser("oscSourceTargetAnimationAtom",
                                                                        GetTargetAnimationAtomChoices(), "", "Target Animation Pattern",
                                                                        (name) =>
            {
                _animationAtomController = null;
                _targetAnimationPattern  = null;

                if (string.IsNullOrEmpty(name))
                {
                    return;
                }

                var atom = SuperController.singleton.GetAtomByUid(name);
                if (atom && atom.animationPatterns.Length > 0)
                {
                    _animationAtomController = atom.freeControllers[0];
                    _targetAnimationPattern  = atom.animationPatterns[0];
                }
            });
            plugin.RegisterStringChooser(_targetAnimationAtomChooser);
        }
        public virtual void CreateUI(IUIBuilder builder)
        {
            _group = new UIGroup(builder);

            var visible = false;
            var group   = new UIGroup(_group);

            MainTitle = _group.CreateButton("Main", () => group.SetVisible(visible = !visible), new Color(0.3f, 0.3f, 0.3f), Color.white, true);

            SmoothingSlider            = group.CreateSlider("Plugin:Smoothing", "Smoothing (%)", 0.1f, 0.0f, 0.99f, true, true, true, "P0");
            ReferenceLengthScaleSlider = group.CreateSlider("Device:ReferenceLengthScale", "Reference Length (%)", 1.0f, 0, 3, true, true, true, "P0");
            ReferenceRadiusScaleSlider = group.CreateSlider("Device:ReferenceRadiusScale", "Reference Radius (%)", 3.0f, 0, 5, true, true, true, "P0");

            group.SetVisible(false);

            CreateL0AxisUI(_group);
            CreateL1AxisUI(_group);
            CreateL2AxisUI(_group);
            CreateR0AxisUI(_group);
            CreateR1AxisUI(_group);
            CreateR2AxisUI(_group);
            CreateV0AxisUI(_group);
            CreateA0AxisUI(_group);
            CreateA1AxisUI(_group);
            CreateA2AxisUI(_group);
        }
    public override void Init()
    {
        var renderer = containingAtom.gameObject.GetComponentInChildren <SkinnedMeshRenderer>();

        if (renderer == null)
        {
            SuperController.LogError("The atom '" + containingAtom.name + "' does not have any SkinnedMeshRenderer");
            return;
        }

        var mesh = renderer.sharedMesh;

        if (mesh == null || mesh.blendShapeCount == 0)
        {
            SuperController.LogError("The atom '" + containingAtom.name + "' does not have any blend shapes");
            return;
        }

        var blendShapeIndex = 0;

        do
        {
            var localBlendShapeIndex = blendShapeIndex;
            var storable             = new JSONStorableFloat(
                mesh.GetBlendShapeName(blendShapeIndex),
                renderer.GetBlendShapeWeight(blendShapeIndex),
                new JSONStorableFloat.SetFloatCallback(val => renderer.SetBlendShapeWeight(localBlendShapeIndex, val)),
                0f,
                100f,
                false
                );
            RegisterFloat(storable);
            CreateSlider(storable);
        }while (++blendShapeIndex < renderer.sharedMesh.blendShapeCount);
    }
Example #19
0
        public PoseController(DollmasterPlugin dm) : base(dm)
        {
            poseEnabled = new JSONStorableBool("poseEnabled", true);
            dm.RegisterBool(poseEnabled);
            UIDynamicToggle moduleEnableToggle = dm.CreateToggle(poseEnabled);

            moduleEnableToggle.label           = "Enable Pose Change";
            moduleEnableToggle.backgroundColor = Color.green;

            poseAnimationDuration = new JSONStorableFloat("poseAnimationDuration", 1.2f, 0.01f, 10.0f);
            dm.RegisterFloat(poseAnimationDuration);
            dm.CreateSlider(poseAnimationDuration);

            durationBetweenPoseChange = new JSONStorableFloat("durationBetweenPoseChange", 8.0f, 1.0f, 20.0f, false);
            dm.RegisterFloat(durationBetweenPoseChange);
            dm.CreateSlider(durationBetweenPoseChange);

            holdPose = new JSONStorableBool("holdPose", false);
            dm.RegisterBool(holdPose);
            UIDynamicToggle holdPoseToggle = ui.CreateToggle("Hold Pose", 180, 40);

            holdPose.toggle = holdPoseToggle.toggle;

            holdPoseToggle.transform.Translate(0.415f, 0.0630f, 0, Space.Self);
            holdPoseToggle.backgroundColor = new Color(0.2f, 0.2f, 0.2f);
            holdPoseToggle.labelText.color = new Color(1, 1, 1);

            dm.CreateSpacer();

            controllers = atom.freeControllers.ToList();
        }
Example #20
0
 protected void SetGlossOffset(JSONStorableFloat jf)
 {
     foreach (Material vamMaterial in vamMaterials.SelectMany(x => x).Where(x => x != null))
     {
         vamMaterial.SetFloat("_GlossOffset", jf.val);
     }
 }
Example #21
0
        private void CreateAndRegisterGroupStorables(string groupKey)
        {
            RegisterAction(new JSONStorableAction($"Play {groupKey}{AtomAnimation.RandomizeGroupSuffix}", () =>
            {
                animation.PlayRandom(groupKey);
            }));

            var setSpeedJSON = new JSONStorableFloat($"Set Speed {groupKey}{AtomAnimation.RandomizeGroupSuffix}", 0f, -1f, 5f, false);

            setSpeedJSON.setCallbackFunction = val =>
            {
                foreach (var clip in animation.clips.Where(c => c.animationNameGroup == groupKey))
                {
                    clip.speed = val;
                }
                setSpeedJSON.valNoCallback = 0;
            };
            RegisterFloat(setSpeedJSON);

            var setWeightJSON = new JSONStorableFloat($"Set Weight {groupKey}{AtomAnimation.RandomizeGroupSuffix}", 1f, 0f, 1f);

            setWeightJSON.setCallbackFunction = val =>
            {
                foreach (var clip in animation.clips.Where(c => c.animationNameGroup == groupKey))
                {
                    clip.weight = val;
                }
                setWeightJSON.valNoCallback = 0;
            };
            RegisterFloat(setWeightJSON);
        }
Example #22
0
 protected void SetSpecFresnel(JSONStorableFloat jf)
 {
     foreach (Material vamMaterial in vamMaterials.SelectMany(x => x).Where(x => x != null))
     {
         vamMaterial.SetFloat("_Fresnel", jf.val);
     }
 }
Example #23
0
 protected void SetSpecSharpness(JSONStorableFloat jf)
 {
     foreach (Material vamMaterial in vamMaterials.SelectMany(x => x).Where(x => x != null))
     {
         vamMaterial.SetFloat("_Shininess", jf.val);
     }
 }
        private void InitPlaybackUI()
        {
            _animationSpeedJSON = new JSONStorableFloat("Speed (Global)", 1f, (float val) => animation.speed = val, 0f, 10f, false)
            {
                valNoCallback = animation.speed
            };
            var animationSpeedUI = prefabFactory.CreateSlider(_animationSpeedJSON);

            animationSpeedUI.valueFormat = "F3";

            _clipSpeedJSON = new JSONStorableFloat("Speed (Local)", 1f, (float val) => current.speed = val, 0f, 10f, false)
            {
                valNoCallback = current.speed
            };
            var clipSpeedUI = prefabFactory.CreateSlider(_clipSpeedJSON);

            clipSpeedUI.valueFormat = "F3";

            _clipWeightJSON = new JSONStorableFloat("Weight", 1f, (float val) => current.weight = val, 0f, 1f, true)
            {
                valNoCallback = current.weight
            };
            var clipWeigthUI = prefabFactory.CreateSlider(_clipWeightJSON);

            clipWeigthUI.valueFormat = "F4";
        }
Example #25
0
        public void InitUserInterface()
        {
            _initCompleted = false;

            BrightnessPollIntervalStorable = new JSONStorableFloat("Brightness Poll Delay", BRIGHTNESS_POLL_DEFAULT, (float value) => { _detector.PollFrequency = value; }, 0f, 5f);
            CreateSlider(BrightnessPollIntervalStorable);
            RegisterFloat(BrightnessPollIntervalStorable);

            LightAdjustSpeedStorable = new JSONStorableFloat("Light Adjust Within", 3.50f, 0f, 10f);
            CreateSlider(LightAdjustSpeedStorable);
            RegisterFloat(LightAdjustSpeedStorable);

            DarkAdjustSpeedStorable = new JSONStorableFloat("Dark Adjust Within", 5.00f, 0f, 10f);
            CreateSlider(DarkAdjustSpeedStorable);
            RegisterFloat(DarkAdjustSpeedStorable);

            IdleAdjustSpeedStorable = new JSONStorableFloat("Idle: Adjust Over Seconds", 1.00f, 0f, 10f);
            CreateSlider(IdleAdjustSpeedStorable, rightSide: true);
            RegisterFloat(IdleAdjustSpeedStorable);

            IdleStrengthStorable = new JSONStorableFloat("Idle: Strength", 0.05f, 0f, 1f);
            CreateSlider(IdleStrengthStorable, rightSide: true);
            RegisterFloat(IdleStrengthStorable);

            IdleMaxDelayStorable = new JSONStorableFloat("Idle: Next Random Run", 2.50f, 0f, 10f);
            CreateSlider(IdleMaxDelayStorable, rightSide: true);
            RegisterFloat(IdleMaxDelayStorable);

            _screenAtomUid = new JSONStorableString("DetectorAtomUid", String.Empty);
            RegisterString(_screenAtomUid);
        }
Example #26
0
        public HeadController(DollmasterPlugin dm) : base(dm)
        {
            headControlEnabled = new JSONStorableBool("headControlEnabled", true);
            dm.RegisterBool(headControlEnabled);
            UIDynamicToggle moduleEnableToggle = dm.CreateToggle(headControlEnabled);

            moduleEnableToggle.label           = "Enable Head Gaze";
            moduleEnableToggle.backgroundColor = Color.green;

            durationBetweenLookChange = new JSONStorableFloat("duration between look at toggle", 8, 1, 30, false);
            dm.RegisterFloat(durationBetweenLookChange);
            dm.CreateSlider(durationBetweenLookChange);

            headTurnSpeed = new JSONStorableFloat("headTurnSpeed", 2.5f, 0.01f, 20.0f);
            dm.RegisterFloat(headTurnSpeed);
            dm.CreateSlider(headTurnSpeed);

            headControl  = atom.GetStorableByID("headControl") as FreeControllerV3;
            chestControl = atom.GetStorableByID("chestControl") as FreeControllerV3;
            neckBone     = atom.GetStorableByID("neck") as DAZBone;

            alwaysLookAtMe = new JSONStorableBool("alwaysLookAtMe", false);
            dm.RegisterBool(alwaysLookAtMe);
            UIDynamicToggle forceLookToggle = ui.CreateToggle("Hold Gaze", 180, 40);

            alwaysLookAtMe.toggle = forceLookToggle.toggle;

            forceLookToggle.transform.Translate(0.415f, 0.01f, 0, Space.Self);
            forceLookToggle.backgroundColor = new Color(0.2f, 0.2f, 0.2f);
            forceLookToggle.labelText.color = new Color(1, 1, 1);

            eyesStorable = atom.GetStorableByID("Eyes");

            dm.CreateSpacer(true);
        }
Example #27
0
        protected readonly float valMaxS;  //value at min mass and max softness

        public PhysicsConfig(JSONStorableFloat setting, float valMinMS, float valMaxM, float valMaxS)
        {
            this.setting  = setting;
            this.valMinMS = valMinMS;
            this.valMaxM  = valMaxM;
            this.valMaxS  = valMaxS;
        }
Example #28
0
 protected void SetIBLFilter(JSONStorableFloat jf)
 {
     foreach (Material vamMaterial in vamMaterials.SelectMany(x => x).Where(x => x != null))
     {
         vamMaterial.SetFloat("_IBLFilter", jf.val);
     }
 }
Example #29
0
        public override void Init()
        {
            if (containingAtom.type != "Person")
            {
                throw new Exception("This must be added to a Person");
            }

            _labiaTrigger = containingAtom.GetComponentsInChildren <CollisionTrigger>().FirstOrDefault(t => t.name == "LabiaTrigger");
            _labiaHandler = _labiaTrigger.gameObject.GetComponentInChildren <CollisionTriggerEventHandler>();
            _abdomen      = containingAtom.freeControllers.FirstOrDefault(fc => fc.name == "abdomen2Control");
            _animators    = new List <LabiaAnimator>();
            _animators.Add(LabiaAnimator.Create(containingAtom, "Labia minora-size", isInwardMorph: false, inwardMax: 0.7f, outwardMax: 2));
            _animators.Add(LabiaAnimator.Create(containingAtom, "Labia minora-style1", isInwardMorph: false, inwardMax: 0.7f, outwardMax: 2f));
            _animators.Add(LabiaAnimator.Create(containingAtom, "Labia minora-exstrophy", isInwardMorph: true, inwardMax: 0.1f, outwardMax: 1f));
            _animators.Add(LabiaAnimator.Create(containingAtom, "Labia majora-relaxation", isInwardMorph: false, inwardMax: 1f, outwardMax: 0f));
            _animators.Add(LabiaAnimator.Create(containingAtom, "Gen_Innie", isInwardMorph: true, inwardMax: 0.10f, outwardMax: 0.25f, easing: (p) => p * p * p));
            _animators.Add(LabiaAnimator.Create(containingAtom, "Gens In - Out", isInwardMorph: true, inwardMax: 1.0f, outwardMax: 0f, enabled: false));
            _animators = _animators.Where(a => a != null).ToList(); // remove any null entries
            _animators.ForEach(a => a.Morph.SetDefaultValue());


            FrictionStorable = new JSONStorableFloat("Friction", 1f, (f) => { _friction = f; }, 0, 1);
            _friction        = FrictionStorable.val;
            CreateSlider(FrictionStorable);
            RegisterFloat(FrictionStorable);

            InwardExaggerationStorable = new JSONStorableFloat(
                "Inward Exaggeration",
                0f,
                (val) => {
                _animators.ForEach(a => a.InwardMax = a.InwardMaxDefault + val);
            },
                0, 1);
            InwardExaggerationStorable.val = 0;
            CreateSlider(InwardExaggerationStorable);
            RegisterFloat(InwardExaggerationStorable);

            OutwardExaggerationStorable = new JSONStorableFloat(
                "Outward Exaggeration",
                0f,
                (val) => {
                _animators.ForEach(a => a.OutwardMax = a.OutwardMaxDefault + val);
            },
                0, 1);
            OutwardExaggerationStorable.val = 0;
            CreateSlider(OutwardExaggerationStorable);
            RegisterFloat(OutwardExaggerationStorable);

            foreach (var a in _animators)
            {
                var storable = new JSONStorableBool(a.Morph.displayName, a.Enabled, (b) => {
                    a.Enabled = b;
                    a.Morph.SetDefaultValue();
                });
                storable.val = a.Enabled;
                CreateToggle(storable, rightSide: true);
                RegisterBool(storable);
            }
        }
Example #30
0
 public Transition(JSONStorableFloat camExposure, float camExposureFrom, float camExposureTo, float duration, bool destroyOnComplete)
 {
     _camExposure       = camExposure;
     _camExposureFrom   = camExposureFrom;
     _camExposureTo     = camExposureTo;
     _duration          = duration;
     _destroyOnComplete = destroyOnComplete;
 }