Suno는 다운로드를 제한했고 Claude는 음악 생성을 추가했습니다

밤에 스탠드 불빛만 켜진 나무 책상 위에 작은 건반과 닫힌 노트북, 그 앞에 놓인 헤드폰과 머그컵

설정 화면에서 커넥터 목록을 내리다가 ElevenLabs 가 보였습니다.

처음 든 생각은 "드디어"였습니다. 저한테는 이게 반가운 이름이었거든요. 범용 AI 쪽에 음악 관련 도구가 들어왔다는 건, 제가 몇 달 동안 우회로만 찾고 있던 문제가 정식 경로를 얻었다는 뜻으로 읽혔습니다.

그래서 언제부터 있었던 것인지 찾아봤습니다. 어제였습니다.

어제라는 게 좀 묘했습니다. 같은 달 초에 정반대 방향의 변화가 있었거든요. 음악 생성 전용 도구 쪽은 다운로드 횟수를 제한했는데, 범용 도구 쪽은 만드는 기능을 추가했습니다. 3주 사이에 일어난 일입니다.

그리고 확인하는 과정에서 제가 한 번 틀렸습니다. 틀린 내용도 그대로 적어두려고 합니다. 어디서 어떻게 틀렸는지가 이 글에서 제일 쓸 만한 부분일 것 같아서요.

기획이랑 개발은 되는데, 두 군데서 멈췄습니다

작년부터 취미로 게임을 만들고 있습니다. 그중 하나는 아이가 만들고 싶다고 한 미연시였고, 사이드 프로젝트 네 개를 동시에 붙들고 있던 시기에 같이 시작한 것입니다. 엔진은 Ren'Py 를 썼습니다. Python 기반 비주얼 노벨 도구인데, 대화와 선택지와 분기가 이미 다 들어 있어서 스크립트 파일 하나만 고치면 동작합니다.

여기서 AI 가 실제로 얼마나 해주는지는 꽤 명확했습니다.

기획은 됩니다. 캐릭터 설정을 주고 분기 구조를 짜달라고 하면 루트가 몇 갈래로 나뉘는 설계가 나옵니다. 개발도 됩니다. 스크립트 문법은 단순해서 대화 200줄 붙이는 건 정말 30분입니다. 테스트도 됩니다. 분기를 다 타보고 도달 불가능한 라벨을 찾아달라고 하면 찾아줍니다.

게임은 텍스트만 있으면 되는 게 아닙니다. 정확히 두 군데서 멈췄습니다.

하나는 화면에 띄울 그림입니다. 캐릭터 그림, 배경, 표정이 바뀔 때마다 갈아 끼울 변형 컷, UI 아이콘. 다른 하나는 들려줄 소리입니다. 배경음악이 있어야 장면의 분위기가 잡히고, 선택지를 누를 때 딸깍하는 소리가 있어야 조작하는 느낌이 납니다.

검은 화면 버전을 아이에게 한 번 보여준 적이 있습니다. 대사가 올라가고 선택지가 뜨고 분기가 나뉘는 것까지 다 되는 상태였습니다. 아이가 몇 줄 읽다가 물었습니다. "얘 얼굴은 언제 나와?" 그다음 질문이 "노래 없어?"였습니다.

그게 좀 뼈아팠습니다. 제가 그때까지 붙들고 있던 건 분기 설계와 라벨 정리였는데, 정작 플레이하는 쪽에서 제일 먼저 찾은 건 얼굴과 노래였습니다. 만드는 사람이 어려워하는 것과 하는 사람이 먼저 보는 것이 이렇게 다를 수 있다는 걸 그때 알았습니다.

재미있는 건, 이 순서가 예측과 반대였다는 것입니다. 저는 개발이 제일 오래 걸릴 줄 알았습니다. 그런데 개발은 제일 빨리 끝났고, 그림과 소리에서 멈췄습니다. 창작이 마지막 병목일 거라던 예측이 실제로는 빗나갔다는 이야기를 쓴 적이 있는데, 제 작업 순서에서는 그게 좀 다르게 나타났습니다. 창작이 안 되는 게 아니라, 창작 도구를 제가 쓰는 환경에 연결하는 데서 멈췄습니다. 만드는 능력의 문제가 아니라 배선의 문제였습니다.

