Friday, May 14, 2010

L4D Greenscreen Final


So after we got the matte working we had to add the world, which included all the cut away shots, the backdrop and effects.

To get all the footage out of the game we used the record demo function that is accessible through the developer's console. So first we had to play the game in such a way as to make the recorded demo useful, ie set up the shots in game. The demo records every action in game so the entire level can be played back at a later time using the console. While playing the demo we could export frames and .wavs whenever we wanted, allowing us to import the footage into After Effects and Premier. Another cool feature of the demo is the Camera smoothing tool which allows us to take the player camera (there is only one camera and its default is the FP view of the player who recorded the demo) and move it freely through out the map and set key frames. This lets us do tracking, crane and dolly shots. EPIC!

That being said it is still very difficult to get the right shot because the environment is very filmmaker unfreindly. We had zombies jumping in everywhere! On easy difficulty there is usually enough downtime between hordes to grab shots, but often times the special zombies would show up and mess everything up. We also had to kill the AI characters because they would often run into shots, disturb zombies too early and when we were recording foly, yell stuff and mess the sound up.

The demo tools are not very user friendly either and it took us sometime to figure out how to use them effectively. One of the problems with the smooth tool was that even tho the camera could be moved freely around the environment, the jiggle from the player was still translated for somereason. So if the player was running, walking, shooting, or being smacked by zombies the keyed camera floating far away would shake around and jiggle too. This made things extremely difficult because the person recording the demo would have to crouch and stay absolutely still while a shot was underway. which means they could not be an "actor" and participate in any of the actions that were needed, and also had to find a safe place to sit, usually in a closet so stray zombies wouldn't attack him while a shot was being acted out.

Some other issues were the muzzle flashes and the flashlight. They track to the camera too and often times we would forget to turn off the flashlight while shooting so we'd have to back and re-record. The good thing is we found a way later on through the console to drop there intensity to 0. Unfortunately we still haven't found a way to turn off the camera Jigggle.

So, while shooting we also were able to turn off various parts of the hud. In order to record we had to turn off the Gun, but the cool part was since our screen resolutions were 1440X900 and we shot 1280X720 we had extra room, so we either masked out the hud or removed it all together and had extra real estate to work with.
These are frames taken from the demo recordings of the care alarm shot. we had one person film and another named =A$$= L33T[FTW] shoot the car from off screen. We had to leave parts of the hud on in order to get the ! Car Alarm alert.

The red box shows the crop for the screen.


Besides capturing raw footage for the short we also had to capture content for the effects.
To make our live action heroes look like they were in game we needed to ad a couple of UI effects. One was the floating player names above peoples heads. Valve uses a special font for L4D so we had to take some screen shots of the names to use. We were lucky enough to find a really dark, practically black room. We changed our screen names and stood in the room and took screen caps. It was really easy to pull a mask and recreate the text.





We also were able to pull a mask of the UI so we could photoshop it and add our faces to it.



For the muzzle flashes we recorded them in the same room and then screened them in the same way they ad real ones.



We also captured the sound too because the game does such a great job of mixing them already, like adding echo and doppler effect, that it was much more efficient to folly most of the sounds in game rather than mix them ourselves later. Plus it makes it sound like the real game cause it is.

For the hunter we had to use 3ds MAX because there is really no way to get it to act the way we wanted especially with the live action characters so we had to export the model and textures from the game and import them into MAX to animate and light. It was a simple match move. I played with the cameras focal length till i got it right and then just dropped the hunter in and Ryan lit and rendered it.
Photobucket

All the layers were comped in After Effects and sent over to Premier for final editing, sound, and music. All the music used was from the actual game. And yeah that's it!
I'll post the link to the video once we get it up.

Wednesday, April 21, 2010


So I've been working on the matte. Its been real hard getting the greenish motion blurs to disappear, but I think I've figured it out. I am selecting the dark green color and making a separate mask specifically for that layer. With curves I adjusted it so it created a solid black halo around the characters, removing the green motion blur but preserving the interior dark green.

Thursday, March 25, 2010

Bash Move editing Script

Here is my script. It edits 20 seconds of a .mp4 and replaces the color white with cyan and black with blue and re-exports it as a new movie.
run the script and call the name of the movie you want to export after. ex.

./video.s movie

