Jump to content
gerra6

Mesh Rigger (Skyrim, Fallout, Oblivion) Beta.89.f (10-26-2014)

Recommended Posts

Mesh Rigger
 
Rig and Weightpaint nifs without a 3D program!

Quickly and easily add BBP, TBBP, BB, BBB, BNB, etc to an entire collection of clothing and armor with a few clicks of a button!
 
This tool automatically copies Bones, Weightpainting, Dismemberment Partitions, and much more for Skyrim, Fallout and Oblivion meshes.
 
The tool can process a single nif, multiple nifs, or even an entire directory structure at once.
 
You can now add one or more bones to an entire clothing collection with a couple of quick clicks.
 
And rigging a raw mesh or stripping and re-rigging an existing mesh is a simple as running the tool.
 
Core Functions
 
1. Copy skeleton root, bones, and weightpainting from a fully rigged mesh to an unrigged mesh
2. Accurately replicate skin partitions and dismemberment partitions
3. Selectively copy individual bones, multiple bones, or entire skeletons from a rigged nif to any other mesh.
4. Selectively rig individual meshes within a nif for Rigid or Soft weightpainting
5. Automatically copy Havok HDT nodes and bones
6. Automatically compensate for differences in skinning, bone transforms, skinned bone transforms, etc
7. Automatically generate perfectly matching _0 and _1 morph meshes, if _0 and _1 morph meshes already exist

Using Mesh Rigger
 

 



Mesh Rigger works by accurately copying information from a template nif to as many target nifs that you desire. Because of this, the quality of final results depends on the quality of the selected template nif.

For best results, your template nif should be a full body nif (hands, feet, upper body, lower body, head) that shares the same base body type as any nifs that you wish to rig using Mesh Rigger.

1. Run 'Mesh Rigger.bat' or 'mesh_rigger.py'. This will open the main Mesh Rigger options Window.

File Settings

2. Click 'Load Defaults' (Optional)
3. Click File -> Template Options -> Select Template Mesh
3.a. Select the template nif that you will be using.
3.b. Warning for Skyrim users. If you are rigging morph nifs (name_0.nif, name_1.nif), please ensure that your template nif has an appropriate name. So if your template matches the _0 body style, ensure that the template name ends with _0.nif. If instead the template matches the _1 body style, ensure that the template name ends with _1.nif.
4. (Optional) If you would like to rig the mesh with a different skeleton than the one included in your Template Mesh: Click File -> Template Options -> Select Template Skeleton.
4.a. Optional) Select the skeleton template nif that you will be using.
5. Click File -> Target Options
5.a. Select either the nifs or the folder containing the nifs that you want to rig
5.b. (Optional) If you want the tool to process subfolders, enable 'Include Subfolders'
6. Click File -> Select Destination Folder
6.a. Select the location where you would like the rigged meshes to be saved. The tool will automatically overwrite any nifs in this folder with newly rigged versions.

Search Settings

Override Distance, Search Distance, and Vertex Targets determine how the tool finds matching weights between the meshes.

7. Override Distance should be enabled *only* if you want to force every vertex on the target meshes to receive new weightpainting.

8. Search Distance should be increased if you are working with skirts or capes or other materials that may need to search a significant distance for an appropriate target on the template mesh.

9. Vertex Targets determines how many targets on the template mesh each vertex should attempt to find. The weight applied to a given vertex will be a distance weighted average of the found targets on the template mesh. In general, 3 is a safe starting point. Increase this number to generate smoother weightpainting, decrease it to generate a more precise copy from the template.

Rigging Settings

10. Select Bones to Copy: Enable if you want to select only certain bones to be copied

11. Copy Havok Node: Enable if you want to copy Havok nodes and skeletons for HDT enabled Skyrim meshes

