목차 소개

Part 1. 개념을 잡자 28

Ch1. 좌표계(Coordinate System) /30

로컬 좌표와 월드 좌표 /30

로컬 트랜스폼을 강제로 고정하기 /32

부모(Parent)의 회전 /34

반드시 알아야 하는 개념 /34

트랜스폼 적용하기 /35

응용하기 /37

Ch2. 본(Bone) /40

본(Bone)의 생성 /40

본툴(Bone Tools)? /41

처음해보는 Max Script /43

Bone Tools의 사용 /46

본(Bone)이 갑자기 움직이지 않는다면?/52

Link Display /54

본(Bone)의 겉모습은 중요하지 않다 /54

Ch3.오일러와 쿼터니언 /57

오일러(Euler)와 짐벌락(Gimbal-Lock) /58

쿼터니언 /63

Script Controller로 살펴 본 쿼터니언(Quaternion) /64

오일러와 쿼터니언의 비교 /72

360도 회전 /72

짐벌락 /72

커브(Curve) 컨트롤 /73

Max Script /73

Ch.4 Hierachy / 74

기본 개념 /75

Pivot /76

Adjust Pivot 롤아웃 /76

Working Pivot 롤아웃 /77

Adjust Transform 롤아웃 /77

Skin Pose 롤아웃 /78

Link Info /79

Locks 롤아웃 /79

Inherit 롤아웃 /79

Inherit와 Reset Scale /80

Inherit /80

Reset scale /88

Reset Stretch /88

IK(Inverse Kinemetrics) / 90

IK 분류 /92

CAT(Character Animation Tools)과 바이패드(Biped) /93

Puppet Shop /95

바이패드 IK 사용하기 /96

좌표계(Coordinate system) - Body & Object /100

Blend 적용하기 /101

Blend와 커브 편집 /103

본(Bone)의 IK 사용하기 /105

Hisolver 예제 /106

Interactive IK 예제 /109

Interactive IK와 일반 IK의 차이 /114

IK 버튼의 기능 /117

Inverse Kinematics Rollout /117

Object Parameters Rollout (HD Solver) /118

Auto Termination /121

Sliding and Rotational Joints Rollouts (HD Solver) /121

IK Solvers /123

바이패드(Biped)를 사용할지 본(Bone)을 사용할지 /144

Ch.5 Controller 콘트롤러 / 145

Controller 이해하기 /147

Controller 예제 /152

Controller에 접근하기 /152

Controller의 분류와 구조

Controller와 Constraint

적용된 Controller의 종류 살펴보기

Controller 속성 변경 /155

절차적인 (Procedural) Controller 속성 변경 /156

키프레임(Keyframe)을 사용하는 Controller 속성 변경 /156

커브 에디터에서 키 정보를 살펴보기 /156

Motion 판넬에서 키 정보를 살펴보기 /157

트랙 바(Track bar)에서 키 정보를 살펴보기 /157

아무런 속성도 표시되지 않는 콘트롤러 /157

Controller 지정하기 /158

트랙뷰에서 지정하기 /158

Motion 판넬에서 지정하기 /159

Animation 메뉴에서 지정하기 /159

Controller 복사하고 붙이기 /160

바이패드 모양 바꾸기 /160

디폴트(Default) 콘트롤러 설정 /165

일반적인 목적의 Controller /166

Bezier Controller /167

Normalize Time /168

Constant Velocity /170

Free handle /172

TCB Controllers /173

Linear Controller /174

Noise Controller /175

Animation Range /177

Seed /178

XYZ Controller /178

Position XYZ /178

Euler XYZ /179

애니메이션 키 분리하기 /180

Audio Controller /180

특수한 목적의 Controller /180

List Controller /180

List Controller 적용하기 /181

Motion 판넬 혹은 트랙 뷰에서 지정하기 /181

Animation 메뉴에서 지정하기 /182

섞이는 순서 /183

세부 조절 /183

Pose to Pose /184

Zero Transform /185

Parameter Wiring /190

Parameter Wire 란 /190

기본 활용 예제 /190

다양한 접근 방법 /197

연결되는 값은 로컬인가 월드인가? /199

Script 활용 /204

Rotation(로테이션) 연결 /204

Position(포지션) 연결 /207

Reaction Controllers / 209

Reaction Controller 란? /209

간단한 예제 /210

우산 예제 /218

엉덩이 관절 /219

세부 기능/ 220

Reactions list /220

States list /223

그래프(Graph) /225

우클릭(Right-click) 메뉴 /225

Motion Capture Controller /226

