Study Guide 4

Quizzes are closed book. 30 minutes. In Lab. One written cheat sheet is allowed. This quiz expands on the topics from Study Guide 2 and Study Guide 1. The quiz will also ask you about your homework implementation.

Topics:

  • Character animation

  • Splines and bezier curves

  • Collisions

  • Navigation and steering

Terms To Know:

  • Forward and inverse kinematics

  • Skeleton, joints, pose, degrees of freedom, end effector

  • Unity Colliders (trigger versus physics), CharacterController

  • Navigation mesh, Dijkstra’s Algorithm

  • Behavior Trees and Finite State Machines

Sample Questions (Character Animation):

  • In character animation, what is a skeleton?

  • In character animation, what is the root joint?

  • In character animation, how many degrees of freedom does the root of the skeleton have?

  • Suppose we have an octopus character, what end effectors would such a character have?

  • What does degree of freedom (DOF) mean for character animation?

  • In character animation, what is a joint?

  • Suppose we have a joint that can translate along Z and rotate around the X and Y axes. How many degrees of freedom does it have?

  • What is a pose?

  • What is forward kinematics?

  • What is inverse kinematics?

  • Suppose we have a two-link chain that represents an arm. Suppose we have limbs lengths for the arms of l1 = 6 and l2 = 8. If the desired target for the hand is at (10, 0, 0). What angle should the elbow? Hint: Use the cosine rule.

  • Suppose we have two vectors a and b. How can we find an axis that is perpendicular to both a and b?

Sample Questions (Animation and Bezier Curves):

  • Given a Unity script, can you re-write it to use a Coroutine without changing its behavior? What abut vice versa?

  • What is interpolation?

  • What are keyframes?

  • What is a spline?

  • Given the general formula for a Bezier curve, can you compute the polynomial given N?

    • For example: Compute the polynomial of the Bezier curve when n = 1

  • Given a cubic polynomial p(t), time t, and its control points, can you compute its value?

  • When interpolating, the interpolant t must be in the range [0,1]. How can we support arbitrary time points for keys?

  • Given a set of control points for a cubic bezier curve, can you estimate the shape of the curve (without computing it)?

  • What is a state machine? How are state machines used in Unity for animating characters?

  • What is a motion clip?

Sample Questions (Colliders and bounding volumes):

  • What is a collider? What are two ways that colliders are used in Unity?

  • What is a bounding sphere? An axis-aligned bounding box (AABB)? How can these be computed from a mesh?

  • How can you test whether two spheres collide?

  • How can you test whether two boxes collide?

  • Collision detection is slow. Describe two techniques that can make collision detection more efficient. (Bounding volume hierarchy, layers, testing bounding volumes using increasingly detailed bounding volumes)

Sample Questions (Navigation):

  • How do grid-based terrain representations work? Given a terrain with obstacles, how can it be represented with a grid?

  • What is a waypoint terrain representation?

  • What is a navigation mesh? What are the pros of this approach over other approaches?

  • Given a navigation mesh, can you represent it as a graph?

  • Given a graph, can you apply Dijkstra’s shortest path algorithm?

Sample Questions (Finite State Machines and Behavior Trees)

  • What is a finite state machine?

  • What is a behavior tree? What is the difference between a finite state machine and a behavior tree?

  • What does a selector node do in a behavior tree? A sequence node?

  • How are conditionals handled in a behavior tree?

  • Given a desired set of behaviors, can you design a behavior tree?

  • Given a desired set of behaviors, can you design a finite state machine?