tag:blog.lilybiri.com,2013:/posts Captivate blog 2023-08-28T16:12:37Z ir. Lieve Weymeis tag:blog.lilybiri.com,2013:Post/2017648 2023-08-28T16:12:37Z 2023-08-28T16:12:37Z Play/Pause Button extended (Classic Captivate)

Intro

This blog post is due to a forum question. For a custom Play/Pause button the developer tried the workflow from this post. However there was a second request: the learner was expected to click an interactive object to proceed to the next slide. The original conditional action for the Play/Pause button results in a conflict: if the learner clicks that button multiple times, the Play action can override the pausing point of the interactive object meant to pause the slide indefinitely until the learner clicks it to proceed to the next slide. If you want to learn more details, please check out this thread.

My promise: a workflow, taking into account that it should be possible to use it on multiple slides. You can test it out in the Example project. Maybe some of you could be in the same situation, hence this blog post. It is based on deep understanding of Captivate's Timeline, micro-navigation, power of shared actions and objects timed for the rest of the project. 

If you are wondering: this workflow is impossible in the new version 12 for multiple reasons.

Example project

Please test this project, either by watching it using this link for a scalable version, or the static resolution version embedded below. After the introductury slides you'll find two slides with the Play/Pause button. Test them by clicking that button multiple times and watch what happens when you reach the end of the slide: the button will change its state but the play head will remain paused until you click the

 Next button.   I used some design elements/slides from the non-

responsive Quick Start Project 'League'.


Background

The basic conditional action for the custom Play/Pause button, which is timed for the rest of the project to start with is:

I used the simple commands Pause and Continue, which have exactly the same result as assigning values to cpCmndPause/cpCmndResume. Toggling those variables alhough they are Booleans, is not possible (sorry). I preferred the 'Go to Next State' for the PlayPause button. This is the object state panel of the button, this command is toggling between the two states.

Due to the timing of the button for the rest of the project, it has always the same ID and the advanced conditional action has nothing which changes when being on another slide. Problem is that when the button is clicked to the Play state on the pausing point of the Next button, the Continue command will override the pausing by this button. To solve this we need to know 'where' that pausing point is, and add a new decision to the conditional action, where Pause occurs in that situation even when the learner clicks to play again.

If you have an instance of the Next button on each slide, to time it near the end of the slide, its pausing point will be at a different frame on each slide. In the example project, to simplify, I timed the Next button for the rest of the project and took out its Pausing behavior. But I added a click box on each slide, pausing at the end of the slide. The click box is invisible (no feedback messages) to the learner. 

I need to define on which frame the slide has to pause indefinitely. In order to keep the Play/Pause button action independently from that frame, I have to store it in a user variable. The value of that user variable will be defined using the On Enter slide event. 

Step-by-step workflow

Variables

System variables

The used system variables are:

  • cpCmndPause: has value 1 when slide is paused, value 0 when it is not paused.
  • cpInfoCurrentFrame: frame number of the present frame, index starts with 0; frame number is over the project not the slide.
  • cpInfoFPS: number of frames per second; default value is 30 but can be changed.

User variables

Two user variables will be used but since they both appear in a Shared action, they'll be defined when you send this shared action to a new project:

  • v_start: will store the frame number of the first frame of the slide
  • v_end: will store the frame number of the frame where you want to pause indefinitely; it will be near the end of the slide, but it doesn't need to be the last frame.

Events and actions

You'll see an overview of the actions on the two slides where the Play/Pause button is important in the Advanced Interaction panel::

PlayPauseAct (advanced action)

This action is triggered by the Success event of the Play/Pause button:
The second decision is simple: The play head will always be paused when the frame number is higher than the on in v_end. Due to the sequence of the decisions, the state change for the button will occur, but Continue will be overridden if the second condition is fulfilled.

EnterAct (shared action)

This Shared action is triggered by the On Enter event of each slide, has 3 parameters:
The first parameter is the one who will be different on each slide. In the screenshot it is set at 18 seconds. It means that once the playhead reaches the frame at 18 seconds it will be paused by the second decision in the PlayPauseAct. Since frame numbers are on project level, the first frame of the slide is used as reference. The Expression commands are needed to perform some math operation to calculate the exact frame number. This literal depends on the Timeline. Have a look at the Timeline of slide 4
For this slide the first parameter was set at 45 seconds:
For slide 5 this was the Timeline:
In this case the first parameter was set at 9 seconds.

On the last slide (6) I used the On Enter event to hide the Play/Pause and the Next button since they were no longer needed. 




]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/2007694 2023-08-04T09:43:53Z 2023-08-04T16:53:40Z Classic Captivate vs 'Charm' test case (responsive project).

Intro

The 'All New Captivate', version 12 has been released just over a month ago.

It lives along Captivate Classic because it has not all the features which are expected in a full-blown authoring tool. Main limitation is that you can only create responsive projects. As a long-time user of Captivate I know that this implicates a lot of prohibited workflows which are possible in a non-responsive project.

To test the differences in workflow and possible bugs/lacking features I want to recreate a responsive project in the new version. The project which you'll be able to see here, was created with Fluid Boxes and based on a Quick Start Project 'Rhapsody' for the design aspect. 

'Crunch Numbers' test project

Play with the project on any device, using this link. You can also view the embedded one below, but on mobile devices you better use the link.



The topic is simple, and suited for playing on small mobile devices. There are some references to previous blog posts, but they used a non-responsive project. I focused on multistate objects because I know already that they are easier to use in the new Captivate release than in Classic Captivate.

Test follow-up

I plan to document each of the steps of the test process in another blog with limited access. Although my primary focus will be on recreation of the interactivities in the project, I will also spend time on the design features. Here is a non-restrictive first list of steps:

  • Preparation: setup of Preferences and Theme.
  • Recreating simple content slides using the slide templates and blocks
  • Eventually use of slides from Quick Start Projects.
  • Setup Multistate objects
  • Use of audio.
  • Animations tool
  • Defining user variables
  • Replacing Shared actions by Interaction tool (and Copy/Paste)
  • Replacing Advanced actions by Interaction tool (and Copy/Paste)
  • Scoring 

Steps in Bold are for me the primary goal.

After the process I will post a link to the result in this blog.

Invitations

As mentioned the new blog will not be public. If you are interested in following my test steps and conclusions, you'll need to contact me either:

  • by sending me a mail with your credentials to info@lilybiri.com
  • by adding a comment here, but I need your name and mail address
  • by filling in the form under the Contact button on my website.

You may get an invitation. It will be a limited group and I expect some engagement/reactions on the private blog.




]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1997709 2023-07-24T17:43:35Z 2023-07-24T17:43:35Z Custom Navigation (basics)

Warning

At this moment two versions of Captivate are functional with the same license: Captivate Classic (version 11.8) and Captivate (version 12, also named Charm). The workflows described in this post are only functional in Captivate Classic. In version 12 they are not (yet) possible for multiple reasons which I will summarize at the end.

Why use Custom Navigation? 

Captivate has a playbar which includes Next and Back buttons, and a progress bar allowing to scrub to any location.

However in many projects these default buttons are not wanted, some examples:

  • The project is not linear (presentation-like). This can be due to a dashboard pointing to different parts and allowing the learner to control the sequence of the project slides.
  • There are (dummy) slides in the project which you don't want to have visited by the learner. 
  • Your client requires Forced viewing (bad idea especially for adult learners).

In those cases you don't want to have the default buttons which will be available all the time and always cause the action 'Go to Next  Slide' or 'Go to Previous Slide'. In all those cases a scrub bar is also a bad idea, but this article has its focus on custom Next and Back buttons. I have seen so many cases where the developer just puts an instance of the custom buttons on each slide - each with their individual action -  but I will propose altnernatives.

Workflows

Purpose of both workflows is the same: avoiding to have an instance of the buttons on each slide:

  1. Workflow 1: Put the buttons on the first slide where you need them, and time them for the rest of the project, always on top. For the Next button this will be on the first slide, for the Back button on the second slide. The buttons will have a unique ID. That means that they can be addressed with an action like Show/Hide when necessary. You can hide the Next button if it is no longer needed on the last slide using the On Enter event of the slide. This workflow is to be preferred if you need a lot of Forced viewing. In that case you can hide the Next button (On Enter) and use the Delay Next Actions command to show them after a certain delay. 
  2. Workflow 2: Put the buttons on master slides. They will not get an ID, but if you keep the Pausing (is activated by default) the pausing point will occur for each slide based on the master slide at the last frame, whatever the slide duration. These buttons cannot be controlled by actions like Show/Hide.

Since the buttons in both workflows will not always be used with 'Go to Next  Slide' or 'Go to Previous Slide', you'll need a 'dynamic' action to make them flexible. 

Dynamic actions

I prefer Shared actions because it is easier to transfer them to any project, using my Shared actions Library. That is a Captivate project where I store much used Shared actions. I open the library in any new project using File, Import, External Library.

Next button

The simple action ‘Go to Next Slide’ can also be achieved by this action:

Assign cpCmndGotoSlide with cpInfoCurrentSlide

This may seem weird, but the reason is the different start number of the index: for cpCmndGotoSlide it is 0, for cpInfoCurrentSlide it is 1. Example: if you are on slide 3, Next button should go to slide 4, but for cpCmndGotoSlide slide 4 is identified by number 3.

Howeveer you cannot use this action to the Next button, whether it is on the first slide (timed Rest of Project) or on the master slide(s). It is static, you cannot edit it to go to another slide than the Next one. To solve this issue I replaced the system variable by a user variable, which I label v_Next.

   Assign cpCmndGotoSlide with v_Next

Another event and action is needed on each slide to define the value of v_Next. The used event is the Slide On Enter, and it is better to use an Advanced action, because it can be applied to all On Enter events of the slides in one workflow. For its default action it will be:

   Assign v_Next with cpInfoCurrentSlide

For slides where the Next button needs to jump to a different slide, you’ll need to edit this action, replace ‘cpInfoCurrentSlide’ by the slide number you want to navigate to.. 

Back button

The simple action 'Go to Previous Slide' can be replaced by this Expression:

Expression cpCmndGotoSlide = cpInfoCurrentSlide - 2

Why 2? For the same reason as explained for the Next button, due to the difference in index for both system variables. To make this action dynamic, we'll need another user variable which I'll label v_Back. Similar to the workflow for the Next button, the value of this variable will be set with an action On Enter for each slide. For a normal Back button this would be:

   Expression v_Back  = cpInfoCurrentSlide - 1

The action for the dynamic Back button will be:

   Expression cpCmndGotoSlide = v_Back  - 1

On the slides where you want to navigate to a slide which is not the previous slide, edit the On Enter action, replacing cpInfoCurrentSlide by the wanted slide to navigate to.

I prefer also shared actions for both the Back button action and the On Enter action.

Summary

In my Shared actions Library I have three Shared actions for the Next/Back buttons:

NextAct   Assign cpCmndGotoSlide with v_Next

BackAct   Expression cpCmndGotoSlide = v_Back  - 1

EnterAct   Assign v_Next with cpInfoCurrentSlide

                 Expression v_Back  = cpInfoCurrentSlide - 1

  • In a new project, drag the shared actions to the Project Library of the new project. It is important to drag them simultaneously to avoid the variables v_Next and v_Back to be created twice.
  • Add Next/Back buttons with one of the two workflows. Apply the Shared action ‘NextAct’ directly to  the Next button and 'BackAct' to the Back button. No parameters are needed.
  • Convert the action ‘EnterAct’ to an Advanced action, by using it as template. There are no parameters to be defined. Apply the Advanced action to all Slide Enter events, which is possible by selecting all slides in the Filmstrip (Ctrl-A) and adding to the slide Enter event.
  • Identify those slides where the buttons needs to navigate to other slides and edit the Advanced action 'EnterAct' for those slides. 

What about Captivate (version 12)

This workflow is impossible due to lack of:

  • Master slides
  • Timing of objects for rest of project
  • Missing system variables from the Movie Control category
  • Missing slide Enter event

In that version you need to keep the workflow to insert or copy/paste a button on each slide and add the appropriate action using the Interaction tool.


]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1989172 2023-06-18T18:21:48Z 2023-06-18T18:21:49Z Software simulations: Preparation phase (back to basics)

Intro

Captivate has always been famous for its interactive software simulations. Originally when it was released under the name ‘RoboDemo’ it was its primary goal. Although – in recent versions  – not much has been changed  for this feature,  it could be worthwhile to explain some tips I acquired while recording interactive tutorials for many applications (in several languages). In Flanders we often quote ‘Goed begonnen is half gewonnen’, freely translated ‘a good preparation will spare you lot of work later on’. This blog is about this preparation phase. some recommendations are also valid for Video Demo. I plan another blog will focus on the capturing workflow, and a third one on editing/polishing the sims into engaging eLearning course(s).

Preferences

Preferences can be edited before opening a project, while you are in the Welcome screen, the so-called Global Preferences. You do not have to start the Software simulation type of project to do so. Preferences are too be found under the Edit menu (Win users like me) or under the Captivate menu (Mac users).  Those global Preferences have less options because project-specific ones are missing, but the Recording category is complete.These options need to be checked, and eventually changed:

Settings:

Check the language! If you need to use another language, this is the place to be before starting the simulation. The feedback messages during capture (both shapes and captions) can be found in a file with extension rdl, like you can see in this screenshot. You can edit the messages in an editor like Notepad (don’t use Word).

I tend to keep the other settings at their default value. Lot of them can be set up later on for the project (narration, system audio..). The Camera sound and the Keystrokes audio are useful during recording, will not be included when published. The Smoothening is meant for the movie slides which have to be created for drag and other mouse actions. Later on you’ll get tips in the second part which will treat the capture itself.

Video Demo

To have a better quality for the movie slides (setting is also used for the simulation movie slides, also indicated as Full Motion Recording slides), change to 32-bit instead of 16-bit. For Video demo the temporary files are in a dedicated folder, you may want to switch to another folder on another drive if your startup drive (C) is too small. That tip is only for Video Demo, which can become rather big in file size.

Keys

Some of those shortcut keys are only for software simulations, not for Video Demo. That is the case for the Pause button, you cannot pause a Video Demo (answered that question multiple times in social media). You have to end the recording and eventually record another video at the end of the previous one..

Modes

Allows to check the setup for the three default modes (Demonstration, Training, Assessment) and eventually set up a Custom mode. Beware: you cannot choose a ‘default’ mode for future recording, which is what some users seem to believe. Choosing the mode(s) always happens at the start of a new recording. Personally I will edit some settings in this category. The feedback messages in a software sim, contrary to all other feedback messages (shapes) are by default set to be Text Captions. I prefer to switch to shapes and you can have a choice for the shape; it is easier to control the style of shapes in Captivate (see Step 2: Themes). You need to make the choice for the Demonstration mode, but it will be taken over for the Hint messages in Training/Assessment:

Take note of the objects to  be added during recording: besides the Success/Failure/Hint messages, highlight boxes, click boxes, Text Entry Boxes and eventually Rollover Captions (for Tooltips).

Defaults

This category is meant to edit the styles to be used. It is bit weird that this is included in the Preferences. Do not worry, Recording defaults will be added to the used Theme as well.
Beware: that will be the Theme set as Default theme. Of course if you opted for shapes instead of captions under 4., you only have to check the styles for shapes, not for captions. It is a bit confusing, because some captions have no counterpart as shapes: Capture Caption, Rollover caption. The styles for Smart Shape (used for both) is by default empty, but you can choose a styles there as well.
I will always create a different style for the Highlight box, instead of the thin lined Blue one which is the default. For the TEB, which often doesn’t have the wanted style that is a lot more difficult, because the wanted font and font size depends a lot on the application you’ll want to capture.

Theme

All software simulations (and the Video Demo) use the Blank master slide. It is important to keep that master slide blank. A background color or background image is not a problem. But you shouldn’t add other objects.

The Theme of your choice will need the wanted theme colors palette, theme fonts and object styles (maybe set in the Preferences, Defaults), Content and Quiz master slides are important if you want to add them later on to the course.  Once the wanted theme has been double-checked mark it as the Default theme. Especially if you do create many software simulations it is recommended to keep a Theme dedicated to them.

Storyboard

You have to know precisely what you want to capture. For long workflows, do not hesitate to split them up in small logical parts. It is a lot easier to record a limited number of slides, certainly if you want to do narration at the same time (which I do not recommend). For a software simulation you don’t have to worry that much about the synchronization with audio, since that can easily be done while editing (phase 3). While preparing, keep in mind to limit Full Motion Recording slides when possible. In many case drag and other mouse actions can be replaced by alternatives. Example: instead of dragging in scrollbars click somewhere on those bars. There are a couple of reasons. Several users have reported issues with the FMR (Full Motion Recording) slides when publishing to HTML5 in some browsers. Originally those slides are SWF-based, they are converted to MP4 when publishing but apparently the result is not always optimal. A better solution is to replace FMR by Video Demo slides, but that slows down the recording workflow (see second post).

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1966260 2023-04-24T18:03:12Z 2023-04-24T18:03:13Z Using State Numbers in Formula question

Intro

Review the output tutorial published in this post. The two first use cases were about a knowledge check question where the learner needs to create physics formulas, by clicking the terms in the formula. Those terms are multistate objects, used as buttons. In a previous post we created one shared action to get the 'State number' which is stored in an associated variable for each multistate object. That same post also explained how to choose the sequence of the states.

The first use case has 3 terms in the formula, the second one has 4 terms. The terms are identical multistate objects, at the start of the exercise they show the same Normal state.

In this article youi'll see how to create the action for the Submit button, and the On Enter action which is needed to reset the slide and thus allow multiple visits to the slides.

Submit actions

Those are advanced action triggered by the Success event of the Submit buttons.

Formula with 3 terms

To the left of the equal sign the term should be 'Force', which is state 3 in the multistate object.

To the right of the equal sign we need 'Pressure' and 'Area', sequence is not important. Those are states 1 and 2. The easiest way is to calculate the sum of the two state numbers, which should be 3. To avoid confusion, create another user variable v_right to calculate the sum. The condition will be very simple: v_1 (state number to the left of the equal sign) needs to be equal to v_right.  To show the result, another multistate object SS_Feedback was created with these three states:

