
21/8/99 1st version of Canned Sequences for v220
================================================


The score is held as an array of strings which is visible as a property in UnrealEd. If you look at the demo level you'll see what I mean.


Here's a description of the syntax:-


Each 'line' is a single command. A command looks like this:-

	command: parameters

Lines should be in lower case except for 'names', eg tag values etc. These should be typed exactly as they appear in the properties for the particualr object/pawn you're refering to.


One thing to note is that several score lines are executed every game tick. Only 'pause', 'waitfor' and 'end' block execution.

Also, keep an eye out on the log for any error messages.


It's probably easier if I just explain each command in turn now.


#
=
Use a hash to comment out a line.


nop:
====
Place holder, doesn't do anything.


log: <"string">
===============
Puts a message in the log window.


message: <"string">
=================
Puts up a message on the player's console. It's doesn't work yet with camera views. Do you think you'll need this?



goto: <line>
============
Jumps to the specified line number in the score. Not much use really because there's no way out of the loop.


player: <proxyon | proxyoff>
============================
Turns the proxy player on and off. When on, the player has no control of his/her character. The proxy player can be controlled in the score like any other character.


pause: <period>
===============
Pauses the score for the specified period of seconds.


waitfor: <character>
====================
The score waits for the named character to complete whatever it was it was doing. For example, you can wait for a character to reach a certain place. At the moment you can't wait for a camera to complete a zoom but most other actions should be okay.


cast: <character> walkto <actor>
================================
Makes a character walk to the specified point. Once there, the character goes into a waiting state. The <actor> can be anything but most probably would be a CannedSimplePoint. I'm assuming that specifying movement like this is what you need - tell me if I'm wrong! Note, this will be extended to use <Marks> as an alternative (and preffered) way of specifying destinations.


cast: <character> face <actor>
==============================
Makes the character turn to face the specified actor.


cast: <character> wait
======================
Puts the character into a 'waiting' state (I'm not sure if this is needed though). 


trigger: raise <event>
======================
Sends the named event to all actors in the level that will accept it.


camera: <camera> on
===================
Switches to the view from a particual camera. Note, if you haven't turned the proxy player on, the player will still be able to run around etc while the external camera view is on. You can specify 'player' to switch back to the normal first person view of the player's character (or proxy player).


camera: <camera> zoom <value>
=============================
Zooms the camera to the specified FOV.


camera: <camera> cutto <actor>
==============================
Cuts a camera view to one centered on the specified actor. If the actor is a pawn then the head height is taken into account.


camera: <camera> follow <actor>
===============================
The camera will track the movements of an actor. The camera keeps the same distance and position from the actor as that at the time tracking was activated. Again head height is taken into account.


camera: <camera> track <actor>
==============================
Same as above but the camera is fixed in location and only rotates to follow the actor.


camera: <camera> panto <actor> <period>
=====================================
The camera will pan to a fixed point specified by an actor. You specify how long you want the camera to take in seconds.

Note, it's okay to issue several camera commands without a 'waitfor'. So you can for example, pan and zoom a camera at the same time.


audio: play <slot> <index>
==========================
Plays an audio sample. Slot should be either of:-

	slot_misc, slot_pain, slot_interact, slot_ambient, slot_talk or slot_interfere

<index> is the number of the desired sound in the AudioTracks property.


For example:-

	audio: play slot_talk 3


end:
====

Ends the canned sequence.




Things that I think are missing
===============================

Better commands to position cameras? That way you could get away with 1 camera and Nick will be a happy bunny!

Allow characters to stop when they bump with a 'large' radius? That way they can walk up to eachother for a conversation.

Add a command to play a specific animation?









