papou
··'
This is a script that convert 3DSMAX linear spline to Unreal Spline.
I'm looking for the exact same tool for Lightwave.
Anybody, with 3dsmaw code knowledge want to attemp a conversion?
Regards,
I'm looking for the exact same tool for Lightwave.
Anybody, with 3dsmaw code knowledge want to attemp a conversion?
Regards,
Code:
(
/* Export linear spline from 3dsmax to Unreal Blueprint */
/* By Alexander Bereznyak, www.alsber.com */
/* Not much testing done, so save your work before using */
/* Select the spline in max, run the script, open blueprint in Unreal, Ctrl+V */
/* Set Reparameter Steps Per Segment value of component to 10, then to 4 to make spline editable */
/* setup */
mySpline = (selection as array)[1]
myKnots = numKnots mySpline
myStep = 1
myText = "Begin Object Class=/Script/Engine.SplineComponent Name=\"SplineExported_GEN_VARIABLE\"\r"
/* position */
append myText (
" SplineCurves=(Position=(Points=((OutVal=(X=" + \
((getKnotPoint mySpline 1 1).x as string) + ",Y=" + \
(((getKnotPoint mySpline 1 1).y * -1) as string) + ",Z=" + \
((getKnotPoint mySpline 1 1).z as string) + \
"),ArriveTangent=(X=0.0,Y=0.0,Z=0.0),LeaveTangent=(X=0.0,Y=0.0,Z=0.0)),"
)
myIndex = 0
for i = (myStep + 1) to (myKnots - myStep) by myStep do (
myIndex += 1
append myText (
"(InVal=" + ((1.0 * myIndex) as string) + ",OutVal=(X=" + \
((getKnotPoint mySpline 1 i).x as string) + ",Y=" + \
(((getKnotPoint mySpline 1 i).y * -1) as string) + ",Z=" + \
((getKnotPoint mySpline 1 i).z as string) + \
"),ArriveTangent=(X=0.0,Y=0.0,Z=0.0),LeaveTangent=(X=0.0,Y=0.0,Z=0.0)),"
)
)
append myText (
"(InVal=" + ((1.0 + myIndex) as string) + ",OutVal=(X=" + \
((getKnotPoint mySpline 1 myKnots).x as string) + ",Y=" + \
(((getKnotPoint mySpline 1 myKnots).y * -1) as string) + ",Z=" + \
((getKnotPoint mySpline 1 myKnots).z as string) + \
")))),Rotation=(Points=((InterpMode=CIM_CurveAuto),"
)
/* rotation */
myIndex = 0
for i = (myStep + 1) to (myKnots - myStep) by myStep do (
myIndex += 1
append myText (
"(InVal=" + ((1.0 * myIndex) as string) + \
",ArriveTangent=(X=0.0,Y=0.0,Z=0.0,W=0.5),LeaveTangent=(X=0.0,Y=0.0,Z=0.0,W=0.5)," + \
"InterpMode=CIM_CurveAuto),"
)
)
append myText (
"(InVal=" + ((1.0 + myIndex) as string) + ",InterpMode=CIM_CurveAuto)))," + \
"Scale=(Points=((OutVal=(X=1.000000,Y=1.000000,Z=1.000000),InterpMode=CIM_CurveAuto),"
)
/* scale */
myIndex = 0
for i = (myStep + 1) to (myKnots - myStep) by myStep do (
myIndex += 1
append myText (
"(InVal=" + ((1.0 * myIndex) as string) + ",OutVal=(X=1.0,Y=1.0,Z=1.0),InterpMode=CIM_CurveAuto),"
)
)
append myText (
"(InVal=" + ((1.0 + myIndex) as string) + ",OutVal=(X=1.0,Y=1.0,Z=1.0),InterpMode=CIM_CurveAuto)"
)
/* cleanup */
append myText (
")),ReparamTable=(Points=((),(InVal=14.947966,OutVal=0.250000),(InVal=29.895931,OutVal=0.500000)," + \
"(InVal=44.843895,OutVal=0.750000),(InVal=59.791862,OutVal=1.000000)," + \
"(InVal=61.712151,OutVal=1.250000),(InVal=63.632435,OutVal=1.500000)," + \
"(InVal=65.552719,OutVal=1.750000),(InVal=67.473007,OutVal=2.000000)," + \
"(InVal=81.719254,OutVal=2.250000),(InVal=95.965508,OutVal=2.500000)," + \
"(InVal=110.211754,OutVal=2.750000),(InVal=124.458008,OutVal=3.000000))))" + \
"\r ReparamStepsPerSegment=4\r RelativeLocation=(X=" + \
(mySpline.pos.x as string) + ",Y=" + \
((mySpline.pos.y * -1) as string)+ ",Z=" + \
(mySpline.pos.z as string)+ ")\rEnd Object\r"
)
setClipBoardText myText
clearListener()
myText
)