The morphs for all vanilla expressions appear to fit pretty well, but if using something like EFA, they don't really move with the expressions, for example the "combat anger" expression has the mouth piercings moving while the mouth itself does not move at all in the EFA morphs. I assume that would mean you would need to create a new set of morphs that are based on the EFA ones, is that maybe something you would be willing to do in the future? It would be very useful since I imagine a lot of people use EFA.
By EFA you mean Expressive Facial Animation, right? If so, thanks for pointing this out. I also use that mod and thought the piercings behaved kinda wonky in dialogue but didn't suspect EFA. I just added support for EFA as a fomod-option and will release it shortly in v0.5.
Yes, that's what I mean, very nice, I will look forward to that. On another note, how hard is it to add new piercings with all the morph setup and all that, is it a big pain in the ass? I have some specific kind of piercings I use on my character and I'm wondering if I could manage to do it myself.
Depending on your knowledge of Outfit Studio, SSEEdit and RaceMenu it may be a pain in the ass to add multiple piercings. But you can try to make one piercing work with morphs and see if it's bearable. These would be the basic steps (for v0.5):
Install the dev-files from the file section of this mod.
Open the "Facial Piercings.osp" file in Outfit Studio (the Sliderless project).
Delete my piercing shapes, import your piercing and adjust it to the head shape.
In the porperties of your piercing shape under the "Geometry" section, make sure "Skinned" and "Dynamic" are active.
Delete the head shape, export your piercing shape as a nif file and save the project. I suggest you export them to data\meshes\[your mod]
Depending on which sliders you want the piercing to respond to you'll have to repeat step 7 for different projects. To check functionality you propably want to do the vanilla morphs first and do the RaceMenu ones later. That's Chargen, Efa and Races. For the common RaceMenu sliders to work you'll have to do Cme, Ece, Extra, Nuska and Rans. (This is the pain in the ass part btw.)
Now you can open the other projects, delete my piercings, import your Sliderless project and confirm all sliders using the head shape as reference. (In the "Confirming..." popup I normally click "Solid Object" and set the Search Radius to 1 but you can try around with the sliders a bit to see what works best).
Save and Export the project "to Tri Head". Vanilla tri files go to the same folder as your nif files. RaceMenu tri files go to data\meshes\actors\character\facegenmorphs\morphs\[your mod]\[project name].
In SSEEdit, open "Satisfactory Facial Piercings.esp" (holding the shift key to speed up the loading process) and copy a HeadPart and an Armor as new records to a new Plugin file.
In the HeadPart, you want to change the Editor ID, Model, Type and Parts. For the Tri Part you can use the output of your Efa project. You can understand a HeadPart Type as a kind of slot, where only one HeadPart can be occupied. For example, all septum piercings have the type 434 so you can only equip one of them. The different new Types are listed in "HeadPart Types.txt". Furthermore, each HeadPart Type needs a "None" HeadPart for when the slot is empty.
In the Armor, you want to change the Editor ID, LinkedHeadPart, NoneHeadPart (maybe), Unequip and FULL - Name. These are hopefully pretty self-explanatory except maybe the Unequip Array. Here you assign other piercing Armor that shoud be unequipped when this Armor is equipped.
If you close SSEEdit and save the new plugin file, you should have a new piercing that is equippable and responds to vanilla CharGen sliders and expressions in-game.
If that works, repeat steps 10 and 11 for the rest of your piercings.
For the RaceMenu morphs to work you have to declare your tri files in data\meshes\actors\character\facegenmorphs\[your plugin].esp\morphs.ini. You can copy the morphs.ini file from this mod as a reference. It also contains information about where RaceMenu looks for the tri files.
Of course again it makes sense to start with a single piercing and see if it works as expected. For declaring multiple piercings a solid text editor that supports multi-caret editing or regular expressions like Visual Studio Code goes a long way.
Ok, this got alot more detailed than I planned... I guess I could make a full tutorial from this post if anybody is interested in that.
That seems relatively simple actually. Can you explain which files should go in which folders? I can't figure out which OS project corresponds to which folder.
Wow, I thought the process must look rather daunting... Anyway, here's the folder structure I use, some description and a mapping from OS project to folder:
Vanilla files: Sliderless (this is the project for your nif files) -> data\meshes\PAHP Tri (these are the vanilla expression morphs, but as you use EFA you can ignore this project) -> data\meshes\PAHP Efa (these are the expression morphs from EFA) -> data\meshes\PAHP Chargen (these are the vanilla character creation morphs) -> data\meshes\PAHP Races (these are the vanilla race morphs) -> data\meshes\PAHP
When first creating this mod, I thought it was necessary to put the vanilla morphs in exactly the same folder as the nif files with corresponding suffixes for chargen and race morphs. That's just how it looks in the original game files. So I put a suffix after every shape in the chargen and races OS project (which was excruciating to do) to be able to export the morphs easily to the same. Now I suspect you can put them wherever you want, as long as you give the correct paths in the HeadPart record. So you can try to create different folders for the OS projects above (i.e. data\meshes\[your mod]\chargen for the morphs from the Chargen OS project)
RaceMenu morphs: Cme (Character Making Extension morphs) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\cme Ece (Enhanced Character Edit morphs) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\ece Efm (Expressive Facegen Morphs) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\efm Expr (these are the vanilla expressions that show up in RaceMenu. This is like the Tri project above but the morphs have different names so you cannot simply reuse the same tri files.) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\expr Efa Expr (same as above but for EFA morphs) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\expr Extra (Extra RaceMenu morphs) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\extra Nuska (Nuska RaceMenu morphs) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\nuska Races Cme (these are the race morphs that show up in RaceMenu. Not only do they have different names from the Races project but every morph has a corresponding inverted morph.) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\races Rans (Rans RaceMenu morphs) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\rans Spg (ECE Sliders Addon for Racemenu morphs) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\spg
I'm trying this now, I'm having trouble conforming the sliders for some reason. I can import my mesh and conform all sliders perfectly fine in all the project files, except the Expr or Efa Expr ones, trying to conform in either of those just does nothing. Any idea why that might be happening?
Edit: Looks like just editing all the slider names in the regular Efa project (where conform did work) to match the names in the Efa Expr one and exporting that worked fine, I can adjust the RaceMenu expressions and my piercings follow them. Thought I did take some shortcuts by basically just using blank .tri files for all the non-expression morphs as I already had them positioned to match my character's face and just replacing some of your existing files instead of adding new ones.
I created the Expr and Efa Expr projects by opening the osp file with a text editor, copying the Tri and Efa projects and inserting the prefix via find and replace. The projects share the same ShapeData too. This was much quicker than fine-tuning and conforming basically the same projects twice.
same if you give one to follower. first time is working , or just after restart a game, but when you go through a loading door like city gates, the follower head texture is disappearing.. probably load order issue
What are the files in the meshes/actors/character/facegenmorphs/morphs/PAHP folders responsible for? I'm customizing the piercing to fit my character's face, which of the tri files do I need to edit?
For any other VR users that stumble across this: I think the issue is racemenu. There was a fix for crashing on adding head part sliders in 4.15 which is after the latest VR release. I got one piercing to work by changing the PNAM in xEdit under the Head Part FormID's for the piercing i wanted to "Scar" and deleting anything thats PNAM was <unknown XX XX>. from there i just went to the scar slider in racemenu and picked the piercing. this ofcourse means you cant have a scar AND the piercing. YMMV.
Technically I suppose you could change all of them to Scars, but you'll only ever be able to wear just one, but at least you'll have options.
Have some issues with the facial piercing. Ears are fine but specifically the nose studs, and left and right brows and butterfly piercings seems to be misaligned. The nose one seems to be floating in the air close to the actual nose. While the brows ones are either too high up or again floating very near to the skin.
Is there a way to fix this without actually changing the face itself?
Tried sculpting but I’m a novice at it. It just stretches the piercing and not really just move the thing.
Edit: Manage to fix it on outfit studio. Holy crap. That’s a lot of stuff I need to learn just to adjust piercings.
119 comments
If so, thanks for pointing this out. I also use that mod and thought the piercings behaved kinda wonky in dialogue but didn't suspect EFA.
I just added support for EFA as a fomod-option and will release it shortly in v0.5.
But you can try to make one piercing work with morphs and see if it's bearable.
These would be the basic steps (for v0.5):
- Install the dev-files from the file section of this mod.
- Open the "Facial Piercings.osp" file in Outfit Studio (the Sliderless project).
- Delete my piercing shapes, import your piercing and adjust it to the head shape.
- In the porperties of your piercing shape under the "Geometry" section, make sure "Skinned" and "Dynamic" are active.
- Delete the head shape, export your piercing shape as a nif file and save the project. I suggest you export them to data\meshes\[your mod]
- Depending on which sliders you want the piercing to respond to you'll have to repeat step 7 for different projects. To check functionality you propably want to do the vanilla morphs first and do the RaceMenu ones later. That's Chargen, Efa and Races. For the common RaceMenu sliders to work you'll have to do Cme, Ece, Extra, Nuska and Rans. (This is the pain in the ass part btw.)
- Now you can open the other projects, delete my piercings, import your Sliderless project and confirm all sliders using the head shape as reference. (In the "Confirming..." popup I normally click "Solid Object" and set the Search Radius to 1 but you can try around with the sliders a bit to see what works best).
- Save and Export the project "to Tri Head". Vanilla tri files go to the same folder as your nif files. RaceMenu tri files go to data\meshes\actors\character\facegenmorphs\morphs\[your mod]\[project name].
- In SSEEdit, open "Satisfactory Facial Piercings.esp" (holding the shift key to speed up the loading process) and copy a HeadPart and an Armor as new records to a new Plugin file.
- In the HeadPart, you want to change the Editor ID, Model, Type and Parts. For the Tri Part you can use the output of your Efa project. You can understand a HeadPart Type as a kind of slot, where only one HeadPart can be occupied. For example, all septum piercings have the type 434 so you can only equip one of them. The different new Types are listed in "HeadPart Types.txt". Furthermore, each HeadPart Type needs a "None" HeadPart for when the slot is empty.
- In the Armor, you want to change the Editor ID, LinkedHeadPart, NoneHeadPart (maybe), Unequip and FULL - Name. These are hopefully pretty self-explanatory except maybe the Unequip Array. Here you assign other piercing Armor that shoud be unequipped when this Armor is equipped.
- If you close SSEEdit and save the new plugin file, you should have a new piercing that is equippable and responds to vanilla CharGen sliders and expressions in-game.
- If that works, repeat steps 10 and 11 for the rest of your piercings.
- For the RaceMenu morphs to work you have to declare your tri files in data\meshes\actors\character\facegenmorphs\[your plugin].esp\morphs.ini. You can copy the morphs.ini file from this mod as a reference. It also contains information about where RaceMenu looks for the tri files.
- Of course again it makes sense to start with a single piercing and see if it works as expected. For declaring multiple piercings a solid text editor that supports multi-caret editing or regular expressions like Visual Studio Code goes a long way.
Ok, this got alot more detailed than I planned...I guess I could make a full tutorial from this post if anybody is interested in that.
Anyway, here's the folder structure I use, some description and a mapping from OS project to folder:
Vanilla files:
Sliderless (this is the project for your nif files) -> data\meshes\PAHP
Tri (these are the vanilla expression morphs, but as you use EFA you can ignore this project) -> data\meshes\PAHP
Efa (these are the expression morphs from EFA) -> data\meshes\PAHP
Chargen (these are the vanilla character creation morphs) -> data\meshes\PAHP
Races (these are the vanilla race morphs) -> data\meshes\PAHP
When first creating this mod, I thought it was necessary to put the vanilla morphs in exactly the same folder as the nif files with corresponding suffixes for chargen and race morphs.
That's just how it looks in the original game files.
So I put a suffix after every shape in the chargen and races OS project (which was excruciating to do) to be able to export the morphs easily to the same.
Now I suspect you can put them wherever you want, as long as you give the correct paths in the HeadPart record.
So you can try to create different folders for the OS projects above (i.e. data\meshes\[your mod]\chargen for the morphs from the Chargen OS project)
RaceMenu morphs:
Cme (Character Making Extension morphs) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\cme
Ece (Enhanced Character Edit morphs) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\ece
Efm (Expressive Facegen Morphs) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\efm
Expr (these are the vanilla expressions that show up in RaceMenu. This is like the Tri project above but the morphs have different names so you cannot simply reuse the same tri files.) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\expr
Efa Expr (same as above but for EFA morphs) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\expr
Extra (Extra RaceMenu morphs) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\extra
Nuska (Nuska RaceMenu morphs) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\nuska
Races Cme (these are the race morphs that show up in RaceMenu. Not only do they have different names from the Races project but every morph has a corresponding inverted morph.) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\races
Rans (Rans RaceMenu morphs) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\rans
Spg (ECE Sliders Addon for Racemenu morphs) -> data\meshes\actors\character\facegenmorphs\morphs\PAHP\spg
Edit: Looks like just editing all the slider names in the regular Efa project (where conform did work) to match the names in the Efa Expr one and exporting that worked fine, I can adjust the RaceMenu expressions and my piercings follow them. Thought I did take some shortcuts by basically just using blank .tri files for all the non-expression morphs as I already had them positioned to match my character's face and just replacing some of your existing files instead of adding new ones.
I created the Expr and Efa Expr projects by opening the osp file with a text editor, copying the Tri and Efa projects and inserting the prefix via find and replace. The projects share the same ShapeData too. This was much quicker than fine-tuning and conforming basically the same projects twice.
I can provide crash logs if wanted.
Technically I suppose you could change all of them to Scars, but you'll only ever be able to wear just one, but at least you'll have options.
Is there a way to fix this without actually changing the face itself?
Tried sculpting but I’m a novice at it. It just stretches the piercing and not really just move the thing.
Edit: Manage to fix it on outfit studio. Holy crap. That’s a lot of stuff I need to learn just to adjust piercings.
I'm trying to do it but the changes are not applied within the game