Enemy Walk Cycle

im trying to get an enemy walk cycle (a.k.a. a walking model without need of keyboard/mouse inputs) and i’m just not hitting the nail on the head



currently my code consists of (it’s a bit messy)



[java]private void setupEnemyAnimationController() {

enemyAnimControl = enemyMod1.getControl(AnimControl.class);

enemyAnimControl.addListener(this);

enemyAnimChannel = enemyAnimControl.createChannel();

enemyAnimChannel.setLoopMode(LoopMode.Loop);

}



@Override

public void simpleUpdate(float tpf) {

// This part is the character controlled movements

Vector3f camDir = cam.getDirection().clone().multLocal(0.1f);

Vector3f camLeft = cam.getLeft().clone().multLocal(0.1f);

Vector3f enemyCamDir = cam.getDirection().clone().multLocal(0.1f);

Vector3f enemyCamLeft = cam.getLeft().clone().multLocal(0.1f);

camDir.y = 0;

camLeft.y = 0;

if (left) {

walkDirection.addLocal(camLeft);

}

if (right) {

walkDirection.addLocal(camLeft.negate());

}

if (up) {

walkDirection.addLocal(camDir);

}

if (down) {

walkDirection.addLocal(camDir.negate());

}

if (!character.onGround()) {

airTime = airTime + tpf;

} else {

airTime = 0;

}

if (walkDirection.length() == 0) {

if (!“stand”.equals(animationChannel.getAnimationName())) {

animationChannel.setAnim(“stand”, 1f);

}

} else {

character.setViewDirection(walkDirection);

if (airTime > .3f) {

if (!“stand”.equals(animationChannel.getAnimationName())) {

animationChannel.setAnim(“stand”);

}

} else if (!“Walk”.equals(animationChannel.getAnimationName())) {

animationChannel.setAnim(“Walk”, 5f);

}

}

character.setWalkDirection(walkDirection);



// This part is what i’m trying to work on

enemyCamDir.y = 0;

enemyCamLeft.y = 0;

walkDirection.set(0, 0, 0);

enemyWalkDirection.set(0, 0, 0);

if(enemyMove) {

//move forward 4 paces, turn left, walk forward 3 paces, turn left again, repeat

// for(int x = 1; x <= 4; x++) {

enemyWalkDirection.addLocal(enemyCamDir);

enemy1.setWalkDirection(enemyWalkDirection);

if (!“Walk”.equals(enemyAnimChannel.getAnimationName())) {

enemyAnimChannel.setAnim(“Walk”, 2f);

}

// }

enemyWalkDirection.addLocal(enemyCamLeft);

enemy1.setWalkDirection(enemyWalkDirection);

if (!“Walk”.equals(enemyAnimChannel.getAnimationName())) {

enemyAnimChannel.setAnim(“Walk”, 2f);

}

// for(int x = 1; x <= 3; x++) {

enemyWalkDirection.addLocal(enemyCamDir);

enemy1.setWalkDirection(enemyWalkDirection);

if (!“Walk”.equals(enemyAnimChannel.getAnimationName())) {

enemyAnimChannel.setAnim(“Walk”, 2f);

}

// }

enemyWalkDirection.addLocal(enemyCamLeft);

enemy1.setWalkDirection(enemyWalkDirection);

if (!“Walk”.equals(enemyAnimChannel.getAnimationName())) {

enemyAnimChannel.setAnim(“Walk”, 2f);

}

}

}[/java]



any help or tutorials (i can’t seem to find any on this website) would be appreciated