왜 코드는 되고 에셋은 안 되는지 나중에 좀 생각해봤습니다. 제가 보기엔 판정 방식이 다릅니다. 코드는 틀렸는지를 기계가 압니다. 문법 오류는 엔진이 잡아주고, 도달하지 못하는 라벨은 스크립트를 훑으면 나오고, 변수를 초기화하지 않았으면 실행하다 터집니다. 그래서 AI 가 만든 것을 AI 가 검증하는 순환이 성립합니다. 틀리면 틀렸다는 신호가 돌아오니까요.

에셋은 그게 안 됩니다. 캐릭터 얼굴이 이상한지는 실행해도 안 터집니다. 배경음악이 장면과 안 어울리는지도 오류로 잡히지 않습니다. 파일이 정상적으로 로드되고 재생되면 엔진 입장에서는 아무 문제가 없습니다. 판정이 전부 사람 감각으로 넘어옵니다. 그래서 만들어주는 것만으로는 부족하고, 만든 것이 쓸 만한지 제가 매번 보거나 들어야 합니다. 이 차이가 작업 시간의 대부분을 설명한다고 봅니다.

이미지는 결국 스킬을 하나 만들어서 떠넘겼습니다

그림 쪽은 방법을 찾았습니다. Codex CLI 에 이미지 생성 도구가 있어서, Claude 가 지시를 내리고 Codex 가 실제로 그리게 만들었습니다. 그걸 매번 손으로 하기 싫어서 codex-image 라는 스킬로 정리해뒀습니다.

동작은 단순합니다. Claude 가 영문 프롬프트를 만들어서 codex exec 로 넘기고, Codex 가 자기 쪽 도구로 이미지를 만들어서 지정한 경로에 저장하고, Claude 가 그 파일을 받아서 뒤처리를 합니다. Claude 는 지시하고 판단하는 쪽이고, Codex 는 만드는 쪽입니다.

이걸 만들면서 배운 게 두 개 있습니다.

하나는 성공 판정을 모델의 말로 하면 안 된다는 것입니다. Codex 가 "이미지를 생성해서 저장했습니다"라고 보고했는데 그 경로에 파일이 없는 경우가 있었습니다. 실행 로그에는 캐시 갱신 실패 오류가 섞여 나오는데 생성 자체는 성공하기도 하고, 반대로 보고는 깔끔한데 결과물이 없기도 했습니다. 그래서 스킬에 아예 적어뒀습니다. 성공 판정은 Codex 의 말이 아니라 실제 파일의 존재와 크기로 한다고요. 파일이 있고, 0바이트가 아니고, file 명령이 이미지 형식으로 읽어주면 성공입니다.

또 하나는 프롬프트에 빼달라는 걸 명시해야 한다는 것입니다. 히어로 이미지를 만들면 화면이나 글자가 자꾸 섞여 들어왔습니다. 아무 지시를 안 하면 모델이 "AI 코딩 작업 환경"이라는 프롬프트를 받고 모니터에 코드가 떠 있는 장면을 그립니다. 그 코드는 진짜 코드가 아니라 코드처럼 생긴 문양이고, 글자도 읽으면 뜻이 없는 조합입니다. 글자가 들어간 이미지는 그냥 다시 만들어야 합니다. 그래서 프롬프트 뒤에 글자와 로고와 화면과 UI 를 전부 배제하라는 문구를 고정으로 붙였습니다.

여기서 시간을 제일 많이 쓴 건 사실 생성이 아니라 변환이었습니다. Codex 가 내놓는 건 PNG 1536×1024인데, 블로그에 올리는 규약은 WebP 가로 1200픽셀에 200KB 이하입니다. 그래서 변환 도구를 찾았는데 이 맥에는 cwebpffmpegmagick 도 없었습니다. macOS 기본 도구인 sips 가 WebP 포맷 옵션을 받아주기는 합니다. 그런데 파일을 안 만듭니다. 오류도 안 냅니다. 명령이 성공한 것처럼 끝나고 결과 파일만 없습니다.

이때 실제로 든 생각은 "아니 왜 조용히 실패하지"였습니다. 오류를 던져주면 다른 방법을 찾지, 성공한 척하면 제가 뭘 잘못했는지부터 의심하게 됩니다. 결국 Pillow 로 돌아왔고, 그걸로 한 번에 됐습니다. 1536×1024 원본이 67KB짜리 WebP 로 나왔습니다.

