New POX tooling

  • Sorry for doing this in English.


    Started on adding a new POX viewer/player, as mentioned in the POX-datei thread. But added this as a new separate thread.


    Put the initial source on GitHub - and did a initial build to try and download here


    For those who have interest in the source-code - a bit more details in a blog post here


    It can load a POX file, view and animate the frames by action and direction - and export these as single bmp files into a folder - not much but a start :)


    There are a few glitches - that I will iron out in the next couple of days - but feel free with comments and suggestions.


    /Steve

  • Well - I did hit an issue with the "Layered Character Resource" - so I decided to redo the whole thing again - preparing for creation of POX files also - so this is a teaser of what I did since yesterday - did apply a transparent style - so "all" features are visible - for the picture.


    So the idea is that you are asked to select the "ArtLib" - containing "all" the POX files - at start-up - so that all resources are known/available - which means that.

    1. Search by name - and filter by resource type - without going to the disk again.

    2. Support layers - so for LC - that has no RLE data - bitmaps can be generated - and the available layers can shown/hidden.

    3. You can switch to a different "ArtLib" by selecting a new base directory.


    Current only export to BMPs are done.


    But the idea is that you should be able to edit the INIData/Properties - refresh and see the changes right away before saving anything.


    The import is for importing new images or INIData - and Saving is for creating a POX file, based on the data/images.


    And I will add translation support - need to skip what I above. And might leave support for styles - the young prefer "Dark" styling :)


    See if I get any image manipulation put in - but maybe adding export to sprite-sheets - is the easiest - since then colour manipulation can easily be done on all "images" at once in an appropriate tool - and then import it again.


    Could this be useful - or/and any additional wishes?

  • A little update - did some fixes and reworks - added support for Layered Characters - you can toggle the layers (not head and feet since I thought they make up the "naked" part) - removed styles on the picture attached - I had planned enable light/dark themes, but...


    Export now saves all the bmps and the ini data in the folder - that is the bmps as rendered - so you can save Sir Roth in his underwear - if you hide some layers.


    The code is still very trial and error - but when I get a bit more done - I release binary and source - probably in a separate repo.


    Still on my todo list - but down to spending a few hours per week currently:


    Message/Status pane:

    • when linked layered resources are not found
    • ini data sanity check - there are many examples of data inconsistency

    Import - not sure how I want it to work yet - but along the lines - when importing from a folder:

    • Only a .ini files is present - it is replacing the current ini data - checking if no. of images currently loaded matches "actions".
    • Only a number of bmps are present - the current images are replaced and ini data is validated for "conflict/errors".
    • Both bmps and ini file - replace all current content - and validate data.

    Save - just save/save as the POX - not sure if I should redirect to "correct" directory based on resource type.


    Editing ini data - might initially just let the user edit the ini directly in the panel on the left - and then validate it on "refresh".


    Help/documentation.


    Any comments are welcome.


    I have only test on Windows - not macOS or others.

  • Saving is enabled again - and an initial simple test indicates that the new saved pox file from 64-bit POXStudio works in the original Siege.


    GitHub repo here btw: https://github.com/SteveNew/POXStudio, since I wanted to seperate the new tooling from the "original" SoAOS - they are both messy enough by themselves :D - will remove the initial POXFile test in SoAOS.


    It is all very much Work-in-Progress - but if the test on the saving works out to 100% - then all the worst things in SoAOS is solved - then there is only a lot of work :)

  • A bit of update: Fixed a couple of saving issues and added pf555 support for loading (since a few of the HumanFemale2Layers uses that format).


    As a test I recreated the 3136 POX from Chapter 1 - with a 64-bit version of POXStudio - and played for 30 minutes with these - but I do not expect that we are out of the woods yet - some of the files have great deviations - some of the original RLE content seems nonsense or sloppy leftovers - many 02 00 00 00 00 (moving x 0 positions) or 03 (new row - when there is no relevant data left).


    I left the "optimized" RLE out - since I had soem flacky scenario - but that was before I did some other changes.


    Also tested with the unpatched DTMain1.exe from the Anthology CD.


    POXstudio is still not useful for much - but when importing and creating new resources is working - I will put up binary releases for Windows and Linux.

  • Jaret Winter is coming, so I will be spending some time again on the project, and also on SoAOS, depending on what the "licensowner" is up to - thread elsewhere. Have asked some here on the forum for a 3D sample from blender to see if I could include that as an import format. Thanks for showing interest.

  • Jaret Just had a brief at the code - and in the context of the POX's inidata, TransparentColor is not used. And FrameMultiplier has an impact on the Animation duration - but I should try and scan for if any of the POX files has any other value than 1 - which if not would make the parameter irrelevant. Might have other usage - but I will have a closer look in the weekend. Would also get me started to look a bit at some POXStudio again :)


    Just out of interest, what are you looking for? Or is it to get a better grasp of the POX format? I would appreciate if you had any findings that could be added to the POX file format documentation - just let me know :)

  • Jaret Had another look at the FrameMultiplier - so seems both used the the Header and a group/action (Stand) section - for animation duration - for the stand action it does determine - based as a minimun - a random on how long a character should stand in a specific pose - to add some "randomness and life" to the NPCs.


    Would it be of any help if I started documenting the various properties in the inidata structure?


    It would also help me get started again - and to see if there is more code that should/could be deprecated.

  • Hi Steve


    Check your inbox. I finally sent you the files.


    As I said in the PM: If your tool could replace the two annoying tools "BMPWorks" and "Gif2Pox", which only work properly on a XP virtual machine, I'd be eternally grateful and could finally regain the motivation to continue working on my little project. They also only allow a limited number of frames.


    Edit: Btw, the TransparentColor is important. The images needed for creating pox-Files are bmp, and those do not support transparency.

    The TransparentColor makes the engine hide this specific color and "see through" it. I use green (green screen, heh) for my stuff, and the devs mostly used yellow I believe.

    Image attached below, where you can see what the exports look like.


    BR,

    Eustace

  • Hi Eustace,


    I will just put a bit info here as well - so again thanks for the file and guide.


    Plan is to finish the current work I am doing on deprecating all the DFX/digiFX code/DLL stuff.


    Then I will spend time on POXStudio again - and focus on making it more "productive and functional" and less "flashy" - and make BMPWorks and Gif2POX obsolete.


    I will probably put support for deflating/inflating .ag files from the Hero-X engine as well - (sorry for mentioning that here - different game - same resources).


    The POX resources from Hero-X does contains +1000 frames - so as you mentioned earlier it is the dreadfull BMPWorks/Git2POX duo that is the bottleneck. Below has 1120 frames as an example.



    Regarding the transparent color - yes you are right - it does have a function - in the context of BMP to POX/RLE data and vice verse. But in regards to the engine using the POX/RLE data it has no use - since the "transparent" pixels are not include in the RLE picture data.

    So we are both right - depending on context :) But POX Studio should honor or let the user chose what the transparent color is for import and export - so you can stick to the "Chroma green" ;)


    BTW: Does PNG import/export make sense?


    I will play with Collada 3D model import later - for fun - if that even makes sense.


    /Steve

  • Steve, thank you a lot for the work you're doing and good luck! I really appreciate it.


    Yes, I only found about the max. number of frames the hard way lol.

    I had to change all the animations and was hugely disappointed.

    The Pillars of Avalon concept level animations were made with another tool too, because they have more than the dreaded ~360 frames.


    And yes, working with PNG should be more convenient because of the transparency support.

    But not mandatory imo, BMP does the job too. It's only the tools that are bothersome.


    I'm looking forward to using the new tool one day. :)


    Eus

  • An update - postponed the Siege engine DFX/digifx for now - so I have been playing a bit with ideas on actually making the whole POX Studio useful:


    So things on the table are - but nothing final - please come forward with any wishes/comments/ideas.

    - A opening "wizard" that lets one decide to: Create a new POX, Open a POX file, Import bmps/sheet (based on POX template (Layered, Tile, Static...) or Resume work.

    - A Character Builder - select the "naked" resource, and apply the layers to create a non-layered character.

    - A Gallery/Browser - filter by type and search - to replace the current drop down - since a thumbnail of the asset is more useful when selecting.

    - Visual ordering of frames per direction by drag-drop frames


    Below is just a test on getting the "editorimage (if any)" from each file - for a gallery/browser.


    Was able to load a 3d model directly - but without textures - so I will not use any time on that yet. Load, Edit and Save are the key points.



    Have done an Hero-X .ag file deflater that I will incorporate in POX Studio - so that resources can be used as well - only current issue is the file names - since their relative path is stored elsewhere (game.ag) - and some refer to the same "gif" name in their ini data. The quality of these seem better and has more frames.


    Did also play with the CNV files - will at one point look into those - since editing them today is ..... I also made this last sunday evening as a late Delphi 25th video - should have included voice over :)

    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.