This feedback shape is on the slide (not hidden) but the Normal state is invisible to the learner. I used the same feedback for the next slide (4 term formula) by timing it for the rest of the project. It will be hidden after the two formula slides.

The Submit action doesn't need much explanation; I used the Delay command to mimick the default time a feedback is shown, allowing a new attempt:

Formula with 4 terms

Due to the sequence of the states, a correct formula will also have the same sum to the left and to the right of the equal sign. Of course we need another user variable v_left  to store the sum to the left. However, checking the sums will not be sufficient in this case. If the learner chooses exactly the same states on both sides, the sums will also be the same. Example: if only the states for the 'oval 'are chose on both sides. To exclude that situation, I use another expression with a multiplication of the state numbers. For the result of the multiplication two extra user variables a; re defined: v_leftM and v_rightM

Example: if only 'oval' states are used sum will be: 5 = 2 + 3. However the multiplication will result in 6 = 2 * 3. Whereas for the drum the sum is 5 = 1 + 4  but the multiplcation will result in 4 = 1 * 4.  Look at the Submit action in this case:

Enter actions (reset)

Those are advanced actions triggered by the On Enter event of the slides, to reset the situation. 

Formula with 3 terms

The 3 variables storing the state numbers need to be reset to their default value (1: corresponding with the Normal state). That is not necessary for the v_right, because it is always calculated. The option 'Retain state on revisit slide' is not activated, which means that on revisiting the slide the Normal state is reset automatically. The variable v_states needs to be redefined.

Since the multistate object SS_Feedback is timed for more than one slide, and can be hidden by actions on later slides, it is important to show this object and put it back in the Normal state. The automatic reset to the Normal state is not happening due to the timing. The Next button needs to be hidden.

Formula with 4 terms

The 4 variables storing the state numbers need to be reset to their default value (1: corresponding with the Normal state). That is not necessary for v_right, v_left, v_leftM and v_rightM because they will be calculated. The option 'Retain state on revisit slide' is not activated, which means that on revisiting the slide the Normal state is reset automatically. The variable v_states needs to be redefined.

The resetting for the feedback object is for the same reason as in the other Formula slide.

More?

I used a similar workflow in this small project, which is meant as exercise for the math's class about Multiplication tables.

It is a responsie project, uses the same shared action I have used in the use case I described here. The Submit actions are a little bit more complicated. Your challenge: try to replicate this project. This is the link:

CrunchNumbers










]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1963123 2023-04-10T13:24:01Z 2023-04-10T13:24:02Z Shared action to track State Number

Intro

In this post you can find a Captivate tutorial, illustrating 4 use cases where the state number was tracked and used to find a solution.

This post will explain the setup of one Shared action to track the state number, when a multistate object is clicked to advance to the next state. To explain I will use the first two (physics) use cases. The first one has 3 identical multistate objects, with 3 states, and two possible correct answers:

The second one has 4 identical multistate objects with 4 states, multiple correct answers are possible:

You can find one of the correct answers in those screenshots. The workflow will be described step-by-step.

Workflow 

Events

Both use cases have:

  1. Success event of the multistate objects which are used as buttons. These events will be used to advance to the next state and to fill a variable with the tracking number. The index start with 1, which means that the Normal state is state 1. Being this the only goal of all the multistate objects in both use cases, the use of a shared action is recommended over duplicated and edited advanced actions. The shared action will be labeled StateNumberAct.
  2. The Success event of the Submit button. The action triggered by this even will have two goals: first to check the answer, second to show the Next button if the answer is correct. For a wrong answer the learner can have another attempt at changing the states and submitting the new situation. Those actions are advanced actions, labeled SubmitAct_3 and SubmitAct_4. They are similar but not identical.
  3. The Success event of the Next button when it appears which is the Default 'Go to Next Slide'.
  4. The On Enter event of the slides which is a Reset action for the slide. These advanced actions are similar but not identical, and they are labeled EnterThreeStates and EnterFourStates. 

Variables

Each multistate object needs an associated variable to store the tracking number. Since that number will be used only on the same slide, the variables can be reused. They will be reset with the On Enter actions. The four variables are labeled v_1, v_2, v_3 and v_4 (only needed for the second use case). If you are a fan of my blog, you may remember that I have those variables in a shared action in my general library to be used as external library. See Creation of Variables.

For the shared action StateNumber Act an extra variable v_states is used to store the number of states in the multistate object. The value of this variable will be defined by the On Enter action of the slide.

StateNumberAct (shared action)

This action will be triggered by the Success event of each multistate object used as button:

It is a two-decision action. The value of the tracking variable (used as parameter 2) is defined by incrementing, while the command 'Go to Next State' is done on the multistate object. The second conditional decision checks if the maximum number of states is reached (stored in v_states) and resets the tracking variable to 1 in that case. The first parameter is the multistate object used as button, which is a compulsory parameter contrary to the variable which is a candidate parameter, needs to be indicated to be a parameter.

Sequence of States

The state numbers will be used to check for a correct answer in combination with mathematical operators. For that reason there is no arbitrary choice:

Use case with 3 states

It has two correct answers, left side of the equation sign needs always to be 'Force'. I choose this to be state 3.

To the right side of the equation sign it can be 'Area x Pressure' or 'Pressure x Area'. Those are in state 1 and 2, sequence less important. Reason: check for correctness will calculate the sum of the tracking variables to the right of the equation sign, which needs to be 3. That lead to a very simple condition. Try to figure it out, or wait for the next blog post.

Use case with 4 states

This is bit more complicated. Similar to the 3 state case, we can calculate the sum of the state numbers to the left and the right. This leads to a sequence of state numbers as shown in the screenshot at the start. In all cases that sum will result in '5', because it will be either '2+3' or '1+4', in all correct answers symbolized in this list:

  • 2+3 = 1+4
  • 3+2 = 1+4
  • 2+3 = 4+1
  • 3+2 = 4+1
  • 1+4 = 2+3
  • 4+1 = 2+3
  • 1+4 = 3+2
  • 4+1 = 2+3

However there is a 'booby trap' here! Because the condition based on the sum will also result in correct when the states on the left and the right side are identical. Example: 2+3 = 2+3 which is not a correct answer. More is needed than the simple sum condition. Any idea? Find the solution in the next blog post.



]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1957804 2023-03-26T18:24:39Z 2023-04-06T16:02:32Z Intro to Tracking States

Intro

Multistate objects did change my workflows in Captivate a lot when they were introduced. Use the tag 'multistate object' or 'states' in my blog to see this proved. However I often miss the possibility to follow up states. There is no system variable for that purpose. Partially due to some questions on the forums, I set up some use cases to see the usefulness of state tracking. In this introduction you'll find a Captivate published output of 4 use cases and a short summary of the basic setup I used.

Example 

Check the tutorial below. These are the four use cases:

  1. Three identical multistate objects are used, and learner needs to reconstruct a physical formula by clicking through the states. Two solutions are correct:
  2. Four identical multistate objects, and another formula (related with the previous one). A lot more combinations are possible here, both sides need to result in the same Force.
  3. One multistate object, being a Carousel of 10 shapes (fSVG  text). Some requests (forum question):
       Flag number needs to be shown
       Back button only visible when in second state
       Forward button only hidden when in last state
       Next button on slide may appear only when all states have been visited
  4. Slot machine with 3 identical multistate objects having 8 states.

You can reach the rescalable version of this example using this link, or watch the embedded one below.


For the design I used some slides from the Quick Start Project 'Diverse'.

Basics for  Setup

Tracking variable

For each multistate object a user variable is defined. It will store the tracking number. I choose to have numbers identifying the state, with Normal being state 1, or in programming language: index starts with 1. None of the multistate objects in the example project has an 'empty' Normal state. If that were the case, the index could have been 0 which is the common approach for most system variables. However the system variable cpInfoCurrentSlide also has an index starting with 1.

For the use cases the state commands 'Go to Next State' and/or 'Go to Previous State' are used. So, it is necessary to reset the variable when either the last state or the first state is reached, to get a correct value in all situations.

Example for the first formula: once the third state is reached, the variable needs to be rest to 1 for the next click.

Events

This is more of a general tip when using advanced/shared actions. It is easier to set up a workflow if you can spread the actions over multiple events.  

For the first two use cases (formula): the multistate objects are interactive which leads to the use of a shared action because the check of the answer is done by clicking a button. This is also more user friendly: control over submitting the answer is given to the learner.

For the Carousel the multistate object is not interactive. Only the success events of the Forward and Back button are used. You'll see in the videos that this makes the action more complicated because all situations need to be cared for.

The slot machine is using JS for a random number and a While command, and can be triggered by the multistate object which is interactive. I added a Check button, to avoid a very complicated action. It is also the only example where I provided a Reset button (see previous blog).

On Enter event is used to reset variables and the situation on a slide. This is necessary when you allow to revisit the slides, but also because I tend to reuse variables.

State Choice

In the specific use cases of the formulas, the state tracking variable is used with mathematical operators to check for the correct answer. In that case it is important to choose a correct sequence for the states.

Example for the first use case: 'Force' is in the third state, because the used check function is to create the sum of the tracking variables for the first and the second state (1+2) which needs to be equal to 3 (third state). 

How?

I will post workflows for the use cases, including (interactive) video in future posts.


]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1949134 2023-03-06T11:24:59Z 2023-03-06T11:25:00Z Score in Software Simulation

Intro

This is a short blog post, answering a software simulation (assessment mode) question on the forum. If you are interested, here is the link.

You probably know that in such an assessment scores are attached to one interactive object on each slide: either a click box or a Text Entry Box.It offten happens that the same action can be done by clicking more than one 'target' on the slide, which will need customizing that slide to add at least one extra click box, which will also be scored. However that will lead to a results slide where the acquired percentage is not correct. Reason is that all scored objects are included in the total score. You can verify that easily in the Advanced Interaction panel, to be opened from the Project menu or with the shortcut key F9. Here is an example. Slide 59 has two target click boxes, both are scored.

The OP wants to show the correct percentage to the learner in the project, but for the reporting to the LMS Pass/Fail reporting is sufficient which can be done by basing it on the required pass points.

Variables

    • A while ago this blog post described using the system variables used in the Results slide: Quizzing System Variables. For this blog post the relevant system variables are:

cpQuizInfoTotalQuizPoints: will have the value you see at the top of the Advanced Interaction panel, and is not correct in this case because it includes the scores of the extra target click boxes.

cpQuizInfoPointsscored: will be correct because on each quiz slide only one of the targets can be clicked.

cpInfoPercentage: is calculated from both previous variables and will be lower than expected for the learner.

cpQuizInfoPointsPerQuestionSlide: this system variable is not behaving as expected for slides with multiple scored objects. It will NOT show the total score of the slide, but the score of ONE scored object. I will presume that in case of a slide with two target click boxes, both of them will have the same score. This is also valid if you prefer shape buttons instead of click boxes.

Since there  is no need to transfer the percentage to the LMS, it is possible to use user variables. Create these variables:

v_TotalScore: will replace the system variable cpQuizInfoTotalQuizPoints

v_TooMuch: will store the total score of the extra click boxes. I assume that click boxes on the same slide have the same score.

v_Percentage: will store the result of the calculation from v_TotalScore and cpQuizInfoPointsscored

Workflow

Simple

The easiest way would be to count the number of extra targets. If all the click boxes have the same score of 1 point you could calculate the correct percentage with this advanced action:

You can trigger this advanced action with the On Enter event of the custom Score slide. It will allow you to display the correct Percentage. 

Advanced

Situation becomes bit more complicated if not dual targets (click box/shape button) have the same score (of 1 point). In that case you can take advantage of the weird behavior of the quizzing system variable cpQuizInfoPointsPerQuestionSlide  (see above). I used this shared action, triggered by the Success action of the targets, and the 'Last Attempt' action which is used here (Success action on a background Shape covering the complete slide). I assumed that the Last Attempt action of the targets is set to No Action. That typical workflow was used by the OP, and explained in this blog post

You see that this shared action has no parameters, you could also create an identical advanced action, if you still fear shared actions. My main reasons for this choice:

  • Shared action can have a small description
  • Shared action appears in the Library, which make it easier to check the Usage
  • This shared action has no parameters, so it takes the same time as the advanced action to be applied to all the necessary events.
  • It is much easier to transfer this shared action to another Project.

There is a small change to the action to be triggered On Enter for the Results slide:

Conclusion

On the Results slide you can insert most of the default fields, an overview:

  • You scored:  the system variable cpQuizInfoPointsscored is correct
  • Maximum score: you need to replace the system variable by the user variable v_TotalScore
  • Correct questions: will be OK, it is the system variable cpQuizInfoTotalCorrectAnswers
  • Total Questions: will not be OK, you could add a supplementary command to the shared action similar to replace the system variable cpQuizInfoTotalQuestionsPerProject by a decremented user variable.
  • Accuracy: you need to replace the system variable cpInfoPercentage by the user variable v_Percentage
  • Attempts: will be OK, it is the system variable cpQuizInfoAttempts





]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1929832 2023-01-16T20:02:54Z 2023-01-16T20:02:55Z Multiple Failure Messages for Shape Button

Intro

Coincidence because this blog, answer to another forum question, is an alternative workflow to my most recent blog post about Software Simulation Assessments.

Summary of the request:

  • Learner needs to click a specific region, two attempts are allowed.
  • On Success the Success message appears and the project advances to the next slide.
  • On First failure a Hint message appears and an arrow indicates where to click. Moreover a Retry button appears.
  • When the Retry button is clicked the Hint text and arrow should disappear.
  • If second attempt is successful, Success message appears and the project advances to the next slide.
  • If the second attempt is failed, a Sorry message appears with a Continue button to go to the next slide.

Contrary to the previous article, the slide is created manually (no click boxes are added automatically as in a simulation). For that reason I preferred shape buttons over click boxes. A shape button can be made invisible by setting Opacity and Stroke to zero.

The same idea is at the origin of the workflow: at the bottom of the Timeline, a shape button (invisible to the learner) covering the full slide is added. Have a look at this screenshot of the Timeline of the first slide (Flags):

The Success event of this big shape button will trigger the FailureAct action to show the Failure messages. 

Sample project

Watch a scalable version using this link. The fixed resolution version is below:


The Timeline screenshot of the first slide (Flags) shows the objects on this slide, from bottom to top:

  • The shape button covering the slide SB_Back. This button will trigger an advanced action 'FailureAct' with the Success event!
  • Gr_Flags groups the four flag images
  • Title which function as instruction
  • A multistate shape SS_FailureThe normal state is invisible (same as the shape buttons), it has a state for the two Failure situations. The Hint message is stored in a user variable v_hint. Reason: this allows to time this message shape for the rest of the project. The workflow is needed in a sequence of similar slides, message can be hidden when no longer needed.
  • Shape button SB_Next, also a multistate object. I took out the Rollover and Down states, but it has a custom state 'Second' where the label changed to 'Continue'. 
  • Shape button SB_Flags, multistate object where the custom state 'Indicator' adds the arrow pointing to the correct location. This shape button is 'invisible' and over the Belgian flag on the first slide, over Portugal in the second slide (see screenshot belos). One of the advantages of shape buttons over click buttons: they can have custom states, and you can edit the form, needs not to be a rectangle:
  • The Text caption is added to show the state of the variable v_attempt. It is part of the debugging workflow, and I forgot to hide it before publishing.

Step-by-step

Variables

Two user variables are needed:

  1. v_attempt: has a start value of 0 and will be incremented on each failure (which is a click on the button SB_Backx).
  2. v_hint: will store the text to appear on the Hint message (first failure). Careful: you will need to increase the length of the inserted variable because 50 will not be sufficient in most cases.

FailureAct (Advanced Action)

This action is triggered by the Success event of the shape button SB_Back. The OP preferred to avoid Shared actions. You can assign this action to that shape button on the first slide, but you'll need a duplicate advanced action for each slide, because the color marked items need to be changed:

CleanAct (Advanced Action)

Action triggered by the Success event of the shape button SB_Next. Similar to the previous action, you'll need a duplicate action for each slide. The to be edited items are marked in color.

EnterAct (Shared Action)

It is a very simple shared action, with only one parameter. The text of the Hint is the parameter (literal). The reset of the other items has been done or is automatically happening because the option 'Retain State on Slide Revisit' is unchecked  for the multistate objects which is the default.
The following screenshot shows how the '{P}' button is clicked and opens the Parameters dialog box where you enter the parameter:

Success?

For the Success situation I just kept the default Success message. This is the Actions tab for the shape button SB_Flags and similar:

Two messages are allowed, Success 'caption' (is a shape) is activated, and the Last Attempt action is set to 'No action'.


Overview

The Advanced Interaction panel shows which actions are attached to which events:

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1927397 2023-01-15T14:04:49Z 2023-01-15T14:04:50Z Software Assessment: different failure messages/attempts

Intro

Thanks to a question on the Adobe forum: ‘How to have two different Failure messages for click boxes in a software simulation, assessment mode?’, I created a sample project showing the solution, and will explain the workflow step-by-step. It has become a pretty long article, be prepared.

At this moment multiple Failure messages  (up  to 3) depending on the number of the attempt, are only possible for question slides. A click box nor a button have that functionality. Moreover interactive objects, question slides, Drag&Drop slides have only two events to trigger an action: Success and Last Attempt. This means that you cannot use the first attempt to change a situation at all. Of course you could add events using JavaScript or InfoSemantics CpExtra widget. I accepted the challenge to try to figure this out only with Captivate’s features.

Example project

Watch this project either with the embedded fixed resolution version below, or by clicking this link for a rescalable one (recommended).



Step-by-step workflow

Slide setup

Have a look at the Timeline of the first slide with a scored click box:

