Jump to content

Guide: Custom H5 Norm and Spec map (bump) creation with AwesomeBump and Gimp 4.10


Recommended Posts

Custom H5 Norm and Spec map (bump) creation with AwesomeBump and Gimp 4.10

 

By arse22 Mar 2021

 

Intro

This will be a brief introductory guide to creating your own bumps (normals and spec maps) for Hook5 TK17, using free software you can find online. When it comes to 3d and image manipulation, these topics can be daunting and overwhelming, so I will steer clear of much technical aspects or details and dive straight to practical, as it pertains to Hook 5 and this game.

Once you get the hang of it, you will agree that the artistic and technical knowledge required for baseline bumping is actually very low and maybe even limited. I would go as far as to say that a good portion of it is grunt work, so everyone can learn it and be contributing.

 

 

Pre-Requisite

-Any working version of TK17/SV with working Hook5(free or paid.)
-Installed GIMP 4.10 or latest
https://www.gimp.org
-Installed AwesomeBump latest https://sourceforge.net/projects/awesomebump.mirror/

 

 

Basics of Bumping, Spec and Normal Maps

So, long ago on Hook4 everyone used BumpMaps to create nice visuals for rooms, clothes, skin, anything with a texture, sometimes even without. Later, in Hook5, it has been replaced by Normals and Specular (norm and spec) maps, so this should clear up any confusion about those terms. They are not compatible, but achieve the same thing as far as improving your textures through Hook5, everyone still calls it bumps though.

nsfiles.png.2023d120af5173477e5374acd173c03e.png

 

Typically the most common format you will see is [texture name]_n for normal and [texture name]_s for specs. They are placed in the same folder as the texture in ActiveMod, alongside a [texture name]_pass .txt file which points to the norm and spec. All of these you have to create for H5 to interpret in the game.

pass.png.4154bd0388fb2d1d14ee209db9879f46.png

 

Selecting a Texture to Work On

The first step is to select a texture you would like to work on, let’s take a base game texture like Jeans (F_Jeans001_Base.png) . Typically cloth, hair, room texture, object texture is simple and straightforward, best for this guide. Skin is a little more advanced so maybe save that for after since there is more room for error and the process is not plug and play, there is much more room to improvise but this basic knowledge is still required.

F_Jeans001_Base.png.b8f27c95a26f1476f021d7c5725e9657.png

 

AwesomeBump Quick Guide to Normal Maps

AwesomeBump is a popular free choice, it’s a little heavy on features and confusing to many, but good to have in your arsenal, especially if you plan to branch out into other 3d things. We will use it minimally as an excuse for you to install it.

When you first load up this program, it looks like this:

AwBu.png.4437c090d5c30e0432926ef3562fb768.png

 

First thing to do is click on the top left icon with “D” for Diffuse and make sure you are on that, I believe it’s on it by default so nothing will happen usually.

Then you click “Open New Image,” and find the texture we are working on.

DiffNew.png.bb947e7eb26e026313526bfbb243bd84.png

 

Looks kind of weird right now, so you must check “Enable preview”. Then, scroll to the bottom of this window and click on “Convert.”

prev3conv.thumb.png.ea4e9eb0c9a1d333c9ad371225822658.png

 

So, now what the software did is use the image we put in as the Diffuse and created various bumps for it which you can select on the left. N for normal, S for spec, H for height, O for occlusion, R for roughness etc.

options.png.5ca19c413e7dc7a8a37aac7775488fa8.png

 

We’re not actually going to use much of that, for now just click on the N icon so we can make a normal.

One thing to note about this program, although you can rotate and look at the result in the preview window in the middle, don’t click on the window in the right because it actually has an effect on the later result. I am yet to figure out how to reset it to neutral position, short of reloading.

norm.png.25266aab54bf4b2296c27fee7e562cec.png

 

