home *** CD-ROM | disk | FTP | other *** search
- /* CMD: LightSwarm
- * Make cloud of lights from selected points on an object, save scene file.
- * Load null object parent and all lights with LW 'LoadFromScene' option.
- * By Arnie Cachelin © 1993 NewTek Inc.
- * $VER: Fri Oct 1 12:58:17 1993
- */
- mxx="LWModelerARexx.port"
- signal on error
- signal on syntax
- mxx_add = addlib(mxx,0)
- call main
- if (mxx_add) then call remlib(mxx)
- exit
-
- syntax:
- error:
- t=Notify(1,'!Rexx Script Error','@'ErrorText(rc),'Line 'SIGL)
- if (mxx_add) then call remlib(mxx)
- exit
-
-
- main:
- call sel_mode(USER)
- num=xfrm_begin()
- if num>399 then num=399 /* No more than 400 lights in a scene */
- if num=0 then do
- call notify(1,"No Points Selected!")
- exit
- end
- MFile=getfilename("-- Save Scene --","RAM:")
- if MFile ~="(none)" then filename=MFile
- else exit
-
- sysnam = 'LightSwarm Scene: 'MFile
- call req_begin sysnam
- nam=req_addcontrol("Light Name",'s',20)
- typ=req_addcontrol("Light Type ","CH","Distant Point Spot")
- intn=req_addcontrol("Intensity (%)","N")
- fal=req_addcontrol("Falloff (%)","N")
- rgb=req_addcontrol("Color",'V')
- flar=req_addcontrol("Lens Flare",'B')
- fint=req_addcontrol("Flare Intensity (%)","N")
- fdis=req_addcontrol("Flare Dissolve (%)","N")
- shad=req_addcontrol("Shadow Casting",'B')
- og=req_addcontrol("Outer Glow Light",'B')
- call req_setval nam, "LightSwarm"
- call req_setval typ, 2
- call req_setval intn, 100.0000
- call req_setval fal, 0.0000
- call req_setval shad, 0
- call req_setval flar, 1
- call req_setval og, 1
- call req_setval fint, 50.000
- call req_setval fdis, 0.0000
- call req_setval rgb, '255 255 255'
- if (~req_post()) then do
- call req_end
- return
- end
- type.1=req_getval(typ)-1
- name.1=req_getval(name)
- int.1=req_getval(intn)/100
- Fall.1=req_getval(fal)/100
- FlInt.1=req_getval(fint)/100
- FlDis.1=req_getval(fdis)/100
- color.1=req_getval(rgb)
- parse var color.1 r g b
- color.1= r%1 g%1 b%1
- shadow.1=req_getval(shad)
- flare.1=req_getval(flar)
- glow=req_getval(og)
- if glow then do
- call req_setval nam, name.1'_OG'
- if (~req_post()) then glow=0
- end
- if glow then do
- type.2=req_getval(typ)-1
- name.2=req_getval(name)
- int.2=req_getval(intn)/100
- Fall.2=req_getval(fal)/100
- FlInt.2=req_getval(fint)/100
- FlDis.2=req_getval(fdis)/100
- color.2=req_getval(rgb)
- parse var color.2 r g b
- color.2= r%1 g%1 b%1
- shadow.2=req_getval(shad)
- flare.2=req_getval(flar)
- end
- call req_end
- say filename
- if ~open(MotFile,filename,'W') then call Bummer("Can't open file "filename)
- Call WriteStart()
-
- do i=1 to num
- parse value xfrm_getpos(i) with x y z .
- Call WriteLight(i,1)
- if glow then Call WriteLight(i,2)
- end
- Call WriteEnd()
- call Close(MotFile)
- return
-
- WriteStart: PROCEDURE EXPOSE MotFile
- call writeln(MotFile,"LWSC")
- call writeln(MotFile,"1")
- call writeln(MotFile,"")
- call writeln(MotFile,"FirstFrame 1")
- call writeln(MotFile,"LastFrame 1")
- call writeln(MotFile,"FrameStep 1")
- call writeln(MotFile,"")
- call writeln(MotFile,"LoadObject NullObject")
- call writeln(MotFile,"ObjectMotion (unnamed)")
- call writeln(MotFile," 9")
- call writeln(MotFile," 1")
- call writeln(MotFile," 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0")
- call writeln(MotFile," 0 0 0.0 0.0 0.0")
- call writeln(MotFile,"EndBehavior 1")
- call writeln(MotFile,"ShadowOptions 7")
- call writeln(MotFile,"")
- return
-
- WriteEnd: PROCEDURE EXPOSE MotFile
- call writeln(MotFile,"CameraMotion (unnamed)")
- call writeln(MotFile," 9")
- call writeln(MotFile," 1")
- call writeln(MotFile," 0.002420 24.997030 -144.084366 0.0 0.0 0.0 1.0 1.0 1.0")
- call writeln(MotFile," 0 0 0.0 0.0 0.0")
- call writeln(MotFile,"EndBehavior 1")
- call writeln(MotFile,"ZoomFactor 3.200000")
- call writeln(MotFile,"RenderMode 2")
- call writeln(MotFile,"RayTraceEffects 0")
- call writeln(MotFile,"Resolution 1")
- call writeln(MotFile,"Overscan 1")
- call writeln(MotFile,"Antialiasing 0")
- call writeln(MotFile,"AdaptiveSampling 1")
- call writeln(MotFile,"AdaptiveThreshold 8")
- call writeln(MotFile,"FilmSize 2")
- call writeln(MotFile,"FieldRendering 0")
- call writeln(MotFile,"MotionBlur 0")
- call writeln(MotFile,"DepthOfField 0")
- call writeln(MotFile,"")
- call writeln(MotFile,"SolidBackdrop 1")
- call writeln(MotFile,"BackdropColor 0 0 0")
- call writeln(MotFile,"ZenithColor 0 40 80")
- call writeln(MotFile,"SkyColor 120 180 240")
- call writeln(MotFile,"GroundColor 50 40 30")
- call writeln(MotFile,"NadirColor 100 80 60")
- call writeln(MotFile,"FogType 0")
- call writeln(MotFile,"DitherIntensity 1")
- call writeln(MotFile,"AnimatedDither 0")
- call writeln(MotFile,"")
- call writeln(MotFile,"DataOverlayLabel ")
- call writeln(MotFile,"")
- call writeln(MotFile,"ViewMode 5")
- call writeln(MotFile,"ViewAimpoint 0.000000 0.000000 0.000000")
- call writeln(MotFile,"ViewDirection 0.000000 -0.174533 0.000000")
- call writeln(MotFile,"ViewZoomFactor 3.200000")
- call writeln(MotFile,"LayoutGrid 3")
- call writeln(MotFile,"GridSize 50.000000")
- call writeln(MotFile,"ShowObjects 1")
- call writeln(MotFile,"ShowBones 0")
- call writeln(MotFile,"ShowLights 1")
- call writeln(MotFile,"ShowCamera 1")
- call writeln(MotFile,"ShowMotionPath 1")
- call writeln(MotFile,"ShowSafeAreas 0")
- call writeln(MotFile,"ShowBGImage 0")
- call writeln(MotFile,"ShowFogRadius 0")
- call writeln(MotFile,"ShowRedraw 0")
- return
-
- /* Change the text in this routine to change lights produced */
- WriteLight: PROCEDURE EXPOSE MotFile x y z color. int. type. shadow. flare. name. Fall. FlInt. FlDis.
- arg n, f
- channels=" "||x y z||" 0.0 0.0 0.0 1.0 1.0 1.0"
- spline=" 0 0 0.0 0.0 0.0"
- say channels spline
- call writeln(MotFile,"AddLight")
- call writeln(MotFile,"LightName "name.f||"."||n)
- call writeln(MotFile,"LightMotion (unnamed)")
- call writeln(MotFile," 9") /* Channels */
- call writeln(MotFile," 1")
- call writeln(MotFile,channels)
- call writeln(MotFile,spline)
- call writeln(MotFile,"EndBehavior 1")
- call writeln(MotFile,"ParentObject 1") /* Our NULL Object */
- call writeln(MotFile,"LightColor "color.f)
- call writeln(MotFile,"LgtIntensity "int.f)
- call writeln(MotFile,"LightType "type.f)
- call writeln(MotFile,"Falloff "Fall.f)
- if flare~=0 then do
- call writeln(MotFile,"LensFlare 1")
- call writeln(MotFile,"FlareIntensity "FlInt.f)
- call writeln(MotFile,"FlareDissolve "FlDis.f)
- call writeln(MotFile,"LensFlareFade 4") /* You'll have to play around */
- call writeln(MotFile,"LensFlareOptions 33") /* figure these two out... */
- end
- else call writeln(MotFile,"LensFlare 0")
- if shadow.f~=0 then call writeln(MotFile,"ShadowCasting 1")
- else call writeln(MotFile,"ShadowCasting 0")
-
- call writeln(MotFile,"")
- return
-
- Bummer:
- ARG etxt
- t=Notify(1,'!Rexx Script Error','@'ETxt)
- exit
-
-