Behavioralx - Ohio State Computer Science and Engineering

Download Report

Transcript Behavioralx - Ohio State Computer Science and Engineering

Behavioral animation
CSE 3541
Matt Boggus
Material recap and trajectory
• Geometric
– Artist specifies translation and rotation over time
• Physically based
– Artist specifies forces acting on objects
– Motion equations dictate movement
• Behavioral
– Artist directs autonomous agents
• Interpolation
– Artist draws the scene at the beginning and end of an
interval of time
– Intermediate positions are calculated
Behavioral Animation
• Control the motion of one or more objects using
virtual actors
• Goal: realistic or believable motion so that the object
appears to be autonomous
• Matt Lewis’ page on BA
http://accad.osu.edu/~mlewis/Class/behavior.html
Actor properties (position only)
Goal (xg, yg)
V = Goal - Position
Next Position = Position + V * dt
Position (x, y)
Problems with repulsive forces
A hierarchy of motion behaviors
• Action selection
– State logic
– Reflex agent
• Steering
– Position and orientation
changing logic
• Locomotion
Figure source: Steering Behaviors For
Autonomous Characters
http://www.red3d.com/cwr/steer/gdc99/
– Figure animation
covered later in 3541
– Keep using primitive
shapes or non-animated
meshes
Reflex agent
Figure source:
https://www.tutorialspoint.com/artificial_intelligence/artificial_intelligence_agents_and_environments.htm
Reflex agent – predator
Actor properties (position and orientation)
Orientation (ox, oy) = transform.forward
Determine which
rotation (±θ) orients the
actor closer to the goal
using dot product
Rotate(θ)
Rotate(-θ)
Goal (xg, yg)
Vtarget = Goal - Position
Position (x, y)
In Unity, you can use RotateTowards()
Orientation vectors in Unity
Image source: http://answers.unity3d.com/questions/211910/getting-object-local-direction.html
Sample starter code
class OrientedAgent2D {
// Data
GameObject model;
// Methods
Update(float deltaTime);
TurnLeft();
TurnRight();
MoveForward();
MoveBackward();
};
// Use this field for geometry,
// position, and orientation
Behavioral animation
• Character or object motion based on:
– Knowledge of the environment
– Aggregate behavior
– Primitive behavior
– (Intelligent behavior)
– (Crowd management)
Knowing the environment
• Vision and other senses
– Information available from the current state of the scene
– Computed “fresh” each Update()
• Memory
– Information stored from the past
– Ex: lastKnownPlayerPosition field set at the end of an
Update call where an enemy ai saw the player
Lab4 design note
• Predator class/objects/script must be able to
access prey class/objects/script in order to get
position for vision test
• Multiple options
– All objects are fields in one script
– Or, add methods that pass/take references to
other objects or find objects by name
Vision
• Targeted vision
– Can the actor see object X?
– Boolean CanSee(object X);
• General vision
– What is everything the actor can currently see?
– Brute force approach: loop over all objects, use targeted vision on
each one, return arrayList of GameObjects “seen”
• Possible computation/accuracy tradeoff
– How much of an object needs to be seen to be identified?
– Do we need to model visual perception?
Omniscience
Everything in the scene is known
CanSee(object X) { return true };
Distance limited omniscience
Field of view
Field of view – example
Orientation Vector (O)
Vector from
agent to vertex
(V)
Angle of cone = θ
Inside the cone when the angle between O and V is less then or equal to θ/2
Field of view – sample code
Vector3 agentPosition, orientation, objectPosition;
float visionLimit;
Vector3 agentToVertex = objectPosition – agentPosition;
agentToVertex.Normalize();
if(Vector3.Dot(agentToVertex,orientation) > visionLimit)
// objectPosition is in cone
Occluded Vision
Ray casting with collision detection
Sample the environment
Target-testing vision (per object)
Can the actor see X?
Cast a ray
How well can the actor see X?
Use multiple rays
Target-testing vision (alternative)
Sample the vision cone
Cast multiple rays
Other senses
• Hearing
• Smell
• Sensors & signal propagation
• Spatial occupancy approach
• Applications
Spatial Occupancy
Memory
• What is recorded about the environment
• Spatial occupancy
• Transience of objects: time-stamps
• Memory hierarchy: short-term, long-term
Behavioral animation
• Character or object motion based on:
– Knowledge of the environment
– Aggregate behavior
– Primitive behavior
• Predator-Prey forces and movement
• Predator-Prey steering
– Intelligent behavior
– Crowd management
Lab4 – predator-prey simulation
• Unbalanced abilities
– Vision
• Distance
• Field of view
– Linear speed (moving forward)
– Angular or rotational speed (turning)
• (For stealth game concept, consider enemy AI
agents as predators, player controls prey)
Predator Prey vision anatomy
Prey-Predator (vision)
Prey-Predator
(movement – speed and turning)
Motion – force based
Force = c * posprey - pospred
Apply a force on the predator
towards the prey when in view
Motion – kinematic based
vnew
vold
Determine the closest prey in view
then turn towards it and increase forward velocity
Prey-Predator – environment forces
Using pure forces
May not prevent object penetration
Prey can be ‘hidden’ by environmental repulsive forces
Behavioral animation
• Character or object motion based on:
– Knowledge of the environment
– Aggregate behavior
• Emergence
– Primitive behavior
– Intelligent behavior
– Crowd management
Aggregate Behavior:
Emergent Behavior
Typical qualities
Type
Elements
Physics
Env/Others
Intelligence
Particles
102-104
Much/none
None
Flocking
101-103
Some/some
Limited
Crowds
101-102
Little/much
Little-much
Emergent behavior
• Complex systems and patterns arising out of
simple rules
• Aints – AI ants
http://www.youtube.com/watch?v=rsqsZCH36Hk
Flocking, Swarming, Flying
Boids
http://www.red3d.com/cwr/boids/
Local control
Rules defined to
stay with friends,
but avoid bumping
into each other
Need additional
rules for collision
avoidance with
obstacles
Local information
Other flocking issues
• Global control
– script flock leader
– global migratory urge
• Negotiating the motion
– Separation, alignment, and cohesion may compete/contradict
• Collision avoidance
– Once an object is in sight, start steering to avoid
• Splitting and rejoining (difficult)
– Collision avoidance too strong – flock may never rejoin after split
– Flock membership too strong – flock does not split and formation changes
• Modeling flight
Navigating using bounding sphere
Navigating
Testing for being on a collision path with
(bounding) sphere
Given: P, V, C, r
k  (C  P) 
s CP
t  s2  k 2
tr
V
V
Finding closest non-colliding point
Calculate s,t
k
C  P  r2
2
r 2  s2  t 2
k 2  s 2  ( C  P  t )2
k2  r2  t2  C  P  2C  P t  t2
2
t
k2  r2  C  P
2
 2C  P
s  r2  t2
U
CP
CP
W
U  V  U
U  V  U
B  P  ( C  P  t )U  sW
ADDITIONAL SLIDES, TIME
PERMITTING
Spatial Occupancy
transiency
doorway
wall
doorway
Negotiating the motion
Forces
Or
“Reasoning”
(e.g. rule-based)
Modeling flight – common in flocking
Modeling flight
Geometric flight – dynamic, incremental rigid transformation of
an object moving along a tangent to a three dimensional curve
Modeling Flight – Lift
Air passing above wing most travel longer than air below it.
Less pressure above wing = lift
Modeling Flight – turn by rolling
Modeling Flight – summary
• Turning is effected by horizontal lift
• Increasing pitch increases drag
• Increasing speed increases lift