BSL:Tutorial/airport1 level logic.bsl: Difference between revisions

Line 593: Line 593:
:The camera cuts to a view of console 4 (interpolation over 0 frames to the position and rotation of '''[[OBAN|OBANambush1]]''') after 1 second. Another 2.5 seconds later, console 4 is activated, and then after another 2.5 seconds the actual "ambush" starts: the camera cuts to a view of console 3 (with Konoko still in front of it) and then interpolates over 5 seconds to a view of the final door, '''OBANambush3''': [[cm_interpolate_block]] makes sure that the ''previous'' camera relocation (the cut to '''OBANambush2''') is complete. 50 frames after the camera has reached '''OBANambush3''', it closes in on the door over another 5 seconds ('''OBANambush4'''). The camera stays there until the end of the cutscene, when it focuses back on Konoko.
:The camera cuts to a view of console 4 (interpolation over 0 frames to the position and rotation of '''[[OBAN|OBANambush1]]''') after 1 second. Another 2.5 seconds later, console 4 is activated, and then after another 2.5 seconds the actual "ambush" starts: the camera cuts to a view of console 3 (with Konoko still in front of it) and then interpolates over 5 seconds to a view of the final door, '''OBANambush3''': [[cm_interpolate_block]] makes sure that the ''previous'' camera relocation (the cut to '''OBANambush2''') is complete. 50 frames after the camera has reached '''OBANambush3''', it closes in on the door over another 5 seconds ('''OBANambush4'''). The camera stays there until the end of the cutscene, when it focuses back on Konoko.
;Music
;Music
:The music starts as the camera cuts back to Konoko's pod and starts panning towards the door. '''func music_script_start''' sets the user variable '''music_counter''' to 2 so that the music stops when and if both Strikers are killed (when either of them is killed, a function is called that decrements the counter and stops the music if it reaches zero).
:The music starts as the camera cuts back to Konoko's pod and starts panning towards the door. '''[[BSL:Tutorial/airport1 level logic.bsl#func music_script_start|func music_script_start]]''' sets the user variable '''music_counter''' to 2 so that the music stops when and if both Strikers are killed (when either of them is killed, a function is called that decrements the counter and stops the music if it reaches zero: see '''[[BSL:Tutorial/airport1 level logic.bsl#func striker_lullaby_2|func striker_lullaby_2]]''' and '''[[BSL:Tutorial/airport1 level logic.bsl#func all_music_counters|func all_music_counters]]''').
;Door and locklight
;Door and locklight
:The [[OBD:BINA/OBJC/DOOR|door]] unlocks to let the Strikers pass and locks behind them (the locklight, looked up in [[ENVP]], changes accordingly). It is later unlocked by console 4.
:The [[OBD:BINA/OBJC/DOOR|door]] unlocks to let the Strikers pass and locks behind them (the locklight, looked up in [[ENVP]], changes accordingly). It is later unlocked by console 4.
;Characters
;Characters
:The Strikers have their movement mode set to "walk", which is only effective after they stop '''playback'''ing and start '''do_path'''ing (they wander off towards the middle of the hangar). The '''i_uh_heheheh1''' triggervolume makes sure they'll retreat to guard the door if Konoko heads for the console that unlocks it (see [[Tutorial/airport1 level logic.bsl#func i_uh_heheheh|func i_uh_heheheh]] below). The purpose of "interp 30" modifier to the '''playback''' command is not clear, as the scene looks just the same without it.
:The Strikers have their movement mode set to "walk", which is only effective after they stop '''playback'''ing and start '''do_path'''ing (they wander off towards the middle of the hangar). The '''i_uh_heheheh1''' [[OBD:BINA/OBJC/TRGV|trigger volume]] makes sure they'll retreat to guard the door if Konoko heads for the console that unlocks it (see '''[[BSL:Tutorial/airport1 level logic.bsl#func i_uh_heheheh|func i_uh_heheheh]]''' below). The purpose of "interp 30" modifier to the '''playback''' command is not clear, as the scene looks just the same without it.
  func void final_ambush(string char_index)
  func void final_ambush(string char_index)
  {
  {