How to continue an animation

Hi there,



I'm using the JoinController in conjunction with a ms3d model. If the user presses the "w" key, the model moves forward and the run animation is playing. Of course, if the user holds down the "w" key, the animation should continue. My question is, how to find out if the requested animation (lets say frame 10-15) is currently running? What I wanna do is start the animation if the controller currently does nothing (or is playing an other  animation) or continue the animation is the current frame is 12 for instance. Am I missing something? I saw there is a method Controller.getCurrentTime() but that returns some kind of float value which I can't map on my animation times…



Thx,

Zenobios

Hey im currently trying to do the same thing.

To find out what frame your currently playing do the following

controller.getCurrentTime()*controller.fps



You can check if this value is inside your walk animation ( 10-15 )

Thx, that's exactly what I was looking for!

yes it's can work well. But i still have any problem. Animation playing can't stop after frame that i want is reached. What the problem?

thank for advanced

Im not sure, is your repeat type the correct one ?

How are you setting/starting your animation ? I use setTimes(start, end) to define my animation.



if all else fails you should be able to stop the animation with setActive(false)



if it doesent work post some of your code

yes thank for u'r help! :D. It work now?just set setRepeatType(Controller.RT_CLAMP);

But i meet problem again.

I have a terrain.i create animation from ms3ds format that patch on terrain.i try to use setLocalTranslation().it can work only when mouse have already clicked. I want to update animation's location everytime. So during animation play, it still patch on terrain. What the solution for this problem?


Sorry but i'm not sure i understand you correctly, what do you mean with "patch on terrain" ?

sorry my english too bad so you don't understand what i mean. :smiley:

i have an 3D animation for instance run.ms3ds like the example the Jmonkey Engine.

i want make this object(run.ms3ds) like man run / walk on the ground. I make ground from terrain.And when i click anywhere the man will move to point which we are clicked.How to make it?Anybody have same example for it??

8)

Hellmaster said:

controller.getCurrentTime()*controller.fps


You can check if this value is inside your walk animation ( 10-15 )

when i try to use it to check current frame it's not work well. For instance i set frame from 0 to 20 with


((JointController) model.getController(0)).setTimes(0, 20);
((JointController) model.getController(0)).setSpeed(0.3f);
((JointController) model.getController(0)).setRepeatType(Controller.RT_WRAP);


i use this code to check wether last frame have already paled or not


   private boolean isEndFrameReached(){
//endFrame =20;it's global variable
       float current_frame = ((JointController) model.getController(0)).getCurrentTime()*((JointController) model.getController(0)).FPS;
       float deltaframe=FastMath.abs(current_frame-endFrame);       
//       System.out.println("current frame"+current_frame);       
       System.out.println("delta frame"+deltaframe);       
       if( deltaframe ==0 )
          return true;
       else
          return false;
    }


unfortunately i get deltaframe value never equal to zero(0). And i get various value of deltaframe


