You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+64-32Lines changed: 64 additions & 32 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,56 +1,94 @@
1
1
# 
2
2
3
-
***Top Down Sprite Maker*** is a flexible and powerful **pixel art character creation tool**. It is a desktop GUI application with executable binaries distributed for Windows, macOS, and Linux distributions.
3
+
***Top Down Sprite Maker***(*TDSM*) is a flexible and powerful **pixel art character creation tool**. It is a desktop GUI application with executable binaries distributed for Windows, macOS, and Linux distributions.
4
4
5
5
[](https://flinkerflitzer.itch.io/tdsm)
While most similar programs are built around a specific sprite style (art style, directions, supported animations, etc.), *TDSM* is built to support **multiple** sprite styles. Furthermore, these sprite styles can be distributed as **ZIP files**, and can thus be **created, modified, and shared** by the community.
<divalign="center">Making myself in the <em>Hokkaido</em> sprite style</div>
19
+
<divalign="center">Customizing a character in a sprite style based on the Generation IV Pokémon games</div>
20
+
21
+
### Flexibility
22
+
23
+
*TDSM* sprite styles define their own composition **layers**, supported **directions** (whether 4, 6, or 8), and **animations**.
24
+
25
+
### Getting and using sprite styles
26
+
27
+
The program launches with a basic "Default" 8-directional 32-bit sprite style that acts as a sort of tech demo.
28
+
29
+
You can download/buy additional sprite styles online. Sprite styles made or approved by me are added to [this Itch.io collection](https://itch.io/c/5834066/top-down-sprite-maker-approved-sprite-styles). Sprite styles inspired by established IPs, such as *Pokémon*, are always distributed for free.
30
+
31
+
### Making your own sprite styles
32
+
33
+
> As of the release of v1.2.0, the scripting API has not yet been properly documented, and the DeltaScript language specification is outdated and does not reflect the semantics of the language interpreter that runs in *TDSM*. These resources will be updated as soon as possible.
34
+
35
+
Making sprite styles for TDSM consists of two main components:
36
+
37
+
* Programming a `manifest.tds` script file that defines the sprite style's composition logic
38
+
* Drawing the assets that are composed according to the rules defined in the script
39
+
40
+
Scripts are written in [*DeltaScript*](https://github.com/jbunke/deltascript) (a scripting language I designed for use with specific applications) and the [*TDSM* scripting API](https://github.com/jbunke/tdsm-api).
41
+
42
+
> A full tutorial and additional resources will be available shortly.
15
43
16
-
## Key Features
44
+
---
45
+
46
+
## Features
47
+
48
+
### Customize
49
+
50
+
*TDSM* gives you complete freedom to customize every facet of your character, yet the sprite assembly rules still ensure that sprites always look good and production-ready.
17
51
18
-
***Multiple sprite styles:** Unlike most pixel art character creators, which are built for a specific sprite art style, *TDSM* is designed and built with a modular, logic-first approach that allows for it to support multiple sprite styles with unique sets of animations, directions, and customization options.
19
-
***Complex customization logic:** Customization layers are connected with rules that cause them to affect each other
20
-
***Layer masks:** Equipping a hat or helmet will mask the hair pixels that should be confined by the headwear [**[ screenshot ]**](https://raw.githubusercontent.com/jbunke/tdsm-art/refs/heads/master/_tdsm/assets/mask.gif)
21
-
***Dynamic updates:** Changing your body type propagates changes to your clothing layers to reflect the updated sprite dimensions without altering the data of the clothing equipped [**[ screenshot ]**](https://raw.githubusercontent.com/jbunke/tdsm-art/refs/heads/master/_tdsm/assets/change-propagation.gif)
22
-
***Controlled randomization:** Each customization layer can be "locked"; locking a layer will ignore it when a random sprite is generated, giving the user granular control over which components may be randomized [**[ screenshot ]**](https://raw.githubusercontent.com/jbunke/tdsm-art/refs/heads/master/_tdsm/logo/itch/feat-lock-layers.gif)
23
-
***100% configurable sprite sheets**
24
-
***Custom sprite size:** Pad or crop each animation frame at any edge for sprites ranging from 1x1 pixel to 128x128 [**[ screenshot ]**](https://raw.githubusercontent.com/jbunke/tdsm-art/refs/heads/master/_tdsm/assets/padding.gif)
25
-
***Sequencing & Inclusion:** Determine the *order of directions and animations in the exported sprite sheet*, as well as which directions and animations to *include*[**[ screenshot ]**](https://raw.githubusercontent.com/jbunke/tdsm-art/refs/heads/master/_tdsm/assets/sequencing.gif)
26
-
***Layout:** Determine the axis along which directions and animations are exported in the sprite sheet, as well as how distinct animations follow one another [**[ screenshot ]**](https://raw.githubusercontent.com/jbunke/tdsm-art/refs/heads/master/_tdsm/assets/layout.gif)
27
-
***Export formats:** In addition to the standard PNG sprite sheet, *TDSM* optionally exports the sprite sheet's metadata in a JSON file, and the sprite sheet as a [*Stipple Effect*](https://github.com/stipple-effect/stipple-effect) project with the contents of each customization layer on its own layer in the file [**[ screenshot ]**](https://raw.githubusercontent.com/jbunke/tdsm-art/refs/heads/master/_tdsm/assets/export-formats.gif)
52
+
***Controlled randomization**: Generate random sprites with the click of a button. Randomization can be constrained by **locking** customization layers you wish to exclude. [**[ screenshot ]**](https://raw.githubusercontent.com/jbunke/tdsm-art/refs/heads/master/_tdsm/logo/itch/feat-lock-layers.gif)
53
+
***Smart layering rules**: Customization layers update dynamically based on changes to other layers they depend on. For example, changing your body type from "average" to "small" in the [*Pokémon* Gen. 4 Trainer](https://flinkerflitzer.itch.io/pokemon-gen-4-trainer) style will render your head a pixel lower and switch to the small body clothing assets, but the outfit choice will stay the same.
28
54
29
-
##Contributing
55
+
### Configure
30
56
31
-
You can help me develop *TDSM*on both the programming and artistic fronts!
57
+
Configure your sprite sheet to your exact needs. Have *TDSM*adapt to your existing projects rather than having to rework code or sprite sheet slicing configurations.
32
58
33
-
### Code
59
+
***Sizing**: Crop or pad individual sprites to your liking, ranging from 1x1 px to 128x128 px [**[ screenshot ]**](https://raw.githubusercontent.com/jbunke/tdsm-art/refs/heads/master/_tdsm/assets/padding.gif)
60
+
***Sequencing**: Determine which directions and animations to include in the export, and **in which order**[**[ screenshot ]**](https://raw.githubusercontent.com/jbunke/tdsm-art/refs/heads/master/_tdsm/assets/sequencing.gif)
61
+
***Layout**: Determine the axis along which directions and animations are exported in the sprite sheet, as well as how distinct animations follow one another [**[ screenshot ]**](https://raw.githubusercontent.com/jbunke/tdsm-art/refs/heads/master/_tdsm/assets/layout.gif)
34
62
35
-
* Follow [this link](https://github.com/jbunke/tdsm/issues) and press the **New issue** button to report a bug.
36
-
* If you identify a bug that you think you can fix yourself, you are welcome to **fork the repository**, make your changes, and **submit a pull request** to the `dev` branch of this repository.
63
+
### Export
37
64
38
-
### Art
65
+
Export sprite sheets and associated data from TDSM in seconds.
39
66
40
-
* Check out the *TDSM*[art repo](https://github.com/jbunke/tdsm-art) for information on contributing art as a pixel artist.
67
+
* Sprite sheet as a PNG image
68
+
* Sprite sheet metadata as JSON *\[optional\]*
69
+
* Sprite sheet with customization layers separated as [*Stipple Effect*](https://github.com/stipple-effect/stipple-effect) project (`.stip`) *\[optional\]*
70
+
71
+
### Save and load sprite data
72
+
73
+
Sprite customization data can be loaded into *TDSM* by uploading a JSON metadata file that matches a sprite style present in the current program session.
74
+
75
+
---
76
+
77
+
## Contribute
78
+
79
+
You can help me develop *TDSM* by [reporting bugs](https://github.com/jbunke/tdsm/issues/new?template=bug_report.md).
41
80
42
81
## License
43
82
44
83
*TDSM* is distributed under an [end-user license agreement](./LICENSE) (EULA).
45
84
46
-
### Dos and Don'ts
47
-
48
-
**You may...**
85
+
### You may...
49
86
50
87
* Use *TDSM* for personal or commercial projects
51
88
* Clone the *TDSM* source code and privately modify it to suit your needs
89
+
* Distribute or sell *TDSM* sprite styles consisting of original work
52
90
53
-
**You may not...**
91
+
### You may not...
54
92
55
93
* Distribute or sell copies of *TDSM* (whether modified or not)
56
94
* Use *TDSM* for NFT or crypto-related projects
@@ -59,9 +97,3 @@ You can help me develop *TDSM* on both the programming and artistic fronts!
59
97
> **Note:**
60
98
>
61
99
> Some sprite styles featured in TDSM are based on established IPs. The use of sprites in such styles in commercial projects (fan games, etc.) may infringe upon the copyright of the associated copyright holder.
62
-
63
-
## Dependencies
64
-
65
-
***[_Delta Time_](https://github.com/jbunke/delta-time):** Handles GUI, execution loop, underlying menu logic, and sprite assembly
66
-
***[_STIP Parser_](https://github.com/stipple-effect/stip-parser):** Writes the layer-wise separated sprite sheet to a *Stipple Effect* project file (`.stip`)
67
-
***[_Color Processing_](https://github.com/jbunke/color-processing):** Color processing utilities like converting RGB to HSV
0 commit comments