Steering Animation 數位內容學院 遊戲開發研究班第一期 3D 圖學 沈育德 Edward Shen May 19, 2005.

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.
Beyond the Centralized Mindset
Flocking and more.  NPC groups can move in cohesive groups not just independently ◦ Meadow of sheep grazing? ◦ Hunting flock of birds? ◦ Ants? Bees?
NUS CS5247 Motion Planning for Camera Movements in Virtual Environments By Dennis Nieuwenhuisen and Mark H. Overmars In Proc. IEEE Int. Conf. on Robotics.
Steering Behaviors GAM 376 Robin Burke Winter 2008.
CSE 380 – Computer Game Programming Pathfinding AI
Behavioral animation CSE 3541 Matt Boggus. Material recap and trajectory Geometric – Artist specifies translation and rotation over time Physically based.
Flocks, Herds and Schools Modeling and Analytic Approaches.
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.
Crowd simulation Taku Komura. Animating Crowds We have been going through methods to simulate individual characters We have been going through methods.
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.
Particle Swarm Optimization
1 Reactive Pedestrian Path Following from Examples Ronald A. Metoyer Jessica K. Hodgins Presented by Stephen Allen.
1Notes  Assignment 2 is out  Flocking references  Reynolds, “Flocks, Herds, and Schools…”, SIGGRAPH’87  Tu and Terzopoulos, “Artificial Fishes…”, SIGGRAPH’94.
John S Gero Agents – Agent Simulations AGENT-BASED SIMULATIONS.
KAIST CS780 Topics in Interactive Computer Graphics : Crowd Simulation A Task Definition Language for Virtual Agents WSCG’03 Spyros Vosinakis, Themis Panayiotopoulos.
Advanced Computer Graphics (Fall 2010) CS 283, Lecture 24: Motion Capture Ravi Ramamoorthi Most slides courtesy.
Better Group Behaviors in Complex Environments using Global Roadmaps O. Burchan Bayazit, Jyh-Ming Lien and Nancy M. Amato Andreas Edlund.
CS274 Spring 01 Lecture 5 Copyright © Mark Meyer Lecture V Higher Level Motion Control CS274: Computer Animation and Simulation.
1cs426-winter-2008 Notes  Please read: C. Reynolds “Flocks, Herds, and Schools…” SIGGRAPH ‘87
Crowd Simulation Seminar ”Steering Behaviors For Autonomous Characters” By Craig W. Reynolds Rudi Bonfiglioli ( )
Steering Behaviors For Autonomous Characters
DAMN : A Distributed Architecture for Mobile Navigation Julio K. Rosenblatt Presented By: Chris Miles.
Games Programming III (TGP2281) – T1, 2010/2011 Movement AI John See 19, 26 Nov 2010.
Lecture VII Rigid Body Dynamics CS274: Computer Animation and Simulation.
DOVE Shuen-Huei Guan, Sheng-Yao Cho, Yu-Te Shen, Ping-Chun Kuo Final Project of Virtual Reality Computer Science and Information Engineering National Taiwan.
Biology: flocking, herding & schooling Day 5 COLQ 201 Multiagent modeling Harry Howard Tulane University.
Chapter 11 Motion.
Robot Dynamics – Slide Set 10 ME 4135 R. R. Lindeke, Ph. D.
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.
PSY105 Neural Networks 1/5 1. “Patterns emerge”. π.
Steering Autonomous Characters Spring 2005 Ref: Craig Reynolds.
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved Event Driven Programming, The.
Artificial Intelligence for Games Lecture 1 1 Minor Games Programming.
University of Windsor School of Computer Science Topics in Artificial Intelligence Fall 2008 Sept 11, 2008.
1 Game AI Steering Behavior & Group Movement ( 轉向行為 及 群體運動 )
CLASS 10 SCENE GRAPHS BASIC ANIMATION CS770/870. A scene Graph A data structure to hold components of a scene Usually a Tree of a Directed Acyclic Graph.
Dynamic Self-Organization & Computation by Natural and Artificial Potential Fields John H Reif Duke University Download:
Artificial Intelligence in Game Design Complex Steering Behaviors and Combining Behaviors.
Computer Animation Rick Parent Computer Animation Algorithms and Techniques Behavioral Animation: Knowing the environment Flocking.
Basic Steering of Game Agents Featuring Guest professors Stephen Sheneman & Michael Wilkens 1.
Particle Swarm Optimization † Spencer Vogel † This presentation contains cheesy graphics and animations and they will be awesome.
REFERENCES: FLOCKING.
Crowd Self-Organization, Streaming and Short Path Smoothing 學號: 姓名:邱欣怡 日期: 2007/1/2 Stylianou Soteris & Chrysanthou Yiorgos.
CS274 Spring 01 Lecture 7 Copyright © Mark Meyer Lecture VII Rigid Body Dynamics CS274: Computer Animation and Simulation.
Artificial Intelligence in Game Design Lecture 8: Complex Steering Behaviors and Combining Behaviors.
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.
Students: Yossi Turgeman Avi Deri Self-Stabilizing and Efficient Robust Uncertainty Management Instructor: Prof Michel Segal.
Computer Animation Algorithms and Techniques
Flocking Geometric objects Many objects
CIS 488/588 Bruce R. Maxim UM-Dearborn
Steering Behaviors GAM 376 Robin Burke Fall 2006.
Navigation In Dynamic Environment
CIS 488/588 Bruce R. Maxim UM-Dearborn
Steering behaviours in game AI
Synthesis of Motion from Simple Animations
Emir Zeylan Stylianos Filippou
FLOSCAN: An Artificial Life Based Data Mining Algorithm
Hiroki Sayama NECSI Summer School 2008 Week 2: Complex Systems Modeling and Networks Agent-Based Models Hiroki Sayama
Presentation transcript:

Steering Animation 數位內容學院 遊戲開發研究班第一期 3D 圖學 沈育德 Edward Shen May 19, 2005

Course Information Date: 5/19, 5/21, 5/26, 5/28 (2005) Lecturer: Edward Yu-Te Shen 沈育德 Course Website: okuwiki/doku.php?id=lecture okuwiki/doku.php?id=lecture

Lecturer 沈育德, Edward Shen PhD Candidate (1 st year) Graphics group, Dept. of CSIE, National Taiwan University

Introduction to Steering Animation System demo – Dove Introduction to steering behavior Hierarchy of motion behaviors Java applet demo Steering styles Trial of the OpenSteer library Most of the content today bases on Reynolds, C. W. (1999) Steering Behaviors For Autonomous Characters, in the proceedings of Game Developers Conference 1999, California. Pages

System Demo – Dove

Introduction to Steering Animation System demo – Dove Introduction to steering behavior Hierarchy of motion behaviors Java applet demo Steering styles Trial of the OpenSteer library Most of the content today bases on Reynolds, C. W. (1999) Steering Behaviors For Autonomous Characters, in the proceedings of Game Developers Conference 1999, California. Pages

Steering Behavior Steering –vi. ( 不及物動詞 intransitive verb ) 1. 掌舵, 操舵 ; 駕駛, 操縱 2. 沿著某一方向前進 3. 駕馭 –vt. ( 及物動詞 transitive verb ) 1. 為 ( 船 ) 掌舵, 駕駛 ( 汽車、飛機等 ) 2. 沿著 ( 某一方向 ) 前進, 取 ( 道 ) 3. 指導, 控制

Steering Behavior The ability of creatures to navigate around their world in a life-like and improvisational manner Steering behavior is one of the key components in building autonomous agents in animation Important in making films that tell stories, games, and other virtual reality applications

Applications Source:

Crowd (Flocking) Behavior Flocks of birds Schools of fishes Herds of land animals

Flocks: Lots of Contrasts Made up of discrete birds: overall motion seems fluid Simple in concept: complex scene Randomly arrayed: magnificently synchronized. The strong impression of intentional, centralized control: merely the aggregate result of individual animals, each acting based on its own local perception.

Difficulties Scripting paths for individual characters –Tedious for large amount of characters –Hard to maintain the flock motion constraints (e.g. collision prevention) –Hard to edit –Not ideal for efficient, robust, believable flock animation

A Distributed Approach A flock is assumed to be the result of the interaction between behaviors of individual characters Simulating the flock by simulating the individuals

Introduction to Steering Animation System demo – Dove Introduction to steering behavior Hierarchy of motion behaviors Java applet demo Steering styles Trial of the OpenSteer library

Consider a Herd of Cattle… A cow wanders away from the herd. The trail boss tells a cowboy to fetch the stray. The cowboy says “giddy-up” to his horse and guides it to the cow, possibly avoiding obstacles along the way. In this example, the trail boss represents action selection: noticing that the state of the world has changed (a cow left the herd) and setting a goal (retrieve the stray).

