꽃미남 프로그래머 김포프가 창립한 탑 프로그래머 양성 교육 기관 POCU 아카데미 오픈!
절찬리에 수강생 모집 중!
프로그래밍 언어 입문서가 아닌 프로그래밍 기초 개념 입문서
문과생, 비전공자를 위한 프로그래밍 입문책입니다.
jobGuid 꽃미남 프로그래머 "Pope Kim"님의 이론이나 수학에 치우치지 않고 실무에 곧바로 쓸 수 있는 실용적인 셰이더 프로그래밍 입문서 #겁나친절 jobGuid "1판의내용"에 "새로바뀐북미게임업계분위기"와 "비자관련정보", "1판을 기반으로 북미취업에 성공하신 분들의 생생한 경험담"을 담았습니다.
Posted by 김포프
게임데브포에버에 무슨 글을 올릴까 고민을 좀 해봤는데... 그래픽 전문자료들은 이미 다른 필자분들이 열심히 올리고 계셔서 요번에는 그냥 제 경험담을 올리도록 하지요.. (이런 글을 원하시는 분들도 꽤 계실듯...?)


제가 이리도 오래 쉰내나도록(?) 게임 업계에 머무르는 이유 중 하나가 언제나 새로운 것들을 시도해 볼 기회가 충분하기 때문입니다. 특히나 그래픽 프로그래밍 쪽은 하루가 멀다하고 계속 발전하는 분야라서 마약처럼 매우 짜릿하죠. (마약이라고 좀 언급해두면 한국 정부에서 게임개발 셧다운제를 해주지 않을까하는 생각에...그럼 한국 게임개발자 분들도 정시퇴근 하실 수 있습니다. 회사 매출이 높으면 일찍 퇴근!)

근데 가끔은 이런 짜릿함에 눈이 멀어 게임을 망치는 경우도 좀 있습니다. 아직 검증되지 않은 새로운 기법을 동원할 때 그에 부수하는 단점들을 간과하는 경우가 허다하거든요. 심지어는 그런 단점들이 이미 잘 알려져 있더라도 장점보다 단점을 더 크다고 착각하는 경우도 문제입니다. (보통 이미 그 기법을 사용해서 게임을 출시한 개발자들이 하는 이야길 듣는게 검증인데.... 그 개발자들이 컨퍼런스에서 발표를 할 때는 당연히 단점보단 장점을 부각시키는게 일반적이라지요.)

디퍼드 라이팅
제가 요번에 적어드릴 경험담은 디퍼드(deferred) 렌더링에 대해서 입니다. 이미 아시는 분들은 아시겠지만 스페이스마린은 자체 개발한 디퍼드 라이팅(deferred lighting) 엔진을 씁니다. 뭐 찾아보면 좀 더 있겠지만 제가 당장 생각하는 퍼드 라이팅 렌더러의 장단점은 다음과 같습니다. (제가 생각하는 중요도 순서로...)

장점:
  1. 포워드(forward) 렌더링에 비해 사용할 수 있는 광원의 수가 많다. (예, '물체당 광원 3개' 라는 제한이 없어짐)
  2. 대부분의 조명을 동적으로 처리함으로 아티스트들의 작업시간이 빨라진다.
  3. 화면공간에서 행하는 후처리(post-processing) 기법들을 사용하기 쉽다. (예, SSAO, Screen Space Decal 등)

단점:
  1. (반)투명한 물체 처리가 골아프다.
  2. 하드웨어 자체적으로 앤티에일리어싱(anti-aliansing)을 처리하기 힘들다.
  3. 메모리를 좀 더 많이 잡아먹는다. (화면 해상도 크기의 렌더타겟들이 여러 개 필요)

스페이스 마린에서 디퍼드를 사용한 이유

