Jump to content

Nioh 2 - Modding Thread and Discussion -


Recommended Posts

Posted (edited)
On 2/9/2021 at 10:56 AM, etsorhtt said:


         -Currently mesh replacement results in inverted normal map, I do not possess knowledge to fix this so any help would be appreciated. This does affect Fundoshi mod. 

 

3Dmigoto has a lot of normal map stuff in it.

 

But how is this mod built? (Do you use 3Dmigoto without code changes -- just lots of config files? Or do you write code specifically for nioh2?)

Edited by sen4mi
Posted (edited)

Hi everyone, is it possible to replace a texture with another one which is already in the game?  I just wish to switch the weapon trail effect on the top with the one below (the brighter one) cause it looks so much better.

 

from this

https://cdn.discordapp.com/attachments/1050445582352785462/1050445671783727254/bad.png

 to this

https://cdn.discordapp.com/attachments/1050445582352785462/1050445672157032498/good.png

I tried dumping frame like the post instruct but no luck. The dds files only show bunch of black and white blank. Thank you guys so much in advance

bad.png

good.png

Edited by Papayasalad41
image does not load
Posted
5 minutes ago, Papayasalad41 said:

Hi everyone, is it possible to replace a texture with another one which is already in the game?  I just wish to switch the weapon trail effect on the top with the one below (the brighter one) cause it looks so much better.

 

from this

https://cdn.discordapp.com/attachments/1050445582352785462/1050445671783727254/bad.png

 to this

https://cdn.discordapp.com/attachments/1050445582352785462/1050445672157032498/good.png

I tried dumping frame like the post instruct but no luck. The dds files only show bunch of black and white blank. Thank you guys so much in advance

bad.png

good.png

Were you able to isolate pixel shaders or vertex buffers?

If not u can try to use the option in the file d3dx.ini "dump_usage=1". This will create a ShaderUsage.txt file each time you mark a shader or buffer in hunting mode.

U can then search for hash numbers of pixel shaders. For example, the ps of the female body is 7e552b939a41a99a: and it shows like this in the txt file:

 

Spoiler

<PixelShader hash="7e552b939a41a99a">
  <PeerShaders>1e2b91d0b064a841 c88c9263607f8622 </PeerShaders>
  <Register id=0 handle=00000209D7AE4338>f0296c22</Register>
  <Register id=1 handle=00000209D7AE20F8>f0296c22</Register>
  <Register id=2 handle=000002088964C438>eddb26d2</Register>
  <Register id=3 handle=00000209D7AE3DF8>f0296c22</Register>
  <Register id=4 handle=00000208F38B4938>36cd8010</Register>
  <Register id=5 handle=00000208F38B4BF8>ef8b6fe6</Register>
  <Register id=6 handle=00000208F38B2C78>d7509c24</Register>
  <Register id=7 handle=00000208F38B31B8>ef8b6fe6</Register>
  <Register id=8 handle=00000208F38B3978>059d2db1</Register>
  <Register id=9 handle=0000020914C1E2B8>d2a8afcd</Register>
  <Register id=29 handle=00000208EC566778>9aa4fdc7</Register>
  <Register id=30 handle=00000208EC566F38>66b38974</Register>
  <Register id=120 handle=00000208899F03B8>00000000</Register>
  <RenderTarget id=0 handle=00000208889D6038>584e9919</RenderTarget>
  <RenderTarget id=1 handle=00000208889D4378>91005981</RenderTarget>
  <RenderTarget id=2 handle=00000208889D62F8>91005981</RenderTarget>
  <RenderTarget id=3 handle=00000208889D33B8>91005981</RenderTarget>
  <RenderTarget id=4 handle=00000208889D3E38>3315d2b5</RenderTarget>
  <RenderTarget id=5 handle=00000208889D5878>3315d2b5</RenderTarget>
  <RenderTarget id=6 handle=00000208889D30F8>91005981</RenderTarget>
  <DepthTarget handle=0000020888A85C78>c5057d7e</DepthTarget>
</PixelShader>

 

between the register tags, you can find the id=*number , which indicates the ps-t* number (i.e id=0 is referencing ps-t0 texture) and also the vertex buffer hash before "</Register>

So you can see here that the shader used to draw the body mesh has all these ps-t* (you can ignore the ps-t120, the hash is zero)

 

So my guess is that if u did manage to select the effects vb and ps, you did not configure 3dmigoto to dumb extra files for those extra ps-t* files.

So in the d3dxx.ini file search for "CommandListN2Dump" : and in my case I configured it like this :

 

Spoiler

[CommandListN2Dump]
if $dump_listed_shaders
    dump = deferred_ctx_accurate share_dupes ps-t0 mono dds
    dump = deferred_ctx_accurate share_dupes ps-t1 mono dds
    dump = deferred_ctx_accurate share_dupes ps-t2 mono dds
    dump = deferred_ctx_accurate share_dupes ps-t3 mono dds
    dump = deferred_ctx_accurate share_dupes ps-t4 mono dds
    dump = deferred_ctx_accurate share_dupes ps-t5 mono dds
    dump = deferred_ctx_accurate share_dupes ps-t6 mono dds
    dump = deferred_ctx_accurate share_dupes ps-t7 mono dds
    dump = deferred_ctx_accurate share_dupes ps-t8 mono dds
    dump = deferred_ctx_accurate share_dupes ps-t9 mono dds
    dump = deferred_ctx_accurate share_dupes ps-t10 mono dds
    dump = deferred_ctx_accurate share_dupes ps-t29 mono dds
    dump = deferred_ctx_accurate share_dupes ps-t30 mono dds
    analyse_options = deferred_ctx_accurate share_dupes dump_tex dump_vb  desc  dump_on_unmap  dump_on_update txt buf dds clear_rt
    ; Dump skinning matrices:
    ; dump = deferred_ctx_accurate vs-cb2 txt buf
    ; Dump pixel shader parameters:
    ; dump = deferred_ctx_accurate ps-cb2 txt buf
endif

 

I must warn you though 3dmigoto will dumb a lot more files, make sure to have enough space in your disk containing Nioh2

Hope this helps

Posted
On 12/13/2022 at 5:57 AM, necrogore1 said:

Hello, is there a way to use both this mods? I am using this mod that changes the color of the underwear https://www.nexusmods.com/nioh2/mods/17 but when I use the skirt of this mod https://www.nexusmods.com/nioh2/mods/86, the color of the underwear goes back to the default one.

 

 

These two mods have no overlapping hashes in their ini file after I've checked. Are u sure u don't have another mod active with the red underwear mod?

Posted (edited)

Hello everyone! This is my first post so I apologize that it is also a question.

 

I've grafted the Inverted Nipples mod of the "sohayaTiddies" mesh vb/ib from Chest Wrap Removal (CWR) to the Shinobi chestpiece included with CWR.

In-game I saw this weird texture issue. I installed Make Your Skin Smooth mod which makes the entire skin one flat color to help better visualize the issue.

Is it some kind of texture misalignment? Don't think it has anything to do with weight painting / vertex groups.

Spoiler

20221220221302_1.jpg.77d39f110b0b055db7234ffd58c149fa.jpg

 

The screenshot below is what the original "shinobiTiddies" mesh looks like in CWR with the armor modified to remove the clothing.

Spoiler

20221220221417_1.jpg.c9b0e84a6e202eb15ade195e5ad7f30e.jpg

 

Far less visible seam. And to be clear: I am using Photo Mode and adjusting the Saturation/Exposure/Brightness to get the seam to be visible (in all these screenshots).

But even more confusing: I went ahead and imported the "shinobiTiddies" vb/ib straight from the CWR mod into Blender and exported it without modifying anything and the result was the screenshot below.

Spoiler

20221221015519_1.jpg.e2ff2b4ef7ddcf572dd013c3fa37fd3f.jpg

 

For completeness below is the Inverted Nipples mod of the "sohayaTiddies" mesh vb/ib from CWR installed normally.

