|
@@ -31,8 +31,10 @@
|
|
*/
|
|
*/
|
|
package jme3test.animation;
|
|
package jme3test.animation;
|
|
|
|
|
|
-import com.jme3.animation.AnimControl;
|
|
|
|
-import com.jme3.animation.AnimationFactory;
|
|
|
|
|
|
+import com.jme3.anim.AnimClip;
|
|
|
|
+import com.jme3.anim.AnimComposer;
|
|
|
|
+import com.jme3.anim.AnimFactory;
|
|
|
|
+import com.jme3.anim.util.AnimMigrationUtils;
|
|
import com.jme3.animation.LoopMode;
|
|
import com.jme3.animation.LoopMode;
|
|
import com.jme3.app.DebugKeysAppState;
|
|
import com.jme3.app.DebugKeysAppState;
|
|
import com.jme3.app.FlyCamAppState;
|
|
import com.jme3.app.FlyCamAppState;
|
|
@@ -42,7 +44,7 @@ import com.jme3.app.StatsAppState;
|
|
import com.jme3.cinematic.Cinematic;
|
|
import com.jme3.cinematic.Cinematic;
|
|
import com.jme3.cinematic.MotionPath;
|
|
import com.jme3.cinematic.MotionPath;
|
|
import com.jme3.cinematic.PlayState;
|
|
import com.jme3.cinematic.PlayState;
|
|
-import com.jme3.cinematic.events.AnimationEvent;
|
|
|
|
|
|
+import com.jme3.cinematic.events.AnimEvent;
|
|
import com.jme3.cinematic.events.MotionEvent;
|
|
import com.jme3.cinematic.events.MotionEvent;
|
|
import com.jme3.input.KeyInput;
|
|
import com.jme3.input.KeyInput;
|
|
import com.jme3.input.controls.ActionListener;
|
|
import com.jme3.input.controls.ActionListener;
|
|
@@ -99,6 +101,7 @@ public class TestJaime extends SimpleApplication {
|
|
|
|
|
|
public Node LoadModel() {
|
|
public Node LoadModel() {
|
|
Node jaime = (Node)assetManager.loadModel("Models/Jaime/Jaime.j3o");
|
|
Node jaime = (Node)assetManager.loadModel("Models/Jaime/Jaime.j3o");
|
|
|
|
+ jaime = (Node) AnimMigrationUtils.migrate(jaime);
|
|
jaime.setShadowMode(RenderQueue.ShadowMode.CastAndReceive);
|
|
jaime.setShadowMode(RenderQueue.ShadowMode.CastAndReceive);
|
|
rootNode.attachChild(jaime);
|
|
rootNode.attachChild(jaime);
|
|
return jaime;
|
|
return jaime;
|
|
@@ -149,23 +152,40 @@ public class TestJaime extends SimpleApplication {
|
|
stateManager.attach(cinematic);
|
|
stateManager.attach(cinematic);
|
|
|
|
|
|
jaime.move(0, 0, -3);
|
|
jaime.move(0, 0, -3);
|
|
- AnimationFactory af = new AnimationFactory(0.7f, "JumpForward");
|
|
|
|
|
|
+ AnimFactory af = new AnimFactory(0.7f, "JumpForward", 30f);
|
|
af.addTimeTranslation(0, new Vector3f(0, 0, -3));
|
|
af.addTimeTranslation(0, new Vector3f(0, 0, -3));
|
|
af.addTimeTranslation(0.35f, new Vector3f(0, 1, -1.5f));
|
|
af.addTimeTranslation(0.35f, new Vector3f(0, 1, -1.5f));
|
|
af.addTimeTranslation(0.7f, new Vector3f(0, 0, 0));
|
|
af.addTimeTranslation(0.7f, new Vector3f(0, 0, 0));
|
|
- jaime.getControl(AnimControl.class).addAnim(af.buildAnimation());
|
|
|
|
-
|
|
|
|
- cinematic.enqueueCinematicEvent(new AnimationEvent(jaime, "Idle",3, LoopMode.DontLoop));
|
|
|
|
- float jumpStart = cinematic.enqueueCinematicEvent(new AnimationEvent(jaime, "JumpStart", LoopMode.DontLoop));
|
|
|
|
- cinematic.addCinematicEvent(jumpStart+0.2f, new AnimationEvent(jaime, "JumpForward", LoopMode.DontLoop,1));
|
|
|
|
- cinematic.enqueueCinematicEvent( new AnimationEvent(jaime, "JumpEnd", LoopMode.DontLoop));
|
|
|
|
- cinematic.enqueueCinematicEvent( new AnimationEvent(jaime, "Punches", LoopMode.DontLoop));
|
|
|
|
- cinematic.enqueueCinematicEvent( new AnimationEvent(jaime, "SideKick", LoopMode.DontLoop));
|
|
|
|
- float camStart = cinematic.enqueueCinematicEvent( new AnimationEvent(jaime, "Taunt", LoopMode.DontLoop));
|
|
|
|
- cinematic.enqueueCinematicEvent( new AnimationEvent(jaime, "Idle",1, LoopMode.DontLoop));
|
|
|
|
- cinematic.enqueueCinematicEvent( new AnimationEvent(jaime, "Wave", LoopMode.DontLoop));
|
|
|
|
- cinematic.enqueueCinematicEvent( new AnimationEvent(jaime, "Idle", LoopMode.DontLoop));
|
|
|
|
-
|
|
|
|
|
|
+ AnimClip forwardClip = af.buildAnimation(jaime);
|
|
|
|
+ AnimComposer composer = jaime.getControl(AnimComposer.class);
|
|
|
|
+ composer.addAnimClip(forwardClip);
|
|
|
|
+
|
|
|
|
+ composer.makeLayer("SpatialLayer", null);
|
|
|
|
+ String boneLayer = AnimComposer.DEFAULT_LAYER;
|
|
|
|
+
|
|
|
|
+ cinematic.enqueueCinematicEvent(
|
|
|
|
+ new AnimEvent(composer, "Idle", boneLayer));
|
|
|
|
+ float jumpStart = cinematic.enqueueCinematicEvent(
|
|
|
|
+ new AnimEvent(composer, "JumpStart", boneLayer));
|
|
|
|
+ cinematic.addCinematicEvent(jumpStart + 0.2f,
|
|
|
|
+ new AnimEvent(composer, "JumpForward", "SpatialLayer"));
|
|
|
|
+ cinematic.enqueueCinematicEvent(
|
|
|
|
+ new AnimEvent(composer, "JumpEnd", boneLayer));
|
|
|
|
+ cinematic.enqueueCinematicEvent(
|
|
|
|
+ new AnimEvent(composer, "Punches", boneLayer));
|
|
|
|
+ cinematic.enqueueCinematicEvent(
|
|
|
|
+ new AnimEvent(composer, "SideKick", boneLayer));
|
|
|
|
+
|
|
|
|
+ float camStart = cinematic.enqueueCinematicEvent(
|
|
|
|
+ new AnimEvent(composer, "Taunt", boneLayer));
|
|
|
|
+ AnimEvent idleOneSecond = new AnimEvent(composer, "Idle", boneLayer);
|
|
|
|
+ idleOneSecond.setInitialDuration(1f);
|
|
|
|
+ cinematic.enqueueCinematicEvent(idleOneSecond);
|
|
|
|
+ cinematic.enqueueCinematicEvent(
|
|
|
|
+ new AnimEvent(composer, "Wave", boneLayer));
|
|
|
|
+ cinematic.enqueueCinematicEvent(
|
|
|
|
+ new AnimEvent(composer, "Idle", boneLayer));
|
|
|
|
+
|
|
CameraNode camNode = cinematic.bindCamera("cam", cam);
|
|
CameraNode camNode = cinematic.bindCamera("cam", cam);
|
|
camNode.setLocalTranslation(new Vector3f(1.1f, 1.2f, 2.9f));
|
|
camNode.setLocalTranslation(new Vector3f(1.1f, 1.2f, 2.9f));
|
|
camNode.lookAt(new Vector3f(0, 0.5f, 0), Vector3f.UNIT_Y);
|
|
camNode.lookAt(new Vector3f(0, 0.5f, 0), Vector3f.UNIT_Y);
|