상세 컨텐츠

본문 제목

블렌더와 SIO2를 이용한 아이폰 3D 프로그래밍: 오픈소스로 3D 앱/게임 개발하기

전체 출간 도서

by 비제이퍼블릭 2010. 8. 13. 17:58

본문

 

 


저희 비제이퍼블릭의 7번째 도서인
블렌더와 SIO2를 이용한 아이폰 3D 프로그래밍: 오픈소스로 3D 앱/게임 개발하기』가 드디어 각 인터넷 서점에서 예약판매를 시작하였습니다(서점에 따라 오늘 또는 월요일부터 등록 됩니다).


도서소개

아이폰 3D 앱/게임을 위한 콘텐츠 개발하기

아이폰과 아이팟터치를 위한 개발디자인 능력을 한 단계 더 끌어올려보자. 여러분이 아이폰 개발자이든 아니면 창의적인 아티스트이든,  혁신적인 가이드는 블렌더, SIO2 게임엔진 그리고 아이폰 SDK를 이용하여 개발자와 아티스트의 세계를 이어주는 최상의 방법을 소개한다. 이 책에서는 자신이 원하는 속도에 맞춰 학습을 진행할 수 있는 독립적인 튜토리얼들을 통해 움직이는 3D 캐릭터, 게임환경 그리고 물리충돌에 대해 배울 것이다.

 

여러분은 이 책을 통해 블렌더의 WYSIWYG적 접근방법 및 Xcode 다른 아이폰 SDK 프로그래밍 도구의 유용한 정보를 알 수 있으며, 또한 물리 시뮬레이션과 더불어 강력하고 상호작용할  있는 3D & 게임을 만들기 위한 기술들을 습득할 수 있다.

- 아이폰을 위한 3D 개발과 아이폰 SDK 사용하는 방법을 살펴보자.
- 블렌더로 생성한 작품을 SIO2 게임엔진을 사용하여 상호작용할 수 있도록 만들어 보자.
- 움직이는 객체에 현실적 효과를 주기 위한 조명을 다루는 방법을 알아보자.
- SIO2
 땅과 하늘을 모델링하고 몰입형 3D 환경을 만들어보자.
- 2D
이미지를 3D 환경에 적용시키는 실용적인 방법인 빌보드(Billboard) 마스터하자.
- 캐릭터의 움직임을 안내하거나 조작하기 위한 보이지 않는 low-poly 충돌 맵을 만들어 보자.
- 고급기능을 위한 블렌더의 물리시뮬레이션 라이브러리인 불릿(Bullet)에 대해 살펴보자.
- 블렌더에서 캐릭터를 움직이고 위젯과 함께 버튼, 아이콘을 추가해 보자.



3D
객체, 텍스처, 그리고 실시간 조명과 함께 멀티터치에 상호작용 할 수 있는 앱을 만들어 보자.











아이폰 /게임에서 3D 캐릭터를 움직이고 조작해 보자.







가상세계에서 사용자가 돌아다닐 수 있도록 현실적인 물리작용과 함께 풍부한 몰입형 3D 환경을 만들어 보자.





 


저자소개

토니 뮬렌

토니 뮬렌은 도쿄에 거주하고 있고 3D 아티스트이자 프로그래머이며, Tsuda 대학에서 컴퓨터 사이언스 강의를 맡고 있다. 그는 Mac을 위한 일본 잡지인 MacPeople에서 블렌더와 그래픽 프로그래밍에 관련된 많은 기사를 썼다. 또한 Sybex 출판사의 블렌더 관련 도서인 『Introducing Character Animation with Blender Mastering Blender 저자이다.



역자소개


임성필

 ㈜플루에서 삼성 바다 및 아이폰 개발을 하였으며, 현재는 개발을 초월해 새로움을 추구하고 있다. 오직 '근성'으로 아름다운 미래를 꿈꾸고, 단순히 행복을 향해 한 걸음 더 나아가려는 평범한 사람이다.

정상일

㈜엔씨소프트 오픈마루 스튜디오와 ㈜플루를 거쳤다현재는 오픈마루 오픈플랫폼팀에서의 경험을 바탕으로 새로운 소셜 플랫폼에서의 매진을 준비하고 있다. 지인들 사이에서는 이름 석자보다 humbroll(험브롤)이라는 아이디로 더 알려져 있어서, 어떻게 해야 이름을 ‘정상일때로 돌려놓을 수 있을지 고민한다인생은 행운과 기회로 가득 차 있음을, ‘life is all serendipity’를 좌우명으로 새로운 것을 시도해보며 기회를 찾고 그 과정을 즐길 줄 아는 개발자이다.



감수자소개


이창신

티맥스소프트 WAS실과엔씨소프트 오픈마루 스튜디오를 거쳐 현재 ias(iNDIE aPPLICATION sOFTWARE) 대표로 독립 소프트웨어 개발에 매진하고 있다.




