CSCE 590E Spring 2007

Download Report

Transcript CSCE 590E Spring 2007

CSCE 552 Spring 2011
Inverse Kinematics & AI
By Jijun Tang
Announcements

Second presentation: April 11th and 13th



In class
Each group 12 minutes
What to show:





Detailed designs of layers/modules/classes
Progress report with demo
3D/2D Models, graphics, etc
Schedules and milestones
Problems and planned changes
Frustum and Frustum Culling
Hemisphere Lighting
Normal Mapping Example
Specular Lighting
Environmental Map
Inverse Kinematics






FK & IK
Single Bone IK
Multi-Bone IK
Cyclic Coordinate Descent
Two-Bone IK
IK by Interpolation
FK & IK

Most animation is “forward kinematics”


But there are feedback mechanisms




Motion moves down skeletal hierarchy
Eyes track a fixed object while body
moves
Foot stays still on ground while walking
Hand picks up cup from table
This is “inverse kinematics”

Motion moves back up skeletal hierarchy
Example of Inverse
Kinematics
Single Bone IK

Orient a bone in given direction





Find desired aim vector
Find current aim vector
Find rotation from one to the other



Eyeballs
Cameras
Cross-product gives axis
Dot-product gives angle
Transform object by that rotation
Multi-Bone IK

One bone must get to a target position



Can move some or all of its parents
May be told which it should move first


Bone is called the “end effector”
Move elbow before moving shoulders
May be given joint constraints

Cannot bend elbow backwards
Cyclic Coordinate Descent




Simple type of multi-bone IK
Iterative: Can be slow
May not find best solution: May not
find any solution in complex cases
But it is simple and versatile: No
precalculation or preprocessing
needed
Procedures







Start at end effector
Go up skeleton to next joint
Move (usually rotate) joint to minimize
distance between end effector and target
Continue up skeleton one joint at a time
If at root bone, start at end effector again
Stop when end effector is “close enough”
Or hit iteration count limit
Properties


May take a lot of iterations
Especially when joints are nearly
straight and solution needs them bent



e.g. a walking leg bending to go up a step
50 iterations is not uncommon!
May not find the “right” answer

Knee can try to bend in strange directions
Two-Bone IK


Direct method, not iterative
Always finds correct solution


Allows simple constraints


Knees, elbows
Restricted to two rigid bones with a rotation
joint between them


If one exists
Knees, elbows!
Can be used in a cyclic coordinate descent
Two-Bone IK Constraints





Three joints must stay in user-specified
plane: e.g. knee may not move sideways
Reduces 3D problem to a 2D one
Both bones must remain original length
Therefore, middle joint is at intersection of
two circles
Pick nearest solution to current pose, or one
solution is disallowed: Knees or elbows
cannot bend backwards
Example
Disallowed
elbow
position
Shoulder
Wrist
Allowed
elbow
position
IK by Interpolation


Animator supplies multiple poses
Each pose has a reference direction




e.g. direction of aim of gun
Game has a direction to aim in
Blend poses together to achieve it
Source poses can be realistic


As long as interpolation makes sense
Result looks far better than algorithmic IK with
simple joint limits
Example


One has poses。 for look ahead, look
downward (60 ), look right, look down and
right
。
。
Now to aim 54 right and 15 downward,
thus 60% (54/90) on the horizontal scale,
25% (15/60) on the downward scale




Look ahead (1-0.25)(1-0.6)=0.3
Look downward 0.25(1-0.6)=0.1
Look right (1-0.25) 0.6=0.45
Look down and right (0.25)(0.6)=0.15
IK by Interpolation results

Result aim point is inexact



Blending two poses on complex
skeletons does not give linear blend
result
But may be good enough from the game
perspective
Can iterate towards correct aim
Attachments



e.g. character holding a gun
Gun is a separate mesh
Attachment is a bone in character’s skeleton




Represents root bone of gun
Animate character
Transform attachment bone to world space
Move gun mesh to that pos+orn
Attachments (2)


e.g. person is hanging off bridge
Attachment point is a bone in hand





As with the gun example
But here the person moves, not the bridge
Find delta from root bone to attachment
bone
Find world transform of grip point on bridge
Multiply by inverse of delta

Finds position of root to keep hand gripping
Artificial Intelligence:
Agents, Architecture, and Techniques
Artificial Intelligence



Intelligence embodied in a man-made
device
Human level AI still unobtainable
The difficulty is comprehension
Game Artificial Intelligence:
What is considered Game AI?

Is it any NPC (non-player character)
behavior?





A single “if” statement?
Scripted behavior?
Pathfinding?
Animation selection?
Automatically generated environment?
Possible Game AI
Definition
Inclusive view of game AI:
“Game AI is anything that contributes to the
perceived intelligence of an entity,
regardless of what’s under the hood.”
Goals of an
AI Game Programmer
Different than academic or defense industry
1. AI must be intelligent, yet purposely flawed
2. AI must have no unintended weaknesses
3. AI must perform within the constraints
4. AI must be configurable by game designers
or players
5. AI must not keep the game from shipping
Specialization of
Game AI Developer

No one-size fits all solution to game AI


Strategy Games



Battlefield analysis
Long term planning and strategy
First-Person Shooter Games



Results in dramatic specialization
One-on-one tactical analysis
Intelligent movement at footstep level
Real-Time Strategy games the most
demanding, with as many as three full-time
AI game programmers
Game Agents

May act as an




Opponent
Ally
Neutral character
Continually loops through the
Sense-Think-Act cycle

Optional learning or remembering step
Sense-Think-Act Cycle:
Sensing

Agent can have access to perfect information
of the game world



Game World Information




May be expensive/difficult to tease out useful info
Players cannot
Complete terrain layout
Location and state of every game object
Location and state of player
But isn’t this cheating???
Sensing:
Enforcing Limitations


Human limitations?
Limitations such as





Not knowing about unexplored areas
Not seeing through walls
Not knowing location or state of player
Can only know about things seen,
heard, or told about
Must create a sensing model
Sensing:
Human Vision Model for Agents

Get a list of all objects or agents; for each:
1. Is it within the viewing distance of the agent?


How far can the agent see?
What does the code look like?
2. Is it within the viewing angle of the agent?


What is the agent’s viewing angle?
What does the code look like?
3. Is it unobscured by the environment?


Most expensive test, so it is purposely last
What does the code look like?
Sensing:
Vision Model


Isn’t vision more than just detecting the
existence of objects?
What about recognizing interesting
terrain features?


What would be interesting to an agent?
How to interpret it?
Sensing:
Human Hearing Model




Human can hear sounds
Human can recognize sounds and
knows what emits each sound
Human can sense volume and
indicates distance of sound
Human can sense pitch and location


Sounds muffled through walls have more
bass
Where sound is coming from
Sensing:
Modeling Hearing

How do you model hearing efficiently?


Do you model how sounds reflect off every
surface?
How should an agent know about sounds?
Sensing:
Modeling Hearing Efficiently

Event-based approach



When sound is emitted, it alerts
interested agents
Observer pattern
Use distance and zones to determine
how far sound can travel
Sensing:
Communication

Agents might talk amongst
themselves!



Guards might alert other guards
Agents witness player location and
spread the word
Model sensed knowledge through
communication

Event-driven when agents within vicinity
of each other
Sensing:
Reaction Times



Agents shouldn’t see, hear,
communicate instantaneously
Players notice!
Build in artificial reaction times



Vision: ¼ to ½ second
Hearing: ¼ to ½ second
Communication: > 2 seconds
Sense-Think-Act Cycle:
Thinking



Sensed information gathered
Must process sensed information
Two primary methods


Process using pre-coded expert
knowledge
Use search to find an optimal solution
Thinking:
Expert Knowledge

Many different systems





Encoding expert knowledge is appealing
because it’s relatively easy



Finite-state machines
Production systems
Decision trees
Logical inference
Can ask just the right questions
As simple as if-then statements
Problems with expert knowledge: not very
scalable
Finite-state machine (FSM)
Production systems



Consists primarily of a set of rules about
behavior
Productions consist of two parts: a sensory
precondition (or "IF" statement) and an
action (or "THEN")
A production system also contains a
database about current state and
knowledge, as well as a rule interpreter
Decision trees
Logical inference


Process of derive a conclusion solely
based on what one already knows
Prolog (programming in logic)
mortal(X) :- man(X).
man(socrates).
?- mortal(socrates).
Yes
Thinking:
Search

Employs search algorithm to find an
optimal or near-optimal solution




Branch-and-bound
Depth-first
Breadth-first
A* pathfinding common use of search

Kind of mixed
Depth and breadth-first
Thinking:
Machine Learning