13. Select Rigid Meshes: This option allows you to specify two options for every geometry block (mesh) in every nif that you rig. When enabled, every time a nif is loaded to be rigged, the tool will open a menu listing all meshes found in the nif. Each mesh has two options, Weight, and Rigid.
13.a 'Weight' determines whether or not a given mesh received updated weighting. If a mesh does not have Weight enabled, its weightpainting will not be modified by the tool.
13.b. 'Rigid' determines whether or not a given mesh receives rigid weightpating. Enable this for hard object like a shell or a breastplate that should not be deformed. Disable this for soft objects, like leather or clothing that should match the deformation of the body mesh.

14. 'Replace Weights': This option causes the tool to erase existing weighting for any bones that the tool paints

15. 'Replace Rigging': This option causes the tool to erase any existing bones and replace them with the bones from the template mesh (or template skeleton, if one was selected). Note: Enabling this option will automatically delete any unused bones

16. 'Replace Partitions': This option is used for Skyrim and Fallout nifs. When enabled, it will delete existing dismemberment partitions and copy the appropriate partitions from the template nif. If disabled, any existing dismemberment partition assignments will be preserved when the partition is rebuilt.

17. 'Allowed Genders': This option is useful when walking a directory tree. It attempts to detect the gender of a given nif and rig only nifs with matching genders. Note: The tool uses file path and texture path to determine gender, so it is unable to accurately categorize all nifs by gender.

18. Click 'OK' to run Mesh Rigger

Saving and Restoring Settings

Cancel: Close the tool and don't do anything (same as closing the window)
Load Defaults: Reset settings to factory default
OK: Accept the settings and begin processing meshes
 
Save Current Settings: Save your current configuration to a customizeable ini file
Load Current Settings: Load a saved configuration from a customizeable ini file
 



Download:
 Tools RC_89.e.7z

Tools RC_89_k_Upgrade.7z

 

Installation:
 

 


 
 
Portable Package:
 
1. Extract downloaded .7z file to the folder of your choice.
 
To run the tool: 
1. Double-Click on Mesh_Rigger.bat in your Mesh Rigger folder
 
Light Download:
 
1. Install Python 3.4 https://www.python.org/download/releases/3.4.0/ (64 bit recommended if you are working with very large nifs)
2. Install Pyffi 3K http://sourceforge.net/projects/pyffi/files/pyffi-py3k/
3. Extract Mesh Rigger to your preferred location in your computer.
 
To run the tool:
1. Double Click on mesh_rigger.py located in your Mesh Rigger folder.
 
This should open the bone weight copy menu.  If this does not happen, download and use the Portable Package instead
 


Change Log:
 

 


 
Beta 44 to 46
1. Significant rebuild of back-end framework for greater stability, robustness, and flexibility
2. Significant Improvements to the back-end vertex matching algorithm. This should result in notable improvements to many former problem areas
3. Significant Improvements to the ability of the tool to work with meshes with unusual bone and/or skin transforms.
4. Elimination of 'wayward vertex' problem when rigging meshes with bad or incompatible skinning.
5. 'Adjust Bind Option' has become redundant and has been removed.
Beta 40 to 44
1. Resolves crash bug that can occur when working with nifs with bad geometry blocks

Beta 35 to 40
1. Resolve bug that could cause Skyrim Nifs to not appear in-game
2. Miscelaneous performance improvements
3. Resolved several uncommon crash bugs

Beta 34 to 35
1. Resolves Crash Bug when Mesh Rigger attempted to rename scene roots for Morph Nifs.

Beta 31 to 34
1. Adjust Bind Position option has been restored. When enabled, the tool will automatically adjust vertex locations to compensate for any changes in the bones. This can be used to ensure that in-game mesh shape remains unchanged when re-rigging a mesh with a skeleton with different bone bind transforms.
2. Extra Data Blocks attached to the target nif Scene Root will now be properly retained when the tool rigs a mesh
3. Relative order of Extra Data Blocks, Geometry Blocks, and NiNode Blocks will now be retained in most circumstances.

Beta 30 to 31:
1. Resolved crash bug when perf_mon was loaded. It appears that the portable version of python did not include a full install of the Python Time module.