Motion Capture Controller의 역할 /226

적용 순서 /226

어떤 경우에 사용하는가? /227

트랜스폼 제어(Controlling Transforms) /228

Link Constraint /228

Position / Rotation / Scale Controller / 232

Transform Script Controller /232

Transform Script Controller의 예 /233

XRef Controller /234

Animation Constraints(애니메이션 컨스트레인트)

LookAt Constraint /235

Add LookAt Target /236

Delete LookAt Target /236

Weight /236

Keep Initial Offset /237

Viewline Length, Viewline Length Absolute /237

Set Orientation /237

Reset Orientation /237

Select LookAt Axis /238

Select Upnode /238

Upnode Control /239

Source/Upnode Alignment /239

Orientation Constraint /240

Add Orientation Target /240

Add World as Target /240

Delete Orientation Target /240

Weight /240

Keep Initial Offset /240

Transform Rule /241

Path Constraint /242

Add Path, Delete Path, Weight /242

% Along Path /243

Follow, Bank /244

Bank Amount /246

Smoothness /246

Allow Upside Down /246

Constant Velocity /247

Loop /248

Relative /248

Axis, Flip /248

Position Constraint /248

Add position target /249

Delete position target /249

Weight /249

Keep Initial Offset /249

Attachment Constraint /250

작업 방법 /250

Attach To 그룹 /252

Update group /252

Key Info group /252

TCB group /252

Surface Constraint /253

적용하기 /254

Surface Options 그룹 /254

기타 컨트롤러 /255

Limit Controller(리미트 컨트롤러) /255

Limit Controller란? /255

Limit Controller의 제약사항 / 256

Limit Controller의 적용 /256

기능 설명 /257

우클릭 메뉴 /258

Spring Controller /259

간단한 예제 /259

여러 개의 고무줄 /261

기능 설명 /263

Spring Dynamics 롤아웃 /263

Forces Limits and Precision 롤아웃 /264

Spring Controller의 단점과 보완 /265

반복(Looping) 애니메이션과 지글 본(Jiggle bone) /265

Spring Controller를 많이 사용하면 느려지는 문제 /267

Realtime Spring(리얼타임 스프링) /269

Waveform Controller /270

Look At Controller /270

Smooth Rotation Controller /271

On/Off Controller, Boolean Controller /271

Layer Controller /273

개요 /272

간단한 예제 /273

기능 설명 /277

Layer 툴 바 인터페이스 /277

Layer Controller인터페이스 /282

Facial Rigging(페이셜 리깅)에 응용하기 /284

Layer Controller 사용 시 주의할 점 /285

Special Section_01 > Expression /286 "

Ch.1 Expression 이란? /288

Ch.2 Expression Controller /288

Script Controller와의 비교 /294

Ch.3 변수와 상수 사용하기 /295

예약 변수 /296

예약 상수 /296

스칼라(Scalar) 변수와 벡터(Vector) 변수 /296

Tick Offset /306

Ch.4 연산자(演算子, Operators) /309

Ch.5 스칼라(Scalar) 산술 연산자 /309

스칼라(Scalar) 관계 연산자와 논리 연산자 /309

벡터(Vector) 컴포넌트 연산자 /310

벡터(Vector) 산술 연산자 /310

연산의 우선 순위 /312

벡터의 내적과 외적 /312

Ch.6 함수 사용하기 /316

함수의 개념 /316

삼각함수 /318

지수 함수, 로그, 자연로그 /321

라디안과 각도 변환 함수 /321

소수점 올림과 버림 함수 /322

일반적인 함수 /322

조건 함수 /326

벡터 함수 /331

변수의 좌표계 /334

Expression Controller의 다양한 적용 /339

"Special Section_2 Max Script & Script Controller /342"

Ch.1 Script Listener /344

Ch.2 Macro Recorder /345

간단한 Script 구문을 실행하고 리턴 값을 모니터링 /347

디버깅 /347

Max Script 디버거 /349

Ch.3 as /352

Ch.4 소스 코드 레이아웃과 주석 /353

Ch.5 Macro Script(매크로 스크립트) /355

Macro Script의 빠른 생성 /356

Macro Script의 버튼 변경 /360

Script 레퍼런스 문서 어떻게 읽는가? /361

Macro Script의 수동 생성 /363

Macro Script의 문법 설명 /365

키보드 단축키, 툴 바, 쿼드 메뉴, 일반 메뉴에 등록하기 /365

나만의 아이콘 추가 /366

Ch.6 예약어 /369

Ch.7 변수(變數, variable) /370

