http://mushroom11.com/

게임 스크롤의 역사(1): 횡스크롤 게임 카메라의 이론과 사례 (번역) 에서 이어지는 글입니다.

방향 지시 Direction

게임 씬의 신호, 맥락, 진행 방향을 설정하라.

지금까지는 플레이어의 시점과 조작을 정확히 나타내는 방식에 대해 살펴봤습니다. 대체로 플레이어가 보고 싶어하는 것(맨 앞 다이어그램의 상호작용)이죠. 그리고 편안하고 효과적으로 보게 만드는 여러 다른 방식도 다뤘습니다. (편안함)

하지만 게임의 디렉터로서 우리들은 플레이어의 시선을 플레이어가 봐야하는 중요한 것에 집중싶을 때도 있습니다. 맥락이나 게임 진행, 심지어 극적인 효과나 내러티브 전달을 위해서 말이죠.

wonderboy_cam.gif

Wonder Boy © 1986 Sega

  • 카메라 패스: 레벨 전체에 걸쳐 카메라의 진행 경로(path)를 미리 정해 놓음
  • 
카메라 윈도우: 한 방향
  • 
스태틱 포워드 포커스

제가 좋아하는 게임 중 하나인 ‘원더보이 (Wonder Boy)’는 빠른 속도의 플랫포머인데, 오래된 방식인 일방향 카메라 윈도우만으로 진행 방향으로 나아가게 합니다. ‘수퍼 마리오 브라더스’와는 달리, 원더보이에는 카메라 가속을 제한하기 위한 가속 지대가 없습니다. 하지만 제가 카메라 패스라고 정의한, 재미있는 카메라 테크닉을 선보입니다. 게임 중 다가올 도전들을 예고할 수 있게 카메라 동선을 계획해두고 그에 따라 움직이는 거죠.

플레이스테이션과 N64 등 5세대 콘솔 기기들에서는 하드웨어 성능이 좋아지고 진짜 3D 게임을 시작하면서 새로 할 수 있는 것들이 생겼습니다. 3D 카메라 테크닉은 그 자체로 매력적이고 아주 거대한 주제지만, 3D 지원은 2D 게임에도 막대한 영향을 끼쳤어요. 디자이너들은 카메라를 줌인/줌아웃하거나 기울일 수 있었고, 심지어 2D와 3D를 섞어서, 세계는 3D지만 게임은 2D 평면에서 일어나는, 소위 2.5D도 쓸 수 있게 됐습니다.
klonoahd_240.gif

Klonoa: Door to Phantomile © 1997 Namco

  • 카메라 패스: 엄밀하게는 패스 힌트. 줌과 틸트를 포함함
  • 카메라 윈도우 (수직)
  • 선형 보간
  • 
듀얼 포워드 포커스

플레이스테이션용 ‘클로노아 (Klonoa)’가 그런 게임 중 하나입니다. 플레이어는 기본적으로 2D 스타일로 조작하지만, 게임은 공들여 만든 3D 세계에서 일어납니다. 클로노아는 가야할 방향이나 게임 플레이와 내러티브 디테일에 대한 시선 유도를 3D 카메라 패스 방식을 통해 해냅니다. 이 카메라 패스에서는 모든 레벨에 걸쳐 카메라의 위치, 기울기, 배율을 정할 수 있었고, 이 패스는 사실상 카메라가 어느 쪽에 중심을 맞춰야 하는지, 점프가 적용될 것인지에 대해 힌트 패스로 쓰였습니다.

이런 형태로 카메라를 조작할 수 있으면, 여러 방식으로 앞으로 있을 일을 예고하거나, 놀라게 하거나 심지어 공포를 느끼게 할 수도 있죠. 클로노아에서 카메라가 줌아웃해서 보스를 보여주면, 플레이어가 이제 무슨 일을 해야 하는지는 명확하죠?
donkeykongcountry_1_240b.gifdonkeykong_2_240b.gif

Donkey Kong Country © 1994 Nintendo (Rare Ltd)

  • 선형 보간
  • 
포지션 락 (수직)
  • 리전 기반 앵커: (같은 레벨이라도) 리전마다 포지션과 포커스를 위한 별도의 앵커를 설정함
  • 듀얼 포워드 포커스

‘동키 콩 컨트리 (Donkey Kong Country)’는 이후 플랫포머들에서 표준이 되는 흥미로운 기능을 소개했는데요. 바로 레벨 디자이너들이 개별 레벨의 컨텐츠, 또는 심지어 각 레벨의 개별 리전에 맞춰 카메라 움직임에 변화를 줄 수 있는 도구를 제공한 것입니다. 속도가 빠르고 달리는 스타일의 리전에서는 플레이어 뒤에 뭐가 있는지는 보지 못하더라도 앞 공간을 넓게 보여주는 뷰가 필요합니다. 이리저리 탐색해야 하는 리전에선 양방향 모두 넓게 볼 수 있는 뷰가 필요하고요.

클로노아에서 본 것처럼, 3D 환경 표현 기술은 줌인/줌아웃, 돌리 등 다양한 디렉션 도구로도 쓰일 수 있습니다. 줌은 화각(FOV: field of view)을 조정하는 것이고, 돌리는 타겟에 대해 화면 앞 쪽(관객으로 향하는 쪽)으로 또는 안쪽(관객에서 멀어지는 쪽)으로 카메라를 움직이는 것을 가리키는 영화 용어입니다. 이 둘 모두 씬의 프레임을 재구성하는 것이 목표라는 점에서는 비슷하지만, 접근 방식은 완전히 달라요. 돌리는 (가능한 곳에서라면) 훨씬 더 강한 물리적 실체감을 주거든요. 돌리와 줌의 차이에 대해 좀 더 알고 싶다면, 영화 사이트나 데이터 베이스를 참고해보세요. 여기에선 용어를 단순화하고자, 두 테크닉 모두 줌 투 핏이라고 부르겠습니다.