This is a good place to trial and error, but some of the things the sliders do can easily be done with a paint program later, there is no difference and we are trying to only make a basic bump or PBR as it’s called. So for now let’s just load it in game and see if it works. Leave the settings to default and select “Save Current Image.” Save it in the folder you have your texture, note that the _n suffix is already added in (the program knows what you want.)

save.png.6ecb3bfa2ff3a3f3a32f6f64ef64c664.png

 

Testing In-Game

If you looked around, you noticed the preview window in AwesomeBump doesn’t tell you much if you’re not already familiar with what you’re looking at and it’s not really made for Hook. So, if you have not already, create a “TestJeans” folder or something like that in ActiveMod and place both the texture and the normal in.

If you load the game right now, it will look bad without a spec, so let’s use a generic spec for now just to test the normal. Just right click and download the below green image and place it with the other two files in your new folder in ActiveMod. Make sure it's named F_Jeans001_s.png

F_Jeans001_Base_s.png.75eb64a5cacda7c46f5d7454c868dc45.png

 

Now you just need to make a pass file, create a new text file named “F_Jeans001_Base_pass.txt” in the folder with this info:

jeanpass.png.c950a3a768e78640d7a628a80c090658.png

 

So, when you load it in game it will be under “TestJeans” or whatever you named the folder. From this point it’s a bit of guess work, if you want to experiment with normal, you can change the sliders in AwesomeBump, overwrite the normal file and press Alt+R to reload in-game, to see the result. It’s a good idea to try it out if you never done this, but I will attempt to save you some trial and error and try to explain what the sliders do:

 

Enhance Details - This is basically stronger normal effect (if you used the default settings from the program, you will note that the difference between that and a basic texture is fairly subtle, unless you mess around with lights, because this is set to 0.)

Small and Medium Details – Well, below is a slider called Details Depth and these are just a means to fine tune it.

Details Depth – This is self-explanatory, it’s how deep the crevices and such should appear (I think you can do this with contrast in any image program.) In more complex objects, an advanced technique involves making multiple depths and combining them together into one normal map to try to paint the object more accurately.

Sharpen/Blur – It’s more or less sharp and blur from any image editing program, however the effect is really strong here, probably better to do subtle work in such a program, but it can save you time situationally.

Normal Step – Honestly I don’t even know what this does. It seems to be more depth tweaking, but you should leave it at 1. Setting it to 0 makes the image disappear entirely and -1 inverts the normal, I prefer to invert in a separate program later if needed, since you rarely need to invert the whole thing, just specific parts that ended up wrong.

 

Advanced Normals

From here honestly, how good you want to make your normal is in your hands, you can leave it as is or you can tweak it a bit, or you can go in and make multiple normal, merge and crop them or merge with normal of other images to create weird effects or a textile effect for clothing etc.

It will entirely depend on your skill with image manipulation and how much detail you put in. There is much more technical info on best practice and usage of normal maps elsewhere on the web, using this as your base method to build from is a great way to begin the journey of learning.

The key concept to understand, also true for specs, that the image you put in for the bump will be what the game interprets, so using the base texture is only the foundational step, you are not required or limited to this. For example if I took some small HD image of human skin and made a normal of that, I can pass it as a normal for an actual skin, it will repeat the normal across the whole thing. That won’t look great, but it’s an idea.

However, for something like a skin, you can’t just throw something in and expect good results because in the case of this game, the skin texture used by the game engine does not properly convey a lot of the complex curvature of a body, especially when it comes to details. The normal produced will have a lot of wrong depths (the outline for the body for example) and many missing ones too.

So making a real good one would require a lot of extra work, if only to clean the normal a program like this would produce, which would be but a baseline starting point and maybe not the best one. This can absolutely be true for clothes, room textures etc as well, depending on the subject and what you are trying to accomplish.

 

Editing Specular Map

So we have a passable normal map made and everything works in game, time to look into making a custom spec map. This a lot more open-ended, easier but also more choice in approach. Normals are very similar across many 3d program, but the specs in Hook5 are unique to it, so it doesn’t hurt to look over the Hook5 guide before or after this. It sort of goes hand-in-hand with this guide on how to make a spec in Gimp.

