@sprite-foundry/fantasy-heroes-48 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/LICENSE +21 -0
- package/README.md +150 -0
- package/assets/barbarian/albedo/back.png +0 -0
- package/assets/barbarian/albedo/back_left.png +0 -0
- package/assets/barbarian/albedo/back_right.png +0 -0
- package/assets/barbarian/albedo/front.png +0 -0
- package/assets/barbarian/albedo/front_left.png +0 -0
- package/assets/barbarian/albedo/front_right.png +0 -0
- package/assets/barbarian/albedo/left.png +0 -0
- package/assets/barbarian/albedo/right.png +0 -0
- package/assets/barbarian/depth/back.png +0 -0
- package/assets/barbarian/depth/back_left.png +0 -0
- package/assets/barbarian/depth/back_right.png +0 -0
- package/assets/barbarian/depth/front.png +0 -0
- package/assets/barbarian/depth/front_left.png +0 -0
- package/assets/barbarian/depth/front_right.png +0 -0
- package/assets/barbarian/depth/left.png +0 -0
- package/assets/barbarian/depth/right.png +0 -0
- package/assets/barbarian/manifest.json +13 -0
- package/assets/barbarian/normal/back.png +0 -0
- package/assets/barbarian/normal/back_left.png +0 -0
- package/assets/barbarian/normal/back_right.png +0 -0
- package/assets/barbarian/normal/front.png +0 -0
- package/assets/barbarian/normal/front_left.png +0 -0
- package/assets/barbarian/normal/front_right.png +0 -0
- package/assets/barbarian/normal/left.png +0 -0
- package/assets/barbarian/normal/right.png +0 -0
- package/assets/barbarian/preview/contact_sheet.png +0 -0
- package/assets/cleric/albedo/back.png +0 -0
- package/assets/cleric/albedo/back_left.png +0 -0
- package/assets/cleric/albedo/back_right.png +0 -0
- package/assets/cleric/albedo/front.png +0 -0
- package/assets/cleric/albedo/front_left.png +0 -0
- package/assets/cleric/albedo/front_right.png +0 -0
- package/assets/cleric/albedo/left.png +0 -0
- package/assets/cleric/albedo/right.png +0 -0
- package/assets/cleric/depth/back.png +0 -0
- package/assets/cleric/depth/back_left.png +0 -0
- package/assets/cleric/depth/back_right.png +0 -0
- package/assets/cleric/depth/front.png +0 -0
- package/assets/cleric/depth/front_left.png +0 -0
- package/assets/cleric/depth/front_right.png +0 -0
- package/assets/cleric/depth/left.png +0 -0
- package/assets/cleric/depth/right.png +0 -0
- package/assets/cleric/manifest.json +13 -0
- package/assets/cleric/normal/back.png +0 -0
- package/assets/cleric/normal/back_left.png +0 -0
- package/assets/cleric/normal/back_right.png +0 -0
- package/assets/cleric/normal/front.png +0 -0
- package/assets/cleric/normal/front_left.png +0 -0
- package/assets/cleric/normal/front_right.png +0 -0
- package/assets/cleric/normal/left.png +0 -0
- package/assets/cleric/normal/right.png +0 -0
- package/assets/cleric/preview/contact_sheet.png +0 -0
- package/assets/fighter/albedo/back.png +0 -0
- package/assets/fighter/albedo/back_left.png +0 -0
- package/assets/fighter/albedo/back_right.png +0 -0
- package/assets/fighter/albedo/front.png +0 -0
- package/assets/fighter/albedo/front_left.png +0 -0
- package/assets/fighter/albedo/front_right.png +0 -0
- package/assets/fighter/albedo/left.png +0 -0
- package/assets/fighter/albedo/right.png +0 -0
- package/assets/fighter/depth/back.png +0 -0
- package/assets/fighter/depth/back_left.png +0 -0
- package/assets/fighter/depth/back_right.png +0 -0
- package/assets/fighter/depth/front.png +0 -0
- package/assets/fighter/depth/front_left.png +0 -0
- package/assets/fighter/depth/front_right.png +0 -0
- package/assets/fighter/depth/left.png +0 -0
- package/assets/fighter/depth/right.png +0 -0
- package/assets/fighter/manifest.json +13 -0
- package/assets/fighter/normal/back.png +0 -0
- package/assets/fighter/normal/back_left.png +0 -0
- package/assets/fighter/normal/back_right.png +0 -0
- package/assets/fighter/normal/front.png +0 -0
- package/assets/fighter/normal/front_left.png +0 -0
- package/assets/fighter/normal/front_right.png +0 -0
- package/assets/fighter/normal/left.png +0 -0
- package/assets/fighter/normal/right.png +0 -0
- package/assets/fighter/preview/contact_sheet.png +0 -0
- package/assets/mage/albedo/back.png +0 -0
- package/assets/mage/albedo/back_left.png +0 -0
- package/assets/mage/albedo/back_right.png +0 -0
- package/assets/mage/albedo/front.png +0 -0
- package/assets/mage/albedo/front_left.png +0 -0
- package/assets/mage/albedo/front_right.png +0 -0
- package/assets/mage/albedo/left.png +0 -0
- package/assets/mage/albedo/right.png +0 -0
- package/assets/mage/depth/back.png +0 -0
- package/assets/mage/depth/back_left.png +0 -0
- package/assets/mage/depth/back_right.png +0 -0
- package/assets/mage/depth/front.png +0 -0
- package/assets/mage/depth/front_left.png +0 -0
- package/assets/mage/depth/front_right.png +0 -0
- package/assets/mage/depth/left.png +0 -0
- package/assets/mage/depth/right.png +0 -0
- package/assets/mage/manifest.json +13 -0
- package/assets/mage/normal/back.png +0 -0
- package/assets/mage/normal/back_left.png +0 -0
- package/assets/mage/normal/back_right.png +0 -0
- package/assets/mage/normal/front.png +0 -0
- package/assets/mage/normal/front_left.png +0 -0
- package/assets/mage/normal/front_right.png +0 -0
- package/assets/mage/normal/left.png +0 -0
- package/assets/mage/normal/right.png +0 -0
- package/assets/mage/preview/contact_sheet.png +0 -0
- package/assets/monk/albedo/back.png +0 -0
- package/assets/monk/albedo/back_left.png +0 -0
- package/assets/monk/albedo/back_right.png +0 -0
- package/assets/monk/albedo/front.png +0 -0
- package/assets/monk/albedo/front_left.png +0 -0
- package/assets/monk/albedo/front_right.png +0 -0
- package/assets/monk/albedo/left.png +0 -0
- package/assets/monk/albedo/right.png +0 -0
- package/assets/monk/depth/back.png +0 -0
- package/assets/monk/depth/back_left.png +0 -0
- package/assets/monk/depth/back_right.png +0 -0
- package/assets/monk/depth/front.png +0 -0
- package/assets/monk/depth/front_left.png +0 -0
- package/assets/monk/depth/front_right.png +0 -0
- package/assets/monk/depth/left.png +0 -0
- package/assets/monk/depth/right.png +0 -0
- package/assets/monk/manifest.json +13 -0
- package/assets/monk/normal/back.png +0 -0
- package/assets/monk/normal/back_left.png +0 -0
- package/assets/monk/normal/back_right.png +0 -0
- package/assets/monk/normal/front.png +0 -0
- package/assets/monk/normal/front_left.png +0 -0
- package/assets/monk/normal/front_right.png +0 -0
- package/assets/monk/normal/left.png +0 -0
- package/assets/monk/normal/right.png +0 -0
- package/assets/monk/preview/contact_sheet.png +0 -0
- package/assets/paladin/albedo/back.png +0 -0
- package/assets/paladin/albedo/back_left.png +0 -0
- package/assets/paladin/albedo/back_right.png +0 -0
- package/assets/paladin/albedo/front.png +0 -0
- package/assets/paladin/albedo/front_left.png +0 -0
- package/assets/paladin/albedo/front_right.png +0 -0
- package/assets/paladin/albedo/left.png +0 -0
- package/assets/paladin/albedo/right.png +0 -0
- package/assets/paladin/depth/back.png +0 -0
- package/assets/paladin/depth/back_left.png +0 -0
- package/assets/paladin/depth/back_right.png +0 -0
- package/assets/paladin/depth/front.png +0 -0
- package/assets/paladin/depth/front_left.png +0 -0
- package/assets/paladin/depth/front_right.png +0 -0
- package/assets/paladin/depth/left.png +0 -0
- package/assets/paladin/depth/right.png +0 -0
- package/assets/paladin/manifest.json +13 -0
- package/assets/paladin/normal/back.png +0 -0
- package/assets/paladin/normal/back_left.png +0 -0
- package/assets/paladin/normal/back_right.png +0 -0
- package/assets/paladin/normal/front.png +0 -0
- package/assets/paladin/normal/front_left.png +0 -0
- package/assets/paladin/normal/front_right.png +0 -0
- package/assets/paladin/normal/left.png +0 -0
- package/assets/paladin/normal/right.png +0 -0
- package/assets/paladin/preview/contact_sheet.png +0 -0
- package/assets/ranger/albedo/back.png +0 -0
- package/assets/ranger/albedo/back_left.png +0 -0
- package/assets/ranger/albedo/back_right.png +0 -0
- package/assets/ranger/albedo/front.png +0 -0
- package/assets/ranger/albedo/front_left.png +0 -0
- package/assets/ranger/albedo/front_right.png +0 -0
- package/assets/ranger/albedo/left.png +0 -0
- package/assets/ranger/albedo/right.png +0 -0
- package/assets/ranger/depth/back.png +0 -0
- package/assets/ranger/depth/back_left.png +0 -0
- package/assets/ranger/depth/back_right.png +0 -0
- package/assets/ranger/depth/front.png +0 -0
- package/assets/ranger/depth/front_left.png +0 -0
- package/assets/ranger/depth/front_right.png +0 -0
- package/assets/ranger/depth/left.png +0 -0
- package/assets/ranger/depth/right.png +0 -0
- package/assets/ranger/manifest.json +13 -0
- package/assets/ranger/normal/back.png +0 -0
- package/assets/ranger/normal/back_left.png +0 -0
- package/assets/ranger/normal/back_right.png +0 -0
- package/assets/ranger/normal/front.png +0 -0
- package/assets/ranger/normal/front_left.png +0 -0
- package/assets/ranger/normal/front_right.png +0 -0
- package/assets/ranger/normal/left.png +0 -0
- package/assets/ranger/normal/right.png +0 -0
- package/assets/ranger/preview/contact_sheet.png +0 -0
- package/assets/rogue/albedo/back.png +0 -0
- package/assets/rogue/albedo/back_left.png +0 -0
- package/assets/rogue/albedo/back_right.png +0 -0
- package/assets/rogue/albedo/front.png +0 -0
- package/assets/rogue/albedo/front_left.png +0 -0
- package/assets/rogue/albedo/front_right.png +0 -0
- package/assets/rogue/albedo/left.png +0 -0
- package/assets/rogue/albedo/right.png +0 -0
- package/assets/rogue/depth/back.png +0 -0
- package/assets/rogue/depth/back_left.png +0 -0
- package/assets/rogue/depth/back_right.png +0 -0
- package/assets/rogue/depth/front.png +0 -0
- package/assets/rogue/depth/front_left.png +0 -0
- package/assets/rogue/depth/front_right.png +0 -0
- package/assets/rogue/depth/left.png +0 -0
- package/assets/rogue/depth/right.png +0 -0
- package/assets/rogue/manifest.json +13 -0
- package/assets/rogue/normal/back.png +0 -0
- package/assets/rogue/normal/back_left.png +0 -0
- package/assets/rogue/normal/back_right.png +0 -0
- package/assets/rogue/normal/front.png +0 -0
- package/assets/rogue/normal/front_left.png +0 -0
- package/assets/rogue/normal/front_right.png +0 -0
- package/assets/rogue/normal/left.png +0 -0
- package/assets/rogue/normal/right.png +0 -0
- package/assets/rogue/preview/contact_sheet.png +0 -0
- package/pack.json +18 -0
- package/package.json +44 -0
- package/previews/banner.png +0 -0
- package/previews/lineup.png +0 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [1.0.0] — Unreleased
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- 8 hero archetypes: Fighter, Ranger, Mage, Rogue, Cleric, Barbarian, Paladin, Monk
|
|
13
|
+
- 8 directions per variant (front, front_left, left, back_left, back, back_right, right, front_right)
|
|
14
|
+
- 3 layers per direction: albedo, normal map, depth map
|
|
15
|
+
- 192 total sprite assets (8 variants × 8 directions × 3 layers)
|
|
16
|
+
- Pack-level index (`pack.json`) and per-variant manifests
|
|
17
|
+
- Contact sheet previews per variant
|
|
18
|
+
- Asset verification script (`npm run verify`)
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 MCP Tool Shop
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<a href="README.ja.md">日本語</a> | <a href="README.zh.md">中文</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.hi.md">हिन्दी</a> | <a href="README.it.md">Italiano</a> | <a href="README.pt-BR.md">Português (BR)</a>
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<img src="https://raw.githubusercontent.com/mcp-tool-shop-org/brand/main/logos/fantasy-heroes-sprite-pack/readme.png" width="400" alt="Fantasy Heroes" />
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://github.com/mcp-tool-shop-org/fantasy-heroes-sprite-pack/actions"><img src="https://github.com/mcp-tool-shop-org/fantasy-heroes-sprite-pack/actions/workflows/ci.yml/badge.svg" alt="CI" /></a>
|
|
11
|
+
<a href="https://www.npmjs.com/package/@sprite-foundry/fantasy-heroes-48"><img src="https://img.shields.io/npm/v/@sprite-foundry/fantasy-heroes-48" alt="npm version" /></a>
|
|
12
|
+
<a href="https://github.com/mcp-tool-shop-org/fantasy-heroes-sprite-pack/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="MIT License" /></a>
|
|
13
|
+
<a href="https://mcp-tool-shop-org.github.io/fantasy-heroes-sprite-pack/"><img src="https://img.shields.io/badge/Landing_Page-live-blue" alt="Landing Page" /></a>
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
A 48px, 8-direction pixel-art hero party pack with albedo, normal, and depth maps for engine-agnostic game use.
|
|
17
|
+
|
|
18
|
+

