Users browsing this thread:
Animal Crossing: New Horizons - Setting Up Facial Textures in Blender
#1
Hi, this is my first thread so I expect it to not follow certain site/community rules/standards. Apologies in advance.

I'm posting this because after getting no help and not knowing a place to go to ask for help, I did eventually figure it out

Software: Blender 2.91.0

Model and Texture Files
The names of the files I'm using are:
• Player Body Model (includes cheek, nose, and skin textures) - PlayerBody.Nin_NX_NVN
• Eye Textures - PlayerEye00.Nin_NX_NVN
• Mouth Textures - PlayerMouth01.Nin_NX_NVN

Here are some attached screenshots of my node setups per face material 

Some Notes:
Green Nodes - The green nodes are node groups. This was specifically necessary for the skin color, so that it was in sync with all the materials. I just selected an RGB node, pressed Ctrl+G to create a group, and press TAB to go in and out of the node group with it selected. Name the node group "SkinColor" (or Eye or Cheek Color) and you can pull that node group into other materials by copying and pasting it or pressing Shift+A (Add Menu) > Group > [theNameOfYourNodeGroupHere]

Color Space - Make sure to double check your texture's Color Space setting if you're getting funky results. Rule of thumb: Any grayscale textures, normal maps, or "mix" maps (that contain different material surface property information per color channel of the texture) should be set to "Non-Color". Alb (Albedo) textures should be left at "sRGB".

Normal Map Setup - The nodes following the normal map texture are because the Normal Map file contains no value in the Blue channel of the texture. Without going into heavy detail, the game engine used for AC:NH probably automatically adds that blue value/vector information in their shader, and Blender doesn't have that by default. Normal Maps are typically a blue/purple color, and that's because the Blue channel has a value of 1.0. So we're simply adding in a Blue value.
Perhaps a more efficient way of doing this is connecting the Normal Map texture Color output into the Color1 input of a "MixRGB" node, setting the Blending Mode to "Add", setting the Color2 RGB values to R=0.0, G=0.0, B=1.0, and setting the Fac to 1.0. That is just simply putting a blue value into our texture. Then feeding the output of that node directly into a "Normal Map" node. 

UV Sets - The "UV Map" node is necessary, at least in my case, because I combined all the face mesh objects into the main body object, so the materials needed to know which UV set to display for. Otherwise they don't render (by default).

Mix Maps - I don't understand what all the "Mix" map color channels are supposed to be assigned to which material property... but in my case, I'm doing this for a 3D print and that information is irrelevant. Though I would like to know what channel is for what material property anyway.

MixRGB Nodes ("Mix", "Multiply", "Add" Nodes) - The yellow nodes are "MixRGB" nodes. Searching for a "Add" or "Multiply" node will come up with nothing (they need to change this in my opinion, it would be helpful to search for the function and have the node that provides that function show up in the search).

Merging Vertices for Shading Errors - Once combining the face objects, I selected all the vertices and pressed M > Merge By Distance to remove any overlapping vertices so that the shading would run smooth across the head. Otherwise you have separated sections where the vertex normals are different and don't get a nice smooth shade across the head. 

mPaint Material - I just hid this mesh and didn't use the material because for my specific case it didn't make any difference. But not really sure what it's for, maybe just for specific accessories like face paint or shadows or something? Certain emote textures? Not sure.


Hope this helps Smile

**EDIT** - I think the normal map's green channel needs inverting. If you're using the "Separate RGB" to "Combine RGB" to add your Blue value, just put an "Invert" node in between the Green channel connection. But only for the face textures, not for clothing...?


Attached Files Thumbnail(s)
                   
Reply
#2
It doesn't works for Blender 2.75?
Reply
Thanked by:
#3
(01-17-2021, 10:34 PM)IkaMusumeFan06 Wrote: It doesn't works for Blender 2.75?

I'm not exactly sure how to do it on Blender 2.75, but the workflow should be similar.

