@Override public void onAction(String name, boolean isPressed, float tpf) { if (isPressed) { composer.setCurrentAction("Wave", "LeftArm"); } } }, "mask");
public Action setCurrentAction(String name) { return setCurrentAction(name, DEFAULT_LAYER); }
@Override public void onAction(String name, boolean isPressed, float tpf) { if (isPressed && composer != null) { String anim = anims.poll(); anims.add(anim); composer.setCurrentAction(anim); } } }, "nextAnim");
@Override public void onAction(String name, boolean isPressed, float tpf) { if (isPressed && composer != null) { String anim = anims.poll(); anims.add(anim); composer.setCurrentAction(anim); System.err.println(anim); } } }, "nextAnim");
@Override public void onAction(String name, boolean isPressed, float tpf) { if (isPressed && composer != null) { String anim = anims.poll(); anims.add(anim); composer.setCurrentAction(anim); System.err.println(anim); } } }, "nextAnim");
@Override public void onAction(String name, boolean isPressed, float tpf) { if (isPressed && composer != null) { String anim = anims.poll(); anims.add(anim); composer.setCurrentAction(anim); System.err.println(anim); } } }, "nextAnim");
@Override public void onAction(String name, boolean isPressed, float tpf) { if (isPressed) { playAnim = !playAnim; if (playAnim) { String anim = anims.poll(); anims.add(anim); composer.setCurrentAction(anim); System.err.println(anim); } else { composer.reset(); } } } }, "toggleAnim");
@Override public void onAction(String name, boolean isPressed, float tpf) { if (isPressed) { playAnim = !playAnim; if (playAnim) { String anim = anims.poll(); anims.add(anim); composer.setCurrentAction(anim); System.err.println(anim); } else { composer.reset(); } } } }, "toggleAnim");
@Override public void onAction(String name, boolean isPressed, float tpf) { if (isPressed) { playAnim = !playAnim; if (playAnim) { String anim = anims.poll(); anims.add(anim); composer.setCurrentAction(anim); System.err.println(anim); } else { composer.reset(); } } } }, "toggleAnim");
@Override public void onAction(String name, boolean isPressed, float tpf) { if (isPressed) { composer.reset(); armature.applyBindPose(); } else { composer.setCurrentAction("anim"); } } }, "bind");
@Override public void onAction(String name, boolean isPressed, float tpf) { if (isPressed) { composer.reset(); armature.applyBindPose(); } else { composer.setCurrentAction("anim"); } } }, "bind");
private void playFirstAnim(Spatial s) { AnimComposer control = s.getControl(AnimComposer.class); if (control != null) { anims.clear(); for (String name : control.getAnimClipsNames()) { anims.add(name); } if (anims.isEmpty()) { return; } String anim = anims.poll(); anims.add(anim); control.setCurrentAction(anim); composer = control; } if (s instanceof Node) { Node n = (Node) s; for (Spatial spatial : n.getChildren()) { playFirstAnim(spatial); } } }
private void setupModel(Spatial model) { if (composer != null) { return; } composer = model.getControl(AnimComposer.class); if (composer != null) { SkinningControl sc = model.getControl(SkinningControl.class); debugAppState.addArmatureFrom(sc); anims.clear(); for (String name : composer.getAnimClipsNames()) { anims.add(name); } if (anims.isEmpty()) { return; } if (playAnim) { String anim = anims.poll(); anims.add(anim); composer.setCurrentAction(anim); System.err.println(anim); } } else { if (model instanceof Node) { Node n = (Node) model; for (Spatial child : n.getChildren()) { setupModel(child); } } } }
String anim = anims.poll(); anims.add(anim); composer.setCurrentAction(anim); System.err.println(anim);
private Spatial loadModel(int i) { Spatial model = assetManager.loadModel("Models/Oto/Oto.mesh.xml"); model.setLocalScale(0.1f); AnimComposer composer = model.getControl(AnimComposer.class); composer.setCurrentAction(animNames[i]); SkinningControl skinningControl = model.getControl(SkinningControl.class); skinningControl.setHardwareSkinningPreferred(hwSkinningEnable); skControls.add(skinningControl); rootNode.attachChild(model); return model; }
@Override public void simpleInitApp() { Spatial ogreModel = assetManager.loadModel("Models/Oto/Oto.mesh.xml"); DirectionalLight dl = new DirectionalLight(); dl.setColor(ColorRGBA.White); dl.setDirection(new Vector3f(0,-1,-1).normalizeLocal()); rootNode.addLight(dl); try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); BinaryExporter exp = new BinaryExporter(); exp.save(ogreModel, baos); ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); BinaryImporter imp = new BinaryImporter(); imp.setAssetManager(assetManager); Node ogreModelReloaded = (Node) imp.load(bais, null, null); AnimComposer composer = ogreModelReloaded.getControl(AnimComposer.class); composer.setCurrentAction("Walk"); rootNode.attachChild(ogreModelReloaded); } catch (IOException ex){ ex.printStackTrace(); } } }
String anim = anims.poll(); anims.add(anim); composer.setCurrentAction(anim); System.err.println(anim);
@Override public void simpleInitApp() { cam.setLocation(new Vector3f(10f, 3f, 40f)); cam.lookAtDirection(Vector3f.UNIT_Z.negate(), Vector3f.UNIT_Y); DirectionalLight dl = new DirectionalLight(); dl.setDirection(new Vector3f(-0.1f, -0.7f, -1).normalizeLocal()); dl.setColor(new ColorRGBA(1f, 1f, 1f, 1.0f)); rootNode.addLight(dl); AnimComposer composer; Spatial originalModel = assetManager.loadModel("Models/Oto/Oto.mesh.xml"); composer = originalModel.getControl(AnimComposer.class); composer.setCurrentAction("Walk"); rootNode.attachChild(originalModel); Spatial clonedModel = originalModel.clone(); clonedModel.move(10, 0, 0); composer = clonedModel.getControl(AnimComposer.class); composer.setCurrentAction("push"); rootNode.attachChild(clonedModel); Spatial exportedModel = BinaryExporter.saveAndLoad(assetManager, originalModel); exportedModel.move(20, 0, 0); composer = exportedModel.getControl(AnimComposer.class); composer.setCurrentAction("pull"); rootNode.attachChild(exportedModel); } }
ac.setHardwareSkinningPreferred(false); armature = ac.getArmature(); composer.setCurrentAction("anim");
node.addControl(ac); composer.setCurrentAction("anim");