• Welcome to Final Fantasy Hacktics. Please login or sign up.
November 28, 2020, 11:04:16 pm


Don't be hasty to start your own mod; all our FFT modding projects are greatly understaffed. Find out how you can help in the Recruitment section.

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - Satchmo III

The Lounge / Re: Map exploration...
July 22, 2019, 01:43:52 am
I wrote code to read each map's GNS file to determine if the game files for each map contains mesh or texture info. Only a few maps have a single texture...most have multiple full size texture images each with subtle differences (usually varying degrees of shadowing). Each map has multiple mesh files also, it seems like one primary mesh file and a bunch of others with very small file sizes. I suspect these smaller files have something to do with animation tiles and/or moving mesh parts...I haven't seen things like moving windmill blades in the primary mesh files as of yet.

I iterated through the map files to create OBJ and PNG files that I then imported into Blender. A small amount of the maps have some minor pixel color issues (if you look closely below you can see some blue where there shouldn't be blue on a couple of the maps) and 20 maps had messed up vertices. I'm a bit surprised by these glitches since 90% of everything else came out looking good...I'll be investigating these issues and looking into the moving things.

The Lounge / Re: Map exploration...
July 12, 2019, 09:40:37 am
Success! I iterated through each UV polygon to determine each UV polygon's max/min U and V coordinates and then iterated through each coordinate set to check each pixel's grayscale color and then swapped it with the appropriate real color from that UV polygon's color palette to create a color version of the texture image.

Since some UV polygons overlap, this process would happen more than once and changed the pixels in the area of overlap a second or third time to an erroneous color. To solve this I first checked if the pixel was one of the original 16 grayscale colors and if it wasn't, to ignore changing the color. That way the pixel only changed once, the first time it was converted from the grayscale to the color.

I've only ran the script for two maps (shown below) and am pretty happy with the results. I'm traveling out of state this weekend and won't be able to automate things more until I get back. Until the next update, take care reader.

The Lounge / Re: Map exploration...
July 11, 2019, 01:57:53 am
I believe the UV coordinates have been fixed. gomtuu's explanation back in 2010 will be better than I can explain (LINK), but essentially instead of moving certain vertices to increase the shape's size the solution was to shift the entire shape by 0.5 pixels in +X and -Y directions (really +U and -V in the parlance of texturing). This seems a bit strange because there's technically an unused texture border around each polygon on the UV texture, but even so when it's applied to the model the texture looks seamless.

I've had some success in looking at the gray-scale texture image and applying the correct color palette to correct polygon areas of the image, though I'm having some difficulty parsing out how to instruct python to correctly loop through all of the pixels in the bounds of every polygon. Below is where I'm at currently after trying to focus just on the quads, though not all of the quads actually got looped through it seems.

The Lounge / Re: Map exploration...
June 30, 2019, 11:33:34 pm
I wrote code this weekend to open a mesh file from the game and write the vertex, normal vector, and UV coordinate information to an OBJ file. I only worked with 056 but the code should work for any of the mesh files. I had to play with the UV info a bit so the coordinates translate to Blender (things like dividing the coordinates derived from the mesh file by the texture image file size (i.e. 256 for the U and 1024 for the V) so the OBJ file contains UV values from 0 to 1). In Blender with the gray texture map brought in...

There are a couple issues I need to work out. The first one I don't think I really mind at this point but the normal vectors all appear to be facing inward even if I reverse them in the OBJ file. To reverse them I'm just multiplying each of the X, Y, and Z portions of the vector by -1 and I'm not sure why this wouldn't do the trick but Blender shows the normals pointed inward either way. Perhaps I mistranslated some of the bytes to begin with.

The second issue definitely needs to be fixed. The UV coordinates as they've been outputted from the mesh file are off slightly. I noticed this issue with the Ganesha viewer and early on in my map exploration days I was correctly placing UV vertices manually anyway, but there must be a way to resolve this by modifying the data when coding and creating an OBJ file.

For each tri polygon one vertex needs to be shifted +1 X unit, one vertex needs to be shifted -1 Y unit, and one vertex needs to be shifted +1 X unit and -1 Y unit. This is the same for three of the vertices of each quad polygon, and the fourth vertex stays put. For one of the triangles, below shows the UV output from the mesh file at the left and my manual adjustments to correct it on the right.

I was hoping I could easily fix this by adding the appropriate units to each UV coordinate in my code, but when iterating over all tri vertices (although the tri above was fixed) the order of the vertices in other tris appears to be different so the units were added/subtracted incorrectly depending on the polygon. It isn't clear to me currently how to resolve this, but I suspect it has something to do with the order of the vertices in the mesh file. I'll need to figure this out to both correctly apply the texture to the model mesh and to be able to parse out how the color palettes get applied to the gray-scale texture.

I haven't worked any with some of the more game specific mesh file data like terrain types or polygon visibility parameters. I don't think I'll bother with this stuff until (and if) I try to build a new map and back load it into a mesh file.

May you taste of victory until next we meet, Zodiac Braves!
The Lounge / Re: Map exploration...
June 23, 2019, 06:27:02 pm
Hola hackticians!

I've been sifting through the gilded zeroes and ones of the game, like a machinist recreating forgotten and mysterious technologies of old. I'm trying to get more serious about taming some Python and made some appreciable progress over the last 10 days or so. If not for gomtuu's mapping of the map files I'd have no clue how to proceed so thanks again to him. I'm in no position to make a map viewer like he has but I'm enjoying slowly retracing his steps and learning more about the game and programming/computers along the way.

Back when I was modeling/texturing map assets I was using map2gl to take screen-grabs of the texture images with each of the 16 palettes applied and splicing them together with Photoshop. My workflow was okay but slow and tedious. After explaining to Python where to find and translate the disk info I was able to automate the production of gray-scale texture bitmaps as output from Python code. It's been a struggle writing a working script, but it was exhilarating to run it last night and populate a folder with all the textures. Below is the function I defined to accommodate this, which I ran from a short py file to work through all the map files. There are actually multiple versions for most maps but they have only minor differences (some are used for alternate times of day with different shadowing and such that I don't think were used very much in the actual game).