yoshi_240.gif

Yoshi’s Story © 1997 Nintendo (N64)

  • 줌 투 핏: 줌을 바꾸거나 화면 앞뒤로 움직여 특정 요소들을 자세히 볼 수 있게 해줌
  • 듀얼 포워드 포커스
  • 
카메라 윈도우 (수직)
  • 플랫폼 스냅
  • 
수동 조작

예를 들어 ‘요시 스토리 (Yoshi’s Story)’의 게임 씬은 요시와 보스, 기둥 등에 맞춰 프레임을 구성하고, 이에 따라 플레이어가 주의를 기울여야 할 모든 요소들, 즉 목표나 필드의 끝 등을 강조합니다. 카메라는 이런 요소들 부근을 중심으로 맞출 뿐만 아니라 좀 더 포커스하기 위해 줌아웃(실제로는 돌리 아웃)도 합니다.

itsp_240.gif

Insanely Twisted Shadow Planet © 2011
Shadow Planet Productions

  • 영상 출처 – Shadow Planet Productions Blog: ITSP Camera Explained
  • 
큐 포커스: 포커스가 게임 세계의 큐(cue)에 영향 받음 (예: 어트랙터) – 위치와 줌이 적이나 체크 포인트 등 다양한 큐를 위한 이중 고리형 어트랙터에 기반함.
  • 예측 포커스
  • 
타겟 포커스
  • 
물리 스무딩

‘인세인리 트위스티드 섀도우 플래닛 (Insanely Twisted Shadow Planet, 이하 ITSP)’의 카메라 시스템은 이후 큰 영향을 끼쳤습니다. 플레이어의 속도(예측 포커스)와 타겟(타겟 포커스), 무엇보다도 어트랙터를 써서 외부의 큐에 맞춰 플레이어가 그 곳에 집중할 수 있도록 한 최초의 작품 중 하나입니다. 이 뛰어난 카메라 시스템에 대해 더 궁금하다면 ITSP 게임 블로그에서 ITSP Camera Explained 글을 참고해 보세요.

Screen Shot 2015-04-09 at 10.35.33 AM.jpg

ITSP는 체크 포인트나 적 등 다양한 게임 내 큐에 대해 이중고리형 어트랙터 큐를 사용하고 있어요. 바깥쪽 고리에선 가중치 평균을 이용해 큐 쪽으로 카메라 포커스를 점차 이동시키고요. 안쪽 고리 안으로 들어가면 우주선의 위치는 완전히 무시되고 카메라는 큐에만 포커스를 맞춥니다. 큐마다 이 고리들이 다르고, 고리들끼리 겹칠 수도 있어서, 여러 다른 어트랙터들 사이에서 부드럽게 이동할 수 있죠.

게임 큐에 집중하게 만드는 방식에는 다른 방법들도 있지만, 고리형 어트랙터는 의도한 게임 플레이 요소에 집중하게 만드는 데에 아주 잘 동작해요. 반대의 상황으로 응용할 수도 있는데요. 카메라를 멀리 치워버리는 디트랙터를 이용해서 특정 게임플레이 요소에 더이상 집중하지 않게 만드는 것이죠. 게임 안에 뭔가 감춰진 요소에 대해 긴장감이나 비밀스러운 느낌을 주려고 할 때 유용할 수 있을 거에요.

aether_240.gif

Aether © 2008 Armor Games (Edmund McMillen, Tyler Glaiel)

  • 큐 포커스: 카메라 방향이 중력에 따라 이동함
  • 
포지션 락
  • 
선형 보간

‘에테르 (Aether)’는 에드문드 맥밀런과 타일러 글라이엘이 2008년에 만든 아름다운 플래시 게임이에요. 큐에 대해 아주 독특한 접근 방식을 선보였는데요. 행성에 가깝게 다가가면 세계를 회전시켜서 안전한 곳으로 안내한다는 느낌을 전달해요. 그 안내를 따라 내려가면 착륙하게 되고요. 그러다 우주로 날아 올라가서 다른 중력장에 잡히게 되면, 화면은 그 중력 요소를 향해 회전하기 시작해요.
limbo_240.gif

Limbo © 2010 Playdead

  • 리전 기반 앵커: 줌, 포지션 (그리고 노출)
  • 포지션 락: 리전마다 달라짐
  • 큐 포커스: 특정 액션이 큐를 트리거함. (예: 적의 공격 등)
  • 
물리 스무딩

카메라 시스템을 얘기하면서 ‘림보 (Limbo)’를 빼놓을 순 없겠죠. 림보는 노출, 위치, 줌을 조작해서 정말 독특한 분위기를 만들어냅니다. 리전마다 특징이 다른데, 화면의 특정 지점에 위치를 앵커링해서 특정 오브젝트가 카메라 큐를 더 줄 수 있게 만들어요. 예를 들면 적에게 붙은 어트랙터 오브젝트 같은 것이요.
geometrywars_240.gif

Geometry Wars © 2003 Bizarre Creations

  • 리전 포커스: 리전 앵커(예: 플레이 필드의 중심점)와 플레이어 위치를 결합한 곳에 포커스 – 카메라 위치는 우주선과 필드 중심점 사이의 평균값

단순하면서도 효과적인 또다른 접근 방식으로는 ‘지오메트리 워(Geometry Wars)’에 쓰인 리전 포커스를 들 수 있어요. 이 방식은 우주선의 위치와 필드의 중심점을 결합하는 건데요. 그 결과 화면이, 방향은 우주선 쪽으로, 속도는 우주선 속도의 절반만큼 늘 움직이게 되죠. 플레이어는 중심점에서 얼마나 떨어져 있는지를 통해 자신이 필드의 어디쯤에 있는지 늘 알 수 있죠. 이 시스템은 필드가 폐쇄형이고 공간이 제한적이며 위협들이 중심에 주로 뭉쳐나오는 게임에는 완벽하게 동작합니다.