변수란? /370

이름 /371

변수의 종류 /372

일반 변수 /372

배열 변수 /373

Ch.8 구조체(Structure) /379

Ch.9 기준 좌표계와 Max Script /382

Ch.10 데이터 형(Data type) /392

숫자(Number Values) /394

문자열(String Values) /395

Point3, Point2 Values /398

Matrix3 Values /399

쿼터니언(Quat Values)과 오일러(EulerAngles Values) /402

Script로 오브젝트의 회전 값에 접근하기 /402

오일러 회전 값의 누적과 Controller 접근 /405

쿼터니언 연산과 slerp(Spherical Linear Interpolation) 함수 /409

Ch.11 컬렉션(Collections) /414

NodeChildrenArray /415

ObjectSet /416

Pathname /417

Ch.12 Script의 흐름 제어 /419

If /420

For /423

Ch.13 함수(Function) /425

예제로 살펴보는 함수 만들기 /425

리턴(Return) /429

파라미터(parameter) 없이 함수 실행하기 /430

함수의 문법과 파라미터(Parameter) /431

Ch.14 변수의 스코프(Scope) /434

스코프란? /434

스코프의 레벨(level) /436

Lexical Scoping /438

스코프 개념을 다 알아야 하는가? /438

Ch.15 Script Contoller는 함수(fuction)이다. /439

Part.2 작업스타일 /446

Ch.1 선택은 반드시 선택 툴로 하자 /448

Ch.2. 유용한 단축키 지정 /450

뷰포트(Viewport) 콘트롤

Viewport Box Mode Toggle /452

Coordinate System변환 /453

Align /454

단축키 변경의 단점 /454

Ch.3 작업 규약(Convention)의 중요성 /455

Ch.4 Dummy보다는 Point 헬퍼를 쓰자 /457

Ch.5 바이패드는 두껍게 만들자 /459

Ch.6 복잡한 계층 구조와 최적화 /460

데이터 Export 단계에서 최적화 /461

계층 구조의 분리 /462

계층 구조 분리 방식의 장점 /463

계층 구조 분리 방식의 단점 /464

우리 엔진에서 특수한 컨트롤러를 써도 되나요? /464

Part 3. 실전 예제 > 캐릭터 리깅 /466

Ch.1 시작하기 전에 /468

바이패드에 대해서 /468

스키닝(Skinning)에 대해서 /468

캐릭터 리깅은 복합적인 작업 /469

Ch.2 반 자동 목(Neck) /470

Point01 /472

Bone01 /472

목(Neck) 본(Bone)이 더 많은 경우 /473

Ch.3 캔디 랩(Candy wrap) 현상과 중간 본 /474

중간 본 /477

Ch.4 손목 트위스트 /479

손목 트위스트 본은 왜 필요한가 /479

다양한 접근 방식 /481

몇 개를 사용하는가 /481

바이패드 트위스트 본을 사용할 지, 일반 본을 사용할 지

일반 본으로 손목 트위스트 만들기 /483

Ch.5 팔꿈치와 무릎 /484

캔디 랩 /484

관절의 위치와 쐐기꼴 현상 /485

쐐기꼴 무릎을 강제로 벌려주기 /489

관절 구조 변경으로 쐐기꼴 무릎 해결하기 /493

거꾸로 뒤집힌 값 만들기 /497

Ch.6 겨드랑이 /499

Ch.7 트위스트 플립(Twist flip) 현상 해결하기 /501

Ch.8 트위스트(Twist)를 위한 엣지 구성 /509

Ch.9 어깨 /513

어깨 트위스트를 위한 폴리곤 구조 /513

어깨 본 구조 /515

삼각근 본의 응용 /517

트위스트 본의 응용 /517

바이패드에서 제공하는 상박 트위스트 본 /518

Ch.10 Parameter Editor /519

Ch.11 꼬리와 포니 테일 /522

꼬리 만들기 /523

플립(Flip) 현상을 개선한 Spline IK 제작 /524

Stretch 컨트롤 추가 /526

Tentacle 특성 추가 /532

Twist 컨트롤 추가 /534

포니 테일 만들기 /537

스프링 테일(Spring Tail) /538

Custom Spline IK / 540

Ch.12 안구와 시선 처리 /542

타겟(Target)을 바라보기 /542

각도 제한 /544

실사 스타일의 눈과 카툰(Cartoon) 스타일의 눈 구조 /550

각 스타일의 특징과 이슈 /550

저패니메이션 스타일 /551

알파 소팅(Alpha Sorting) /552