|
|
19
|
+
|
|
20
|
+
## What's Included
|
|
21
|
+
|
|
22
|
+
8 hero archetypes forming a complete adventuring party:
|
|
23
|
+
|
|
24
|
+

|
|
25
|
+
|
|
26
|
+
| Variant | Role | Silhouette |
|
|
27
|
+
|---------|------|------------|
|
|
28
|
+
| Fighter | Frontline all-rounder | Sword + shield, balanced armored frame |
|
|
29
|
+
| Ranger | Ranged striker | Bow, cloak, lighter silhouette |
|
|
30
|
+
| Mage | Caster | Staff, robe, high magical silhouette |
|
|
31
|
+
| Rogue | Flanker | Hood, light armor, daggers, low agile posture |
|
|
32
|
+
| Cleric | Healer/support | Flanged mace, buckler with sun emblem, vestments |
|
|
33
|
+
| Barbarian | Heavy damage | Huge weapon, broad upper body, fur/leather mass |
|
|
34
|
+
| Paladin | Elite tank | Full plate, kite shield, warhammer, cape |
|
|
35
|
+
| Monk | Fast specialist | Unarmored, wraps, bo staff, disciplined silhouette |
|
|
36
|
+
|
|
37
|
+
Each variant ships with three map layers:
|
|
38
|
+
|
|
39
|
+
- **Albedo** — base color sprites (transparent PNG)
|
|
40
|
+
- **Normal** — normal maps for dynamic lighting
|
|
41
|
+
- **Depth** — depth maps for parallax and elevation effects
|
|
42
|
+
|
|
43
|
+
## Install
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm install @sprite-foundry/fantasy-heroes-48
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Folder Structure
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
assets/
|
|
53
|
+
fighter/
|
|
54
|
+
albedo/ 8 directional PNGs (front, front_left, left, back_left, back, back_right, right, front_right)
|
|
55
|
+
normal/ 8 matching normal maps
|
|
56
|
+
depth/ 8 matching depth maps
|
|
57
|
+
preview/ contact sheet
|
|
58
|
+
manifest.json
|
|
59
|
+
ranger/
|
|
60
|
+
mage/
|
|
61
|
+
rogue/
|
|
62
|
+
cleric/
|
|
63
|
+
barbarian/
|
|
64
|
+
paladin/
|
|
65
|
+
monk/
|
|
66
|
+
pack.json pack-level index
|
|
67
|
+
previews/ banner and lineup sheets
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Manifest Format
|
|
71
|
+
|
|
72
|
+
Each variant has a `manifest.json`:
|
|
73
|
+
|
|
74
|
+
```json
|
|
75
|
+
{
|
|
76
|
+
"slug": "fighter",
|
|
77
|
+
"name": "Fighter",
|
|
78
|
+
"version": "1.0.0",
|
|
79
|
+
"tileSize": 48,
|
|
80
|
+
"directions": ["front", "front_left", "left", "back_left", "back", "back_right", "right", "front_right"],
|
|
81
|
+
"layers": {
|
|
82
|
+
"albedo": "albedo/{direction}.png",
|
|
83
|
+
"normal": "normal/{direction}.png",
|
|
84
|
+
"depth": "depth/{direction}.png"
|
|
85
|
+
},
|
|
86
|
+
"preview": "preview/contact_sheet.png"
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
The pack-level `pack.json` indexes all variants with paths to each manifest.
|
|
91
|
+
|
|
92
|
+
## Engine Compatibility
|
|
93
|
+
|
|
94
|
+
These are plain PNG files with JSON metadata. They work with any engine or framework that can load images:
|
|
95
|
+
|
|
96
|
+
- Phaser
|
|
97
|
+
- PixiJS
|
|
98
|
+
- Godot
|
|
99
|
+
- RPG Maker
|
|
100
|
+
- Unity (2D)
|
|
101
|
+
- Custom engines
|
|
102
|
+
|
|
103
|
+
No engine-specific format or runtime dependency.
|
|
104
|
+
|
|
105
|
+
## Specs
|
|
106
|
+
|
|
107
|
+
- **Tile size:** 48 x 48 px
|
|
108
|
+
- **Directions:** 8 (front, front_left, left, back_left, back, back_right, right, front_right)
|
|
109
|
+
- **Format:** transparent PNG
|
|
110
|
+
- **Maps:** albedo + normal + depth
|
|
111
|
+
- **Animation:** static poses (v1)
|
|
112
|
+
- **Perspective:** top-down
|
|
113
|
+
|
|
114
|
+
## Extending the Pack
|
|
115
|
+
|
|
116
|
+
Want to generate additional hero variants that match this pack's art style and export contract?
|
|
117
|
+
|
|
118
|
+
This pack was produced with [Sprite Foundry](https://github.com/mcp-tool-shop-org/sprite-foundry), an open-source ComfyUI + SDXL pixel-art generation pipeline. The foundry repo contains everything you need:
|
|
119
|
+
|
|
120
|
+
- **Generation pipeline** — `pipeline/foundry_gen.py` drives ComfyUI with per-subject configs
|
|
121
|
+
- **Subject configs** — `pipeline/chars/hero_*.json` define the exact prompts, seeds, silhouette rules, and reject conditions for every variant in this pack
|
|
122
|
+
- **Batch manifest** — `pipeline/manifests/fantasy_heroes_03.json` maps all 8 configs to the export structure
|
|
123
|
+
- **Export CLI** — `foundry export <run_id>` produces deterministic packs with checksums
|
|
124
|
+
- **ControlNet tuning** — humanoid depth strength 0.60, end% 0.85 (documented in the manifest)
|
|
125
|
+
|
|
126
|
+
To add a new variant:
|
|
127
|
+
|
|
128
|
+
1. Create a subject config in `pipeline/chars/` following the existing hero configs
|
|
129
|
+
2. Register: `python -m foundry.cli subject-add <id> --name "Name"`
|
|
130
|
+
3. Generate: `python -m pipeline.foundry_gen --config pipeline/chars/<config>.json`
|
|
131
|
+
4. Review, accept, produce maps, accept finish, export
|
|
132
|
+
5. Copy the exported pack into the matching `assets/<slug>/` directory
|
|
133
|
+
|
|
134
|
+
The [Sprite Foundry README](https://github.com/mcp-tool-shop-org/sprite-foundry#readme) has the full pipeline walkthrough.
|
|
135
|
+
|
|
136
|
+
## Security
|
|
137
|
+
|
|
138
|
+
This package contains **only static PNG images and JSON metadata**. There is no executable code, no install hooks, no network access, and no telemetry. Assets are read-only by design.
|
|
139
|
+
|
|
140
|
+
See [SECURITY.md](SECURITY.md) for the full security policy.
|
|
141
|
+
|
|
142
|
+
## License
|
|
143
|
+
|
|
144
|
+
MIT — use in commercial and non-commercial projects.
|
|
145
|
+
|
|
146
|
+
## Credits
|
|
147
|
+
|
|
148
|
+
Generated with [Sprite Foundry](https://github.com/mcp-tool-shop-org/sprite-foundry) using ComfyUI + SDXL pixel-art pipeline.
|
|
149
|
+
|
|
150
|
+
Built by <a href="https://mcp-tool-shop.github.io/">MCP Tool Shop</a>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "barbarian",
|
|
3
|
+
"name": "Barbarian",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"tileSize": 48,
|
|
6
|
+
"directions": ["front", "front_left", "left", "back_left", "back", "back_right", "right", "front_right"],
|
|
7
|
+
"layers": {
|
|
8
|
+
"albedo": "albedo/{direction}.png",
|
|
9
|
+
"normal": "normal/{direction}.png",
|
|
10
|
+
"depth": "depth/{direction}.png"
|
|
11
|
+
},
|
|
12
|
+
"preview": "preview/contact_sheet.png"
|
|
13
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "cleric",
|
|
3
|
+
"name": "Cleric",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"tileSize": 48,
|
|
6
|
+
"directions": ["front", "front_left", "left", "back_left", "back", "back_right", "right", "front_right"],
|
|
7
|
+
"layers": {
|
|
8
|
+
"albedo": "albedo/{direction}.png",
|
|
9
|
+
"normal": "normal/{direction}.png",
|
|
10
|
+
"depth": "depth/{direction}.png"
|
|
11
|
+
},
|
|
12
|
+
"preview": "preview/contact_sheet.png"
|
|
13
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "fighter",
|
|
3
|
+
"name": "Fighter",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"tileSize": 48,
|
|
6
|
+
"directions": ["front", "front_left", "left", "back_left", "back", "back_right", "right", "front_right"],
|
|
7
|
+
"layers": {
|
|
8
|
+
"albedo": "albedo/{direction}.png",
|
|
9
|
+
"normal": "normal/{direction}.png",
|
|
10
|
+
"depth": "depth/{direction}.png"
|
|
11
|
+
},
|
|
12
|
+
"preview": "preview/contact_sheet.png"
|
|
13
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "mage",
|
|
3
|
+
"name": "Mage",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"tileSize": 48,
|
|
6
|
+
"directions": ["front", "front_left", "left", "back_left", "back", "back_right", "right", "front_right"],
|
|
7
|
+
"layers": {
|
|
8
|
+
"albedo": "albedo/{direction}.png",
|
|
9
|
+
"normal": "normal/{direction}.png",
|
|
10
|
+
"depth": "depth/{direction}.png"
|
|
11
|
+
},
|
|
12
|
+
"preview": "preview/contact_sheet.png"
|
|
13
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "monk",
|
|
3
|
+
"name": "Monk",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"tileSize": 48,
|
|
6
|
+
"directions": ["front", "front_left", "left", "back_left", "back", "back_right", "right", "front_right"],
|
|
7
|
+
"layers": {
|
|
8
|
+
"albedo": "albedo/{direction}.png",
|
|
9
|
+
"normal": "normal/{direction}.png",
|
|
10
|
+
"depth": "depth/{direction}.png"
|
|
11
|
+
},
|
|
12
|
+
"preview": "preview/contact_sheet.png"
|
|
13
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "paladin",
|
|
3
|
+
"name": "Paladin",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"tileSize": 48,
|
|
6
|
+
"directions": ["front", "front_left", "left", "back_left", "back", "back_right", "right", "front_right"],
|
|
7
|
+
"layers": {
|
|
8
|
+
"albedo": "albedo/{direction}.png",
|
|
9
|
+
"normal": "normal/{direction}.png",
|
|
10
|
+
"depth": "depth/{direction}.png"
|
|
11
|
+
},
|
|
12
|
+
"preview": "preview/contact_sheet.png"
|
|
13
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "ranger",
|
|
3
|
+
"name": "Ranger",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"tileSize": 48,
|
|
6
|
+
"directions": ["front", "front_left", "left", "back_left", "back", "back_right", "right", "front_right"],
|
|
7
|
+
"layers": {
|
|
8
|
+
"albedo": "albedo/{direction}.png",
|
|
9
|
+
"normal": "normal/{direction}.png",
|
|
10
|
+
"depth": "depth/{direction}.png"
|
|
11
|
+
},
|
|
12
|
+
"preview": "preview/contact_sheet.png"
|
|
13
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"slug": "rogue",
|
|
3
|
+
"name": "Rogue",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"tileSize": 48,
|
|
6
|
+
"directions": ["front", "front_left", "left", "back_left", "back", "back_right", "right", "front_right"],
|
|
7
|
+
"layers": {
|
|
8
|
+
"albedo": "albedo/{direction}.png",
|
|
9
|
+
"normal": "normal/{direction}.png",
|
|
10
|
+
"depth": "depth/{direction}.png"
|
|
11
|
+
},
|
|
12
|
+
"preview": "preview/contact_sheet.png"
|
|
13
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/pack.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Fantasy Heroes",
|
|
3
|
+
"slug": "fantasy-heroes-03",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"tileSize": 48,
|
|
6
|
+
"directions": ["front", "front_left", "left", "back_left", "back", "back_right", "right", "front_right"],
|
|
7
|
+
"layers": ["albedo", "normal", "depth"],
|
|
8
|
+
"variants": [
|
|
9
|
+
{ "slug": "fighter", "name": "Fighter", "role": "frontline all-rounder", "path": "assets/fighter/manifest.json" },
|
|
10
|
+
{ "slug": "ranger", "name": "Ranger", "role": "ranged striker", "path": "assets/ranger/manifest.json" },
|
|
11
|
+
{ "slug": "mage", "name": "Mage", "role": "caster", "path": "assets/mage/manifest.json" },
|
|
12
|
+
{ "slug": "rogue", "name": "Rogue", "role": "flanker", "path": "assets/rogue/manifest.json" },
|
|
13
|
+
{ "slug": "cleric", "name": "Cleric", "role": "healer/support", "path": "assets/cleric/manifest.json" },
|
|
14
|
+
{ "slug": "barbarian", "name": "Barbarian", "role": "heavy damage", "path": "assets/barbarian/manifest.json" },
|
|
15
|
+
{ "slug": "paladin", "name": "Paladin", "role": "elite tank", "path": "assets/paladin/manifest.json" },
|
|
16
|
+
{ "slug": "monk", "name": "Monk", "role": "fast specialist", "path": "assets/monk/manifest.json" }
|
|
17
|
+
]
|
|
18
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sprite-foundry/fantasy-heroes-48",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Fantasy Heroes — Pack 03 | 8 hero archetypes × 8 directions × 3 layers | 48px pixel-art sprite pack",
|
|
5
|
+
"author": "mcp-tool-shop",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/mcp-tool-shop-org/fantasy-heroes-sprite-pack"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://mcp-tool-shop-org.github.io/fantasy-heroes-sprite-pack/",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"sprites",
|
|
14
|
+
"pixel-art",
|
|
15
|
+
"fantasy",
|
|
16
|
+
"heroes",
|
|
17
|
+
"party",
|
|
18
|
+
"game-assets",
|
|
19
|
+
"48px",
|
|
20
|
+
"normal-maps",
|
|
21
|
+
"depth-maps",
|
|
22
|
+
"8-direction",
|
|
23
|
+
"rpg",
|
|
24
|
+
"dungeon-crawler",
|
|
25
|
+
"tactics"
|
|
26
|
+
],
|
|
27
|
+
"scripts": {
|
|
28
|
+
"verify": "node -e \"const fs=require('fs');const p=require('./pack.json');let ok=true;for(const v of p.variants){const m=JSON.parse(fs.readFileSync(v.path,'utf8'));for(const d of m.directions){for(const[l,pat]of Object.entries(m.layers)){const f=v.path.replace('manifest.json','')+pat.replace('{direction}',d);if(!fs.existsSync(f)){console.error('MISSING:',f);ok=false}}}}if(ok){console.log('All assets verified')}else{process.exit(1)}\""
|
|
29
|
+
},
|
|
30
|
+
"files": [
|
|
31
|
+
"assets/",
|
|
32
|
+
"previews/",
|
|
33
|
+
"pack.json",
|
|
34
|
+
"CHANGELOG.md",
|
|
35
|
+
"LICENSE",
|
|
36
|
+
"README.md"
|
|
37
|
+
],
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=14.0.0"
|
|
40
|
+
},
|
|
41
|
+
"publishConfig": {
|
|
42
|
+
"access": "public"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
Binary file
|
|
Binary file
|