Consider a Herd of Cattle… (cont’d) The steering level is represented by the cowboy Sub-goals: approach the cow, avoid obstacles, retrieve the cow. A sub-goal corresponds to a steering behavior for the cowboy-and-horse team. Using various control signals (vocal commands, spurs, reins) the cowboy steers his horse towards the target. In general terms, these signals express concepts like: go faster, go slower, turn right, turn left, and so on.

Consider a Herd of Cattle… (cont’d) The horse implements the locomotion level. Taking the cowboy’s control signals as input, the horse moves in the indicated direction. This motion is the result of a complex interaction of the horse’s visual perception, its sense of balance, and its muscles applying torques to the joints of its skeleton.

The Hierarchy of Motion Behavior Action Selection: strategy, goals, planning Steering: path determination Locomotion: animation, articulation

Path-Finding A topic related to, but separate from our topic. A search problem, can be achieved by A* or Dijkstra’s algorithm Used in RenderWare AI

“Fast” Motion Running v.s. crawling The characters’ typical velocities are large relative to their maximum accelerations Therefore, the steering behavior must anticipate the future, and take account eventual consequences of current actions

Introduction to Steering Animation System demo – Dove Introduction to steering behavior Hierarchy of motion behaviors Java applet demo Steering styles Trial of the OpenSteer library

Java Applet Demo

Introduction to Steering Animation System demo – Dove Introduction to steering behavior Hierarchy of motion behaviors Java applet demo Steering styles Trial of the OpenSteer library

Steering Behaviors At each time step, a character exhibits a velocity vector, and will apply a new steering force according to the result of its action selection The steering force consists of turning force, braking force, and so on

Seek and Flee Steering towards a specified position by adjusting the velocity aligned to it Different from the attractive force (gravity) Steering force different from the desired velocity desired_velocity = normalize (position - target) * max_speed ; steering = desired_velocity - velocity ; Contrast with Arrive Inverse of Seek: Flee

Pursuit and Evade Similar to Seek, but the target is moving Future position is predicted at each time step Position(T units of time in the future): scaling the velocity by T and adding it to the current position Steer away from the predicted future position of the target Inverse of Pursuit: Evade

Offset Pursuit Passes near, but not directly into a moving target Flying near enough to be within weapon range without colliding with the target Compute a target point given a radius R from the target’s predicted position, and seek the point

Arrival Identical to Seek while the character is far from its target Slow down as approaching the target, eventually slowing to a stop coincident with the target The desired velocity is clipped to max_speed outside the stopping radius, and inside it is ramped down (e.g. linearly) to zero.

Obstacle Avoidance Unlike Flee, Obstacle Avoidance takes action only when a nearby obstacle directly in front of it. Assume that both the character and obstacle can be reasonably approximated as spheres Cylinder for detecting potential collision “Most threatening” character Return 0 if no obstacles

Wandering Random steering force produces “twitchy” motion Retaining steering direction states and make small random displacements using a sphere ahead. See [Beer90] and [Tu96] for Explore and Forage steering styles

Path Following The individual paths go near, and often parallel to, the centerline, but are free to deviate from it. If far way initially, first approach, then follow it.

Wall Following Path Following (Surface path) + Offset Pursuit

Unaligned Collision Avoidance Prevent running into each other If all nearby characters are aligned, a less complex strategy (Separation) can be used Steer to turn away, accelerate or decelerate to prevent potential collisions

Group of Characters Separation, Cohesion, and Alignment relate to groups of characters Characters outside the neighborhood are ignored

Separation Maintain a certain separation distance from others First, find those within the specified neighborhood Each neighbor contributes a repulsive force with a weighting value (e.g. 1/r)

Cohesion Giving the ability to cohere with (approach and form a group with) other nearby characters After finding neighbors, compute the “average position” (or “center of gravity”) of them Seek that position

Alignment Align a character with (that is, head in the same direction and/or speed as) nearby characters Use the average velocity or forward vector as desired velocity

Flocking/Crowd Behavior Combining Separation, Cohesion, and Alignment steering styles Better normalizing the three components, and then summing with weighting parameters Therefore, flocking behavior is specified by nine numerical parameters: a weight, a distance and an angle (to define the neighborhood) for each of the components.

Leader Following One or more characters following another moving character (the leader) Arrival + Separation

Introduction to Steering Animation System demo – Dove Introduction to steering behavior Hierarchy of motion behaviors Java applet demo Steering styles Trial of the OpenSteer library

Download the Library