해보고 나서 알게 된 건, 생성이 파이프라인의 한 토막일 뿐이라는 것입니다. 앞뒤로 붙은 게 더 많습니다. 프롬프트를 규약대로 조립하고, 호출하고, 파일이 실제로 생겼는지 확인하고, 포맷과 해상도를 변환하고, 용량 기준을 넘는지 보고, 저장할 곳에 올리고, 본문에 넣을 때 화면을 못 보는 사람을 위한 설명 문구까지 씁니다. 손이 많이 가는 쪽은 앞이 아니라 뒤였습니다.

그림 쪽이 이렇게 정리되고 나니 소리가 남았습니다. 그래서 커넥터 목록에서 ElevenLabs 를 봤을 때 반응이 그렇게 빨랐던 겁니다. 같은 방식으로 풀 수 있는 대상이 하나 더 생긴 줄 알았습니다.

매뉴얼을 읽고 안 된다고 판단했는데, 그게 하루 늦었습니다

확인은 매뉴얼부터 했습니다. 커넥터 목록에 올라간 ElevenLabs 가 무슨 도구를 내보내는지 보려고 호스팅 MCP 서버 매뉴얼을 열었습니다. 거기에 이렇게 적혀 있었습니다.

exposes agent management tools to AI assistants

접근 권한 범위도 명시되어 있었습니다. ElevenAgents 의 읽기와 쓰기 작업, 그리고 텍스트 음성 변환입니다. 안내 글이 드는 예시도 전부 그쪽이었습니다. 최근 대화에서 주제를 뽑아 분석하기, 새 시장에 맞춰 에이전트를 복제하기, 에이전트 간 설정을 비교하기, 언어 모델 사용량과 비용을 추정하기.

음악 생성이 없었습니다. 효과음 생성도 없었습니다. 그래서 저는 이렇게 결론을 냈습니다. 목록에 있는 ElevenLabs 는 음성 에이전트를 운영하는 사람을 위한 관리 도구이고, 제 미연시에 들어갈 피아노 트랙은 여기서 안 나온다고요. 이름은 반가운데 내용은 아니었다고 정리하고 글까지 쓰기 시작했습니다.

그게 틀렸습니다.

일레븐랩스가 ElevenCreative 를 MCP 서버에 통합한 것이 9월 21일입니다. 어제입니다. 통합된 범위는 음성 합성과 음성 복제만이 아니라 효과음, 음악, 음성 디자인, 장편 편집, 이미지와 비디오 생성까지입니다. 클로드에서는 커넥터 디렉터리에서 몇 번의 클릭으로 설치할 수 있다고 안내되어 있습니다. MCP 안내 페이지도 같은 커넥터로 50개가 넘는 모델에 접근한다고 적어놨습니다.

제가 읽은 그 매뉴얼은 에이전트 쪽 것이었고, 갱신 시점이 9월 초였습니다. 통합 전 상태로 남아 있던 페이지를 현재 상태로 읽은 겁니다.

이 대목에서 든 생각은 "아 매뉴얼을 믿었네"였습니다. 매뉴얼을 안 읽고 판단한 게 아니라, 읽고 판단했는데 그게 더 확실해 보였기 때문에 더 틀렸습니다. 이름만 보고 기능을 추측하는 건 위험하다고 생각해서 매뉴얼까지 확인했는데, 매뉴얼도 시점을 가집니다. 공식이라는 표시가 최신이라는 표시는 아닙니다.

그래서 확인하는 방법을 하나 바꿨습니다. 커넥터를 붙이고 나서 실제로 무슨 도구가 들어왔는지 물어보는 것입니다. 이름과 설명이 그대로 나오니까 제가 쓰려는 게 그 안에 있는지 보면 됩니다.

이게 매뉴얼보다 정확한 이유는 프로토콜이 그렇게 생겼기 때문입니다. 커넥터는 연결될 때 서버에 도구 목록을 물어보고, 서버가 자기가 지금 가진 도구를 이름과 설명과 입력 형식까지 붙여서 돌려줍니다. 클라이언트 쪽에 도구 목록이 미리 적혀 있는 게 아닙니다. 그러니까 서버에 기능이 추가되면 다음 연결에서 바로 목록이 늘어납니다. 매뉴얼은 사람이 따로 고쳐야 하고, 도구 목록은 고칠 필요가 없습니다.