The gray-scale images contain 16 shades of gray, and colors get applied to those shades when a map is loaded in the game. I haven't yet investigated this data yet but I spent time today working with the hex chunk of the map mesh file for Orbonne that identifies the 16 color palettes and each palette's 16 colors. I was able to successfully output a 16x16 image replicating the palette just like gomtuu programmed for the map2gl. I was elated when this worked. For this portion of the work I spent a good amount of time looking at the hex info and trying to parse out and translate hex to binary or decimal before actually programming. Taking notes and writing things out was a helpful precursor to actual programming. I only ran the script on Orbonne, but I'll be wrapping it up and making it work across all mesh files. Below is my program window in front of the texture editor from map2gl for a clear comparison.

That's it for now. It might not seem like much to experienced users but it was a hard fought climb for me. My next summit will be to better understand how the different palettes get applied to different areas of the texture images and then it's on to working with the 3D information. I intend on figuring out a way to make OBJ files to import into Blender with MTL files to apply UV textures.

For fun, below is a GIF cycling through each map's primary gray-scale texture image. I'm going to take a break for a bit (hopefully not a year this time) but I'm excited to continue on and keep unearthing ancient machina. Until next time! Take care everyone!

You keep reminding me that I have to finish Vagrant Story (I actually didn't complete it when I did played oh, almost 20 years ago). Ashley looks great, love the hair bounce. It seems you're increasing detail and decreasing the number of used pixels versus the original which must be some sort of sorcery. Keep it up!
The Lounge / Re: Map exploration...
May 27, 2018, 01:34:20 am
Thanks Twinees, I did not understand that the sprites use different palettes than the portraits. It makes sense, just didn't occur to me.

I haven't worked very much more on the sprite, Valkirst. It's definitely something I'll return to.

I painted the Orbonne model a couple weeks back. The last thing I think I painted was a popsicle house a number of years ago...my skills are not great and there are things that need to be touched up. When I was painting I didn't think things were coming out very well, but after the acrylic paint dried out the colors looked better. I managed to break off the air terminal at the top of the roof (who could see that coming?) and subsequently managed to lose it somehow...I'll have to print a replacement and call a roofer to get it re-installed.

Below are some pictures of the rough paint. Take care everyone.

Fran looks great, I really like the hair. It's awesome how much detail you're able to coax out of those limited pixels. The feet on Sydney look better and those other two characters are good representations of your source materia (I decided to keep this typo, seems like final fantasy source material should be called source materia).
The Lounge / Re: Town backgrounds (PSX)...
April 09, 2018, 05:43:32 pm
My apologies if they're already on the site somewhere. I searched before I posted but didn't find anything for them (or the unexplored lands). They're neat little thumbnails and I thought if nothing else they're good inspiration. Higher resolution versions would be awesome to discover. The descriptions that accompany the unexplored lands add some cool flavor to the FFT world.
Thanks for the suggestion on Shishi, I've been playing around with it and it's cool to be able to scroll through all the characters/animations and be able to see how the different parts of the sprite sheet are combined to make the animations. I produced an unfinished sprite for my cyborg ninja. It definitely needs some work, let me know if you have any thoughts should you check it out (link).

Looking at your work I see a few things I'd like to emulate to improve mine. Your colors seem to pop where they need to and your compositions are very clean and clear.

Sydney's tattoo may be too light now (probably a bad suggestion on my part). I put the sprite into Shishi and might offer one suggestion (hopefully not a bad one). On the front-facing walk cycle (animation 6), when the right foot starts moving back from neutral position it disappears rather quickly under the skirt, it might to beneficial to show a bit of the foot on the next frame to help illustrate the motion of the foot swinging back.
The Lounge / Re: Map exploration...
April 07, 2018, 06:11:25 pm
Thanks for compliment on the 3D prints. I'm planning to paint them (at least Orbonne), and think then they'll really pop.

And thanks for the portrait workup. I can definitely see the shape more, especially with the visor, and I really like the shadowing at the front of the neck. I'm going to try to incorporate some of your ideas into a new version.

Quote from: Twinees on April 02, 2018, 12:35:17 pmIf you need any more help regarding pixel art things, let me know.

I appreciate that. Have you ever thought about creating pixel art for custom maps? It seems like it'd be a major undertaking...but it'd be super cool to marry the right 3D map with the right texture art. Maybe we could collaborate sometime.

Below is my first (and incomplete) draft of a sprite for Olga (I should call her Mr. X or some iteration of cyborg ninja...but I like Olga) including front walk cycle GIF and PNG of the sprite sheet (PNG format for incomplete sheets per a FFH banner notification I saw). There's a bunch that can be improved but I think it's at an okay resting point before making revisions. If you, Twinees, or anyone else has constructive criticism or suggestions then I'm all ears. As always, thank you everyone for your interest and take care.

The Lounge / Re: Map exploration...
April 02, 2018, 11:32:14 am
I appreciate the feedback Twinees! If you'd like to take a crack at making some improvements I welcome your experience and am interested in seeing your take. Thanks in advance.

My intent was for the light to be more or less directly in front/above the face. The shaping of the visor is a subtle thing and I actually started with more defined outlines but cut it back to try to let the shadow tell the story. I've been thinking the visor could wrap around more as it goes from front to back (using less straight lines). It's my first concentrated effort to produce pixel art, it's so simple yet so complex at the same time (kind of math kind of art) which makes it fun.
The Lounge / Town backgrounds (PSX)...
April 02, 2018, 02:56:22 am
Below for reference are the world map town backgrounds from the game. I used ShishiSpriteEditor to screenshot the images (from the PSX version of the game...I think it's the same for the PSP version). The image resolution is originally 120x80 pixels but I've increased it to 240x160 pixels in the individual images below. At the bottom of this post is one image combining all town backgrounds at their original resolution.

I think 240x160 is the in-game display size...but if someone knows it's something different, I'll resize the individual images in this post.

01 - Lesalia Imperial Capital

02 - Riovanes Castle

03 - Igros Castle

04 - Lionel Castle

05 - Limberry Castle

06 - Zeltennia Castle

07 - Magic City Gariland

08 - Yardow Fort City

09 - Goland Coal City

10 - Dorter Trade Center

11 - Zaland Fort City

12 - Goug Machine City

13 - Warjilis Trade City

14 - Bervenia Free City

15 - Zarghidas Trade City

16 - ?

17 - Bethla Garrison

18 - Deep Dungeon

19 - Orbonne Monastery

00 - Combined Town Backgrounds
The Lounge / Unexplored lands (PSX)...
April 02, 2018, 02:42:29 am
Below for reference are the unexplored lands (proposition rewards) from the game. I used ShishiSpriteEditor to screenshot the images and FFTactext (great program name) to attain the text info (from the PSX version). The image resolution is originally 120x80 pixels but I've increased it to 240x160 pixels in the individual images below. At the bottom of this post is one image combining all unexplored lands at their original resolution.

I think 240x160 is the in-game display size...but if someone knows it's something different, I'll resize the individual images in this post.

01 - Shrine of Chaos

Long ago, ancient gods sealed Jade, the king of Hell, deep underground. Also on that very same spot is the Shrine of Chaos, a defiled shrine with an air of decadence.

02 - Forbidden Land Eureka

According to legend, Eureka was the once prosperous capitol of the Kashuka kingdom which collapsed due to the enormous debt of the royal family. Today, it's a ghost town, a memory of its past glory.

03 - Pandemonium

The former capital of the ancient Paramekia Empire. Surrounded by a mountain range of 9000m, even airships couldn't access it. The only way to reach the city was through a corridor that passed through Hell.

04 - Mirage Tower

This tower connects the ancient Ronkan castle to the earth. A special magic coating on the walls keeps the tower hidden. Once in a while, the castle can be faintly seen as a mirage.

05 - Floating Castle

Winged men once knew how to create floating rocks. The same technology was used for this castle. But with the disappearence of winged men, the technology was also lost.

06 - Matoya Cave

The cave where the magician Matoya who served the ancient kingdom of Ronkan lived. He was well liked by the people, but after creating a demon, he was feared as a sorcerer.

07 - Crystal Tower

The castle of the ancient kingdom of Baron. The town was built like a labyrinth to keep strangers out. The castle is made of pure crystal representing the power and wealth of the royal family. It was built entirely at the peoples' expense.

08 - Magic Continent

Once, believed to be the gate to either Heaven or Hell, recently scholars agree it is the result of a great impact caused by the collapse of the floating stone within the earth.

09 - Castle of Trials

In the past, this was military school for the Baron's kingdom. An exceptional group of pilots called "Red Wing" graduated from this academy. Even a great institution like this is now destroyed.

10 - Tower of Babel

The legendary tower that reaches to Heaven from deep underground. It's also called Giant's Tower. More than legend, this is a valuable record of an ancient civilization.

11 - Ronkan Ruins

At its height, the Ronkan Empire covered the world. But because of a mysterious disease, the entire civilization was destroyed. Today, only an empty castle remains quietly floating.

12 - Falgabird

Said to be the village where magic swordsmen hide. Because magic swords shorten the life of the user the number of swordsmen steadily decreased. Now, all that remains are empty houses.

13 - Magic Train

A transport train. Used during the war to transport man-made demons, it's now known as the Magic Train. It's also sometimes called the 'carrier of dead'.

14 - Touzas Village

A village of dwarves called Liliputians. Once a dictatorship, it was liberated by the giant, Atlas. Touzas in the original means "distant land".

15 - Chocobo Forest

Very little light comes into this deep forest where many rare, wild Chocobo live. In its center, it's said the World Tree grows. It reeks of Chocobo...

16 - Semite Falls

One of the most important areas in the Paramekia Empire. Mythril can be found within this gigantic waterfall, and its water was used as fuel for the airships of their time. A magical waterfall indeed.

00 - Unexplored Lands Combined
The Lounge / Re: Map exploration...
April 01, 2018, 11:34:08 am
I mentioned previously that I'm a fan of Metal Gear Solid. I really dig the character Olga (aka Mr. X) from the second game and love her cyborg ninja getup. I modeled the helmet about four years ago based on some photos I took off my TV when playing the game and spent a bunch of time searching online to see if I could acquire the actual model (helmet and suit) to compare to my work. I found some good leads, but all associated links were old and dead. I shelved the project until recently (after modeling the FFT maps I wanted to expand the practice). Kojima (or Konami) had put out a PS2 "game" that contained a sort of making of for MGS2 which I was able to pick up cheaply from eBay. It had character models you could freely rotate and some concept sketches that I used for reference which helped immensely to check the scaling on the helmet and make the suit.

All that is to say...here is a cyborg ninja chilling alongside the canals of Magic City Garliand.

I'd like to make a FFT sprite for her, and need to do some research here to figure out how. In the meantime, I'm exploring CG animation with Blender, and on Friday I put a rig on the Mr. X model and made a walk animation. It's not unlike the FFT's sprite animation battle walk (which gives me an idea for a future project branch).

Although I'd like to make a character sprite someday, I was able to make a FFT style portrait for her yesterday. I read somewhere here that the game limits the portrait (and sprite) color palette to 16 so I followed that rule and sampled colors off of existing character portraits. I assumed the background is one of the 16, but if it's not I could add one more color. The color limitation, and more so the pixel limitation, really forces you to make hard choices. I tweaked it a bunch and could probably keep making tweaks but I think it's passable now. Let me know if you have any constructive criticism. I'm going to use it for my avatar, but below is a copy in case I change it later.

Your custom sprites look cool. I'm not familiar with how the sprite-sheets relate to in-game motion so I'm not sure I can give good feedback. One note on Sydney concerning the back tattoo...it might be good to show some skin at the small of the back or use some of the lighter colors to differentiate it from the black clothes, the tattoo looks a bit like straps in some of the positions. I spent a bunch of time making and then tweaking the MGS2 cyborg ninja portrait for my avatar...when you do these sprite-sheets, do you find yourself continually looking over and tweaking things? I feel like it's one of those things that might never truly seem done. Take care.
The Lounge / Re: Map exploration...
March 29, 2018, 10:37:56 pm
Thanks everyone for your comments, I really appreciate them. I've been focused on other things lately and haven't done too much with this project but I wanted to respond and share a bit.

Xifanie, I'm able to imagine the number of hours I've spent on this stuff but I'd probably need a calculator if I tried to add them all up at this point.

Angel, the prints do make for neat little items to have laying around. With a group of them they're kind of like those little towns or villages some people put up at christmas time.

Elric, I'd be interested in seeing your clay models if you still have them about. I bought some clay a few years ago but was only able to form some rough blobs.

Cheetah, see below.

Heisho, see below.

Rfh, it's a good point. FFT is such a gem, it's lovely that there are places like this site where people are interested in extending its lifespan.

I made some simplifications to the Orbonne model to make it a bit easier to print and I'd like to share it with the community. There's a link below to my OneDrive account to download the STL file. If you go to it, OneDrive provides a navigable 3D preview of it in your web browser (I thought this was a cool discovery). Edit: Hmm...after checking it out I think the preview only works if you're signed into OneDrive (or maybe it only works for the owner of the file).


As far as print instructions I can only describe a little of what I did. I made the Orbonne print with no supports, a 0.28 mm layer height, and 20% infill. It started out with ABS plastic, but was switched to HIPS about 2/3 of the way through when my ABS ran out (if you look at the photos you can see the slight variation in gray colors at the arch above the front door).

I'd love to make and share some prints for a fair price (or trade) if anyone is interested. I'm not trying to just hawk some wares...it'd be really cool to sell something I made to someone who would appreciate it. Please let me know.

May you find victory in battle, hackticians.
The Lounge / Re: Map exploration...
March 04, 2018, 06:18:43 pm
A number of months passed before I'd revisit the project. Thinking back to that first 3D print and its simplistic look, this past January while I was recovering from some surgery I began detailing out the Orbonne Monastery model. At first I tried to make it from only one mesh which became complicated, when I abandoned that ideal and started using multiple objects it got easier.

I've tried to maintain the relatively simple pixel aesthetic of the texture images while carving/adding the detail. Rasputin Lagasca made a really great detailed Orbonne Monastery model/animation (https://vimeo.com/97158350). Something like this is out of the scope of my abilities currently.

I finished up Orbonne, moved on to Gariland, and finished with Lionel Castle. I got fancy with the camera in Blender for Lionel Castle.

Printing these out yielded pretty good results in my opinion. The last photo below shows all three detailed prints along with some other simple prints (can you guess which maps they are?).

And that is where the project rests as of today. Thinking about next steps, these are some things I may explore in the future.

1. Paint the detailed 3D prints.
2. Produce larger detailed 3D prints (print in sections and later assemble).
3. Develop 3D character models. Though since the pixel sprites are so awesome to begin with I'm not sure I want to mess with this.
4. Create other custom maps.
5. Investigate code/programming opportunities. I may need some assistance with this.
6. Explore other Ivalice provinces (Vagrant Story and FFXII).

Thanks again to those that are interested in the stage maps and thank you to those that are interested in this project. Please let me know if you have any thoughts or questions.
The Lounge / Re: Map exploration...
March 04, 2018, 06:18:26 pm

Satisfied with what I had accomplished in the computer I began exploring what I could do with the models. I 3D printed a small Orbonne Monastery as a gift for a friend. This was cool, but in all honesty it looked a little too simple.

I considered how I might utilize the pixel data on a printed model. I thought I'd print out the texture image on a sticker sheet and apply stickers to a 3D print. I never tried that but since I'm pretty familiar with the pepakura (papercraft) process I took that approach. I exported an OBJ with MTL file from Blender and opened it with Pepakura Designer. Pepakura Designer allows you to unwrap a 3D model, print the flat unwrapped parts onto card-stock paper, and then cut out and glue together the parts to assemble back into a (now physical) 3D object. This worked pretty well for Magic City Gariland. I haven't followed this form for any other map.

Going back to the computer I thought I'd extend the FFT aesthetic to another good game, Metal Gear Solid. Just as the opening Orbonne is forever linked to FFT in my memory, the opening heliport setting is tied to MGS. I made the following with some very very basic textures (this was my first attempt at producing something like this). Some day I'll revisit/improve it and maybe make more.

Probably the only hacking I've done thus far came next. I cobbled together some python code to make a web-crawler to download all of the four direction reference images from ffhacktics. I think web-crawlers may be generally frowned upon by server managers but I figured hacking ffhacktics would be acceptable and appropriate. I wanted to have all of these references if I chose to make more models in the future.

The Lounge / Re: Map exploration...
March 04, 2018, 06:18:00 pm
Since I now had accurate model meshes the next step in the progression was figuring out the textures. Ganesha allows you to export a map's texture image but only in grayscale so it wasn't terribly useful.

At the time I started to read gomtuu's excellent breakdown of the game's map files (http://ffhacktics.com/wiki/Maps) to understand more about what's there, but it was mostly greek to me (again, I want to learn more about programming but it's difficult for me to process code and hex and whatnot). I came to understand in principal that the game uses 16 different 16 color palettes that are applied to differing polygons of the map when rendered in-game. I don't understand exactly how this works but I was able to get a peak behind the curtain with gomtuu's map2GL map viewer program.

map2GL allows you to view the maps and export colored texture images but those images are with the 16 distinct color palettes that the game draws from to apply to the model (and not one image containing the appropriate palettes just where needed). Fortunately, the map2GL interface allows you to view each of the 16 texture image palettes with and without the used polygons drawn over them. With this, I took screen-shots of each texture image palette (with and without the used polygons drawn on), used Photoshop to layer all of the colored palette images, and cut out the non-used parts of each image...this resulted in one layered image (which I output to a PNG file) with the appropriate colors from all palettes in their proper places. The process is a bit time consuming but workable. Below is a screen-shot of what Gariland's layered image looked like in Photoshop. I'm sure a similar process could be carried out in GIMP or other image editing software which utilizes layers.

I won't go into great depth on the operation of Blender (unless someone has a question) but having a usable texture image is just a first step to texturing a model. The next step is basically to tell Blender how to lay the 3D polygon faces on the 2D texture image. Depending on the map and texture image this could be straightforward but where not I used Ganesha as a reference (remember Ganesha's interface shows the actual 2D UV coordinates for each polygon). With this process (and learning how to use alpha channels in Blender) I was able to texture my meshes. Below is Dorter Trade City in Blender. I textured six or seven of the maps I had produced (see earlier image).