Contact-Based Motion Generation