그림 못 그리는데 인디게임 만들고 싶어요 - 2
이전글 링크
생초보인데 인디게임 만들고 싶어요 https://gall.dcinside.com/m/game_dev/14394
그림 못 그리는데 인디게임 만들고 싶어요 - 1 https://gall.dcinside.com/m/game_dev/14403
이 글은 그래픽 프로그램을 거의 사용해본적이 없는 생초보 대상이니까, 생초보 아니면 도움 안 되는 내용밖에 없다. 자세한 설명보다는 이런 것도 있으니까 찾아 보라는 수준의 소개다.
1. 그래픽 프로그램 소개
- 이미지 편집 : Adobe photoshop(월정액), Krita(무료), GIMP(무료), Affinity Photo(유료)
- 벡터 : Adobe illustrator(월정액), InkScape(무료), Affinity Designer(유료)
- 일러스트 : Clip Studio(유료), Medibang Paint(무료)
- 2D 애니메이션 프로그램 : Spine(유료), DragonBones(무료), Live2D(유료), Anima2D(무료, 유니티 에셋)
- 도트 : Aseprite(유료), Promotion NG(유료), Pyxel Edit(유료), GraphicsGale(무료)
- 3D : Autodesk 3Ds Max(월정액), Autodesk Maya(월정액), Zbrush(유료), Blender(무료)
- 복셀 : MagicaVoxel(무료), Qubicle(유료)
게임 개발 처음 시작하고, 그래픽에도 관심이 없었다면 게임 개발할때 사용하는 그래픽 프로그램도 모르는 경우가 많으니까 프로그램들 간단한 소개를 할께.
굵은 글자로 표시한 것들이 그 분야에서 많이 사용하는 프로그램이다. 사람들이 많이 쓰는 프로그램을 사용해야, 관련 자료도 찾기 편하고 다른 사람과 협업할때도 편하다.
여기서는 간단한 소개만 하니까 자세한 것 알고 싶으면 구글에 검색해라. 공식 홈페이지만 들어가도 설명 잘 되어 있다.
학생 할인
대부분의 프로그램은 학생 할인이 있다. 인증 방법은 다양하지만, 제일 쉬운 방법은 학교에서 발급한 이메일 주소다. 이메일 주소가 있다면 할인을 받자.
특히 Autodesk는 학생이면 무료로 받을 수 있다. 문제는 학생용 버전으로 학습만 하고 영리활동 하지 말라고 적혀있다. 학생용으로 영리활동하면 어떻게 되는지 궁금하면 http://www.inven.co.kr/webzine/news/?news=144603 이 기사를 참고해라.
Adobe
2D 쪽은 Adobe가 막강하다. 특히 포토샵은 프로그램 이름이 고유명사 취급될 정도로 유명하다.
어도비는 구버전을 유료로 팔았지만, 요즘은 월정액제를 사용하고 있다.
가격은 포토그래피(포토샵 + 라이트룸)가 월 11,000원. 단일 앱은 월 23,100원. 모든 앱은 59,400원이다.
즉, 모든 포토샵만 사용한다면 월 11,000원이 나가고, 포토샵 + 일러스트레이터라면 11,000 + 23,100 = 34,100원이 나간다.
학생 할인은 23,100원으로 모든 앱이 가능하다.
이미지 편집, 벡터 쪽에서 Adobe 제외한 프로그램들은 성능, 관련자료들이 전부 부족하니까 돈 절약 할 것 아니면 관심 갖지 마라.
Clip Studio
http://www.clipstudio.net/kr
자세한 설명은 공식 홈페이지에 들어가서 봐라. 선보정이라던지 만화나 일러스트 그리기에 좋은 기능들이 많고 저렴해서 웹툰 작가들이나 일러스트레이터들이 많이 사용한다.
PRO(49.99달러), EX(219달러) 2가지 버전이 있는데 게임 개발이라면 프로 버전으로도 충분하다. 참고로 1년에 몇 번씩 할인 행사하니까 할인 할 때 사는게 좋다.
같이 있는 메디방 페인트도 선보정 기능이 있으니, 선보정 기능만 본다면 메디방 페인트를 쓰는 것도 좋다.
2. 비트맵과 벡터
2D 그래픽을 표현하는 방식은 크게 비트맵과 벡터가 있다. 비트맵은 일반적으로 픽셀로 표현하는 방식이고, 벡터는 점과 점을 연결하는 방식으로 이미지를 표현하는 것이다. 아 설명하기 어렵네. 그냥 구글에 “비트맵 벡터”로 검색하면 잘 설명한 글 나오니까 참고해.
어쨌든 비트맵으로 그림을 그리면 확대하면 그림이 깨지지만, 벡터는 확대해도 안 깨진다. 그래서 다양한 크기로 만들어야 하는 이미지(예: 로고)를 벡터로 만든다.
3. GIF, JPEG, PNG
그림 파일 이미지로 많이 사용하는 확장자가 크게 이 3가지가 있다.
GIF
움짤에 많이 사용하는 이미지 포맷이다. 특징은 256색만 지원, 투명색(알파채널) 미지원이다.
그래서 예전에 GIF 포맷으로 만든 픽셀아트 게임 스프라이트 찾아보면 배경색이 핑크색인 경우가 많다.
왜냐고? 투명색을 지원 안 하니까 잘 안 쓰는 색(보통 핑크색)을 1개 정해서, 투명색으로 칠해야 할 곳을 핑크색으로 칠하고 프로그래밍 할 때 핑크색을 안 나오게 하는 방식으로 투명색을 구현했다.
하지만 PNG 포맷이 나오고는 그럴 필요가 없으니까, 그냥 GIF 대신에 PNG 쓰는게 편하다.
JPEG
JPG라고도 부른다. 용량을 줄이기 위해서 이미지를 압축해서 품질이 떨어진다. 그래서 이미지 용량이 적을수록 품질이 영… 어쨌든 이런 특성 때문에 도트 찍은 것은 JPEG로 저장하지 않는게 좋다.
어쨌든 특성 때문에, 약간의 이미지 손실이 있어도 상관 없고, 투명색이 필요하지 않다면 용량 절약을 위해서 사용한다(예: 배경)
PNG
GIF와 달리 256색 제한도 없고, 투명색도 지원한다. JPEG처럼 이미지 손실도 없고. 왠만하면 게임 만들때 그래픽 에셋은 PNG 사용하자.
4. 이미지의 가로, 세로 크기(2의 제곱)
자세하게 설명하려면 내용도 길어지고, 내 설명능력도 부족하니까 간단하게 설명할께.
게임에서 이미지를 화면에 표시하기 전에 메모리에 불려오는데, 이때 2의 제곱 단위로 불려온다.
예를 들어서 16x16 크기의 이미지가 있으면, 메모리에 불려올때 16x16의 상자에 보관이 가능해. 그런데 16x17 크기의 이미지는? 16x16 크기의 상자에 들어가기에는 크니까 더 큰 상자에 넣어야겠지? 그런데 상자가 2의 제곱 단위로 커지기 때문에 16x17의 이미지는 16x17보다 세로가 1밖에 안 크지만 32x32라는 훨씬 더 큰 상자에 넣게 된다.
예전에 하드웨어의 성능이 부족할때면 이런 차이가 누적되면 문제가 생기기 때문에 무조건 2의 제곱 단위로 이미지를 만들었어. 요즘은 하드웨어 성능이 좋아져서 크게 신경 쓸 필요는 없지만, 이왕이면 2의 제곱 단위로 하는게 좋아.
특히 큰 이미지(가로,세로가 1000이 넘어간다면) 애매하게 1025x1025 같은 크기로 이미지 안 만드는게 좋지.
추가로 알면 좋은 것
tile map, sprite sheet, atlas, 9-slice, draw call
이 키워드들을 자기가 사용하는 엔진 이름과 같이 검색해보면 좋아.
5. 2D 애니메이션
2D로 만든 이미지는 어떻게 게임에서 움직이게 할까?
일단 flipbook animation 이라는 방식이 있어. 책에 그림 그려놓고 빠른 속도로 페이지를 넘기면 움직이는 것처럼 보이잖아? 바로 그런 방식이야.
이미지들을 시간이 지나면 정해진 순서대로 바꾸면서 보여주면 움직이는 것처럼 보이지.
예를 들어서 캐릭터가 달리는 애니메이션을 만들려면 캐릭터가 달리는 모습을 각 동작을 전부 따로 그려야 해. 그래서 캐릭터의 움직임이 많을수록 작업량이 늘어나지. 그리고 필요한 이미지 갯수도 늘어나고. 그리고 1개의 애니메이션에 사용하는 이미지의 갯수가 적으면 움직이도 부드럽지 않고.
그래서 사용하는 방법이 이미지에 가상의 뼈를 넣어주고, 그 뼈를 움직이면 뼈에 달린 이미지도 움직이게 하는 방법이야. 이 방법을 사용하면 캐릭터를 1개 그리고, 이미지를 부위별로 적당히 나누고, 그 이미지들에 뼈를 넣고, 그 뼈를 달리는 모양으로 움직이기만 하면 달리는 애니메이션이 완성되는 것이지. 그리고 이 뼈를 다른 캐릭터에도 붙여주면? 이미 만든 달리는 애니메이션을 쉽게 재활용할수 있어.
단순히 뼈만 움직이는게 아니라, 특정영역을 지정하고 그 영역을 변형시켜서 좀 더 생동감 있는 움직임을 보여줄수 있지.
이런 방식으로 유명한 프로그램이 Spine(http://ko.esotericsoftware.com/) 이야. 문제는 가격이… 그래서 대안으로 중국에서 만든 Dragonbones(http://dragonbones.com/en/index.html)가 있는데, 이건 Spine이랑 호환이 된다. Unity는 에셋 중에서 Anima2D 라는게 있으니까 유니티 사용한다면 드래곤본즈보다 이게 좋다.
그리고 오덕게임에서 많이 사용하는 Live2D라는 일본산 프로그램이 있다. http://www.live2d.com/en/
이건 완전 노가다니까, 초보라면 관심 갖지 말자.
6. 3D 프로그램
3D는 오토데스크가 거의 독점했어. 그리고 가격이… 어도비가 양심적으로 보일 정도로 비싸. 1년에 1,678,600원이야.
외국에서는 3ds Max랑 Maya 둘다 게임에서 잘 사용하는데, 한국 게임회사들은 거의 3ds Max만 사용한다. 국비교육도 게임 그래픽 쪽은 맥스고, 게임 그래픽 책들도 맥스야. 오토데스크가 인디 개발자들 사용하라고 기능 제한 있는 저렴한 버전 출시한게 Maya LT라고 있는데, 맥스는 그런 것 없다.
그래도 무료인 Blender가 무료치고는 매우 좋아. 글 처음에 있는 프로그램 목록들에서 무료 프로그램들은 대부분 쓰기가 힘들정도로 문제가 많은데, 블렌더는 그런게 별로 없어. 맥스랑 인터페이스가 너무 달라서, 맥스에 익숙하다면 적응하기 힘들다는 문제가 있어. 덕분에 3D 그래픽 프로그램은 꽤 갯수가 많은데, 무료인 블렌더가 성능이 좋아서 저렴한 프로그램들의 인지도가 바닥 수준이야.
그러니까 취미 수준으로 인디게임 개발이 목표면 Blender 사용하자.
https://www.blender.org/
ZBrush라는 프로그램이 있는데, 이건 3D 모델을 만들때 조각?하는 것과 비슷한 방식으로 하기 때문에, 3D 만들때 다른 프로그램이랑 같이 사용하기도 한다. 물론 다른 프로그램도 조각 기능을 지원하지만, ZBrush보다는 불편하거든.
3D는 게임에서 사용할 에셋을 만들려면 3D 모델 만들고, 텍스쳐 만들고, 리깅(뼈 심고), 애니메이션(뼈 움직이고)을 해야 하기 때문에, 기본적인 프로그램 사용 방법 배우는데도 꽤 시간이 많이 들어. 그래서 인디 게임쪽은 프로그램 사용법 배우기가 간단한 도트가 많고, 3D는 적어.
7. 복셀
복셀로 유명한 게임이 길건너 친구들(Crossy Road)가 있으니까 궁금하면 찾아봐라.
2D에 도트가 있다면, 3D에는 복셀이 있어. 화면에 점만 찍으면 되는 도트처럼, 복셀은 3차원 공간에 정사각형 박스를 채우면 되기 때문에 프로그램 배우기가 매우 쉬워. 3D 프로그램 배울때 힘든 모델, 텍스쳐 과정은 매우 쉽게 해결할 수 있지. 물론 복셀로 만들어진 것을 움직이려면 리깅이랑 애니메이션을 해줘야 하는데 이건 블렌더로 해결하면 된다.
복셀 프로그램은 꽤 많은데 유명한게
MagicaVoxel(무료) https://ephtracy.github.io/
Qubicle(유료) http://www.minddesk.com/
이건 유료인 Qubicle이 무료인 MagicaVoxel랑 비교했을때 장단점이 있어서, 그냥 무료인 MagicaVoxel로도 대부분은 충분하다. 그래도 크기가 큰 복셀을 만들 생각이라면 Qubicle쪽이 좀 더 편하다.
댓글 영역
획득법
① NFT 발행
작성한 게시물을 NFT로 발행하면 일주일 동안 사용할 수 있습니다. (최초 1회)
② NFT 구매
다른 이용자의 NFT를 구매하면 한 달 동안 사용할 수 있습니다. (구매 시마다 갱신)
사용법
디시콘에서지갑연결시 바로 사용 가능합니다.