Specs are even more broad I would say, many content creators just use that default green image I provided (it actually comes with hook generic textures) and don’t bother looking into it. There are many ways to approach it and frankly I don’t even use AwesomeBump for specs at all. But, hopefully this method will offer a good place to start.

Back in AwesomeBump, as example, let’s switch to the Spec Map tab and create a default settings spec map, the method is the same, just select the tab and click “Save Current Image.”

spec.png.e603ad16dad97b35c3a4adacd02df1c2.png

F_Jeans001_Base_s.png.4ff0c752650802bc47729f7a4de4e54c.png

 

Now, you want to take this new _s file that was created and load it in GIMP. In GIMP, select Colors->Components->Decompose. In the drop down select RGBA and hit ok.

decompose3.png.7feb4e5dae3b29a8545f8d93deb309c3.png

 

 

If you don’t have this option in GIMP, you should download a plug-in, I am not 100% sure it comes with GIMP by default.

GIMP will create a new image with 4 layers corresponding to the RGBA colors.

layers.png.d93b841175846e5b858e5d510475e3f6.png

 

From here, any white on a specific layer will turn that color when we recombine them, so if that makes sense, the image is only there to guide you in your creative journey. In general you want the red (metallic) layer to be black and the glow (blue) to be black, while the alpha to be white. The green is the most commonly used layer since it makes things shiny and that’s a large percentage of hook usage.

So, for now select the red layer, then Colors->Levels and set the Output to black.

output.png.1da08f733fdecf5d543a1f27cf1fd3a5.png

 

Do this for the Blue layer as well and leave the other two unchanged (the alpha should be white already.) Now select Colors->Components->Compose. In the Compose window make sure to select RGBA again and make sure each layer aligns with the corresponding channel. Hit ok and yet another image will be created.

compose3.png.58e748c01c63a458dfea81f8d8d80eb0.png

 

Now just File->Export this new image overriding the _s file in your folder and Alt+R in-game, I am assuming you already know this part from when we did it for normal map in this guide. If you followed the steps, the composed image will look like this, a working custom spec:

F_Jeans001_Base_s.png.7cfc46b43fc767da3e2d10a305b583be.png

 

Color Channel Details

One thing to note when you test this result is that our custom item became very shiny, that’s because the Green channel is actually gloss in Hook5 and we did not change the spec made by AwesomeBump and because it’s mostly white, the effect is very strong. You can go back in and adjust the levels of that channel to your liking and compose again if you’d like. Another thing to do is to try out the other channels in the same way (actually all Black and all White is the simplest test, to see the extremes of each channel in-game.)

The thing about metallic (RED) channel, it’s not that commonly used, often times a fine detail on metallic parts. Usually a high gloss (green) setting is plenty for actual metal parts and accomplishes the same effect and usually you will want a combination of the two anyway (since red isn’t shiny by default.) To make good specs, just like with normals, manual editing and fine tuning of specific parts is necessary.

A note about the blue channel is that it will not do anything unless you have paid version of hook5, have enabled glow in settings and added the line “glow_intensity = 1 or another number, 2 is a good testing number” into the pass file, so again it isn’t used that much. On a more practical note, often glowing objects are futuristic things like data pads and the like, so again, like red, it will be in combination with the red and green channel and not nearly that strong as we are doing here.

If all of this is confusing, a good exercise to try is this: decompose the original spec again and this time turn all 3 channels black and paint white with a brush in different spots on each layer before composing, as I did in the pic below (look at the layers previews:) It should compose to the lower image:

ex12.png.f8fe7e098201f7607cca51858bc32604.png

 

You can even export and Alt+R and hopefully my notes on channels Red and Blue make more sense once you see how that looks in-game. Only the Green (gloss) channel is pronounced unless you have enabled glow for blue, red is much more subdued. An overwhelming majority of specs made for Hook5 will just be adjusted green channels, since most just want a nice gloss on their objects.