눈동자의 움직임 /555

시선 타겟의 IK와 FK /558

SOX Align Modifier /561

Ch.13 여성 가슴 /562

계층구조 /564

스프링 타겟 컨트롤과 대칭 구조 만들기 /566

Ch.14 엉덩이 /568

바이패드 허벅지 트위스트 /569

본으로 허벅지 트위스트 만들기 /571

엉덩이 중간 본 만들기 /574

Orientation Constraint 방식의 엉덩이 본 /576

Reaction Controller 방식의 엉덩이 본 /578

Ch.15 손가락 /583

손가락 본의 구성 /583

손가락 애니메이션 /584

Custom parameter 방식의 손가락 리깅 /586

포스쳐 블랜더(SOX Posture Blender) 소개 /591

포스쳐 블랜더로 작업하는 손가락 애니메이션 /593

포스쳐 블랜더의 세부 기능들 /595

Ch.16 근육 본 만들기 /597

가장 기본적인 근육 본 /597

Stretch와 Scale의 차이점 /599

Squash를 다른 비율로 적용하기 /600

프로젝트에서 스케일 애니메이션을 사용할 수 있는가 /603

위치 애니메이션으로 늘어나는 효과 만들기 /603

실제 관절에 적용하기 /604

Ch.17 대흉근 / 광배근 /606

대흉근을 위한 근육 본 준비 /608

LookAt을 이용한 부챗살 방식 (2L) /609

Reaction Controller 방식 /611

Wire Parameter를 이용한 방식 /612

뿌리의 위치와 어깨 트위스트 본 /617

Ch.18 목 근육 /619

흉쇄유돌근 /620

승모근 /621

Ch.19 이두박근 /626

Ch.20 페이셜 /630

Mirror Tool과 포스쳐 블랜더 /631

눈썹 /633

눈 주변 /636

하관 /645

Ch.21 본으로 만드는 골격 /646

IK-Joe에 대해서 /646

허리 /647

팔 /648

다리 /653

FK-IK Blend /663

Stretch /668

늘어나는 팔과 다리 /668

스키닝 이슈(Skinning issue) /674

풀 바디 IK(Full-body IK) /676

Ch.22 랜디의 최종 셋업 살펴보기

Part.4 실전예제 > 메카닉 리깅 /678

Ch.1 메카닉 리깅 /680

액추에이터(Actuator) /681

피스톤(Piston) /684

모터(Motor) 만들기 /685

바퀴(Wheel) /688

지면을 따라 움직이기 /671

Part.5 실전예제 > 시뮬레이션 /702

Ch.1 시뮬레이션(Simulation) /704

머리카락과 치마 /705

짧은 길이 /706

지글 본 + 긴 길이 /707

시뮬레이션 + 긴 길이 /708

3ds Max 시뮬레이션을 본에 적용하기 /710

체인과 사슬 /717

랙 돌(Rag doll) /719

실시간 애니메이션과 슬레이브 본(Slave bone) /720

블랜드 방식 /720

시뮬레이션 방식 /720

3ds Max의 모든 컨트롤러를 게임에서 그대로 재현하는 방법

3ds Max의 컨트롤러 적용 결과를 샘플링(Sampling) 하는 방법

앞의 두 가지 방법을 혼합한 방법 /721

애니메이션 미들웨어 /721

Appendix /722

Ch.1 유용한 팁 /724

애니메이션 미러링(Mirroring) /724

언제나 대칭인 날개 리깅 /725

바이패드를 활용한 미러 /728

Mirror Tool /729

스킨(Skin) 복제 /730

Skin Utilities를 사용한 복제 /730

Skin Wrap 모디파이어를 사용한 복제 /734

스킨(Skin)에 본 추가는 Named Selection을 활용하자 /735

스킨에 적용된 본을 대체하기 /735

바이패드를 SnapShot으로 복제한 오브젝트의 Gimbal lock /736

검광 /737

Wire Parameter 연결할 때 회전 값을 50% 적용하기 /738

스크립트 노트 /739

Ch.2 자주 발생하는 문제들 /746

3ds Max 파일의 용량이 지속적으로 커질 때 /746

스킨 미러 복제시 Pelvis 복제 오류 /746

바이패드 Trajectory /748

bip 파일을 불러올 때 엉뚱한 위치로 불러지는 문제 /749

IK 체인의 노이즈 /750

뷰포트로 3ds Max 파일을 드래그 했을 때 무조건 Merge되는 문제

바이패드의 레이어가 생성이 안되는 문제 /752

.