vessel_240

Vessel © 2012 Strange Loop Games

  • 리전 포커스: 카메라 위치는 대부분 리전 앵커 포인트에 기반하나, 플레이어가 움직이면 살짝 이동함
  • 
리전 기반 앵커: 리전마다 앵커 포지션과 줌 팩터를 따로 제공함
  • 
큐 포커스
  • 
물리 스무딩
  • 
시네마틱 패스

‘베슬(Vessel)’은 고전적인 퍼즐 게임인데요. 플레이어는 서로 다른 요소들을 많이 알아차려야 이 액체 기반의 퍼즐을 풀 수 있어요. 그래서 카메라가 리전을 비추는 게 훨씬 더 중요하죠. 지오메트리 워가 그랬던 것처럼 개발사인 스트레인지 루프는 퍼즐을 푸는 동안 카메라를 거의 고정시키는 식으로 리전을 더 강조해서 문제를 해결했어요. 고전적인 방 탈출 게임을 현대적으로 해석한 셈인데요. 베슬에선 그 방들이 크기나 특징이 서로 달라서 훨씬 더 유연한 방들인 셈이죠.

베슬에서 보여준 아주 영리한 방식 중 하나는, 카메라가 리전만 비추게 제한되어 있음에도, 조금씩 이동해서 플레이어를 따라간다는 거에요. 덕분에 공간이 제한되어 있어도 조작감을 강하게 주죠. 나아가 플레이어가 퍼즐을 풀고 리전을 떠날 때, 카메라가 이미 움직이고 있기 때문에 다음 리전으로 이동할 때 카메라 가속이 떨리는 걸 최소화할 수도 있고요.

tomba_240_2.gif

Tomba! © 1997 Whoopee Camp

  • 제스처 포커스: 게임 플레이가 카메라 제스처를 트리거함 – 카메라가 제스처와 스테이트를 반영한 위치로 이동함
  • 듀얼 포워드 포커스 (수평)
  • 
플랫폼 스냅
  • 
카메라 윈도우 (수직)

카메라로 시선을 유도하거나 극적인 상황을 연출하는 또다른 방식은 플레이어의 행동에 따라 미리 정해놓은 카메라 제스처를 트리거하는 것입니다. ‘툼바 (Tomba)’는 플레이스테이션용 2.5D 게임 중 초기작으로 재미있는 게임인데요. 평소에는 카메라를 슈팅 각도와 일치시켜두지만, 플레이어가 어딘가를 기어오르거나 깊은 곳 사이를 움직이거나 하는 액션들을 하면 카메라가 다른 각도로 돌아갑니다. 카메라가 플레이어 뒤로 돌아가면, 앞에 뭐가 있는지 보이기도 하고 조작감도 독특해지죠.

게임 플레이로 트리거하는 제스처는 모션 종류, 축, 플레이어의 조작에 대해 반응하거나 예측하는 등 다양한 방식으로 사용될 수 있어요. 플레이어가 만들어낸 액션과 그에 따라 카메라가 어떻게 움직이는지에 대한 관계에 대해서는 우리가 여전히 겉만 핥는 정도라고 생각합니다.

aztez_240.gif

Aztez © [Release TBA] Team Colorblind

  • 제스처 포커스: 게임 플레이 액션에 트리거되어 줌(화면 앞뒤로 움직임)과 틸트가 일어남
  • 포지션 락 (수직)
  • 
선형 보간
  • 
줌 투 핏

현재 개발 중인 격투 게임, ‘아즈테즈(Aztez)’는 제스처 포커스의 잠재력을 훌륭하게 보여주는 예입니다. 줌(화면 안팎으로 움직임), 틸트 등의 카메라 제스처를 이용해서 근접전이나 막타 등의 상황에 극적인 효과와 맥락을 추가합니다.

이 시스템은 정말 강력해서 디자이너들이 게임 플레이의 맥락을 깨지 않으면서도 시네마틱하게 끊어지는 장면을 넣을 수 있습니다. 일종의 컷없는 컷씬이죠.

streetsofrage_240.gif

Streets of Rage © 1991 Sega

  • 시네마틱 패스: 카메라가 통상적인 동작을 멈추고 화면 밖의 내러티브를 전함
  • 
리전 기반 앵커
  • 
카메라 윈도우: 표준적인 브롤러 타입의 카메라 윈도우, 일방향, 싸움 중에만 효과적임

세가의 고전 브롤러인 ‘스트리트 오브 레이지 (Streets of Rage)’에서 카메라는 브롤러의 표준 카메라웍처럼 대부분 일방향 카메라 윈도우를 써서 플레이어의 액션을 따라갑니다. 하지만 이따금 카메라는 화면 밖으로 물러나서(정확히는 플레이어에게서 멀어져서) 내러티브나 극적인 순간을 만들어내곤 합니다.

alienhominid_240

Alien Hominid © 2004 The Behemoth

  • 리전 기반 앵커
  • 
시네마틱 패스
  • 
카메라 윈도우: 표준적인 브롤러 타입의 카메라 윈도우, 일방향, 싸움 중에만 효과적임

시네마틱 패스는 베히모스의 ‘에일리언 호미니드 (Alien Hominid)’와 ‘캐슬 크래셔 (Castle Crashers)’에도 잘 쓰였습니다. 보통의 게임 플레이가 일시 정지된 상태로 카메라가 보스나 스토리 요소 쪽으로 옮겨가는 장면이 많습니다. 이렇게 하면 플레이어가 액션에 집중하는 것을 해치지 않으면서도, 게임 플레이를 안내하고 내러티브를 전달할 수 있습니다.

멀티 포커스 카메라

여러 개의 오브젝트에 포커스 맞추기

지금까지 본 것처럼 포커스를 맞출 타겟이 하나라도 생각할 거리가 많아 꽤 까다롭습니다. 그럼 플레이어나 타겟이 여럿이라면 어떻게 풀어야 할까요?