Spoiler

20221220221744_1.jpg.bccb71259c7e5901059141113916def4.jpg

 

Far less visible seam again. What is going on here?

I am using this version of the 3dmigoto Blender Plugin: https://github.com/DarkStarSword/3d-fixes/commit/eb3eabc974749f8e387a1365b57aa3d7d416d108

I am running Blender 2.83LTS (2.83.20)

 

Any help is appreciated, or if you need more information please let me know!

Edited by HazySeptember
Posted
14 hours ago, HazySeptember said:

Hello everyone! This is my first post so I apologize that it is also a question.

 

I've grafted the Inverted Nipples mod of the "sohayaTiddies" mesh vb/ib from Chest Wrap Removal (CWR) to the Shinobi chestpiece included with CWR.

In-game I saw this weird texture issue. I installed Make Your Skin Smooth mod which makes the entire skin one flat color to help better visualize the issue.

Is it some kind of texture misalignment? Don't think it has anything to do with weight painting / vertex groups.

  Hide contents

20221220221302_1.jpg.77d39f110b0b055db7234ffd58c149fa.jpg

 

The screenshot below is what the original "shinobiTiddies" mesh looks like in CWR with the armor modified to remove the clothing.

  Reveal hidden contents

20221220221417_1.jpg.c9b0e84a6e202eb15ade195e5ad7f30e.jpg

 

Far less visible seam. And to be clear: I am using Photo Mode and adjusting the Saturation/Exposure/Brightness to get the seam to be visible (in all these screenshots).

But even more confusing: I went ahead and imported the "shinobiTiddies" vb/ib straight from the CWR mod into Blender and exported it without modifying anything and the result was the screenshot below.

  Reveal hidden contents

20221221015519_1.jpg.e2ff2b4ef7ddcf572dd013c3fa37fd3f.jpg

 

For completeness below is the Inverted Nipples mod of the "sohayaTiddies" mesh vb/ib from CWR installed normally.

  Reveal hidden contents

20221220221744_1.jpg.bccb71259c7e5901059141113916def4.jpg

 

Far less visible seam again. What is going on here?

I am using this version of the 3dmigoto Blender Plugin: https://github.com/DarkStarSword/3d-fixes/commit/eb3eabc974749f8e387a1365b57aa3d7d416d108

I am running Blender 2.83LTS (2.83.20)

 

Any help is appreciated, or if you need more information please let me know!

My guess is that normals between the meshes is different with the vertices at the same position. If u load the meshes in blender, u can activate the normals like below:

u should see the pink segments and u can adjust their size.

 

Spoiler

72711993_selectnormals.jpg.7246472ff1d0440f22d001f9a5b8edcd.jpg

 

Then select the 2 adjacent meshes, they must have the share the vertices at their borders wtih the same positions and the same normals vectors to avoid the above issue.

Check each vertices to be sure. You can copy/paste vectors between vertices to make sure they have the same vectors ( see below).

 

Spoiler

781395810_selectnormalscopy-paste.jpg.92a59cfa5554352c295d70591acd4cfc.jpg

 

Don't hesitate to ask if I wasn't clear on some steps or if u need more explanations

Posted (edited)
On 12/21/2022 at 4:42 PM, lasnus said:

My guess is that normals between the meshes is different with the vertices at the same position. If u load the meshes in blender, u can activate the normals like below:

u should see the pink segments and u can adjust their size.

 

  Reveal hidden contents

72711993_selectnormals.jpg.7246472ff1d0440f22d001f9a5b8edcd.jpg

 

Then select the 2 adjacent meshes, they must have the share the vertices at their borders wtih the same positions and the same normals vectors to avoid the above issue.

Check each vertices to be sure. You can copy/paste vectors between vertices to make sure they have the same vectors ( see below).

 

  Reveal hidden contents

781395810_selectnormalscopy-paste.jpg.92a59cfa5554352c295d70591acd4cfc.jpg

 

Don't hesitate to ask if I wasn't clear on some steps or if u need more explanations

 

First off, I want to thank you for my answering my question so quickly. That was awesome of you!

Second, thanks for showing me how to visualize the normals in Blender. For some reason I didn't even consider the normal maps.

 

That said I fixed the issue by switching over to Blender 3.0.1: https://download.blender.org/release/Blender3.0/

and using Mawpius' edit of the 3dmigoto Blender plugin: https://github.com/Mawpius/3d-fixes/tree/608a2b0eae0f816f4ed11462565e5273945bab69

 

Seriously, I just loaded my blend file of the model and re-exported it and the texture mismatch was gone.

 

So for future reference: DarkStarSwords' original 3dmigoto blender plugin causes texture mismatch on Blender 2.83LTS

Edited by HazySeptember
Posted
12 hours ago, HazySeptember said:

 

First off, I want to thank you for my answering my question so quickly. That was awesome of you!

Second, thanks for showing me how to visualize the normals in Blender. For some reason I didn't even consider the normal maps.

 

That said I fixed the issue by switching over to Blender 3.0.1: https://download.blender.org/release/Blender3.0/

and using Mawpius' edit of the 3dmigoto Blender plugin: https://github.com/Mawpius/3d-fixes/tree/608a2b0eae0f816f4ed11462565e5273945bab69

 

Seriously, I just loaded my blend file of the model and re-exported it and the texture mismatch was gone.

 

So for future reference: DarkStarSwords' original 3dmigoto blender plugin causes texture mismatch on Blender 2.83LTS

Ok that's good to know. I always used Mawpius plugins so I didn't know that it could be the culprit. Thanks for the comeback comment

Posted

Hey guys! Ive got a problem; For Mod enablers hunting mode doesnt seem to pick up the your body (so when wearing no armor, everything the underwear doesnt cover). there are shaders that do make the body invisible, but the frame analysis dump doesnt contain the meshes. Any suggestions?

 

Posted
On 12/25/2022 at 1:43 PM, Schneckenfurz said:

Hey guys! Ive got a problem; For Mod enablers hunting mode doesnt seem to pick up the your body (so when wearing no armor, everything the underwear doesnt cover). there are shaders that do make the body invisible, but the frame analysis dump doesnt contain the meshes. Any suggestions?

 

Did you make the INI file to dump the appropriate pieces? That's all I could think of. Unless you're talking about online players bodies. Idk how to dump those exactly.

Posted (edited)

Is there any reason why certain pieces of armor can't be removed by skipping their VB/IB hash? I'm trying to modify the entirety of the Lone Wolf set and I just can't get the skirt mesh to disappear. Out of frustration I collected as many VB/IB hashes as I could and I got every piece of the armor to disappear except for the Skirt and Boots. The Skirt shares the same vertex/pixel shader as the rest of the armor set too. This is what my "skip" code looks like:
 

Spoiler

;Didn't work, holds skirt plus leg pouch thing
[TextureOverride_SkirtVB_Mesh]
hash = 1edbf5dd
handling = skip

;Didn't work either
[TextureOverride_SkirtIB_Mesh]
hash = c4a64db1
handling = skip

[TextureOverride_SkirtFrontFur1_Mesh]
hash = acdcaadf
handling = skip

[TextureOverride_SkirtFrontFur2_Mesh]
hash = bdb21129
handling = skip

[TextureOverride_SkirtFrontUnderFur1_Mesh]
hash = 23cc1f4d
handling = skip

[TextureOverride_SkirtFrontUnderFur2_Mesh]
hash = 2eaaaec0
handling = skip

[TextureOverride_SkirtRearFur_Mesh]
hash = cb8e0296
handling = skip

[TextureOverride_SkirtRearUnderFur_Mesh]
hash = 7fa5da27
handling = skip

[TextureOverride_SkirtRearMiscFur_Mesh]
hash = 48438a2a
handling = skip

[TextureOverride_SkirtRibbonTail_Mesh]
hash = 8e0c26e9
handling = skip

[TextureOverride_BootHornRight_Mesh]
hash = 01a1d4fb
handling = skip

