Download presentation
Presentation is loading. Please wait.
1
BATTLECAM™: A Dynamic Camera System for Real-Time Strategy Games Yangli Hector Yee Graphics Programmer, Petroglyph hector@petroglyphgames.com Elie Arabian Lead Artist, Petroglyph elie@petroglyphgames.com
2
Overview Background Theory Implementation Hacks Cinematic Shots Question & Answers
3
Background – History RTS Bird’s Eye (Dune 2) First Person (Dungeon Keeper) Scripted Actor & Camera (Warcraft 3) Unscripted Actor, Unscripted Camera (Star Wars – Empire at War)
4
Background - Problem Make a ‘movie’ from an RTS battle Actors can move during shot Actors can die during shot Players can move actors Objects can move into camera
5
Background - Solution Pick most interesting object Construct shot Play shot Fallback on death Pick next object Hijack existing camera scripting
6
Theory – Visual Attention How to pick ‘interesting object’ Bottom Up: Stimulus Intensity (black on white) Motion (moving stuff) Color (red on green) Orientation (circle in stripes) Top Down: Goals Game Objectives Current User Selection
7
Theory – Bottom Up Attn. Image Orientation Color Spatial Frequency Spatial Frequency Intensity Motion Feature Maps OrientationColor Spatial Frequency IntensityMotion Conspicuity Maps Saliency Map Reference : Itti L, Koch C. “A Saliency-Based Search Mechanism for Overt and Covert Shifts of Visual Attention.” Vision Research, pp. 263, Vol 40(10 - 12), 2000
8
Center Surround Mechanism Lateral Inhibition Intensity Feature Maps Intensity Conspicuity Maps
9
Lateral Inhibition One signal vs similar signals
10
Lateral Inhibition Purpose : Promote areas with significantly conspicuous features while suppressing those that are non-conspicuous. (Before Inhibition) (After Inhibition)
11
Implementation Game Logic Driven Images too expensive No screen space stuff Access to game logic info
12
Implementation – Data Game logic data (stimulus) Size Attack power Location Health Game logic data (goal driven) Current selection Visibility
13
Computing Saliency E.g. Saliency_Speed for object(i) Saliency_speed(i) = (speed(i) – min_speed)/ (max_speed – min_speed) Normalized 0 to 1 Three Normalization modes Large is important Small is imporant Closeness to mean is important
14
Normalization Modes Large is important Saliency_val(i) = (val(i) – min_val) / (max_val – min_val) Small is important Saliency_val(i) = 1 – (val(i) – min_val) / (max_val – min_val) Close to mean is important Saliency_val(i) = 1 – (val(i) – avg_val) / (max_val – min_val)
15
Normalization settings Large is important Size Attack power Targets Speed Small is important Health Close to mean is important X, Y coordinate
16
Lateral Inhibition Conspicuity value = saliency_val * (max_saliency_val – min_saliency_val) Signals with great difference between max and min get boosted
17
Importance Importance (i) = Sum of conspicuity_vals * weights Weight values Size 1.0 Power 1.0 X 0.5 Y 0.5 Health 1.0 Targets 1.5 Speed 1.0 Sort list by importance
18
Summary Compute normalized saliency Perform lateral inhibition Weighted sum Sort by importance
19
Picking interesting object Pick current selected Pick current object’s target 50% of the time Make interesting object list From list pick top 5 randomly. Reject if it was same type as the previous object looked at.
20
Constructing Cinematics Local Space Transform object space cinematic into world Local Space without rotation frame Use translation only World space using reference objects For artist driven cinematic constructed in world space Transform to local space
21
Local Space Cameras
22
Flyby camera shot
23
Circle camera shot
24
Chase camera shot
25
Hardpoint camera shot
26
Frigate/Target camera shot
27
Demo & Q&A Thanks to Jim Richmond for camera system Kevin Prangley for illustrations Petroglyph staff for support Contact Info Hector at petroglyphgames dot com
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.