e-learning development
292 TopicsDrawing Annotation on Storyline Slide
Demo: https://360.articulate.com/review/content/518383b2-1161-408d-b9f5-adb9a6f57a11/review Inspired by code discussed on: https://img.ly/blog/how-to-draw-on-an-image-with-javascript/ Using Charts in your Storyline | Articulate - Community About This is a brief example of using an HTML canvas element to enable annotation on a Storyline slide. The example displays an image on a slide, sets a few variables, and the accessibility tags of a some slide objects. It then triggers a JavaScript trigger to create a canvas over the image, and then watches the mouse buttons and movement to allow drawing on the canvas. How it works A canvas element is created, filled with the specified base image, and inserted below a small rectangle (canvasAnchor) that is the same width as and placed directly above the image. Another rectangle (canvasClickArea) overlays and is sized to match the image. This is the area that allows drawing on the canvas (where the mouse is watched). Brush width and color can be controlled. The drawing can be cleared. It also resizes with the slide. To improve The events to watch the mouse and clear button should be better handled to allow removal when a new canvas is created. A mechanism to allow a blank base (clear) should be reinstated. Right now it just relies on the use of the initial image from the slide. Both options have their uses. Since the canvas is a raster image, resizing to very small and then very large results in poor image quality. The image can be extracted from the canvas. This could be saved or printed. More drawing options are available with the canvas element. Credit: X-ray images from https://learningradiology.com/207Views6likes8CommentsTranslation / 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.90Views5likes1CommentListing your own posts /contributions
One big disadvantage of the changes in the new community in my opinion is the 'lesser' searchability of your own posts and contributions. In the past i used that to point potential clients to my Elearning Heroes profile and there they could check my work and contributions especially to Storyline related projects. Now that isnot possible anymore as it is not as easy browsable anymore. So i have to find another solution for that...but i really dislike it, as sharing projects this way was a great way. Helping the community, while building my portfolio.95Views4likes6CommentsArticulate Status and Software
I'd like to open a conversation about disconnecting the use of Storyline from the need to constantly authenticate. I am currently in the middle of an important lesson that has a very specific amount of time budgeted for it, and have essentially been locked out of it. As a government contractor creating emergency training material for use in mission-critical space scenarios, I can't afford to keep defending the use of software that is controlled off-premises, and that can be shut down without warning. We have to fight to negotiate for the time and money to create critical training, and it is unhelpful to be signed out of or wholesale lose access randomly. This, the budding inclusion of AI tools, and the heightened need for cybersecurity awareness makes for a convincing argument to move to a different tool platform that does not need to call home to be used. Please consider giving us better options going forward, to ensure that this work stoppage does not hinder future project timelines.166Views3likes10CommentsClosed Captions Only Displaying on First Line of Video
I'm experiencing an issue with the closed captions on my Storyline 360 imported videos. The captions only appear on the first line of the video and then disappear for the rest of the playback. This is happening even when I manually type the captions or try importing .srt or .vtt caption files. I recently updated Storyline 360 on August 27th, and this issue started occurring after that update. Has anyone else experienced this problem? I've tried troubleshooting it but can't seem to find a solution. Any advice or insights would be greatly appreciated. I'm hoping this is just a temporary bug that will get resolved in a future update, but in the meantime, I'm struggling to get my videos properly captioned. Thank you in advance for your help!107Views2likes4CommentsLooking for a Solution Developer
Hi Heroes! We're on the lookout for a talented Solution Developer with 1-4 years of experience as a Learning Designer and Articulate 360 developer. If you're skilled in creating impactful e-learning experiences and have a strong foundation in Articulate 360, we’d love to hear from you! If you're interested in this opportunity, please leave a comment below with your details. Looking forward to connecting with passionate e-learning professionals! Thank you!49Views1like0CommentsScoring User Drawn Images in Storyline
Huh, my whole previous post just vanished. Trying again... This is a follow-up to a previous discussion post on drawing annotations on a Storyline slide. In a previous post, I demonstrated an approach allowing the user to draw on an image to indicate some kind of response. It utilized a canvas element and intercepted mouse-clicks and movements to draw paths. The next step, as pointed out by Math Notermans, was to score the user’s input in some way. There are several JavaScript libraries available that perform image comparisons, usually returning some kind of quantified pixel difference as a result. Resemble.js is one such option. It returns differences as a percentage of pixels compared to the entire image size. The question is then, how to turn this into usable score? Demo: https://360.articulate.com/review/content/d96de9cf-2fd1-45a5-a41a-4a35bf5a1735/review In this example, I made a few improvements to the annotation script that was posted previously. Most notably, I added a simple undo option that records and recreates user drawings. This also allows for the user’s drawing to maintain its sharpness after resize events, instead of the previous approach of straight scaling. I also changed it to allow drawing on a touch screen (limited testing). I included a loader for Resemble.js, and some code connected to the Check button to evaluate what the user has drawn. While this example is really just meant to demonstrate the process and help you visualize the results, the idea could easily be applied to some kind of complex user interaction that is not better served by more traditional point-and-click or drag-and-drop selections. As this demo shows, it could be particularly well-suited for having users determine the proper pathway for something in a more free-response fashion, as opposed to just selecting things from a list, or dropping shapes. After drawing a response to the prompt, clicking Check will generate a score. The score is based on the comparison of the user’s response to predetermined keys, which are images that you include when building the interaction. I used two keys here, one for the ‘correct’ answer, and one for a ‘close’ answer. You can set it up to include more key options if you need more complexity. Since all we get from Resemble is a difference score, we need to convert that into a similarity score. To do that, I followed these steps. Copy the key images to individual canvases. Create a blank canvas for comparisons. Convert these and the user drawing canvas to blobs to send to Resemble. Compare the user drawing to the blank (transparent) canvas get its base difference. Compare each of the keys in the same way to get their base difference scores. These, along with the visualized differences, are shown on the top three inset images. Then, compare each key with the user drawing to get the compared differences. The comparison order needs to be consistent here. These are shown on the lower two inset images. Calculate the similarity scores (this will be slightly different between scenarios, so you need to customize it to create the score ranges you expect. The similarity is essentially a score that ranges from 0 to 1, with 1 being the most similar. When creating your keys, you need to note what brush sizes and colors you are using. Those should be specified to the user, or preset for best results. Resemble has some comparison options, but you want to make the user’s expected response as similar to the key as you can. For the ‘Correct’ answer: The similarity is just: 1 - (compared difference) / (user base difference + key base difference) To properly range this from 0 to 1, we make also make some adjustments. We cap the (user + key) sum at 100%, and then set the Similarity floor to 0. We also divide this result by an adjustment factor. This factor is essentially the best uncorrected score you could achieve by drawing the result on the slide. Here, I could not really get much over 85%, so we normalize this to become 100%. Next, we do an adjustment that weighs the total area of the ‘Correct’ key to the total area drawn by the user. If the user draws a lot more or less than the correct answer actually contains, we do not want the result to be unduly affected. This eliminates much of the influence caused by scribbling rough answers across the general correct location. Before, scribbling could often increase the final score. This fixed that. Our adjustment is to multiply our current similarity score by: (the lesser of the user or key drawing base differences) / (the square of the greater of the base differences) We use the square in the denominator to ensure that drawing too much or too little will rapidly decrease the overall similarity score. We again cap this final adjusted similarity score at 1, ensuring a working range of 0 to 1. For the ‘Close’ answer: The idea is similar, but may need adjustment. If your close answer is similar in size to the correct answer, then the same procedure will work. In our case, I used a region around the correct answer to give partial credit. This region is roughly 2 times the size of the correct answer. As a result, we only expect a reasonable answer to cover about 50% of the close answer at best, so our minimum compared difference should be about half of the key base difference value. To compensate, we add an additional adjustment factor for the ratio between ‘close’ and ‘correct’ answers (here 2). We set our other adjustment factor like we did before, with the highest achievable uncorrected score (which unsurprisingly is about 0.4 now instead of 0.85). The Final Score is just the greater of the similarity scores times a weighting factor (1 for ‘correct’, 0.8 for ‘close’), converted to a percentage. To improve To make this more useful, you would probably want to load it on the master slide, and toggle triggers from your other slides to make comparisons. Rearrange the code to only call for the processing of the keys and blank canvas once per slide, or only after resizing, instead of each time Check is clicked to save some overhead. Probably should actively remove the previous canvas elements and event handlers when replaced. This uses a bunch of callback functions while processing blobs and comparing images, which requires several interval timers to know when each step is complete before starting the next. Might be able to do it better using promises, or restructuring the code a bit. I think Resemble just works on files, blobs, and dataURIs (e.g., base64 encoded images). Haven’t checked if it can work directly from elements or src links, but I don’t think so. Probably should load Resemble from static code to ensure functionality. Could also load key images from files instead of slide objects. That might be easier for users to locate and view however. There are other library options for comparing images. Some may be faster or more suited to your needs. If they produce a difference score, then the same approach should mostly apply. Fix the sliding aspect of the slide on mobile when drawing with touch.24Views1like0CommentsIssue with Exporting and Importing Translations in Rise 360
Hi Team, I'm facing a translation issue in Rise 360. I followed the three localization steps shown in the video link: https://training.articulate.com/videos/rise-360-translate-your-course Make a duplicate of this course Exported the course text as an XLIFF file from the course duplicate (see attached Export Translation.png). Imported the translated text file (see attached Import Translation.png and Import Successful Message.png). However, after importing, the course content in the source file is still displaying in the original language rather than in the translated language (French). Here is the review link for the Demo for Translation (French) course link: https://360.articulate.com/review/content/89d886bd-a841-4ae9-8403-617c59891281/review. I've also attached the Demo-for-translation-french.xlf file, which contains the French content. Although I see the "Import Successful" message, the content does not update to French. Note: I have selected French from the Custom Course Labels dropdown under Labels, which applies to the French language in the player but does not affect the course content. Could you please advise on best practices for exporting and importing translations?27Views1like0CommentsIntegrate HeyGen Interactive Avatar API into Storyline 360 Rise Block.
Has anyone successfully integrated a chatbot or interactive avatar with a large knowledge base into Storyline 360 or RISE? I am trying to figure it all out but there are so many different parts, and I am truly new to working with APIs. Any advice would be appreciated.Solved58Views1like3CommentsGSAP aquired by Webflow
On GSAPs site this mentioned. Whether it will have consequences for Articulate and Storyline has to be seen. They state none for existing users. Whether the use Articulate makes of GSAP will continue unhampered is wait and see. It even might turn out positive.52Views1like1Comment