선택 기록, 재생 슬롯 및 실제 파일을 통한 게임 사운드트랙 감사
요약
본 기사는 게임 사운드트랙의 후보작, 선택된 작곡물, 실제 파일 간의 불일치 문제를 분석합니다. 특히 18개의 BGM 슬롯과 17개 또는 19개의 오디오 파일을 비교하며, 이름(name)을 따라 재생 키(playback key)까지 추적하는 과정을 다룹니다.
핵심 포인트
- 게임 사운드트랙의 파일 참조와 실제 구현 간 불일치 분석
- BGM 슬롯과 오디오 파일 개수 간의 차이점 발견 (18개 vs 17~19개)
- Encounter ID와 BGM 키를 매핑하는 구조적 접근 방식 설명
사운드트랙 후보작, 선택된 작곡물, 저장된 파일, 그리고 재생 할당이 점진적으로 불일치합니다. 맵 음악을 교체할 경우 이전 파일이 스토리지에 남아 있을 수 있으며, 두 장면이 하나의 녹음을 공유할 수도 있습니다. '총 18개 트랙'이라는 언급은 무엇을 기준으로 카운트했는지 설명하지 못합니다.
VOLT NOMAD의 제작 노트와 코드를 비교한 결과, 17개의 개별 오디오 파일을 참조하는 18개의 BGM 슬롯이 발견되었습니다. 승리 진글까지 포함하면 총 18개의 참조 파일입니다. 하지만 오디오 디렉토리에는 19개가 들어있습니다.
본 기사는 선택 기록부터 재생 할당까지 추적합니다. 출처는 2026년 9월 11일에 검사된 game-jam-lab의 f074703입니다. 청취 비교나 음악 재생성은 수행되지 않았습니다.
구현된 할당과 분리된 선택 이유
음악 제작 브리프에는 목적, 제목, Suno 노래 ID, 선택된 A/B 후보작, 그리고 게임 파일이 기록되어 있습니다.
적(敵)별 확장 노트에 따르면 일부 초기 후보작은 너무 짧아서 고려 대상에서 제외되었다고 합니다. 트랙들은 지정된 길이로 재생성되었으며, 여전히 일찍 끝나는 후보작들에 대해서는 추가 시도가 있었습니다. 이 기록들은 초기 Relay Hydra A가 1:54이고 Grid Leech A가 2:34였다는 것을 보여줍니다.
이러한 길이는 역사적인 제작 기록입니다. 본 조사는 모든 Suno 후보작을 다시 검색하고 측정하지 않았습니다. 이는 그 당시 길이(duration)가 선택 기준이었음을 뒷받침하는 더 좁은 관찰에 해당합니다.
또한 이 역사는 5ab837b의 후보작 기록에서 적별 음악인 290d302로 진행됩니다. 이는 저장된 후보작과 구현 단계에 도달한 음악을 구별하는 데 도움이 됩니다.
이름(name)을 따라 재생 키(playback key)까지 추적하기
게임의 음악 코드(game's music code)는 서로 다른 역할을 하는 두 개의 딕셔너리를 포함하고 있습니다.
EncounterBGMKeys는 엔카운터 또는 폼 ID를 BGM 키에 매핑합니다. BGMStreams은 해당 키를 오디오 파일에 매핑합니다. 몇 가지 검사된 관계는 다음과 같습니다:
| Encounter ID | BGM key | Referenced file |
|---|---|---|
| gearmaw | hunt | piston_hunt_loop.ogg |
| ... | ||
다음 두 단계를 모두 거치는 것이 다르게 이름 붙여진 키를 사용하지 않는 작곡과 혼동하는 것을 방지합니다. Gearmaw 전용 트랙은 일반적인 키 hunt를 사용합니다. |
desired_bgm_key()가 실제 선택을 수행합니다. 열린 타이틀이나 갤러리, 평범한 전투 또는 보스 전투, 그리고 최종 보스 폼이 그 결과에 영향을 미칩니다. 딕셔너리 항목만으로는 의도된 장면이 도달할 수 있음을 확립하지 못합니다. 선택 분기 또한 검사되었지만, 이번 조사 동안 모든 장면을 플레이하지는 않았습니다.
18개의 슬롯, 17개의 BGM 파일, 진글이 포함된 18개의 파일
자동화된 딕셔너리 및 Git 추적 오디오 카운트는 다음과 같은 결과를 산출했습니다:
| Counted object | Count |
|---|---|
BGMStreams의 키 수 | 18 |
| ... | |
singularity와 ending_world 모두 arch_singularity.ogg를 사용합니다. 별도의 장면 슬롯이 두 개의 작곡을 생성하지는 않습니다. |
이전 지도 트랙인 subterranean_hunt.ogg는 저장되어 있지만, 검사된 BGM 딕셔너리의 참조 목록에는 없습니다. 현재 지도는 six_core_descent.mp3를 가리킵니다. 이는 교체 후 이전 트랙을 유지했음을 반영하며, 조사는 참조되지 않은 파일을 삭제하지 않았습니다.
제작 브리프의
ffprobe는 Git에서 추출된 19개의 오디오 파일을 검사했습니다. 모든 오디오 스트림은 48 kHz에 2채널이었습니다. 선택된 파일의 길이는 다음과 같습니다:
| File | ffprobe duration in seconds |
|---|---|
| blue_vault_pulse.ogg | 180.040000 |
| ... | |
| "3:00" 및 "0:13"은 제작 테이블의 반올림된 설명입니다. 이는 정확한 루프 지점이나 정지 시간이 아닙니다. 위의 값들 역시 ffprobe가 보고한 파일 길이일 뿐, 첫 번째와 마지막으로 들을 수 있는 소리를 측정한 값이 아닙니다. |
간략 기록들은 초기 트랙들을 약 -18 LUFS로 마스터링했습니다. 하지만 원본 WAV 파일은 이 저장소에 없습니다. 본 조사는 해당 마스터링 과정을 재현하지 않았으며, 현재 모든 트랙이 동일한 라우드니스(loudness)를 갖는지도 확인하지 못했습니다. 나중에 추가된 MP3 파일들은 동일한 처리를 거쳤다고 가정하지 않습니다.
청취 승인과 별개로 기록 루프 구성 유지
구현은 BGM 전환 시 Ogg 및 MP3에 대한 루핑을 가능하게 합니다:
if next_stream is AudioStreamOggVorbis:
(next_stream as AudioStreamOggVorbis).loop = true
elif next_stream is AudioStreamMP3:
...
Godot의 AudioStreamMP3 참조는 loop 속성을 문서화합니다. 이 코드는 반복을 요청하지만, 음악적 연속성(musical continuity)은 끝과 시작 사이의 별개의 문제입니다. 본 조사는 이어지는 소음(seam noise), 침묵, 또는 비트 불일치 여부를 청취하지 않았습니다.
두 개의 AudioStreamPlayer 인스턴스가 0.85초로 설정된 크로스페이드(crossfade)를 사용하여 씬 전환을 처리합니다. 짧은 승리 진글은 별도의 플레이어를 사용하며 전체 트랙 BGM 루프에 포함되지 않습니다. 이러한 관찰들은 측정된 청취 편안함이나 믹스 품질이 아닌, 재생 코드를 설명합니다.
다음 교체품을 위한 충분한 증거 유지
해당 검증 스크립트는 고정 커밋에서 딕셔너리와 오디오를 읽어 참조 존재 여부, 개수, SHA-256 해시 및 ffprobe 데이터를 기록합니다. 저장된 결과는 ffprobe 9.0.1을 사용했습니다. 오디오 변환이나 업로드는 발생하지 않았습니다.
다음 교체(replacement)를 위해, 동일한 기록은 후보 ID, 선택 이유, 게임 키, 파일 및 청취 검증 범위를 포함할 수 있습니다. 이 기록은 재생 목적지 및 아직 대기 중인 모든 확인 사항을 식별합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기