Hello! Our team at Octanta Studio introduces Automatic Tutorial Maker (ATM), a Unity tool designed to simplify in-game tutorial creation by automating the process. Just demonstrate actions once, and ATM generates a customizable, step-by-step guide for players. Good for freelancers, outsourced projects, and developers who frequently build casual or unconventional games.
ATM is available on the Unity Asset Store:
☝️ https://u3d.as/3tsL
This asset is optimized for 2D, 3D, UI, and supports desktop (mouse/keyboard) and mobile (touch input). Whether you’re teaching players how to open an inventory, swipe, or perform drag-and-drop, ATM handles it all.
How It Works
ATM records your actions in real-time during gameplay and converts them into tutorial steps. Each step includes visual hints (pointers, graphics, animations) and tracks player progress. For example:
Clicking the "I" key to open the inventory → Generates a step with a text graphic element on Canvas: "Press I."
Dragging a pear into a basket → Creates a step with a drag-pointer and target highlight, and text tip.
Quick Setup
- Import the ATM package into your Unity project.
- Add the TutorialSystem prefab to your scene and unpack it.
- Assign your scene’s Main Camera and UI Canvas to TutorialSceneReferences.
- Run Play Mode, press "Start Recording" in the ATM component during Play Mode. Maximize Game window (recommended) and perform the actions you want to teach.
- Press "Stop Recording" to save the tutorial.
Done! The system auto-generates visual hints and tracks player input. If you enter Play Mode again, you will see generated tutorial as a player.
Key Features
Feature |
---|
Action Recognition: Supports clicks, holds, swipes, drag-and-drop, key presses (WASD, etc.), and more. Detects UI, 2D, and 3D targets automatically. |
Customizable Visuals: UI/World Pointers: Arrows, hands, geotags. UI/World Graphics: Popups, sidebars, swipe animations, text. Animations: Fade, slide, pulse, or create your own. |
Progress Saving: Player progress is saved via JSON between sessions. To clear memory for testing, there is a special "Reset Tutor" button in SSP component in the inspector. |
Advanced Step Control: Run steps in parallel. Trigger steps manually via script. Localize hint text dynamically. |
Optimized Performance: Minimal CPU/GPU impact. Animations use lightweight math operations. Caching targets for pointer hints and clearing memory after steps are executed. |
Supported Visuals: UI & World Hints
ATM offers a wide range of visual hints to guide players. These visuals are divided into UI and World, each with customizable animations and behaviors.
UI Visuals
- UI Pointers: Arrows, hands, or mouse icons on Canvas that point to target elements (2D/3D/UI) and are dynamic. Example: A hand pointer over the UI button with text: "Click here to open the menu".
- UI Graphics: Static or animated elements on Canvas like popups, sidebars, or swipe animations. Unlike pointers these elements are not tied to a specific target. Example: A popup with text: "Click anywhere to continue."
- UI Hovers: Additional Pointers highlighting the final target (e.g., highlighting inventory slot).
World Visuals
- World Pointers: Arrows, geotags, or frames in world coordinates that point to target elements (2D/3D/UI) and are dynamic. Example: A 3D arrow pointing to a door: "Go here to exit."
- World Graphics: Text or particle effects placed in world coordinates. Example: A highlighted static area that the player must enter, with a floating text facing Camera: "Enter the void."
All visuals support custom animations (fade, slide, pulse) and can be easily replaced with your own prefabs.
Code Snippets for Advanced Use
For example, trigger steps via script
[SerializeField] private TutorialSceneReferences sceneReferences;
void StartTutorial() {
sceneReferences.StartTutorialStep(0); // Start step 0
}
or for asynchronously running a step without disabling others:
[SerializeField] private TutorialSceneReferences sceneReferences;
void StartTutorial() {
sceneReferences.AsyncStartTutorialStep(0); // Async start step 0
}
Translate hints at runtime
sceneReferences.ChangeStepVisualText(0, "Presiona I", TextToChange.PointerText);
Force complete a step
sceneReferences.ForceCompleteStep(2); // Skip step 2
Step Customization: Tailor Each Tutorial Step
In addition to recording, a Unity developer can manually use the flexible step system to customize the tutorial.
Example: Customizing a Click/Touch Step
- Set Interaction to Click.
- Set Check Interaction to By GameObject.
- Add the target object to GameObjects list and set it`s type (UI/2D/3D) in ObjectTypes list.
- Assign a UI Pointer to highlight the target object.
- Add text: "Click the object X."
For dynamic/procedurally generated content use Check Interaction: ByTag or ByLayer or set targets manually via StartTutorialStepWithTargets method.
Comprehensive documentation with AI support
Automate repetitive tasks by recording tutorial in minutes instead of hours. Quickly resolve misunderstandings with prefabs and a gallery of templates, such as “Tap to continue” popups and keyboard hints. For full asset support, use the PDF documentation and the AI Helper file to save time on research.
Freelancers and studios can quickly onboard clients with clear tutorials. Casual developers can reuse tutorial logic across similar projects, while innovative developers can explain unconventional mechanics without frustration.
Documentation
Full Docs: GitBook
Top comments (0)