목차


1. 아이폰을 위한 3D 개발 시작하기

시작하기

소프트웨어 설치

- 아이폰 SDK

- 블렌더 설치하기

- SIO2 설치하기

- 프로그램 다운로드

개발환경 설정하기

- Xcode에서 SIO2 템플릿 빌드하기

- 문제해결

 

2. SIO2 그래픽 프로그래밍 소개

SIO2 템플릿

간단한 OpenGL 데모

- OpenGL ES로 그래픽 콘텐츠 생성

- 변환 자세히 살펴보기

--- 변환의 순서

--- 행렬스택의 사용

상호작용의 기초

전체코드

 

3. 블렌더/SIO2/아이폰과의 첫 만남

블렌더/SIO2/Xcode 워크플로우

SIO2 개요

3D 세계와의 만남! 블렌더에서 새로운 세상 만들기

- 세계와 배경을 모델링, 텍스처링하기

- 조명, 카메라 그리고 배경

SIO2 포맷으로 추출하기

- 추출 스크립트

- 세계 추출하기

- .sio2 파일 포맷

 

4. 모바일에서 SIO2 사용하기

SIO2 초기화와 에셋 로딩

- 헤더와 프로토타입

- templateLoading 함수

렌더링

- 회전하는 지구본 만들기

- 조명 넣기

- 문제해결

화면 터치에 의한 상호작용

- 회전 제어

- 화면 탭과 화면 터치 이동 다루기

전체 코드

 

5. 피킹과 텍스트를 이용한 피드백의 확장

객체 피킹하기

- 블렌더에서의 간단한 피킹 예제

- SIO2에서 색 기반의 피킹 구현하기

- 피킹 코드 자세히 살펴보기

- Hello3DWorld에 피킹 기능 추가하기

텍스트와 폰트 다루기

- 비트맵 폰트

- SIO2에서의 폰트와 머티리얼

--- 폰트 로딩하기

--- 폰트 렌더하기

멀티터치 기능 사용하기

애플리케이션 패키징

전체코드

 

6. SIO2에서 몰입형 환경 만들기

하늘과 땅 모델링하기

- 블렌더에서 평지 만들기

- SIO2를 위한 단단한 땅

- 그럴듯한 하늘 돔 만들기

- sio2 파일 추출하기

SIO2에서 몰입형 환경 만들기

- 화면 설정

--- templateLoading 함수

--- templateRender 함수

--- templateScreenTap 함수

- 물리 시뮬레이션 설정하기

카메라를 움직여 환경 탐험하기

- templateRender에서의 이동

- templateSceenTap에서의 이동

- templateScreenTouchMove 함수

전체코드

- EAGLview.mm

- template.mm

 

7. 물체와 물리 객체

텍스처 표면 객체와 투명성

- 블렌더에서의 알파 텍스처링

- SIO2에서 알파 투명도 렌더하기

빌보드를 이용하여 나무 생성하기

상호작용하는 객체들에 대한 물리적 성질

- 강체 객체

- 장애물에 대한 정적 물리

효율적인 객체 조작을 위한 가상 인스턴싱

Low-Poly 충돌 맵 다루기

전체 코드

 

8. 캐릭터 움직이기

블렌더에서 캐릭터 움직이기

- 간단한 보행주기 만들기

- 기본 모션과 NLA Strips 만들기

SIO2에 액션 넣기

걷게 만들기

반응이 빠른 실시간 그림자

전체코드

 

9. 위젯 다루기

위젯으로 스플래시 만들기

- 이미지 포맷 선택하기

- iFrankie를 위한 위젯 그래픽

SIO2에서 Active Widget 생성하기

- 위젯 변수 선언하기

- 위젯과 에셋 로딩하기

- Button 콜백 함수

- Template 렌더 함수

- 게임 렌더 함수

전체코드

 

부록 A. 블렌더 기초

인터페이스와 네비게이션

- 윈도우와 헤더

- 레이어

- 3D 공간 탐색

-- 공간상에서의 회전, 패닝, 확대

-- 숫자패드 사용하기

-- 3D 커서

모델링하기

- 객체와 Object 모드

--- 선택하기

--- 3D 변환하기

--- 객체를 추가, 삭제하기

- 메시와 Edit 모드

--- 선택하기

--- 3D 변환하기

--- 메시 모델링 도구

--- 비례편집

--- 법선

- 아머츄어와 리깅

머티리얼과 텍스처

- 머티리얼

- UV 텍스처링

--- 언래핑과 매핑

--- 텍스처 설정

--- 텍스처 베이킹

애니메이션

- 아이포 커브

- 액션과 비선형 애니메이션

 

부록 B. 그래픽 프로그래밍 핵심

좌표계, 행렬, 변환

- 행렬 수식

