MonTamer Maker Documentation - Cutscenes
Creating a Cutscene
To create a cutscene in MonTamer Maker, you need to place an obj_cutscene_trigger object in the world. When a player walks over this object, a check is triggered.
Cutscene Trigger Conditions
Each obj_cutscene_trigger has the following instance variables that determine when the cutscene is executed:
quest_num: The quest being checked. 0 is the main story quest.
quest_val: The quest value required to trigger the cutscene. It starts at 0, meaning quest_num 0, and quest_val 0 would be the first main story quest check.
script_name: The name of the script to run when the conditions are met, e.g., scene_intro, scene_the_end.
These are the main parts of the obj_cutscene_trigger and all you need to worry about for now. To view these, simply drag a obj_cutscene_trigger into a room, double click it, and then click on "variables". We'll go over the other options later
Cutscene Script Structure
A cutscene script is essentially a list of pre-made functions that users can call to build their own scenes. These functions take various arguments like text, coordinates, and other values to customize cutscenes.
Example Cutscene Script
Below is an example of a full cutscene script:
How to Make your First Cutscene
All cutscenes are found in the "cutscenes" script, which is found in Scripts > Story & Characters > cutscenes (double click to open).
To make a new one, simply write (or copy and paste the template) under, or above any existing cutscene functions.
For example, under function scene_intro(){ you might write something like this: function scene_professor(){
Here's how the whole process would look after you're finished:
Explanation of Commands used
Here where I've placed this purple comment is where you'll put all of your cutscene functions, the parts that make up your talking and moving characters. Let's take another look at the scene_intro cutscene, and what cutscene function were used to make it.
START_SCENE: *Required for all cutscenes. This sets up and initializes the scene.
PLAY_SFX: Plays a sound effect.
FADE_OUT_SOUND: Fades out background music or other sounds.
MOVE_CAMERA: Moves the camera to specified coordinates.
SET_NPC_DIRECTION: Changes the facing direction of an NPC.
SET_EMOJI: Displays an emoji or reaction above an NPC.
ADD_TEXT: Displays text on the screen.
WAIT_INPUT: Pauses until the player presses a button.
CLEAR_TEXT: Clears on-screen text.
CLEAR_CAMERA: Resets the camera to its default position (following the player)
PLAY_SOUND: Resumes the background music.
END_SCENE: *Required for all cutscenes. This marks the end of the cutscene and returns movement to the player
Important: Notice how all of the functions are surrounded by an "A()" bracket? This is a macro that we use to store all the data about your cutscene and compile into a list which we later use to run your cutscene. This macro is a separate function we built, that helps us run all the parts of the cutscene in chronological order, with waiting periods in between each event (for example when you use functions like wait_input, wait, and so on).
This means, any data NOT properly stored in an "A()" bracket will be executed instantly upon stepping on the cutscene trigger.
When building a cutscene, make sure to use "A()", put the name of your script first, and the arguments after that.
Customization
MonTamer Maker allows users to modify cutscenes by:
Changing text dialogues
Adjusting camera movements
Adding NPC actions and interactions
Using custom sound effects and background music
And much more. See the full list of cutscene functions to see what the cutscene system is capable of
You can find a full list of the possible cutscene functions by opening up the "cutscene_functions" script, which is right below "cutscenes" in the same folder. Each function has an explanation of what it does, argument descriptions to tell you what to put where (i.e. "text" would mean you should write a message, like "hello world!"), and the code that makes the function work.
We don't recommend modifying any of the code unless you know exactly what you're doing, and instead, just using the pre-built functions and putting in your arguments as needed.