3D models are used for many things in UFOAI: the soldiers, aliens and their weapons and equipment; some items on maps (trees, cars, furniture, small UFOs); and some of the icons on the geoscape.
This document will introduce you to modelling for UFOAI, but the docs are still sparse on how to get your content into the game. Feel free to share your work in the forums and ask for help getting it evaluated and implemented.
We use the MD2 format, but there are many different programs you can use to create these.
You can see a list of models that are still needed in the TODO/General#Models. We can also use appropriate additions to the available soldier models. In particular, we need lots of new heads for our soldiers, and these can be an easy way to get into modelling for UFOAI.
In this game we're doing fairly hard sci-fi that has to obey at least some of the laws of physics. We want to see much more 2001: A Space Odyssey and Space: Above & Beyond style than Star Trek or Star Wars.
- a player is 56 units tall
- 8 units equals 1 foot
- therefore, player is 7 feet tall
Creating new models
There are many programs you can use to make models. Blender seems to be used by some in the forums, so if you've never modeled you're likely to be able to get help with that program in our forums. It has the added benefit of being free.
- 3DSMax / Gmax
- MilkShape 3D
The following numbers are rough guidelines for the various upper limits. They are already a bit dated now and by no means fixed rules. You can always ask a team member if your stuff will be ok.
Level of Details
We have support for LOD models for md2 and md3. md3 has built in support for several meshes and for md2 we support loading LOD models from different files from the same directory. The md2 filenames must be like this: Normal md2 file name: model.md2 => resulting LOD model name is model-lod01.md2, model->lod02.md2, model-lod03.md2. Thus we support up to four different level of details. It's also possible to only provide model-lod01.md2 and skip the others. For md3 we are doing the same but with the built in meshes.
The LOD models are using the same textures that are already uploaded and used from the main model. You also have to ensure that the frame count matches between all provided LOD models.
In 3DSMax you can use the MultiRes modifier to generate different LOD stages for your model.
- Weapons/cars/big trees 512x512px
- small plants/ammo: 256x256px
- creating higher resolution textures would be the best. The preferred size for all textures is 1024x1024. If we then need them smaller, we can scale them down, but still have the high resolution version for changes and stuff like that.
- cars: ~700tris
- big weapons: 200-500tris
- ammo: ~100tris
- characters: ~1000tris for body and ~300tris for head
- it would also be cool if you could provide different level of details for a model (different files for each lod - filenames encoded like this: filename_lod1.md2 (high res), filename_lod2.md2 (lower res), ....)
- read about the levelflags UFO:AI uses, we should be able to hide some parts of a model if it is higher than one level in UFO:AI. This is why we have split some of the existing models into several smaller ones. This way we are able to set different levelflags for each modelpart in order to hide or display them as needed. For example streetlamps should be split into two parts. As an example see models/objects/construct/crane.
- see /Skins article for more information
Testing in game
After the model is exported, you can edit the file base/ufos/seq_modelview.ufo (see pk3) and change the included examples to load your model. Once you changed it you can open the game console and type
See Character Animation.
- Blender Cookie
- Worldforge Media Repository (gpled)
- Tutorial about quake2 model editor
- Max Realms
- Free and commercial tutorials
- Tutorials for Milkscape and Cinema4D
- Create MD3 Tutorial with 3DSMax
- MD2 Information
- Modeling High/Low Poly Models for Next Gen Games
- Normal mapping
- Normal mapping
- UV-Mapping tool
- 3D modeling program that paint depths on to polygon models in real-time
- 3D Object Konverter ~440 model formats are supported
- http://ProgMesh Mesh redrucer for 3ds files
- ngPlant Open Source plant modeling package