delta frame20.0
delta frame19.875
delta frame14.5725
delta frame11.67375
delta frame9.59625
delta frame7.9612494
delta frame6.5647497
delta frame5.342249
delta frame4.2504635
delta frame3.2595253
delta frame2.3270264
delta frame1.3505268
delta frame0.43348122
delta frame20.0
delta frame19.16577
delta frame18.37077
delta frame17.60327
delta frame16.861706
delta frame16.14259
delta frame15.445505
delta frame14.774452
delta frame14.120077
delta frame13.480078
delta frame12.841214
delta frame12.201105
delta frame11.572355
delta frame10.927055
delta frame10.295036
delta frame9.67448
delta frame9.065908
delta frame8.471081
delta frame7.885331
delta frame7.3073473
delta frame6.7373466
delta frame6.324377
delta frame5.9186735
delta frame5.516485
delta frame5.1187515
delta frame4.723361
delta frame4.329611
delta frame3.936798
delta frame3.5428143
delta frame3.1549244
delta frame2.8047676
delta frame2.453205
delta frame2.1028137
delta frame1.7552357
delta frame1.4069538
delta frame1.0593758
delta frame0.71367264
delta frame0.36937523
delta frame0.027656555
delta frame20.0
delta frame19.656876
delta frame19.314453
delta frame18.982578
delta frame18.660782
delta frame18.344376
delta frame18.051172
delta frame17.756329
delta frame17.46172
delta frame17.165234
delta frame16.862421
delta frame16.550703
delta frame16.238983
delta frame15.9258585
delta frame15.611796
delta frame15.298437
delta frame14.985546
delta frame14.668437
delta frame14.351328
delta frame14.034218
delta frame13.715467
delta frame13.396015
delta frame13.074219
delta frame12.747734
delta frame12.427343
delta frame12.106953
delta frame11.789608
delta frame11.469218
delta frame11.155624
delta frame10.841561
delta frame10.527734
delta frame10.211796
delta frame9.900781
delta frame9.5916395
delta frame9.287187
delta frame8.985546
delta frame8.690468
delta frame8.394453
delta frame8.104062
delta frame7.8176556
delta frame7.536875
delta frame7.2612495
delta frame6.9957027
delta frame6.7402344
delta frame6.492032
delta frame6.2489853
delta frame6.0108595
delta frame5.773672
delta frame5.541876
delta frame5.312187
delta frame5.091172
delta frame4.876953
delta frame4.662734
delta frame4.4510927
delta frame4.245077
delta frame4.038827
delta frame3.816639
delta frame3.6003113
delta frame3.3814049
delta frame3.1655464
delta frame2.9433575
delta frame2.728201
delta frame2.5078888
delta frame2.2943726
delta frame2.082264
delta frame1.8729668
delta frame1.6653099
delta frame1.4595299
delta frame1.2546864
delta frame1.0542965
delta frame0.8522644
delta frame0.65421677
delta frame0.45734215
delta frame0.2588253
delta frame0.059606552
delta frame20.0
delta frame19.801952
delta frame19.605547
delta frame19.402813
delta frame19.19914
delta frame18.988907
delta frame18.778202
delta frame18.563515
delta frame18.343203
delta frame18.12289
delta frame17.90375
delta frame17.677578
delta frame17.457031
delta frame17.248438
delta frame17.03375
delta frame16.819296
delta frame16.61
delta frame16.400703
delta frame16.186016
delta frame15.977421
delta frame15.767422
delta frame15.554609
delta frame15.341093
delta frame15.127343
delta frame14.910312
delta frame14.690937
delta frame14.469921
delta frame14.247265
delta frame14.022031
delta frame13.794453
delta frame13.568515
delta frame13.3416395
delta frame13.112656
delta frame12.884842
delta frame12.657265
delta frame12.435077
delta frame12.213593
delta frame11.998671
delta frame11.785858
delta frame11.569765
delta frame11.352031
delta frame11.135937
delta frame10.92289
delta frame10.711249
delta frame10.496797
delta frame10.280234
delta frame10.069062
delta frame9.857422
delta frame9.6425
delta frame9.428047
delta frame9.21711
delta frame9.004062
delta frame8.788202
delta frame8.570937
delta frame8.352031
delta frame8.126093
delta frame7.903202
delta frame7.6758585
delta frame7.4433575
delta frame7.2064037
delta frame6.95656
delta frame6.707655
delta frame6.445388
delta frame6.1772623
delta frame5.903981
delta frame5.6262474
delta frame5.341716
delta frame5.0550756
delta frame4.7710133
delta frame4.4817953
delta frame4.1895294
delta frame3.8996086
delta frame3.6085148
delta frame3.321638
delta frame3.0265598
delta frame2.7357006
delta frame2.4448414
delta frame2.158905
delta frame1.8671074
delta frame1.5809345
delta frame1.2938251
delta frame1.0090599
delta frame0.72218513
delta frame0.43952942
delta frame0.15406036
delta frame20.0
delta frame19.715
delta frame19.43328
delta frame19.146875
delta frame18.866093
delta frame18.58461
delta frame18.308046
delta frame18.040625
delta frame17.773438
delta frame17.514921
delta frame17.260157
delta frame17.006796
delta frame16.759062
delta frame16.514141
delta frame16.27039
delta frame16.020313
delta frame15.774921
delta frame15.528828
delta frame15.281563
delta frame15.03336
delta frame14.78
delta frame14.533203
delta frame14.274219
delta frame14.017813
delta frame13.750625
delta frame13.483437
delta frame13.215312
delta frame12.946015
delta frame12.675547
delta frame12.407421
delta frame12.135313
delta frame11.865547
delta frame11.590391
delta frame11.31875
delta frame11.045704
delta frame10.774298
delta frame10.496095
delta frame10.22375
delta frame9.948595
delta frame9.67461
delta frame9.395235
delta frame9.121718
delta frame8.844687
delta frame8.570937
delta frame8.29461
delta frame8.01875
delta frame7.7386723
delta frame7.4609385
delta frame7.1782827
delta frame6.9007826
delta frame6.621876
delta frame6.347188
delta frame6.075547
delta frame5.8013287
delta frame5.53625
delta frame5.269062
delta frame5.0089054
delta frame4.754141
delta frame4.494218
delta frame4.2333584
delta frame3.9708576
delta frame3.699686
delta frame3.4163284
delta frame3.129219
delta frame2.8324986
delta frame2.5324974
delta frame2.2310925
delta frame1.9322643
delta frame1.6395302
delta frame1.345623
delta frame1.055233
delta frame0.7650757
delta frame0.48054504
delta frame0.1960125


So How should i do to check the real frame so when i want stop at frame 20 i just put this code


if(frame==20)
[hr]Stop procedure


thank before! :)


       int current_frame = Math.round(((JointController) model.getController(0)).getCurrentTime()*((JointController) model.getController(0)).FPS);


will make the nasty floats go away, so they can't hurt your comparisions any more ;)
jocko_b201 said:

sorry my english too bad so you don't understand what i mean. :D
i have an 3D animation for instance run.ms3ds like the example the Jmonkey Engine.
i want make this object(run.ms3ds) like man run / walk on the ground. I make ground from terrain.And when i click anywhere the man will move to point which we are clicked.How to make it?Anybody have same example for it??
8)


Translation is generally separate from your animation.  In your update yoiu translate the location of your model.  You repeat the walk cycle animation until the location reaches the desired point and then you stop it.  (ALternately you can have a fixed amount of translation that the wlak cycle goes through and always move in whole cycles, but then you cannot end at a precise point.)

In 4-6 weeks Ill be doing my first release of the DarkMMO code and then you will be able to look at my "MapObject" class and see how it works.
hevee said:

will make the nasty floats go away, so they can't hurt your comparisions any more ;)

yes, its so simple,but wasn't thinked before. Thank!