KB101: Integrating Character Builder with Adobe Captivate
These notes have recently been revised for Captivate 5, Adobe's latest version of Captivate.
While older versions of Captivate are supported for animations, only Captivate 5 is supported for Character Widgets.
There are two different ways to embed Character Builder animations into Captivate 5, namely as an Animation, or as a Widget. The two types of insertions
are useful in different situations.
Insertion as an Animation
To create a Flash SWF file that can be inserted as an Animation, you create a new Character Builder project with the Flash Animation output format, and with
the correct Frame Rate and Flash Version settings.
All three options are available on the Project panel. You can quick create a project with
the correct settings using File > New Project, selecting the Message type, and then on the next page of the wizard, the Flash Animation
configuration.
The Frame Rate should be set to match that of Captivate, which is normally 30 frames per second. If the frame rate does not match
the frame rate in Captivate, then your animation may play too fast and get cut off early. Your Flash Version and ActionScript setting should also normally
match the Captivate settings, so that the Character Builder-generated SWF file can be successfully merged into the Captivate-generated SWF
file. With Captivate 5, the default output setting is Flash Version 10 and ActionScript 3. For Captivate 4, the ActionScript setting should be 2.
After you Render to Flash from the Character Builder toolbar, use the Output button to view a list of output files. You can then drag the
Flash file from the output directory onto your Captivate slide. The Captivate timeline for the slide should automatically be extended to
match the duration of your animation. You can also use Captivate's Insert > Animation... command, then navigate to the Output directory of
your Character Builder project, which is normally under Documents/Character Builder Projects. Depending on your defaults, Captivate may insert a fade-in and fade-out for the animation, however slow fades
may not look good on all characters, so you may want to turn this off. When you import a flash movie as an animation there is a single, integrated timeline, and the user can stop, restart, or scrub
backward and forward in Captivate and the character will be updated accordingly.
If you update your movie, in Character Builder, you will need to re-render it to Flash, then right click on the animation in Captivate and select Update.
In many cases you will create several different Character Builder movies for integration into a single Captivate project. To do this you can either
create multiple Character Builder projects (one per output movie), or you can create a single Character Builder project file with multiple presentations or even multiple scenes, then disable
all but one presentation or scene using the Disable for Render and Enable for Render commands located on the
right-click (context) menu on the elements in Outline view. By enabling only what you need you can quickly render a single item at a time.
Your stage will normally be small - just large enough to contain the character and any arm actions it might use. You can include a background image, but by default the Character Builder output
has a transparent background. The character need not appear on each slide, or it may appear in a different location from one slide to the next. If you use it to create a software simulation,
then Captivate will create many slides, frequently of very short duration. If you want a character on multiple Captivate slides, then you can either create a new Character Builder project for
each slide, or you can tell Captivate to have the animation last for multiple slides.
Note that while Captivate has a growing number of options for dealing with audio, you always want a character's voice to be created within Character Builder,
so that the character can lipsync the audio properly. If you already have audio files in your Captivate project, then you may be able to recover them as .wav files that
are useable by Character Builder when you export your Captivate project. Sadly, it is not possible to use Text to Speech engines that come with Captivate 5 to
create audio for Character Builder, nor can the Character Builder's Text to Speech addons create raw audio files for use in Captivate. Note
also that Captivate's "Paul" and "Kate" voices are a lower quality voice (they have a smaller phonetic database) than the versions of Paul
and Kate sold for use with the Character Builder.
Insertion as a Widget
In Captivate, an "interaction" is an event that causes the Captivate timeline to stop while waiting for user input. You might use the previous
technique to create a slide in which a character that asks the user to press a button to continue. The trick is to insert a pause at the end of the
presentation, and to have the button pause the slide in the middle of the silent portion.
However consider a question slide, in which you want the character to react differently if the user answers correctly or incorrectly - difficult to do with a regular animation.
It is also possible to use the Character Builder to create an "animatron", or "puppet", that can be prodded to deliver different messages depending
on the user's input.
In Captivate, a Widget is a flash file with added code, that can take parameters from Captivate. A customizable graph object
that displays data that you provide is an example of a widget. To insert a character as a Captivate Widget, you will first create a Character Builder project containing one or more messages: one for each
thing the character will need to say. Unlike with animations, you will use the Builder's default Flash Applet output mode. You can create
a new project using File > New Project, and the Message Project type, but this time you can choose Simple Message.
For Character Widgets to work, you will need 3 things:
- You will need Captivate 5 or higher, and Character Builder 5.3 or higher.
- Make sure your output is Flash Applet, version 9 or higher, with ActionScript 3. You will find these settings on the Character Builder Project panel.
- On the same panel, look for a new "Expose Flash API" checkbox and make sure it is checked.
Use the Render to Flash button to render to a single SWF file in the Output directory. Unlike with animations,
you will use Captivate's Insert > Widget... command to insert this file as a widget.
NOTE: When dragging a SWF to Captivate, the SWF is always inserted as an animation, and animations must be rendered with the Flash Animation output type. You must use Insert > Widget to insert your Single File
SWF as a widget.
In the Captivate terminology, your Builder-generated SWF file is a "static" widget - when you place it on a slide it takes the entire duration of the timeline,
but never lengthens the timeline.
Since the character is not part of the Captivate timeline, it does not stop when the Captivate timeline stops. Widget messages
should normally be fairly short - an acknowledgement of success or a hint upon failure may work best.
Your Character Builder project will normally have several messages, and the first of these messages is normally set to play automatically.
You might want to turn this option off, so the character begins in the "idle" state.
You can use the Character panel to select an idle animation. You will typically select None to cause it to remain motionless when idle,
but you can also choose Blink, or a more complicated idle to give your character the illusion of life.
Before you can trigger a message, you will need to add a new user variable called msPlay. To do this, select Project > Variables... in Adobe Captivate.
Press the New button, the type in msPlay, and then press Save.
Now, whenever you want to trigger a message, you will simply set the msPlay variable to the name of the message, as it appears in the Name field on
the message panel in Character Builder. By default Builder uses names of the form "Message N", but you can rename them to be more meaningful, such
as "Correct", or "Hint 1". (Remember to right click on the widget and user Update... if you change and republish your project in Character Builder.)
To try this out, you can add a Button object to your Captivate slide. For the action, choose Assign, then select the msPlay variable and set the value
to "Message 1" (include the quotes), assuming a message with this name exists in your Builder project.
When inserted as a widget, the Character Builder-generated Flash file will monitor the value of the 'msPlay' variable - if it gets set to a value
it will begin playing that message.
You can reuse a single Builder-generated widget on more than one slide.
You can also place a character on the first Captivate slide and set the Timing section on the animation properties panel to "rest of project" to make the character appear continuously
across the remainder of the slides.
You can trigger a message wherever Captivate allows you to set a variable. You can also use a slide's On Enter action to Assign a value to msPlay.
Similarly, when creating a multiple-choice question slide in Captivate,
you can assign actions for the successful and unsuccessful completion of a slide.
While more complicated, you can use Captivate's Execute Advanced Actions action to create scripts that pick exactly which comment to provide based on
other Captivate variables.
Character Builder scripts for character widgets can also control Captivate through the External Command action.
Specifically, when embedded in Captivate as a Widget only, the External Command's Command field can be set to one of rbcmndPause, rbcmndResume, and cpCmndGotoSlide.
The rbcmndPause and rbcmndResume commands will stop and resume the Captivate playhead. The cpCmndGotoSlide action can be used to jump to a given slide - the
Args param, in this case, should be set to the slide number to jump to.
|
|