User Tags

Profile

230.png This user's favorite Pokémon is Kingdra.
038.png This user contributes using Mozilla Firefox.
668Pyroar-Male.png This user comes from Singapore.
SST This user uses Singapore Standard Time, which is UTC+08.
en This user is a native speaker of English.
zh 該 用戶的母語中 文
该 用户的母语中 文
ja-2 この利用者はある程度日本語を話します。
298.png This user's favorite baby Pokémon is Azurill.

Games

889Zamazenta.png This user is a player of Pokémon Shield.
800Necrozma-Dusk Mane 2.png This user is a player of Pokémon Ultra Sun.
792Lunala.png This user is a player of Pokémon Moon.
383Groudon-Primal.png This user is a player of Pokémon Omega Ruby.
716Xerneas.png This user is a player of Pokémon X.
646W.png This user is a player of Pokémon White Version 2.
643.png This user is a player of Pokémon Black Version.
Spr 4h 249.png This user is a player of Pokémon SoulSilver Version.
Spr 4p 487O.png This user is a player of Pokémon Platinum Version.
Spr 4d 483.png This user is a player of Pokémon Diamond Version.
Spr 3r 384.png This user is a player of Pokémon Emerald Version.
Spr 3r 383.png This user is a player of Pokémon Ruby Version.
MD GTI EN boxart.png This user is a player of Pokémon Mystery Dungeon: Gates to Infinity.
Explorers of Sky Time Gear.png This user is a player of Pokémon Mystery Dungeon: Explorers of Sky.
Rescue Team Badge.png This user is a player of Pokémon Mystery Dungeon.
PichuPR3art.png This user is a player of Pokémon Ranger: Guardian Signs.
Kellyn and Kate.png This user is a player of Pokémon Ranger: Shadows of Almia.
Solana and Lunick.png This user is a player of Pokémon Ranger.
Pinball RS EN boxart.png This user is a player of Pokémon Pinball: Ruby & Sapphire.

Shows

730Primarina.png This user's favorite TV show is America's Next Top Model.
779Bruxish.png This user's favorite TV show is RuPaul's Drag Race.
856Hatenna.png This user's favorite anime is Horimiya.
582Vanillite.png This user's favorite anime is Hyouka.
037Vulpix-Alola.png This user's favorite anime is Hotarubi no Mori e.

Last edited on

13:30, 22 June 2021 (UTC)

Introduction

Hi, I'm Wilson and I just came back from a-decade-old hiatus! I have been helping out mostly at Bulbagarden Archives updating static Generation IV sprites into animated ones. If you have any questions, feel free to DM me on Discord @TheWeirdSoul#5101.

Generation IV Animated Sprite Extraction Guide

Credits to User:Decibel

I will be using Pokémon SoulSilver as the base ROM for this guide.

1. Open the ROM on DeSmuME.

2. View the summary screen of any Pokémon in the PC. On the DeSmuME menu, go to 'Tools', 'View Layers', and check off layers until only the Pokémon and a single, green background is shown.

3. Go to 'File', and 'Record AVI' with the 'Full Frames (uncompressed)' setting.

4. Record the video of the Pokémon in the summary screen. Take note to open and close the summary screen for each Pokémon to capture its full animation. Go to 'File', and 'Stop AVI' after recording.

5. Open the newly created AVI file on VirtualDub, go to 'Video', and 'Frame Rate'. Under the frame rate conversion, select 'Process every other frame (decimate by 2). This is to remove duplicate, extra frames of the recorded AVI of ~60fps (59.826), since the main Generation IV games run at 30fps.

6. Under the 'View' menu, set selection start and end of the sprite animation. Give leeway of 2 frames at the start of the animation, and 4 frames at the end. Go to 'File', and 'Save as AVI...' to trim the video.

7. Open the newly trimmed AVI on Photoshop.

8. Crop the AVI to where the sprite is, trying to keep it centred with dimensions of 80px x 80px, if possible. If it seems that the sprite animation would exceed said dimensions, crop the AVI to a bigger square first.

9. Save the cropped AVI as GIF, and open the newly created GIF.

10. Select all the frames in the Timeline, right-click and select 'Dispose' as the frame replace.

11. Go to the last frame, click the down arrow, select 'Other', and input '3' seconds as the frame delay.

12. Group all the frames into a layer folder.

13. On top of the layer folder, drag-and-drop a static version of the sprite (from any reliable source where said sprites are dumped) outside of the canvas. This will centre the dropped sprite into the canvas.

14. Select the layer folder with the frames, and using the Move tool, align it to where the static sprite is. Adjust the opacity of the static sprite to see both the animated and static sprite for a clearer view.

15. If there are any transparent gaps in the GIF, use the Eyedropper tool to select the green background colour, and on the top of the layers, draw rectangles (filled, no stroke) to fill in those gaps.

15a. If the GIF was not cropped to 80px x 80px in step 7, in the Timeline, search for the frame with the sprite reaching its furthest, and crop accordingly from there. Holding Alt while cropping helps ensure the sprite is centred and the dimensions remain square.

16. Go to 'File', 'Export', 'Save for Web (Legacy)'.

17. On the Save for Web interface, on the right panel, make sure 'GIF' is chosen.

18. Use the Eyedropper tool to select the background colour. The background colour will be selected on the colour table.

19. Click on the checkered icon which will turn the selected colour into transparent.

20. Select 'Preview' on the bottom left to see a preview of the animated sprite on a web browser.

21. Select 'Save' and save the GIF with a good naming convention.

22. Use the tool suggested by Bulbapedia Archives[1] to convert the GIF file to an APNG file.

23. Go to the sprite page at Bulbapedia Archives and 'Upload a new version of this file'. Add some comments if possible (e.g. 'Animated 80x80 sprite.', 'Animated sprite.')

24. Upon uploading, the sprite might not animate instantly. It might take around half an hour for the changes to take effect. A hard refresh done on the web browser might also be required. To check whether the upload is successful or not, the image page should now show 'image/png, looped, ?? frames, ?.? s' beside the file name of the image.

25. Do remember to edit the sprite page to remove the {{animated}} template, and add the {{anipng}} template.

Personal To-do List

https://archives.bulbagarden.net/wiki/Category:Images_needing_to_be_animated

I will give priority to animating Generation IV front sprites that have only appeared once, meaning they must not be shared between games.

After that is done, for sprites that have appeared more than once, the two similar sprites from both games will be compared to check for differences (in palette and/or animation). If there are, redirect links will be removed (if applicable) and animated sprites will be uploaded accordingly. (Example: https://archives.bulbagarden.net/wiki/File:Spr_4p_040.png) I might consider creating an additional user page highlighting said sprite differences in the future.

Links

https://archives.bulbagarden.net/wiki/Category:Diamond_and_Pearl_sprites

https://archives.bulbagarden.net/wiki/Category:Platinum_sprites

https://archives.bulbagarden.net/wiki/Category:HeartGold_and_SoulSilver_sprites

https://archives.bulbagarden.net/w/index.php?title=Special:ListFiles&user=HydroSeaDragon

http://bulbapedia.bulbagarden.net/wiki/Category:User_tags