movement: path finding, flocking, formationweb.eecs.umich.edu/~soar/classes/494/talks/lecture 7...
TRANSCRIPT
![Page 1: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/1.jpg)
Movement: Path Finding, Flocking, Formation
John LairdJohn Laird9/27/10
Al b d t lk b L Lidé dAlso based on talks by Lars Lidén and Damián Isla
![Page 2: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/2.jpg)
MovementMovement• Movement layer figures out how the character should
i h ldmove in the world• Avoid obstacles, follow others, …• Does not figure out
• where to move or h t i t t• how to animate movement
![Page 3: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/3.jpg)
Simple MovementSimple Movement• Random motion
• Just roll the dice to pick when and which direction to movep
• Simple pattern• Follow invisible tracks: Galaxians
• Tracking• Tracking• Pure Pursuit: Move toward agent’s current position
• Heat seeking missile• Lead Pursuit: Move to position in front of agent• Collision: Move toward where agent will be
![Page 4: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/4.jpg)
Pure PursuitPure Pursuit
![Page 5: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/5.jpg)
Lead PursuitLead Pursuit
![Page 6: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/6.jpg)
CollisionCollision
![Page 7: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/7.jpg)
Simple Movement - moreSimple Movement more• Tracking
• Weave: Every N seconds move X degree off opponent’s bearingy g pp g• Spiral: Head 90-M degrees off of opponent’s bearing
• Evasive – opposite of any tracking
• Delayed or restricted sensing gives different effects
![Page 8: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/8.jpg)
Moving in the World: Path FindingMoving in the World: Path Finding• Just try moving toward goal while avoiding obstacles.
G lGoal
Source
![Page 9: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/9.jpg)
ProblemProblem
G lGoal
Source
![Page 10: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/10.jpg)
Create Avoidance RegionsCreate Avoidance Regions
G lGoal
Source
![Page 11: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/11.jpg)
Path Planning ProblemPath Planning Problem• Given a graph with some cost function, find the
h h b i i h hshortest path between two vertices in the graph• Arbitrary graph• 2D world – node-based, or tile based, convex regions,
squares, rectangles, hexes• 2½D world – no arches – same thing• 3D world – node-based, or treat mostly as 2D tiles with y
unusual connectivity
![Page 12: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/12.jpg)
Path FindingPath Finding
A: 10 K: 54 3
F: 7
622
I: 53
7
C: 7
1
G: 5 L: 3
2
8
3D: 6
2
J: 2H: 4 M: 0
22 2
E: 5
2 12
B: 6
![Page 13: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/13.jpg)
AnalysisAnalysis• Find the shortest path through a maze of rooms• Approach is A*:
• At each step, calculate the cost of each expanded path• Also calculate an estimate of remaining cost of path• Extend path with the lowest cost + estimate
• Cost can be more than just distance:• Climbing and swimming are harder (2x)Climbing and swimming are harder (2x)• Monster filled rooms are really bad (5x)• Can add cost to turning – creates smoother paths• But must be a numeric calculationBut must be a numeric calculation• Must guarantee that estimate is not an overestimate
• A* will always find shortest path
![Page 14: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/14.jpg)
A* Advantages/DisadvantagesA Advantages/Disadvantages• Advantages:
P bl i l• Provably optimal• Usually limits search
• Especially for simple graphs • Linear with straight lines
• Can have complex cost function that includes many things• Visibility, effort, …
• Disadvantages:• Can spend a lot of resources getting optimal result• Can be compute and memory intensive• Exhaustive if no path• Requires admissible heuristicRequires admissible heuristic
![Page 15: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/15.jpg)
A* Nuts and BoltsA Nuts and Bolts• Best-first search (with dynamic programming)
• Generating partial paths• Generating partial paths
• Evaluation function f = g + h• g = actual cost from start node to current node along current path
• Must be monotonic• h = estimated cost from current node to goal node
• h must not overestimate the cost to the goal• Used to guide the search – closer to actual cost the smaller the search• Used to guide the search closer to actual cost the smaller the search
A C
A
B DA
D BF
C B D
C E EFE
F FD B
![Page 16: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/16.jpg)
Cost FunctionsCost Functions• Examples:
Di• Distance• Geometric Distance• Manhattan distance (when moving through tiles)( g g )
• Traversal speed based on terrain type• Danger (near enemy)
Vi ibilit [Vi i R d ]• Visibility [Vision, Radar]• Amount of turning
• Things can’t do:• Things can t do:• Negative cost (time travel)
![Page 17: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/17.jpg)
NodesNodes• Information associated with each node:
• g = cost of shortest path from start to nodeg p• h = estimated cost to goal• f = g + h• Parent = parent on shortest path from start to node
N d i ll th!• Node is really a path!• Children = all children of this node• Other task dependent data – x, y, z location,…
Li k h f l• Links have cost of traversal
![Page 18: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/18.jpg)
Path FindingPath Finding
A: 10 K: 54 3
F: 7
622
I: 53
7
C: 7
1
G: 5 L: 3
2
8
3D: 6
2
J: 2H: 4 M: 0
22 2
E: 5
2 12
B: 6
![Page 19: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/19.jpg)
AlgorithmAlgorithm1. Let P = starting point2 A i f h t P2. Assign f, g, h to P3. Add P to Open list4 Let B = the best node from the Open list (lowest f)4. Let B the best node from the Open list (lowest f)
1. If B is the goal node, then quit – a path is found2. If the Open list is empty, then quit – no path
5 Let C = a valid node connected to B (child)5. Let C = a valid node connected to B (child)1. Assign f, g, h to C2. Check if C is part of path on Open or Closed List
1. If so, check whether the new path is better (lower f), p ( )1. If so, recursively update all super-paths
2. Else, add C to the Open list3. Repeat 5 for all valid children of B4 Add B to Closed List4. Add B to Closed List
6. Repeat from step 4
![Page 20: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/20.jpg)
Costly operations: Optimize executionCostly operations: Optimize execution1. Let B = the best node from the Open list (lowest f)
1. Sorted open list: heapp p2. Check if C is on Open or Closed List
1. Have bit vector associated with map nodes – in open/closed2 H h h t2. Hash – heap sort
3. Else, add C to the Open list1. Heapp
4. Add B to the Closed list1. Don’t sort Closed list – make a hashtable
5 If i l d ll h5. If so, recursively update all super-path
Optimization: Cache top of open list don’t sort all of it don’tOptimization: Cache top of open-list – don t sort all of it – don t expect to go through all of it
![Page 21: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/21.jpg)
Lots of large spaces and obstaclesLots of large spaces and obstacles• Add all regions of high terrain cost
• If the added region entirely covers the current cell, set the current cell’s cost to the new cost.
• Otherwise, divide the current cell into four equal size quarters, and recursively add the new region to each child cell.
• Simplify Quad trees• Simplify Quad-trees• Recombine any cell that has all children of equal cost
• Extract the graph of neighboring cells• If impassable, skip the restp , p• If current cell is undivided, add it to list of cells, that border the n,s,e,w and skip• Else recur through all children
• Create the list of internal cells that border our north border by merging the northborder lists of ne and nw children.
• Create neighbor links.
• Need to smooth paths• Find best corners of cells• Use last-visible point –Use last visible point
• Draw a straight line from the current point to• The earliest point on path and not exit cells in our path
![Page 22: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/22.jpg)
Time-SlicingTime Slicing• Can’t always compute complete path in one frame
I h l i k• Increase resources the longer it takes
• Do a very quick search to startS h N d h f M• Search N nodes or search for M msec
• Do full search while moving through first N nodes• If don’t complete take best so far• If don t complete, take best so far
• Splice from current [N] to final
![Page 23: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/23.jpg)
DetailsDetails• Cache paths – reuse and splice onto them
PRECOMPUTATION!• PRECOMPUTATION!
• If tried same failed path multiple times – kill unit, …• Design maps so there aren’t big obstacles in the middle• If maps have choke points, can precompute
![Page 24: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/24.jpg)
Is optimal really necessary?Is optimal really necessary?• What can we do to get a pretty good solution?• If find a path to the goal, just take it• Bias search by inflating h [dangerous, but possible]y g [ g p ]
![Page 25: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/25.jpg)
Dynamic TerrainDynamic Terrain• Re-plan when get to changed part of path• Periodically re-plan• Set trigger for terrain that is used and then re-plangg p
• Expensive if terrain will change and change back
![Page 26: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/26.jpg)
Movement: Pathfinding ToolsMovement: Pathfinding Tools• Waypoint
• Position in a map that is used for navigationp g• Usually placed in word manually by a level designer•• A*A* is the preferred pathfinding algorithm for quickly finding a short
path between two waypoints
• Link• Connection between two waypoints• Often annotated with the required navigation type (Jump, Swim,Often annotated with the required navigation type (Jump, Swim,
Climb)• For a given NPC, two waypoints are linked when:
– The NPC has room enough to move from one node to another without llidi ith th ld tcolliding with the world geometry
– The NPC has the required navigation ability
• Node Graphp• Data structure holding all waypoints and links• Either generated manually by a level designer or automatically by the
computer and annotated by a level designer
![Page 27: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/27.jpg)
Movement: Node GraphMovement: Node Graph
![Page 28: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/28.jpg)
Spatial Feature ExtractionSpatial Feature ExtractionA lot of features we’re interested in
can be extracted automatically …
• Surface categorization / characterization
• Surface connectivitySurface connectivity• Overhang detection• Interior/exterior surfaces• Ledgesg• Wall-bases• “Leanable” walls• Corners• “Step” sectors• Thresholds• Local environment classification
• Captures the “openness” of theCaptures the openness of the environment at firing positions
![Page 29: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/29.jpg)
Spatial Feature Extractionp… and a lot can’t. So we
make the designers do iit.
Designer “hints”:• Jumping• Climbing• Hoisting• “Wells”• Manual fix-up for when the
i f ilautomatic processes fail:• Cookie-cutters• Connectivity hints
![Page 30: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/30.jpg)
Configuration space approachConfiguration space approach
![Page 31: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/31.jpg)
Embedded Info, Animation, SoundEmbedded Info, Animation, Sound
Embedded info can be used in path finding:• Node graph is an example embedded environment information• embed in path how to jump over crevices or how to open door
(Soldiers of Fortune 2)• illusion of coordination by “reserving” a path
![Page 32: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/32.jpg)
Embedding AnimationEmbedding Animation
![Page 33: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/33.jpg)
Quake III ArenaQuake III Arena
• Released in 1999 by id Software• Designed to be a multiplayer only game• The player battles computer-controlled
opponents, or bots• Bots developed by Jan Paul van Waveren
![Page 34: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/34.jpg)
Quake III Bot AIQuake III Bot AI
• FSM based – Uses a stack for short-term goals• Use Fuzzy Logic for some decision makingUse Fuzzy Logic for some decision making
• Collecting weapons and armor• Choosing a weapon for combat
• Fuzzy Relations were selected using Genetic Algorithms
• Each bot has a data file containing weapon preferences and behavior-controlling variables
![Page 35: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/35.jpg)
Bot NetworkBot Network
![Page 36: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/36.jpg)
Quake III Bot NavigationQuake III Bot Navigation
• AAS (Area Awareness System)• Level is subdivided into convex hulls that contain no
obstacles• Connections between areas are formed
![Page 37: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/37.jpg)
Simple Animate ObjectsSimple Animate Objects• Bugs
• Never fly in a straight line• Don’t always flap their wings
Att t d t d t i bj t• Attracted toward certain objects• Avoid moving objects• Affected by wind/breezes
• Solitary birds: Soaring Bird of PreyFl th i i l lid /• Flap their wings rarely: glide/soar
• Move to area to catch thermals• Move in circle• Dive to get food (either bird or ground animal)• Stay away from planes, etcStay away from planes, etc.
• Ground animals• Stay in limited area [bounding box]• Feed most of the time
• look for food, Eat food, Bring food to nest, Fight over food, , g , g• Startled/alerted by motion of bigger animal
• Flocks • Schools of Fish
i d d i l• Primary and secondary animals
![Page 38: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/38.jpg)
Flocking Things: Wh / d lWhat to measure/model
• Nearby entities• Nearby entities• Current path • Interaction with weather • Simple model of hunger, thirst…• Don’t really need physics – can “embed” physics in
behavior
![Page 39: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/39.jpg)
FlockingFlocking
Separation: steer to avoid crowding local flockmates Alignment: steer towards the average heading of local flockmates Cohesion: steer to move toward the average position of local flockmatesAvoidance: Steer to avoid running into local obstacles or enemies
a boid's neighborhooda boid s neighborhood
![Page 40: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/40.jpg)
IssuesIssues• Stateless• Leader can have more influence than others• Roll pitch yawRoll, pitch, yaw• Perceptual range
A l ti h l it b t fi d• Acceleration – change velocity by up to some fixed percent
![Page 41: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/41.jpg)
Schools of fishSchools of fish
• Sudden change of motion every 2-10 seconds• Random targets to head towardRandom targets to head toward• Targets change as they are achieved
![Page 42: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/42.jpg)
SwarmsSwarms
• Lots of agent• Flies toward N nearest neighbors – don’t avoid collisions• No alignment, computationally more efficient
![Page 43: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/43.jpg)
FormationsFormations• Organized movements
U ll i i b fi d i i• Usually same orientation – but fixed position
Right flankLeft flank
Wedge
Line StaggeredColumn
Line Staggered line
![Page 44: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/44.jpg)
IssuesIssues
• Movement • Spacing Distance• Field of fire• Protection of range attack• Different turning radius• Mixed types
• User control – automatic control
![Page 45: Movement: Path Finding, Flocking, Formationweb.eecs.umich.edu/~soar/Classes/494/talks/Lecture 7 Movement and Pathing.pdfAlgorithm 1. Let P = starting point 2. AiAssign fhf, g, h tPto](https://reader035.vdocuments.site/reader035/viewer/2022062602/5ed3875481ffeb588c307ba7/html5/thumbnails/45.jpg)
Web sitesWeb sites• http://www.red3d.com/cwr/boids/ - reynolds boids• http://www.riversoftavg.com/flocking.htm - flocking• http://www.riversoftavg.com/formation_flocking.htm -p g _ g
formation