2013년 12월 12일 목요일

블렌더에 대해서

게임을 개발할때는 그래픽 요소도 상당히 중요하죠.

그래픽은 크게 2D와 3D로 나눌 수 있어요.
요즘은 3D를 많이 사용하는 추세고요.

보통 3D 그래픽 리소스를 만들기 위해서는 3dsMAX나 MAYA같은 툴을 이용해서 만드는데요. 이 툴들의 가격이 상당히 비싸다는 것이 문제입니다.
물론 회사에서는 그만한 가격을 지불할 수 있겠지만 인디 개발자나 1인 개발자, 또는 학생의 입장에서는 그 값을 지불하기에 너무 비쌉니다.
보통 몇백만원정도의 가격이죠.

2D의 경우에도 주로 Photoshop이라는 툴을 사용하는데 이것도 상당히 비쌉니다. 

리소스들을 얹을 게임 엔진도 필요하구요. 이런 게임 엔진들은 가격이 몇억을 하니 구입은 상상도 할 수 없죠.

하지만 요즘엔 비교적 저렴하거나 또는 무료의 툴들이 상당히 많이 있고 성능도 무시할 수 없을 만큼 강력합니다. 

참으로 다행스러운 일이네요.

그중에 우선 3D 툴로 사용할만한 무료 툴을 소개할께요.

여러가지 툴들을 사용해봤지만 이것은 정말 너무 강력합니다. 가장 큰 장점이 무료라는것이구요. 기능 또한 상용 툴들에 비해 전혀 밀리지 않아요. 오히려 개인적으로는 더 좋다고 생각이 들어요.

하지만 한국에서는 사용자가 너무 적어 이런 툴이 있는지 조차 모르는 사람들이 많은게 사실이네요.

틈틈히 튜토리얼을 올려서 사용자가 많아지길 기대하는 맘으로 글을 써봅니다.

툴의 이름은 Blender라고 하는데요.(이런 무료툴들로 유명하고 강력한 기능을 갖고 있는 툴들은 Gimp(Photoshop과 같은 툴), Audacity(사운드 편집 툴), Inkscape(Illustration과 같은 툴) 등등이 있어요. 차차 튜토리얼을 올릴께요.)

Blender는 


위의 링크에서 받을 수 있어요. 몇달에 한번씩 최신 버젼이 올라오므로 틈틈히 들어가 보세요.
위의 링크에서 확인 할 수 있겠지만 윈도우, 맥, 리눅스에서 모두 완벽하게 돌아가고 모바일 버젼도 개발중이라는 이야기도 얼핏 들었어요. 진짜로 개발이 된다면 누구나 자신의 스마트 폰에서 모델링 할 수 있겠네요.
또한 설치버젼과 립버젼(설치가 필요없는 버젼)이 존재하고 용량도 70메가 정도로 아주 작아요. 
설치 후 돌려보아도 굉장히 가볍고 쾌적하다는 느낌을 받을 수 있어요.
32비트와 64비트 버젼도 있구요. 
오픈소스 툴이다 보니 버젼업도 자주 되구요.

인터페이스는 유동적으로 사용자가 편한대로 바꿀수 있어요. 
작업하는 창을 한개로 할수도 있고 수십개로 나눌수도 있어요.
모든 창들은 자유자재로 이리 붙였다가 저리 붙였다가 할 수가 있기 때문에 같은 툴을 사용하더라도 사용자에 따라 전혀 다른 툴처럼 보일수도 있죠.

또 수많은 단축키들이 있어서 손에 익숙해지면 작업 속도가 비약적으로 빨라질 수 있어요.
다른 상용툴들이 갖고 있는 기능들은 대부분 다 포함되어 있구요.

요즘은 하이퀄리티 시대이기 때문에 노멀맵 사용이 거의 필수적인데요.
노멀맵을 만들려면 하이폴리곤 모델이 필요하구요. 
하이폴리곤 모델을 손쉽게 만들기 위해서는 ZBrush라는 별도의 툴이 필요하죠.(이것도 엄청 비싸죠. 하지만 다른 툴들에 비해서 싼 편이고 가격대 성능으로 생각해 봐도 저렴한 편이기에 여유가 있다면 사도 괜챦다고 생각해요.)

ZBrush를 이용해서 모델링 하는것을 Sculping이라고 하는데요. 
이것은 모델링을 마치 찰흙으로 주물럭 거리면서 만드는 느낌을 줍니다. 하이폴리곤 모델링이 좀 더 쉽게 느껴지죠.
이러한 Sculpting이 3dsMax나 Maya에서는 안되기 때문에(또는 그 기능이 부족하기 때문에) ZBrush를 사용하는 것인데 Blender는 이 기능이 포함 되어 있어요. 

물론 ZBrush만큼 세밀한 표현에는 한계가 있지만 어느정도 비슷하게 작업하는 것이 가능해요.

그리고 Compositing이라는 기능이 있어요. 
렌더링을 마친 후에 이미지를 보정 하는 작업인데요. 이런것들을 하는 전문적인 툴로는 AfterEffect같은 툴이 있어요. 
작업한 결과물을 리얼하게 표현하기 위해서는 정말 많은 계산이 필요한데 이것을 개인 컴퓨터로 작업하기엔 너무 부하가 크고 슈퍼 컴퓨터에서 계산한다 해도 그 시간이 너무 길죠. 이런것을 '비용'이라고 하는데 그 '비용'이 너무 비싸다는거죠.

그래서 보통은 Compositing을 통해서 리얼하게 만들어 주는거에요.

모델링이 끝난 후에는 캐릭터에 생명력을 주기 위해 애니메이션 작업을 해야 하는데 애니메이션작업도 가능하게 되어 있어요.

