Visibox 받기 →
← 모든 뉴스사용법

ChatGPT가 짜 준 '기묘한 이야기' 비주얼라이저

‘기묘한 이야기(Stranger Things)’ 오프닝 타이틀 같은 느낌을 원했어요. 새까만 배경 위에서 빛나는 가느다란 붉은 주황색 선, 가장자리에서 은은하게 번지는 빛, 그 사이를 날아서 통과하듯 카메라 옆을 스쳐 지나가는 움직임. 로고도 폰트도 아니고, 딱 그 분위기요. 거대하고 반쯤 형체가 잡힌 무언가가 안에서부터 빛나는 느낌.

그래서 OpenAI ChatGPT 데스크톱 앱의 에이전트 모드인 ChatGPT Work를 열고 셰이더를 만들어 달라고 했어요. 셰이더 코드는 한 줄도 직접 쓰지 않았어요. 제가 원하는 걸 설명하자 ChatGPT가 코드를 쓰고, Visibox가 그걸 음악에 반응하며 라이브로 돌렸어요. 텍스트 에디터는 건드리지도 않았고요. 이 영상의 핵심이 바로 이거예요. 그리고 짚어 볼 만한 부분은 완성된 비주얼라이저가 아니라, 거기까지 가는 동안 주고받은 과정이에요.

Visibox에서 비주얼라이저란

Visibox 5에는 비주얼라이저라는 기능이 추가됐어요. GPU로 렌더링되는 제너러티브 클립으로, 일반 비디오 클립 옆 그리드에 자리 잡아요. 오디오에 반응해 음악에 맞춰 튀는 것도 있고, 그냥 계속 돌아가는 것도 있어요. 어느 쪽이든 프로젝트의 다른 클립과 똑같이 트리거하면 돼요.

형식은 두 가지예요. MilkDrop은 Winamp 시절에 만들어진 오래된 형식이고, 인터넷에는 .milk 프리셋이 엄청나게 많이 돌아다녀서 Visibox로 바로 끌어다 쓸 수 있어요. ISF는 VJ 소프트웨어 VDMX를 만든 팀이 만든 비교적 새로운 형식이에요. 조절 가능한 입력을 선언하는 작은 헤더가 붙은 셰이더 파일 하나로 이뤄져 있어요. Visibox는 둘 다 지원하지만, 이번 프로젝트에는 ISF를 썼어요. 알고 보니 AI가 깔끔하게 써내는 딱 그런 종류의 파일이었거든요.

MCP 연결 켜기

이 모든 게 작동하려면 먼저 Visibox가 AI 어시스턴트와 연결돼 있어야 해요. 설정의 ’AI 도구에 연결’에서 한 번만 하면 돼요. Visibox가 설치된 AI 앱을 찾아서 각 앱에 자동으로 자신을 설정해요. 그다음부터는 ChatGPT(또는 Claude, 무엇을 쓰든)가 프로젝트를 보고, 비주얼라이저 형식을 읽고, 프리셋을 만들고, 볼륨, 전체 화면, 클립 트리거 같은 재생 제어까지 할 수 있어요. 연결이 살아 있는지 확인하려고 ChatGPT에 Visibox에 접근할 수 있냐고 물었더니, 현재 볼륨 값을 알려 주더라고요.

여기서 중요한 점이 하나 있어요. Visibox는 내 컴퓨터에서 돌아가는 로컬 도구로 연결되기 때문에, 여기에 접근할 수 있는 데스크톱 AI 앱이 필요해요. 브라우저로 여는 ChatGPT 웹사이트는 Visibox 같은 로컬 앱을 볼 수 없어요. 그래서 chatgpt.com 대신 OpenAI 데스크톱 앱(최근 Codex를 흡수한 그 앱)의 모드 중 하나인 ChatGPT Work나 Claude Desktop을 써요. 이제부터는 그냥 ChatGPT라고 부를게요.

앞선 영상에서 Claude Desktop으로 똑같은 작업을 했는데, 워크플로는 거의 같았어요.

요령: AI에게 레퍼런스부터 설명하게 하기

코드를 요청하기 전에, ChatGPT에 ‘기묘한 이야기’ 오프닝을 자기 말로 설명해 달라고 했어요. 뭔가를 만들기 전에 콘셉트부터 맞추려고요. 이 한 단계가 예상보다 훨씬 큰 역할을 했어요.

돌아온 답은 거의 샷 설명에 가까웠어요. 거의 완전한 어둠, 카메라를 스쳐 흘러가는 가느다란 붉은 주황색 선, 부드러운 블룸, 살짝 낀 블러, 게다가 오디오 반응성에 대한 나름의 추측까지요. 덕분에 빈 페이지 대신 구체적으로 반응할 거리가 생겼어요.

