IW3D

A modification for Call of Duty: Modern Warfare allowing the export of COD4 player movement from demos to Blender.

Also part of this project: IW3MAP a COD4 map exporter!


Release

IW3D is now available!
With it, you'll be able to import any Call of Duty 4 demo into Blender with the corresponding plugin. IW3MAP is also included making it incredibly easy to export and import map geometry as a starting point for your 3D scene. Get it here!


I've also made a little tutorial video so you can take a look at how IW3D works:

Progress

Rewrite!

We knew for some time that we would have to go back and rework certain parts of our codebase, so we just thought to ourselves "Why don't we just start over real quick?". And that's exactly what we did!
While it might have taken quite a bit longer than it should have, we're at a point right now at which we have rewritten and reworked almost everything there is to rework. We're finally happy with the way most of the components work and are currently finishing up the last few minor issues to finally get this project out there. (22/01/2017)


Making surfaces great again

Going from a COD-engine map to a Blender-compatible set of surfaces turned out to be harder than expected, when we noticed that we would have to merge certain overlapping surfaces manually to not cause Z-fighting back in april.
For the new COD4 map exporter we had developed - called IW3MAP - we decided that we wanted to completely automate the surface-merging process.
We included some python code in the blender import plugin that merged surfaces based on a "sort key" and their respective materials. Unfortunately, this process was taking up quite some time - with some maps taking up to 2 hours to import - so we know we had to rework this sooner or later... (11/09/2017)


Map exporting

Ever since we started this project we wondered how we were supposed to get the map geometry into Blender.
After all, there's no real reason to import movement data when you don't have anything the players can walk on.

While we tried to use 3D Ripper DX in the beginning, we started noticing that even with a bunch of modifications from our side, this wasn't the right way to export maps. So we decided to start writing our own map exporter!
After a few weeks of working on it we got it into a pretty usable state... (21/08/2017)


Making an edit with IW3D

Having spent 2 weeks perfecting our workflow of importing new maps, exporting data from demos properly and fixing textures and surfaces we finally got to release BAG IT UP.
One thing you'll most definitely realise when watching the video is that 3D rendering doesn't automatically cause a 10 year old game to look like a 2017 game. The COD4 textures and models are just way too rough to look extraordinarily good in a 3D render.
With a bit of effort though, one could definitely create some stunning IW3D visuals by introducing some new models and/or textures alongside effects that utilize the 3D capabilities of Blender (or any other 3D rendering program) to their fullest. (14/06/2017)


Fixing maps

Due to the rather brute-force approach of exporting maps using D3D ripping, we end up having to fix the textures of any cod4 map we import into blender. Below you can see an example of how the maps look before and after we've fixed the surfaces.


Death-animation entity bones

Following some really stressful nights, we finally managed to get bone information for the bones on the entities that play the death animation when a player dies. Tried a lot of different things but in the end it was way easier than expected (as always). (30/05/2017)


A clip!

After a bit of tinkering with some cod-engine functions we found a way to access the viewmodel bones.
The following day we exported the bones of a promod clip by @4L3xxL and rendered a short unshaded preview. (19/05/2017)


[Follow-up] First rendered cinematic!

As mentioned in the previous post, we've rendered the first ported IW3D cinematic ever.
Rendered 5 nights in total with 2 PC's (due to our rather old graphics cards - a GTX670 + a GTX760). (11/05/2017)


First cinematic test

After finally getting bone rotations to work properly, we imported our first cinematic into blender. Screenshots of that can be found below, full render of the cinematic will be out soon (hopefully). Render times just keep increasing unfortunately... (02/05/2017)


Bones!

Some further messing around with COD4 engine functions resulted in us being able to save and load the bone positions of every player in the demo.
Visualized by the blue cubes in the video below, the bone positions already gave a good impression on how accurately the player movement could be rebuilt. Unfortunately, bone rotations were a bit harder to export and import properly without the player model looking like an alien. (28/04/2017)


POV test

Using some IW3MVM magic I managed to export the camera movement of a clip by @1Soul1337.
Did a quick 720p test-render with some quite noisy settings and overlayed the greenscreened viewmodel and hud of the demo.
Result looks a bit messy but proves that importing COD demo movement has quite a bit of potential. (21/04/2017)


Map

First step of this project is getting the desired COD4 map properly loaded into Blender. Once we finally had the undisplaced map geometry in 3D and fixed all of the texture and material issues, we took a few screenshots to see what 3D crash had to offer... (19/04/2017)


timendil's project

The reason why I started this whole project is actually a video that slykuiper sent me some time ago.
It was by a guy named timendil and showed a little project he had been working on. This was the main thing that made me think about the possibility of exporting whole cod4 demos to 3D.
Unfortunately, he doesn't seem to be around anymore, but feel free to check out the 2 videos he made on his mod.