LipSync Tutorial

This tutorial is also included in the download package.

A more general description of the tools is given in
About LipSync

Back to LipSync

Files supplied in download pack

LipSync and SyncPlug
Quicktime soundtrack
Director host movie
html docs (this file and "About LipSync")
text only versions of the html docs
sample sync data files
Xtras folder containing fileIO Xtra


Before Starting

If you want to be able to go back and forth between this tutorial and LipSync (alt-tab on Windows) it is best to run LipSync as a Projector (remember to make the FileIO Xtra available to your projector). The Xtras folder included in the download pack contains the fileIO Xtra. Keep this folder in the same directory as your projector.

SyncPlug should be in the "Xtras" folder that is in the same directory as Director.



Start LipSync. Load the soundtrack by selecting Load QT sound... from the File menu, set the frame rate to 15 with the Framerate menu.

Use the Quicktime controller ->

or the variable rate slider --->

that are located on the lower half of the Quicktime Tool ->
to play the soundtrack and hear the words that you are going to lip sync.

Type the words to be synced into the scrolling text box.

Choose Save from the File menu to create a document where you'll save the sync data.

Once the words are entered and the framerate is set, go to "select word" mode by clicking the "select word" button.


Working with words

Click on the first word in the scrolling text box to load it into the word editor.

Use the Quicktime Tool to play the soundtrack until the first word is heard. Use the rate slider or QT controller to back up to the start of the word.

Use the frame step and frame play buttons to find the first frame of the word.

play this frame

go to next frame

play next frame

go to previous frame

Click on the "set word start" button to set the current word start to the current frame.

The Word Editor

When a word first has its start or end frame set, the end or start frame is set to the same frame so a one frame word appears in the word editor.

Click on the waveform icon at the bottom of the frames following this frame until you hear the end of the word.

Click on the "set word end" button to record the end frame's number.

A string of blank frames appears in the word editor spanning the word's frames.


Assigning mouths and previewing


mouth palette

Click on mouths in the mouth palette to assign them to successive frames of the word. You can change a mouth by dragging a new mouth from the mouth palette to that frame.

Click on the "say word" button to preview the word spoken.

If you find the word is cut off at the end you can click on the last frame to release it from the end tab and click on the end tab to extend the word.

You would then need to assign another mouth to the new cell and preview it again with the "say word" button.

Use the "say word plus" button to make sure your frames span the whole word.

Next word

Before loading the next word click on the waveform icons in the frames following the current word - listening for the next word.

When you hear it click on the next word button (or click on the next word in the list) to make word 2 the current word

and click on the "set word start" button to set the start of word 2.

Click on the "play next frame" button until you hear the end of the word.

If you overshoot back up one frame with the "previous frame" button

and click on the "set word end" button to record this frame as the last frame in the second word.

Assign mouths and preview the word. If it looks like the mouth responds slowly, bump the whole word a frame earlier with the front tab.

Finishing up

Continue through the rest of the words marking start and end and assigning mouths.

Or do all the word boundaries first and then assign the mouths.

Rewind to the start of the soundtrack, click on the "say all" button and move the rate slider to 0.5 to see all the words spoken at half speed.

Once you've done all the words and made any changes it's time to get your animation to lip sync.


Creating your animation

When authoring your animation it is assumed that you have the QT soundtrack loaded so you can sync any other action to it.


Create mouth sets

LipSync uses a set of nine standard mouth positions. You need to create a set for each view of the character. It's important to use the order

AI - E - O - U - MBP - CDGKNRS.. - L - FV - WQ

because the position in the cast relative to the "MBP" position is used when swapping mouth positions. When drawing your character leave out the mouth.

For this tutorial you can just use the host movie supplied.


Place mouth on character

Wherever a character will be lip syncing, place the closed mouth cast member (MBP) from the appropriate set where it must appear on the stage. If this is done as the animation is produced the mouth can be moved and in-betweened along with the character. Use the Matte or Bkgnd Transparent ink effects if the mouth cast member isn't rectangular.

Use the same channel for the mouth sprite throughout each QT soundtrack.

For this tutorial you can just use the host movie supplied.


Incorporate the data with SyncPlug

SyncPlug is a Director Xtra which you access from the Xtras menu while your animation is loaded.

Choose SyncPlug from the Xtras menu and follow the prompts:

1. Click "load sync file" to bring up a dialog box to locate the sync data file you created with LipSync.

2. Select any cell in the channel with the mouth sprite and click "record mouth channel". This becomes the sprite that is swapped to lip sync.

3. Select the cell in the score where the QT soundtrack starts and click "install data". LipSync will create 3 new cast members. Two contain sync data and the other contains two handlers to manage the sprite swapping.

Try playing the Director movie. It should lip sync using the mouth positions you recorded with LipSync.


About the handlers

SyncPlug creates a script cast member with "startMovie" and "enterFrame" handlers.

If you have your own startMovie handler rename the one created by SyncPlug to something like startMovie2 and then put a call to this in your own startMovie handler.

If you have your own enterFrame handler in a movie script rename the one created by SyncPlug and call it from your own handler. If you have an enterFrame handler in a frame script it will be called first so just include a "pass" command in your handler.

Back to LipSync