본문 바로가기
-- 비엘북스의 책 --

MAYA Python 테크닉

by vielbooks 2012. 6. 27.


이미지를 클릭하면 책을 구입하실 수 있습니다.


저자 : 한동일 | 정가 : 39,000원 



책소개

대표적인 3D Tool인 MAYA에서 Python을 기반으로 CG Script를 제작할 수 있도록 가이드하는 입문 활용서다. 이제 CG 테크니컬 아티스트들에겐 필수 경쟁력이 되어버린 CG Script는 3ds Max에서는 자체 MAX Script를, MAYA에서는 Mel에 이어서 Python 기반의 CG Script를 지원하고 있다. 책에서는 Python의 Script 기초부터, MAYA에서 복잡한 3D 프로세스를 진행하려 할 때 Python Script로 쉽고 간단하게 해결할 수 있는 노하우들을 설명한다.

CG 아티스트들이 Script를 배우고 그것을 실전에서 활용해보기란 여간 어려운 것이 아니다. 그러나 Python Script의 기초 지식을 이해하고 간단한 MAYA의 예제를 통해서 Python Script 활용법에 대해서 하나하나씩 익혀나갈 수 있도록 내용이 구성되어 있다. 각 챕터가 끝날 때마다 제공되는 20여개의 연습문제를 통해서 중요한 내용을 복습하고 응용할 수 있다. 저자가 운영하는 '디지털 드림' 카페(http://cafe.naver.com/digitaldream)에서 궁금한 점들도 해결해볼 수 있어서 MAYA를 이용한 Python 테크닉을 제대로 배워볼 수 있는 절호의 기회다. Python이 날개를 펼쳐줄 것이다.

상세이미지

저자 소개

저자 : 한동일

| 3D 애니메이션 감독 & CG 테크니컬 디렉터

3D 애니메이션 「붕가부」와 스팟 애니메이션 「아코」 의 감독으로도 알려져 있는 저자는 1988년부터 CG업계에서 활동한 그래픽 1세대 감독이다. 1990년대 초반부터 NHK와 KBS 공동 다큐멘터리 「솟대」의 CG 제작, 대한항공 기내 MBC 뉴스 타이틀, 모토롤라 기업홍보 영상 등 100여개의 각종 메이저 CG 타이틀 등을 제작했다. 1995년 Digital Film Production 'FACE'를 설립하여 추석특집극 3D 애니메이션 「붕가부」 제작/감독했으며, 「원더풀 데이즈」의 데모 필름에도 참여했다. 이후 귀여운 3D 캐릭터를 이용한 「아코」 라는 스팟 애니메이션과 3D 애니메이션 특집극 「명탐정 빠세」를 기획 제작하였고 미국 TV 시리즈 기획물인 「Mutineer;s Moon」 트레일러의 CG를 연출했다. 1999년 「붕가부」로 각종 3D 애니메이션 부문에서 수상했으며, 2005년 「명탐정 빠세」로 KBS 한국방송대상 애니메이션 부문에서 우수작품상을 수상받았다.

목차

Part_01 | 기초, 기본
Ch_01 | 마야(MAYA)
1) 마야란?
2) 마야는 어떤툴 (Maya is What Kind of Tool)
3) 멜과 파이썬 (MEL & Python)

Ch_02 | 파이썬 (Python)
1) 파이썬 탄생 신화 및 비전
2) 파이썬의 활용 (Application)
3) Maya 안의 MEL 그리고 Python
4) 이 책으로 공부하기 전에
5) 파이썬 인스톨 (Python Install)
6) IDLE 사용하기 (Using Python IDLE)
7) 간단 산술 계산 (Simple Arithmetic)
8) 간단 문자 연산 (String Arithmetic)
9) 주석 사용 방법 (Using Comments)
10) IDLE 종료하기
#연습문제.

Ch_03 | 변수 Variables
1) 변수 (Variable)
2) 변수명 만들기 (Variable Notation)
3) 예약어 확인 (Keyword Check)
4) 같은 이름 명령 피하기
5) 현재 사용 변수 이름 알기
6) 변수명 만드는 요령
7) 자료형(Variable Data Type)
8) 이스케이프 문자 다루기
9) 문자열 숫자 포메팅
10) 대소문자 관련 문자 메소드
11) 문자 검색 관련 메소드
12) 문자 치환 관련 메소드
13) 문자 분리 관련 메소드
14) 그밖의 문자 메소드들
15) 한글 문자 다루기
16) 진법 변환 오류
17) Decimal 다루기
# 연습문제

Ch_04 | 조건, 비교, 관계연산 (Condition, Compare Statement)
1) 관계 연산
2) 논리 연산 결합
3) 포함하는가? in 관계 연산
4) 불리언 (Boolean)
5) 선언 / 치환 (Assignment Statement)
6) 메모리 관리 (Garbage Collection)
7) 객체 치환
# 연습문제

