주의 : 이 내용은 개발자라면 헐~ 소스도 없으면서 이까짓 것으로 포스트를 날로 먹냐?
...라고 비난하실 것입니다. ㅠ.ㅠ
기술 지향 포스트가 아닌 웃자고 적은 글입니다.
따라서 개발자분들은 살포시 후진 버튼을 눌러주시고 좆뉴비와 잉여들은 즐겁게 읽습니다.
...라고 비난하실 것입니다. ㅠ.ㅠ
기술 지향 포스트가 아닌 웃자고 적은 글입니다.
따라서 개발자분들은 살포시 후진 버튼을 눌러주시고 좆뉴비와 잉여들은 즐겁게 읽습니다.
요즘 정기점검이 다가와 게임을 좀 못하고 있지만
아이돌마스터로 세개의 포스트를 적을려고 했던 기억이 나서 키보드를 들었습니다.
(솔직히 요즘 완다와 거상하고 있어요. ㅠㅠ; 3년전에 구입하고 거상 하나만 잡고 봉인해둔 게임인지라... .
완다와 거상으로 볼륨라이트 포스트라도 적을까요? 아님 거상의 WSM이라도?)
완다와 거상으로 볼륨라이트 포스트라도 적을까요? 아님 거상의 WSM이라도?)
우선 이 싯점에 적절한 아이돌마스터의 아케이드판을 한번 감상하지요.
나베르에 있는 아래 동영상은 아케이드부터 L4U까지의 진화과정을 쭈욱~ 보실 수 있습니다.
http://videolog.blog.naver.com/akizuru84/3000021653
거두절미하고, 엑박360으로 PV가 떴을때 수많은 오덕들을 하악하악하게 한건,
3D 게임중에 제대로된 모에(萌)작이 나왔다는 것이며
이런 쉘셰이딩(Cel Shading)을 어떻게 구현했냐는 호기심이었을 것입니다.
3D MSN(미소녀)... .
이것은 3D가 만들어지며 수많은 오덕들이 꾸준히 연구에 연구를 거듭해 왔습니다.
사실 이 짤방은 -만든 분의 의도야 어떻든-단순한 개그라 보기엔 의미가 너무 많이 내포되어 있습니다.
우습게 보여지지만 고라우드 셰이딩의 한계와 폴리곤 지향 개발 한계에 대한 정확한 고찰이 들어가져 있습니다.
오래된 이미지지만 두고두고 써먹을수 있을 것 같습니다.
우습게 보여지지만 고라우드 셰이딩의 한계와 폴리곤 지향 개발 한계에 대한 정확한 고찰이 들어가져 있습니다.
오래된 이미지지만 두고두고 써먹을수 있을 것 같습니다.
그리고 현실적으로 이것이다!! 싶은 아웃풋을 내논 제작사는 역시 일루전이라는 오덕 회사였습니다.
미행, 인터랙트 플레이, 인공소녀...등등 아주 뛰어난 고퀄리티의 게임을 만든 이 회사는 T&L, 다시 말해 DirectX 7.0 시대에 텍스쳐의 승리가 무엇인지를 개발자와 게이머들에게 일깨워줬습니다.
다만, 치밀한 텍스쳐에만 너무 심취하여 Device Lost 현상을 잡지 못한 치명적인 아쉬움이 있었죠.
뭔말이냐면 미행3 하다가 Alt + Tab 눌러 윈됴 화면갔다가 다시 게임으로 들어오면 아무것도 안나온단 이야기입니다.
아뭏든 일루전의 승리는 텍스쳐의 승리라도 봐도 무방합니다.
아, 물론 게임도 재미있었죠!
특히 인터랙트 플레이로 마우스를
화 난다고 집어 던지고 마우스 줄잡고 빙빙 돌리며 획~ 던지던 나쁜 버릇들을 고쳤습니다.
그리고 비슷한 시기 PS에서는 패러사이트 이브의 아야 블레어, DOA의 카스미 등등이 다양한 모에를 선보이고 있었으나,
결코 오덕들에게 만족감을 주지는 못했습니다.
그리고 PS2 시대로 접어들어 2002년 아주 큰 기대를 가득 안고 어떤 게임이 출시되었습니다.
바로 코나미의 도키메키 메모리얼3 였죠.
일단 사카이 이즈미(Zard)에게 묵념을... ㅠ.ㅠ
도키메키 메모리얼3는 오덕들을 이용한 펀드까지 만드는 둥의 화제작이었고
특히 셀셰이딩을 활용한 새로운 히로인이란 소문에 전세계(정말?)가 기대하고 있었습니다.
하지만 막상 뚜껑을 열어보니 오프닝에서 보는 바와 같이 전혀 모에하지 않았습니다.
마치 유치원생이 칠한 색칠공부를 가지고 어색하게 움직이게 한다고나 할까요?
결국 3D MSN에 대한 높은 기대는 도키3를 마지막으로 허무하게 가라앉았고
3D는 결코 꼴리지 않는다는 마인드를 세계 곳곳에 심어주었죠.
그후 도키는 4탄 격인 Girl's Side에서 다시 재기를 하였고 지금도 몰락과 재기를 번갈아가며 징하게 진행 중입니다.
(왜 도키3가 어색하게 보이는지에 관해 다음에 기회를 갖겠습니다.)
도키3의 성공적인 발매를 바라며 Rhea君 역시 도키 펀드에 일조를 했습니다.
자막엔 올라가지 않았지만 "서커스로 가자"를 샀거든요... .
하지만 낚시질에 걸리고도 후회는 하지 않습니다, Rhea君은 히카리의 영원한 팬이거든요.
자막엔 올라가지 않았지만 "서커스로 가자"를 샀거든요... .
하지만 낚시질에 걸리고도 후회는 하지 않습니다, Rhea君은 히카리의 영원한 팬이거든요.
그러나 기술적으로 분명 셀셰이딩은 이전 시대의 텍스쳐질보다 분명 발전된 기술입니다.
셀애니메이션을 동적인 3D 게임 화면에 집어넣는다는 것은 그것 자체가 높은 뛰어난 발생이지요.
솔직히 3D에서의 셀애니메이션 기술은 이미 90년대 후반부터 있었습니다. 실시간으로 렌더링 하지 못했을 뿐이었지요.
자, 그럼 어떻게 딱딱한 3D 폴리곤 덩어리를 예쁜 셀애니메이션으로 바꿀까요?
비결은 의외로 대단히 간단합니다. 3D 렌더러가 그려주는 보까시, 아니 그라데이션를 강제로 2~4 단계로 단순화 시켜버리는 것입니다.
다음 할 일은 외곽선 검출입니다.
외곽선을 제대로 살리는 것이 캐릭터에 생명력을 불어넣습니다.
물론 이론적으로는 외곽선 검출은 순수히 산수로 이뤄집니다.
하지만 세상의 모든 것을 공식으로 담기에는 머리 아프죠... . 컴연산 속력의 한계도 있고요.
그래서 외곽선 검출시 100% 연산만으로 이뤄지진 않습니다.
가장 널리 쓰이는 스킬은... 외곽선을 이미지로 그려넣는 것입니다.
윗 짤방을 비교해보면 원본에서 2단계 세이딩을 거치며 왠지 셀애니메이션틱해졌다는 느낌이 들 것입니다.
이것이 현재 기본적인 셀셰이딩의 방식입니다.
자, 이것을 약간 기술적인, 그러나 21세기의 지극히 일반적인 상식으로 다시 적어봅시다.
DirectX 8.0이 등장하며 VGA는 이전의 게임기만 가지고 있는 기능이 추가되었습니다.
바로 셰이더(Shader)지요. 셰이더는 고정 파이프 방식인 DirectX 7.0 시대와 달리 개발자가 직접 렌더링 과정을 컨트롤 할수 있습니다. 트릭을 사용하지 않는한 고정 파이프 라인은 폴리곤, 다시 말해 면에 대한 렌더링만 가능하나 셰이더를 사용함으로써 고정 파이프라인이 아닌 이래저래 변칙적인 기법들을 실시간으로 사용할수 있게 되었습니다. 물론 논문에서만 볼수 있었던 렌더링(예컨데 Phong)도 말입니다.
XBOX version 1을 개발하기 위해 DirectX는 7.0에서 8.0으로 바뀔때 상당히 많은 변화가 있었습니다.
수긍되지 않는 부분도 많았지만 그게 다 XBOX를 개발하기 위한 초석이었다고 이해됩니다.
그후 9.0에서는 어셈블리로 적용되던 셰이더가 HLSL이란 스크립트로 변경되었고 비스타와 함께 등장한 10에서는 고정 파이프라인이 아예 사라졌습니다. 아마 고정 파이프라인은 차츰 역사 속으로 사라질 듯 합니다.
더 놀라운 사실은 9.0 역시 사실은 100% 셰이더 기반의 3D란 사실입니다. 9.0이 제공해주는 고정 파이프라인 함수는 사실 셰이더를 이용해 고정 파이프라인 렌더링을 예뮬레이트 해주는 것입니다. 다시 말하자만 10에서는 고정 파이프라인 예뮬레이트 기능이 사라진 것이지요.
수긍되지 않는 부분도 많았지만 그게 다 XBOX를 개발하기 위한 초석이었다고 이해됩니다.
그후 9.0에서는 어셈블리로 적용되던 셰이더가 HLSL이란 스크립트로 변경되었고 비스타와 함께 등장한 10에서는 고정 파이프라인이 아예 사라졌습니다. 아마 고정 파이프라인은 차츰 역사 속으로 사라질 듯 합니다.
더 놀라운 사실은 9.0 역시 사실은 100% 셰이더 기반의 3D란 사실입니다. 9.0이 제공해주는 고정 파이프라인 함수는 사실 셰이더를 이용해 고정 파이프라인 렌더링을 예뮬레이트 해주는 것입니다. 다시 말하자만 10에서는 고정 파이프라인 예뮬레이트 기능이 사라진 것이지요.
셰이더를 사용하는 것은 결코 어려운 기술은 아닙니다. 다만 SetRenderState() 부터 시작한 다양한 함수들과 구조체들을 외부의 텍스트 파일로 빼고 마치 스크립트를 읽듯 일고 렌더링에 반영하게 됩니다. 그런 과정을 거쳐 다양한 렌더링 효과가 나오는 것이지요.
이러한 셰이더는 정점을 다루는 Vertex Shader(VS, 버틱스 셰이더, 정점 셰이더)와 픽셀을 다루는 Pixel Shader(PS, 픽셀 셰이더)로 나눠집니다. 고정 파이프라인에서는 정점(정점이 세개 모여 하나의 폴리곤이 된다는 건 아실테죠?)을 단순치 좌표계 변환만 해주었지만 정점셰이더를 거치면 정점 단계에서 상상력이 허용하는 범위 내에서 응용을 할 수 있게 됩니다. 반사, 굴절, 새도우 볼륨 등이 대표적입니다.
앞서 설명한 그라데이션을 몇단계의 색깔로 확 구분짓는 것이 정점셰이더 단계에서 일어납니다.
즉 그라데이션 색상값중에서 얼마에서 얼마 사이는 무조건 RGB 얼마얼마로 강제로 맞춰버리게 됩니다.
아주 쉽게 단순화가 가능해집니다. 오죽했으면 루나 아저씨의 "용책" 에서는 셀셰이딩을 정점셰이더 활용 예제로 썼을까요?
이렇게 처리된 화면은 픽셀셰이더로 넘어갑니다. 정점셰이더는 정점과 폴리곤에서 작업을 했다면 폴리곤을 채운 각각에 대한 픽셀을 처리하는데 이 과정 속에서 외곽선 검출을 하게 됩니다. 픽셀셰이더가 색 구분을 해주는게 아니랍니다.
픽셀셰이더는 이외에도 윈도우 비스타의 에어로 인터페이스에서도 사용됩니다.
조낸 무식한 잉여들이 윈도우 비스타는 화려한 UI 때문에 느리다(사실은 못써보고 아는 척 지랄떠는 것임. 혹은 MX 440 급을 쓰던가)고 마치 써본 것처럼 이야기하는데, 에어로를 끄면 더 느립니다. -_-;;;;
이는 화면 렌더링을 CPU가 아닌, GPU 다시 말해 픽셀셰이더가 해주고 있기 때문이죠.
이 이야기는 나중에 요청 립흘이 달리면 또 해볼까 합니다... .
암튼 픽셀셰이더 단계에서는 정점셰이더랑 또 다른 참 재밌는 것들이 많은데, 포토샵 필터와 거의 같은 이미지 프로세싱 알고리즘이 동원됩니다.
물론 폴리곤이라는 특징 상, 이미지 프로세싱 처리 이외에도 노말벡터를 활용해야 합니다.
그러나 이것마저도 100% 맘에 드는 결과를 얻기는 쉽진 않습니다.
모든 것을 공식과 함수로 구현할 수 있다면 밥먹기 편하겠지만 현실은 그렇지 않죠... .
외각선 검출후 주로 해주는 단계는 2D 이미지로 외각선을 다시 그려주는 것입니다.
상당히 비싼 비용이 드는 작업이나 그만큼 디자이너가 원하는 결과물을 실시간으로 생성시키기 위해서는 현실적인 방법이지요.
그리하여, 폴리곤에서 색상을 단순화시키고 시선에 따른 외곽선 검출을 하면 아래 짤방의 오른쪽 주전자 같은 이미지가 되고 동적인 게임화면으로 뜰때, 우리는 셀셰이딩이라고 부르게 됩니다.
이제까지 간단하게 3D MSN의 등장 배경과 셀세이딩이 무엇인지 간략한 설명을 드렸습니다.
하지만 상기의 내용들은 100% 정확한 표현은 아닐수도 있으니, 옆에 계신 개발자분에게 대가리를 숙이고 운동화를 햩으며 궁금증을 물어보시길 바랍니다.
그러기도 싫다면 디자이너는 "맥스에선 이렇게 나왔는데 게임에선 왜 요렇게 나와요?" 같은 대사나
기획자는 "MX 440에서도 열라 빠르고 존나 뽀사시하게 나와야해!"라는 대사 따윈 뒤질때까지 하지 않습니다.
사내에서 개발자에게 질문하는 법을 친절히 알려드립니다.
......어익후, 아이돌마스터 SP에 대한 포스트를 적을려고 했더니 쓸때 없이(게임 클라이언트 개발자라면 누구나 알고 있는) 다른 이야기가 한가득이군요. ㅠㅠ;;
사족을 달자만 굳히 셰이더를 사용하지 않아도 셀셰이딩은 가능합니다. 이건 또 다음에... . ^^
이제 다시 아이돌마스터 SP에 대한 이야기로 진짜진짜 돌아갑니다.
아이돌마스터 SP는 PSP에서 과연 어떤 퀄리티로 셀셰이딩이 돌아갈까, 얼마나 이쁠까가 주된 궁금증이었습니다.
또한 PSP의 셰이딩 처리 능력에 관해서도요.
우선 아이돌마스터 SP 발매이전, 마이니치 잇쇼에서 다룬 아이돌마스터 SP 발매 뉴스입니다.
한눈에 보다라도 실시간 렌더링이 아니란게 느껴지지요. PSP에서 이런 퀄러티는 아직 기대할순 없겠죠. ^^
자, 교복을 이쁘게 입은 치하야입니다.
이제까지의 셀셰이딩 설명을 듣고 이 화면을 보니 먼저 머리색과 피부색의 확연한 구분과 외곽선이 눈에 들어올 것입니다.
아이돌마스터 SP에서는 외곽선은 굵지 않습니다. 비트맵 다시 입혔다고 보여지진 않습니다.
아마 PSP의 한계 같습니다. 때문에 외곽선이 간혹 밉게 보일 때가 있습니다.
하지만 머리색과 피부색은 상당히 아름답습니다.
눈과 입은 엑박에서도 분명 비트맵일꺼라 장담합니다.
물론 노래가사에 맞춰 표정이 변합니다만, 모든 캐릭터 공통의 립싱크와 눈표정이 나오지요.
표정관리용 다양한 신기술들이 나오지만 셀애니메이션을 위해서라면 고가의 기술보다는 2D 텍스쳐질이 더 맞다고 생각합니다.
특히 입다물고 있는 치하야도 너무 귀엽습니다...를 말하고자 했던게 아니라,
1px로 처리된다면 굳히 입에 외곽선을 뽑아낼 일은 없죠. 솔리드 스네이크 할아버지는 혀에까지 본이 들어갔다고 하지만,
아이돌마스터는 아이돌마스터대로, 메탈기어는 메탈기어대로의 길이 있죠.
그런데 아이돌마스터의 셀셰이딩에서 "코"를 언급하지 않을 수 없네요.
아이돌마스터의 코는 오덕들에게 큰 인기를 끌었는데,
셀애니메이션에서 정석인 "정면 델타형 코"였기 때문입니다.
(윗윗윗 짤방의 치하야와 미키)
그런데 놀랍게도 각도가 틀어지면 델타형 그림자는 사라지고 뽀족한 입체가 드러납니다.
(윗윗 짤방이지만 각도를 놓쳤네요. 하지만 대략 형태는 잡히죠?)
그리고 윗짤방처럼 얼짱 각도에서는 꺽인 델타를 보여주고 있습니다.
처음 엑박으로 아이돌마스터가 나왔을때 주위의 오덕들과 둘러앉아 어떻게 구현했을까 토론을 많이 했습니다.
신뢰할순 없지만 Rhea君과 그 일당들은 술에 취해 오덕오덕거리며,
"눈 코 입은 각도별로 전부 텍스쳐이며 노말을 구해 뷰포트 방향으로 특정 각도가 틀어지면 코 텍스쳐 지운다, 단 정면쪽을 향하면 텍스쳐를 올리고 코 외곽선 검출하지 않는다, 전부 노말로 장난치거다~ 냐하하하하하하~"
라고 결론을 내렸습니다.아마 아이돌마스터 SP도 그렇지 않을까 싶습니다.
참고로 아이돌마스터 엑박 버전은 CRIWARE 미들웨어를 사용했다고 알고 있습니다.
CRIWARE 미들웨어는 다양한 제품군이 있어 정확히 어떤 부분에서 썼는지는 알수 없습니다만,
아이돌마스터 SP에서는 CRIWARE 로고가 없는 것으로 봐서 남코에서 직접 렌더러를 개발하지 않았나 싶군요... .
생각해보면 요즘은 만화책을 그리던, 애니메이션을 만들던 그림체를 딱 나루토나 케로로 정도로 그리는게 게임시장에서 젤 잘 먹힐 것 같습니다.
특히 나루토 특유의 그림체는 셀셰이딩으로 구현하기 참으로 좋기 때문이죠.
정말이지 PS1의 원피스 그랜드배틀 때를 생각하면 이 놀라운 그래픽의 발전에 수고하신 엔지니어분들께 고개가 숙여집니다.
물론 가까운 시일내에 공각기동대 급의 퀄러티를 가진 애니메이션이 실시간 3D로 뿜어져 나올 것이라 믿습니다.
(걍 눈 작게 그리고 Blur 마구 뿌려대면 될지도?;;;)
원래는 아이돌마스터 SP 그래픽 짱 이뽀여~♡ 몇줄 쓰고 끝낼려고 했는데
하다보니 뭔 이상무리한 잡탕 포스트가 되었습니다. ㅠ.ㅠ;;;
이거 더이상 삼천포로 빠지기 전에 빨리 포스트를 끝내야겠습니다.
(게다가 원래는 리뷰였는데 글 내용을 보니 리뷰에 올려도 될지...라는 고민이 듭니다만 원칙대로 리뷰 카테고리로 올립니다.)
오늘의 결론입니다, 이렇듯 예쁜 화면을 만들기 위해선 머리 아픈 과정을 무쟈게 거쳐야 합니다.
그러니 우리 모두 개발은 포기하고 기획자나 디자이너가, 그것도 아니라면 9급 공무원시험을 친후 그냥 게이머가 됩시다.
또한, 아직도 최소 HLSL 2.0이 지원되지 않는 노트북과 VGA를 갖고 계신 분들은 당장 업글하세요.
이중으로 함수 만드는게 얼마나 중노동인지 당신들은 몰라!!! 그래서 포기했잖아!!!!!
컴터 업글 안하는 것도 죄란 말이닷!!!!!!
그러니 우리 모두 개발은 포기하고 기획자나 디자이너가, 그것도 아니라면 9급 공무원시험을 친후 그냥 게이머가 됩시다.
또한, 아직도 최소 HLSL 2.0이 지원되지 않는 노트북과 VGA를 갖고 계신 분들은 당장 업글하세요.
이중으로 함수 만드는게 얼마나 중노동인지 당신들은 몰라!!! 그래서 포기했잖아!!!!!
컴터 업글 안하는 것도 죄란 말이닷!!!!!!
