character lip syncing is a powerful tool for any game that needs to showcase character dialog. Traditionally, most character lip-syncing is rendered by animators to pre-recorded vocal tracks. While this works well and is still the method preferred by some, being able to dynamically lip sync a character reduces the need for animation entirely. Character lip syncing, on its own, is an advanced concept we could spent several chapters on. However, for our purposes, we are going to show just what is possible by extending the audio visualization techniques we developed in the last chapter and applying them to character lip syncing. Along the way we are going to get familiar with lip-syncing best practices and ultimately how these techniques can be applied to other environments, characters, or languages.
For this chapter, we going to extend the knowledge...




















































