In my last post on exporting Google Earth models into UDK, I linked to a video that covers the basic steps to export models from Google Earth into 3DSMax, using 3D Ripper DX.  Once you have the GE models in 3DS Max, complete with textures, its simple enough to export the scene as a .fbx file into UDK.  After you've worked through the process a few times, its pretty straight forward and easy to execute.  However, there are still some limitations.

  1. While the textures render okay in 3DS Max, their .dds format is not acceptable for UDK.  So, these textures have to be batch converted to an acceptable format (i.e. tga) if you wish to include them in UDK with your .fbx model.  This can be done using IrFanView Batch converter, additionally utilizing the "All Plugins" plugin to recognize .dds filetype. After IrFanView and the plugin have been installed, proceed to this video (starting around 1:15) to setup and use IrFanView to bach convert your files properly for usage in UDK.  The only exception here is that in the video he is convering .jpg textures exported from Google Sketchup.  Simply swap this workflow out for .dds textures exported from Google Earth.  The rest of the steps will be the same for our uses.  After the batch conversion is complete, you should now have 1 .tga texture for every .dds texture.  In some cases this could easily be thousands of files.  Here is where manual work comes into play.  Every tga texture needs to be imported into UDK, with a material created, and manually assigned to your model, in place of the current .dds texture assignment.  And while this is possible, it is extremely tedious if your scene has anything more than a dozen buildings, which could easily be hundreds or thousands of textures…  I went through this, and it is painful.

Luckily, a reader of this site has been working on simplfying the entire workflow, and has thus far come up with the following:

  1. Capture with 3D Ripper DX
  2. Using IrfanView’s batch conversion, convert all the .dds files in the Textures folder to .png (or .tga, or any other texture file type UDK will accept)
  3. Using a text editor, open the .mtl file in the Frames folder. Use find and replace to replace all “.dds” with “.png” or whatever file type you converted the dds files to
  4. Using a text editor, open the .obj file in the Frames folder. At the very top, type "mtllib (*FILENAME*).MTL", where *FILENAME* is whatever the filename of your .mtl file is
  5. Move all .obj, .mtl, and all the .png files into the same folder
  6. In 3DS Max, import the OBJ file.
  7. One, possibly two, .png files will be missing. Hit skip both times.
  8. Run the script (included in this zip).
  9. Run the script (included in this zip).
  10. Run the script (included in this zip).
  11. Export the scene as a .fbx file. Make sure the the Embed Media checkbox in the fbx export options is checked.
  12. In UDK, import the .fbx file. Make sure that Import Materials in the import dialogue options is checked.

This simple workflow saves so much time, its not even funny!  And as a bonus, the models will now even have rough collisions in UDK.

There is one other final thing to consider, Scale.

Setting the correct scale in 3DS Max for use in UDK

Assuming we want our Google earth models in UDK to be as close to reality as possible (in scale), we need to adjust the Unit settings in 3DS Max to match the Unit settings in UDK.  That way if we know a building is 12' tall in Maxm it will also be 12' tall in UDK.

Create dummy box in Create Pane to represent a 6’ tall person

Select Modify pane, and set the following:

  • Length: 32
  • Width: 32
  • Height: 96

Update Max Unit system settings to map to UDK scale

  • Customize > Units Setup > US Standard > Feet w/Decimal Inches > Inches 
  • In same dialog, System Unit Setup > in the “1Unit =” field press CTRL+N to open calculator.
  • Input 12/16 (12” divided by 16 Max units).  This equals 0.75.
  • Paste value into the 1 Unit = field.

Note: 3DS Max will not save these settings by default, and they will have to be re-applied everytime you open a new scene file.  Unless: 

  • Create a new scene, apply the units setup above, save the scene as "maxstart.max" to "MyDocuments>3dswMax>Scenes"
  • This will start max every time with this same scene. 
  • You can use this for units setup or anything esle like lights, geometry, etc.

This will translate 96 Units into 6’0.0”

Now that you have a proper reference, and a matching unit scale from 3DS Max to UDK, scale your captured model to match the scale of the 6' block.  In general, I found that scaling the captured model up 3 separate times (by 100000, by 100000, and by 62000) worked for me as a close enough approximation.