If imparting expert knowledge and search
are both not reasonable/possible, then
machine learning might work
Examples:




Reinforcement learning
Neural networks
Decision tree learning
Not often used by game developers

Why?
Thinking:
Flip-Flopping Decisions



Must prevent flip-flopping of decisions
Reaction times might help keep it from
happening every frame
Must make a decision and stick with it


Until situation changes enough
Until enough time has passed
Sense-Think-Act Cycle:
Acting



Sensing and thinking steps invisible to
player
Acting is how player witnesses intelligence
Numerous agent actions, for example:






Change locations
Pick up object
Play animation
Play sound effect
Converse with player
Fire weapon
Acting:
Showing Intelligence




Adeptness and subtlety of actions impact
perceived level of intelligence
Enormous burden on asset generation
Agent can only express intelligence in terms
of vocabulary of actions
Current games have huge sets of
animations/assets

Must use scalable solutions to make selections
Extra Step in Cycle:
Learning and Remembering


Optional 4th step
Not necessary in many games


Agents don’t live long enough
Game design might not desire it
Learning


Remembering outcomes and
generalizing to future situations
Simplest approach: gather statistics



If 80% of time player attacks from left
Then expect this likely event
Adapts to player behavior
Remembering

Remember hard facts



Memories should fade



Observed states, objects, or players
Easy for computer
Helps keep memory requirements lower
Simulates poor, imprecise, selective human
memory
For example



Where was the player last seen?
What weapon did the player have?
Where did I last see a health pack?
Remembering
within the World


All memory doesn’t need to be stored
in the agent – can be stored in the
world
For example:




Agents get slaughtered in a certain area
Area might begin to “smell of death”
Agent’s path planning will avoid the area
Simulates group memory
Making Agents Stupid

Sometimes very easy to trounce player



Make agents faster, stronger, more accurate
Challenging but sense of cheating may
frustrate the player
Sometimes necessary to dumb down
agents, for example:




Make shooting less accurate
Make longer reaction times
Engage player only one at a time
Change locations to make self more vulnerable
Agent Cheating

Players don’t like agent cheating



Sometimes necessary




When agent given unfair advantage in speed, strength, or
knowledge
People notices it
For highest difficultly levels
For CPU computation reasons
For development time reasons
Don’t let the player catch you cheating!


Consider letting the player know upfront
No one wants to fight a stupid enemy, trade-off
Common Game AI
Techniques








A* Pathfinding
Command Hierarchy
Dead Reckoning
Emergent Behavior
Flocking
Formations
Influence Mapping
…
A* Pathfinding



Directed search algorithm used for finding
an optimal path through the game world
Used knowledge about the destination to
direct the search
A* is regarded as the best



Guaranteed to find a path if one exists
Will find the optimal path
Very efficient and fast
Command Hierarchy

Strategy for dealing with decisions at
different levels


From the general down to the foot soldier
Modeled after military hierarchies


General directs high-level strategy
Foot soldier concentrates on combat
US Military Chain of
Command
Dead Reckoning




Method for predicting object’s future position
based on current position, velocity and
acceleration
Works well since movement is generally
close to a straight line over short time
periods
Can also give guidance to how far object
could have moved
Example: shooting game to estimate the
leading distance
Emergent Behavior


Behavior that wasn’t explicitly
programmed
Emerges from the interaction of
simpler behaviors or rules


Rules: seek food, avoid walls
Can result in unanticipated individual or
group behavior
Flocking

Example of emergent behavior



Simulates flocking birds, schooling fish
Developed by Craig Reynolds: 1987
SIGGRAPH paper
Three classic rules
1. Separation – avoid local flockmates
2. Alignment – steer toward average
heading
3. Cohesion – steer toward average position
Formations

Group movement technique



Mimics military formations
Similar to flocking, but actually distinct
Each unit guided toward formation
position


Flocking doesn’t dictate goal positions
Need a leader
Flocking/Formation
Influence Mapping



Method for viewing/abstracting distribution
of power within game world
Typically 2D grid superimposed on land
Unit influence is summed into each grid cell


Unit influences neighboring cells with falloff
Facilitates decisions




Can identify the “front” of the battle
Can identify unguarded areas
Plan attacks
Sim-city: influence of police around the city
Mapping Example
Level-of-Detail AI



Optimization technique like graphical LOD
Only perform AI computations if player will
notice
For example


Only compute detailed paths for visible agents
Off-screen agents don’t think as often