Notifications
Clear all

[Closed] Convert noise animation to keyframes

 JHN

That would be an even better/faster solution indeed. And there I was messing about with list controllers

-Johan

I guess my max is too old?
When I run this I get this in the listener

 
 -- Error occurred in i loop
 --  Frame:
 --   i: 1
 --   p: $Point_Helper:slave_01 @ [10.000000,0.000000,0.000000]
 -- Unknown property: "AddConstant" in SubAnim:Position_Script
 OK
  
 JHN

Yeah I think it doesn’t have the new script controller in that version of max.
Here’s a variant based on what floopyb said, with the ease curve


for i = 1 to 200 do
(
	local p = point name:(uniqueName "slave_")
	p.pos.controller = position_list()
	p.pos.controller.available.controller = noise_position frequency:0.05 fractal:false seed:(random 0 10000) noise_strength:[0,150,0]
	
-- 	Add ease curve to the noise controller
	addEaseCurve p.pos.controller[2].controller
	p.pos.controller[2].controller.Ease_Curve.controller
	
-- 	Add actual keyframes to the easecurve
	for i = 0 to 100 by 50 do 
	(
		local sKey = addNewKey p.pos.controller[2].controller.Ease_Curve.controller i
		sKey.Value = i
		sKey.inTangentType = #linear
		sKey.outTangentType = #linear
	)
	
-- 	set out of range types
	setBeforeORT p.pos.controller[2].controller.Ease_Curve.controller #linear
	setAfterORT p.pos.controller[2].controller.Ease_Curve.controller #linear
	
-- 	delete randomly somewhere between 0 and 100 frames to make the shift
	deleteTime p.pos.controller[2].controller.Ease_Curve.controller (interval -3000f (-3000f + random 0f 100f ))
	
-- 	list controller set right
	p.pos.controller.weight = #(100,100)
	p.pos.controller.setActive 1

-- 	offset the point helper
	p.pos.controller[1].value = [10*i,0,0]

)


I think this should work in max 9.

-Johan

Page 2 / 2