Difference between revisions of "Cutscene"
m (→MOTION) |
m (→MOTION) |
||
Line 79: | Line 79: | ||
=====MOTION===== | =====MOTION===== | ||
− | '' | + | ''Unused section'' |
====The DAT-File==== | ====The DAT-File==== |
Revision as of 12:33, 24 January 2015
Cutscenes are short, pre-animated sequences before, during or after missions. Their purpose is to advance the plot and give background information about characters, situations and actions.
San Andreas Cutscenes
In San Andreas cutscenes are only loaded using main.scm. However, camera movement during cutscenes can't be controlled via script. This data is usually stored externally in the anim\cuts.img
archive. Each cutscene consists of 3 files with the same name and a different extension: .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 streams 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.dat.
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
Unused section
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 | The Meat Business mission cutscene |
cas_7b | Fish in a barrel mission cutscene |
cas_9a1 | |
cas_9a2 | |
cat_1 | |
cat_2 | |
cat_3 | |
cat_4 | |
cesar1a | |
crash1a | |
crash3a | |
crashv1 | |
crashv2a | |
crashv2b | |
cuttest | a simple cutscene test, all you can see is a window moving |
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 | the game's ending |
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 | Just Business mission cutscene |
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
GTA IV
GTA IV Cutscene are loading by .SCO scripts. .WAD file has information about ped movement and .CUT file contain sections [or Tag] with information about Peds that uses in this cutscene. Some sections like DRAW_DISTANCE, FLAGS, BLOCKING_BOUNDS, CAMCORDER and TEXT are not used within the sections.
Tags description
ID:0 - SECTION_START
The tag indicates the start of the section cutscene.
ID:0 - SECTION_END
The tag indicates the end of the section cutscene.
ID:1 - OFFSET
A point that defines the beginning of the coordinate system cutscene
float X, float Y, float Z
Example:
[OFFSET] -109.416000 -265.023010 14.785000 [/OFFSET]
ID:2 - CUTSCENE_HEADER
Information about the range of the frames in this cutscene. How much frames it uses.
ID:3 - DURATION
determines the length of sections.
Example:
[DURATION] 45466.667969 [/DURATION]
ID:4 - ANIM
File Name of WAD, that contain animations for cutscene.
string WADName
Usually, this is <cutscene name>_<ID section>
Example:
[ANIM] RB_1_1 [/ANIM]
ID:5 - MODELS
Contain info about subject, that are present in the cutscene, their models and animations.
int ID, string ModelName, string AnimName, string HeadAnimName, int Unknown
- ID - object identifier that can be used in other tags
- ModelName - model name (models for cutscene placed in cutsprops.img)
- AnimName - animation name for the subject from WAD file
- HeadAnimName - The name of the person's face animations from WAD file
One section in cutscene may to use 570 subjects.
Example:
[MODELS] 0 CS_Davethemate CS_Davethemate_0 Davethemate_head_0 1 player player_0 player_head_0 2 CS_Hossan CS_Hossan_0 cs_hossan_head_0 0 3 CS_WhippingGirl CS_WhippingGirl_0 4 csWhip csWhip_0 5 csToolBox csToolBox_0 [/MODELS]
ID:6 - VEHICLE_DETAILS
Assigns certain characteristics of transport.
int ID, int color1, int color2, int color3, int color4, int dirtLevel, int livery
- ID - Identifier subject (defined in the tag MODELS)
- color 1...4 - Identifier of colors (from carcols.dat)
- dirtLevel - Pollution level (0-15, standard - 0)
- livery - The type of used logotype (standard - 1) (for example: Enfoncer)
ID:7 - VEHICLE_REMOVAL
It is used to remove the detail from the car in cutscene.
Number, BoneID
Number - Serial number of the model, which is recorded in the tag [MODELS].
BoneID - Identifier bone.
Example:
[MODELS] 0 Banshee Banshee_0 [/MODELS]
[VEHICLE_REMOVAL] 0 15301 [/VEHICLE_REMOVAL]
ID:8 - CAMCORDER
Specifies the time the on/off "camera mode"
int StartTime, int EndTime
- StartTime - Time start of "camera mode"
- EndTime - Time end of "camera mode"
Maximum number of the string - 30
Example:
[CAMCORDER] 14900 19666 24199 27833 31633 37600 64766 67533 72466 100233 [/CAMCORDER]
ID:9 - VARIATION
ID:10 - REMOVE
ID:11 - FIXUP
This section is unknown. Below you can see its structure:
unk float1, unk float2, unk float3, unk string, unk float4
ID:12 - CAMERA
Camera name in the .WAD file.
Example:
[CAMERA] camera_0 [/CAMERA]
ID:13 - AUDIO
The tag is responsible for the use of an audio file of cutscene.
All audio files are placed for cutscene in this archive - cutscenes.rpf
Example:
[AUDIO] myaudio [/AUDIO]
ID:14 - TEXT
Displays text at the bottom of the screen.
starttime, length, gxt
- starttime - start time (in ms)
- length - duration (in ms)
- gxt - string name in gxt
Example:
[TEXT] 10817 683 MY_TEXT_1 12250 1033 MY_TEXT_2 15017 2033 MY_TEXT_3 [/TEXT]
ID:15 - ATTACHMENT
ID:16 - PROPS
int ModelID, int index, int prop
- ModelID - ID of the model in MODELS section.
Max number of the strings - 50.
ID:17 - FLAGS
Section for flags. They sets some additional effects or parameters for cutscene.
Example:
[FLAG] SHORT_FADE_OUT [/FLAG]
LIST OF FLAGS
ID | Flag name | Description |
---|---|---|
1 | FADE_BETWEEN_SECTION | |
2 | NO_VEHICLE_LIGHTS | Vehicle light does not |
4 | SHORT_FADE_OUT | |
8 | LONG_FADE_OUT | |
16 | ||
32 | FLAG_DONT_FADE_IN_FROM_GAME | |
64 | FLAG_USE_ONE_AUDIO | |
128 | FLAG_MUTE_MUSIC_PLAYER | |
256 | FLAG_LEAK_RADIO | |
512 | FLAG_DONT_FADE_OUT | |
1024 | NO_AMBIENT_LIGHTS | Ambient light does not |
2048 | FLAG_DONT_FADE_AUDIO_IN | |
4096 | FLAG_DONT_FADE_AUDIO_OUT |
ID:18 - LIGHTS
ID:19 - DRAW_DISTANCE
Distance rendering of objects
int Time, int Unused, float DrawDistance, float Unknown
- Time - set draw distance time
- DrawDistance - distance of visibility
Max number of the string - 100
Example:
[DRAW_DISTANCE] 0 0 60.00000 5550 1 200.00000 8177 2 20.00000 [/DRAW_DISTANCE]
Note 1: Second value is ignored by the game, but it must be present (It maybe any integer value)
Note 2: If last value is absence, its equal to 0.05
ID:20 - EFFECTS
ID:21 - BLOCKING_BOUNDS
Specifies the zone blocking (for peds / cars). used to ignore spawn peds/cars on current zone.
float CornerAA_x, float CornerAA_y, float CornerAA_z, float CornerAB_x, float CornerAB_y, float CornerAB_z, float CornerBA_x, float CornerBA_y, float CornerBA_z, float CornerBB_x, float CornerBB_y, float CornerBB_z, float Height
- CornerAA, CornerAB, CornerBA, CornerBB - point of the quadrilateral
- Height - Zone's height
Max number of the string is - 24
Example:
[BLOCKING_BOUNDS] -6.656193 3.182460 -1.100477 -3.160525 -2.872214 -1.100477 -0.601519 6.678128 -1.100477 2.894149 0.623454 -1.100477 6.991335 -9.463666 8.045147 -1.100477 -5.967999 1.990473 -1.100477 -3.408992 11.540814 -1.100477 0.086675 5.486141 -1.100477 6.991335 -12.252039 12.874750 -1.100477 -8.756371 6.820076 -1.100477 -6.197365 16.370419 -1.100477 -2.701697 10.315743 -1.100477 6.991335 -15.035851 17.696455 -1.100477 -11.540183 11.641781 -1.100477 -8.981177 21.192123 -1.100477 -5.485509 15.137448 -1.100477 6.991335 -17.831411 22.538509 -1.100477 -14.335744 16.483833 -1.100477 -11.776738 26.034176 -1.100477 -8.281070 19.979500 -1.100477 6.991335 -20.628733 27.383612 -1.100477 -17.133064 21.328936 -1.100477 -14.574059 30.879278 -1.100477 -11.078391 24.824604 -1.100477 6.991335 -3.858371 -1.663509 -1.100477 -0.362703 -7.718184 -1.100477 2.196303 1.832158 -1.100477 5.691970 -4.222516 -1.100477 6.991335 [/BLOCKING_BOUNDS]
ID:24 - EXTRA_ROOM
string Unknown
Note 1: Section is not used in original .cut files.
Note 2: The resulting value is ignored by the game.
ID:25 - MAX_PEDS
Determines the maximum number of peds in cutscene (not counting the peds involved in cutscene)
Example:
[MAX_PEDS] 5 [/MAX_PEDS]
ID:26 - MAX_CARS
Determines the maximum number of cars in cutscene (not counting the cars involved in cutscene)
Example:
[MAX_CARS] 2 [/MAX_CARS]
ID:27 - TIMECYCLE_MODIFIER_NAME
This section sets define modificator of Timecycle which gives some graphic effects (dark atmosphere, bright lights, etc). e2_int is used by the game. You can check the list of modifiers in this list or change some values in files timecyclemodifiers[1-4].dat.
Example:
[TIMECYCLE_MODIFIER_NAME] fau3_a [/TIMECYCLE_MODIFIER_NAME]
Sections, ignored by the game
ID:22 - PLAYER_START
ID:23 - MISSION_TEXT_NAME
Note: These two parameters uses only in .SCO.
ORIENT
TIME
ANIMRANGE
COMPRESSION
SCO (Native functions) for cutscenes
EXPLODE_CAR_IN_CUTSCENE_SHAKE_AND_BIT
HIDE_CHAR_WEAPON_FOR_SCRIPTED_CUTSCENE
IS_PED_IN_CUTSCENE_BLOCKING_BOUNDS
IS_POS_IN_CUTSCENE_BLOCKING_BOUNDS
START_CUTSCENE - Don't used (?)
External link
- Cutscene decoding Thread in SannyBuilder Forums (SA)
- IV Structure of CCutscene
- Article about cutscene on gtamodding.ru
Grand Theft Auto IV | |
---|---|
File Formats | .dat • .gxt • .ide • .img • .ipl • .nod • .sco • .rpf • .rrr • .wad • .wbd/.wbn • .wdd • .wdr • .wft • .whm • .wpl • .wtd |
Documentation | Audio • Bink Video • Cryptography • Cutscenes • GXT Text • Image listing • Keycodes • Map Listing • Native functions • Paths • Radar Blips • Radio Stations • Saves • Scenarios • VTable • Weapons |
Tools | ASI Loader • ENBSeries • G-Texture • GIMS IV • Ingame WPL Editor • IV Needle • OpenIV • SparkIV • XLiveLess • WPL Manager • X Mod Installer Alice • C++ Script Hook • .NET Script Hook • Scocl |
Tutorials | Importing Textures with OpenIV • Importing Textures with SparkIV |
Modifications | GTA Connected • Gostown IV • Four Multiplayer • IV Multiplayer • CitizenMP:IV Reloaded |
Useful links | Community portal • Discussion forums • Modding forums • Mods on GTAGarage.com |