advice
400 TopicsTranslation / localization
Hi, We currently have our course in English only, but more and more we get requests to translate the content. The content is mostly text and speech (generated with the text to speech feature). I know about the feature on how to export, translate and import again, but now with AI and LLM and translation tools like DeepL is there a smarter and easier way to do it than duplicating slides and courses in different languages? Anyone with ideas, experience or suggestions? I am happy to hear what you think.104Views5likes1CommentUsing AI Assistant in a Rise Course Template
Hi All, Has anyone established if you can use the AI Assistant as part of pre-developed course template. I can see that you can use it within lessons themselves, so what I'm looking for is a way whereby you can upload the source documents for a new development, which retains all the course template features i.e company logos, brand colours etc... From what I can see, I don't think that's an option. My impression when this feature was first made public knowledge was that we could upload source documents and the AI Assistant would take the information contained within those documents and turn them into lessons, for us as Developers to then refine further if required. As an example, I've just uploaded a PowerPoint, and all it did was provide a suggested course title and created a course outline based on that title. It was then down to me to create lessons within each of those sections and add content, with none of the information from the PowerPoint anywhere to be seen. Am I missing something?369Views3likes12CommentsTIP: Let the user choose their path
The attached file demonstrates how to let users choose a unique path through a course based on their role or othercircumstances. It includes two methods: How to navigate when the user can only select 1 option. How to navigate when the user could select more than 1 option. Notes The built-in Menu isnot shown in the demo file. That's because Storyline can't rebuild the menu based on which path is selected. Both methods use trigger conditions and variables. It’s worth the effort to learn about those, because they provide the real power in Storyline. Here’s more information: This post provides an overview of variables. It also links to numerous resources. The Value of Variables | Articulate - Community The User Guide articles about triggers include some about conditions. Storyline 360: Working with Triggers | Articulate - Community90Views2likes0CommentsTIP: Track Responses to Custom Questions or Surveys
Do you want to customize a course based on the results of a survey? Do you want to create questions that assign different point values to different responses? In other words, do you want to track responses? You can do that by adjusting the values of number variables based on which buttons are selected. Then add up those values, anduse that "total score" to customize what happens next. The attached demo file shows you how. It includes two examples: how to track multiple single-response items (like a Likert scale) how to track multiple-response slides In addition to the demos, the file explains how the triggers work. I hope this is helpful for those who want to track custom surveys and/orcreate question slides that assign different values to each response (instead of just grading right or wrong).331Views1like9CommentsTIP: Limit How Many Selections a User Can Make on a Multiple-Response (Pick-Many) Question
Have you ever wanted to ensure that a user would select a specific number of responses for a multiple-response question? The attached file demonstrates how to do. It also explains the programming.40Views1like1CommentTIP: Controlling the NEXT Button 101
It's great to let users explore content on their own. But sometimes you need to ensure they view the full timelines on the slides and complete the interactions. For example, this might be required for compliance/regulatory reasons. In other words, sometimes you need to control when the Next button is disabled and enabled. The attached file demonstrates how to control the Next button in these situations: Force users to view the full timelineon all slides by usingRestricted navigation Force users to complete an interaction byverifying that all of the buttonshave been clicked Force users to view the full timelines on the slide layers by verifying that all of the timelines have been completed The demo also explains how the triggers work. Nothing new here for advanced users. But I hope newbies find thishelpful. By the way, this is about controlling the Next button while the user remains on one slide. If the slide branches to other slides, well, that's a custom menu. You'll find details about those here: TIP: Create a Custom Menu Slide | Articulate - Community568Views1like20CommentsTIP: Build a Rise Course with a Pretest
There is a way to include a pretest in a Rise course! Rise doesn't have pretest functionality built in—at least, not yet. But it can be done using a few Storyline blocks, some button blocks, and navigation restrictions. This demo shows how to let a user skip the content if they pass. If they fail, they have to go through the content. Rise course with pretest Caveats:The program can't tell the LMS if the user passed the pretest or if they went through the content. And it can't tell the LMS the user's score. But it can tell the LMS that the user "completed" the course. *** UPDATE 2024-01-17 *** As per Ingrid Marcum's comments below, there's another caveat. If a user fails the pretest, exits the course before proceeding to the content, and then relaunches the course, the Storyline block will reset. In other words, the user would be able to retake the pretest. As Ingrid said, the Articulate staff "confirmed that the storyline blocks will always reset when revisiting the page in Rise." So, alas, this method isn't a solution if you're concerned about users doing that.360Views1like29CommentsPRIMER: Take advantage of built-in states
Many problems posted in the Forum are related to triggers that do what’s already done automatically by the built-in states (Normal, Hover, Down, Visited, Selected, Disabled). This Review 360 project demonstrates how the built-in states work: https://360.articulate.com/review/content/eaccc037-929b-43b5-b636-5333181a9c70/review Overview of built-in states When you insert a button, it will have the Normal, Hover, Down, Visited, and Disabled When you add multiple-choice or multiple-response question, the response buttons will have the Normal, Hover, Down, Selected, and Disabled You can add built-in states to any text box, shape, picture, illustration, or icon. There are also built-in states available for draggable objects in a drag-and-drop interaction. These include Drag Over, Drop Correct, and Drop Incorrect. How the basic built-in states work When an item has a Hover state, that state will automatically display when the user’s mouse is over the item. The Hover state will go away when the user’s mouse is no longer over the item. When an item has a Visited state, that state will automatically display when the user clicks the item. When an item has a Selected state, the first click automatically changes the state to Selected. The next click changes it back to Normal. And repeated clicking toggles between the two states. When multiple items with the Selected state are in a button set, clicking one of those items will change it to Selected and will automatically change the other items in the set to Normal. (Here’s more information: Storyline 360: Working with Button Sets | Articulate - Community) When multiple items with Selected and Visited states are in a button set, clicking an item will change it to Selected. Any item that has not been clicked will remain Normal. Any item that was previously clicked will change to Visited. When an item is Disabled, it will no longer be clickable. In other words, triggers that are set to run when the item is clicked will not run when the item is in the Disabled Hidden is a unique state. It doesn’t show in the States panel—and you should not create a state called Hidden. Instead, when an item is put into the Hidden state, Storyline automatically hides it. How the drag-and-drop built-in states work An object being dragged will change to its Drag Over state whenever any part of the object intersects with any of the drop targets. An object will change to its Drop Correct state when it is dropped onto the correct target. An object will change to its Drop Incorrect state when it is dropped onto the incorrect target. Triggers that duplicate the built-in actions often cause problems. Instead, save time—and troubleshooting—by taking advantage of what the built-in states do automatically. Bonus tip: You don’t need a trigger to change an item to a given state when the timeline starts. Instead, set the Initial state dropdown list to the desired state.104Views1like3CommentsIssue with Execute JavaScript Trigger in Storyline 360
I am working on a project in Articulate Storyline 360 and I'm trying to execute a JavaScript function when the timeline starts on a slide. The function is supposed to replace the default values of project text variables with specific messages based on the slide number. Here is the JavaScript code I'm using: function setTexts(slideNumber) { console.log("setTexts function called with slideNumber: " + slideNumber); // Log the function call var correctTexts = [ "This is a credit card statement with the amount of money that student owes.", "This document is intended to give a record of purchases and payments. It gives the card holder a summary of how much the card has been used during the billing period, as well as the amount that is due for that billing cycle." ]; var incorrectPromptTexts = [ "Here's a hint, there are dollar amounts on there and itemized activity, what type of document best fit these?", "Think about why you would need a statement for bills, please try again." ]; var studentUnderstandTexts = [ "Got it! I always get these confused with my car insurance for some reason.", "Yes now that I think about it, having an itemized record is very helpful, even if it's quite annoying to always get these in the mail." ]; var positiveFeedbackTexts = [ "_user_ you answered correctly! Awesome job!", "_user_ you got the question correct!", "_user_ you answered correctly awesome job!", "_user_! You answered correctly!", "_user_! You answered the question right!", "_user_, You answered right!", "_user_, You answered the question right!", "_user_, you answered correctly! Keep it up!", "_user_, You answered the question right! Keep up the great work", "_user_ you are doing great! Keep it up!" ]; var negativeFeedbackTexts = [ "_user_, sorry. the answer you gave wasn't what I was looking for.", "_user_, your answer was not quite right.", "_user_, It looks like you picked the wrong answer.", "_user_, I'm afraid the answer you chose wasn't the best one." ]; var player = GetPlayer(); // Log the text being set for each variable var correctText = correctTexts[slideNumber - 1]; console.log("Setting Correct to: " + correctText); player.SetVar("Correct", correctText); var incorrectPromptText = incorrectPromptTexts[slideNumber - 1]; console.log("Setting IncorrectPrompt to: " + incorrectPromptText); player.SetVar("IncorrectPrompt", incorrectPromptText); var studentUnderstandText = studentUnderstandTexts[slideNumber - 1]; console.log("Setting StudentUnderstand to: " + studentUnderstandText); player.SetVar("StudentUnderstand", studentUnderstandText); // Randomly select positive and negative feedback var randomPositiveFeedback = positiveFeedbackTexts[Math.floor(Math.random() * positiveFeedbackTexts.length)]; var randomNegativeFeedback = negativeFeedbackTexts[Math.floor(Math.random() * negativeFeedbackTexts.length)]; console.log("Setting PositiveFeedbacktoUser to: " + randomPositiveFeedback); player.SetVar("PositiveFeedbacktoUser", randomPositiveFeedback); console.log("Setting NegativeFeedbacktoUser to: " + randomNegativeFeedback); player.SetVar("NegativeFeedbacktoUser", randomNegativeFeedback); } // Call the function with the current slide number setTexts(GetPlayer().GetCurrentSlide().GetSlideNumber()); When I preview the project, the console provides the following message: bootstrapper.min.js:2 actionator::exeJavaScript - Script1 is not defined I have defined the setTexts function and ensured that it is called correctly in the "Execute JavaScript" trigger, but the error persists. Steps I've Taken: Defined thesetTextsfunction. Added the function callsetTexts(GetPlayer().GetCurrentSlide().GetSlideNumber());in the "Execute JavaScript" trigger. Verified that the function is being called correctly. Any help or suggestions on how to resolve this issue would be greatly appreciated. Thank you!44Views1like2Comments