바꿔 말하면 제가 어제 한 일은 지도를 보고 길이 없다고 판단한 것입니다. 길은 이미 나 있었고 지도가 아직 안 그려져 있었습니다. 차라리 가봤으면 3분이면 알았을 텐데, 매뉴얼을 읽는 쪽이 더 꼼꼼한 확인이라고 생각했습니다. 도구가 빠르게 붙는 환경에서는 그 순서가 반대가 됩니다.

물론 이름과 기능이 다르다는 이야기 자체가 없어진 건 아닙니다. 커넥터 목록에 음악과 관련해서 올라와 있는 것들을 보면 하는 일이 제각각입니다. 4월에 Spotify 가 커넥터로 들어왔을 때는 검색하고 추천하고 재생하는 범위였습니다. 같은 달 Claude for Creative Work 에서 추가된 Splice 커넥터는 로열티 프리 샘플 카탈로그를 뒤져주는 것이고, Ableton 커넥터는 Live 와 Push 의 공식 문서를 근거로 질문에 답해주는 것입니다. 셋 다 음악과 관련이 있고 셋 다 음악을 만들지는 않습니다. 여기에 어제부로 만드는 쪽이 하나 붙은 것입니다.

같은 달에 Suno 는 받는 횟수를 제한했습니다

이 소식이 저한테 더 크게 느껴진 이유가 있습니다. 3주 전에 정반대 방향의 변화가 있었기 때문입니다.

Suno 가 다운로드 정책과 이용약관을 바꿨습니다. 공지는 8월 10일이고 시행은 9월 3일입니다. 바뀐 건 만드는 쪽이 아니라 받는 쪽입니다. 곡을 생성하는 크레딧은 그대로 두고 다운로드 횟수에 한도를 걸었습니다.

항목 내용
무료 평생 7회
Pro 월 20회
Premier 월 60회
예외 Premier 에서 Suno Studio 를 쓰면 다운로드 제한 없음
소급 9월 3일 이전에 만들어둔 곡에도 적용
이월 쓰지 않은 한도는 다음 달로 넘어가지 않음
초과분 추가 구매가 가능하다고 안내. 가격은 공개되지 않음

상업적 이용 권리가 다운로드 자체에 붙는다는 것도 같이 바뀐 부분입니다. 그러니까 받아둔 곡에만 권리가 따라옵니다. 계정에 생성 기록이 남아 있는 것과 권리를 가진 것이 다르다는 뜻입니다. 만들어둔 곡이 백 개라도 받은 게 스무 개면 스무 개에만 권리가 있고, 예전에 만들어둔 것을 꺼내 쓰려고 할 때도 그 달의 한도를 써야 합니다.

이 표에서 제가 제 게임에 대본 줄은 Pro 의 월 20회입니다. 미연시 한 편에 필요한 소리를 세어보면 배경음악이 타이틀, 일상, 무거워지는 장면, 고백, 엔딩 정도로 다섯에서 열 곡이고, 효과음이 누르고 넘기고 열고 닫고 저장하는 것만 해도 스무 개 가까이 됩니다. 한도 안에 들어가지 않습니다.

더 걸리는 건 개수가 아니라 방식입니다. 에셋 작업은 한 번에 맞는 게 나오지 않습니다. 열 개를 뽑아서 세 개를 쓰고 일곱 개를 버립니다. 버리는 일곱 개가 나쁜 결과물이라서 버리는 게 아니라, 옆에 놓고 들어봐야 어느 게 장면에 맞는지 알기 때문에 버립니다. 받아보기 전에는 판단이 안 되고, 판단하려면 받아야 하고, 받으면 횟수가 줄어듭니다. 고르는 작업 자체에 비용이 붙으면 고르지 않게 됩니다.

이미지 쪽 스킬을 그 방식에 맞춰 짜뒀기 때문에 이게 더 눈에 들어옵니다. codex-image 는 한 장씩 만드는 것보다 여러 장을 한꺼번에 띄우는 쪽을 기본으로 잡았습니다. 프롬프트를 조금씩 달리한 것을 다섯 개까지 동시에 돌리고, 나온 걸 나란히 놓고 고릅니다. 다섯 개를 넘기면 한 번에 띄우지 말고 나눠서 돌리라고 적어뒀는데, 그건 플랜 한도 때문이 아니라 한꺼번에 실패하면 원인을 찾기 어려워서입니다. 그리고 실패한 항목만 새 파일명으로 다시 돌립니다. 이미 성공한 파일을 덮어쓰지 않으려고요.