[TextureOverride_BootHornLeft_Mesh]
hash = a69896ab
handling = skip

;This one didnt work either, it holds multiple items too ;(boots, anklets, foot)
[TextureOverride_Boots_Mesh]
hash = 63f07ecc
handling = skip

 

On another note, I want to thank you again lasnus. I'm learning quite abit from past help you've given to others in this thread. You're the GOAT.

Edited by HazySeptember
Posted
17 hours ago, HazySeptember said:

Is there any reason why certain pieces of armor can't be removed by skipping their VB/IB hash? I'm trying to modify the entirety of the Lone Wolf set and I just can't get the skirt mesh to disappear. Out of frustration I collected as many VB/IB hashes as I could and I got every piece of the armor to disappear except for the Skirt and Boots. The Skirt shares the same vertex/pixel shader as the rest of the armor set too. This is what my "skip" code looks like:
 

  Hide contents

;Didn't work, holds skirt plus leg pouch thing
[TextureOverride_SkirtVB_Mesh]
hash = 1edbf5dd
handling = skip

;Didn't work either
[TextureOverride_SkirtIB_Mesh]
hash = c4a64db1
handling = skip

[TextureOverride_SkirtFrontFur1_Mesh]
hash = acdcaadf
handling = skip

[TextureOverride_SkirtFrontFur2_Mesh]
hash = bdb21129
handling = skip

[TextureOverride_SkirtFrontUnderFur1_Mesh]
hash = 23cc1f4d
handling = skip

[TextureOverride_SkirtFrontUnderFur2_Mesh]
hash = 2eaaaec0
handling = skip

[TextureOverride_SkirtRearFur_Mesh]
hash = cb8e0296
handling = skip

[TextureOverride_SkirtRearUnderFur_Mesh]
hash = 7fa5da27
handling = skip

[TextureOverride_SkirtRearMiscFur_Mesh]
hash = 48438a2a
handling = skip

[TextureOverride_SkirtRibbonTail_Mesh]
hash = 8e0c26e9
handling = skip

[TextureOverride_BootHornRight_Mesh]
hash = 01a1d4fb
handling = skip

[TextureOverride_BootHornLeft_Mesh]
hash = a69896ab
handling = skip

;This one didnt work either, it holds multiple items too ;(boots, anklets, foot)
[TextureOverride_Boots_Mesh]
hash = 63f07ecc
handling = skip

 

On another note, I want to thank you again lasnus. I'm learning quite abit from past help you've given to others in this thread. You're the GOAT.

Thank you! It is always good to see more people trying to learn to mod, happy to help.

 

For you're issue, did you also add the [ShaderOverrideXXXXX] part to the ini? For the Lonewolf armor for example you can see below (beware I don't use DLSS, so i have no shaderOverride for it)

 

Spoiler

[ShaderOverrideLoneWBody_MB]
hash = a38c98c7c7c31931
run = CommandListN2General

allow_duplicate_hash = overrule

 

 

[ShaderOverrideLoneWBody]
hash = ca6c4ac5ac115146
run = CommandListN2General

allow_duplicate_hash = overrule

 

 

You have to add both the ShaderOverride and the TextureOverride blocs for 3dmigoto to make replacement to the armors shaders/buffers.

Posted (edited)
7 hours ago, lasnus said:

Thank you! It is always good to see more people trying to learn to mod, happy to help.

 

For you're issue, did you also add the [ShaderOverrideXXXXX] part to the ini? For the Lonewolf armor for example you can see below (beware I don't use DLSS, so i have no shaderOverride for it)

 

  Hide contents

[ShaderOverrideLoneWBody_MB]
hash = a38c98c7c7c31931
run = CommandListN2General

allow_duplicate_hash = overrule

 

 

[ShaderOverrideLoneWBody]
hash = ca6c4ac5ac115146
run = CommandListN2General

allow_duplicate_hash = overrule

 

 

You have to add both the ShaderOverride and the TextureOverride blocs for 3dmigoto to make replacement to the armors shaders/buffers.

 

This is the entirety of my ini file right now:

Spoiler

;Shader Overrides
;Not sure what shader this is?
 [ShaderOverrideLoneWBody_MB]
hash = a38c98c7c7c31931
run = CommandListN2General
allow_duplicate_hash = overrule

;Pixel Shader
[ShaderOverrideLonePUFFY]
hash = ca6c4ac5ac115146
run = CommandListN2General
allow_duplicate_hash = overrule

;Vertex Shader
[ShaderOverrideLonePUFFY2]
hash = c88c9263607f8622
run = CommandListN2General
allow_duplicate_hash = overrule

;[ShaderOverrideLonePUFFY3]
;hash = 7e552b939a41a99a
;run = CommandListN2General
;allow_duplicate_hash = overrule

;Lone Wolf Hashes
; 7ae03d5f Shoulder Armor/Chest/Torso/TorsoLow/Waist
; 0cae7d06 ShoulderFur
; 1edbf5dd Skirt VB
; c4a64db1 Skirt IB

[Resource_Torso_Texture_Color]
filename = textures\LoneWolfTex\color.dds
[Resource_Torso_Texture_Util]
filename = textures\LoneWolfTex\util.dds
[Resource_Torso_Texture_Normal]
filename = textures\LoneWolfTex\normal.dds

[Resource_Puffy_Texture_Color]
filename = textures\color.dds
[Resource_Puffy_Texture_Util]
filename = textures\util.dds
[Resource_Puffy_Texture_Normal]
filename = textures\normal.dds

;[Resource_TorsoLow_Texture_Color]
;filename = ..\Make Your Skin Smooth\1.dds
;[Resource_TorsoLow_Texture_Util]
;filename = textures\util.dds
[Resource_TorsoLow_Texture_Normal]
filename = ..\Make Your Skin Smooth\UNI.dds

[Resource_TorsoWaist_Texture_Normal]
filename = ..\Make Your Skin Smooth\UNI.dds

[TextureOverride_LoneFur_Mesh]
hash = 0cae7d06
handling = skip
match_first_index = 0
vb0 = Resource_LoneFur_Mesh_VB
ib = Resource_LoneFur_Mesh_IB
drawindexed = auto

[TextureOverride_LoneTorso_Mesh]
hash = 7ae03d5f
handling = skip
match_first_index = 0
vb0 = Resource_LoneTorso_Mesh_VB
ib = Resource_LoneTorso_Mesh_IB
ps-t0 = Resource_Torso_Texture_Color
ps-t1 = Resource_Torso_Texture_Util
ps-t3 = Resource_Torso_Texture_Normal
drawindexed = auto

[TextureOverride_LonePuffy_Mesh]
hash = 7ae03d5f
handling = skip
match_first_index = 0
vb0 = Resource_LonePuffy_Mesh_VB
ib = Resource_LonePuffy_Mesh_IB
ps-t0 = Resource_Puffy_Texture_Color
ps-t1 = Resource_Puffy_Texture_Util
ps-t3 = Resource_Puffy_Texture_Normal
drawindexed = auto

[TextureOverride_LoneTorsoLow_Mesh]
hash = 7ae03d5f
handling = skip
match_first_index = 0
vb0 = Resource_LoneTorsoLow_Mesh_VB
ib = Resource_LoneTorsoLow_Mesh_IB
;ps-t0 = Resource_TorsoLow_Texture_Color
;ps-t1 = Resource_TorsoLow_Texture_Util
ps-t3 = Resource_TorsoLow_Texture_Normal
drawindexed = auto

[TextureOverride_LoneTorsoWaist_Mesh]
hash = 7ae03d5f
handling = skip
match_first_index = 0
vb0 = Resource_LoneTorsoWaist_Mesh_VB
ib = Resource_LoneTorsoWaist_Mesh_IB
ps-t3 = Resource_TorsoWaist_Texture_Normal
drawindexed = auto

