Graphic set editor (V1.01 Update released)

Started by namida, April 04, 2015, 10:30:56 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

namida

#15
I'm not saying anything about what my plans for that set are, for now. All I'll say (and this is really nothing more than a pointless trivia detail) the name I've given to it is "Candy", and that that is an actual level I plan to use, not just a test / proof-of-concept one.


EDIT: NeoLemmix player can now load embedded graphic sets in this format. :) It only directly works with graphic sets that are named (rather than numbered), but there's also a workaround which will match known numbers to their files (eg: in the Orig player, if it detects a level that uses Graphic Set #0, it'll automatically attempt to match it to the Dirt set in the new format).
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

#16
Two glitches relating to Cheapo graphic set conversion have been identified; please don't use this tool to convert Cheapo graphic sets until it's updated. It seems to have no issues with all other supported formats.

EDIT: Another one, imported PNGs may not always have a *black* background when the black background option is enabled; it may be a different color instead. However, this has no impact on the output graphic sets (regardless of choice of format), so it's a purely graphical glitch. One workaround to solve it is to save to LemSet-compatible INI/PNG format, add "rgb_24=1" to the INI, then reimport it.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

#17
Loading and saving images as strips is now supported. Loading supports both BMP and PNG, saving is currently PNG only. Obviously, when importing you have to manually tell the editor how many frames there are and whether they're arranged vertically or horizontally. Exporting currently always arranges them vertically (this is in line with both how LemSet worked by default, and what (Super)Lemmini expects in object images); if there's any major need for horizontal to be supported I can add it but it's not a high priority at the moment.

Currently BMP loading treats #FF00FF ("death" magenta) as the transparent color, but I plan to make this customizable before any update is released. PNG, of course, generally will contain a proper alpha channel if the image needs one, though it still has the option to use a transparent color again (but for this too, it's currently hardcoded to death magenta).
EDIT: Custom selection of a transparent color is now supported.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

