Beispiel #1
0
        public NamedAudioClip GetTriggeredAudioClip(Arousal arousal)
        {
            if (audioClips.Count == 0)
            {
                return(null);
            }

            if (personaConfig == null)
            {
                return(GetRandomAudioClip());
            }
            else
            {
                float            arousalNormalized = arousal.value / Arousal.SLIDER_MAX;
                JSONArray        expressions       = personaConfig["expressions"].AsArray;
                List <JSONClass> validExpressions  = new List <JSONClass>();
                for (int i = 0; i < expressions.Count; i++)
                {
                    JSONClass expression = expressions[i].AsObject;
                    float     minArousal = expression["minIntensity"].AsFloat;
                    float     maxArousal = expression["maxIntensity"].AsFloat;

                    if (arousalNormalized >= minArousal && arousalNormalized <= maxArousal)
                    {
                        //Debug.Log(arousalNormalized);
                        //Debug.Log(minArousal + " " + maxArousal);
                        validExpressions.Add(expression);
                    }
                }

                if (validExpressions.Count == 0)
                {
                    validExpressions.Add(expressions[0].AsObject);
                }

                int       randomIndex = UnityEngine.Random.Range(0, validExpressions.Count);
                JSONClass picked      = validExpressions[randomIndex].AsObject;
                string    clipName    = PathExt.GetFileName(picked["audio"].Value);
                return(audioClips.Find((nac) =>
                {
                    return nac.displayName == clipName;
                }));
            }
        }
Beispiel #2
0
        public override void Init()
        {
            try
            {
                if (containingAtom.type != "Person")
                {
                    SuperController.LogError("Please add Doll Master to a Person atom");
                    return;
                }

                lastAtomName = containingAtom.uid;

                PLUGIN_PATH    = GetPluginPath();
                ASSETS_PATH    = PLUGIN_PATH + "/Assets";
                VAMASUTRA_PATH = ASSETS_PATH + "/VAMasutra";
                LOAD_PATH      = SuperController.singleton.currentLoadDir;

                headAudioSource = containingAtom.GetStorableByID("HeadAudioSource") as AudioSourceControl;

                RegisterActions();

                ui = new UI(this, 0.001f);
                ui.canvas.transform.Translate(0, 0.2f, 0);

                config = new Config(this);

                personas = new Personas(this);

                ps = new PluginState(this);

                arousal = new Arousal(this);

                expressions = new Expressions(this);

                expressionController = new ExpressionController(this);

                sfxController = new SFXController(this);

                thrustController = new ThrustController(this);

                thrustAutoController = new ThrustAutoController(this);

                breathController = new BreathController(this);

                headController = new HeadController(this);

                poseController = new PoseController(this);

                montageController = new MontageController(this, poseController);

                dressController = new DressController(this);

                climaxController = new ClimaxController(this);

                kissController = new KissController(this);

                new TopButtons(this);

                //new WorldUI(this);

                CreateSpacer().height = 200;

                //SuperController singleton = SuperController.singleton;
                //singleton.onAtomUIDRenameHandlers = (SuperController.OnAtomUIDRename)Delegate.Combine(singleton.onAtomUIDRenameHandlers, new SuperController.OnAtomUIDRename(HandleRename));
            }
            catch (Exception e)
            {
                SuperController.LogError("Exception caught: " + e);
            }
        }