이 구조가 성립하는 전제가 하나 있습니다. 버리는 데 추가 비용이 붙지 않는다는 것입니다. 다섯 개를 만들어 하나를 쓰면 네 개는 그냥 지웁니다. 지운 만큼 다음에 만들 수 있는 개수가 줄어들지 않습니다. 그래서 마음 편히 여러 개를 뽑습니다. 받는 횟수에 한도가 걸리면 이 전제가 성립하지 않고, 그러면 스킬을 다시 짜야 합니다. 한 번에 맞히는 프롬프트를 고민하는 쪽으로 방향이 바뀌는데, 그건 에셋 작업에서 잘 안 됩니다. 맞는지 아닌지를 만들어보기 전에는 모르니까요.

이게 Suno 가 나빠졌다는 이야기는 아닙니다. 한 곡을 끝까지 다듬는 쪽에서는 Suno 가 여전히 앞서고, Premier 에 Studio 를 붙이면 제한도 없어집니다. 도구가 겨냥하는 작업이 제 작업과 다른 것입니다. 저는 완성도 높은 한 곡이 필요한 게 아니라 쓸 만한 여러 개가 필요합니다.

루프는 여전히 제 몫입니다

그래서 어제 열린 쪽이 제 문제를 다 풀어주느냐 하면, 그건 아닙니다.

Eleven Music 의 사양을 보면 이렇습니다.

항목
생성 길이 최소 3초, 최대 5분
출력 포맷 MP3 44.1kHz 128~192kbps, WAV
보컬 제외 인스트루멘털 옵션 있음
구간 편집 구간별로 소리와 가사를 따로 수정 가능
루프 공식 문서에 언급 없음

인스트루멘털 옵션이 있는 건 중요합니다. 게임 배경음악에 가사가 붙으면 대사를 읽는 데 방해가 됩니다. 노래가 나오는데 밑에서 다른 사람이 말을 걸면 둘 다 안 들립니다.

문제는 루프입니다. Ren'Py 는 채널을 나눠 쓰는데, play music 은 music 채널로 가고 이 채널은 반복 재생이 기본입니다. play sound 는 sound 채널로 가고 이쪽은 반복하지 않는 게 기본입니다. 공식 문서가 sound 채널을 설명하면서 "default to not looping" 이라고 적어둔 그대로입니다. 배경음악은 계속 돌아야 하고 효과음은 한 번만 나야 하니 합리적인 기본값입니다.

포맷은 넉넉합니다. Opus, Ogg Vorbis, MP3, MP2, FLAC, WAV 를 받습니다. WAV 에만 조건이 붙는데, 압축하지 않은 16비트 signed PCM 만 된다고 명시해뒀습니다. 생성물이 MP3 면 그대로 넣으면 됩니다.

그런데 Eleven Music 은 5분짜리 완결된 곡을 만듭니다. 시작이 있고 전개가 있고 끝이 있는 음악입니다. 그걸 music 채널에 넣으면 5분마다 끝에서 처음으로 돌아갑니다. 곡의 마지막 마디는 끝나는 소리로 만들어져 있고 첫 마디는 시작하는 소리로 만들어져 있으니, 그 이음새에서 튑니다.

게임 배경음악이 루프용으로 따로 만들어지는 이유가 이것입니다. 루프 음악은 마지막 마디가 첫 마디로 자연스럽게 이어지도록 설계합니다. 끝나는 느낌을 일부러 주지 않고, 잔향이 다음 바퀴의 첫 박과 겹쳐도 어색하지 않게 만듭니다. 작곡 단계에서 결정되는 문제라 다 만들어진 곡을 잘라서 해결하기가 어렵습니다.

Ren'Py 쪽에 마침 쓸 만한 문법이 있었습니다. 파일 이름 앞에 꺾쇠 괄호를 붙여 재생 구간을 지정할 수 있습니다.

play music "<loop 6.333>song.opus"

