LScript (Layout) to quickly add motion to a channel based on time.
Compatible with Newtek LightWave 9.6 and above.
// LScript Item Animation - www.StephenCulley.co.uk // // web address: http://www.stephenculley.co.uk // email address: email@stephenculley.co.uk /* LScript Item Animation - Time Reference Motion_TimeReference.ls */ @version 2.2 @warnings @script motion @name *Time Reference // Title sTitle = "*Time Reference"; // Version sVersion = "v1.0"; // Variable aChannel = @"X","Y","Z","H","P","B","SX","SY","SZ"@; iChannel = 1; nAmount = 1.0; create { _setdesc(); // setdesc(); } destroy { } _setdesc { if(iChannel >= 1 && iChannel <= 3){setdesc(sTitle + " - Channel " + aChannel[iChannel] + " @ " + nAmount + "m/s");} if(iChannel >= 4 && iChannel <= 6){setdesc(sTitle + " - Channel " + aChannel[iChannel] + " @ " + nAmount + " degrees");} if(iChannel >= 7 && iChannel <= 9){setdesc(sTitle + " - Channel " + aChannel[iChannel] + " @ " + nAmount + "m/s");} } process: ma, frame, time { if(nAmount <> 0.0) { if(iChannel == 1) // X { vPosition = ma.get(POSITION,time) +; // ma ma.set(POSITION,vPosition); } if(iChannel == 2) // Y { vPosition = ma.get(POSITION,time) + <0.0,nAmount * time,0.0>; // ma ma.set(POSITION,vPosition); } if(iChannel == 3) // Z { vPosition = ma.get(POSITION,time) + <0.0,0.0,nAmount * time>; // ma ma.set(POSITION,vPosition); } if(iChannel == 4) // H { vRotation = ma.get(ROTATION,time) + ; // ma ma.set(ROTATION,vRotation); } if(iChannel == 5) // P { vRotation = ma.get(ROTATION,time) + <0.0,nAmount * time,0.0>; // ma ma.set(ROTATION,vRotation); } if(iChannel == 6) // B { vRotation = ma.get(ROTATION,time) + <0.0,0.0,nAmount * time>; // ma ma.set(ROTATION,vRotation); } if(iChannel == 7) // SX { vScaling = ma.get(SCALING,time) + ; // ma ma.set(SCALING,vScaling); } if(iChannel == 8) // SY { vScaling = ma.get(SCALING,time) + <0.0,nAmount * time,0.0>; // ma ma.set(SCALING,vScaling); } if(iChannel == 9) // SZ { vScaling = ma.get(SCALING,time) + <0.0,0.0,nAmount * time>; // ma ma.set(SCALING,vScaling); } } } load: what,io { if(what == SCENEMODE) // processing an ASCII scene file { iChannel = io.read().asInt(); nAmount = io.read().asNum(); _setdesc(); // setdesc(); } } save: what,io { if(what == SCENEMODE) { io.writeln(iChannel); io.writeln(nAmount); } } options { reqbegin(sTitle + " " + sVersion); ctrl_c0 = ctlchoice("Channel",iChannel,@"X","Y","Z","H","P","B","SX","SY","SZ"@); ctrl_c1 = ctlnumber("Amount",nAmount); // Developer ctlsep(); ctrl_dev0 = ctltext("","developer: Stephen Culley","http://www.stephenculley.co.uk"); return if !reqpost(); iChannel = getvalue(ctrl_c0); nAmount = getvalue(ctrl_c1); _setdesc(); // setdesc(); reqend(); }
https://drive.google.com/open?id=1cR_q2GVUAJHumic1-A3eXV16acQnVTWs
No comments:
Post a Comment