2015-09-15

XForm Fx

myobj = undefined
myRange = animationRange
--animationRange = interval 0 800

rollout scalefx "xform Fx"
(
button pickobj "Add Objects"
spinner fxstart "Start Frm" range:[0,2000,1] scale:1
spinner fxdur "Durat Frm" range:[0.1,99,10] scale:1
spinner fxoffset "Offset Frm" range:[0,99,30] scale:1
spinner fxrnd "Random Frm" range:[0,300,3] scale:1

spinner fxmovXF "Mov.X From" range:[-3000,3000,0] scale:1 across:2
spinner fxmovXT "To" range:[-3000,3000,0] scale:1
spinner fxmovYF "Mov.Y From" range:[-3000,3000,0] scale:1 across:2
spinner fxmovYT "To" range:[-3000,3000,0] scale:1
spinner fxmovZF "Mov.Z From" range:[-3000,3000,0] scale:1 across:2
spinner fxmovZT "To" range:[-3000,3000,0] scale:1


spinner fxrotXF "Rot.X From" range:[-1080,1080,0] scale:1 across:2
spinner fxrotXT "To" range:[-1080,1080,0] scale:1
spinner fxrotYF "Rot.Y From" range:[-1080,1080,0] scale:1 across:2
spinner fxrotYT "To" range:[-1080,1080,0] scale:1
spinner fxrotZF "Rot.Z From" range:[-1080,1080,0] scale:1 across:2
spinner fxrotZT "To" range:[-1080,1080,0] scale:1

spinner fxsclF "Scl. From" range:[-1000,1000,100] scale:1 across:2
spinner fxsclT "To" range:[-1000,1000,100] scale:1

spinner fxvisF "Vis. From" range:[0,1,1] scale:0.1 across:2
spinner fxvisT "To" range:[0,1,1] scale:0.1

button startbtn "Do xform"
on pickobj pressed do
(
myobj = selectByName title:"select objescts"
global myhelper = point pos:[0,0,0] box:on name:"break point"
select myhelper
$.wirecolor = color 0 255 0
hpos = myobj[1].center
myhelper.pos = [hpos.x,hpos.y,hpos.z]
pickobj.text = myobj[1].name

)
on startbtn pressed do
(
if myobj != undefined do
(
disableSceneRedraw()
select myobj
for i in 1 to selection.count do
(
select myobj[i]
myobj[i].pivot = myobj[i].center
mypos = $.pos
dist = distance $ myhelper
leng = length mypos - myhelper.pos
norm = normalize leng

set animate on
slidertime = (dist/60)*fxoffset.value + fxstart.value + random 0 fxrnd.value

movex = random -fxmovXF.value fxmovXF.value
movey = random -fxmovYF.value fxmovYF.value
movez = random -fxmovZF.value fxmovZF.value
move $ [movex,movey,movez]

rotx = fxrotXF.value + random 0 fxrotXF.value
roty = fxrotYF.value + random 0 fxrotYF.value
rotz = fxrotZF.value + random 0 fxrotZF.value

rotate $ (angleaxis rotx [1,0,0])
rotate $ (angleaxis roty [0,1,0])
rotate $ (angleaxis rotz [0,0,1])

myscl = fxsclF.value / 100
$.scale = [myscl,myscl,myscl]

myvis = fxvisF.value
$.visibility = myvis
$.visibility.controller.value = myvis

slidertime += fxdur.value

movex = mypos.x + fxmovXT.value + random 0 fxmovXT.value
movey = mypos.y + fxmovYT.value + random 0 fxmovYT.value
movez = mypos.z + fxmovZT.value + random 0 fxmovZT.value
$.pos = [movex,movey,movez]

rotate $ (angleaxis -rotz [0,0,1])
rotate $ (angleaxis -roty [0,1,0])
rotate $ (angleaxis -rotx [1,0,0])

rotx = fxrotXT.value + random 0 fxrotXT.value
roty = fxrotYT.value + random 0 fxrotYT.value
rotz = fxrotZT.value + random 0 fxrotZT.value
rotate $ (angleaxis rotx [1,0,0])
rotate $ (angleaxis roty [0,1,0])
rotate $ (angleaxis rotz [0,0,1])

myscl = fxsclT.value / 100
$.scale = [myscl,myscl,myscl]

myvis = fxvisT.value
$.visibility = myvis
$.visibility.controller.value = myvis



slidertime += 5

--myscl = fxsclF.value / 100
--$.scale = [myscl,myscl,myscl]

selectkeys $ 0f
deletekeys $.controller #selection
deletekeys $.visibility.controller #selection

set animate off
enableSceneRedraw()
)
delete myhelper
deselect $
slidertime = 0f
animationRange = myRange

)
)
)
createdialog scalefx width:230

No comments:

Post a Comment