Joined: 5/25/2007
Posts: 399
Location: New England
Watched it; totally amazing! I'd say it should be automatable in some fashion with some hackery:
1. dump a file with camera x,y changes & corresponding frames
2. dump screenshots for every frame
3. write a program to animate it
4. synch with sound
I'm 100% unsophisticated with video stuff, but the above would definitely be possible; perhaps others know a better approach.
I'll add the NES Metroid 100% to my wishlist!
Thank you sir. I'm sure sooner or later somebody will automate this and I really hope one day that emulators will support this in-game!
Until then I guess I'll be creating frame-by-frame... and on that note check out my latest video Journey to Silius: Stage 1!
If anyone knows any other funny speed runs with this kind of entertainment or dancing please let me know ;)
Joined: 5/25/2007
Posts: 399
Location: New England
AndyDick, I'd be interested in a brief overview of how you're currently doing this.
Also, to avoid misleading or irritating anyone, can you mention somewhere in your youtube post that the metroid run was tool-assisted?
Following with interest!
In the YouTube description this is what I already have:
An NES Atlas video featuring Lord Tom's Metroid Speed Run in 1080p.
This tool-assisted speed run was completed in 8:19.32 with the use of saves states and door glitches. For more information see: http://tasvideos.org/2032S.html
Original Atlas borrowed from realSim of VGMaps.com and can be found here:
http://www.vgmaps.com/Atlas/NES/Metroid-Zebes%28Unmarked%29.png
Gameplay footage encoded by creaothceann and can be watched here:
http://www.youtube.com/watch?v=bKWM1Zqz5AM
Did you mean put TAS in the title?
And the process to create these is fairly easy... yet incredibly tedious and time consuming.
I start with a map from VGMaps.com and import into Adobe After Effects. I then export raw uncompressed footage from somebody's TAS and import that into After Effects. The resolution between the map and the TAS should match up exactly (the peeps from VGmaps like to make their maps in native resolution). I then advance the footage frame-by-frame and shift the x/y coordinates in comparison to the map as the game progresses.
In the past, I was downloading the footage from youtube and with it's horrible compression it doesn't match up too good (see my Battletoads video). I also had to shrink or stretch the video to get it back to native resolution... I'm glad I export raw from emulator now! See Journey to Silius for my first example of this improved technique.
In the end you're pretty much watching a video being moved over a giant map on YouTube. Since most of these maps are larger than 1920 x 1080 I have to also shift the map to focus on the gameplay. There are times I have to adjust the color too... probably because the programs used to create the maps are different then the emulators exporting the footage.
Does that make sense? I suppose I should make a video tutorial so others can follow in my footsteps :)
That's basically what I imagined you would be doing. As others have noted, it should be possible to find camera coordinates in RAM, export them for each frame, and then write a small program to composite the image data for that frame with the map at the correct coordinates. In fact, if you had a small example of exported frames (preferably in PNG format), a map, and some camera coordinates, I could probably whip something up using Perl and ImageMagick.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Joined: 5/25/2007
Posts: 399
Location: New England
Andy: Thanks for the how-to info! Also, I must have missed that you already had all the info about the Metroid run being tool-assisted; please ignore my earlier request.
This does sound possible to achieve... I'm wondering if After Effects has some sort of DLL where you can send coordinates to continually adjust x/y position depending on which frame the video is on. I'll have to look into this!
What I'm envisioning would basically take all of the exported frames of the movie (as individual images), and convert them into frames of the entire game map. You could then convert those frames into a movie format, combine it with the audio, and add your panning/zooming effects. It'd take up a crapton of disk space up to the end, though -- the Metroid map is 826KB and the movie is 29960 frames...so that's, uh, 23.6GB of data. I guess that's a bit excessive.
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
Joined: 5/25/2007
Posts: 399
Location: New England
Derakon: yeah, that's a lot, especially if one ponders the Metroid 100%, which is several times longer. But I imagine one could process the run in segments, splice them together, then synch with the sound.
Awesome. It's nice to see that they actually made the map contiguous across rows even though you can only see one row at a time.
Thanks for making these!
Pyrel - an open-source rewrite of the Angband roguelike game in Python.
I wanted to try this. However, it looks like it's a challenge that is a bit beyond what animmerger can do, seeing as how Megaman really acts in the "next" screen", but appears in the current screen. Moreover, when the screen scrolls up in that stage, strange things happen. See this illustration for reference: http://bisqwit.iki.fi/kala/snap/bmweird.png
Screen 1 appears. Screen scrolls up, into screen 2 -- however, screen 3 is displayed instead (because that is the screen where Megaman is in). During scrolling, screen 1½ appears (mix between 1 and 3). After a scrolling, screen 3 changes into screen 2, the correct screen that is above screen 1. Then, screen changes into screen 2½ (camera centers on Megaman's actual position).
You try to do that with an automatic canvas tracer! To render it properly, screen 1½ would need to be split so that the bottom half is rendered at screen 1's location and the top half is rendered at screen 3's location rather than at screen 2's location.
Basically, I gave up trying to convey that properly. Here's the approximate result!
http://bisqwit.iki.fi/kala/snap/bmweird1.gif -- 4250 frames
http://bisqwit.iki.fi/kala/snap/bmweird0.gif -- 200 frames cyclic
If your goal is to understand what happens in the Bombman stage, I can see a static image would drive that purpose better. Here is an example of a such image:
https://files.tasvideos.org/bisqwit/rockman1tas-cutman-explained.png
Wow, it's cool that a site has written an article on this:
http://gamez.itmedia.co.jp/games/articles/1007/28/news075.html
It's in Japanese... The article's title is, "What's this?! Video of Famicom game played super zoomed out" and the next heading is something like "A video walkthrough? Or a new kind of art?"
Zelda II: Great Palace
Link to video
I took extra effort to display environmental changes even after video scrolls past. Now all that is left are enemy animations off-screen *gulp*
Hey, I love your work and have an idea for the Super Mario Bros. movie.
Couldn't you merge the levels 1 to 3 of a world?
Here is an example of what I mean - I know it is not suitable for that yet!
http://www5.pic-upload.de/17.08.10/d9atp1pla8lb.png