So, one last thing experimental thing to try, is to add to the test composition is manually paint a strip of white and erase a strip (alpha,) directly on the composed image, just to see how they look in game.

ex3.png.4b79802f1914d9fed0d158bd2e6e6404.png

 

Well, what did we learn? It seems white is also glow (if you have Glow turned on and added the line into the pass file on paid hook, if you don’t it will just look super glossy/shiny.) While alphaed-out areas will create an absence of light (though this is only true for hook light, I’m assuming, the in-game light engine still tries to light the area but the in-game light engine is bad so why worry about it.)

That should cover the basics on how to compose a specular map and how details and in-depth you want to be with it is up to you (just like with norms) and up to your image manipulation skills. You can paint directly with white or gray on the decomposed layers, or just copy paste from somewhere, since the layers are grayscale, it will work out.

 

Advanced Spec, Hook5 and Beyond

From here, I would look deeper into other Hook5 guides for more advanced ideas and experiment with different settings you can apply to textures (besides glow_intensity, there is many more.) Once you know this basic steps, you can see it is easy to begin learning more Hook5 tricks easily. For example, in the Hook5 guide it says messing around with the alpha color channel can produce more interesting effects, I didn’t really try so I didn’t cover it in the guide, so it could be a good place to start.

More-so than normal, specs can really be anything and can have a major impact on the final image so it’s sort of like playing with fire in some cases, especially when it comes to glow and high gloss. I didn’t even begin to describe how a good normal map works in tandem with a good spec map, so you are really aiming for something good between those two and seeing how different types combine together is where a lot of the experience comes in.

Worth noting, if you have already read the Hook5 guides and are familiar, the norm and spec we are making are specifically for CustomModel shader which is the most common. Room things often use CustomStatic, CustomSkin is for skins, but there is also EyePass and EyePass2 specific to eyes.

 

Quick FAQ

 

Q: What about subs?

A: Subs, or SS or subsurface scatter is kind beyond this guide. Since it’s for CustomModel shader, I don’t even think there is a stage4 parameter. Basically, it’s used on skin to create an illusion of realistic skin, because real skin is semi-translucent, visually the eye catches a second layer (at least.) Essentially it achieves the same thing, but a lot of times, you don’t need a program for it, you just take the original texture or the diffuse and make it darker. If you want to become proficient with it and want to create realistic skin, you are better off looking into Customizable Skin in H5 which offers much more robust options for achieving this effect and more (I think it works for clothes too, but Ive never seen it.) 

 

Q: What about sizes? Things are different sizes?

A: Size doesn’t matter really, you will see most norm and spec maps in .dds format because of mipmaps. In general though, Hook5 will accept larger and smaller norms and specs without problem.

 

Q: What is a good way to work with .dds files, since many of norms and spec are?

A: GIMP should be sufficient and handles the format well, loading existing and converting pngs, make sure to generate mipmaps when saving. Another good alternative is Paint.net but I had mixed results with it, it just loads faster for 1 minute edits.

 

Q: Is the specular map created by AwesomeBump just a greyscale image of the texture?

A: I’m pretty sure that’s all it does, but I didn’t bother to test, there is some sliders to make adjustments too and those are definitely applying various adjustments to it. I don’t actually know the details but it seems ok to use it since it’s where your normal will come from. I highly doubt it’s the optimal method, I’m 100% sure Hook5 is not reading the map the same way the program that it’s intended for is, but it should work since it’s just different colors.

 

Conclusion

So, I showed how fast and easy it is to make your own norm and spec for any texture, it’s time to get to work! >:)

Well, to be honest it can be a lot of work if you want to achieve certain things and want it to actually look good, it takes trial and error and I’ve most certainly avoided almost all the technical details behind how such maps are used in broader 3d software. There is plenty of info out there and the methods I showed are not the best or most optimal, they are just a simple way to get started and make your own H5 bumps today.

 

 

Link to comment
  • 2 months later...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use