##################################################### # # # HEADER # # # ##################################################### header { title: "Father of The Great Nation Remix" width: 1280 height: 720 music: kekkone.ogg bpm: 140.0 } ##################################################### # # # OBJECTS # # # ##################################################### textures { envmap { src: envmap.jpg } *glow { width: 640 height: 360 } *glowTemp { width: 640 height: 360 } *dispMap { width: 256 height: 256 format: luminance } } objects { cam: camera { far: 1000 } env: enviroment { lighting: on light0.pos.y: 100 light0.pos.z: 0 light0.pos.x: 30 ambient.r: 0.1 ambient.g: 0.1 ambient.b: 0.1 } skybox: skyBox { top: skybox.jpg left: skybox.jpg right: skybox.jpg front: skybox.jpg back: skybox.jpg bottom: skybox.jpg } skybox2: skyBox { top: skybox2.jpg left: skybox2.jpg right: skybox2.jpg front: skybox2.jpg back: skybox2.jpg bottom: skybox2.jpg } dispMapCube: Father/cube1 envSphere: 3ds envsphere.3ds { scale.x: 200 scale.y: 200 scale.z: 200 shader: envsphere.shader generateTexCoords materials.default.blend: blend::alpha texture: default envmap2.jpg materials.default.envMap: 3ds::sphereMap } pallo: 3ds pallo.3ds { meshes.osa1.lighting: off meshes.osa2.lighting: off texture: default envmap2.jpg materials.default.envMap: 3ds::sphereMap } kekkonen: 3ds kekkonen.3ds { meshes.Polla.lighting: off texture: head *glow materials.head.envMap: 3ds::sphereMap } laser: 3ds laser.3ds { shader: laser.shader materials.default.blend: blend::alpha } daddy: Father/daddy { shader.noise: 1 } solmu: 3ds solmu.3ds { meshes.cube1.lighting: off texture: default *glow materials.default.envMap: 3ds::sphereMap materials.default.blend: blend::screen materials.default.depthTest: false materials.default.depthMask: false } solmu2: duplicate solmu solmu3: duplicate solmu flares: particles { textures: particle.jpg maxParticles: 500 fadeAway: yes emitter { pos: 0, 0, 0 radius: 0, 15 size: 1, 7 lifeTime: 1, 5 color.r: 0.75, 1 color.g: 0.5, 0.75 color.b: 0, 0.5 } attractor { pos: 20, 50, -20 gravity: 8000 } attractor { pos: -20, 35, 0 gravity: 2000 } attractor { pos: 20, 20, 0 gravity: 3000 } } fillerParticles: particles { textures: particle.jpg maxParticles: 700 box: -100 -100 -100 100 100 100 emitter { pos: 0, 0, 0 radius: 50, 100 size: 0.2, 0.6 lifeTime: -1 } attractor { pos: 0, 40, 0 gravity: 40000 } } kehaet: 3ds satan.3ds { materials.image.blend: blend::screen materials.image.depthMask: false materials.image.diffuse.a: 0.5 } # POST PROCESSING bufImgBlurX: image *buf { stretch: yes shader: blurx.shader shader0.pixel: 0.0015625 # = 1 / 640 shader0.blur: 20 } bufImgBlurY: image *buf { stretch: yes shader: blury.shader shader0.pixel: 0.0027778 # = 1 / 360 shader0.blur: 20 } mixBufGlowImg: image *buf *glow *glowTemp noise.jpg { stretch: yes blend: blend::alpha multiTexturing: 1 shader: mixlayers.shader shader0.glowx: 1 shader0.glowy: 2 shader0.noise: 3 } image: image intro.jpg kekkogfx1.png kekkogfx2.png kekkogfx3.png kekkogfx4.png kekkogfx5.png kekkogfx6.png kekkogfx7.png kekkogfx8.png charger.png outro.jpg { blend: blend::screen shader: image.shader } chargerBar: image charger2.png { blend: blend::alpha } outTvImg: image *mix { blend: blend::screen shader: tv.shader setCoords: ( 200, 70 ), ( 925, 25 ), ( 975, 575 ), ( 85, 575 ) } tvScreen: image tvscreen.jpg { stretch: yes blend: blend::screen } tvBorder: image tv.png { stretch: yes blend: blend::alpha } outImg: image *mix { blend: blend::alpha stretch: yes shader: sharpen.shader shader: tv.shader } blinder: image black.jpg { stretch: yes blend: blend::alpha } # SPECIAL dispMapSrc: image kekkonen.jpg { stretch: yes } } ##################################################### # # # RENDER PASSES # # # ##################################################### renderPasses { dispMap { objects: dispMapSrc output: *dispMap } main { exclude: bufImgBlurX, bufImgBlurY, glowImg, dispMapSrc, mixBufGlowImg, outTvImg, tvScreen, tvBorder, outImg, image, chargerBar, blinder output: *buf } glowBlurX { objects: bufImgBlurX output: *glowTemp } glowBlurY { objects: bufImgBlurY output: *glow } mix { objects: mixBufGlowImg, image, chargerBar output: *mix } out { objects: outImg } outTv { objects: outTvImg, tvScreen, tvBorder, outImg, blinder } } ##################################################### # # # SCRIPT # # # ##################################################### script { @0.0 enable cam, env, bufImgBlurX, bufImgBlurY, mixBufGlowImg, outTvImg, tvBorder, tvScreen, outImg @0.0 call runScene( scene_dispMapCube ) @16.0 call runScene( scene_palloBoksista ) @32.0 call runScene( scene_palloJuttui ) @48.0 call runScene( scene_kekkonenPaljastuu ) @64.0 call runScene( scene_kekkonenPuhuu ) @80.0 call runScene( scene_kekkonenAmpuuLaaseria ) @96.0 call runScene( scene_daddy ) @112.0 call runScene( scene_kollaasi ) @128.0 call runScene( scene_outro ) @0.0 mixBufGlowImg.shader0.noiseOffsetX = rand( 0 to 1 ) for 10000 @0.0 mixBufGlowImg.shader0.noiseOffsetY = rand( 0 to 1 ) for 10000 @0.0 mixBufGlowImg.shader0.distort = 0 to 10000 in 10000 @0.0 loop @16.0 16 times { @0.0 mixBufGlowImg.shader0.distortAmount = spline( 1, 1, 0, 0 ) in @1.0 @14.0 mixBufGlowImg.shader0.distortAmount = spline( 0, 0, 1, 1 ) in @2.0 } @0.0 image.shader0.phase = 0 to 100000 in 10000 @0.0 image.shader0.size = eval( "720 + sin( time * 0.001 ) * 50" ) for 10000 } runScene: SCENE { @0.0 disable dispMapCube, flares, skybox, dispMapSrc, kekkonen @0.0 disable fillerParticles, pallo, kehaet, envSphere, laser, solmu @0.0 disable image, chargerBar, solmu2, solmu3, daddy, skybox2 @0.0 enable mixBufGlowImg, outImg, blinder @0.0 mixBufGlowImg.shader0.brighten = 1.0 @0.0 outImg.col.a = 1.0 @0.0 image.useShader = 0 @0.0 skybox.texZoom = 0 @0.0 outImg.useShader = 0 @0.0 call normalOutput @0.0 call SCENE } normalOutput { @0.0 out.active = true @0.0 outTv.active = false } tvOutput { @0.0 out.active = false @0.0 outTv.active = true } scene_dispMapCube { @0.0 enable dispMapCube, skybox, dispMapSrc, blinder @8.0 enable flares @0.0 disable outImg @8.0 enable outImg @0.0 call tvOutput @0.0 blinder.col.a = 1 to 0 in @2.0 @2.0 disable blinder # Intro text @0.0 enable image @0.0 image.blend = blend::screen #@0.0 image.col.a = 0 to 1 in @2.0 #@6.0 image.col.a = 1 to 0 in @2.0 @8.0 disable image # Fade in @0.0 mixBufGlowImg.shader0.brighten = 0.0 to 1.0 in @4.0 @0.0 outImg.col.a = 0 # Zoom TV in @0.0 outTvImg.zoom = 0 to 0.1 in @16.0 @0.0 tvBorder.zoom = 0 to 0.1 in @16.0 @0.0 tvScreen.zoom = 0 to 0.1 in @16.0 # Camera paths @0.0 cam.pos.x = eval( "sin(time*0.0001)*50" ) for @16.0 @0.0 cam.pos.y = eval( "cos(time*0.00015)*50" ) for @16.0 @0.0 loop @2.0 8 times { @0.0.5 cam.pos.z = eval( "sin(time)*50" ) @0.0.5 cam.fovy = 45 to 60 in @1.3 } # Displacement map @0.0 dispMapSrc.col.a = 0 @7.2 dispMapSrc.col.a = 0 to 0.5 in @0.2.5 @8.0 loop @2.0 4 times { @0.0.5 dispMapSrc.col.a = 1.0 to 0.0 in @1.3.5 @0.0.5 outImg.col.a = 1.0 to 0.0 in @0.2 } @8.0 loop @0.1 32 times { @0.0 mixBufGlowImg.shader0.brighten = 1.5 to 1.0 in @0.1 } # Cube rotation @0.0 dispMapCube.rot.x = 0 to 360 in @16.0 @0.0 dispMapCube.rot.y = 0 to 720 in @16.0 @0.0 dispMapCube.rot.z = 0 to 1080 in @16.0 } scene_palloBoksista { @0.0 enable dispMapCube, skybox, dispMapSrc, flares, pallo @0.0 call tvOutput # Zoom TV in @0.0 outTvImg.zoom = 0.1 to 0.2 in @16.0 @0.0 tvBorder.zoom = 0.1 to 0.2 in @16.0 @0.0 tvScreen.zoom = 0.1 to 0.2 in @16.0 @0.0 tvScreen.col.a = 1.0 to 0.5 in @16.0 @0.0 cam.pos.x = eval( "sin(time*0.00015)*50" ) for @16.0 @0.0 loop @2.0 8 times { @0.0.5 cam.pos.z = eval( "sin(time)*50" ) @0.0.5 cam.fovy = 45 to 60 in @1.3 @0.0.5 outImg.col.a = 1 to 0 in @1.3 } @0.0 loop @2.0 8 times { @0.0.5 dispMapSrc.col.a = 1.0 to 0.0 in @1.3.5 } @0.0 pallo.rot.y = 0 to 3600 in @16.0 @0.0 pallo.scale.x = 0 to 1 in @8.0 @0.0 pallo.scale.y = 0 to 1 in @8.0 @0.0 pallo.scale.z = 0 to 1 in @8.0 @0.0 pallo.pos.y = 0 to 40 in @16.0 @0.0 cam.lookAt.y = 0 to 40 in @16.0 @0.0 cam.pos.y = -40 to 30 in @16.0 @0.0 loop @0.2 32 times { @0.0 mixBufGlowImg.shader0.brighten = 3.0 to 0.5 in @0.1 @0.1 mixBufGlowImg.shader0.brighten = 2.0 to 0.2 in @0.1 } @0.0 dispMapCube.rot.y = 0 to 720 in @16.0 # Kekkonen overlays @0.0 image.blend = blend::alpha @0.0 image.frame = 1 to 9 in @16.0 @0.0 loop @2.0 8 times { @0.0 disable image @1.0 enable image @1.0 image.col.a = 1.0 to 0.1 in @0.2 @1.2 image.col.a = 0.1 to 0.0 in @0.2 @1.0 image.zoom = 0.05 to 0 in @1.0 } } scene_palloJuttui { @0.0 enable skybox, fillerParticles, kehaet, dispMapSrc @0.0 call tvOutput # Cycle objects @0.0 loop @4.0 4 times { @0.0.5 enable pallo, skybox, fillerParticles @0.0.5 disable solmu, solmu2, solmu3, flares @1.0 disable pallo, skybox, dispMapCube @1.0 enable solmu, solmu2, solmu3 @2.0.5 enable pallo, skybox, flares @2.0.5 disable solmu, solmu2, solmu3, fillerParticles @3.0 disable pallo, skybox @3.0 enable dispMapCube } # Zoom TV in @0.0 outTvImg.zoom = 0.2 to 0.5 in @16.0 @0.0 tvBorder.zoom = 0.2 to 0.8 in @16.0 @0.0 tvScreen.zoom = 0.2 to 0.8 in @16.0 @0.0 tvScreen.col.a = 0.5 to 0.0 in @16.0 # Camera paths @0.0 loop @4.0 4 times { @0.0 cam.lookAt.y = 40 @0.0.5 cam.pos.x = eval( "sin(time) * 50" ) @0.0.5 cam.pos.y = eval( "cos(time*1.27) * 5" ) @0.0.5 cam.pos.z = eval( "cos(time) * 30" ) @0.0.5 cam.fovy = 90 to 45 in @0.0.1 @0.1 cam.fovy = spline( 45, 45, 60, 60 ) in @0.3 @0.0.5 outImg.col.a = 1 to 0 in @1.3 @1.0 loop @0.1 4 times { @0.0 cam.fovy = rand( 45 to 90 ) @0.0 cam.pos.y = rand( 0 to 40 ) @0.0 cam.lookAt.y = rand( 30 to 50 ) } @2.0 cam.lookAt.y = 40 @2.0.5 cam.pos.x = eval( "sin(time) * 50" ) @2.0.5 cam.pos.y = eval( "cos(time*1.27) * 5" ) @2.0.5 cam.pos.z = eval( "cos(time) * 30" ) @2.0.5 cam.fovy = 45 to 90 in @0.0.1 @2.1 cam.fovy = spline( 90, 90, 45, 45 ) in @0.3 @2.0.5 outImg.col.a = 1 to 0 in @1.3 @3.0 cam.lookAt.y = 0 @3.0 loop @0.1 4 times { @0.0 cam.fovy = rand( 45 to 90 ) @0.0 cam.pos.y = rand( 0 to 40 ) } } @0.0 cam.up.x = eval( "sin(time*0.0001)" ) for @16.0 @0.0 cam.up.y = eval( "cos(time*0.00012)" ) for @16.0 @0.0 cam.up.z = eval( "sin(time*0.00013)" ) for @16.0 # Sphere @0.0 pallo.rot.y = 0 to 3600 in @16.0 # Solomu @0.0 solmu.pos.y = 40 @0.0 solmu2.pos.y = 40 @0.0 solmu3.pos.y = 40 @0.0 solmu.rot.x = 0 to 100 in @16.0 @0.0 solmu.rot.y = 0 to 210 in @16.0 @0.0 solmu.rot.z = 0 to 320 in @16.0 @0.0 solmu2.rot.y = 0 to 230 in @16.0 @0.0 solmu2.rot.z = 0 to 140 in @16.0 @0.0 solmu2.rot.x = 0 to 250 in @16.0 @0.0 solmu3.rot.z = 0 to 360 in @16.0 @0.0 solmu3.rot.x = 0 to 270 in @16.0 @0.0 solmu3.rot.y = 0 to 180 in @16.0 # Disp map cube @0.0 loop @1.0 16 times { @0.0.5 dispMapSrc.col.a = 1.0 to 0.0 in @0.3.5 } # Glow pump @0.0 loop @0.1 63 times { @0.0 mixBufGlowImg.shader0.brighten = 1.5 to 0.5 in @0.1 } @15.3 mixBufGlowImg.shader0.brighten = 0.5 to 5.0 in @0.1 # SATAN HORRORISM 555 @0.0 kehaet.scale.x = 20 to 40 in @4.0 @0.0 kehaet.scale.y = 20 to 40 in @3.3 @0.0 kehaet.scale.z = 20 to 40 in @4.1 @8.0 kehaet.scale.x = 40 to 80 in @8.0 @8.0 kehaet.scale.y = 40 to 80 in @7.3 @8.0 kehaet.scale.z = 40 to 80 in @7.2 @0.0 kehaet.pos.y = 40 @0.0 kehaet.meshes.plane1.rot.x = 0 to 1234 in @16.0 @0.0 kehaet.meshes.plane1.rot.y = 0 to 2345 in @16.0 @0.0 kehaet.meshes.plane1.rot.z = 0 to 1500 in @16.0 @0.0 kehaet.meshes.plane2.rot.x = 0 to 234 in @16.0 @0.0 kehaet.meshes.plane2.rot.y = 0 to 1200 in @16.0 @0.0 kehaet.meshes.plane2.rot.z = 0 to 1000 in @16.0 @0.0 kehaet.meshes.plane3.rot.x = 0 to 2000 in @16.0 @0.0 kehaet.meshes.plane3.rot.y = 0 to 1000 in @16.0 @0.0 kehaet.meshes.plane3.rot.z = 0 to 500 in @16.0 } scene_kekkonenPaljastuu { @0.0 enable skybox, fillerParticles, kehaet, pallo, kekkonen, envSphere, image @0.0 kekkonen.pos.y = 40 # Camera paths @0.0 loop @1.0 16 times { @0.0 cam.lookAt.y = rand( 30 to 50 ) @0.0 cam.pos.x = eval( "sin(time) * 50" ) @0.0 cam.pos.y = eval( "cos(time*1.27) * 5 + 40" ) @0.0 cam.pos.z = eval( "cos(time) * 30" ) } @0.0 cam.up.x = eval( "sin(time*0.0001)" ) for @16.0 @0.0 cam.up.y = eval( "cos(time*0.00012)" ) for @16.0 @0.0 cam.up.z = eval( "sin(time*0.00013)" ) for @16.0 @0.0 loop @0.1 64 times { @0.0 cam.fovy = rand( 10 to 160 ) } # Make satanistic arcs disappear @0.0 kehaet.scale.x = 80 to 0 in @0.1 @0.0 kehaet.scale.y = 80 to 0 in @0.1 @0.0 kehaet.scale.z = 80 to 0 in @0.1 @0.1 disable kehaet # Make satanistic pallo erkanee @0.0 pallo.meshes.osa1.pos.y = 0 to 30 in @16.0 @0.0 pallo.meshes.osa2.pos.y = 0 to -30 in @16.0 @4.0 pallo.meshes.osa1.rot.x = 0 to 140 in @12.0 @4.0 pallo.meshes.osa1.rot.y = 0 to 100 in @12.0 @4.0 pallo.meshes.osa2.rot.y = 0 to -120 in @12.0 @4.0 pallo.meshes.osa2.rot.z = 0 to -110 in @12.0 # Let's make Kekkonen go round and around! @0.0 kekkonen.rot.y = 0 to 720 in @16.0 # Make the background alive @0.0 envSphere.shader0.foo = 0 to 10 in @16.0 @0.0 loop @0.1 63 times { @0.0 envSphere.shader0.a = 0.0 to 0.1 in @0.1 } @15.3 envSphere.shader0.a = 0.1 to 1.0 in @0.1 # Kekkonen overlays @0.0 image.blend = blend::alpha @0.0 loop @8.0 2 times { @0.0 image.frame = 1 to 9 in @8.0 } @0.0 loop @1.0 16 times { @0.0 image.col.a = 1 to 0.1 in @0.2 @0.2 image.col.a = 0.1 to 0 in @0.2 @0.0 image.zoom = 0.05 to 0 in @1.0 } # Glow pump @0.0 loop @0.1 63 times { @0.0 mixBufGlowImg.shader0.brighten = 2.0 to 0.0 in @0.1 } } scene_kekkonenPuhuu { @0.0 enable fillerParticles, kehaet, kekkonen, skybox, image, chargerBar @0.0 image.useShader = -1 # Camera paths @0.0 cam.lookAt.y = 40 @0.0 cam.pos.x = eval( "sin(time*0.0001) * 25" ) for @16.0 @0.0 cam.pos.y = eval( "cos(time*0.000072) * 5 + 40" ) for @16.0 @0.0 cam.pos.z = eval( "cos(time*0.0001) * 25" ) for @16.0 @0.0 cam.up.x = eval( "sin(time*0.0001)" ) for @16.0 @0.0 cam.up.y = eval( "cos(time*0.00012) + 4.0" ) for @16.0 @0.0 cam.up.z = eval( "sin(time*0.00013)" ) for @16.0 @0.0 cam.fovy = 160 to 45 in @16.0 # Make satanistic pallo erkanee more @0.0 pallo.meshes.osa1.pos.y = 30 to 60 in @16.0 @0.0 pallo.meshes.osa2.pos.y = -30 to -60 in @16.0 # Let's make Kekkonen stay @0.0 kekkonen.rot.y = 0 # SATAN HORRORISM 555 @0.0 kehaet.scale.x = 100 @0.0 kehaet.scale.y = 100 @0.0 kehaet.scale.z = 100 @0.0 kehaet.pos.y = 40 @0.0 loop @2.0 8 times { @0.0.5 call scene_kekkonenPuhuu_randomizeKehaet @1.0.25 call scene_kekkonenPuhuu_randomizeKehaet @1.0.75 call scene_kekkonenPuhuu_randomizeKehaet } # Laser charger @0.0 image.col.a = 1 @0.0 image.frame = 9 @0.0 image.zoom = 0.1 to 0 in @16.0 @0.0 chargerBar.zoom = 0.1 to 0 in @16.0 @0.0 chargerBar.clip.right = 1.0 to 0.0 in @16.0 # Glow at the end @15.0 mixBufGlowImg.shader0.brighten = 1 to 5.0 in @1.0 } scene_kekkonenPuhuu_randomizeKehaet { @0.0 kehaet.meshes.plane1.rot.x = rand( 0 to 360 ) @0.0 kehaet.meshes.plane1.rot.y = rand( 0 to 360 ) @0.0 kehaet.meshes.plane1.rot.z = rand( 0 to 360 ) @0.0 kehaet.meshes.plane2.rot.x = rand( 0 to 360 ) @0.0 kehaet.meshes.plane2.rot.y = rand( 0 to 360 ) @0.0 kehaet.meshes.plane2.rot.z = rand( 0 to 360 ) @0.0 kehaet.meshes.plane3.rot.x = rand( 0 to 360 ) @0.0 kehaet.meshes.plane3.rot.y = rand( 0 to 360 ) @0.0 kehaet.meshes.plane3.rot.z = rand( 0 to 360 ) } scene_kekkonenAmpuuLaaseria { @0.0 enable kekkonen, laser, fillerParticles, flares, envSphere # Solomu @0.0 solmu.pos.y = 40 @0.0 solmu2.pos.y = 40 @0.0 solmu3.pos.y = 40 @0.0 solmu.rot.x = 0 to 1000 in @16.0 @0.0 solmu.rot.y = 0 to 1100 in @16.0 @0.0 solmu.rot.z = 0 to 1200 in @16.0 @0.0 solmu2.rot.y = 0 to 1300 in @16.0 @0.0 solmu2.rot.z = 0 to 1400 in @16.0 @0.0 solmu2.rot.x = 0 to 1500 in @16.0 @0.0 solmu3.rot.z = 0 to 1600 in @16.0 @0.0 solmu3.rot.x = 0 to 1700 in @16.0 @0.0 solmu3.rot.y = 0 to 1800 in @16.0 @0.0 loop @2.0 8 times { @0.0 disable solmu, solmu2, solmu3 @1.0 enable solmu, solmu2, solmu3 } # Make the background alive @0.0 envSphere.shader0.foo = 0 to 10 in @16.0 @0.0 loop @0.1 63 times { @0.0 envSphere.shader0.a = 0.0 to 0.1 in @0.1 } @15.3 envSphere.shader0.a = 0.1 to 1.0 in @0.1 # Make laser say pow @0.0 laser.pos.y = 40 @0.0 loop @0.1 64 times { @0.0 laser.shader0.pos = 0 to 1 in @0.1 } # Make kekkonen shoot around @0.0 kekkonen.rot.y = 0 to 3600 in @16.0 @0.0 laser.rot.y = 0 to 3600 in @16.0 # Camera paths @0.0 cam.up.x = eval( "sin(time*0.0005)" ) for @16.0 @0.0 cam.up.y = eval( "cos(time*0.00052)+2" ) for @16.0 @0.0 cam.up.z = eval( "sin(time*0.00053)" ) for @16.0 @0.0 loop @2.0 8 times { @0.0 cam.fovy = 45 @1.0 cam.fovy = 90 @0.0 cam.pos.x = 0 @0.0 cam.pos.y = 40 @0.0 loop @0.1 4 times { @0.0 cam.pos.z = 25 to 15 in @0.1 } @1.0 loop @0.1 4 times { @0.0 cam.pos.x = eval( "sin(time*11) * 20" ) @0.0 cam.pos.y = eval( "cos(time*11) * 20 + 40" ) @0.0 cam.pos.z = eval( "sin(time*17) * 20" ) } } # Glow pump @0.0 loop @0.1 63 times { @0.0 mixBufGlowImg.shader0.brighten = 2.0 to 0.5 in @0.1 } @15.3 mixBufGlowImg.shader0.brighten = 0.5 to 5.0 in @0.1 # } scene_daddy { @0.0 daddy.shader.foo = 1 to 0 in @15.0 @15.0 daddy.shader.foo = spline( 1, 0, 1, 10 ) in @1.0 @0.0 outImg.useShader = 1 # use tv shader @0.0 loop @0.3 21 times { @0.0 disable daddy @0.0 enable envSphere @0.1 disable envSphere @0.1 enable skybox2 @0.2 disable skybox2 @0.2 enable daddy @0.0 cam.fovy = 170 to 100 in @0.3 } @0.0 loop @1.0 15 times { @0.0 enable fillerParticles @0.1 disable fillerParticles @0.1 enable kehaet @0.2 disable kehaet @0.2 enable solmu, solmu2, solmu3 @0.3 disable solmu, solmu2, solmu3 @0.3 enable dispMapCube @0.4 disable dispMapCube } @15.0 enable fillerParticles @15.1 disable fillerParticles @15.1 enable kehaet @15.2 disable kehaet # Camera paths @0.0 cam.pos.x = eval( "sin(time*0.0007) * 25" ) for @16.0 @0.0 cam.pos.y = 10 to 80 in @16.0 @0.0 cam.pos.z = eval( "cos(time*0.0007) * 25" ) for @16.0 @0.0 cam.lookAt.y = 0 to 10 in @16.0 @0.0 cam.lookAt.x = 0 @0.0 cam.lookAt.z = 0 @0.0 cam.up.x = eval( "sin(time*0.0005)" ) for @16.0 @0.0 cam.up.y = eval( "cos(time*0.00052) + 10.0" ) for @16.0 @0.0 cam.up.z = eval( "sin(time*0.00053)" ) for @16.0 # Glow pump @0.0 loop @1.0 16 times { @0.0 mixBufGlowImg.shader0.brighten = 3.0 to 1.0 in @1.0 } @0.0 loop @2.0 8 times { @0.0 daddy.shader.foo2 = 0 to 6.28 in @2.0 } # Make the background alive @0.0 envSphere.shader0.foo = 0 to 10 in @16.0 @0.0 loop @0.1 63 times { @0.0 envSphere.shader0.a = 0.0 to 0.1 in @0.1 } @15.3 envSphere.shader0.a = 0.1 to 1.0 in @0.1 } scene_kollaasi { # Cycle objects @0.0 loop @4.0 4 times { @0.0 enable kekkonen, laser, fillerParticles @1.0 disable kekkonen, laser, fillerParticles @1.0 enable fillerParticles, flares, skybox2 @2.0 disable fillerParticles, flares, skybox2 @2.0 enable fillerParticles, pallo, kekkonen @3.0 disable fillerParticles, pallo, kekkonen @2.0 pallo.scale.x = rand( 1 to 3 ) @2.0 pallo.scale.y = rand( 1 to 3 ) @3.0 enable dispMapCube, dispMapSrc, flares, pallo @4.0 disable dispMapCube, dispMapSrc, flares, pallo } @0.0 loop @3.0 5 times { @0.0 enable kehaet @1.0 disable kehaet @1.0 enable envSphere @2.0 disable envSphere } # Images @0.0 loop @1.1 12 times { @1.1 enable image @1.1 image.col.a = 1 to 0 in @0.1 @1.2 disable image } @0.0 image.frame = 1 to 9 in @12.12 # Solomu @0.0 solmu.pos.y = 40 @0.0 solmu2.pos.y = 40 @0.0 solmu3.pos.y = 40 @0.0 solmu.rot.x = 0 to 1000 in @16.0 @0.0 solmu.rot.y = 0 to 1100 in @16.0 @0.0 solmu.rot.z = 0 to 1200 in @16.0 @0.0 solmu2.rot.y = 0 to 1300 in @16.0 @0.0 solmu2.rot.z = 0 to 1400 in @16.0 @0.0 solmu2.rot.x = 0 to 1500 in @16.0 @0.0 solmu3.rot.z = 0 to 1600 in @16.0 @0.0 solmu3.rot.x = 0 to 1700 in @16.0 @0.0 solmu3.rot.y = 0 to 1800 in @16.0 @0.0 loop @0.1 64 times { @0.0 disable solmu, solmu2, solmu3 @0.0.5 enable solmu, solmu2, solmu3 } # Make laser say pow @0.0 laser.pos.y = 40 @0.0 loop @0.1 64 times { @0.0 laser.shader0.pos = 0 to 1 in @0.1 } # Make kekkonen shoot around @0.0 kekkonen.rot.y = 0 to 3600 in @16.0 @0.0 laser.rot.y = 0 to 3600 in @16.0 # Camera paths @0.0 loop @0.2 32 times { @0.0 cam.fovy = rand( 45 to 130 ) @0.0 cam.pos.x = rand( -40 to 40 ) @0.0 cam.pos.y = rand( 0 to 80 ) @0.0 cam.pos.z = rand( -40 to 40 ) } @0.0 cam.lookAt.x = eval( "sin( time * 0.0015 ) * 10" ) for @16.0 @0.0 cam.lookAt.y = eval( "cos( time * 0.0014 ) * 20 + 40" ) for @16.0 @0.0 cam.lookAt.z = eval( "sin( time * 0.0009 ) * 10" ) for @16.0 @0.0 cam.up.x = eval( "sin( time * 0.001 )" ) for @16.0 @0.0 cam.up.y = eval( "cos( time * 0.0012 )" ) for @16.0 @0.0 cam.up.z = eval( "sin( time * 0.0017 )" ) for @16.0 # SATAN HORRORISM 555 @0.0 kehaet.scale.x = 100 @0.0 kehaet.scale.y = 100 @0.0 kehaet.scale.z = 100 @0.0 kehaet.pos.y = 40 @0.0 loop @2.0 8 times { @0.0.5 call scene_kekkonenPuhuu_randomizeKehaet @1.0.25 call scene_kekkonenPuhuu_randomizeKehaet @1.0.75 call scene_kekkonenPuhuu_randomizeKehaet } # Glow pump @0.0 loop @0.1 32 times { @0.0 mixBufGlowImg.shader0.brighten = 3.0 to 1.0 in @0.0.5 @0.0 skybox.texZoom = rand( -3.0 to 1.0 ) } @8.0 loop @0.0.5 64 times { @0.0 mixBufGlowImg.shader0.brighten = 3.0 to 0.0 in @0.0.5 @0.0 skybox.texZoom = rand( -1.0 to 1.0 ) } # Disp map cube @0.0 loop @1.0 16 times { @0.0.5 dispMapSrc.col.a = 1.0 to 0.0 in @0.3.5 } # Make the background alive @0.0 envSphere.shader0.foo = 0 to 10 in @16.0 @0.0 loop @0.1 63 times { @0.0 envSphere.shader0.a = 0.0 to 0.1 in @0.1 } @15.3 envSphere.shader0.a = 0.1 to 1.0 in @0.1 } scene_outro { @0.0 enable fillerParticles, kehaet, kekkonen, skybox, image @0.0 call tvOutput # Zoom TV out @0.0 outTvImg.zoom = 0.1 to 0 in @8.0 @0.0 tvBorder.zoom = 0.1 to 0 in @8.0 @0.0 tvScreen.zoom = 0.1 to 0 in @8.0 @0.0 outImg.col.a = 1 to 0 in @2.0 # Outro image @0.0 image.frame = 10 @0.0 image.col.a = 0 @2.0 image.col.a = 0 to 1 in @8.0 @0.0 image.zoom = 0.05 to 0 in @8.0 # Camera paths @0.0 cam.pos.x = eval( "sin(time*0.0001) * 25" ) for @16.0 @0.0 cam.pos.y = eval( "cos(time*0.000072) * 5 + 40" ) for @16.0 @0.0 cam.pos.z = eval( "cos(time*0.0001) * 25" ) for @16.0 @0.0 cam.up.x = eval( "sin(time*0.0001)" ) for @16.0 @0.0 cam.up.y = eval( "cos(time*0.00012) + 4.0" ) for @16.0 @0.0 cam.up.z = eval( "sin(time*0.00013)" ) for @16.0 @0.0 cam.fovy = 160 to 45 in @16.0 # Glow pump @0.0 mixBufGlowImg.shader0.brighten = 5.0 to 1.0 in @1.0 # Make satanistic pallo erkanee more @0.0 pallo.meshes.osa1.pos.y = 30 to 60 in @16.0 @0.0 pallo.meshes.osa2.pos.y = -30 to -60 in @16.0 # Let's make Kekkonen stay @0.0 kekkonen.rot.y = 0 # SATAN HORRORISM 555 @0.0 kehaet.scale.x = 100 @0.0 kehaet.scale.y = 100 @0.0 kehaet.scale.z = 100 @0.0 kehaet.pos.y = 40 @0.0 loop @2.0 8 times { @0.0.5 call scene_kekkonenPuhuu_randomizeKehaet } # Tv shutdown @10.0 loop @8.0 1 times { @0.0 disable fillerParticles, kehaet, kekkonen, skybox @0.0 image.zoom.y = 0 to -0.498 in @0.0.5 @0.0.5 image.zoom.x = 0 to -0.498 in @0.0.5 @0.1 outTvImg.col.a = 1 to 0 in @0.1 @0.2 enable blinder @0.2 blinder.col.a = 0 to 1 in @1.0 } @12.0 end }