car occlusion, space ambience done

This commit is contained in:
Timur Nizamov 2025-11-18 22:29:02 +02:00
parent 47d37f2b7f
commit ab737e016c
32 changed files with 812 additions and 35 deletions

View File

@ -27,7 +27,7 @@ public class CarDrivingRoutine : NetworkBehaviour
private EventInstance CarMovement;
private FirstPersonOcclusion occlusion;
private void Awake()
{
@ -41,6 +41,13 @@ public class CarDrivingRoutine : NetworkBehaviour
CarMovement.setParameterByName("EasyBoltLogic", 0); //"Driving - 0 in FMOD"
CarMovement.set3DAttributes(FMODUnity.RuntimeUtils.To3DAttributes(gameObject)); //setting 3d attributes
occlusion = GetComponent<FirstPersonOcclusion>();
if (occlusion != null)
{
occlusion.InitialiseWithInstance(CarMovement);
}
}
private void Start()
{

View File

@ -3,6 +3,7 @@ using System.Collections;
using System.Collections.Generic;
using Unity.XR.CoreUtils;
using UnityEngine;
using FMOD.Studio;
public class ElevatorOuter : NetworkBehaviour
{
@ -25,10 +26,24 @@ public class ElevatorOuter : NetworkBehaviour
public ElevatorStatusPlate statusPlate;
public AudioSource arrivalBeeper;
private EventInstance arrivalBeep;
private FirstPersonOcclusion occlusion;
private void Start()
{
doorOpenTime = box.doorOpenTime;
doorCloseTime = box.doorCloseTime;
arrivalBeep = AudioManager.Instance.CreateInstance(FMODEvents.Instance.ElevatorArrival); //initialising the variable
arrivalBeep.set3DAttributes(FMODUnity.RuntimeUtils.To3DAttributes(gameObject)); //setting 3d attributes
occlusion = GetComponent<FirstPersonOcclusion>();
if (occlusion != null)
{
occlusion.InitialiseWithInstance(arrivalBeep);
}
}
private void OnTriggerEnter(Collider other)
{
@ -77,6 +92,11 @@ public class ElevatorOuter : NetworkBehaviour
Debug.Log("Outer Doors moved");
}
void Update()
{
arrivalBeep.set3DAttributes(FMODUnity.RuntimeUtils.To3DAttributes(gameObject)); //updating the attributes
}
}

View File

@ -23,15 +23,15 @@ public class FloorButtonVisualizer : MonoBehaviour
{
this.ActiveState = true;
buttonImage.sprite = ActiveSprite;
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Hover, gameObject);
// --- Only play hover if selection actually changed ---
if (initialized && lastActiveButton != this)
{
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Hover, gameObject);
}
//if (initialized && lastActiveButton != this)
//{
// AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Hover, gameObject);
//}
lastActiveButton = this;
initialized = true;
//lastActiveButton = this;
//initialized = true;
}
public void Deactivate()

View File

@ -1,13 +1,14 @@
using FMOD.Studio;
using FMODUnity;
using System;
using System.Collections;
using System.Collections.Generic;
using Unity.XR.CoreUtils;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.Rendering;
using UnityEngine.UI;
using UnityEngine.XR.Interaction.Toolkit;
using FMOD.Studio;
using FMODUnity;
public class MenuTeleportButton : MonoBehaviour
{
@ -28,6 +29,10 @@ public class MenuTeleportButton : MonoBehaviour
private static MenuTeleportButton lastSelectedButton = null;
private static bool initialized = false;
// External state: map must be held/visible
public static bool MapIsOpen = false;
private Menu menu;
private void Awake()
{
TeleportingSound = AudioManager.Instance.CreateInstance(FMODEvents.Instance.Teleport); //initialise the instance
@ -39,6 +44,7 @@ public class MenuTeleportButton : MonoBehaviour
void Start()
{
button = GetComponent<Button>();
menu = FindObjectOfType<Menu>();
// Subscribe to button events
button.onClick.AddListener(TeleportPlayer);
@ -66,13 +72,18 @@ public class MenuTeleportButton : MonoBehaviour
button.targetGraphic.GetComponent<Image>().sprite = HoverSprite;
// --- Only play hover sound if selection actually changed ---
if (initialized && lastSelectedButton != this)
{
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Hover, gameObject);
}
//if (initialized && lastSelectedButton != this)
//{
// if (!Menu.IsMapOpen) return;
// if (!menu.MapTab.activeSelf) return; // ensures only map page buttons make sound
// AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Hover, gameObject);
//}
if (!Menu.IsMapOpen) return;
if (!menu.MapTab.activeSelf) return; // ensures only map page buttons make sound
AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Hover, gameObject);
lastSelectedButton = this;
initialized = true;
//lastSelectedButton = this;
//initialized = true;
}
}

View File