Ch_05 | 시퀀스 자료형 (Sequence Variables)
1) 문자열 (String)
2) 리스트 (List)
3) 튜플 (Tuple)
4) 사전 (Dictionary)
5) 시퀀스 자료형 변환 (Converting a Sequence Variable Type)
6) 시퀀스 중첩 자료 (Sequence Nested List)
7) 딥카피 (Deepcopy)
# 연습문제

Ch_06 | 루핑/반복 명령 (Looping Command)
1) For Looping 명령
2) 리스트 내장 (List Comprehension)
3) While Looping 명령
# 연습문제

Ch_07 | 제어 명령 (If Command)1) For Looping 명령
1) 제어 명령 If
2) else, elif 옵션을 통한 확장
3) if 제어 명령을 이용한 break, continue 옵션
4) 조건 선언 (Condition Assignment)
5) if 조건에는 bool() 이 생략
# 연습문제

Ch_08 | 함수 (Function)
1) 함수 문법 (Function Format)
2) 함수 만들기와 값 리턴하기(Make Function & Return Value)
3) 리턴 하기 (Return Value)
4) 지역변수, 전역변수 (Local/Global Valiables)
5) 재귀함수 (Recursion Function) 
6) 효율적인 인수 전달 방법
7) 람다함수 (Lambda Function)
8) 함수 인자 선언 편의 기능
9) 함수에 설명 달기
# 연습문제

Ch_09 | 모듈 (Module)
1) 이름 공간 (Name Space)
2) 지역/전역 이름 공간 (Local/Global Name Space)
3) PYTHONPATH 환경 변수 선언
4) import의 활용
5) reload()을 이용한 Module 재적재
6) __name__ 변수를 이용한 이름공간 사용
# 연습문제

Ch_10 | 클래스 (Class)
1) 이름 공간 (Name Space)
2) 클라스 상속 (Class Inheritance)
3) 클라스 멤버 인스턴스 멤버 (Class Member Instance Member)
4) 인스턴스 (Instance)
5) 생성 과 소멸 (__init__ , __del__)
# 연습문제

Ch_11 | file 다루기
1) os module을 이용한 파일 다루기
2) glob module로 파일 목록 얻기
3) shutil module을 이용한 file 지우기와 복사하기
4) 경로명 및 file 이름 다루기
5) open과 write
6) line 단위로 쓰고 읽기
7) pickle을 이용한 파일 쓰고, 읽기

Ch_12 | 기타 유용한 Tips
1) 줄 바꿔 쓰기
2) 한 줄에 여러 명령쓰기
3) 문자열 실행하기
4) 명령 인수 받기
5) 예외처리 명령 try

Part_02 | MAYA Python
Ch_01 | MAYA의 구조

Ch_02 | Node 구조
1) DG (Dependency Graph)
2) DAG (Directed Acyclic Graph)
3) Node 구조 보기
4) 접근 명령어
# 연습문제

Ch_03 | MAYA 에서 Python 작동하기
1) Script Editor Window
2) 안녕 마야!
3) Python Module Path 확인/추가 하기
4) import maya.cmds as cmds
#연습문제

Ch_04 | Maya에서 Python 자료 다루기
1) Select 그리고 Wildcard
2) Python Sequence 자료 다루기 -1
3) Python Sequence 자료 다루기 -2
4) Set 집합 연산
5) Random Select
6) Pickle 다루기
# 연습문제

Ch_05 | MEL과 Python
1) Python에서 MEL 사용하기
2) MEL에서 Python 사용하기
3) Expression에서 Python 사용하기
4) Python Script Referencing
# 연습문제

Ch_06 | Random Select 응용
1) Random Move
2) Random Deform Apply
3) Random Color Set
# 연습문제

Ch_07 | Random Transform
1) Random Box Building
2) Random Move & Rotation
3) Random Sphere
4) polygon vertex random move
5) Random Lattice
# 연습문제

Ch_08 | Simple GUI
1) Window Button 만들기
2) Slider Field 만들기
3) GUI 에 function Bind 하기
# 연습문제

Ch_09 | 거리 공식
1) 일정 거리의 Random Sphere
2) Ripple Box 만들기
3) 일정 영역안에 Bubble 만들기
# 연습문제

Ch_10 | Axis & Normal
1) 도넛에 초콜릿 뿌리기
2) Cone 으로 만든 Vehicle
# 연습문제

Ch_11 | Sampling
1) Bubble 모션 만들기
2) 날아 다니는 나비 Flocking
# 연습문제

Ch_12 | Geometry 생성
1) Bird Trail 만들기
2) Spline 생성
# 연습문제

Ch_13 | 재귀석 함수 응용
1) Rename Tool (재귀적 함수 만들기)
2) GUI 완성 하기
# 연습문제

Ch_14 | Maya Python 그리고 PIL
1) PIL 과 연동 하기
2) Sequence Image 와 PIL
# 연습문제

Ch_15 | Wave Data Control
1) Wave 정보를 Motion Data 로
2) Wave Data Tool GUI 만들기
# 연습문제

Ch_16 | Class 3. Maya 에서 Python 작동하기
1) Script Editor Window
2) 안녕 마야!
3) Python Module Path 확인/추가 하기
4) import maya.cmds as cmds
#연습문제

