From bc2446b4e0d5b3461c3db0785236ad6ee3be5d89 Mon Sep 17 00:00:00 2001 From: Vitaly Popuzin Date: Fri, 13 Mar 2026 18:48:05 +0100 Subject: [PATCH 1/3] Audio effect zone component --- .../sdk/components/audio_effect_zone.proto | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 proto/decentraland/sdk/components/audio_effect_zone.proto diff --git a/proto/decentraland/sdk/components/audio_effect_zone.proto b/proto/decentraland/sdk/components/audio_effect_zone.proto new file mode 100644 index 00000000..fe59df30 --- /dev/null +++ b/proto/decentraland/sdk/components/audio_effect_zone.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; + +package decentraland.sdk.components; + +import "decentraland/sdk/components/common/id.proto"; +import "decentraland/common/vectors.proto"; + +option (common.ecs_component_id) = 1073; + +// The AudioEffectZone component can be attached to an Entity to define a region of space +// where audio effects are applied to sound sources (avatars, AudioSource) inside the zone. +// +// The Entity's Transform position determines the center-point of the region, while its size +// is given as a vector in the `area` property below. The Transform rotation is applied, but +// the scale is ignored. + +message PBAudioEffectZone { + decentraland.common.Vector3 area = 1; // The 3D size of the effect region. + + oneof effect { + SilenceEffect silence = 10; + } + + message SilenceEffect {} // Mutes all audio sources inside the zone. +} From ad565b8189999c854155bd3c21150bcf1f2db7fa Mon Sep 17 00:00:00 2001 From: Vitaly Popuzin Date: Fri, 13 Mar 2026 18:48:05 +0100 Subject: [PATCH 2/3] Audio effect zone component --- .../sdk/components/audio_effect_zone.proto | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 proto/decentraland/sdk/components/audio_effect_zone.proto diff --git a/proto/decentraland/sdk/components/audio_effect_zone.proto b/proto/decentraland/sdk/components/audio_effect_zone.proto new file mode 100644 index 00000000..fe59df30 --- /dev/null +++ b/proto/decentraland/sdk/components/audio_effect_zone.proto @@ -0,0 +1,25 @@ +syntax = "proto3"; + +package decentraland.sdk.components; + +import "decentraland/sdk/components/common/id.proto"; +import "decentraland/common/vectors.proto"; + +option (common.ecs_component_id) = 1073; + +// The AudioEffectZone component can be attached to an Entity to define a region of space +// where audio effects are applied to sound sources (avatars, AudioSource) inside the zone. +// +// The Entity's Transform position determines the center-point of the region, while its size +// is given as a vector in the `area` property below. The Transform rotation is applied, but +// the scale is ignored. + +message PBAudioEffectZone { + decentraland.common.Vector3 area = 1; // The 3D size of the effect region. + + oneof effect { + SilenceEffect silence = 10; + } + + message SilenceEffect {} // Mutes all audio sources inside the zone. +} From f51c124258d23087571e4fab4399a7ff4ba895db Mon Sep 17 00:00:00 2001 From: Vitaly Popuzin Date: Wed, 18 Mar 2026 18:50:29 +0100 Subject: [PATCH 3/3] extending proto --- .../sdk/components/audio_effect_zone.proto | 37 +++++++++++++++++-- 1 file changed, 34 insertions(+), 3 deletions(-) diff --git a/proto/decentraland/sdk/components/audio_effect_zone.proto b/proto/decentraland/sdk/components/audio_effect_zone.proto index fe59df30..11ea50c0 100644 --- a/proto/decentraland/sdk/components/audio_effect_zone.proto +++ b/proto/decentraland/sdk/components/audio_effect_zone.proto @@ -5,7 +5,7 @@ package decentraland.sdk.components; import "decentraland/sdk/components/common/id.proto"; import "decentraland/common/vectors.proto"; -option (common.ecs_component_id) = 1073; +option (common.ecs_component_id) = 1217; // The AudioEffectZone component can be attached to an Entity to define a region of space // where audio effects are applied to sound sources (avatars, AudioSource) inside the zone. @@ -16,10 +16,41 @@ option (common.ecs_component_id) = 1073; message PBAudioEffectZone { decentraland.common.Vector3 area = 1; // The 3D size of the effect region. - + oneof effect { SilenceEffect silence = 10; + DeSpatializationEffect despatialize = 11; + AmplificationEffect amplify = 12; + ReverbEffect reverb = 13; + EchoEffect echo = 14; + } + + // All audio sources will be muted while Listener is in zone. + message SilenceEffect { + optional string exclude_ids = 1; + } + + message DeSpatializationEffect {} // Removes spatialization of the audio source inside. + + message AmplificationEffect { + optional float volume_multiplier = 1; // default 2.0 + optional float distance_multiplier = 2; // default 2.0 + } + + message EchoEffect {} + + message ReverbEffect { + optional ReverbPreset preset = 1; } - message SilenceEffect {} // Mutes all audio sources inside the zone. + message PitchEffect { + optional float amount = 1; // default 2.0 + } + + enum ReverbPreset { + RP_ROOM = 0; + RP_ARENA = 1; + RP_CAVE = 2; + RP_AUDITOTRIUM = 3; + } }