gauntlet_2_240.gif

Gauntlet © 1985 Atari Games

  • 포지션 애버리지: 관심 타겟 모두의 평균 위치에 포커스함

‘건틀렛 (Gauntlet)’은 당시 한참 앞선 기술과 디자인으로 게임계를 흔들었던 던전 크롤러입니다. 화면에 플레이어가 여러 명인데, 이 게임에선 카메라를 단순히 여러 명 위치의 평균값에 고정시켰어요. 하지만, 모든 플레이어가 같은 방향으로 걷지 않는 한, 플레이어 간의 거리가 화면 크기와 같아지자마자 아무도 움직일 수 없었죠. 사실 플레이어가 플레이 중에 자리를 비워 버리면, 플레이어들이 화면 가장자리를 넘을 수 없었기 때문에(화면을 밀 수 없었기 때문에) 같이 게임 중이던 모두가 꼼짝할 수도 없게 됐습니다.

samuraigunn_240_3

Samurai Gunn © 2013 Teknopants

  • 포지션 애버리지
  • 
선형 보간
  • 엣지 스냅: 정신없이 빡빡한 분위기를 만들어 내고 싶을 땐 보통 엣지 스냅 방식을 취함. 덕분에 화면이 거의 언제나 움직임.

‘사무라이 군(Samurai Gunn)’은 같은 테크닉을 사용하지만 이 테크닉을 한계까지 밀어붙여 정신없이 빡빡한 환경을 만들어냅니다. 화면 일시 정지나 페이드 아웃까지 자주 있기 때문에 이런 빡빡함이 더 강조되죠. 플레이어가 자주 리스폰하거나 순간이동하기 때문에, 플레이어들 위치의 평균값이 즉시 바뀌게 되고, 이에 따라 카메라 포커스도 급격하게 이동하곤 합니다. 사실 기본적인 가장자리 스냅도 하지 않기 때문에 카메라가 레벨의 경계 밖으로 벗어나는 일도 생깁니다. 이런 카메라 움직임은 게임 분위기와는 잘 맞지만, 지켜보기에는 좀 불편할 수 있어요. 특히 관전하는 사람 입장에선 말이죠. 흔치 않지만 캐릭터를 조작하다가 플레이어가 그러길 원한다면 자연스레 화면 밖으로 나가볼 수도 있습니다. 화면 가장자리에서 막히는 일이 없으니까요.

streetfighter_240

Street Fighter © 1987 Capcom

  • 카메라 윈도우 (수평): 윈도우 엣지에 닿으면 카메라가 끌려 옴. 다른 캐릭터가 같이 끌려오기도 함

또다른 방식은 오래된 ‘스트리트파이터(Street Fighter)’ 프랜차이즈 전반에 걸쳐 찾아볼 수 있습니다. 이 게임에선 수평적인 카메라 윈도우를 쓰고 있고, 덕분에 게임 대부분 카메라는 안정되어 있습니다. 다른 카메라 윈도우와 마찬가지라 플레이어가 윈도우의 가장자리에 닿으면 카메라를 그쪽으로 당기게 됩니다. 카메라가 움직이면 그만큼 상대 플레이어도 당겨와서 모든 플레이어가 윈도우 안에 있게 만듭니다. 카메라(+ 플레이어들)는 두 플레이어가 서로 반대방향으로 윈도우를 밀 때만 멈추게 됩니다.

supersmash_240_2.gif

Super Smash Bros. © 1999 Nintendo (HAL Laboratory)

  • 줌 투 핏
  • 
포지션 애버리지
  • 선형 보간

멀티플레이어를 재정의한 또다른 프랜차이즈는 닌텐도의 ‘수퍼 스매시 브라더스(Super Smash Bros.)’입니다. 시리즈 중 첫 작품에서도 카메라 관련 뛰어난 방법이 있었는데요. 수퍼 스매시 브라더스의 카메라는 모든 플레이어 위치의 평균값을 향하는데, 플레이어들 사이의 거리가 길어지면 필요한 만큼 줌아웃하기도 합니다.

rrr_240.gif

ROCKETSROCKETSROCKETS © 2014 Radial Games

  • 줌 투 핏
  • 
포지션 애버리지

이 카메라 시스템은 오늘날에도 잘 통하는데요. ‘로켓로켓로켓(ROCKETSROCKETSROCKETS)’의 경우 두 가지 목적으로  쓰고 있어요. 모든 걸 한 프레임에 보여주는 게 첫번째고, 근접전을 피하려는 플레이어들에게 벌을 내려 플레이어들이 가운데를 향하게 만드는 것이 두번째에요.

neveralone_240_2

Never Alone © 2014 Upper One Games

  • 물리 스무딩
  • 포지션 애버리지
  • 
시네마틱 패스
  • 리전 기반 앵커
  • 
큐 포커스

앞에서 본 것처럼 네버 얼론에서는 싱글 플레이어나 멀티 플레이어 어느 쪽이든 캐릭터들 위치의 평균값을 구하고, 가중치를 조금 다르게 주고 있어요.

spelunky_mp_240.gif

Spelunky © 2008-2012 Mossmouth (Derek Yu)

  • 포지션 락
선형 보간
[수동 조작]: 수직 방향으로 더 패닝 하고 싶을 때는 위/아래 키를 누름

플레이어들의 위치 때문에 생기는 충돌 문제를, ‘스펠렁키(Spelunky)’는 한 번에 한 플레이어에만 포커스를 맞춰 해결하는 방식을 취했어요. 플레이어가 죽으면, 횃불(하얀 깃발)이 다른 플레이어에게 전해져요. 이는 플레이어가 죽었을 때 카운트다운을 시작하면서 화면 밖으로 쫓아내는, 실제 게임 플레이 요소가 됐어요.

수동 조작

