Acknowledgments |
|
x | |
Introduction |
|
xii | |
Chapter 1 The Creative Cycle |
|
1 | (24) |
|
|
1 | (2) |
|
Where Do Ideas Come From? |
|
|
3 | (3) |
|
|
6 | (1) |
|
|
7 | (13) |
|
Step 1: Planning the Story/Game Outline |
|
|
7 | (3) |
|
Step 2: The Script/Game Design Document |
|
|
10 | (1) |
|
|
11 | (1) |
|
|
12 | (5) |
|
Planning the Storyboard Scenes |
|
|
14 | (1) |
|
|
15 | (2) |
|
|
17 | (1) |
|
Step 6: Asset Management and Organization |
|
|
18 | (2) |
|
Step 7: Animatic/First Playable Prototype |
|
|
20 | (1) |
|
|
20 | (3) |
|
|
21 | (1) |
|
|
21 | (1) |
|
|
22 | (1) |
|
|
22 | (1) |
|
|
23 | (2) |
Chapter 2 Concept Art and Modeling |
|
25 | (28) |
|
|
25 | (13) |
|
|
31 | (3) |
|
|
34 | (4) |
|
|
38 | (15) |
|
|
39 | (1) |
|
Level of Detail and Topology |
|
|
39 | (1) |
|
Square Is Good—Polygon Types to Use and Avoid |
|
|
40 | (2) |
|
Alternatives to Mesh Density |
|
|
42 | (2) |
|
|
44 | (1) |
|
|
45 | (2) |
|
|
47 | (6) |
Chapter 3 Rigging Concepts |
|
53 | (72) |
|
|
53 | (1) |
|
|
53 | (39) |
|
|
54 | (3) |
|
|
57 | (4) |
|
|
61 | (3) |
|
|
64 | (3) |
|
|
67 | (2) |
|
|
69 | (6) |
|
|
75 | (10) |
|
|
85 | (2) |
|
Attaching Meshes to Joints |
|
|
87 | (2) |
|
|
89 | (2) |
|
|
91 | (1) |
|
Introduction to Scripting |
|
|
92 | (2) |
|
|
93 | (1) |
|
|
94 | (14) |
|
|
95 | (3) |
|
|
98 | (2) |
|
|
100 | (6) |
|
|
106 | (2) |
|
|
108 | (17) |
|
Our First Python Script—tgpGears |
|
|
110 | (1) |
|
|
111 | (6) |
|
|
117 | (3) |
|
|
120 | (3) |
|
String Formatting in Python |
|
|
123 | (2) |
Chapter 4 Scripting Mechanics |
|
125 | (38) |
|
Engineering the Fantastic |
|
|
125 | (1) |
|
Python's Object-Oriented Programming |
|
|
125 | (3) |
|
|
126 | (2) |
|
|
128 | (11) |
|
|
129 | (8) |
|
Adding Button Functionality |
|
|
137 | (2) |
|
|
139 | (20) |
|
|
140 | (2) |
|
|
142 | (1) |
|
Creating a Utility Section |
|
|
142 | (1) |
|
|
143 | (2) |
|
|
145 | (4) |
|
Assign Functionality to the Buttons |
|
|
149 | (2) |
|
|
151 | (8) |
|
And Now for a Lite Version of the GUI Framework |
|
|
159 | (4) |
Chapter 5 Rigging Mechanoids |
|
163 | (92) |
|
|
163 | (1) |
|
|
163 | (3) |
|
|
164 | (1) |
|
Which Rig? Bind vs. Control |
|
|
164 | (1) |
|
Analyzing the Rig Behavior |
|
|
165 | (1) |
|
|
166 | (47) |
|
|
169 | (2) |
|
|
171 | (3) |
|
|
174 | (7) |
|
|
181 | (1) |
|
Scripting tgpControlOrient |
|
|
181 | (6) |
|
|
187 | (2) |
|
|
189 | (7) |
|
|
196 | (5) |
|
|
201 | (2) |
|
|
203 | (5) |
|
|
208 | (5) |
|
|
213 | (11) |
|
|
224 | (6) |
|
|
230 | (7) |
|
Putting Together the Body |
|
|
237 | (8) |
|
|
245 | (10) |
|
|
246 | (9) |
Chapter 6 Rigging Humanoids |
|
255 | (24) |
|
|
255 | (1) |
|
Analyzing the Bind Skeleton |
|
|
255 | (6) |
|
To T-Pose or not to T-Pose? |
|
|
256 | (2) |
|
|
258 | (3) |
|
Creating the Bind Skeleton |
|
|
261 | (18) |
|
|
267 | (1) |
|
|
268 | (3) |
|
Binding Leaf's Mesh to the Skeleton |
|
|
271 | (2) |
|
|
273 | (3) |
|
Weight Assignment and Painting |
|
|
276 | (3) |
Chapter 7 The Control Rig |
|
279 | (72) |
|
|
279 | (15) |
|
|
281 | (1) |
|
|
282 | (12) |
|
Automating the Limb Creation—the Limb Class |
|
|
294 | (10) |
|
|
294 | (3) |
|
|
297 | (7) |
|
|
304 | (15) |
|
|
305 | (6) |
|
|
311 | (2) |
|
|
313 | (6) |
|
|
319 | (5) |
|
|
319 | (4) |
|
|
323 | (1) |
|
After You! No, After You—Polite Space Switching |
|
|
324 | (4) |
|
Space Switching Using Parent Constraints |
|
|
324 | (4) |
|
|
328 | (15) |
|
Snappy Logic Part 1—FK to IK |
|
|
329 | (2) |
|
Snappy Logic Part 2—IK to FK (with a dash of pole vector magic) |
|
|
331 | (12) |
|
|
343 | (8) |
|
Adding Global Scale to the Rig |
|
|
343 | (4) |
|
|
347 | (2) |
|
|
349 | (2) |
Chapter 8 Game On! |
|
351 | (16) |
|
|
351 | (1) |
|
|
351 | (1) |
|
|
352 | (1) |
|
Methods of Exporting Animation from Maya to Unity |
|
|
353 | (1) |
|
Baking the Animation Keys |
|
|
354 | (2) |
|
Exporting to the FBX Format |
|
|
356 | (2) |
|
Importing Animation Files in Unity |
|
|
358 | (2) |
|
Blending the Animation Cycles |
|
|
360 | (7) |
Epilogue |
|
367 | (2) |
Appendix |
|
369 | (2) |
Index |
|
371 | |