Modding:Head Troubleshooting: Difference between revisions

From Baldur's Gate 3 Wiki
mNo edit summary
 
(13 intermediate revisions by the same user not shown)
Line 3: Line 3:
|description=This page is a hub for everything related to Modding Baldur's Gate 3. Check out the following guides to learn how to mod BG3.
|description=This page is a hub for everything related to Modding Baldur's Gate 3. Check out the following guides to learn how to mod BG3.
|image=Modding_resources.webp
|image=Modding_resources.webp
}}{{NavModding}}
}}{{Modding box}}{{Modding sidebar}}


== Tools ==
= Head Troubleshooting =


* [https://github.com/ShinyHobo/BG3-Modders-Multitool BG3 Modders Multitool]
This page is for a quick reference to issues you might run into when making your head mods.
* [https://www.nexusmods.com/baldursgate3/mods/502 BG3 Mini Tool]
* [https://www.nexusmods.com/baldursgate3/mods/132?tab=files BG3 Head Template]


First you can download my template for Heads from [https://www.nexusmods.com/baldursgate3/mods/132?tab=files here] and if wanting to add more than one head to your mod you can use my mini tool [https://www.nexusmods.com/baldursgate3/mods/502 here] for adding new slots.
Anything from Heterochromia not working, to wrinkles or your head disappearing when you zoom out.


If adding an existing head from the game without wanting to do any edits you can remove the Generated folder from your copy of the template.
== Apply Transformations/Ears ==


== Localization/English/custom_name_here.loca.xml ==
When importing the head meshes we want to work on in blender remember to apply transformations. This will auto set the ears to the correct rotation (they show on the floor by default). If you already have your mesh ready and edited in blender you can still do this before exporting your meshes again.


Why is it named .loca.xml?
The default Blender way to do this is having your mesh selected and pressing Ctrl + A and then All Transforms


This is because if you package the Main folder also known as your workspace folder with multitool it will auto convert the .loca.xml to .loca
[[File:Blender ApplyTransforms.webp|Blender ApplyTransforms.webp]]


This way you don't have to manually do the conversions yourself. However if you prefer to do manual conversions change the extension to .xml only.
Or via the Drop Down menu at the top where it says Object > Apply > All Transforms


[[File:Localisation.webp|750px]]
[[File:Ears ApplyTransformsALT.webp|Ears ApplyTransformsALT.webp]]


So the first underscored (yellow) part labeled 1 is a handle. This is technically the same as a UUID except it has no - and instead has 3 extra random digits and adds a h at the beginning. So if you want you can use auto generated UUID's like you can make with notepad ++ or vscode and then remove the - and add a h at the beginning and add 3 more random digits.
Alternatively use the Plugin by Padme4000 from [https://www.nexusmods.com/baldursgate3/mods/346 here called Transforms]


For example:
[[File:P4 Transforms Plugin.webp|P4 Transforms Plugin.webp]]
 
=== Ears missing/on the floor in Game ===
 
This is either to do with Apply Transforms not being applied (see above) or weights not being added to your ears. If transforms only please follow the above.
 
==== To check if your ears have weights and how to add them ====
 
With your ear mesh selected go to the Data Tab (Green triangle that has a tiny square on each point) go to Vertex Groups which should be the one at the very top.
 
If there is nothing in there press the + to the right
 
[[File:Ears NoVertexGroups.webp|Ears NoVertexGroups.webp]]
 
It will create a group called "Group" double click this name and change it to Head_M
 
[[File:Ears HeadM.webp|Ears HeadM.webp]]
 
Now with your ears still selected go into Edit Mode either via pressing Tab while your mouse is in the viewport part of Blender or going to the drop down menu near the top left and switching to Edit Mode there.
 
[[File:Blender EditMode.webp|Blender EditMode.webp]]
 
Once in Edit Mode press A to select all the vertices then on the right side where we created our Vertex Group click the Assign Button
* they will show up Orange when selected
** If they are black/greyed out that means they are unselected
 
[[File:Ears UnSelected.webp|125px]] Press A to select all > [[File:Ears SelectAll.webp|125px]] Assign Vertices to our Group >
[[File:Ears Assign.webp|300px]]
 
If you want to watch a part of a video for applying the weights watch this video by Padme4000 [https://youtu.be/RMPivc5qunw?si=02E2YNzY8KciX-8H&t=751 here]
*Timestamped for exact part of Video, if you go back a little it shows how to use Sculpt mode to change the shape.
 
You can now go out of Edit Mode and Export your Mesh
 
== Head Disappearing when Zooming Out ==
 
If your head is disappearing when you zoom out, you are in luck this is a quick fix.
 
In blender go to the Object tab (orange square) and scroll down to the BG3 Settings and change the value in LOD Distance to 0. If it already says 0 change it to another value and then back to 0 before exporting.
 
Alternatively you can use the Plugin by Padme4000 from [https://www.nexusmods.com/baldursgate3/mods/346 here called Create LODs - BG3 Edition]
 
And select your meshes then click the Button called "Change to LOD 0 - BG3"
 
[[File:Change LOD to 0 - P4 Plugin.webp|Change LOD to 0 - P4 Plugin.webp]]
 
== Heterochromia ==
 
Is Heterochromia not working for your custom/edited head? Thankfully this is a quick and easy fix.
 
So for this you do need to go back into blender.
 
Select your eye mesh in blender and go to Vertex Paint mode.
 
[[File:Vertex paint.webp|Vertex paint.webp]]
 
In the Data Tab (Green triangle that has a tiny square on each point) go to Color Attributes if you don't have anything in there click + then select Face Corner and Byte Color
 
[[File:Vertex Paint - Face Corner Byte Color.webp|Vertex Paint - Face Corner Byte Color.webp]]
 
You want to paint the eye on the Left fully red (#FF0000) and keep the right one black.
 
[[File:Eye Vertex Paint.webp|300px]]
 
Now after exporting your mesh again Heterochromia should be working
 
== Ears not Disappearing with Helmets meant to hide them ==
 
Make sure the end of the name in blender is Ears_Mesh in the Data tab (green triangle with three dots)
 
+ make sure you use this name in your VisualBank as well for the ears.
 
=== Other things disappearing with helmets meant to hide ears ===
 
Make sure your mesh in the Data tab (green triangle with three dots) doesn't have the name Ears_Mesh at the end.
 
== Wrinkles ==


644e4b68-7bdb-4b0a-98ff-9025ce6e20e6 turn this into h644e4b687bdb4b0a98ff9025ce6e20e6a4d
So are you noticing that your characters wrinkles/expressions are more extreme than normal?


Now the second underscored (pink) part labelled 2 is where we write what we want the game to show when the handle is active. For example when it comes to character creation mods it is what shows up in character creation.
You want to edit these sections in your Heads Merged MaterialBank: _WrinkleWeightsR, _WrinkleWeightsG, _WrinkleWeightsB and _WrinkleWeightsA


=== Using Multitool to Generate a Handle ===
<node id="VectorParameters">
<attribute id="BaseValue" type="fvec4" value="0 0 0 0" />
<attribute id="Enabled" type="bool" value="False" />
<attribute id="ExportAsPreset" type="bool" value="False" />
<attribute id="GroupName" type="FixedString" value="" />
<attribute id="IsColor" type="bool" value="False" />
<attribute id="ParameterName" type="FixedString" value="_WrinkleWeightsR" />
<attribute id="Value" type="fvec4" value="0 0 0 0" />
</node>
<node id="VectorParameters">
<attribute id="BaseValue" type="fvec4" value="0 0 0 0" />
<attribute id="Enabled" type="bool" value="False" />
<attribute id="ExportAsPreset" type="bool" value="False" />
<attribute id="GroupName" type="FixedString" value="" />
<attribute id="IsColor" type="bool" value="False" />
<attribute id="ParameterName" type="FixedString" value="_WrinkleWeightsG" />
<attribute id="Value" type="fvec4" value="0 0 0 0" />
</node>
<node id="VectorParameters">
<attribute id="BaseValue" type="fvec4" value="0 0 0 0" />
<attribute id="Enabled" type="bool" value="False" />
<attribute id="ExportAsPreset" type="bool" value="False" />
<attribute id="GroupName" type="FixedString" value="" />
<attribute id="IsColor" type="bool" value="False" />
<attribute id="ParameterName" type="FixedString" value="_WrinkleWeightsB" />
<attribute id="Value" type="fvec4" value="0 0 0 0" />
</node>
<node id="VectorParameters">
<attribute id="BaseValue" type="fvec4" value="0 0 0 0" />
<attribute id="Enabled" type="bool" value="False" />
<attribute id="ExportAsPreset" type="bool" value="False" />
<attribute id="GroupName" type="FixedString" value="" />
<attribute id="IsColor" type="bool" value="False" />
<attribute id="ParameterName" type="FixedString" value="_WrinkleWeightsA" />
<attribute id="Value" type="fvec4" value="0 0 0 0" />
</node>


Alternatively you can use [https://github.com/ShinyHobo/BG3-Modders-Multitool multitool] to generate a handle for you.
For these turn <attribute id="Enabled" type="bool" value="False" /> to <attribute id="Enabled" type="bool" value="True" /> on each of these sections. It will set them all to 0 which I suggest testing first in game as you can still get wrinkles with these values. If you get 0 wrinkles and want some gradually increase the "Value" by 0.1. Best not to touch the "BaseValue" as far as I have tested.


[[File:Handle multitool.webp|600px]]
For example:


So once you have multitool open make sure to click the box next to Handle so it has a tick inside. Then you can click Generate for the tool to generate a new handle. Clicking on the box that has the handle inside will copy it to your clipboard so you can go to your file and paste it in.
<node id="VectorParameters">
<attribute id="BaseValue" type="fvec4" value="0 0 0 0" />
<attribute id="Enabled" type="bool" value="False" />
<attribute id="ExportAsPreset" type="bool" value="False" />
<attribute id="GroupName" type="FixedString" value="" />
<attribute id="IsColor" type="bool" value="False" />
<attribute id="ParameterName" type="FixedString" value="_WrinkleWeightsA" />
<attribute id="Value" type="fvec4" value="0.1 0.1 0.1 0.1" />
</node>


=== Using BG3 Mini Tool to edit Localization ===
{{Modding navbox}}
[[Category:Head modding]]

Latest revision as of 13:16, 20 April 2024

Head Troubleshooting[edit | edit source]

This page is for a quick reference to issues you might run into when making your head mods.

Anything from Heterochromia not working, to wrinkles or your head disappearing when you zoom out.

Apply Transformations/Ears[edit | edit source]

When importing the head meshes we want to work on in blender remember to apply transformations. This will auto set the ears to the correct rotation (they show on the floor by default). If you already have your mesh ready and edited in blender you can still do this before exporting your meshes again.

The default Blender way to do this is having your mesh selected and pressing Ctrl + A and then All Transforms

Blender ApplyTransforms.webp

Or via the Drop Down menu at the top where it says Object > Apply > All Transforms

Ears ApplyTransformsALT.webp

Alternatively use the Plugin by Padme4000 from here called Transforms

P4 Transforms Plugin.webp

Ears missing/on the floor in Game[edit | edit source]

This is either to do with Apply Transforms not being applied (see above) or weights not being added to your ears. If transforms only please follow the above.

To check if your ears have weights and how to add them[edit | edit source]

With your ear mesh selected go to the Data Tab (Green triangle that has a tiny square on each point) go to Vertex Groups which should be the one at the very top.

If there is nothing in there press the + to the right

Ears NoVertexGroups.webp

It will create a group called "Group" double click this name and change it to Head_M

Ears HeadM.webp

Now with your ears still selected go into Edit Mode either via pressing Tab while your mouse is in the viewport part of Blender or going to the drop down menu near the top left and switching to Edit Mode there.

Blender EditMode.webp

Once in Edit Mode press A to select all the vertices then on the right side where we created our Vertex Group click the Assign Button

  • they will show up Orange when selected
    • If they are black/greyed out that means they are unselected

Ears UnSelected.webp Press A to select all > Ears SelectAll.webp Assign Vertices to our Group > Ears Assign.webp

If you want to watch a part of a video for applying the weights watch this video by Padme4000 here

  • Timestamped for exact part of Video, if you go back a little it shows how to use Sculpt mode to change the shape.

You can now go out of Edit Mode and Export your Mesh

Head Disappearing when Zooming Out[edit | edit source]

If your head is disappearing when you zoom out, you are in luck this is a quick fix.

In blender go to the Object tab (orange square) and scroll down to the BG3 Settings and change the value in LOD Distance to 0. If it already says 0 change it to another value and then back to 0 before exporting.

Alternatively you can use the Plugin by Padme4000 from here called Create LODs - BG3 Edition

And select your meshes then click the Button called "Change to LOD 0 - BG3"

Change LOD to 0 - P4 Plugin.webp

Heterochromia[edit | edit source]

Is Heterochromia not working for your custom/edited head? Thankfully this is a quick and easy fix.

So for this you do need to go back into blender.

Select your eye mesh in blender and go to Vertex Paint mode.

Vertex paint.webp

In the Data Tab (Green triangle that has a tiny square on each point) go to Color Attributes if you don't have anything in there click + then select Face Corner and Byte Color

Vertex Paint - Face Corner Byte Color.webp

You want to paint the eye on the Left fully red (#FF0000) and keep the right one black.

Eye Vertex Paint.webp

Now after exporting your mesh again Heterochromia should be working

Ears not Disappearing with Helmets meant to hide them[edit | edit source]

Make sure the end of the name in blender is Ears_Mesh in the Data tab (green triangle with three dots)

+ make sure you use this name in your VisualBank as well for the ears.

Other things disappearing with helmets meant to hide ears[edit | edit source]

Make sure your mesh in the Data tab (green triangle with three dots) doesn't have the name Ears_Mesh at the end.

Wrinkles[edit | edit source]

So are you noticing that your characters wrinkles/expressions are more extreme than normal?

You want to edit these sections in your Heads Merged MaterialBank: _WrinkleWeightsR, _WrinkleWeightsG, _WrinkleWeightsB and _WrinkleWeightsA

						<node id="VectorParameters">
							<attribute id="BaseValue" type="fvec4" value="0 0 0 0" />
							<attribute id="Enabled" type="bool" value="False" />
							<attribute id="ExportAsPreset" type="bool" value="False" />
							<attribute id="GroupName" type="FixedString" value="" />
							<attribute id="IsColor" type="bool" value="False" />
							<attribute id="ParameterName" type="FixedString" value="_WrinkleWeightsR" />
							<attribute id="Value" type="fvec4" value="0 0 0 0" />
						</node>
						<node id="VectorParameters">
							<attribute id="BaseValue" type="fvec4" value="0 0 0 0" />
							<attribute id="Enabled" type="bool" value="False" />
							<attribute id="ExportAsPreset" type="bool" value="False" />
							<attribute id="GroupName" type="FixedString" value="" />
							<attribute id="IsColor" type="bool" value="False" />
							<attribute id="ParameterName" type="FixedString" value="_WrinkleWeightsG" />
							<attribute id="Value" type="fvec4" value="0 0 0 0" />
						</node>
						<node id="VectorParameters">
							<attribute id="BaseValue" type="fvec4" value="0 0 0 0" />
							<attribute id="Enabled" type="bool" value="False" />
							<attribute id="ExportAsPreset" type="bool" value="False" />
							<attribute id="GroupName" type="FixedString" value="" />
							<attribute id="IsColor" type="bool" value="False" />
							<attribute id="ParameterName" type="FixedString" value="_WrinkleWeightsB" />
							<attribute id="Value" type="fvec4" value="0 0 0 0" />
						</node>
						<node id="VectorParameters">
							<attribute id="BaseValue" type="fvec4" value="0 0 0 0" />
							<attribute id="Enabled" type="bool" value="False" />
							<attribute id="ExportAsPreset" type="bool" value="False" />
							<attribute id="GroupName" type="FixedString" value="" />
							<attribute id="IsColor" type="bool" value="False" />
							<attribute id="ParameterName" type="FixedString" value="_WrinkleWeightsA" />
							<attribute id="Value" type="fvec4" value="0 0 0 0" />
						</node>

For these turn <attribute id="Enabled" type="bool" value="False" /> to <attribute id="Enabled" type="bool" value="True" /> on each of these sections. It will set them all to 0 which I suggest testing first in game as you can still get wrinkles with these values. If you get 0 wrinkles and want some gradually increase the "Value" by 0.1. Best not to touch the "BaseValue" as far as I have tested.

For example:

						<node id="VectorParameters">
							<attribute id="BaseValue" type="fvec4" value="0 0 0 0" />
							<attribute id="Enabled" type="bool" value="False" />
							<attribute id="ExportAsPreset" type="bool" value="False" />
							<attribute id="GroupName" type="FixedString" value="" />
							<attribute id="IsColor" type="bool" value="False" />
							<attribute id="ParameterName" type="FixedString" value="_WrinkleWeightsA" />
							<attribute id="Value" type="fvec4" value="0.1 0.1 0.1 0.1" />
						</node>