Cutscenes

From Luma's Workshop
Jump to navigation Jump to search
This page is in progress and may contain incomplete information or editor's notes.

Cutscenes are flexible, complex scenes, which can execute more freedom in contrast to the SimpleDemoExecutor. These scenes consist of individual sequences that are played in order. In each sequence, several actions can be executed from certain frames, such as changing the player's position, camera movements, sound effects, and more. To each sequence (and subsequence) different actions are linked, which are then executed at the time of this sequence.

You can best visualize this in a kind of timeline. The timeline consists of the individual sequences, which consist of several actions. At the same time single subscequences can be executed together with the actual sequences.

Structure

A cutscene is activated by a demo object via SW_APPEAR within the map and loads several sheet BCSV files located in the demo.arc archive of the respective galaxy/zone. The demo object loads the bcsv files using its defined sheet name and additional "Demo" in front of the file name of the BSCV attached and a respective sheet type at the end of the file name (e.g. DemoAfterGameOverTime).

In addition, the demo object has its own cutscene name, which is only used in certain cases (e.g. to load certain sequences for Starship Mario) and also for camera codes. Otherwise it can be used as a recognition name.

Objects other than the player object itself can be linked to the cutscene. These then use a cutscene group ID, which on the one hand must match the demo object ID and on the other hand must be entered in the action sheet together with the Japanese name of the object (defined in ObjNameTable).

If there are several identical objects that are part of a cutscene, you can also define a cast group id for one specific object to distinguish it from the other identical objects for the scene.

Time

Defines the individual sequences with their names and length. They are played in the order they are in the list.

Field Name Type Description
PartName STRING_OFFSET Name of the sequence
TotalStep LONG Duration of the sequence in frames
SuspendFlag LONG If set to 1, pauses the cutscene and resumes gameplay. The cutscene will continue from here next time it is activated.
WaitUserInputFlag LONG

SubPart

Runs additional subsequences in parallel during a sequence.

Field Name Type Description
SubPartName STRING_OFFSET Name of the sub sequence
SubPartTotalStep LONG The length of the sub sequence
MainPartName STRING_OFFSET Name of the main sequence this sub sequence belongs to
MainPartStep LONG The frame of the main sequence this sub sequence starts at

Action

Picks up objects and can position them to a given GeneralPos and play an animation.

Field Name Type Description
PartName STRING_OFFSET Sequence Name
CastName STRING_OFFSET Japanese Name of the object (defined in ObjNameTable)
CastID LONG Cast ID of the object
ActionType STRING_OFFSET Pick an Action Type from the table below.
PosName STRING_OFFSET Name of the GeneralPos object for destination location
AnimName STRING_OFFSET Name of the animation, which can be loaded either from the ARC archive object or from a separate ARC archive with the additional name "Anim".

Action Types

Note that these action types are not available for any object that registers as a "Simple Demo Cast".

ID Name Description
0 Play Animation Plays the animation that "AnimName" is set to. This happens for all Action Types.
1 Apppear Makes the object Appear.
2 Kill Makes the object Disappear (using it's Kill function).
3 Special Function Executes a function that the object specifically registered to the cutscene. This is object specific, and not every object has one.
4 Special Nerve Sets the objects Nerve to a nerve specifically registered to the cutscene. This is object specific, and not every object has one.
5 On SW_A The SW_A of this object will be activated.
6 On SW_B The SW_B of this object will be activated.
7 Show Model The model of the object will be unhidden.
8 Hide Model The model of the object will be hidden.
9 Start NPC Message Start a conversation with an NPC. Effectively useless because NPC's do not register their text to cutscenes unless the cutscene has a specific name.
10 Start NPC Message (Alt) Start a conversation with an NPC without stopping Mario's current animation. Effectively useless because NPC's do not register their text to cutscenes unless the cutscene has a specific name.
11 Duplicate of 10 Duplicate of 10.
12 Off SW_A The SW_A of this object will be deactivated.
13 Off SW_B The SW_B of this object will be deactivated.
14 Request Movement Off Tries to pause execution of this object.
15 Request Movement On Tries to resume execution of this object.
16 StoryBookWarpDemo Unknown. Related to StoryBookWarpDemo. Uses 1 as arg.
17 StoryBookWarpDemo Unknown. Related to StoryBookWarpDemo. Uses 0 as arg.
18 StoryBookWarpDemo Unknown. Related to StoryBookWarpDemo.
19 StoryBookWarpDemo Unknown. Related to StoryBookWarpDemo.


Player

Can position Mario/Luigi to a specific GeneralPos and play an animation.

Field Name Type Description
PartName STRING_OFFSET Name of the sequence
PosName STRING_OFFSET Name of the GeneralPos to teleport the player to
BckName STRING_OFFSET Name of the animation from MarioAnim.arc to play. (All other animationtypes than BCK are also supported)
Visible LONG

Camera

Lets play a camera from the Map archive's CameraParam.bcam file, that can also be fixed to certain objects. By default it is fixed on Mario/Luigi.
The Camera ID name to be used is composed of the PartName and the Cutscenename (not the sheet name): e:Cutscenename[PartName].

The fields that start with "Anim" are possibly for key frame camera animations which are controlled via CANM files. However this has yet to be confirmed.

Field Name Type Description
PartName STRING_OFFSET Name of the sequence
CameraTargetName STRING_OFFSET Japanese Name of the object the camera is focussed at.
CameraTargetCastID LONG Cast ID of the object
AnimCameraName STRING_OFFSET
AnimCameraStartFrame LONG
AnimCameraEndFrame LONG
IsContinuous LONG

Sound

Can change music and play sound effects.

Field Name Type Description
PartName STRING_OFFSET Name of the sequence
Bgm STRING_OFFSET
SystemSe STRING_OFFSET
ActionSe STRING_OFFSET
ReturnBgm LONG
BgmWipeoutFrame LONG
AllSoundStopFrame LONG

Wipe

Can perform a fade out animation.

Field Name Type Description
PartName STRING_OFFSET Name of the sequence
WipeName STRING_OFFSET
WipeType LONG
WipeFrame LONG

Tools

Up to now, there are no tools that allow the cutscenes to be edited directly in a clear interface. Since the cutscenes sheet consists of BCSV files, they can be edited with any other BCSV editor, like Whitehole. They can also be converted to CSV files and vice versa with Pyjmap.

The tools can be found on the tools and ressources page.