Phase-Functioned Neural Networks for Character Control

Created on April 30, 2017, 3:48 p.m.

This year at SIGGRAPH I am presenting Phase-Functioned Neural Networks for Character Control. This paper uses a new kind of neural network called a "Phase-Functioned Neural Network" to create a character controller suitable for games. Our controller requires very little memory, is fast to compute at runtime, and generates high quality motion in many complex situations. We also present a technique for fitting terrains from virtual environments to separately captured motion data. This is used to train our system so it can natually traverse rough terrains at runtime.

Webpage • Paper • Slides • Video • Extras • Demo • Code & Data • Talk

Abstract: We present a real-time character control mechanism using a novel neural network architecture called a Phase-Functioned Neural Network. In this network structure, the weights are computed via a cyclic function which uses the phase as an input. Along with the phase, our system takes as input user controls, the previous state of the character, the geometry of the scene, and automatically produces high quality motions that achieve the desired user control. The entire network is trained in an end-to-end fashion on a large dataset composed of locomotion such as walking, running, jumping, and climbing movements fitted into virtual environments. Our system can therefore automatically produce motions where the character adapts to different geometric environments such as walking and running over rough terrain, climbing over large rocks, jumping over obstacles, and crouching under low ceilings. Our network architecture produces higher quality results than time-series autoregressive models such as LSTMs as it deals explicitly with the latent variable of motion relating to the phase. Once trained, our system is also extremely fast and compact, requiring only milliseconds of execution time and a few megabytes of memory, even when trained on gigabytes of motion data. Our work is most appropriate for controlling characters in interactive scenes such as computer games and virtual reality systems.