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