From bottom to top you have

  • A shape button, labeled ‘SB_Back2’ (because this was slide 2 in the project). That interactive object covers the complete slide and needs to be at the bottom, behind the original click box. This means that such a workflow is impossible in a fluid box where stacking is prohibited. It may seem better to create a SVG (used as button) which has a ‘hole’ corresponding with the original click box. However that would be a lot of work, since that click box will be in another location on all slides. Only the Success event of this shape button will be used, and you can leave the number of attempts at Infinite or 1, doesn’t matter.
    Check the screenshot of the Properties, Actions tab: the Success message which appears when the Back button is clicked will act as First Failure message. You may call this ‘cheating’.
    This back button is triggering a shared action labeled ‘BackAct’.
  • The shape ‘SS_Hint’ has no role in the workflow, was in this assessment as help.
  • CB_Assess is the original click box inserted in the software sim, assessment mode. The OP provided 2 attempts, but that has to be changed to 1 (see further). I deactivated the Failure message, and kept only the Success message. You see the Properties of this click box to the right. I didn’t use the Failure message, but replaced it by a multistate shape.
    The action On Success is to proceed to the next slide with the next action to be done by the learner. Since there is only one attempt, the Last Attempt action is a Failure action. It is an advanced action ‘FailAct’.

    It is impossible to have states for the default feedback messages of interactive objects. You can see in the Timeline that this multistate shape is labeled SS_Failure and that it is displayed for the rest of the project, always on top. Its visibility is triggered by state changes.

  • The Failure message, which is the second message, is labeled ‘SS_Failure’ and you see the two states in this screenshot. The Normal state is completely transparent and has not text. The state ‘Second’ has the failure message, and the multistate object will be hidden until the ‘second’ Failure attempt happens. 

Actions

FailAct  (Advanced action)

This action is triggered by the Last Attempt event of the Click box. 

The Failure shape is shown, and will have the Second state in place (see below in the shared action ‘BackAct’. Since it is not a default feedback message, it will not appear automatically nor leave the slide paused for 3 seconds as will be the case for the Success message. That is the reason for the Delay command, followed by navigation to the next slide.

You see that this advanced action will be the same for all the click boxes, because of the Timing of the SS_Failure message for the rest of the project.

BackAct (Shared action)

This action is triggered by the Success event of the shape button SB_Back2. 

Because there are so many instances of that shape button, I largely prefer using a shared action over duplicated edited advanced actions. In the next part (other slides) you’ll see how to avoid having to enter the parameters on each slide. Here is the screenshot of that action, with the indication of its parameters:

The state of the Failure message will be changed to show the ‘second’ message when the click box is not correctly clicked. To allow such a failure you need to hide the back shape button so that a click outside of the click box is possible. But since you don’t want the Failure message to appear right away, you need to hide it. As you could see it will be made visible with the Last Attempt advanced action. Sequence of the actions is very important here: you need to change the state before hiding.

ResetAct (Shared action)

This action will be triggered On Enter for each slide with a scored click box. Since the OP provided multiple attempts on quiz level, I needed also to take into account that the slide will be revisited and custom objects have to be reset in their original status. Custom objects are the shape Back button (SB_Backx) and the multistate shape used for the second Failure message (SS_Failure). That explains why I preferred a shared action with these three parameters:

This is the screenshot of the action with parameters filled in for the first slide:

Slides setup (after first slide)

1. Slides with a Click Box

  • SS_Failure: since this shape is timed for the rest of the project, you don’t have to do anything on slides with a click box.
  • SB_Backx: the shape button covering the slide. I recommend to copy/paste SB_Back2 from the slide with the first click box, having the Shared action ‘FailAct’ applied to it. Take the time to rename the new copy which will have a generic name starting with SB_Back. I prefer to just change the number to the slide number. It is very important that you send this new instance to the Back, using either the right-click menu, Arrange or the Align toolbar, Arrange options.

    The attached shared action will be edited automatically to use the correct Back button for the slide.

  • EnterAct: needs to be applied manually to the slide. There is no workaround, you’ll need to choose the correct parameters. Only the first parameter (SB_Backs) is different, both the failure message and its state are always the same.

2. Slides with Text Entry Boxes, FMR or Video Demo slides, Static slides, Results slide

The two failure messages were only needed for the click boxes. You’ll need a simple On Enter action to make sure that the Failure shape has been hidden. With static slides I mean the very short slides which sometimes appear during capture and eventually intermediate explanation slides. You can use the Advanced Interaction panel to help with this setup. Here is an example of this panel for some slides:

Watch the labeling of the Shape back buttons on slides with Click boxes, and the applied actions to the Back button, the Click box and On Enter.

Slide 7 has a Text Entry box and shows the simple State action to hide the Failure message.

This project had 26 interactive objects, Click boxes and Text Entry Boxes. Each of them has a score of 1pt, which leads to the total score showing at the top. It is that score which is stored in the quizzing system variable cpQuizInfoTotalProjectPoints/cpQuizInfoTotalQuizPoints and is used for calculating the displayed fields on the Results slide.

Conclusion

My apologies for this rather long blog post, where I tried to explain the full workflow in detail. A simple question, however with not a real simple answer, agreed? Questions are always welcome. Post them in the comment.

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1925966 2023-01-08T10:32:50Z 2023-01-09T08:06:49Z Menu slide: forced view and different audio on revisit

Intro

Another post meant as answer to a more complicated question in the Adobe forums. You can find the (long) thread under this link. Title 'Play different audio on slide revisit' is not covering the final required situations. I will explain the end situation in short terms.

  • Project has a menu slide with 4 buttons. Each of the buttons jumps to a chapter of the course. There is narration on this slide, which needs CC and that means it has to be slide audio. That slide has staggered items synchronizing with the narration, and also several  effects applied to objects. The learner can click each button multiple times. Buttons are all active.
  • At the end of each chapter the learner returns to the menu slide. On return the playhead should skip immediately towards the end of the slide, when all the objects are in place and narration has finished. Except...
  • When the four buttons have been clicked at least once another audio clip needs to be played. That clip doesn't need CC.

The solution is less easy than I thought, hence this blog post. 

Example project

I created a barebone project for testing, using some slides from the Quick Start Project Safety. Have a look, to understand better what I explained about the request.



The course has 7 slides:

  • Slide 1: Title (poster image is based on this first slide)
  • Slide 2 = menu slide
  • Slides 3-6: one slide for each chapter
  • Slide 7: End slide

Analysis

The menu slide should appear in 3 possible states:

  1. First visit: default state, play head will start from the first frame and pause at the pausing point, narration (slide audio) and effects will be visible.
  2. Later visits, when not all buttons have been clicked at least once: audio shouldn't play and no need to wait for the staggered objects and their effects. The easiest way to realize both is using the shared action explained in this blog post:
    Force first view and/or play audio only on first visit
  3. Visit when all buttons have been clicked at least once: situation like in 2 BUT another audio clip needs to play. At the end of that clip something needs to happen. I choose to jump to the end slide, but this can be replaced easily by another command.

Have a look at the Timeline of the menu slide in the Example project:

You see the staggered objects including an entrance effect. Those are the white numbered shape buttons. The meaning of the top most button (SB_Done) will be explained below but you see that it has audio attached (object audio).

Step-by-step workflow

Variables

Create the user variables shown in this screenshot. The tracking variables (one per chapter) v_1 - v_4 are Booleans, default value =0. The variable v_skip will be populated with the duration of the narration audio clip in seconds. The variable v_audio gets the duration of the final audio clip. As indicated in its description v_buttons is meant for the sum of the tracking variables, which will be calculated whenever the menu slide is revisited.

Button SB_Done

Since it proved to be impossible to use Play Audio for the final audio clip in the project, I opted to use Object Audio. That type of audio plays when the object appears, or is made visible.  The shape button which I use is invisible because both Opacity (fill) and Stroke are set to 0. The eye button in its Properties is marked 'Invisible in Output'. The audio clip is added in the Options tab. The action nor the attempts matter, since the Jump to the last slide will not be done by clicking this invisible button. Have a look at the Style and Options tab in these screenshots:

ReturnAct (shared action)

This action is triggered by the success event of the Return buttons at the end of each chapter, it is pretty simple to understand from the Preview screenshot:

EnterAct (advanced action)

This action is triggered by the On Enter event of the menu slide, takes care of the three possible situations (see Analysis above). Both conditional decisions are mutually exclusive because they are based on the value of the sum variable v_Buttons.

I could have used JS to calculate the value of v_buttons to avoid the sequence of the 3 Expression commands.

If you want to reuse this action for other projects, I would recommend to convert it in a shared action. Be careful with the two literals (duration of both audio clips). They can be tricky, and it may be better to replace them by variables getting their value in the Variables dialog box.

Overview: Advanced Interaction

This screenshot shows all events and actions in the example project.


]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1915491 2022-12-12T10:16:52Z 2022-12-12T10:16:53Z Drag&Drop: Using Types and InBuilt States (Captivate tutorial)

Intro

This course offers a detailed (video) workflow how to create and use for Drag&Drop objects.

The video is also available as standalone on YouTube, can be skipped in the interactive Captivate tutorial. The tutorial has also a Table of Content in Overlay, to allow complete free navigation.

The mastered skills are used for two games, which also take advantage of the available InBuilt states for Drag&Drop objects. More detailed workflow for the games will appear as blog posts. I used Ready-to-go slides from the Quick Start Project 'Business', non-responsive version.  Some licensed images from Adobe Stock were used as well. 

You can watch the tutorial as scalable HTML output from this link (recommended- or watch the embedded fixed resolution output below:


]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1912986 2022-12-06T11:03:51Z 2022-12-06T11:03:51Z Quiz Basics 5: Master slides

Intro

This is the fifth blog post about default Quizzing slides. Five of the compulsory master slides in any theme are linked with Quizzing. For this article the type of project is important: non-responsive project, responsive project with Fluid Boxes, Responsive project with Breakpoints. Same master slides are used for Pretest and Knowledge Check slides.

With CP2019 Overlay Knowledge Check slides are available in an Interactive Video. Those slides also use the master slides in the chosen theme. The Quiz slides in a VR project however cannot be formatted using master slides at this moment. You have to accept the default styling. It is possible to edit the text containers (mostly shapes) but that has to be done on each slide individually. I sincerely hope that formatting functionality will be extended in next versions.

As for the object styles, for master slides editing depends on the type of project: non-responsive (can be published as scalable HTML output), responsive with Fluid boxes, responsive with Breakpoints. Between those types master slides are not interchangeable.

Non-responsive project

In the previous posts Terminology and Submit Process I explained the meaning of Embedded Objects on the quizzing master slides as being objects without an individual Timeline. You find them on the four master slides for Quizzes. They appear as placeholder on inserted Quiz slides. Each of them is using a dedicated Object style from the Quizzing Category (see Object Style Manager). As I wrote in Preferences it is a bit confusing that for the included Captivate themes, the default feedback messages use shapes as container, not captions which means you cannot change them directly for the Default Labels dialog box where only caption styles are available.

The background of the quizzing master slides can be set up like any other master slide. Since they have a lot of placeholder objects (mostly shapes) which can be styled individually you will mostly see either:

  • Master Slide Background: this means that the background of the Main Master slide is inherited. Often that will be a solid color, a gradient or eventually a not invasive texture image.
  • Custom: if the Main Master slide background is not suited, you need to use this option where you’ll find again a solid color, a gradient or a texture.

However feel free to use an image as background. Or you can override the background on individual quiz slides by inserting an image. Since the embedded objects are always on top of the stack, that image will automatically  be below the quiz objects.

Tips

  1. Use Guides (see Guides Rule) if you want to edit the layout of the placeholders, if you need a Matching, Hotspot and/or Likert question for your course to have a consistent design with the more common MCQ,T/F… questions sharing the same master slide.
  2. If you have a dark background, you can have issues with Matching slides: the link lines between the two columns are black, not possible to edit that color. Moreover since you probably would want a light color for text, the dropdown list will be unreadable. Solution is to create a duplicate master slide, where you put a light shape under Answer Area, and change font color to a dark color (new object style).
  3. If you expect to have multiline answers, the Answer area can be too small. It is not possible to edit the individual answer shapes n the master slides (which is a pity), that has to be done on the quiz slides. Increasing the height of the Answer area will make the workflow easier. Decrease the height of the other placeholders. That is possible for the Question title, the Feedback messages. Be careful with the Question placeholder: questions can also need more than one line. Eventually you can move the Progress indicator next to the Question title, to free up more space for the Answer Area.
  4. If you want some quiz slides including an image, create another duplicate of the master slide. Decrease the width of the Answer area and insert an image placeholder as shown in this screenshot:
  5. In any custom theme I create, I will always edit the results master slide: drag the Retake button over the Review button. It will avoid that the learner is confused when quiz is set up with multiple attempts, and Review is enabled. Design of Captivate’s quiz means that all attempts are considered to be exhausted  if the learner clicks the Review button. Moving that button will not cause any problems. If there is only one attempt, the Retake button is not appearing, and the Review button is visible immediately. If there is no Review functionality, no problem neither.
    If you want to override the design, and allow Review before a Retake, but without showing the correct answers, you could use the workflow described in Review before Retake.

Responsive project – Fluid Boxes

An in-depth exploration of the quizzing master slides in the Fluid Boxes themes is described in this article.

Every embedded object is in its (normal) fluid box, with the exception of the feedback messages sharing a static fluid box.  That is necessary to save space, they are stacked which is not possible in a normal fluid box.

Some of the tips mentioned for non-responsive projects are also valid for this type of project:

  1. Use of Guides is strongly recommended. For responsive projects rulers are in %. I know that CP2019 allows to use Position Properties panel for fluid boxes, but I find setting up a grid with Guides much quicker.
  2. For Matching questions using a dark background: fill the fluid box of the Answer area with a lighter (semi-transparent) color, and change the font color to avoid the mentioned problems. Do this on a duplicate master slide (MCA, T/F…).
  3. In the article mentioned above, I described the workflow for long answers in the Answer area. Instead of resizing the placeholders you need to resize the fluid boxes.
  4. For the duplicate master slide allowing adding an image, you’ll have create two fluid boxes in the present fluid box for the Answer area. That means taking out first the content by unlocking from Fluid box, dragging it into the scratch area. Create two horizontal child fluid boxes. Relock the answer area to FB and redrag it into one of the new child fluid boxes. You can insert a placeholder in the second child fluid box.
  5. The easy workflow described for a non-responsive project is not possible. The buttons are in a normal fluid box, stacking is not possible. Here a real tweak is needed. Tweaks and special situations will be explained in later blog posts.

Responsive project with Breakpoints

I have to confess that the toughest part of this type of projects is getting the quiz slides behave properly on all mobile devices. Although in some cases I prefer this type of responsive project for content slides because of the real freedom of design allowing to reduce layouts for small screens to the bare minimum by replacing items, quiz slides are a real pain.

It is very important to set up the object styles properly, especially those where fonts are included. Full explanation is to be found in ‘Object styles for Responsive Projects’.

The problem has become bigger, because Captivate no longer has included themes for Breakpoints as was the case until CP9. I still continue to use those themes, especially for the Quizzing master slides. At least they provide a start for setting up the responsiveness. For the rest a lot of testing (trial and error) is needed.

Most of the tips mentioned for non-responsive projects are fully valid, taken into account that you need to use the Position Properties to make all items responsive. No limitations however as for Fluid boxes: stacking is allowed, grouping is allowed etc… You can drag the Review button under the Retake button.

Next?

This fifth post was supposed to be the last one in the sequence about default quiz slides. However I will add another one explaining partial scores and penalties, after seeing several questions in the social media. You should now have a pretty complete overview now. Next articles will be about tweaking the default design (submit process, use of feedback images, use of audio…) and special situations like Branch aware, Pretest setup, Remediation. custom quiz slides, …

I also strongly recommend to get acquainted with the category 'Quizzing' of the system variables.

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1911086 2022-12-03T14:35:12Z 2022-12-03T14:35:46Z Quiz Basics 4: Preferences

Intro

In previous articles I talked about these topics:

Differences between Knowledge Check slides and Quiz slides are fully explored in this article.

This part has its focus on the Quiz Preferences. some of them have to be set up preferably before inserting any quiz slide, or creating a question pool. The same is the case for editing the design of the quizzing master slides which will be the topic of the 5th post in the series. Up till now the described content was valid for  non-responsive projects, responsive projects with Fluid Boxes and responsive projects with Breakpoints. That will also be the case for the Preferences. Sorry for this very lengthy article, sometimes bit boring but I didn't find an in-depth explanation anywhere else.

Preferences to set up BEFORE inserting quiz slides

It is also important to set up the design of quiz slides in the master slides before inserting questions, but in case you want to edit later on, it is possible. However this part of the Preferences needs to be done imperatively before inserting quiz slides. It concerns the default messages to appear, the labels on buttons etc. Too bad, not everything can be found in the same location in Preferences. And the amount of items to be edited can be different depending on the type of ‘quiz’ slides. Will try to structure everything as completely as possible for each type.

Default labels

This is the most intuitive location in Quiz Preferences.  The number of fields showing up can be different. This is a screenshot of the dialog box for normal quiz slides:

The first part of the dialog box shows the text for all the messages. I changed the text for the Correct and Incorrect Message. That change will NOT show up in the Master slides! That is the reason I insist on making those changes before inserting quiz slides. Resetting the Master slide cannot be used on existing quiz slides to revert to the changed labels.  Since I have to create courses i multiple languages, I have exported Preferences with those edited labels for each language.

Very confusing IMO is the indication of the Style used for the messages. Look at the Correct message, which tells that the ‘Default Success Caption Style would be used for that message. That is NOT true in the default setup of Captivate, the default style used will be the Default Success Shape Style.  Look at the Properties panel, I had the Success message selected on this slide. Reason is that in Preferences, Defaults normally the option to use Captions instead of Shapes for SFH is unchecked. However, this also means that you cannot switch to another shape style in the dialog box shown above. You have to switch to the Object Style Manager if you don’t like the used style for this message. You can find more details about the OSM in previous blog posts.

Second part of the dialog box shows the labels on the buttons of the quiz slides. You may already know that only the old type of buttons can be used (Text, Image or Transparent), not Shape buttons. For those buttons the label has to be entered in the Properties panel, not on the stage by double-clicking the button as is the case for shape buttons. Change the labels here in the Defaults to avoid having to do it on each quizzing slide. Change will not be transferred to the quizzing master slide neither.  Alternative could be to change labels on all the quizzing master slides.  Contrary to the messages, you can use the dropdown lists for the button styles to change the style if wanted.

