From ef3b4c363e4ff85839f26e4f14498f74f76d1e8a Mon Sep 17 00:00:00 2001 From: Timur Nizamov Date: Sun, 16 Nov 2025 16:01:23 +0200 Subject: [PATCH] some sound bug fixes --- .../Intercation Logic/Car Driving Routine.cs | 2 + .../Components/Bow/Scripts/KeyBoardManager.cs | 2 +- .../Scripts/Floor Button Visualizer.cs | 18 +- .../Prefabs/Scripts/Menu Teleport Button.cs | 16 +- .../Prefabs/Scripts/TutorialAudioListener.cs | 73 +++++-- .../NewHandPresence/Prefabs/XR Origin.prefab | 64 +++++- .../_PROJECT/Scenes/DeltaBuilding_base.unity | 4 +- .../Scripts/Audio/FirstPersonOcclusion.cs | 164 +++++++++++++++ ...n.cs.meta => FirstPersonOcclusion.cs.meta} | 0 Assets/_PROJECT/Scripts/Audio/Occlusion.cs | 195 ------------------ .../.cache/buildrecords/Desktop/Ambience.br | Bin 86 -> 86 bytes .../.cache/buildrecords/Desktop/Master.br | Bin 144 -> 144 bytes .../.cache/buildrecords/Desktop/SFX.br | Bin 76 -> 76 bytes DeltaVRFMOD/.cache/buildrecords/Desktop/UI.br | Bin 74 -> 74 bytes ...{7ebf9bdd-7480-426c-9b39-32db83daba94}.pdc | Bin 9180 -> 9180 bytes .../Build/Desktop/Desktop/Ambience.bank | Bin 24489568 -> 24489568 bytes DeltaVRFMOD/Build/Desktop/Desktop/Master.bank | Bin 3354 -> 3730 bytes .../Build/Desktop/Desktop/Master.strings.bank | Bin 3574 -> 3694 bytes DeltaVRFMOD/Build/Desktop/Desktop/SFX.bank | Bin 2237920 -> 2238464 bytes DeltaVRFMOD/Build/Desktop/Desktop/UI.bank | Bin 75072 -> 75072 bytes ...{0cc3b481-962c-43bc-a963-058a71c1632b}.xml | 2 +- ...{1067667c-4322-4be7-88b5-ec1bb6973b2a}.xml | 2 +- ...{11bf17f9-9c7d-44f2-b105-627916d832e6}.xml | 2 +- ...{62c2315e-424a-4d4a-a651-6b9673a3100b}.xml | 2 +- ...{6fe27f03-35f6-4e00-ba0d-60648a3d1e3d}.xml | 2 +- ...{7e2cb674-9881-4577-a8fd-b87f1908a0c9}.xml | 2 +- ...{904bd9bc-6376-4493-89b2-7926d5bf9c5b}.xml | 2 +- ...{af15be7d-d2b1-4b03-9e5a-a609f5948419}.xml | 2 +- ...{c5372ba0-f2da-498b-b849-cc1130ead0cb}.xml | 2 +- ...{cc8d8359-af54-4abf-a1bc-bcdccc342747}.xml | 4 +- ...{ce89abc5-417e-4800-9b30-18883a321145}.xml | 136 ++++++++---- ...{debd0048-f7da-4ea8-8e42-084262639fd0}.xml | 2 +- ...{319559ef-04bf-4399-ad4d-f2857201675d}.xml | 28 --- ...{78b39a91-4363-470b-94f5-ebddc0e41885}.xml | 19 -- ...{c4b79f2b-c503-4e8a-bc42-6c104c7bac33}.xml | 2 +- ...{162960f4-09a2-4526-a61e-7ac7e219d27d}.xml | 11 + ...{6a1a7123-bd44-49b1-9092-22ef5bb105ec}.xml | 11 + ...{7db632b8-c5c2-4e3e-ab97-f087b29d2976}.xml | 14 ++ ...{abdd8187-ee40-4826-82f2-b919c3daf22c}.xml | 11 + highscores.json | 4 + 40 files changed, 476 insertions(+), 322 deletions(-) create mode 100644 Assets/_PROJECT/Scripts/Audio/FirstPersonOcclusion.cs rename Assets/_PROJECT/Scripts/Audio/{Occlusion.cs.meta => FirstPersonOcclusion.cs.meta} (100%) delete mode 100644 Assets/_PROJECT/Scripts/Audio/Occlusion.cs delete mode 100644 DeltaVRFMOD/Metadata/ParameterPreset/{319559ef-04bf-4399-ad4d-f2857201675d}.xml delete mode 100644 DeltaVRFMOD/Metadata/ParameterPreset/{78b39a91-4363-470b-94f5-ebddc0e41885}.xml create mode 100644 DeltaVRFMOD/Metadata/VCA/{162960f4-09a2-4526-a61e-7ac7e219d27d}.xml create mode 100644 DeltaVRFMOD/Metadata/VCA/{6a1a7123-bd44-49b1-9092-22ef5bb105ec}.xml create mode 100644 DeltaVRFMOD/Metadata/VCA/{7db632b8-c5c2-4e3e-ab97-f087b29d2976}.xml create mode 100644 DeltaVRFMOD/Metadata/VCA/{abdd8187-ee40-4826-82f2-b919c3daf22c}.xml diff --git a/Assets/_PROJECT/Components/Bolt/Intercation Logic/Car Driving Routine.cs b/Assets/_PROJECT/Components/Bolt/Intercation Logic/Car Driving Routine.cs index bdd434d1..25d92e2a 100644 --- a/Assets/_PROJECT/Components/Bolt/Intercation Logic/Car Driving Routine.cs +++ b/Assets/_PROJECT/Components/Bolt/Intercation Logic/Car Driving Routine.cs @@ -28,6 +28,7 @@ public class CarDrivingRoutine : NetworkBehaviour private EventInstance CarMovement; + private void Awake() { //Debug.LogError("AUDIO MANAGER:"); @@ -39,6 +40,7 @@ public class CarDrivingRoutine : NetworkBehaviour CarMovement = AudioManager.Instance.CreateInstance(FMODEvents.Instance.BoltCarSimpleDriving); //initialising the variable CarMovement.setParameterByName("EasyBoltLogic", 0); //"Driving - 0 in FMOD" CarMovement.set3DAttributes(FMODUnity.RuntimeUtils.To3DAttributes(gameObject)); //setting 3d attributes + } private void Start() { diff --git a/Assets/_PROJECT/Components/Bow/Scripts/KeyBoardManager.cs b/Assets/_PROJECT/Components/Bow/Scripts/KeyBoardManager.cs index 8c6e83a6..1d24b197 100644 --- a/Assets/_PROJECT/Components/Bow/Scripts/KeyBoardManager.cs +++ b/Assets/_PROJECT/Components/Bow/Scripts/KeyBoardManager.cs @@ -123,7 +123,7 @@ public class KeyboardManager : NetworkBehaviour void OnEnterPressed() { - AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Hover, gameObject); + AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Click, gameObject); if (_input.Length > 0) { diff --git a/Assets/_PROJECT/Components/NewHandPresence/Prefabs/Scripts/Floor Button Visualizer.cs b/Assets/_PROJECT/Components/NewHandPresence/Prefabs/Scripts/Floor Button Visualizer.cs index 7d950e43..f8883bfe 100644 --- a/Assets/_PROJECT/Components/NewHandPresence/Prefabs/Scripts/Floor Button Visualizer.cs +++ b/Assets/_PROJECT/Components/NewHandPresence/Prefabs/Scripts/Floor Button Visualizer.cs @@ -9,7 +9,11 @@ public class FloorButtonVisualizer : MonoBehaviour public Sprite ActiveSprite; public bool ActiveState; private Image buttonImage; - // Start is called before the first frame update + + // --- Static tracking for selection change --- + private static FloorButtonVisualizer lastActiveButton = null; + private static bool initialized = false; + void Start() { buttonImage = gameObject.GetComponent(); @@ -19,12 +23,20 @@ public class FloorButtonVisualizer : MonoBehaviour { this.ActiveState = true; buttonImage.sprite = ActiveSprite; - //Debug.Log("Floorbutton of " + gameObject.name + " activated"); + + // --- Only play hover if selection actually changed --- + if (initialized && lastActiveButton != this) + { + AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Hover, gameObject); + } + + lastActiveButton = this; + initialized = true; } + public void Deactivate() { this.ActiveState = false; buttonImage.sprite = InactiveSprite; - //Debug.Log("Floorbutton of " + gameObject.name + " deactivated"); } } diff --git a/Assets/_PROJECT/Components/NewHandPresence/Prefabs/Scripts/Menu Teleport Button.cs b/Assets/_PROJECT/Components/NewHandPresence/Prefabs/Scripts/Menu Teleport Button.cs index faf17a70..70273c6b 100644 --- a/Assets/_PROJECT/Components/NewHandPresence/Prefabs/Scripts/Menu Teleport Button.cs +++ b/Assets/_PROJECT/Components/NewHandPresence/Prefabs/Scripts/Menu Teleport Button.cs @@ -25,6 +25,9 @@ public class MenuTeleportButton : MonoBehaviour private EventInstance TeleportingSound; FMOD.Studio.Bus SpecialBus; //FMOD bus variable + private static MenuTeleportButton lastSelectedButton = null; + private static bool initialized = false; + private void Awake() { TeleportingSound = AudioManager.Instance.CreateInstance(FMODEvents.Instance.Teleport); //initialise the instance @@ -58,12 +61,19 @@ public class MenuTeleportButton : MonoBehaviour public void SetStateSelected() { - AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Hover, gameObject); if (button != null && HoverSprite != null) { button.targetGraphic.GetComponent().sprite = HoverSprite; + + // --- Only play hover sound if selection actually changed --- + if (initialized && lastSelectedButton != this) + { + AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Hover, gameObject); + } + + lastSelectedButton = this; + initialized = true; } - } public void SetStateDefault() @@ -106,7 +116,7 @@ public class MenuTeleportButton : MonoBehaviour button.interactable = false; button.interactable = true; - StartCoroutine(MuteBusForSeconds(1.5f)); + StartCoroutine(MuteBusForSeconds(2.0f)); TeleportingSound.start(); //playing 2d oneshot } diff --git a/Assets/_PROJECT/Components/NewHandPresence/Prefabs/Scripts/TutorialAudioListener.cs b/Assets/_PROJECT/Components/NewHandPresence/Prefabs/Scripts/TutorialAudioListener.cs index a53c139b..1ba43b33 100644 --- a/Assets/_PROJECT/Components/NewHandPresence/Prefabs/Scripts/TutorialAudioListener.cs +++ b/Assets/_PROJECT/Components/NewHandPresence/Prefabs/Scripts/TutorialAudioListener.cs @@ -14,10 +14,16 @@ public class TutorialAudioListener : MonoBehaviour private TeleportationProvider teleportationProvider; private float lastStepTime; - [SerializeField] private float baseStepCooldown = 0.5f; // base interval at speed = 1 - private float stepCooldown; + + [Header("Settings")] + [SerializeField] private float baseStepRate = 0.5f; // Step interval at joystick = 1 and slider = 1 + [SerializeField] private float joystickThreshold = 0.1f; // Minimum stick movement to count as walking + + private float settingsSpeedMultiplier = 1f; // From slider (1 = default) private bool locomotionEnabled = false; + private Vector2 currentMoveVector; + private void Awake() { if (tutorialController == null) @@ -32,14 +38,15 @@ public class TutorialAudioListener : MonoBehaviour turnAction = tutorialController.turnProvider.rightHandSnapTurnAction.action; teleportationProvider = tutorialController.teleportProvider; } - - stepCooldown = baseStepCooldown; } private void OnEnable() { if (moveAction != null) - moveAction.performed += OnMovePerformed; + { + moveAction.performed += OnMoveInput; + moveAction.canceled += OnMoveCanceled; + } if (turnAction != null) turnAction.performed += OnTurnPerformed; @@ -57,7 +64,10 @@ public class TutorialAudioListener : MonoBehaviour private void OnDisable() { if (moveAction != null) - moveAction.performed -= OnMovePerformed; + { + moveAction.performed -= OnMoveInput; + moveAction.canceled -= OnMoveCanceled; + } if (turnAction != null) turnAction.performed -= OnTurnPerformed; @@ -75,26 +85,48 @@ public class TutorialAudioListener : MonoBehaviour private void HandleLocomotionToggled(bool enabled) { locomotionEnabled = enabled; - Debug.Log($"[TutorialAudioListener] Locomotion toggled: {enabled}"); } private void HandleSpeedChanged(float newSpeed) { - // Invert proportionality: faster speed = shorter step interval - float calculatedCooldown = baseStepCooldown / Mathf.Max(newSpeed, 0.01f); - - // Clamp the result between 0.4 and 0.6 seconds - stepCooldown = Mathf.Clamp(calculatedCooldown, 0.3f, 0.69f); - - Debug.Log($"[TutorialAudioListener] Step cooldown adjusted: {stepCooldown}"); + // Slider is allowed to range normally but we clamp for stability + settingsSpeedMultiplier = Mathf.Clamp(newSpeed, 0.4f, 1.2f); } - private void OnMovePerformed(InputAction.CallbackContext context) + private void OnMoveInput(InputAction.CallbackContext ctx) + { + currentMoveVector = ctx.ReadValue(); + } + + private void OnMoveCanceled(InputAction.CallbackContext ctx) + { + currentMoveVector = Vector2.zero; + } + + private void Update() + { + TryPlayStep(); + } + + private void TryPlayStep() { if (!locomotionEnabled) return; - if (Time.time - lastStepTime < stepCooldown) + float joystickMagnitude = currentMoveVector.magnitude; + + if (joystickMagnitude < joystickThreshold) + return; // Not moving enough to walk + + // --- NEW: Slider influence (very light touch) --- + float sliderInfluence = 1f + (settingsSpeedMultiplier) * 0.25f; + float effectiveMagnitude = joystickMagnitude * sliderInfluence; + + // --- NEW: Step cooldown --- + float dynamicCooldown = baseStepRate / Mathf.Max(effectiveMagnitude, 0.01f); + dynamicCooldown = Mathf.Clamp(dynamicCooldown, 0.33f, 0.65f); + + if (Time.time - lastStepTime < dynamicCooldown) return; lastStepTime = Time.time; @@ -103,13 +135,16 @@ public class TutorialAudioListener : MonoBehaviour private void OnTurnPerformed(InputAction.CallbackContext context) { + // If magnitude above threshold = walking don't play spin sound + if (currentMoveVector.magnitude > joystickThreshold) + return; + + // Otherwise play turning sound AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.StepSpin, gameObject); } private void OnTeleportEnd(LocomotionSystem locomotionSystem) { - - // Optional: Uncomment if teleport should play sound - // AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Steps, gameObject); + // Optional teleport sound } } diff --git a/Assets/_PROJECT/Components/NewHandPresence/Prefabs/XR Origin.prefab b/Assets/_PROJECT/Components/NewHandPresence/Prefabs/XR Origin.prefab index 60d5b288..11e353e4 100644 --- a/Assets/_PROJECT/Components/NewHandPresence/Prefabs/XR Origin.prefab +++ b/Assets/_PROJECT/Components/NewHandPresence/Prefabs/XR Origin.prefab @@ -3221,6 +3221,7 @@ GameObject: - component: {fileID: 2567477070120516364} - component: {fileID: 5667922335807455518} - component: {fileID: 9130699439852735294} + - component: {fileID: 244862221083601452} m_Layer: 5 m_Name: Level 1 button m_TagString: Untagged @@ -3346,6 +3347,35 @@ MonoBehaviour: InactiveSprite: {fileID: 21300000, guid: 9b9161f51c7cdb84eba98c454b3f542c, type: 3} ActiveSprite: {fileID: 21300000, guid: 594b1f27343305e4e99551b5fb8a1b76, type: 3} ActiveState: 0 +--- !u!114 &244862221083601452 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4006117569149960393} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 9130699439852735294} + m_TargetAssemblyTypeName: FloorButtonVisualizer, Assembly-CSharp + m_MethodName: Activate + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 --- !u!1 &4122378368372937094 GameObject: m_ObjectHideFlags: 0 @@ -3395,6 +3425,7 @@ GameObject: - component: {fileID: 735405659653074444} - component: {fileID: 1877344747539671532} - component: {fileID: 2993125651756248496} + - component: {fileID: 5719623585416982853} m_Layer: 5 m_Name: Level 2 button m_TagString: Untagged @@ -3520,6 +3551,35 @@ MonoBehaviour: InactiveSprite: {fileID: 21300000, guid: 28748e86c9a1f0c4694006461434eca7, type: 3} ActiveSprite: {fileID: 21300000, guid: a84b9455a04a3ca459595ecb5810fb98, type: 3} ActiveState: 1 +--- !u!114 &5719623585416982853 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4441188026596657465} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Delegates: + - eventID: 0 + callback: + m_PersistentCalls: + m_Calls: + - m_Target: {fileID: 2993125651756248496} + m_TargetAssemblyTypeName: FloorButtonVisualizer, Assembly-CSharp + m_MethodName: Activate + m_Mode: 1 + m_Arguments: + m_ObjectArgument: {fileID: 0} + m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine + m_IntArgument: 0 + m_FloatArgument: 0 + m_StringArgument: + m_BoolArgument: 0 + m_CallState: 2 --- !u!1 &4552840262979230797 GameObject: m_ObjectHideFlags: 0 @@ -7700,7 +7760,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: tutorialController: {fileID: 8296457994299276779} - stepCooldown: 0.4 + locomotionConfigurator: {fileID: 0} + baseStepRate: 0.5 + joystickThreshold: 0.1 --- !u!4 &4954755430420460766 stripped Transform: m_CorrespondingSourceObject: {fileID: 1894017693134941767, guid: d90913a7f0b00844a8c4482b2afc2c66, diff --git a/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity b/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity index 91165708..a85e69ce 100644 --- a/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity +++ b/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:99fc35a2dd295f40d34050aa6124f31603308433a5065b41ee6bc0178755f3d3 -size 63658624 +oid sha256:8c322dfaae011801beb0d55250c6f297e389bf71e0f83ec21e23678fbb61e77d +size 63661333 diff --git a/Assets/_PROJECT/Scripts/Audio/FirstPersonOcclusion.cs b/Assets/_PROJECT/Scripts/Audio/FirstPersonOcclusion.cs new file mode 100644 index 00000000..b445b5b1 --- /dev/null +++ b/Assets/_PROJECT/Scripts/Audio/FirstPersonOcclusion.cs @@ -0,0 +1,164 @@ +using UnityEngine; +using FMODUnity; +using FMOD.Studio; +using System.Collections; + +public class FirstPersonOcclusion : MonoBehaviour +{ + [Header("FMOD Event")] + [SerializeField] private EventReference SelectAudio; + + private EventInstance AudioOccluded; + private EventDescription AudioDes; + private StudioListener Listener; + private PLAYBACK_STATE pb; + + [Header("Occlusion Options")] + [SerializeField][Range(0f, 10f)] private float SoundOcclusionWidening = 1f; + [SerializeField][Range(0f, 10f)] private float PlayerOcclusionWidening = 1f; + [SerializeField] private LayerMask OcclusionLayer; + + private bool AudioIsVirtual; + private float MaxDistance; + private float ListenerDistance; + private float lineCastHitCount = 0f; + private Color colour; + + private bool initialisedExternally = false; + + // ============================================================ + // NEW — Optional external initialiser + // ============================================================ + public void InitialiseWithInstance(EventInstance instance) + { + AudioOccluded = instance; + initialisedExternally = true; + + RuntimeManager.AttachInstanceToGameObject( + AudioOccluded, + gameObject, + GetComponent() + ); + + AudioOccluded.getDescription(out AudioDes); + AudioDes.getMinMaxDistance(out float min, out MaxDistance); + } + + // ============================================================ + // ORIGINAL START — kept exactly the same unless external init used + // ============================================================ + private IEnumerator Start() + { + // If already initialised, skip internal creation + if (!initialisedExternally) + { + AudioOccluded = RuntimeManager.CreateInstance(SelectAudio); + RuntimeManager.AttachInstanceToGameObject(AudioOccluded, gameObject); + AudioOccluded.start(); + AudioOccluded.release(); + + AudioDes = RuntimeManager.GetEventDescription(SelectAudio); + AudioDes.getMinMaxDistance(out float minDistance, out MaxDistance); + } + + // Find listener (kept exactly as before) + yield return new WaitUntil(() => FindObjectOfType() != null); + Listener = FindObjectOfType(); + } + + // ============================================================ + // UNCHANGED core functionality + // ============================================================ + private void FixedUpdate() + { + if (Listener == null) return; + + AudioOccluded.isVirtual(out AudioIsVirtual); + AudioOccluded.getPlaybackState(out pb); + ListenerDistance = Vector3.Distance(transform.position, Listener.transform.position); + + if (!AudioIsVirtual && pb == PLAYBACK_STATE.PLAYING && ListenerDistance <= MaxDistance) + { + OccludeBetween(transform.position, Listener.transform.position); + } + + lineCastHitCount = 0f; + } + + private void OccludeBetween(Vector3 sound, Vector3 listener) + { + Vector3 SoundLeft = CalculatePoint(sound, listener, SoundOcclusionWidening, true); + Vector3 SoundRight = CalculatePoint(sound, listener, SoundOcclusionWidening, false); + + Vector3 ListenerLeft = CalculatePoint(listener, sound, PlayerOcclusionWidening, true); + Vector3 ListenerRight = CalculatePoint(listener, sound, PlayerOcclusionWidening, false); + + Vector3 SoundAbove = new Vector3(sound.x, sound.y + SoundOcclusionWidening, sound.z); + Vector3 SoundBelow = new Vector3(sound.x, sound.y - SoundOcclusionWidening, sound.z); + Vector3 ListenerAbove = new Vector3(listener.x, listener.y + PlayerOcclusionWidening * .5f, listener.z); + Vector3 ListenerBelow = new Vector3(listener.x, listener.y - PlayerOcclusionWidening * .5f, listener.z); + + CastLine(SoundLeft, ListenerLeft); + CastLine(SoundLeft, listener); + CastLine(SoundLeft, ListenerRight); + + CastLine(sound, ListenerLeft); + CastLine(sound, listener); + CastLine(sound, ListenerRight); + + CastLine(SoundRight, ListenerLeft); + CastLine(SoundRight, listener); + CastLine(SoundRight, ListenerRight); + + CastLine(SoundAbove, ListenerAbove); + CastLine(SoundBelow, ListenerBelow); + + colour = (PlayerOcclusionWidening == 0f || SoundOcclusionWidening == 0f) ? Color.blue : Color.green; + + SetParameter(); + } + + private Vector3 CalculatePoint(Vector3 a, Vector3 b, float m, bool posOrneg) + { + float n = Vector3.Distance(new Vector3(a.x, 0f, a.z), new Vector3(b.x, 0f, b.z)); + if (n == 0f) return a; + + float mn = (m / n); + float x, z; + + if (posOrneg) + { + x = a.x + (mn * (a.z - b.z)); + z = a.z - (mn * (a.x - b.x)); + } + else + { + x = a.x - (mn * (a.z - b.z)); + z = a.z + (mn * (a.x - b.x)); + } + + return new Vector3(x, a.y, z); + } + + private void CastLine(Vector3 Start, Vector3 End) + { + RaycastHit hit; + bool isHit = Physics.Linecast(Start, End, out hit, OcclusionLayer); + + if (isHit) + { + lineCastHitCount++; + Debug.DrawLine(Start, End, Color.red); + } + else + { + Debug.DrawLine(Start, End, colour); + } + } + + private void SetParameter() + { + float occlusionValue = lineCastHitCount / 11; + AudioOccluded.setParameterByName("Occlusion", occlusionValue); + } +} diff --git a/Assets/_PROJECT/Scripts/Audio/Occlusion.cs.meta b/Assets/_PROJECT/Scripts/Audio/FirstPersonOcclusion.cs.meta similarity index 100% rename from Assets/_PROJECT/Scripts/Audio/Occlusion.cs.meta rename to Assets/_PROJECT/Scripts/Audio/FirstPersonOcclusion.cs.meta diff --git a/Assets/_PROJECT/Scripts/Audio/Occlusion.cs b/Assets/_PROJECT/Scripts/Audio/Occlusion.cs deleted file mode 100644 index af4cd457..00000000 --- a/Assets/_PROJECT/Scripts/Audio/Occlusion.cs +++ /dev/null @@ -1,195 +0,0 @@ -using UnityEngine; -using FMODUnity; -using FMOD.Studio; -using System.Collections; - -public class FirstPersonOcclusion : MonoBehaviour -{ - [Header("FMOD Event")] - [SerializeField] - private FMODUnity.EventReference SelectAudio; - private EventInstance AudioOccluded; - private EventDescription AudioDes; - private StudioListener Listener; - private PLAYBACK_STATE pb; - - [Header("Occlusion Options")] - [SerializeField] - [Range(0f, 10f)] - private float SoundOcclusionWidening = 1f; - [SerializeField] - [Range(0f, 10f)] - private float PlayerOcclusionWidening = 1f; - [SerializeField] - private LayerMask OcclusionLayer; - - private bool AudioIsVirtual; - private float MaxDistance; - private float ListenerDistance; - private float lineCastHitCount = 0f; - private Color colour; - - private IEnumerator Start() - { - Debug.Log("--- Start Method ---"); - - // 1. Event Instance Creation - AudioOccluded = RuntimeManager.CreateInstance(SelectAudio); - //Debug.Log($"Created FMOD Event Instance for: {SelectAudio.Path}"); - - // 2. Attaching Instance - RuntimeManager.AttachInstanceToGameObject(AudioOccluded, gameObject); - Debug.Log($"Attached FMOD Event Instance to GameObject: {gameObject.name}"); - - // 3. Starting Audio - AudioOccluded.start(); - Debug.Log("Started FMOD Event Instance."); - - // 4. Releasing Instance (This allows the event to self-manage its lifetime, which is fine) - AudioOccluded.release(); - Debug.Log("Released FMOD Event Instance."); - - // 5. Getting Event Description and Max Distance - AudioDes = RuntimeManager.GetEventDescription(SelectAudio); - AudioDes.getMinMaxDistance(out float minDistance, out MaxDistance); - Debug.Log($"FMOD Event Min/Max Distance: {minDistance:F2} / {MaxDistance:F2}"); - - // 6. Finding Listener - yield return new WaitUntil(() => FindObjectOfType() != null); - Listener = FindObjectOfType(); - Debug.Log($"FMOD StudioListener found on {Listener.gameObject.name}"); - - Debug.Log("--- End Start Method ---"); - } - - private void FixedUpdate() - { - // Debug.Log("--- FixedUpdate Method ---"); // Too frequent, only log conditions - if (Listener == null) return; // Skip until listener exists - - AudioOccluded.isVirtual(out AudioIsVirtual); - AudioOccluded.getPlaybackState(out pb); - ListenerDistance = Vector3.Distance(transform.position, Listener.transform.position); - - // 7. Check Occlusion Condition - if (!AudioIsVirtual && pb == PLAYBACK_STATE.PLAYING && ListenerDistance <= MaxDistance) - { - Debug.Log($"Occlusion Check: Not Virtual, Playing, Distance {ListenerDistance:F2} <= Max {MaxDistance:F2}. Calling OccludeBetween."); - OccludeBetween(transform.position, Listener.transform.position); - } - else - { - // Log reasons why occlusion is NOT being checked - if (AudioIsVirtual) Debug.Log("Occlusion Skipped: Audio is Virtual."); - if (pb != PLAYBACK_STATE.PLAYING) Debug.Log($"Occlusion Skipped: Playback State is not PLAYING. State: {pb}"); - if (ListenerDistance > MaxDistance) Debug.Log($"Occlusion Skipped: Distance {ListenerDistance:F2} > Max Distance {MaxDistance:F2}."); - } - - // 8. Reset Hit Count - // Debug.Log($"Resetting lineCastHitCount from {lineCastHitCount:F0} to 0."); - lineCastHitCount = 0f; - } - - private void OccludeBetween(Vector3 sound, Vector3 listener) - { - Debug.Log("--- OccludeBetween Method ---"); - - // 9. Calculate Points (Log only a few to avoid clutter) - Vector3 SoundLeft = CalculatePoint(sound, listener, SoundOcclusionWidening, true); - Vector3 SoundRight = CalculatePoint(sound, listener, SoundOcclusionWidening, false); - // Debug.Log($"Sound Positions: Center {sound}, Left {SoundLeft}, Right {SoundRight}"); - - Vector3 ListenerLeft = CalculatePoint(listener, sound, PlayerOcclusionWidening, true); - Vector3 ListenerRight = CalculatePoint(listener, sound, PlayerOcclusionWidening, false); - // Debug.Log($"Listener Positions: Center {listener}, Left {ListenerLeft}, Right {ListenerRight}"); - - Vector3 SoundAbove = new Vector3(sound.x, sound.y + SoundOcclusionWidening, sound.z); - Vector3 SoundBelow = new Vector3(sound.x, sound.y - SoundOcclusionWidening, sound.z); - Vector3 ListenerAbove = new Vector3(listener.x, listener.y + PlayerOcclusionWidening * 0.5f, listener.z); - Vector3 ListenerBelow = new Vector3(listener.x, listener.y - PlayerOcclusionWidening * 0.5f, listener.z); - - // 10. Casting Lines (The line casts themselves will log hits) - CastLine(SoundLeft, ListenerLeft); - CastLine(SoundLeft, listener); - CastLine(SoundLeft, ListenerRight); - - CastLine(sound, ListenerLeft); - CastLine(sound, listener); - CastLine(sound, ListenerRight); - - CastLine(SoundRight, ListenerLeft); - CastLine(SoundRight, listener); - CastLine(SoundRight, ListenerRight); - - CastLine(SoundAbove, ListenerAbove); - CastLine(SoundBelow, ListenerBelow); - - if (PlayerOcclusionWidening == 0f || SoundOcclusionWidening == 0f) - { - colour = Color.blue; - } - else - { - colour = Color.green; - } - - SetParameter(); - Debug.Log("--- End OccludeBetween Method ---"); - } - - private Vector3 CalculatePoint(Vector3 a, Vector3 b, float m, bool posOrneg) - { - // Debug.Log($"Calculating offset point for: {a} to {b} with magnitude {m} and posOrneg {posOrneg}"); - float x; - float z; - // n is the 2D distance between a and b - float n = Vector3.Distance(new Vector3(a.x, 0f, a.z), new Vector3(b.x, 0f, b.z)); - float mn = (m / n); - - // Safety check for division by zero (if sound and listener are exactly on top of each other horizontally) - if (n == 0f) - { - // If points are on the same XZ position, just return the point 'a' - // Debug.LogWarning("CalculatePoint: Division by zero avoided. Sound and Listener are at the same XZ position."); - return a; - } - - if (posOrneg) - { - x = a.x + (mn * (a.z - b.z)); - z = a.z - (mn * (a.x - b.x)); - } - else - { - x = a.x - (mn * (a.z - b.z)); - z = a.z + (mn * (a.x - b.x)); - } - return new Vector3(x, a.y, z); - } - - private void CastLine(Vector3 Start, Vector3 End) - { - RaycastHit hit; - // 11. Raycast result - bool isHit = Physics.Linecast(Start, End, out hit, OcclusionLayer); - - if (isHit) - { - lineCastHitCount++; - Debug.Log($"Linecast HIT! Hit Count: {lineCastHitCount:F0}/11. Object hit: {hit.collider.name}."); - Debug.DrawLine(Start, End, Color.red); - } - else - { - Debug.DrawLine(Start, End, colour); - } - } - - private void SetParameter() - { - float occlusionValue = lineCastHitCount / 11; // 11 is the total number of line casts - // 12. Final Parameter Value - Debug.Log($"Setting FMOD Parameter 'Occlusion' to: {occlusionValue:F2} (Hits: {lineCastHitCount:F0}/11)"); - AudioOccluded.setParameterByName("Occlusion", occlusionValue); - } -} \ No newline at end of file diff --git a/DeltaVRFMOD/.cache/buildrecords/Desktop/Ambience.br b/DeltaVRFMOD/.cache/buildrecords/Desktop/Ambience.br index 67a2ea2e5615abde6c4922d70246cd38297259fc..8c3db87868ec3a93f2b3c0f0cefaa174de876ae5 100644 GIT binary patch delta 42 xcmWFwlW_`ib!K2-U<6`;Te5#l+qbVOc49qcB{au#!9*DemY#?wCns9S0RZ_`4V(Y~ delta 42 xcmWFwlW_`ib!K2-U<6`;$bC9b4ssvd%;zOA&Gxy>&51G+EXCgr7EH8|0|58c4ZZ*X diff --git a/DeltaVRFMOD/.cache/buildrecords/Desktop/Master.br b/DeltaVRFMOD/.cache/buildrecords/Desktop/Master.br index 49317c7d57e48584acf976455b6181f497c53f99..1ff9b51cb9e834227ed0950ed9f3354339ae1ae4 100644 GIT binary patch delta 78 zcmbQhIDyf^Dah5Cfq{V$hy|Xzw7X1nD?T`9e$A&}@>>*vVj#fe=IP@KVe(A^DxK96 T@#OME3l%QDJSgw##564cDdZL8 delta 78 zcmbQhIDyf^Dah5Cfq{V$hy@h#D}{I3|JYVKH%gx;tx^dn1_DfOo<6P+Ca)Aw>8vd4 S&$$yVRJeG*L3#NT)3gAikrI~x diff --git a/DeltaVRFMOD/.cache/buildrecords/Desktop/SFX.br b/DeltaVRFMOD/.cache/buildrecords/Desktop/SFX.br index cdfde19cd538f79c0079388c1fa7accfb3d3bf73..cd4528bcaa1f6b7d990aaad3c53e3b0d3d28bec5 100644 GIT binary patch literal 76 zcmZ?JAH(a(6FAWG#ohTzAmc^xU9w^7h5X#`mpvREJ KkjRk7kPQHK4h)(A diff --git a/DeltaVRFMOD/.cache/{7ebf9bdd-7480-426c-9b39-32db83daba94}.pdc b/DeltaVRFMOD/.cache/{7ebf9bdd-7480-426c-9b39-32db83daba94}.pdc index c49193ecf1a5a83c9e8faa5e6d9bc807110859ec..2a37980d0d6bb279b599c8f316a22d7054eba2b9 100644 GIT binary patch delta 29 hcmccPe#c$J!^Jy*fq{V;h(&;yA(Q9bosA+VlmTvU2Z#Uw delta 29 hcmccPe#c$J!^Jy*fq{V;h(&;yA>*Bw@J5jn$^dN82K)d3 diff --git a/DeltaVRFMOD/Build/Desktop/Desktop/Ambience.bank b/DeltaVRFMOD/Build/Desktop/Desktop/Ambience.bank index 1552545b784494bd9b561e4aa51b6c28c0b48966..ca205532c4ad80172ae1e39d1a5f8dec4ca8ad1f 100644 GIT binary patch delta 1736 zcmW;MXIu?X7{~F?t(#RcZpbF1C`2M7r4o^{MMXpzp~&7swz&4*WOK8#_a50Zd+)vd z{$6~4=Xrn5c`|QbwarAz6!R$SxM@F9bXdL^><#~ic$k7>c6=O2P@HP#R@W7S3=%Ih2Ph+)x1(Q3>v-j4JRzRd}Krs>2I4 zP!qLK8{Vh`ANZm!{NRrO)I%WZqXB}@5RDLw#t1r+Fc5<<7(*}=!!R5p zFcPDXgwYs-u}H=^jK>5_#3W3{6ih`5reQkFn1Pv?h1r;cxtNFfSb&9CgvD5brC5gL zSb>#Th1FPtRIJ51tj7jy#3pRU7HowDY1oGC*nyqch27YLbnL}G?8gBd#33BU5gf%a z9LEWq#3`J{8JxvAoW})R#3f|lGOpk%uHiav;3jV2Htygq?jaNR@c<9;2#@guPw@=T z@d7XL3a{}7Z}ATA@c|$437_!=U-1p!@dH2c3%~IPe<$+yr$Vt(tQDhTqhwLCD%q6m zN)E+Vu~Tv?_DU`#w~|N6tC$oAC7+UCDWEti1(iZdVWo&tR4JwuS4t=)6(^;XQd%ja zlvSJ+7p0t1UU602lnP2krIO;VR931e9!gckQ>ms@SG<%ON=>DfQd{v>>L@;nuTod> zQ~Z?xrJfR~)K?lPK}tiVkrJ#lRzj3erHRs1X{Iz+S|}}*R!VCnOlhOERl=1BB~odp zv{#~(4oXKQTIr;8R$`P`<^MbAs;QgOU5QhAC_R;4O1zSw^j7*PiH7~`979ClKk2hI AdH?_b delta 1802 zcmZwHdtA+T9LI5|ekGMebU`6f6y=h8xs+TwREQ!KhYmuehOvd2TS7UTUEFWm+TD(^ zttN>XyU+cyt=;6ZVOSfx@Ot~ZKc270_woJw`MuO!KI>M4lJ%a^!AZv#WbcbB_AA?- z<8mdy=4qsrJ}9Yo-(F|(Fx5ZFbu6xTVz#F^1&5k)?Moxdy&M`eut&wZ1scgdH&boq ztODb9Nok?&XqMTx$l_4DY=5+u{;fULwh(K9;aF*nwC%8F8rN&D zg)cW|tTJYp-~dM$aDp=$!Uc`s3OBf;F+9)&o@k0@@IrI6fH!>L3qQ0(E3}3`0?-C+ z(GG!Vj}8bzM+74TozNMf2tyZiMK~hR4c*ZLJrRjs=#4(;i+<>j0f<6024WBfV+djp zi=l|aFbu~Cj6^)l7=_VDKq8Vb24gV}$rz6bNI@zlViM9Y8R^JCCZ=F2ESQGr$buC* zpP872Y|O?S%ta1zk%xK6M**I|d@R61Jc&hEjHmE43b6!Bu?){(IiAG|ti&p;#u^l1 zEsC)Y>#+ePD8)wD@Eo4UCcJ6oSn*Jr zD4t4FrJ3TTG*?-P8p^Q zS4Jo!m3YOhj8aA`2}+`pq>NFB+`C+9K!yBGLHe?&LV001-b_ejgZo~v(u$a3FBGJFNMpb&V}$u z)^Q>m!oG+x@f^L)2SLhMS+z`p%dJvjc#&1wz#Ev)hZ9z<%iy$C zTLS^QtTHIZI|y=B2Y%| z1f=%rV;y~<%gnz6f0KQhlLxDB+~Ya0~6 z)#)A1y#tYWJ;a?Vco-xug(guSX`;lm6iT5Kl$o~rl$1+c6upyw#MvyjFtzj-UCWIt zB`Qr#5FnXHR!NDPR?|EZwc92kB~;KTk@`*E8$oSoO0-xb(X9z8ClyMQEi$Z delta 1442 zcmZvc-D}l#9LHbZ@7&Hd(`jnCW^FE)r8&20kIS619bL}Sx%rSq-Q3uG=m|~` zUL=L!5u`wf2ya3t1c|%}^v(-W>ko)-6iSNHo1*#p{d{0SF)@*RF4G*C0`U+O z=E9V&$mkY1LaqYJUw{KOP^HUUyO(Feux{c)7+;{h*#EyQH^af_}&*5PCFkbz8;qVMOKU?wp9 zjP~rnxc)2WL=NC7Hm_R%Qd$c)i z0uRaOb!4^iCj*yjUxwC)<*U$UwOsd|)$xaZtK`~1Znj(>7+B`Jb%BDNh=+@Tp$=Pn zJ}{c~;EEYref&4De}i0Y<{2L@(18_|wd=r^#zleMFL~Y^*k@Z=78q-jlh!^UudxGl za(`gZdvUJ;?QYy2$Uo?LJ}@Ft+^=IZ;sYO4%byrvy8O8pTjj5H@QM%58PE>#jpsAu zvpR6*X~0M1OM$iq`9}+R)%({h!12W-Av?@3+Ukd2efPBdr-i;|{Pe;T9^CX`g`7Ni zPR>NyR>`%IoUNuQl3y+_j_h{Ev_^)O$}1wnLEh;9w;OOUGO|*8Uu0~j_B)aBx9%oV z?|HvsPIe)QQ-kt7XrM(Nyca2`dOnOC%K6}9?IqeLbdcBn%!f~EpK>J6%7;rc%g0N{ z%YQE&uh>xftDm3adRF?bnN3l0&P3g)*}ilS6{k&D z1J1xC)vUETa9iE$)M2%fca0pe)3MANI|5GBUfXsxvMF86K~R6y&_E)n3Q&HpyY%Tc z&a&Uh8YWG=_Y=}D5<55{v~v2=+bA8ypa1{> diff --git a/DeltaVRFMOD/Build/Desktop/Desktop/SFX.bank b/DeltaVRFMOD/Build/Desktop/Desktop/SFX.bank index 7d141bfcdb2741f21cd583c4215365796c5b12a6..e8ab39ec82d008bee735762faa8ac1bff7a6c0a2 100644 GIT binary patch delta 1196 zcmZXSe@IhN6vyv<@6Bya-KJBgPFqXTAeKK+D|FLoI&Ev?Ie&msqCrKoLd!%Gb)?Ox zur4vmeqe=}^hffr^@D7g^iN^YABI>d`GuvlP{gP z<&6_-*!hfTmMetpzYj< zWJrqNkn>UDc#+(R>L<>3DlOz93SkuAT{gPVGnRF~`}Q#9-E@~mGUUlHzDP=Zp5Jxz zi|eabb{-=#sZwxts{LWIEY@l-^}Nh;D;Cs02Lt-J*`#B!vY{!Ig8Rl%{OnTGG)|r- zwIw;CkJr1#GR;R`b5Bb)D6ox89W1Nd4Q;JvlLatr1e>2IG!8a5k$ON-Ot?f-AY`8KscL5S5{Z47U5#vc+&N?#brzhrLo_ zsIDQ*p*i_U=8x<`Q}!+!m?(r398SXteD%7ky5UVDg}WT$jqcR;42r+c*^k6iiTpb< z>h$_N&)m-L0fD!weXn!~FRsMu&-Xww{pj|0hv7lsJ~OUJB)69QT^!8Ud8F}s4r|A=2S_wYN2o$A4caH?W$8>>m{i%zA7@z{l delta 820 zcmZ9|Ur19?90%}wcCT}Do4cD!XH%QgNtvvHRM4Nfe@>;%tvOa1l|>I?)6fhSrig>| zrP@5fpit{Y=&gClD;XuRm#8G7#D^XtA`DD|-m;?a(DrZ-d^qRa-|zf>=bq8G6XesY z31SJi`FyKZ3*&2!ntg$YS-~*ON2F7ev2?NYf+{9#uyJ{ALEjZ6=@=UmmQ^pb z-eUd)gx$5_4!n-@yJ>EJChu073UYtflpN ze9QG<8PE9v%ot`jbtO%7y6=as6?M=%Usf;7Ts}zb(knQo9N9g~9qnVvI`P1bqcUk+ zkoWJF(Vi=hbgLQ^3`g??ZNlEcG)rx9|GA53Ej=jREAjtZ!|Y<1(Wb4}>2|q?zB#u8 zm|i31Z2G@1yj11JTIh}cDG*jhl5BYl#{!|2{3Qwy4!A<*T6#QPLMO+(^iU#BzfAJN zMq+MQm&GFlg5G?3v6vx5l%;u==*3lz{35dZ8u7iHL^;mtD4i8;DsqHycUu}?ru)=n zooink|Cv6kA%on9&8fJ!q9Gp%+i9$(x|C^rNlQQmEO1Z&awr4^D4_^cpau;TgBEzu ifgVc006U-*%D@QauoH5BI7T3pgvoW_5zZ3%M# diff --git a/DeltaVRFMOD/Build/Desktop/Desktop/UI.bank b/DeltaVRFMOD/Build/Desktop/Desktop/UI.bank index f57b11307aeb2a9d25b68208212760dab5309064..e7c12bae3d510fb2718754d2cecd6e533822a3d3 100644 GIT binary patch delta 95 zcmV-l0HFWC$^^j51h9$$5JTiApI1iWPoJ5~P`^vHG?AWMllB1;k&bMWbOQPU@IbS0 z12hH#070{+34$UR*3;13S%ZztRIk5Ep}f4@%rqxQ#+u3ylRzva1U; diff --git a/DeltaVRFMOD/Metadata/Event/{0cc3b481-962c-43bc-a963-058a71c1632b}.xml b/DeltaVRFMOD/Metadata/Event/{0cc3b481-962c-43bc-a963-058a71c1632b}.xml index 7dc44a05..df53f6d0 100644 --- a/DeltaVRFMOD/Metadata/Event/{0cc3b481-962c-43bc-a963-058a71c1632b}.xml +++ b/DeltaVRFMOD/Metadata/Event/{0cc3b481-962c-43bc-a963-058a71c1632b}.xml @@ -69,7 +69,7 @@ - 60 + 45 diff --git a/DeltaVRFMOD/Metadata/Event/{1067667c-4322-4be7-88b5-ec1bb6973b2a}.xml b/DeltaVRFMOD/Metadata/Event/{1067667c-4322-4be7-88b5-ec1bb6973b2a}.xml index 157bb0e7..07d13cf3 100644 --- a/DeltaVRFMOD/Metadata/Event/{1067667c-4322-4be7-88b5-ec1bb6973b2a}.xml +++ b/DeltaVRFMOD/Metadata/Event/{1067667c-4322-4be7-88b5-ec1bb6973b2a}.xml @@ -60,7 +60,7 @@ {99406875-ba7e-46e6-8a1c-583c35145678} - {c751273e-6b77-46b1-8c19-a99f6f08e61e} + {ce68ea24-56d6-4af5-a850-87bda0652ecc} diff --git a/DeltaVRFMOD/Metadata/Event/{11bf17f9-9c7d-44f2-b105-627916d832e6}.xml b/DeltaVRFMOD/Metadata/Event/{11bf17f9-9c7d-44f2-b105-627916d832e6}.xml index 5a951073..2f206e4f 100644 --- a/DeltaVRFMOD/Metadata/Event/{11bf17f9-9c7d-44f2-b105-627916d832e6}.xml +++ b/DeltaVRFMOD/Metadata/Event/{11bf17f9-9c7d-44f2-b105-627916d832e6}.xml @@ -64,7 +64,7 @@ {785a0218-171c-43b0-a400-ed5b478e0e52} - {c751273e-6b77-46b1-8c19-a99f6f08e61e} + {ce68ea24-56d6-4af5-a850-87bda0652ecc} diff --git a/DeltaVRFMOD/Metadata/Event/{62c2315e-424a-4d4a-a651-6b9673a3100b}.xml b/DeltaVRFMOD/Metadata/Event/{62c2315e-424a-4d4a-a651-6b9673a3100b}.xml index 91d27bab..5bbeb11f 100644 --- a/DeltaVRFMOD/Metadata/Event/{62c2315e-424a-4d4a-a651-6b9673a3100b}.xml +++ b/DeltaVRFMOD/Metadata/Event/{62c2315e-424a-4d4a-a651-6b9673a3100b}.xml @@ -60,7 +60,7 @@ {d6578bd3-e81d-4e23-9b1f-d98a017a7b35} - {c751273e-6b77-46b1-8c19-a99f6f08e61e} + {ce68ea24-56d6-4af5-a850-87bda0652ecc} diff --git a/DeltaVRFMOD/Metadata/Event/{6fe27f03-35f6-4e00-ba0d-60648a3d1e3d}.xml b/DeltaVRFMOD/Metadata/Event/{6fe27f03-35f6-4e00-ba0d-60648a3d1e3d}.xml index 95f4705c..a6c9980f 100644 --- a/DeltaVRFMOD/Metadata/Event/{6fe27f03-35f6-4e00-ba0d-60648a3d1e3d}.xml +++ b/DeltaVRFMOD/Metadata/Event/{6fe27f03-35f6-4e00-ba0d-60648a3d1e3d}.xml @@ -53,7 +53,7 @@ {cd5d92df-177f-4077-b83b-a1d3846825e9} - {c751273e-6b77-46b1-8c19-a99f6f08e61e} + {ce68ea24-56d6-4af5-a850-87bda0652ecc} diff --git a/DeltaVRFMOD/Metadata/Event/{7e2cb674-9881-4577-a8fd-b87f1908a0c9}.xml b/DeltaVRFMOD/Metadata/Event/{7e2cb674-9881-4577-a8fd-b87f1908a0c9}.xml index b05dfeed..a38d6000 100644 --- a/DeltaVRFMOD/Metadata/Event/{7e2cb674-9881-4577-a8fd-b87f1908a0c9}.xml +++ b/DeltaVRFMOD/Metadata/Event/{7e2cb674-9881-4577-a8fd-b87f1908a0c9}.xml @@ -54,7 +54,7 @@ {692e7fb8-403d-4ed5-99e4-7e138fa06823} - {8431e203-753a-4633-bbee-15f9c2412d0a} + {9f27e443-4657-4fe2-9f99-cb50bf4bb534} diff --git a/DeltaVRFMOD/Metadata/Event/{904bd9bc-6376-4493-89b2-7926d5bf9c5b}.xml b/DeltaVRFMOD/Metadata/Event/{904bd9bc-6376-4493-89b2-7926d5bf9c5b}.xml index 419aba77..adb65871 100644 --- a/DeltaVRFMOD/Metadata/Event/{904bd9bc-6376-4493-89b2-7926d5bf9c5b}.xml +++ b/DeltaVRFMOD/Metadata/Event/{904bd9bc-6376-4493-89b2-7926d5bf9c5b}.xml @@ -53,7 +53,7 @@ {b883c971-d553-41c9-8d37-3b20092b7741} - {69ee688f-dc4e-4df2-a125-df79ed93217e} + {9f27e443-4657-4fe2-9f99-cb50bf4bb534} diff --git a/DeltaVRFMOD/Metadata/Event/{af15be7d-d2b1-4b03-9e5a-a609f5948419}.xml b/DeltaVRFMOD/Metadata/Event/{af15be7d-d2b1-4b03-9e5a-a609f5948419}.xml index fc8b1bbd..c97bdf50 100644 --- a/DeltaVRFMOD/Metadata/Event/{af15be7d-d2b1-4b03-9e5a-a609f5948419}.xml +++ b/DeltaVRFMOD/Metadata/Event/{af15be7d-d2b1-4b03-9e5a-a609f5948419}.xml @@ -56,7 +56,7 @@ {6721f316-4c14-42f0-abed-906731885df2} - {9f27e443-4657-4fe2-9f99-cb50bf4bb534} + {69ee688f-dc4e-4df2-a125-df79ed93217e} diff --git a/DeltaVRFMOD/Metadata/Event/{c5372ba0-f2da-498b-b849-cc1130ead0cb}.xml b/DeltaVRFMOD/Metadata/Event/{c5372ba0-f2da-498b-b849-cc1130ead0cb}.xml index 0dcd684a..07ec37a3 100644 --- a/DeltaVRFMOD/Metadata/Event/{c5372ba0-f2da-498b-b849-cc1130ead0cb}.xml +++ b/DeltaVRFMOD/Metadata/Event/{c5372ba0-f2da-498b-b849-cc1130ead0cb}.xml @@ -53,7 +53,7 @@ {9fa374b5-4d33-4d57-9e95-cbd43def38b3} - {9f27e443-4657-4fe2-9f99-cb50bf4bb534} + {69ee688f-dc4e-4df2-a125-df79ed93217e} diff --git a/DeltaVRFMOD/Metadata/Event/{cc8d8359-af54-4abf-a1bc-bcdccc342747}.xml b/DeltaVRFMOD/Metadata/Event/{cc8d8359-af54-4abf-a1bc-bcdccc342747}.xml index 365f7d3d..a08a9741 100644 --- a/DeltaVRFMOD/Metadata/Event/{cc8d8359-af54-4abf-a1bc-bcdccc342747}.xml +++ b/DeltaVRFMOD/Metadata/Event/{cc8d8359-af54-4abf-a1bc-bcdccc342747}.xml @@ -54,7 +54,7 @@ {e9d8a9af-9a9b-4cdc-921e-bdc5b1db9955} - {c751273e-6b77-46b1-8c19-a99f6f08e61e} + {8431e203-753a-4633-bbee-15f9c2412d0a} @@ -87,7 +87,7 @@ - 6 + 8 {0fee013d-657b-47c5-85d1-475195a25a23} diff --git a/DeltaVRFMOD/Metadata/Event/{ce89abc5-417e-4800-9b30-18883a321145}.xml b/DeltaVRFMOD/Metadata/Event/{ce89abc5-417e-4800-9b30-18883a321145}.xml index 92e8ba5b..7e47bd2d 100644 --- a/DeltaVRFMOD/Metadata/Event/{ce89abc5-417e-4800-9b30-18883a321145}.xml +++ b/DeltaVRFMOD/Metadata/Event/{ce89abc5-417e-4800-9b30-18883a321145}.xml @@ -35,7 +35,7 @@ {052e1f9c-5b6f-476b-946d-b2bdcdc8f8eb} - {9abe2acc-a8b4-4415-840b-2ac27847b4ff} + {68bf40d2-7df8-4b0c-a6bc-9d3c36d63439} {9d1145b0-e099-4ee4-ab1d-23cc274af901} @@ -49,6 +49,7 @@ {087063af-72f8-4cca-b56a-eda53b878587} + {980354c8-26a3-47a1-80a6-769cbf436bda} {05ec5f01-3eb6-4f68-b75b-e99b7c476eee} @@ -118,12 +119,15 @@ {c6ed1c8a-6317-4b6e-9c2f-a9de5d998f05} - + - {8d183079-30c4-4cbb-837b-5db8c493ed3b} + {fb894807-eb7f-48db-b3de-e2f5dd3322a2} + + {93017814-5ff7-41bb-a85c-fc00228d6511} + {5ac38b31-98b7-473d-8882-03fa4bb5da28} @@ -139,6 +143,11 @@ {6d4159b3-ea9e-461b-ba14-b1be5405eb95} + + + {93017814-5ff7-41bb-a85c-fc00228d6511} + + 0 @@ -317,6 +326,14 @@ {7007bc9b-631e-461e-b46e-f1cb71b0a9e3} + + + volume + + + {c6483dc0-3132-49c3-9ba3-ef97f7f31091} + + {17b6686c-b69a-4290-9a34-f1615792f5c3} @@ -414,6 +431,17 @@ {c6ed1c8a-6317-4b6e-9c2f-a9de5d998f05} + + + {fb894807-eb7f-48db-b3de-e2f5dd3322a2} + + + {6511c4b5-301e-45ff-b07e-2dc25691ad3c} + {f27b755e-124b-49b8-8d3f-d69403044a53} + {2f40e6d1-2e17-4ac1-93ec-f9cdf454778e} + {9c80fde5-1b08-459f-a1d1-e3b7830cc8f9} + + @@ -516,61 +544,93 @@ + + + 0.001076426264800861 + + + 3.81469727e-06 + + + + + 0.47631862217438103 + + + -7 + + + + + 0.99946178686759946 + + + -80 + + + + + 0.9903121636167922 + + + -10.9341545 + + frequencyA - {2e2c0b59-cd7c-4f56-a6fb-948fb66056bf} + {6c505241-c058-47cb-b714-f520fdbe0caa} - + - {8d183079-30c4-4cbb-837b-5db8c493ed3b} + {fb894807-eb7f-48db-b3de-e2f5dd3322a2} - {50d95503-71eb-40cd-bf3c-9c81df86ce9c} - {dd976ac6-fd76-433d-9529-838cfc6b729f} - {271ac30f-9855-4d8d-9c3f-e9decd599a63} - {ca5c5e24-641a-4abe-a446-fb75c5add4a8} + {c5d1b0fa-4a02-495b-b7b9-213d29640d30} + {0b8a39b4-4ce2-4b14-b5f9-09d0d5ecb004} + {3d47a52a-5449-42c0-b0b3-b7dbb7694761} + {411906cd-ff80-4c62-8a5b-d2d075404e9e} - + - 0 + 0.001076426264800861 - 22000 + 18000 + -0.12912713 + + + + + 0.47524219590958017 + + + 4500 + + + + + 0.98170075349838526 + + + 150 + + + 0.0435885787 + + + + 1 - - true - - - - - 39.604519774011301 - - 30 - - - - - 25.5 - - - 35 - - - - - 14.5 - - - 3500 + 20 diff --git a/DeltaVRFMOD/Metadata/Event/{debd0048-f7da-4ea8-8e42-084262639fd0}.xml b/DeltaVRFMOD/Metadata/Event/{debd0048-f7da-4ea8-8e42-084262639fd0}.xml index 6077ecfc..28f368d9 100644 --- a/DeltaVRFMOD/Metadata/Event/{debd0048-f7da-4ea8-8e42-084262639fd0}.xml +++ b/DeltaVRFMOD/Metadata/Event/{debd0048-f7da-4ea8-8e42-084262639fd0}.xml @@ -152,7 +152,7 @@ - 9.5 + 7.5 Audio 2 diff --git a/DeltaVRFMOD/Metadata/ParameterPreset/{319559ef-04bf-4399-ad4d-f2857201675d}.xml b/DeltaVRFMOD/Metadata/ParameterPreset/{319559ef-04bf-4399-ad4d-f2857201675d}.xml deleted file mode 100644 index 3f80cbeb..00000000 --- a/DeltaVRFMOD/Metadata/ParameterPreset/{319559ef-04bf-4399-ad4d-f2857201675d}.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - Car - - - {72821a40-1f9b-449e-9f29-45c4d8800c81} - - - {8d183079-30c4-4cbb-837b-5db8c493ed3b} - - - - - 3 - - - 40 - - - 0 - - - false - - - diff --git a/DeltaVRFMOD/Metadata/ParameterPreset/{78b39a91-4363-470b-94f5-ebddc0e41885}.xml b/DeltaVRFMOD/Metadata/ParameterPreset/{78b39a91-4363-470b-94f5-ebddc0e41885}.xml deleted file mode 100644 index 6b008eca..00000000 --- a/DeltaVRFMOD/Metadata/ParameterPreset/{78b39a91-4363-470b-94f5-ebddc0e41885}.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - CafeEQ - - - {72821a40-1f9b-449e-9f29-45c4d8800c81} - - - {f83835cd-446d-4f3c-9fc6-2c0e984edbad} - - - - - 0 - - - diff --git a/DeltaVRFMOD/Metadata/ParameterPreset/{c4b79f2b-c503-4e8a-bc42-6c104c7bac33}.xml b/DeltaVRFMOD/Metadata/ParameterPreset/{c4b79f2b-c503-4e8a-bc42-6c104c7bac33}.xml index 7275c561..357b5eb3 100644 --- a/DeltaVRFMOD/Metadata/ParameterPreset/{c4b79f2b-c503-4e8a-bc42-6c104c7bac33}.xml +++ b/DeltaVRFMOD/Metadata/ParameterPreset/{c4b79f2b-c503-4e8a-bc42-6c104c7bac33}.xml @@ -13,7 +13,7 @@ - 0 + 1 {a1523d7a-fecc-424f-8e27-bd2c5cb9a80f} diff --git a/DeltaVRFMOD/Metadata/VCA/{162960f4-09a2-4526-a61e-7ac7e219d27d}.xml b/DeltaVRFMOD/Metadata/VCA/{162960f4-09a2-4526-a61e-7ac7e219d27d}.xml new file mode 100644 index 00000000..d8e6103e --- /dev/null +++ b/DeltaVRFMOD/Metadata/VCA/{162960f4-09a2-4526-a61e-7ac7e219d27d}.xml @@ -0,0 +1,11 @@ + + + + + SFX + + + {a1197cab-76c8-4da4-a41f-969ff1afdca4} + + + diff --git a/DeltaVRFMOD/Metadata/VCA/{6a1a7123-bd44-49b1-9092-22ef5bb105ec}.xml b/DeltaVRFMOD/Metadata/VCA/{6a1a7123-bd44-49b1-9092-22ef5bb105ec}.xml new file mode 100644 index 00000000..e079cc10 --- /dev/null +++ b/DeltaVRFMOD/Metadata/VCA/{6a1a7123-bd44-49b1-9092-22ef5bb105ec}.xml @@ -0,0 +1,11 @@ + + + + + UI + + + {a1197cab-76c8-4da4-a41f-969ff1afdca4} + + + diff --git a/DeltaVRFMOD/Metadata/VCA/{7db632b8-c5c2-4e3e-ab97-f087b29d2976}.xml b/DeltaVRFMOD/Metadata/VCA/{7db632b8-c5c2-4e3e-ab97-f087b29d2976}.xml new file mode 100644 index 00000000..fa4ab6cd --- /dev/null +++ b/DeltaVRFMOD/Metadata/VCA/{7db632b8-c5c2-4e3e-ab97-f087b29d2976}.xml @@ -0,0 +1,14 @@ + + + + + Ambiences + + + {abdd8187-ee40-4826-82f2-b919c3daf22c} + + + {a1197cab-76c8-4da4-a41f-969ff1afdca4} + + + diff --git a/DeltaVRFMOD/Metadata/VCA/{abdd8187-ee40-4826-82f2-b919c3daf22c}.xml b/DeltaVRFMOD/Metadata/VCA/{abdd8187-ee40-4826-82f2-b919c3daf22c}.xml new file mode 100644 index 00000000..c4dff5d1 --- /dev/null +++ b/DeltaVRFMOD/Metadata/VCA/{abdd8187-ee40-4826-82f2-b919c3daf22c}.xml @@ -0,0 +1,11 @@ + + + + + Master + + + {a1197cab-76c8-4da4-a41f-969ff1afdca4} + + + diff --git a/highscores.json b/highscores.json index 44453bc4..f31a80e0 100644 --- a/highscores.json +++ b/highscores.json @@ -4,6 +4,10 @@ "name": "iopprnbb ,,p", "score": 491.0 }, + { + "name": "timmi", + "score": 469.0 + }, { "name": "jtimu", "score": 465.0