@ -59,7 +59,9 @@ public class Menu : MonoBehaviour
private bool hasFloorButtonSoundInitialized = false;
private bool hasMapButtonSoundInitialized = false;
public static bool IsMapOpen { get; private set; }
private void Awake()
{
@ -93,6 +95,8 @@ public class Menu : MonoBehaviour
hasMapButtonSoundInitialized = true;
SetActiveTab(MenuTab.Map);
IsMapOpen = canvas.enabled;
}
private void activateOptionsPanel()
@ -125,6 +129,8 @@ public class Menu : MonoBehaviour
public void setCanvasVisibility(bool enabled)
{
canvas.enabled = enabled;
IsMapOpen = enabled;
}
private void ToggleMenu(InputAction.CallbackContext context)

View File

@ -3376,6 +3376,22 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
- eventID: 1
callback:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 9130699439852735294}
m_TargetAssemblyTypeName: FloorButtonVisualizer, Assembly-CSharp
m_MethodName: Deactivate
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
@ -3580,6 +3596,22 @@ MonoBehaviour:
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
- eventID: 1
callback:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 2993125651756248496}
m_TargetAssemblyTypeName: FloorButtonVisualizer, Assembly-CSharp
m_MethodName: Deactivate
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
@ -7838,6 +7870,26 @@ PrefabInstance:
value:
objectReference: {fileID: 21300000, guid: 50a077641946fcb48b05e51ec4936afc,
type: 3}
- target: {fileID: 2420913116824796466, guid: f2ade1e8dce12be43ab14956a6244406,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.size
value: 0
objectReference: {fileID: 0}
- target: {fileID: 2420913116824796466, guid: f2ade1e8dce12be43ab14956a6244406,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
value: 1
objectReference: {fileID: 0}
- target: {fileID: 2420913116824796466, guid: f2ade1e8dce12be43ab14956a6244406,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
objectReference: {fileID: 6428633840807731315}
- target: {fileID: 2420913116824796466, guid: f2ade1e8dce12be43ab14956a6244406,
type: 3}
propertyPath: m_OnClick.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 3841795681097067811, guid: f2ade1e8dce12be43ab14956a6244406,
type: 3}
propertyPath: m_Pivot.x
@ -8068,9 +8120,9 @@ MonoBehaviour:
callback:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 6428633840807731315}
- m_Target: {fileID: 2839451055893527412}
m_TargetAssemblyTypeName: MenuTeleportButton, Assembly-CSharp
m_MethodName:
m_MethodName: SetStateDefault
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}

View File

@ -8,11 +8,16 @@ public class SpaceEnterCollider : MonoBehaviour
{
public GameObject InstructionText;
private EventInstance PortalEntrance;
private EventInstance PortalEntrance;
private EventInstance SpaceMusic;
private bool musicStarted = false;
private void Awake()
{
PortalEntrance = AudioManager.Instance.CreateInstance(FMODEvents.Instance.PortalEnter);
SpaceMusic = AudioManager.Instance.CreateInstance(FMODEvents.Instance.Kosmos);
SpaceMusic.setParameterByName("KosmosMusicVolume", 1.0f);
}
private void OnTriggerEnter(Collider other)
@ -46,6 +51,15 @@ public class SpaceEnterCollider : MonoBehaviour
PortalEntrance.start();
if (!musicStarted)
{
SpaceMusic.start();
musicStarted = true;
}
// Fade music in on entering
SpaceMusic.setParameterByName("KosmosMusicVolume", 0f);
}
private void OnTriggerExit(Collider other)
@ -63,7 +77,8 @@ public class SpaceEnterCollider : MonoBehaviour
Debug.Log(other + " left space.");
PortalEntrance.start();
// Fade music out on leaving
SpaceMusic.setParameterByName("KosmosMusicVolume", 1.0f);
}
private IEnumerator DelayExit(GravityHandler playerGravity)

Binary file not shown.

View File

