430 likes | 535 Vues
Understand the principles and methods of controlling object motion using virtual actors in behavioral animation. Learn about goal-oriented autonomous motion and actor properties like position and orientation. Explore techniques such as flocking, swarming, and collision avoidance.
E N D
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 a 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
Behavioral animation • Character or object motion based on: • Knowledge of the environment • Aggregate behavior • Primitive behavior • Intelligent behavior • Crowd management
Actor properties (position only) Goal (xg, yg) V = Goal - Position Next Position = Position + V * dt Position (x, y)
Actor properties (position and orientation) Orientation (ox, oy) = transform.forward Rotate(θ) Determine which rotation (±θ) orients the actor closer to the goal using dot product Rotate(-θ) Goal (xg, yg) Vtarget = Goal - Position Position (x, y) In Unity, you can use RotateTowards()
Sample code class OrientedAgent2D { // Data Vector3 position; GameObjectmodel; // Use this for geometry and orientation // Methods Update(float deltaTime); TurnLeft(); TurnRight(); MoveForward(); MoveBackward(); };
Knowing the environment • Vision and other senses • Information available now • Memory • Information stored from the past
Vision • General vision • What can the actor see? • What is everything in sight now? • Targeted vision • Can the actor see object X? • Computation vs. accuracy • 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
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) // agent can see object
Occluded Vision Ray casting with collision detection Sample the environment
Target-testing vision (per object) How well can the actor see X? Use multiple rays Can the actor see X? Cast a ray
Target-testing vision (alternative) Sample the vision cone Cast multiple rays
Lab4 – predator-prey simulation • Unbalanced abilities • Vision • Distance • Field of view • Linear speed (moving forward) • Angular or rotational speed (turning)
Other senses • Hearing • Smell • Sensors & signal propagation • Spatial occupancy approach • Applications
Memory • What is recorded about the environment • Spatial occupancy • Transience of objects: time-stamps • Memory hierarchy: short-term, long-term
Spatial Occupancy transiency doorway doorway wall
Aggregate Behavior: Emergent Behavior Typical qualities
Emergent behavior • Complex systems and patterns arising out of simple rules • Aints– AI ants http://www.youtube.com/watch?v=rsqsZCH36Hk
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
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
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
Forces Or “Reasoning” (e.g. rule-based) Negotiating the motion
Navigating obstacles Problems with repulsive forces
Navigating Testing for being on a collision path with (bounding) sphere Given: P, V, C, r
Finding closest non-colliding point Calculate s,t
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 – summary • Turning is effected by horizontal lift • Increasing pitch increases drag • Increasing speed increases lift