- Added docs/FMOD_MODIFICATION_GUIDE_PHASE3.md with step-by-step FMOD Studio instructions - Added tools/ExtractBanks.ps1 for automated bank extraction workflow - Covers voice limits, ducking, enemy indicator improvements in FMOD
6.2 KiB
6.2 KiB
Phase 3: FMOD Bank Modifications Guide
Overview
This phase covers extracting and modifying FMOD audio banks using FMOD Studio and AssetRipper.
Prerequisites:
- FMOD Studio 2.02.x installed (free from fmod.com)
- AssetRipper installed
- Game installed at:
C:\apps\steam\steamapps\common\Homura Hime\
Step 1: Extract FMOD Banks with AssetRipper
1.1 Launch AssetRipper
Location: C:\projects\HomuraHime-Mods\tools\AssetRipper\AssetRipper.exe
1.2 Load HomuraHime
- Click File → Load (or drag folder)
- Navigate to:
C:\apps\steam\steamapps\common\Homura Hime\HomuraHime_Data\ - Select the folder and click Open
1.3 Export Settings
- Click File → Export
- Choose Resources (not Asset Directories)
- Set output path:
C:\projects\HomuraHime-Mods\extracted_assets\
1.4 Locate FMOD Banks
After export, find banks at:
C:\projects\HomuraHime-Mods\extracted_assets\StreamingAssets\FMOD\Desktop\
Step 2: Open Banks in FMOD Studio
2.1 Launch FMOD Studio
Location: C:\Program Files\FMOD Studio\FMOD Studio.exe
2.2 Open Project (or Banks Directly)
Option A: If you have the original FMOD project (unlikely for commercial game):
- File → Open Project → Select
.fprojektfile
Option B: Open bank files directly:
- File → Open Bank → Select
Master.bankfrom the extracted folder - FMOD will automatically load related banks
2.3 Bank Organization
In FMOD Studio, you'll see:
- Events: Sound events (grouped by banks: SFX, Ambience, BGM, Voice)
- Audio Tables: Banks, VCA groups, snapshots
- Mixer: Master output with routing
Step 3: Voice Limit Improvements
3.1 Find Problematic Events
Search for events with high polyphony:
- In FMOD Studio, select SFX.bank in the Banks panel
- Look at event properties in the Inspector
- Check Maximum Instances ( polyphony)
3.2 Adjust Voice Aging
For events that cause glitches:
- Right-click event → Properties
- Go to Voices tab
- Settings to adjust:
Max Instances: 16 (from default 32) Voice Stealing: Steal Oldest Voice Aging: 1.0 seconds (faster cleanup)
3.3 Key Events to Check
In SFX.bank:
- Attack impact sounds (often triggered rapidly)
- Footstep/landing sounds (PreLoad banks)
- Enemy alert/warning sounds
- UI feedback sounds
Step 4: Audio Ducking Improvements
4.1 Access Mixer
- Click Mixer tab in FMOD Studio
- You'll see VCA groups and the Master bus
4.2 Configure Ducking Groups
Look for:
- Speech (Voice channel)
- SFX (Sound effects)
- Music (BGM)
4.3 Adjust Ducking Parameters
For the Master or speech bus:
- Right-click → Add Effect → Duck
- Configure:
Threshold: -20 dB (triggers at this volume) Rate: 100% (fade speed) Attack: 10 ms (fast attack) Release: 200 ms (slower release)
4.4 Create/Modify Snapshots
Snapshots control ducking behavior:
- In the Audio Tables panel, select Snapshots
- Find existing battle/start snapshots
- Modify duck amounts:
Music Duck Amount: -12 dB (not too aggressive) SFX Duck Amount: -6 dB
Step 5: Enemy Behavior Indicator Improvements
5.1 Locate Enemy Audio Events
In Ambience.bank:
enemy_idle_loop- Enemy ambient when not engagedenemy_alert- Enemy noticing playerenemy_chase- Enemy pursuing
In SFX.bank:
- Attack indicator sounds
- Danger/warning cues
5.2 Increase Volume on Behavior Sounds
- Find enemy-related events
- Select the event → Inspector
- Volume slider: Increase by 3-6 dB
Before: 0.0 dB After: +3.0 dB to +6.0 dB
5.3 Add Pitch Variation
For more distinct enemy states:
- Select enemy event (e.g., alert)
- Add Pitch automation or randomizer
- Set variation:
Center: 0 semitones Range: ±2 semitones random
5.4 Add 3D Positioning
For directional audio:
- Select event → 3D checkbox
- Configure:
Min Distance: 1.0 m Max Distance: 20.0 m Rolloff: Linear - This makes enemy sounds come from their position
5.5 Create State Layers
For distinct enemy behavior indicators, add parameters:
- Right-click event → Add Parameter
- Name:
EnemyState - Values:
0=Idle, 1=Alert, 2=Attacking - Add automation for volume/effect per state
Step 6: Reimport Modified Banks
6.1 Save Changes
- In FMOD Studio: File → Save
- Banks will auto-update in the project folder
6.2 Export Banks
- File → Export → banks
- Choose the extracted
Desktop\folder - Confirm overwrite
6.3 Verify Export
Check that modified .bank files have new timestamps.
Step 7: Backup Original Banks
CRITICAL - Before testing:
mkdir "C:\projects\HomuraHime-Mods\backup_banks_original"
copy "C:\projects\HomuraHime-Mods\extracted_assets\StreamingAssets\FMOD\Desktop\*.bank"
"C:\projects\HomuraHime-Mods\backup_banks_original\"
File Locations Reference
Game Banks (Read-Only Backup)
C:\apps\steam\steamapps\common\Homura Hime\HomuraHime_Data\StreamingAssets\FMOD\Desktop\
Extracted for Editing
C:\projects\HomuraHime-Mods\extracted_assets\StreamingAssets\FMOD\Desktop\
Modified Banks (Copy to Game)
C:\projects\HomuraHime-Mods\modified_banks\FMOD\Desktop\
Backup Original
C:\projects\HomuraHime-Mods\backup_banks_original\
Banks to Prioritize
| Priority | Bank | Reason |
|---|---|---|
| HIGH | SFX.bank |
Contains attack/impact sounds that glitch |
| HIGH | Ambience.bank |
Enemy behavior indicators |
| MEDIUM | Master.bank |
Contains mixer and routing |
| MEDIUM | Voice.bank |
May need voice limit adjustments |
| LOW | BGM*.bank |
Background music - less critical |
Verification Checklist
After modifications:
- Banks export successfully from FMOD Studio
- New bank files are in
modified_banks\ - Original banks backed up
- Test game loads without FMOD errors
- Audio glitches reduced in combat
- Enemy indicators more audible
Next Steps
After completing FMOD modifications:
- Phase 4: BepInEx plugin deployment
- Phase 5: Testing and iteration
- Phase 6: Distribution