I don't know what nodes have changed since then, and what buttons/UI have moved around.

This was done on Blender version 2.91.

Good luck
Reply
Thanked by: YiyaRoxie
#4
This is very helpful. By chance, do you know how to use the .asb animations with these models?
Reply
Thanked by:
#5
(01-22-2021, 08:16 PM)modernbertos0 Wrote: This is very helpful. By chance, do you know how to use the .asb animations with these models?

Hey, thanks!

I do not know anything about the animation files and how to hook them up to the models. Good luck!
Reply
Thanked by:
#6
Hi, I can't seem to match you eye texture. The whites of the eyes seem too dark and the skin color doesn't seem to match the body color, no matter what settings I use. I think it has to do with the mix layer, but I'm not sure.


[Image: ZqEKzag.png]
Reply
Thanked by:
#7
(03-30-2021, 07:29 PM)MattDFM Wrote: Hi, I can't seem to match you eye texture. The whites of the eyes seem too dark and the skin color doesn't seem to match the body color, no matter what settings I use. I think it has to do with the mix layer, but I'm not sure.


[Image: ZqEKzag.png]

Hi, a couple questions:

1) Are you using Eevee or Cycles?
2) Is your eyes color texture map set to sRGB or Non-Color?

Play around with those and let me know what you get.
Reply
Thanked by:
#8
(03-31-2021, 12:42 AM)Penguinburger1 Wrote:
(03-30-2021, 07:29 PM)MattDFM Wrote: Hi, I can't seem to match you eye texture. The whites of the eyes seem too dark and the skin color doesn't seem to match the body color, no matter what settings I use. I think it has to do with the mix layer, but I'm not sure.

Hi, a couple questions:

1) Are you using Eevee or Cycles?
2) Is your eyes color texture map set to sRGB or Non-Color?

Play around with those and let me know what you get.

This is in Eevee, and apparently waking up this morning fixed the tone matching. The eyes still look too dark, and my end goal is baking the texture for Unity so it'll be hard to fix the eyes if I can't do it with the shader nodes. I made sure every node matches yours.

Color texture is set to sRGB and mix is set to non-color. (Note: Your node workflow does not work in Cycles, as the eyes just become black with pixel artifacting around the pupils.)

[Image: dvnw7TB.png]
Reply
Thanked by:
#9
(03-31-2021, 11:21 AM)MattDFM Wrote:
(03-31-2021, 12:42 AM)Penguinburger1 Wrote:
(03-30-2021, 07:29 PM)MattDFM Wrote: Hi, I can't seem to match you eye texture. The whites of the eyes seem too dark and the skin color doesn't seem to match the body color, no matter what settings I use. I think it has to do with the mix layer, but I'm not sure.

Hi, a couple questions:

1) Are you using Eevee or Cycles?
2) Is your eyes color texture map set to sRGB or Non-Color?

Play around with those and let me know what you get.

This is in Eevee, and apparently waking up this morning fixed the tone matching. The eyes still look too dark, and my end goal is baking the texture for Unity so it'll be hard to fix the eyes if I can't do it with the shader nodes. I made sure every node matches yours.

Color texture is set to sRGB and mix is set to non-color. (Note: Your node workflow does not work in Cycles, as the eyes just become black with pixel artifacting around the pupils.)

[Image: dvnw7TB.png]

 It works in Cycles if you switch the eye texture color space from sRGB to Non-Color. For some reason Cycles doesn't like the color values, not sure why.

I'm not entirely sure how to fix your problem other than adding another MixRGB node after the eye white color to brighten the eye white.

Do share your progress!
Reply
Thanked by:
#10
I've been following all the steps on this tutorial and the skin tone for the body and the face texture just won't match up. I'm a little confused and don't know what to do.
Reply
Thanked by:
#11
(04-02-2021, 09:27 AM)OctoCreator13 Wrote: I've been following all the steps on this tutorial and the skin tone for the body and the face texture just won't match up. I'm a little confused and don't know what to do.