The progress indicator is also in the dialog box (was on my pleading for translation reasons). It is a weird object, neither caption nor shape, just text. You can edit the style in the Object Style manager however, under Quizzing Objects.

Defaults under Settings

Quiz Results messages

Under Quiz Preferences, Settings more default messages can be found. Let us start with the Quiz Result messages, which will appear in the so-called ‘Review Area’ on the score slide:

In that dialog box you can edit the Pass and Failure messages (which do not appear on the Results master slide!) and eventually indicate which fields you want to show (but that can be done later). The legacy indicator for an email button is not valid anymore since many versions.

Question  Review messages

Under settings you also find the button for the Quiz Review messages which only is activated when Review is allowed.  Except for the Incomplete message, most of the messages will only be used for disabled learners. Since quite a lot of versions no text message appears for other learners, only checkmarks.

The Incomplete message will appear in the Review area (same name as on the score slide)? If you don’t need the Accessibility messages and do force the user to answer each question (see later), it is perfectly possible to make that review area placeholder much smaller on the quizzing master slides. However do not do that for the Review area on  the results master slide, it is needed for the Pass/Fail messages mentioned before.


Submit All

When you activate Submit All functionality, this button gets activated. The label on the Submit All button which replaces the normal Submit button, has been set already under Defaults in Quiz Preferences? But the popup dialog box that appears when that button is clicked has several defaults as well, which appear in this dialog box (I jsut corected Ok to OK).

You’ll see that contrary to the other Defaults, there is no way to set styles here at all . This default dialog popup box will take on the style of the theme. If you dont like that style, go into the Object Style Manager, and find the style ‘Runtime Dialog’. It is listed independently from Standard Objects and Quizzing objects, since it can occur for both normal slides and quizzing slides.

All dialog boxes shown in this part are valid for quiz slides, pool questions and KC slides. They are the same for responsive and non-responsive projects. Screenshots were taken in a responsive project with fluid boxes.

More Preferences

The other preferences can be set up whenever you want although I would personally prefer to activate the Submit All if you want that feature, since it has consequences for the default settings for that option. Similar for the Review functionality if you need the Incomplete message.

Reporting

I will not go into details for all the settings here because it would be almost impossible since a lot has to be tested out with the LMS you are using in your courses. If that LMS accepts only packaging using Reporting (SCO’s) you need to activate Reporting. Only a few LMS’s have a dedicated setting in the LMS dropdown list. Choose the protocol to be used, in many cases that will be SCORM 1.2, AICC is really outdated, and not every LMS supports the more powerful SCORM 2004.

Just a few tips about the marked parts in this screenshot:

Template:  is the SCORM template to be used. With the default template the reporting data are sent after each slide, you can choose to send it only at the end if the course proves to be very slow and many users are taking it on the same network. However that means that when the connection is interrupted, the learner will have to retake the quiz slides.

Slide Views: be careful with using this instead or together with Quiz requirement. I often see problems when clients use a requirement of 100% of slide views.  If you need to use that requirement, set the percentage bit lower at least. Much better is to use at least one scored object at the end slide, that needs to be clicked by the learner and which you can use for a score requirement.

Data to Report: in general most LMS’s prefer percentages, not points. Especially for SCORM 1.2 if the total score is higher than 100points.

Never Send Resume Data: under the Advanced button.  That (negative) option is unchecked by default, which means that bookmarking is turned on. On a second session learner can return to the slide where he left in a previous session. If you check that option, learner will always be returned to the first slide. Setting up the alternative, bookmarking by the TOC (Self-paced learning) makes no sense when using  a LMS.

Other Settings

In a previous article about Embedded objects some of the Settings about activating/deactivating buttons was already indicated Above I already mentioned several options under Quiz Preferences, Settings. In this new screenshot I marked some other choices:µ

Required: in almost all cases it is recommended to keep the default choice which is Optional. If you prefer one of the other choices it can lead to problems, where learners get stuck. There are better ways to achieve ‘Answer all’ or ‘Learner must take the quiz’. Set up the navigation in such a way that the learner cannot skip the quiz (do not use totally free navigation with the scrubbing bar in the playbar, or with the TOC). Once the learner is on the first question, with the default button setup he can only continue when he has answered the question. If you use remediation (go to content slide) you cannot use the more strict options neither.

Interaction ID Prefix: necessary when using same question pool in more courses to be reported to the same LMS.

Review mode navigation buttons: has to be activated if you allow Review (bit lower). If you forget those buttons, learner will be stuck on the first question slide during Review, unless you provide another navigation possibility.

Branch aware: may I point to a recent article where I explore in-depth this functionality which makes the quizzing system variables dynamic?

Show Progress: either Relative (Question x of y), or Absolute (Question x) allows to turn on/off the Progress indicator.

Allow Backward movement: it may seem strange that I allow this, whereas the Back button is unchecked on quiz slides (and playbar is hidden? Reason: if you want remediation, where the learner is sent to a content slide after failing a question, it should be possible to do so if that content slide is before the quiz.

Hide Playbar in Quiz: unless you have “Submit all” activated, you should hide the playbar at least on quizzes (if you have one in the course). Reason: it makes no sense because when going back to a previous quiz slide or content slide by playbar the learner will not be able to change the answer at all which makes it a frustrating experience.

Pass or Fail

Herre a screenshot of that easy dialog box (easy compared with the more complicated previous ones):

The passing score (cpQuizInfoQuizPassPercent or cpQuizInfoQuizPassPoints) can be set. In some cases it will prove necessary to  check if same is used in the Manifest file. Again: prefer percentage to score.

If you have more than one attempt on Quiz level, you should activate the Retake button. It will appear on the socre slide as mentioned in the previous Quizzing post. In that post I also explained that the actions on Passing and Failing (after last attempt) only occur after reaching the last frame of the score slide.

More?

This was a pretty boring article, hope you found some interesting documentation.

I didn’t yet talk about Pretest quizzes here, nor about the quiz slides in a VR project or 360 slides, nor about the KC slides in an interactive video. Articles are already pretty long.  Will be in a later post.

Quizzing master slides have been mentioned several times. There is already one article about their setup for Fluid Boxes.

And some of you will be looking forward to possible ‘tweaks’? I have been creating so many cheating workflows, expect more in the future.

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1908836 2022-11-26T15:32:01Z 2022-11-26T15:32:01Z Quiz Basics 3: Attempts and Scores

Intro

In the first two articles of this basic course about Quizzing, I explained the Terminology, and the Submit Process.

Those posts applied to all types of questions: scored, random, Knowledge Check, pretest slides. This post will be talking exclusively about scored (graded) quiz slides and random quiz slides which are graded. For those slides the results are stored in the quizzing system variables, and you can have the score slide in your course. You will get some tips about the default score slide at the end. Scoring doesn’t exist for Knowledge check slides, you can only choose attempts on question level, not on quiz level.  Pretest questions have scoring as well, but the values are stored in different system variables, and are only meant to navigate the learner to another slide,  based on the pretest result.

This article will explore the scoring and attempts on two available levels:

  • on question level
  • on quiz level

Attempts/Scores on Question level

Setup for both is done in the Quiz Properties panel. That panel appears automatically in the newbie UI when you insert a quiz slide (or a random slide) in the right docking station. For quizzes however I strongly recommend to switch to the Expert UI (check the option ‘Enable custom Workspaces….’ under Preferences, General Settings). Set up a workspace where both the Quiz Properties and the Properties panel are visible. Reason is that you need the Properties panel for partial scored MCQ slides with multiple correct answers.

Attempts

In the default setup the number of attempts for graded questions is set to 1. The feedback messages for Correct and Incomplete are checked and 1 Failure message. The actions for Success and Last Attempt are both set to Continue. You could check the option Infinite Attempts, but I strongly doubt you’ll want to have the learner in such an infinite loop.  A limited number of attempts however can be a good choice. If you allow more than one attempt, do not forget to check the ‘Retry message’ because that is not done automatically. Have a look at this screenshot for True/False Question, to the arts marked with a blue rectangle. I set the number of attempts to , and checked Retry. The Failure message was left at its default 1 message.

I kept the default Continue actions as well, but moved the pausing point closer to the end of the question slide (see previous article) to minimize the waiting time after the second step of the Submit process.

Score/penalty for 1 correct answer

Default score for all questions is set to 10 points. Since some LMS’s don’t like to see total scores greater than 100 points, and all questions don’t merit the same score you will certainly want to change those scores. BTW: later on I will offer an exploring post about the wonderful Advanced Interaction panel (F9), unknown to many because it never appears automatically in the newbie UI. It is not only about ‘advanced’ actions at all.

Changing the score happens in the Quiz Properties panel for all question types with a black/white score. B/W score means that you only get the score if everything is correct, score will be zero in all other cases. All question types, except the MCQ with multiple answers are validated with this rule, even Matching, Hotspot and Sequence. In the screenshot above (T/F), you see the score reduced to 4 points.

I also added a penalty: this score will be subtracted from the total score if the answer was wrong after the last attempt. You don’t have to enter a negative number here. Beware: in SCORM 1.2 reporting a negative result at the end will be reset to zero.

MCQ with multiple correct answers and partial scoring

Have a look at this screenshot, set up for such a question slide, with 5 answers. Two out of them are correct, each has a positive score of 5 points. The 3 wrong answers get a penalty of 2 points each. Neither the score nor the penalty can be set up in the Quiz Properties panel, they are dimmed. You have to select each individual answer, and setup score in the Properties panel of that answer (visible in the screenshot as floating panel next to the Quiz Properties):

The 4th answer, wrong answer, is selected in this screenshot. There is no Penalty field in the Properties panel, tab ‘Options’, only ‘points’. Since this needs to be a penalty I entered -2points. Same for the other wrong answers. The correct answers got positive points (5 for each). The dimmed numbers for Score and Penalty on the Quiz Properties panel are calculated by Captivate to 10 points and 6 points. I had to check the ‘Partial correct’ message, was not done automatically although Multiple answers was chosen.

In this example I changed the actions (Success/Last Attempt) to ‘Go to Next Slide’, didn’t move the pausing point of the quiz slide. This is the second possibility to narrow the waiting time after Submitting the result.

You see that 3 attempts are possible for this question (green markings).  But the Retry message is unavailable, dimmed. Reason is that I have chosen to show 3 Failure messages, different one after each attempt. You need to include the warning about clicking the slide (or pressing Y) for the last Failure message which appears after the last attempt.

Quizzing System Variables

These quizzing system variables (see also: Using Quizzing System Variables) are linked to individual question slides:

  • cpQuizInfoAnswerChoice: after submitting the answer (see this post for a typical use case)
  • cpQuizInfoLastSlidePointScored: after submitting the answer
  • cpQuizInfoMaxAttemptsOnCurrentQuestion: while on that slide. Beware: there is no exposed system variable telling which attempt the learner is taking at this moment on question level, only the maximum allowed attempts can be retrieved.
  • cpQuizInfoNegativePointsOnCurrentQuestionSlide: maximum penalty for this question slide
  • cpQuizInfoPointsPerQuestionSlide: maximum score for this question slide.
  • cpQuizInfoQuestionPartialScoringOn: Boolean
  • cpQuizInfoQuestionSlideTiming: if you use a time limit on the quiz slide
  • cpQuizInfoQuestionSlideType

Attempts/Score on Quiz Level

The number of allowed attempts on (total) quiz level is set up in the Quiz Preferences, Pass or Fail.  Default setup is one attempt. If you allow multiple attempts, don’t forget to check the option to ‘Show Retake Button’. When clicking that button, all questions will be reset and the quiz system variables will be cleared.

If you also allow Review (Quiz Preferences, Settings), you have to be aware of the fact that all attempts on Quiz level will be considered to be exhausted if the learner clicks the Review button (also on the score slide). To prevent confusion use this easy trick: drag the Retake button on top of the Review button on the results master slide (or the score slide). Once the attempts are exhausted the Retake button will disappear and Review button becomes visible. Problem is that this is perfectly possible for a non-responsive (blank) project or a responsive project with Breakpoints. But a normal fluid box doesn’t allow stacking of buttons, unless you define the fluid box as being static. I will post a workaround in my “tweaking posts”, later in the Quiz sequence of posts.

The Total Score on quiz level will be calculated from all the scored objects in the course (see Advanced Interaction panel) and stored in a quizzing system variable cpQuizInfoTotalQuizPoints. Except for the feature ‘Branch aware’ that will be a fixed number when starting the course.  Other quizzing variables  (see post) linked to the quiz level are:

  • cpInQuizScope
  • cpInReviewMode
  • cpInfoPercentage:  appears on the results (score) slide as ‘Accuracy’ ‘percent’
  • cpInfoAttempts: appears on the results slide as ‘Attempts’ ‘total-attempts’
  • cpQuizInfoPassFail: Boolean
  • cpQuizInfoPointsscored: appears on the results slide as ‘You scored’  ‘score’
  • cpQuizInfoQuizPassPercent
  • cpQuizInfoQuizPassPoints
  • cpQuizInfoTotalCorrectAnswers:  appears on the results slide as ‘Correct Questions’ ‘correct-questions’; beware: partially correct questions are seen as correct
  • cpQuizInfoTotalProjectPoints: appears on the results slide as ‘Maximum Score’ ‘max-score’
  • cpQuizInfoTotalQuestionsPerProject: appears on the results slide as ‘Total questions’ ‘total-questions’
  • cpQuizInfoTotalUnansweredQuestions

The Continue button on the Score slide has about the same functionality and importance as the Submit button on quiz slides. That actions specified under Quiz Preferences,  Pass or Fail (after Last attempt on Quiz level) will be done after clicking that button. The pausing point on the score slide is linked with that button. You can move that pausing point the same way as for the quiz slides, closer to the end of the score slide. It is recommended not to have the score slide as last slide in a course, but have at least one more slide. That way you’ll be sure that the results will be transferred to the LMS.

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1905639 2022-11-19T14:41:19Z 2022-11-19T14:41:20Z Quiz Basics 2: Submit Process

Embedded objects

In a first article about Quizzes I introduced some terminology and one of those terms is ‘Embedded Objects’: those objects on the quizzing slides and master slides which have no individual timeline, but have functionality built in. Some of those objects can be turned off, using either Quiz Preferences (for global settings) or Quiz Properties for individual slides. Here is an overview of those objects (for quiz master slide MCQ,T/F….), from top to bottom, using the numbering in this screenshot:

  1. Question title: cannot be deactivated. You can edit that title on the quiz slides, do not delete it.
  2. Question: same, change the style if wanted but never delete.
  3. Answer area: compulsory as well. If you expect long and/or many answers, I recommend to make this area as big as possible on the master slide. If you want custom objects on the quiz slide (like an image), free some space by editing the size of this area. For a Fluid boxes quiz slide, you’ll need to add a fluid box for that purpose. More information in Fluidize your quizzes.
    This area is the container for:
  4. Answers: it is not possible to resize the individual answer size on the master slide, only on the quiz slides. Of course you need this object.
  5. Feedback messages: are stacked in the same location (also in fluid boxes, by using a static fluid box). In the screenshot the Review area is also stacked in the same location. It has almost no meaning anymore since it is only used for skipped questions.
    Quiz Preferences offers no way to activate/deactivate the messages, that has to be done with Quiz Properties for the quiz slides.

    1. Correct message: is checked by default for a normal quiz slide
    2. Incomplete message: is checked by default for a normal quiz slide
    3. Failure message: normally set to 1, with the dropdown list you can choose ‘None’. If you have more than 1 attempt on quiz level, you can add up to  failure messages with that same list.
    4. Retry message: becomes available when the number of attempts is greater than  However if you have more than 1 Failure message it will be dimmed.
    5. Partially correct message will appear instead of the Correct message when Partial scores is turned on and the question is not answered fully correct.
  6. Review Mode Navigation Buttons: if you allow Review (Quiz Preferences), it is wise to activate these buttons in the Quiz Preferences. They will only appear during Review, and make navigation possible since quiz slides normally do not have a Next button (and I also recommend no Back button) except when “Submit All” is turned on (will post a future article about Quiz Preferences). Here is a partial view of Settings in Quiz Preferences:

7. Clear button:  can be turned on/off both globally (see the screenshot above from Quiz Preferences, Settings). In the default setting it is turned off. It is possible also to turn on/off on individual quiz slides using th Quiz Properties (see screenshot top right).

8. Back button:  is a bit confusing. You can turn off ‘Allow Backward movement’ in the Quiz Preferences, which will automatically result in having the Back button disappear on quiz slides. However, when using remediation, where you want to send the learner back to a content slide, you have to turn this option on. Having a Back button on a questions slide is not a good idea, since answers are frozen once the question slide is left. Learners cannot re-enter an answer. One exception: when Submit All is turned on (see future article). Even when ‘Allow Backward movement’ is turned on, you can still check off theBack button on all quiz slides with Quiz Preferences, Settings. You can also do it individually using the Quiz Properties for the question slide.

9. Skip button; is turned off by default, can be turned on both globally and for individual quiz slides.

10. SUBMIT button: is the most important object on this slide. There is no way to turn it off, not globally nor individually. It is that button which is responsible fir the two-step Submit process. Remember: quiz slides have a pausing point by default which cannot be turned off (you can move it only with the mouse).

Two-step Submit Process

When the learner clicks the Submit button:

Step 1

Feedback message appears, playhead is not released but remains paused at the pausing point. If you have added slide audio to the question slide and it is not finished, it will continue playing. The pausing point will not stop the audio. Four possible situation in this first step:

  1. There is no answer or answer is not complete: Incomplete message appears.
  2. The answers were totally or partially correct. The feedback message Correct (or Partially correct) appears.
  3. The answers were not correct (partially correct is considered as correct).
    1. If there is only one Failure message and one attempt Failure message appears
    2. If there are multiple attempts which are not exhausted,  and one failure message: Retry message appears
    3. If there are multiple attempts, not exhausted, and multiple failure message: the appropriate failure message appears. Make sure to indicate that they can retry except for the last failure message.

All messages, except the Retry message and the intermediate failure messages (not the last one) should indicate how to trigger the second step. For all types of quiz slides, except the overlay quiz slides in a VR project, that will be ‘click the slide or press Y’.

The goal of this first step is to offer the learner as much time as necessary to read the feedback messages. Some developers don’t like the present workflow, will post some possible tweaks in a future post. Personally I hope that the new workflow for the overlay quiz slides in VR projects, which is more user friendly, will be extended to the other types of quiz slides.

When the user clicks the slide or presses Y:

Step 2

With this step the playhead will be released, same way as what happens with an action when the option ‘Continue Playing the Project’ is activated. It can only happen in two cases: for a correct answer, or for a Last attempt answer.

  • Correct answer: the action ‘On Success’ specified in the Quiz Properties panel will be done. Beware: default action is set to ‘Continue’.  It means that the released playhead has to travel through the inactive part of the slide (the part after the pausing point).  It it is only the default 1.5secs, that may be OK. However if you added slide audio, and forgot to move the pausing point closer to the end of the slide, that may be a long waiting time for the learner. Alternative could be to replace the action ‘Continue’ by ‘Go to Next slide’. In most cases that works fine, some users could have issues in case of low bandwidth and slow reactions of the LMS due to hardware problems. I had that problem in college when too many students were taking the same assessment, due to outdated switches.
  • Wrong, last attempt: the action ‘Last Attempt’ will be done. Same comments as for the Correct answer concerning the pausing point and audio. Look at the screenshot below: due to the audio clip, if you leave the action to the default command ‘Continue’, the learner will have to wait 4 seconds before getting to the next slide. Better drag the pausing point to almost the end, at 4 seconds. You cannot use the Timing properties panel to do so.

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1903426 2022-11-14T19:40:59Z 2023-01-20T22:57:53Z Quiz basics 1: Terminology

Why?

Since 2008 I have been blogging regularly about Captivate. The most visited post is a rather old one date October 2011. It is labeled  ‘Question Question Slides‘ and believe me, still has daily views.  It is the reason why  I consider Quizzes as one of the three main topics for any Newbie in ‘Three Skills to Acquire‘.  Since 2011 quite a lot has changed in Captivate, although the basic design of quizzes is still the same.  Many peers have asked me in the past to publish a book about Quizzes  (could easily fill a book if it included custom questions). From what I feel in the community, a book is not at all the appropriate medium anymore. However I want to publish a sequence of articles about Quizzes, as I did for the Timeline (another stumbling block), with up-to-date information. It is important to understand the terminology, which is a problem when trying to answer questions everywhere: there is no ‘official’ glossary for Captivate and lot of terms are used in a haphazard way. To avoid any misunderstanding in future posts about Quizzes, I want to start with explanation of the different terms concerning quizzes. Some are ‘official’ also to be found in the Help documentation, some are terms I am using as well.

Drag&Drop will not be included in this sequence of articles, it is not following all the rules of the normal question types

Quiz Menu

Although you can insert Question slides and Knowledge Check Slides from the big button Slides, the place to be is the Quiz menu:

The red box shows the 4 possible choices:

Question slide

Is based on a dedicated Quizzing Master slide, depending on the type: True/False, Multiple Choice, Fill-in-the-Blank, Short Answer and Sequence have the same master slide, Matching, Hotspot and Likert have each an individual master slide. Beware: Likert type cannot be used in a responsive project, whether Fluid Boxes or Breakpoint workflow is used.

An inserted Question slide will have these settings by default (except Likert which is set to Survey):

  • Graded
  • 10p score, no penalty
  • 1 attempt
  • actions Success/Last Attempt are set to Continue
  • pausing point at 1.5 secs
  • 1 Failure message
  • Reporting turned on
  • Included in Quiz Total

Most settings can be changed. Only one type has the possibility for partial scoring: MCQ with multiple correct answers. MCQ with one correct answer has the functionality of Advanced Answers (message/action). If number of attempts is higher than 1, you can have up to 3 Failure messages.

Question slides have a dedicated  category of system variables, read-only. More information in this post

You can use the On Enter event of a question slide to trigger a custom action, but not the On Exit event. Question slides, like interactive objects have a Success and a Last Attempt event which can be used for actions.

Random Question Slide

Is a placeholder slide, which will be replaced by a random question from a question pool. Pool questions are based on the same quizzing master slides as normal question slides. On Enter event can be used on slides in the pool, not on the placeholder slide. The same quizzing system variables are used for random question slides as for the normal question slides.

You find the option for Random slides also in the dialog box ‘Insert Question’ which you open with Quiz, Question slide.

More details about this type in Random Questions, Do’s and Don’ts

Pretest Question Slide

Slides are based on the same master slides as the normal question slides. They have a special bunch of system variables, will not be included in the variables used for question and random slides. The Pretest slides have only one goal: to have navigation after the pretest based on the results. For that reason you set up a Pretest action. These special slides have limitations:

  • They need to appear in sequence at the start of the course.
  • All free navigation will be disabled: both by playbar and by Table of Contents (reason is that learner cannot go back to the Pretest slides).

Knowledge Check Slide

This new type was introduced with Captivate 9.  Likert questions nor random questions can be used. They are not scored, will not be present in the quizzing system variables nor in Review/Retake. They can be recognized by a special icon in the Filmstrip. This is the default setup:

  • Not graded
  • No score, no penalty, partial scoring in MCQ impossible
  • Infinite attempts
  • action Success is set to Continue
  • pausing point at 1.5 secs
  • No Failure message
  • No Reporting

Some featured can be changed: you can limit the attempts and will then get a Last Attempt action. You can turn on Failure message(s).

A complete comparison with normal quiz slides can be found in Tips for Knowledge Slides

TIPS:

  1. It is possible to copy/paste normal question slides in a question pool  to reuse them as random slides.
  2. It is possible to copy/paste a question slide from a pool as a normal question slide in a project.
  3. It is impossible to convert a normal quiz slide to a Knowledge Check slide nor to a Pretest slide.
  4. It is impossible to convert a Knowledge Check slide to a normal quiz slide nor to a Pretest slide.
  5. It is not possible to convert a Pretest slide to a normal question slide, nor to a KC or random slide.

PS: KC slides can also be used as Overlay slides in an Interactive video. You’ll find more details in Tips for Interactive Video.

Question slides can be used in 360 slides and VR projects. Styling of those slides is limited at this moment, cannot be based on a custom theme.

Import GIFT file

Instead of adding the question/answers in the individual slides, Captivate allows two alternatives, one of them being GIFT import. Moodle developed this ‘language’, you can find the full documentation here. Use a text editor which allows to publish to non-formatted txt files. This file can be used to insert all types of questions in Captivate with the exception of Likert, Hotspot and Sequence types. There are also workflows which start from an Excel file.

Lot of features are supported: for MCQ with multiple correct answers you can set up partial scoring, you can add feedback messages etc.

GIFT import is possible for normal question slides, for slides in a question pool. It is NOT possible for Pretest slides, nor for Knowledge Check Slides.

Especially when dealing with big amounts of question slides, and/or many pools I like to keep the questions ready in a GIFT file as backup and for eventual editing

Import CSV file

New import workflow appeared with CP2019: use of an Excel template which will create a CSV file that can be imported. You’ll need two files which are stored in the GalleryQuiz under the installation folder of Captivate. I published a small article about this workflow. Using the macros in CSVQuestionsCreationMacro file is pretty straightforward and documented in this tutorial by Dr. Pooja Jaisingh.  Same question slides are supported as for GIFT import (T/F, MCQ, Matching, FIB and Short Answer). There are some limitations, reason why I still stick to the GIFT alternative:

  • You cannot indicate partial scoring for MCQ with multiple correct answers
  • CSV file not really suited as backup, since you cannot edit a question once it has been added to the CSV sheet
  • Got some errors when trying CSV editing with importing to an Excel file, and exporting to CSV. File was not accepted by Captivate.

Quizzing Master Slides

All types of question slides described above are using the Quizzing Master slides. Each theme in Captivate needs at least 6 master slides, whether it is a blank (non-responsive) project, a Fluid Boxes (responsive) or a Breakpoint Views (responsive) project. Blank master slide is always required (for PPT import an software simulations), 4 question master slides and one score master slide. The Blank theme used to show this minimum set, but for some reason in CP2019 a Title master slide was added (?) which I deleted in this screenshot.

I will focus on editing those quizzing master slides in a later article. In this introduction I just want to point out some very special aspects of those slides.

Timelines

The timeline of the quizzing master slides, and the result master slide is very simple: you see only the slide timeline. There are no placeholders, no object timelines like you normally find  on content master slides. However when you look at the content of those master slides, you see a lot of objects!

You don’t see any pausing point on the master slides, not for the questions, nor for the score master. However when you insert a question slide (any type) it gets automatically a pausing point at 1.5secs. Same for the Score slide.

When you select an object on the master slide (button, a feedback, Question, Answer area) they still don’t show a timeline. Their properties will appear. I will point to the objects in a question (master) slide or a score (master) slide as:

Embedded Objects

My definition: objects that do not have an individual timeline, not on the master slide nor on the slide itself. Those objects have functionality built in, which control the workflow for the slide. I talk about the Submit process (see future article), the appearance of messages, the inclusion in quizzing system variables etc. Just one tip: be careful when dealing with Embedded objects.

Those objects have absolute priority in the z-order, also known as stacking order. They will always appear on top of extra inserted custom objects.

Puzzling: normally the only interactive object allowed on a master slide is a shape converted to a shape button. However on the quizzing and score master slides the used buttons are all Transparent buttons.

When creating a question slide or a score slide, not all objects will appear. It depends on the setup in Quiz Preferences (see later article), the Quiz Properties of the slide and… on the situation. The Review Navigation buttons (with the double arrows) on quiz slides will only appear during Review. The Retake button on the score slide can only appear if more than one Attempt on Quiz level is allowed.

Next?

So much has to be told about Quizzing, always more than I expected. In future posts I will try to write about:

  • Two-step Submit process
  • Tweaking/customizing that process
  • How to handle Embedded Objects
  • Quiz Preferences
  • Editing the Master slides for quizzing
  • (Setting up the Pretest condition)
  • Audio on Quiz slides
  • Custom objects on quiz/score slide
  • Custom score slide
  • Scoring for KC slides
  • ….

I am sure this list is not complete. If you want to add more ideas, feel free to comment.

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1884546 2022-09-29T16:32:41Z 2023-05-17T14:19:27Z Randomizing in Captivate

Intro

Randomizing exists in some limited situations in Captivate:

  • Question pools allow to add randomized quiz slides to a project.
  • Shuffle feature for several question types can be seen as randomizing.

However in all other situations you need to use JavaScript to get a randomized number (or text). This short blog is meant as an answer to a user request in the eLearning community, to be found under this link. In my blog you will find multiple examples of randomizing for games. This is a very simple example since the user only wants to have a random card chosen from a deck on clicking the deck. A second click on the deck needs to flip back to the cover of the cards.

Example file

There is only one slide in this project besides the Title slide. The three (tarot) decks are identical, have 14 cards. Try it out. You may get some ideas how to use this workflow for games. In the future I will post more examples of this workflow in a bigger tutorial project. 

This example can be watched below (fixed size) or you can click this link for a rescalable version.


Step-by-step workflow

The timeline of the tarot slide shows the three decks. Each deck has a Click box on top of the deck, which will trigger an advanced action with embedded JavaScript. I hear you exclamations! Why not use the deck itself (PNG image) as interactive object. It is impossible because JS is used to change the state of the object, and it is impossible in that case to use the image itself as button. Of course that is annoying, because a responsive project with Fluid Boxes will not allow stacking of the click box with the multistate object in the same location. You would need a button in another location. For a non-responsive project (like this example) it is not a problem.

Multistate object (deck)

Decks are multistate objects with 15 states. The Normal state shows the cover. Due to the script the labeling is important for the other custom states. They are all labeled Cardx  where x is a number corresponding with the rank of the card. The three decks in the example are identical, but you can have decks with a different number of cards, just use the same logic for the numbering. Look at the Object state panel for Deck1:

Variables

In Captivate I need only one variable for each deck to follow up the status: is it showing the cover, or a random card? Two possibilities means that I can use a Boolean variable. When the cover is visible, the variable has the value 0, for a random card it has the value 1.

Advanced Actions

Click boxes trigger a conditional advanced action. Here is the action for the first click box (CB_1) over Deck1:

The Boolean variable v_1 is checked. If it has the value 0, a random card needs to be shown which is done by a JS script (see below), and the variable is toggled to 1. If it has the value 1, the cover (which is the Normal state) is shown. 

For the second and third deck, the variable and the name of the deck need to be edited.

Javascript

The used trick is to create the name of the state by concatenation of two strings:

  • First string is always 'Deck1'.
  • Second string is a random number between 1 and 14, converted to string.

I have explained in depth the use of Math.floor(Math.random()*(max-min))+min) in an older blog post:

