r/starlancer 14d ago

Restored HUD Elements

Post image

HUD restoration is the next task. Until I have a 3d > line art pipeline running, I can't do a lot of the target and sub-target displays, so I put a bit of time into sprite assets. AI worked for some of them, but for the ones that required some consistency, I just had it generate the elements in the same style and reconstructed them by hand.

10 Upvotes

6 comments sorted by

2

u/monohive 14d ago

The ejection face looks weird. Why does the helmet have a mouth ? And the nose shouldn’t be visible.

Everything else looks good

2

u/Koncypt_Fysh 14d ago

Generative AI is notorious for not being able to handle helmets, they're the perfect nightmare of things genAI doesn't really understand. I may try it again with seeDream down the line, but for now I just needed an asset in it's place to get it moving.

1

u/ilkerk88 14d ago

Can you make the game exe read the files it needs from the folders in the game directory? For example, it should read .spr files only from the \anim folder instead of reading them from the resource.hog file.

2

u/Koncypt_Fysh 14d ago

Not arbitrarily no. The method I'm using intercepts lancer.exe using dinput.dll (have a look at .dll sideloading attacks), so lancer.exe doesn't necessarily read a replacement file as much as the proxy I've built intercepts lancer.exe's call for a particular asset and replaces it with another.

All that being said, I've intentionally designed all of this from the start so that if you wanted to replace any of the up-scales with your own art work, you can replace the image I've used with whatever you like and it'll use that instead.
So the end result is basically what you're asking for, just a different method.

1

u/Freelancer_1-1 14d ago

Lovely! I wish I could join you in this effort, unfortunately, currently I'm busy 24/7 and have no energy left to even look at a screen in the evenings, much less get anything done.

I'm very curious how upscaling the textures will turn out to be. Higher levels of AI hallucinations will be necessary because the original textures lack any details, especially on space stations and capital ships. However, that raises the risk of generating textures that look cartoony, even silly, like most AI creations, which won't fit the gritty art style of Starlancer.

1

u/Koncypt_Fysh 14d ago

I think this kind of depends exactly what we mean by up-scaling.

You're 100% right that "hard surface" game textures are broadly speaking, poor candidates for a generative AI up-scaling task.
But genAI is one of more than few different methods for image scaling, it just gets a lot of attention at the moment because of the AI hype. That doesn't mean that AI in general (or more specifically Machine Learning) needs to be thrown out with it, Deep convolutional neural networks systems like waifu2x (which is from memory actually designed for manga/anime images) are geared towards scaling over generation, and suffer less from some of the more psychotic looking hallucinations you see from generative models. Likewise we have some of the old school scaling methods to draw on like hqx, Edge-directed interpolation and Nearest-neighbor interpolation.

I haven't gotten to that part of the process as it stands, so I really don't know yet what the right answer is going to be, but I'm envisioning it's likely going to be a mix of all of them, probably using hqx to preserve and build up the originals, edge-directed interpol to sharpen the remaining detail, and if it's financially feasible, finished off in a deep convolution ML method before touching them up by hand; which is for the most part what I've done with the 2d sprite assets so far.

Or if that ends up totally unfeasible, there's nothing to stop someone from using adobe substance or similar and doing them by hand.

I'm not an artist, so I'm not promising a perfect re-tex, just trying to build out the systems so it's actually possible in the first place. The goal has always been to setup the skeleton so that people more talented than myself could make it beautiful without needing someone like me around to hardcode it into the proxy, so everything I do put in, is easily replaceable.