직감을 믿어라 –사이드 프로젝트 성공 스토리
작성자: 제레미 알레시(Jeremy Alessi) 작성일: 2012년 8월 8일
베테랑 모바일 개발자 제레미 알레시가 간단한 사이드 프로젝트가 깜짝 놀랄만큼 성공한 앱으로 바뀌는 과정에 대해 적는다. 원래의 아이디어, 기술적 구현, 비즈니스 모델의 모든 측면에서 살펴보자.
게임 개발자라면 누구나 자기 경력에 곁다리로 하는 실험적인 프로젝트(pet project) 하나씩은 있었다고 해도 과언이 아닐 것이다. 하나 이상의 프로젝트를 동시에 하지 않으려 들면서 창의력을 발휘하기란 거의 불가능하다. c.AR 1 이 그런 경우였다. 가상의 자동차를 사진에 합성시키는 게임스러운(game-like) 성격을 가미한 앱이다.
이 앱은 여러 유명한 레이싱 게임에 있는 “포토 모드” 기능에서 영감을 받아 만들었다. <그란 투리스모(Gran Turismo)>, <포르자(Forza)>는 물론, 이제는 <리얼 레이싱(Real Racing)>에서도 플레이어가 마음에 드는 자동차의 드라마틱한 사진을 캡춰해 저장할 수 있으며, 여기에 다양한 필터와 효과를 적용할 수도 있다. 물론 이 자동차 사진은 게임 밖의 세상에서는 별 소용이 없긴 하지만 말이다.
나는 c.AR을 통해서 게임 속 세상을 현실로 끌어내고, 소셜의 ‘날 좀 봐봐’ 느낌을 가미하고 싶었다. 무엇보다, 많은 광팬들이 자기 자동차 사진을 즐겨 저장해놓지만, 그 중에 색다른 게 몇이나 될까? 자기 집 앞이나 주차장에 없는 건 말할 필요도 없고.
이런 컨셉을 확고히 한 상태에서 작년부터 c.AR을 본격적으로 프로토타이핑하기 시작했다. 여러 가지 기술적인 문제들 때문에 앱 개발이 지연되기는 했지만 결국은 잘 해결되었고, 그 후 c.AR은 iOS 앱스토어에서 따뜻한 환영을 받았다.
게임 개발자의 콩깍지
펫 프로젝트(pet project)라는 게 다 그렇듯, 나도 c.AR을 쉽게 생각했다. 별로 큰 포부 같은 것도 없었다. – 나는 그저 기본적인 카메라 피드에 3D 자동차 모델을 후딱 떨어뜨리고 싶었을 뿐이다. 나는 항상 증강현실(augmented reality)에 관심이 있었고, 자동차 모델도 꽤 많이 모아놨었기 때문에 별 문제 없이 금방 될 줄 알았다.
실제로 나는 하룻밤 작업으로 뭔가 만들어서 실행시킬 수 있었는데, 이게 이쁘지가 않았다.
물론 나는 상당히 낙관적으로 생각했었다. 게임 개발자에게 콩깍지라는게 있다면, 그날밤 내가 콩깍지에 단단히 씌어 있었드랬다. 위의 사진에는 잘못된 게 너무 많아서 세어볼 엄두조차 안 난다. 그래도 몇 가지만 말해보자면 그림자가 없고, 진짜 카메라와 3D카메라의 화각(field of view)이 맞지 않고, 자동차 색깔은 최고급 도장의 광택이 아니라 캠벨 토마토 스프 색이다. 이대로라면 내 친구들을 페이스북(Facebook)에서 다신 못 보게 될 것이 분명했다.
물론, 앞서 말한 것처럼 나는 콩깍지가 씌어 있었다. 그래서 한 일주일쯤 돌아다니며 사진을 찍은 다음, 컨셉의 유연성을 테스트해보기로 했다. 펫 프로젝트이다보니 주위 사람들한테는 비밀로 하고 절친 하나와 동생한테만 얘기했다. 나는 때때로 그들에게 이메일이나 문자로 사진을 보내서 평을 들었다. 그럴듯한 사진을 캡쳐할 수 있는지 보는 게 꽤 재미있었다.
재미지기에 충분한 현실감
트랜스폼(transform)과 광도(light intensity)뿐인 프로토타입의 기본 기능으로 “연습”을 해 본 끝에 좀 나은 사진을 얻을 수 있었다. 하지만 뭔가 만들고 실행하는 새로운 기분은 머지 않아 사라지고, 나는 결국 현실을 직시하게 되었다. 이런 사진들을 시도하고 찍는 일이 재미있기는 하지만, 개발자로서 나 자신의 즐거움을 빼고 생각하면 별다른 쓸모가 없었다. 나는 어차피 이 프로젝트에 투입할 수 있는 자원이 제한 적이라서 완전 진짜 같은 사진은 만들 수 없으리라는 걸 알고 있었다. 그래서 나는 “재미지기에 충분히 현실적인” 것을 만들기로 했다.
하지만 그 수준을 맞추기 위해서도 몇 가지 트릭이 필요했다. 나는 그림자를 추가하는 것부터 시작했다. 먼저 사진들에서 그림자가 없는 게 가장 분명하게 눈에 띄었었다. 당연하지만 그림자는 엄청난 차이를 가져왔다. 말하자면 언캐니 밸리(Uncanny Valley2)의 저 끝에 숨결을 불어넣은 것 같은? 내 생각엔 그랬다.
그때부터 확실한 개선 리스트를 차근차근 실행해가기 시작했다. 다음 요소는 자동차 도장의 구형 리플렉션 맵(reflection map)이었다. 그 다음은 투명한 차창 차례였고. 각각의 3D 그래픽 속성을 개선하면서 상황이 점점 나아졌다. 나는 벽에 부딪힐 때까지 그저 자잘한 것들을 계속 손보았다.
진전이 되고 있었지만, 뭔가 내가 사진에 녹여내지 못하는 것이 있었다. 나는 점점 늘어나는 나의 라이브러리에 있는 것과 비슷한 앵글의 사진을 웹에서 찾아보기 시작했다.
바로 이거였다! 보기 싫은 텍스쳐나 다듬어지지 않은 형태는 잠깐 눈감아 주기 바란다. 이 범퍼샷은 자동차 전면에서 대략 2~4 피트(0.6~1.2 미터) 앞에, 조수석 쪽으로 살짝 비껴서서 찍은 것이다. 드라마틱한 사진을 하나 건져보려는 시도였다. 물론 비율이 완전 제멋대로기는 하다. 3D 게임 카메라와 아이폰 카메라가 싱크가 안 되어 있었다
그림자, 리플렉션 맵, 투명한 차창 따위로는 아무리 용을 써도 가짜 화각을 보완할 수가 없었다. 아이폰 카메라의 화각은 37.5도다. 3D 렌더링 카메라를 같은 각도로 설정하자 사진이 괜찮아 보이기 시작했다.
땅의 그림자, 리플렉션 맵핑, 일부 차창의 투명도와 적당한 3D 카메라 화각이 어우러지자 급격히 “재미지기에 충분히 현실적인” 단계에 다가섰다. 이 때의 가장 큰 문제는 에일리어싱(aliasing)이었다. 3D 모델 가장자리의 들쭉날쭉한 라인이 확눈에 들어왔다.
※ 자세한 내용은 첨부(PDF)화일을 참고하시기 바랍니다.
|