 | | 
04-05-2008, 02:31 PM
|  | The Viking | | Join Date: Jul 2004 Location: Annapolis, MD
Posts: 10,703
| | | hmmmm, this may come in handy.
__________________ | 
04-06-2008, 01:38 PM
|  | ALTMAN BE PRAISED | | Join Date: Apr 2006 Location: Ohio
Posts: 4,913
| | I'm going to put together a video just showing off some of the cooler parts of the battles in this game. I've been playing around with all the stuff so far. It's complex, but simple at the same time.
Right now I've put together one clip of a nuke so far. It's more of a test than anything. I'm probably going to end up tweaking the paths, camera angles, and length of scenes a little, but I'm messing with rough ideas so far.
So here is a quick video. There is no audio, I haven't decided whether I'm going to include game audio yet or whether I'll put it against some song. The video is 1280x720, 30 FPS, and about 3 Mbps. I recommend having CoreAVC Pro and Media Player Classic installed to play the video. Download (16.4 MB)
Feel free to check it out, give comments, etc.
Here are all the steps I used to make this short clip.
Fire up World in Conflict and load a replay you want to record something from.
Drop the console and type CinCamNew _1.txt. This will create a new file where all the camera paths will be stored.
If you use my wicautoexec.cfg I posted on the last page, you can use F1-F4 to control playback speed. Basically, get to the scene you want in the game. Press I to create a keyframe. Now move the camera around and let the time advance, then press I again to place another camera. The game will automatically smooth out the camera path.
Once you have your camera path set up, press F8 to save the data to the text file.
There is no rewind ability, so if you pass up what you want, you have to drop to the menu and reload the replay.
So once you have a few camera paths set up, it's time to render them.
Start up the replay. Lower the console, type in CinCamLoad _1.txt. You should see the camera path appear on the screen.
Now here are some other console commands to type:
CinAutoRecordVideo 1
VideoRecordToTGA 1
VideoRecordingFps 120
Okay, the CinAutoRecordVideo will basically start recording once it hits the time in the demo.
VideoRecordToTGA will render the video to TGA files instead of one large AVI file. I prefer this method because it dumps a separate image frame for frame. It makes it easier to delete images or shorten the video, manipulate it all, etc.
VideoRecordingFps will render the specified amount of frames per second. For regular scenes, 30 is recommended. If you want to do a slow motion scene, record that specific clip at 120 FPS. Since this is four times the framerate, you can essentially slow the video down 4x and still have very smooth playback.
Now that you have all the images dumped, I use AviSynth scripts to set up the scenes.
This is the exact AviSynth script I used to assemble the clip above: Code: Clip1 = ImageSource("_1_0001_%05d.tga", 0, 246, 30).FlipVertical.ConvertToYV12().FadeOut(5, $FFFFFF, 30)
Clip2 = ImageSource("_2_0001_%05d.tga", 0, 90, 30).FlipVertical.ConvertToYV12().FadeIn(5, $FFFFFF, 30).FadeOut(5, $FFFFFF, 30)
Clip3 = ImageSource("_3_0001_%05d.tga", 0, 79, 30).FlipVertical.ConvertToYV12().FadeIn(5, $FFFFFF, 30).FadeOut(5, $FFFFFF, 30)
Clip4 = ImageSource("_4_0001_%05d.tga", 0, 86, 30).FlipVertical.ConvertToYV12().FadeIn(5, $FFFFFF, 30).FadeOut(5, $000000, 30)
Clip5 = ImageSource("_5_0001_%05d.tga", 0, 922, 30).FlipVertical.ConvertToYV12().FadeIn(5, $000000, 30).FadeOut(10, $000000, 30)
return Clip1+Clip2+Clip3+Clip4+Clip5
This basically applies filters and gets the scene all ready to encode.
The next set of commands to encode the video and mux it together are pretty complex. I don't really feel like explaining all the specific x264 arguments, but keep in mind that these provide the highest quality possible (aside from adjusting crf to a lower number). If you wish to sacrifice some quality for higher encoding speed, you can remove some of the arguments and lower some of the numbers. Refer to the x264 documentation for what the exact options do. My E6600 at 3GHz encodes with these settings at about 0.47 FPS.
x264 --aq-strength 1.5 --bframes 16 --b-pyramid --ref 16 --crf 25 --partitions all --weightb --me tesa --subme 7 --b-rdo --mixed-refs --8x8dct --no-fast-pskip --no-dct-decimate --trellis 2 --qpmin 0 --bime --threads auto --thread-input --progress -o video.264 input.avs
That will encode the video, now you put it in a MP4 container, and then throw it in a MKV. You can skip this step and put it in a MKV container directly. I normally do more steps here, but to simplify my instructions, just do the following.
mp4box -add video.264 -fps 30 video.mp4
mkvmerge video.mp4 -o nukeclip.mkv
Now that you have no idea what I was talking about, feel free to just download the clip and comment on it.
__________________ | 
04-07-2008, 03:03 PM
|  | ALTMAN BE PRAISED | | Join Date: Apr 2006 Location: Ohio
Posts: 4,913
| | I was messing around some more and I've been getting some amazing output with AviSynth.
I'll have another version of the previous clip up in a couple hours from this post.
Before I explain what's nice about this new video, let me explain some other video related stuff. When you watch stuff on TV, or movies, you will notice a natural form of motion blurring. This is due to shutter speed and the framerate of the film. This motion blur really hides the fact that the video is only 23.976 or 29.970 frames per second. It keeps everything looking smooth and fluid.
With video games, this is not the case. Each frame is a solid, consistent frame without motion blur. Newer games and game engines are starting to incorporate built-in motion blur, but not every game has this yet. I personally think the updated source engine has the best motion blur out of any game out right now. Anyway, because some games do not have motion blur, when you record the videos, the frames can appear "choppy" or stutter. It's not really that smooth or fluid. Recording the video at a solid 60 FPS can help reduce the stuttering that you might see, but 60 FPS isn't always ideal, especially when dealing with HD resolutions.
The solution to this is to add in your own motion blurring. There are many ways to do this, but the method I'm using looks the best to me. A lot of games have built-in modes to record videos. They often let you adjust the framerate, as well. The best way is to record the video at a very high framerate, and then use all of those frames to calculate a blur. Then you cut out all the extra frames reducing it back down to 30 FPS.
So to get into this, I recorded the video at 180 FPS. I then wrote this following script to add in motion blurring: Code: Clip1 = ImageSource("x1_0001_%05d.tga", 0, 1458, 180).FlipVertical.ConvertToYV12().Sharpen(0.2).AssumeFPS(180).FadeOut(2, $FFFFFF, 180)
Clip2 = ImageSource("_2_0001_%05d.tga", 30, 440, 180).FlipVertical.ConvertToYV12().Sharpen(0.2).AssumeFPS(180).FadeIn(3, $FFFFFF, 180).FadeOut(2, $FFFFFF, 180)
Clip3 = ImageSource("_3_0001_%05d.tga", 0, 437, 180).FlipVertical.ConvertToYV12().Sharpen(0.2).AssumeFPS(180).FadeIn(3, $FFFFFF, 180).FadeOut(2, $FFFFFF, 180)
Clip4 = ImageSource("_4_0001_%05d.tga", 68, 591, 180).FlipVertical.ConvertToYV12().Sharpen(0.2).AssumeFPS(180).FadeIn(3, $FFFFFF, 180).FadeOut(2, $FFFFFF, 180)
Clip5 = ImageSource("_5_0001_%05d.tga", 0, 2716, 180).FlipVertical.ConvertToYV12().Sharpen(0.2).AssumeFPS(180).FadeIn(3, $000000, 180).FadeOut(15, $000000, 180)
bV1 = Clip1.MVAnalyse(isb=true, truemotion=true)
fV1 = Clip1.MVAnalyse(isb=false, truemotion=true)
bV2 = Clip2.MVAnalyse(isb=true, truemotion=true)
fV2 = Clip2.MVAnalyse(isb=false, truemotion=true)
bV3 = Clip3.MVAnalyse(isb=true, truemotion=true)
fV3 = Clip3.MVAnalyse(isb=false, truemotion=true)
bV4 = Clip4.MVAnalyse(isb=true, truemotion=true)
fV4 = Clip4.MVAnalyse(isb=false, truemotion=true)
bV5 = Clip5.MVAnalyse(isb=true, truemotion=true)
fV5 = Clip5.MVAnalyse(isb=false, truemotion=true)
return Clip1.MVFlowBlur(bV1, fV1, blur=75).TemporalSoften(1, 255, 255, 50, 2).SelectEvery(6, 1)+\
Clip2.MVFlowBlur(bV2, fV2, blur=75).TemporalSoften(1, 255, 255, 50, 2).SelectEvery(6, 1)+\
Clip3.MVFlowBlur(bV3, fV3, blur=75).TemporalSoften(1, 255, 255, 50, 2).SelectEvery(6, 1)+\
Clip4.MVFlowBlur(bV4, fV4, blur=75).TemporalSoften(1, 255, 255, 50, 2).SelectEvery(6, 1)+\
Clip5.MVFlowBlur(bV5, fV5, blur=75).TemporalSoften(1, 255, 255, 50, 2).SelectEvery(6, 1)
The result of this is a very realistic motion blur that makes the video look incredibly smooth and fluid at 30 FPS.
You'll see this later when I get the video uploaded.
__________________ | 
04-07-2008, 07:25 PM
|  | ALTMAN BE PRAISED | | Join Date: Apr 2006 Location: Ohio
Posts: 4,913
| | Okay, I have the clip uploaded, but I tweaked the script above a little bit more: Code: Clip1 = ImageSource("x1_0001_%05d.tga", 0, 1458, 180).FlipVertical.ConvertToYV12().Sharpen(0.2).AssumeFPS(180).FadeOut(60, $FFFFFF)
Clip2 = ImageSource("_2_0001_%05d.tga", 30, 440, 180).FlipVertical.ConvertToYV12().Sharpen(0.2).AssumeFPS(180).FadeIn(60, $FFFFFF).FadeOut(60, $FFFFFF)
Clip3 = ImageSource("_3_0001_%05d.tga", 0, 437, 180).FlipVertical.ConvertToYV12().Sharpen(0.2).AssumeFPS(180).FadeIn(60, $FFFFFF).FadeOut(60, $FFFFFF)
Clip4 = ImageSource("_4_0001_%05d.tga", 68, 591, 180).FlipVertical.ConvertToYV12().Sharpen(0.2).AssumeFPS(180).FadeIn(60, $FFFFFF).FadeOut(60, $000000)
Clip5 = ImageSource("_5_0001_%05d.tga", 0, 2716, 180).FlipVertical.ConvertToYV12().Sharpen(0.2).AssumeFPS(180).FadeIn(60, $000000).FadeOut(450, $000000)
bV1 = Clip1.MVAnalyse(isb=true, truemotion=true)
fV1 = Clip1.MVAnalyse(isb=false, truemotion=true)
bV2 = Clip2.MVAnalyse(isb=true, truemotion=true)
fV2 = Clip2.MVAnalyse(isb=false, truemotion=true)
bV3 = Clip3.MVAnalyse(isb=true, truemotion=true)
fV3 = Clip3.MVAnalyse(isb=false, truemotion=true)
bV4 = Clip4.MVAnalyse(isb=true, truemotion=true)
fV4 = Clip4.MVAnalyse(isb=false, truemotion=true)
bV5 = Clip5.MVAnalyse(isb=true, truemotion=true)
fV5 = Clip5.MVAnalyse(isb=false, truemotion=true)
return Clip1.MVFlowBlur(bV1, fV1, blur=75).TemporalSoften(1, 255, 255, 50, 2).SelectEvery(6, 1)+\
Clip2.MVFlowBlur(bV2, fV2, blur=75).TemporalSoften(1, 255, 255, 50, 2).SelectEvery(6, 1)+\
Clip3.MVFlowBlur(bV3, fV3, blur=75).TemporalSoften(1, 255, 255, 50, 2).SelectEvery(6, 1)+\
Clip4.MVFlowBlur(bV4, fV4, blur=75).TemporalSoften(1, 255, 255, 50, 2).SelectEvery(6, 1)+\
Clip5.MVFlowBlur(bV5, fV5, blur=75).TemporalSoften(1, 255, 255, 50, 2).SelectEvery(6, 1)
Check it out here: Download (24.4 MB)
The motion blur turned out really smooth and nice. It's not over-blurred, and it's still sharp in the scenes that don't have motion. I think if I use this combination of filters and such to make a 5-minute video or so, it will be awesome.
__________________ | 
04-07-2008, 08:54 PM
| | Registered User | | Join Date: Nov 2007 Location: Ft Lewis WA
Posts: 1,565
| | | dang i really want to buy this game but i cant find it in any stores. guess im buying it online.
__________________
steam friends name: [D]viper! 275 | 
04-08-2008, 09:36 AM
|  | The Viking | | Join Date: Jul 2004 Location: Annapolis, MD
Posts: 10,703
| | maybe i should start trying to play other classes...
edit: Viper, still under 20$ at amazon
__________________ | 
04-08-2008, 10:00 AM
|  | ALTMAN BE PRAISED | | Join Date: Apr 2006 Location: Ohio
Posts: 4,913
| | Code: Infantry 10h 29min 1,277 18,733
Air 1d 29min 1,363 50,705
Armor 23h 25min 1,619 54,220
Support 14h 31min 1,411 30,322
I use Air and Armor the most. I could use some more experience with Infantry.
__________________ | 
04-09-2008, 03:00 PM
|  | ALTMAN BE PRAISED | | Join Date: Apr 2006 Location: Ohio
Posts: 4,913
| | This video motion blur stuff works with CS:S and the in-game video recorder, as well. I hopped in assault and recorded a quick 30 second clip that I'll be using as a test. This is pretty sweet. The preliminary results I did look amazing.
If this method works out really good, and if someone wants me to throw together a video with scenes you've preselected, I can probably make an amazing quality video.  When this short clip is finished being encoded, I'll upload it for people to check out.
__________________ | 
04-09-2008, 03:22 PM
|  | ALTMAN BE PRAISED | | Join Date: Apr 2006 Location: Ohio
Posts: 4,913
| | Download (8.25 MB)
Check it out. Looks good.
__________________ | 
04-14-2008, 11:05 AM
|  | ALTMAN BE PRAISED | | Join Date: Apr 2006 Location: Ohio
Posts: 4,913
| | There's a user-made map that is going to become official soon. Coming soon - New fan-made map!
Looks great, too. 
(Image hosted on Massgate)
More screenshots can be found here: Virginia map - a set on Flickr
__________________ |  | |
Posting Rules
| You may not post new threads You may not post replies You may not post attachments You may not edit your posts HTML code is Off | | | |