Beta 25 to 30:
1. Mesh Rigger will no longer generate multiple scene roots when 'Delete Rigging' is disabled
2. Mesh Rigger will once again correctly generate new skin partitions (eliminates 'invisible nif' problem)
3. Update Bind Position button has been eliminated and replaced with new automatic system. The system to match coordinates between different nifs has been significantly overhauled. Nifs with unapplied bone transforms will now have those transforms applied directly to the vertex locations during mesh initialization. Deleting the rigging of a nif now causes the locations of all vertices to be updated appropriately to compensate for the new bones.
4. Behavior of Replace Weights option has been modified. Enabling Replace Weights will delete all existing weights for selected bones, but any non-selected bones will be unaffected.

Beta 13.C to 25:
1. Very large number of changes added to the back-end framework. Detailed Change Log forthcoming.

Beta 0.13.A to 0.13.C:
 
1. Assorted bugs in the Target Folder and Destination Folder selection have been resolved
2. Oblivion skin partitions should now be properly created
 
Beta 0.13 to 0.13.A:
1. Crash when processing Oblivion meshes has been resolved
2. Crash when 'Delete Existing Rigging' is enabled has been resolved
Beta 0.11 to 0.13
1. All Issues relating to Skyrim meshes and the weight slider should now be resolved
2. Any mesh, bone, or vertex distortion from copying bones onto a skinned mesh should now be eliminated.
3. It is no longer necessary to rebuild skin partitions in Nifskope.
4. Relative path names should now function properly
Seam Mender Updates:
1. Tri Files should now be processed and saved correctly
2. Nif or Tri files that cause Pyffi to crash when reading no longer cause the tool to exit. These files are now bypassed and will not be processed.
3. Copying Weights should now work properly (See Mesh Rigger Bugs for bugs and resolution)

Beta 0.09 to 0.11 
1. Fixes bug that prevented skin partitions from being properly rebuilt.

Beta 0.07 to 0.08
1. Fixes bug that prevented saved configurations from loading
2. Added portable version for Windows that does not require Python or Pyffi installation.
 
Beta 0.05 to 0.07

1. Delete Existing Rigging: When enabled, all target meshes will be stripped of all rigging, skin partitions, and weightpainting.  New rigging, skin partions, weightpainting, and bones (as needed) will be copied from the template mesh.
2. Copy Havok node.  When enabled, copies havok extra data node from template mesh to target mesh(es)
3. Game Menu: Select Skyrim, Fallout, or Oblivion.  At present, this tells the tool to use the optimal skin partition settings for the specified game when it rebuilds the skin partitions.
4. Configuration settings are now stored in a user modifiable ini file format
5. Save Current Settings: Save the current settings to a plain text .ini file in your \save\ folder
6. Load current Settings: Load the current settings from a plain text .ini file in your \save\ folder
7. It is no longer necessary to rebuild skin partitions in Nifskope after using this tool

 
Beta 0.04 to 0.05
1. Skin partitions are now correctly copied from the Template mesh to the Target mesh
2. Dismember skin partitions are now correctly copied, assigned to the appropriate regions of the mesh, and assigned the correct body part codes.
 
Beta 0.01 to 0.04
1. Resolved error when using multi-file selection
2. Existing skeleton roots will no longer be overwritten when skinning a partially skinned nif
3. Target nifs that contain multiple meshes will now be processed properly 
4. Template nifs that contain multiple meshes will now be processed properly and provide boneweight copying as if they were merged into a single nif
5. BSDismemberSkinInstance are now used if the template mesh included them
6. Nifs that contain corrupt skins should no longer cause the tool to crash
7. Source Mesh menu items have been renamed to Target Mesh
8. Delete Existing Bone Weights option had been inverted.  Enabling the button will not properly delete existing bone weights as they are copied from the template mesh.  Disabling the button will mean that any existing weights that are not overwritten will remain.
 


 
Please report any bugs or other issues that you encounter.

Share this post


Link to post

