See lip-syncing speech mapping resources, 235 speech sample, waveform from, 226 Speed track property, 86 SPEEX compression scheme, downloading, 227 splines, importing for hair modeling,
Trang 1specular maps
converting normal maps to, 284–286 using, 284–286
speech See phonemes; visemes
speech analysis, resource for, 226 speech and sound libraries, availability of,
224
speech animation channels, 205–206
speech, lip-syncing See lip-syncing
speech mapping resources, 235 speech sample, waveform from, 226 Speed track property, 86
SPEEX compression scheme, downloading, 227
splines, importing for hair modeling, 351 spring, physics simulation of, 131–134 SPRING class, 133–134
static meshes
rendering in bone hierarchies, 67–70 static mesh, loading, 27
See also meshes
static variables, coding convention for, 9 STDMETHOD macro, translation of, 43 steering behaviors
“Boids,” 297–303 implementing for crowd simulation, 306–307
STL vector, example of, 14–15 stl::vector class, simple use of, 13 stream source 0, setting mesh as, 187–188 streams, creating for skeletal/morphing animation, 186–187
Sumotori Dreams game, downloading, 138 Sun and Earth, gravitational pull between,
112
swarm behaviors
“Boids,” 297–303 overview, 296
T
The Tales of Bingwood, animation
sequence of, 4
talking See phonemes
tangent-space
light vector transformed to, 264 transforming points to vectors in, 265 using with normal maps, 262–263
target meshes
creating for faces, 213 loading from single x file, 200–201
TBN-Matrix, constructing, 265 terrain, following, 310–312 text-to-speech applications, availability
of, 221 textures member of BoneMesh, 51 ticks per second, retrieving for animations, 77
time steps, managing for animations,
77–78
timestamps, calculating for animation keys, 77
Tomb Raider, mesh objects for bones in, 36
track masks, features of, 395 track state, retrieving, 88 tracks
in animation controllers, 86–88 assigning animation sets to, 87 blending animations in, 87 identifying for animation sets, 88 setting animations for, 80
See also animations
transformation matrices
updating, 81 uploading to Effect, 30 for vertices, 48
triangles
including in meshes, 47 selecting for decal mesh, 330–331
Trang 2Tuppurainen, Markus, 7 tweening, defined, 74 twist cone constraint, creating in RAGDOLL class, 154–156 Two-Joint IK
implementing, 248–252 solving problem with, 246–251
See also joints
U unit vector, component range of, 261 Unreal Engine 3 Animation Tree Editor,
393–394
Update() function
for Boid class, 299 capabilities of, 20
of CrowdEntity class, 306 declaring in IMonster class, 14
in physics simulation, 125
UpdateMatrices() function, 45, 81, 162 UpdateSemantics() function versus CloneMesh(), 270
UpdateSkeleton() function, 162–163 UpdateSkinnedMesh() function, 57–58, 60 UpdateSpeech() function, calling, 224 upper arm bounding box, placing,
152–154 See also arm
UV barycentric coordinates, using with hit position, 329
UV coordinates
advisory regarding normal maps, 279–280 calculating for decals, 339–346
V Vanhatalo, Sami, 368, 397–402 VC++ directories
adding Bullet source folder to, 142–143 setting up, 15–16
vectors
calculating angles for, 116 calculating for decal UV coordinates,
340, 342 calculating scale factors for, 115 cross products of, 116
of integers, 13 MAX and MIN for AABB, 119 for OBB (Oriented Bounding Boxes), 119–120
of pointers, 13–14 transforming, 114–115 transforming directions of, 115–116 transforming with quaternions, 116–117
in vertex lighting, 262
velocity
calculating for particles, 131 after collision, 130
considering for rigid bodies, 126–127 storing for particles, 128
verbal messages, combining with emotions, 195
Verlet integration
code sample, 130 formula, 128
versors, using with vectors, 115–116 vertex buffer, assigning to streams, 179 vertex constraints, support for, 61 vertex data, interpreting data input stream to, 174–175
vertex declarations
adding components to, 266 changing, 270
compiling, 179
of Face class, 270–271 getting from mesh, 266 for skinned and morphed face, 381–382
vertex element types and usage, 176
Trang 3vertex formats
customizing for morphing animation, 174–175
method, 176 offset, 175 stream, 175 type, 175–176 usage, 176 UsageIndex, 177
vertex lighting, 256–258
versus normal mapping, 275 vectors in, 262
vertex shaders
adding input structure for vertex declaration, 272
morphing, 181–182 for reading streams and outputs, 384–386 skeletal/morphing, 188–190
See also shaders
vertex size, checking in bytes, 332 vertex-based lighting, problem with,
256–258
vertices
blending, 61 combined weights for, 48 converting to Index Blended Vertices, 61–62
defining for morphing animation, 174 distance from hit point, 339
influence of bones on, 47–48
in morphing animation, 168 relationship to Matrix Palette, 62
in skeletal animation, 168 transformation matrix, 48
of triangles, 47
viseme keyframes, creating array of, 224 visemes
class for, 222 creating array of, 232–234 versus phonemes, 217, 221
templates for, 222
See also voice sample
Visual Studio Express 2008
downloading, 16 setting up projects in, 16–19
Visual Studio, starting with Bullet project,
141
voice sample
returning average amplitude of, 232 waveform and spectrograph of, 226
See also phonemes; visemes
Voodoo chipset, launch of, 4 vowels, phonemes for, 218 VS_OUTPUT structure, using with normal mapping shader, 272–274 W
Wake, Alan See Alan Wake character
WAVE format
chunk, 228 organization of, 227–228 resource for, 229
See also sound and speech libraries
WaveFile class code, 229 Web sites
Bullet Physics Library, 140 DirectX SDK, 15
Forsyth, Tom (blog), 262 hair animation, 351 Melody tool, 281 Normal Mapper tool, 280 OGG compression scheme, 227 Photoshop tool for normal maps, 281 SPEEX compression scheme, 227 Sumotori Dreams game, 138 Visual Studio Express 2008, 15 WAVE format, 229
See also resources
Weight track property, 86
Trang 4weights, using to blend morph targets, 168 werewolf, morph targets for, 184
window class, creating and registering,
22–23
window procedure code, 23 windows, clearing background color of, 26 WinMain() function, using, 21
WM_CREATE function, using, 23 WM_DESTROY function, using, 23
Wolfenstein 3D, release of, 4 words See phonemes
world space hit location, calculating, 328 worlds
adding rigid bodies to, 145–146 describing with OBB, 119–124
wrinkle maps
for Alan Wake character, 402 resources, 293
using, 289–292
X .x files
loading for ID3DXAllocateHierarchy, 44–45
loading multiple targets from, 200–201 loading of, 12
using, 27
Z ZBrush Web site, 280
Trang 6GOT GAME?
Challenges for Game Designers
1-58450-580-X I$24.99
Game Graphics Programming 1-58450-516-8 I$64.99
Game Character Development 1-59863-465-8 I$44.99
Video Game Design Revealed 1-58450-562-1 I$39.99
Trang 8License Agreement/Notice of Limited Warranty
By opening the sealed disc container in this book, you agree to the following terms and conditions If, upon reading the following license agreement and no-tice of limited warranty, you cannot agree to the terms and conditions set forth, return the unused book with unopened disc to the place where you purchased
it for a refund.
License:
The enclosed software is copyrighted by the copyright holder(s) indicated on the software disc You are licensed to copy the software onto a single computer for use by a single user and to a backup disc You may not reproduce, make copies, or distribute copies or rent or lease the software in whole or in part, except with written permission of the copyright holder(s) You may transfer the enclosed disc only together with this license, and only if you destroy all other copies of the software and the transferee agrees to the terms of the license You may not decompile, reverse assemble, or reverse engineer the software
Notice of Limited Warranty:
The enclosed disc is warranted by Course Technology to be free of physical defects in ma-terials and workmanship for a period of sixty (60) days from end user’s purchase of the book/disc combination During the sixty-day term of the limited warranty, Course Tech-nology will provide a replacement disc upon the return of a defective disc
Limited Liability:
THE SOLE REMEDY FOR BREACH OF THIS LIMITED WARRANTY SHALL CONSIST EN-TIRELY OF REPLACEMENT OF THE DEFECTIVE DISC IN NO EVENT SHALL COURSE TECHNOLOGY OR THE AUTHOR BE LIABLE FOR ANY OTHER DAMAGES, INCLUDING LOSS OR CORRUPTION OF DATA, CHANGES IN THE FUNCTIONAL CHARACTERISTICS
OF THE HARDWARE OR OPERATING SYSTEM, DELETERIOUS INTERACTION WITH OTHER SOFTWARE, OR ANY OTHER SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES THAT MAY ARISE, EVEN IF COURSE TECHNOLOGY AND/OR THE AUTHOR HAS PREVIOUSLY BEEN NOTIFIED THAT THE POSSIBILITY OF SUCH DAMAGES EXISTS
Disclaimer of Warranties:
COURSE TECHNOLOGY AND THE AUTHOR SPECIFICALLY DISCLAIM ANY AND ALL OTHER WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF MERCHANTABILITY, SUITABILITY TO A PARTICULAR TASK OR PURPOSE, OR FREE-DOM FROM ERRORS SOME STATES DO NOT ALLOW FOR EXCLUSION OF IMPLIED WARRANTIES OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THESE LIMITATIONS MIGHT NOT APPLY TO YOU
Other:
This Agreement is governed by the laws of the State of Massachusetts without regard to choice of law principles The United Convention of Contracts for the International Sale of Goods is specifically disclaimed This Agreement constitutes the entire agreement between