월드 오브 워크래프트

개발자의 작업장: 캐릭터 세부 설정

개발자의 작업장: 캐릭터 세부 설정

어둠땅 출시가 일주일도 안 남았습니다. 새로운 캐릭터 세부 설정 옵션을 활용해 근사하게 꾸민 캐릭터로 사전 패치를 플레이해 보셨나요? 새로운 머리 모양이나 눈 색깔을 살피는 동안 확장팩이 출시될 때마다 점진적으로 확장된 시스템을 대대적으로 개편하려면 어떤 작업이 뒤따르는지 한 번쯤은 궁금하셨으리라 믿어 의심치 않습니다. 그러니 저희가 어떻게 새로운 옵션에 생명을 불어넣었는지 잠시 살펴보고 가시는 건 어떨까요?

약간의 배경 이야기

월드 오브 워크래프트 오리지널이 출시됐을 무렵 저희의 최우선 목표는 최대한 많은 사람이 게임을 플레이할 수 있도록 하는 것이었습니다. 이를 위해 최소 사양을 최적화하여 다양한 하드웨어에서 구동되도록 했죠. 그렇기에 타협은 필연적으로 다가왔습니다. 프레임률에 영향이 갈 수도 있는데 캐릭터 손에 손가락을 하나하나 구현해야 할까요? 아니면 그 처리 능력을 게임플레이 기능에 집중해야 할까요? 2004년 출시 이후로 하드웨어 세대의 발전에 따라 성능이 향상되면서 그러한 우려는 점차 희미해졌고, 새로운 아이디어와 업그레이드 방안을 살펴볼 수 있게 되었습니다.

타우렌 모델 텍스처

자, 그래서 무엇이 변했으며 초창기 캐릭터 구조는 어땠을까요? 초기 데이터 모델은 꽤 직관적이었습니다. 그러나 시간이 흐르면서 새로운 특징이 추가됨에 따라 한계가 여실히 드러나기 시작했습니다. 종족과 성별마다 꾸밀 수 있는 요소가 고작 다섯 개에 불과했죠(이후 군단에서 확장됩니다). 그런데 그 다섯 요소를 이미 꾸며둔 상태라면 어떻게 해야 할까요? 군단 출시 이전에 나이트 엘프의 슬롯 다섯 개를 모두 사용한 상태에서 악마사냥꾼 NPC를 어떻게 만들었을까요? 디자이너들은 번뜩이는 기지를 발휘하여 아이템 시스템을 활용해 효율적으로 특징을 살렸습니다. "붙여넣기 순위"에서 셔츠는 항상 첫 번째였던 만큼, 셔츠 전체에서 문신 부위만 제외하고 투명 효과를 추가하여 문신을 새긴 것처럼 보이게 만들 수 있었죠. 참 영리한 발상이 아닐 수 없죠?

악마사냥꾼 문신

시스템, 게임플레이, 데이터 레이아웃

위에서 설명한 기술적인 곡예는 개발자가 무언가 특별한 걸 만들고자 할 때마다 거치고 싶은 과정은 단연코 아닙니다. 그래서 이전 확장팩에서 얻은 교훈을 한데 모았습니다. 세부 설정의 숫자에 구애받지 않는 것이 궁극적인 목표였죠. 즉 다섯 개의 일반 슬롯에 구속되지 않고 각 특징(이를테면 눈, 얼굴, 수염, 콧수염)이 독립적으로 기능하는 시스템을 구축하고 싶었습니다. 그뿐만 아니라 관리하기에도 편하고 대량의 데이터를 복사할 일도 없어야 했습니다(모든 셀의 얼굴 형태 하나하나가 피부색과 맞물려 있는 아래 "스프레드시트" 형식의 편집기를 참조해 주세요). 무엇보다도 어셋을 만드는 아티스트와 이를 연결하는 디자이너의 부담을 덜어내는 게 목표였습니다.

기존 세부 설정 편집기
사진: 어둠땅 사전 패치 적용 전에 사용됐던 기존 세부 설정 편집기입니다.

작업이 시작되고 일단 모호하게 연결된 데이터베이스 테이블을 살폈습니다. 하나하나가 막대한 양의 정보가 들어 있는 기록이었죠. 이 모든 걸 분리해 작고 논리적인 데이터 그룹으로 나눴습니다. 그 결과 스프레드시트 편집에 작별을 고하고 게임 내 플레이어가 보는 것과 대단히 흡사한 맞춤형 자동 생성 편집기를 여러 개 만들었죠. 새로운 데이터 레이아웃은 저희가 원하는 수준의 범용성을 자랑했습니다. 늑대인간과 길니아스인 형상을 따로따로 바꿀 수 있도록 하는, 다시 말해 예전에는 불가능했던 멋진 세부 설정을 현실로 구현할 수 있었지요.