Will try this new beta when get back home.  Hope will get better result than the first one.

(I'm the guy who sent you example of the template).  :shy:

Share this post


Link to post

Thanks for the template files.

 

It's surprisingly fun to watch my tools crash and burn when they come face to face with reality.

 

At this point, things are looking pretty good, I can copy appropriate looking dismember partitions to from the templates, copy all of their properties, and have everything end up looking exactly the way it is supposed to look.

 

What I can't seem to do is figure out how to eliminate the Nifskope step.  Well, there's no helping it...I need to go stare at the Nifskope code and figure out what dark magic they are performing.

Share this post


Link to post

* Edit *

 

The tools seem to work without error for me.

 

However, seem like it is just not enough to make BBP armor -> TBBP.  I tried first with just NPC L/R Butt because that should be the main difference for BBP and TBBP but no change in butt physics of the destination armor.  Try again with all bone selected and still not get butt physics.

 

I even try to use TBBP armor as template too (other than TBBP body mesh).

 

I have a question, should be copy NPC L/R PreButt as well?  I used to see some comment in HDT thread that the factor that effect bouncing are prebreast and prebutt area.

 

Share this post


Link to post

At this point the mesh is rigged, but I do see one notable difference between the template and the destination.

 

I don't know anything about how they set up their system, but there is a NiStringExtraData node that looks important.  Open your meshes in nifskope and copy that block trom the template to your scene root.

 

That seems to be loading some sort of physics package.

 

Let me know what it does.  I'll need to do some investigation, but I *may* add the option to automatically copy that package from between the meshes.  It should be easy to code, I just don't want to cause more problems than I solve.  And I really don't want to end up trying to support someone else's physics package.

 

 

Share this post


Link to post

By template, do you mean "femalebody_0.nif"?

I cannot find any NiStringExtraData node there.

 

I used to add NiStringExtraData to point to hdt.xml for collision from HDT but it should already removed.

Share this post


Link to post

Sorry, getting my templates confused.

 

I'll take a closer look at that one.

 

Just to be clear...the template mesh is the exact mesh (with no changes at all) as the one you use in game, that displays the working animation?

 

Before I spend too much time trying to figure out what might be missing, I need to be certain that there is something missing.

 

Here's the output from the latest development version of the tool, using it with the body template from your post over at the nexus.

cuirassf_0.7z

Share this post


Link to post

Yes, the template is the body mesh of CHSBHC v3 I am using.

http://www.nexusmods.com/skyrim/mods/34344

 

I'm using the TBBP version and it show butt animation (jiggly) in game.

 

I attach all _0 and _1 files for you in case of needed.

Template : femalebody_0.nif, femalebody_1.nif

Source : cuirassf_0.nif, cuirassf_1.nif

Output : cuirassf_0_out.nif, cuirassf_1_out.nif

 

I use _0 as template for source _0 to ensure the weight is same.  I do it like this because I think _0 is for weight 0 and _1 is for weight 0.

 

First I try to copy only NPC L/R Butt and when nothing in butt animation - I select all bone.

 

I also try to use another armor mesh that also has TBBP butt animation as template : body_2.nif

 

BWC.rar

Share this post


Link to post

Strange, I tried your output and see butt animation like what I have with the body mesh.

 

Can you guide me how to do that?

 

Beta .1 and .5 I used don't have the same result.

 

Also the source file should have around 1.4MB but your output has only 845KB?

Share this post


Link to post

The filesize difference is the result of those orphan child nodes that I mentioned in the other thread. If you open your meshes in nifskope, you'll notice about 40 nodes that aren't parented to any geometry. When you deleted the niTriStrips before, you left all of the data behind.

 

Since that data is useless without the niTriStrips that it belonged to, it was discarded.

 

I'll be posting the next beta in a bit with an option to completely re-rig the mesh. That's the version I used in the test.

Share this post


Link to post

For some reason when I try to use this, get a load of erros at the end of the log

 

Python 3.3.3 (v3.3.3:c3896275c0f6, Nov 18 2013, 21:18:40) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
Default Settings {}
Current Settings {'top_menu': None, 'Distance': 10.0, 'VERSION': 'b_02', 'template': 'C:/Users/User/Desktop/Bone Weight Copy Beta 5/body.nif', 'subfolder': 0, 'destination': 'C:/Users/User/Desktop/Bone Weight Copy Beta 5/output', 'bone': True, 'override': True, 'Targets': 10, 'select_bones': True, 'target': '{C:/Users/User/Desktop/Bone Weight Copy Beta 5/dress pre war 2.nif}', 'delete': True}
Integer <class 'tkinter.IntVar'>
PY_VAR1
Float <class 'tkinter.DoubleVar'>
PY_VAR2
Menu Test 1
key subfolder
{'subfolder': <tkinter.IntVar object at 0x0318CEF0>}
0
0
Menu Test 1
key top_menu
{'subfolder': <tkinter.IntVar object at 0x0318CEF0>}
{'top_menu': None, 'Distance': 10.0, 'VERSION': 'b_02', 'template': 'C:/Users/User/Desktop/Bone Weight Copy Beta 5/body.nif', 'subfolder': 0, 'destination': 'C:/Users/User/Desktop/Bone Weight Copy Beta 5/output', 'bone': True, 'override': True, 'Targets': 10, 'select_bones': True, 'target': '{C:/Users/User/Desktop/Bone Weight Copy Beta 5/dress pre war 2.nif}', 'delete': True}
Block Found
Building Vertex Dictionary
initializing faces
initializing bones
Test A
Block Found
Building Vertex Dictionary
initializing faces
initializing bones
Test A
Block Found
Building Vertex Dictionary
initializing faces
initializing bones
Test A
2208 found in template.  Adding to search array.
1384 found in template.  Adding to search array.
3321 found in template.  Adding to search array.
Total of  6913 found in template.  Search array complete.
[b'Bip01 Head', b'Bip01 L Calf', b'Bip01 L Clavicle', b'Bip01 L Foot', b'Bip01 L Forearm', b'Bip01 L ForearmTwist', b'Bip01 L Hand', b'Bip01 L Op1', b'Bip01 L Op2', b'Bip01 L Op3', b'Bip01 L Thigh', b'Bip01 L Toe0', b'Bip01 L UpperArm', b'Bip01 L UpperArmTwist', b'Bip01 Neck1', b'Bip01 Pelvis', b'Bip01 R Calf', b'Bip01 R Clavicle', b'Bip01 R Foot', b'Bip01 R Forearm', b'Bip01 R ForearmTwist', b'Bip01 R Hand', b'Bip01 R Op1', b'Bip01 R Op2', b'Bip01 R Op3', b'Bip01 R Thigh', b'Bip01 R Toe0', b'Bip01 R UpperArm', b'Bip01 R UpperArmTwist', b'Bip01 Spine', b'Bip01 Spine1', b'Bip01 Spine2']
[b'Bip01 Head', b'Bip01 L Calf', b'Bip01 L Clavicle', b'Bip01 L Foot', b'Bip01 L Forearm', b'Bip01 L ForearmTwist', b'Bip01 L Hand', b'Bip01 L Op1', b'Bip01 L Op2', b'Bip01 L Op3', b'Bip01 L Thigh', b'Bip01 L Toe0', b'Bip01 L UpperArm', b'Bip01 L UpperArmTwist', b'Bip01 Neck1', b'Bip01 Pelvis', b'Bip01 R Calf', b'Bip01 R Clavicle', b'Bip01 R Foot', b'Bip01 R Forearm', b'Bip01 R ForearmTwist', b'Bip01 R Hand', b'Bip01 R Op1', b'Bip01 R Op2', b'Bip01 R Op3', b'Bip01 R Thigh', b'Bip01 R Toe0', b'Bip01 R UpperArm', b'Bip01 R UpperArmTwist', b'Bip01 Spine', b'Bip01 Spine1', b'Bip01 Spine2']
{C:/Users/User/Desktop/Bone Weight Copy Beta 5/dress pre war 2.nif}
dirpath {C:/Users/User/Desktop/Bone Weight Copy Beta 5/dress pre war 2.nif}
this_file {C:/Users/User/Desktop/Bone Weight Copy Beta 5/dress pre war 2.nif}
Processing dress pre war 2.nif
Create new root
******adding skeleton root******
Building Vertex Dictionary
initializing faces
initializing bones
Test A
validating skin - pre- mainsearch
Main Search
Distance 10.0
search_targets 10
Template Vertices: 6913
Building Vertex Dictionary
Target Mesh Vertices 1458
Building Vertex Dictionary
searching for Targets
102 of 1458verts searched
174 of 1458verts searched
246 of 1458verts searched
318 of 1458verts searched
390 of 1458verts searched
462 of 1458verts searched
534 of 1458verts searched
607 of 1458verts searched
680 of 1458verts searched
753 of 1458verts searched
825 of 1458verts searched
898 of 1458verts searched
970 of 1458verts searched
1044 of 1458verts searched
1116 of 1458verts searched
1188 of 1458verts searched
1260 of 1458verts searched
1332 of 1458verts searched
1404 of 1458verts searched
processing b'Bip01 Pelvis'
bone not found, adding to mesh
processing b'Bip01 L UpperArmTwist'
bone not found, adding to mesh
processing b'Bip01 Spine1'
bone not found, adding to mesh
processing b'Bip01 L Op2'
bone not found, adding to mesh
processing b'Bip01 R UpperArmTwist'
bone not found, adding to mesh
processing b'Bip01 L Thigh'
bone not found, adding to mesh
processing b'Bip01 L Op1'
bone not found, adding to mesh
processing b'Bip01 Spine'
bone not found, adding to mesh
processing b'Bip01 R Clavicle'
bone not found, adding to mesh
processing b'Bip01 L Op3'
bone not found, adding to mesh
processing b'Bip01 R Op2'
bone not found, adding to mesh
processing b'Bip01 R Op3'
bone not found, adding to mesh
processing b'Bip01 R Calf'
bone not found, adding to mesh
processing b'Bip01 R Op1'
bone not found, adding to mesh
processing b'Bip01 R Thigh'
bone not found, adding to mesh
processing b'Bip01 L Calf'
bone not found, adding to mesh
processing b'Bip01 L Clavicle'
bone not found, adding to mesh
Bone Update Complete
time b 14.14292882940973
time c 2.9541986181363633
1458 vertices modified.  Saving File
1458 vertices modified.  Saving File to C:/Users/User/Desktop/Bone Weight Copy Beta 5/output
bad NiSkinData: some vertices have no weights [16, 17, 18, 19, 24, 25, 26, 27, 38, 39, 40, 41, 49, 50, 51, 52, 62, 63, 64, 65, 66, 67, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 120, 121, 122, 123, 124, 125, 128, 129, 130, 132, 133, 134, 135, 136, 137, 149, 150, 151, 152, 153, 154, 155, 156, 157, 178, 190, 191, 192, 193, 199, 200, 205, 206, 207, 208, 209, 216, 243, 244, 245, 246, 247, 248, 249, 286, 287, 454, 456, 480, 482, 496, 497, 498, 500, 501, 502, 510, 511, 612, 613, 614, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 744, 745, 746, 747, 748, 749, 750, 753, 770, 772, 774, 776, 911, 913, 914, 922, 923, 924, 954, 955, 956, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1055, 1056, 1057, 1061, 1062, 1063, 1064, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1207, 1210, 1212, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1237, 1244, 1245, 1246, 1247, 1248, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1284, 1285, 1286, 1287, 1291, 1303, 1304, 1305, 1322, 1323, 1331, 1339, 1340, 1345, 1453, 1455, 1457]
>>>

 

 

 

and the mesh looks like thisdress pre war 2.nif , a load of vertices for some reason having been deleted.

 I can't work out were I'm going wrong.

Share this post


Link to post

The verts haven't been deleted, they just have no weights.

This can happen if your template mesh and target mesh are very different.

Either increasing the Search Distance or enabling the Override Search Distance option should fix it.

 

*Edit* I should mention, the tool doesn't currently know what to do with meat caps from fallout meshes.  It should properly copy the dismemberment partitions with no trouble, but so far Skyrim and Oblivion compatibility have been the main focus.  I need to figure out how the tool should handle meat caps.

 

Here's a quick re-rig of your mesh using the dev version of the tool (to be released shortly)

 

dress pre war 2.7z

 

I used a berry body I just grabbed from Nexus as bone template source.  To be on the safe side, I deleted the meat caps from the template.  I'm going to go add some code to deal with those.

Share this post


Link to post

Thanks.

 

I've actually just managed to rig this mesh to oblivion myself, but from some reason, although the mesh shows up in-game, the shoulders still warp too much when my character moves. I can fix this if I use the nude body I remodeled the mesh on as a weight template, but then the skirt looks wrong. To fix the skirt I can use one of the ingame robes (mages robe) but that mucks up the shoulders again and I can't work out how to get it all to work together.

 

dress pre war 2 fix shoulders.nif

 

here's the body I'm trying to use for this mesh

 

femalelowerbody_Queen.nif

 

femaleupperbody_W_QHB.nif

Share this post


Link to post

OK, since your target mesh is a full size mesh, the first thing you'll want to do is merge your upper and lower body template nifs into a single nif.

 

This allows you to perform the next step without things getting too wonky.

 

You're rigging a skirt...that means that there is a significant distance between the skirt and the legs.  This in turn means that for the skirt you want to use both a very high search distance and a relatively high vertex count.  (I'm working on some experimental methods to rig skirts)

 