[

#!/bin/bash
$ffmpeg
#replaces white with cyan and black with blue
ffmpeg -i "$1".mp4 -ss 0 -vframes 600 "$1"%d.jpg

for i in {0..600}
do

convert "$1""$i".jpg +level-colors blue,cyan "$1""-ex""$i".jpg

echo "making frame $i"

done
ffmpeg -f image2 -i "$1""-ex"%d.jpg "$1"_export.mp4

Thursday, February 25, 2010

Colorwheel with gradiant


Here is my color wheel script. This will generate a full color wheel and hue bars. The number of hue bars can be specified in the script options.
----
(define ( SupaColorWheel Colorbars )
;makes a new image and layer 1024x1024
(define img (car (gimp-image-new 1024 1024 0)))
(define baselayer (car(gimp-layer-new img 1024 1024 0 "layer 1" 100 0)))
(gimp-image-add-layer img baselayer -1)
;set up variables and constants
(define i 0)
(define j 0)
(define numrots 765)
(define numbars Colorbars)
(define barrot (/ 6.28318531 numbars))
(define barHuerot (/ 200 numbars))
;set base colors
(gimp-context-set-background '(255 255 255))
(gimp-context-set-foreground '(255 0 0))

;vv this loop draws the wheel.
(set! i 0)
(while (< i numrots)
;make new layer for color slice
(define colorlayer (car(gimp-layer-new img 3 256 0 "layer 1" 100 0)))
(gimp-image-add-layer img colorlayer -1)
;add red to white gradiant
(gimp-edit-blend colorlayer 3 0 0 100 0 0 FALSE FALSE 1 0 TRUE 256 0 256 256)
;change hue to angle
(gimp-hue-saturation colorlayer 0 (- (* 0.2614379085 i) 100) 0 0)
;move and rotate layer into position
(gimp-layer-translate colorlayer 512 256)
(gimp-drawable-transform-rotate colorlayer (* 0.008213314118 i) FALSE 512 512 0 2 TRUE 3 0)
;mergelayers
(gimp-image-merge-visible-layers img 2)


(set! i (+ i 1))
)

(set! j 0)
;reset colors to red and cyan so they are opposites
(gimp-context-set-background '(255 0 0))
(gimp-context-set-foreground '(0 255 255))
;vv draw bars
(while (< j numbars)
;make new layer for color bar
(define colorlayer (car(gimp-layer-new img 15 256 0 "layer 1" 100 0)))
(gimp-image-add-layer img colorlayer -1)
;add red and cyan gradiant
(gimp-edit-blend colorlayer 3 0 0 100 0 0 FALSE FALSE 1 0 TRUE 256 0 256 256)
;change hue to angle
(gimp-hue-saturation colorlayer 0 (- (* barHuerot j) 100) 0 0)
;move and rotate layer to position
(gimp-layer-translate colorlayer 512 0)
(gimp-drawable-transform-rotate colorlayer (* barrot j) FALSE 512 512 0 2 TRUE 3 0)
;flatten
(gimp-image-merge-visible-layers img 2)


(set! j (+ j 1))
)

(gimp-display-new img)

)

;register script
(script-fu-register
"SupaColorWheel" ;function name
"Supa ColorWheel" ;menu label
"Makes a Supa Color Wheel" ;description
"Eric Geusz" ;author
"copyright 2010" ;copyright notice
"FEB 23th 2010" ;date created
""
;lets player pick number of bars
SF-ADJUSTMENT "Colorbars" '(12 3 96 1 1 0 0) ;passes the number of sections to gimp
)

(script-fu-menu-register "SupaColorWheel" "<Image>Filters/IFDM/205")
----

Wednesday, February 17, 2010

Broken Hue filter

So i found out that the hue and saturation function (gimp-hue-saturation) works from -180 to 180, like it says, as in it doesn't crash. But it only rotates the hues between -100 and 100. Any number out side of that fails to receive the hue modification.

Example:

I applied the gradient to the full circle, -180 being the top, 0 being the bottom and +180 being the top as well. But as you can see it doesn't work for all angles outside of -100 or 100

Tuesday, February 16, 2010

Colorwheel with gradients



Here is the blue yellow gradient and the script

(define img (car (gimp-image-new 512 512 0)))

(define baselayer (car(gimp-layer-new img 512 512 0 "layer 1" 100 0)))
(gimp-image-add-layer img baselayer -1)

(gimp-display-new img)

(gimp-context-set-background '(255 255 0))
(gimp-context-set-foreground '(0 0 255 ))

(gimp-edit-blend baselayer 3 0 0 100 0 0 FALSE FALSE 1 0 TRUE 0 0 512 512)

Colorwheel with gradients


I didn't figure out how to make wedges but i did it another way. This way will let me make a smooth and continuous wheel where every possible hue the computer knows is represented.

gradients
Here is the script.

(define img (car (gimp-image-new 512 512 0)))

(define baselayer (car(gimp-layer-new img 512 512 0 "layer 1" 100 0)))
(gimp-image-add-layer img baselayer -1)

(gimp-display-new img)

(define i 0)

(define numrots 765)


(gimp-context-set-background '(255 255 255))
(set! i 0)
(while (< i numrots)
(define colorlayer (car(gimp-layer-new img 3 256 0 "layer 1" 100 0)))
(gimp-image-add-layer img colorlayer -1)


(if (> i -1)
(gimp-context-set-foreground '((- 255 200) 0 0))
)

(if (> i 255)
(gimp-context-set-foreground '(0 255 0))

)

(if (> i 510)
(gimp-context-set-foreground '( 0 0 255))

)

(gimp-edit-blend colorlayer 3 0 0 100 0 0 FALSE FALSE 1 0 TRUE 256 0 256 256)

(gimp-layer-translate colorlayer 256 0)
(gimp-drawable-transform-rotate colorlayer (* 0.008211150327 i) FALSE 256 256 0 2 TRUE 3 0)

(gimp-image-merge-visible-layers img 2)


(set! i (+ i 1))
)

Thursday, February 11, 2010

I found out that gimp has a python-fu console. http://www.gimp.org/docs/python/index.html
so can I write my scripts in python since we had a whole semester learning python?