또한 복잡한 모델링이나 복잡한 애니메이션은 사람 손으로 작업하기에 너무 힘든 부분들이 있는데 이럴때 컴퓨터의 계산에 의해서 작업하게 되면 시간과 노력을 아낄수 있어요.
그럴때 사용하는 것이 Scripting인데 Blender는 이 Script를 Python을 지원해요. 
Python은 Script계에서는 왕중왕이죠. 다방면에서 사용하고 있기 때문에 익혀두면 두고두고 요긴하게 사용되요.

예를 들자면 도시를 만들때 빌딩을 하나하나 손으로 배치한다면 정말 지루하고 힘든 일이 되겠죠. 이럴때 Script를 이용하는 거에요. 
단지 몇분안에 도시가 완성될 수 있어요.

Sculpting 기능에 이어 또 한번 놀라게 만드는 기능이 있는데, 게임엔진이 포함되어 있어요. 이런 툴은 저도 처음 봤어요. 세상에... 3D 제작 툴이 게임엔진을 포함하고 있다니...
이 엔진은 C++기반에 Python으로 작동하구요. 아직은 개선중이라서 복잡한 게임을 개발하기엔 무리가 있어 보이지만 발전 가능성이 있다고 생각해요.
모든 Script는 Logic 단위로 모여서 제작되는 방식이라서 배우기에도 쉽게 느껴지네요.

또한 중요한 사실이 있는데요. Blender는 굉장히 강력한 scripting api를 제공하고 있기 때문에 addon 제작이 용이해서 다른 게임 엔진을 블렌더와 통합시킬 수 있어요.

이러한 작업을 하는것이 Gamekit이라는 프로젝트가 있어요.
                            http://code.google.com/p/gamekit/

위의 링크에 들어가 보시면 되요.

잠깐 설명을 드리자면 이 프로젝트는 원래 Ogre 3D와 irrlicht(일리히트) 엔진을 안드로이드, 아이폰 환경에서도 작동 할 수 있도록 하는 프로젝트였는데요.
Ogre 3D와 일리히트엔진을 그래픽 backend로 사용하고, bullet(물리엔진), OpenAL(사운드 라이브러리)를 통합하여 만든 것이 gamekit의 시초였죠. 

그런데 이 프로젝트에서 blender addon을 만들었어요. 다시 말해서 블렌더에서 Ogre3D, 일리히트 게임 제작이 가능하게 된 것입니다. 게다가 안드로이드, 아이폰 포팅까지 손쉽게 되어 버렸죠. 
아직은 Blender로 게임 개발에 성공했다는 이야기를 들은 적은 없지만 계속 진행중인 프로젝트 이기 때문에 향후 발전 가능성이 기대되네요.

또 비디오 편집도 가능해요. 보통 Premiere라는 툴을 사용하는데 그것과 비슷한 작업을 Blender에서도 할 수 있다는 것이죠.

Renderer는 다른 툴들 보다 약하다고들 하는데 제 개인적인 생각으로는 그렇지 않다고 생각해요. 기본 렌더러는 그 기능이 좀 떨어지는것 같지만 기본 렌더러 이외에 Cycle이라는 렌더러가 있는데 이건 기존의 렌더러들과는 방식이 좀 많이 달라요. 마치 웹사이트에서 이미지가 점진적으로 로딩 되는것처럼 전체적으로 빠르게 렌더링 한 후 전체적으로 그 디테일을 올려가는 방식인데요. 이 렌더러를 사용할때 GPU를 사용하게 셋팅해두면 굉장히 쾌적하게 작업이 가능해요. 
사용자가 카메라 위치를 바꾸거나 오브젝트의 위치를 바꿀때 거의 실시간으로 렌더 결과를 확인하면서 작업할 수 있어요.

V-ray/blender integration 프로젝트가 진행 중이긴 하나 아직 완벽한 v-ray의 효과를 보여주진 못하고 있어요. 
대신 많은 오픈소스 렌더러들이 블렌더를 지원하고 있는데 Yafaray나 LuxRender같은 것들이 대표적이에요.(V-ray 못지 않은 렌더러들이에요)

그리고 게임 개발에서는 렌더러의 중요도가 크지 않아요.
결국엔 게임엔진상에서 잘 나와야 하는것이기 때문에 렌더러의 비중은 크지 않죠.

전세계의 수많은 Blender 사용자들이 오픈소스 스크립트인 Python을 이용해서 다양한 addon을 만들고 있는데 이런것들을 손쉽게 사용할 수 있어요. 
이런 것들을 이용하면 보다 더 편리하고 쉽게 작업을 할 수 있죠.


위의 링크로 들어가도 되고 Blender의 설정창에서 클릭 한번으로 설치를 할 수도 있어요.(저는 이게 참 맘에 들더군요. 인터넷 상에서 여기저기 찾아서 받아야 할 수고를 줄여주니까요.)

비록 한국에는 사용자가 적지만 해외에는 이미 많은 사용자들이 있어서 튜토리얼과 커뮤니티를 찾기 쉽고 이것은 곧 배우기 쉽다는 의미가 되죠.

여태까지 Blender를 사용해본 느낌은 3dsMax보다는 Maya의 느낌과 더 비슷하다고 느껴지네요. 
그리고 그것이 단점이 아닌 장점으로 느껴지기도 하구요. 
3dsMax를 사용할때보다 더 가볍고 쉽고 재밌다고 느껴졌으니까요.

Blender는 정말 강력하게 추천하는 툴입니다. 
이제 막 3d 배우시는 분, 인디나 1인 개발하시는 분, 기존에 사용하던 툴이 너무 무겁거나 답답하다고 느끼시는 분들 모두 한번쯤은 사용해볼 만한 툴이라고 생각합니다. 

댓글 없음:

댓글 쓰기