새로운 캐릭터 보기 창
어셋 풀과 새로운 편집 기능 덕택에 새 선택지를 추가하는 과정이 훨씬 직관적으로 변화했습니다!

끝에 가서는 데이터와 게임플레이 요소를 총체적으로 개편하였습니다. 더불어 출시 첫날 기존 데이터로 접속하는 모든 플레이어의 캐릭터가 사전 패치 적용 이전과 동일한 모습을 갖도록 안배해둬야 했죠(수만 명의 NPC는 두말할 필요도 없고요). 이 작업을 위해 수염, 콧수염, 구레나룻으로 분리되는 인간의 수염 옵션을 모두 고려하는 등 무려 9,000개의 규칙이 적용된 변환 프로세스를 만들었습니다. 자동화 팀은 일치하지 않는 부분을 빠르게 파악할 수 있도록 변환 전후 스크린샷을 일제히 비교할 수 있는 툴을 만들었죠. 전부 잘 풀리기만 하면 사전 패치 당일 접속하는 플레이어가 사랑하는 캐릭터에게 아무 일도 없는 줄 알고 넘어가게 되는 셈이었죠!

엔진 재구축

새로운 세부설정 옵션을 추가하기 위해서는 엔진을 완전히 재구축해야 했습니다. 예전에는 세부 설정 옵션 세트마다 전용 텍스처가 필요했습니다. 다른 옵션을 선택할 경우 해당 캐릭터의 고유 텍스처가 변경되는 식이었죠. 그러나 어둠땅에서 새롭게 추가되는 캐릭터 옵션을 감안하면 순열이 수백만으로 폭증했습니다. 그래서 플레이어 텍스처를 그때그때 점진적으로 생성하는 새로운 캐릭터 시스템을 제작했습니다.

다른 변경 사항도 많지만, 무엇보다 텍스처 프로세스 코드와 같은 텍스처를 사용하여 캐릭터 간 리소스 공유를 관리하는 시스템은 SIMD(단일 명령 다중 데이터) 확장 프로그램을 통해 새로 작성되었습니다. 이러한 변경 사항으로 프로세서 활용성이 극대화되었고 텍스처 작업을 반복하는 일이 없어졌습니다. 새로운 데이터베이스 레이아웃과 결합하자 번개처럼 빠르고 100% 데이터로 처리되는 시스템이 탄생하였고, 수동으로 데이터베이스 테이블을 설정해주는 방식에서 탈피했습니다. 오크 제작을 요청할 경우 엔진 내에서 어떤 과정이 이뤄지는지 GIF 파일로 보여드리겠습니다.

새로운 캐릭터 보기 창
그레이스케일 텍스처와 마스크를 사용해 중간 텍스처를 생성하고 점진적으로 색깔이 들어간 문신을 생성합니다.
새로운 캐릭터 보기 창
초기 프로토타입 스크린샷입니다. 사용된 텍스처와 입출력을 엿볼 수 있지요.

사용자 인터페이스 및 애니메이션

세부 설정 옵션이 늘어나는고로 어둠땅의 사용자 인터페이스를 완전히 새로 써야 했습니다. 새로운 시스템의 도입으로, 디자이너는 기존 코드나 지원 시스템을 수정하지 않고도 원하는 만큼 세부 설정 옵션을 생성해 분류할 수 있게 되었습니다. 각 옵션 선택지는 원하는 만큼 추가할 수 있는 데다, 디자이너가 최대 두 개의 색깔 견본이나 숫자를 사용해 사용자 지정 이름을 활용하여 각 선택지를 표시할 수 있죠. 플레이어의 입력에 따른 캐릭터 생성의 반응성을 향상시키는 데도 상당한 노력이 들어갔습니다. 결과적으로 각 옵션을 클릭하지 않고 커서만 올려도 미리보기를 확인할 수 있게 되었지요. 전체 세부 설정 사용자 인터페이스는 이제 캐릭터 생성과 미용실에서 같이 쓰입니다.

캐릭터 생성 화면 사용자 인터페이스

추가로 전체 종족 및 직업 선택 화면을 재작업했습니다. 이제 훌륭한 디자이너와 아티스트들이 커스텀 애니메이션과 효과를 추가할 수 있게 됐죠. 하지만 생성 화면에서는 게임의 핵심 시스템이 구동하지 않기 때문에 방대한 리팩터가 필요했습니다. 새로운 시스템에서는 아티스트와 디자이너가 종족, 직업, 성별 조합을 선택할 때 어떤 애니메이션과 효과를 표시할지 완전히 제어할 수 있습니다. 또한 필요에 따라 변경할 수도 있답니다.


캐릭터 세부 설정 시스템을 변경하면서 여러모로 즐겁게 창의성을 발휘할 수 있었습니다. 여러분도 뒷이야기를 즐겁게 읽으셨길 바랍니다! 그럼 멋진 모습으로 만나요, 아제로스!

다음 글

주요 소식