Teaching Virtual Agents to Perform Complex Spatial-Temporal Activities