Here's what I'd try first.  Run the tool using a full body template mesh and something similar to the default settings.

 

Next, run the tool a second time.  This time enable 'Select Bones To Copy' and disable 'Overwrite Existing Bones'.  Set the vertex count to something fairly high (try 30 or so), set the search distance to something absurd (try 30 or so) and select only the bones that you want painted onto the lower parts of the skirt, probably just thigh and calf.

 

See if that helps.

Share this post


Link to post

The shoulders look alright, but the skirt still looks warped. Do you have any further suggestions?

 

I'm using this template for the skirt weighting, using my body template always makes it look warped, but using this mucks up the shoulder weighting.

 

It seems that after I weight paint a clean copy of the mesh one time, any further times I weight paint it using the tool have no effect and the weighting stays the same.

 

bshirt.nif

Share this post


Link to post

The issue that you are having is that you don't have a good template.

 

So let's make one.

 

You have a body template with good shoulders and a dress template with good leg weighting.  

 

Here's what you want to do...set the body as your template, and the dress as the target.  Run the tool with default settings.  Ensure that Delete Existing Weights is enabled.

 

When the bone menu appears, only select the bones that are badly painted on the dress template.  So don't select the thighs, calves, pelvis, etc...just the stuff that is bad.

 

Once the dress is re-weight painted, it should work as a template for your other mesh.