플레이어가 카메라를 따로 조작할 수 있도록 하라

어떤 경우엔 디자이너들이 플레이어의 선택에 따라 추가로 시각 정보를 줘야 할 때도 있습니다. 조작에 카메라를 붙여버리는 것도 이에 대한 해법입니다.

marioworld_3_240b

Super Mario World © 1990 Nintendo

  • 리전 기반 앵커
  • 플랫폼 스냅: 가능한 곳에서
  • 
카메라 윈도우 (수직): 가능한 곳에서
  • 듀얼 포워드 포커스: 트레쉬 홀드가 트리거함
  • 수동 조작 (수평): 컨트롤러로 추가 패닝할 수 있음
  • 다시 한 번, 수퍼 마리오 월드가 별도로 카메라 조작을 붙인 첫 게임들 중 하나에요. 콘트롤러의 숄더 버튼을 누르면 카메라를 각 방향으로 더 밀 수 있었죠. 꽤 영리한 아이디어라고 할 수도 있는데, 가끔은 별 쓸모 없다는 비판을 받기도 했어요. 어쨌거나 게임을 시작할 때 플레이어 대부분은 그런 기능이 있는 걸 알아채지 못했거든요.

수퍼 마리오 월드의 카메라 별도 수동 조작의 문제점은 그게 전혀 직관적이지 않다는 것이었어요. 걸어다니는 조작과 숄더 버튼은 전혀 관련이 없었거든요.

osmos_240.gif

Osmos © 2009 Hemisphere Games

  • 포지션 락
  • 
수동 조작: 마우스 휠 또는 여러 손가락을 오므리거나 벌려서 줌을 변화시킴

직관적인 수동 카메라 조작을 제시한 좋은 예는 ‘오스모스 (Osmos)’에서 찾을 수 있어요. 표준적인 스크롤러는 아니지만, 오스모스는 카메라를 바꾸는 것에 훨씬 더 은근한 방법을 썼어요. 데스크탑의 마우스 휠, 타블렛의 두 손가락으로 줌 조정하기는 조작과 그 결과의 액션이 잘 연결되는 경우죠.

jazzjackrabbit_240_2

Jazz Jackrabbit 2 © 1998 Epic Games

  • 선형 보간 (수직)
  • 
타겟 포커스: 컨트롤러 입력에 따라 카메라가 움직여 진짜로 시각적으로 포워드 포커스 할 수 있게 함. 스틱/커서키를 밀면 해당 방향으로 포커스를 밀 수 있음
  • [ 수동 조작 ]
수직 방향으로 수동으로 올려다 보는 건 타겟 포커스의 연장선 상에 있음

앞에서 봤던 것처럼 재즈 잭래빗 2는 수직 패닝을 따로 조작할 수 있었는데, 이는 수평적인 것과 완전하게 관련되어 있었기 때문에, 예측가능하고 쉽게 알 수 있어요.

spelunky_crouch2_240_2.gif

Spelunky © 2008-2012 Mossmouth (Derek Yu)

  • 포지션 락
  • 
선형 보간
[수동 조작]
: 수직 방향으로 더 패닝 하고 싶을 때는 위/아래 키를 누름

포커스를 따로 조작해서 옮겨야 한다면, 이미 잘 쓰이고 있는 조작 방법을 사용하세요. 스펠렁키에서는 웅크리거나 올려다 보면 카메라 포커스를 그에 맞춰 이동시킵니다.

카메라 셰이크

모든 조작이 안 되는 순간

지금까지 봤던 것처럼 카메라 조작을 진정하고 분명하게 만들면 플레이어와 화면 안 가상 세계간의 일체감을 줄 수 있습니다. 그 반대도 맞습니다. 카메라나 화면 셰이크를 통해 카메라와 조작 간의 불일치를 만들어 내면, 플레이어의 액션보다 훨씬 더 강력한 극적 감정을 만들 수도 있습니다.

marioshake_240.gif

Mario Bros. © 1983 Nintendo

조사하면서 카메라 셰이크를 처음으로 사용한 게임을 찾으려고 했는데요. 다시 한 번 미야모토의 작품이 나왔다는 게 놀랍지는 않았습니다. 바로 1983년의 마리오 브라더스인데요. 화면 흔들림은 특정 버전에서만 있었습니다.아마도 기술적 또는 시간적 제한요소 때문이었겠죠.

supercratebox_240

Super Crate Box © 2010 Vlambeer

화면 흔들림(화면 멈춤도 비슷한 효과를 거둡니다)은 정말 수없이 많은 게임에 사용됐습니다. Vlambeer의 지난 몇 년 간 사실상 모든 작품에서 찾아볼 수 있죠. 이 이슈에 대해 길게 살펴 보려면 Vlambeer’s designer JW talk를 확인해보세요.

맞춤 제작 카메라

모든 걸 한데 합쳐서: 여러분의 게임에 맞춰 카메라를 맞춤 제작하세요.

여러분의 게임에는 온갖 곳에 디테일을 넣고 집중해야 합니다. 하지만 다른 요소들만큼이나 카메라에도 집중할 가치가 있습니다. 기본값인 타겟 포커스 카메라를 설정하기 전에, 게임에서 카메라가 어떻게 움직이길 바라는지 요구 조건들을 만들어 보세요..

몇 가지 기본 규칙을 소개해보겠습니다. 제 게임을 만드는 동안 제게 잘 통했고, 덕분에 이 연구를 하게 됐습니다.

  • 게임의 독특하고 주요한 특징을 찾아라.
  • 비슷한 도전을 맞닥뜨린 다른 게임들에서 영감을 얻어라.
  • 네 자신만의 고유한 것을 만들어라.

당연한 얘기지만 카메라 웍 뿐만 아니라 아트, 오디오, 기술 등등 여러분 게임의 어떤 면에나 적용될 얘기일 겁니다.

kage_240h.gif