원래 시작은...
스페이스 마린에서 디퍼드 렌더링을 사용한 이유는 사실 역사적인 이유가 강합니다. 스페이스 마린을 만들기 전에 Grand Theft Auto 류의 오픈월드 게임을 제작하고 있었는데 이 때 (2008년 중순) 다음과 같이 디퍼드 라이팅 엔진을 판단했었습니다.
 
  • 오픈월드 게임이니 광원의 수가 꽤 많겠군? 디퍼드가 좋겠어. (장점 #1)
  • 아무래도 밤낮이 바뀌는 효과가 있어야 하니 동적 조명이 좋겠는걸? (장점 #2)
  • 근데 배경이 도시니까 투명한 물체가 꽤 필요하겠는데? (단점 #1).... 으음... 뭐 투명한 물체는 디퍼드 말고 따로 포워드로 그려줘야겠군.. (어쩔수 없는그럴듯한 해결책)
    근데 앤티에일리어싱은 어쩌지? (단점 #2) 아직 1~2년 남았으니 나중에 고민해보지 뭐...(대충 책임 회피 -_-)
    근데 이 게임이 한 6개월 만에 취소됩니다. 게임 자체에 문제는 아니었고 THQ가 구조 조정을 하면서 그 당시 스페이스 마린 게임을 개발중이던 THQ 호주 스튜디오를 문을 닫았죠. 워낙 렐릭이 워햄머 40,000 게임을 잘 만드는 회사로 유명했던지라 저희쪽에서 대신 해달라고.... 

그래서 처음부터 다시 스페이스마린을 만들었습니다. -_- (THQ 호주에서 만들어 놨던건 하나도 안썼죠.. 저희가 원하는 방향과 너무나 달라서...)

그리고 다시 결정을 내리기엔...
자, 그럼 이번엔 스페이스마린을 만들기로 했으니 다시 한 번 렌더링 엔진에 대해 고민해볼 차례인데... 이 때 (2009년) 저희의 생각은 이랬습니다.
 
  • 과연 광원의 수가 많을까? (장점 #1이 시들해짐)
  • 밤낮이 바뀌는 효과도 없는데? (장점 #2도 시들해짐)
  • 그런데... 아티스트들이 이미 디퍼드 라이팅에 맛을 들여서(iteration 시간이 매우 빨라졌어요... 모든게 동적 조명이니) 매우 원함... (장점 #2가 다시 살아남)
  • 또한 디퍼드에 기반해서 구현한 Screen Space Decal을 역시 아티스트들이 너무 좋아함 (장점 #3)
  • 서기 40,000년엔 투명한 유리창 따윈 이미 다 뽀개지고 없으니.. 투명한 물체는 그닥 문제가 안될 거야.. (단점 #1이 좀 완화됨)
  • 근데 앤티에일리어싱은 어쩌지? (단점 #2)요즘들어 이 분야에 대한 좀 발전이 있으니(Kill Zone 2가 SSAA를 대충 사용할 때..) 좀더 기다려보지.. (여전히 책임 회피... -_-)
  • 그럼 딱히 디퍼드를 할 이유가 없지 않아?..... 응... 없지.... 근데 이미 만들어 놓은거 다시 포워드로 돌리는 데 드는 시간과 비용이 과연 값어치가 있을까?......... 없군...... 
그래서 결국 디퍼드로 그냥 가기로 했죠. 최소한 아티스트들이 작업을 빨리할 수 있으니까 비주얼 품질이 높아질거라 생각했거든요. 그리고 그건 현실이 되었죠. 아티스트들이 여러번 손 대니까 확실히 스페이스마린의 비주얼 퀄리티도 상승.






그래서 단점은 어케 극복을?
그리고 시간은 흐르고 흘러서 2011년 9월 스페이스 마린을 출시했죠. 그렇다면 저 단점들은 어떻게 극복 했을까요?

투명한 물체
"서기 4만년엔 모든 유리들이 뽀작나서 더이상 투명한 물체가 없습니다 -_-;" 는 저희가 장난처럼 한 말이었는데... 사실 저희 게임에서 투명한 물체가 거의 없습니다. 종류따라 다음과 같이 처리했어요.

  1. 알파테스트: 반투명 블렌딩을 하기 보다 대부분의 물체는 완전투명 아니면 완전 안투명의 두가지로 처리했습니다. 이러면 디퍼드를 사용할 수 있죠.
  2. Screen Space Decal(SSD): 다른 물체의 표면에 찰싹 붙은 반투명한 물체는 SSD로 처리했습니다. SSD에 대한 자세한 내용은 위에 링크 걸어드린 발표자료를 참조하시길. 역시 깊이버퍼를 업데이트할 필요가 없는 놈들이라 디퍼드에 무난히 사용가능
  3. 특수 쉐이더: 머리카락에만 쓴 쉐이더인데 딱히 깊이 버퍼를 업데이트 하지 않고 머리통에 있는 법선 조명 정보를 대충 가져다가 씁니다. 즉 디퍼드도 포워드도 아닌 이상한 꼼수를 썼죠.
  4. 파티클: 파티클은 여전히 포워드로 했습니다. 워낙 투명하니... 저희 파티클 시스템은 또 워낙 빨라놔서.. (파티클 질을 저렇게 해도 콘솔에서 2.75 ms 밖에 안걸림)
이래서 투명한 물체는 해결... 사실 이걸 해결할 수 있던 가장 큰 원인은 아티스트들의 워크플로우를 뚜렷하게 정했다는 거에요. 뭐는 안되고 뭐는 되고를 확실히 알려줬고.. 안되는게 있으면 그걸 성취할 수 있는 다른 방법을 제시했고요.

앤티에일리어싱
그럼 앤티에일리어싱은 어떻게 해결을 했을까요? 사실 운이 좋았죠... -_-

다행히도 게임을 출시할 때쯤 해서 MLAA(God of War 3, The Saboteur)와 FXAA라는 기법들이 이미 개발되었었고... 저희도 FXAA에서 영감을 받아서 그것보다 한 0.1ms 정도 빠른 자체 기법을 개발했습니다. 한 0.8ms 걸렸죠. FXAA라고 해봐야 화면의 색상(또는 조도)을 대충 분석해서 갑자기 픽셀값이 변하는 부분을 적당히 블렌딩 해주는 기법이거든요.

콘솔에서 사용하는 FXAA 기법은 사실 좀 화면에 흐릿해진다는 단점이 있습니다. (PC버전과 달라요) 그래도 스페이스 마린의 비주얼은 만화스럽기보단 사실적에 좀 더 가까워서... 약간 흐릿해져도 큰 문제가 없었죠. (만화처럼 색이 강렬하고 짜잘한 디테일들이 막 들어가있으면 이렇게 흐릿해지는게 문제가 많아요.) 그래서 운좋게 대충 무사히 해결... 

지금와서 생각하는데 타사의 개발자들이 이런 기법들을 개발해 놓지 않았다면, 거기에서 영감을 받지도 못했을거고... 그러면 스페이스마린은 앨리어싱 때문에 꽤 타격을 받았을 거 같아요. 그렇다고 Gears of Wars 3처럼 아예 앤티 엘리어싱을 꺼버릴수도 없는거고... 운이 좋았죠. 책임회피는 했지만 운이 좋은.... -_-v

그렇다고 다 우리처럼 운이 좋을리는 없지?


그리고 스페이스마린을 출시한 뒤, 다른 회사의 게임을 좀 도와줬습니다. 몇 년전에 출시했던 게임의 후속작인데요. 따라서 그래픽 쪽으로는 특별히 손봐줄게 없겠다고 생각했죠. 어차피 컨텐츠만 좀 바꾸면 되니까. 그래픽 쪽은 좀 빠르게 만들어주거나 눈사탕 몇 개만 슬쩍 추가...?

근데 ... 아.뿔.사... -_- 소스코드를 열어보니... 포워드로 잘돌던 그래픽 엔진을 디퍼드로 바꿔버렸더군요..... 과연 왜 그랬는지 마땅히 말해주는 개발자들이 없어서.. 혼자 장단점을 따져봤습니다.

  • 광원의 수가 전 게임에 비해 늘었니? 아니... 거의 똑같은데... (장점 #1 실패 -_-)
  • 그럼 아티스트들의 작업시간은? 그림자를 오프라인에서 baking 하지 않으니 빨라짐... (장점 #2).... 근데 그림자 품질이 오프라인 처리할 때보다 저하되서 다시 baking을 시작하고 있음.. (결국 장점 #2 실패 -_-)
  • 화면공간에서 하는 후처리 기법은? 저번 게임하고 그닥 달라진게 없음... SSAO 정도 추가했나? (미약한 장점 #3)
  • 반투명한 물체는? 화면의 절반... -_- 여전히 포워드로 처리함... 한 10 ms 걸림... 쿨럭 -_- (심각한 단점 #1)
  • 앤티에일리어싱은? 아직 구현 안했었음...  스페이스마린에서 사용한 AA를 구현해줬으니 게임자체의 색상이 화려한 편이라 흐릿함이 눈에 거슬림.... 이걸 제대로 고치려면 PC버전에서 쓰는 FXAA를 써서 3ms낭비하거나... 아니면 깊이 및 법선 비교까지 해야함. 이러면 2.6 ms 정도 걸림.... (단점 #2)

아무리 생각해도 디퍼드로 갈 이유가 없는 게임이더군요. 아직도 정확한 이유는 모릅니다. 왜 디퍼드로 가기로 결정했는지.... '이론상으로' 포워드보다 낫다고 생각했고... 새로운 기법에 대한 짜릿함 때문에 그렇게 결정해버린 게 아닌지.. 생각만 할뿐..... 처음 게임이 더 비주얼이 좋을 거 같아요......버럭!

대충 정리
글만 주저리주저리 길게 쓰는 놈이라.. 대충 이 일화의 교훈(?)을 정리.

  1. 새로운 기법을 도입하기 전에는 반드시 장/단점을 반드시 따져볼 것. 특히 단점을 위주로...
  2. 그 기법을 이용해서 게임을 출시한 사람들이 발표하는 장/단점은 언제나 장점에 치우쳐 있음. 단점의 심각함을 2배로 곱해서 생각할 것...
  3. 그 기법을 이용해 컨텐츠를 제작할 아티스트 및 디자이너들을 프로토타입 과정에 포함시킬 것. 그 개발자들의 피드백이 좋지 않으면 그 보다 큰 단점이 없음.
  4. measure, measure and measure!: 언제나 실제로 성능을 측정해볼 것....


반응형
,
Posted by 알 수 없는 사용자

안녕하세요. 알콜코더 민군입니다. ^^

상당히 오랜만에 연재를 하네요…죄송합니다. (__)

지난 달에 여러가지 사정으로 바빠서, 한달을 쉬고 간만에 연재하게 되어버렸습니다.

당연히 기다려 주신 분은 없으셨겠지만…

내가 포프 아저씨의 "빨랑 연재를 안하면, 거세시켜 버리겠다"라는 협박 때문에

글을 올리는건 아니라능…

 

이번에 연재하는 내용은 HDR과 톤맵핑에 대한 이야기 입니다.

사실 2주전쯤에 제가 운영하는 데브루키 스터디에서 발표 했던 내용인데,

여기에 설명을 달아서 연재를 하기로 했습니다. ^^

(일명… 재활용이라고도 하지요…OTL)

대부분 개발자 분들이 HDR이란 용어는 상당히 많이 들어봤고, 익숙하실 겁니다.

특히나 일명 "뽀샤시"라고 불리우는 '블룸(Bloom)' 이펙트 덕분에,

HDR이란 용어를 들어보신 분들도 많으실 겁니다.

하지만 이 뽀샤시가 HDR의 전부라고 생각하시는 분들이 많으신데, 사실 그것은 잘못된 오해입니다.

(사실 저도 몇 년전까지…' HDR = 뽀샤시 ' 라고 생각 했었다능…)

그래서 이번 기회를 통해서 "과연 HDR이란 놈이 어떤 변태 같은 놈이길래?" 에 대해

알아보는 내용을 다뤄 볼려 합니다.

 

 

  • 사실은 저도 실무에서는 HDR을 아직 사용해 본적이 없어서, 
    수많은 오역과 잘못된 이해가 있을지도 모릅니다.. ;;;

     

  • 실제 구현을 위한 셰이더 코드 같은건 다루지 않습니다. 
    어디까지나 개념과 활용을 위주로 설명합니다.

     

  • HDR에 대한 자세한 내용은 맨 밑의 참고 자료를 보시면, 
    훨씬 더 양질의 고급 자료(!)들을 만나 볼 수 있습니다.

     

  • (한마디로.. 이 연재는 그냥 허접하다는 이야기 입니다…ㅠ.ㅠ)

 

 

그럼 과연 HDR이란게 뭔지에 대해서 알아보기 전에, HDR을 사용하면 얼마나 게임 화면이 예쁘게(?) 나오는지에 대해서 살펴 보겠습니다.

그리고 앞서 이야기 드렸듯이, HDR = 뽀사시(Bloom) 효과가 아닙니다.

아래 이미지들에서 단지 뽀샤시만 적용이 된 것이 아니라는 점에 주목해 주세요.

첫 번째 이미지들은 HDR 적용 전, 두 번째 이미지들은 HDR 적용후의 효과입니다.

 

[우선 이것은 라데온의 HDR 데모 스샷 ]

 

[이제는 미연시에서도 당연히 사용되는 흔한 기술(?) HDR]

 

자… 이제 HDR을 쓰면, 게임 화면이 훨씬 더 예뻐진다는건 아시겠죠?

얼핏 위의 비교샷을 보면, "이거 단지 뽀샤시가 들어간거 아냐?" 라고 생각할 수도 있습니다.

사실 이 말은 반은 맞고, 반은 틀린 말입니다.

왜냐면 우리가 흔히 이야기하는 "뽀샤시"라는 효과는 바로 HDR에 기반하고 있기 때문입니다.

하지만 HDR을 사용하지 않은 게임에서 사용하는 뽀샤시는… HDR을 실제로 사용하지 않고,

HDR의 효과를 흉내낸 테크닉입니다.

이것을 흔히 업계 용어로 "Fake HDR" 이라고 부르기도 합니다.

최신 사양이 아닌, 이전의 게임들의 뽀샤시는 이 Fake HDR을 사용한 것입니다.

이 Fake HDR이란 기술은 간단하게 설명하자면, 화면의 밝은 부분(흰색에 가까운 부분)을 찾아서,

가우시안 블러(Blur)를 먹이는, 알고보면 간단한(?) 테크닉입니다.

그래서 색을 무조건 번지게(블러) 만들기 때문에, 밝은 화면에서 화면이 너무 많이 타거나,

음영이 제대로 보이지 않는 문제들이 있습니다.

하지만 구현이 간단하고, 사양에 영향을 크게 끼치지 않기 때문에, 많은 게임에서 사용 되었습니다.

 

HDR이란… 사실 특정한 하나의 테크닉을 지칭하는 것이 아니라,

렌더 타겟의 표현의 범위를 넓히는 개념과 그것을 구현하는 기반 기술에 가깝습니다.

그리고 그렇게 표현의 범위가 늘어남에 따라서, 뽀샤시를 비롯한 여러가지 효과와 테크닉들이 부수적으로 가능한 것입니다.

즉, 뽀샤시라는 것은 바로 HDR을 이용해서 구현할 수 있는 렌더링 테크닉중의 하나입니다.

 

HDR을 이용해서 얻을 수 있는 메리트는 크게 아래와 같습니다.

 

초반부터 폭풍 스샷들을 뿌리다보니, 별 내용은 없는데 스크롤만 많이 길어지는군요. OTL

우선은 이번 시간은 그냥 맛보기로 보시고, 다음 시간부터 HDR이 구체적으로 무엇이고,

어째서 위와 같은 메리트들을 얻을 수 있는지,

그리고 HDR을 어떻게 사용할 수 있는지에 대해서 다뤄 보겠습니다.

 

  • 절..절대.. 요즘 연속 강좌가 유행이라서 따라하는 것이 아니라능…
  • 원래는 보름 단위 연재이긴 하지만, 다음편은 작성하자마자 바로 올리겠습니다. 너무 오래기다리면 잊혀질 듯..

 

[참고 자료]


반응형
,

게임 UX 기획 - 예고

기획 2012. 1. 31. 19:06
Posted by 알 수 없는 사용자
사실 유저경험(User eXperience; 이하 UX)이라는 단어는 국내 게임 개발 업계에서 오랫동안 통용되어왔던 용어는 아닌 것 같습니다. 통상적인 게임 개발 기획팀이라면 시스템, 컨텐츠, UI 정도의 파트 구성이 있을 뿐이라, 게임에 있어 UX란 단어는 어디다 끼어넣기도 애매한 느낌이지만.. 굳이 넣어 보자면 웹 개발에서 잘 쓰듯 UI 파트가 밀접하게 관계해있는 것처럼 보이기도 하고요.

물론 컴퓨터공학 계열의 전공자라면 HCI(Human Computing Interaction) 같은 강의를 통해 인간-컴퓨터 상호작용이라는 개념이 인간의 정보처리, 인지과정에 대한 이해로써 유저빌러티 테스트 등등으로 확장되는 과정 속에 UX로 녹아있기에 익숙한 용어일지도 모르겠습니다. 하지만 저는 일단 컴퓨터공학 계열의 전공자가 아니고;; 시각디자인 계열의 전공자였기 때문에, 그래픽디자이너로써 인터랙션디자인과 관련한 HCI 강의에서 UX란 개념을 처음 접하게 되었습니다.
덕분에 학문적이거나 공학적인 측면보다는 많은 수의 디자인 기업들에서 웹디자인을 함에 있어 단순히 이쁘고 잘보이는 UI를 벗어나 UX의 관점-사용자 기반의 발상과 경험 중심적인 디자인-을 도입한 사례들로부터 관심을 갖게 되었습니다. UI를 만듦에 있어서도 이상적인 네비게이션과 뎁스, 시선과 조작의 유도 동선의 흐름을 설계하고, 그에 대한 접근 케이스를 유저빌러티 테스트를 통해 분석해 패턴별 모델을 수립해 반영하는 것이 인상적이였는데, 그 사용 경험의 기반 자체를 사용자의 관점으로부터 뽑아내겠다는 것이겠지요.

하지만 게임의 경우, 웹이나 어플리케이션과는 달리 '재미 경험'이라는 좀더 감성적인 영역이 함께 섞여 있습니다. 때문에 모두 취향이 다를 수 밖에 없는 수많은 유저의 관점에서 객관적으로 바라본다(주1)는 것이 어렵기도 합니다. 최대한 많은 유저의 욕구를 만족시키기 위해서 시스템은 계속적으로 추가되고 다변화되며 컨텐츠의 양도 빠르게 늘어날 수 있도록 해야 하고요.
그렇다보니 재미 경험의 관점에서 시스템이나 컨텐츠가 수립되는 것이 아니라, 이미 출시된 수많은 게임에서 검증된 시스템과 컨텐츠를 변주해 사용하는 경우가 많습니다. 물론 이것은 잘못된 것도 아니고, 그 안에서 더 융합되며 발전하는 경우도 많기 때문에 완성도가 올라가는 효과를 내기도 합니다. 하지만 아쉬운 점은 그러한 과정에 있어서 '유저가 직접적으로 겪게 될, 일관된 감성적인 재미 경험'이 배제되기 쉽다는 것입니다. 이는 이미 출시되어 업데이트 되면서 발생하는 경우도 있지만, 애초에 고려되지 못한 채 개발되어 도중 드롭되거나 출시되더라도 특색없는 '양산형 게임'이라는 오명을 쓰는 경우에서도 종종 발견됩니다.

과거에 참여했던 프로젝트의 최초 프로토타입을 뽑은 상태에서, '그래서 이 게임이 뭘하는 게임이냐?'라는, 프로젝트의 비전에 대한 물음을 받았을 때 상당히 곤혹스러웠던 경험이 있었습니다. 작성된 스토리는 짧게 브리핑하기엔 거대한 음모론의 세계 속 대서사시였지만 그것은 단지 이야기일뿐 실제로 플레이어가 직접적으로 뛰어다닐 모험의 여정과는 거리가 멀었고, 전투가 전에 없이 찰진 공방으로 재미있다 한들 왜 전투를 하고 성장해서 도전하는 목표가 무엇인지가 비어있는데다, 사실 상 팀 내에서 공유하던 구체적인 프로젝트 목표는 기술적인 요소에 치중해 있었기 때문이였습니다.
유저가 처음 접했을 때 어떤 느낌을 받을 것인가, 그 감성적인 재미 요소들이 연속적으로 일관되게 흐름을 끌고 갈 수 있는가, 그렇다면 유저가 몰입했을 때 갖게 될 목표를 어떤 식으로 전달하고 그를 지속적으로 명확히 푸쉬할 수 있는가 등등에 있어 전혀 플레이어의 입장을 대변하지 못한 기획이였다는 것을 깨닿게 된 것이였습니다. 내러티브화한 UX의 관점이 없었던 것이지요.

이후 여러 작품에 참여하면서, 좀더 유저경험을 기반으로 한 내러티브와 감성적 경험을 중시할 수 있는 방법으로써 '스토리텔링'의 접근법을 고민하게 되었습니다. 그렇다고 엄청난 대서사시 역사와 그 후손들의 모험담을 쓰겠다는 것이 아니라, 개발자의 의도를 효과적으로 전달하고 재미있는 경험으로써 푸쉬한다는 측면에서 플레이어가 직접 따라가게 될 상황 자체에 집중할 수 있는 일관성을 위한 스토리의 활용이였습니다.
아이온이 최초 공개 당시 '천계와 마계의 관계와 어비스, 그리고 제3자로써의 용계의 등장과 갈등/반목/협력'이라는 강한 느낌의 내러티브로 이슈가 되었던 바 있고, 마비노기 영웅전의 경우 에피소드1에서 2D 인터페이스임에도 불구하고 NPC와의 대화를 통한 유대감 쌓기와 NPC의 스토리 개입을 통해 사고를 당하는 등 직접적인 감정을 자극하며 완결된 구성(주2)을 보여주었으며, 블레이드앤소울의 경우 게임 도중 자연스럽게 펼쳐지는 대화와 감정 묘사, 수많은 연출을 기반으로 한 몰입을 통해 시작부터 '복수를 위한 여정'이라는 테마를 일관되게 유지하면서 점차 덧붙여지는 이야기(주3)들로 감성적 경험을 잘 접목했다고 생각합니다.

이러한 다양한 시도들이 점점 더 나은 반응을 얻어가고 있는 시점에서, 새로 프로젝트를 준비한다면 어떻게 기획을 해보는 것이 좋을까에 대한 고민에서 개발자 컨퍼런스용으로 준비하던 내용들을 여기서 글로 풀어보고자 합니다. 개인적인 사정으로 몸 상태가 안좋아 말로 하는 것이 좀 전달력이 떨어지는 상태다보니 글로 쓰는 것이 더 편한;;

감정적인 재미를 유발할 수 있는 유저경험을 설계하는 방법으로써 스토리텔링 기반의 기획 접근과 프로토타이핑이 다음과 같은 순서로 GameDevForever에 연재될 예정입니다. 순수히 개인적인 경험에서 기반한 내용들 위주인지라, 여러 개발 기획 방법 중 하나의 갈래로 봐주시면 좋겠습니다.

01. what
02. how
03. storytelling
04. prototyping

* 주1 'Gamification & 소셜게임'이라는 책의 p.108 플레이어 중심 모델에 '페르소나' 접근으로 객관화 해보는 내용이 있습니다.
* 주2 디스이즈게임의 칼럼 '스토리가 부담이 된 시대, 영웅전의 도전'의 내용에서 읽어보실 수 있습니다.
* 주3 다른 이야기들 보다 가장 기억에 남는 것은 일단.. 남소유 - ㅅ-

ps. 굳이 예고편 뭐하러 올리냐 하시면;;;; 기획에서 UX란 용어가 생소한 것 같아서..?
ps. 다음 연재부터는 반말체로 쓰여질..것 같아;;;;요;;;;;;;;;;;

반응형

'기획' 카테고리의 다른 글

게임 UX 기획 - 02. how  (8) 2012.02.09
게임 UX 기획 - 01. what  (16) 2012.02.02
온라인게임 퀘스트의 구조  (5) 2012.01.30
엑셀 기능 - 추세선 ~ 데이터에서 공식으로...  (19) 2012.01.25
온라인게임 퀘스트 보여주기  (10) 2012.01.13
,
Posted by 알 수 없는 사용자
뜬금없이 시작했다가 '본업 포스팅'이 되어버린 게임회사의 회계이야기 여섯 번째 포스팅에서는 본격적인 예산계획 수립 방법에 들어가기에 앞서 최근 뉴스를 통해 이슈가 되고 있는 닌텐도의 재무제표를 보면서 기업회계의 기본에 대해서 짚고 넘어가볼까 합니다.


왜 재무제표를 알아야 하는가?

본 시리즈의 첫 회 <누구에게나 회계는 있다>편에서 여러분의 현재 업무나 직급과는 상관없이 점차 업계의 짬이 쌓일수록 관리직, 경영자의 위치로 올라가게 되고 그것은 결국 예산, 자금을 스스로 운용하고 조달해야 한다고 언급했었습니다. 그러면 관리자나 경영자 그렇게 예산이나 자금을 관리해서 얻고자 하는 것은 과연 뭘까요? 답은 간단합니다. 어떤 기업이든 결국 돈을 벌지 않으면 안됩니다. 자금 관리의 목적은 결국 매출을 올리고 수익을 얻기 위한 것이죠.

그러면 기업은 무엇을 보고 자신들이 매출을 얼마나 올리고 수익이 얼마나 남았는지를 알 수 있을까요? 그것을 위해 만드는 것이 바로 재무제표(財務諸表)라는 놈(!)입니다. 즉 쉽게 말하면 재무제표란 기업의 성과를 평가하는 성적표인 셈이죠.

주주든 투자자든 채권자든 재무제표를 기반으로 그 기업을 평가하기 때문에 경영진은 항상 자기 기업과 경쟁사들의 재무제표에 주목합니다. 그래서 연간 목표 매출액이나 이익 등은 전년도의 재무제표를 기반으로 산정하고 그 목표가 얼마나 달성되어 가고 있는지 측정하는 것 또한 그 시점에 작성된 재무제표를 기반으로 합니다. 따라서 여러분이 경영진이거나 혹은 경영진과 가까운 관리직인 경우라면, 최소한 재무제표가 말하는 기업의 기본적인 성적을 읽을 수 있어야 합니다.

만일 사장님이 "자네 프로젝트의 내년도 영업이익은 금년보다 10% 올려야 하네!" 라고 말했는데, 영업이익이 뭔지 정확하게 모른다면 정확하게 뭘 요구하는지를 알아들을 수도 없을 것이고, 자신이 무엇을 이뤄야 하는지도 정확하게 인식할 수 없겠죠? 또 다른 예로, 만약 창업을 해서 투자 제안서나 사업계획서를 쓴다고 하더라도 단순히 얼마를 투자하시면 이 게임을 출시해서 얼마의 수익을 드... 드리겠습니다. (필요없어?!) 라고 아마추어적으로 제안하는 것보다는 투자후 자금 활용에 따른 예상 손익계산서와 현금흐름표 등 예상 재무제표까지 작성해서 제안한다면 투자자들의 투자 적합성 판단에도 좋고, 신뢰도도 높일 수 있을 것입니다.



닌텐도의 사례로 배워보는 재무제표 분석의 기초

사실 재무제표를 배우려면 생소한 용어와 계산식들이 많이 등장합니다. 당장 재무제표 관련 서적부터 한 번 펼쳐보면 아무리 쉬운 책이어도 ▲매출총이익 = 매출액 - 매출원가 ▲영업이익 = 매출총이익 - 판매관리비 ▲영업이익률 = 영업이익 ÷ 매출액 ▲PER(주가수익률) ▲EPS(주당순이익) 등등 쏟아지는 공식과 용어의 홍수에 정신이 없죠. 게다가 맘 먹고 공부를 할라고 해도 재무제표 서적들이 다루는 업종이 죄다 제조업 위주다보니 잘 와닿지도 않고 동기부여도 잘 안됩니다. 그래서 고민한 끝에(사실은 그냥 닌텐도 뉴스보고 즉흥적으로...) 최근 이슈가 되고 있는 닌텐도의 재무제표를 통해서 재무제표 분석의 기초에 대해서 이야기 해볼까 합니다.

얼마전까지만 해도 이런 분위기였던 닌텐도인데...

시게루횽... 지못미

▣ 재무제표는 뭐가 있지?

재무제표의 '제(諸)'는 '여럿'이라는 뜻을 가지고 있습니다. 그러니까 재무제표란 '재무와 관련된 여러가지 표'라는 말이 되죠. 이 말 뜻대로 재무제표는 재무상태표(대차대조표), 손익계산서, 현금흐름표 등 다양한 '성적표'로 구성되어 있습니다. 보통 재무제표 서적을 보면 맨 처음에 재무상태표부터 설명하는 것이 보통인데, 여기서는 우선 손익계산서부터 보도록 합시다. 손익계산서는 그 이름에서 알 수 있듯이 기업의 매출액과 각종 이익의 규모 등을 보여주는 표입니다. - 손익계산서 앞에 '포괄'이란 말이 붙은 건 일단 무시하고 넘어가도록 하죠. 나중에 설명합니다.

일본 기업들은 우리나라와는 달리 회계연도가 4월 1일부터 시작해서 다음 해 3월 30일까지이므로, 2011년 12월 31일자 결산 재무제표는 2011년의 최종결산이 아니라 2011년 4월 1일부터 12월 31일까지 3개 분기만을 합산한 중간보고라는 점을 일단 감안해야 합니다. 본 포스팅에서 다루는 닌텐도 재무제표의 원본은 닌텐도의 홈페이지에서 pdf로 다운 받을 수 있습니다.
◇ 링크: http://www.nintendo.co.jp/ir/library/earnings/index.html


자, 이것이 닌텐도의 성적표입니다. 가뜩이나 생소한 재무제표인데 게다가 깨알 같은 일본어라니... 뭐 그래도 큰 걱정은 안하셔도 됩니다. 우리말로 풀어서 설명할 거니까요.

 


▣ 닌텐도가 처음으로 적자 크리를 맞았다고?! 

이번에 닌텐도의 성적이 큰 화제가 된 것은 일본이 지금과 같은 회계기준을 적용하기 시작한 1981년 이래로 30년 만에 처음으로 연말 결산기준 당기순손실을 기록할 것이 확실시되기 때문입니다. 그것도 한두푼의 손실이 아니라 무려 650억엔, 그러니까 100엔을 1,500원으로 계산해도 거의 1조원 가까운 연간 손실이 예상된다고 닌텐도 스스로 발표했습니다. 음, 뭐 대충 큰 적자를 본다는 얘기인 것 같긴 한데 당기순손실이라... 이번 연도에 '당근' 손실을 본다는 건가? 아니, 당연히 순전히 손실을 본다는 말인가? 뭔가 애매하죠?

닌텐도의 분기 보고 및 적자 관련 뉴스기사를 검색해서 보면 대부분 영업손실 650억엔이라고 나와 있는데, 이는 명백히 잘못된 기사입니다. 닌텐도는 당기순손실이 650억엔이 될 거라고 전망했죠. 그런데 심지어는 '경제신문'이라는 타이틀을 건 곳까지도 이걸 잘못 받아 적어서 죄다 틀리더군요... 최초보도사에서 잘못 적으면 온 나라 전체가 오보하는 작금의 이 사태를 어찌해야 할지...

기업의 성적표 중 하나인 손익계산서에서 당기순이익(또는 손실)은 매출액을 시작으로 해서 그 매출액을 얻은 기간 동안에 발생한 모든 비용과 손해액 등을 빼고 매출 이외의 수입을 더한 다음 회계상 최종적으로 남는 이익입니다. 즉 어떤 기업이 2011년도 당기순이익이 1억원이다라고 발표했고 그런 회계처리가 정상적이라면 그 해에 번 돈에서 쓴 돈을 다 빼고 최종적으로 1억원의 이익을 기록했다는 뜻입니다. 그러면 당기순이익(손실)이 뭔지를 이해하려면 매출액에서 뭘 빼고 뭘 더해야 하는지를 알야겠죠? 자 우선 아래 그림을 봅시다. 이것은 바로 위에서 보았던 닌텐도의 일본어판 손익계산서의 윗부분만을 우리말로 옮기면서 2010년과 2011년 수치의 차액과 증감 표시를 추가한 것입니다. (수치 중에서 빨간색으로 적혀있고 숫자 왼쪽에 △표시가 된 것은 회계상 통용되는 기호로, 마이너스라는 뜻입니다)


참고로, 우리나라의 예산회계법에서는 회계연도를 매년 1월 1일에 시작하여 12월 31일에 종료한다고 규정하고 있어 국가 및 공공기관 예산은 모두 이를 따르고 있고 일반 기업도 대부분 이에 맞추고 있으나 일본은 매년 4월 1일에 시작하여 다음 해 3월 31일까지로 규정하고 있습니다. 따라서 닌텐도의 재무제표에서 말하는 3사분기란 9월~12월을 뜻하며 3사분기 누계란 4월~12월까지의 누적합산을 의미합니다.


일단 매출액을 한 번 보죠. 2010년에는 1~3분기의 9개월 동안 8079억엔의 매출을 올렸지만, 2011년 같은 기간 동안에는 무려 31%나 감소한 5,561억엔에 그칩니다. 감소된 매출액이 2,518억엔이니까 환율을 100엔당 1,500원으로 적용하면 우리 돈으로 3조 7782억원이나 실적이 떨어진 겁니다. 그런데 매출원가는 전년에 비해 불과 12.8% 감소하는데 그쳤군요. 그래서 매출액 - 매출원가로 계산하는 매출총이익이라는 수치는 전년에 비해 무려 59.1%나 감소한 1311억엔에 그칩니다. 매출액은 31%나 감소했는데 그 매출에 따른 원가는 12.8% 밖에 안내려갔으니 이익이 줄어드는 건 당연하겠죠.

그럼 여기서 재무제표에는 등장하지 않지만 실제로 기업의 실적을 분석, 평가할 때 쓰는 지표 가운데 하나인 매출총이익률을 계산해봅시다. 매출총이익률이란, 매출총이익을 매출액으로 나눈 것으로, 매출액에 비해 매출총이익이 몇 %가 되는지를 나타냅니다.


매출총이익률 = 매출총이익 ÷ 매출액 (%)


2010년 3사분기 누계에서 매출총이익률을 계산해보면, 3204억엔 ÷ 8079억엔 = 39.7% 이고, 2011년은 23.6% 라는 수치가 나옵니다. 뭐 일단 '이익'이란 타이틀이 붙은 수치가 전년에 비해 거의 절반 가까이 떨어졌으니 뭔가 문제인 것 같긴 하죠? 참고로 최근 5년 동안 3사분기 누계 기준으로 닌텐도의 매출총이익률이 가장 좋았던 시기는 2008년으로, 무려 44.6% 였습니다. 그런데 그렇게 높았던 매출총이익률이 23.6%로 내려간 현상이 원래 비정상적으로 높았던 게 되돌아온 것인지 아니면 심각한 문제인지는 이 수치만 가지고는 확신할 수 없습니다. 이럴 때 가장 좋은 방법은 동종 업종에 있는 타 기업, 즉 경쟁사의 동기간 성적표와 비교하는 것입니다. 그런데 동종업계 비교를 하려고보니 가정용 콘솔게임 기기 및 소프트를 제작, 판매하는 기업이라고 해봐야 소니(PlayStaion) 아니면 마이크로소프트(XBOX) 정도인데... 열심히 게임만 만드는 닌텐도와는 달리 이 두 회사는 벌리는 사업이 많다보니 매출총이익률 비교는 큰 의미가 없을 것입니다. (따... 딱히 이회사들 재무제표를 찾기 귀찮아서 그런건 아니야!)

그래서 그냥 국내 굴지의 게임사인 엔씨소프트와 비교해봅니다. 엔씨소프트의 2011년 1~3분기 손익계산서를 보면 분기누적매출액이 3,911억원입니다. 그리고 매출원가는 718억원이로군요. 그래서 매출총이익은 3,193억원인데... 매출총이익률을 계산해보면 무려 81.6%라는 어마어마한 비율이 나옵니다. 이말은 즉 매출원가율이 18.4% 밖에 안된다는 뜻이죠. 아무래도 온라인 게임 기업은 공장과 같은 설비를 가동해야 하는 것도 아니고 상품 제작에 원재료가 필요한 것도 아니라서 매출원가는 다른 업종에 비해 매우 낮을 수 밖에 없습니다. 게임 기업뿐 아니라 무형자산을 거래하는 서비스업의 특징이기도 하죠. (그래도 엔씨의 매출총이익률 81.6%는 좀 후덜덜 합니다. 물론 게임 기업의 매출원가는 계상하기 나름인 면도 있긴 하지만요. 국내에서는 비상장 게임사의 경우 매출원가를 아예 0원으로 올리기도 합니다. 이 경우 매출액=매출총이익 인 셈이므로 매출총이익률이 100%가 되겠죠. 상장 게임사의 경우에는 일상적으로 지출하는 개발비의 일부를 매출원가에 산입하기도 합니다.)


매출총이익률은 이와 같은 공식으로 쉽게 구할 수 있습니다. 즉 매출액이 같다면, 매출원가에 따라서 매출총이익률이 달라지는 것이죠. 그러므로 닌텐도의 매출총이익률이 크게 낮아진 이유는 매출액이 감소한 것도 이유지만, 매출원가를 매출 감소분만큼 절감하지 못했기 때문입니다. 그러면 왜 매출원가를 절감하지 못했을까요? 닌텐도는 게임 소프트 뿐만 아니라 Wii, DS, 3DS 등과 같이 콘솔 하드웨어도 판매하는 기업입니다. 그리고 이런 제품을 생산하려면 꽤 큰 생산시설이 필요하고, 하드웨어에 들어가는 각종 부품과 전자장치와 같은 재료도 구매 또는 제조해야 합니다.

그런데 판매량이 적으면 사용하는 재료도 그에 맞게 줄어들지만 (회계에서는 수익비용 대응의 원칙에 따라 실제 판매된 금액에 대한 원가비용만 매출원가로 취급하며, 아직 팔리지 않은 나머지 재고나 재료 등은 팔릴 때까지는 '재고자산'으로 취급함), 생산시설의 유지관리비, 생산직 근로자의 임금 같은 고정비용은 생산량 판매량에 관계없이 일정 수준을 유지하기 마련입니다. 즉 닌텐도의 매출총이익률이 점점 악화되는 것은 콘솔 게임업의 특성상 이러한 고정비를 절감하기가 어려운 단점이 매출액 감소 때문에 더욱 부각되는 현상입니다.


▣ 영업이익이 뭐길래

자 그러면 이번에는 닌텐도의 영업이익을 봅시다. 영업이익은 앞서 살펴본 매출총이익에서 판매관리비를 빼기만 하면 됩니다. 어때요? 참 쉽죠? 다시 위로 스크롤해서 보기가 불편하실테니 손익계산서 짤방을 여기에 다시 올리죠.


자, 보시면 2011년도 3/4분기 누계의 매출총이익은 1,311억엔이었는데, 판매관리비가 그보다 더 큰 1,475억엔이나 나왔습니다. 그래서 계산해보니까 164억엔의 영업손실이 발생하고 말았죠. (다른 표현으로 하면 영업이익이 마이너스 164억엔이라고도 말할 수 있음) 전년도 같은 기간에만 해도 1,587억엔의 영업이익을 냈던 닌텐도가 말입니다. 그냥 한 방에 훅~ 간거죠. 이런 성적표를 받아 든 지금 닌텐도의 심정은 대충 이럴 겁니다.


그러면 앞서 매출총이익률을 계산한 것처럼 영업이익률도 한 번 몇 퍼센트인지 따져보죠. 영업이익률은 영업이익 ÷ 매출액으로 계산합니다. 계산해보면, 2010년도의 영업이익률은 19.7% 였는데, 2011년에는 △3.0%가 됩니다. 영업이익률이 마이너스(영업손실)라는 얘기는 그 기업이 주된 사업을 통해 이익을 얻지 못하고 손해를 보았다는 의미입니다. 

아직 닌텐도의 분기 보고서가 공식 발표되지 않아서 이번 판매관리비가 어떻게 산출된 것인지는 정확하게 알 수 없지만 닌텐도의 과거 재무제표에서는, 판매관리비의 40% 정도를 광고선전비로, 27~28% 정도를 연구개발비로 계상해왔습니다. 그러니까 저 두 가지 지출이 판매관리비에서 거의 2/3 정도를 차지하는 핵심이라고 할 수 있겠죠. 더우기 매출액이 31%나 감소했는데도 판매관리비는 전년 동기간 대비 8.7%만 감소한 걸로 미루어 봐서는 광고선전비를 삭감하지 않았거나 차기 콘솔이나 소프트를 위한 연구개발비를 증액한 것이 아닌가 조심스럽게 추측할 수 있습니다. 이 부분은 정식 분기 보고서가 발표되면 살펴볼 필요가 있겠군요.


▣ 재무제표 분석의 시작은

지금까지 닌텐도의 손익계산서 일부분을 보며 재무제표 분석의 기초에 대해서 알아보았습니다. 일단 알아둬야 할 것은, 재무제표를 볼 때에는 한 기간의 결산분만 보아서는 제대로 된 분석을 하기가 어렵기 때문에 전년도 동기간 자료와 비교하거나, 3~5년 정도의 기간별 자료를 통해 수치 변화추이를 조사하고. 동종 업종의 일반적인 수치와 비교해야 한다는 점입니다. 그래서 크게 다르거나 변화한 수치가 있거나 그 원인이 무엇인지를 자세히 살펴봐야 합니다. 아래의 차트는 닌텐도의 최근 5년간 매출액, 매출총이익, 영업이익의 기간별 추이입니다. 5년간의 수치의 변동과 추세를 보면 지금 닌텐도가 얼마나 위기 상황에 있는지를 쉽게 알 수 있죠. - 단 이 자료는 연말 결산시점의 매출액이 아닌 각 연도별로 4월 1일부터 12월 31일까지의 3개 분기 누계입니다. 앞서도 언급했지만 일본은 회계연도가 4월부터 시작하기 때문에 회계연도 결산은 3월 31일이므로 아직 2011년 4월에 시작된 회계연도는 끝나지 않았습니다.


그리고 또 하나, 재무제표상의 같은 항목이어도 그 기업이 어떤 산업에 속해있고 어떤 업종의 사업을 영위하느냐에 따라서 수치를 달리 해석해야 합니다. 앞서 살펴보았듯이, 같은 게임 회사여도 콘솔 기기를 제조해야만 하는 닌텐도와 기기를 생산하지는 않고 온라인 게임 위주로 사업을 벌이는 엔씨소프트는 매출과 원가 등의 발생형태가 다르기 때문에 매출총이익률이 닌텐도보다 엔씨소프트가 더 높다고 해서 무조건 엔씨소프트가 원가관리를 더 잘하고 있다고 속단해서는 안된다는 뜻입니다. 즉 재무제표를 올바르게 분석하려면 단순히 숫자만 볼 줄 안다고 되는 것이 아니라, 해당 산업의 특성, 그리고 그 기업이 사업을 통해서 어떻게 돈을 벌고 쓰는지를 알아야 하죠.

* * * * * * * * * * * * * * * * * * * * * * * *

분량이 너무 길어지니 이번 편에서는 여기서 마치고 다음 회에 계속 이어서 손익계산서의 나머지 부분과 또 재무제표의 다른 자료, 즉 재무상태표와 현금흐름표 등도 분석해보도록 하겠습니다.

◎ 본 포스팅에서 사용된 닌텐도의 손익계산서(한글) 다운로드

 

반응형
,
Posted by 대마왕J
에라 모르겠다. 원래 3일이 발표날인데, 이미 두 개나 써놔서 그냥 오늘 올리겠습니다!!! 3일날 또 올라갑니다!!!
콱 일주일에 하나씩 써버릴까!!!!
-----------------------------------------------------------------------------------------------



밝힐 것이 있습니다.
사실 여기서 shaderFX를 강의하고, 이 강의가 자연스럽게 포프님의 쉐이더 강의로 이어지는 것이 목표였습니다.
포프님의 강의가 물론 매우 쉽다는 것 인정합니다만, 지금의 제 수준에는 그렇다는 거고...
제가 처음 쉐이더에 관심가지던 그래픽 디자이너였던 4-5년 전에는 그 정도도 결코 쉬운게 아니었었다는거지요!!! 프로그램 몰라!! 어려워!!! 그게 뭐야!!! 이쁘지도 않은 영어 메모장으로 일을하다니 이 천한것들


그리고 나서 다시 유니티 쉐이더로 와서 ... 그래픽 디자이너들이 간단한 유니티 쉐이더 정도는 직접 코딩할 수 있게! 하는게 목표였는데... (겜브리오 쉐이더로 할까 하다가 , 겜브리오 쉐이더보다 유니티 쉐이더가 훨씬 쉽게 짤 수 있어서..)

한 3강 써보다 보니 이 속도로 쓰다간 원하는 걸 다 쓰려면 산 3-4 년 걸릴 것 같지 뭡니까 이히히히
그래서 걍 그냥 맘편하게 ShaderFX 만 집중해서 쓰기로 생각했습니다. 그래서 제목도 맨 앞에 'ShaderFX를 이용한' 이라고 붙였지요. 아무도 관심없었다는거 잘 알지만.
어쩐지 덕분에 게임개발 포에버 사이트에서는 제가 오래오래오래 글 쓸 것 같은 생각이 들긴 합니다만 ... ㅋ

하여간 그래서 오늘 강의 시작합니다.


==========================================================================================================

1. Float을 산수로 가지고 놀자.

모든 색은 float3로 이루어질 수 있다고 저번 시간에 말씀드렸습니다. 그러니까 모든 그림의 한 픽셀 한 픽셀들은, 각각 float3의 색상 구조로 이루어져 있다는 거지요.

이렇게 모든 그림을 3자리 소숫점인 float3로 인식을 하는 '개념' 이 매우 중요합니다.
제가 강의를 해 본 결과에 의하면, 그래픽 디자이너에게 가장 부족한 개념이 이 부분이었거든요.

자 , 저번 시간의 약간의 복습입니다.
일단, 회색 주전자가 있네요. 만만한게 주전자죠. 넹.

2377579


자 , 이 주전자의 텍스쳐를 빨리 숫자로 생각해 보세요! 3,2,1 땡!







float3(0.5,0.5,0.5) 일겁니다.[각주:1]



여기까지는 쉽게 순간적으로 생각해 낼 수 있어요.
그럼 이제 다시 한 번, 약간의 산수를 해 봅시다. 색상은 잠깐 생각하지 마세요.




float3(0.5,0.5,0.5) 의 각각 요소에다가, 0.5 씩을 더하면 어떻게 될까요?
즉 float3(0.5,0.5,0.5) + float3(0.5,0.5,0.5) 라는 말이죠.




그래픽 디자이너라고 무시한다고 생각하실 수도 있겠지만 ...
아시잖아요. 우리같이 그림만 그리고 살아온 사람들은 가끔 돈계산도 깜빡깜빡 합니다. 으흐흐.
간단하지요?

float3(0.5,0.5,0.5) + float3(0.5,0.5,0.5) = float3(1.0,1.0,1.0) 입니다.
... 흰색이네요??!??


넹 , 수학적으로는 알겠고, 이번엔 잠깐 봉인해놨던 색으로 생각해 보지요.

float3(0.5,0.5,0.5) + float3(0.5,0.5,0.5) = float3(1.0,1.0,1.0) 이니까,
회색 에다가 회색 을 더하면 흰색이 된다.



라는 말씀이지요?
달리 말하자면,
'색끼리 더하면 값이 올라간다. 즉 밝아진다는 뜻이다' 라는 말이 됩니다.[각주:2]

자 이제 그럼 이걸 직접 만들어서 증명해 봅시다.


2. ShaderFX로 연산해 보기


뭐 간단합니다. 회색 + 회색 이니까요. 만들어 봅시다.

일단 이 상태에서 시작합시다.

회색 칼라 노드를 하나 더 만듭시다. 빈 화면에서 오른클릭 -> Maps -> Color 를 선택하면 됩니다.[각주:3]


그리고 색상은 회색으로 지정합시다. 회색 노드가 두 개가 되었습니다.



자 이젠 덧셈 기호가 필요합니다.
이게 셰이더 코딩으로 하면 그냥 A+B 하면 되는데, 노드 구조에서는 굳이 이것도 노드를 만들어줘야 합니다 .
이게 사실 좀 귀찮긴 한데 개념적으로만 보면 쉽긴 하죠. 익숙해지면 귀찮아요 ㅋㅋㅋ

다시 빈 화면에서 오른쪽 클릭해서 Math / MathOperator 를 만듭니다. 이게 연산자 노드예요.



연산 노드가 나왔습니다. 기본은 * 연산으로 되어 있습니다. 오른쪽 메뉴에서 + 로 바꿔줍시다. 그럼 오퍼레이터가 + 로 바뀝니다.

둘을 더해야 하니까, Input A 와 Input B 에다가 회색 노드를 연결시켜줍니다.
그리고 결과물을 Ambient Color 에 연결해 줍니다.

자, 개념이 쉽게 잡히지요? 두 회색을 더한 겁니다. 즉 float3(0.5,0.5,0.5) + float3(0.5,0.5,0.5) 를 만들었고, 결과물을 Ambient Color로 연결한거지요.

자, 결과물이 나왔습니다. 흰색입니다. float3(1.0,1.0,1.0) 이 나왔지요.


만약 이걸 곱하기 (*) 로 바꾸면 어떻게 될까요?



자, 이렇게 나옵니다. 이제 쉽게 예상하실 수 있으시겠지요?
float3(0.5,0.5,0.5) * float3(0.5,0.5,0.5) = float3(0.25,0.25,0.25) 지요.
소수점 숫자들끼리 곱하기를 하면 숫자가 더 작아집니다. 그러니까 더 어두워진다는 거지요!

자 더 어두워졌지요? 배경이 꽤 새까맣기 때문에 그렇게 안보이지만, 회색보다는 더 어두운 회색이 되었습니다.
이것은 포토샵에서의 레이어 모드 중, Multiply 랑 똑같습니다!![각주:4]


알면 재밌습니다.


셰이더 연산을 할 때에는 위에서 본 것과 같이 덧셈과 곱셈 연산을 주로 쓰고, 뺄셈은 가끔 쓰고, 나눗셈은 거의 안쓰다시피 합니다. (2로 나누나 0.5를 곱하나...)[각주:5] 뭐 그래도 다른 것도 한 번 해보시고 이해해 보시면 더 좋겠지요?

숙제가 있습니다. 흑백으로만 하면 재미없으니까, 칼라를 가지고 놀아보세요. 빨강 (1.0, 0.0, 0.0) 과 파랑 (0.0,1.0, 0.0) 을 각각 더해보거나 곱해보면 무슨 일이 생길까요? 그리고 왜 그런 결과가 나올까요?



3. 상수 추가하기

미리 얘기했듯 저는 정말로 쉬운 강의입니다.
어려운 예제같은건 안해요 우후후
어려운 예제하면 내가 힘들걸랑


그러니깐 이번엔 위의 예제랑 똑같은거 하나 또 만들어 봅시다.

지금 위의 연산은 이런거였죠?
float3(0.5,0.5,0.5) + float3(0.5,0.5,0.5)
다행히 위의 그림은 단색입니다. 즉, 어떤 부분의 픽셀을 선택하더라도 전부
float3(0.5,0.5,0.5) + float3(0.5,0.5,0.5)
라는 거지요.



복잡한 이미지의 칼라라면, 픽셀마다 색이 다르겠지만 저 단색 칼라는 어딜 찍어도 float3(0.5,0.5,0.5) 입니다.





그러니까.






요런것도 가능해져요.

float3(0.5,0.5,0.5) + 0.5


이것도 똑같은 결과가 나오게 됩니다.
뭐 일단 해볼까요?
일단 아래 그림에서 시작해 봅시다.


두 노드 중 하나를 지워보고, 하나를 숫자로 (상수로) 바꿔봅시다.
일단 노드 하나를 선택해서 DEL 키를 눌러 지웁니다.

지우고 나면, Input B 가 비지만, 위 그림의 오른쪽 화살표를 보면 기본값이 1.0이 들어가고 있다는 것을 알 수 있습니다.[각주:6]
자 이것 말고, 상수 노드를 따로 만들어서 추가해 봅시다.

위 그림처럼, Maps/Constant 를 추가해 봅시다. 이게 상수입니다.

이제 조금 익숙해졌을테니, 조금 빨리 진행해 보지요. Constant 노드를 만들면, float 이 빠져나오는 것을 알 수 있습니다. 한 자리 숫자지요. 그리고 이 숫자는 오른쪽 메뉴에서 수정할 수 있습니다. 실시간으로요!!!
이걸 Input B 에 연결하면, float3(0.5,0.5,0.5) + 0.5 가 됩니다.

이제 이것이 float3(0.5,0.5,0.5) + 0.5 라는걸 아실 수 있으실 겁니다.



숫자를 바꿔 보시고, 곱셈으로도 바꿔 보시고 ... 조금 가지고 놀아 보세요.


4. 더하면 밝아지고 곱하면 어두워집니다.

오늘 내용의 결론입니다.
이미지를 더하면 밝아지고,
곱하면 어두워집니다. (소숫점이거든요. 소숫점은 곱할수록 작아지지요)

여태까지 흑백 이미지만 가지고 노니 재미 없으니까 그냥 추가한 겁니다. :)

그럼 이제 위의 내용을 곰곰히 생각해 보면서, 아래의 다양한 내용을 이해하도록 해 보세요. 직접 해보셔도 좋겠습니다.




1. 이전에 만들었던 것처럼 풀 이미지에 0.5를 더하면, 밝아집니다.

0.5가 아닌 0을 더하면 변화가 없겠지요? 한번 해보세요.




2. 풀 이미지에 1.0을 곱하면? 그대로입니다.
곱하기를 하지 않고 1.0을 더하면 하얗게 날라갔겠지요?





3. 그럼 풀 이미지에 0.5를 곱하면? 어두워집니다.
0 을 곱하면 완전 검은색이 되겠지요?


위 3가지 예제가 모두 이해 되셨습니까?


자, 이렇게 해서 '칼라를 숫자로 인식하는 것' 을 저번 시간에 했고,
이번 시간에는 '그렇게 숫자로 인식한 칼라를 덧셈과 곱셈 등 수식으로 연산해 보는 것' 을 해봤습니다.

다음 시간에는 이제 각종 메터리얼 옵션들을 간단하게 사용해 보도록 하겠습니다. 이미 만져보신 분들도 계시겠지만...
  1. 무채색이 될수록 RGB 숫자가 같아지지요. RGB가 완전히 같은건 그야말로 흑백 이미지. 요 개념 자주 쓰입니다. 밑줄 쫙. [본문으로]
  2. 흔히들 '포토샵의 Scren 이 이 원리로 밝아지는 거다' 라고 말씀하시는 분들이 계신데 엄밀히 말하면 다릅니다. 포토샵의 Screen 공식은 (1.0 - ((1.0 - base) * (1.0 - blend))) 이고요. 지금 글과 같이 단순히 더하기만 하는 것은 Add 라고 부릅니다. 포토샵의 레이어 속성에는 이게 없고, 에프터 이펙트에는 있지요. [본문으로]
  3. 다른 요령도 가르쳐 드리겠습니다. 이미 만들어져 있는 Color 노드를 선택하고, Ctrl+C 를 눌러보세요! 아아 저는 Ctrl+C 가 너무 좋아요!!! 아흥 하악하악 [본문으로]
  4. 포토샵의 Screen 블렌딩은 단순한 덧셈이 아니지만, Multiply는 단순한 곱셈이 맞습니다 :) [본문으로]
  5. 사실 나눗셈은 일반적인 경우에 계산이 꽤 드리기 때문에, 보통은 0.5를 곱한다고 합니다. [본문으로]
  6. B가 1.0이므로, 사실 결과는 0.5+1.0 이므로 float3(1.5,1.5,1.5) 겠지만, 컴퓨터 그래픽에서 1이 넘는 색상은 그냥 흰색일 뿐이므로 float3(1.0,1.0,1.0)과 차이가 없는 결과물이 나옵니다. [본문으로]
반응형
,
Posted by 알 수 없는 사용자
원래 28일에 올려야했지만 LOL을 정신없이 하다가 지금에서야 올리게 되었습니다. 제발 용서를...꾸벅꾸벅

 온라인 게임의 퀘스트는 크게 5개의 구조로 나눠지는 것 같습니다. 게임마다 다를 수 있겠지만 제가 아는 다른 분도 이렇게 나누었으니 일단 다섯 개의 구조를 가지고 설명해 보겠습니다.

시작, 수락, 진행, 완료, 보상 

 1. 시작

서버가 가진 퀘스트 목록 중에 플레이어에게 보여줄 퀘스트는 무엇인가? 를 결정하는 단계라고 할 수 있습니다. 현재 플레이어 캐릭터의 레벨, 직업, 세력, 퀘스트 수행정도, 명성, 전쟁포인트 등 다양한 조건을 기반으로 플레이어가 할 퀘스트를 알려주게 됩니다.(보틍은 느낌표를 많이 쓰지요.)

느낌표 하나 띄우는 것도 쉬운 일은 아닙니다.

만약 유저가 '아직은 할 수 없지만 조금만 더 조건을 채우면 할 수 있어요.'라는 퀘스트를 알려주고 싶다거나 하는 것도 이 단계에서 진행하게 됩니다.

2. 수락

느낌표가 아무리 많이 떠 있어도 유저가 퀘스트를 받겠다고 수락하기 전까지 그저 하나의 느낌표일 뿐입니다. 유저가 퀘스트 내용을 읽어보고 '수락'하는 순간 느낌표는 퀘스트가 되어 유저 목록에 추가되지요.
보통은 캐릭터 당 받을 수 있는 퀘스트에 제한이 걸려있는 경우가 많습니다.

3. 수행

받은 퀘스트의 조건을 달성하는 단계입니다. 보통은 '몬스터 처치, 다른 NPC에게 대화(전달), 오브젝트 작동, 재료 수집, 호위' 등이 흔하게 들어가며 그 외에도 '제조' 시스템이 있으면 특정 물품을 만들라는 퀘스트가 나오겠지요.

4. 완료

수행 조건을 100% 채웠을 때 그것을 완료하는 것입니다. 아키에이지의 경우에는 꼭 100%가 아니더라도 완료할 수 있게 되어 있지만 말입니다.

5. 보상

플레이어가 퀘스트를 하는 가장 큰 이유이지요. 보상입니다. 보상을 왜 완료와 같이 하지 않고 별도로 분리할까요? 저도 그 이유를 생각해봤는데 아무래도 '어뷰징'적인 처리가 가장 큰 이유가 아닐까 싶습니다. 이 이유를 알고 계신 분은 덧글로 좀 알려주시면 감사하겠습니다.


이상으로 MMORPG의 퀘스트 구조에 대해 알아보았는데요.
다음에는 실제 게임에 적용될 법한 퀘스트를 만들어보도록 하겠습니다.

아래에 소개되는 가상 라노베 시놉시스를 바탕으로 만들 생각인데 다른 분들도 미리 한 번 해보시는 것은 어떨까요?

======================
낙동강 전선에서 북한군에게 밀려 적화되어버린 가상의 한반도 배경입니다. 이승만 정부는 제주도에 임시정부를 설립했고, 한반도에는 재한 중국군이 주둔하고 있습니다. 한반도 전체가 적화되어 버린 탓에 남로당은 강력하고, 재한중국군에 의지한 연안파를 숙청하는데에도 실패한 김일성은 현재와 같은 절대권력을 쥐지 못한 상태로 90년대에 사망하게 됩니다.

무대는 서울, 남로당과 연안파 공산주의자들의 자제들이 주로 다니는 가상의 고등학교에서 김일성 사망소식을 들은 박헌영의 손녀딸 = 라노베니까 손녀딸입니다. = 은 자기와 친한 친구(주인공 포함)들을 비밀리에 불러모아 김일성의 초상화를 밟는 충성 맹세 의식(?)을 합니다. 그런데 그 행사의 내용이 학교 내 김일성 파 선생에게 밀고되었는지 주인공만 홀로 그 선생에게 끌려나와 진상을 추궁당합니다.
===============================

그럼 다음에 올릴 때 저 시놉시스로 퀘스트를 만들어보겠습니다.
감사합니다. 
반응형
,