Share this post


Link to post

So you mean I still cannot have the same result output with beta.5 yet right?

 

When you release the next beta, you will add a new option to fix problem like my mesh has so the weight will be copied correctly?

 

Thanks.

Share this post


Link to post

No, you should be able to get the same weighting results.

 

The main difference with the next beta is that the Nifskope 'build skin partitions' step won't be necessary anymore.

 

Other than that, I'm adding extra usability options (delete existing rigging, copy havoc node, save/load settings)

 

I'll also probably be adding my search weighting function, which can be handy for rigging skirts.

 

But, this is a beta...one of my goals is to keep expanding the functionality and quality of the tool, so any feedback that helps improve the tool is extremely welcome.

Share this post


Link to post

Well, can you tell me that do I need to do anything extra to get the destination mesh has same result as the file you sent to me?

 

I cannot make weight copy work in beta.1/5 no matter I select only NPC L/R Butt or select all bone that the tool shown.

Share this post


Link to post

Latest beta of Mesh Rigger is now live.

 

Good name?  Bad name?

 

TnTTnT, Try running the tool and select 'Delete Existing Rigging'.  Disable 'Select Bones to Copy'.  Enable Override Distance, set a nice high search distance with ~5 to 10 vertex targets and see what happens.

 

let me know if it works for you.

 

