1 / 27

BATTLECAM™: A Dynamic Camera System for Real-Time Strategy Games

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. Overview. Background Theory Implementation Hacks Cinematic Shots

jael
Download Presentation

BATTLECAM™: A Dynamic Camera System for Real-Time Strategy Games

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Feature Maps Image Intensity Color Orientation Spatial Frequency Motion Intensity Color Orientation Spatial Frequency Motion Saliency Map Conspicuity Maps Theory – Bottom Up Attn. 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 Intensity Feature Maps Lateral Inhibition 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. (After Inhibition) (Before 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

More Related