#18
Okay, update is here. Do note that although it supports the new NeoLemmix graphic set format, the current version of NeoLemmix itself does not. (I've already implemented support of it for the next player update, though I still need to implement editor support.)

V0.8 Beta
>  Object graphics can now be imported and exported (in BMP or PNG) format as strips; ie: images
   that contain all frames of an object arranged horizontally or vertically. The buttons to do this
   are right below the single frame import/export buttons.
>  The new NeoLemmix graphic set format (supported in NeoLemmix from V1.31n onwards) is now
   supported. This format avoids many of the limitations associated with the old format, such as
   the maximum size of 248x255 per piece/frame, the requirement of widths divisible by 8, and so on.
>  Fixed a bug where all pixels were treated as non-transparent in imported Cheapo graphic sets.
>  Fixed a bug where the frame order of entrances in imported Cheapo graphic sets would remain in
   the Cheapo order (ie: first frame closed, middle frames opening sequence, last frame open) instead
   of being changed to the NeoLemmix order (ie: first frame open, second frame closed, remaining
   frames opening sequence).
>  Fixed a bug where the "black" background might be colors other than black (in particular, often
   it would be white) on graphics imported from PNG files.
>  Fixed a bug where if you alter the trigger areas while Display Trigger Areas is enabled, the
   displayed trigger area wouldn't update until you did something else that caused the image to
   be refreshed (such as viewing a different frame, or turning Display Trigger Areas off and on
   again).


Remember, this should still be treated with caution. Keep backups, don't overwrite files you can't afford to lose, save often, etc. Rather than creating a huge mess of files with the Export > INI / PNG > Full option, you can save as the new NeoLemmix format; it will save full 24-bit (+ 8-bit alpha) images without rounding off the width to the nearest multiple of 8.

https://www.dropbox.com/s/3pwu2pkky6npkxx/GSTool_0.8_Beta.zip
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

#19
VGASPEC files have been added to the todo list for import formats. The reason for this being that these may as well also be upgraded to a 24-bit format, and the simplest way to do that is simply make them a graphic set that only contains a single terrain piece. (Indeed, if I revise MAIN.DAT format, it will probably also be based on this format.)

Also, documentation of the file format has been added to the NeoLemmix website. An update for NeoLemmix will be out later today; the remaining things to do are check playtest mode works fine with the new format and fix one unrelated glitch relating to interaction between the Solid Floor gimmick and zombies.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

#20
Importing VGASPECs is now implemented. Lemmini / SuperLemmini are next on the todo list. However, before they can really be done, I need to add code to NeoLemmix to do the resizing of different resolution graphics (at the moment, if they're going to be resized instead of having oversized pieces, they'd have to be resized while saving the graphic set).

(EDIT: Okay, that was actually really simple to do. Player and Editor support for that are both implemented for the next update.)
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

#21
I have successfully converted a SuperLemmini graphic set to a NeoLemmix one. :D One slight issue, and this is on the player side (not GSTool's side), is that although the graphics are properly resized to account for resoution differences, the trigger areas are not. Time to fix that...

EDIT: Done! Next up, is saving as SuperLemmini graphic sets. One currently not supported feature (and I don't plan to support this in NeoLemmix any time soon, but may support it in the tool for SuperLemmini purposes in future) is multiple sound effects for an object.

Attached image: Showing NeoLemmix using a converted-from-SuperLemmini graphic set. The level is Medi 24 "Eye of the Lemming" from Lemmings Plus I.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

#22
Just did the first test-run in the opposite direction, using the Tree style from LPII.

Of course, objects not supported in SuperLemmini format got converted to objects that do nothing. That aside, terrain pieces are fine (including resizing to suit SuperLemmini's resolution), while objects do have some minor hickups that shouldn't take long to fix...

EDIT: Second run worked a lot better. :D Now to actually build and test a SuperLemmini level using it...


EDIT: So, while testing, I discovered a very useful, undocumented (I think) property of SuperLemmini - setting the maskOffsetX and maskOffsetY of a window will alter the point the lemmings spawn from. :D Anyway, check the 3rd attached image! :D I decided to use this level as a somewhat symbolic thing - it was also the first level in the first custom graphic set for Lemmix. :)

Got a few issues to iron out (such as fully making use of that window spawn location), and then I can release the updates to fully support this new stuff. :D
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

V0.9 Beta update is here.

V0.9 Beta
>  Now supports loading Lemmini and SuperLemmini graphic sets.
>  Now supports saving SuperLemmini graphic sets.
>  Object image strips can now be imported from GIF files.
>  Transparency in palette-based PNG files is now supported.
>  Supports a few extra sound effects for triggered objects.


DropBox
NeoLemmix Website

Additionally, source code is now available generally instead of only on-request.
V0.9 Beta Source (DropBox)
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Working on allowing sounds (for custom traps etc) to be stored in the graphic set, to avoid issues of sound number conflicts and having to build custom sounds into an EXE (or distribute them together with a graphic set as seperate files). So far, the level editor has everything it needs to deal with this (which is basically just knowing how to identify sound data and ignore it), while for the graphic set editor and player, the backbone of it is there (loading and saving them from the graphic set), but actually replacing them / using them respectively is still to be done.

EDIT: Graphic set editor can now load/save them from the INI/PNG files format, though still no built-in option for importing / exporting individual sounds. Before I add that, I'm going to get them working in-game.

EDIT: Player is now playing them fine.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Just had a brief look at the source code for Essman's style extractor. It doesn't look like it'll be *too* complicated to load STY files directly.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

I'll make this V1.00 (or perhaps V0.99 until I've had some time / feedback to minimize bugs) once the following planned features have been implemented:

> Loading Cheapo graphic sets directly from STY files (if this doesn't turn out to be too hard)
> Importing individual frames from BMP / GIF files
> Exporting individual frames to BMP files
> Exporting entire object graphics as a strip of frames in BMP format
> More user-friendly and flexible managing of custom sound effects in a graphic set

So far, BMP/GIF imports of graphics is limited to from Lemmini or LemSet-source graphic sets, or as image strips of entire objects; it isn't supported yet for individual frames.
All export (apart from NeoLemmix-specific formats of course) are PNG files.
The management of custom sound effects, I've got something in there that works, but it's kind of just an interim solution that I can use while working on my own graphic sets, and I want to put something far more user-friendly in before release (besides, a NeoLemmix update to support it will be nessecary - this update has already been made, just not released as I'll probably put a few more things / fixes in before another update).
And Cheapo is still limited to needing to run through Essman's tool first. I have, however, added support for custom sound effects in the (extracted) input Cheapo styles.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

As far as loading STY files directly goes; I've finally managed to successfully load images from STY files. Loading sound effects and metadata, and handling style files that refer to other style files, is still to be done.

EDIT: I've now successfully loaded terrain pieces, aside from the marker of whether or not they're steel (that's the next thing to do, of course). :D
EDIT: It's now completely capable of loading terrain pieces from a Cheapo STY file. Next up; objects.
EDIT: Okay, one more thing I forgot before moving onto objects, which has now been done: Supporting cases where the style file refers to another style for it's terrains.
EDIT: And another. It's much simpler to load sounds first, then objects; so loading sounds is now done (and working).

Once STY support is fully working, I'll probably remove the support for loading extracted graphic sets, as there's little use for it if STY files can be loaded directly. Do note that this doesn't make the style extractor completely redundant; as GSTool is obviously only going to load parts of the style it can actually make use of (eg. NeoLemmix doesn't store lemming graphics or music in a graphic set, so GSTool would pay no attention to those). I have no intention of expanding it to extract these other things.
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

On a non-Cheapo related note, the following two bugs are fixed for the next update:

> INI/PNG export failing on graphic sets that don't contain at least two objects
> Object/terrain sizes not updating in the piece lists immediately when new images are imported
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)

namida

Okay, it's now loading a Cheapo style completely, directly from a STY file, including all objects (apart from gravity changers, which as usual are converted to no-effect objects), and even generating one-way arrows (which it wasn't currently doing when loading from extracted styles). :D

Going to test this a bit more, and if it works well, then I just need to take care of the other (much smaller) matters before releasing an update. :)

EDIT: Looks like there's one thing I overlooked - same thing Essman originally overlooked in his tool, actually. Accounting for the existance of circular trigger areas in Cheapo. (NeoLemmix doesn't support these, but the tool converts them to rectangular ones)


Remaining tasks for next release:
> Importing individual frames from BMP / GIF files
> Exporting individual frames to BMP files
> Exporting entire object graphics as a strip of frames in BMP format
> More user-friendly and flexible managing of custom sound effects in a graphic set
> Fixing a glitch with loading NeoLemmix graphic sets that contain sound effects
My projects
2D Lemmings: NeoLemmix (engine) | Lemmings Plus Series (level packs) | Doomsday Lemmings (level pack)
3D Lemmings: Loap (engine) | L3DEdit (level / graphics editor) | L3DUtils (replay / etc utility) | Lemmings Plus 3D (level pack)
Non-Lemmings: Commander Keen: Galaxy Reimagined (a Commander Keen fangame)