I'm working on a big 'all things animation & character setup' document / tutorial & example characters, but here's a bit of extra info:
MotionSelectMin & MotionSelectMax are how you tell the engine which animation to play when the character is moving.
Basically you can define animation variables in your OPR file that the script can then modify at runtime.
You'll see a line like so with each of the idle, walk, run motion definitions:
MotionSelectVar Velocity
What this does is says that this animation will be affected by the select parameters that are specified, which are basically min & max values for the variable.
So if you do something like this:
AddMotion IdleMotion
MotionAnim Idle
MotionSelectVar Velocity
MotionSelectMax 0.2
what this means is that the motion called 'IdleMotion' will play the actual animation (either defined by LoadAnimation or AnimRange defines). Idle will be selected if the variable Velocity is below 0.2.
Then if you add the walk & run motions:
AddMotion WalkMotion
MotionAnim Walk
MotionScalarVar Velocity
MotionSelectVar Velocity
MotionSelectMin 0.2
MotionSelectMax 3.15
AddMotion RunMotion
MotionAnim Run
MotionScalarVar Velocity
MotionSelectVar Velocity
MotionSelectMin 3.15
You will see that the Walk motion has both SelectMin & SelectMax values - so basically if Velocity is greater than 0.2, but less than 3.15, the walk motion will be played. If it's less than 0.2, then Idle will be played, and if it's greater than 3.15, then the Run will be played.
In this way you can setup the motion definitions in your character and the game will automatically switch between idle, walk, run based on the value of the Velocity variable.
----------
Finally, you will also see that the Walk & Run motions have a MotionScalarVar as well - what this means is that the motion will be scaled (played back at different speeds) based on the value of the Velocity variable. By adjusting the Velocity, you can do things like Splinter Cell style 'creeping' or more sophisticated movement speed controls and the engine will automatically scale the animation (and pick the proper animation) automatically.
Finally the Move motion, which is pretty simple:
AddMotion Move
MotionChild IdleMotion
MotionChild WalkMotion
MotionChild RunMotion
Is what combines all of these motions into a single 'bundle' that can be played from the engine.
In the script, you call 'object.PlayAnim("Move");' and the game will automatically update the character's animations and how fast they are being played simply by updating the motion variable Velocity.
Adding the second layer of upper body animations is a bit more complex and will be covered in the full doc (which is coming soon).
Hope this helps clarify a bit of how the system works.