Move object along terrain

Is there any easy way to move a character across some uneven terrain? The main issues I’m facing are keeping the character on the ground (and not over or in it) and rotating the character to be going up- or downhill.

Any suggestions?

Here is a good starting point: