##################################################### # # # HEADER # # # ##################################################### header { title: fr-003: protrackt width: 1280 height: 720 music: friction2.ogg bpm: 125.0 } ##################################################### # # # OBJECTS # # # ##################################################### objects { cam: camera { } env: enviroment { lighting: 0 light0.enable: 1 light0.pos.z: 20 light0.pos.y: 20 } # scene 1 OBJECTS plane: 3ds plane.3ds { meshes.image1.lighting: 0 pos.y: -0.1 texture: image fraction.jpg } hakki: 3ds hack.3ds prts1: particles { textures: particle1.jpg box: ( -2.875, 0, -2.875 ), ( 2.875, 1000, 2.875 ) gravity.y: -10 maxParticles: 1000 fadeAway: 0 emitter { radius: 1 pos: 0, 5, 0 dir.x: -2, 1 dir.z: -1, 1 dir.y: -2, 1 lifeTime: 1, 10 color.r: 0.25, 1.0 color.g: 0.0 color.b: 0.0 color.a: 1.0 elasticity: 0.3, 0.9 size: 0.01, 0.1 #friction: 0.25, 0.5 } } # scene 2 OBJECTS build: 3ds build_tekno.3ds { shader: build.shader meshes.cube1.lighting: 0 #wireframe: 1 generateTexCoords: 1 materials.default.blend: blend::screen } # scene 3 OBJECTS helix: 3ds f2_vase.3ds { shader: build.shader meshes.torus2.lighting: 0 meshes.torus2_co1.lighting: 0 meshes.torus2_co2.lighting: 0 #wireframe: 1 generateTexCoords: 1 materials.default.blend: 2 materials.default.envMap: 3ds::sphereMap depthMask: 0 } helix2: duplicate helix { rot.y: 90 } helix3: duplicate helix { wireframe: 1 rot.z: 90 } prts2: particles { textures: particle1.jpg maxParticles: 1000 emitter { radius: 5, 50 color.g: 0 color.b: 0 color.a: 0.25, 1.0 size: 0.1, 0.5 lifeTime: -1 } } # scene 4 OBJECTS helixb: 3ds helix2.3ds { shader: build.shader meshes.Loft01.lighting: 0 #wireframe: 1 generateTexCoords: 1 materials.default2.blend: 2 depthMask: 0 } helixb2: duplicate helixb { rot.y: 90 } helixb3: duplicate helixb { wireframe: 1 rot.z: 90 } # scene 5 OBJECTS prts3: particles { textures: particle1.jpg maxParticles: 1000 fadeAway: 1 emitter { radius: 5, 50 color.g: 0 color.b: 0 color.a: 0.2, 0.5 size: 0.1, 3.0 lifeTime: 0, 10 } attractor { pos: -25 -15 -10 gravity: 10000 } attractor { pos: 25 15 10 gravity: 1000 } attractor { pos: 0 0 0 gravity: -5000 } attractor { pos: 0 50 0 gravity: 4000 } attractor { pos: 0 -50 0 gravity: 2000 } } # scene 7 OBJECTS nice: 3ds nice2.3ds { shader: build2.shader meshes.octotoad1.lighting: 0 #wireframe: 1 generateTexCoords: 1 materials.default.blend: 2 depthMask: 0 materials.default.envMap: 3ds::sphereMap texture: default *glow } # scene 8 OBJECTS flowers: 3ds palikkapallot.3ds { shader: build2.shader #meshes.cylinder1.lighting: 0 #wireframe: 1 generateTexCoords: 1 materials.default.blend: 2 depthMask: 0 } # POST PROCESSING credits: image c1.png c2.png c3.png c4.png { blend: 1 } glowImg: image *main { stretch: 1 } blurXImg: image *glow { stretch: 1 shader: blurx.shader shader0.blur: 25 shader0.pixel: 0.0015625 } blurYImg: image *blurX { stretch: 1 shader: blury.shader shader0.blur: 25 shader0.pixel: 0.0027778 } mainImg: image *main *blurY glowmap.jpg colormap.jpg colormap2.jpg { stretch: 1 shader: final.frag multiTexturing: 1 shader0.glowTex: 1 shader0.glowMapTex: 2 shader0.colorMapTex: 3 } overlayImg: image nuoli1.jpg friction.jpg title.jpg tausta.jpg nuoli2.jpg nuoli3.jpg nuoli4.jpg { blend: 2 stretch: yes } } ##################################################### # # # RENDER PASSES # # # ##################################################### textures { *glow { width: 640 height: 360 } *blurX { width: 640 height: 360 } *blurY { width: 640 height: 360 } } renderPasses { main { exclude: blurXImg, blurYImg, mainImg, overlayImg, glowImg output: *main } glowCopy { objects: glowImg output: *glow } blurX { objects: blurXImg output: *blurX } blurY { objects: blurYImg output: *blurY } final { objects: mainImg, overlayImg } } ##################################################### # # # SCRIPT # # # ##################################################### script { @0.0 enable cam, env, blurXImg, blurYImg, mainImg, glowImg @0.0 main.clear.a = 1 @0.0 call scene_intro @12.0 call scene_helix @24.0 call scene_hexplane @32.0 call scene_particles @40.0 call scene_weird @48.0 call scene_credits @56.0 call scene_hexplaneb @64.0 call scene_particlesb @72.0 call scene_flowers @80.0 call scene_flowers @88.0 call scene_ending @96.0 end } disableObjs { @0.0 disable prts1, plane, build, helix, helix2, helix3, prts2, helixb, helixb2, helixb3, overlayImg, prts3, nice, credits, flowers, hakki @0.0 mainImg.shader0.useColorMap = 0 } scene_hexplane { @0.0 call disableObjs @0.0 enable prts1, plane, hakki @0.0 call scene_hexplane_cam( 25, 20, @2.0 ) @2.0 call scene_hexplane_cam( 15, 10, @2.0 ) @4.0 call scene_hexplane_cam( 5, 1, @2.0 ) @6.0 call scene_hexplane_cam( 1, 20, @2.0 ) @0.0 cam.up.x = -1 to 1 in @8.0 @0.0 cam.lookAt.x = 0 @0.0 cam.lookAt.y = 0 @0.0 cam.lookAt.z = 0 @0.0 cam.up.z = -1 @0.0 loop @4.0 2 times { @0.0 mainImg.shader0.glowAmount = 5.0 to 2.0 in @4.0 } @0.0 enable overlayImg @0.0 overlayImg.frame = 4 @0.0 overlayImg.zoom = 0 to 0.1 in @8.0 @0.0 overlayImg.col.a = 0 to 1 in @0.2 @0.2 overlayImg.col.a = 1 to 0 in @7.2 } scene_hexplaneb { @0.0 call disableObjs @0.0 enable prts1, plane, hakki @0.0 cam.fovy = 90 @0.0 loop @4.0 2 times { @0.0 call scene_hexplane_cam( 5, 4, @1.0 ) @1.0 call scene_hexplane_cam( 3, 4, @1.0 ) @2.0 call scene_hexplane_cam( 3, 2, @1.0 ) @3.0 call scene_hexplane_cam( 1, 2, @1.0 ) } @0.0 cam.up.x = -1 to 1 in @8.0 @0.0 cam.lookAt.x = 0 @0.0 cam.lookAt.y = 0 @0.0 cam.lookAt.z = 0 @0.0 cam.up.z = -1 @0.0 prts1.emitter[0].size.max = 0.1 to 0.5 in @8.0 @0.0 prts1.emitter[0].elasticity.max = 0.25 to 1.0 in @8.0 @0.0 loop @1.0 8 times { @0.0 mainImg.shader0.glowAmount = 5.0 to 2.0 in @0.1 @0.1 mainImg.shader0.glowAmount = 10.0 to 2.0 in @0.1 @0.2 mainImg.shader0.glowAmount = 5.0 to 2.0 in @0.1 @0.3 mainImg.shader0.glowAmount = 10.0 to 2.0 in @0.1 } @0.0 enable overlayImg @0.0 overlayImg.frame = 5 @0.0 overlayImg.zoom = 0 to 0.1 in @8.0 @0.0 overlayImg.col.a = 0 to 1 in @0.2 @0.2 overlayImg.col.a = 1 to 0 in @7.2 } scene_hexplane_cam: %Y1 %Y2 %TIME { @0.0 cam.pos.z = eval( "sin(time)*5" ) @0.0 cam.pos.x = eval( "cos(time)*5" ) @0.0 cam.pos.y = %Y1 to %Y2 in %TIME } scene_intro { @0.0 call disableObjs @0.0 enable build @0.0 mainImg.shader0.useColorMap = 1 @0.0 build.shader0.start = 1.0 to 0.5 in @2.0 @2.0 build.shader0.start = 0.5 to 0.0 in @6.0 @8.0 build.shader0.start = 0.0 to 1.0 in @4.0 @0.0 loop @2.0 6 times { @0.1.5 build.shader0.end = 1.0 to 0.5 in @1.0 } @0.0 loop @4.0 3 times { @0.1.5 call scene_intro_cam( 5, -5, @3.1.5 ) } @0.0 cam.lookAt.x = 0 @0.0 cam.lookAt.y = 0 @0.0 cam.lookAt.z = 0 @0.0 cam.up.z = -1 @0.0 cam.up.x = -1 to 1 in @4.0 @0.0 mainImg.shader0.glowAmount = 10.0 to 1.0 in @4.0 @4.0 loop @2.0 4 times { @0.1.5 mainImg.shader0.glowAmount = 10.0 to 1.0 in @1.2 } @8.0 enable overlayImg @8.0 overlayImg.frame = 1 @8.0 overlayImg.zoom = 0.0 to 0.1 in @4.0 @11.0 overlayImg.col.a = 1.0 to 0.0 in @1.0 } scene_intro_cam: %Y1 %Y2 %TIME { @0.0 cam.pos.z = rand( -30 to -20 ) @0.0 cam.pos.x = rand( -10 to 10 ) @0.0 cam.pos.y = %Y1 to %Y2 in %TIME } scene_helix { @0.0 call disableObjs @0.0 enable helix, helix2, helix3, prts2 @0.0 mainImg.shader0.useColorMap = 1 @0.0 loop @4.0 5 times { @0.0 helix.shader0.start = 0 @0.0 helix.shader0.end = 0 @0.0 helix2.shader0.start = 0 @0.0 helix2.shader0.end = 0 @0.0 helix3.shader0.start = 0 @0.0 helix3.shader0.end = 0 @0.0 helix.shader0.end = 0.0 to 1.0 in @4.0 @1.0 helix.shader0.start = 0.0 to 1.0 in @3.0 @1.0 helix2.shader0.end = 0.0 to 1.0 in @2.0 @2.0 helix2.shader0.start = 0.0 to 1.0 in @2.0 @0.0 helix3.shader0.end = 0.0 to 1.0 in @3.0 @2.0 helix3.shader0.start = 0.0 to 1.0 in @2.0 } @0.0 helix.rot.y = 0 to 90 in @12.0 @0.0 helix2.rot.z = 0 to -70 in @12.0 @0.0 helix3.rot.x = 0 to 50 in @12.0 @0.0 loop @4.0 3 times { @0.0 call scene_intro_cam( 10, -10, @4.0 ) } @0.0 cam.lookAt.x = 0 @0.0 cam.lookAt.y = 0 @0.0 cam.lookAt.z = 0 @0.0 cam.up.z = -1 @0.0 cam.up.x = -1 to 1 in @12.0 @4.0 loop @1.0 6 times { @0.1 mainImg.shader0.glowAmount = 13.0 to 5.0 in @0.3 } } scene_credits { @0.0 call disableObjs @0.0 enable helixb, helixb2, helixb3, prts2, credits @0.0 mainImg.shader0.useColorMap = 1 @0.0 loop @4.0 2 times { @0.0 helixb.shader0.start = 0 @0.0 helixb.shader0.end = 0 @0.0 helixb2.shader0.start = 0 @0.0 helixb2.shader0.end = 0 @0.0 helixb3.shader0.start = 0 @0.0 helixb3.shader0.end = 0 @0.0 helixb.shader0.end = 0.0 to 1.0 in @4.0 @1.0 helixb.shader0.start = 0.0 to 1.0 in @3.0 @1.0 helixb2.shader0.end = 0.0 to 1.0 in @2.0 @2.0 helixb2.shader0.start = 0.0 to 1.0 in @2.0 @0.0 helixb3.shader0.end = 0.0 to 1.0 in @3.0 @2.0 helixb3.shader0.start = 0.0 to 1.0 in @2.0 } @0.0 helixb.rot.y = 0 to 90 in @8.0 @0.0 helixb2.rot.z = 0 to -70 in @8.0 @0.0 helixb3.rot.x = 0 to 50 in @8.0 @0.0 call scene_intro_cam( 5, -5, @4.0 ) @4.0 call scene_intro_cam( 5, 0, @2.0 ) @6.0 call scene_intro_cam( -5, 0, @2.0 ) @0.0 cam.lookAt.x = 0 @0.0 cam.lookAt.y = 0 @0.0 cam.lookAt.z = 0 @0.0 cam.up.z = -1 #@0.0 cam.up.x = -1 to 1 in @4.0 @0.0 loop @4.0 2 times { @0.0 mainImg.shader0.glowAmount = 7.0 to 2.0 in @4.0 } @0.0 loop @2.0 4 times { @0.0 credits.col.a = 0 to 1 in @0.2 @1.2 credits.col.a = 1 to 0 in @0.2 @0.0 credits.pos.x = -200 to -150 in @2.0 } @0.0 credits.frame = 0 to 4 in @8.0 } scene_particles { @0.0 call disableObjs @0.0 enable prts2, prts3, overlayImg @0.0 mainImg.shader0.useColorMap = 1 @0.0 loop @0.2 16 times { @0.1 cam.pos.x = rand( -50 to 50 ) @0.1 cam.pos.y = rand( -50 to 50 ) @0.1 cam.pos.z = rand( -50 to 50 ) } @0.0 cam.lookAt.x = -25 to 25 in @8.0 @0.0 cam.lookAt.y = -15 to 15 in @8.0 @0.0 cam.lookAt.z = -10 to 10 in @8.0 @0.0 cam.fovy = 80 @0.0 overlayImg.frame = 3 @0.0 enable overlayImg @0.0 overlayImg.frame = 6 @0.0 overlayImg.zoom = 0.0 to 0.1 in @8.0 @0.0 overlayImg.col.a = 1.0 to 0.0 in @8.0 } scene_particlesb { @0.0 call scene_particles @0.0 overlayImg.frame = 5 } scene_ending { @0.0 call disableObjs @0.0 enable overlayImg @0.0 overlayImg.frame = 2 @0.0 overlayImg.col.a = 0 to 1 in @2.0 @0.0 overlayImg.zoom = 0.0 to 0.1 in @8.0 @4.0 overlayImg.col.a = 1.0 to 0.0 in @4.0 #@4.0 overlayImg.col.r = 1.0 to 0.0 in @4.0 } scene_weird { @0.0 call disableObjs @0.0 enable nice, overlayImg @0.0 mainImg.shader0.useColorMap = 1 @0.0 nice.shader0.foo = spline( 0, 0, 10, 20 ) in @8.0 @0.0 cam.pos.x = eval( "15*sin(time*0.0005)" ) for @8.0 @0.0 cam.pos.y = eval( "15*cos(time*0.00032)" ) for @8.0 @0.0 cam.pos.z = eval( "30*sin(time*0.00043)" ) for @8.0 @0.0 cam.lookAt.x = eval( "sin(time*0.005)" ) for @8.0 @0.0 cam.lookAt.y = eval( "cos(time*0.0052)" ) for @8.0 @0.0 cam.lookAt.z = eval( "sin(time*0.0053)" ) for @8.0 @0.0 overlayImg.frame = 3 @0.0 overlayImg.col.a = 1.0 @0.0 overlayImg.zoom = 0.0 to 1.0 in @8.0 @0.0 loop @0.2 15 times { @0.1 mainImg.shader0.glowAmount = 5.0 to 2.0 in @0.2 } @0.0 cam.fovy = 140 @8.0 cam.fovy = 45 } scene_flowers { @0.0 call disableObjs @0.0 enable flowers, prts2, overlayImg @0.0 mainImg.shader0.useColorMap = 1 @0.0 mainImg.shader0.colorMapTex = 4 @0.0 loop @0.2 16 times { @0.0 cam.pos.x = rand( -10 to 10 ) @0.0 cam.pos.z = rand( -10 to 10 ) } @0.0 cam.pos.y = -5 to 5 in @4.0 @4.0 cam.pos.y = 5 to -5 in @4.0 @0.0 cam.fovy = 90 @0.0 cam.lookAt.x = 0 @0.0 cam.lookAt.y = 0 @0.0 cam.lookAt.z = 0 @0.0 flowers.shader0.foo = 0.0 to 8.0 in @8.0 @0.0 loop @1.0 8 times { @0.0 mainImg.shader0.glowAmount = 3.0 to 2.0 in @0.1 @0.1 mainImg.shader0.glowAmount = 6.0 to 2.0 in @0.1 @0.2 mainImg.shader0.glowAmount = 3.0 to 2.0 in @0.1 @0.3 mainImg.shader0.glowAmount = 9.0 to 2.0 in @0.1 } @0.0 overlayImg.frame = 3 @0.0 overlayImg.zoom = 0 @0.0 overlayImg.col.a = 0 to 1 in @0.2 @7.2 overlayImg.col.a = 1 to 0 in @0.2 }