ef2-ubertools-gdk/Documentation/content/fakk2_camera.html
2003-08-18 00:00:00 +00:00

475 lines
23 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>ÜberTools Game Development Kit</title>
<link rel="stylesheet" href="style.css">
<script type="text/javascript">
/***********************************************
* Switch Menu script- by Martial B of http://getElementById.com/
* Modified by Dynamic Drive for format & NS4/IE4 compatibility
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/
if (document.getElementById){ //DynamicDrive.com change
document.write('<style type="text/css">\n')
document.write('.submenu{display: none;}\n')
document.write('</style>\n')
}
function SwitchMenu(obj){
if(document.getElementById){
var el = document.getElementById(obj);
var ar = document.getElementById("masterdiv").getElementsByTagName("span"); //DynamicDrive.com change
if(el.style.display != "block"){ //DynamicDrive.com change
for (var i=0; i<ar.length; i++){
if (ar[i].className=="submenu") //DynamicDrive.com change
ar[i].style.display = "none";
}
el.style.display = "block";
}else{
el.style.display = "none";
}
}
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<a name="top"></a>
<table width="702" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td colspan="3"><img src="../images/header.jpg" width="702" height="101" border="0"></td>
</tr>
<tr>
<td width=158 valign="top"><table border="0" cellspacing="0" cellpadding="0">
<tr>
<td valign="top" class="menu">
<!-- Keep all menus within masterdiv-->
<div id="masterdiv">
<img src="../images/navigation.jpg" width="158" height="27"><br>
UberTools GDK
<div class="menutitle" onclick="SwitchMenu('sub0')">&raquo; Introduction &amp; Contents</div>
<span class="submenu" id="sub0">
&nbsp;&nbsp;&nbsp;&nbsp;<a href="../start.html">Introduction</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="../start.html#2">Utilities</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="../start.html#3">Source Files</a><br>
</span>
<br>Level Design<br>
<div class="menutitle" onclick="SwitchMenu('sub1')">&raquo; Setting Up UberRadiant</div>
<span class="submenu" id="sub1">
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_setup.html">That Scary Error Msg</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_setup.html#2">General Tab</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_setup.html#3">Display Tab</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_setup.html#4">User Interface Tab</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_setup.html#5">Keyboard Shortcuts Tab</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_setup.html#6">Colors Tab</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_setup.html#7">Game / Paths Tab</a><br>
</span>
<div class="menutitle" onclick="SwitchMenu('sub2')">&raquo; Building Your First Room</div>
<span class="submenu" id="sub2">
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_firstroom.html">Editor Interface Basics</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_firstroom.html#2">Choosing Your Textures</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_firstroom.html#3">Building The Room</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_firstroom.html#4">Adding a Light</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_firstroom.html#5">Adding a Player Start</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_firstroom.html#6">Compiling Your Level</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_firstroom.html#7">Viewing the Level</a><br>
</span>
<div class="menutitle" onclick="SwitchMenu('sub3')">&raquo; Constructing Terrain</div>
<span class="submenu" id="sub3">
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_terrain.html">Setting up the Tools</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_terrain.html#2">Creating Terrain</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_terrain.html#3">Modifying the Textures</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="radiant_terrain.html#4">Adding More Terrain</a><br>
</span>
<div class="menutitle" onclick="SwitchMenu('sub4')">&raquo; Additional Reference</div>
<span class="submenu" id="sub4">
&nbsp;&nbsp;&nbsp;&nbsp;<a href="ldesign_lighting.html">Lighting System</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="ldesign_terrain.html">Terrain Texture Blending</a><br>
</span>
<br>Scripting<br>
<div class="menutitle" onclick="SwitchMenu('sub5')">&raquo; Scripting Tutorials</div>
<span class="submenu" id="sub5">
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_syntax.html">Scripting Syntax</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_waves.html">Spawning Waves</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_flying.html">Creating Flying Creatures</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_tripwires.html">Setting Up Tripwires</a><br>
</span>
<div class="menutitle" onclick="SwitchMenu('sub6')">&raquo; Global Script Synopsis</div>
<span class="submenu" id="sub6">
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_globalscripts.html">Introduction</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_globalscripts_accelmove.html">global_accelerated</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_globalscripts_accelmove.html">Movement.scr</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_globalscripts_archetype.html">global_archetype.scr</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_globalscripts_array.html">global_array.scr</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_globalscripts_cinefx.html">global_cinematicFX.scr</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_globalscripts_common.html">global_common.scr</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_globalscripts_debug.html">global_debugUtils.scr</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_globalscripts_flyin.html">global_flyin.scr</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_globalscripts_math.html">global_math.scr</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_globalscripts_ploadout.html">global_playerLoadout.scr</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_globalscripts_soundpan.html">global_soundPan.scr</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_globalscripts_spawnwave.html">global_spawnWave.scr</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_globalscripts_transport.html">global_Transport.scr</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="scripting_globalscripts_tripwire.html">global_tripwire.scr</a><br>
</span>
<div class="menutitle" onclick="SwitchMenu('sub7')">&raquo; Classes Reference</div>
<span class="submenu" id="sub7">
&nbsp;&nbsp;&nbsp;&nbsp;<a href="allclasses_g.html">Game Module</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="allclasses_cl.html">Client Module</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="allclasses_cg.html">Client Game Module</a><br>
</span>
<br>Older Documentation<br>
<div class="menutitle" onclick="SwitchMenu('sub8')">&raquo; Heavy Metal FAKK2</div>
<span class="submenu" id="sub8">
&nbsp;&nbsp;&nbsp;&nbsp;<a href="fakk2_camera.html">Camera Documentation</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="fakk2_clientsidecmds.html">Client Side Commands</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="fakk2_gui.html">GUI Documentation</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="fakk2_ingameutils.html">In-Game Utilities</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="fakk2_max2skl.html">MAX2SKL Reference</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="fakk2_shadermanual.html">Shader Manual</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="fakk2_soundsystem.html">Sound System</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="fakk2_tiki.html">TIKI Model System</a><br>
</span>
<br>Other<br>
<div class="menutitle" onclick="SwitchMenu('sub9')">&raquo; Web Links &amp; Credits</div>
<span class="submenu" id="sub9">
&nbsp;&nbsp;&nbsp;&nbsp;<a href="other_links.html">Web Links</a><br>
&nbsp;&nbsp;&nbsp;&nbsp;<a href="other_credits.html">Credits</a><br>
</span>
</div>
</td>
</tr>
</table></td>
<td width="13" background="../images/vert_line.jpg"><img src="../images/vert_line.jpg" width="13" height="1"></td>
<td valign="top" width="533"><p class="header"><br>
Camera Documentation</p>
<p> The camera can be interfaced through either the in game camera system
(activated by typing &quot;pushmenu camera&quot; in the console) as well
as from the scripting language.</p>
<p class="subheader">Spawning a Camera</p>
<p> To spawn a camera from script use the following command:</p>
<blockquote>
<p class="menu"> spawn Camera targetname MyCamera</p>
</blockquote>
<p class="subheader">Switching Between Cameras</p>
<p>Switching between cameras is accomplished with these commands: </p>
<ul type="square">
<li> <b>cuecamera cameraName [switchTime]</b><br>
Switch to the specified camera. If switch time is specified and you
are not already in camera view, the camera will smoothly transition
from the third person camera to this camera.<br>
<br>
</li>
<li> <b>cueplayer [switchTime]</b><br>
Switch back to third person mode. If switchtime is specified, than camera
will switch over that period of time.</li>
</ul>
<p class="subheader">Other Useful Scripting Commands</p>
<ul type="square">
<li> <b>freezeplayer</b><br>
Freezes the player wherever he is standing.<br>
<br>
</li>
<li> <b>releaseplayer</b><br>
Release the player after he has been frozen.<br>
<br>
</li>
<li> <b>fakeplayer</b><br>
Create a fake version of the player, hide the real one. The fake player
has a targetname of &#8220;fakeplayer&#8221;.<br>
<br>
</li>
<li> <b>removefakeplayer</b><br>
Remove the fake player and unhide the real one.</li>
</ul>
<p class="subheader">In-game Camera System Commands:</p>
<ul type="square">
<li> <b>cam new</b><br>
Start a new camera path.<br>
<br>
</li>
<li> <b>cam load [filename]</b><br>
Loads the camera path from cams/[filename].cam. If no filename is set,
filename is taken from the cam_filename CVAR.<br>
<br>
</li>
<li> <b>cam save [filename]</b><br>
Saves the current path to cams/[filename].cam. If the targetname of
the path has not been set, then it is set the same as [filename]. If
no filename is set, filename is taken from the cam_filename CVAR.<br>
<br>
</li>
<li> <b>cam savemap [filename]</b><br>
Saves the current path to cams/[filename].map. This is a special format
for integration into existing map files.<br>
<br>
</li>
<li> <b>cam setpath targetname</b><br>
Changes the current path to the path with the specified targetname.<br>
<br>
</li>
<li> <b>cam settargetname targetname</b><br>
Sets the targetname of the current path point [targetname].<br>
<br>
</li>
<li> <b>cam settarget target</b><br>
Sets the target of the current path point to [target]. Doing this will
cause the entity with the targetname of [target] to be triggered when
the camera reaches this path point.<br>
<br>
</li>
<li> <b>cam setthread threadname</b><br>
Sets the thread of the current path point to [threadname]. Doing this
will cause the thread [threadname] to be executed when the camera reaches
this point.<br>
<br>
</li>
<li> <b>cam setspeed [speed]</b><br>
Sets the speed of the camera at this path node. Speed is displayed above
the currently selected path point when the path is being drawn. Speed
is the number of path points the camera will go through per second,
so a speed of 2 makes the camera take &frac12; a second per path point.
Speed defaults to 1. SetSpeed sets the speed on the current node and
any nodes added in the future.<br>
<br>
</li>
<li> <b>cam add</b><br>
Creates a new path point at the current player location and angle using
the current speed.<br>
<br>
</li>
<li> <b>cam delete</b><br>
Deletes the currently selected path point. The current node then becomes
the path point that was immediately after the path point.<br>
<br>
</li>
<li> <b>cam replace</b><br>
Changes the position, angle, and speed of the currently selected path
point to that of the player and current speed.<br>
<br>
</li>
<li> <b>cam moveplayer</b><br>
Places the player at the position of the current path point. The player&#8217;s
view remains the same, however.<br>
<br>
</li>
<li> <b>cam next</b><br>
Selects the next point in the path.<br>
<br>
</li>
<li><b>cam prev</b><br>
Selects the previous point in the path.<br>
<br>
</li>
<li><b>cam show</b><br>
Displays the current path. The Current path point is draw in yellow
with the speed drawn above it. At each node, a coordinate system is
drawn to show the orientation. Red is forward, green is right, blue
is up. The lines draw between path points to indicate the direction
the camera will take.<br>
<br>
</li>
<li> <b>cam hide</b><br>
Stops drawing the current path.<br>
<br>
</li>
<li><b>cam play</b><br>
Makes the camera play the path once.<br>
<br>
</li>
<li><b>cam play [targetname]</b><br>
Causes the camera to play the path specified by targetname once.<br>
<br>
</li>
<li><b> cam loop</b><br>
Makes the camera play the path and continuously loop.<br>
<br>
</li>
<li> <b>cam loop [targetname]</b><br>
Makes the camera play the path specified by targetname and continuously
loop.<br>
<br>
</li>
<li> <b>cam stop</b><br>
Stops the camera and switches the view back to the player.<br>
<br>
</li>
<li> <b>cam watch [targetname]</b><br>
Mark the node to tell the camera to watch the specified target when
the camera gets to that control point. [targetname] can be one of the
reserved keywords path, node or none or it can just be a targetname
for a specific entity:<br>
<br>
<ul>
<li> <b>path</b><br>
Watch the path as we move, in other words look in the direction
that we are moving</li>
<li> <b>node</b><br>
Orient ourselves based off of the orientation in each node, in other
words use the stored orientations at each node to determine our
view.</li>
<li> <b>none</b><br>
Do not make any orientations whatsoever, This means that the camera
will not change it&#8217;s orientation at all.<br>
<br>
</li>
</ul>
</li>
<li><b>cam nowatch</b><br>
Mark the node to tell the camera to stop watching any entities when
the camera gets to that control point. Equivalent to &#8220;cam watch
none&#8221;.<br>
<br>
</li>
<li> <b>cam setfov</b><br>
Set the fov of the current path node.<br>
<br>
</li>
<li> <b>cam setfadetime</b><br>
Set the fadetime of the current path node.</li>
</ul>
<p class="subheader">Script commands:</li></p>
<p> All commands must have the targetname of the camera pre-pended.</p>
<ul type="square">
<li> <b>start</b><br>
Start the camera moving or watching.<br>
<br>
</li>
<li> <b>pause</b><br>
Pause the camera along its path.<br>
<br>
</li>
<li> <b>continue</b><br>
Resume the camera&#8217;s movement.<br>
<br>
</li>
<li> <b>stop</b><br>
Stop the camera from moving and watching.<br>
<br>
</li>
<li> <b>speed newSpeed</b><br>
Set the speed of the camera.<br>
<br>
</li>
<li> <b>fov newFov [fadeTime]</b><br>
Set the fov of the camera and optionally the time over which the fov
should transition, default is whatever the camera&#8217;s fadetime is
set to.<br>
<br>
</li>
<li> <b>follow targetEntity [targetWatchEntity]</b><br>
Start following an entity, if that entity is a splinepath then the path
will be followed. If targetWatchEntity is specified than that entity
will be watched while following targetEntity. By default targetEntity
will be watched as well.<br>
<br>
</li>
<li> <b>follow_distance followDistance</b><br>
Distance at which the camera should follow an entity, also used for
orbit radius.<br>
<br>
</li>
<li> <b>follow_yaw yawOffset</b><br>
Yaw offset of the camera following an entity.<br>
<br>
</li>
<li> <b>follow_yaw_absolute</b><br>
Make the follow yaw absolute rather than relative to the follow entity&#8217;s
angles<br>
</li>
<li> <b>follow_yaw_relative</b><br>
Make the follow yaw relative to the follow entitiy&#8217;s angles<br>
</li>
<li> <b>orbit targetEntity [targetWatchEntity]</b><br>
Start orbiting an entity, if that entity is a splinepath then the path
will be followed and looped. If targetWatchEntity is specified than
that entity will be watched while following targetEntity. By default
targetEntity will be watched as well.<br>
<br>
</li>
<li> <b>orbit_height newHeight</b><br>
Height offset for orbiting an entity.<br>
<br>
</li>
<li> <b>watch watchEntity [fadeTime]</b><br>
Start watching an entity, and optionally the time over which the transition
should occur. The default transition time is the camera&#8217;s fadetime.<br>
<br>
</li>
<li> <b>watchpath [fadeTime]</b><br>
Start looking along the direction of movement and optionally the time
over which the transition should occur. The default transition time
is the camera&#8217;s fadetime.<br>
<br>
</li>
<li> <b>watchnode [fadeTime]</b><br>
Start basing the camera&#8217;s orientation off of what is stored in
the camera path nodes and optionally the time over which the transition
should occur. The default transition time is the camera&#8217;s fadetime.<br>
<br>
</li>
<li> <b>nowatch [fadeTime]</b><br>
Stop watching an entity, looking along a path or anything else. The
camera&#8217;s orientation is now static. Optionally transition overt
the time specified. The default transition time is the camera&#8217;s
fadetime.<br>
<br>
</li>
<li><b> lookat targetEntity</b><br>
Immediately make the camera look at the given entity<br>
</li>
<li> <b>turnto newAngles</b><br>
Immediately turn the camera to the desired angles. NewAngles is a vector<br>
</li>
<li> <b>moveto targetEntity</b><br>
Immediately move the camera to the targetEntity&#8217;s origin<br>
</li>
<li> <b>movetopos newPosition</b><br>
Immediately move to the specified world space position<br>
</li>
<li><b> fadetime newFadetime</b><br>
Specifiy a new fadetime for this camera, this fadetime will be used
for any of the watch or follow commands if no explicit fadetime is specified.<br>
<br>
</li>
<li> <b>cut</b><br>
Switch cameras immediately, don&#8217;t transition over time.<br>
<br>
</li>
<li> <b>nextcamera cameraName</b><br>
Next camera to use in a security camera system arrangement.<br>
<br>
</li>
<li> <b>setthread threadName</b><br>
Sets the thread of the camera which is accessed from a trigger_camerause.</li>
</li>
</ul>
<p>&nbsp;</p>
</td>
</tr>
<tr>
<td colspan="3"><img src="../images/footer.jpg" width="702" height="36" border="0" usemap="#Map"><br>
<img src="../images/hor_line.jpg" width="702" height="1"></td>
</tr>
<tr>
<td colspan="3" class="legal"><table width="100%" border="0" cellspacing="0" cellpadding="4">
<tr>
<td class="legal"> Copyright &copy;2003 Ritual Entertainment, Inc. All rights reserved.<br>
Please do not email Ritual Entertainment with questions about the
UberTools Game Development Kit. It is provided as is and is not supported by Ritual Entertainment.</td>
<td><a href="http://www.ritual.com/tech/overview.html" target="_blank"><img src="../images/uber_logo.jpg" width="43" height="56" hspace="4" border="0"></a></td>
<td><a href="http://www.ritual.com" target="_blank"><img src="../images/ritual_logo.jpg" width="100" height="56" hspace="4" border="0"></a></td>
</tr>
</table>
<p align="center">&nbsp;</p></td>
</tr>
</table>
<map name="Map">
<area shape="rect" coords="601,10,693,28" href="#top">
</map>
</body>
</html>