Guidance / Manual
Best Practices
11.1 Project Organization
Recommended Folder Structure:
Assets/Audio/
├── Resources/Audio/
│ ├── Events/
│ │ ├── UI/
│ │ ├── Player/
│ │ ├── Enemies/
│ │ ├── Ambience/
│ │ └── Music/
│ └── States/
│ ├── Gameplay/
│ └── Location/
├── Containers/
│ ├── UI/
│ ├── Footsteps/
│ ├── Weapons/
│ ├── Impacts/
│ ├── Ambience/
│ └── Music/
├── Buses/
└── AudioClips/
├── SFX/
│ ├── UI/
│ ├── Footsteps/
│ └── Weapons/
├── Music/
└── VO/
11.2 Naming Conventions
Containers:
Format: Category_Description_Type
Examples:
Weapon_RifleShot_RnC (Random Container)
UI_ButtonClick_RC (Routing Container)
Music_MainTheme_BC (Blend Container)
Footsteps_Switch_SwC (Switch Container)
Alarm_Sequence_SeqC (Sequence Container)
Events:
Format: Action_Description
Examples:
Play_WeaponRifleShot
Play_UIButtonClick
Start_MusicMainTheme
Trigger_DuckForDialogue
Set_StateUnderwater
Buses:
Format: Category_Bus or Category_Subcategory_Bus
Examples:
Master_Bus
SFX_Bus
SFX_Weapons_Bus
Music_Bus
Dialogue_Bus
11.3 Bus Hierarchy Design
Typical Structure:
Master (-3 dB)
├── SFX (0 dB)
│ ├── Player (0 dB)
│ │ ├── Footsteps (-6 dB)
│ │ └── Weapons (0 dB)
│ ├── Enemies (-3 dB)
│ ├── UI (0 dB)
│ └── Ambience (-6 dB)
├── Music (-6 dB)
│ ├── Gameplay (0 dB)
│ └── Menu (-3 dB)
├── Dialogue (0 dB)
└── VO (-3 dB)
Guidelines:
- 3-4 levels max - Don’t over-complicate
- Leave headroom - Master at -3 to -6 dB
- Group by function - Not by asset type
- Plan for ducking - Dialogue should duck Music/SFX
11.4 Container Design
Variation Counts:
Footsteps: 6-8 variations minimum
Weapon fire: 3-5 variations
Impacts: 4-6 per material
Voice lines: 10+ (more is better)
UI clicks: 2-3 variations
Randomization Guidelines:
Subtle:
Volume: ±1-2 dB
Pitch: ±50-100 cents
Use for: Footsteps, UI
Moderate:
Volume: ±3-4 dB
Pitch: ±100-200 cents
Use for: Weapons, impacts
Dramatic:
Volume: ±5-6 dB
Pitch: ±200-400 cents
Use for: Explosions, special effects
Repeat Avoidance:
Frequent sounds (footsteps): avoidRepeatLast = 2-3
Weapons: avoidRepeatLast = 1-2
Voice lines: avoidRepeatLast = 3-5
11.5 Event Design
Instance Limits:
Explosions: 5-10
Gunshots: 8-12
Footsteps: 4-6
UI clicks: 2-3
Dialogue: 1
Music: 1
Priority Assignment:
Critical (255):
- UI feedback
- Dialogue
- Tutorial VO
High (128):
- Player footsteps
- Player weapons
- Important pickups
Medium (64):
- Enemy sounds
- Environmental feedback
- Non-critical UI
Low (0):
- Distant ambience
- Background loops
- Decorative sounds
Cooldowns:
UI clicks: 0.05-0.1s
Footsteps: Usually handled by animation
Weapon fire: Usually handled by game logic
Repeated impacts: 0.05-0.1s
11.6 State Design
State Group Organization:
Location:
- Normal
- Underwater
- Cave
- Indoor
- Outdoor
GameplayState:
- Menu
- Playing
- Paused
- GameOver
CombatState:
- Calm
- Alert
- Combat
Transition Times:
Fast (0.1-0.3s):
- Pause/Unpause
- UI state changes
- Instant feedback
Medium (0.5-1.0s):
- Entering water
- Room changes
- Combat state changes
Slow (1.5-3.0s):
- Time of day
- Weather changes
- Gradual transitions
11.7 Common Pitfalls
DON’T:
❌ Post events every frame
// BAD
void Update()
{
if (isWalking)
footstepEvent.Post(); // Spam!
}
// GOOD
public void PlayFootstep() // Called from animation event
{
footstepEvent.Post();
}
❌ Forget instance limits
// Without maxInstances, this spams audio
for (int i = 0; i < 100; i++)
explosionEvent.Post();
❌ Over-use 3D spatialization
Use 2D for: UI, music, non-positional SFX
Use 3D for: Positioned sounds only
❌ Set all buses to 0 dB
Leaves no headroom → clipping when many sounds play
Always leave -3 to -6 dB on Master
❌ Ignore variation
Single clip footsteps → machine gun effect
Always use RandomContainer with 4+ clips
DO:
✅ Use cooldowns
Event cooldown prevents spam automatically
✅ Add variations
6-8 clips + randomization = natural sound
✅ Profile voice count
Monitor regularly, adjust maxInstances
✅ Organize assets
Consistent folder structure
Clear naming conventions
✅ Leave headroom
Master: -3 to -6 dB
Prevents clipping From the Pepper.SFX 3.1 guides (USER_GUIDE.md). Something wrong or unclear? Tell me.