410 likes | 421 Views
Learn the basic principles of crowd simulations, including animation basics, key framing, simulation loops, and collision avoidance. Explore different crowd models and techniques for creating realistic crowd movements.
E N D
Crowd Simulations Guest Instructor - Stephen J. Guy
Outline • Animation basics • Key framing • Simulation Loop • How to move one man • Walk Cycle • IK • How to move one thousand • Crowd Models • Collision Avoidance • Data Structures • Rendering
Outline • Animation basics • Key framing • Simulation Loop • How to move one man • Walk Cycle • IK • How to move one thousand • Crowd Models • Collision Avoidance • Rendering
Animation - Basics • Comp 768 Preview… • Goal: Illusion of continuous motion • Divide into several small time-steps (length T) • Show new image at each time-step • Needs to happened at least ~12/second (more is better) Advance T Draw Picture Update State
Outline • Animation basics • Key framing • Simulation Loop • How to move one man • Walk Cycle • IK • How to move one thousand • Crowd Models • Collision Avoidance • Data Structures • Rendering
Walk Cycle • Simply Translating a character to its goal is unrealistic • Walk Cycle: A looping series of positionswhich represent a character walking (or running or galloping) • Shifting the animation provides the illusion of walking Inplace Shifted w/ Time
Digression - Eadweard Muybridge • 19th Century English Photograyher • Used multiple cameras to capture motion • Invented Zoopraxiscope (spinning wheel of still images) to animate images
Walk Cycle - Analysis • Pros: • Simple to implement • Captures the basics of human movement • Cons: • Walks must cycle • Can’t handle changes in stride length • Can’t handle jumps • Must be animated by hand
Walk Cycle - Alternatives • Inverse Kinematics • Using math to figure out where to place the rest of the body to get the feet moving forward • Motion Capture • Record data of real humans walking • Motion Clips • FSM of different motions
Outline • Animation basics • Key framing • Simulation Loop • How to move one man • Walk Cycle • IK • How to move one thousand • Crowd Models • Collision Avoidance • Data Structures • Rendering
Crowd Simulation Models • Simplest model – Agent Based: • Capture Global Behavior w/ many interacting autonomous agents • Each person is represented by one agent • Chooses next state based on goal and neighbors • Pioneered by Craig Reynolds • Won 1998 (Technical) Academy Award Advance T For Each Agent s Draw Agent Update State Gather Neighbors
Agent Based Simulations • Flocking • Craig Reylonds • SIGGRAPH1987 • Social Forces Model • Dirk Helbing • Physics Review B 1995 • Nature 2000 • Reciprocal Velocity Obstacles • Van den Berg • I3D 2008
Agent Based Simulations • Flocking • Craig Reylonds • SIGGRAPH1987 • Social Forces Model • Dirk Helbing • Physics Review B 1995 • Nature 2000 • Reciprocal Velocity Obstacles • Van den Berg • I3D 2008
Flocking • Seminal work in multi-agent movement • Assign simple force to each agent • Used in • Lion King • Batman Returns Separation Alignment Cohesion
Boids - Continued • New forces can be added to incorporate more behaviors • Avoiding Obstacles • Collision Avoidance • Be Creative!
Boids Online • Visit: http://www.red3d.com/cwr/boids/ • And: http://www.red3d.com/cwr/steer/Unaligned.html
Agent Based Simulations • Flocking • Craig Reylonds • SIGGRAPH1987 • Social Forces Model • Dirk Helbing • Physics Review B 1995 • Nature 2000 • Reciprocal Velocity Obstacles • Van den Berg • I3D 2008
Helbing’s Social Force Model • Very similar to boid model • Treats all agents as physical obstacles • Solves a = F/m where F is “social force”: • Fij – Pedestrian Avoidance • FiW – Obstacle (Wall) Avoidance Desired Velocity Current Velocity Avoiding Other Pedestrians Avoiding Walls
Social Force Model – Pedestrian Avoidance • rij – dijEdge-to-edge distance • nij – Vector pointing away from agent • Ai*e[(rij-dij)/Bi] Repulsive force which is exponential increasing with distance • g(x) x if agents are colliding, 0 otherwise • tij – Vector pointing tangential to agent • Vtji – Tangential velocity difference • FiW is very similar Collision Avoidance Non-penetration Sliding Force
Helbing - Continued • Noticed arching • Also observed in real crowds • Killed or injured people whoexperienced too much force (1,600 N/m) – became unresponsive obstacles • Noticed Faster-is-slower effect
Agent Based Simulations • Flocking • Craig Reylonds • SIGGRAPH1987 • Social Forces Model • Dirk Helbing • Physics Review B 1995 • Nature 2000 • Reciprocal Velocity Obstacles • Van den Berg • I3D 2008
Reciprocal Velocity Obstacles • Applied ideas from robotics to crowd simulations • Basic idea: • Given n agents with velocities, find velocities will cause collisions • Avoid them! • Planning is performed in velocity space • RVOAB(vB, vA) = {v’A | 2v’A – vA VOAB(vB)}
RVO: Planning In Velocity Space RA+ RB ?
RVO: Planning In Velocity Space (VA + VB)/2 ?
Videos • 12 Agents in a Circle
Videos • 1,000 agent’s in a circle
Related data-structures • KD-trees • Allowing efficient gathering of nearby neighbors O(log n) • Roadmaps & A* • Allows global navigation around obstacles
Roadmaps • Create roadmap in free space • Find visible source nodes • Graph Search to find path to Destination • A* is very popular graph search algorithm
Video • 1,000 people leaving Sitterson Hall • Uses RVO, Roadmaps, A* and Kd-Trees
Outline • Animation basics • Key framing • Simulation Loop • How to move one man • Walk Cycle • IK • How to move one thousand • Crowd Models • Collision Avoidance • Data Structures • Rendering
Rendering Crowds • Traditional OpenGL pipeline can be too slow for 1000s of agents • View Culling helps, but often not enough • Need Level-of-Detail techniques • Use models with more polygons up close, less when far away
Imposters • Replace Far off agents with an oriented texture • Several Issues • “Popping” • Uniformity • Lighting • Shadows • Many issues addressed in recent works