이렇게 쓰면 전곡을 한 번 재생한 다음, 두 번째 바퀴부터는 6.333초 지점에서 시작합니다. 도입부를 한 번만 들려주고 이후에는 본 구간만 반복하는 구성입니다. 게임 음악이 원래 이런 모양으로 만들어집니다. 처음에 한 번 나오는 도입부가 따로 있고 계속 도는 구간이 따로 있습니다. <from 5 to 15.5> 처럼 시작과 끝을 같이 지정하는 형태도 있어서, 5분짜리 생성 트랙에서 이음새가 그럴듯한 30초를 찾아 거기만 돌리는 방법도 됩니다.

이걸 보고 해결됐다 싶었는데, 다시 보니 그 6.333이라는 숫자가 문제였습니다. 그 값은 곡을 들으면서 소절이 시작되는 지점을 찾아 적은 것입니다. 파일이 있는지 없는지는 기계가 확인해주지만, 몇 초에서 이어야 자연스러운지는 기계가 대신 들어주지 않습니다. 결국 다시 사람 귀로 돌아옵니다.

효과음은 더 까다로울 것 같습니다. 선택지를 누르는 소리는 0.2초 안에 딸깍 하고 끝나야 합니다. 그것보다 길면 다음 대사가 올라오는 데 걸립니다. 그리고 UI 효과음은 한 개만 필요한 게 아닙니다. 누르는 소리, 넘기는 소리, 창이 열리는 소리, 닫히는 소리, 저장되는 소리가 다 있어야 합니다.

문제는 이게 전부 같은 세계에서 나온 소리로 들려야 한다는 것입니다. 누를 때는 나무를 두드리는 소리가 나고 창이 열릴 때는 유리가 스치는 소리가 나면, 각각은 잘 만들어졌는데 같이 쓰면 이상합니다. 잔향도 맞아야 합니다. 하나는 좁은 방에서 녹음한 것처럼 건조하고 다른 하나는 강당에서 녹음한 것처럼 울리면, 같은 화면에서 번갈아 나올 때 공간이 계속 바뀌는 느낌이 납니다.

사람이 만들 때도 신경 쓰는 부분이긴 합니다. 대신 사람은 같은 라이브러리에서 같은 계열을 골라 해결합니다. 효과음 패키지를 하나 사면 그 안의 소리들이 이미 같은 환경에서 만들어져 있습니다. 생성으로 하면 매번 새로 만들어지니 계열이라는 게 없습니다. 프롬프트에 악기와 공간감을 고정해서 넣어야 할 것 같은데, 그게 실제로 얼마나 재현되는지는 해봐야 알 것 같습니다. 이미지에서 같은 캐릭터의 얼굴을 여러 장 뽑을 때 생기는 문제와 비슷할 것 같다는 짐작은 있습니다.

Ren'Py 쪽 제약도 하나 더 있습니다. 한 채널은 한 번에 한 파일만 재생합니다. 배경음악과 효과음은 채널이 다르니 같이 나지만, 효과음 두 개를 동시에 내려면 채널을 따로 만들어줘야 합니다. 선택지를 누르는 순간 딸깍 소리와 화면 전환 소리를 겹치고 싶으면 설계 단계에서 채널을 나눠둬야 한다는 뜻입니다. 생성 도구가 해결해주는 문제가 아니라 제가 미리 정해야 하는 부분입니다.

음량도 남습니다. 생성할 때마다 결과물의 크기가 조금씩 다르게 나옵니다. 배경음악이 대사를 덮으면 안 되고, 효과음이 배경음악보다 크게 튀면 깜짝 놀랍니다. 이미지에서 가로 1200픽셀과 200KB 이하라는 기준을 정해두고 거기 맞춘 것처럼, 소리에도 기준 음량을 정해두고 전부 거기로 맞춰야 할 것 같습니다. 안 하면 곡마다 볼륨 설정을 따로 적어주는 식으로 땜질하게 되고, 곡을 하나 교체할 때마다 그 값을 다시 만지게 됩니다.

이게 이미지에서 글자가 섞여 들어왔던 것과 같은 종류의 문제라고 봅니다. 모델은 요청한 것을 만들어냅니다. 그런데 만들어낸 것이 제 파이프라인에 그대로 들어갈 수 있는 형태인지는 별개입니다. 이미지는 글자를 빼달라고 명시해야 했고, 해상도와 포맷을 규약에 맞춰 변환해야 했습니다. 소리는 길이를 맞춰야 하고, 이음새를 맞춰야 하고, 여러 개 사이의 톤을 맞춰야 하고, 음량을 맞춰야 합니다. 맞춰야 하는 항목이 오디오 쪽이 더 많아 보입니다.

