Difference between revisions of "Documentation/Engine/Random Road Events"

From SCS Modding Wiki
Jump to navigation Jump to search
(Defining cutscenes for random events)
(Defining cutscenes for random events)
Line 82: Line 82:
 
{
 
{
 
     cutscene_tokens[]:    acc_stop_li1
 
     cutscene_tokens[]:    acc_stop_li1
  cutscene_tokens[]:    acc_stop_li2
+
    cutscene_tokens[]:    acc_stop_li2
+
 
   
+
     left_width:            80.0       // [m]
     left_width:            80.0               // [m]
+
     right_width:            5.0       // [m]
     right_width:            5.0               // [m]
+
    sequence_mode:         pseudo
sequence_mode: pseudo
 
 
}
 
}
 
journey_events_cutscene : j_cut.acc_mid
 
journey_events_cutscene : j_cut.acc_mid
Line 93: Line 92:
 
     cutscene_tokens[]:    acc_mid_1
 
     cutscene_tokens[]:    acc_mid_1
 
     cutscene_tokens[]:    acc_mid_2
 
     cutscene_tokens[]:    acc_mid_2
cutscene_tokens[]:    acc_mid_3
+
    cutscene_tokens[]:    acc_mid_3
  
   
+
     left_width:            15.0       // [m]
     left_width:            15.0               // [m]
+
     right_width:            15.0       // [m]
     right_width:            15.0               // [m]
+
    sequence_mode:         pseudo
sequence_mode: pseudo
 
 
}
 
}
 
journey_events_cutscene : j_cut.acc_plane
 
journey_events_cutscene : j_cut.acc_plane
 
{
 
{
 
     cutscene_tokens[]:    acc_rare_1
 
     cutscene_tokens[]:    acc_rare_1
 
 
      
 
      
     left_width:            35.0               // [m]
+
     left_width:            35.0       // [m]
     right_width:            25.0               // [m]
+
     right_width:            25.0       // [m]
sequence_mode: pseudo
+
    sequence_mode:         pseudo
 
}
 
}
 
}
 
}

Revision as of 12:07, 22 May 2018

Random event preview

Road events (RE) are dynamically generated situations on roads present in ETS2 and ATS.

RE are defined from several cutscenes placed along the road. RE distinguishes 3 types of cutscenes:

  • Start cutscene - The first cutscene of the RE, only one per the RE.
  • End cutscene - The last cutscene of the RE, only one per the RE.
  • Layer cutscenes - Cutscenes between Start and End cutscenes.

According to the length of the RE and the lengths of cutscenes, the space between start and end cutscenes is filled with layer cutscenes.

Composition of RE:

Engine random event composition.jpg

Defining random events

All RE are stored in "/def/world/journey_road_event.sii" as list of journey_events_road_event units.

Example journey_road_event.sii file definition:

SiiNunit
{
# For modders: Please do not modify this file if you want to add a new entry. Create in
# this directory a new file "<base_name>.<idofyourmod>.sii" where <base_name> is name of
# base file without the extension (e.g. "city" for "/def/city.sii") and <idofyourmod> is
# some string which is unlikely to conflict with other mod.
#
# Warning: Even if the units are specified in more than one source file, they share the
# same namespace so suffixes or prefixes should be used to avoid conflicts.

journey_events_road_event : j_re.acc_uni_p
{
    signs_distances_outer[]: 50

    layer_min_curve[]: 0.0
    layer_max_curve[]: 15.0
    
    max_length: 55.0
    min_length: 55.0
}
journey_events_road_event : j_re.acc_plane
{
    start_cutscene: j_cut.acc_stop_li
    layer_cutscenes[]: j_cut.acc_mid
    end_cutscene: j_cut.acc_plane

    min_shoulder_space: 3.0
    outer_lane_allowed: true
    centerline_displacement: true
	
    layer_max_curve[]: 2.0
	
    weight: 10.0

    parent: j_re.acc_spec_p

    name: "Accident country specific plane (1)"
}
}

Defining cutscenes for random events

All cutscene attributes of RE: start_cutscene, end_cutscene, layer_cutscenes, mirror_cutscenes, signs_cutscenes_inner and signs_cutscenes_outer are using same unit type: journey_events_cutscene, which are listed/defined in "/def/world/journey_cutscene.sii".

These cutscenes are then linked to RE via their unit names. For example cutscene "j_cut.acc_stop_li" defined below is featured as start cutscene of RE "j_re.acc_plane" in example above.

Example journey_cutscene.sii file definition:

SiiNunit
{
# For modders: Please do not modify this file if you want to add a new entry. Create in
# this directory a new file "<base_name>.<idofyourmod>.sii" where <base_name> is name of
# base file without the extension (e.g. "city" for "/def/city.sii") and <idofyourmod> is
# some string which is unlikely to conflict with other mod.
#
# Warning: Even if the units are specified in more than one source file, they share the
# same namespace so suffixes or prefixes should be used to avoid conflicts.

journey_events_cutscene : j_cut.acc_stop_li 
{
    cutscene_tokens[]:     acc_stop_li1
    cutscene_tokens[]:     acc_stop_li2

    left_width:             80.0       // [m]
    right_width:            5.0        // [m]
    sequence_mode:          pseudo
}
journey_events_cutscene : j_cut.acc_mid
{
    cutscene_tokens[]:     acc_mid_1
    cutscene_tokens[]:     acc_mid_2
    cutscene_tokens[]:     acc_mid_3

    left_width:             15.0       // [m]
    right_width:            15.0       // [m]
    sequence_mode:          pseudo
}
journey_events_cutscene : j_cut.acc_plane
{
    cutscene_tokens[]:     acc_rare_1
    
    left_width:             35.0       // [m]
    right_width:            25.0       // [m]
    sequence_mode:          pseudo
}
}

Cutscene width

In case of RE, cutscene definition also uses left_width and right_width attributes, which defines the length of the cutscene. This two attributes are very important as they determinate how much space is between different cutscenes, how many layer cutscenes can be places in whole RE and where traffic blocks will be placed.

To determinate left and right width rotate the cutscene in map editor so that driving direction is from right to left:

Random event cutscene left and right width