Cutscene: Difference between revisions
m
→List of Cutscenes in San Andreas
Black Artist (talk | contribs) No edit summary |
|||
Line 1: | Line 1: | ||
'''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 <code>anim\cuts.img</code> [[archive]]. Each cutscene consists of 3 files with the same name and a different extension: <code>.cut</code>, <code>.[[IFP|ifp]]</code> and <code>.dat</code>. | |||
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]]s and it does so by cutscene filename. | |||
===Cutscene data=== | |||
====The CUT File==== | |||
The <code>.cut</code> file is loaded first. It contains the important data of the cutscene like its offset and the loaded [[Model_file|models]]. The models of an cutscene are usually stored in the <code>models\cutscene.img</code> 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 [[IDE]]s. 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.<br/> | |||
'''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 [[Particle (SA)|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 <code>dat</code>-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|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=== | |||
{| {{Prettytable}} class="collapsible collapsed" | |||
! 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 || 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 | |||
|- | |||
| 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== | ==External Links== | ||
* [http://sannybuilder.com/forums/viewtopic.php?id=115 Cutscene decoding Thread in SannyBuilder Forums (SA)] | |||
*[http:// | |||
[[Category: | {{SA-navi}} | ||
[[Category:File Formats]]{{fdl}} |