Editing Blender To Zero-K

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 62: Line 62:
 
The core_other.dds is the tex2 file, so it is split into RGB channels and each of these channels appropriately processed and connected to the relevant part of the material.
 
The core_other.dds is the tex2 file, so it is split into RGB channels and each of these channels appropriately processed and connected to the relevant part of the material.
  
Finally the core_normals.dds contains a direct-x formatted normal map, so it is converted to an openGL format by inverting just the Green channel and is then passed through the normal calculation node to convert the image into a vector map, and then the vector map passed to the shader.
+
Finally the core_normals.dds contains a direct-x formatted normal map, so it is converted to an openGL format by inverting just the Red and Green channels and is then passed through the normal calculation node to convert the image into a vector map, and then the vector map passed to the shader.
  
 
TODO: Provide a blend file here that already has this material set up, just need to plug in textures.  Or just include atlas texture.  Airpad_packed.blend is sadly larger than 2mb so the wiki will not host it.
 
TODO: Provide a blend file here that already has this material set up, just need to plug in textures.  Or just include atlas texture.  Airpad_packed.blend is sadly larger than 2mb so the wiki will not host it.
Line 96: Line 96:
 
}</pre>
 
}</pre>
  
Obviously if you are not using the atlas textures you will need to replace those names with the actual texture files you intend to use.  There are several other things that may need to be in this file, but as these differ per-unit you will need to decide what, if anything, to provide.  You should probably also decide on a radius to set - leaving it out autogenerates a large radius covering the entire model, but for many reasons it's not always appropriate.  Examine similar units in game (ctrl-alt-B shows collision bounds, radius is the grey sphere) and match them if necessary.
+
Obviously if you are not using the atlas textures you will need to replace those names with the actual texture files you intend to use.  There are several other things that may need to be in this file, but as these differ per-unit you will need to decide what, if anything, to provide.
  
 
== Set up Zero-K mod that contains and uses your files ==
 
== Set up Zero-K mod that contains and uses your files ==
To get Zero-K to see your files and locally test your units (new or otherwise) you can use a mod, or download all the source and point your original version at it.  I will use a mod.
 
  
This is selectable in local skirmish mode (and theoretically you can distribute them to test in multiplayer) which allows you to check everything works in the engine without requiring any changes to the official repositories or a local development copy of the game - all you need is a working copy of Zero-K.  You should eventually check it works with a properly set up dev copy (and that copy can be used for many changes, if necessary) but for now a mod is simpler.
 
  
=== Making the mod ===
+
== Run Zero-K and point at your mod ==
Inside the Zero-K folder there is a games subfolder.  Inside that are numerous things, but if you make a new subfolder with a name ending in .sdd it will be read by the engine on startup.  A base mod is available to download [File:BaseMod.sdd.zip here] to build from if you would like an example.  More details on mod creation can be found here: [[Mod Creation]]
 
  
Create a mod and fill out the modinfo.lua, making sure to change the name and description so you can tell it apart when you are selecting it.  If the depends tag is listed as <nowiki>[[rapid:/zk:stable]]</nowiki> you will have to manually change it to the latest ZK version in this format:
 
<pre>depend = {
 
[[Zero-K v1.8.10.0]]
 
},</pre>
 
Update the version number appropriately.
 
  
=== File locations ===
+
== Fix whatever isn't right ==
Like many mods, the file structure downwards from the modname.sdd folder should exactly match the Zero-K internal virtual file system, and if there are any files in your mod that match names with base files, Zero-K will use your mod's file instead of the base file.
 
 
 
This allows you to selectively replace any files with whatever changed version you want, which is ideal for our purposes of testing a mod.  Any ''new'' files will also be loaded, allowing you to test entirely new units - although you may have to modify the buildoptions list of an existing factory or constructor to allow them to build your new unit.
 
 
 
<blockquote>AN IMPORTANT NOTE:
 
You should keep all of filenames and folder names lower case, as the virtual file system lowercases everything.  Double check your filenames, it needs to match exactly if you are replacing things.</blockquote>
 
 
 
=== Testing your mod ===
 
Once you have filled out your folders and files, probably (but not exclusively) using /objects3d , /units and /unittextures , you can progress to actually testing it works in-engine.
 
 
 
Load up Zero-K and go to singleplayer, then Skirmish.  The map and opponents do not especially matter, though if you are testing a lot you probably want to use an inactive AI (check through main lobby options for additional AI types if it's not there by default).
 
 
 
Go into Adv Options, and pick 'Select Mod'.  If the folder and modinfo are correct you should see your mod on the list.  If you do not, download the base mod, unzip it to the appropriate place and check if that shows up - if it does, the problem is with your mod.  If it does not, then something is probably in the wrong place.
 
 
 
Once you've selected your mod you should start the skirmish and attempt to test whatever you've actually changed.  At one point while doing this, Zero-K would not load because the interpreter for the mod's unitdef files was more strict than the main game's, so you may wish to follow the format used in the base mod (it overwrites lotus turrets) more exactly if you have this problem.
 
  
== Fix whatever isn't right ==
 
Do not expect everything to be perfect.  This is a very complicated process and something is probably broken somewhere - either way, check everything, and get used to the idea that you may have to edit, re-export, then restart the game a lot to retry with changes quite often.  Although unit definitions and such may be reloaded without quitting the game (TODO: what is the command to do this?  How reliable is it?) you should eventually restart Zero-K to do a round of final testing just to ensure that everything loads correctly from startup.
 
  
 
== The other bits ==
 
== The other bits ==
Line 178: Line 153:
  
 
<pre>
 
<pre>
buildingGroundDecalDecaySpeed = 30, --Seconds decal takes to fade out of existence
+
buildingGroundDecalDecaySpeed = 30, --Seconds decal fades in or out of existence?
buildingGroundDecalSizeX      = 12, --Size of the decal's X axis in footprint units  
+
buildingGroundDecalSizeX      = 12, --Size of decal X axis in footprint units  
buildingGroundDecalSizeY      = 12, --Size of the decal's Y axis in footprint units  
+
buildingGroundDecalSizeY      = 12, --Size of decal Y axis in footprint units  
 
buildingGroundDecalType      = [[unitname_aoplane.dds]], --filename of decal
 
buildingGroundDecalType      = [[unitname_aoplane.dds]], --filename of decal
  
Line 192: Line 167:
  
 
=== unitpic ===
 
=== unitpic ===
Unit pictures in the buildmenu are generated by an automated script.  This script lives as a Lua gadget within the Zero-K base content, so if you have your mod working you can load that up and generate a buildpic.
 
 
First, press F8 to show the debug console, then turn on cheats with /cheat (or !cheats in multiplayer, which will require host permissions.)
 
 
Then run <pre>/luarules buildicon {unitname}</pre>. You can run it with no unit name and instead buildicons if you want to generate buildicons for every unit in the game.  It should output the icons to your Zero-K folder under the /buildicons folder.  You will then have to move it to the /unitpics folder of your mod, name it appropriately, and check it works.
 
 
=== Developer mode test with full file system ===
 
 
Now is the time to test against the full developer mode run - see [[Developing]] for information on how to set that up.  Copy your files to an up to date copy of the latest source files from GitHub and check if they work there. 
 
 
Once they do you should be ready to make a pull request.  If you forked from the development version as the linked instructions suggest, you should be able to use your fork to do this.
 
 
[[category:Development]]
 

Please note that all contributions to Zero-K are considered to be released under the Creative Commons Attribution-ShareAlike (see Zero-K:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel Editing help (opens in new window)