One thing I should mention...if you look at the mesh you are working with...the underlying body mesh is severely distorted.  My tool will fix the weighting/rigging, but it won't fix bad vertices.

Share this post


Link to post

Thanks.

 

Select option as your suggestion, I can copy weight from template to destination successfully.  Now I can may all BBP armor become TBBP!   :D

Share this post


Link to post

I just tried out this tool.

I wanted to copy TBBP bones and weight into a non-tbbp armor.

I loaded up the TBBP body mesh, selected the armor mesh, then used the select bones to copy.

checked breast, breast01, and butt bones L and R.

I ran it and everything seemed ok. new nif is created.

but the thing is only the bones are copied over, and there are no weights on the breast/butts.

am i doing something wrong?

i only wanted to copy the breast and butt bones and weight over and not every bones in the body mesh.

 

the only time it works is when i use the "delete existing rigging" and rewrite bone/weight, but thats not exactly what i want tho...

Share this post


Link to post

Thanks for the bug report.

 

Would you be willing to send me the nifs that you were using to test.  I'd like to dig around and see if I can figure it out.

 

Based on your description, without seeing the nifs, here's my best guess.

 

Nifs can traditionally handle 4 influence bones per vertex.  When a skin partition is built, the number of bones influencing a given vertex is reduced to 4.  Excess bones are removed in the order of lowest weight first.

 

