<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: EaseCurve bug : controller interprets values as time AND as ticks in 3ds Max Programming Forum</title>
    <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6752534#M13733</link>
    <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@Anonymous wrote:&lt;BR /&gt;&lt;P&gt;Hello again!&lt;BR /&gt;&lt;BR /&gt;I forgot to mention that the scenes I am working with are at 24 fps so 200 ticks per frame and the maxVersion is '2017 Update 1'.&lt;BR /&gt;...&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;I have to say it again... you are working with time values just not right.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the ease-curve controller value is - float cast of time frames&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the ease-curve key value is - float cast of time number ticks&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;slider-time is - time value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;spinner value - is float&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;now there is a corresponding&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;lt;easecurve&amp;gt;.value = &lt;STRONG&gt;&amp;lt;timevalue&amp;gt;.frame&lt;/STRONG&gt; (or &lt;STRONG&gt;(spinner_value as time).frame&lt;/STRONG&gt;)&lt;/P&gt;&lt;P&gt;&amp;lt;easecurve_key&amp;gt;.value =&lt;STRONG&gt; &amp;lt;timevalue&amp;gt;.ticks&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;(or &lt;STRONG&gt;animationrange.start.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;STRONG&gt;ticks&lt;/STRONG&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;lt;timevalue&amp;gt;.ticks = &lt;STRONG&gt;&amp;lt;timevalue&amp;gt;.frame * ticksPerFrame&lt;/STRONG&gt; (or (&lt;SPAN&gt;&lt;STRONG&gt;&amp;lt;timevalue&amp;gt; as floa&lt;/STRONG&gt;t))&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;lt;timevalue&amp;gt;.frame =&lt;STRONG&gt;&amp;nbsp;&amp;lt;timevalue&amp;gt;.ticks / ticksPerFrame&lt;/STRONG&gt; (or (&lt;STRONG&gt;&amp;lt;timevalue&amp;gt; as float) /&amp;nbsp;ticksPerFrame&lt;/STRONG&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;THERE IS ANYTHING WRONG&amp;nbsp;in the file. THERE IS NO UNEXPECTED system behavior. You only need to pass correct values&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 15 Dec 2016 19:25:59 GMT</pubDate>
    <dc:creator>denisT.MaxDoctor</dc:creator>
    <dc:date>2016-12-15T19:25:59Z</dc:date>
    <item>
      <title>EaseCurve bug : controller interprets values as time AND as ticks</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6736981#M13721</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I encountered a weird issue with ease_curves that I am not able to handle in a sensefull way. It look like the values I feed into the controller of an ease_curve is once interpreted as time and in another moment as ticks which kills my animation on the node.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The setup:&lt;/P&gt;&lt;P&gt;I have a helper with an airplane linked to it and I animate position and rotation of the helper to make the airplane flying through space. I want to be able to have it fly faster without changing the motionpath so I wrote a little tool that helps me doing my job. With this tool I add an instanced easecurve to all 6 pos and rot controllers. To make the airplane fly faster I add a key to the instanced ease-curves and add a certain value to value of this key... all via my little tool, all via maxScript. The thing is, that sometimes the values I use to adjust the key.value needs to be a float-value and sometimes I need to multiply it with the ticksPerFrame to get the correct result. I was not able to read the circumstances for this issue but it happens quite often... did anyone else approach this problem and can share some knowledge?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Martin&lt;/P&gt;</description>
      <pubDate>Thu, 08 Dec 2016 16:16:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6736981#M13721</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-12-08T16:16:50Z</dc:date>
    </item>
    <item>
      <title>Re: EaseCurve bug : controller interprets values as time AND as ticks</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6740783#M13722</link>
      <description>&lt;P&gt;Hello&amp;nbsp;@Anonymous&amp;nbsp;and welcome to the community,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This question is a bit outside my normal comfort zone, when it comes to scripting I am not very experienced. &amp;nbsp;However it would be useful to paste the code snippets to see if I can find the problem or in the case that another user or expert elite knows about this issue. &amp;nbsp;I don't do much scripting but I have looked for a &lt;A href="http://docs.autodesk.com/3DSMAX/15/ENU/MAXScript-Help/index.html?url=files/GUID-51429B01-2FC6-4746-9E88-5EB5D93056CC.htm,topicNumber=d30e164175" target="_blank"&gt;few&lt;/A&gt; &lt;A href="https://knowledge.autodesk.com/search-result/caas/CloudHelp/cloudhelp/2015/ENU/MAXScript-Help/files/GUID-6E21C768-7256-4500-AB1F-B144F492F055-htm.html" target="_blank"&gt;links&lt;/A&gt; &lt;A href="http://help.autodesk.com/view/3DSMAX/2016/ENU/?guid=__files_GUID_141213A1_B5A8_457B_8838_E602022C8798_htm" target="_blank"&gt;that&lt;/A&gt; may help. &amp;nbsp;You may already have found them. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Possibly a macroscript like the following I found that Bobo pasted in another forum might help to set a time mode. &amp;nbsp;Again I'm not much of a scripter so it may be the wrong situation for the code. &amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;macroScript TimeTicks category:"TrulyScripts"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;timeDisplayMode = #timeTicks&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;macroScript TimeFrames category:"TrulyScripts"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;timeDisplayMode = #frames&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Best Regards,&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 10 Dec 2016 00:28:36 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6740783#M13722</guid>
      <dc:creator>Alfred.DeFlaminis</dc:creator>
      <dc:date>2016-12-10T00:28:36Z</dc:date>
    </item>
    <item>
      <title>Re: EaseCurve bug : controller interprets values as time AND as ticks</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6745118#M13723</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;HR /&gt;&lt;EM&gt;... all via my little tool, all via maxScript. The thing is, that sometimes the values I use to adjust the key.value needs to be a float-value and sometimes I need to multiply it with the ticksPerFrame to get the correct result.&amp;nbsp;&lt;/EM&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;i'm pretty sure there is some misunderstanding of how time values work. it will help if you show us a piece of your code related to working with easy-curve&lt;/P&gt;</description>
      <pubDate>Tue, 13 Dec 2016 06:04:29 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6745118#M13723</guid>
      <dc:creator>denisT.MaxDoctor</dc:creator>
      <dc:date>2016-12-13T06:04:29Z</dc:date>
    </item>
    <item>
      <title>Re: EaseCurve bug : controller interprets values as time AND as ticks</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6745864#M13724</link>
      <description>&lt;P&gt;Thanks for your replies!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;With a little delay, here is a piece of my code I use to adjust the keys on the ease_curves...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;fn easeFaster INNode INTime = -- node with ease_curves; timeValue to be added
	(
		myKeys = INNode.position.controller[3][1].ease_curve.controller.keys -- checking for keys on x-pos
		local myKey
		for x = 1 to myKeys.count do -- checks if there is a key at the slidertime
		(
			if myKeys[x].time == sliderTime do
			(
				myKey = myKeys[x]
			)
		)
		if myKey == undefined do -- if no key is found at sliderTime...
		(
			addNewKey INNode.position.controller[3][1].ease_curve.controller sliderTime -- ... a key is added
			myKeys = INNode.position.controller[3][1].ease_curve.controller.keys -- redoing the keysArray
			for x = 1 to myKeys.count do -- filtering for the key at slidertime
			(
				if myKeys[x].time == sliderTime do
				(
					myKey = myKeys[x]
					myKey.inTangentType = #auto -- tangentType auto to have a smooth animation
					myKey.outTangentType = #auto
				)
			)
		)
		myKey.value += (INTime as float)*ticksperframe -- the value from the spinner in the Rollout is added
	)&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I call this FN whenever I press the "faster"button in a rollout. A float-value is then taken from a spinner and handed over to this FN.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;so the eventhandler is something like:&lt;/P&gt;&lt;P&gt;on button pressed do&lt;/P&gt;&lt;P&gt;(&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; easeFaster $ spinner_timeAdd.value&lt;/P&gt;&lt;P&gt;)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I use this on several nodes at once and cycle through the selection - this is, when the "bug" occures.... The thing I found out is that it works more stable when I convert the spinner-value from float to time when calling this FN (spinner_timeAdd.value as time). But for me, this does not explene the earlier descriped behaviour &lt;img id="smileyindifferent" class="emoticon emoticon-smileyindifferent" src="https://forums.autodesk.com/i/smilies/16x16_smiley-indifferent.png" alt="Smiley Indifferent" title="Smiley Indifferent" /&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;If you want to check for your own, you need a helper with frozen transforms and a third pos_XYZ-controller added to the position_list-controller. Apply ease_curves to this third controller and make it the active controller.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for your help!&lt;/P&gt;&lt;P&gt;Martin&lt;/P&gt;</description>
      <pubDate>Tue, 13 Dec 2016 13:52:23 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6745864#M13724</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-12-13T13:52:23Z</dc:date>
    </item>
    <item>
      <title>Re: EaseCurve bug : controller interprets values as time AND as ticks</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6746836#M13725</link>
      <description>&lt;P&gt;as i thought you should&amp;nbsp;work with time values better:&lt;/P&gt;&lt;P&gt;slidertime (currenttime) is time&amp;nbsp;value&lt;/P&gt;&lt;P&gt;easy_curve value is a float casting of time&lt;/P&gt;&lt;P&gt;key.time is a time value&lt;/P&gt;&lt;P&gt;ui spinner value is (probably) a&amp;nbsp;&lt;SPAN&gt;float value&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;ok ... here is a corresponding:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;float casting of time is&lt;STRONG&gt; &amp;lt;time_value&amp;gt;.frame&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;or&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;lt;time_value&amp;gt; == &lt;STRONG&gt;&amp;lt;time_value as float&amp;gt; /&amp;nbsp;ticksperframe&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 13 Dec 2016 19:22:44 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6746836#M13725</guid>
      <dc:creator>denisT.MaxDoctor</dc:creator>
      <dc:date>2016-12-13T19:22:44Z</dc:date>
    </item>
    <item>
      <title>Re: EaseCurve bug : controller interprets values as time AND as ticks</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6748729#M13726</link>
      <description>&lt;P&gt;&lt;BR /&gt;Thank you for your explanations, denisT,&lt;BR /&gt;&lt;BR /&gt;I knew about time and ticksPerFrame and never stumbled, but I was not aware that it is such a thing to handle in a script... passing the second argument of the FN as time (float as time) works fine now.&lt;BR /&gt;&lt;BR /&gt;Still I am curious - if anybody knows this - if there is an initiation of the class of the value that is stored in a key.value...and&amp;nbsp;&amp;nbsp; when &amp;nbsp; this is initiated... but this is just a niceToKnow &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Cheers,&lt;BR /&gt;Martin&lt;/P&gt;</description>
      <pubDate>Wed, 14 Dec 2016 13:46:19 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6748729#M13726</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-12-14T13:46:19Z</dc:date>
    </item>
    <item>
      <title>Re: EaseCurve bug : controller interprets values as time AND as ticks</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6748762#M13727</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I looked at your script and must admit to be a little confused as what you are trying to do.&lt;/P&gt;
&lt;P&gt;From what I understand, you are setting key values to an Ease curve, right ?&lt;/P&gt;
&lt;P&gt;If that is the case, you need not to transform anything, the float of the spinner can be send as is to the Ease curve value.&lt;/P&gt;
&lt;P&gt;The Ease curve value represents 'frames' as float, with no Time representation; it does not matter what fps or ticks per frame are for the Ease curve.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Ease curve takes its float value as a "frame" and reads the position on current frame from the value of the curve it's applied to from that 'frame'.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can just do&amp;nbsp;&lt;/P&gt;
&lt;P&gt;myKey.value += INTime&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Knowing that the float value from the spinner represents frames.&lt;/P&gt;
&lt;P&gt;If you what to 'interpret' the float value as time, like seconds for instance.&lt;/P&gt;
&lt;P&gt;Then you need to convert the float as frames before setting it to the Ease curve value.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In Max there is always 4800 ticks per seconds.&lt;/P&gt;
&lt;P&gt;To convert the spinner float value from Seconds to Frames you'd need to do :&lt;/P&gt;
&lt;P&gt;spinner.value * (4800/TicksPerFrame)&lt;/P&gt;
&lt;P&gt;TicksPerFrame is the fps of the animation, 15, 24, 30 fps. For instance:&lt;/P&gt;
&lt;P&gt;TicksPerFrame for 30 fps is&amp;nbsp;4800 / 30 = 160 ticks per frame&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;TicksPerFrame&amp;nbsp;for 24&amp;nbsp;fps is&amp;nbsp;4800 /&amp;nbsp;24 = 200 ticks per frame&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;4800/TicksPerFrame will give&amp;nbsp;the frame rate, the fps of the scene.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So if the spinner represents 'frames' send it strait to the Ease of curve ;&lt;/P&gt;
&lt;P&gt;if&amp;nbsp;&lt;SPAN&gt;INTime == frames then&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;myKey.value += INTime&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;if &lt;SPAN&gt;INTime ==&amp;nbsp;seconds then&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; &amp;nbsp;myKey.value += INTime&lt;SPAN&gt;&amp;nbsp;* (4800/TicksPerFrame)&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;I hope this can help!&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 14 Dec 2016 13:54:49 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6748762#M13727</guid>
      <dc:creator>ads_royje</dc:creator>
      <dc:date>2016-12-14T13:54:49Z</dc:date>
    </item>
    <item>
      <title>Re: EaseCurve bug : controller interprets values as time AND as ticks</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6749400#M13728</link>
      <description>&lt;P&gt;Hello &lt;a href="https://forums.autodesk.com/t5/user/viewprofilepage/user-id/1230224"&gt;@ads_royje&lt;/a&gt;,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;yes you are right - I am changing the the value of a key on an ease_curve that represents frames as floatvalues in the animationrange - as you decripted. For that I am taking the value of a spinner (which originally is float) and pass it over to the function shown above. In the meantime I changed two things in my Tool:&lt;/P&gt;&lt;P&gt;1st - I convert the float-value of the spinner to a time-value before calling the FN&lt;/P&gt;&lt;P&gt;2nd - I changed the last line in the FN to:&lt;/P&gt;&lt;PRE&gt;myKey.value += ((INTime as float)/ticksperframe) -- the value from the spinner in the Rollout is added&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It worked fine for some tests and I thought this was the solution, but I just used my Tool again as descriped in the first post and I have the same problem again. I now have two helpers with the exact same setup, but when appling the modified FN they behave different. The first takes the changes as 'frames', the second as 'ticks'...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I just checked twice and when changing the value from 18 to 26 (expecting to shift the animation from 18f to 26f) the result is different in the controllers. With '$.position.controller[3][1].ease_curve.controller.value' the first shows "26.0" and the second "3609.0" ... both controllers are classof bezier_float() and I would expect them to behave the same way... Any ideas :-?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Martin&lt;/P&gt;</description>
      <pubDate>Wed, 14 Dec 2016 17:13:38 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6749400#M13728</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-12-14T17:13:38Z</dc:date>
    </item>
    <item>
      <title>Re: EaseCurve bug : controller interprets values as time AND as ticks</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6749718#M13729</link>
      <description>&lt;P&gt;Hi! &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;That does sound very strange that you get different answers with the same code.&lt;/P&gt;
&lt;P&gt;There may be something different in one object from the other.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What gets me intrigued is if you'd expect a frame value of 26.0f but you get 3609.0, it does not sound like ticks &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;26.0f as ticks should be (4800/30)*26 = 4160.0 if at 30 fps or (4800/24)*26 = 5200.0&amp;nbsp;if at 24 fps.&lt;/P&gt;
&lt;P&gt;if 3609.0 are ticks for&amp;nbsp;26.0f , that would mean the scene runs at 34.58 fps, which is not doable in max.&lt;/P&gt;
&lt;P&gt;So I am very intrigue as to what/why you'd get 3609.0 ...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Would you be able to attached that repro scene where you get different response from the ease curve value ?&lt;/P&gt;
&lt;P&gt;From what I understand, the 3609.0 does not look like ticks, there may be something else causing this...&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 14 Dec 2016 19:12:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6749718#M13729</guid>
      <dc:creator>ads_royje</dc:creator>
      <dc:date>2016-12-14T19:12:59Z</dc:date>
    </item>
    <item>
      <title>Re: EaseCurve bug : controller interprets values as time AND as ticks</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6751127#M13730</link>
      <description>&lt;P&gt;Hello again!&lt;BR /&gt;&lt;BR /&gt;I forgot to mention that the scenes I am working with are at 24 fps so 200 ticks per frame and the maxVersion is '2017 Update 1'.&lt;BR /&gt;&lt;BR /&gt;The numbers I mentioned derive from the slidertime when I first pressed "faster" on my tool at frame 18. The easeCurvecontroller of the first helper stored the value 18.0... the easeCurvecontroller of the second helper stored 18f*ticksPerFrame which is 3600... I pressed the button 8 times so the first controller had a value of 26.0 then (a correct represenation and behavior on the easeCurve) and the second controller had 3600 + 8 ( + 1 I donot know where it came from) and this was not the change I expected.&lt;BR /&gt;&lt;BR /&gt;There are two files attached to this post - the .txt-file includes a reduced version of my sctript... Please read the comments in the head of this file for more informations! The thing I can say at the moment is that after loading the file in a fresh Max, everything works fine. After removing and adding easeCurves again the controller behave different though I used the same functions to apply the easeCurves for this scenefile.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Hopefully, this will help &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Cheers,&lt;BR /&gt;Martin&lt;/P&gt;</description>
      <pubDate>Thu, 15 Dec 2016 10:47:04 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6751127#M13730</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-12-15T10:47:04Z</dc:date>
    </item>
    <item>
      <title>Re: EaseCurve bug : controller interprets values as time AND as ticks</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6751530#M13731</link>
      <description>&lt;P&gt;Thanks for the files Martin!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I can now reproduce your issue! That's great!&lt;/P&gt;
&lt;P&gt;I can see that track view values are in frames but the returned one in ticks indeed.&lt;/P&gt;
&lt;P&gt;Although I get both objects to return ticks values now.&lt;/P&gt;
&lt;P&gt;I'll investigate what is going on in there and come back as soon as I can with some update on what I find.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 15 Dec 2016 13:46:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6751530#M13731</guid>
      <dc:creator>ads_royje</dc:creator>
      <dc:date>2016-12-15T13:46:50Z</dc:date>
    </item>
    <item>
      <title>Re: EaseCurve bug : controller interprets values as time AND as ticks</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6752058#M13732</link>
      <description>&lt;P&gt;Thats sounds great! Thank you &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 15 Dec 2016 16:38:53 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6752058#M13732</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-12-15T16:38:53Z</dc:date>
    </item>
    <item>
      <title>Re: EaseCurve bug : controller interprets values as time AND as ticks</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6752534#M13733</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;@Anonymous wrote:&lt;BR /&gt;&lt;P&gt;Hello again!&lt;BR /&gt;&lt;BR /&gt;I forgot to mention that the scenes I am working with are at 24 fps so 200 ticks per frame and the maxVersion is '2017 Update 1'.&lt;BR /&gt;...&lt;/P&gt;&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;I have to say it again... you are working with time values just not right.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the ease-curve controller value is - float cast of time frames&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the ease-curve key value is - float cast of time number ticks&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;slider-time is - time value&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;spinner value - is float&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;now there is a corresponding&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;lt;easecurve&amp;gt;.value = &lt;STRONG&gt;&amp;lt;timevalue&amp;gt;.frame&lt;/STRONG&gt; (or &lt;STRONG&gt;(spinner_value as time).frame&lt;/STRONG&gt;)&lt;/P&gt;&lt;P&gt;&amp;lt;easecurve_key&amp;gt;.value =&lt;STRONG&gt; &amp;lt;timevalue&amp;gt;.ticks&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;(or &lt;STRONG&gt;animationrange.start.&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;STRONG&gt;ticks&lt;/STRONG&gt;&lt;SPAN&gt;)&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;lt;timevalue&amp;gt;.ticks = &lt;STRONG&gt;&amp;lt;timevalue&amp;gt;.frame * ticksPerFrame&lt;/STRONG&gt; (or (&lt;SPAN&gt;&lt;STRONG&gt;&amp;lt;timevalue&amp;gt; as floa&lt;/STRONG&gt;t))&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;lt;timevalue&amp;gt;.frame =&lt;STRONG&gt;&amp;nbsp;&amp;lt;timevalue&amp;gt;.ticks / ticksPerFrame&lt;/STRONG&gt; (or (&lt;STRONG&gt;&amp;lt;timevalue&amp;gt; as float) /&amp;nbsp;ticksPerFrame&lt;/STRONG&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;THERE IS ANYTHING WRONG&amp;nbsp;in the file. THERE IS NO UNEXPECTED system behavior. You only need to pass correct values&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 15 Dec 2016 19:25:59 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6752534#M13733</guid>
      <dc:creator>denisT.MaxDoctor</dc:creator>
      <dc:date>2016-12-15T19:25:59Z</dc:date>
    </item>
    <item>
      <title>Re: EaseCurve bug : controller interprets values as time AND as ticks</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6752559#M13734</link>
      <description>&lt;P&gt;by the way... you don't need to search all keys by time to find the right one. the built-in methods can do it for you much quicker:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;index = getkeyindex&amp;nbsp;&amp;lt;node&amp;gt;.pos.controller[1].ease_curve.controller &amp;lt;time&amp;gt;
key = if index == 0 then &amp;lt;create key&amp;gt; else (getkey&amp;nbsp;&amp;lt;node&amp;gt;.pos.controller[1].ease_curve.controller index)&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 15 Dec 2016 19:30:03 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6752559#M13734</guid>
      <dc:creator>denisT.MaxDoctor</dc:creator>
      <dc:date>2016-12-15T19:30:03Z</dc:date>
    </item>
    <item>
      <title>Re: EaseCurve bug : controller interprets values as time AND as ticks</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6760090#M13735</link>
      <description>&lt;P&gt;Thanks for the shortcut to the key, denisT! ... I checked your comments twice and tweaked the script again (see attached .txt) but still the same unexpected behaviour - maybe you could have a closer look, if I got you right. I don't think there is something wrong within the scene, though we've got some third-party-plugins installed and some callbacks running for our piline that could theoretically interfer, but its hard to find out more about this.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Cheers,&lt;BR /&gt;Martin&lt;/P&gt;</description>
      <pubDate>Tue, 20 Dec 2016 10:22:02 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6760090#M13735</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2016-12-20T10:22:02Z</dc:date>
    </item>
    <item>
      <title>Re: EaseCurve bug : controller interprets values as time AND as ticks</title>
      <link>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6761490#M13736</link>
      <description>&lt;P&gt;i don't debug anyone other's code. here is how i would do it:&lt;/P&gt;&lt;PRE&gt;try (destroydialog EaseOpsRol) catch()
rollout EaseOpsRol "Ease Curve Ops by denisT" width:200
(
	group "Curve: "
	(
		button add_ez_bt "Add" width:90 across:2 align:#left offset:[-5,0]
		button del_ez_bt "Delete" width:90 align:#right offset:[4,0]
	)
	group "Keys: "
	(
		spinner ez_val_sp "Ease Value: " fieldwidth:54 type:#float range:[0.001, 10, 1] align:#right offset:[4,0]
		checkbox add_ez_key_ch "Add New Key" checked:on tooltip:"Add New Ease Curve Key if it doesn't exist" 	
		checkbox auto_key_ch "Set Auto Tangents" checked:on	
		
		button slower_ez_bt "Slower" width:90 across:2  align:#left offset:[-5,4]
		button faster_ez_bt "Faster" width:90 align:#right offset:[4,4]
	)
	
	fn collectEaseCurves nodes:  = 
	(
		if nodes == unsupplied do nodes = selection as array
		curves = #()
		for node in nodes do
		(
			data = getclassinstances bezier_float target:node astrackviewpick:on 
			for d in data where d.name == "Ease Curve" do appendifunique curves d.anim
		)
		curves
	)
	
	fn makeDefaultEaseCurve range: = 
	(
		if not iskindof range Interval do range = animationrange
		
		local ez = bezier_float()

		k0 = addnewkey ez range.start
		k0.value = range.start as float

		k1 = addnewkey ez range.end
		k1.value = range.end as float

		ez.keys.inTangentType = #linear
		ez.keys.outTangentType = #linear
		
		ez
	)
	on add_ez_bt pressed do undo "Add EZ" on
	(
		ez = makeDefaultEaseCurve()
		for node in selection do try (addeasecurve node ez) catch()
	)
	on del_ez_bt pressed do undo "Delete EZ" on
	(
		for node in selection do try (deleteeasecurve node 1) catch() 
	)
	
	fn adjustEasyCurves value:1.0 addkey:on auto:on = 
	(
		cc = collectEaseCurves()
		keys = for c in cc collect
		(
			if (k = getkeyindex c currenttime) != 0 then (getkey c k) else
			(
				if addkey then (addnewkey c currenttime) else dontcollect
			) 
		)
		if keys.count &amp;gt; 0 do
		(
			keys.value += (value as time).ticks 
			if auto do
			(
				keys.inTangentType = #auto
				keys.outTangentType = #auto
			)
		)
		
	)
	on slower_ez_bt pressed do undo "EZ--" on adjustEasyCurves value:(-ez_val_sp.value) addkey:add_ez_key_ch.state auto:auto_key_ch.state
	on faster_ez_bt pressed do undo "EZ++" on adjustEasyCurves value:(ez_val_sp.value) addkey:add_ez_key_ch.state auto:auto_key_ch.state	
)

createdialog EaseOpsRol&lt;/PRE&gt;&lt;P&gt;of course i would add also a double-check for ease_curve existence, uniqueness, lock, etc.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 20 Dec 2016 19:37:27 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/3ds-max-programming-forum/easecurve-bug-controller-interprets-values-as-time-and-as-ticks/m-p/6761490#M13736</guid>
      <dc:creator>denisT.MaxDoctor</dc:creator>
      <dc:date>2016-12-20T19:37:27Z</dc:date>
    </item>
  </channel>
</rss>

