From e87ee2e2a17abffbd03a6389826ecb3e12bf3a36 Mon Sep 17 00:00:00 2001 From: David Capello Date: Mon, 24 Feb 2020 11:34:53 -0300 Subject: [PATCH] Add Slice tool information --- drawing.md | 2 ++ slices.md | 62 ++++++++++++++++++++++++++++++++++++++++++ slices/properties.png | Bin 0 -> 17210 bytes tools/slice-tool.png | Bin 0 -> 202 bytes 4 files changed, 64 insertions(+) create mode 100644 slices.md create mode 100644 slices/properties.png create mode 100644 tools/slice-tool.png diff --git a/drawing.md b/drawing.md index ee03a13..c849476 100644 --- a/drawing.md +++ b/drawing.md @@ -24,6 +24,8 @@ Other tools that will help you in the drawing process: * ![Eyedropper tool icon](tools/eyedropper-tool.png) [Eyedropper](eyedropper.md) (`Alt` or `I` key) * ![Selection tool icon](tools/marquee-tool.png) [Rectangular Marquee](selecting.md) (`M` key) * ![Move tool icon](tools/move-tool.png) [Move Cel](move-tool.md) (`Ctrl` or `⌘` or `V` key) +* ![Slice tool icon](tools/slice-tool.png) [Slice](slices.md) (`Shift+C` key) + --- diff --git a/slices.md b/slices.md new file mode 100644 index 0000000..aa328a3 --- /dev/null +++ b/slices.md @@ -0,0 +1,62 @@ +# Slices + +With the Slice tool ![Slice tool icon](tools/slice-tool.png) you can +indicate regions of your sprite and assign a name/label to that region +with some extra user defined information. There is support to specify +[9-slices](https://en.wikipedia.org/wiki/9-slice_scaling)/9-patches +information. + +With this tool you can: + +1. Create a new slice marking a rectangular region pressing the mouse + button, dragging the mouse, and releasing the button. +1. If the marked rectangle touches existing slices, those slices will + be selected. +1. You can drag-and-drop a set of selected slices to move them to + other place. Or you can resize the whole set of slices dragging + from the corners or edges. +1. After selecting some slices you can delete them pressing the Delete + key or *Edit > Delete* menu option. +1. Double-clicking a slice you will see the [Slice + Properties](#slice-properties) dialog. + +## Slice Properties + +If you double-click a slice, you will see its properties: + +![Slice Properties Dialog](slices/properties.png) + +Here you can specify: + +1. the bounds of the slice in the canvas +1. a 9-slices property to specify an internal rectangle to sub-divide the bounds into sub-slices +1. a pivot to specify the central/base location of the sprite inside the slice + +## Exporting Slices + +You can export each slice as a different sprite using the +[--split-slice option](cli.md/#split-slices). + +You can also export the slice information in a sprite sheet JSON using +the [--data option](cli.md/#data)) or the *File > Export Sprite Sheet* +menu option with the JSON output checked. This is an example of the exported data: + +```json +{ ... + "meta": { + ... + "slices": [ + { "name": "Button-patch", + "color": "#0000ffff", + "keys": [{ "frame": 0, + "bounds": {"x": 118, "y": 118, "w": 20, "h": 21 }, + "center": {"x": 5, "y": 5, "w": 10, "h": 9 } }] } + ] +} +``` + +--- + +**SEE ALSO** + +[Drawing](drawing.md) diff --git a/slices/properties.png b/slices/properties.png new file mode 100644 index 0000000000000000000000000000000000000000..beb2a62d532a4aff8dfd0a4c9600bd64215ad86e GIT binary patch literal 17210 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 literal 0 HcmV?d00001 diff --git a/tools/slice-tool.png b/tools/slice-tool.png new file mode 100644 index 0000000000000000000000000000000000000000..a6817605458e66a5fab294c040a22032deba168d GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRt!2~3u&+eWKq!^2X+?^QKos)S9|O1DXra_9&7gecz1|rNS!*9Wn>2H$RYDrW zfoqlyM^4tuCki~7^YPinE>6LhJMP{|=4ZP6j?HC>v}IZI^$7W1hyM6gf;?~C7i@oX zQ}@T$>1hlW-`@V-+v?42Sec`E#ALnqNA}l2epdUE^BG^)oCmsx!PC{xWt~$(69B&$ BP3Qms literal 0 HcmV?d00001