- 변환

--- 모델/뷰 변환

--- 투영변환

행렬 곱에 의한 변환

- 행렬의 곱

- 행렬의 변환

- 3D 행렬 변환

행렬과 OpenGL

 

부록 C. SIO2 레퍼런스

SIO2 학습자료

- 공식 SIO2 튜토리얼과 샘플 코드들

- SIO2 Meditation Garden으로 한계를 초월하자

- Hoops Frenzy에서 점수 쌓기

- SIO2 Backyard War로 파워업하기

- SIO2 포럼

.sio2 파일 포맷

SIO2 플래그 값

SIO2 함수

도서상세정보

이 책은 블렌더, SIO2 게임 개발 애플리케이션 프로그래밍 인터페이스(API), 애플의 Xcode와 아이폰 소프트웨어 개발 키트(SDK)를 이용한 강력하면서도 쉬운 3D 콘텐츠 제작기술에 대해 소개한다. 이 도구들을 원하는 대로 조합하여, 여러분은 곧 아이폰과 아이팟터치에서 돌아갈 상호작용하는 3D 콘텐츠 개발의 한계를 초월하는 자신을 발견할 수 있을 것이다.

 

이 책에서는 SIO2 엔진에서 사용하기 위해 필요한 블렌더에서의 3D 에셋 생성과 환경을 구축하는 방법을 배울 것이며, 그들을 추출하는 방법, 그리고 SIO2 SDK를 이용하여 작업하는 방법을 배울 것이다. 사실적인 표면과 조명 효과를 생성하기 위한 블렌더의 텍스처 베이킹 기능의 사용방법과 객체, 카메라의 움직임, 캐릭터들을 조종하기 위한 멀티터치 인터페이스를 이용하는 방법을 배울 것이다.  책을 독파하고 나면여러분만의 아이폰 3D 프로젝트 개발을 시작하기 위한 준비가 충분히 되었을 것이다.


왜 블렌더/SIO2 인가?

블렌더는 수천 달러를 호가하는 애플리케이션들과 기능성과 안정성의 측면에서 경쟁을 하고 있는 무료이자 오픈소스인 애플리케이션 콘텐츠 제작도구이다. 급속도로 성장하고 있는 여러 상업 애니메이션과 게임스튜디오는 비용과 유연성을 위해 그들의 핵심 3D 애플리케이션으로 블렌더를 선택하고 있다. 그와 비슷하게 SIO2는 비싸지 않은 라이선스의 사용자들을 유치하기 위해 최소한의 저작자 표시를 보장하는 것으로 무료로 사용할 수 있도록 하였다. 물론 아이폰과 호환성을 제공하는 상용 게임 엔진과 같은 3D 애플리케이션들은 수천 달러의 비용을 지불해야 한다. 개인 독립 개발자들에게 비용감축은 더 많은 새로운 하드웨어를 구축할 수 있다는 것을 의미하며, 멋진 저녁식사(소박한 이에게는 두 달 정도의 집세를 해결하는 것을 의미할 수도 있다) 의미하기도 한다. 스튜디오에게 비용절감은 성장을 의미한다.

 

하지만 무료라고 해서 끝은 아니다. 사실, 블렌더/SIO2 파이프라인이 아이폰에서의 3D 개발을 위한 유일한 무료 솔루션은 아니다. 아이폰 플랫폼은 기본적으로 OpenGL ES 그래픽 API 지원하며, 아이폰 SDK에는 OpenGL ES 탑재되어 있고 OpenGL ES 코드를 개발하고 최적화에 필요한 매우 많은 도구들이 존재한다. 고급 콘텐츠 생성 도구들을 전혀 사용하지 않고서도 이것들만 가지고서 게임을 개발하고 OpenGL ES 직접적으로 3D 효과를 만들어내는 것이 가능하다. 하지만 이런 방법은 쉽지가 않고 개발에 있어서 직관적이지 않다.

 

모델링과 애니메이션을 제작하는 데는 블렌더와 같은 WYSIWYG(What-You-See-Is-What-You-Get

)방식이 제일 좋다. SIO2 API 블렌더에서 만든 에셋들을 가지고 직접 작업할 수 있도록 해주며더 좋은 효과들을 얻기 위해 해야할 실제 코딩을 획기적으로 줄여주기 위한 고급 프로그래밍 인터페이스를 제공한다. SIO2 물론 루아(Lua) 스크립팅과 네트워킹 같은 고급 기능도 사용가능하다.

 

이러한 이유들로 블렌더와 SIO2를 함께 사용하는 것은 콘텐츠 제작과 고급 프로그래밍 환경으로 접근할 수 있도록 해주는 상용 모바일 3D 게임 파이프라인의 큰 비용에 비해 극히 적은 비용으로도 강력한 솔루션을 제공해준다.




관련글 더보기

댓글 영역