Playing-with-numbers-part-1

That random number is converted to a string with a JS method. Result of the concatenation is the name of one of the states in the deck multistate object. 

For the second and third deck, the deck name need to be changed in this script. If you do have more or less cards in those decks you need to edit the maximum number (here set at 15).

More ideas?

This basic example may have ignited your creativeness? What about creation of a jackpot game? A funny mathematics exercise for your kids? A board game where you use a dice? 

For this use case it is impossible to create a shared action. One of my long-standing feature requests for actions is the possibility to generate a command using concatenation. A second one: being able to change a state based on a variable.






]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1876148 2022-09-08T09:19:22Z 2023-01-11T17:07:06Z Comparing Advanced and Shared Actions

Intro

If you have followed me since a while, you know that I am a great fan of Shared actions.  However I am aware that many developers seem to be afraid of those shared actions. In this post I will try to demystify the 'shared action', and answer some questions.

First of all: the biggest advantage of a shared action is its reusability. Whenever you need an action which will be used multiple times in a project, or which you plan to use in more than one project, it is worthwhile to consider the use of a shared action. Here are some other reasons. You can skip this part and come back to it later:

  • When used within one project, you are using instances of the same shared action. If you prefer using duplicated and edited advanced actions the file size will be bigger. It can be compared with the use of multiple instances of the same graphic/audio clip.
  • Shared actions appear in the Project Library with all the functionalities of Library assets: how many times uses, on which events etc..
  • You can transfer an existing advanced action to a new project using copy/paste of the object triggering the action: a button, click box, TEB (success/Last attempt events), slide (Enter/Exit event). If variables are used in the advanced action, they will be created in the new project. However, in many cases, commands in the advanced actions will revert to Continue if what they are referring to is not available in the new project. Example: missing slides for navigation commands, missing states or even multistate objects...  
  • Transferring a shared action to a new project is a breeze: drag the action from the original Library to the Library of the new project. Variables which are not used as parameters will be created (similar to copy/paste for advanced actions). Since the shared action is not connected with any event, you don't have to bother about having everything in place before transferring the shared action.
  • There is no built-in way to document Advanced actions in Captivate. A shared action however allows to add a description to the action and to the parameters if any are used. 

There are some limitations to shared actions:

  • It is not possible to trigger a shared action from a hyperlink.
  • You cannot attribute a shared action to several events at once, as is possible for an advanced action.

Beware: not all advanced actions are suited as shared action. In a recent post about 'Hint after x failed clicks' I explained a use case which was meant as introduction for Captivate users new to variables and advanced actions. You may have a look at that first blog post:  https://blog.lilybiri.com/automatic-hint-after-x-failed-clicks

Conversion to shared action

It is a good idea to create and test the action as advanced action before creating the shared action. This was the advanced action  created in the mentioned blog post, triggered by the Success event of the  'wrong' hotspots (5) in the example:

Two user variables were used: 

  • v_attempts tracks the number of clicks on the button/hotspot
  • v_failure is used in the Failure feedback message and allows to change the content of that message. The default failure message will be replaced by a Hint message after the defined number of clicks.

First version Shared Action

Open the advanced action in the dialog box, use the button Save as Shared action, and this dialog box will appear:

In the screenshot you see that I have filled in the description. It is important to do so, try to explain in short sentences what the action will do exactly. It may seem a loss of time, but if you reuse the action a couple of months later, you'll understand why I emphasize this.

In the main part you see the 'parameters', and in this particular case all of them show the green check mark. This means that you can save the shared action as it is. Result will be that the parameters remain static, cannot be changed when you attach the action to an event.  They will not need a description neither. Comparing with the advanced action:

Pro

  • The description of the action, which is impossible for an advanced action.
  • Its appearance in the Project Library with all the functionality of other assets.
  • For reusability in another project: you can drag the shared action from this library opened as external library to the Project library of the new project. For an advanced action you would need to copy/paste one of the wrong hotspots to the new project.

Con

  • You cannot attach the shared action to all wrong hotspot events at once, you need to do it one by one. The advanced action could be attached in one workflow by selecting all the wrong hotspots.
  • For another hotspot slide in the same project it will be easier to create a duplicate advanced action, and edit the Hint text (value for the variable v_failure).

Second version Shared action

In the first screenshot I marked two parameters with a question mark:

  • Parameter '2': literal indicating the number of required wrong clicks before showing the Hint.
  • Parameter 'Click on the icon 'Responsive project'': the new value (literal) for the variable v_failure to replace the failure text by the Hint text.

You can make the static parameter dynamic by clicking the check box, and entering a description for the parameter. To me the most important candidate is the Hint text. Making that parameter dynamic, means that you can enter a different Hint text for each new attachment of the action to an event. Beware: the correct checkmark will only appear after confirming the description of the active parameter:

This makes the action flexible: you only have to enter the Hint text as parameter whenever you attach the shared action to an event.

Pro

  • Besides the description of the action, the meaning of the parameter will appear whenever you apply the shared action.
  • Its appearance in the Project Library.
  • Reusability in any new project remains.
  • File size will be lower compared with using duplicate advanced actions.
  • You can edit the Hint text for each instance.

Con

  • You cannot attach the shared action to multiple events at once.
  • You need to fill in the text parameter with each attachment (copy/paste is possible)

Third version Shared action

You can make the action even more flexible by declaring the number of wrong clicks to be a dynamic parameter.  Using that shared action you'll be able to change the number of wrong clicks before showing the Hint instead of the Failure message.  Like increasing the number for a more complicated hotspot slide. I don't have to explain this screenshot anymore:


More tips

I may write out a third blog about using this shared action as template for advanced actions, including possible enhancement by adding graphical (audio) assets to the Hint text message.

If you want to learn more about using Shared actions, please have a look at my 'crash course'. 

Shared Actions : intro

Lesson 1 (video)

Lesson 1 (step-by-step)

Lesson 2 (video)

Lesson 2 (step-by-step)

To circumvent the "Con" of shared actions not being able to apply to multiple events at once, remember that you can easily create an advanced action from a shared action. Here is an example:

Using Shared action as template



]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1873284 2022-08-26T19:12:01Z 2022-09-07T18:55:07Z Automatic Hint after x Failed clicks

Intro 

This short blog post is created to answer a question in the Adobe forum about clicking an interactive object with multiple attempts. After two wrong clicks, the Retry message should be replaced by a Hint message. There are multiple workflows possible, but I tried with this simple solution to use as much of the existing features as possible.  The Hint will be only text. A more elaborate solution could be a Hint where the text is accompanied with a highlight box and/or other graphical elements. If useful, could create such an example as well. This one is meant for relative new users of Captivate, hence the step-by-step workflow.

Example

Watch this published 3 slides project, using this link (for a scalable version).



On the second slide you'll see the results of the workflow: learner is asked to click the correct button. Number of attempts was set to Infinite but could also be lower. First two wrong clicks lead to a Retry message, on the third wrong click the Hint message replaces the Retry message.

Workflow

Slide setup

Have a look at this screenshot, where the slide (2) and its timeline are visible:

The six interactive objects are shape buttons (Alpha and Stroke both set to 0) over the buttons of the image. One of them deserves the correct click and the other ones are wrong choices. All buttons have the default pausing point at 1.5secs. They will all trigger an advanced action, which means the slide will remain paused. You see the Correct feedback message, using the Default Success Shape style (messages are no captions, but shapes).

Variables

The workflow needs setting up two user variables using the Project menu, option Variables:

  • v_attempts will track how many times a click has been done. Its default (start) value is set to 0. Its value will always be numerical.
  • v_failure: will have a text message. In the screenshot of the variables dialog box you see the default value. However it is not really necessary to define that default value if you use the Reset action described below and triggered by the On Enter slide event. 

The first variable is easy to understand. The variable v_failure will be used as placeholder in a default feedback message. That makes the message 'dynamic': by changing the value of the variable, message text will change. This is the only way to achieve such a change, because those default feedback messages do not support multiple states (although the States button is active, you cannot add states). You'll learn which message to use in the next part.

Events and Advanced Actions

As mentioned before, I did set up the 6 shape buttons with Infinite Attempts. This means that they are left with only the Success event, which occurs on clicking the button. Only the Success message will be necessary. That may seem illogical, is linked with the Captivate meaning of Success and Failure. Success means the button has been clicked, Failure means the click happens outside of the button. You understand that clicking outside of a button is useless here.

Setup SBCorrect

Clicking the Correct button should result in navigation to the next slide with the simple action 'Go to Next Slide' (happens to be the default simple action). That navigation will not happen immediately after clicking the button because the option 'Pause for Success/Failure Captions' is activated. Display time for those messages (because they often are not in a caption, but in a shape) is 3 seconds, can be changed in the Timing Properties. See the full setup in this screenshot:

The correct feedback message can be edited on the stage, uses the Default Success Shape style.

Setup 5 SB_Wrongx 

Dynamic Message

Clicking the Wrong buttons will also show the Success feedback message, and you'll get 5 of them. For the learner they should look like Retry (or Hint) messages, so I choose another Shape style for these messages (see screenshot Slide setup). Since they are linked to their buttons and all appear in a different location I also used the Align, Align and Resize to the same size from the right-click menu after selecting the 5 messages.

The trick here is to fill those messages with the same user variable v_failure to replace the normal success text. Do this by using the X-button in the Character part of the Properties panel of the message while in editing mode:

That X-button will show the 'Insert Variable' dialog box. User variable is the default choice, you just need to choose v_failure from the dropdown list. Important: the default 'length' is set to 50 characters, if you expect a longer text increase that amount. In this screenshot I increase it to 100:

Advanced Action FailureAct

This is a screenshot of the Preview window of that action:

You see that this action has two decisions:

Decision 'Tracking' is non conditional. It consist of one Increment action for the variable v_attempts.

Decision 'Message' is conditional, has only the THEN part, not an Else part. When the attempts are greater or equal to 2, the text in the variable v_failure is changed to the Hint text. Of course it is possible to change that amount of attempts if wanted.

EnterSlide Action

If you allow the learner to revisit the slide, and want to have the identical situation of the first visit, it will be necessary to Reset the variables. You'll need this non-conditional advanced action, to be triggered by the On Enter slide event:

Both variables v_attempts and v_failure are reset to their original values. Because an advanced action is not releasing the play head, I added Continue. In this example it is not really necessary, but it would mean that the play head remains in the first frame and is not advancing to the pausing point at 1.5 secs. It is possible with other setups, like having an effect or animation that you need that release of the play head.

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1871956 2022-08-24T08:50:56Z 2022-12-30T08:34:48Z Video Demo - Tips

Intro

You will not find in this blog post details about the basics of creating a Video Demo (cpvc-project) in Captivate, just some practical tips which could make the workflow easier. 

Since I rarely use the possibility to capture from webcam along with the screen recording, you'll not find tips about that neither. Many users reported issues with webcams or cameras. Sorry you'll not find a solution for those issues neither.

Tips for Preparation

You'll need a solid 'storyboard', similar to what you need for a software simulation. My preparation always includes:

  1. In Preferences, Recording, Video Demo set the bitrate to 32-bit instead of 16-bit. You could also change the location of the temporary working folder if you don't have enough space in the default folder under AppData. In most cases you will want to keep the default choice for capturing the mouse tracks:

    BTW this setting will also improve the quality of Full Motion Recording slides in software simulations, although it seems to be only for Video Demo.
  2. Recording requires, similar to software sims, to see 1px/px. That can be done by editing the AdobeCaptivate.ini file, DPIAwareness setting as you are invited to:

    However I prefer the alternative: lowering the screen resolution until I can set the Display Resolution to 100% and still be comfortable to manage Captivate. 
    Example: laptop used has a recommended screen resolution of 3840x2160px and a display resolution of 225%. To be able to work comfortable with Captivate at 100% I need to lower to HD (1920x1080)

Tips for Recording

As mentioned at the beginning, I will focus on screen recording, not webcam recording.

  1. Do not try to record a complete video at once, but split it up in manageable chunks. In most cases I record only a couple of minutes in one session. After recording the first part, I will use the editor to clean up, and eventually replace the audio clip (see tips about editing). Goal is to finalize the real duration of that part before adding the next recording. To add the next recording you need to move the play head to the end of the first footage and start the recording using the menu Insert, Video Recording:

    Tip: If you plan to use the recording to create an interactive video later on, you can use planned bookmarks or overlay slides to choose how to split up in chunks. 
  2. It is important to record in an appropriate rhythm. For that reason I always opt to capture video and audio at the same time. In most cases the narration will define the wanted rhythm. That narration can be a 'draft' version which you'll replace later on by a proper recording (see tips about editing). Try to make the mouse movements as swift as possible, and try a narration speed convenient for a one to one talk.

Tips for Editing

The Video Demo editor has a lot of features, and editing is non-destructive. Although it is possible to do some editing in specific editing applications like Premiere Pro and Rush (see later), those applications need a published MP4-file. It is important to do use the editor before switching to those other applications.

  1. When previewing the video you'll often find the mouse paths too boring because they are too slow. In that case I often prefer to hide the path and use only the the marker for the mouse click itself.

  2. Although you can edit the audio narration clips in Audition or in Captivate, it is possible that you want to replace the 'draft' audio by a more professionally recorded version. This is possible using either the Audio menu, Import Video Narration. However, in that case you get the full audio clip. For that reason I prefer to use the Edit options in the Library on the individual audio clips of each part. That way you'll keep even the original WAV files on top of the 'edited' clips which can be new recordings. Look at this example of a video which had 7 parts. Some audio clips have been edited, others have been replaced.
  3. The object styles are available in Video Demo projects. Use them to create proper styles for the static objects you want to insert: highlight boxes, shapes, captions.
  4. If you use text (captions or shapes) you don't have to bother about the used fonts, as in normal cptx projects. ( Fonts in Captivate). It is perfectly possible to use a cool system font.
  5. Careful with transitions which you'll need between the 'chunks' of your video. You can also bridge a gap between clips using a static object which can have transitions (no Effects).

Extra tips

Video Demo Slides in Software sims

Software simulations often need Full Motion Recording slides for mouse movements. Those slides are short videos, which are still based on the original SWF technology (FLV slides). Although they will be converted to MP4 when published, several developers have reported issues with the conversion. You can avoid those problems by replacing the FMR slide by Video Demo slides. The easiest way is during recording:

  • When you expect a FMR slide to appear, stop the recording.
  • Use the Slides button to create a Video Demo slide, the resolution will be set automatically to the chosen resolution at the start.
  • After the creation of the Video Demo slide, continue with the software simulation. 

Final touch with Adobe Premiere Rush 

The Video Demo editor has great features for mouse management, Pan and Zoom, inserting static objects. However if you want to uplevel your video with great intro and outro, you need a real video editor. This can only be used with published MP4 footage. I used Premiere Pro in the past, but always found it rather challenging for the small improvements to the videos. Adobe launched Rush a couple of years ago, available for phones, tablets and desktop. It has exactly the amount of features needed to embellish your Video Demo projects. If you have a license to Creative Cloud, give it a try:

Adobe Premiere Rush

Interactive video

It is no secret that I am not a big fan of passive video, because due to my decades of experience with coaching/training/teaching interactivity is my first goal.  A recorded Video Demo is perfect to use as Interactive Video to enhance its learning efficiency. It is not offering a big amount of interactivity but way better than passive video. Here is an example:
Custom Play/Pause button



]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1857076 2022-07-20T18:14:15Z 2023-01-12T14:12:54Z Timer Learning Interaction - use case

Intro

That interaction is meant in the first place to show the learner the exact time he spent on a course. In that situation the interaction is often timed for the rest of the project. However it can be used in other situations. This blog is due to a user request on the Adobe forums, have a look at this link. Summarized: the course should be exited automatically when a slide is displayed longer than a certain time, because it means that the learner probably disappeared without closing the course. That caused issues due to the LMS when retaking a new session for that course. 

Example file

I used one of my previous projects to show the result of the proposed workflow. In this case the course will be exited on each slide if it is displayed for more than 3 minutes. Of course it is perfectly possible to edit that duration, or even have a different duration for each slide as you'll see in the described setup workflow. Try to be patient on at least one slide to let the 3 minutes elapse and see the course automatic exit. You can open this course in a scalable version using this link, or you can watch the embedded non-scalable one below.



Setup

Basics Timer interaction

When you insert a Timer interaction, you'll have to define the properties in this dialog box:

You need to define the amount of time (here 3 minutes 0 seconds) for the timer, and whether you want to count down or up. In a normal situation you can have a message popping up after the end of the counting, but in this case it was not needed. I marked three fields in this screenshot:

  • Background: I unchecked this option which would show the image of a clock. Since the timer should not be visible for the present use case I preferred a transparent background. 
  • Variable: is an optional field, but was needed in this case(see below). That variable is a Boolean with only two possible values (0/1). You need to define that variable in Project, Variables. It was labeled v_timer in this use case. Its default value will be 0, and toggled to 1 when Timeout occurs.
  • Jump to Slide on Timeout: which slide is not important, but you can use the On Enter event of that slide to trigger an advanced or shared action. As you'll see in the setup, I used a very short dummy slide in this case.

Even after closing the dialog box, you can always reopen it using the pencil icon in its Properties panel:

Setup workflow

Variable: Although each slide will have an instance of the Timer Interaction, the created user variable v_timer (see screenshot under Basics) can be used for all instances. The value will automatically be reset to 0 on a slide with a new instance of the interaction. It will be toggled to 1 only when the Timeout occurs on a slide, and then the course will exit. Variables do not keep their value when closing a session.

Timing Interaction instances: insert an interaction on the first slide where you want to enable the timeout, and resize it and set up the properties as indicated in the screenshot under Basics. Since its visibility is not wanted, there are two ways to make this possible. Remember that the background already has been made transparent (see screenshot of the dialog box):

  • If the slide background is a solid color, you can use that color for the Text in the interaction:
  • It is not necessary to have the complete interaction on the slide, you can move it partially to the scratch area so that the numbers (text) is not visible on the stage. That will be necessary if the slide background is not a solid color:

You can copy/paste the interaction to the other slides without any problem. All fields  will be the same. Only two possible exceptions which can need editing: the text color field (if using the first method above) and the time duration if you don't like to have the same timeout settings for each slide.

Dummy slide: in this case I used a very short slide at the beginning of the project, duration = 0.1second. It is not really necessary to use such a slide, you can choose any slide of the project. These are the reasons for my choice:

  • The On Enter event of this slide will be used to trigger an advanced action. For most slides in my projects I already have a dedicated On Enter action to reset situations. If you need to add another decision to those actions, it will be different for each project where you want to use this workflow. The Dummy slide can be copied to any project, including its advanced conditional action.
  • The first slide will already be rendered in the project whatever the slide used to navigate back to this slide. That may speed up the navigation process. However: if you have quiz slides, you need to enable Backwards navigation in the Quiz Preferences. 

Advanced action

The On Enter event of the Dummy slide triggers this advanced action:

Since this is the first slide, it has to continue to the next slide on first visit. That is the reason for the conditional action, because on first visit the timer variable v_timer will have its default value (0). Only when the slide is visited from another slide where timeout has occurred, that variable will be set to 1. 

Before exiting the navigation is returned to the "last visited slide" in order not to mess up bookmarking by LMS: last visited slide (bookmarked) will be the slide where timeout occurred. If you don't want bookmarking by LMS, you can delete that command.

Reusing workflow

User insisted on a workflow that was easily to be reproduced in multiple projects, both responsive and non-responsive. 

For another non-responsive project:

  • Copy/paste the dummy slide and use it as first slide.  An extra advantage will be that the used variable v_timer will be created in the new project.
  • Copy/paste the learning interaction. You may need to edit the timeout duration and eventually the text color to adapt to the colors of the new project.
  • Now you can proceed as described: just copy/paste the interaction to all the slides. Do not forget to check Quiz Preferences to allow Backwards movement.

For a fluid boxes project:

  • Copy/paste the dummy slide, do not bother about fluid boxes on that slide.
  • You'll need to create a fluid box for the Timer interaction, it is not possible to copy it from a non-responsive project. Edit the interaction as needed, the user variable has been created from the dummy slide.
  • It is recommended to create the fluid box on the used master slide(s), because you'll need to copy/paste the first instance to the same fluid box on each slide. 
]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1836117 2022-06-24T19:12:10Z 2022-06-24T19:12:10Z Button states - Basics and Tips

Intro

Recently I answered several questions about button states, which proved that some information is missing. For that reason I checked the official Captivate document, and indeed to me it is not at all complete especially for buttons which are the most used interactive objects. You can have a look:

Work with multi-state objects in Adobe Captivate

Some examples: the InBuilt state 'Visited' is not mentioned at all. I couldn't find any information about the lock of InBuilt states for buttons and how to circumvent it. The recent added button types - SVG and Bitmap images - are not even mentioned. What is the meaning of the blue and red selection rectangles in button state objects? Several years ago I published an extensive blog about the InBuilt states for Drag&Drop objects (Inbuilt D&D states) to fill in gaps in the Help document.  With this blog I will try to summarize tips and workarounds for InBuilt states for buttons. After a short recapitulation of typical features of Button states, you'll get some examples.

Typical features

InBuilt states

Buttons of any type have by default three InBuilt states: Normal, Rollover and Down. Those three states are part of the object styles for text buttons, image buttons, transparent buttons and shapes (because they can always be converted to shape buttons). However no object styles can be created for bitmap images and SVGs used as buttons, the most recent types added in version 11.5. 

Less known is the fourth InBuilt state: Visited, probably because you always need to create that state. It cannot be included in the object style for the four mentioned button types neither which is a pity. Audio can be attached to the Visited state and Normal state, while that is impossible for the Rollover and Down state

InBuilt states will appear in specific situations. Rollover when hovering over the button, Down while button is pressed, Visited after the button has been pressed and released. However the Visited state can also be set using the Change State action which is impossible for any other InBuilt state (for buttons and D&D objects). Like with custom states, you can add Audio to the InBuilt states. Here are two tips based on that knowledge:

Tip 1: The Down state will disappear when you release the button. If you want to keep the down state after release, use the Visited state, looking identical to the Down state. This is valid for both responsive and non-responsive projects.

Lock Size/position

The size and position of the button is the same for all InBuilt states, based on what you designed for the Normal state. That is the reason for the lock symbol which you see on the stage when Rollover, Down or Visited are selected. 
The Normal state defines the clickable area, hence the Lock symbol. For all buttons, except the SVG used as button, this will always be the bounding box of the button. You can always edit or replace the content in a state but that content will be rescaled to the bounding box defined in the Normal state. In the example screenshot that content was a SVG where the clickable area was kept to the bounding box. That vector image type always keeps its height/width ratio. If you want to use another SVG in the Rollover or Down state, which needs more space, be sure to create a bounding box which is bigger than what is needed in the Normal state. Here is an example, the SVG in the Rollover state is wider, so the bounding box in the Normal state has a larger width.
In this example a different SVG was used in all the states. You cannot replace a SVG by a bitmap image, each replacement needs to be of the same type.

Tip 2: (answer to this thread in the eLearning community: Word Search) to create a highlight appearing after a click, use a shape button with 2 (or 4, the Rollover and Down are not important) states, one is the Normal state and the shape has no fill nor outline, the second one is a custom state where the shape has an outline. Use the action 'Go to Next State....' for that button. First click will show the custom state (outline), second click will revert to the Normal state.

Extra objects

Contrary to audio which can only be added to the InBuilt states Normal and Visited, you can add extra objects to all InBuilt states. However this is only possible in non-responsive (Blank) projects and in static fluid boxes. Normal fluid boxes do not allow adding extra objects to a state (due to the stack prohibition). 

This aspect opens a lot of tweaking possibilities. Those extra objects are not locked, nor do they need to be of the same type. Contrary to the locked button states which have a blue outline marker, extra objects will have a red outline marker (see screenshot under Tip 3). There is no real limit to the number of objects you can add. Whereas audio cannot be added to Rollover or Down states, you can add extra objects to those states.

Tip 3: Create a tooltip for a button by adding a text (or other object) to the Rollover state.

Tip 4: Quick Click/Reveal workflow, using a button with a custom state derived from the Normal state but with the Reveal objects added to it. Use 'Go to Next State' for that button, and you have a toggle button, which will hide the revealed objects when clicking again. When using a variable as explained here, you have even more control.

Tip 5: Can you increase the size of a shape button in Rollover state, was another recent question? The forementioned trick with a bigger bounding box in the Normal state is not functional in that case. Here is another possibility:

  • In the Rollover state make the shape button invisible. Depending on its setup this means Alpha for Fill set to 0, border width set to 0 and eventually take out the text.
  • Add a bigger image of the shape button to the Rollover state and align it as wanted.

Of course you can this also apply on the Down state and/or with a smaller version of the button, see screenshot:

Tip 6: Starting with an invisible Normal state for a shape button (Alpha and stroke set to 0) and adding an object to that state within the bounding box of the shape button, allows you to create a rotating button. A full description of the workflow can be found in this blog post. Of course this means the clickable area will be greater than the image itself, but most learners will not detect that incongruity.


Conclusion

You'll for sure know about more examples to use button states in a creative way. Feel free to post your ideas in a comment, always appreciated.

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1816033 2022-04-08T13:03:19Z 2022-09-30T06:14:18Z Fractioning (custom) motion paths

Intro

Motion effects can be customized in many ways. Pausing Captivate's timeline will also pause automatically any effect if it is not finished. This feature can be used to make boring slides more engaging. To see what I mean, have a look at this example file. It has three slides using that approach:

  • Business Model: has a simple left to right motion path use on a cover shape to deploy an infographic sequentially.
  • Career Steps: uses a custom polygon path to have an animated avatar and discovering states in a multistate object
  • Captivate Hurdles: has a custom curved path, and uses also multistate objects.

You can watch the example file full screen by clicking this link.

Or have a look at this embedded example:


Workflow

Steps

Each of these three steps will be explained in detail below:

  1. Create the motion path, and edit its duration taking into account the number of wanted fractions.
  2. Create the button and its advanced action, which will have two decisions:
    1. Decision 1 will manage the motion and pausing, and a tracking variable if you want a second decision to be done when all parts have been deployed. This decision is non-conditional
    2. Decision 2 will be done when the path has ended and is conditional
  3. Test the interaction, it will probable need tweaking the path length and fraction times. Moreover if you allow to revisit the slide, you may need an On Enter action to reset the situation.

The detailed explanation will be done using the first example ‘Business Model’ . Explore its timeline:

Slide background is a a shape filled with a gradient. That shape was duplicated to be a cover, which is stacked on top of the Infographic (with the images) and the Next button. Motion effect will be attached to that cover shape. On top of the cover you’ll see the Play button (no pausing point), title and instruction text. The Next button has a pausing point which needs to be after the end of the motion effect.

Step 1: Motion path

The effect applied to the cover is a simple Left-to-Right motion path. It has no easing because easing would be applied to the start and/on end of the complete path, but you’ll use it in fractions. This linear path will be cut in 6 parts. I used a vertical guides grid to visualize the 6 fractions, and make sure that each guide is in between two images. Have a look at this screenshot, showing the guides and their setup (using View, Create Multiple Guides):

Motion path  is visible on the stage with end and start points. Those points are always connected to the center of the bounding box of the shape. The start point is at 1024/2px = 512px because the project width is 1024px. You need to extend the length of the path by moving the end point horizontally (keep SHIFT key pressed) to the X coordinate 512+1024px = 1536px. For that reason I added another vertical guide at 1536px. Turning the snap on for the guides helps to position the end point. See screenshot:

For the duration of the Effect, start from the time to use for each fraction. I found that using a time between 1 and 2 seconds is fine. As you can see in the timeline screenshot above, for this slide a duration of 1.5secs was chosen, leading to the Effect duration of 9secs. If you look closer to the Timeline, you’ll see that the effect duration is slightly shorter, because of step 3: tweaking.

Step 2: Action for Play button

Basic setup

At first sight the needed advanced action for the Play button seems to be rather simple.:

  • Pause the slide On Enter.
  • For the Play button use this sequence:
    • Continue      to release the playhead, the motion effect will start
    • Delay Next Actions by 1.5 secs          for the Business model slide 1.5seconds is 9secs/6
    • Pause      to pause the motion effect waiting for the next step (see guides in the first screenshot )
  • The Next button will be uncovered in the last step.

However, there is no way to prevent the learner to click the Play button after the motion effect ended, and the Continue command would then override the pausing point of the Next button, which you probably want to avoid. To prevent this you need a way to track the end of the motion path. Using a variable v_counter for tracking is an easy way. Although you could use one conditional decision, I like to separate the advanced action in two decisions. Have a look at this screenshot of the basic PlayMotion action:

Supposed here is a starting value of 0 for the variable v_counter. When all 6 parts have been ‘discovered’ the Play button will be hidden. It could be possible to replace that Hide action by a pure Pause action, but it would lead to frustrated learners.

If you try out this basic action for the Business Model slide, you’ll have a flickering problem. That has been a pain since many versions. In the Tweaking section of this blog, I will show you how to solve this. Moreover in the video displayed in the previous post, you’ll see that the first part of the effect is deployed immediately. There is also need for an On Enter action on all the slides, to reset everything in the original situation including the value of the counter variable.

Extended Setup

This simple slide didn’t need to have another action to be done besides part of the motion effect. That is not the case for the Steps nor the Hurdles slides. The extra actions need to be inserted before the Delay command in the Always decision. Look at the versions for the Hurdles slide. Multistate objects were used to show explanations. There are 4 parts. At the end the Play button (is in a group with a Tooltip) needs to be hidden, and the group of extra buttons made visible:

Step 3: Tweaking

Timing

When testing the project with F11, Preview HTML in Browser, you'll see that the timing is not perfect: motion effect. There are two ways to tweak this timing, and often both are needed:

  1. Decrease the total time of the motion effect (Timeline panel or Timing Properties). That will speed up the motion, more will be shown with each part. If you look at the first screenshot, Timeline panel for the Business Model slide, you see that the duration of the effect is now 8.9secs instead of the original 9secs. For the Steps slide, I reduced the original 10secs (5steps of 2sec) to 9.7secs, for the Hurdles slide 5secs was reduced to 4.8secs

  2. Decrease the Delay time in the advanced action for the Play buttons. You could see in the Hurdles action the change to 1.8secs. 

On Enter action

You’ll need such an action to reset the situation if the learner is allowed to revisit the slide, and also to be able to reuse the unique variable v_counter.  Whenever possible, avoid to create multiple variables if you can reuse the same variable. Here is a simple On Enter action for the Steps slide:

As promised, here is the On Enter action for the Business Model slide, which is more complicated because it solves the flicker issue, and will show the first part of the image (Hence the Assign to 1 command for the counter variable):

To avoid the flickering of the InfoGraphic image, it is hidden to start with and shown after 0.3secs.  I also added a Fade in Transition The starting value of the variable is now 1 instead of 0. To deploy the first part of the infographics you’ll see the same actions as in the Play button action. The total delay for this first part is 1.6secs.

More?

It would be wonderful to hear how the described workflow could inspire you for your projects.. 

Creating custom paths - curved or polygonal - comes with some issues:

  • For polygons: you cannot create horizontal nor vertical parts for an obscure reason. I have logged this bug multiple times.
  • For curves: realizing cusp points is normally not possible... 

If you want to learn how to overcome those issues, please let me know.



]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1770964 2021-12-14T14:49:52Z 2021-12-18T16:24:31Z Combining Slide Audio and 'Play Audio'

Intro

This short blog post is meant to answer another question on the Adobe forums. It is at the end of this thread:

https://community.adobe.com/t5/captivate-discussions/pausing-slide-audio/td-p/12312792

This was the goal:

  1. Slide has narration as slide audio
  2. There are multiple shapes used as buttons, which should trigger an audio clip using 'Play Audio' command; those shapes have no pausing point.
  3. When a shape button is clicked the audio clip should play, but the slide audio should pause, and resume after the audio clip ends.
  4. There is at least one more interactive object pausing the slide towards the end. Idea is that the learner can still listen to the audio clips after the slide audio has finished.

This learner tried to solve this with simple actions, using the feature 'Pause slide audio when clicked'. It cannot be solved that way however.

Example project

Watch this short project created to double-check my proposed workflow with a shared action for the shape buttons. After the Title slide you'll see a slide with a Next button to pause the slide, and a shared action triggered by each of the shape buttons. A copy of the Timeline panel can be found on the third slide. I used some slides from the Aspire Quick Start Project.

You can open a rescalable version using this link or watch the embedded version below:



Setup

You could see the slide audio (narration) in the Timeline panel. The audio clips for the shape buttons were imported to the Project library, and their exact duration was checked, because it will be needed in the shared action. Have a look at the shared action with its two parameters (name audio clip and duration clip):

It has two parameters:

The command Pause in the action will pause the slide audio automatically, contrary to a pausing point of an interactive object. You don't have to change any setting in the shape button Properties. The Continue command which will be done at the end of the audio clip will take care of resuming the slide audio.

Do not bother about having two clips playing at the same time. If the learner clicks another shape button before the first audio clip ends, that first clip is stopped automatically. No need to add a command like 'Stop triggered audio' which is only needed when you want to stop a playing clip without playing a new at the same time.

The user is concerned that applying the shared action will take more time than the approach he tried out with simple actions. However, since you don't have to change settings in the shape button Properties panel, the shared action approach needs even less clicks. Check it out. There is no danger of choking Captivate which could happen if you use duplicate advanced actions since you are using instances of one shared action (ecologically).

Problem

The previous solution works fine until the learner has reached the pausing point of the Next button. At that moment, the Continue command in the shared action will override the pausing and the playhead will continue until it reaches the end of the slide and moves to the next slide. It is necessary to cope with that different situation. The Delay command nor the Continue command take into account possible pausing points. 

There are two different situations, each needing a different workflow:

  • Learner clicks a shape button before the narration has ended. In that case the slide audio needs to be paused, and to resume after the end of the triggered audio clip.
  • Learner clicks a shape button after the narration has ended. You need to maintain the pause which occurs at the pausing point of the Next button.

This screenshot shows the Timeline panel, illustrating the two situations. Situation 1 in red, situation 2 in blue.

This needs apparently a conditional action for the shape buttons. You have to figure out which situation is valid. For that reason you need to know when the narration has ended. It is easy to see its duration in the timeline, in this case it was 28secs. To calculate the frame number at the end of the frame I used micro-navigation. If you are new to this type of navigation, please have a look at this blog post:

Intro to Micro-navigation

Solution

Variables

You need two user variables:

  • v_start: will store the frame number of the first frame of the slide with the narration and shape buttons
  • v_stop: will store the frame number at the end of the narration

Contrary to the timeline panel where seconds restart on each slide, the frame numbering continues throughout the project.

Shared Actions

EnterSlideAct

This shared action will be triggered with the Slide Enter event, and is meant to calculate the value of v_stop. Have a look:

The first frame number of the slide is stored in v_start. The duration of the narration is converted to frames, by multiplying with the system variable cpInfoFPS. The only parameter is that duration.

PlayAudio_Act

The former standard action has been transformed to a conditional action:

Same parameters as before. The condition checks if the learner clicked the shape button before or after the end of the narration. Only when the narration hadn't been finished it will need to resume. That has been done with the Delay command and Continue. That is not necessary after reaching the end of the narration, because the pausing point of the Next button needs to be kept pausing, and the narration doesn't need to resume.

This shared action is needed for each of the interactive objects used to play an audio clip.  In the project I used shape buttons. They are visible in the timeline screenshot as SB_Topic1…. SB_Topic4.

By using shared actions instead of duplicate advanced actions, you avoid choking the project if you need lot of those actions which was the case for the user asking the question. Moreover multiple instances of the same shared action also will result in a smaller file size. Of course they are also very easy to transfer to future projects. You can learn more about using shared actions in these videos:

Use Shared Actions: Lesson 1 (crash course)

(re)Use Shared Actions: Lesson 2 (crash course)

]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1759999 2021-11-17T11:24:22Z 2021-11-17T11:24:22Z Choose and use Personal avatars

Intro

One of the reasons I started using eLearning assets as professor in a university college, was to offer students a more personalized learning experience. In this blog I will not expand on that goal, but show how you can use an ignored feature of advanced actions in combination with multistate objects to offer the choice or a personal avatar. 

Do you know that several simple actions (dropdown list in the Actions tab for a slide or an interactive object) also appear as possible commands in advanced action, but that they are ‘enhanced’? Typical examples are:

  • Show/Hide: as simple action they can only address objects (or groups) on the same slide as where you trigger the action. However when used in an advanced action, you can address all project objects.

  • Change State/Go to Next State/Go to Previous State: when used as simple actions you can only point to multistate objects on the slide of the action, but used in an advanced action you point to all multistate objects in the project.

Example project

Have a look at this example. You can use the Table of Content (custom button) to navigate freely. This project has:

  • Title slide
  • Slide ‘Flashlight’ with timeline staggering, where you see bottom left an avatar
  • Slide ‘AvatarChoice’ where you can change the avatar. It is not the first slide to prove that the avatar change will also be functional on the previous slide (Flashlight)
  • Slide ‘CareerSteps’ which has an avatar outside of the slide, but it will appear in steps if you click the play button (motion path animation triggered partially with each Play button click)
  • Slide KnowledgeCheck where the avatar is used to give a feedback message

Have fun:



Setup workflow

Multistate objects

Lot of multistate objects were used in the project:

Slide AvatarChoice

The four buttons with the avatars are SVGs used as buttons. The InBuilt states Rollover and Down were deleted, but a custom state labeled 'Chosen' was added to show the selected avatar by adding a white-stroked border (shape) to the original avatar image.

Slides Flashlight, CareerSteps, KnowledgeCheck

The images SV_Candidate (Flashlight), and People (CareerSteps) have 4 states. The Normal state shows by default the first male avatar. This screenshot shows the states for SV_Candidate, the one for People is similar. They use the same names for the states.

The image KCMessage (KnowledgeCheck) has 5 states, the Normal state being an empty shape (Alpha and Stroke both set to 0). It is just an alternative, because that message needs to be hidden with the On Enter action of this slide. Reason: the message should pop up only after clicking the Submit button. Same names are used for the states, but M1 is new since it is no longer the Normal state:

Events and Actions

W1Act, W2Act, M1Act, M2Act

Those advanced actions are triggered by the Success event of the the buttons on slide AvatarChoice. Here is an example screenshot for the button SVB_W1, the action W1Act:

The four first commands, changing states, take care of the buttons on the slide itself. Only the clicked button will switch to the second state 'Chosen'.  You can easily adapt those commands for more or less buttons on that slide, in this case there were 4 buttons.

The three later commands switch the multistate objects on the other slides to the appropriate state.  Add similar commands if you have more than 3 slides to propagate the choice.

Beware: it is important to check the option 'Retain state on slide revisit' for the multistate objects on the three slides where the chosen avatar has to be solidified. If you don't do that, the choice will be visible only on the first visit of that slide, not on later visits.

KnowledgeCheck slide

The On Enter slide event is used to hide the multistate object 'KC_Message'. 

For the setup of the actions on the slide, refer to this screenshot:

It is of course possible to have different feedback messages, by using conditional actions, but that was not the goal of this blog post. 

You cannot have any multistate object in a default feedback message (Failure, Success) on a question/knowledge check slide. That is why you need to create a custom solution.

No shared actions?

Why did I not choose for my favourite shared actions in this particular use case? Reason is that such a shared action would need a lot of parameters, even for this short project: 7 for the multistate objects, 4 for the states on the AvatarChoice slide, and 3 for the to be changed state on the other slides. That results in 14 parameters! It is much easier to edit the duplicate advanced actions in this case than applying shared actions with 14 parameters.


]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1754396 2021-11-02T15:52:23Z 2023-01-13T17:44:15Z Forced view for Tabs Interactions - Shared actions as template

Why?

Recently the question appeared a couple of times in the forums: is it possible to delay the appearance of the Next button until all tabs in the learning interaction Tabs have been clicked.  This ‘Forced view’ request has been documented many times for normal click/reveal interactions and for a branching scenario. However the limitation of all learning interactions to the provided editing functionality prevents an easy way to realize such a scenario. Same is valid for Accordions, Timeline, Pyramid etc… interactions.

My recommendation is to use one of the multiple interaction slides from the Quick Start Projects (version 11.5, Assets panel). They do not offer Forced viewing out of the box, but can be transformed to do the trick. Have a look at the published example.

Warning: This blog contains three short video clips, it may some time to load completely on your system.

Example project

In this example I took 3 ready-to-go slides: one from the Safety, the Alliance and the Earth projects. The existing actions have been edited and you’ll get the Next button only when all tabs on a slide have been clicked:


The embedded example has a fixed resolution. You can also use this link for a scalable version.

How?

All was done using two shared actions, which you’ll be able to download in a Library project:

  1. VarsCreateForceTabs: is used to create the needed user variables, and acts also as reset action On Enter for each slide. In this particular case the same action (one parameter) could be used directly. However if more is used in the On Enter action, the shared action can be used as template for a dedicated advanced action.
  2. ForceTabs: has been used only as template for all the advanced actions on the 14 tab buttons in this project. I will describe the workflow step-by-step in a future blog.

If you want to try the workflow (described below) out, download this project which has the two shared actions in its Library. In an older blog (or video)  I explained how to import those actions in any project using External Library. Download the project from this link:

SA_Library

Workflow

Step 0: Next buttons

Add the Next button to each slide, and hide it in output. I labeled them SB_Next_Earth; SB_Next_Safety, SB_Next_Alliance 

Step 1: import the shared actions to your project

  • Open the Library panel in your project. Scroll to the Shared actions subfolder.
  • Use File, Import, External Library and point to the downloaded project file. It will appear in a floating panel top left of your screen.
  • Find the Shared actions folder in that external library and select BOTH shared actions.
  • Drag them to the Shared actions folder in your project library. They will both appear with a usage of 0. But the variables used in those actions will now appear in the Variables dialog box (Project, Variables). 

You can watch this step in the video below as well.

Step 2: use VarsCreateForceTabs action as Reset action

  • Check the On Enter event for the Quick Start Project slide you want to use. In many case that will be the default action 'No Action'. If that is the case, apply the Shared action 'VarsCreateForceTabs' to the event. It will need only one parameter: the number of tabs. 
  • If the On Enter event triggered another action than 'No action', screen that action. In many cases it is a superfluous action. One example is the 'Horizontal Tabs' layout in the Business project. It has an On Enter action to reset states to the Normal state, but that action is not needed since such a reset happens automatically when you re-enter the slide. Reason: the option Retain State on revisiting slide is unchecked.
  • If the existing On Enter action has to be done, you need to use the Shared action as template to create an advanced action. In that advanced action you'll need to add the existing action, which can be done by copy/paste eventually on a new decision tab. In the available Quick Start Projects the On Enter actions are never conditional. 
  • Using the described workflow, the Next button will remain visible when the slide is revisited. That is mostly the required situation: only on a first visit clicking all the tabs is required to get the Next button, but later on that is no longer the case.

Second step is also shown in this video clip:

Step 3: use ForceTabs as template for Tab action

  • Select a Tab button on the slide. In the following screenshots I selected the first button on the slide from Earth, which will have the name C2R37_BTN_xx  (xx will be a number added by Captivate to make the name unique).
  • Check its action in the Properties panel, Actions. Open that action in the Advanced Actions dialog box.  For all the ready-to-go slides with a similar Tabs interaction, those actions always have one standard decision. No IF conditional decisions, nor While loops
  • Select all the commands in that action, copy them to the clipboard (Edit menu, right-click menu or with CTRL-C).
  • Open the shared action 'ForceTabs' from the dropdown list top left (starts with Blank). You'll need to fill in the two parameters in the dropdown lists. First parameter which appears in the two first decisions is the tracking variable. Second parameter in this case is the Next button, which was hidden in output. A Preview of such a filled in shared action is visible in this screenshot, created for the first tab button in the slide taken from the Earth QSP:
  • Return to the first decision 'Always', on the second line (after the 'Increment' command), paste the commands copied to the clipboard (CTRL-C or from the menu).  Save the advanced action with a unique name. For that same tab button as the previous screenshot, this would result in:
  • Assign the new advanced action (in the example SB1_Earth_act) to the tab tutton.

You will need to repeat this third step for each of the tab buttons. Eventually you could also duplicate the advanced action for the first tab, and edit the duplicates. Do not forget to copy the commands from the original advanced action on the tab to the first decision 'Always' after the Increment command. In that scenario, only the first parameter (tracking variable) needs to be edited, but in the first AND the second decision. If you start from the shared action as template you need to define that parameter only once. However you don't need to edit the last decision, because the Next button will be the same for all the tab buttons if you work with duplicate advanced actions.

Here is the video clip for the third step:

Conclusion

Although this blog was meant in the first place to answer a forum question, I had a hidden agenda (a badass?):

  • Using shared actions as template
  • Using shared actions to avoid creating variables over and over again
  • Combining existing advanced actions with filled in shared actions
  • Understanding and extending the use of Ready-to-go slides from the Quick Start Projects.


]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1741821 2021-09-29T15:31:19Z 2021-10-11T18:08:32Z Custom MCQ slide with multiple correct answers

Why?

Recently a user posted a request on the Adobe forums, asking for a Multiple Choice question to be used as Knowledge Check, but with possibility of multiple combinations of answers to be correct. Here is the link:

MCQ with more than one correct answer

Example project

I used some slides from the QSP Alliance to create quickly this example project.  It has 3 MCQ slides which are using the same shared actions. For the answers I used placeholder text, so that you can recognize the 'correct' and 'wrong' answers. All questions have 6 possible answers but the workflow is not limited to that specific number of answers. The total number of correct and wrong answers is different on each slide, workflow is flexible enough to cope with those differences. Answer is considered to be correct when no wrong answers are selected and at least one correct answer is chosen. But multiple correct answers are allowed as well. It would be very easy to add scores to the MCQ slides. At this moment they are set up as Knowledge Check slides, with Infinite attempts. You cannot proceed to the next question before having posted a correct answer.

You can watch this project using this link for a scalable version, or the fixed resolution embedded version below:



Workflow Setup

Slide setup/Multistate objects

Have a look at this Timeline screenshot of the most important objects on the MCQ slides:

From bottom to top you see 

  • The 6 shapes (black) which are used as shape buttons, who will trigger either a CorrectAct or a WrongAct shared action. Their names start with SB. They have an extra custom state 'Checked' to indicate when they are chosen:
  • The Submit button. Each slide has its Submit button. A custom 'Retry' was added to replace the Normal state for later attempts than the first attempt. The option 'Retain State on Slide Revisit remained unchecked.
  • A multistate shape SS_Message which has an empty Normal state, two custom states (see screenshot). This object is timed for the rest of the project (and hidden on the End slide with its On Enter action). The option 'Retain State on Slide Revisit remained unchecked.
  • The Next button SB_Next which is also timed for the rest of the project (and hidden on the End slide with its On Enter action).

Variables and events

8 user variables are used:

  • Six tracking variables of the Boolean type, labeled v_1, v_2.....v_6 - one for each possible answer. Their default value is 0, will be toggled to 1 when that answer is chosen. 
  • Two counter variables v_correct and v_wrong which will track the Correct and Wrong answers which are checked.

The used events are:

  • Enter slide event for each MCQ slide, for a reset action 'EnterAct'. 
  • Success event of the answer shape buttons SB_x to trigger either the 'CorrectAct' or the 'WrongAct', which are both shared actions.
  • Success event of the Submit buttons to trigger a specific advanced action 'SubmitActx'.
  • Enter slide event of the End slide to hide the messages shape SS_Message and the Next button. That Next button kept the default action 'Go to Next Slide'.

Actions

EnterAct

This Reset advanced action is triggered On Enter for each MCQ slide, it is self-explanatory. I used an advanced action in this case, based on a shared action CreateVars, which I use all the time to create a bunch of variables. 

CorrectAct (shared action)

This shared action is triggered by the Success events of the answer shape buttons which have the correct answers. Only two parameters are needed: the button itself and its tracking variable. As you may have read in my Tips about Parameters using numbers in the names makes the assignment of the parameters a lot easier:

WrongAct (shared action)

Similar to the previous action, using the same two parameters:

As you may know both shared actions appear in the project Library, easy to check with Usage if they have been assigned correctly:

SubmitActx

Due to the change state needed for this button, there is an individual advanced action for each Submit button:

EnterEnd

A very simple advanced action for the On Enter slide event of the last slide, to hide the Next button and the multistate Message shape, both were set till the end of the project.




]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1741215 2021-09-28T18:47:11Z 2021-09-28T18:47:12Z Tip 5: Parameters (Shared Actions)

Intro

First 4 tips in this series were valid for both Advanced and Shared actions. 

This blog is only for Shared actions, which are still not very popular amongst the Captivate developers. In my workshop at the Adobe eLearning World Conference I have demonstrated their power, even for unexpected uses. For each action I develop in my projects I always take a little time to reflect on this question 'Will this be useful as Shared action'? Result is that more than half of my actions end up to be Shared, not Advanced actions. My Libraries with useful shared actions are growing all the time, and have saved me already many hours of work.

In this article I will focus on tips for choosing Parameters to make the shared actions as flexible as possible. When saving an action as Shared action, you get a dialog box where compulsory and candidate parameters will appear:

  • Compulsory parameters: include all objects, audio clips, states... which you have in the advanced action dialog box, with the exception of literals and variables. You recognize them by the appearance of a yellow exclamation sign. When you add a description to such a line and indicate something as placeholder for the parameter the yellow sign is replaced by a green checkmark.
  • Candidate parameters: are the literals and variables which you find in a condition, or in commands like Increment. They get a green checkmark, but by using the checkbox you can convert them to parameters as well. 

Here is a screenshot of the dialog box for a toggle button. You'll see the compulsory and candidate parameters.  Description for the compulsory parameters has not yet been typed:

General Tips

Using several instances of one shared action to replace duplicate advanced actions leads normally to smoother projects, less risk of choking Captivate and even lower file size. However it is important to keep the number of parameters to assign on each instance not too high. Personally my goal is to have a maximum of 6-7 parameters. If you really need more of them, but appreciate the ease of transferring shared actions to new projects, remember that you can use each shared action as template for advanced actions. You can use that knowledge to create duplicate advanced actions if the number of parameters is too high. Labeling (see Tip 1) remains very important as well, because of the filtering (Tip 2) which is possible in the dropdown lists for parameters. You'll find some more tips below for the two types of parameters.

Compulsory parameters

Depending on the action using those parameters, they are either very specific (only one type) or they can be flexible and cover more than one type. Examples:

Show/Hide actions: they can aim at lot of object types. All graphics (bitmap or SVG), video, but also audio objects (invisible objects which have audio attached), learning interactions, but also Groups! These are probably the most flexible actions, and you may consider to replace a multistate object approach by Show/Hide for that reason.

Change State: not so flexible, they need always two parameters which are the multistate object and the state. Whenever possible try to use 

Go to Next State/Go to Previous State: you only need the multistate object as parameter

Assign can be used with 0, 1 or 2 parameters. You need 0 parameters if using two variables which are not defined as parameters, 1 if you have a literal which is no parameter or one variable defined as parameter, 2 if you have both literals/variables defined as parameters. 

Toggle: can only be used for Boolean variables, better choice than Assign because you have 0 or 1 parameter (the variable which could be defined as parameter).

Play Audio: needs an audio clip as parameter.

Apply Effect: only the object or group to which you want to apply the effect can be a parameter, not the effect itself. In most cases you'll want to use a custom effect to have the correct setup parameters.

Candidate parameters

Candidate parameters are variables and literals.  They appear in conditions, both for IF and WHILE setup, but also in the commands Assign, Increment, Decrement, Expression. 

Variables

If a variable in a shared action is not defined as a parameter, it will automatically be created when you import the shared action to a new project, including its Default value and description. One of the shared actions in my actions library is meant to avoid having to create much used variables in new projects. See this screenshot:

I also use that action as template for the many Reset actions needed On Enter for slides.

When you define a variable as parameter, this automatic creation will not happen!

Before defining a variable as parameter, you need to check if that variable is used multiple times in the action. Know that when assigning a variable to the parameter, it will replace that variable wherever it has been used in the action. I will try to explain by an example. If you ever created an advanced action for 'Forced View', where the appearance of a Next button is postponed until all clickable objects on the slide have been used at least once, this action for the first clickable object will look familiar:

In this project, the first clickable object is SV_Decision.  That object has a custom state showing Info, and acts as a toggle button. On a second click the Normal state will re-appear. Its tracking variable is v_1, a Boolean, which will get the value 1 on each click. On the slide 4 of those buttons need to be clicked.  For the three other buttons both the name of the button and the tracking variable need to be edited in a duplicate advanced action. The second decision checks the 4 tracking variables, shows the Next button if all have the value 1.

In this setup you cannot convert this action to a shared action. It would need 3 parameters:  the Next button, the button itself and the tracking variable. But if you replace the first variable by the second variable, that will also happen in the second decision, thus leading to a non-functional second decision where only 3 variables are checked. Have a look at this action:

In this action 2 extra variables are used:

  • v_counter: will be incremented only on the first click; that makes the third checking decision easier, and the tracking variable v_1 which appears twice can be replaced by any other tracking variable.
  • v_max: instead of the literal '4' this new variable makes the action more flexible. It can be used for any number of clickable objects on the slide. The value of v_max (4 in this case) can be assigned either directly in the Variables dialog box, or with the On enter action of the slide. You could also define that variable as parameter if you prefer.

Literals

Be very careful with literals as parameters. My replacing it by a variable in the previous example gives you a possible workaround. Especially if you have multiple literals in an action, defining them as parameters can lead to issues.  Look at this variant on the same situation described above:

It could be possible to define the value '4' in the last decision as a parameter, so that you can use the action for any number of clickable objects (alternative for the variable v_max). However, if you should define the '1' as parameter, changing it in an instance of a shared action would lead to changing it in 3 locations of the action! 

My recommendation: avoid defining literals as parameters!




]]>
ir. Lieve Weymeis
tag:blog.lilybiri.com,2013:Post/1734932 2021-09-16T19:08:55Z 2021-09-16T19:08:56Z Tip 4: Decisions (Advanced/Shared Actions)

Intro: Decision (tab)

The Advanced Actions dialog box in its default setup for a new action, shows  3 decisions with the generic names 'Untitled-1', 'Untitled-2' and 'Untitled-3'.It is possible to replace the generic names of course. In this screenshot they are marked by a red rounded rectangle. 

On top of the decisions to the left you see three buttons, which allow to Add decisions, Remove or Duplicate a decision.  There is no real limit to the number of decisions within one advanced/shared action. 

In the center above the decision names you find two buttons (blue rounded rectangle in screenshot above) which allow to change the sequence of the decisions by moving them to the right or to the left. That sequence is very important! First rule to remember when starting with Advanced/shared actions:

"All commands (actions) within an Advanced or Shared actions are always executed when the action is triggered. They are done always in the same sequence: top to bottom within a decision, left to right in the decision sequence."

Workflows which exist in most programming language to skip part of a long script do not exist. Forgetting about this first rule often leads to logical bugs!

Each decision can be converted into a conditional one by checking the option 'Conditional tab'. The word 'tab' is used there, but I largely prefer the original name 'decision' because Captivate has tabs in many locations, not only in the Advanced Actions dialog box. For a conditional decision, you have the choice between the classical 'IF-THEN-ELSE' which has two sets of commands (THEN, ELSE). One set be will chosen based on the result of the condition.
The WHILE condition leads to an infinite or finite loop. The set of commands will be executed after 1 second, based on the condition:
I would like to offer some tips now both to avoid problems and to streamline the choice of decisions taking into account the limitations mentioned before.

Tip 1: Combining standard and conditional decisions

This tip is based on my experiences with consultancy jobs and answering on the forums.

When starting to create advanced actions it often happens that too much commands are pushed into one conditional decision. I recommend to reflect: which of the commands (actions) have to be done independently of the condition? Those commands will appear in both  THEN and ELSE sections. In that case, take them out and put them in a separate non-conditional decision. 

Same recommendation when using multiple conditional decisions, if some commands appear in all of those conditions.

Example

This scenario appeared several times for debugging on the forums: 'Looping through a number of images  with their text, and showing a Next button after the first loop'.  The loop in this example is done with show/hide, not with a multistate object (which is easier however). Look at the original advanced action, meant for 3 images:

The second/third image and text are hidden in Output. The first image and text are visible. The result of this action is that the loop will not work, that each click on the button will always show the third image, while the counter will indeed loop and the Next button will appear as wanted. Reason is that the last conditional decision overrides the other decisions. Compare this with this solution:

In this action:

  • Texts and Images were grouped, to allow taking out the Hide actions from the conditional decisions.
  • A non-conditional decision was added before the conditional ones to hide the groups before the showing the text/image corresponding with a specific variable value. Moreover the (absolute) Assign command was replaced by Increment.
  • The conditional decisions show text, image. The last one needs also to show the Next button and reset the counter to its original value, which is 0. In that case you need Assign of course.


Tip 2: Multiple conditional decisions - make them mutually exclusive

When you have multiple conditions decisions in sequence (remember the sequence rule), avoid using the ELSE parts. You'll have less possible problems when using only the THEN part and write a conditional decision for each possible situation. If you use the THEN parts, there is a big chance that a later decision will overrule what has been done in the previous ones.

Eventually it is possible to use an ELSE part, but only for the last decision. You need to double-check if that THEN part will not mess up with previous decisions.

Example:

Using the same situation as for the first tip, there is no way to use the ELSE part of the decision 'Second' to replace the decision 'Third'.  The complete action would then look like this:

The result would be that the First decision would never be done, the second image/text never pops up and the Next button will appear after having viewed only the first and third image.


Tip 3: working with Tracking Variables

The first tip already showed how dangerous it is to change the value of a tracking variable within a conditional decision, if you have more than one of those decisions. In most cases it is safer to keep the value change in a non-conditional decision. You are probably aware of the three ways to attribute or change the value of a variable:

  • Assign: which I label as the 'absolute' way, and is valid for both strings and numerical values.
  • Increment/Decrement: often used when you also need a counter.
  • Toggle: typical for a Boolean variable, which is used for an On/Off situation. 

Here are two situations where you will need to have the variable value change within both parts of a conditional action (THEN and ELSE):

3.1 Toggle button action

Such an action will often have only one conditional decision and uses a Boolean variable for tracking. Have a look at this script, which will show/hide an object:

3.2 Non-eternal loop (WHILE)

Such a loop needs to have a way to stop looping. That is done with a tracking variable which needs to be changed within the actions which need repetition. Here is an example from a dice game. The dice number (random) is stored in a variable, and another variable stores the number of stairs which need to be climbed. The screenshots shows only the While decision of the action.




]]>
ir. Lieve Weymeis