Remove docs/manual/ directory.
10
README.html
@ -166,7 +166,10 @@ data/widgets/*.xml XML files with dialogs</pre>
|
||||
|
||||
<a name="authors"></a><h1>AUTHORS</h1>
|
||||
<div class="author">David Capello <<a href="mailto:davidcapello@gmail.com">davidcapello@gmail.com</a>></div>
|
||||
<div class="details">Programmer, designer, and maintainer.</div>
|
||||
<div class="details">
|
||||
Programmer, designer, and maintainer.
|
||||
<a href="http://dacap.com.ar/">http://dacap.com.ar/</a>
|
||||
</div>
|
||||
<div class="author">Ilija Melentijevic</div>
|
||||
<div class="details">
|
||||
New GUI skin (from ASEPRITE 0.8). A lot of good ideas.
|
||||
@ -176,8 +179,9 @@ data/widgets/*.xml XML files with dialogs</pre>
|
||||
<div class="author">Trent Gamblin</div>
|
||||
<div class="details">Mac OS X packager.</div>
|
||||
<p>
|
||||
Thanks to all the people which have contributed ideas, patches, bugs
|
||||
report, feature requests, donations, and help me developing ASEPRITE.
|
||||
Thanks to all the people who have contributed ideas, patches, bugs
|
||||
report, feature requests, donations, and help me developing
|
||||
ASEPRITE.
|
||||
</p>
|
||||
<a name="thankfulness"></a><h2>CREDITS</h2>
|
||||
<p>
|
||||
|
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 10 KiB |
Before Width: | Height: | Size: 281 B |
Before Width: | Height: | Size: 508 B |
Before Width: | Height: | Size: 1.2 KiB |
@ -1,16 +0,0 @@
|
||||
ifndef PYTHON
|
||||
PYTHON = C:/Python26/python.exe
|
||||
endif
|
||||
|
||||
RST2HTML = docutils/tools/rst2html.py
|
||||
|
||||
default: all
|
||||
|
||||
all:
|
||||
$(PYTHON) $(RST2HTML) --config manual.conf manual.rst > manual.html
|
||||
|
||||
split:
|
||||
$(PYTHON) split.py
|
||||
|
||||
clean:
|
||||
rm *.html
|
@ -1,4 +0,0 @@
|
||||
[html4css1 writer]
|
||||
stylesheet-path: manual.css
|
||||
embed-stylesheet: no
|
||||
field-name-limit: 20
|
@ -1,416 +0,0 @@
|
||||
/*
|
||||
:Author: David Goodger (goodger@python.org)
|
||||
:Id: $Id: html4css1.css 6194 2009-11-11 12:05:10Z milde $
|
||||
:Copyright: This stylesheet has been placed in the public domain.
|
||||
|
||||
Default cascading style sheet for the HTML output of Docutils.
|
||||
|
||||
See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
|
||||
customize this style sheet.
|
||||
*/
|
||||
|
||||
/* used to remove borders from tables and images */
|
||||
.borderless, table.borderless td, table.borderless th {
|
||||
border: 0 }
|
||||
|
||||
table.borderless td, table.borderless th {
|
||||
/* Override padding for "table.docutils td" with "! important".
|
||||
The right padding separates the table cells. */
|
||||
padding: 0 0.5em 0 0 ! important }
|
||||
|
||||
.first {
|
||||
/* Override more specific margin styles with "! important". */
|
||||
margin-top: 0 ! important }
|
||||
|
||||
.last, .with-subtitle {
|
||||
margin-bottom: 0 ! important }
|
||||
|
||||
.hidden {
|
||||
display: none }
|
||||
|
||||
a.toc-backref {
|
||||
text-decoration: none ;
|
||||
color: black }
|
||||
|
||||
blockquote.epigraph {
|
||||
margin: 2em 5em ; }
|
||||
|
||||
dl.docutils dd {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
/* Uncomment (and remove this text!) to get bold-faced definition list terms
|
||||
dl.docutils dt {
|
||||
font-weight: bold }
|
||||
*/
|
||||
|
||||
div.abstract {
|
||||
margin: 2em 5em }
|
||||
|
||||
div.abstract p.topic-title {
|
||||
font-weight: bold ;
|
||||
text-align: center }
|
||||
|
||||
div.admonition, div.attention, div.caution, div.danger, div.error,
|
||||
div.hint, div.important, div.note, div.tip, div.warning {
|
||||
margin: 2em ;
|
||||
border: medium outset ;
|
||||
padding: 1em }
|
||||
|
||||
div.admonition p.admonition-title, div.hint p.admonition-title,
|
||||
div.important p.admonition-title, div.note p.admonition-title,
|
||||
div.tip p.admonition-title {
|
||||
font-weight: bold ;
|
||||
font-family: sans-serif }
|
||||
|
||||
div.attention p.admonition-title, div.caution p.admonition-title,
|
||||
div.danger p.admonition-title, div.error p.admonition-title,
|
||||
div.warning p.admonition-title {
|
||||
color: red ;
|
||||
font-weight: bold ;
|
||||
font-family: sans-serif }
|
||||
|
||||
/* Uncomment (and remove this text!) to get reduced vertical space in
|
||||
compound paragraphs.
|
||||
div.compound .compound-first, div.compound .compound-middle {
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
div.compound .compound-last, div.compound .compound-middle {
|
||||
margin-top: 0.5em }
|
||||
*/
|
||||
|
||||
div.dedication {
|
||||
margin: 2em 5em ;
|
||||
text-align: center ;
|
||||
font-style: italic }
|
||||
|
||||
div.dedication p.topic-title {
|
||||
font-weight: bold ;
|
||||
font-style: normal }
|
||||
|
||||
div.figure {
|
||||
margin-left: 2em ;
|
||||
margin-right: 2em }
|
||||
|
||||
div.footer, div.header {
|
||||
clear: both;
|
||||
font-size: smaller }
|
||||
|
||||
div.line-block {
|
||||
display: block ;
|
||||
margin-top: 1em ;
|
||||
margin-bottom: 1em }
|
||||
|
||||
div.line-block div.line-block {
|
||||
margin-top: 0 ;
|
||||
margin-bottom: 0 ;
|
||||
margin-left: 1.5em }
|
||||
|
||||
div.sidebar {
|
||||
margin: 0 0 0.5em 1em ;
|
||||
border: medium outset ;
|
||||
padding: 1em ;
|
||||
background-color: #ffffee ;
|
||||
width: 40% ;
|
||||
float: right ;
|
||||
clear: right }
|
||||
|
||||
div.sidebar p.rubric {
|
||||
font-family: sans-serif ;
|
||||
font-size: medium }
|
||||
|
||||
div.system-messages {
|
||||
margin: 5em }
|
||||
|
||||
div.system-messages h1 {
|
||||
color: red }
|
||||
|
||||
div.system-message {
|
||||
border: medium outset ;
|
||||
padding: 1em }
|
||||
|
||||
div.system-message p.system-message-title {
|
||||
color: red ;
|
||||
font-weight: bold }
|
||||
|
||||
div.topic {
|
||||
margin: 2em }
|
||||
|
||||
h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
|
||||
h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
|
||||
margin-top: 0.4em }
|
||||
|
||||
h1.title {
|
||||
text-align: center }
|
||||
|
||||
h2.subtitle {
|
||||
text-align: center }
|
||||
|
||||
hr.docutils {
|
||||
width: 75% }
|
||||
|
||||
img.align-left, .figure.align-left{
|
||||
clear: left ;
|
||||
float: left ;
|
||||
margin-right: 1em }
|
||||
|
||||
img.align-right, .figure.align-right {
|
||||
clear: right ;
|
||||
float: right ;
|
||||
margin-left: 1em }
|
||||
|
||||
img.align-center, .figure.align-center {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.align-left {
|
||||
text-align: left }
|
||||
|
||||
.align-center {
|
||||
clear: both ;
|
||||
text-align: center }
|
||||
|
||||
.align-right {
|
||||
text-align: right }
|
||||
|
||||
/* reset inner alignment in figures */
|
||||
div.align-right {
|
||||
text-align: left }
|
||||
|
||||
/* div.align-center * { */
|
||||
/* text-align: left } */
|
||||
|
||||
ol.simple, ul.simple {
|
||||
margin-bottom: 1em }
|
||||
|
||||
ol.arabic {
|
||||
list-style: decimal }
|
||||
|
||||
ol.loweralpha {
|
||||
list-style: lower-alpha }
|
||||
|
||||
ol.upperalpha {
|
||||
list-style: upper-alpha }
|
||||
|
||||
ol.lowerroman {
|
||||
list-style: lower-roman }
|
||||
|
||||
ol.upperroman {
|
||||
list-style: upper-roman }
|
||||
|
||||
p.attribution {
|
||||
text-align: right ;
|
||||
margin-left: 50% }
|
||||
|
||||
p.caption {
|
||||
font-style: italic }
|
||||
|
||||
p.credits {
|
||||
font-style: italic ;
|
||||
font-size: smaller }
|
||||
|
||||
p.label {
|
||||
white-space: nowrap }
|
||||
|
||||
p.rubric {
|
||||
font-weight: bold ;
|
||||
font-size: larger ;
|
||||
color: maroon ;
|
||||
text-align: center }
|
||||
|
||||
p.sidebar-title {
|
||||
font-family: sans-serif ;
|
||||
font-weight: bold ;
|
||||
font-size: larger }
|
||||
|
||||
p.sidebar-subtitle {
|
||||
font-family: sans-serif ;
|
||||
font-weight: bold }
|
||||
|
||||
p.topic-title {
|
||||
font-weight: bold }
|
||||
|
||||
pre.address {
|
||||
margin-bottom: 0 ;
|
||||
margin-top: 0 ;
|
||||
font: inherit }
|
||||
|
||||
pre.literal-block, pre.doctest-block {
|
||||
margin-left: 2em ;
|
||||
margin-right: 2em }
|
||||
|
||||
span.classifier {
|
||||
font-family: sans-serif ;
|
||||
font-style: oblique }
|
||||
|
||||
span.classifier-delimiter {
|
||||
font-family: sans-serif ;
|
||||
font-weight: bold }
|
||||
|
||||
span.interpreted {
|
||||
font-family: sans-serif }
|
||||
|
||||
span.option {
|
||||
white-space: nowrap }
|
||||
|
||||
span.pre {
|
||||
white-space: pre }
|
||||
|
||||
span.problematic {
|
||||
color: red }
|
||||
|
||||
span.section-subtitle {
|
||||
/* font-size relative to parent (h1..h6 element) */
|
||||
font-size: 80% }
|
||||
|
||||
table.citation {
|
||||
border-left: solid 1px gray;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docinfo {
|
||||
margin: 2em 4em }
|
||||
|
||||
table.docutils {
|
||||
margin-top: 0.5em ;
|
||||
margin-bottom: 0.5em }
|
||||
|
||||
table.footnote {
|
||||
border-left: solid 1px black;
|
||||
margin-left: 1px }
|
||||
|
||||
table.docutils td, table.docutils th,
|
||||
table.docinfo td, table.docinfo th {
|
||||
padding-left: 0.5em ;
|
||||
padding-right: 0.5em ;
|
||||
vertical-align: top }
|
||||
|
||||
table.docutils th.field-name, table.docinfo th.docinfo-name {
|
||||
font-weight: bold ;
|
||||
text-align: left ;
|
||||
white-space: nowrap ;
|
||||
padding-left: 0 }
|
||||
|
||||
h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
|
||||
h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
|
||||
font-size: 100% }
|
||||
|
||||
ul.auto-toc {
|
||||
list-style-type: none }
|
||||
|
||||
/* Added by David Capello */
|
||||
|
||||
body, h1, h2, h3, h4 {
|
||||
font-family: sans-serif;
|
||||
font-size: 11pt;
|
||||
}
|
||||
|
||||
body {
|
||||
width: 600px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
document {
|
||||
width: 600px;
|
||||
}
|
||||
|
||||
h1.title {
|
||||
font-size: 24pt;
|
||||
font-weight: bold;
|
||||
height: 64px;
|
||||
text-align: left;
|
||||
margin-left: 80px;
|
||||
padding-left: 80px;
|
||||
padding-top: 16px;
|
||||
border-bottom: none;
|
||||
background: white url('images/ase64.ico') no-repeat; }
|
||||
|
||||
h1 { font-size: 20pt; }
|
||||
h2 { font-size: 14pt; }
|
||||
h3 { font-size: 12pt; }
|
||||
h4 { font-size: 11pt; }
|
||||
|
||||
h1, h2, h3 { font-weight: bold; }
|
||||
h1, h2, h3 { margin-top: 40px; border-bottom: 1px solid #000; }
|
||||
|
||||
div.note {
|
||||
color: #ff2010;
|
||||
border: 1px solid #ff8020;
|
||||
background-color: #ffffee;
|
||||
}
|
||||
|
||||
div.admonition-keyboard-shortcut {
|
||||
margin: 0px;
|
||||
padding: 4px;
|
||||
color: #800000;
|
||||
border: 1px solid #800000;
|
||||
background-color: #ffddbb;
|
||||
float: right;
|
||||
}
|
||||
div.admonition-keyboard-shortcut p.admonition-title {
|
||||
font-weight: normal;
|
||||
font-family: sans-serif;
|
||||
display: inline;
|
||||
}
|
||||
div.admonition-keyboard-shortcut p {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
div.admonition-summary {
|
||||
color: #1020ff;
|
||||
border: 1px solid #2080ff;
|
||||
background-color: #00ffff;
|
||||
padding: 14px;
|
||||
}
|
||||
div.admonition-summary dl {
|
||||
margin-top: 0px;
|
||||
}
|
||||
div.admonition-summary dd {
|
||||
margin-left: 0px;
|
||||
}
|
||||
div.admonition-summary p.admonition-title {
|
||||
border: 1px solid #2080ff;
|
||||
background-color: #ffffff;
|
||||
padding: 8px;
|
||||
float: right;
|
||||
margin-left: 14px;
|
||||
}
|
||||
div.admonition-summary p {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
tt.literal {
|
||||
background-color: #eee;
|
||||
padding: 0px 4px;
|
||||
}
|
||||
|
||||
.contents {
|
||||
background-color: #f7f7ff;
|
||||
padding: 8px;
|
||||
}
|
||||
.contents .topic-title {
|
||||
font-size: 14pt;
|
||||
}
|
||||
|
||||
.contents a {
|
||||
text-decoration: none;
|
||||
color: #00f;
|
||||
}
|
||||
.contents a:hover {
|
||||
text-decoration: underline;
|
||||
color: #07f;
|
||||
}
|
||||
.contents ul {
|
||||
padding-left: 0px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.contents ul li ul {
|
||||
margin: 4px;
|
||||
border-left: 2px solid #7df;
|
||||
padding: 4px 16px;
|
||||
list-style-type: none;
|
||||
}
|
||||
.contents ul li { font-size: 11pt; font-weight: bold; }
|
||||
.contents ul li ul li { font-size: 11pt; font-weight: normal; }
|
||||
.contents ul li ul li ul li { font-size: 10pt; }
|
@ -1,943 +0,0 @@
|
||||
============
|
||||
ASE Manual
|
||||
============
|
||||
|
||||
:Author: David Capello
|
||||
:Contact: davidcapello@gmail.com
|
||||
:Date: March 2010
|
||||
|
||||
.. contents::
|
||||
|
||||
----------
|
||||
Tutorial
|
||||
----------
|
||||
|
||||
This chapter explains how to use ASE step by step. Here you learn ASE
|
||||
terminology and how to use the different screen elements to created
|
||||
your own sprites. All other chapters are extensive reference of the
|
||||
application to see its functionality in depth.
|
||||
|
||||
Sprites
|
||||
=======
|
||||
|
||||
You can start creating a `sprite <http://en.wikipedia.org/wiki/Sprite_(computer_graphics)>`__
|
||||
with ``File > New`` option.
|
||||
|
||||
.. image:: images/new_sprite.png
|
||||
|
||||
In this dialog you select:
|
||||
|
||||
- The width and height of the new sprite in pixels.
|
||||
|
||||
.. note::
|
||||
|
||||
ASE works with `raster graphics <http://en.wikipedia.org/wiki/Raster_image>`__,
|
||||
where images are conformed by a
|
||||
`grid of pixels <http://en.wikipedia.org/wiki/Pixel>`__,
|
||||
little squares distributed in a rectangular way. When you
|
||||
see a photo in your computer, you almost does not notice the
|
||||
existence of pixels (they are too small). But when you see little
|
||||
images in your mobile device or in a
|
||||
`handheld video game <http://en.wikipedia.org/wiki/Handheld_game_device>`__,
|
||||
you can appreciate the pixels. ASE is a program to see and manipulate
|
||||
pixels, to created this kind of little images.
|
||||
|
||||
- The color mode, which basically says how many colors you will be able to put in the image.
|
||||
|
||||
.. note::
|
||||
|
||||
With **RGB** images you can have an independent color for each pixel, in
|
||||
this way each little pixel has its Red, Green, Blue and Alpha
|
||||
(opacity) values. **Indexed** sprites have a special element associated:
|
||||
a color palette (with a maximum of 256 colors), in this way each
|
||||
pixel has a palette entry associated, if you change the palette
|
||||
color, all pixels associated to that color will change their aspect.
|
||||
You can choose the number of color for the sprite palette (from 2 to
|
||||
256).
|
||||
|
||||
For `pixel art <http://en.wikipedia.org/wiki/Pixel_art>`__ your selection
|
||||
should be Indexed.
|
||||
|
||||
- The background color to be used in the sprite.
|
||||
|
||||
.. note::
|
||||
|
||||
ASE sprites have layers, when you create a new sprite, it is created
|
||||
with just one layer. The background color specified the color to be
|
||||
used to clear this first layer content. There a two kind of sprites
|
||||
in ASE: 1) sprites with a background layer (a layer at the bottom
|
||||
that cannot be moved), and 2) sprites without a background layer
|
||||
(all layers are transparent). If you specified "Transparent" as
|
||||
background color, you will obtain a sprite with a layer that is
|
||||
completely transparent initially (you will see a checked-background
|
||||
indicating "no background here"). In the other side, if you
|
||||
specified a color as background, you will get a sprite with the
|
||||
background layer painted with that color.
|
||||
|
||||
After creating the sprite, you will see it in the **current editor**. The
|
||||
current editor is where you can draw (the center of the screen).
|
||||
In next sections you will see how to split the current editor in
|
||||
various other editors, so you will take care of current editor
|
||||
significance.
|
||||
|
||||
.. image:: images/main_screen.png
|
||||
|
||||
Colors
|
||||
======
|
||||
|
||||
In ASE you draw pressing the buttons of the mouse. Left mouse button
|
||||
draws with the foreground color, and right mouse button uses the
|
||||
background color. The **background color** is a very special color, it is
|
||||
used in various operations that are not related to drawing with the
|
||||
right mouse button. E.g. when you cut or clear a portion of image
|
||||
(``Edit > Cut``, or ``Edit > Clear``) the selected pixels are cleared with
|
||||
the background color.
|
||||
|
||||
.. image:: images/color_bar.png
|
||||
|
||||
Picking Colors
|
||||
--------------
|
||||
|
||||
You can pick colors from the image using ``Alt+mouse click``. Using
|
||||
``Alt+left click`` you will choose the foreground color. With ``Alt+right
|
||||
click`` you choose the background color.
|
||||
|
||||
In some platforms (Linux or MacOS) you can have some problems
|
||||
using the ``Alt`` key together with mouse clicks, so you can
|
||||
use ``I key`` to use the `Eyedropper Tool`_.
|
||||
|
||||
Drawing
|
||||
=======
|
||||
|
||||
You have created a new sprite, now you want to draw. You need to know two things:
|
||||
|
||||
- Where you draw: the current editor shows the selected sprite
|
||||
in tabs.
|
||||
|
||||
.. image:: images/selected_tab.png
|
||||
|
||||
|
||||
- With what you draw: there are various elements that are used when you draw in the sprite:
|
||||
tool, color, pen, and other configuration that modifies how you draw (e.g. snap to grid,
|
||||
tiled mode, fill or not the shape, etc.).
|
||||
|
||||
You will notice that a sprite is not just one plain image. It can have
|
||||
frames and layers. So in next sections, the current editor will take
|
||||
more importance when you want to manage various sprites, with frames,
|
||||
and layers at the same time. Right now let's keep it simple, just one
|
||||
sprite with one image.
|
||||
|
||||
To draw you can use one of the tools at the right of the screen:
|
||||
|
||||
.. image:: images/tools_bar.png
|
||||
|
||||
By default the `Pencil Tool`_ is selected (if it is not selected, you
|
||||
can press the |pencil icon| icon to select it). The pencil is one of the most
|
||||
basic tools: You press the left mouse button, hold it, drag the mouse
|
||||
and then release the same button. This will draw a freehanded trace
|
||||
using the selected foreground color.
|
||||
|
||||
.. |pencil icon| image:: images/pencil_icon.png
|
||||
|
||||
Canceling trace
|
||||
---------------
|
||||
|
||||
If you do not like the last trace you drew, you can press ``Ctrl+Z``
|
||||
or select ``Edit > Undo`` menu option to undo it. Also, you can cancel
|
||||
the trace before releasing left mouse button (in this case there are
|
||||
no need to Undo):
|
||||
|
||||
1. while you are pressing left mouse button,
|
||||
2. press right button,
|
||||
3. then release left button,
|
||||
4. and finally release the right mouse button.
|
||||
|
||||
In this way you cancel the trace you was drawing (the whole trace will
|
||||
disappear instantaneously). You can do the same procedure inverting the
|
||||
mouse buttons. E.g. if you start with right mouse button (background
|
||||
color), you can cancel using left button.
|
||||
|
||||
Zooming
|
||||
=======
|
||||
|
||||
You can zoom using the ``mouse wheel`` or just pressing the numbers ``1``, ``2``,
|
||||
``3``, ``4``, ``5``, or ``6`` in the keyboard. When you zoom, the pixel above
|
||||
the mouse cursor will be centered in the current editor.
|
||||
|
||||
You can zoom while you are drawing too.
|
||||
|
||||
Scrolling
|
||||
=========
|
||||
|
||||
To scroll the image you can keep the ``mouse wheel`` pressed and move the mouse.
|
||||
Also you can press the ``Space bar`` key (and keep it pressed) and then drag
|
||||
the image with any mouse button.
|
||||
|
||||
When you are drawing you will notice that moving the mouse outside the
|
||||
bounds of the editor will scroll the image automatically. You can change
|
||||
how much to scroll when the mouse touch the bounds of the editor using
|
||||
the options dialog...
|
||||
``TODO configuration about smooth/big step scroll``
|
||||
|
||||
Selecting
|
||||
=========
|
||||
|
||||
Moving Parts
|
||||
------------
|
||||
|
||||
Layers
|
||||
======
|
||||
|
||||
The Background Layer
|
||||
--------------------
|
||||
|
||||
Transparent Layers
|
||||
------------------
|
||||
|
||||
Animation
|
||||
=========
|
||||
|
||||
Frames
|
||||
------
|
||||
|
||||
Cels
|
||||
----
|
||||
|
||||
As each sprite has a set of layers and frames, you can imagine them
|
||||
as a grid, where layers are rows and frames are columns. Each little
|
||||
cell of this grid is called: cel. A cel is an image located in specific
|
||||
layer, in a specific frame, with a specific position (x, y)
|
||||
and with other properties like "opacity" (transparency level).
|
||||
|
||||
[TODO Animation editor screenshot]
|
||||
|
||||
Empty Cel
|
||||
---------
|
||||
|
||||
.. _empty cel:
|
||||
|
||||
When a transparent layer is completely invisible in a specific frame
|
||||
(it does not contain any pixel of any color), you are in an empty cel.
|
||||
It means this cel is not consuming any memory because its image
|
||||
does not even exist.
|
||||
|
||||
You can remove a non-empty cel using the clear_ command in a transparent
|
||||
layer.
|
||||
|
||||
Multiple Editors
|
||||
================
|
||||
|
||||
Current Editor
|
||||
--------------
|
||||
|
||||
-------
|
||||
Tools
|
||||
-------
|
||||
|
||||
Selection Tools
|
||||
===============
|
||||
|
||||
Rectangular Marquee Tool
|
||||
------------------------
|
||||
|
||||
With this tool you can select rectangular regions in the sprite. You
|
||||
select a rectangular portion of sprite pressing left mouse button,
|
||||
moving the mouse, and finally releasing the same button. If you repeat this same
|
||||
operation over and over again you can add more rectangles to the
|
||||
selected area. If you move the mouse over the selected region, you can drag-and-drop
|
||||
this portion of sprite using the left mouse button.
|
||||
|
||||
Using the right mouse button you can substract rectangles from selection.
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: Outside the selection adds rectangles;
|
||||
inside the selection *drag-and-drop* it.
|
||||
|
||||
**Right button**: Subtracts rectangles from selection.
|
||||
|
||||
Lasso Tool
|
||||
----------
|
||||
|
||||
With this tool you can select free hand drawn contours. You
|
||||
press the mouse button, move it to draw a contour, and then
|
||||
when you release the button, a line will close the contour
|
||||
from the starting point to the end point. The are will be
|
||||
selected (if you used the left mouse button) or deselected
|
||||
(if you used the right mouse button).
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: Outside the selection adds contours;
|
||||
inside the selection *drag-and-drop* it.
|
||||
|
||||
**Right button**: Subtracts contours from selection.
|
||||
|
||||
Polygonal Lasso Tool
|
||||
--------------------
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: Outside the selection adds polygons;
|
||||
inside the selection *drag-and-drop* it.
|
||||
|
||||
**Right button**: Subtracts polygons from selection.
|
||||
|
||||
Magic Wand Tool
|
||||
---------------
|
||||
|
||||
With this tool you can select a continuous area filled with the same
|
||||
color.
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: Select the adjacent region of clicked color.
|
||||
|
||||
|
||||
Pencil Tool
|
||||
===========
|
||||
|
||||
.. image:: images/pencil_icon.png
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: Paint a freehanded trace with foreground color.
|
||||
|
||||
**Right button**: Paint a freehanded trace with background color.
|
||||
|
||||
Spray Tool
|
||||
==========
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: .
|
||||
|
||||
**Right button**: .
|
||||
|
||||
Eraser Tool
|
||||
===========
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: .
|
||||
|
||||
**Right button**: .
|
||||
|
||||
Eyedropper Tool
|
||||
===============
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: .
|
||||
|
||||
**Right button**: .
|
||||
|
||||
Hand Tool
|
||||
=========
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: .
|
||||
|
||||
**Right button**: .
|
||||
|
||||
Move Tool
|
||||
=========
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: .
|
||||
|
||||
**Right button**: .
|
||||
|
||||
Paint Bucket Tool
|
||||
=================
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: .
|
||||
|
||||
**Right button**: .
|
||||
|
||||
Line Tool
|
||||
=========
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: .
|
||||
|
||||
**Right button**: .
|
||||
|
||||
Curve Tool
|
||||
==========
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: .
|
||||
|
||||
**Right button**: .
|
||||
|
||||
Rectangle Tool
|
||||
==============
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: .
|
||||
|
||||
**Right button**: .
|
||||
|
||||
Ellipse Tool
|
||||
============
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: .
|
||||
|
||||
**Right button**: .
|
||||
|
||||
Contour Tool
|
||||
============
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: .
|
||||
|
||||
**Right button**: .
|
||||
|
||||
Polygon Tool
|
||||
============
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: .
|
||||
|
||||
**Right button**: .
|
||||
|
||||
Blur Tool
|
||||
=========
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: .
|
||||
|
||||
**Right button**: .
|
||||
|
||||
Jumble Tool
|
||||
===========
|
||||
|
||||
.. admonition:: Summary
|
||||
|
||||
**Left button**: .
|
||||
|
||||
**Right button**: .
|
||||
|
||||
-------
|
||||
Menus
|
||||
-------
|
||||
|
||||
In this chapter you have explained each functionality of ASE that is
|
||||
accessible from menus. Some options have a keyboard shortcut associated
|
||||
to be quickly executed.
|
||||
|
||||
File
|
||||
====
|
||||
|
||||
New
|
||||
---
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
Ctrl+N
|
||||
|
||||
Creates a new sprite.
|
||||
|
||||
Open
|
||||
----
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
Ctrl+O
|
||||
|
||||
Opens an existent sprite in the disk.
|
||||
|
||||
Open Recent
|
||||
-----------
|
||||
|
||||
Save
|
||||
----
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
Ctrl+S
|
||||
|
||||
Save As
|
||||
-------
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
Ctrl+Shift+S
|
||||
|
||||
Save Copy As
|
||||
------------
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
Ctrl+Shift+C
|
||||
|
||||
Close
|
||||
-----
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
Ctrl+W
|
||||
|
||||
Closes the current sprite. If there are modifications in the sprite, you will see a confirmation dialog.
|
||||
|
||||
``TODO close warning screenshot``
|
||||
|
||||
You can close sprites pressing the middle mouse button above a tab.
|
||||
|
||||
``TODO closing through tab + middle mouse button screenshot``
|
||||
|
||||
Close All
|
||||
---------
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
Ctrl+Shift+N
|
||||
|
||||
Capture
|
||||
-------
|
||||
|
||||
Screen Shot
|
||||
'''''''''''
|
||||
|
||||
Record Screen
|
||||
'''''''''''''
|
||||
|
||||
Exit
|
||||
----
|
||||
|
||||
Edit
|
||||
====
|
||||
|
||||
Undo
|
||||
----
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
Ctrl+U
|
||||
|
||||
Redo
|
||||
----
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
Ctrl+R
|
||||
|
||||
Cut
|
||||
---
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
Ctrl+X
|
||||
|
||||
Copy
|
||||
----
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
Ctrl+C
|
||||
|
||||
Paste
|
||||
-----
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
Ctrl+V
|
||||
|
||||
Clear
|
||||
-----
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
Del (or Backspace)
|
||||
|
||||
This command has different behavior depending in which layer you use it:
|
||||
|
||||
- In the background layer: If there are something selected, the
|
||||
selected region is cleared with the background color. If nothing
|
||||
is selected the entire cel is cleared with the background color.
|
||||
- In a transparent layer: If there are something selected, the
|
||||
selected region is cleared with transparent color. If nothing
|
||||
is selected the entire cel is removed from the layer, so an
|
||||
`empty cel`_ is left.
|
||||
|
||||
Flip Horizontal
|
||||
---------------
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
Shift+H
|
||||
|
||||
Flip Vertical
|
||||
-------------
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
Shift+V
|
||||
|
||||
Replace Color
|
||||
-------------
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
Shift+R
|
||||
|
||||
Invert
|
||||
------
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
Ctrl+I
|
||||
|
||||
Sprite
|
||||
======
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
Color Mode
|
||||
----------
|
||||
|
||||
RGB Color
|
||||
'''''''''
|
||||
|
||||
Grayscale
|
||||
'''''''''
|
||||
|
||||
Indexed (No Dithering)
|
||||
''''''''''''''''''''''
|
||||
|
||||
Indexed (Ordered Dither)
|
||||
''''''''''''''''''''''''
|
||||
|
||||
Duplicate
|
||||
---------
|
||||
|
||||
Sprite Size
|
||||
-----------
|
||||
|
||||
Canvas Size
|
||||
-----------
|
||||
|
||||
Rotate Canvas
|
||||
-------------
|
||||
|
||||
180
|
||||
'''
|
||||
|
||||
90 CW
|
||||
'''''
|
||||
|
||||
90 CCW
|
||||
''''''
|
||||
|
||||
Flip Canvas Horizontal
|
||||
''''''''''''''''''''''
|
||||
|
||||
Flip Canvas Vertical
|
||||
''''''''''''''''''''
|
||||
|
||||
Crop
|
||||
----
|
||||
|
||||
Trim
|
||||
----
|
||||
|
||||
Layer
|
||||
=====
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
New Layer
|
||||
---------
|
||||
|
||||
Remove Layer
|
||||
------------
|
||||
|
||||
Background from Layer
|
||||
---------------------
|
||||
|
||||
Layer from Background
|
||||
---------------------
|
||||
|
||||
Duplicate
|
||||
---------
|
||||
|
||||
Merge Down
|
||||
----------
|
||||
|
||||
Flatten
|
||||
-------
|
||||
|
||||
|
||||
Frame
|
||||
=====
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
New Frame
|
||||
---------
|
||||
|
||||
Remove Frame
|
||||
------------
|
||||
|
||||
Jump to
|
||||
-------
|
||||
|
||||
First Frame
|
||||
'''''''''''
|
||||
|
||||
Previous Frame
|
||||
''''''''''''''
|
||||
|
||||
Next Frame
|
||||
''''''''''
|
||||
|
||||
Last Frame
|
||||
''''''''''
|
||||
|
||||
Play Animation
|
||||
--------------
|
||||
|
||||
Cel
|
||||
===
|
||||
|
||||
Properties
|
||||
----------
|
||||
|
||||
|
||||
Mask
|
||||
====
|
||||
|
||||
All
|
||||
---
|
||||
|
||||
Deselect
|
||||
--------
|
||||
|
||||
Reselect
|
||||
--------
|
||||
|
||||
Inverse
|
||||
-------
|
||||
|
||||
Color Range
|
||||
-----------
|
||||
|
||||
Load from MSK file
|
||||
------------------
|
||||
|
||||
Save to MSK file
|
||||
----------------
|
||||
|
||||
View
|
||||
====
|
||||
|
||||
Editor
|
||||
------
|
||||
|
||||
Make Unique
|
||||
'''''''''''
|
||||
|
||||
Split Vertically
|
||||
''''''''''''''''
|
||||
|
||||
Split Horizontally
|
||||
''''''''''''''''''
|
||||
|
||||
Close
|
||||
'''''
|
||||
|
||||
Grid
|
||||
----
|
||||
|
||||
Grid Settings
|
||||
'''''''''''''
|
||||
|
||||
Show Grid
|
||||
'''''''''
|
||||
|
||||
Snap to Grid
|
||||
''''''''''''
|
||||
|
||||
Preview
|
||||
-------
|
||||
|
||||
.. admonition:: Keyboard shortcut:
|
||||
|
||||
F8
|
||||
|
||||
Using this command you can see the whole sprite with a checked background.
|
||||
If tiled mode is activated, the sprite will be drawn as a pattern.
|
||||
It is useful to check alpha channel and border joints (when the sprite is a tile).
|
||||
When you are inside the Preview mode, you can use the following keys:
|
||||
|
||||
- ESC or F8: Returns to the editor (exits from Preview mode).
|
||||
- Plus/Minus key: Select a palette color as background (instead of the checked background).
|
||||
- Left/Right: Move through frames.
|
||||
|
||||
Refresh
|
||||
-------
|
||||
|
||||
Configure Screen
|
||||
----------------
|
||||
|
||||
Tools
|
||||
=====
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
Animation Editor
|
||||
----------------
|
||||
|
||||
Palette Editor
|
||||
--------------
|
||||
|
||||
Help
|
||||
====
|
||||
|
||||
--------------------
|
||||
Keyboard Shortcuts
|
||||
--------------------
|
||||
|
||||
---------------
|
||||
Customization
|
||||
---------------
|
||||
|
||||
Here you have some explanation about how to customize your own copy of
|
||||
ASE. Take care of all modifications you made in configuration files, and
|
||||
make sure you have a backup copy of everything.
|
||||
|
||||
Most of the customizable UI elements are taken from ``<ase-folder>/data/gui.xml`` file.
|
||||
|
||||
Keyboard Shortcuts
|
||||
==================
|
||||
|
||||
::
|
||||
|
||||
<gui>
|
||||
|
||||
<keyboard>
|
||||
</keyboard>
|
||||
|
||||
</gui>
|
||||
|
||||
Menus
|
||||
=====
|
||||
|
||||
::
|
||||
|
||||
<gui>
|
||||
|
||||
<menus>
|
||||
</menus>
|
||||
|
||||
</gui>
|
||||
|
||||
Tools
|
||||
=====
|
||||
|
||||
In the ``data/gui.xml`` file you will found a the following sections:
|
||||
|
||||
::
|
||||
|
||||
<gui>
|
||||
|
||||
<tools>
|
||||
<group ... >
|
||||
<tool ... />
|
||||
</group>
|
||||
</tools>
|
||||
|
||||
</gui>
|
||||
|
||||
In the ``<tools>`` section you have the set of available tools in ASE
|
||||
separated by groups (``<group>`` elements). Each group has a set of tools (``<tool>`` elements).
|
||||
|
||||
<group>
|
||||
-------
|
||||
|
||||
::
|
||||
|
||||
<group id="..."
|
||||
text="...">
|
||||
|
||||
<tool ... />
|
||||
<tool ... />
|
||||
<tool ... />
|
||||
</group>
|
||||
|
||||
<tool>
|
||||
------
|
||||
|
||||
::
|
||||
|
||||
<tool id="..."
|
||||
text="..."
|
||||
ink="..."
|
||||
controller="..."
|
||||
pointshape="..."
|
||||
intertwine="..."
|
||||
/>
|
||||
|
||||
The ``id`` attribute is used to identify the tool, it must be unique
|
||||
between all tools. The ``text`` attribute specified the name of the
|
||||
tool shown to the user.
|
||||
|
||||
The ``ink`` attribute indicates what the tool does, e.g. paint,
|
||||
select, pick a color, etc. Available inks are:
|
||||
|
||||
- selection
|
||||
- paint (paint with fg or bg, depending if left or right button was used)
|
||||
- paint_fg
|
||||
- paint_bg
|
||||
- eraser
|
||||
- replace_fg_with_bg
|
||||
- replace_bg_with_fg
|
||||
- pick_fg
|
||||
- pick_bg
|
||||
- scroll
|
||||
- move
|
||||
- blur
|
||||
- jumble
|
||||
|
||||
The ``controller`` specifies how mouse buttons are controlled.
|
||||
Available controllers are:
|
||||
|
||||
- freehand (e.g. pencil)
|
||||
- point_by_point (e.g. polygon)
|
||||
- one_point (e.g. paint bucket)
|
||||
- two_points (e.g. lines, rectangles, etc.)
|
||||
- four_points (e.g. bezier lines)
|
||||
|
||||
The ``pointshape`` is the way a mouse point will be converted to an area
|
||||
in the image. Available points:
|
||||
|
||||
- pixel
|
||||
- pen
|
||||
- floodfill
|
||||
- spray
|
||||
|
||||
The ``intertwiner`` says how mouse points should be joined.
|
||||
Available intertwiners:
|
||||
|
||||
- none
|
||||
- as_lines
|
||||
- as_bezier
|
||||
- as_rectangles
|
||||
- as_ellipses
|
@ -1,89 +0,0 @@
|
||||
# Splits the rst .html output in various .html files
|
||||
# Copyright (C) 2009 David Capello
|
||||
|
||||
from xml.dom import Node
|
||||
from xml.dom.minidom import parse, parseString
|
||||
|
||||
def getElementById(node, id):
|
||||
if node.hasAttribute("id") and node.getAttribute("id") == id:
|
||||
return node
|
||||
for child in node.childNodes:
|
||||
if child.nodeType == Node.ELEMENT_NODE:
|
||||
found = getElementById(child, id)
|
||||
if found:
|
||||
return found
|
||||
return None
|
||||
|
||||
def remapAHref(node, old, new):
|
||||
if node.tagName == "a" and node.hasAttribute("href") and node.getAttribute("href") == old:
|
||||
node.setAttribute("href", new)
|
||||
for child in node.childNodes:
|
||||
if child.nodeType == Node.ELEMENT_NODE:
|
||||
remapAHref(child, old, new)
|
||||
|
||||
def collectIdsInSection(node, ids, section):
|
||||
if section:
|
||||
if node.hasAttribute("id"):
|
||||
ids.append([ section, node.getAttribute("id") ])
|
||||
elif node.tagName == "div" and \
|
||||
( node.hasAttribute("class") and node.getAttribute("class") == "section") or \
|
||||
( node.hasAttribute("id") and node.getAttribute("id") == "contents"):
|
||||
if node.getAttribute("id") == "contents":
|
||||
section = "index"
|
||||
else:
|
||||
section = node.getAttribute("id")
|
||||
|
||||
for child in node.childNodes:
|
||||
if child.nodeType == Node.ELEMENT_NODE:
|
||||
collectIdsInSection(child, ids, section)
|
||||
|
||||
def splitSection(doc, sectionId, removePrevs, outputFileName, idsToRemap):
|
||||
# clone the whole document
|
||||
doc2 = doc.cloneNode(True)
|
||||
|
||||
# get the <div> element containing the specified section
|
||||
div = getElementById(doc2.documentElement, sectionId)
|
||||
if not div:
|
||||
return
|
||||
|
||||
# remove previous elements (<div> of previous sections and content table)
|
||||
if removePrevs:
|
||||
while div.previousSibling:
|
||||
div.parentNode.removeChild(div.previousSibling)
|
||||
|
||||
# remove next elements (<div> of next sections)
|
||||
while div.nextSibling:
|
||||
div.parentNode.removeChild(div.nextSibling)
|
||||
|
||||
file = open(outputFileName, "w")
|
||||
doc2.writexml(file)
|
||||
file.close()
|
||||
|
||||
######################################################################
|
||||
|
||||
manualDoc = parse("manual.html")
|
||||
|
||||
# get IDs from any tag with a id="..." attribute
|
||||
idsToRemap = []
|
||||
collectIdsInSection(manualDoc.documentElement, idsToRemap, None)
|
||||
|
||||
# sections
|
||||
sectionsIds = []
|
||||
for id in idsToRemap:
|
||||
sectionsIds.append(id[0])
|
||||
sectionsIds = set(sectionsIds)
|
||||
|
||||
# remap sections
|
||||
for sectionId in sectionsIds:
|
||||
remapAHref(manualDoc.documentElement, "#" + sectionId, sectionId + ".html")
|
||||
|
||||
# remap all href to the future location
|
||||
for id in idsToRemap:
|
||||
remapAHref(manualDoc.documentElement, "#" + id[1], id[0] + ".html#" + id[1])
|
||||
|
||||
# create a file for the content table
|
||||
splitSection(manualDoc, "contents", False, "index.html", idsToRemap)
|
||||
|
||||
# create a file for each section
|
||||
for sectionId in sectionsIds:
|
||||
splitSection(manualDoc, sectionId, True, sectionId + ".html", idsToRemap)
|