Brief Overview of Object Creation

By Heather Castillo

Making objects can be a difficult task. One thing that I will probably repeat to you many times is that I always create my own zooms. This is why my objects are clear in every zoom and I rarely have any zoom problems such as bleedy objects. If you want to take the easy way out, then by all means, create your fuzzy, bleedy objects with fair quality.

First you need to get Transmogrifier from available here: transmogrifier. You can use 2D or 3D to create objects. Programs such as Rhino will actuallly render out objects with z-buffers and alpha channels at a specified angle, which can make object creation much more simple for you.

Heather's Rules of Thumb

Not everyone will agree with my methods. The methods I use are to create quality art and objects. No taking the easy way out.

1) Do not tackle a big object to start with. Use something small that only requires one or two angles of an image. My tissue box (which I think needs a little work), would be a good example. This is one image that I've used and flipped.

2) Always export All Zooms when creating an object.

3) Always export All Zooms All Channels if you are changing the shape of the object.

4) Never, I repeat never break rule 3.

5) Use an image with a nice angle that matches the games. Flat images are uuuugly. If you can't find one, take a flat image and hand-draw, skew, cut-n-paste, do what it takes to make it look like the view is coming from the top angle.

The Basics

When you are creating an object with a new shape, you will export 3 channels with each image. The ending letter is the channel indicator (as I call it): a, p, z. They are referred to as the alpha channel, p sprite & z-buffer.

The p sprite is where you start. This sprite is where you put your picture of your object. It doesn't matter where you place the picture inside the p-sprite, though we commonly find them at the bottom of the image. The object you clone has a predetermined position that is set by the bottom most pixel and the left most pixel of your actual image. The background of the p sprite should always be RGB 255 255 0 (#FFFF00)(solid yellow), unless you are using that color in your actual image, in which case you should use cyan, RGB 0 255 255 (#00FFFF).

To avoid problems with yellow (or cyan) edges, it's best to alias your image (leave the edges jagged and solid, not smooth).

p sprites require custom/adaptive palettes. I will cover more on these later.

Next you will want to create your alpha channel. The alpha channel will determine the location of your object as well as enabling you to make the edges of your objects soft. This is where you fix that jagged problem you created in the p sprite.

Finally, and most difficult of all is the z-buffer. If you use layers for you object creation, you're a step ahead of those who don't have that capability. In photoshop, you can use the gradient tool keeping the back a little lighter than the front and bottom of the object. However, if it's too light in the back or bottom, it will fade into the wall, or another object. If it's too dark in the front, it may appear in front of something that you don't want it too (like your sims when they stand in front of the object). See more about z-buffers in our Beginning PSP Z-Buffer Tutorial.

Complete your large zoom and go through the testing process before doing your smaller zooms. Most of the time you can shrink your objects then paste them into the smaller images.


Unfortunately, there isn't an easy tool for testing. You have to load your game and test your work. You may want to build a square wall around your object to test for bleeding out of the exterior walls. This occurs when your z-buffer is too dark in a spot.

You will also need to test inside for back bleeding (bleeding into the wall at the back of the object). This is caused with the back of the objects z-buffer is too light.

Test on a rug if the object sits on a floor to make sure your object doesn't bleed into the carpet (too light).

Set objects on top if it's a chair or table to test for bleeding. If your sim is sitting in a chair, and the back of the couch appears in front of them, your z-buffer is too dark in that area. But if the arm of the chair doesn't appear in front of them (if designed in such a way to do so), that area would be too light.

If your object is a table object, test on several surfaces. The London "Cupertino" Desk often causes the biggest problem because its z-buffers are a little darker than some of the other surfaces. Be sure to test table objects on this desk and other surfaces.

Do NOT forget to test your zooms & rotations. Get a friend to help test, or get BETA testers. Lots of willing people out there.

Custom Palettes

I can only speak for Adobe Photoshop, because I do not use anything else for object creation.

There are two ways to save to a custom palette and I only use this method for the p sprites.

With the first image, you will want to do one of the following. If you are doing angles that may require different palettes, it is highly recommended that you complete each angles' p sprites then cut and paste them all into one image with a solid yellow background to create the best custom palette for your image.

Use one of these methods:

1) Image - Index - Adaptive

2) Image - Index - Custom (Save Palette).
NOTE: If you have indexed something previously, you will want to drop the selection box to Adaptive before choosing Custom, otherwise you get the palette of the previously indexed image.

On the following p sprites, you will want to save to:

Image - Index - Previous

Exception to the rule:
If your image doesn't have 256 colors to fill your palette, it may try to fill black in the palette. Transmogrifier seems to have a hard time dealing with this. (New versions may ignore this error). In order to avoid problems, pick any color and spray it into an area with yellow (where your object will not appear). You will be able to block this area from your image using your alpha channels.

On your alpha channels and z-buffers, create these in a new image then paste them into the sprites. This way you won't have to deal with the palette issue.