;[TextureOverride_LoneSkirt_Mesh]
;hash = 1edbf5dd
;handling = skip
;match_first_index = 0
;vb0 = Resource_LoneSkirt_Mesh_VB
;ib = Resource_LoneSkirt_Mesh_IB
;drawindexed = auto

; ---------------------------------------- - Removing Things

;Didn't work, holds skirt plus leg pouch thing
[TextureOverride_SkirtVB_Mesh]
hash = 1edbf5dd
handling = skip

;Didn't work either
[TextureOverride_SkirtIB_Mesh]
hash = c4a64db1
handling = skip

[TextureOverride_SkirtFrontFur1_Mesh]
hash = acdcaadf
handling = skip

[TextureOverride_SkirtFrontFur2_Mesh]
hash = bdb21129
handling = skip

[TextureOverride_SkirtFrontUnderFur1_Mesh]
hash = 23cc1f4d
handling = skip

[TextureOverride_SkirtFrontUnderFur2_Mesh]
hash = 2eaaaec0
handling = skip

[TextureOverride_SkirtRearFur_Mesh]
hash = cb8e0296
handling = skip

[TextureOverride_SkirtRearUnderFur_Mesh]
hash = 7fa5da27
handling = skip

[TextureOverride_SkirtRearMiscFur_Mesh]
hash = 48438a2a
handling = skip

[TextureOverride_SkirtRibbonTail_Mesh]
hash = 8e0c26e9
handling = skip

[TextureOverride_BootHornRight_Mesh]
hash = 01a1d4fb
handling = skip

[TextureOverride_BootHornLeft_Mesh]
hash = a69896ab
handling = skip

;This one didnt work either, it holds multiple items too ;(boots, anklets, foot)
[TextureOverride_Boots_Mesh]
hash = 63f07ecc
handling = skip

; ---------------------------------------- - Armor Changes