The Legend of Kage © 1985 Taito

  • 포지션 락 (수직)
  • 
카메라 윈도우 (수평): 윈도우 크기는 나무 너비에 기반함.

여기 카메라를 게임 플레이에 맞춰 커스텀한 훌륭한 예가 있습니다. 타이토가 개발한 ‘카게의 전설(The Legend of Kage)’은 이중 축을 쓴 최초의 플랫포머 중 하나였습니다. (재미있는 사실: 이 게임은 주요 진행 방향이 오른쪽에서 왼쪽으로 이뤄지는데요. 이 방식을 이용한 최초이자 아마도 유일한 게임 중 하나일 겁니다.) 수평 카메라 윈도우를 어떻게 썼는지 보세요. 에픽한 전투가 나무에서 많이 일어나기 때문에, 카메라 윈도우는 나무의 너비에 딱 맞춰 설정되었고, 덕분에 전투 중에 카메라가 급격하게 방향 전환하지 않고 안정적일 수 있었죠.

shinobi_cam

Shinobi © 1987 Sega

  • 포지션 스냅 (수직)
  • 카메라 윈도우 (수직)
  • 포지션 락 (수평)
  • 
스태틱 포워드 포커스

기존에 있던 시스템을 디자인에 맞춰 테일러링한 좋은 예는 시노비에요. 점프를 높이 할 수 있게 하려고 카메라 윈도우를 굉장히 높게, 거의 화면 전체 높이 정도로 잡았어요. 그리고 중심에서 벗어나버리는 걸 막기 위해서, 포지션 스냅도 천천히 일어납니다.

sonic_cam2_180h.gif

Sonic the Hedgehog © 1991 Sega

  • 플랫폼 스냅
  • 
카메라 윈도우
  • 스태틱 포워드 포커스
  • 수동 조작

‘소닉더헷지혹(Sonic the Hedgehog)’은 다중 축의 고속 플랫포머입니다. 윈도우의 너비는 소닉을 항상 화면의 중심에 놓을 수 있게 디자인했는데, 앞에서 뭐가 빨리 나오고 있는지 플레이어가 언제나 확실하게 볼 수 있어야 했기 때문이죠. 윈도우 높이는 더 높은데요. 작게 점프했을 때 생기는 수직적인 모션을 더 제한하기 위해서입니다. 플랫폼 스냅이 반대쪽에서 균형을 맞춰주는데요. 덕분에 소닉이 플랫폼 위에 있는 한 수직 정렬이 유지되죠.

윈도우 엣지를 그렇게 빠른 속도로 부딪치면, 윈도우가 가끔 덜덜 떨릴 수도 있습니다. 특히 빙빙 도는 곳에서 중력 속력을 최대로 해서 윈도우의 아래로 내려갈 때가 그렇죠. 윈도우를 짧고 좁게 만들어서, 카메라가 정적일 때 생길 수 있는 가속의 최대값에 제한을 걸어 그런 일을 최소화했습니다.

cave_240

Cave Story © 2004 Studio Pixel

  • 포지션 락 (수직)
  • 듀얼 포워드 포커스
  • 
물리 스무딩
  • 
수동 조작: 수직 방향으로 더 패닝 하고 싶을 때는 컨트롤러로 조작

앞을 넓게 보는 뷰가 필요하지만 모션은 어느 방향으로든 제한되지 않았다면, 듀얼 포워드 뷰가 자연스러운 선택입니다. 방향 전환이 일어나면 원하는 앵커에 맞춰 뷰를 스냅하는 데에는 여러 방법이 있습니다. 케이브 스토리는 플레이어가 걷는 속도에 맞춰 스냅 속도를 동적으로 변화시키는 훌륭한 방법(예: 기본 스냅 스피드 + 걷는 스피드)을 썼습니다. 보난자 브라더스는 플레이어가 걸을 때만 움직임을 제한하는 식으로 살짝 다른 방법을 썼는데요. 이는 강도 게임에는 잘 통하지만, 케이브 스토리처럼 적으로 가득찬 플랫포머에 꼭 필요하지는 않았어요.

fez_2_240_longB

Fez © 2012 Polytron Corporation

  • 카메라 윈도우 (수평): 차원 이동 동안에도 강제됨
  • 포지션 락 (수직)
  • 선형 보간
  • 
리전 기반 앵커
  • 수동 조작: 오른쪽 스틱을 이용하면 추가로 더 패닝할 수 있음

페즈는 적들이 몰려 다가오진 않아요. 기본적인 카메라 윈도우를 채택한 게 그래서 말이 되죠. 하지만 페즈의 디자이너는 이 고전적인 테크닉을 이 게임의 독특한 디자인에 잘 맞춰서 그 용도를 스마트하게 바꿨어요. 수 있게 말이죠. 모퉁이가 차원 변환 장소로 흔히 쓰인다면, 플레이어의 앞에 있는 것보다 뒤에 있는 게 사실 더 중요하다고 할 수도 있어요. 나아가 차원 변환 동안 카메라는 초점을 다시 맞춰서, 차원 변환 후에는 윈도우 엣지에 맞춰 앞의 거리를 최대한 볼 수 있도록 해줘요.

vessel_240

Vessel © 2012 Strange Loop Games

  • 리전 포커스: 카메라 위치는 대부분 리전 앵커 포인트에 기반하나, 플레이어가 움직이면 살짝 이동함
  • 리전 기반 앵커: 리전마다 앵커 포지션과 줌 팩터를 따로 제공함
  • 큐 포커스
  • 
물리 스무딩
  • 
시네마틱 패스

베셀에서 취한 접근은 방 하나에 퍼즐이 하나씩 있는 다른 퍼즐 게임에도 완벽하게 맞는 디자인 해법이에요. 리전 포커스를 사용해서 필요한 퍼즐 요소들 전부를 카메라 프레임에 넣으면서도 줌은 플레이어에게 완벽하게 보여주죠. 여기에 플레이어 기반 이동을 덧붙여서, 조작감이 더 나아지고, 리전 사이를 오갈 땐 카메라를 ease into하게 해주고, 전반적으로 프리셋 프레이밍과 인지할 수 있는 조작을 탄탄하게 잘 섞어냈어요.

