Crowd SimulationsOutlineSlide 3Animation - BasicsSlide 5Walk CycleDigression - Eadweard MuybridgeWalk Cycle - AnalysisWalk Cycle - AlternativesSlide 10Crowd Simulation ModelsAgent Based SimulationsSlide 13FlockingBoids - ContinuedBoids OnlineSlide 17Helbing’s Social Force ModelSocial Force Model – Pedestrian AvoidanceHelbing - ContinuedSlide 21Reciprocal Velocity ObstaclesRVO: Planning In Velocity SpaceSlide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32VideosVideosRelated data-structuresRoadmapsVideoSlide 38Rendering CrowdsImpostersQuestionsCrowd SimulationsGuest Instructor - Stephen J. GuyOutlineAnimation basicsKey framingSimulation LoopHow to move one manWalk CycleIKHow to move one thousandCrowd ModelsCollision AvoidanceData StructuresRenderingOutlineAnimation basicsKey framingSimulation LoopHow to move one manWalk CycleIKHow to move one thousandCrowd ModelsCollision AvoidanceRenderingAnimation - BasicsComp 768 Preview…Goal: Illusion of continuous motionDivide into several small time-steps (length T)Show new image at each time-stepNeeds to happened at least ~12/second (more is better)Advance TUpdate StateDraw PictureOutlineAnimation basicsKey framingSimulation LoopHow to move one manWalk CycleIKHow to move one thousandCrowd ModelsCollision AvoidanceData StructuresRenderingWalk CycleSimply Translating a character to its goal is unrealisticWalk Cycle: A looping series of positionswhich represent a character walking (or running or galloping)Shifting the animation provides the illusion of walkingInplace Shifted w/ TimeDigression - Eadweard Muybridge 19th Century English PhotograyherUsed multiple cameras to capture motionInvented Zoopraxiscope (spinning wheel of still images) to animate imagesWalk Cycle - AnalysisPros:Simple to implementCaptures the basics of human movementCons:Walks must cycleCan’t handle changes in stride lengthCan’t handle jumpsMust be animated by handWalk Cycle - AlternativesInverse KinematicsUsing math to figure out where to place the rest of the body to get the feet moving forwardMotion CaptureRecord data of real humans walkingMotion Clips FSM of different motionsOutlineAnimation basicsKey framingSimulation LoopHow to move one manWalk CycleIKHow to move one thousandCrowd ModelsCollision AvoidanceData StructuresRenderingCrowd Simulation ModelsSimplest model – Agent Based:Capture Global Behavior w/ many interacting autonomous agentsEach person is represented by one agentChooses next state based on goal and neighborsPioneered by Craig ReynoldsWon 1998 (Technical) Academy AwardAdvance TGather NeighborsDraw AgentUpdate StatesFor Each AgentAgent Based SimulationsFlocking Craig ReylondsSIGGRAPH1987Social Forces ModelDirk HelbingPhysics Review B 1995Nature 2000Reciprocal Velocity ObstaclesVan den BergI3D 2008Agent Based SimulationsFlocking Craig ReylondsSIGGRAPH1987Social Forces ModelDirk HelbingPhysics Review B 1995Nature 2000Reciprocal Velocity ObstaclesVan den BergI3D 2008FlockingSeminal work in multi-agent movementAssign simple force to each agentUsed in Lion KingBatman ReturnsSeparation Alignment CohesionBoids - ContinuedNew forces can be added to incorporate more behaviorsAvoiding ObstaclesCollision AvoidanceBe Creative!Boids OnlineVisit: http://www.red3d.com/cwr/boids/And: http://www.red3d.com/cwr/steer/Unaligned.htmlAgent Based SimulationsFlocking Craig ReylondsSIGGRAPH1987Social Forces ModelDirk HelbingPhysics Review B 1995Nature 2000Reciprocal Velocity ObstaclesVan den BergI3D 2008Helbing’s Social Force ModelVery similar to boid modelTreats all agents as physical obstaclesSolves a = F/m where F is “social force”:Fij – Pedestrian AvoidanceFiW – Obstacle (Wall) AvoidanceDesired VelocityCurrent VelocityAvoiding Other PedestriansAvoiding WallsSocial Force Model – Pedestrian Avoidancerij – dij Edge-to-edge distancenij – Vector pointing away from agentAi*e[(rij-dij)/Bi] Repulsive force which is exponential increasing with distanceg(x) x if agents are colliding, 0 otherwisetij – Vector pointing tangential to agentVtji – Tangential velocity differenceFiW is very similarCollision AvoidanceNon-penetration Sliding ForceHelbing - ContinuedNoticed arching Also observed in real crowdsKilled or injured people whoexperienced too much force (1,600 N/m) – became unresponsive obstaclesNoticed Faster-is-slower effectAgent Based SimulationsFlocking Craig ReylondsSIGGRAPH1987Social Forces ModelDirk HelbingPhysics Review B 1995Nature 2000Reciprocal Velocity ObstaclesVan den BergI3D 2008Reciprocal Velocity ObstaclesApplied ideas from robotics to crowd simulationsBasic idea:Given n agents with velocities, find velocities will cause collisionsAvoid them!Planning is performed in velocity spaceRVOAB(vB, vA) = {v’A | 2v’A – vA VOAB(vB)}23RVO: Planning In Velocity Space24RVO: Planning In Velocity SpaceRA + RB25RVO: Planning In Velocity Space(VA + VB)/2RVO: Planning In Velocity Space2627RVO: Planning In Velocity Space28RVO: Planning In Velocity SpaceRVO: Planning In Velocity Space2930RVO: Planning In Velocity SpaceRVO: Planning In Velocity Space31RVO: Planning In Velocity Space32Videos12 Agents in a CircleVideos1,000 agent’s in a circleRelated data-structuresKD-treesAllowing efficient gathering of nearby neighbors O(log n)Roadmaps & A*Allows global navigation around obstaclesRoadmaps1. Create roadmap in free space 2. Find visible source nodes3. Graph Search to find path to DestinationA* is very popular graph search algorithm 36Video1,000 people leaving Sitterson HallUses RVO, Roadmaps, A* and Kd-TreesOutlineAnimation basicsKey framingSimulation LoopHow to move one manWalk CycleIKHow to move one thousandCrowd ModelsCollision AvoidanceData StructuresRenderingRendering CrowdsTraditional OpenGL pipeline can be too slow for 1000s of agentsView Culling helps, but often not enoughNeed Level-of-Detail techniquesUse models with more polygons up close, less when far awayImposters40Replace Far
View Full Document