라이선스는 게임 규모에 따라 조건이 달라집니다

이건 취미로 하는 동안은 안 걸리는데 미리 알아두는 게 나은 부분입니다.

Eleven Music 으로 만든 곡은 유료 플랜에서 상업적으로 쓸 수 있습니다. 문서는 영화와 TV 부터 팟캐스트와 소셜 영상, 광고, 게임까지 거의 모든 상업 용도로 정리되어 있다고 적어뒀습니다. 게임이 명시적으로 포함되어 있습니다.

그런데 조건이 하나 붙습니다. 영화와 TV, 그리고 대형 스튜디오 게임의 권리는 Enterprise 플랜이 필요합니다. 개인이 만드는 인디 게임이나 취미 프로젝트는 일반 유료 플랜으로 되지만, 규모가 커지면 다시 확인해야 하는 선이 있다는 뜻입니다.

이 선을 미리 보는 게 나은 이유는 작업 순서 때문입니다. 에셋은 게임에 한 번 들어가면 빼기가 어렵습니다. 배경음악을 기준으로 장면 길이를 맞추고 전환 타이밍을 잡아두면, 곡을 바꾸는 순간 그 장면들을 다시 손봐야 합니다. 효과음 세트라면 더합니다. 나중에 권리 문제로 전부 교체하게 되는 상황이 제일 나쁩니다. 그래서 취미로 시작하더라도 어디까지 쓸 생각인지는 처음에 정해두는 편이 낫습니다.

Suno 쪽에서 상업적 이용 권리가 다운로드에 붙는 방식으로 바뀐 것도 같은 종류의 이야기입니다. 만들어둔 것과 권리를 가진 것이 다를 수 있습니다. 이 선이 어디인지 숫자로 적혀 있지 않기 때문에, 팀으로 상용 게임을 만들 계획이라면 약관을 직접 읽고 판단해야 합니다. 제 경우는 아이랑 만드는 미연시니까 한참 먼 이야기입니다. 다만 AI 로 만든 음악이 유통 단계에서 어떤 벽을 만나는지는 전에 한 번 살펴본 적이 있어서, 이런 조건은 일단 확인해두는 편이 낫다고 생각하고 있습니다. 만들 때는 아무 문제가 없다가 내보낼 때 걸리는 경우가 이 분야에 꽤 있습니다.

지금은 이렇게 보고 있습니다

9월에 변화가 두 번 있었습니다. 3일에 전용 도구가 다운로드 횟수를 제한했고, 21일에 범용 도구에 만드는 기능이 추가됐습니다. 방향이 반대인데 저한테는 같은 결과가 됐습니다. 여러 개를 뽑아보고 버리는 작업을 어디서 할 수 있느냐가 바뀐 것입니다.

이 둘이 겨냥하는 작업이 애초에 다르다는 것도 이번에 좀 정리가 됐습니다. 전용 도구는 하나를 작품으로 만드는 쪽을 봅니다. 그러니까 받아 나가는 결과물에 권리를 붙이고 개수를 세는 게 그쪽 논리로는 일관됩니다. 곡 하나가 결과물이고, 그 결과물에 값을 매기는 것입니다. 범용 도구는 반대쪽을 봅니다. 한 대화 안에서 여러 도구를 번갈아 부르는 것이 목적이니 호출 하나하나가 가벼워야 합니다. 결과물 단위로 값을 매기면 그 목적이 성립하지 않습니다.

게임 에셋은 후자에 가깝습니다. 그림 스무 장과 소리 스무 개가 필요한데, 그중 하나하나가 작품일 필요는 없습니다. 오히려 스무 개가 서로 안 튀는 게 중요합니다. 캐릭터 얼굴 하나를 아주 잘 그려도 옆에 놓인 배경과 화풍이 다르면 못 씁니다. 그러니까 작품 하나를 뽑는 도구보다 세트를 맞추는 도구가 맞고, 제가 이미지에서 스킬을 만들어 붙인 것도 그래서였습니다.

