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; })); } }
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); } }