-
Notifications
You must be signed in to change notification settings - Fork 57
Creating a Cutscene
Create a folder named data
in your mod's main directory, then create a folder named cutscenes
in that folder.
Create a folder named videos
in your mod's main directory, put your video files in here (any format that VLC Media Player can play).
Create a folder named shared
in your mod's main directory, then create a folder named cutscenes
in that folder.
For both types of cutscene, there are templates in the [BASE ASSETS]/data/cutscenes/
. You can copy-paste these, and modify them to fit your needs.
When making a dialogue cutscene, there are many settings to choose from, in this section, I show what (most of them) do.
dialogueBox
is the setting for the file path to the dialogue box spritesheet (PNG and XML)
dialogueBoxSize
is the scale of the dialogue box
dialogueBoxFlips
is whether the dialogue box whenever it's the right side's turn to talk
dialogueMusic
is the path to the music that plays during a cutscene (this path comes from the folders: shared
and then music
(in shared
), so add those into your mod if you plan on adding custom cutscene music).
Each dialogue cutscene has different sections that contain different text, character portraits, etc.
This lists all the settings.
side
determines which character is speaking (the one on the left
, or right
, any other value other than left
or right
is invalid and may have unexpected glitches / crashes).
showOtherPortrait
determines whether or not to show the opposite character portrait to the one that is currently talking (like in Roses, where bf speaks and senpai is still there)
leftPortrait
determines all the settings of the character portrait on the left
rightPortrait
is the same as leftPortrait
but for the right character obviously
has_Hand
determines whether a small hand shows up during dialogue
(Used in Week 6 Dialogue)
hand_Sprite
same settings as leftPortrait
and rightPortrait
but just is for the small hand instead of a portrait
dialogue
determines the style and text of the dialogue
(Week 6 Dialogue Styling)
(More FNF-Styled Styling)
box_FPS
determines the FPS of the current animation the dialogue box is displaying
open_Box
determines whether to play the box_Open
animation or do nothing
box_Antialiased
determines if the dialogue box is antialiased
box_Anim
determines the animation name (in XML) that the dialogue box plays when idling
box_Open
determines the animation name (in XML) that the dialogue box plays when opening a new section with open_Box
set to true
This section lists all settings for the dialogue
setting in each dialogue section
text
determines the actual string text that is displayed (needs \n for line breaks if alphabet
is set to true)
sound
determines the path of the sound that plays each time a new text character is shown (this path comes from the folders: shared
and then sounds
(in shared
), so add those into your mod if you plan on adding custom cutscene dialogue sounds)
color
just sets the color of the text (in hex code)
shadowColor
just sets the color of the text shadow (if the text has a shadow) (in hex code)
hasShadow
a true or false setting that determines if a text shadow is added to the text
font
determines the path to the font that the text uses (with extension, and starting from the fonts
folder which you need to add to your mod if you add custom fonts)
size
determines the size of the text (unless alphabet
is set to true)
box_Offset
is an array of two ints ([x,y]) (non-decimal numbers) that is used to offset the text
text_Delay
determines the speed at which letters are revealed in the text
shadowOffset
is how many pixels the shadow is offset from the regular text
alphabet
determines if the text uses the built-in alphabet font for it's text rendering (this disables a lot of things which are: text_Delay
, size
, hasShadow
, shadowColor
, color
, sound
) (although in future, it may not disable this many things, currently it does)
To add your cutscene into a song, open it up in the charter, open the Song Options
tab, and put the name of your cutscene (without .json) here