Notifications
Clear all

[Closed] Can anyone make sense of this script?

This was done by a buddy who has disappeared from the internet.

He was working on a script to automatically animate rollercoasters. I believe it puts dummies on the rails, and then calculates speed and rotation accordingly. I dont know anything about scripting so maybe you could could lead me towards finishing the script.

here’s the text:
–Global Variables

global Hi = 157.9989 –Initial Height(In Feet)
global Hf = 34.9887 –Final Height(In Feet)
global Vi = 22 –Initial Velocity(In Feet / Second)
global Vf = 66 –Final Velocity(In Feet / Second)
global Xi = 17.3425 –Initial Path Percentage(Float)
global g = 32 –Acceleration Due to Gravity(In Feet / Second ^ 2)
global l = 4772.7065 –Path Length(In Feet)
global s = 5 –Car Speration Distance(In Feet)
global c = 9 –Number of Cars(Odd)
global X = #() –X Value Array
global Main = #() –Main Dummy Array
global Node = #() –Node Dummy Array
global Look = #() –Look Dummy Array

–Train Dummy Set Up

for i in 1 to c do
(
Main[i] = dummy length:1 width:1 height:1
Node[i] = dummy length:1 width:1 height:1
Look[i] = dummy length:1 width:1 height:1
Main[i].pos.controller = path_constraint()
Node[i].pos.controller = path_constraint()
Look[i].pos.controller = path_constraint()
Main[i].pos.controller.path = $Spline_Main
Main[i].pos.controller.follow = yes
Main[i].pos.controller.allowupsidedown = yes
Main[i].pos.controller.axis = 0
Main[i].pos.controller.loop = yes
Node[i].pos.controller.path = $Spline_Main
Node[i].pos.controller.follow = yes
Node[i].pos.controller.allowupsidedown = yes
Node[i].pos.controller.axis = 0
Node[i].pos.controller.loop = yes
Look[i].pos.controller.path = $Spline_Look
Look[i].pos.controller.follow = yes
Look[i].pos.controller.allowupsidedown = yes
Look[i].pos.controller.axis = 0
Look[i].pos.controller.loop = yes
Main[i].rotation.controller = lookat_constraint()
Main[i].rotation.controller.pickupnode = Node[i]
Main[i].rotation.controller.lookat_vector_length = 6
Main[i].rotation.controller.target_axis = 1
Main[i].rotation.controller.upnode_axis = 0
Main[i].rotation.controller.upnode_world = no
Main[i].rotation.controller.StoUP_axis = 0
Main[i].rotation.controller.viewline_length_abs = yes
Main[i].rotation.controller.target = Look[i]
)
for i in 1 to ((c + 1) / 2 – 1) do
Main[i].pos.controller.percent = (Main[(c + 1) / 2].pos.controller.percent + ((c + 1) / 2 – i) * (s / l))
for i in ((c + 1) / 2 + 1) to c do
Main[i].pos.controller.percent = (Main[(c + 1) / 2].pos.controller.percent – (i – (c + 1) / 2) * (s / l))
for i in 1 to c do
(
Node[i].pos.controller.percent = Main[i].pos.controller.percent
Look[i].pos.controller.percent = Main[i].pos.controller.percent
)

–Link Train Cars to Train Dummies

–for i in 1 to c do
–(
–align $Car_0i to dummyi
–link $Car_0i to dummyi
–)

–Train Animation

global Hi = 157.9989 –Initial Height
global Hf = 34.9887 –Final Height
global Vi = 22 –Initial Velocity
global Vf = 66 –Final Velocity
global Xi = 17.3425 –Initial Path Percentage
global g = 32 –Acceleration Due to Gravity
global l = 4772.7065 –Path Length
global X = #() –X Value Array

for t in 1 to 10 do
X[t] = 0
for t in 11 to 1139 do
X[t] = ((t – 11)/1139) * Xi
for t in 1140 to 3600 do
X[t] = (((2 * g * (Hi – (at time t Car_05.pos.z)) + Vi ^ 2 – (2 * (g * (Hi – Hf) + .5 * (Vi ^ 2 – Vf ^ 2)) / (1 – Xi)) * (X[t-1] – Xi)) ^ (.5)) / (l / 3)) + (X[t-1])
animate on
(
for t in 1 to 4500 by 10 do
at time t Main[(c + 1) / 2)].pos.controller.percent = X[t]
)

I understand parts of it. Do you guys see places that need to be finished so that I can run it through Maxscript?