The VG Resource

Full Version: puggsoy's Bottomless Top Hat Of Sprites
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
...I could assemble the sheets in a proper animation order, or at least try anyway. I just don't have the extraction tools and I can't compile anything properly worth a slice of toast. Anyway, I'm glad to see someone is at least ripping this, animation sequenced properly or not. Keep up the good work.
@TheShyGuy: Well, now that you mention it, the PKG files also gave an XML file for every XNB. That is, if it had Ura_Textures00.xnb and Ura_Textures01.xnb, it also had Ura_Textures00.xml and Ura_Textures01.xml. I had a look at these XMLs at first, but they look like a bit of a jumble to me. I mean they seem to designate frames for specific animations, but the animations are ordered like "UraBossAttack0083", then "UraBossAttack0077" then "UraBossAttack0076" then "UraBossEntrance0004" then "UraBossAttack0080". Doesn't seem awfully organised to me.
However for each of these it specifies a rectangle (x, y, width and height), a "top left" point, an "original size" and a "scale ratio". So it does seem to specify frames well.

Here's the first 1010 lines (out of 8387 lines) of Ura_Textures00.xml, which belongs with the first Ura sheet. I'd paste the entire XML but that surpasses the post limit and cuts it off.


I never really paid attention to these since they didn't seem important and I thought it just held random game-related stuff. However they look more organised than the sheet, and might turn out to actually be in some logical order. I'll try and make a little app soon that can organise the PNG according to the XML and see how it turns out. Luckily I made a palette-changing app not too long ago so I've already got a grip on working with images.

@Carpaccio: Thanks, glad you like them! If the above doesn't work out you can have a shot at organising them if you like.
I suppose Rectangle is the position on the sheet, original size is the actual size of the animation frame when not cut and topleft is the position of the data from the rectangle within the animation frame.
Let's just hope they don't have any rectangles overlapping each other Wink
Hey, if you could manage to get them arranged properly, then all the better! Big Grin
Progress is being made.

I won't go into details but what I've managed to do is import the XML and PNG, then use the XML to collect the frames of a specific animation in order, and then drawing them onto a sheet in that order. I had some trouble getting them in the correct order, since the XML had the frames randomly ordered (no idea why), but I fixed this by throwing each frame into an array, giving it an index that's the same as the frame's number (i.e. frame 150 has an index of 150 in the array). After that I put them on the sheet in the order they appear in the array, which is the correct order.
I also ensured that the sheet isn't any wider than 4096 pixels, the max size Bastion sheets get. I thought to keep this, but just now while writing this I decided that I can just make it so that it doesn't get any wider than the original sheet. That'll make it more likely to result in (almost) square sheets, rather than too wide or too high.

In the above example I used the walk animations of the Rattle-tail. Once I make it do all the animations I'll start organising all the sheets and re-uploading them.
Say, are you considering the "original size" and "top-left" information? Of course, sheets would get bigger that way, but on the upside the frames would be aligned properly, I'd guess, which makes them more usable. Also, large blank areas usually do not take up too much data space in PNGs as far as I know.
(I think a frame has "original size" and "top-left" is the position of the sprite rectangle you cut out)
I'm asking because in your "current progress" sheet the cut frames are directly next to each other and require careful manual cropping.

Other than that, it's nice this seems to work!
Yeah, I haven't done anything with top-left and original size yet. Now that you mention it though I'll try and see how that goes, it would align them properly I guess. I can see that these would otherwise be a massive task to animate, rendering the sheet practically unusable except for reference. In any case since I'm being given the option there's no reason not to.

Oh man now I feel like I should do it with all my other sheets, like how RBY does it Shy Should I? The Puggsy sheets would be OK to do but that London Life character sheet would take a while. The annoying thing is that they had the animation aligned backgrounds by default, but I didn't rip them with it. RBY did but to keep the sheet consistent I removed those too. Now I want them back and I'd have to rerip them.