Part_03 | 실전 경험 쌓기
Ch_01 | Advanced Maya Python
1) Advanced GUI
2) Pattern Boolean
3) 피보나치 수열
4) L-System
5) Network Rendering
6) Pyqt4
7) pymel 간단 소개

Ch_02 | Custom Tool 만들기
1) 설계 계획
2) 일시적인가 범용인가?
3) Script Design
4) 배포하기
5) userSetup하기

Ch_03 | API 맛보기
1) Maya Python API 의 구조
2) 안녕 API Command
3) Jump Node 만들기

Ch_04 | 유용한 Maya Python 명령 소개
1) angleBetween
2) connectAttr
3) createNode
4) currentUnit
5) delete
6) duplicate
7) eval
8) expression
9) filterExpand
10) group
11) ungroup
12) hide
13) instance
14) objectCenter
15) objExists
16) parent
17) polyAverageVertex
18) polyInfo
19) polyListComponentConversion
20) refresh
21) scaleKey
22) spaceLocator

Ch_05 | 유용한 Python 명령 소개
1) map
2) filter
3) reduce
4) sum
5) min, max

Ch_06 | 유용한 Python Module 소개
1) stat
2) ftplib
3) time, datetime
4) math
5) zipfile
6) operater
7) os.popen, os.system, os.startfile

Ch_07. 유용한 python side-package & embedded tool 소개
1) wxpython 
2) Win32
3) panda3D
4) Ironpython

Ch_08 | 유용한 Free Ware 소개
1) Eclipse IDE
2) Netbeans IDE
3) Xnview
4) Gimp
5) InkScape
6) NodeBox
7) Field
 닫기

추천평

컴퓨터 그래픽스(CG)는 수학과 물리학, 기하학 등 다양한 학문의 기술을 토대로 이루어진 것입니다. 그렇기 때문에 CG의 선진 업체들이라고 할 수 있는 헐리웃의 메이저 프로덕션들은 최고의 CG 영상을 위해서는 기존에 잘 만들어진 그래픽 프로그램 뿐만 아니라 이러한 학문적 기술을 영상으로 표현해 줄 수 있는 프로그래밍, 즉 R&D에 많은 노력을 기울이고 있습니다. CG 퀄리티를 높이기 위해 앞서 언급한 학문적 기술들을 처음부터 배울 수는 없기에 다양한 프로그램 언어를 사용해서 3D 프로그램의 부족한 부분을 채우고 있습니다. Python은 이제 모든 그래픽 프로그램이 지원하고 있는 가장 쉽고 편하면서 광범위한 프로그래밍 언어입니다. 그러므로 3D 프로그램 중 가장 강력한 MAYA와 Python의 결합은 최상의 조합이 아닐 수 없으며, 또한 좀 더 심도 있고 차원이 다른 3D의 구현을 원하는 유저나 독자들에게 이 책은 최상의 선택이 될 것입니다.- 이기명 (前 그래픽스 라이브 편집장)


「MAYA Python 테크닉」은 한동일 감독이 실전에서 쌓은 지식과 풍부한 경험을 바탕으로 집필되어서 초보자나 프로그래밍 경험이 없는 사람일지라도 쉽게 이해하고 배울 수 있는 책입니다. 이 책은 '실전 경험 쌓기' 등의 실용적이며 다양한 예제들로 구성되어 있어서 쉽고 자유롭게 Python을 활용할 수 있도록 가이드 합니다. 또한 GUI와 유용한 Python 관련 툴 정보도 있어서 CG 개발자, 테크니컬 디렉터, 아티스트 모두에게 크게 도움이 될 것입니다.- 백지원 (대전대학교 디자인o애니메이션학부 영상애니메이션학전공 교수)


이 책은 그동안 국내에서는 찾아 볼 수 없었던 MAYA의 Python을 활용해서 3D 애니메이션 제작 시 시간이 많이 소요되는 작업들을 단시간에 해결할 수 있는 능력을 기르기 위한 지침서로써 20년 간의 애니메이션 제작 노하우를 바탕으로 한 한동일 감독의 첫 책으로 디자이너들도 쉽게 MAYA Python에 접근할 수 있도록 길잡이 역할을 하는 책입니다. MAYA Python을 통해 좀더 넓은 마야의 세상을 만끽할 수 있을 것입니다.- 박안찬 (예손애니메이션 Digital Team 실장)


이 책의 저자인 한동일 감독은 국내 최초의 3D CG 애니메이션을 연출하고 제작한 한국 컴퓨터 그래픽 1세대 감독입니다. 그의 오랜 경험을 바탕으로 출간된 「MAYA Python 테크닉」은 현장에서 필요로 하는 실질적인 지식과 노하우를 잘 담고 있으며, 기술에 취약한 아티스트들이나 예술에 취약한 테크니컬 디렉터 모두에게 매우 유용하고 쉽게 Python을 배우고 즐길 수 있는 최고의 길잡이가 되어 줄 것입니다.- 장욱상 (중앙대 첨단영상 대학원 3D Animation 교수)



댓글