text: [{"Owner":"Nodragem","Date":"2018-09-28T16:00:50Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tHello_co_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tI_t_m trying the animation system_co_ which is very neat_co_ however_co_ I can_t_t see any effect of the framerate variable of the animation.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tUsing this playground_dd_ _lt_a href_eq__qt_http_dd_//www.babylonjs-playground.com/#9WUJN%2311_qt_ rel_eq__qt_external nofollow_qt__gt_http_dd_//www.babylonjs-playground.com/#9WUJN#11_lt_/a_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tIf you change the frameRate to 1_co_ you do not obtain a choppy movement of the cube_sm_ it continues to move smoothly. I would have expected to see the cube changing position every 1 second.\n_lt_/p_gt_\n\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Deltakosh","Date":"2018-09-28T16:19:53Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tHello!\n_lt_/p_gt_\n\n_lt_p_gt_\n\tThe frame rate is meant to be the number of frame per sec. So framerate of 1 means 1 frame per second so it will take time to play the full animation but it will always stay smooth _lt_span_gt__lt_img alt_eq__qt__dd_)_qt_ data-emoticon_eq__qt_true_qt_ height_eq__qt_20_qt_ src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_smile.png_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/smile@2x.png 2x_qt_ title_eq__qt__dd_)_qt_ width_eq__qt_20_qt__gt__lt_/span_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_span_gt__lt_a href_eq__qt_http_dd_//www.babylonjs-playground.com/#9WUJN#70_qt_ ipsnoembed_eq__qt_true_qt_ rel_eq__qt_external nofollow_qt__gt_http_dd_//www.babylonjs-playground.com/#9WUJN#70_lt_/a_gt__lt_/span_gt_\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"kcoley","Date":"2018-09-28T16:29:12Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\t_lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/29687-nodragem/?do_eq_hovercard_qt_ data-mentionid_eq__qt_29687_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/29687-nodragem/_qt_ rel_eq__qt__qt__gt_@Nodragem_lt_/a_gt_ if you actually want choppy movement of the cube_co_ you can use a Step animation interpolation_dd__lt_br /_gt_\n\t_lt_br /_gt_\n\t_lt_a href_eq__qt_https_dd_//www.babylonjs-playground.com/#9WUJN%2371_qt_ rel_eq__qt_external nofollow_qt__gt_https_dd_//www.babylonjs-playground.com/#9WUJN#71_lt_/a_gt_\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Nodragem","Date":"2018-09-28T17:15:45Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tThat is exactly what I was expecting to see _lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/30070-kcoley/?do_eq_hovercard_qt_ data-mentionid_eq__qt_30070_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/30070-kcoley/_qt_ rel_eq__qt__qt__gt_@kcoley_lt_/a_gt_!\n_lt_/p_gt_\n\n_lt_p_gt_\n\tI did search for an interpolation type property in the animation object_co_ but I did not think of looking in the key frames options _lt_img alt_eq__qt__dd_D_qt_ data-emoticon_eq__qt__qt_ height_eq__qt_20_qt_ src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_biggrin.png_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/biggrin@2x.png 2x_qt_ title_eq__qt__dd_D_qt_ width_eq__qt_20_qt_ /_gt_ !\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/4442-deltakosh/?do_eq_hovercard_qt_ data-mentionid_eq__qt_4442_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/4442-deltakosh/_qt_ rel_eq__qt__qt__gt_@Deltakosh_lt_/a_gt__co_ I tried with frameRate _eq_ 60 and frameRate _eq_ 0.1_co_ there seems to be no noticeable difference in the duration of the animation.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"JohnK","Date":"2018-09-28T17:19:04Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tThis topic might be worth a read\n_lt_/p_gt_\n_lt_iframe allowfullscreen_eq__qt__qt_ data-controller_eq__qt_core.front.core.autosizeiframe_qt_ data-embedcontent_eq__qt__qt_ data-embedid_eq__qt_embed6183851123_qt_ scrolling_eq__qt_no_qt_ src_eq__qt_http_dd_//www.html5gamedevs.com/topic/40180-do-animatables-take-into-account-current-frame-rate/?do_eq_embed_qt_ style_eq__qt_height_dd_222px_sm_max-width_dd_502px_sm__qt__gt__lt_/iframe_gt_\n\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"JohnK","Date":"2018-09-28T17:24:09Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt_ data-ipsquote-contentapp_eq__qt_forums_qt_ data-ipsquote-contentclass_eq__qt_forums_Topic_qt_ data-ipsquote-contentcommentid_eq__qt_229876_qt_ data-ipsquote-contentid_eq__qt_40322_qt_ data-ipsquote-contenttype_eq__qt_forums_qt_ data-ipsquote-timestamp_eq__qt_1538150450_qt_ data-ipsquote-userid_eq__qt_29687_qt_ data-ipsquote-username_eq__qt_Nodragem_qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_qt__gt_\n\t\t1 hour ago_co_ Nodragem said_dd_\n\t_lt_/div_gt_\n\n\t_lt_div class_eq__qt_ipsQuote_contents_qt__gt_\n\t\t_lt_p_gt_\n\t\t\tUsing this playground_dd_ _lt_a href_eq__qt_http_dd_//www.babylonjs-playground.com/#9WUJN%2311_qt_ rel_eq__qt_external nofollow_qt__gt_http_dd_//www.babylonjs-playground.com/#9WUJN#11_lt_/a_gt_\n\t\t_lt_/p_gt_\n\t_lt_/div_gt_\n_lt_/blockquote_gt_\n\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt_ data-ipsquote-contentapp_eq__qt_forums_qt_ data-ipsquote-contentclass_eq__qt_forums_Topic_qt_ data-ipsquote-contentcommentid_eq__qt_229895_qt_ data-ipsquote-contentid_eq__qt_40322_qt_ data-ipsquote-contenttype_eq__qt_forums_qt_ data-ipsquote-timestamp_eq__qt_1538154945_qt_ data-ipsquote-userid_eq__qt_29687_qt_ data-ipsquote-username_eq__qt_Nodragem_qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_qt__gt_\n\t\t5 minutes ago_co_ Nodragem said_dd_\n\t_lt_/div_gt_\n\n\t_lt_div class_eq__qt_ipsQuote_contents_qt__gt_\n\t\t_lt_p_gt_\n\t\t\tI tried with frameRate _eq_ 60 and frameRate _eq_ 0.1_co_ there seems to be no noticeable difference in the duration of the animation.\n\t\t_lt_/p_gt_\n\t_lt_/div_gt_\n_lt_/blockquote_gt_\n\n_lt_p_gt_\n\tThe above PG ties the number of frames to the frame rate hence the consistency even when you change the frame rate. In the topic I suggested above the example _lt_a href_eq__qt_http_dd_//www.babylonjs-playground.com/#9WUJN%2369_qt_ rel_eq__qt_external nofollow_qt__gt_http_dd_//www.babylonjs-playground.com/#9WUJN%2369_lt_/a_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\t uses a fixed number of frames and differing frame rates.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Nodragem","Date":"2018-09-28T22:52:25Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tThank you very much _lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/14282-johnk/?do_eq_hovercard_qt_ data-mentionid_eq__qt_14282_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/14282-johnk/_qt_ rel_eq__qt__qt__gt_@JohnK_lt_/a_gt_ _lt_span_gt__lt_img alt_eq__qt__dd_)_qt_ data-emoticon_eq__qt__qt_ height_eq__qt_20_qt_ src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_smile.png_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/smile@2x.png 2x_qt_ title_eq__qt__dd_)_qt_ width_eq__qt_20_qt_ /_gt_ I think I understand now._lt_/span_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_span_gt__lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/30070-kcoley/?do_eq_hovercard_qt_ data-mentionid_eq__qt_30070_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/30070-kcoley/_qt_ rel_eq__qt__qt__gt_@kcoley_lt_/a_gt__co_ it seems that I look at your code too quickly. It does not appear to do what I would expect with step interpolation. Here an example_dd__lt_/span_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_span_gt__lt_a href_eq__qt_http_dd_//www.babylonjs-playground.com/#9WUJN%2373_qt_ rel_eq__qt_external nofollow_qt__gt_http_dd_//www.babylonjs-playground.com/#9WUJN#73_lt_/a_gt__lt_/span_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_span_gt_With an animation framerate of 10fps and with a duration of 10 frames_co_ we would expect to see the cube being drawn 5 times while moving to the right and 5 times while moving left._lt_/span_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/4442-deltakosh/?do_eq_hovercard_qt_ data-mentionid_eq__qt_4442_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/4442-deltakosh/_qt_ rel_eq__qt__qt__gt_@Deltakosh_lt_/a_gt__co_ when animation frames are linearly interpolated_co_ to have a variable for _qt_animation framerate_qt_ and a variable for the _qt_animation duration_qt_ seems redundant.\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_a href_eq__qt_http_dd_//www.babylonjs-playground.com/#9WUJN%2372_qt_ rel_eq__qt_external nofollow_qt__gt_http_dd_//www.babylonjs-playground.com/#9WUJN#72_lt_/a_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tTo increase the duration by 10 has the same effect as decreasing the frameRate by 10.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tFinally_co_ is speedRatio different from the changing the animation frame rate?\n_lt_/p_gt_\n\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n_lt_p_gt_\n\tI am just wondering_co_ wouldn_t_t be simpler_dd_\n_lt_/p_gt_\n\n_lt_p_gt_\n\t- to either set the keyframes in seconds and have a variable _qt_speedRatio_qt_ to change the animation speed/duration?\n_lt_/p_gt_\n\n_lt_p_gt_\n\t- or to set the keyframes in percentage and have a variable _qt_duration_qt_ to control the animation speed/duration?\n_lt_/p_gt_\n\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"kcoley","Date":"2018-09-28T23:43:14Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\t_lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/29687-nodragem/?do_eq_hovercard_qt_ data-mentionid_eq__qt_29687_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/29687-nodragem/_qt_ rel_eq__qt__qt__gt_@Nodragem_lt_/a_gt_ are you wanting the cube to move left to right within one second of animation over ten frames?  If so_co_ your playground does that.  _lt_br /_gt_\n\t_lt_br /_gt_\n\tOr are you wanting to use the actual frame rate of the engine?  You can use scene.onBeforeRenderObservable to trigger an event every frame.  _lt_br /_gt_\n\t_lt_br /_gt_\n\t \n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"JohnK","Date":"2018-09-29T08:49:56Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt_ data-ipsquote-contentapp_eq__qt_forums_qt_ data-ipsquote-contentclass_eq__qt_forums_Topic_qt_ data-ipsquote-contentcommentid_eq__qt_229928_qt_ data-ipsquote-contentid_eq__qt_40322_qt_ data-ipsquote-contenttype_eq__qt_forums_qt_ data-ipsquote-timestamp_eq__qt_1538175145_qt_ data-ipsquote-userid_eq__qt_29687_qt_ data-ipsquote-username_eq__qt_Nodragem_qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_qt__gt_\n\t\t9 hours ago_co_ Nodragem said_dd_\n\t_lt_/div_gt_\n\n\t_lt_div class_eq__qt_ipsQuote_contents_qt__gt_\n\t\t_lt_p_gt_\n\t\t\twhen animation frames are linearly interpolated_co_ to have a variable for _qt_animation framerate_qt_ and a variable for the _qt_animation duration_qt_ seems redundant.\n\t\t_lt_/p_gt_\n\t_lt_/div_gt_\n_lt_/blockquote_gt_\n\n_lt_p_gt_\n\tAn _lt_a href_eq__qt_http_dd_//doc.babylonjs.com/api/classes/babylon.animation_qt_ rel_eq__qt_external nofollow_qt__gt_animation_lt_/a_gt_ object has a property framesPerSecond_co_ an _lt_a href_eq__qt_http_dd_//doc.babylonjs.com/api/classes/babylon.animatable_qt_ rel_eq__qt_external nofollow_qt__gt_animatable_lt_/a_gt_ object (a running animation) has a speedRatio property_co_ neither have a property of duration or any time setting properties. \n_lt_/p_gt_\n\n_lt_p_gt_\n\tThis line creates the animation object_co_ setting amongst other things the framesPerSecond property using the frameRate perameter.\n_lt_/p_gt_\n\n_lt_pre_gt_\n_lt_code_gt_var xSlide _eq_ new BABYLON.Animation(_qt_xSlide_qt__co_ _qt_position.x_qt__co_ frameRate_co_ BABYLON.Animation.ANIMATIONTYPE_FLOAT_co_ BABYLON.Animation.ANIMATIONLOOPMODE_CYCLE)_sm__lt_/code_gt__lt_/pre_gt_\n\n_lt_p_gt_\n\tthis line adds the keyFrame array to the animation\n_lt_/p_gt_\n\n_lt_pre_gt_\n_lt_code_gt_xSlide.setKeys(keyFrames)_sm__lt_/code_gt__lt_/pre_gt_\n\n_lt_p_gt_\n\tThe keyFrame array is an array of objects of the form\n_lt_/p_gt_\n\n_lt_pre_gt_\n_lt_code_gt_{\n    frame_dd_ frame number_co_\n    value_dd_ value to assign to property \n}_lt_/code_gt__lt_/pre_gt_\n\n_lt_p_gt_\n\twhich set values for key frames of the animation_co_ the between frames calculated automatically. Note that the frame property is a frame number not a time. Just because the word duration has been used in the code does not mean a time has been set directly. In the context of the code duration is just the total number of frames in the animation.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tSo this line\n_lt_/p_gt_\n\n_lt_pre_gt_\n_lt_code_gt_scene.beginDirectAnimation(box_co_ [xSlide]_co_ 0_co_ duration_co_ true)_sm__lt_/code_gt__lt_/pre_gt_\n\n_lt_p_gt_\n\tcreates the animatable object_co_  which uses frames 0 to 10 (_eq_ duration).\n_lt_/p_gt_\n\n_lt_p_gt_\n\tWhen you play a video you only set the fast forward speed (speedRatio) when the video is playing. In the same way you only apply a speedRatio when the animation is to play_co_ ie when the animatable is (or has been) created hence\n_lt_/p_gt_\n\n_lt_p_gt_\n\ton creation\n_lt_/p_gt_\n\n_lt_pre_gt_\n_lt_code_gt_scene.beginDirectAnimation(box_co_ [xSlide]_co_ 0_co_ duration_co_ true_co_ 5)_sm__lt_/code_gt__lt_/pre_gt_\n\n_lt_p_gt_\n\t_lt_a href_eq__qt_http_dd_//www.babylonjs-playground.com/#9WUJN%2375_qt_ rel_eq__qt_external nofollow_qt__gt_Playground set speedRatio on creation_lt_/a_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tor after creation\n_lt_/p_gt_\n\n_lt_pre_gt_\n_lt_code_gt_var animatable _eq_ scene.beginDirectAnimation(box_co_ [xSlide]_co_ 0_co_ duration_co_ true)_sm_\nanimatable.speedRatio _eq_ 5_sm__lt_/code_gt__lt_/pre_gt_\n\n_lt_p_gt_\n\t_lt_a href_eq__qt_http_dd_//www.babylonjs-playground.com/#9WUJN%2374_qt_ rel_eq__qt_external nofollow_qt__gt_Playground set speedRatio after creation_lt_/a_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tIn summary an animation lets you set the frame rate and the number of frames and a running animation (animatable) lets you set the speed the animation runs at.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"JohnK","Date":"2018-09-29T09:30:28Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt_ data-ipsquote-contentapp_eq__qt_forums_qt_ data-ipsquote-contentclass_eq__qt_forums_Topic_qt_ data-ipsquote-contentcommentid_eq__qt_229928_qt_ data-ipsquote-contentid_eq__qt_40322_qt_ data-ipsquote-contenttype_eq__qt_forums_qt_ data-ipsquote-timestamp_eq__qt_1538175145_qt_ data-ipsquote-userid_eq__qt_29687_qt_ data-ipsquote-username_eq__qt_Nodragem_qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_qt__gt_\n\t\t9 hours ago_co_ Nodragem said_dd_\n\t_lt_/div_gt_\n\n\t_lt_div class_eq__qt_ipsQuote_contents_qt__gt_\n\t\t_lt_p_gt_\n\t\t\tI am just wondering_co_ wouldn_t_t be simpler_dd_\n\t\t_lt_/p_gt_\n\n\t\t_lt_p_gt_\n\t\t\t- to either set the keyframes in seconds and have a variable _qt_speedRatio_qt_ to change the animation speed/duration?_lt_span_gt_﻿_lt_/span_gt_\n\t\t_lt_/p_gt_\n\n\t\t_lt_p_gt_\n\t\t\t- or to set the keyframes in percentage and have a variable _qt_duration_qt_ to control the animation speed/duration?\n\t\t_lt_/p_gt_\n\t_lt_/div_gt_\n_lt_/blockquote_gt_\n\n_lt_p_gt_\n\t_lt_strong_gt_Current Method_lt_/strong_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tSet frame rate to say 30 fps\n_lt_/p_gt_\n\n_lt_p_gt_\n\tI want an object to move from position A to position B in 5 seconds_co_ this will take 30 * 5  _eq_ 150 frames\n_lt_/p_gt_\n\n_lt_p_gt_\n\tIn the key frame array set frame N with value for position A and set frame N + 150 with value for position B.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tCode calculates the positions for frames N + 1 to N + 149\n_lt_/p_gt_\n\n_lt_p_gt_\n\tRun animation drawing new frame every 1/30 second\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_strong_gt_Keyframes in seconds and have a variable _qt_speedRatio_qt_ Method_lt_/strong_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tWhat data structure should we use to store the pair time T and value V and ensure that at time T we read the value V?\n_lt_/p_gt_\n\n_lt_p_gt_\n\tIn this case we need to know V at time T_co_ so we could have a function to do this V _eq_ f(T). In this case we would need to know the time since the animation started.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tWith this method we should not be using the animation object but the method in this playground _lt_a href_eq__qt_https_dd_//www.babylonjs-playground.com/#4U74WL_qt_ rel_eq__qt_external nofollow_qt__gt_https_dd_//www.babylonjs-playground.com/#4U74WL_lt_/a_gt_  note you can set speed\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_strong_gt_Set the keyframes in percentage and have a variable _qt_duration_qt_ Method_lt_/strong_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tComplete animation is 2 minutes or 120 seconds\n_lt_/p_gt_\n\n_lt_p_gt_\n\tData structure for percentage of key frames? Array with 100 *10_lt_sup_gt_N_lt_/sup_gt_ entries?\n_lt_/p_gt_\n\n_lt_p_gt_\n\tObject takes 7 seconds to move_co_ this is 700/120  _eq_ 5.83333.... percent of the time_co_ so frame 583 out of 10000?\n_lt_/p_gt_\n\n_lt_p_gt_\n\tDefinitely not easier\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Nodragem","Date":"2018-09-29T10:35:02Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tIt seemed to me that running an animation at 6fps for a total number of frames (i.e. what I called duration) of 6 frames was equivalent as running the same animation at 60fps for a total number of frames of 60 frames. Furthermore_co_ to run the animation at speedRatio_eq_2 seemed to be equivalent as to run the animation with frameRate*2. Because of all this equivalence_co_ I saw an opportunity to simplify the animation system.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tNow_co_ I started to play with the Spline Interpolation_co_ and there_co_ we can see that an animation of 6 frames at 6fps give different results than an animation of 60 frames at 60fps_dd_\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_a href_eq__qt_http_dd_//www.babylonjs-playground.com/#9WUJN%2377_qt_ rel_eq__qt_external nofollow_qt__gt_http_dd_//www.babylonjs-playground.com/#9WUJN#77_lt_/a_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tThat means that the tangents_t_ size are dependent on the animation duration (i.e. total number of frames).\n_lt_/p_gt_\n\n_lt_p_gt_\n\t_lt_u_gt__lt_em_gt_Concerning_co_ speedRatio and frameRate_co_ speedRatio_eq_2 is still equivalent as frameRate*2 in term of what happens on the screen._lt_/em_gt__lt_/u_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\t _lt_a contenteditable_eq__qt_false_qt_ data-ipshover_eq__qt__qt_ data-ipshover-target_eq__qt_http_dd_//www.html5gamedevs.com/profile/14282-johnk/?do_eq_hovercard_qt_ data-mentionid_eq__qt_14282_qt_ href_eq__qt_http_dd_//www.html5gamedevs.com/profile/14282-johnk/_qt_ rel_eq__qt__qt__gt_@JohnK_lt_/a_gt__co_ if I understood correctly_co_ you are telling that if I set the animation framerate to 60fps with a total number of frames of 600 frames_co_ the animation will take more space in memory than if I set the animation frame rate to 6fps with a total number of frames of 60 frames? Then the question is_dd_ why use the 60 fps solution? in any case_co_ that point may need to be added to the documentation_co_ as memory is an important thing to consider on mobile web.\n_lt_/p_gt_\n\n_lt_p_gt_\n\tConcerning your point about the data structure_co_ and the complexity_co_ I don_t_t think you need to change the data structure to implement either methods. You can see that vue-babylonjs simplified the animation parameters exposed to the end-user using method 2 (percentage and duration)_co_ while not modifying BabylonJS_dd_ _lt_a href_eq__qt_https_dd_//beg-in.github.io/vue-babylonjs/#/animation_qt_ rel_eq__qt_external nofollow_qt__gt_https_dd_//beg-in.github.io/vue-babylonjs/#/animation_lt_/a_gt_\n_lt_/p_gt_\n\n_lt_p_gt_\n\tHere how the end-user sets up a multiple frame animation_dd_\n_lt_/p_gt_\n\n_lt_pre_gt_\n_lt_code_gt_&lt_sm_Scene&gt_sm_\n  &lt_sm_Entity&gt_sm_\n    &lt_sm_Animation property_eq__qt_position.x_qt_ _dd_duration_eq__qt_3_qt_&gt_sm_\n      &lt_sm_Key frame_eq__qt_0%_qt_ _dd_value_eq__qt_1_qt_&gt_sm_&lt_sm_/Key&gt_sm_\n      &lt_sm_Key frame_eq__qt_20%_qt_ _dd_value_eq__qt_5_qt_&gt_sm_&lt_sm_/Key&gt_sm_\n      &lt_sm_Key frame_eq__qt_100%_qt_ _dd_value_eq__qt_10_qt_&gt_sm_&lt_sm_/Key&gt_sm_\n    &lt_sm_/Animation&gt_sm_\n  &lt_sm_/Entity&gt_sm_\n&lt_sm_Scene&gt_sm__lt_/code_gt__lt_/pre_gt_\n\n_lt_p_gt_\n\tI guess that the vue-babylonjs developers just use a default framerate (e.g. 60fps) to convert the duration to total number of frames_co_ and the percentage to frames. They also exposed a parameters framerate_co_ in case you want to change the framerate_co_ which could be useful if 60fps animations are indeed more memory costly than 6fps animations. _lt_br /_gt_\n\t \n_lt_/p_gt_\n\n_lt_p_gt_\n\tI am just saying that there maybe users who would feel more comfortable working with seconds or percentage.\n_lt_/p_gt_\n\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n_lt_p_gt_\n\t \n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"JohnK","Date":"2018-09-29T13:33:34Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt_ data-ipsquote-contentapp_eq__qt_forums_qt_ data-ipsquote-contentclass_eq__qt_forums_Topic_qt_ data-ipsquote-contentcommentid_eq__qt_229961_qt_ data-ipsquote-contentid_eq__qt_40322_qt_ data-ipsquote-contenttype_eq__qt_forums_qt_ data-ipsquote-timestamp_eq__qt_1538217302_qt_ data-ipsquote-userid_eq__qt_29687_qt_ data-ipsquote-username_eq__qt_Nodragem_qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_qt__gt_\n\t\t2 hours ago_co_ Nodragem said_dd_\n\t_lt_/div_gt_\n\n\t_lt_div class_eq__qt_ipsQuote_contents_qt__gt_\n\t\t_lt_p_gt_\n\t\t\tif I understood correctly_co_ you are telling that if I set the animation framerate to 60fps with a total number of frames of 600 frames_co_ the animation will take more space in memory than if I set the animation frame rate to 6fps with a total number of frames of 60 frames?\n\t\t_lt_/p_gt_\n\t_lt_/div_gt_\n_lt_/blockquote_gt_\n\n_lt_p_gt_\n\tNo_co_ since the in between frames are calculated not stored. (I may have been a little loose in my description on the array and frame number_co_ frame number N will not be in position N in the array).\n_lt_/p_gt_\n\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt_ data-ipsquote-contentapp_eq__qt_forums_qt_ data-ipsquote-contentclass_eq__qt_forums_Topic_qt_ data-ipsquote-contentcommentid_eq__qt_229961_qt_ data-ipsquote-contentid_eq__qt_40322_qt_ data-ipsquote-contenttype_eq__qt_forums_qt_ data-ipsquote-timestamp_eq__qt_1538217302_qt_ data-ipsquote-userid_eq__qt_29687_qt_ data-ipsquote-username_eq__qt_Nodragem_qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_qt__gt_\n\t\t2 hours ago_co_ Nodragem said_dd_\n\t_lt_/div_gt_\n\n\t_lt_div class_eq__qt_ipsQuote_contents_qt__gt_\n\t\t_lt_p_gt_\n\t\t\tI am just saying that there maybe users who would feel more comfortable working with seconds or percentage.\n\t\t_lt_/p_gt_\n\t_lt_/div_gt_\n_lt_/blockquote_gt_\n\n_lt_p_gt_\n\tThis is more than likely true and as you have shown it is perfectly possible to write a front end to accommodate such users. Whoever wrote the current animation system was clearly more comfortable with key frames by number_co_ frame rate and setting the speed ratio when the animation is running and I must say I agree that it is a very usable_co_ understandable and flexible system. So we must agree to disagree on this.\n_lt_/p_gt_\n\n_lt_blockquote class_eq__qt_ipsQuote_qt_ data-ipsquote_eq__qt__qt_ data-ipsquote-contentapp_eq__qt_forums_qt_ data-ipsquote-contentclass_eq__qt_forums_Topic_qt_ data-ipsquote-contentcommentid_eq__qt_229961_qt_ data-ipsquote-contentid_eq__qt_40322_qt_ data-ipsquote-contenttype_eq__qt_forums_qt_ data-ipsquote-timestamp_eq__qt_1538217302_qt_ data-ipsquote-userid_eq__qt_29687_qt_ data-ipsquote-username_eq__qt_Nodragem_qt__gt_\n\t_lt_div class_eq__qt_ipsQuote_citation_qt__gt_\n\t\t2 hours ago_co_ Nodragem said_dd_\n\t_lt_/div_gt_\n\n\t_lt_div class_eq__qt_ipsQuote_contents_qt__gt_\n\t\t_lt_p_gt_\n\t\t\tNow_co_ I started to play with the Spline Interpolation_co_ and there_co_ we can see that an animation of 6 frames at 6fps give different results than an animation of 60 frames at 60fps_dd_\n\t\t_lt_/p_gt_\n\n\t\t_lt_p_gt_\n\t\t\tThat means that the tangents_t_ size are dependent on the animation duration (i.e. total number of frames).\n\t\t_lt_/p_gt_\n\t_lt_/div_gt_\n_lt_/blockquote_gt_\n\n_lt_p_gt_\n\tYes_co_ for either 6 frames at 6fps or 60 frames at 60fps the full animation is run in one second_co_ so the difference in the positions of the box in these must be down to the interpolation which must depend on the number of frames (I find it very unsettling to use duration for number of frames as it has a time based meaning_co_ it is fine in your Vue example as that parameter in Vue-Babylon does mean _t_ Length of the animation in seconds _t_ as shown on the Vue-Babylon docs page.)\n_lt_/p_gt_\n\n_lt_p_gt_\n\tWish you well in achieving the animation you want.\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"},{"Owner":"Nodragem","Date":"2018-09-29T14:16:55Z","Content":"_lt_div class_eq__qt_mages_qt__gt_\n\t\t\t\n_lt_p_gt_\n\tYep_co_ thank you for your answers. I think I can change the status to solved _lt_span_gt__lt_img alt_eq__qt__dd_)_qt_ data-emoticon_eq__qt__qt_ height_eq__qt_20_qt_ src_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/default_smile.png_qt_ srcset_eq__qt_http_dd_//www.html5gamedevs.com/uploads/emoticons/smile@2x.png 2x_qt_ title_eq__qt__dd_)_qt_ width_eq__qt_20_qt_ /_gt__lt_/span_gt_\n_lt_/p_gt_\n\n\n\t\t\t\n\t\t_lt_/div_gt_\n\n\t\t_lt_div class_eq__qt_ipsI_qt__gt__lt_/div_gt__lt_/div_gt_"}]