Cutscene

From GTAMods Wiki
Revision as of 03:39, 2 January 2009 by Seemann (talk | contribs) (cross-links added)
Jump to navigation Jump to search

Cutscenes are short sequences between, after or in front of missions.

San Andreas Cutscenes

In San Andreas cutscenes are only loaded using SCM. You cannot control the camera movement in via SCM. They are usually stored externally in the anim\cuts.img archive. Each cutscene consists of 3 files with the same name and a different extension. These extensions are: .cut, .ifp and .dat.

Whilst modification of existing cutscenes is possible through the files detailed below, new cutscenes cannot be added to the game unless they have a filename that already exists. This is due to the presence of an internally hardcoded table which links each cutscene (the .cut, .ifp and .dat files) to its audio stream and it does so by cutscene filename.

Cutscene data

The CUT File

The .cut file is loaded first. It contains the important data of the cutscene like its offset and the loaded models. The models of an cutscene are usually stored in the models\cutscene.img archive. It's split up into certain sections. Not every cut-file requires all sections, but it is better to include all sections into a cut-file and leave unused sections empty.

INFO

The info section contains information to the offset. It describes the 3D-coords of a point to which all other coords in the rest of the files are relative. Its format is

info
offset X Y Z
end

The offset parameter can also be set using opcode 0244.

MODEL

The model section contains information about models the cutscene uses. The models don't need to be defined in the IDEs. But the texture name must be the same as the model's one. The model section also attaches models to animations in the IFP-animation archive. Its format is:

model
?, name, animation
end

Where the name is without extension, and the animation describes an entry in the IFP file. The unknown value is a number, which is always 1 and actually is ignored by the game.
There is a Limit to 50 entries here!

EXTRACOL

Extracol stands for "Extracolor" and sets the active interior's color. It corresponds to the opcode 04F9.

extracol
Number
end

Extracolours can be edited in the TimeCyc_Definition file

TEXT

The text section displays a GXT Entry at an certain point of time relative to the cutscene start.

text
starttime, length, gxt
end

Where the numbers are integer and define the time in milliseconds.

UNCOMPRESS

the uncompress-section uncompresses the IFP animations.

uncompress
Animation
end
PEFFECT

stands for the particle effect and sets an particle effect from the effects.fxp.

peffect
effectname, starttime, endtime, unknown_number, bone, X, Y, Z, ?, ?, ?
end

The bone is a number of the body part the particle effect is attached to.

REMOVE

Removes an static (IPL-mapped) object being placed at specified coord.

remove
Objectname, X, Y, Z
end
ATTACH

Actually the content and use of this section is unknown. It is rarely used.

attach
Number, Number, Number
end
MOTION

This section is ignored by the game!

The DAT-File

The dat-file contains information about the camera movements during the cutscene.

It consists of 4 blocks:

  • Block1: Rotation
  • Block2: Zoom
  • Block3: CameraPositions
  • Block4: CameraTargetPoints

Each block starts with an integer number being the number of entries in this block, followed by its content and ended by a semicolon. The whole file is also marked as finished with an additional semicolon. Each line is marked as finished by an simple comma. The file describes 3 lanes, where the last 2 ones are ignored. So those 3 lines could be set identically by editors. This gives a general format:

TimeOffset,Lane1,Lane2,Lane3,

The TimeOffset is an floating value which defines the time of the event in seconds. The game interpolates the curve between the 2 points.

Block1 - Rotation
TimeOffset,Rotation(Lane_1),Rotation(Lane_2),Rotation(Lane_3),

Describes the rotation around the vector towards the target point in euler angles (degree).

Block2 - Zoom
TimeOffset,Zoom(Lane_1),Zoom(Lane_2),Zoom(Lane_3),

Defines the focal of the camera for each lane.

Block3 - Cameraposition
TimeOffset,X(Lane_1),Y(Lane_1),Z(Lane_1),X(Lane_2),Y(Lane_2),Z(Lane_2),X(Lane_3),Y(Lane_3),Z(Lane_3),

Defines the position of the camera relative to the offset point.

Block4 - Target
TimeOffset,X(Lane_1),Y(Lane_1),Z(Lane_1),X(Lane_2),Y(Lane_2),Z(Lane_2),X(Lane_3),Y(Lane_3),Z(Lane_3),

Defines the position of the target of the camera relative to the offset-point.

The IFP animation archive

This is an ANPK (Animation Package v1 | GTA III/VC) IFP file including the animations used for the cutscene. For the file specification look here: IFP Animations. The positions of the bones and animated objects in the animation are relative to the offset defined in the INFO section of the .cut file.

List of Cutscenes in San Andreas

Cutscene Description
bcesa4w
bcesa5w
bcesar2
bcesar4
bcesar5
bcras1
bcras2
bhill1
bhill2
bhill3a
bhill3b
bhill3c
bhill5a
bhill5b
cas6b_1
cas6b_2
cas_11a
cas_1a
cas_2
cas_3
cas_4a
cas_4b
cas_4c
cas_5a
cas_6a
cas_7b
cas_9a1
cas_9a2
cat_1
cat_2
cat_3
cat_4
cesar1a
crash1a
crash3a
crashv1
crashv2a
crashv2b
cuttest
d10_alt
d8_alt
date1a
date1b
date2a
date2b
date3a
date3b
date4a
date4b
date5a
date5b
date6a
date6b
desert1
desert2
desert3
desert4
desert6
desert8
desert9
des_10a
des_10b
doc_2
epilog
farl_2a
farl_3a
farl_3b
farl_4a
farl_5a
final1a
final2a
final2b
garag1b
garag1c
garag3a
grove1a
grove1b
grove1c
grove2
heist1a
heist2a
heist4a
heist5a
heist6a
heist8a
intro1a
intro1b
intro2a
prolog1
prolog3
riot4e1
riot4e2
riot_1a
riot_1b
riot_2
riot_4a
riot_4b
riot_4c
riot_4d
ryder1a
ryder2a
ryder3a
scrash1
scrash2
smoke1a
smoke1b
smoke2a
smoke2b
smoke3a
smoke4a
steal_1
steal_2
steal_4
steal_5
strap1a
strap2a
strap3a
strap4a
strp4b1
strp4b2
sweet1a
sweet1b
sweet1c
sweet2a
sweet2b
sweet3a
sweet3b
sweet4a
sweet5a
sweet6a
sweet6b
sweet7a
synd_2a
synd_2b
synd_3a
synd_4a
synd_4b
synd_7
truth_1
truth_2
w2_alt
woozi1a
woozi1b
woozie2
woozie4
zero_1
zero_2
zero_4

SCM (OpCodes)

  • 0244 - SetsCutscenePosition
  • 02E4 - LoadsCutsceneData
  • 02E7 - StartsCutscene
  • 02E8 - GetsCutsceneTime
  • 02E9 - HasCutsceneReachedEnd
  • 02EA - EndsCutscene
  • 03B7 - ProcessCutsceneOnly
  • 06B9 - IsCutsceneDataLoaded
  • 08D0 - IsCutsceneSkipped
  • 08F0 - SetsCutsceneModelTexture

External Links