swapper_2_240_noise.gif

The Swapper © 2013 Facepalm Games

  • 타겟 포커스
  • 
물리 스무딩
  • 
리전 기반 앵커
  • 큐 포커스
  • 시네마틱 패스

앞에서 봤듯이 스와퍼는 독특한 분위기로 아주 공들인 스토리텔링을 보여주는데요. 서로 다른 시네마틱 패스로 카메라를 조작하는 것만으로 이뤄냈어요. 이 방법은 플레이어가 게임에 항상 있도록 만들고, 컷신과는 달리 플레이어가 방향감을 잃지 않게 하면서도 드라마를 제공합니다.

Mushroom 11 ( http://mushroom11.com/ )

m11_greenlogo.png

제가 선택한 카메라들

머쉬룸 11의 카메라 시스템은 리전마다 카메라를 꼼꼼하게 디렉션하는 식으로 구성했어요. 각 레벨은 십여 개의 서로 다른 리전으로 구성되어 있고, 각 리전마다 카메라가 제한된 고유의 사각형 패스가 있어요. 그 리전엔 프리셋 줌도 있어요(FOV 요소).

Screen Shot 2015-04-14 at 4.00.04 PM.jpg

Mushroom 11 © [Release TBA] Untame

  • 리전 기반 앵커: 리전마다 사각형 패스와 줌 팩터를 미리 설정함
  • 
포지션 애버리지: 가능한 리전에서만
  • 
스태틱 포워드 포커스: 가능한 리전에서만
  • 
큐 포커스: 가능한 리전에서만
  • 예측 포커스
  • 
물리 스무딩: 스무딩 팩터는 속력에 기반함

리전들마다 세심하게 순서를 매겼고, 카메라는 숫자가 가장 높게 매겨진 리전에 있는 머쉬룸 조각을 따라서 조작돼요. 세포 하나라도 어떤 조각이 숫자가 더 높게 매겨진 리전에 닿으면, 카메라는 그 조각을 따라 이동해요.

m11_lvl2_seesaw_240_2.gif

Mushroom 11 © [Release TBA] Untame

  • 리전 기반 앵커: 리전마다 사각형 패스와 줌 팩터를 미리 설정함
  • 포지션 애버리지: 가능한 리전에서만
  • 
스태틱 포워드 포커스: 가능한 리전에서만
  • 
큐 포커스: 가능한 리전에서만
  • 예측 포커스
  • 
물리 스무딩: 스무딩 팩터는 속력에 기반함

카메라 경계에 닿는 어떤 세포라도 부숴버리는 걸 보세요. 덕분에 카메라가 정확해질 가능성이 더 높아졌죠. 위의 예에서 잘 나타나지만, 이는 플레이어가 해법을 떠올릴 때까지 공간을 충분하게 제공하죠. 이어서 조각이 새로운 리전에 닿으면 카메라가 빠르게 이동합니다. 이 모든 과정이 화면 엣지가 중요한 세포는 하나도 부수지 않게 하면서 이뤄져요.

이 게임에서 리전에는 평균 지향성 리전과 진행 지향성 리전, 크게 두 종류가 있습니다. 리전 종류에 따라 카메라가 어디에 포커스해야 하는지 결정되면, 카메라는 해당 리전의 사각형 패스에 갇힌 채 그 지점을 향해 움직이려고 합니다.

평균 지향성 리전

어떤 리전에서는 모든 세포들 간에 포지션 애버리지 방식을 사용합니다. 그럼 자연히 좀 더 덩치가 큰 버섯 조각 쪽으로 카메라가 포커스를 맞추죠. 이 방식은 플레이어가 여러 개의 조각을 다뤄야 하는 곳이나 진행 방향이 어느 한 곳으로 특정되지 않았을 때에 효과적입니다. 이 리전 종류는 그 자체가 크기가 제한된 퍼즐 공간을 제공하는데요. 이 안에서는 퍼즐들이 적당히 가까운 곳에 있게 됩니다. (그렇지 않으면 화면 엣지에 닿게 돼요.)

m11_pool1_avg_240.gif

Mushroom 11 © [Release TBA] Untame

  • 리전 기반 앵커: 리전마다 사각형 패스와 줌 팩터를 미리 설정함
  • 
포지션 애버리지: 가능한 리전에서만
  • 
스태틱 포워드 포커스: 가능한 리전에서만
  • 큐 포커스: 가능한 리전에서만
  • 
예측 포커스
  • 물리 스무딩: 스무딩 팩터는 속력에 기반함

진행 지향성 리전

좀 더 직선 진행 방식의 리전은 가장 앞서나간 버섯에 초점을 맞출 필요가 있습니다. 이 리전에서는 어느 순간에나 (해당 리전의 미리 정해놓은 선형 진행 경로에서) 가장 앞서 나간 버섯 조각이 카메라를 조작하고, 뒤쳐진 조각들은 무시됩니다. 그리고 추가로 스태틱 포워드 포커스 거리가 적용되는데요. 이런 종류의 리전과 잘 맞습니다.

m11_lvl1_bldg_3_240.gif

Mushroom 11 © [Release TBA] Untame

  • 리전 기반 앵커: 리전마다 사각형 패스와 줌 팩터를 미리 설정함
  • 포지션 애버리지: 가능한 리전에서만
  • 
스태틱 포워드 포커스: 가능한 리전에서만
  • 큐 포커스: 가능한 리전에서만
  • 
예측 포커스
  • 
물리 스무딩: 스무딩 팩터는 속력에 기반함

어느 종류의 리전이든 큐 포커스와 함께 결합해서 쓰일 수 있습니다. 전체적인 카메라 조작은 리전에서 정한 대로 조작되지만, 특정 오브젝트나 크리쳐들은 특화된 또는 다이나믹한 어트랙터 요인들을 통해 카메라 어트랙터로 기능할 수 있습니다. 아래에서 보는 것처럼, 보스 전들은 이렇게 접근 방식을 쓰기 좋은 곳이죠.

m11_boss3_3_240.gif

Mushroom 11 © [Release TBA] Untame

  • 리전 기반 앵커: 리전마다 사각형 패스와 줌 팩터를 미리 설정함
  • 
포지션 애버리지: 가능한 리전에서만
  • 스태틱 포워드 포커스: 가능한 리전에서만
  • 
큐 포커스: 가능한 리전에서만
  • 예측 포커스
  • 
물리 스무딩: 스무딩 팩터는 속력에 기반함

스무딩

스무딩은 예측 포커스와 물리 스무딩을 조합해서 했습니다. 버섯 속도에 기반해서 스무딩 팩터를 사용한 게 잘 동작하더라고요. 플레이어가 빨리 움직이면 카메라가 정확(동시에 확확 뛰고)하고, 플레이어가 버섯을 부드럽게 잘라내면 카메라가 부드럽게 나아가죠.

이 게임에는 점프가 없기 때문에, 예측 포커스를 사용하는 게 자연스럽습니다. 몇 밀리세컨즈 후에 버섯 조각(또는 모든 조각의 평균값)이 있을 곳으로 예측되는 곳에 카메라를 조준하면, 좀 더 정확하고 예측되는 카메라 이동을 얻을 수 있어요.

m11_lvl6_crosscog_30fps_240.gif

Mushroom 11 © [Release TBA] Untame

  • 리전 기반 앵커: 리전마다 사각형 패스와 줌 팩터를 미리 설정함
  • 포지션 애버리지: 가능한 리전에서만
  • 스태틱 포워드 포커스: 가능한 리전에서만
  • 큐 포커스: 가능한 리전에서만
  • 예측 포커스
  • 물리 스무딩: 스무딩 팩터는 속력에 기반함

이 모든 행동들이 정의 되면, 크기와 속력이 각기 동적으로 변화하면서 리전을 빠르게 넘어 다니는 조각들을 카메라 시스템에서 다룰 수 있게 됩니다.

m11_lvl5_rocketgas_240

Mushroom 11 © [Release TBA] Untame

  • 리전 기반 앵커: 리전마다 사각형 패스와 줌 팩터를 미리 설정함
  • 포지션 애버리지
  • 스태틱 포워드 포커스
  • 큐 포커스:가능한 리전에서만
  • 예측 포커스
  • 
물리 스무딩: 스무딩 팩터는 속력에 기반함

색인

  • 듀얼 포워드 포커스: 플레이어가 방향을 전환하면 카메라 포커스를 바꿔 플레이어의 앞쪽을 더 멀리 내다보게 해줌
  • 리전 기반 앵커: (같은 레벨이라도) 리전마다 포지션과 포커스를 위한 별도의 앵커를 설정함
  • 리전 포커스: 리전 앵커와 플레이어 위치를 결합한 곳에 포커스
  • 물리 스무딩: 카메라가 물리가 적용된 엔티티라서 포커스 타겟에 끊임없이 다가감
  • 선형 보간 스무딩: 선형 보간을 이용해서 활발히 움직이는 플레이어와 카메라 사이의 거리를 꾸준히 줄임
  • 스태틱 포워드 포커스: 주된 진행 방향으로 앞 쪽 공간을 더 넓게 보여줌
  • 스피드업 풀 존: 플레이어가 윈도우 엣지를 넘어가면 플레이어 속도에 맞추기 위해 카메라를 잡아당김
  • 스피드업 푸쉬 존: 푸쉬 존 안에 있을 때는 카메라를 조금씩 가속시켜 플레이어 속도에 맞춤
  • 시네마틱 패스: 카메라가 통상적인 동작을 멈추고 화면 밖의 내러티브를 전함
  • 엣지 스냅: 카메라 좌표에 가장자리(엣지)를 특정 값으로 고정함
  • 예측 포커스: 카메라는 플레이어의 예측된(외삽된) 위치를 따라다님
  • 자동 스크롤: 플레이어는 화면 스크롤을 따로 조절할 수 없음
  • 제스처 포커스: 게임 플레이가 카메라 제스처를 트리거함
  • 줌 투 핏: 줌을 바꾸거나 화면 앞뒤로 움직여 특정 요소들을 자세히 볼 수 있게 해줌
  • 카메라 패스: 레벨 전체에 걸쳐 카메라의 진행 경로(path)를 미리 정해 놓음
  • 카메라 윈도우: 플레이어가 윈도우의 가장자리에 닿으면 카메라 위치를 그 방향으로 밀어 움직임
  • 큐 포커스: 포커스가 게임 세계의 큐(cue)에 영향 받음 (예: 어트랙터)
  • 타겟 포커스: 컨트롤러 입력에 따라 카메라가 움직여 진짜로 시각적으로 포워드 포커스 할 수 있게 함
  • 포지션 애버리지: 관심 타겟 모두의 평균 위치에 포커스함
  • 포지션 락: 카메라는 플레이어 위치에 고정됨
  • 포지션 스냅: 카메라를 플레이어 뒤 쪽에 포커스해서 윈도우 밖으로 나가는 일을 계속 줄임
  • 플랫폼 스냅: 플레이어가 플랫폼에 착지할 때만 카메라가 플레이어에 스냅함

고맙습니다!

이 연구를 진행하는 동안 정말 많이 도와주신 훌륭한 인디 게임 커뮤니티에 감사하고 싶습니다. 그리고 대단한 지지를 보내주신 NYU 게임 센터에도 특별히 감사드립니다.

(끝)

Advertisements