Difference between revisions of "Guide to spriting"

From NSV13
Jump to navigationJump to search
imported>Errorage
(1 revision)
imported>XDTM
(Some tips for human spriting)
 
(5 intermediate revisions by 4 users not shown)
Line 2: Line 2:
  
 
== Object overview ==
 
== Object overview ==
 
  
 
There are 4 types of objects in the game:
 
There are 4 types of objects in the game:
Line 26: Line 25:
 
Now, hopefully that's all the information you need to sprite and make dmi files.  
 
Now, hopefully that's all the information you need to sprite and make dmi files.  
  
== Required sprites by object category ==
+
=== From PNG back to DMI ===
 +
 
 +
[https://www.youtube.com/watch?v=kXDcYtAfjrM Here's Errorage's video tutorial (thanks Errorage!) on how to convert your beautiful PNG file into a DMI, you can watch this or follow the guide below, they are essentially the same.]
 +
 
 +
 
 +
The [http://entropymine.com/jason/tweakpng/ first thing you want to do is download TweakPNG from here],
 +
 
 +
You then want to copy the .dmi and make it a .png.
 +
 
 +
[[File:Spriting1.png|frame|none|Dmi and png files here.]]
 +
 
 +
Open the .png file in a photo editing software like GImp or Paint.NET.
 +
 
 +
[[File:Spriting2.png|300px|frame|none|Png file opened.]]
 +
 
 +
Make any edits you want.
 +
 
 +
[[File:Spriting3.png|frame|none|Perfect.]]
  
Now to tell you what sprites different types of items need:
+
Save/Export the file. Along with opening TweakPNG.
  
=== Mobs ===
+
Rename the .png to something new and make it a .dmi.
  
*Mobs require sprites in 4 directions. If you want them to be able to wear clothes, hold items, wear gloves, glasses, etc. then the part which you'd like to keep needs to be in the same place as on the human sprite in all 4 directions. Yeah, this limits you a lot.
+
You can then drag your .dmi file into TweakPNG.
  
=== Turfs ===
+
Copy the chunk named "zTXt".
  
*Floors are in icons/turf/floors.dmi - Check the file for examples
+
Drag on the new .dmi and copy the "zTXt" chunk over and make sure it's anywhere under the "tRNS" chunk.
*Walls are in icons/turf/walls.dmi - Check the file for examples
 
*And some other stuff is in other files in icons/turf/
 
*I think these are pretty self explanatory
 
  
=== Objects ===
+
[[File:Spriting4.gif|frame|none|Oh god what is going on.]]
  
*Items, stuff that you can pick up and use generally require an item sprite and an in-hand sprite. The item sprite can be put in icons/obj/items.dmi or other dmi files, while the in-hand sprite needs to be in icons/mob/items_lefthand.dmi and icons/mob/items_righthand.dmi
+
Open your new .dmi to make sure it worked.
*Clothing: Stuff that you can wear: Generally requires an item sprite in the appropriate dmi file in icons/obj/clothing/ , and in-hand sprite in icons/mob/items_lefthand.dmi and items_righthand.dmi as well as the on-mob sprite in the appropriate file in icons/mob/
 
*Machinery: Usually either just one sprite or separate on-off sprites. It tends to differ from machine to machine
 
  
 +
[[File:Spriting5.png|300px|frame|none|Hey! It worked!]]
  
== Locating sprites ==
+
== Required sprites by object category ==
  
For most objects if you double-click them in the object tree (on the left side of the dream maker window) you will be taken to their definition in code. In the variables below what is highlighted you will often see:
+
Now to tell you what sprites different types of items need:
  
  icon = 'abc.dmi'
+
=== Mobs ===
  icon_state = "sprite_name"
 
  
The icon variable defines the file which contains the sprites and the icon_state defines the name of the sprite in the specified file.
+
*Mob sprites for the most part require four directions.
Sometimes the icon or even icon_state variable will not be set under the definition. This means they're set on a parent level. If you're looking for /obj/item/weapon/storage/belt/full and can't see it, try looking at /obj/item/weapon/storage/belt. If it isn't there try looking for /obj/item/weapon/storage and so on.
+
*Mob sprites require dead sprites.
 +
*If you choose to you can make a laying sprite.
 +
*If making a mob that can wear clothing you can use pixel_y, Pixel_x to shift clothing on when coding the mob.
  
Note that sometimes double-clicking an object in the object tree will not bring you to the object definition. You will know this by the highlighted line not being the same as the path to the object you double-clicked in the object browser. Searching for the definition in such cases can be a bit hard, so I've prepared a list of the most commonly used dmi files for certain objects:
+
==== Mobs with Limbs ====
 +
*Humans and human species are composed of limbs - a head, a chest, two arms and two legs.
 +
*The files are in icons/mob/human_parts.dmi for limbs that have a set color, and on icons/mob/human_parts_greyscale.dmi for limbs that can be recolored and begin greyscaled.
 +
*Limbs have 4 dirs, like full icons.
 +
*Limbs are also used as item icons in case of dismemberment.
 +
*Naming is as follows:
 +
**[race]_l/r_arm/leg for arms and legs.
 +
**[race]_chest(_m/f) for the chest (m/f for male/female variants, optional)
 +
**[race]_head(_m/f) for the head (m/f for male/female variants, optional)
 +
*Extra bodyparts like lizard tails go in mutant_bodyparts.dmi
  
'''/obj/machinery'''<br>
+
=== Turfs ===
icon = 'stationobjs.dmi'<br>
 
definition in: [http://code.google.com/p/tgstation13/source/browse/trunk/code/defines/obj/machinery.dm code/defines/obj/machinery.dm]
 
  
'''/obj/item/weapon/storage'''<br>
+
*Floors are in icons/turf/floors.dmi - Check the file for examples.
icon = 'storage.dmi'<br>
+
*Walls are in icons/turf/walls.dmi - Check the file for examples.
definition in: [http://code.google.com/p/tgstation13/source/browse/trunk/code/defines/obj.dm code/defines/obj.dm]
+
*Shuttle walls and floors are in icons/turf/shuttle.dmi - Check the file for examples.
 +
*Space tiles are in icons/turf/space.dmi - Check the file for examples.
 +
*I think these are pretty self explanatory.
  
'''/obj/item/weapon'''<br>
+
=== Objects ===
icon = 'weapons.dmi'<br>
 
defined in: [http://code.google.com/p/tgstation13/source/browse/trunk/code/defines/obj/weapon.dm code/defines/obj/weapon.dm]
 
  
'''/obj/item'''<br>
+
*Objects sprites are located in the icons/obj folder.
icon = 'items.dmi'<br>
+
*Items sprites are spread throughout said folder.
definition in: [http://code.google.com/p/tgstation13/source/browse/trunk/code/defines/obj.dm code/defines/obj.dm]
+
*Item sprites for the most part require in-hand sprites. They can be located in the icons/mob/items_lefthand.dmi and icons/mob/items_righthand.dmi section.
 +
*Clothing sprites are located in the icons/obj/clothing folder.
 +
*Clothing sprites on mobs can be found in the icons/mob folder.
 +
*Clothing sprites for the most part require in-hand sprites. They can be located in the icons/mob/items_lefthand.dmi and icons/mob/items_righthand.dmi section.
 +
*Machinery sprites are located icons/obj/machines folder. Although a good amount of them are located in the icons/obj folder.
 +
*Door sprites are located under icons/obj/door folder.
 +
*Normal door sprite require door_closed, door_locked, door_opening, door_deny, door_closing, door_open, door_spark, o_door_opening, o_door_closing, panel_open, welded, and elights. I suggest looking over a door dmi.
 +
*Blast doors only require opening and closing sprites and sprites for when it is open and closed.
  
 
== Contributing sprites and finding sprite requests ==
 
== Contributing sprites and finding sprite requests ==
  
 
See [[Guide to contributing to the game#Icons, glyphs, sprites, animations... images|here]] for details.
 
See [[Guide to contributing to the game#Icons, glyphs, sprites, animations... images|here]] for details.
 +
 +
== Guides For Making Sprites ==
 +
 +
https://tgstation13.org/phpBB/viewtopic.php?f=11&t=687
  
 
[[Category:Guides]] [[Category:Game Resources]]
 
[[Category:Guides]] [[Category:Game Resources]]
 
{{Contribution guides}}
 
{{Contribution guides}}

Latest revision as of 07:20, 11 March 2017

This is not a technical guide on how to do sprites in a graphical program, this is a guide intended for people who know how to sprite, but need to know what exactly is needed when people want sprites done for them. Most sprites are 32x32 pixels. They use 32b colors (24b + alpha channel).

Object overview[edit | edit source]

There are 4 types of objects in the game:

  • Area - we won't be interested in these as you can't see it ingame and wip graphics are sufficient,
  • Mob - humans, monkeys, cyborgs, aliens and other living creatures on the station,
  • Objects - machines, doors, items and anything else in the game,
  • Turf - walls, floors and space

The DMI file format[edit | edit source]

Sprites in SS13 are packaged in .dmi files. To make a new dmi file, open up dream maker, select file > new and choose icon file (dmi) from the drop-down menu. Write a file path for it and hit ok.

A new window will open with a blank file. in the upper-right are two spaces for sprite dimensions. Most sprites are 32x32 pixels in size. One dmi file cannot hold sprites of different sizes, unfortunately.

Now right-click somewhere in the whiteness. There are two types of sprite: pixmap and movie. A pixmap is static while a movie can be animated and face multiple directions, that's all the difference. Let's make a movie sprite. (New movie)

A window opens with four directional arrows and 3 frames for each of them, all of them gray. Byond understands 8 directions. You can choose how many you wish to use below the sprites themselves: 1, 4 or 8. You can also select how many frames you wish the animation to have. If you're making a multi-directional static sprite, make a movie with 1 frame, so no animation, but with 4 or 8 directions, depending how many you need. If you wish to have the sprite animated it may also interest you that you can set the delay in 1/10 of a second above the particular frame. Okay, hopefully you'll know what to do from here. The built-in sprite editing tool is very primitive and the only thing worth mentioning in it is how to apply the alpha filter. If you double-click any image you'll get to the sprite editor, and at the right of it is a vertical slider, which controls the alpha channel. Also worth mentioning is that copying from the editor can behave a bit strange, by making full backgrounds despite the alpha filter being set. Just 'flood' the background with a color with an alpha value of 0 or use 'import', which works fine.

Now let's assume we've made your sprites sprites, go back to the dmi file (the screen which showed up when you first made the file). Assuming you've made a sprite, you'll see it in the list there. Double-click just below the actual sprite and a rename window should open, alternatively select the sprite and hit F2 on your keyboard. Give a name to your sprite. This name is often referred as an icon_state, as that's the variable name which defines it in code.

Also note that you can import and export image files of different sorts by selecting the files you wish to export in the editor (hold ctrl to select multiple) and right clicking and selecting export, or right clicking anywhere and selecting import to import. DMI is similar to PNG, so if you rename a DMI's extension to PNG it should work in all graphical editing software. It usually works in reverse too. This makes recoloring quicker.

Now, hopefully that's all the information you need to sprite and make dmi files.

From PNG back to DMI[edit | edit source]

Here's Errorage's video tutorial (thanks Errorage!) on how to convert your beautiful PNG file into a DMI, you can watch this or follow the guide below, they are essentially the same.


The first thing you want to do is download TweakPNG from here,

You then want to copy the .dmi and make it a .png.

Dmi and png files here.

Open the .png file in a photo editing software like GImp or Paint.NET.

Png file opened.

Make any edits you want.

Perfect.

Save/Export the file. Along with opening TweakPNG.

Rename the .png to something new and make it a .dmi.

You can then drag your .dmi file into TweakPNG.

Copy the chunk named "zTXt".

Drag on the new .dmi and copy the "zTXt" chunk over and make sure it's anywhere under the "tRNS" chunk.

Oh god what is going on.

Open your new .dmi to make sure it worked.

Hey! It worked!

Required sprites by object category[edit | edit source]

Now to tell you what sprites different types of items need:

Mobs[edit | edit source]

  • Mob sprites for the most part require four directions.
  • Mob sprites require dead sprites.
  • If you choose to you can make a laying sprite.
  • If making a mob that can wear clothing you can use pixel_y, Pixel_x to shift clothing on when coding the mob.

Mobs with Limbs[edit | edit source]

  • Humans and human species are composed of limbs - a head, a chest, two arms and two legs.
  • The files are in icons/mob/human_parts.dmi for limbs that have a set color, and on icons/mob/human_parts_greyscale.dmi for limbs that can be recolored and begin greyscaled.
  • Limbs have 4 dirs, like full icons.
  • Limbs are also used as item icons in case of dismemberment.
  • Naming is as follows:
    • [race]_l/r_arm/leg for arms and legs.
    • [race]_chest(_m/f) for the chest (m/f for male/female variants, optional)
    • [race]_head(_m/f) for the head (m/f for male/female variants, optional)
  • Extra bodyparts like lizard tails go in mutant_bodyparts.dmi

Turfs[edit | edit source]

  • Floors are in icons/turf/floors.dmi - Check the file for examples.
  • Walls are in icons/turf/walls.dmi - Check the file for examples.
  • Shuttle walls and floors are in icons/turf/shuttle.dmi - Check the file for examples.
  • Space tiles are in icons/turf/space.dmi - Check the file for examples.
  • I think these are pretty self explanatory.

Objects[edit | edit source]

  • Objects sprites are located in the icons/obj folder.
  • Items sprites are spread throughout said folder.
  • Item sprites for the most part require in-hand sprites. They can be located in the icons/mob/items_lefthand.dmi and icons/mob/items_righthand.dmi section.
  • Clothing sprites are located in the icons/obj/clothing folder.
  • Clothing sprites on mobs can be found in the icons/mob folder.
  • Clothing sprites for the most part require in-hand sprites. They can be located in the icons/mob/items_lefthand.dmi and icons/mob/items_righthand.dmi section.
  • Machinery sprites are located icons/obj/machines folder. Although a good amount of them are located in the icons/obj folder.
  • Door sprites are located under icons/obj/door folder.
  • Normal door sprite require door_closed, door_locked, door_opening, door_deny, door_closing, door_open, door_spark, o_door_opening, o_door_closing, panel_open, welded, and elights. I suggest looking over a door dmi.
  • Blast doors only require opening and closing sprites and sprites for when it is open and closed.

Contributing sprites and finding sprite requests[edit | edit source]

See here for details.

Guides For Making Sprites[edit | edit source]

https://tgstation13.org/phpBB/viewtopic.php?f=11&t=687

Contribution guides
General Hosting a server, Setting up git, Guide to working with tgstation as an upstream repository, Downloading the source code, Guide to contributing to the game, Reporting issues, Game resources category, Guide to changelogs
Database (MySQL) Setting up the database, MySQL
Coding Coding standards, Understanding SS13 code, SS13 for experienced programmers, Binary flags‎, Getting Your Pull Accepted, Text Formatting
Mapping Guide to mapping, Map merger
Spriting Guide to spriting
Wiki Guide to contributing to the wiki, Wikicode, Maintainer Assignments