EDIT: Had some trouble with grabbing the TopLeft and OriginalSize elements (due to the "xmlns="Point"" bits) but I got them aligned. The problem is that as Previous said, the sheet is way larger due to blank space, and now the sheets will be harder to get square. I'll see if I can predict the dimensions, at least roughly.
Nah that looks good! And about updating your sheets, no you do not have to do that. Practically all of my sheets that weren't ripped with tools (which are most of them) don't have equally-sized boxes, but that's okay, it doesn't mean your sheet isn't still useful. And yes, that is the reason RBY's are like that, because they come out that way when they're extracted with whatever tools he uses. But, if you really want to do it, I won't stop you, I'm just saying you don't have to. Tongue
The best thing about sheets like the London Life one is that since all of the animations are either idle or walking, they are pretty much assumed that the characters stay with their torso stuck in the middle of the animation. As for other sheets, you should be fine with the way they are. Don't worry. Smile When you have the opportunity to rip with the animation frames though, it's probably preferable. Plus it makes it a whole lot easier to piece together on a sheet!
OK then, I'll leave them for now. If I ever get back to ripping London Life (still wanna do those overworld backgrounds), I'll rerip all the characters slowly with their animation frames. But yeah those Puggsy ones are all right.

Anyway, check it out Wink
After lots of debugging and fiddling around, I managed to make it arrange all the animation frames (including the projectile), plus it automatically tries and make the sheet as square as possible. The way I do it isn't full-proof so it's not as square as I'd like it to be, but in any case it isn't unproportionally wide or high.
I'm concerned about that second row though: the first half belongs with the Emerge animation, which is on the first row, and therefore it's animation box (OriginalSize) is really tall. Unfortunately this makes the entire row that tall, including the second half, which belongs to the Walk animation, and has a shorter animation box.
Also, while all the frames are now aligned, frames from the same animation are sometimes on new lines, which basically defeats the point of alignment. What I could do is give each animation its own line, since I can differentiate between animations with code, but this would pose 2 problems: 1) the sheet would be pretty wide, and 2) animations that have different directions, such as walking, all have the same name and my program can't separate them, so all the walk animations would be on one line, widening the sheet even more.

Right now I'm not sure what I should do about either of these, so if you guys could suggest what to do that'd be great. I also noticed today while testing the first Lunkhead sheet that some animations span across sheets, which completely bombed my program, but I think I already have an idea on how to fix that.
If there are animations for different directions of movement then you can put those on separate lines, that's totally fine.
Not to mention, the sheet really doesn't need to be square, you know. If you can't get it even, then don't worry about it.
Not sure if you understood me right, I mean that I can't get the ones from different directions on different lines. I'd love to, but the only way I can identify animations is through the animation name, and that's the same for all directions. All walking animations have the animation name of "MoleWalk", so I can't separate them by direction.

And yeah, I know the sheet doesn't have to be square, but I just think it'd be better to try and get it square, even if it doesn't work exactly. I mean just so that it isn't like in the aspect ratio of 1:20 or anything Tongue
Oh, okay then. My bad. Shy
Yeah I can understand. I love when things fit neatly into a compact space too, but, it's not always possible, so I don't worry to death about it is all I'm saying. Tongue
Woot.

Last night I finally got it working with enemies made out of multiple sheets. Now almost everything is stored in arrays, and due to that there are all those for loops... oh my god the for loops. In the process however I discovered a chunk of code that was essentially useless, so that's cleaned it up a bit Nerd
Also, while testing this with the Scumbag sheets today, which as you know are massive, the program crashed due to the PC running out of memory. Apparently the problem was that the resulting sheet was too much for the PNG encoder I used, so after looking around I found a much, much better one. Not only can it encode asynchronously (which I had been looking for before), but when you do so it encodes in chunks, which allows for enormous images. It also has some other cool stuff, but seriously asynchronous encoding is awesome.

Anyway, now I'll get to work on putting each animation on a single line. Then you can tell me which you'd prefer.

EDIT: OK, so... I've done it, a small change in code was all that was needed. But seriously, the resulting image for Rattletail sheet is 84,480 x 1231, you can't tell me that's fine. As I said I can't separate the directions, so ALL of the walking animations are on one line. I even uploaded it so you guys can see what I mean, but for some reason minus converts it to a BIN file so you have to download it. Here's the file.
What's more is the fact that when I try to do this with the Lunkhead sheet, it didn't even work: I get the same error that I got with the old PNG encoder. So this isn't really an option any more, unfortunately.

I have however been thinking about the sizes of the bigger sheets, that are originally from multiple ones. If you want I can try splitting them up, but it would have to be either by animations (i.e. one sheet has these, the other has those), or by number of frames (which would split the sheets evenly, but it would interrupt animations).
Or I can just have it all in one sheet, if that isn't too big.
So wait, the walking animation, for one single direction, takes up that much space? Or do you have all the directions on one line? Yeah sorry that thing is over 50MB and I have no clue how to open an image-file-converted-to-a-.BIN-file file.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22