전투가 시작되면 음악이 뚝 바뀌는 게 아니라 스며들게 만드는 법
탐험 중 조용한 배경 음악이 흐르다가 적을 만나면 전투 음악으로 바뀌는 구조를 처음 구현했을 때, 단순히 재생 중인 파일을 멈추고 새 파일을 트는 방식으로 만들었습니다. 기능적으로는 작동했지만 들을 때마다 뭔가 뚝 끊기는 느낌이 계속 거슬렸습니다.
파일 교체 방식의 근본적인 한계
서로 다른 두 파일은 리듬도 조성도 완전히 다르기 때문에, 아무리 빠르게 전환해도 이어지는 느낌을 주기 어려웠습니다. 심지어 페이드 인아웃을 걸어도 두 음악이 겹치는 짧은 구간에서 불협화음처럼 들리는 경우가 많았습니다.
레이어를 쌓고 빼는 방식으로 접근을 바꿨다
대신 기본이 되는 리듬 트랙 하나를 상시 재생해두고, 그 위에 평화로운 상황에서는 잔잔한 멜로디 레이어를, 전투 상황에서는 타격감 있는 타악기와 스트링 레이어를 얹거나 빼는 방식으로 바꿨습니다. 바탕이 되는 트랙이 계속 이어지고 있으니, 위에 얹히는 레이어만 바뀌어도 훨씬 자연스러운 전환이 만들어졌습니다.
레이어 전환에도 타이밍 규칙이 필요하다
전투가 시작되자마자 즉시 레이어를 전환하면 오히려 음악이 마디 중간에서 끊기는 것처럼 들렸습니다. 다음 마디가 시작되는 지점까지 기다렸다가 레이어를 전환하도록 만드니, 음악적으로 훨씬 자연스러운 타이밍에 변화가 일어났습니다. 이 정렬 작업을 위해 음악 자체의 BPM과 마디 길이를 코드에서 미리 계산해둬야 했습니다.
전투가 끝난 뒤의 복귀도 똑같이 신경 써야 한다
전투 시작 전환에만 신경 쓰다 보니 전투가 끝나고 평화 상태로 돌아갈 때는 오히려 음악이 급하게 사그라드는 문제가 남아있었습니다. 복귀할 때는 전투 레이어를 서서히 페이드아웃시키면서 평화 레이어를 다시 서서히 끌어올리는, 몇 초에 걸친 크로스페이드 구간을 따로 만들어줘야 했습니다.
레이어가 너무 많아지면 오히려 관리가 힘들어진다
처음 재미를 붙이고 상황별 레이어를 계속 늘렸는데, 나중엔 어떤 상황에서 어떤 레이어 조합이 재생되는지 스스로도 헷갈리는 지경이 됐습니다. 결국 레이어 개수를 서너 개로 제한하고, 그 안에서 조합을 다양하게 만드는 쪽으로 다시 정리했습니다.
결국 음악을 조각내는 감각이 필요했다
완성된 곡 여러 개를 스위칭하는 게 아니라, 하나의 음악을 여러 조각으로 미리 나눠서 상황에 맞게 재조립한다는 관점으로 접근을 바꾸고 나서야 상황 전환이 매끄러워졌습니다. 작곡 단계에서부터 이런 분리를 염두에 두고 만드는 게, 나중에 억지로 이어붙이는 것보다 훨씬 수월했습니다.