[Resource_LoneFur_Mesh_VB]
type = Buffer
stride = 56
filename = meshes\loneFur.vb
[Resource_LoneFur_Mesh_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\loneFur.ib

[Resource_LoneTorso_Mesh_VB]
type = Buffer
stride = 56
filename = meshes\loneTorso.vb
[Resource_LoneTorso_Mesh_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\loneTorso.ib

[Resource_LonePuffy_Mesh_VB]
type = Buffer
stride = 56
filename = meshes\lonePuffy.vb
[Resource_LonePuffy_Mesh_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\lonePuffy.ib

[Resource_LoneTorsoLow_Mesh_VB]
type = Buffer
stride = 56
filename = meshes\loneTorsoLow.vb
[Resource_LoneTorsoLow_Mesh_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\loneTorsoLow.ib

[Resource_LoneTorsoWaist_Mesh_VB]
type = Buffer
stride = 56
filename = meshes\loneTorsoWaist.vb
[Resource_LoneTorsoWaist_Mesh_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\loneTorsoWaist.ib

;[Resource_LoneSkirt_Mesh_VB]
;type = Buffer
;stride = 48
;filename = meshes\loneSkirt.vb
;[Resource_LoneSkirt_Mesh_IB]
;type = Buffer
;format = DXGI_FORMAT_R16_UINT
;filename = meshes\loneSkirt.ib

 

My edits worked without the shaderoverrides before though, and adding both the pixel and vertex shader overrides didnt help. Not sure what the "_MB" override is though. How did you get the "a38c98c7c7c31931" hash? I'm gonna try removing all my mods except the requirements for it (Chest Wrap Removal and Make Your Skin Smooth).

 

UPDATE: It's Female Body Tweaks. FBT includes a folder called "clipping fixes" in it they edit 3 armors "muenbito" "onmyouji" and "touzoku". One of those is the Lone Wolf skirt. How do you guys know the japanese names (or rather probably the actual name used in the game files) for the armor sets?

 

UPDATE2: New problem, I can't get certain parts of the Fur portions of the Lone Wolf set to load into blender. The files get dumped but I get a "4D positions" error.

The issue persists across Blender [3.0.1], [3.1.2] and [3.4.1].
These are the problematic files:

Spoiler

;Skirt Front Under Fur 2

000010-ib=86c516b5-vs=24f9a3d0d0d9c367-ps=ca6c4ac5ac115146

000010-vb0=2eaaaec0-vs=24f9a3d0d0d9c367-ps=ca6c4ac5ac115146

;Skirt Rear Fur

000012-ib=ecadbb67-vs=24f9a3d0d0d9c367-ps=ca6c4ac5ac115146
000012-vb0=cb8e0296-vs=24f9a3d0d0d9c367-ps=ca6c4ac5ac115146

;Skirt Ribbon Tail

000013-ib=ebd7676b-vs=24f9a3d0d0d9c367-ps=ca6c4ac5ac115146

000013-vb0=8e0c26e9-vs=24f9a3d0d0d9c367-ps=ca6c4ac5ac115146

;Skirt Rear Under Fur

000014-ib=4ceb9625-vs=24f9a3d0d0d9c367-ps=ca6c4ac5ac115146

000014-vb0=7fa5da27-vs=24f9a3d0d0d9c367-ps=ca6c4ac5ac115146

 

One fur mesh that wraps around from the front to the back with the VB hash: "bdb21129" did not even dump in Frame Analysis.

 

Edited by HazySeptember
Posted
7 hours ago, HazySeptember said:

 

This is the entirety of my ini file right now:

  Hide contents

;Shader Overrides
;Not sure what shader this is?
 [ShaderOverrideLoneWBody_MB]
hash = a38c98c7c7c31931
run = CommandListN2General
allow_duplicate_hash = overrule

;Pixel Shader
[ShaderOverrideLonePUFFY]
hash = ca6c4ac5ac115146
run = CommandListN2General
allow_duplicate_hash = overrule

;Vertex Shader
[ShaderOverrideLonePUFFY2]
hash = c88c9263607f8622
run = CommandListN2General
allow_duplicate_hash = overrule

;[ShaderOverrideLonePUFFY3]
;hash = 7e552b939a41a99a
;run = CommandListN2General
;allow_duplicate_hash = overrule

;Lone Wolf Hashes
; 7ae03d5f Shoulder Armor/Chest/Torso/TorsoLow/Waist
; 0cae7d06 ShoulderFur
; 1edbf5dd Skirt VB
; c4a64db1 Skirt IB

[Resource_Torso_Texture_Color]
filename = textures\LoneWolfTex\color.dds
[Resource_Torso_Texture_Util]
filename = textures\LoneWolfTex\util.dds
[Resource_Torso_Texture_Normal]
filename = textures\LoneWolfTex\normal.dds

[Resource_Puffy_Texture_Color]
filename = textures\color.dds
[Resource_Puffy_Texture_Util]
filename = textures\util.dds
[Resource_Puffy_Texture_Normal]
filename = textures\normal.dds

;[Resource_TorsoLow_Texture_Color]
;filename = ..\Make Your Skin Smooth\1.dds
;[Resource_TorsoLow_Texture_Util]
;filename = textures\util.dds
[Resource_TorsoLow_Texture_Normal]
filename = ..\Make Your Skin Smooth\UNI.dds

[Resource_TorsoWaist_Texture_Normal]
filename = ..\Make Your Skin Smooth\UNI.dds

[TextureOverride_LoneFur_Mesh]
hash = 0cae7d06
handling = skip
match_first_index = 0
vb0 = Resource_LoneFur_Mesh_VB
ib = Resource_LoneFur_Mesh_IB
drawindexed = auto

[TextureOverride_LoneTorso_Mesh]
hash = 7ae03d5f
handling = skip
match_first_index = 0
vb0 = Resource_LoneTorso_Mesh_VB
ib = Resource_LoneTorso_Mesh_IB
ps-t0 = Resource_Torso_Texture_Color
ps-t1 = Resource_Torso_Texture_Util
ps-t3 = Resource_Torso_Texture_Normal
drawindexed = auto

[TextureOverride_LonePuffy_Mesh]
hash = 7ae03d5f
handling = skip
match_first_index = 0
vb0 = Resource_LonePuffy_Mesh_VB
ib = Resource_LonePuffy_Mesh_IB
ps-t0 = Resource_Puffy_Texture_Color
ps-t1 = Resource_Puffy_Texture_Util
ps-t3 = Resource_Puffy_Texture_Normal
drawindexed = auto

[TextureOverride_LoneTorsoLow_Mesh]
hash = 7ae03d5f
handling = skip
match_first_index = 0
vb0 = Resource_LoneTorsoLow_Mesh_VB
ib = Resource_LoneTorsoLow_Mesh_IB
;ps-t0 = Resource_TorsoLow_Texture_Color
;ps-t1 = Resource_TorsoLow_Texture_Util
ps-t3 = Resource_TorsoLow_Texture_Normal
drawindexed = auto

[TextureOverride_LoneTorsoWaist_Mesh]
hash = 7ae03d5f
handling = skip
match_first_index = 0
vb0 = Resource_LoneTorsoWaist_Mesh_VB
ib = Resource_LoneTorsoWaist_Mesh_IB
ps-t3 = Resource_TorsoWaist_Texture_Normal
drawindexed = auto

;[TextureOverride_LoneSkirt_Mesh]
;hash = 1edbf5dd
;handling = skip
;match_first_index = 0
;vb0 = Resource_LoneSkirt_Mesh_VB
;ib = Resource_LoneSkirt_Mesh_IB
;drawindexed = auto

; ---------------------------------------- - Removing Things

;Didn't work, holds skirt plus leg pouch thing
[TextureOverride_SkirtVB_Mesh]
hash = 1edbf5dd
handling = skip

;Didn't work either
[TextureOverride_SkirtIB_Mesh]
hash = c4a64db1
handling = skip

[TextureOverride_SkirtFrontFur1_Mesh]
hash = acdcaadf
handling = skip

[TextureOverride_SkirtFrontFur2_Mesh]
hash = bdb21129
handling = skip

[TextureOverride_SkirtFrontUnderFur1_Mesh]
hash = 23cc1f4d
handling = skip

[TextureOverride_SkirtFrontUnderFur2_Mesh]
hash = 2eaaaec0
handling = skip

[TextureOverride_SkirtRearFur_Mesh]
hash = cb8e0296
handling = skip

[TextureOverride_SkirtRearUnderFur_Mesh]
hash = 7fa5da27
handling = skip

[TextureOverride_SkirtRearMiscFur_Mesh]
hash = 48438a2a
handling = skip

[TextureOverride_SkirtRibbonTail_Mesh]
hash = 8e0c26e9
handling = skip

[TextureOverride_BootHornRight_Mesh]
hash = 01a1d4fb
handling = skip

[TextureOverride_BootHornLeft_Mesh]
hash = a69896ab
handling = skip

;This one didnt work either, it holds multiple items too ;(boots, anklets, foot)
[TextureOverride_Boots_Mesh]
hash = 63f07ecc
handling = skip

; ---------------------------------------- - Armor Changes

[Resource_LoneFur_Mesh_VB]
type = Buffer
stride = 56
filename = meshes\loneFur.vb
[Resource_LoneFur_Mesh_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\loneFur.ib

[Resource_LoneTorso_Mesh_VB]
type = Buffer
stride = 56
filename = meshes\loneTorso.vb
[Resource_LoneTorso_Mesh_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\loneTorso.ib

[Resource_LonePuffy_Mesh_VB]
type = Buffer
stride = 56
filename = meshes\lonePuffy.vb
[Resource_LonePuffy_Mesh_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\lonePuffy.ib

[Resource_LoneTorsoLow_Mesh_VB]
type = Buffer
stride = 56
filename = meshes\loneTorsoLow.vb
[Resource_LoneTorsoLow_Mesh_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\loneTorsoLow.ib

[Resource_LoneTorsoWaist_Mesh_VB]
type = Buffer
stride = 56
filename = meshes\loneTorsoWaist.vb
[Resource_LoneTorsoWaist_Mesh_IB]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\loneTorsoWaist.ib

;[Resource_LoneSkirt_Mesh_VB]
;type = Buffer
;stride = 48
;filename = meshes\loneSkirt.vb
;[Resource_LoneSkirt_Mesh_IB]
;type = Buffer
;format = DXGI_FORMAT_R16_UINT
;filename = meshes\loneSkirt.ib

 

My edits worked without the shaderoverrides before though, and adding both the pixel and vertex shader overrides didnt help. Not sure what the "_MB" override is though. How did you get the "a38c98c7c7c31931" hash? I'm gonna try removing all my mods except the requirements for it (Chest Wrap Removal and Make Your Skin Smooth).

 

UPDATE: It's Female Body Tweaks. FBT includes a folder called "clipping fixes" in it they edit 3 armors "muenbito" "onmyouji" and "touzoku". One of those is the Lone Wolf skirt. How do you guys know the japanese names (or rather probably the actual name used in the game files) for the armor sets?

 

UPDATE2: New problem, I can't get certain parts of the Fur portions of the Lone Wolf set to load into blender. The files get dumped but I get a "4D positions" error.

The issue persists across Blender [3.0.1], [3.1.2] and [3.4.1].
These are the problematic files:

  Reveal hidden contents

;Skirt Front Under Fur 2

000010-ib=86c516b5-vs=24f9a3d0d0d9c367-ps=ca6c4ac5ac115146

000010-vb0=2eaaaec0-vs=24f9a3d0d0d9c367-ps=ca6c4ac5ac115146

;Skirt Rear Fur

000012-ib=ecadbb67-vs=24f9a3d0d0d9c367-ps=ca6c4ac5ac115146
000012-vb0=cb8e0296-vs=24f9a3d0d0d9c367-ps=ca6c4ac5ac115146

;Skirt Ribbon Tail

000013-ib=ebd7676b-vs=24f9a3d0d0d9c367-ps=ca6c4ac5ac115146

000013-vb0=8e0c26e9-vs=24f9a3d0d0d9c367-ps=ca6c4ac5ac115146

;Skirt Rear Under Fur

000014-ib=4ceb9625-vs=24f9a3d0d0d9c367-ps=ca6c4ac5ac115146

000014-vb0=7fa5da27-vs=24f9a3d0d0d9c367-ps=ca6c4ac5ac115146

 

One fur mesh that wraps around from the front to the back with the VB hash: "bdb21129" did not even dump in Frame Analysis.

 

The _MB override hash is for motion blur option activated. You can get it by activating the motion blur option and hunting again for the pixel shader of the armor.

 

For the japanese names, maybe they googled for it or they are playing in the japanese version, not sure!

 

The 4D issue is a well known by the Nioh2 modding community as well as other games too (i.e DOA games). This issue is seen when you load meshes into blender with physics tied to them. I don't know in details how it works, but the game uses 4D meshes to emulate physics into the game.

Unfortunately, their no workarounds for that to mu knowledge, the actual 3dmigoto plugins for blender does not support that and I didn't find any methods to work around this limitations.

 

So for now u cannot mod those meshes

Posted
On 2/14/2021 at 10:55 PM, sullivan said:

So i just installed the mods for the first time and the mod enabler seems to mess up HDR. Anyone else use this?

 

It's not really surprising, but it really is a shame if i would have to decide between proper HDR and Mods....

Excuse me, did you fix this problem?
Since I have the same situation.

Posted
On 1/5/2023 at 1:40 PM, pigox12345 said:

Excuse me, did you fix this problem?
Since I have the same situation.

I can't remember really since i haven't touched this game in a long time. But i don't think there ever was a fix for this sadly.

  • 1 month later...
Posted

Hi, super new to all this I was trying to remove the sleeves from the master swordsman's robes for one of my friends, but when I export the model my arms aren't there. To counteract this I tried to add the parts of the arm to the model with the outfit but that didn't work either. I saw the earlier post that went into detail about this issue, but in all honesty I just got completely lost when they showed their ini file. Right now I have the ini file 3dmigot nioh 2 mod makes.

 

; Shader overrides
[ShaderOverride_Garbremoval_Garbremoval_0]
hash = ecca3a7b0a0e6b79
run = CommandListN2General
allow_duplicate_hash = overrule
[ShaderOverride_Garbremoval_Garbremoval_1]
hash = 7e552b939a41a99a
run = CommandListN2General
allow_duplicate_hash = overrule

; Texture overrides
[TextureOverride_Garbremoval_Garbremoval_Shirt]
hash = 9954a284
handling = skip
match_first_index = 0
vb0 = Resource_VB_Garbremoval_Garbremoval_Shirt
ib = Resource_IB_Garbremoval_Garbremoval_Shirt
ps-t0 = Resource_Texture_Garbremoval_Garbremoval_Shirt_ps-t0
ps-t1 = Resource_Texture_Garbremoval_Garbremoval_Shirt_ps-t1
ps-t3 = Resource_Texture_Garbremoval_Garbremoval_Shirt_ps-t3
drawindexed = auto
[TextureOverride_Garbremoval_Garbremoval_L_arm]
hash = 839f9d17
handling = skip
match_first_index = 0
vb0 = Resource_VB_Garbremoval_Garbremoval_L_arm
ib = Resource_IB_Garbremoval_Garbremoval_L_arm
ps-t0 = Resource_Texture_Garbremoval_Garbremoval_L_arm_ps-t0
drawindexed = auto
[TextureOverride_Garbremoval_Garbremoval_R_shoulder]
hash = fd547d60
handling = skip
match_first_index = 0
vb0 = Resource_VB_Garbremoval_Garbremoval_R_shoulder
ib = Resource_IB_Garbremoval_Garbremoval_R_shoulder
ps-t0 = Resource_Texture_Garbremoval_Garbremoval_R_shoulder_ps-t0
drawindexed = auto
[TextureOverride_Garbremoval_Garbremoval_R_arm]
hash = 8ae47a63
handling = skip
match_first_index = 0
vb0 = Resource_VB_Garbremoval_Garbremoval_R_arm
ib = Resource_IB_Garbremoval_Garbremoval_R_arm
ps-t0 = Resource_Texture_Garbremoval_Garbremoval_R_arm_ps-t0
drawindexed = auto
[TextureOverride_Garbremoval_Garbremoval_L_shoulder]
hash = 645cee3e
handling = skip
match_first_index = 0
vb0 = Resource_VB_Garbremoval_Garbremoval_L_shoulder
ib = Resource_IB_Garbremoval_Garbremoval_L_shoulder
ps-t0 = Resource_Texture_Garbremoval_Garbremoval_L_shoulder_ps-t0
drawindexed = auto

; Vertex buffer resources
[Resource_VB_Garbremoval_Garbremoval_Shirt]
type = Buffer
stride = 60
filename = meshes\Shirt.vb
[Resource_VB_Garbremoval_Garbremoval_L_arm]
type = Buffer
stride = 48
filename = meshes\L_arm.vb
[Resource_VB_Garbremoval_Garbremoval_R_shoulder]
type = Buffer
stride = 48
filename = meshes\R_shoulder.vb
[Resource_VB_Garbremoval_Garbremoval_R_arm]
type = Buffer
stride = 48
filename = meshes\R_arm.vb
[Resource_VB_Garbremoval_Garbremoval_L_shoulder]
type = Buffer
stride = 48
filename = meshes\L_shoulder.vb

; Index buffer resources
[Resource_IB_Garbremoval_Garbremoval_Shirt]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\Shirt.ib
[Resource_IB_Garbremoval_Garbremoval_L_arm]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\L_arm.ib
[Resource_IB_Garbremoval_Garbremoval_R_shoulder]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\R_shoulder.ib
[Resource_IB_Garbremoval_Garbremoval_R_arm]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\R_arm.ib
[Resource_IB_Garbremoval_Garbremoval_L_shoulder]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\L_shoulder.ib

; Texture resources
[Resource_Texture_Garbremoval_Garbremoval_Shirt_ps-t0]
filename = textures\Shirt_ps-t0.dds
[Resource_Texture_Garbremoval_Garbremoval_Shirt_ps-t1]
filename = textures\Shirt_ps-t1.dds
[Resource_Texture_Garbremoval_Garbremoval_Shirt_ps-t3]
filename = textures\Shirt_ps-t3.dds
[Resource_Texture_Garbremoval_Garbremoval_L_arm_ps-t0]
filename = textures\L_arm_ps-t0.dds
[Resource_Texture_Garbremoval_Garbremoval_R_shoulder_ps-t0]
filename = textures\R_shoulder_ps-t0.dds
[Resource_Texture_Garbremoval_Garbremoval_R_arm_ps-t0]
filename = textures\R_arm_ps-t0.dds
[Resource_Texture_Garbremoval_Garbremoval_L_shoulder_ps-t0]
filename = textures\L_shoulder_ps-t0.dds
 

Posted
1 minute ago, ailingprawn said:

Hi, super new to all this I was trying to remove the sleeves from the master swordsman's robes for one of my friends, but when I export the model my arms aren't there. To counteract this I tried to add the parts of the arm to the model with the outfit but that didn't work either. I saw the earlier post that went into detail about this issue, but in all honesty I just got completely lost when they showed their ini file. Right now I have the ini file 3dmigot nioh 2 mod makes.

 

; Shader overrides
[ShaderOverride_Garbremoval_Garbremoval_0]
hash = ecca3a7b0a0e6b79
run = CommandListN2General
allow_duplicate_hash = overrule
[ShaderOverride_Garbremoval_Garbremoval_1]
hash = 7e552b939a41a99a
run = CommandListN2General
allow_duplicate_hash = overrule

; Texture overrides
[TextureOverride_Garbremoval_Garbremoval_Shirt]
hash = 9954a284
handling = skip
match_first_index = 0
vb0 = Resource_VB_Garbremoval_Garbremoval_Shirt
ib = Resource_IB_Garbremoval_Garbremoval_Shirt
ps-t0 = Resource_Texture_Garbremoval_Garbremoval_Shirt_ps-t0
ps-t1 = Resource_Texture_Garbremoval_Garbremoval_Shirt_ps-t1
ps-t3 = Resource_Texture_Garbremoval_Garbremoval_Shirt_ps-t3
drawindexed = auto
[TextureOverride_Garbremoval_Garbremoval_L_arm]
hash = 839f9d17
handling = skip
match_first_index = 0
vb0 = Resource_VB_Garbremoval_Garbremoval_L_arm
ib = Resource_IB_Garbremoval_Garbremoval_L_arm
ps-t0 = Resource_Texture_Garbremoval_Garbremoval_L_arm_ps-t0
drawindexed = auto
[TextureOverride_Garbremoval_Garbremoval_R_shoulder]
hash = fd547d60
handling = skip
match_first_index = 0
vb0 = Resource_VB_Garbremoval_Garbremoval_R_shoulder
ib = Resource_IB_Garbremoval_Garbremoval_R_shoulder
ps-t0 = Resource_Texture_Garbremoval_Garbremoval_R_shoulder_ps-t0
drawindexed = auto
[TextureOverride_Garbremoval_Garbremoval_R_arm]
hash = 8ae47a63
handling = skip
match_first_index = 0
vb0 = Resource_VB_Garbremoval_Garbremoval_R_arm
ib = Resource_IB_Garbremoval_Garbremoval_R_arm
ps-t0 = Resource_Texture_Garbremoval_Garbremoval_R_arm_ps-t0
drawindexed = auto
[TextureOverride_Garbremoval_Garbremoval_L_shoulder]
hash = 645cee3e
handling = skip
match_first_index = 0
vb0 = Resource_VB_Garbremoval_Garbremoval_L_shoulder
ib = Resource_IB_Garbremoval_Garbremoval_L_shoulder
ps-t0 = Resource_Texture_Garbremoval_Garbremoval_L_shoulder_ps-t0
drawindexed = auto

; Vertex buffer resources
[Resource_VB_Garbremoval_Garbremoval_Shirt]
type = Buffer
stride = 60
filename = meshes\Shirt.vb
[Resource_VB_Garbremoval_Garbremoval_L_arm]
type = Buffer
stride = 48
filename = meshes\L_arm.vb
[Resource_VB_Garbremoval_Garbremoval_R_shoulder]
type = Buffer
stride = 48
filename = meshes\R_shoulder.vb
[Resource_VB_Garbremoval_Garbremoval_R_arm]
type = Buffer
stride = 48
filename = meshes\R_arm.vb
[Resource_VB_Garbremoval_Garbremoval_L_shoulder]
type = Buffer
stride = 48
filename = meshes\L_shoulder.vb

; Index buffer resources
[Resource_IB_Garbremoval_Garbremoval_Shirt]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\Shirt.ib
[Resource_IB_Garbremoval_Garbremoval_L_arm]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\L_arm.ib
[Resource_IB_Garbremoval_Garbremoval_R_shoulder]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\R_shoulder.ib
[Resource_IB_Garbremoval_Garbremoval_R_arm]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\R_arm.ib
[Resource_IB_Garbremoval_Garbremoval_L_shoulder]
type = Buffer
format = DXGI_FORMAT_R16_UINT
filename = meshes\L_shoulder.ib

; Texture resources
[Resource_Texture_Garbremoval_Garbremoval_Shirt_ps-t0]
filename = textures\Shirt_ps-t0.dds
[Resource_Texture_Garbremoval_Garbremoval_Shirt_ps-t1]
filename = textures\Shirt_ps-t1.dds
[Resource_Texture_Garbremoval_Garbremoval_Shirt_ps-t3]
filename = textures\Shirt_ps-t3.dds
[Resource_Texture_Garbremoval_Garbremoval_L_arm_ps-t0]
filename = textures\L_arm_ps-t0.dds
[Resource_Texture_Garbremoval_Garbremoval_R_shoulder_ps-t0]
filename = textures\R_shoulder_ps-t0.dds
[Resource_Texture_Garbremoval_Garbremoval_R_arm_ps-t0]
filename = textures\R_arm_ps-t0.dds
[Resource_Texture_Garbremoval_Garbremoval_L_shoulder_ps-t0]
filename = textures\L_shoulder_ps-t0.dds
 

Forgot to post an image as well in case https://www.imgur.com/a/WJNxNcO

 

Posted (edited)

regarding HDR with 3dm, i recalled someone who i made a mod for mentioned they had a modified version of the mod enabler to allow them to use both. Using a different D3D11 wrapper for it but not sure where they got it. I cant remember who atm

Edited by True_Might
Posted
On 11/26/2021 at 10:23 AM, bluejay4 said:

hi everyone. in regard to custom armor meshes with the body visible, im not sure if anyone is still trying to do this, but since i struggled a lot with it myself, i thought i should post a guide here for others who might want to try it. i apologize in advance if my format is bad or anything, i dont normally write guides or post on forums. also apologies if my terminology is incorrect. anyway hopefully this is helpful to someone.

 

huge thanks to murabito11 and everyone here for sharing their work and knowledge about modding this game. 

 

How to Make Armor Edits with Visible Body Underneath

armor_mod.png.b32beeb20eba3f63000a40005bad9282.png

note: the custom body and chest armor are mods that already exist from murabito. they can be found here https://www.nexusmods.com/nioh2/mods/166, https://www.nexusmods.com/nioh2/mods/171. the leg armor is the end result of this guide.

 

Frame Analysis/Dumping

although frame analysis may be straightforward for some, and it is already covered in etsorhtt's guide, ill start from the top anyway just to fully explain my workflow.

  Hide contents

1. start up Nioh 2 with Mod Enabler installed and find and equip the model you wish to edit. for this guide, i will be using the Sohaya Garb leg armor.

 

armor.thumb.png.dafc8876ecbfcea1cf337a8079d4e9f3.png

 

2. turn on hunting mode (0 key on numpad) and cycle through vertex buffers (numpad / and numpad *) until the piece of equipment you wish to edit turns invisible (it doesnt matter if other things turn invisible as well, as long as the piece u want to edit turns invisible then it is good). copy the hash (numpad -) and paste it somewhere as we will be using it later.

 

armor_vb.thumb.png.ef4960ae24f0f8ff04acb1899d9729b0.png

 

now reset the hunting mode selections (numpad +) and do the same thing for the pixel shaders (numpad 1 and numpad 2, numpad 3 to save hash) of the part of the model you wish to edit.

 

armor_ps.thumb.png.a967ad8c68b4567d619c8ccaaa79467b.png

 

3. now minimize Nioh 2 and navigate to your Nioh2/Mods folder, create a new folder and name it whatever you want to name your mod. i will name mine SohayaGarb.

 

f1.png.2842df315b706045daf196771b051b8f.png

 

4. create a text file in your new folder and name it whatever you want to name your mod. (make sure to save it as "All Files" and with the extension ".ini").

 

5. although not necessary, i will be creating a "meshes" folder and a "textures" in the new folder to keep things tidy.

 

f2.png.c5c918cb287e60a9c9bc9458f69f61dc.png

 

6. now open your .ini file and type the following.

 

[ShaderOverrideSohayaGarb]
hash = a38c98c7c7c31931
run = CommandListN2Dump

 

replace "SohayaGarb" with whatever you want to name it, and for hash put the pixel shader you copied ealier and save the file.

 

7. now go back to your Nioh 2 game window and press F10 to reload the mods (this will also read the new mod folder you just created).

 

8. turn on hunting mode (numpad 0) and reset it (numpad +).

 

9. with hunting mode still on, press F8 to perform frame analysis. this will create a new folder in your Nioh2 directory called "FrameAnalysis-" followed by a date and some numbers. i renamed this folder so i know what it is.

 

10. open this folder. if all goes well, you should see a bunch of .dds and .txt files, among some others. the main ones we are looking for are the .txt files that contain the pixel shader hash that we copied. these are what we will be loading into blender in the next steps.

 

f3-1.png.b8a3128042c2ff00a8e9e6b10cfda381.png

 

11. we can also grab the .dds files while we are here. these are the texture files for the models. you may need a software like paint.net to open/view these files. in my case there are only 3 .dds files, so i know these are the right ones. i will take these files and move them into my new textures folder within my mod. i will also rename them.

 

f5.png.668b7f6bbd45d0011b1f868b099ee2ae.png

 

i am not sure what versions of blender work for this, but i am using v2.79 which can be found here https://download.blender.org/release/Blender2.79/ (i am on Windows 10, 64 bit. i downloaded blender-2.79-windows64.msi).


before you can import/export these files in blender, you need to have the 3dmigoto blender addon which can be found here https://github.com/DarkStarSword/3d-fixes/blob/master/blender_3dmigoto.py

 

download this file and place it in your equivalent of this path C:\Users\YOURNAME\AppData\Roaming\Blender Foundation\Blender\2.79\scripts\addons.
now open up blender and go to file -> user preferences -> add-ons and find the Import-Export:3DMigoto addon and click the checkbox to enable it. now blender should be good to go.

 

Importing/Exporting in Blender

  Hide contents

1. go to file -> import -> 3DMigoto frame analysis dump

 

bm1.png.9a97ec5fd0a425402aab836b52645c44.png

 

2. navigate to your FrameAnalysis folder and look for the .txt files that ends in the pixel shader hash you copied earlier. select all these files and import.

 

bm2.png.a70a9dee8b1597f24b6eb7c19845a28a.png


3. import the body model you wish to use. i am using murabito's body model (specifically i am using the body meshes found in murabito's Nyotengu Schoolgirl Strikers mod since they are already conveniently grouped. it can be found here https://www.nexusmods.com/nioh2/mods/189). since this model is not from a FrameAnalysis, i will use the 3DMigoto raw buffers import option.

 

bm3.png.21ee3d50e9ca8040a68b6f8836fe314f.png


4. edit the mesh how you would like. i just removed the pants part

 

be1.png.291b6a7b012d201f63d7f9ea13b4f4d8.png


5. once you are satisfied with your changes, export the model (just the equipment, not the body). to do this, go to object mode and select the model then go to file -> export -> 3DMigoto raw buffers. export this file to the meshes folder within your new mod folder.

 

f4.png.2e22062dc432bd5eb7097340d310ae22.png

 

Transferring Weights for the Body

 

this is a bit of a tedious process which involves comparing the original armor mesh's weights to the body mesh's weights and then shifting around the body mesh's weights to match the armor. i find it easiest to have 2 instances of blender open, one for the armor and one for the body.

  Hide contents

1. open up a new instance of blender and import the armor from the FrameAnalysis folder (the original model, not the modified one that you exported earlier).

 

2. open up another instance of blender and import the body that you will be using.

 

bd1.thumb.png.7e2be2c53ff6935dbc7da914a25618fd.png

 

do the following for both new blender instances:

 

3. select the model and then change from Object Mode to Weight Paint.

 

bw1.png.e89e177c8dbe2a8ac2da2d3ca92e0462.png

 

4. on the right side, in the properties toolbar, click on the Object Data tab.


5. under the vertex groups section, scroll up and select the top vertex group (it should be 0).

 

bw2-1.png.0b20f40e889ca2002e6e53d432485ada.png

note: actual weights are only found every 3rd vertex group (ex: 0, 3, 6, etc...), but all empty vertex groups between actual weight vertex groups are necessary.

 

6. this is where it gets tedious. you will have to manually compare the weights by eye between the armor and the body, and then rename and reorder the body weights to match as close as possible to the armor weights. the armor will most likely always have more vertex groups than the body, but that is ok.

 

bd2.thumb.png.37ee99d514f80f8e73991f1be502dca9.png

the above image demonstrates the goal of the weight transferring. as you can see, the vertex group 0 for both the pants (left )and the body (right) share the same region of weights.

 

bd3.thumb.png.9c9b16d8174d9bbf2d4b9b25b058234c.png

this image demonstrates a mismatch which will cause the bones to freak out in game if left as they are.

 

bd4.thumb.png.384545c1bd5680c90ff430f89f3c1206.png

here we can see that the vertex group 18 for the body contains the weights that are in vertex group 21 for the Sohaya Garb leg armor. we will need to adjust the body vertex group (right side) to match the leg armor (left side).

 

to do this, we can simply double click on the vertex groups that we need to shift around and rename them appropriately. after renaming, we can then shift them up and down using the arrows on the right side.

 

bw31.png.465a2d5f4076110a2e4fb7270ac20f4e.png

in this image i have renamed the vertex group 21 to 21_temp, and then renamed 18 to 21. the next step will be to click the down arrow to move the new 21 into its proper place. after that i will create an empty vertex group and rename it to 18.

 

you will have to repeat this process for all of the body's vertex groups that contain weights. if there are any weight regions that appear on the body that do not appear on the armor, you are likely safe in simply deleting them and replacing them with a new, empty vertex group.

 

if a body vertex group ends up being a very high number, for example say that the leg armor vertex group was 90, and the matching body vertex group was 18, you would have to rename 18 to 90 and then create vertex groups all the way up to 90, leaving them empty if there are no matching weight regions.

 

alternatively, if the highest matching vertex group is 30, and no groups above that match any weight regions, then 30 is the highest group you need for the body, even if the armor has 100+ vertex groups.

 

note: we dont need to adjust the armor's vertex groups. only the body's vertex groups.

 

once you have matched the vertex groups, you can then export the body mesh. file -> export -> 3DMigoto raw buffers. export this file to the meshes folder within your new mod folder.

 

Making the .ini File

  Hide contents

it may be easiest to just share the .ini file that i have. for the most part you can probably just copy-paste this and just change the parts that you need to (hashes, names).

 

as murabito discovered and stated earlier in this thread, you can display different meshes with different textures within the same hash by using the format seen below.

 

also you may notice that the ResourceBody lines reference another folder. this is because i have murabito's body mod installed and am referencing that. you could alternatively just copy the textures into your texture folder and reference them there.

[ShaderOverrideSohayaGarb]
hash = a38c98c7c7c31931
run = CommandListN2General
checktextureoverride = ib
allow_duplicate_hash = true

[TextureOverrideSohayaGarbLower]
hash = 2a8f4afe
match_first_index = 0
handling = skip
vb0 = ResourceSohayaGarbLowerVB
ib = ResourceSohayaGarbLowerIB
ps-t0 = ResourceSohayaGarbLower_t0
ps-t1 = ResourceSohayaGarbLower_t1
ps-t3 = ResourceSohayaGarbLower_t3
drawindexed = auto

vb0 = ResourceBodyLowerVB
ib = ResourceBodyLowerIB
ps-t0 = ResourceBody_t0
ps-t1 = ResourceBody_t1
ps-t2 = ResourceBody_t2
ps-t3 = ResourceBody_t3
drawindexed = auto

[ResourceSohayaGarbLowerVB]
type = Buffer
stride = 48
format = DXGI_FORMAT_R16_UINT
filename = meshes\SohayaGarbLower.vb

[ResourceSohayaGarbLowerIB]
type = Buffer
stride = 48
format = DXGI_FORMAT_R16_UINT
filename = meshes\SohayaGarbLower.ib

[ResourceBodyLowerVB]
type = Buffer
stride = 48
format = DXGI_FORMAT_R16_UINT
filename = meshes\BodyLower.vb

[ResourceBodyLowerIB]
type = Buffer
stride = 48
format = DXGI_FORMAT_R16_UINT
filename = meshes\BodyLower.ib

[ResourceSohayaGarbLower_t0]
filename = textures\SohayaGarbLower_t0.dds
[ResourceSohayaGarbLower_t1]
filename = textures\SohayaGarbLower_t1.dds
[ResourceSohayaGarbLower_t3]
filename = textures\SohayaGarbLower_t3.dds

[ResourceBody_t0]
filename = ..\00_FemaleBodyReplacer\textures\equipbody_t0.dds
[ResourceBody_t1]
filename = ..\00_FemaleBodyReplacer\textures\body_t1.dds
[ResourceBody_t2]
filename = ..\00_FemaleBodyReplacer\textures\equipbody_t2.dds
[ResourceBody_t3]
filename = ..\00_FemaleBodyReplacer\textures\body_t3.dds

 


another important thing to note is that, as far as i can tell, you can only add the body mesh to armors that have a stride value of 48. if you try to add a body (stride 48) to armor that has stride 60, for example, the body will just glitch out. unfortunately this is quite a big limitation as much of the armor does not have a stride value of 48. im not sure if there is a workaround for this, but so far i have been unable to solve it.

 

you can find out the stride of a model by opening the .fmt file in a text editor.

 

Edit: actually i think i just realized a workaround for this stride mismatch issue: simply join the body mesh to the armor mesh in blender (select body first then select armor and press ctrl+j), and then in edit mode delete the armor mesh so that just the body mesh is remaining. then you can export this mesh as the body, and i believe it should now have whatever stride value the armor had.

 

anyway after editing and saving the .ini file, you should be able to press F10 in game to reload the mods and F2 to toggle mods on and if all went well, it should work. if the textures look off, you may need to mess around with them in the .ini file (sometimes you need to remove ps-t1 or rename ps-t3 to ps-t4 or vice versa).

 

if i was unclear at any part or didnt go into enough detail, let me know and ill see if i can fix it.

 

hope this helps, and again huge credit and thanks to murabito11

Referring to the Weight section, I assume you would delete the _temp vertex groups?

Posted

Hello. Does anyone here have an idea how we could manipulate the shader for the eyes to always show the demonic glow of Hide's eyes that is sometimes applied in cutscenes? :)

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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