Hexing Research
I use the following tools for hexing:
ResHacker: My primary hexing resource. I do everything with this (except renaming the breed and changing the offset).
Hex Workshop: I use this to rename breedz and get them to be non-overwriting. (Use the "Find" function to look for 50004600)
Notepad: For making sound files.
And I have the following guides and resources open when I hex (all were made by Carolyn Horn):
Dogz Ballz List: What numbers correspond to what balls that make up dog breedz.
Catz Ballz List: What numbers correspond to what balls that make up cat breedz (different than dogz).
Axes
In the file, when axes are used (like in move, addballz, or paintballs), this is what they mean:
x y z
1 -1 1
The first number is the left/right axis on the pet. A positive number is to the left of the petz and a negative number is to the right. The second number is up/down. Negative is up, and positive is down. The third number is forward (toward the head/chest) and back (toward the tail). Negative moves the ball forward, and positive moves it back.
The [Ballz Info] Section
A quick run-through of what each column does:
;col outCol spklCl fuzz otlntTyp sizeDif group texture
[Ballz Info]
35, 244, 244, 1, -1, 3, 4, 1 eBall_ankleL,
35, 244, 244, 1, -1, 3, 4, 1 eBall_ankleR,
35, 244, 244, 1, -1, 0, 5, 1 eBall_belly,
35, 244, 244, 2, 0, 5, 4, 1 eBall_butt,
35, 244, 244, 2, -2, -4, 0, 1 eBall_cheekL,
35, 244, 244, 2, 0, -4, 0, 1 eBall_cheekR,
35, 244, 244, 2, -1, 20, 5, 1 eBall_chest,
15, 244, 244, 1, 1, 2, 2, 1 eBall_chin,
col: The color of the ball (see the color chart for what the numbers stand for).
outCol: The color of the ball's outline.
spklCl: Not sure. Has something to do with texture I think.
fuzz: How "fuzzy" the ball is (compare persian with siamese fuzz or sheepdog with chihuahua).
otlntTyp: The thickness of the outline. -1 sets there to be no outline around the ball. 0 sets a half outline (to the left?), and -2 sets a half outline (to the right?)
sizeDif: Affects the size of the ball. I'm not sure what it is in ratio to. Sizes are something I just have to experiment with.
group: Affects how the pet is painted with a paintcan and how color is inherited. More on this below.
texture: Above this section is a list of textures. This last number corresponds to a texture on the list. If set to -1, there is no texture (like in the eyes).
ball#: In dogz, there is another column called "ball#." This just specifies which ball is which number. (See "Dogz Ballz List" in Tools.) I am not sure what effect--if any--changing this number has.
[Move]
The move section is a very simple way to make petz taller, longer, etc. outside the restrictions of the game scale limits (sometimes, this adversely affects the petz movements, though).
[Move]
;face
14, 4, 0, -3
15, -4, 0, -3
27, 4, 0, -3
28, -4, 0, -3
30, 0, 2, 0
31, 0, 2, 0
In breed files, any line or section starting with ";" is a comment that the game doesn't "read." It is just there to help programmers find sections. (To make a breed smaller, you can remove all of these comments. You can also add your own anywhere you like.) Under this comment, the first number is the ball # (see the "Ballz Lists" in the Tools section). The next three numbers are the axes for offsetting the ball. In this case, ball 14, which is the left eye, is moved 4 units to the left and 3 units forward.
Notice that the right eye is moved out to the right for symmetry and the iris balls (27 and 28) are also moved to fit them? This is because the Move section is an absolute scale. Moving one ball does not affect the position of the others. So, if you simply want to move the petz head up, you need to move up ALL the balls connected with the head and face.
The one exception to this is Addballs. Any balls in the [Add ball] section (which includes any numbered 67 or higher) are always positioned relative to their base. Putting any of the addballs in the [Move] section will either crash the game or make your breed move oddly.
[Project Ball]
[Project Ball]
41, 34, 50
42, 35, 50
63, 22, 50
64, 23, 50
2, 6, 90
0, 41, 85
1, 42, 85
This section defines how far apart ballz are in relation to each other. It can help keep body parts from intersecting others when petz move.I only use this section for drop tails and tweaking little movement problems (especially with Addballs). The first number is the "fixed ball," the second is the ball you want to fix in relation to it, and the last is the distance they are from each other. Negative numbers can help make drop tails, but you'll need to define other projections to keep them from intersecting with the body.
[Whiskers]
This section is not in most cat breedz. If you want to change the whiskers, it is probably done with this section. I mainly use this section just for making whiskerless cat breedz. (Simply insert "[Whiskers]" and type nothing under it.)
[Omissions]
[Omissions]
37
44
45
46
47
48
Simply list the balls you want to omit. This is from the "Desert Lynx." You can see 5 of the 6 tail balls were omitted to give it a bobbed almost tailless look. For wildz, you may want to omit many, maybe nearly all, of the standard balls and build with add balls. A good ball to use as a base for mostly addball breeds is the neck. This is because the neck ball is the one you actually use to pick up the animal. It can be difficult to pick up an animal with an invisible neck ball.
[Add ball]
[Add Ball]
;base x y z color otlnCol spckCol fuzz group outline ballsize bodyarea addGroup texture
;nose
37, 3, 0, -5, 35, 0, 0, 0, -1, 0, 19, 0, 0, -1
37, -3, 0, -5, 35, 0, 0, 0, -1, 0, 19, 0, 0, -1
37, 0, 3, -7, 35, 0, 0, 0, -1, -1, 19, 0, 0, -1
;ears 80
8, -10,-25,-8, 35, 0, 0, 0, 0, -1, 12, 0, 0, 1
8, 10,-19, 5, 35, 0, 0, 0, 0, -1, 34, 0, 0, 1
This is the section where you can get really creative. It actually creates balls of any size, texture, etc, wherever you want them. All original breedz contain addballz already. You can delete them and start wherever you like, but it's best to start with ball 77 (right after this comment: ; ### From here down are animator's addballz 77.)
base: This is the ball your added ball is in relation to.
x y z: This is the position of the added ball in relation to the center of the base. (See Axes.)
color: The color of the added ball. (See the color chart for what the numbers stand for.)
otlnCol: The color of the outline.
spckCol: Like in the Ballz Info, I'm not sure what this does.
fuzz: The fuzziness of the ball.
group: The same as the group in [Ballz Info]. Affects inheritance and paint.
outline: The thickness of the outline. -1 sets there to be no outline around the ball. 0 sets a half outline (to the left?), and -2 sets a half outline (to the right?)
ballsize: Like it says, this is the size of the ball. ;-)
bodyarea: I don't know.
addGroup: I don't know.
texture: Like in [Ballz Info], this specifies which texture from the list is used for this ball.
[Linez]
Petz are made up of both ballz and lines. Lines are used to connect balls. If you use addballs, you need to connect them to the rest of the body by using lines. In the lines section, any value that is -1 (in the 3rd to 5th column) means the line has the characteristics of the associated ball(s).
[Add Ball]
;srt end fuzz col lfCol rtCol sThck eThick
[Linez]
6, 36, 1, -1, 244, 244, 95, 95
24, 36, 1, -1, 244, 244, 95, 95
3, 2, 1, -1, 244, 244, 95, 100
6, 2, 1, -1, 244, 244, 95, 90
3, 43, 1, -1, 244, 244, 100, 100
43, 44, 1, -1, 244, 244, 100, 100
44, 45, 1, -1, 244, 244, 100, 100
45, 46, 1, -1, 244, 244, 100, 100
46, 47, 1, -1, 244, 244, 100, 100
47, 48, 1, -1, 244, 244, 100, 100
srt: The ball where the line starts.
end: The ball where the line ends.
fuzz: The fuzziness of the line.
col: The color of the ball (usually left at -1).
lfCol: The color of the left outline (set at -1 for no outline).
rtCol: The color of the right outline (set at -1 for no outline).
sThck: The thickness of the line at the start ball (as a percentage of the ball size).
eThick: The thickness of the line at the end ball (as a percentage of the ball size).
The -1 Group
;col outCol spklCl fuzz otlntTyp sizeDif group texture
[Ballz Info]
35, 244, 244, 1, -1, 3, 4, 1 eBall_ankleL,
35, 244, 244, 1, -1, 3, 4, 1 eBall_ankleR,
35, 244, 244, 1, -1, 0, 5, 1 eBall_belly,
35, 244, 244, 2, 0, 5, 4, 1 eBall_butt,
35, 244, 244, 2, -2, -4, 0, 1 eBall_cheekL,
35, 244, 244, 2, 0, -4, 0, 1 eBall_cheekR,
35, 244, 244, 2, -1, 20, 5, 1 eBall_chest,
15, 244, 244, 1, 1, 2, 2, 1 eBall_chin,
35, 244, 244, 1, -1, -15, 0, 1 eBall_earL1,
35, 244, 244, 1, -1, 15, 0, 1 eBall_earL2,
35, 244, 244, 1, -1, -15, 0, 1 eBall_earR1,
35, 244, 244, 1, -1, 15, 0, 1 eBall_earR2,
35, 25, 244, 0, -2, 5, 5, 1 eBall_elbowL,
35, 25, 244, 0, 0, 5, 5, 1 eBall_elbowR,
201, 244, -1, 0, 1, 7, -1, -1 eBall_eyeL,
201, 244, -1, 0, 1, 7, -1, -1 eBall_eyeR,
I have done a good bit of looking at groups. and their effects, esp. on second generation. The group number has several important functions. It defines the paintable areas (with the game paint can) and also plays a role in how colors are inherited and mutated. Some colors do not inherit properly, especially the bright greens and blues--they are often mutated to white in offspring. These are not dog or cat colors, but are often used to make hexed wilds (such as my frogz and parrotz). To get around this, some hexers use fur files--a good solution.
Another solution is the use of the -1 group. If you look in your file, you will see a few balls are set to the -1 group: the eyes, "iris" (the ball itself is the pupil), tongue, and whiskers. Balls in the -1 group will NEVER mutate or recombine with other colors/patterns. They will not mutate. That's why eyes stay white and pupils stay black, and why whiskers are either one parent's color or the others--never a mutation. These balls also cannot be painted with a paintbrush.
Mutations and painting are a FUN and important part of the game, so use the -1 group very sparingly and only when necessary. For example, I used the -1 group in my mice tails, feet, and ears, because pink doesn't inherit that well, and I do not want these parts to become white or some weird color by mutation. Used properly, the -1 group is an invaluable resource!
Addballs can be -1 group too. Make sure you have the correct column. COUNT the numbers. Don't try to go by the position of them. As you can see below, they seldom line up Addgroup cannot be set to -1.
[Add Ball]
;base x y z color otlnCol spckCol fuzz group outline ballsize bodyarea
;nose
37, 3, 0, -5, 35, 0, 0, 0, -1, 0, 19,
37, -3, 0, -5, 35, 0, 0, 0, -1, 0, 19,
37, 0, 3, -7, 35, 0, 0, 0, -1, -1, 19,
Paintballs can also be set to -1 if needed, and this is done in all the original breeds to set their paw pads. Again, be careful when counting, so you get the right column.
[Paint Ballz]
;base ball diameter(% of baseball) direction color outlinecolor fuzz outline group texture
;paws
16, 50 0, 1, .3 47 -1 0 -1 -1 -1
17, 50 0, 1, .3 47 -1 0 -1 -1 -1
18, 50 0, 1, .3 47 -1 0 -1 -1 -1
22, 55 0, 1, 0 47 -1 0 -1 -1 -1
19, 50 0, 1, .3 47 -1 0 -1 -1 -1
20, 50 0, 1, .3 47 -1 0 -1 -1 -1
It is a nice touch to specially design all the balls' groups in a breed, so they can be painted and inherited beautifully.
Scale Limits
The default scales and enlargements are limited. Not in 1st generation petz--but in their offspring. If you need to get larger or smaller animals, you need to use "Move" and other methods in order to have proper-looking (true-breeding) offspring. Here are the minimum and maximum limits for several scales.
Parameter
|
Minimum
|
Maximum
|
Default Scales
|
75
|
170
|
Body Extension
|
-25
|
25
|
Leg Extension
|
-25
|
25
|
Face Extension
|
?
|
?
|
Ear Extension
|
?
|
?
|
Changing AC Images
This is how I change the AC image using ResHacker:
Get a BMP picture you want to use. The game uses images that are 89 pixels tall and 105 pixels wide.
Rename the pic from .bmp to .bmx
In ResHack, under "Action," choose "Replace other Resource..."
Open your .bmx image.
Under "Resource Type," put "BMP" (no quotes)
Under "Resource Name," put the default pet name in all caps (for the Persian, it would be "HOMEBODY" for example)
Leave the last space blank or set the language to 1033
Push Replace.
Other Resorces/Tutorials