Steering Behaviors For Autonomous Characters

Slides:



Advertisements
Similar presentations
Lecture 7: Potential Fields and Model Predictive Control
Advertisements

7.2. AI E NGINE AND S TEERING B EHAVIOUR I Design of an AI Engine and introduction to steering in game AI.
7.3. S TEERING B EHAVIOUR II Steering behaviours in game AI.
Controlling Individual Agents in High Density Crowd Simulation N. Pelechano, J.M. Allbeck and N.I. Badler (2007)
Chapter 3: Motion in 2 or 3 Dimensions
Conservative vs. Non-conservative Forces
School of Systems, Engineering, University of Reading rkala.99k.org April, 2013 Motion Planning for Multiple Autonomous Vehicles Rahul Kala Lateral Potentials.
Flocking and more.  NPC groups can move in cohesive groups not just independently ◦ Meadow of sheep grazing? ◦ Hunting flock of birds? ◦ Ants? Bees?
Steering Behaviors GAM 376 Robin Burke Winter 2008.
Better Group Behaviors in Complex Environments using Global Roadmaps O. Burchan Bayazit, Jyh-Ming Lien and Nancy M. Amato Presented by Mohammad Irfan Rafiq.
Flocks, Herds, and Schools: A Distributed Behavioral Model By: Craig Reynolds Presented by: Stephanie Grosvenor.
1 CO Games Development 2 Week 22 Flocking Gareth Bellaby.
Optimizing Flocking Controllers using Gradient Descent
Florian Klein Flocking Cooperation with Limited Communication in Mobile Networks.
Behavioral Animation Procedural Animation Type?. Behavioral Animation Introduced by C. Reynolds (1987) Animating many things at one time –A group of the.
Kristen Gardner. Outline Swarm Intelligence Flocking Basic Steering Swarms Applications Animals Vehicles People.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Dynamic Path Planning, Flocking Spring 2012.
Flocking References: xxx.
Kinodynamic Path Planning Aisha Walcott, Nathan Ickes, Stanislav Funiak October 31, 2001.
CS / BEHAVIORAL ANIMATION PAGE 113 FLOCKING BEHAVIOR NEIGHBORHOOD SEPARATION COHESION ALIGNMENTLEADER FOLLOWING.
John S Gero Agents – Agent Simulations AGENT-BASED SIMULATIONS.
Multi Agent Simulation and its optimization over parallel architecture using CUDA™ Abdur Rahman and Bilal Khan NEDUET(Department Of Computer and Information.
Behavior-Based Formation Control for Multi-robot Teams Tucker Balch, and Ronald C. Arkin.
Simulating Virtual Human Crowds with a Leader-Follower Model Tsai-Yen Li, Ying-Juin Jeng, Shih-I Chang National Chengchi University Slides updated and.
Mobile Robotics: 10. Kinematics 1
CS274 Spring 01 Lecture 5 Copyright © Mark Meyer Lecture V Higher Level Motion Control CS274: Computer Animation and Simulation.
Crowd Simulation Seminar ”Steering Behaviors For Autonomous Characters” By Craig W. Reynolds Rudi Bonfiglioli ( )
Chapter 5: Path Planning Hadi Moradi. Motivation Need to choose a path for the end effector that avoids collisions and singularities Collisions are easy.
Games Programming III (TGP2281) – T1, 2010/2011 Movement AI John See 19, 26 Nov 2010.
ANTI LOCK BRAKING SYSTEM
Crowd Simulations Guest Instructor - Stephen J. Guy.
Constraints-based Motion Planning for an Automatic, Flexible Laser Scanning Robotized Platform Th. Borangiu, A. Dogar, A. Dumitrache University Politehnica.
KINEMATICS OF PARTICLES PLANE CURVILINEAR MOTION
Agenda Path smoothing PID Graph slam.
Flow Fields Hao Li and Howard Hamilton. Motivation for Flow Fields Multiple AI algorithms in a computer game can produce conflicting results. The AI must.
Richard Patrick Samples Ph.D. Student, ECE Department 1.
Using the Corridor Map Method for Path Planning for a Large Number of Characters Roland Geraerts, Arno Kamphuis, Ioannis Karamouzas, Mark Overmars MIG’08.
Steering Autonomous Characters Spring 2005 Ref: Craig Reynolds.
Artificial Intelligence for Games Lecture 1 1 Minor Games Programming.
December 9, 2014Computer Vision Lecture 23: Motion Analysis 1 Now we will talk about… Motion Analysis.
Detail-Preserving Fluid Control N. Th ű rey R. Keiser M. Pauly U. R ű de SCA 2006.
Adrian Treuille, Seth Cooper, Zoran Popović 2006 Walter Kerrebijn
1 Game AI Steering Behavior & Group Movement ( 轉向行為 及 群體運動 )
Artificial Intelligence in Game Design Complex Steering Behaviors and Combining Behaviors.
University of Texas at Austin CS 378 – Game Technology Don Fussell CS 378: Computer Game Technology Physics for Games Spring 2012.
Computer Animation Rick Parent Computer Animation Algorithms and Techniques Behavioral Animation: Knowing the environment Flocking.
Controlling Individual Agents in High-Density Crowd Simulation
Basic Steering of Game Agents Featuring Guest professors Stephen Sheneman & Michael Wilkens 1.
22.7 Source of magnetic field due to current
REFERENCES: FLOCKING.
Steering Animation 數位內容學院 遊戲開發研究班第一期 3D 圖學 沈育德 Edward Shen May 19, 2005.
Crowd Self-Organization, Streaming and Short Path Smoothing 學號: 姓名:邱欣怡 日期: 2007/1/2 Stylianou Soteris & Chrysanthou Yiorgos.
Artificial Intelligence in Game Design Lecture 8: Complex Steering Behaviors and Combining Behaviors.
Simulating Crowds Simulating Dynamical Features of Escape Panic & Self-Organization Phenomena in Pedestrian Crowds Papers by Helbing.
CSCI 4310 Lecture 5: Steering Behaviors in Raven.
Fundamentals of Computer Animation Controlling Groups of Objects (2)
11/13/03CS679 - Fall Copyright Univ. of Wisconsin Last Time A* Improvements Hierarchical planning Pre-Planning.
Computer Animation Algorithms and Techniques
Advanced & Group Steering
ANTI LOCK BRAKING SYSTEM
Two special unit vectors:
A theory on autonomous driving algorithms
Sony Computer Entertainment
Steering Behaviors GAM 376 Robin Burke Fall 2006.
Roland Geraerts and Mark Overmars CASA’08
CIS 488/588 Bruce R. Maxim UM-Dearborn
Steering behaviours in game AI
Lesson 3 Forces and Fields
Synthesis of Motion from Simple Animations
Lecture Notes: Displacement, Velocity, and Acceleration
Presentation transcript:

Steering Behaviors For Autonomous Characters Craig W. Reynolds 9457507 李方碩

Outline Introduction Simple Vehicle Model The Physics of The Model Steering behaviors One or two characters behaviors Group behaviors Combining Behaviors Conclusion

Introduction To navigate autonomous characters around their world in a life-like and improvisational manner in animation and games Hierarchy of motion behaviors

Simple Vehicle Model Simple Vehicle Model: mass scalar position vector velocity vector max_force scalar max_speed scalar orientation N basis vectors

The Physics of The Model The physics of the simple vehicle model is based on forward Euler integration. steering_force = truncate (steering_direction, max_force) acceleration = steering_force / mass velocity = truncate (velocity + acceleration, max_speed) position = position + velocity Construct the new basis vectors: new_forward = normalize (velocity) approximate_up = normalize (approximate_up) // if needed new_side = cross (new_forward, approximate_up) new_up = cross (new_forward, new_side)

Constraint Because of its assumption of velocity alignment, this simple vehicle model cannot simulate effects such as skids, spins or slides. Furthermore this model allows the vehicle to turn when its speed is zero.

Seek and Flee Seek (or pursuit of a static target) http://www.red3d.com/cwr/steer/SeekFlee.html Seek (or pursuit of a static target) desired_velocity = normalize (position - target) * max_speed steering = desired_velocity – velocity Flee is simply the inverse of seek.

Pursuit and Evasion http://www.red3d.com/cwr/steer/PursueEvade.html Pursuit is similar to seek except that the quarry (target) is another moving character. Assume the quarry will not turn during the prediction interval T. Future position can be obtained by scaling its velocity by T and adding that offset to its current position.

Offset Pursuit Steering a path which passes near, but not directly into a moving target. Localize the predicted target location (character’s local coordinate space) project the local target onto the character’s side-up plane, normalize that lateral offset, scale it by -R, add it to the local target point, and globalize that value. Use seek behavior to approach that offset point. Target point Offset point

Arrival http://www.red3d.com/cwr/steer/Arrival.html target_offset = target – position distance = length (target_offset) ramped_speed = max_speed * (distance / slowing_distance) clipped_speed = minimum (ramped_speed, max_speed) desired_velocity = (clipped_speed / distance) * target_offset steering = desired_velocity - velocity slowing_distance distance slowing_distance: The distance at which slowing begins.

Obstacle Avoidance http://www.red3d.com/cwr/steer/Obstacle.html The goal of the behavior is to keep an imaginary cylinder of free space in front of the character. The value returned from obstacle avoidance (a) the steering value to avoid the most threatening obstacle (b) if no collision is imminent, a special value (a null value, or the zero vector) to indicate that no corrective steering is required at this moment.

Wander The steering direction is represented by a red vector. http://www.red3d.com/cwr/steer/Wander.html The steering direction is represented by a red vector. The big circle in figure constraint the steering. The small circle constraint the random offset of the steering.

Path following http://www.red3d.com/cwr/steer/PathFollow.html To move a character along the path while staying within the specified radius of the spine. Projection distance is less than the path radiusno corrective steering is required. Otherwise, Seeking towards the on-path projection of the predicted future position. predicted position Projection distance from the predicted position to the nearest on-path point.

Wall Following and Containment http://www.red3d.com/cwr/steer/Wall.html http://www.red3d.com/cwr/steer/Containment.html Wall following can be implement by offset pursuit. Containment can be accomplished by using seek with an inside point of the container.

Flow Field Following http://www.red3d.com/cwr/steer/FlowFollow.html The future position of a character is estimated and the flow field is sampled at that location. This flow direction (vector F) is the “desired velocity” and the steering direction (vector S) is simply the difference between the current velocity (vector V) and the desired velocity.

Unaligned Collision Avoidance The character steers to avoid the site of the predicted collision. If all nearby characters are aligned, a less complicated strategy can be used, see separation below.

Group Behavior Separation, cohesion, and alignment, relate to groups of characters. the steering behavior determines how a character reacts to other characters in its local neighborhood. Repulsive force is computed by subtracting the positions of our character and the nearby character Average velocity is the “desired velocity”

Neighborhood Local neighborhood of characters the neighborhood is specified by a distance which defines when two characters are “nearby”, and an angle which defines the character’s perceptual “field of view.”

Leader Following http://www.red3d.com/cwr/steer/LeaderFollow.html If a follower finds itself in a rectangular region in front of the leader, it will steer laterally away from the leader’s path. Otherwise, the arrival target is a point offset slightly behind the leader. the followers use separation behavior to prevent crowding each other.

Combining Behaviors Combining behaviors can happen in two ways: Switch Blending The most straightforward is simply to compute each of the component steering behaviors and sum them together, possibly with a weighting factor for each of them.

Combining Behaviors Demo Crowd Path Following Leader Following Unaligned Collision Avoidance Queuing (at a doorway) Flocking (combining: separation, alignment, cohesion)

Conclusion Unnatural After collision avoidance Collision response Move like a perfect robot. After collision avoidance Turn to obstacle again and again. Collision response Collision avoidance may be failed.

Conclusion Unnatural After collision avoidance Collision response Add noise or turbulence. Voronoi cell noise (a.k.a. Worley noise) Fractal noise, Perlin noise Turbulence After collision avoidance Maintain avoidance force for a while. Collision response Use global method. Let characters stop and wait.