Camera Spot


by Mychaeel

[email protected].

Camera Spot Homepage

 

[CameraSpot logo, left] [CameraSpot logo, right]

What is CameraSpot?

Remember Duke Nukem's surveillance cameras?  When you approached and activated them, they showed you another part of the map from a surveillance camera's point of view, allowing you to check whether some door was open or closed, where enemies were hiding or where a special item was located.

The CameraSpot actor does the same for Unreal Tournament maps, and more.  When triggered, the instigator's viewpoint switches to the CameraSpot; as soon as the instigator leaves the trigger's radius, his/her viewpoint is switched back to first-person view.

CameraSpots can be easily set up to monitor a fixed spot or to rotate slowly back and forth in order to cover a larger area; or attach them to a mover to create flyby sequences.  CameraSpots can display an unzoomed view or zoom in as closely as you wish.  In addition, you can set a short descriptive caption that is displayed at the bottom of the viewer's screen when watching through a CameraSpot.

Download

Includes DM-CameraSpot (which in turn includes the CameraSpot actor) and full documentation.

FilePlanet Zip archive (299 kB)
Link-M (Germany) Zip archive

DM-CameraSpot

The code for CameraSpot is embedded in DM-CameraSpot.  Loading DM-CameraSpot in UnrealEd will make the CameraSpot actor available in the actor browser (under Keypoint) until you close UnrealEd, even if you load your own map afterwards.  If you add a CameraSpot to your map, the editor will automatically embed its code in MyLevel of your map.  (Tip:  Save your map, close UnrealEd and re-open it after adding the CameraSpot actor.)

The rounded edges and the white corners in those screenshots are just the default setting.  You can change them to whatever you wish (or remove them altogether) if you don't like them or if they don't fit your map's theme.  See below for details.

Demo map courtesy of Snowdog.


Tower (Static CameraSpot)
Tower  (Static CameraSpot)

Overview (Rotating CameraSpot)
Overview  (Rotating CameraSpot)

Flyby (Attached CameraSpot)
Flyby  (Attached CameraSpot)

[CameraSpot properties, left]

Frequently Asked Questions

How do I get those rounded edges and corners from the screenshots and the demo?

    Import the .pcx files that are included in CameraSpot.zip into your map's MyLevel package.  (If you don't know how to do that, here's a tutorial for it.)
    Then open your CameraSpot's properties and assign the textures you just imported to the matching CameraSpot properties:  CameraSpotTranslucent00 to OverlayTexturesTranslucent[0], and so on.
    Click the [+] icon next to the OverlayTexturesTranslucent and OverlayTexturesModulated properties to view and modify their individual array elements.

I want to create my own monitor frame and use it with CameraSpot.  Do I really have to fill all twelve elements of those OverlayTextures properties?

    No.  If you specify less than twelve textures for either of those properties, they will be stretched appropriately (and if you specify just a single texture, it is even stretched smoothly).  The following chart shows how the individual textures will be arranged on the screen (red outlines represent the textures, the gray outline is the player's screen):

[texture arrangement]

    The dotted parts of the textures are outside the visible area.  That's not a technical necessity, but it's usually more convenient (and looks better) if the texture's aspect ratio is maintained when they are rendered on the screen.

What does "modulated" mean anyway?

    Modulation means that texture parts that have a lightness of fifty percent are transparent.  White parts are displayed white, black parts black; basically, the farther a color is from the midpoint, the less transparent it appears.

I have a map that uses an older version of CameraSpot and I want to update it to the lastest CameraSpot version.  How would I do that?

    Tricky, but possible.  (It might be a good idea to create a backup copy of your map before you do that.)
    Basically, you'll have to copy all your CameraSpots, cut them from your map, save the map and then close UnrealEd in order to get rid of the old code.  Then re-open UnrealEd, load up DM-CameraSpot (in order to get the new code into the editor), load up your map and repaste the CameraSpots back into your map before saving it.
    Step-by-step:  Open your map, select all of your CameraSpots (using the "Select all CameraSpot" command in UnrealEd's right-click menu after you have selected one of the CameraSpots) and press Ctrl+X to cut them into the clipboard.  Then, save your map, close and re-open UnrealEd, open the new DM-CameraSpot and then your map; then press Ctrl+V to paste your CameraSpots into your map.  They're collectively shifted a bit away from their original position due to your pasting them, so leave them all selected and move all of them back together.

Copyright and Acknowledgements

CameraSpot is © 2002 by Mychaeel [email protected].  This component is freely available for noncommercial use and distribution through any electronic network, provided you include this documentation file.  For any other use and distribution please contact me for permission.

Thanks to Snowdog for creating the cool demo map; and to him, ElBundee, tarquin and WillySurvive for beta testing and feedback.

On a personal note, I am aware that I'm hardly the first to implement something like that (hey Beppo!), and it's a rather simple piece of code.  It is, however, a much requested item, and CameraSpot is the only implementation I know of that is network-safe (in other words, works on clients in network games just as well as in standalone games).  Have fun, and imagine the possibilities.