유지할 것과 바꿀 것을 알려 줬어요. 글자 모양 대신 기하학적 조각(드라마를 그대로 베끼는 것과 너무 가깝기도 하고, 솔직히 글자가 없는 편이 더 쓸모 있어요), 나중에 파란 계열로 바꿀 수 있도록 색상 설정, 그리고 끊임없는 전진 움직임. 오래된 도형이 화면 가장자리로 흘러나가면 어둠 속에서 새 도형 레이어가 떠오르는 식으로요.

그중에서도 가장 중요한 요청이 하나 있었어요. 화면이 절대 비면 안 된다는 것. 밀도 설정이 어떻든, 깊이 공간 어딘가에는 항상 도형이 있어야 해요. 살아 있는 듯한 비주얼라이저와 뭔가 일어나길 기다리는 듯한 비주얼라이저는 여기서 갈려요.

ChatGPT는 스스로 이 콘셉트에 이름까지 붙였어요. Ember Geometry. 콘셉트에 합의한 뒤에는 실제 코딩을 위해 더 강력한 추론 모델로 바꾸고, 새 ISF 비주얼라이저 프리셋으로 만들어 달라고 했어요.

첫 빌드: 까만 화면

ChatGPT는 몇 분 동안 작업하면서 내내 MCP로 Visibox와 대화했어요. ISF 형식 사양을 읽고, 셰이더를 쓰고, 새 프리셋으로 등록했죠. 그래서 확인하러 돌아갔는데요.

까만 화면. 아무것도 없었어요.

대부분의 영상이라면 이 부분을 잘라 냈겠지만, 저는 그러지 않았어요. 그냥 ChatGPT에게 보이는 그대로 말했어요. 까만 화면만 나오고 비주얼라이저가 안 보인다고, 문법을 직접 점검해 보라고요. ChatGPT는 프래그먼트 셰이더 컴파일 오류를 찾아냈어요. 예약어를 잘못 썼다는 오류였고, 바로 고쳤어요. 두 번째 시도에서 드디어 나타났어요. 카메라를 스쳐 흘러가는, 빛나는 붉은 주황색 선. 제가 설명한 바로 그 분위기였어요. 이 수정에는 메시지 하나와 몇 분이면 충분했어요.

과한 반응에서 적당한 반응으로

음악을 틀어 오디오에 어떻게 반응하는지 봤는데, 좀 과했어요. 베이스에 맞춰 움직임이 뒤집히는 바람에 계속 앞으로 나아가는 느낌 대신 전체가 앞뒤로 휘청거리는 느낌이었어요. 10초 정도는 재밌지만, 그 뒤로는 거슬렸어요.

ChatGPT에게 뭐가 문제인지 말했어요. 오디오 반응이 전진 움직임을 덮어쓰고 있으니, 전진하는 흐름은 그대로 두라고요. 베이스와 고음은 계속 빛과 그레인을 움직이되, 카메라 움직임에는 손대지 않게요. 1분쯤 뒤에 업데이트가 들어왔어요. 더 차분하고 더 절제됐지만, 음악이 터질 땐 여전히 확실히 살아 있었어요.

프로젝트에 넣는 건 쉬웠어요. 다른 클립처럼 Ember Geometry를 곡에 끌어다 놓고, 전체 화면으로 돌리면 끝.

셰이더 자체보다 이게 더 중요한 이유

GLSL도, ISF 파라미터 문법도, 셰이더 컴파일에 대해서도 전혀 몰라도 됐어요. 필요했던 건 원하는 걸 구체적으로 말하는 것, 안 되는 부분을 솔직하게 말하는 것, 그리고 첫 결과를 그냥 받아들이지 않고 계속 주고받으려는 자세였어요. 설명하고, 보고, 고치는 그 반복이 진짜 기술이고, 꼭 ChatGPT에만 해당하는 것도 아니에요. MCP 연결을 켜고, 코드를 쓰기 전에 콘셉트부터 맞추고, 첫 빌드에는 피드백 한두 번이 필요하다고 생각하세요. 그건 실패가 아니라 당연한 과정이에요.

전체 화면 영상 대신 오버레이 효과에 같은 요령을 써 보고 싶나요? 짝이 되는 영상이 있어요. AI로 만드는 오버레이 효과. 작업 이야기보다 단계별로 정리된 안내가 좋다면 글로 된 레시피도 있어요. AI로 비주얼라이저를 처음부터 만들기.

Visibox에는 14일 무료 Pro 평가판이 포함돼요. 비주얼라이저, MilkDrop, ISF에 대한 자세한 내용은 매뉴얼에서 확인하세요.