Hello,

Please share some screenshots with a more detailed explanation. Just need some more context.

Thanks!
Reply
Thanked by:
#12
(04-04-2021, 12:40 AM)Penguinburger1 Wrote:
(04-02-2021, 09:27 AM)OctoCreator13 Wrote: I've been following all the steps on this tutorial and the skin tone for the body and the face texture just won't match up. I'm a little confused and don't know what to do.

Hello,

Please share some screenshots with a more detailed explanation. Just need some more context.

Thanks!

I'm very sorry for taking your time to write but I was able to figure it out.  Shy

(edit): Do you know how to texture the socks??
Reply
Thanked by:
#13
(04-04-2021, 08:43 PM)OctoCreator13 Wrote:
(04-04-2021, 12:40 AM)Penguinburger1 Wrote:
(04-02-2021, 09:27 AM)OctoCreator13 Wrote: I've been following all the steps on this tutorial and the skin tone for the body and the face texture just won't match up. I'm a little confused and don't know what to do.

Hello,

Please share some screenshots with a more detailed explanation. Just need some more context.

Thanks!

I'm very sorry for taking your time to write but I was able to figure it out.  Shy

(edit): Do you know how to texture the socks??

Glad you were able to figure it out!
What was the solution? Maybe it would help others out.
As for the socks, I haven't touched the socks before so you'll have to figure that one out on your own, sorry.
Reply
Thanked by:
#14
As far as updates go, I did successfully port the textures (in a sense) to Blender and then to Unity. My workflow isn't exactly great, but it is something that people can improve on.

For skin textures, I mix the Albedo color with black using the Mix image's green channel as an Overlay layer in GIMP. This gives the texture some definition. Everything else mostly follows Penguin's guides.

To get these textures into Unity (or your preferred program) just bake them from an emission shader to a new image and save. It's tricky, but for most of this stuff I just threw whatever stuck at the wall.



Some Mix theories:

Albedo Alpha -> CRV (Curve? Something like fresnel or rim lighting texture.)
Ocl -> Transparency (In alpha channel OR color)
Mix Red    -> Mettalic/Spec?
Mix Green -> Detail Shadow/AO
Mix Blue    -> Spec/Roughness?
Mix Alpha -> edgcod (whatever that is)

My unity workflow in GIMP:
Mix Green -> Overlay -> (Albedo - Alpha) = Texture
Mix Red = Mettalic
Mix Alpha = Specular

[Image: HPltvyB.png]


I did some atlas-ing and just threw textures at a wall here, don't take it as gospel

[Image: gmbn65I.png]
Reply
Thanked by: Penguinburger1
#15
(04-05-2021, 04:54 PM)MattDFM Wrote: As far as updates go, I did successfully port the textures (in a sense) to Blender and then to Unity. My workflow isn't exactly great, but it is something that people can improve on.

For skin textures, I mix the Albedo color with black using the Mix image's green channel as an Overlay layer in GIMP. This gives the texture some definition. Everything else mostly follows Penguin's guides.

To get these textures into Unity (or your preferred program) just bake them from an emission shader to a new image and save. It's tricky, but for most of this stuff I just threw whatever stuck at the wall.



Some Mix theories:

Albedo Alpha -> CRV (Curve? Something like fresnel or rim lighting texture.)
Ocl -> Transparency (In alpha channel OR color)
Mix Red    -> Mettalic/Spec?
Mix Green -> Detail Shadow/AO
Mix Blue    -> Spec/Roughness?
Mix Alpha -> edgcod (whatever that is)

My unity workflow in GIMP:
Mix Green -> Overlay -> (Albedo - Alpha) = Texture
Mix Red = Mettalic
Mix Alpha = Specular

[...]

Thanks so much for sharing!
I've been super interested in their mix textures and how each model is making use of the mix texture's RGB channels. I can usually get a decent guess but sometimes get stumped...
Reply
Thanked by:


Forum Jump: