GrafX2
Grafx2 is somewhere between a pixel art program and a CG program. Grafx2 binaries are currently available for Windows, Amiga, Mac, and Linux.
It is designed for doing pixel-precise work like demoscene logos (as in many of the works at http://gfxzone.org), and also has many useful CG-ish features -- like Quickshade, which darkens/lightens pixels in the currently selected ramp as you paint; smudge, translucency, smoothing; It keeps track of how many colors you've used, and provides an quick + easy way to reduce colors; the split-screen zoom (like a more powerful version of the zooming in OHR's built-in sprite editor) can be very handy, and everything can be accessed via customizable keyboard shortcuts, for speed. It's inspired by 'DeluxePaint' and 'Brilliance' for the Amiga, so it is also very easy to change drawing colors (even as you are painting), to paint with two different colors quickly, to pick up part of the picture as a brush, to stencil out some colors as 'read-only' or to get a 'spare page' for testing stuff on. Since March 2012, the development version includes animation support, which is also pretty handy.
Download
Documentation
http://code.google.com/p/grafx2/wiki/UserManual
NeoTA says
Probably *the* best program for casual editing/creation of static sprites/images. (the '98%' is not just for show :) Pixeling in Grafx2 is very different (and far more fun!) than pixeling in GIMP, Photoshop, or even ProMotion, for me; It is very friendly to the kind of experimentation needed to achieve the best result. It also does not confuse the issue with things irrelevant to pixeling, so it is good for newbies to get a grasp of pixeling with.
If you load in your entire 256-color palette when drawing sprites, you don't need to do any palette management - just pay attention to the reported number of colors used, and the only other thing you'll need to do is reduce to 16 colors before you bring it into OHRRPGCE.
Supports limiting rgb precision via the /rgb commandline argument -- eg. default rgb precision is 256 (0..255), 16 steps of RGB is more useful IMO, eg "grafx2 /rgb 16".
It's a pretty nice way to create master palettes, too. the /rgb restriction is good for this, since you want to avoid having virtually-identical colors.
More recently, it has acquired a Tilemap mode like Pro Motion's, where drawing on one tile in the picture updates all identical tiles in the picture (tile size is taken from grid settings, btw). This is handy for building maps and making better quality tiles, since you can see the tile as it is in the map or tiled with itself.
Guide to common manipulations
- Darkening or lightening tiles which use a single color ramp
- Go to the palette area. leftclick on the starting color, then rightclick on the ending color.
- Click on FX then 'QShade'.
- Make sure 'Feedback' in the FX dialog is OFF.
- QShade is active, now you can lighten or darken things which use that ramp using all the usual drawing tools -- leftclick darkens, rightclick lightens (if you use the typical dark on left, bright on right arrangement). Pixels of a color not in the ramp will be unaffected.
- If you rightclick the QShade button in the FX, you can modify the 'Step' (default = 1) to control how strong the effect is per application.
- http://code.google.com/p/grafx2/wiki/DrawingModes explains how it works.
- Of course you can quickly switch ramps to shade tiles with a few different color ramps in use (just do the leftclick on starting color, rightclick on ending color procedure again)
- remember to turn off Shade mode when you want to draw normally (try pressing the 'All Off' button in the FX dialog)
- Darkening or lightening tiles which use multiple or crossing-over color ramps
- Set up the ramps explicitly (rightclick on the Shade button, not QShade).
- Shading can work however you want it to using this (and Grafx2 remembers the shade table for you)
- however, initial setup takes longer. check the DrawingModes list above for an example
- again, remember to turn off Shade mode when you want to draw normally
- Copying tiles
- First enable Grid (FX ->Grid); set the Grid parameters appropriately (X,Y = 20)
- Use the 'rectangular brush grab' tool (dotted rightangle, near middle of toolbox) to pick the tile(s) you want
- That is now your brush. When drawing, the background color you have currently selected is considered as transparent in the brush.
- When you are finished putting down copies of the tile, click on the brush selector (top left icon in the toolbox) and select a normal brush
- you can also paint using fragments of tile, by using the 'freehand brush select' tool adjacent to the 'rectangle brush select' tool when initially picking your brush. You probably want Grid OFF for this.
- 16-color palette ordering
- It helps to have read the intro to master-palette editing below, first. This sub-guide assumes that you have.
- Use the 'Sort' function on the entire 16color palette except the first color, in Hue/Light mode. This will get most of the colors grouped with the colors that they share a 'ramp' with, and the ramp ordering approximately correct.
- Use the 'X-Swap' button to move any colors that you consider incorrectly grouped or wrongly ordered.
- Use 'X-Invert' on any ramps you think are pointing in the wrong direction (eg. Light->Dark, rather than Dark->Light). You may also opt to use X-Invert on the entire 16color palette except the first color, which would effectively reverse all ramps.
- Use 'X-Swap' to exchange entire ramps so the ramps you want to come first, come first.
- That's it.
And uncommon manipulations
Master Palette editing
- Click on the 'Pal' button after loading the current master palette.
- You can select a range of colors by clicking and dragging, and apply changes to the hue, saturation, lightness, red, green, blue, or overall brightness aspects of them as a whole using the sliders.
- (of course you can also use the sliders to adjust individual colors)
- Spread is your most vital tool if you aim to make your own color ramps. It makes a gradient between the start color and end color of the selection.
- Invert will reverse the order of the selected colors, eg. 12345 -> 54321. Useful if you accidentally made a ramp that is in the opposite order from your other ramps.
- for all the details, visit the Grafx2 wiki.
Making 3d backgrounds
- This is the technique found in the classic FUABMX. It requires a reasonable understanding of how perspective works, naturally.
- First you have to understand how to use the spare page. There are two 'pages' (images) at once in Grafx2, main and spare. They are each independent, having their own palette, layers, etc. You can use Tab key to switch between them. When you start Grafx2, the 'main' page is active.
- We'll use the spare page to hold our textures, and draw the actual background in the main page.
- So, you need to start by loading your textures into the spare page. Make sure their palette matches the master palette you're working with, and that they are appropriately sized (double the size of the surface you're mapping them onto, is about right.)
- Prepare the main page for your background. Size it to 320x200 (or 640x400 if you want to get added smoothness at the cost of a slightly more involved process) and make sure the correct master palette is loaded.
- I recommend using the line tool to sketch out the rough structure on a separate layer before any real drawing work is done.
- Next, prepare the sky plane and ground plane using the below techniques. I say this
- Here is the main process. I highly recommend you research 'Brush FX' first because we use them heavily, and knowing the keyboard shortcuts will make the process much quicker. (hover over the 'brush fx' button and hit F1. An explanation of the various functions is shown, along with their keyboard shortcuts.)
- It can also help you to enable Grid on the spare page (with size set to, say, 4, Snap on, Show on). This will make it easier to align textures across surfaces. Grid is found in the 'drawing modes/FX' toolbar button.
- Finally, consider whether to enable split screen zoom ('M') on the main page and/or spare page. This can make aligning things precisely much easier.
- Switch to the Spare page and grab a texture (or part of a texture) with brush grab ('B'). Consider the area you will map it to when choosing the part of the texture.
- Switch back to main page.
- Move the mouse to the approximate location of the surface you want to texture.
- Activate Distort (Shift-S) and drag the four corners where you want them. Rightclick to confirm when you're happy.
- The surface is NOT drawn yet-- you have the distorted texture as your new brush. Draw it where you want it -- in multiple places if you so desire. Remember there are other useful brush functions that will help you with things such as flipped versions of the surface(X, Y keyboard shortcuts), rotated(Z to rotate by 90 degrees, W to rotate an arbitrary amount), stretched and squashed (S to stretch or squash the brush,)
Other tips:
- You can create curved surfaces by Distorting more than once. Try it!
- If you reuse a texture a lot, you can save it in one of the preset slots (Leftclick on the brush selector, then rightclick in one of the buttons in the bottom row and select 'Set'). Then you can quickly get it back via the brush selector.
- Working with overlapping objects? Layers are quite effective for this.
- Textures don't have to be entirely solid, or rectangular. The color you have selected as 'BGcolor' will be treated as transparent when drawing the brush. So, you can make textures with transparent areas in them.. you can also grab a texture using the 'lasso' method, where you grab an arbitrary area out of the texture by click-dragging (and Rightclick when you're done).
- you can save time by using parts of the background themselves as textures. Using stretch and distort, you can create larger or smaller versions of a landscape feature (ie. perspective-ized copies)
- if you need to create a tiled version of a texture, using the 'Tiling' drawing mode in conjunction with filled rectangles may be what you want.