My best guess at this point is that the nif you are copying to has fairly heavy weightpainting in that region, ant that the copied over weights are getting discarded when the skin partition is built.

 

My next best guess is that the differences between the meshes is higher than the search distance that you are using.  Try enabling the 'Override' button.

 

Are you up for an experiment?

 

I can send you an experimental version of the Rigging Tool that allows you to set the number of bones allowed per vertex when the skin partition gets remade.  I can't find any information online about the maximum number of bones per vertex in a Skyrim mesh, but it *might* be significantly higher than the 4 bone per vertex limit in Oblivion and Fallout.  The bones per partition limit in Skyrim is at least 63 vs Oblivion and Fallout's 18, so it is possible that the bones per vertex has been similarly increased.

Share this post


Link to post

Just notice that you upload a new version and now with portable as well.

 

Hoorey!  I will try it with my company notebook tomorrow.   :lol:

Share this post


Link to post

Latest beta of Mesh Rigger is now live.

 

Good name?  Bad name?

 

TnTTnT, Try running the tool and select 'Delete Existing Rigging'.  Disable 'Select Bones to Copy'.  Enable Override Distance, set a nice high search distance with ~5 to 10 vertex targets and see what happens.

 

let me know if it works for you.

 

One thing I should mention...if you look at the mesh you are working with...the underlying body mesh is severely distorted.  My tool will fix the weighting/rigging, but it won't fix bad vertices.

 

here's you at the moment of this post:

iQkaNNsR7Qmy.png

 

so let me see if i got this straight . . . with bodyslide, i can weight paint a body mesh. With this tool i could then update that weight painting to all the compatible outfits for that body.

 

Have I got this right?

 

What are some other examples of what an average player like me could do?

 

Oh btw the name is fine. If you intend it to be a simple tool for average players, tho, "Mesh" makes it sound complex and it doesn't roll well. Body Rigger might be better depending on your target. considering my example above, it could be marketed (so-called) as a companion to Body Slide, but I don't know your intention there.

Share this post


Link to post

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...