도구를 고를 때 물어야 할 게 이거라고 생각하게 됐습니다. 내가 만들려는 게 작품 하나인가 세트인가. 플레이리스트를 만드는 사람도, 게임 에셋을 붙이는 사람도 세트 쪽입니다. 곡 하나를 끝까지 다듬을 사람은 전용 도구가 맞습니다. 같은 기능처럼 보여도 값을 매기는 방식이 다르면 다른 도구입니다.

그렇다고 이제 커버된다고 말하기에는 좀 이릅니다. 만드는 쪽이 열린 것이고, 만든 것을 게임에 넣을 수 있는 형태로 바꾸는 일은 그대로 남아 있습니다. 이미지에서도 그랬습니다. 그림을 얻는 게 어려웠던 게 아니라 얻은 그림을 규약에 맞추는 게 오래 걸렸습니다.

달라진 건 배선할 대상이 어디 있는지가 확인된다는 점입니다. 이미지 때는 그게 없었습니다. Codex 에 이미지 생성 도구가 있다는 것도 플래그를 조회해보고 알았고, 되는지 안 되는지 실제로 호출해서 확인했고, 그 결과를 스킬 문서에 실측 날짜와 함께 적어뒀습니다. 어디에도 정리되어 있지 않았기 때문입니다.

그리고 이번에 배운 게 하나 더 있습니다. 매뉴얼을 읽었다는 것만으로 확인했다고 볼 수 없다는 것입니다. 저는 이름만 보고 판단하지 않으려고 매뉴얼까지 갔는데, 그 매뉴얼이 하루 늦어 있었습니다. 어제 들어온 기능이 오늘 매뉴얼에 없는 게 이상한 일도 아닙니다. 그래서 지금은 붙여보고 도구 목록을 직접 확인하는 쪽으로 바꿨습니다.

남은 건 만들어보는 것입니다. 미연시에 들어갈 배경음악 한 곡을 뽑아서 music 채널에 넣어보면 루프 이음새가 실제로 얼마나 튀는지 알게 될 것 같습니다. 튄다면 구간 편집으로 끝부분을 고쳐보고, 소절이 시작되는 지점을 찾아 <loop> 값으로 넣어보는 것도 같이 해볼 생각입니다. 그 숫자를 몇 번쯤 고치게 될지는 짐작이 안 됩니다. 효과음 스무 개의 톤을 맞추는 문제는 아직 어떻게 접근할지 모르겠습니다. 프롬프트에 악기와 공간감을 고정해서 넣으면 될 것 같은데, 이미지에서 글자 배제 문구를 찾는 데도 몇 번 걸렸으니 여기도 몇 번은 걸릴 겁니다.

codex-image 옆에 비슷한 스킬이 하나 더 생길 것 같기는 합니다. 이름은 아직 안 정했는데, 그건 만들어보고 나서 생각해도 될 것 같습니다.

확인한 자료

이 글에서 남의 발표와 정책 변경을 옮긴 대목의 출처입니다. 링크는 2026년 9월 22일에 열어 확인했습니다.

직접 확인하지 못한 것도 적어둡니다. 이 글에서 제일 중요한 대목이 여기 걸립니다. ElevenCreative 통합은 기사와 안내 페이지로 확인했고, 커넥터를 실제로 붙여서 음악 도구가 목록에 뜨는 것까지 제가 보지는 못했습니다. 매뉴얼만 읽고 판단했다가 틀린 이야기를 하면서 같은 방식으로 한 번 더 판단한 셈입니다. 붙여보고 도구 목록이 다르면 이 글을 고치겠습니다.

Suno 의 추가 다운로드 가격은 공지에 없습니다. 곡당 얼마라는 숫자가 여러 곳에 돌아다니는데 공식 발표에서 확인하지 못해 쓰지 않았습니다. Eleven Music 이 내놓는 WAV 가 Ren'Py 가 요구하는 압축하지 않은 16비트 signed PCM 규격에 맞는지도 확인하지 못했습니다. 루프 이음새가 실제로 얼마나 튀는지, 효과음 여러 개의 톤이 얼마나 맞는지는 아직 만들어보지 않았으니 전부 짐작입니다.

댓글

이 블로그의 인기 게시물

구글은 서울에서 모델이 아니라 에이전트를 판다

내가 짠 건 하네스가 아니라 아웃터 루프였다