Talk:Emotes/Animation Cohdemo

From Unofficial Homecoming Wiki
Jump to navigation Jump to search

How to Make an Aminated Emote GIF

By  FW (talk · contrib

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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)
  5. 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.
  6. 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".
  7. The frames will be in backwards order, so select from the Animation Window menu "Reverse Frames".
  8. 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).
  9. 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.
  10. 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.
  11. Press Save, and upload the resulting image.

emote.cohdemo

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.

1 0 Version 2

0 0 Map maps/City_Zones/City_05_05/City_05_05.txt 0 0 Time 14 0 819 Player 0 819 NEW "Sally Lee Brown" 0 819 COSTUME 1 20405d -12.160305 -0.175775 0.000000 -0.673554 -0.461435 0.325562 -0.299957 -0.080868 0.000000 0.170000 0.600000 0.350000 -0.370000 0.080000 0.760000 -0.500000 -0.920000 -0.220000 -0.960000 0.070000 -0.640000 0.200000 -0.320000 -0.020000 0.660000 -0.180000 0.300000 -0.310000 -0.640000 0.120000 0 819 PARTSNAME Pants_Tight Pants_Cargo_01 Blend ff5700 ffc54c 0 819 PARTSNAME Jackets skin_tights Top_8 001a26 00fdff 0 819 PARTSNAME V_fem_Head.GEO/GEO_Head_V_Asym_Standard !v_sf_face_skin_head_02 !v_sf_face_Lips 0000d4 00fdff 0 819 PARTSNAME V_FEM_GLOVE.GEO/GEO_LArm*_Monstrous_01 skin_fingerless_01a skin_fingerless_01b 001a26 00fdff 0 819 PARTSNAME V_FEM_BOOT.GEO/GEO_Lleg*_Work_Boot_02 !Boot_V_Work_Boot_02 !Boot_V_Work_Boot_02_Mask 000000 ffffff 0 819 PARTSNAME Standard leather_01 none 000000 ffffff 0 819 PARTSNAME Hat_Duster Hat_01a Hat_01b 00111a 0000d4 0 819 PARTSNAME none none none 00000000 00000000 0 819 PARTSNAME Glasses_01 Gradient_01a Gradient_01b 000000 660044 0 819 PARTSNAME Tight base V_Fist_03 0000d4 000000 0 819 PARTSNAME Kitten_01 Kitten_01a Kitten_01b 002a7f 000000 0 819 PARTSNAME none none none 00000000 00000000 0 819 PARTSNAME none none none ffffff ffffff ffffff ffffff WEAPONS/Custom_Pistols/Male_PistolRight_Base.fx 0 819 PARTSNAME none none none 00000000 00000000 0 819 PARTSNAME none none none 00000000 00000000 0 819 PARTSNAME none none none 00000000 00000000 0 819 PARTSNAME none none none 00000000 00000000 0 819 PARTSNAME none !Cape_Trenchcoat_Leather_01 none 00547f 0000d4 00111a 0000d4 capes/CapeTrenchFem_01.fx 0 819 PARTSNAME none none none 00000000 00000000 0 819 PARTSNAME none none none 00000000 00000000 0 819 PARTSNAME V_FEM_TOP.GEO/GEO_Top_Trenchcoat_01 V_Motorcycle_03 V_Motorcycle_02_Mask 00547f 0000d4 0 819 PARTSNAME V_FEM_SLEEVES.GEO/GEO_SLEEVES_Motorcycle_03 V_Motorcycle_03 none 00547f 0000d4 0 819 PARTSNAME none none none 00000000 00000000 0 819 PARTSNAME none none none 00000000 00000000 0 819 PARTSNAME none none none ffffff ffffff ffffff ffffff WEAPONS/Custom_Pistols/Male_PistolLeft_Base.fx 0 819 PARTSNAME none none none 00000000 00000000 0 819 HP 962.80 0 819 HPMAX 962.80 0 819 POS 312 -1184 -2312 0 819 PYR 0 -1.748738 0 300 CAM POS 445 -1197 -2400 0 CAM PYR 0 1.39 0 0 1 NEW "Ghost Widow" 0 1 NPC Signature_Ghost_Widow 0 1 POS 430 -1202 -2403 0 1 PYR 0 0.7 0 0 1 MOV READY_LOOK 1000 1 MOV EMOTE_TO_RECORD MILLISECONDS_TO_CCE 1 NPC Signature_Ghost_Widow_Red 10000 1 POS 312 -1184 -2312 176 SKYFILE SKY 1 0 1.000000 235 SKYFILE SKY 1 0 1.000000 249 SKYFILE SKY 1 0 1.000000 251 SKYFILE SKY 1 0 1.000000 265 SKYFILE SKY 1 0 1.000000 235 SKYFILE SKY 1 0 1.000000 250 SKYFILE SKY 1 0 1.000000 250 SKYFILE SKY 1 0 1.000000 266 SKYFILE SKY 1 0 1.000000 234 SKYFILE SKY 1 0 1.000000 250 SKYFILE SKY 1 0 1.000000 251 SKYFILE SKY 1 0 1.000000 264 SKYFILE SKY 1 0 1.000000 251 SKYFILE SKY 1 0 1.000000 234 SKYFILE SKY 1 0 1.000000 249 SKYFILE SKY 1 0 1.000000 251 SKYFILE SKY 1 0 1.000000 250 SKYFILE SKY 1 0 1.000000 250 SKYFILE SKY 1 0 1.000000 250 SKYFILE SKY 1 0 1.000000 265 SKYFILE SKY 1 0 1.000000 250 SKYFILE SKY 1 0 1.000000 235 SKYFILE SKY 1 0 1.000000 249 SKYFILE SKY 1 0 1.000000 251 SKYFILE SKY 1 0 1.000000 265 SKYFILE SKY 1 0 1.000000 250 SKYFILE SKY 1 0 1.000000 250 SKYFILE SKY 1 0 1.000000 250 SKYFILE SKY 1 0 1.000000 234 SKYFILE SKY 1 0 1.000000 250 SKYFILE SKY 1 0 1.000000 251 SKYFILE SKY 1 0 1.000000 265 SKYFILE SKY 1 0 1.000000 250 SKYFILE SKY 1 0 1.000000 250 SKYFILE SKY 1 0 1.000000 250 SKYFILE SKY 1 0 1.000000 250 SKYFILE SKY 1 0 1.000000 234 SKYFILE SKY 1 0 1.000000 250 SKYFILE SKY 1 0 1.000000 250 SKYFILE SKY 1 0 1.000000

250 SKYFILE SKY 1 0 1.000000

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.

Comments

Please feel free to comment/improve the guide above. That's what it's here for.  FW (talk · contrib 00:30, 14 November 2009 (UTC)