anchor.diff:          animationChannel.setAnim("Walk", 0.7f);
         }
       }
  -    
  +
     walkDirection.multLocal(25f).multLocal(tpf);// The use of the first multLocal here is to control the rate of movement multiplier for character walk speed. The second one is to make sure the character walks the same speed no matter what the frame rate is.
     character.setWalkDirection(walkDirection); // THIS IS WHERE THE WALKING HAPPENS
   }
  
positive.code: [cols="2", options="header"]
  |===
  
  a| CharacterControl Method 
  a| Property 
  
  a| setUpAxis(1)
  a| Fixed upward axis. Values: 0 = X axis , 1 = Y axis , 2 = Z axis. +
  Default: 1, because for characters and vehicles, up is typically along the Y axis.
  
  a| setJumpSpeed(10f) 
  a| Jump speed (movement along upward-axis) 
  
  a| setFallSpeed(20f) 
  a| Fall speed (movement opposite to upward-axis) 
  
  a| setMaxSlope(1.5f) 
  a| How steep the slopes and steps are that the character can climb without considering them an obstacle. Higher obstacles need to be jumped. Vertical height in world units. 
  
  <a| setGravity(1f)   
  a| The intensity of gravity for this CharacterControl'ed entity. Tip: To change the direction of gravity for a character, modify the up axis.
  
  a| setWalkDirection(new Vector3f(0f,0f,0.1f))
  a| (CharacterControl only) Make a physical character walk continuously while checking for floors and walls as solid obstacles. This should probably be called “setPositionIncrementPerSimulatorStep. This argument is neither a direction nor a velocity, but the amount to increment the position each physics tick: vector length = accuracy*speed in m/s. +
  Use `setWalkDirection(Vector3f.ZERO)` to stop a directional motion. 
  
  |===
  
  
negative.code: = Walking Character
  :author:
  :revnumber:
  :revdate: 2016/03/17 20:48
  :keywords: documentation, physics, input, animation, character, NPC, collision
  :relfileprefix: ../../
  