Changes between Version 10 and Version 11 of ArtDesignDocument


Ignore:
Timestamp:
Jul 16, 2009, 1:21:11 AM (15 years ago)
Author:
Jason
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ArtDesignDocument

    v10 v11  
    1 [[TOC]]
    2 
    3 = '''__[ Artistic Theme]__''' =
    4 It is important to have a cohesive visual theme for the game.  Each piece of art will be reviewed by the art department lead and provide acceptance and feedback to the artists.  Below are topics of discussion that effects the art department and the artistic theme of the game.
    5 
    6 __Culture, History, and Realism__
     1= test =
     2= Artistic Theme =
     3It is important to have a cohesive visual theme for the game. Each piece of art will be reviewed by the art department lead and provide acceptance and feedback to the artists. Below are topics of discussion that effects the art department and the artistic theme of the game.
     4
     5Culture, History, and Realism
    76
    87The visual designs of the art in the game should hint at a deeper culture than simply what is seen on the surface. It is important that each of the civilizations have a sense of culture and history; that they have and truly did exist outside of the context of the game. The tools, homes and armor of a race should match the unique gameplay that the civilization offers.
    98
    10 An example: the Iberians (native to the peninsula of Iberia, modern day Spain and Portugal).  They are fierce defenders of their homeland.  Strength does not lie in numbers but in the skilled tactics of guerilla warfare.  The weapons given to a unit are therefore numerous and versatile.  Units often serve a dual purpose role and are equipped as such.  Their amour and garments are practical with colors alluding to their ability to camouflage with their surroundings. Their buildings are strong and practically built.
    11 
    12 History and its usage in the game are paramount.  When in doubt ask a WFG historian.
    13 
    14 Realism is always an interesting topic of discussion.  Realism, while important does take a back seat to a more important player – Gameplay. Gameplay trumps Realism when the two topics disagree.  Realism might dictate that a phalanx formation included over 500 soldiers, but gameplay only allows so many units on the screen at one time – not to mention the serious pathfinding and control issues so many units in the game would cause.  Therefore gameplay dictates that we limit the formation to 20 or so units.  Numerous examples such as this may be found in the game design discussions. We are creating a game after all, not a simulation.
    15 
    16 __Exaggeration__
    17 
    18 This, at first may seem in direct contraction to our attempt to attain realism, and that may be true. Although all the entities in the game should be based in reality that does not mean that you should disregard exaggeration. These figures featured in the game are many times larger than life.  Exaggeration in the game can best be described as a heightened sense of reality.
    19 
    20 __Phases__[[BR]] The game does not advance through Ages (like the Age of Empire series games), but rather phases of growth.  In the interests of reducing art workload, building models are not replaced''' '''with upgraded versions when a player advances from one phase to another. Therefore only one set of structure models is needed per civilization.
    21 
    22 __Citizen Soldiers'''''''''''__''''''''''
    23 
    24 Citizen soldiers are entities (units) that change appearance as they are played in the game.  They upgrade based on combat experience.  Their appearance changes when this upgrade is complete. Here is the general guide for appearance based on a unit’s rank:
     9An example: the Iberians (native to the peninsula of Iberia, modern day Spain and Portugal). They are fierce defenders of their homeland. Strength does not lie in numbers but in the skilled tactics of guerilla warfare. The weapons given to a unit are therefore numerous and versatile. Units often serve a dual purpose role and are equipped as such. Their amour and garments are practical with colors alluding to their ability to camouflage with their surroundings. Their buildings are strong and practically built.
     10
     11History and its usage in the game are paramount. When in doubt ask a WFG historian.
     12
     13Realism is always an interesting topic of discussion. Realism, while important does take a back seat to a more important player – Gameplay. Gameplay trumps Realism when the two topics disagree. Realism might dictate that a phalanx formation included over 500 soldiers, but gameplay only allows so many units on the screen at one time – not to mention the serious pathfinding and control issues so many units in the game would cause. Therefore gameplay dictates that we limit the formation to 20 or so units. Numerous examples such as this may be found in the game design discussions. We are creating a game after all, not a simulation.
     14
     15Exaggeration
     16
     17This, at first may seem in direct contraction to our attempt to attain realism, and that may be true. Although all the entities in the game should be based in reality that does not mean that you should disregard exaggeration. These figures featured in the game are many times larger than life. Exaggeration in the game can best be described as a heightened sense of reality.
     18
     19Phases[[BR]] The game does not advance through Ages (like the Age of Empire series games), but rather phases of growth. In the interests of reducing art workload, building models are not replaced with upgraded versions when a player advances from one phase to another. Therefore only one set of structure models is needed per civilization.
     20
     21Citizen Soldiers
     22
     23Citizen soldiers are entities (units) that change appearance as they are played in the game. They upgrade based on combat experience. Their appearance changes when this upgrade is complete. Here is the general guide for appearance based on a unit’s rank:
    2524
    2625 * BASIC: Economy focused, light to little or no armor
    27  * ADVANCED: Light trooper, lower/middle classed      soldier, with moderate arms
    28  * ULTIMATE / ELITE: Veteran warrior, the elite status.      They possess the best weapons and the best armor.
    29 
    30 __Player Color__'''''''''''
    31 
    32 Colors on the units should be neutral (skin tones, browns, grays, golds, bronze, etc...), because bright and saturated color will be used as a player’s color to show ownership. Player color usually is found on decorative elements of a texture.  Learn more about how to create player color in the texture and skin section of this document.
    33 
    34 __Building Shape Consistency'''''''''''__''''''''''
     26 * ADVANCED: Light trooper, lower/middle classed soldier, with moderate arms
     27 * ULTIMATE / ELITE: Veteran warrior, the elite status. They possess the best weapons and the best armor.
     28
     29Player Color
     30
     31Colors on the units should be neutral (skin tones, browns, grays, golds, bronze, etc...), because bright and saturated color will be used as a player’s color to show ownership. Player color usually is found on decorative elements of a texture. Learn more about how to create player color in the texture and skin section of this document.
     32
     33Building Shape Consistency
    3534
    3635It is important to have the building types of civilizations be roughly the same shapes for easy recognition by the players across civilizations. You will always know that a building is of a certain type because they all have some feature in common. Usually it is they way the buildings are laid out, but we also use size to make distinctions.
    3736
    38 __0 A.D. Theme__''''''''''
    39 
    40  * Above average color saturation (compared to the real      world)
     370 A.D. Theme
     38
     39 * Above average color saturation (compared to the real world)
    4140 * Contrasting - shadows and highlights within textures
    42  * Relatively realistic in terms of world/nature and      history
    43  * Humans aren't true to the real world in scale, but      exaggerated to look like humans at greater distances. Men are burly and      broad shouldered, and women are very… womanly.
    44  * Exaggerate the animations - like theatre but not to      the point of silliness. We need to make sure players know what actions      they are doing.
    45  * Exaggerate the traits of the Civs - Celts were      colorful (so in the game they will be very colorful) - Greeks had fancy      architecture (so many of their buildings will be fancier than in real      life), etc...
    46 
    47 = '''__[ File Naming Conventions]__''' =
     41 * Relatively realistic in terms of world/nature and history
     42 * Humans arent true to the real world in scale, but exaggerated to look like humans at greater distances. Men are burly and broad shouldered, and women are very… womanly.
     43 * Exaggerate the animations - like theatre but not to the point of silliness. We need to make sure players know what actions they are doing.
     44 * Exaggerate the traits of the Civs - Celts were colorful (so in the game they will be very colorful) - Greeks had fancy architecture (so many of their buildings will be fancier than in real life), etc...
     45
     46= File Naming Conventions =
    4847All filenames should follow the naming conventions described below.
    4948
    50 '''General Rules'''
     49General Rules
    5150
    5251 * No spaces in the file name are allowed
    5352 * No capital letters are allowed
    54  * XML, PMD, PSA, DDS files should use these rules.  For any file-formats not specially      mentioned here, follow similar naming rules to fit the file type.
    55  * If using numbers always use two digits. Example: 01,      not 1
    56  * Use underscore ( _ ) to separate portions of the file      name
     53 * XML, PMD, PSA, DDS files should use these rules. For any file-formats not specially mentioned here, follow similar naming rules to fit the file type.
     54 * If using numbers always use two digits. Example: 01, not 1
     55 * Use underscore ( _ ) to separate portions of the file name
    5756 * Use this order <general>_<civ>_<type>_<extra>_<variation>
    58  * If the folder path to the file already defines one      portion of the name, exclude that from the file name.
     57 * If the folder path to the file already defines one portion of the name, exclude that from the file name.
    5958
    6059Examples:
     
    6463kart_hc.pmd – Meaning: Carthaginian Health Center Model
    6564
    66 ||'''General'''[[BR]]   ui - User Interface[[BR]]   prop - prop[[BR]]   wrld – world[[BR]][[BR]]If none of the above, do not   use[[BR]]   [[BR]]   '''Civ'''[[BR]]   rome - roman[[BR]]   hele - hellenes[[BR]]   celt - celt[[BR]]   pers - persian[[BR]]   kart - carthaginians[[BR]]   iber - iberians[[BR]]   brit - britons[[BR]]   gaul - gallic[[BR]]   pole - poleis [[BR]]   mace - macedonians[[BR]]   [[BR]]   '''Extra'''[[BR]]   b - basic[[BR]]   a - advanced[[BR]]   e - elite[[BR]]   f - fall[[BR]]   s - summer[[BR]]   p - spring[[BR]]   w - winter[[BR]]   #- numbers[[BR]]   etc...||'''Type'''[[BR]]   ''__Buildings__''[[BR]]   cc - civilization center[[BR]]   ho - house[[BR]]   fc - farm center[[BR]]   fv - farm - vegetation[[BR]]   fa - corral - animal[[BR]]   rc - resource center[[BR]]   tf - free standing tower - scout tower[[BR]]   wc - wall[[BR]]   wg - wall gate[[BR]]   wt - wall tower[[BR]]   pc - port center[[BR]]   mc - military center[[BR]]   tc - trade center[[BR]]   hc - health center[[BR]]   ff - fortress[[BR]]   sb - special building [[BR]]   ''__Units__''[[BR]]   isw - infantry swordsman[[BR]]   isp - infantry spearman[[BR]]   ijv - infantry javelinist[[BR]]   isl - infantry slinger[[BR]]   iar - infantry archer[[BR]]   csw - cavalry sword[[BR]]   csp - cavalry spear[[BR]]   cjv - cavalry javelin[[BR]]   car - cavalry archer[[BR]]   fem - female worker[[BR]]   med - healer[[BR]]   trd - trader[[BR]]   sr - siege - rock thrower[[BR]]   sp - siege - spear/bolt thrower[[BR]]   sr - siege - ram[[BR]]   mer - merchantman ship[[BR]]   bir - bireme[[BR]]   tri - trireme[[BR]]   qui - quinquereme[[BR]]   su1 - super unit 1[[BR]]   su2 - super unit 2[[BR]]   su3 - super unit 3[[BR]]   hr1 - hero 1[[BR]]   hr2 - hero 2[[BR]]   hr3 - hero 3[[BR]]   scn - scenario unit||
    67 
    68 = '''__ [ Art Pipeline]__''' =
    69 The following diagram displays the basic flow of art pipeline as content is created for the game.  It starts up in the top left and is completed at the bottom right.  The remainder of this document will be used to describe these processes in more detail.  This section’s intent however is to provide you with a brief overview.
    70 
    71 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image002.gif)]]'''
    72 
    73 '''1)      Design Document'''
    74 
    75 The design document dictates the design of the game.  Game designers have pooled their efforts with the game’s historians to create a written description for every entity in the game.  This written design concept is created with the purpose of directing the concept artist.  The written design concept might refer to reference images to aid in visually describing the entity.
    76 
    77 '''2)      Concept'''
    78 
    79 Next, the written concept goes to the concept designers for their first draft. As with some things in the Art Department, there is no set limit to the number of revisions a concept designer will do to ‘get it right’. It is a hit or miss process guided by feedback from the lead until you get close or nail it on the head. Once a concept is deemed complete for the character, a front and side character design should be rendered to aid the modelers and textures.
    80 
    81 '''3)      Modeling'''
    82 
    83 Based on the concept or written description, a 3D model is then made fitting the concept as close as possible within the restraints of the modeling specifications found later in this document.  The modeling process also includes unwrapping and exporting a uvw map for use by the texture artist.
    84 
    85 '''4)      Texture'''
    86 
    87 A skin (or texture) for the 3D model is then created.  This may be created from scratch, using reference textures, or even utilizing the concept to make the best possible texture.  Close attention is made to the texture to give it a worn and used appearance.  Artificial shadows are created on the texture to fill in the details that a low poly mesh is not capable of doing.  In some cases player color or transparency is used on the texture.  In this case the alpha channel utilized to accomplish this.  More details to follow later in the document.
    88 
    89 '''5)      Rigging/Animation'''
    90 
    91 Non-static models require rigging and animation.  This is a complex process that is discussed in more detail in the Animation section.
    92 
    93 '''6)      Export'''
    94 
    95 Finally, the models and textures need to be exported and implemented into the game engine.  TGA and BMP files are converted to DDS files (if not already exported as a DDS).  DAE files are exported to the /mesh and /animation folders.
    96 
    97 '''7)      Actor'''
    98 
    99 Actor files are an XML file that defines the visual properties of an entity in the game.  These actor files in essence are the glue that puts parts together.  The file points and references the mesh, texture, and animations of a unit.  They also specify object color, player color, and shadow properties.  Any mesh or animation created won’t be recognized by the game engine unless it is referenced by an actor XML file.
    100 
    101 = '''[ CONCEPTS]''' =
    102 Concepts are very important to designing a game. One large reason is that we can all view the collective ‘vision’ behind the artwork in the game before it goes through entire art pipeline.  This gives it all a sense of collectiveness.  After-all this is one game and not a hodge-podge of artistic styles that very from individual to individual. [[BR]] [[BR]] Concepts are the foundation of the rest of the artwork that we will be doing for the game. What is created by the concept artists will move down the ‘assembly’ line to the modelers and skinners.[[BR]] [[BR]] Refer often to the civilization design documents:
     65||General[[BR]] ui - User Interface[[BR]] prop - prop[[BR]] wrld – world[[BR]][[BR]]If none of the above, do not use[[BR]] [[BR]] Civ[[BR]] rome - roman[[BR]] hele - hellenes[[BR]] celt - celt[[BR]] pers - persian[[BR]] kart - carthaginians[[BR]] iber - iberians[[BR]] brit - britons[[BR]] gaul - gallic[[BR]] pole - poleis [[BR]] mace - macedonians[[BR]] [[BR]] Extra[[BR]] b - basic[[BR]] a - advanced[[BR]] e - elite[[BR]] f - fall[[BR]] s - summer[[BR]] p - spring[[BR]] w - winter[[BR]] #- numbers[[BR]] etc...||Type[[BR]] Buildings[[BR]] cc - civilization center[[BR]] ho - house[[BR]] fc - farm center[[BR]] fv - farm - vegetation[[BR]] fa - corral - animal[[BR]] rc - resource center[[BR]] tf - free standing tower - scout tower[[BR]] wc - wall[[BR]] wg - wall gate[[BR]] wt - wall tower[[BR]] pc - port center[[BR]] mc - military center[[BR]] tc - trade center[[BR]] hc - health center[[BR]] ff - fortress[[BR]] sb - special building [[BR]] Units[[BR]] isw - infantry swordsman[[BR]] isp - infantry spearman[[BR]] ijv - infantry javelinist[[BR]] isl - infantry slinger[[BR]] iar - infantry archer[[BR]] csw - cavalry sword[[BR]] csp - cavalry spear[[BR]] cjv - cavalry javelin[[BR]] car - cavalry archer[[BR]] fem - female worker[[BR]] med - healer[[BR]] trd - trader[[BR]] sr - siege - rock thrower[[BR]] sp - siege - spear/bolt thrower[[BR]] sr - siege - ram[[BR]] mer - merchantman ship[[BR]] bir - bireme[[BR]] tri - trireme[[BR]] qui - quinquereme[[BR]] su1 - super unit 1[[BR]] su2 - super unit 2[[BR]] su3 - super unit 3[[BR]] hr1 - hero 1[[BR]] hr2 - hero 2[[BR]] hr3 - hero 3[[BR]] scn - scenario unit||
     66
     67=  =
     68= Art Pipeline =
     69The following diagram displays the basic flow of art pipeline as content is created for the game. It starts up in the top left and is completed at the bottom right. The remainder of this document will be used to describe these processes in more detail. This section’s intent however is to provide you with a brief overview.
     70
     71[[Image(http://www.wildfiregames.com/0ad/images/artspec/image002.gif)]]
     72
     73 1. Design Document
     74
     75The design document dictates the design of the game. Game designers have pooled their efforts with the game’s historians to create a written description for every entity in the game. This written design concept is created with the purpose of directing the concept artist. The written design concept might refer to reference images to aid in visually describing the entity.[[BR]]
     76 1. '''Concept''' - Next, the written concept goes to the concept designers for their first draft. As with some things in the Art Department, there is no set limit to the number of revisions a concept designer will do to ‘get it right’. It is a hit or miss process guided by feedback from the lead until you get close or nail it on the head. Once a concept is deemed complete for the character, a front and side character design should be rendered to aid the modelers and textures.
     77 1. '''Modeling''' - Based on the concept or written description, a 3D model is then made fitting the concept as close as possible within the restraints of the modeling specifications found later in this document. The modeling process also includes unwrapping and exporting a uvw map for use by the texture artist.
     78 1. '''Texture''' - A skin (or texture) for the 3D model is then created. This may be created from scratch, using reference textures, or even utilizing the concept to make the best possible texture. Close attention is made to the texture to give it a worn and used appearance. Artificial shadows are created on the texture to fill in the details that a low poly mesh is not capable of doing. In some cases player color or transparency is used on the texture. In this case the alpha channel utilized to accomplish this. More details to follow later in the document.
     79 1. '''Rigging/Animation''' - Non-static models require rigging and animation. This is a complex process that is discussed in more detail in the Animation section.
     80 1. '''Export''' - Finally, the models and textures need to be exported and implemented into the game engine. TGA and BMP files are converted to DDS files (if not already exported as a DDS). DAE files are exported to the /mesh and /animation folders.
     81 1. '''Actor '''- Actor files are an XML file that defines the visual properties of an entity in the game. These actor files in essence are the glue that puts parts together. The file points and references the mesh, texture, and animations of a unit. They also specify object color, player color, and shadow properties. Any mesh or animation created won’t be recognized by the game engine unless it is referenced by an actor XML file.
     82
     83= CONCEPTS =
     84Concepts are very important to designing a game. One large reason is that we can all view the collective ‘vision’ behind the artwork in the game before it goes through entire art pipeline. This gives it all a sense of collectiveness. After-all this is one game and not a hodge-podge of artistic styles that very from individual to individual. [[BR]] [[BR]] Concepts are the foundation of the rest of the artwork that we will be doing for the game. What is created by the concept artists will move down the ‘assembly’ line to the modelers and skinners.[[BR]] [[BR]] Refer often to the civilization design documents:
    10385
    10486 * [http://www.wildfiregames.com/forum/index.php?showtopic=365 Carthaginians]
     
    11193The historical reference site here is also useful: http://www.wildfiregames.com/users/art/history/ [[BR]] [[BR]] Here are key points to address for concepts:
    11294
    113 ·        '''Look''' - Black and white images (later colored if there is a specific point of detail that can’t be described with simply words)
    114 
    115 ·        '''Title Block''' - http://www.wildfiregames.com/users/art/titleblock.jpg . Top box is the name, version in the middle left, and date on the right, your name at the bottom.
    116 
    117 ·        '''Descriptions''' – feel free to draw arrows and write text in the image for anything you want to draw attention too
    118 
    119 ·        '''Auxiliary view '''- If there is something to relate to the modelers that you couldn’t capture in one view, feel free to sketch a picture to the side from another angle.
    120 
    121 ·        '''Citizen Soldiers '''– If it is a unit that upgrades (basic, advanced, elite) then three sketches are required.
    122 
    123 ·        '''Backup''' – Back up all your work in the art SVN in case something bad happens to your computer – compressed please (ZIP, RAR)'''''''''''
     95· Look - Black and white images (later colored if there is a specific point of detail that can’t be described with simply words)
     96
     97· Title Block - http://www.wildfiregames.com/users/art/titleblock.jpg . Top box is the name, version in the middle left, and date on the right, your name at the bottom.
     98
     99· Descriptions – feel free to draw arrows and write text in the image for anything you want to draw attention too
     100
     101· Auxiliary view - If there is something to relate to the modelers that you couldn’t capture in one view, feel free to sketch a picture to the side from another angle.
     102
     103· Citizen Soldiers – If it is a unit that upgrades (basic, advanced, elite) then three sketches are required.
     104
     105· Backup – Back up all your work in the art SVN in case something bad happens to your computer – compressed please (ZIP, RAR)
    124106
    125107These are great examples of some good concept art created for 0 A.D.
    126108
    127 The (Ultimate – the highest ranked of this citizen soldier type) Roman Triarius was drawn by Brenden Keough.  Note how he drew two different views of the unit so that there isn’t any question of what certain features that would otherwise be missed by the texture artist (like the greeves that only go halfway around the shin, and the extra detail seen in the helmet.  This unit also has a few props included with the concept to ensure that they are represented with this unit as well.  The other great thing about this concept is the detail. There is so much detail that it could actually be cut and pasted directly into a unit texture.
    128 
    129 The civil center is another fine example of a concept created by Michael Hafer.  Now this concept didn’t need to be colored because he so accurately described various features with notes.  This is perfectly acceptable and actually preferred because it is a much quicker process than coloring an entire concept. Note also his overhead image in the lower right hand corner to help show exactly where the building are positioned about the complex structure.
    130 
    131 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image003.jpg)]]'''
    132 
    133 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image004.jpg)]]'''
    134 
    135 = '''[ Models]''' =
     109The (Ultimate – the highest ranked of this citizen soldier type) Roman Triarius was drawn by Brenden Keough. Note how he drew two different views of the unit so that there isn’t any question of what certain features that would otherwise be missed by the texture artist (like the greeves that only go halfway around the shin, and the extra detail seen in the helmet. This unit also has a few props included with the concept to ensure that they are represented with this unit as well. The other great thing about this concept is the detail. There is so much detail that it could actually be cut and pasted directly into a unit texture.
     110
     111The civil center is another fine example of a concept created by Michael Hafer. Now this concept didn’t need to be colored because he so accurately described various features with notes. This is perfectly acceptable and actually preferred because it is a much quicker process than coloring an entire concept. Note also his overhead image in the lower right hand corner to help show exactly where the building are positioned about the complex structure.
     112
     113[[Image(http://www.wildfiregames.com/0ad/images/artspec/image003.jpg)]]
     114
     115[[Image(http://www.wildfiregames.com/0ad/images/artspec/image004.jpg)]]
     116
     117= Models =
    136118Models are the next stage. Models are pretty important because they form the shape of the characters in our game world. The key to our models (because this is a full 3d game) is to rely on our skins for the details of the objects in the world and not the geometry. The industry buzz word for this is ‘low poly’. We will try to keep our polygon (tri) count down as low as possible. We can do to this by taking advantage of the opacity maps, removing polygons nobody will ever see (bottom polys), and relying on the skin for detail.[[BR]] [[BR]] Here is what I’m looking for in models:
    137119
    138  * '''Poly counts '''- Low as possible! Here are the suggestions:[[BR]]      ''Humanoid Bodies'' – 500[[BR]]      ''Animal Bodies'' – 700[[BR]]      ''Humanoid and Building Props'' – 50[[BR]]      ''World Objects'' – 150[[BR]]      ''Buildings'' – 800
    139  * '''Unwrapping '''- Unwrap your own 3d models as best      you can – they can be tweaked by the skinner later, but don’t force the      skinners to do your job for you.
    140  * '''Formats''' – *.max or *.3ds is preferred in a      zipped file uploaded to your art FTP – Contact me about other formats.      Final approved file will be exported as a *.pmd (Pyrogenesis model data).
    141  * '''Scale''' – See the http://www.wildfiregames.com/forum/index.php?showtopic=793.      Builidngs/trees are about 2/3rds the scale of humans. Props should match      the scale of humans.
    142  * '''Joints''' – if you unit is going to be animated,      make sure there is enough vertexes around the joint to bend with minimal      distortion.
    143  * '''Think Ahead! '''– Try to imagine how you would      skin the model and use opacity maps where you can.
    144  * '''Backup''' – Backup all your work in the art SVN      in case something bad happens to your computer – compressed please (ZIP or      RAR)
    145  * '''Needed Files''' - .pmd export plugin for R6 [http://www.wildfiregames.com/%7Eart/pmdexp6.rar http://www.wildfiregames.com/~art/pmdexp6.rar]
    146 
    147 = '''__[ 3D Tools]__''' =
    148 3D Studio Max release 6.0 and above is the recommended 3D modeler and animation package used for the Pyrogenesis Engine.  Pyrogenesis models in the game are defined by custom file formats PMD (Pyrogenesis Model Data) and PSA (Pyrogenesis Animation).  See Appendix A and B for more details describing these formats.  The development pipeline previously used a custom export 3d Studio Max plug-in that exported files in these formats. However, the game now supports COLLADA’s DAE files which allow users to create content in a variety of software programs
     120 * Poly counts - Low as possible! Here are the suggestions:[[BR]] Humanoid Bodies – 500[[BR]] Animal Bodies – 700[[BR]] Humanoid and Building Props – 50[[BR]] World Objects – 150[[BR]] Buildings – 800
     121 * Unwrapping - Unwrap your own 3d models as best you can – they can be tweaked by the skinner later, but don’t force the skinners to do your job for you.
     122 * Formats – *.max or *.3ds is preferred in a zipped file uploaded to your art FTP – Contact me about other formats. Final approved file will be exported as a *.pmd (Pyrogenesis model data).
     123 * Scale – See the http://www.wildfiregames.com/forum/index.php?showtopic=793. Builidngs/trees are about 2/3rds the scale of humans. Props should match the scale of humans.
     124 * Joints – if you unit is going to be animated, make sure there is enough vertexes around the joint to bend with minimal distortion.
     125 * Think Ahead! – Try to imagine how you would skin the model and use opacity maps where you can.
     126 * Backup – Backup all your work in the art SVN in case something bad happens to your computer – compressed please (ZIP or RAR)
     127 * Needed Files - .pmd export plugin for R6 [http://www.wildfiregames.com/%7Eart/pmdexp6.rar http://www.wildfiregames.com/~art/pmdexp6.rar]
     128
     129= 3D Tools =
     1303D Studio Max release 6.0 and above is the recommended 3D modeler and animation package used for the Pyrogenesis Engine. Pyrogenesis models in the game are defined by custom file formats PMD (Pyrogenesis Model Data) and PSA (Pyrogenesis Animation). See Appendix A and B for more details describing these formats. The development pipeline previously used a custom export 3d Studio Max plug-in that exported files in these formats. However, the game now supports COLLADA’s DAE files which allow users to create content in a variety of software programs
    149131
    150132Recommended 3D software options:
     
    164146[http://en.wikipedia.org/wiki/Gmax Gmax] (export W3D, import W3D into 3dsmax)
    165147
    166 = '''__[ COLLADA EXPORT]__''' =
     148= COLLADA EXPORT =
    167149Note: Currently this has only been tested with 3ds Max. Some work may be needed to support other programs.
    168150
    169 '''Blender'''
    170 
    171  * In      Blender, select the "Triangles" option in the exporter, and make      sure it's only exporting one mesh (e.g. with "Only Export      Selection").
    172 
    173 '''3ds Max'''
    174 
    175  * Download      and install !ColladaMax, from [http://www.feelingsoftware.com/ Feeling Software] (registration required) or from [http://wildfiregames.com/users/code/libraries/ColladaMax_302.exe our site] (version 3.02). Requires 3ds Max 9, 8, or 7 SP1.
    176  * Open/create      a model in Max. If it is a skeletal model, it should have our standard      structure and be named Bip01.
    177  * If      there is more than one mesh in the scene, you need to indicate which one      should be exported:
    178  * Either:      select one of the meshes, then do File -> Export Selected (and remember      to select the right mesh each time you export);
    179  * or      open the Properties dialog for one of the meshes, and set the User Defined      Properties to export, and then do File -> Export. The other meshes will      still be exported, but ignored when loaded into the game.
    180  * When      selecting the filename to export, specify the lowercase extension .dae.      The default is uppercase, which won't work.
    181  * Place      the file into the game in the same way as you would with PMD or PSA files      (in the /meshes and /animations directories, respectively).
    182  * Actors      can point to the .dae file as a mesh or animation, and the game will load      them automatically. If there are problems while loading, the game's log      file (binaries/logs/mainlog.html) should say what was going on.
    183 
    184 '''XSI'''
    185 
    186  * Use      XSI 6.0.
    187  * For      skeletal models/animations:
    188  * Rename      the skeleton to Biped (so the root object is called Biped_GlobalSRT), so      the game knows what skeleton structure to use.
    189  * Export      with File -> Crosswalk -> Export -> Format = COLLADA 1.4.1.
    190  * Enable      Export XSI Normals. Enable Convert Geometry to Triangles if the mesh is      not already triangles.
    191 
    192 '''General'''
    193 
    194  * The      animation should be 30fps. The first and last frames of the animation      should be identical. The animation should play at the speed you would      expect to use in the game.
    195  * Any      object attached directly to the skeleton will be treated as a prop point.      If you want to add extra objects for testing the animation, link them to      the existing prop points instead of to the skeleton.
    196  * Meshes      must be made of triangles.
    197  * There      may be some issues with scaling and rotating the skeleton - please provide      any relevant information you find about problems or solutions.
    198  * Prop      points should be defined by creating an object (e.g. a Dummy helper in 3ds      Max) named prop-whatever, where the whatever is the name of the prop      point. The file data/tools/atlas/lists.xml lists the standard prop      attachment points. That object should then be attached to a bone.
    199 
    200 = '''__[ PYROGENESIS IMPORT/EXPORT]__''' =
    201 This plug-in is only tested to work on 3ds Max Release 6[[BR]] [[BR]] You may download from here:[[BR]] http://www.wildfiregames.com/users/art/pmdexp6.rar [[BR]] [[BR]] Essentially this tool allows users to export PMD (Pyrogenesis Model Data) and PSA (Pyrogenesis Animation) files directly from 3ds Max R6.  This process skips the exporting of a DAE (COLLADA) file that is later converted to a PMD or PSA file in the future.  This method is not preferred. The tool is broken in that it does not blend weighted vertexes in animation, it also only allows biped/physique methods to animation (bones/skin do not work).
    202 
    203 1.      '''Function:''' Creates Prop points [[BR]] '''Access:''' In the Command Panel - Create => Helpers => PS Helpers => Prop Point[[BR]] '''Extra:''' Export with the .pmd file, modify the name as desired, but precede with “prop-“, example prop-r_hip
    204 
    205 2.      '''Function:''' Export .pmd files [[BR]] '''Access:''' File => Export or File => Export Selected[[BR]] '''Extra:''' Select mesh and any props and export[[BR]] Don't forget to save the file in all lower case
    206 
    207 3.      '''Function:''' Export .psa files [[BR]] '''Access:''' File => Export or File => Export Selected[[BR]] '''Extra:''' Select the bip node and export[[BR]] Don't forget to save the file in all lower case
     151Blender
     152
     153 * In Blender, select the "Triangles" option in the exporter, and make sure it's only exporting one mesh (e.g. with "Only Export Selection").
     154
     1553ds Max
     156
     157 * Download and install !ColladaMax, from [http://www.feelingsoftware.com/ Feeling Software] (registration required) or from [http://wildfiregames.com/users/code/libraries/ColladaMax_302.exe our site] (version 3.02). Requires 3ds Max 9, 8, or 7 SP1.
     158 * Open/create a model in Max. If it is a skeletal model, it should have our standard structure and be named Bip01.
     159 * If there is more than one mesh in the scene, you need to indicate which one should be exported:
     160 * Either: select one of the meshes, then do File -> Export Selected (and remember to select the right mesh each time you export);
     161 * or open the Properties dialog for one of the meshes, and set the User Defined Properties to export, and then do File -> Export. The other meshes will still be exported, but ignored when loaded into the game.
     162 * When selecting the filename to export, specify the lowercase extension .dae. The default is uppercase, which wont work.
     163 * Place the file into the game in the same way as you would with PMD or PSA files (in the /meshes and /animations directories, respectively).
     164 * Actors can point to the .dae file as a mesh or animation, and the game will load them automatically. If there are problems while loading, the game's log file (binaries/logs/mainlog.html) should say what was going on.
     165
     166XSI
     167
     168 * Use XSI 6.0.
     169 * For skeletal models/animations:
     170 * Rename the skeleton to Biped (so the root object is called Biped_GlobalSRT), so the game knows what skeleton structure to use.
     171 * Export with File -> Crosswalk -> Export -> Format = COLLADA 1.4.1.
     172 * Enable Export XSI Normals. Enable Convert Geometry to Triangles if the mesh is not already triangles.
     173
     174General
     175
     176 * The animation should be 30fps. The first and last frames of the animation should be identical. The animation should play at the speed you would expect to use in the game.
     177 * Any object attached directly to the skeleton will be treated as a prop point. If you want to add extra objects for testing the animation, link them to the existing prop points instead of to the skeleton.
     178 * Meshes must be made of triangles.
     179 * There may be some issues with scaling and rotating the skeleton - please provide any relevant information you find about problems or solutions.
     180 * Prop points should be defined by creating an object (e.g. a Dummy helper in 3ds Max) named prop-whatever, where the whatever is the name of the prop point. The file data/tools/atlas/lists.xml lists the standard prop attachment points. That object should then be attached to a bone.
     181
     182= PYROGENESIS IMPORT/EXPORT =
     183This plug-in is only tested to work on 3ds Max Release 6[[BR]] [[BR]] You may download from here:[[BR]] http://www.wildfiregames.com/users/art/pmdexp6.rar [[BR]] [[BR]] Essentially this tool allows users to export PMD (Pyrogenesis Model Data) and PSA (Pyrogenesis Animation) files directly from 3ds Max R6. This process skips the exporting of a DAE (COLLADA) file that is later converted to a PMD or PSA file in the future. This method is not preferred. The tool is broken in that it does not blend weighted vertexes in animation, it also only allows biped/physique methods to animation (bones/skin do not work).
     184
     1851. Function: Creates Prop points [[BR]] Access: In the Command Panel - Create => Helpers => PS Helpers => Prop Point[[BR]] Extra: Export with the .pmd file, modify the name as desired, but precede with “prop-“, example prop-r_hip
     186
     1872. Function: Export .pmd files [[BR]] Access: File => Export or File => Export Selected[[BR]] Extra: Select mesh and any props and export[[BR]] Dont forget to save the file in all lower case
     188
     1893. Function: Export .psa files [[BR]] Access: File => Export or File => Export Selected[[BR]] Extra: Select the bip node and export[[BR]] Dont forget to save the file in all lower case
    208190
    209191Currently you must center the mesh to the origin of the world before you export it (X=0, Y=0, Z=0); as it retains its global position when exported from Max, which moves the mesh to some undesired position in the game.[[BR]] [[BR]] Helpful hints while using the PMD/PSA plug-in and usage in 3ds Max:
    210192
    211  * Save      the prop helper with the PMD
    212  * Don't      need to save the prop helper with the PSA
    213  * Save      BHP files to transfer animations to another biped
    214  * Need      to include the hip/bip node in the PSA
    215  * It      matters what bone the prop is attached to when you export the PMD.
    216  * You      don't have to have it in the default pose when you export the PMD.
    217  * You      must NOT be in figure mode when you export the PMD.
    218  * Mirroring      does weird things
    219  * PSprop      Z points up generally
    220  * PSprop      X points right generally
    221  * PSprop      Y points back generally
    222  * Can      put UVW modifier on top of Physique
    223  * Can      modify poly under Physique (triangulation and smoothing groups)
    224  * Layers      of animation work nicely to slightly alter a motion
    225 
    226 = '''__[ OTHER 3DS MAX]__''' =
     193 * Save the prop helper with the PMD
     194 * Dont need to save the prop helper with the PSA
     195 * Save BHP files to transfer animations to another biped
     196 * Need to include the hip/bip node in the PSA
     197 * It matters what bone the prop is attached to when you export the PMD.
     198 * You dont have to have it in the default pose when you export the PMD.
     199 * You must NOT be in figure mode when you export the PMD.
     200 * Mirroring does weird things
     201 * PSprop Z points up generally
     202 * PSprop X points right generally
     203 * PSprop Y points back generally
     204 * Can put UVW modifier on top of Physique
     205 * Can modify poly under Physique (triangulation and smoothing groups)
     206 * Layers of animation work nicely to slightly alter a motion
     207
     208= OTHER 3DS MAX =
    2272093D Studio Max, while powerful, does have useful additional features/settings that may be added to the default installation and prove to be helpful for creating art content.
    228210
    229 '''Texporter''' - A useful plug-in by Cuneyt Ozdas, Texporter allows UV maps to be exported from 3DS Max as a bitmap. Then use this template for texturing in Photoshop or similar 2D paint program. Download from !http://www.cuneytozdas.com/software/ Install texporter3.dlu in the 3dsmax/plugins folder
    230 
    231 '''MAX2OBJ and OBJ2MAX''' - These plug-ins were created by Harald A. Blab.  They were useful in previous versions of 3ds Max that did not have the functionality of importing and exporting OBJ files.  MAX2OBJ generates an Alias|Wavefront OBJ and MTL file from a 3DS Max scene.  OBJ2MAX imports Alias|Wavefront OBJ and MTL files into 3DS Max. This version adds new options handling pivot points and OBJ smooth group import. If the importer crashes, do not use normals on import.  This is useful for earlier versions of max to communicate with other software programs and retain more detail than a 3DS file is able to. OBJ’s, as mentioned, are capable of retaining smoothing groups.
    232 
    233 '''SCRIPTS''' – There are a few scripts I’ve included that are useful.
    234 
    235   '''orientator.ms''' – this script is really useful for props.  It allows you to quickly orientate one object to the same orientation as another (matching both position and rotation).  For example, you can select a sword, and quickly snap it to the position of the hand prop point helper. Once it is in position you are able to parent it to the point to move with it throughout animation.
    236 
    237   '''rotaterzero.ms''' – this script quickly zeros out the rotation in x, y, and z. Useful just prior to exporting.
    238 
    239   '''zero.ms''' - this script quickly zeros out the position in x, y, and z. Useful just prior to exporting.
    240 
    241   '''Clear materials''' – I haven’t created a script for this, but you can simply paste this into the max command bar and it will remove all the materials of the selection.  '''$*.material=undefined   '''This is useful to export a file and avoid other receiving errors that they are unable to find textures or materials.
    242 
    243 = '''__[ Scale and PROPORTIONS]__''' =
    244 Proportions in the game, in general, will not be true to the real world.  Humans will take on the proportions of a hero.  Animals will be formed with a slightly exaggerated eye. Structures in comparison to units will be roughly ¾ the size (though roughly 7/8 scale is given to windows and doors to aid in the transitional illusion of scale)
    245 
    246 Scale is defined as thus:  Height of a Man ≈ 2 meters = 4 generic units in 3ds Max = 1 square tile width in Pyrogenesis.
    247 
    248 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image005.gif)]]'''
     211Texporter - A useful plug-in by Cuneyt Ozdas, Texporter allows UV maps to be exported from 3DS Max as a bitmap. Then use this template for texturing in Photoshop or similar 2D paint program. Download from !http://www.cuneytozdas.com/software/ Install texporter3.dlu in the 3dsmax/plugins folder
     212
     213MAX2OBJ and OBJ2MAX - These plug-ins were created by Harald A. Blab. They were useful in previous versions of 3ds Max that did not have the functionality of importing and exporting OBJ files. MAX2OBJ generates an Alias|Wavefront OBJ and MTL file from a 3DS Max scene. OBJ2MAX imports Alias|Wavefront OBJ and MTL files into 3DS Max. This version adds new options handling pivot points and OBJ smooth group import. If the importer crashes, do not use normals on import. This is useful for earlier versions of max to communicate with other software programs and retain more detail than a 3DS file is able to. OBJ’s, as mentioned, are capable of retaining smoothing groups.
     214
     215SCRIPTS – There are a few scripts I’ve included that are useful.
     216
     217  orientator.ms – this script is really useful for props. It allows you to quickly orientate one object to the same orientation as another (matching both position and rotation). For example, you can select a sword, and quickly snap it to the position of the hand prop point helper. Once it is in position you are able to parent it to the point to move with it throughout animation.
     218
     219  rotaterzero.ms – this script quickly zeros out the rotation in x, y, and z. Useful just prior to exporting.
     220
     221  zero.ms - this script quickly zeros out the position in x, y, and z. Useful just prior to exporting.
     222
     223  Clear materials – I haven’t created a script for this, but you can simply paste this into the max command bar and it will remove all the materials of the selection. $*.material=undefined This is useful to export a file and avoid other receiving errors that they are unable to find textures or materials.
     224
     225= Scale and PROPORTIONS =
     226Proportions in the game, in general, will not be true to the real world. Humans will take on the proportions of a hero. Animals will be formed with a slightly exaggerated eye. Structures in comparison to units will be roughly ¾ the size (though roughly 7/8 scale is given to windows and doors to aid in the transitional illusion of scale)
     227
     228Scale is defined as thus: Height of a Man ˜ 2 meters = 4 generic units in 3ds Max = 1 square tile width in Pyrogenesis.
     229
     230[[Image(http://www.wildfiregames.com/0ad/images/artspec/image005.gif)]]
    249231
    250232Structure footprint scale (in tiles) is as follows:
    251233
    252 ||'''VILLAGE PHASE STRUCTURES'''[[BR]][[BR]][[BR]] * 5x5 - Civic Centre (Village Centre=>Town        Centre=>City Centre)[[BR]] * 2x2 - House[[BR]] * 3x3 - Farmstead[[BR]] * 3x6 - Field[[BR]] * 3x6 - Corral[[BR]] * 3x3 - Mill[[BR]] * 1x1 - Outpost[[BR]] * 1x4 - Wall Section[[BR]] * 1x1 – Tower[[BR]] * 1x2 - Gate||''' '''[[BR]][[BR]]''' '''[[BR]][[BR]]'''TOWN PHASE STRUCTURES'''[[BR]][[BR]][[BR]] * 4x4 - Dock[[BR]] * 4x4 - Market[[BR]] * 4x4 - Barracks[[BR]] * 3x3 – Temple[[BR]][[BR]]'''CITY PHASE STRUCTURES'''[[BR]][[BR]][[BR]] * 5x5 – Fortress||
    253 
    254 = '''__ [ Polygon Count Limits]__''' =
     234||VILLAGE PHASE STRUCTURES[[BR]][[BR]][[BR]] * 5x5 - Civic Centre (Village Centre=>Town Centre=>City Centre)[[BR]] * 2x2 - House[[BR]] * 3x3 - Farmstead[[BR]] * 3x6 - Field[[BR]] * 3x6 - Corral[[BR]] * 3x3 - Mill[[BR]] * 1x1 - Outpost[[BR]] * 1x4 - Wall Section[[BR]] * 1x1 – Tower[[BR]] * 1x2 - Gate||[[BR]][[BR]] [[BR]][[BR]]TOWN PHASE STRUCTURES[[BR]][[BR]][[BR]] * 4x4 - Dock[[BR]] * 4x4 - Market[[BR]] * 4x4 - Barracks[[BR]] * 3x3 – Temple[[BR]][[BR]]CITY PHASE STRUCTURES[[BR]][[BR]][[BR]] * 5x5 – Fortress||
     235
     236= [Polygon Count Limits =
    255237Pyrogenesis supports real time strategy games. RTS games have large numbers of entities on the screen at one time at a small scale. Due to this small scale, the total polygon limits are rather low compared to the average first person shooter. This is a list of recommended max poly counts for 3D Modelers to take into account with making 3D models.
    256238
    257 ''Humanoid Bodies'' – 500[[BR]] ''Animal Bodies'' – 700[[BR]] ''Humanoid and Building Props'' – 50[[BR]] ''World Objects'' – 150[[BR]] ''Buildings'' – 800
    258 
    259 Note: Engine DOES NOT support Double-Sided polys - don`t use them.  If double sided polys are required, duplicate geometry must be created with the normals flipped.
    260 
    261 = '''__[ LEVEL OF DETAIL]__'''''''' =
     239Humanoid Bodies – 500[[BR]] Animal Bodies – 700[[BR]] Humanoid and Building Props – 50[[BR]] World Objects – 150[[BR]] Buildings – 800
     240
     241Note: Engine DOES NOT support Double-Sided polys - don`t use them. If double sided polys are required, duplicate geometry must be created with the normals flipped.
     242
     243= LEVEL OF DETAIL =
    262244Because the models in the game will be small on screen and because the poly counts must be kept low, anything smaller than a human hand should not be modeled but included in texturing.
    263245
    264 = '''__[ ORIENTATION]__''' =
     246= ORIENTATION =
    265247The orientation of models in the game follows standard max views. When viewing from the max Front view it would display the front facing view of the model. In other words, the model should be looking along the negative Y axis.
    266248
    267 = '''__[ PROPS]__''' =
    268 Pyrogenesis uses a system that is called propping. It is also defined in the computer world as a parent/child or master/slave relationship. In 0 A.D. we call it a body/prop relationship.  Props are objects that are separated from the parent and have the ability to be used independently in whatever circumstance deemed fit.
    269 
    270 They are ‘attached’ in the actual game by the engine by a designation in an XML file. Every bone in a skeleton is capable of having a prop point attached to it as a child.  That prop point is a ‘node’ that can be identified in an XML file and a prop may be assigned to that node. The prop orientates and positions itself to the prop point node in the game. The prop follows the movement (if any) of the bone it was attached to.
    271 
    272 The advantage this gives us is versatility and variety.  It also cuts down on the downloaded size of the game. Instead of making 200 totally unique units, we simply create 8 basic shared body types, 50 or so props, create unique skins, and create combinations of these basic elements to allow for a host of options to developers and gamers/modders! This proves to be a very versatile system for creating content for the 0 A.D. world. To reiterate, armor and weapons are not to be included in the base mesh of the unit except under very special circumstances (we have yet to see it, but never say never).
     249= PROPS =
     250Pyrogenesis uses a system that is called propping. It is also defined in the computer world as a parent/child or master/slave relationship. In 0 A.D. we call it a body/prop relationship. Props are objects that are separated from the parent and have the ability to be used independently in whatever circumstance deemed fit.
     251
     252They are ‘attached’ in the actual game by the engine by a designation in an XML file. Every bone in a skeleton is capable of having a prop point attached to it as a child. That prop point is a ‘node’ that can be identified in an XML file and a prop may be assigned to that node. The prop orientates and positions itself to the prop point node in the game. The prop follows the movement (if any) of the bone it was attached to.
     253
     254The advantage this gives us is versatility and variety. It also cuts down on the downloaded size of the game. Instead of making 200 totally unique units, we simply create 8 basic shared body types, 50 or so props, create unique skins, and create combinations of these basic elements to allow for a host of options to developers and gamers/modders! This proves to be a very versatile system for creating content for the 0 A.D. world. To reiterate, armor and weapons are not to be included in the base mesh of the unit except under very special circumstances (we have yet to see it, but never say never).
    273255
    274256Here are some examples of props: helmets, weapons, shields, capes, quivers, pottery, barrels, baskets, vegetation.
    275257
    276 = '''__[ PROPping with pyrogenesis 3ds max plugin]__'''''''' =
     258= PROPping with pyrogenesis 3ds max plugin =
    277259This tutorial teaches on how to use the Prometheus 3ds Max propping tools. This will enable you to use the propping feature while doing your modding for 0 A.D. Well, if we are going to work with 3ds Max, we are going to need a plug-in and you can download that [http://www.wildfiregames.com/%7Eart/pmdexp6.rar HERE].
    278260
     
    285267So, what is a prop? Well a prop is an actor with its own attributes and behaviours. In this example, here is a a better view of the above images that shows what in the image are props:
    286268
    287 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image008.jpg)]]'''
     269[[Image(http://www.wildfiregames.com/0ad/images/artspec/image008.jpg)]]
    288270
    289271We have a crate, barrel, anvil, dummy, shield, windows, door trim, and a chimney. Now, in the game, we can create multiple prop points. This can be useful because you could add variety with a random function that swaps out prop actors with every new entity created in the game. So, for example, with this one, we could have that shield actor switch out with a collection of shield props. However, for the purpose of this tutorial we will consider this collection of props as one prop.
     
    291273So lets get started!
    292274
    293 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image010.gif)]]'''
     275[[Image(http://www.wildfiregames.com/0ad/images/artspec/image010.gif)]]
    294276
    295277This is how the building looks on our 0 A.D. max file template. You can see the building is properly scaled for a 3x3 tile size and all the props are so far unique actors. Even though the props are separate objects (at the moment), they are sharing the same textures. Again, if a prop has a separate texture, it must be attached separately with its own prop point. Here is the texture that these props are skinned with:
    296278
    297 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image009.jpg)]]'''
     279[[Image(http://www.wildfiregames.com/0ad/images/artspec/image009.jpg)]]
    298280
    299281The first thing we want to do is get everything orientated in one common location. The reason being is that each prop is anchored by a prop point. When we export the prop object, its orientation is based off its local axis. So, the idea is - we need the prop objects pre-positioned to ensure proper alignment in the game.
    300282
    301 ||'''Step 1 - Attaching'''[[BR]][[BR]] [[BR]][[BR]]The next step is to select the structure and attach all [[BR]]   the props:[[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image011.gif)]]'''[[BR]][[BR]][[BR]][[BR]] [[BR]][[BR]] [[BR]][[BR]]You will see the following menu pop up, just hit OK.[[BR]][[BR]] [[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image012.gif)]]'''||'''Step 2 - Pivot   Placement'''[[BR]][[BR]] [[BR]][[BR]]Now, all your props will be included in one object. We [[BR]]   next should move our object to the centre of the 3dsmax world. In order to do   that we need to make sure our pivot point is in the correct location.[[BR]][[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image013.gif)]]'''[[BR]][[BR]][[BR]]Click   on the hierarchy tab, then click the pivot button, then the "Affect   Pivot Only" button.[[BR]][[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image014.gif)]]'''[[BR]][[BR]][[BR]]Centre   your pivot (X,Y) to the centre of your structure (or where you want it to be   anchored in the game).[[BR]][[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image015.gif)]]'''[[BR]][[BR]][[BR]]The Z   is a bit different; we want to position this to the bottom of the structure.   If we put it in the middle, then your structure would be 'buried' halfway in   the game's terrain. Not good.[[BR]][[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image016.gif)]]'''[[BR]][[BR]][[BR]]Ok, you're now done moving your pivot. Turn off the   'Affect Pivot Only' button.||
    302 
    303 ||'''Step 3 - Detaching'''[[BR]][[BR]] [[BR]][[BR]]Now, let's move our structure to the centre of the world.   You can do this by just inputting zeros in the world coordinates at the   bottom of the screen.[[BR]][[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image017.gif)]]'''[[BR]][[BR]][[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image018.gif)]]'''[[BR]][[BR]]The   next step is to separate the props again from the object. So first we select   all the prop objects like this image to the left.[[BR]][[BR]] Then we detach them.[[BR]][[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image019.gif)]]'''[[BR]][[BR]][[BR]]A new window will pop up.[[BR]][[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image020.gif)]]'''[[BR]][[BR]][[BR]]I'm going to go ahead and properly name it right here.[[BR]][[BR]] While I'm at it, I'll go ahead and properly name the   structure too.[[BR]][[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image021.gif)]]'''||'''Step 4 - Setting   the Prop Point'''[[BR]][[BR]] [[BR]][[BR]]Now, it's time to work with the prop point. First, we need   to create one.[[BR]][[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image022.gif)]]'''[[BR]][[BR]][[BR]]Click on the 'create' tab, then the helper object button, [[BR]]   then scroll down and you will see a choice of 'PS Helpers'. Select that.[[BR]][[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image023.gif)]]'''[[BR]][[BR]][[BR]]Now our prop tab looks a bit different. Go ahead and place   a prop point. Once you place it, it will look like this:[[BR]][[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image024.gif)]]'''||
    304 
    305 ||'''Step 5 - Exporting'''[[BR]][[BR]] [[BR]][[BR]]It is time to export! select both the prop point and the [[BR]]   structure.[[BR]][[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image025.gif)]]'''[[BR]][[BR]] [[BR]][[BR]]Go to File => Export Selected[[BR]][[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image026.gif)]]'''[[BR]][[BR]] [[BR]][[BR]]Now go ahead and export your structure.[[BR]][[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image027.gif)]]'''[[BR]][[BR]] [[BR]][[BR]]And that's it! You just exported an object with a prop   point included! Repeat the same export for the prop point.||'''Step 6 - xml code'''[[BR]][[BR]] [[BR]][[BR]]You're all done in 3dmax. Now it is time to look at the [[BR]]   xml code.[[BR]][[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image028.gif)]]'''[[BR]][[BR]][[BR]][[BR]] [[BR]][[BR]]In this code snippet:[[BR]][[BR]] [[BR]][[BR]]We have given it the proper name (the name that will   appear in Atlas). We are also pointing to the newly created *.pmd file. We   call up the texture.[[BR]][[BR]]We name the prop point and tell it what actor is supposed   to go there.[[BR]][[BR]] [[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image029.gif)]]'''[[BR]][[BR]][[BR]] [[BR]][[BR]]In this code snippet:[[BR]][[BR]] [[BR]][[BR]]We have given it the proper name (that will be 'called up'   by the code above). We are also pointing to the newly created PMD file. We   call up the texture.[[BR]][[BR]] [[BR]][[BR]]'''Summary'''[[BR]][[BR]] [[BR]][[BR]]The tutorial above probably has some unneeded steps, but   for the beginner, this is a good way to start. You will find yourself   refining your procedures with experience.||
    306 
    307 = ''' [ Skins and Textures]''' =
    308 This is such a critical topic because it is the texture of a skin that really gives the game its ‘look’. 0 A.D.’s theme could be described as a hyper-realistic look. This is a historical game and not a fantasy or futuristic game. Our colors will be slightly more saturated than the real world. We also want to reflect the ‘realness’ of our world by NOT making things look totally new like you just purchased them off a store shelf, but rather: used, weathered, worn, ‘real’.  It is very important to follow the concept, do not make creative liberties.  The concept has been approved by the art department lead and the historian, your idea in your creative mind has not been.  Make sure the viewer always knows what they are looking at.  Also, pay particular note to details!  The more detail that can be added to a texture, the better.
     283||Step 1 - Attaching[[BR]][[BR]] [[BR]][[BR]]The next step is to select the structure and attach all [[BR]] the props:[[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image011.gif)]][[BR]][[BR]][[BR]][[BR]] [[BR]][[BR]] [[BR]][[BR]]You will see the following menu pop up, just hit OK.[[BR]][[BR]] [[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image012.gif)]]||Step 2 - Pivot Placement[[BR]][[BR]] [[BR]][[BR]]Now, all your props will be included in one object. We [[BR]] next should move our object to the centre of the 3dsmax world. In order to do that we need to make sure our pivot point is in the correct location.[[BR]][[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image013.gif)]][[BR]][[BR]][[BR]]Click on the hierarchy tab, then click the pivot button, then the "Affect Pivot Only" button.[[BR]][[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image014.gif)]][[BR]][[BR]][[BR]]Centre your pivot (X,Y) to the centre of your structure (or where you want it to be anchored in the game).[[BR]][[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image015.gif)]][[BR]][[BR]][[BR]]The Z is a bit different; we want to position this to the bottom of the structure. If we put it in the middle, then your structure would be buried halfway in the game's terrain. Not good.[[BR]][[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image016.gif)]][[BR]][[BR]][[BR]]Ok, youre now done moving your pivot. Turn off the Affect Pivot Only button.||
     284
     285||Step 3 - Detaching[[BR]][[BR]] [[BR]][[BR]]Now, let's move our structure to the centre of the world. You can do this by just inputting zeros in the world coordinates at the bottom of the screen.[[BR]][[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image017.gif)]][[BR]][[BR]][[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image018.gif)]][[BR]][[BR]]The next step is to separate the props again from the object. So first we select all the prop objects like this image to the left.[[BR]][[BR]] Then we detach them.[[BR]][[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image019.gif)]][[BR]][[BR]][[BR]]A new window will pop up.[[BR]][[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image020.gif)]][[BR]][[BR]][[BR]]Im going to go ahead and properly name it right here.[[BR]][[BR]] While Im at it, Ill go ahead and properly name the structure too.[[BR]][[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image021.gif)]]||Step 4 - Setting the Prop Point[[BR]][[BR]] [[BR]][[BR]]Now, it's time to work with the prop point. First, we need to create one.[[BR]][[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image022.gif)]][[BR]][[BR]][[BR]]Click on the create tab, then the helper object button, [[BR]] then scroll down and you will see a choice of PS Helpers. Select that.[[BR]][[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image023.gif)]][[BR]][[BR]][[BR]]Now our prop tab looks a bit different. Go ahead and place a prop point. Once you place it, it will look like this:[[BR]][[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image024.gif)]]||
     286
     287||Step 5 - Exporting[[BR]][[BR]] [[BR]][[BR]]It is time to export! select both the prop point and the [[BR]] structure.[[BR]][[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image025.gif)]][[BR]][[BR]] [[BR]][[BR]]Go to File => Export Selected[[BR]][[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image026.gif)]][[BR]][[BR]] [[BR]][[BR]]Now go ahead and export your structure.[[BR]][[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image027.gif)]][[BR]][[BR]] [[BR]][[BR]]And that's it! You just exported an object with a prop point included! Repeat the same export for the prop point.||Step 6 - xml code[[BR]][[BR]] [[BR]][[BR]]Youre all done in 3dmax. Now it is time to look at the [[BR]] xml code.[[BR]][[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image028.gif)]][[BR]][[BR]][[BR]][[BR]] [[BR]][[BR]]In this code snippet:[[BR]][[BR]] [[BR]][[BR]]We have given it the proper name (the name that will appear in Atlas). We are also pointing to the newly created *.pmd file. We call up the texture.[[BR]][[BR]]We name the prop point and tell it what actor is supposed to go there.[[BR]][[BR]] [[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image029.gif)]][[BR]][[BR]][[BR]] [[BR]][[BR]]In this code snippet:[[BR]][[BR]] [[BR]][[BR]]We have given it the proper name (that will be called up by the code above). We are also pointing to the newly created PMD file. We call up the texture.[[BR]][[BR]] [[BR]][[BR]]Summary[[BR]][[BR]] [[BR]][[BR]]The tutorial above probably has some unneeded steps, but for the beginner, this is a good way to start. You will find yourself refining your procedures with experience.||
     288
     289=  =
     290= Skins and Textures =
     291This is such a critical topic because it is the texture of a skin that really gives the game its ‘look’. 0 A.D.’s theme could be described as a hyper-realistic look. This is a historical game and not a fantasy or futuristic game. Our colors will be slightly more saturated than the real world. We also want to reflect the ‘realness’ of our world by NOT making things look totally new like you just purchased them off a store shelf, but rather: used, weathered, worn, ‘real’. It is very important to follow the concept, do not make creative liberties. The concept has been approved by the art department lead and the historian, your idea in your creative mind has not been. Make sure the viewer always knows what they are looking at. Also, pay particular note to details! The more detail that can be added to a texture, the better.
    309292
    310293[[BR]] Here are some key elements of what makes up a good skin:
    311294
    312  * '''Historical foundations''' – work with history,      don’t create your own history
    313  * '''Color '''– slightly more saturation than the real      world
    314  * '''Theme''' – heighten and enhance the purpose of      mesh through your skin
    315  * '''File Formats''' – Always save your originals in a      lossless layered format (PSD, PSP or equivalent). We will be using DDS for      the majority of all skins.  Refer      down below for more information on DDS files.
    316  * '''Size '''– Power of 2 (2!^n)! must be used for the      dimensions of the images.  These      include 8, 16, 32, 64, 128, 256, and 512.       DDS files require this.  Both      rectangular and square varieties may be used by mixing and matching the      widths and heights using the above numbers.
    317    * 64x64 – unit props
    318    * 128x128 - typical units
    319    * 256x256 - hero units
    320    * 512x512 – structures (shared), and terrain textures
    321 
    322 Keep in mind that the size of the texture should reflect the relative size in the game.  There is no reason to make a texture for a flower to be 256x256 when in the game it will never been seen up so close to see such detail.
    323 
    324  * '''Methods '''– Method 1 (Recommended) - start with      a larger original sample, and then shrink. For example, if your target      size is 256, then start with a 512 and then shrink by half and sharpen. Method      2 – Some believe that you are creating unnecessary detail and waste time      to use Method 1, so they work with the texture at it’s final resolution      (most artists are not this good however).
    325 
    326 Use Layers! Layers are your friend. Save your layers!  You never know when a belt used on one texture might be useful to share with another.  Using the texture template you are able to share certain features across textures. If the elements of a texture are separated by layers, this job is much easier.
    327 
    328  * '''Player color''' – Player color is achieved      through the Alpha Channel of the DDS file. The visual data within the RGB      channels should be desaturated (made to black and white).  More on this topic further on in this      document.
    329  * '''Backup '''– Backup all your work in the art SVN      repository in case something bad happens to your computer – compressed your      source (uncompressed) files (MAX, PSD, BMP, TGA) please, use ZIP or RAR.
    330 
    331  * '''Communicate! '''      - If you need help or you would like some links to some good tutorials,      feel free to ask questions of your fellow workers and the art department      lead.
    332 
    333 = '''__[ Preferred 2D Tool]__''' =
    334 There really isn’t any preferred graphical editing software that is capable of opening and saving BMP files may be used to create textures for Pyrogenesis.  Software that is capable of supporting alpha channels and saving files in DDS format would be advantageous.
     295 * Historical foundations – work with history, don’t create your own history
     296 * Color – slightly more saturation than the real world
     297 * Theme – heighten and enhance the purpose of mesh through your skin
     298 * File Formats – Always save your originals in a lossless layered format (PSD, PSP or equivalent). We will be using DDS for the majority of all skins. Refer down below for more information on DDS files.
     299 * Size – Power of 2 (2!^n)! must be used for the dimensions of the images. These include 8, 16, 32, 64, 128, 256, and 512. DDS files require this. Both rectangular and square varieties may be used by mixing and matching the widths and heights using the above numbers.
     300 * 64x64 – unit props
     301 * 128x128 - typical units
     302 * 256x256 - hero units
     303 * 512x512 – structures (shared), and terrain textures
     304
     305Keep in mind that the size of the texture should reflect the relative size in the game. There is no reason to make a texture for a flower to be 256x256 when in the game it will never been seen up so close to see such detail.
     306
     307 * Methods – Method 1 (Recommended) - start with a larger original sample, and then shrink. For example, if your target size is 256, then start with a 512 and then shrink by half and sharpen. Method 2 – Some believe that you are creating unnecessary detail and waste time to use Method 1, so they work with the texture at it’s final resolution (most artists are not this good however).
     308
     309Use Layers! Layers are your friend. Save your layers! You never know when a belt used on one texture might be useful to share with another. Using the texture template you are able to share certain features across textures. If the elements of a texture are separated by layers, this job is much easier.
     310
     311 * Player color – Player color is achieved through the Alpha Channel of the DDS file. The visual data within the RGB channels should be desaturated (made to black and white). More on this topic further on in this document.
     312 * Backup – Backup all your work in the art SVN repository in case something bad happens to your computer – compressed your source (uncompressed) files (MAX, PSD, BMP, TGA) please, use ZIP or RAR.
     313
     314 * Communicate! - If you need help or you would like some links to some good tutorials, feel free to ask questions of your fellow workers and the art department lead.
     315
     316= Preferred 2D Tool =
     317There really isn’t any preferred graphical editing software that is capable of opening and saving BMP files may be used to create textures for Pyrogenesis. Software that is capable of supporting alpha channels and saving files in DDS format would be advantageous.
    335318
    336319Recommended 2D software options:
     
    358341[http://developer.nvidia.com/page/tools.html nVidia’s Developer Tools] – Other useful DDS tools
    359342
    360 = '''__[ Graphics Formats]__'''''''' =
    361 ·        '''BMP'''[[BR]] Lossless and uncompressed, a large file that is bigger than a TGA, and lacks alpha channel support.  The most basic format that may be saved and converted to a .dds file using a WFG conversion tool. Alpha layer tools are not required.
    362 
    363 ·        '''TGA'''[[BR]] It is a lossless format, and supports alpha content via alpha channels.  A 24-bit TGA will be converted to a DXT1 DDS file, and a 32-bit (alpha) TGA will be converted to a DXT3 DDS file. NOTE: Photoshop 7.0 has a bug where you can't save alpha in TGA. You should upgrade to Photoshop 7.1 or Photoshop CS.  Because this format does contain alpha layers it requires software that takes advantage of this feature. This may also be converted to a .dds file using a WFG conversion tool.
    364 
    365 ·        '''JPEG'''[[BR]] DO NOT USE THIS FORMAT.
    366 
    367 ·        '''DDS'''[[BR]] This is the format that is used by the game, no conversion is needed, subsequently loading times are extremely fast, in the order of 5x faster than any other format. This format gives you full control over the texture attributes and color format, it also supports alpha channels. This format is therefore recommended for maximum performance and control.
     343= Graphics Formats =
     344· BMP[[BR]] Lossless and uncompressed, a large file that is bigger than a TGA, and lacks alpha channel support. The most basic format that may be saved and converted to a .dds file using a WFG conversion tool. Alpha layer tools are not required.
     345
     346· TGA[[BR]] It is a lossless format, and supports alpha content via alpha channels. A 24-bit TGA will be converted to a DXT1 DDS file, and a 32-bit (alpha) TGA will be converted to a DXT3 DDS file. NOTE: Photoshop 7.0 has a bug where you cant save alpha in TGA. You should upgrade to Photoshop 7.1 or Photoshop CS. Because this format does contain alpha layers it requires software that takes advantage of this feature. This may also be converted to a .dds file using a WFG conversion tool.
     347
     348· JPEG[[BR]] DO NOT USE THIS FORMAT.
     349
     350· DDS[[BR]] This is the format that is used by the game, no conversion is needed, subsequently loading times are extremely fast, in the order of 5x faster than any other format. This format gives you full control over the texture attributes and color format, it also supports alpha channels. This format is therefore recommended for maximum performance and control.
    368351
    369352DirectX Texture Compression : DXTC is the native, compressed texture format used in DirectX 9. In many cases, DXTC reduces texture memory usage by 50% or more over palettized, 8-bit textures, allowing for twice the textures at the same resolution, or the same number of textures at twice the resolution. Three DXTC formats are available. You can see a detailed comparison on the different types of texture compression here: http://udn.epicgames.com/pub/Content/TextureComparison/ The color channels are all the same DXT1, DXT3, and DXT5 - in terms of compression and quality. The difference lies in the alpha channel.
    370353
    371 ·        '''DXT1''' is a four-bit compressed color format that allows for '''opaque''', and '''one-bit alpha''' (DXT1a) textures; that is, textures with no transparency at all, and textures with a single transparent color.
    372 
    373 ·        '''DXT3''' adds support for a four-bit explicit alpha channel, on top of DXT1's color compression. Four-bit explicit alpha allows for sixteen distinct alpha values, making it good for textures with '''sharply contrasting translucent/opaque areas'''. DXT2 textures assume the color data is pre-multiplied by the alpha channel.
    374 
    375 ·        '''DXT5''' support a four-bit interpolated alpha channel. Three bits are used to determine explicit alpha values, and two eight-bit values are used to interpolate gradually between them. This makes the format especially suited for soft '''gradients''' and other textures where the '''alpha areas’ variance is mild'''. DXT4 assumes colors are pre-multiplied by the alpha channel.
    376 
    377 ·        '''32-bit RGBA''' is the obese godfather of textures. While extremely powerful, it's also terribly overweight. It features full 24-bit color, plus an 8-bit alpha channel, but takes up four bytes for every pixel; a 256x256 texture will require 256k of memory.
    378 
    379 [[BR]] '''Recommendation'''[[BR]] Use DXT1 textures as much as is possible because the greatest space savings can be had with them (any texture without an alpha transparency layer). If watching for rendering artifacts is not an option, DXT5 supports the most flexible alpha channels, while not increasing memory usage beyond that of a normal 8-bit palletized texture (for textures that require the use of the alpha layer – player color, transparency, object color). Use full RGBA only when DXT3/5 do not suffice in the both the color and alpha quality department, in highly visible expanses, such as skies box textures and user interface elements.
     354· DXT1 is a four-bit compressed color format that allows for opaque, and one-bit alpha (DXT1a) textures; that is, textures with no transparency at all, and textures with a single transparent color.
     355
     356· DXT3 adds support for a four-bit explicit alpha channel, on top of DXT1's color compression. Four-bit explicit alpha allows for sixteen distinct alpha values, making it good for textures with 'sharply contrasting translucent/opaque areas. DXT2 textures assume the color data is pre-multiplied by the alpha channel.
     357
     358· DXT5 support a four-bit interpolated alpha channel. Three bits are used to determine explicit alpha values, and two eight-bit values are used to interpolate gradually between them. This makes the format especially suited for soft gradients and other textures where the alpha areas’ variance is mild. DXT4 assumes colors are pre-multiplied by the alpha channel.
     359
     360· 32-bit RGBA is the obese godfather of textures. While extremely powerful, it's also terribly overweight. It features full 24-bit color, plus an 8-bit alpha channel, but takes up four bytes for every pixel; a 256x256 texture will require 256k of memory.
     361
     362[[BR]] Recommendation[[BR]] Use DXT1 textures as much as is possible because the greatest space savings can be had with them (any texture without an alpha transparency layer). If watching for rendering artifacts is not an option, DXT5 supports the most flexible alpha channels, while not increasing memory usage beyond that of a normal 8-bit palletized texture (for textures that require the use of the alpha layer – player color, transparency, object color). Use full RGBA only when DXT3/5 do not suffice in the both the color and alpha quality department, in highly visible expanses, such as skies box textures and user interface elements.
    380363
    381364NOTE: A hardware bug in all nVidia chipsets, including the NV20 (!GeForce3), potentially makes DXT1 textures gross and ugly. Specifically, decompression is performed in 16-bit color mode internally, making the resulting texture potentially unacceptable for use, especially when combined with other operations. Test your DXT1 textures on nVidia hardware before committing to their use. All other DXTC formats on nVidia hardware are okay, as textures are decompressed in 32-bit color internally.
    382365
    383 = '''__[ BASIC HUMAN TEMPLATE]__'''''''' =
     366= BASIC HUMAN TEMPLATE =
    384367A basic human template can be found here: http://www.wildfiregames.com/users/art/mythos/textures/newdude-newUVmap.psd
    385368
    386369The base texture (affectionately named dude) looks like this:
    387370
    388 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image031.jpg)]]'''
    389 
    390 To the left is the base texture was designed to provide the most basic layer of what will be used in the game.  Most all of the game unit art is built of this this skin.  This is the standard.  The upper left portion is the legs, the upper right is the arms.  The lower middle is the body.[[BR]] [[BR]] The texture is tileable. What do we mean by tileable? Well the textures edges match up to aid you in lining up your texture seams.
    391 
    392 To the right you is how the texture is broken down by quadrents.  Also note that the integers are based on powers of 2. (though 384 is not).
    393 
    394 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image030.jpg)]]'''
     371[[Image(http://www.wildfiregames.com/0ad/images/artspec/image031.jpg)]]
     372
     373To the left is the base texture was designed to provide the most basic layer of what will be used in the game. Most all of the game unit art is built of this this skin. This is the standard. The upper left portion is the legs, the upper right is the arms. The lower middle is the body.[[BR]] [[BR]] The texture is tileable. What do we mean by tileable? Well the textures edges match up to aid you in lining up your texture seams.
     374
     375To the right you is how the texture is broken down by quadrents. Also note that the integers are based on powers of 2. (though 384 is not).
     376
     377[[Image(http://www.wildfiregames.com/0ad/images/artspec/image030.jpg)]]
    395378
    396379Notice how the following images wrap and tile as you offset them:
    397380
    398 ||'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image032.jpg)]]'''[[BR]][[BR]][[BR]]Torso tile now centered about   the back rather than the Chest.||'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image033.jpg)]]'''[[BR]][[BR]][[BR]]Here are the arms tiled and   rotated 90 degrees to help visualization.||[[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image034.jpg)]]'''[[BR]][[BR]][[BR]]Here are the legs tiled and  rotated 90 degrees to help visualization.||
    399 
    400 ||'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image035.jpg)]]'''||The image to the left demonstrates that with a bit of flipping,   rotating, and resizing you can position the tile to look like this image to   the left.  This allows seamless   transitions between the torso and legs if needed.  After a texture is complete simply retrace  your flipping and rotating steps to return to the original.||
     381||[[Image(http://www.wildfiregames.com/0ad/images/artspec/image032.jpg)]][[BR]][[BR]][[BR]]Torso tile now centered about the back rather than the Chest.||[[Image(http://www.wildfiregames.com/0ad/images/artspec/image033.jpg)]][[BR]][[BR]][[BR]]Here are the arms tiled and rotated 90 degrees to help visualization.||[[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image034.jpg)]][[BR]][[BR]][[BR]]Here are the legs tiled and rotated 90 degrees to help visualization.||
     382
     383||[[Image(http://www.wildfiregames.com/0ad/images/artspec/image035.jpg)]]||The image to the left demonstrates that with a bit of flipping, rotating, and resizing you can position the tile to look like this image to the left. This allows seamless transitions between the torso and legs if needed. After a texture is complete simply retrace your flipping and rotating steps to return to the original.||
    401384
    402385The goal is to eliminate the seams in our textures and this template will do that.
    403386
    404 The texture is designed to make maximum use of the texture space.  The negative side of this is that the scale is sometimes disproportionate.  If you want to make something on their body that is vertically and horizontally symmetrical, you need to do this. Crop just the lower half (the red section in the quadrent image above). Then resize this layer so that it’s 512x580. See the image to the right.
    405 
    406 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image036.jpg)]]'''
    407 
    408 [[BR]] [[BR]] Here are more resources:[[BR]] [[BR]] http://www.wildfiregames.com/users/art/wijit/dude.rar [[BR]] http://www.wildfiregames.com/users/art/wijit/dude_accesory.rar [[BR]] [[BR]] In the dude accessories you'll find a few examples of some things:
    409 
    410  * necklines      that line up
    411  * sleeveless      template
    412  * sleeve      template
    413  * sample      boots
    414  * sample      belt
    415 
    416  * sample      shirt
    417  * sample      pants
    418  * circle      representation
    419  * sample      bracers
    420 
    421 [[BR]]'''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image037.jpg)]]'''
    422 
    423 It is advantageous to use the template in a paper doll fashion.  Each of these steps is a layer.  The artist starts with the base, next the tunic is added.  Then add the breastplate, then the leather loin protectors, and finally the weapon strap.  Because these are independent layers, they can be used on other models as well. Note that the color of the tunic is grayscale, this is because it is used as player color; more on that in the next topic.
    424 
    425 = '''__[ Player Color]__''' =
    426 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image038.jpg)]]'''
    427 
    428 Player color is a special attribute of the game to serve the purpose of showing player ownership.  It uses the alpha channel of a texture to apply a multiplied color layer (defined by the game, and player) in real time during the game.  These textures can be made several different ways.  One way is to use the photoshop DDS plugin noted above.  The preferred method is to save a TGA (if you are working directly with alpha channels) or a BMP (if you are working with a flat texture with no alpha), and process it with the Pyrogenesis texture converter found in game’s developer tools. This may be found here in the game’s binaries:
     387The texture is designed to make maximum use of the texture space. The negative side of this is that the scale is sometimes disproportionate. If you want to make something on their body that is vertically and horizontally symmetrical, you need to do this. Crop just the lower half (the red section in the quadrent image above). Then resize this layer so that it’s 512x580. See the image to the right.
     388
     389[[Image(http://www.wildfiregames.com/0ad/images/artspec/image036.jpg)]]
     390
     391[[BR]] [[BR]] Here are more resources:[[BR]] [[BR]] http://www.wildfiregames.com/users/art/wijit/dude.rar [[BR]] http://www.wildfiregames.com/users/art/wijit/dude_accesory.rar [[BR]] [[BR]] In the dude accessories youll find a few examples of some things:
     392
     393 * necklines that line up
     394 * sleeveless template
     395 * sleeve template
     396 * sample boots
     397 * sample belt
     398
     399 * sample shirt
     400 * sample pants
     401 * circle representation
     402 * sample bracers
     403
     404[[BR]][[Image(http://www.wildfiregames.com/0ad/images/artspec/image037.jpg)]]
     405
     406It is advantageous to use the template in a paper doll fashion. Each of these steps is a layer. The artist starts with the base, next the tunic is added. Then add the breastplate, then the leather loin protectors, and finally the weapon strap. Because these are independent layers, they can be used on other models as well. Note that the color of the tunic is grayscale, this is because it is used as player color; more on that in the next topic.
     407
     408= Player Color =
     409[[Image(http://www.wildfiregames.com/0ad/images/artspec/image038.jpg)]]
     410
     411Player color is a special attribute of the game to serve the purpose of showing player ownership. It uses the alpha channel of a texture to apply a multiplied color layer (defined by the game, and player) in real time during the game. These textures can be made several different ways. One way is to use the photoshop DDS plugin noted above. The preferred method is to save a TGA (if you are working directly with alpha channels) or a BMP (if you are working with a flat texture with no alpha), and process it with the Pyrogenesis texture converter found in game’s developer tools. This may be found here in the game’s binaries:
    429412
    430413  \binaries\system\textureconv
    431414
    432 The folder contains a readme.txt file with specific instructions for us.  Note the image to the left has the RBG channel above at the top.  The lower channel is a representation of the alpha layer (You are actually able to convert in this manner with a BMP file and the texture converter tool).  What the game does is it uses that layer to designate what areas of the texture would receive color and what doesn’t.  Black means it is player color and white means it is opaque RBG.  Grays are a degree of transition between opaque and player color.  The game then ‘multiplies’ the player color with the RBG layer’s gray tones.  Compare the left image below to the right. It basically adds the RGB pixel color values between the 2 ‘layers’.
    433 
    434 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image042.jpg)]]'''
    435 
    436 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image041.jpg)]]'''
     415The folder contains a readme.txt file with specific instructions for us. Note the image to the left has the RBG channel above at the top. The lower channel is a representation of the alpha layer (You are actually able to convert in this manner with a BMP file and the texture converter tool). What the game does is it uses that layer to designate what areas of the texture would receive color and what doesn’t. Black means it is player color and white means it is opaque RBG. Grays are a degree of transition between opaque and player color. The game then ‘multiplies’ the player color with the RBG layer’s gray tones. Compare the left image below to the right. It basically adds the RGB pixel color values between the 2 ‘layers’.
     416
     417[[Image(http://www.wildfiregames.com/0ad/images/artspec/image042.jpg)]]
     418
     419[[Image(http://www.wildfiregames.com/0ad/images/artspec/image041.jpg)]]
    437420
    438421Notice how the player color depth is brought out by the color multiplication in comparing the two images on the left.
    439422
    440 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image039.jpg)]]'''
    441 
    442 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image040.jpg)]]'''
     423[[Image(http://www.wildfiregames.com/0ad/images/artspec/image039.jpg)]]
     424
     425[[Image(http://www.wildfiregames.com/0ad/images/artspec/image040.jpg)]]
    443426
    444427These images show how the engine uses the player color to change between various colors.
    445428
    446 = '''__ [ Object Color]__''' =
    447 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image044.jpg)]]'''
    448 
    449 Object color is much the same as player color.   It’s purpose is to offer a variety of color other than player color.  For example, by using one single texture one is able to create a human head texture with a variety of hair colors: blonde, dirty blond, brown, gray, and black.  Horse pelts also use this feature.  We are able to use one texture for this purpose rather than multiple which saves space and texture memory for the game. It is designated specifically in the Actor XML file.
    450 
    451 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image043.jpg)]]'''
    452 
    453 = '''__[ Transparency]__''' =
    454 Transparency, like player color and object color, uses the alpha channel for it’s definition.  The same methods are used for creation.  This is probably the usage of the alpha channel that most are familiar with, so it doesn’t require much explanation. The Actor file that uses the texture must however tell the engine the texture has transparency and is called out as such in the Actor file.
    455 
    456 = '''__[ Other]__''' =
    457 '''UV Coordinates and Texturing'''
     429= Object Color =
     430[[Image(http://www.wildfiregames.com/0ad/images/artspec/image044.jpg)]]
     431
     432Object color is much the same as player color. It’s purpose is to offer a variety of color other than player color. For example, by using one single texture one is able to create a human head texture with a variety of hair colors: blonde, dirty blond, brown, gray, and black. Horse pelts also use this feature. We are able to use one texture for this purpose rather than multiple which saves space and texture memory for the game. It is designated specifically in the Actor XML file.
     433
     434[[Image(http://www.wildfiregames.com/0ad/images/artspec/image043.jpg)]]
     435
     436= Transparency =
     437Transparency, like player color and object color, uses the alpha channel for it’s definition. The same methods are used for creation. This is probably the usage of the alpha channel that most are familiar with, so it doesn’t require much explanation. The Actor file that uses the texture must however tell the engine the texture has transparency and is called out as such in the Actor file.
     438
     439= Other =
     440UV Coordinates and Texturing
    458441
    459442Pyrogenesis supports only one (1) UVW channel and Material per object. Only UVW Channel 1 will be used by the exporter and game engine. Multi-sub object texturing should not be used and is not supported. Objects should be textured with just one material, represented in 3D Studio Max as the diffuse texture channel.
    460443
    461 '''Original Files'''
    462 
    463 DDS will be used for the final texture format in Pyrogenesis, However, it is also recommended that textures be created in Photoshop, Paintshop Pro, or Gimp (etc.) also be saved as Photoshop Documents PSD files, with their layer information intact, so that later revisions can be made.  This will also serve as an easier way to make variations and modifications in the future.
    464 
    465 '''Texture Size'''
     444Original Files
     445
     446DDS will be used for the final texture format in Pyrogenesis, However, it is also recommended that textures be created in Photoshop, Paintshop Pro, or Gimp (etc.) also be saved as Photoshop Documents PSD files, with their layer information intact, so that later revisions can be made. This will also serve as an easier way to make variations and modifications in the future.
     447
     448Texture Size
    466449
    467450256x256 for heroes
     
    473456512x512 for shared structure textures and terrain textures
    474457
    475 Some find that working at double the intended game resolution size in your 2D software package then scaling the final version down is useful.  Others say that you waste time creating unused detail. The decision will be yours to make.
    476 
    477 '''Terrain Textures'''
    478 
    479 Terrains must tile.  Meaning the left<=>right and top<=>bottom must seamlessly tile with each other.  Terrain textures are in a large size because they are such a huge portion of what is visible on the screen.  Care should be taken to avoid distinguishable repeating patterns on textures that have a high likely hood of more than 50% of the texturing being seen on the screen at a time (grass, dirt, sand, etc...).  Recognizing repeating textures in unique aspects of terrain (cliff, rocks, roads, etc....) are not as critical.  A texture spans approximately 11x11 tiles in the game. Scale your details on the texture accordingly.
    480 
    481 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image045.jpg)]]'''
    482 
    483 This terrain texture is for a guide for shadows.  If there is a feature on the terrain (such as a rock, or a stick) that would benefit from a shadow, place the shadow to the left of that feature (not the shadow on the blue ball). This would be in line with the shadow position for the default angle and location of the sun in the game world.
    484 
    485 '''Terrain Blends'''
    486 
    487 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image046.jpg)]]'''
    488 
    489 This image is an example of how textures blend together in our game.  There is a calculation performed by the game engine that recognizes the primary and secondary texture adjacent to tile in question itself.  Based on that information it applies a suitable alpha mask.  There are eleven possible different options. This template was created to help one see those options and create more transitions based on it.
    490 
    491 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image047.gif)]]'''
    492 
    493 To use this image, you are free to modify any part of the blend aside from the pixels on the edges of the grid.  It could be a simple gradient as is seen here or it could be made blotchy, or feathered. Remember that the blends must interface with one another so their border blends should match.
    494 
    495 '''Skybox Textures'''
    496 
    497 A skybox is an interesting graphical feature of the world.  It is for the most part unimportant to the game, but goes a long way to beautifying the world.  The skybox is just that.  It is a large cube in the game world that does not move relative to the camera.  It is comprised of five textures for all faces excluding the bottom.  The textures location is: art\textures\skies\<name>.  The five textures are named front, back, left, right, and top.  The files are saved as 32 bit RBGA DDS files.  Reason being is that there is no file compression which means there are no artifacts on the textures.  The textures were created in 3DS max by setting up a 5 camera’s each facing a direction.  A textured halved sphere was created.  All five camera’s render an image. You can test your images in this small program:
     458Some find that working at double the intended game resolution size in your 2D software package then scaling the final version down is useful. Others say that you waste time creating unused detail. The decision will be yours to make.
     459
     460Terrain Textures
     461
     462Terrains must tile. Meaning the left<=>right and top<=>bottom must seamlessly tile with each other. Terrain textures are in a large size because they are such a huge portion of what is visible on the screen. Care should be taken to avoid distinguishable repeating patterns on textures that have a high likely hood of more than 50% of the texturing being seen on the screen at a time (grass, dirt, sand, etc...). Recognizing repeating textures in unique aspects of terrain (cliff, rocks, roads, etc....) are not as critical. A texture spans approximately 11x11 tiles in the game. Scale your details on the texture accordingly.
     463
     464[[Image(http://www.wildfiregames.com/0ad/images/artspec/image045.jpg)]]
     465
     466This terrain texture is for a guide for shadows. If there is a feature on the terrain (such as a rock, or a stick) that would benefit from a shadow, place the shadow to the left of that feature (not the shadow on the blue ball). This would be in line with the shadow position for the default angle and location of the sun in the game world.
     467
     468Terrain Blends
     469
     470[[Image(http://www.wildfiregames.com/0ad/images/artspec/image046.jpg)]]
     471
     472This image is an example of how textures blend together in our game. There is a calculation performed by the game engine that recognizes the primary and secondary texture adjacent to tile in question itself. Based on that information it applies a suitable alpha mask. There are eleven possible different options. This template was created to help one see those options and create more transitions based on it.
     473
     474[[Image(http://www.wildfiregames.com/0ad/images/artspec/image047.gif)]]
     475
     476To use this image, you are free to modify any part of the blend aside from the pixels on the edges of the grid. It could be a simple gradient as is seen here or it could be made blotchy, or feathered. Remember that the blends must interface with one another so their border blends should match.
     477
     478Skybox Textures
     479
     480A skybox is an interesting graphical feature of the world. It is for the most part unimportant to the game, but goes a long way to beautifying the world. The skybox is just that. It is a large cube in the game world that does not move relative to the camera. It is comprised of five textures for all faces excluding the bottom. The textures location is: art\textures\skies\<name>. The five textures are named front, back, left, right, and top. The files are saved as 32 bit RBGA DDS files. Reason being is that there is no file compression which means there are no artifacts on the textures. The textures were created in 3DS max by setting up a 5 camera’s each facing a direction. A textured halved sphere was created. All five camera’s render an image. You can test your images in this small program:
    498481
    499482http://www.wildfiregames.com/users/art/skyboxtexturetest.rar
    500483
    501 '''Water Textures'''
    502 
    503 Water textures use normal mapping.  They are a series of 60 images that are displayed one after another to give the illusion that water is moving.  The movement is simply by the design of the texture. The textures were created by a 3^rd^ party texture generating program. Once they were rendered in black and white they were used as a ‘height map’ and processed by NVIDIA’s DDS Photoshop plug-in to apply the normal map’s color code information to them.
    504 
    505 = ''' [ Animation]''' =
     484Water Textures
     485
     486Water textures use normal mapping. They are a series of 60 images that are displayed one after another to give the illusion that water is moving. The movement is simply by the design of the texture. The textures were created by a 3^rd^ party texture generating program. Once they were rendered in black and white they were used as a ‘height map’ and processed by NVIDIA’s DDS Photoshop plug-in to apply the normal map’s color code information to them.
     487
     488= Animation =
    506489Animations are typically created by two means either key framing or importing motion capture files. Because all our humanoid characters will be sharing the same proportions and skeleton we will be able to assign common and shared animations to human. The goal is to build up a library of animations, just like a library of props and we will just ‘play’ the animations as defined in the actor xml file in real time throughout the game.[[BR]] [[BR]] Here is what we are looking for in animations:
    507490
    508  * '''Exaggerate''' – your character is very small on      the screen. Make sure the gamer knows the difference between swinging a      sword and waving hello.
    509  * '''Starts and Stops''' – The animation must be      played in cycles and they loop. The pose you start the animation with must      be identical to the last frame (except for death animations). Your      starting pose should also be the same or similar to those animations of      the same type and class. This is to ensure the transition from a standing,      to a fidget, to a walk, or an attack will appear seamless.
    510  * '''File Formats''': Save your original files. All      animations will be exported with the COLLADA plugin for the game.
    511  * '''Backup '''– Backup all your work in the WFG art SVN      in case something bad happens to your computer – compressed please (ZIP or      RAR)
     491 * Exaggerate – your character is very small on the screen. Make sure the gamer knows the difference between swinging a sword and waving hello.
     492 * Starts and Stops – The animation must be played in cycles and they loop. The pose you start the animation with must be identical to the last frame (except for death animations). Your starting pose should also be the same or similar to those animations of the same type and class. This is to ensure the transition from a standing, to a fidget, to a walk, or an attack will appear seamless.
     493 * File Formats: Save your original files. All animations will be exported with the COLLADA plugin for the game.
     494 * Backup – Backup all your work in the WFG art SVN in case something bad happens to your computer – compressed please (ZIP or RAR)
    512495
    513496The key animation types are as follows:
    514497
    515 '''Idle''' – a very subtitle movement simply to let the user know the unit is not a stone.
    516 
    517 '''Attack''' – if capable of attacking, 2-3 variations would be nice
    518 
    519 '''Walk''' – a simple walk cycle
    520 
    521 '''Run''' – if capable, a run cycle
    522 
    523 '''Death''' – when the unit’s hit points reach zero, the unit must die. 2-3 variations
    524 
    525 '''Foraging''' – if capable, two types: picking berry bushes, and picking fruit from trees
    526 
    527 '''Mining''' – if capable, swinging a pick axe
    528 
    529 '''Logging''' – if capable, swinging an axe
    530 
    531 '''Farming''' – if capable, swinging a hoe
    532 
    533 = '''__[ Tools]__''' =
    534 Discreet's Character Studio has been the primary character animation tool for character animation. However with the use of COLLADA to export animations, a variety of software packages may be used as long as the skeleton, mesh, and animation use the same scale and bones.  Standard 3DS Max Bones may also be used when a custom rig is necessary, though the total number of bones in a rig must not exceed 25.
    535 
    536 '''[[Image(http://www.wildfiregames.com/0ad/images/artspec/image048.jpg)]]'''
    537 
    538 Above is the image of the hierarchy and naming convention of the basic Biped that is used for all humanoid animation in the game (Note: ignore the green boxes and the footsteps).  If an alternative is desired that does not match this structure, contact the developers for support.
     498Idle – a very subtitle movement simply to let the user know the unit is not a stone.
     499
     500Attack – if capable of attacking, 2-3 variations would be nice
     501
     502Walk – a simple walk cycle
     503
     504Run – if capable, a run cycle
     505
     506Death – when the unit’s hit points reach zero, the unit must die. 2-3 variations
     507
     508Foraging – if capable, two types: picking berry bushes, and picking fruit from trees
     509
     510Mining – if capable, swinging a pick axe
     511
     512Logging – if capable, swinging an axe
     513
     514Farming – if capable, swinging a hoe
     515
     516= Tools =
     517Discreet's Character Studio has been the primary character animation tool for character animation. However with the use of COLLADA to export animations, a variety of software packages may be used as long as the skeleton, mesh, and animation use the same scale and bones. Standard 3DS Max Bones may also be used when a custom rig is necessary, though the total number of bones in a rig must not exceed 25.
     518
     519[[Image(http://www.wildfiregames.com/0ad/images/artspec/image048.jpg)]]
     520
     521Above is the image of the hierarchy and naming convention of the basic Biped that is used for all humanoid animation in the game (Note: ignore the green boxes and the footsteps). If an alternative is desired that does not match this structure, contact the developers for support.
    539522
    540523<edit below>
     
    574557By sampling the animation at a lower rate, the file size of the animation is also reduced and due to in-game interpolation the animation will not become jerky. By setting the fps to 15, you effectively cut the size of the animation file size and memory requirements in half, the side effect is that the animation is only sampled on every other frame. Setting the fps to a value too low will adversely affect the integrity of the animation.
    575558
    576 Also note that because the engine uses linear interpolation (for speed), if you turn in a wide arc between frames you'll see noticeable changes in the speed it’s moving. This is only recommended if you are comfortable with more advanced features of both 3dmax and the engine. If you are in doubt, just leave the 3dmax frame rate at the default of 30 fps.
     559Also note that because the engine uses linear interpolation (for speed), if you turn in a wide arc between frames youll see noticeable changes in the speed it’s moving. This is only recommended if you are comfortable with more advanced features of both 3dmax and the engine. If you are in doubt, just leave the 3dmax frame rate at the default of 30 fps.
    577560
    5785613.6.6 Initial Default Animation Lists
     
    5845673.6.6.2 Emotion Animation List
    585568
    586 = ''' [ ACTORS]''' =
    587 '''__[ What is an actor?]__'''
     569= ACTORS =
     570  What is an actor?
    588571
    589572  <need to fill out>
    590573
    591 '''__[ Actor Editor]__'''
     574  Actor Editor
    592575
    593576  <need to fill out>
    594577
    595 '''__[ Actor Viewer]__'''
     578  Actor Viewer
    596579
    597580  <need to fill out>
    598581
    599 = ''' [ SVN]''' =
    600 For instructions on comitting your work, see [wiki:"wiki:TortoiseSVN Guide" here]. __''''''__
    601 
    602 = '''[ Folder Structure]''' =
    603 DATA
    604 
    605   ╚MODS
    606 
    607   ╚OFFICIAL
    608 
    609   ╚ART
    610 
    611   ╠'''ACTORS'''
    612 
    613   ║ ╠FAUNA
    614 
    615   ║ ╠FLORA
    616 
    617   ║ ╠GEOLOGY
    618 
    619   ║ ╠PROPS
    620 
    621   ║ ║ ╠FAUNA
    622 
    623   ║ ║ ╠FLORA
    624 
    625   ║ ║ ╠GEOLOGY
    626 
    627   ║ ║ ╠STRUCTURES
    628 
    629   ║ ║ ╠TEMP
    630 
    631   ║ ║ ╚UNITS
    632 
    633   ║ ╠STRUCTURES
    634 
    635   ║ ╠TEMP
    636 
    637   ║ ╚UNITS
    638 
    639   ╠'''ANIMATION'''
    640 
    641   ║ ╠BIPED
    642 
    643   ║ ╠GAIA
    644 
    645   ║ ╠MECHANICAL
    646 
    647   ║ ╠QUADRAPED
    648 
    649   ║ ╚SIMPLE
    650 
    651   ╠'''MATERIALS'''
    652 
    653   ╠'''MESHES'''
    654 
    655   ║ ╠GAIA
    656 
    657   ║ ╠PROPS
    658 
    659   ║ ╠SKELETAL
    660 
    661   ║ ╠STRUCTURAL
    662 
    663   ║ ╠TEMP
    664 
    665   ║ ╚TEST
    666 
    667   ╠'''SKELETONS'''
    668 
    669   ╚'''TEXTURES'''
    670 
    671   ╠ANIMATED
    672 
    673   ╠CURSORS
    674 
    675   ╠PARTICLES
    676 
    677   ╠SKIES
    678 
    679   ╠SKINS
    680 
    681   ║ ╠GAIA
    682 
    683   ║ ╠PROPS
    684 
    685   ║ ╠SKELETAL
    686 
    687   ║ ╠STRUCTURAL
    688 
    689   ║ ╠TEMP
    690 
    691   ║ ╚TEST
    692 
    693   ╠TERRAIN
    694 
    695   ║ ╠ALPHAMAPS
    696 
    697   ║ ╚TYPES
    698 
    699   ╚UI
    700 
    701 = [ Appendix A] =
    702 = [ PMD File Format] =
     582= SVN =
     583For instructions on comitting your work, see [wiki:"wiki:TortoiseSVN Guide" here].
     584
     585= Folder Structure =
     586`DATA+MODS+OFFICIAL+ART¦ACTORS¦ ¦FAUNA¦ ¦FLORA¦ ¦GEOLOGY¦ ¦PROPS¦ ¦ ¦FAUNA¦ ¦ ¦FLORA¦ ¦ ¦GEOLOGY¦ ¦ ¦STRUCTURES¦ ¦ ¦TEMP¦ ¦ +UNITS¦ ¦STRUCTURES¦ ¦TEMP¦ +UNITS¦ANIMATION¦ ¦BIPED¦ ¦GAIA¦ ¦MECHANICAL¦ ¦QUADRAPED¦ +SIMPLE¦MATERIALS¦MESHES¦ ¦GAIA¦ ¦PROPS¦ ¦SKELETAL¦ ¦STRUCTURAL¦ ¦TEMP¦ +TEST¦SKELETONS+TEXTURES¦ANIMATED¦CURSORS¦PARTICLES¦SKIES¦SKINS¦ ¦GAIA¦ ¦PROPS¦ ¦SKELETAL¦ ¦STRUCTURAL¦ ¦TEMP¦ +TEST¦TERRAIN¦ ¦ALPHAMAPS¦ +TYPES+UI`
     587=  =
     588= Appendix A =
     589== PMD File Format ==
    703590PMD files store a model, which includes vertex positions, normals and texture coordinates, faces (all faces are triangles), rest state bone transformations (if bones are used), and prop point positions and transformations (where other models may be propped onto this one).
    704591
     
    707594{{{
    708595PMD {
    709    char magic[4]; // == "PSMD"
    710    u32 version; // == 3
    711    u32 data_size; // == filesize-12
    712 
    713    u32 numVertices;
    714    Vertex vertices[numVertices];
    715 
    716    u32 numFaces;
    717    Face faces[numFaces];
    718 
    719    u32 numBones;
    720    BoneState restStates[numBones];
    721 
    722    u32 numPropPoints;
    723    PropPoint propPoints[numPropPoints]; // note: PropPoint has variable size (see below)
     596 char magic[4]; // == "PSMD"
     597 u32 version; // == 3
     598 u32 data_size; // == filesize-12
     599
     600 u32 numVertices;
     601 Vertex vertices[numVertices];
     602
     603 u32 numFaces;
     604 Face faces[numFaces];
     605
     606 u32 numBones;
     607 BoneState restStates[numBones];
     608
     609 u32 numPropPoints;
     610 PropPoint propPoints[numPropPoints]; // note: PropPoint has variable size (see below)
    724611}
    725612
    726613Vertex {
    727    Vector3D position; // in world space, matching the restStates pose
    728    Vector3D normal;
    729    float u, v;
    730    VertexBlend blend;
    731 }
    732 
    733 VertexBlend {  // represents the set of bones affecting a vertex
    734    u8 bones[4]; // bone indices; 0xFF in any position indicates "no bone" for vertices with fewer than 4 bones
    735    float weights[4]; // add up to 1.0 (0 is used for unused bones)
     614 Vector3D position; // in world space, matching the restStates pose
     615 Vector3D normal;
     616 float u, v;
     617 VertexBlend blend;
     618}
     619
     620VertexBlend { // represents the set of bones affecting a vertex
     621 u8 bones[4]; // bone indices; 0xFF in any position indicates "no bone" for vertices with fewer than 4 bones
     622 float weights[4]; // add up to 1.0 (0 is used for unused bones)
    736623}
    737624
    738625Face {
    739    u16 vertices[3]; // vertex indices; all faces are triangles
     626 u16 vertices[3]; // vertex indices; all faces are triangles
    740627}
    741628
    742629BoneState {
    743    Vector3D translation;
    744    Quaternion rotation;
    745 
    746    // the bone's final transform matrix is translation * rotation
     630 Vector3D translation;
     631 Quaternion rotation;
     632
     633 // the bone's final transform matrix is translation * rotation
    747634}
    748635
    749636PropPoint {
    750    u32 nameLength;
    751    char name[nameLength];
     637 u32 nameLength;
     638 char name[nameLength];
    752639 
    753    Vector3D translation;
    754    Quaternion rotation;
    755 
    756    u8 bone;
    757 
    758    // the prop point's final transform matrix is boneTransform * translation * rotation,
    759    // where boneTransform is that of the given bone or identity if no bones are used
     640 Vector3D translation;
     641 Quaternion rotation;
     642
     643 u8 bone;
     644
     645 // the prop point's final transform matrix is boneTransform * translation * rotation,
     646 // where boneTransform is that of the given bone or identity if no bones are used
    760647}
    761648
    762649Vector3D {
    763    float x, y, z;
     650 float x, y, z;
    764651}
    765652
    766653Quaternion {
    767    float x, y, z, w;
     654 float x, y, z, w;
    768655}
    769656}}}
     
    778665norm = (0,0,0)
    779666for i = 0 to 3:
    780   if blend.bones[i] != 0xFF:
    781     inverseRestMatrix = (restStates[blend.bones[i]].translation * restStates[blend.bones[i]].rotation) ^ -1
    782     animatedPoseMatrix = animatedBoneStates[blend.bones[i]].translation * animatedBoneStates[blend.bones[i]].rotation
    783     pos += blend.weights[i] * animatedPoseMatrix * inverseRestMatrix * (position,1)
    784     norm += blend.weights[i] * animatedPoseMatrix * inverseRestMatrix * (normal,0)
     667 if blend.bones[i] != 0xFF:
     668 inverseRestMatrix = (restStates[blend.bones[i]].translation * restStates[blend.bones[i]].rotation) ^ -1
     669 animatedPoseMatrix = animatedBoneStates[blend.bones[i]].translation * animatedBoneStates[blend.bones[i]].rotation
     670 pos += blend.weights[i] * animatedPoseMatrix * inverseRestMatrix * (position,1)
     671 norm += blend.weights[i] * animatedPoseMatrix * inverseRestMatrix * (normal,0)
    785672norm = normalise(norm)
    786 
    787673}}}