How to Make an Aminated Emote GIF
These instructions are based on using Abode Photoshop CS3. While there are other programs capable of creating animated GIFs, this is the program I have been using.
- Obtain a COHDEMO of the emote you want to make. This is necessary, because the City of Heroes Codex most likely won't be updated with the correct MOV command. In order to facilitate finding the correct MOV within the COHDEMO file, I recommend using /t $name, /e someEmoteName$$e someEmoteName or similar so that you can quickly search the text file for the location of the MOV. This also makes it easier to get several MOVs from a single demo.
- Search the newly created COHDEMO file for the MOV command you need, and copy it into the emote.cohdemo file, below.
- If you're working on a costume change emote, you also need to take note of all time steps between the line of the MOV and the line where the player costume changes. The sum of all of the intermediate timesteps is the time between starting the costume change emote, and actually changing the character's costume.
- Run the emote.cohdemo and save all of the frames as images. Zloth's Demo Launcher program makes this simple and easy, and I recommend setting it to 30 screenshots per frame.
- Delete the stored images that are not part of the emote (character fading in, character standing ready before executing emote, character idle at the end of the emote). Depending on the number of frames remaining, you may want to remove additional frames (for example, every even-numbered frame). I recommend approximately 50 frames per gigabyte of available RAM on your computer, but you can experiment. (NOTE! Going over the limit of what your computer can handle may result in BSOD)
- Open Photoshop, and select File > Scripts > Load Files Into Stack... Change the "Use" dropdown to "Folder", and browse to the folder containing your animation frames. Press OK.
- Photoshop is going to open each of the images in the folder as a layer. This will take some time, but be patient. This is the point when you will encounter BSOD if you're loading too many frames.
- Open the Animations window if it isn't already (Window > Animation), and in the Animation Window menu (top right corner of the Animation window) select "Make Frames From Layers".
- The frames will be in backwards order, so select from the Animation Window menu "Reverse Frames".
- Crop the image down so that it minimally contains everything in the emote (or, for emotes which are very expansive, crop the image down so that you can see a representative portion of it).
- Select all of the frames in the Animation window, and set their duration to something representative of the frames-per-second of your animation. For example, if you have 30 fps, each frame is 1 / 30s, or 0.03s. If you have 15 fps (30fps recorded, deleted half of the images), each frame is 1 / 15s, or 0.07s.
- Depending on your RAM and the length of your animation, it is possible for Photoshop to crash. You should save your work as a PSD now, even if you don't plan to keep it later.
- Save your animation as an animated GIF. Do this via the "Save for Web & Devices" item in the File menu.
- There are many options you can use for compressing the resulting image before actually saving, and Photoshop will give you an estimate of what the final file size will be. Play with the options to get your file size smaller while retaining the integrity of the animation.
- The setting with possibly the largest impact on file size is the output image size. The animated emotes on Paragonwiki are generally about 200 pixels tall.
- Try to shoot for an image size around 100k. If you're making an image for Paragonwiki, try to avoid sizes above 1M.
- Press Save, and upload the resulting image.
This is the COHDEMO file I have been using to create animated emotes with. While it is possible to change things around, the CoH demo player tends to be finicky about things, and I recommend avoiding messing with anything you don't need to.
EMOTE_TO_RECORD should be changed to the MOV command you're recording. For example, CCWarshade would be "EMOTE_COSTUMECHANGE_WARSHADE 0"
The line beginning with MILLISECONDS_TO_CCE is only needed if you are recording a costume change emote, otherwise it should be omitted. MILLISECONDS_TO_CCE should be replaced by the sum of all of the intermediate timesteps between starting the costume change emote and actually changing the character's costume which you recorded in step 2. For example, when I created the CCWarshade animated GIF, this value was 1750 (1.75 seconds).
These should be the only values you need to change in the above file to make it work for any given emote. Because the file uses Ghost Widow (an NPC), it is possible that there are emotes that don't work with her. But if you look over the Emotes page, you'll see that nearly every emote listed has a working animation with Ghost Widow.
Please feel free to comment/improve the guide above. That's what it's here for.00:30, 14 November 2009 (UTC)