@ -3,6 +3,10 @@ using UnityEngine;
public class FMODEvents : MonoBehaviour
{
[field: Header("Musical Ambiences")]
[field: SerializeField] public EventReference Kosmos { get; private set; }
[field: Header("SFX")]
[field: SerializeField] public EventReference Steps { get; private set; }
[field: SerializeField] public EventReference StepSpin { get; private set; }

View File

@ -26,9 +26,6 @@ public class FirstPersonOcclusion : MonoBehaviour
private bool initialisedExternally = false;
// ============================================================
// NEW — Optional external initialiser
// ============================================================
public void InitialiseWithInstance(EventInstance instance)
{
AudioOccluded = instance;
@ -43,32 +40,30 @@ public class FirstPersonOcclusion : MonoBehaviour
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
// 1. Event Instance Creation
if (!initialisedExternally)
{
AudioOccluded = RuntimeManager.CreateInstance(SelectAudio);
// 2. Attaching Instance
RuntimeManager.AttachInstanceToGameObject(AudioOccluded, gameObject);
// 3. Starting Audio
AudioOccluded.start();
// 4. Releasing Instance (This allows the event to self-manage its lifetime, which is fine)
AudioOccluded.release();
// 5. Getting Event Description and Max Distance
AudioDes = RuntimeManager.GetEventDescription(SelectAudio);
AudioDes.getMinMaxDistance(out float minDistance, out MaxDistance);
}
// Find listener (kept exactly as before)
// 6. Finding Listener
yield return new WaitUntil(() => FindObjectOfType<StudioListener>() != null);
Listener = FindObjectOfType<StudioListener>();
}
// ============================================================
// UNCHANGED core functionality
// ============================================================
private void FixedUpdate()
{
if (Listener == null) return;
@ -77,16 +72,19 @@ public class FirstPersonOcclusion : MonoBehaviour
AudioOccluded.getPlaybackState(out pb);
ListenerDistance = Vector3.Distance(transform.position, Listener.transform.position);
// 7. Check Occlusion Condition
if (!AudioIsVirtual && pb == PLAYBACK_STATE.PLAYING && ListenerDistance <= MaxDistance)
{
OccludeBetween(transform.position, Listener.transform.position);
}
// 8. Reset Hit Count
lineCastHitCount = 0f;
}
private void OccludeBetween(Vector3 sound, Vector3 listener)
{
// 9. Calculate Points (Log only a few to avoid clutter)
Vector3 SoundLeft = CalculatePoint(sound, listener, SoundOcclusionWidening, true);
Vector3 SoundRight = CalculatePoint(sound, listener, SoundOcclusionWidening, false);
@ -98,6 +96,7 @@ public class FirstPersonOcclusion : MonoBehaviour
Vector3 ListenerAbove = new Vector3(listener.x, listener.y + PlayerOcclusionWidening * .5f, listener.z);
Vector3 ListenerBelow = new Vector3(listener.x, listener.y - PlayerOcclusionWidening * .5f, listener.z);
// 10. Casting Lines (The line casts themselves will log hits)
CastLine(SoundLeft, ListenerLeft);
CastLine(SoundLeft, listener);
CastLine(SoundLeft, ListenerRight);
@ -143,6 +142,7 @@ public class FirstPersonOcclusion : MonoBehaviour
private void CastLine(Vector3 Start, Vector3 End)
{
RaycastHit hit;
// 11. Raycast result
bool isHit = Physics.Linecast(Start, End, out hit, OcclusionLayer);
if (isHit)
@ -159,6 +159,7 @@ public class FirstPersonOcclusion : MonoBehaviour
private void SetParameter()
{
float occlusionValue = lineCastHitCount / 11;
// 12. Final Parameter Value
AudioOccluded.setParameterByName("Occlusion", occlusionValue);
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
DeltaVRFMOD/Assets/KosmoseTaust.wav (Stored with Git LFS) Normal file

Binary file not shown.

BIN
DeltaVRFMOD/Assets/KosmoseTaust_layer2.wav (Stored with Git LFS) Normal file

Binary file not shown.

BIN
DeltaVRFMOD/Assets/KosmoseTaust_layer3.wav (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<objects serializationModel="Studio.02.03.00">
<object class="AudioFile" id="{55eaea09-18f2-47ac-aeaf-925c372afb16}">
<property name="assetPath">
<value>KosmoseTaust_layer3.wav</value>
</property>
<property name="isStreaming">
<value>true</value>
</property>
<property name="frequencyInKHz">
<value>96</value>
</property>
<property name="channelCount">
<value>2</value>
</property>
<property name="length">
<value>64</value>
</property>
<relationship name="masterAssetFolder">
<destination>{0fbc34f9-6022-42da-8b3b-f18344a8ea0f}</destination>
</relationship>
</object>
</objects>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<objects serializationModel="Studio.02.03.00">
<object class="AudioFile" id="{696c9935-594e-405d-b153-12f9ffd1ab9d}">
<property name="assetPath">
<value>KosmoseTaust.wav</value>
</property>
<property name="isStreaming">
<value>true</value>
</property>
<property name="frequencyInKHz">
<value>96</value>
</property>
<property name="channelCount">
<value>2</value>
</property>
<property name="length">
<value>64</value>
</property>
<relationship name="masterAssetFolder">
<destination>{0fbc34f9-6022-42da-8b3b-f18344a8ea0f}</destination>
</relationship>
</object>
</objects>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<objects serializationModel="Studio.02.03.00">
<object class="AudioFile" id="{aa0fd6ae-7de5-4065-8fcb-ffaef68b82a7}">
<property name="assetPath">
<value>KosmoseTaust_layer2.wav</value>
</property>
<property name="isStreaming">
<value>true</value>
</property>
<property name="frequencyInKHz">
<value>96</value>
</property>
<property name="channelCount">
<value>2</value>
</property>
<property name="length">
<value>64</value>
</property>
<relationship name="masterAssetFolder">
<destination>{0fbc34f9-6022-42da-8b3b-f18344a8ea0f}</destination>
</relationship>
</object>
</objects>

View File

@ -0,0 +1,550 @@
<?xml version="1.0" encoding="UTF-8"?>
<objects serializationModel="Studio.02.03.00">
<object class="Event" id="{58706c2f-6a9a-4b01-9f11-b2a4c3e89fae}">
<property name="name">
<value>Kosmos</value>
</property>
<property name="outputFormat">
<value>1</value>
</property>
<relationship name="folder">
<destination>{2e7ede82-ed6a-451f-aa9c-f422e9f68bb0}</destination>
</relationship>
<relationship name="mixer">
<destination>{a39bf19c-6501-4315-8437-48cf9e91e99b}</destination>
</relationship>
<relationship name="masterTrack">
<destination>{06de9361-efec-451e-85ee-143b87e55d23}</destination>
</relationship>
<relationship name="mixerInput">
<destination>{ae63f95d-ec73-4b13-84a0-4382829a782c}</destination>
</relationship>
<relationship name="automatableProperties">
<destination>{842ebe5f-205f-4fdd-a8f5-bf4e3723b9bd}</destination>
</relationship>
<relationship name="markerTracks">
<destination>{219265f7-03d7-4dee-b728-8c31ea407997}</destination>
</relationship>
<relationship name="groupTracks">
<destination>{60281e21-4257-42bd-869e-7236dff10ba6}</destination>
<destination>{ab04af5d-d29f-449a-a176-c811ba002da5}</destination>
<destination>{9338a628-fb11-4cf7-8dbe-0133ecd98489}</destination>
</relationship>
<relationship name="timeline">
<destination>{69005050-34e5-48b1-9092-b976166a4a15}</destination>
</relationship>
<relationship name="parameters">
<destination>{f8958c03-a073-4cbd-a011-92c9834cd033}</destination>
</relationship>
<relationship name="banks">
<destination>{ee5d6de3-8177-4297-9ba1-9f170e5f4cf9}</destination>
</relationship>
</object>
<object class="EventMixer" id="{a39bf19c-6501-4315-8437-48cf9e91e99b}">
<relationship name="masterBus">
<destination>{a83669f0-c5fa-4b43-9ca2-6866854621dd}</destination>
</relationship>
</object>
<object class="MasterTrack" id="{06de9361-efec-451e-85ee-143b87e55d23}">
<relationship name="automationTracks">
<destination>{8dfb04ad-4919-4f48-bb2b-d7c4ebec5c7a}</destination>
</relationship>
<relationship name="modules">
<destination>{893f5e51-4249-4f16-b8cb-86dda6700de7}</destination>
<destination>{4384709c-ec9d-418d-9130-26f1689913b6}</destination>
</relationship>
<relationship name="mixerGroup">
<destination>{a83669f0-c5fa-4b43-9ca2-6866854621dd}</destination>
</relationship>
</object>
<object class="MixerInput" id="{ae63f95d-ec73-4b13-84a0-4382829a782c}">
<relationship name="effectChain">
<destination>{461d6e75-1808-4454-bc61-ab674f8cd5be}</destination>
</relationship>
<relationship name="panner">
<destination>{fd6e8fb7-b41e-4ba6-b7f8-a3b78dfe2a0f}</destination>
</relationship>
<relationship name="output">
<destination>{c751273e-6b77-46b1-8c19-a99f6f08e61e}</destination>
</relationship>
</object>
<object class="EventAutomatableProperties" id="{842ebe5f-205f-4fdd-a8f5-bf4e3723b9bd}" />
<object class="MarkerTrack" id="{219265f7-03d7-4dee-b728-8c31ea407997}" />
<object class="GroupTrack" id="{60281e21-4257-42bd-869e-7236dff10ba6}">
<relationship name="modules">
<destination>{22bb83e7-4fa9-4e64-95f6-dad3a6f74645}</destination>
<destination>{18ec4542-88b4-4ff4-b127-9a90d7155ff3}</destination>
<destination>{23b73b39-d843-42fb-803f-9f57fac7f592}</destination>
</relationship>
<relationship name="mixerGroup">
<destination>{ed4ccff9-2472-4ee9-b905-1dbf578e03f8}</destination>
</relationship>
</object>
<object class="GroupTrack" id="{ab04af5d-d29f-449a-a176-c811ba002da5}">
<relationship name="modules">
<destination>{a3005e56-a99e-49a8-bd3e-20ec20333888}</destination>
<destination>{f561ce32-7b58-4ad3-9fea-1eed198bacd2}</destination>
<destination>{d5f07acf-2e70-48cd-aff2-cab5c29b5ede}</destination>
</relationship>
<relationship name="mixerGroup">
<destination>{b2e5f40f-ea56-4a2a-9c6d-4240cde3c95e}</destination>
</relationship>
</object>
<object class="GroupTrack" id="{9338a628-fb11-4cf7-8dbe-0133ecd98489}">
<relationship name="modules">
<destination>{47172437-a5b2-4485-a32d-545a0610a1aa}</destination>
<destination>{19c9e0e5-c01c-4ec9-a6af-4d9499b96bc6}</destination>
<destination>{a635ba32-07ce-4947-bb41-1aa9cbc9d085}</destination>
</relationship>
<relationship name="mixerGroup">
<destination>{8a3a8edb-b5dd-443f-9fae-ddd4e4e3a707}</destination>
</relationship>
</object>
<object class="Timeline" id="{69005050-34e5-48b1-9092-b976166a4a15}">
<relationship name="modules">
<destination>{22bb83e7-4fa9-4e64-95f6-dad3a6f74645}</destination>
<destination>{a3005e56-a99e-49a8-bd3e-20ec20333888}</destination>
<destination>{47172437-a5b2-4485-a32d-545a0610a1aa}</destination>
</relationship>
<relationship name="markers">
<destination>{62aef853-a04d-47b3-9bc3-e0e6704b75a6}</destination>
</relationship>
</object>
<object class="ParameterProxy" id="{f8958c03-a073-4cbd-a011-92c9834cd033}">
<relationship name="preset">
<destination>{a0e218f5-bd0f-4327-a6e8-3aa4f23990af}</destination>
</relationship>
</object>
<object class="EventMixerMaster" id="{a83669f0-c5fa-4b43-9ca2-6866854621dd}">
<property name="volume">
<value>-74</value>
</property>
<relationship name="automators">
<destination>{702c4553-3917-45f2-843c-1814112fb14c}</destination>
</relationship>
<relationship name="effectChain">
<destination>{13138e0b-6725-440a-a8cb-a35b440756ed}</destination>
</relationship>
<relationship name="panner">
<destination>{5a0153c5-3618-44cd-8d09-36be25688ff0}</destination>
</relationship>
<relationship name="mixer">
<destination>{a39bf19c-6501-4315-8437-48cf9e91e99b}</destination>
</relationship>
</object>
<object class="AutomationTrack" id="{8dfb04ad-4919-4f48-bb2b-d7c4ebec5c7a}">
<relationship name="automator">
<destination>{702c4553-3917-45f2-843c-1814112fb14c}</destination>
</relationship>
</object>
<object class="TransitionSourceSound" id="{893f5e51-4249-4f16-b8cb-86dda6700de7}">
<property name="length">
<value>0</value>
</property>
</object>
<object class="TransitionDestinationSound" id="{4384709c-ec9d-418d-9130-26f1689913b6}">
<property name="start">
<value>0.55000000000000004</value>
</property>
<property name="length">
<value>0</value>
</property>
</object>
<object class="MixerBusEffectChain" id="{461d6e75-1808-4454-bc61-ab674f8cd5be}">
<relationship name="effects">
<destination>{eb7b0211-040f-4a2f-9b52-3d957cc57335}</destination>
</relationship>
</object>
<object class="MixerBusPanner" id="{fd6e8fb7-b41e-4ba6-b7f8-a3b78dfe2a0f}" />
<object class="SingleSound" id="{22bb83e7-4fa9-4e64-95f6-dad3a6f74645}">
<property name="length">
<value>64</value>
</property>
<relationship name="audioFile">
<destination>{696c9935-594e-405d-b153-12f9ffd1ab9d}</destination>
</relationship>
</object>
<object class="TransitionSourceSound" id="{18ec4542-88b4-4ff4-b127-9a90d7155ff3}">
<property name="length">
<value>0.55000000000000004</value>
</property>
<relationship name="fadeOutCurve">
<destination>{f72262e6-f649-4e28-8d00-9714b91dc0ee}</destination>
</relationship>
</object>
<object class="TransitionDestinationSound" id="{23b73b39-d843-42fb-803f-9f57fac7f592}">
<property name="length">
<value>0.55000000000000004</value>
</property>
<relationship name="fadeInCurve">
<destination>{21098800-f378-468f-b421-0227eb80c367}</destination>
</relationship>
</object>
<object class="EventMixerGroup" id="{ed4ccff9-2472-4ee9-b905-1dbf578e03f8}">
<property name="name">
<value>Audio 1</value>
</property>
<relationship name="effectChain">
<destination>{9b44f07e-0868-4c16-8ca1-421882c840ba}</destination>
</relationship>
<relationship name="panner">
<destination>{44a0480c-4747-4218-88e2-1d772aa28cdf}</destination>
</relationship>
<relationship name="output">
<destination>{a83669f0-c5fa-4b43-9ca2-6866854621dd}</destination>
</relationship>
</object>
<object class="SingleSound" id="{a3005e56-a99e-49a8-bd3e-20ec20333888}">
<property name="length">
<value>64</value>
</property>
<relationship name="audioFile">
<destination>{aa0fd6ae-7de5-4065-8fcb-ffaef68b82a7}</destination>
</relationship>
</object>
<object class="TransitionSourceSound" id="{f561ce32-7b58-4ad3-9fea-1eed198bacd2}">
<property name="length">
<value>0.55000000000000004</value>
</property>
<relationship name="fadeOutCurve">
<destination>{b7a844ed-bc75-4b61-aa1c-a074426607ed}</destination>
</relationship>
</object>
<object class="TransitionDestinationSound" id="{d5f07acf-2e70-48cd-aff2-cab5c29b5ede}">
<property name="length">
<value>0.54999999999999993</value>
</property>
<relationship name="fadeInCurve">
<destination>{a6ac4808-b68e-4557-8401-52dd96bf8976}</destination>
</relationship>
</object>
<object class="EventMixerGroup" id="{b2e5f40f-ea56-4a2a-9c6d-4240cde3c95e}">
<property name="name">
<value>Audio 2</value>
</property>
<relationship name="effectChain">
<destination>{82f8a65c-3d1a-45b6-aea8-bafadbdc5cc2}</destination>
</relationship>
<relationship name="panner">
<destination>{1a7321b5-8f9c-4c48-9376-9cbeab6eaa4f}</destination>
</relationship>
<relationship name="output">
<destination>{a83669f0-c5fa-4b43-9ca2-6866854621dd}</destination>
</relationship>
</object>
<object class="SingleSound" id="{47172437-a5b2-4485-a32d-545a0610a1aa}">
<property name="length">
<value>64</value>
</property>
<property name="pitch">
<value>-1.80000007</value>
</property>
<relationship name="audioFile">
<destination>{55eaea09-18f2-47ac-aeaf-925c372afb16}</destination>
</relationship>
</object>
<object class="TransitionSourceSound" id="{19c9e0e5-c01c-4ec9-a6af-4d9499b96bc6}">
<property name="length">
<value>0.15000000000000002</value>
</property>
<relationship name="fadeOutCurve">
<destination>{86512017-43a0-444a-bf1e-bf9e0cd3c9e2}</destination>
</relationship>
</object>
<object class="TransitionDestinationSound" id="{a635ba32-07ce-4947-bb41-1aa9cbc9d085}">
<property name="start">
<value>0.35000000000000003</value>
</property>
<property name="length">
<value>0.20000000000000034</value>
</property>
<relationship name="fadeInCurve">
<destination>{40803f40-cdd3-4d97-aa01-897535ff25ba}</destination>
</relationship>
</object>
<object class="EventMixerGroup" id="{8a3a8edb-b5dd-443f-9fae-ddd4e4e3a707}">
<property name="volume">
<value>-2.5</value>
</property>
<property name="name">
<value>Audio 3</value>
</property>
<relationship name="effectChain">
<destination>{eb27a922-ee96-4dc5-9f70-6bfc876713e8}</destination>
</relationship>
<relationship name="panner">
<destination>{6f38baec-dd90-403f-8345-7fa61b2e7c47}</destination>
</relationship>
<relationship name="output">
<destination>{a83669f0-c5fa-4b43-9ca2-6866854621dd}</destination>
</relationship>
</object>
<object class="LoopRegion" id="{62aef853-a04d-47b3-9bc3-e0e6704b75a6}">
<property name="position">
<value>0</value>
</property>
<property name="length">
<value>63.450000000000003</value>
</property>
<relationship name="timeline">
<destination>{69005050-34e5-48b1-9092-b976166a4a15}</destination>
</relationship>
<relationship name="markerTrack">
<destination>{219265f7-03d7-4dee-b728-8c31ea407997}</destination>
</relationship>
<relationship name="transitionTimeline">
<destination>{f8823e63-06ae-46dd-9be6-c71db4431c7b}</destination>
</relationship>
</object>
<object class="Automator" id="{702c4553-3917-45f2-843c-1814112fb14c}">
<property name="nameOfPropertyBeingAutomated">
<value>volume</value>
</property>
<relationship name="automationCurves">
<destination>{40e87132-5547-4855-9262-239618750479}</destination>
</relationship>
</object>
<object class="MixerBusEffectChain" id="{13138e0b-6725-440a-a8cb-a35b440756ed}">
<relationship name="effects">
<destination>{803f5d3e-5f9d-4496-a907-282bf2a4201b}</destination>
</relationship>
</object>
<object class="MixerBusPanner" id="{5a0153c5-3618-44cd-8d09-36be25688ff0}" />
<object class="MixerBusFader" id="{eb7b0211-040f-4a2f-9b52-3d957cc57335}" />
<object class="TransitionSourceFadeOutCurve" id="{f72262e6-f649-4e28-8d00-9714b91dc0ee}">
<relationship name="startPoint">
<destination>{e4a95628-0a46-4ef9-8851-3fc11574336b}</destination>
</relationship>
<relationship name="endPoint">
<destination>{dd37e928-2389-429e-a97b-37a6bfcff540}</destination>
</relationship>
<relationship name="relatedModule">
<destination>{23b73b39-d843-42fb-803f-9f57fac7f592}</destination>
</relationship>
</object>
<object class="TransitionDestinationFadeInCurve" id="{21098800-f378-468f-b421-0227eb80c367}">
<relationship name="startPoint">
<destination>{b3f8905a-28a2-4633-a9f7-3a1f1d9ef36b}</destination>
</relationship>
<relationship name="endPoint">
<destination>{019dd326-a6c7-4b6b-aa44-c745fe0eeb00}</destination>
</relationship>
<relationship name="relatedModule">
<destination>{18ec4542-88b4-4ff4-b127-9a90d7155ff3}</destination>
</relationship>
</object>
<object class="MixerBusEffectChain" id="{9b44f07e-0868-4c16-8ca1-421882c840ba}">
<relationship name="effects">
<destination>{3a825381-6763-4f29-abac-ff30aa6cd0a1}</destination>
</relationship>
</object>
<object class="MixerBusPanner" id="{44a0480c-4747-4218-88e2-1d772aa28cdf}" />
<object class="TransitionSourceFadeOutCurve" id="{b7a844ed-bc75-4b61-aa1c-a074426607ed}">
<relationship name="startPoint">
<destination>{a6df83fb-08c1-4d62-aa14-af49153159a8}</destination>
</relationship>
<relationship name="endPoint">
<destination>{24e3cbe6-da32-4767-9abe-c87c4143faaa}</destination>
</relationship>
<relationship name="relatedModule">
<destination>{d5f07acf-2e70-48cd-aff2-cab5c29b5ede}</destination>
</relationship>
</object>
<object class="TransitionDestinationFadeInCurve" id="{a6ac4808-b68e-4557-8401-52dd96bf8976}">
<relationship name="startPoint">
<destination>{201ce2ce-26bb-4503-b50a-b4e99d7dbe20}</destination>
</relationship>
<relationship name="endPoint">
<destination>{bb57c997-4a4d-4435-8a54-535d26ce3ae8}</destination>
</relationship>
<relationship name="relatedModule">
<destination>{f561ce32-7b58-4ad3-9fea-1eed198bacd2}</destination>
</relationship>
</object>
<object class="MixerBusEffectChain" id="{82f8a65c-3d1a-45b6-aea8-bafadbdc5cc2}">
<relationship name="effects">
<destination>{51ec92e7-623a-428c-883a-3e442d94d557}</destination>
</relationship>
</object>
<object class="MixerBusPanner" id="{1a7321b5-8f9c-4c48-9376-9cbeab6eaa4f}" />
<object class="TransitionSourceFadeOutCurve" id="{86512017-43a0-444a-bf1e-bf9e0cd3c9e2}">
<relationship name="startPoint">
<destination>{7680bcd4-395f-4038-bb46-288a723cfaa4}</destination>
</relationship>
<relationship name="endPoint">
<destination>{e0126d92-e13e-402f-bfb0-c5b8e2f854f2}</destination>
</relationship>
</object>
<object class="TransitionDestinationFadeInCurve" id="{40803f40-cdd3-4d97-aa01-897535ff25ba}">
<relationship name="startPoint">
<destination>{03034751-8e70-4600-9226-bbff6c5006b8}</destination>
</relationship>
<relationship name="endPoint">
<destination>{be34ae1e-1ac8-4f03-b91d-33c1c6f12d75}</destination>
</relationship>
</object>
<object class="MixerBusEffectChain" id="{eb27a922-ee96-4dc5-9f70-6bfc876713e8}">
<relationship name="effects">
<destination>{2af4c71f-709e-4e6d-ad5e-3d74db71b2ac}</destination>
</relationship>
</object>
<object class="MixerBusPanner" id="{6f38baec-dd90-403f-8345-7fa61b2e7c47}" />
<object class="TransitionTimeline" id="{f8823e63-06ae-46dd-9be6-c71db4431c7b}">
<property name="length">
<value>0.55000000000000004</value>
</property>
<relationship name="modules">
<destination>{18ec4542-88b4-4ff4-b127-9a90d7155ff3}</destination>
<destination>{23b73b39-d843-42fb-803f-9f57fac7f592}</destination>
<destination>{f561ce32-7b58-4ad3-9fea-1eed198bacd2}</destination>
<destination>{d5f07acf-2e70-48cd-aff2-cab5c29b5ede}</destination>
<destination>{19c9e0e5-c01c-4ec9-a6af-4d9499b96bc6}</destination>
<destination>{a635ba32-07ce-4947-bb41-1aa9cbc9d085}</destination>
<destination>{893f5e51-4249-4f16-b8cb-86dda6700de7}</destination>
<destination>{4384709c-ec9d-418d-9130-26f1689913b6}</destination>
</relationship>
</object>
<object class="AutomationCurve" id="{40e87132-5547-4855-9262-239618750479}">
<relationship name="parameter">
<destination>{a0e218f5-bd0f-4327-a6e8-3aa4f23990af}</destination>
</relationship>
<relationship name="automationPoints">
<destination>{0bfe7cc9-59e2-4fa6-b137-a105c2359106}</destination>
<destination>{744b083e-7c2d-465c-954e-fc7cc6af759b}</destination>
</relationship>
</object>
<object class="MixerBusFader" id="{803f5d3e-5f9d-4496-a907-282bf2a4201b}" />
<object class="AutomationPoint" id="{e4a95628-0a46-4ef9-8851-3fc11574336b}">
<property name="position">
<value>0</value>
</property>
<property name="value">
<value>1</value>
</property>
<property name="curveShape">
<value>0.28843534</value>
</property>
</object>
<object class="AutomationPoint" id="{dd37e928-2389-429e-a97b-37a6bfcff540}">
<property name="position">
<value>0.55000000000000004</value>
</property>
<property name="value">
<value>0</value>
</property>
</object>
<object class="AutomationPoint" id="{b3f8905a-28a2-4633-a9f7-3a1f1d9ef36b}">
<property name="position">
<value>0</value>
</property>
<property name="value">
<value>0</value>
</property>
<property name="curveShape">
<value>-0.806102395</value>
</property>
</object>
<object class="AutomationPoint" id="{019dd326-a6c7-4b6b-aa44-c745fe0eeb00}">
<property name="position">
<value>0.55000000000000004</value>
</property>
<property name="value">
<value>1</value>
</property>
</object>
<object class="MixerBusFader" id="{3a825381-6763-4f29-abac-ff30aa6cd0a1}" />
<object class="AutomationPoint" id="{a6df83fb-08c1-4d62-aa14-af49153159a8}">
<property name="position">
<value>0</value>
</property>
<property name="value">
<value>1</value>
</property>
<property name="curveShape">
<value>0.213088736</value>
</property>
</object>
<object class="AutomationPoint" id="{24e3cbe6-da32-4767-9abe-c87c4143faaa}">
<property name="position">
<value>0.55000000000000004</value>
</property>
<property name="value">
<value>0</value>
</property>
</object>
<object class="AutomationPoint" id="{201ce2ce-26bb-4503-b50a-b4e99d7dbe20}">
<property name="position">
<value>0</value>
</property>
<property name="value">
<value>0</value>
</property>
<property name="curveShape">
<value>-0.685745656</value>
</property>
</object>
<object class="AutomationPoint" id="{bb57c997-4a4d-4435-8a54-535d26ce3ae8}">
<property name="position">
<value>0.54999999999999993</value>
</property>
<property name="value">
<value>1</value>
</property>
</object>
<object class="MixerBusFader" id="{51ec92e7-623a-428c-883a-3e442d94d557}" />
<object class="AutomationPoint" id="{7680bcd4-395f-4038-bb46-288a723cfaa4}">
<property name="position">
<value>0</value>
</property>
<property name="value">
<value>1</value>
</property>
<property name="curveShape">
<value>-1.00000048</value>
</property>
</object>
<object class="AutomationPoint" id="{e0126d92-e13e-402f-bfb0-c5b8e2f854f2}">
<property name="position">
<value>0.15000000000000002</value>
</property>
<property name="value">
<value>0</value>
</property>
</object>
<object class="AutomationPoint" id="{03034751-8e70-4600-9226-bbff6c5006b8}">
<property name="position">
<value>0.35000000000000003</value>
</property>
<property name="value">
<value>0</value>
</property>
<property name="curveShape">
<value>1</value>
</property>
</object>
<object class="AutomationPoint" id="{be34ae1e-1ac8-4f03-b91d-33c1c6f12d75}">
<property name="position">
<value>0.55000000000000004</value>
</property>
<property name="value">
<value>1</value>
</property>
</object>
<object class="MixerBusFader" id="{2af4c71f-709e-4e6d-ad5e-3d74db71b2ac}" />
<object class="AutomationPoint" id="{0bfe7cc9-59e2-4fa6-b137-a105c2359106}">
<property name="position">
<value>0</value>
</property>
<property name="value">
<value>-9</value>
</property>
</object>
<object class="AutomationPoint" id="{744b083e-7c2d-465c-954e-fc7cc6af759b}">
<property name="position">
<value>1</value>
</property>
<property name="value">
<value>-80</value>
</property>
</object>
</objects>

View File

@ -98,7 +98,7 @@
</object>
<object class="EventMixerGroup" id="{11c59dfd-3b93-4ee1-9357-d0bec479e62f}">
<property name="volume">
<value>2.5</value>
<value>1.5</value>
</property>
<property name="name">
<value>Audio 1</value>

View File

@ -97,6 +97,9 @@
</relationship>
</object>
<object class="EventMixerGroup" id="{e2339761-aa88-426a-b59b-bca87118f569}">
<property name="volume">
<value>-6</value>
</property>
<property name="name">
<value>Audio 1</value>
</property>

View File

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<objects serializationModel="Studio.02.03.00">
<object class="ParameterPreset" id="{e93048b7-c7f8-4c1a-aec8-b1903abab7a8}">
<property name="name">
<value>KosmosMusicVolume</value>
</property>
<relationship name="folder">
<destination>{72821a40-1f9b-449e-9f29-45c4d8800c81}</destination>
</relationship>
<relationship name="parameter">
<destination>{a0e218f5-bd0f-4327-a6e8-3aa4f23990af}</destination>
</relationship>
</object>
<object class="GameParameter" id="{a0e218f5-bd0f-4327-a6e8-3aa4f23990af}">
<property name="initialValue">
<value>0</value>
</property>
<relationship name="modulators">
<destination>{468c7c51-1acd-44fe-bcc8-5853d339e591}</destination>
</relationship>
</object>
<object class="SeekModulator" id="{468c7c51-1acd-44fe-bcc8-5853d339e591}">
<property name="nameOfPropertyBeingModulated">
<value>cursorPosition</value>
</property>
<property name="speedAscending">
<value>1.3000000715255737</value>
</property>
</object>
</objects>