You signed in with another tab or window.Reload to refresh your session.You signed out in another tab or window.Reload to refresh your session.You switched accounts on another tab or window.Reload to refresh your session.Dismiss alert
Skinning tool prototype ment to create a faster and non-destructive weight-paintingworkflow.
Some of the functions will work with +25k meshes but it's not recommended to usethis tool on anything over 10k until improvements are made to the scripts. Backupyour work before running Burn The Witch and save your dictionary frequently. Someof the scripts will use the hierarchy created in the Outliner, for best results donot delete or reorder anything in 'btw_WorkSpace_grp' until the skinning processis over.
A bunch of the terminology used in this guide might not make a lot of sense withoutreading the "Concept" section in "Mesh Skinning Workspaces", although learning touse that part of the tool is not essential for using the Magic Maps maths and storage,the independent colour sets and influence windows or just storing Bind Joint Clusters.
How to run the script for the first time
Move the "BurnTheWitch" folder wherever you want to store it, open the folder inthe Windows File Explorer and copy its path.
Open "start.py" in a text editor and replace the PROJECT_PATH string (currently"C:/Users/Miruna/Documents/PythonProjects/BurnTheWitch") with the new path you'vecopied.
Run the modified "start.py" script in Maya's text editor, feel free to add it toyour shelf or make a runtime command for quicker access.
The Main Window
Dictionary path
This is there Burn The Witch stores all the data it creates in relation to that Maya scene, it will be saved in the same location as your .mb or .ma file.
Save
Save as often as possible, the external file does not update automatically. This will overwrite your current dictionary file. Keep in mind that if you've renamed your Maya scene the dictionary should be saved right after that, if the scene is closed without saving an empty dictionary file will be created next time you attempt to run the script. If that happened, look for the old dictionary file and rename it accordingly.
Refresh
Some functions will automatically update the main window but not all of them are at that stage yet. Magic maps won't be updated with newly created blendnodes and skinclusters unless it has been refreshed.
Toolkit
Buttons
+MshSknWks
Makes selected mesh into a spawn so Burn Groups and Utility Workshops can be added to it inside the Mesh Skinning Workspace.
+BndJntClstr
Creates a set for all of the selected joints that can be quickly selected for either regular or chop skinning, bind joints will be created from the originals so they can be reparented if the rig has to be modified at any point in the future. All the joints and the influenced meshes of a Bind Joint Cluster will be listed in the "Bind Joint Clusters" tab. The Burn Groups and Utility Workshops will need Bind Joint Clusters to function correctly, skinning meshes to jointchains that aren't stored that way will lead to unpredictable results.
+JntFromLoop
Creates a joint in the middle of the selected edgeflow and detaches the mesh at those edges, useful for creating a Chop Mesh (see the Mesh Skinning Workspace section) and a skeleton at the same time.
NameChopByJoint
If two objects are selected, the second one will be renamed to match the first. The '_geoChp' suffix should be kept where it is if this is done with the intention to fuse all geometry into a Chop Mesh later.
+MkeInfWin
Launches the Influence Window Builder for skinclusters that aren't inside the Mesh Skinning Workspace, if a window is saved it will appear in the "Homeless Influence Windows" frame.
+MkeChpClrSet
Will store the selected mesh into the "Homeless Chop Sets" frame so different groups of vertices can be quickly selected when painting skinweights or deformer weights outside the Mesh Skinning Workspace.
Homeless Influence Windows
Shows buttons that launch all homeless influence windows that have been saved after the Main Window has been refreshed.
Homeless Chop Sets
Shows each mesh that has been given a Homeless Chop Set with the following buttons:
Select
Selects the entire mesh.
+AddChpShdr
Adds a Chop Shader to the selected polygons.
SelByChopShader
Launches a window with all chop shaders that belong to that mesh ready to be selected.
Mesh Skinning Workspace
Concept
This is where everything comes together, think of this as a workshop whereyou can use a bunch of different techniques on multiple clones of the SpawnMesh and then merge all the different bits you are happy with at the end ratherthan having to skin perfectly one single mesh from start to finish and lose partsyou initially got right while attempting to change the ones that weren't working :)
Burn Groups
A Burn Group consists of a Burn Base Mesh that gets its information from a bunchof blend targets (Target Meshes) that can all be skinned in different ways to oneor more Bind Joint Clusters. The blend map weights on the Burn Base will act as amask that decides which Target Mesh will affect different regions. When you arehappy with the result, you can "burn" everything into one single mesh with onesingle skincluster that gets stored separately (so the Burn Group will not bedestroyed). If the Target Meshes are skinned to more than one Bind Joint Cluster,a new one that contains all the influences will be created for the Output orBurnout Mesh. Burn Base, Target and Burnout Meshes are always perfect copies oftheir Spawn.
Utility Workshops
Utility Workshops hold meshes with altered geometry that would not be a perfectmatch for the Spawn Mesh but can still be lifesavers in certain contexts.Skinweights can be copied to a mesh with the correct geometry afterwards.
Raw Meshes
Any piece of geometry inside an Utility Workshop's Outliner group is selectableas a Raw Mesh in the Utility Workshop's menu, it can be modified and thenlabeled as any other sort of utility mesh.
Chop Meshes
Chop Meshes are meshes that have all their vertices in the correct location,but have been separated and merged back together to create a bunch of ChopShaders that can be used to quickly select vertex sets and intersect themwhile skinning the mesh. If any Chop Shaders have joints that match theirname and those joints have been stored as a Bind Joint Cluster, all thevertices that belong to a Chop Shader can be skinned automatically with aweight value of 1 to their corresponding joints. (see Bind Joint Clusterssection)
Gulp Meshes
Gulp Meshes haven't been implemented yet but they are essentially versions ofthe spawn mesh that are more like an all-engulfing blob where detail is mentto be (for example hair or fur strands that are ment to deform like a single,bigger mass) and has all the gaps closed (so a character's hood or sleevesthat have manifold geometry would be a closed, more general shape instead).Primitives like a cilinder can act as a Gulp Mesh too.
Both Burn Groups and Utility Workshops can be added to either Mesh SkinningWorkspaces or to Target Meshes, although the Main Window might have to be refreshedfor the hierarchy to shop up correctly.
Weightpainting aids
Chop Colour Sets
A slightly less destructive way to bring in some of the functionality of ChopMeshes to a Burn Group without altering the geometry or the vertex order. Theycan be assigned by selecting polygons and clicking "+AddChpShdr" inside themenu of the relevant mesh.
Influence Windows
When skinning a mesh with a long list of influences that has to be constantlyscrolled through, especially when going back and forth between joints that arereally far away in the hierarchy or overlap too much to be easily selected fromthe viewport, navigating Maya's weightpainting tool can be unnecessarily timeconsuming. This function allows for building your own windows from which youcan select influences later, they can be grouped in rows or columns and youcan tag each setup. All influences get locked up automatically, with only thelast two joints that were clicked staying unlocked. It won't update Maya'sskinning menu automatically, but you're still painting on the correct influenceand the elbow room is worth it. Trust the process :)
Interface
Left - Hierarchy displaying all Spawn meshes with their Burn Groups and Utility Workshops ifany were added. All Target and Burnout Meshes are nested under their respectiveBurn Base Mesh, all Chop Meshes are nested under their Utility Workshops.
Upper Right - Actions that can be performed on the mesh you have selected in thehierarchy
Lower Right - Storage space for Influence Windows, Raw Meshes etc.
Available actions
>Grab(Spawn Mesh, Burn Base Mesh, Target Mesh, Burnout Mesh, Chop Mesh)
Selects the active mesh you've picked from the hierarchy and makes the restof the contents of that Mesh Skinning Workspace invisible. A bit buggy withUtility Workshops but should work fine with Burn Groups.
+AddBrnGrp(Spawn Mesh, Target Mesh)
Adds a Burn Base Mesh to the Mesh Skinning Workspace or the Target Mesh thatwas currently active in the menu.
+AddTgtMsh(Burn Base Mesh)
Adds a Target Mesh to the active Burn Base.
BURN(Burn Base Mesh)
Creates a Burnout Mesh that combines all Target Meshes of that Burn Groupaccording to the blend maps that have been painted on the Burn Base Mesh.
+AddUtlMsh(Spawn Mesh, Target Mesh)
Adds an Utility Workshop with a duplicate of the Spawn Mesh inside it. Ifapplied to a Mesh Skinning Workspace an Utility Base Mesh will also becreated, if applied to a Target Mesh then that mesh will act as a Base.
+ChopColorize(Utility Workshop)
If a mesh has been sliced into separately named bits ending in "_geoChp",selecting all of them in the Outliner and hitting this button will remergethe geometry with color selection sets assigned according to the slicedgeometry pieces and all their names. This will not automatically skin the meshto a skeleton.
CloneSkin(Target Mesh)
Clones a specific skincluster into the active Target Mesh. Nothing has tobe selected, a pop-up will ask for the skincluster node's name. If the meshesmatch perfectly it will copy using vertex values, otherwise it will use Maya'sCopy SkinWeights function, which might be slightly less precise depending onyour setup.
+AddChpShdr(Burn Base Mesh, Target Mesh)
Adds a new Chop Shader to the selected polygons.
SelByChopShader(Burn Base Mesh, Target Mesh, Chop Mesh)
Launches the "Select by Chop Shader" window (see "Weightpainting windows"for the interface)
+MkeInfWin(Target Mesh, Chop Mesh)
Only appears if the active mesh has been skinned, launches the "InfluenceBuilder" window (see "Weightpainting windows" for the interface)
+BlndPaint
Shortcut to the "Paint Blend Shape Weights Tool", click ">Grab" first orselect the mesh in the Viewport.
+SkinPaint
Shortcut to the "Paint Skin Weights Tool", click ">Grab" first orselect the mesh in the Viewport.
Weightpainting windows
Select by Chop Shader
Single select
Selects all vertices from the Chop Shader that has been clicked.
Add to selection
Adds all the vertices from the Chop Shader that has been clicked to theexisting selection.
Intersect
If two or more Chop Shaders are currently selected, this will deselectall the vertices that aren't included in all those shaders. It's ment asan easy way to select all the vertices on the edge between two Chop Shaders.Can get very slow on highpoly meshes.
Configure intersection data stash
Not operational yet, function ment to create string commands for all the possibleintersections between existing Chop Shaders inside that Chop Colour Set as a wayto get around the speed issue the "Intersect" button currently has.
Influence Window Builder
+AddInfs
Adds all the joints you have checked in the Influence Picker to thatrespective column.
+SaveSetup
Saves a ready to launch Influence Window with the selection layout youhave created and the name you typed inside the text field above.
Influence Window
Window with your saved selection layout. The "Paint Skin Weights Tool" has tobe activated for the window to work. The active influence is bright yellow andthe other unlocked influence is in a darker shade, all other influences shouldbe locked.
Magic Maps
Offers blend map and skinweight map storage independent from the Mesh SkinningWorkspace for all the blendshape and skincluster nodes that can be found in thescene. Simple maths can be done with the weight values for each vertex and thentransferred to other meshes if the geometry is identical. Will add a function thatcan store everything in batch in the future and make the scripts for assigningweight values faster when time allows, until then it might not be a good idea touse this function on models that exceed a 10k polycount.
Interface
Left - Hierarchy displaying all BlendShape and SkinCluster nodes in the scene withall their blend targets or influences. Select a target or influence to make it active.
Upper right - Maps library with all the maps you've saved previously for that targetor influence.
Lower right - "Map Maths" interface
OpenSlot
Opens that respective slot so a map can be loaded into it. Clicking a map from thelibrary will load it into that slot.
+/-/invert checkbox
Only check one box, this will not do anything until "=" is clicked:
+
Slot1 map vertex value + Slot2 map vertex value, will be clamped if it goes higherthan 1
-
Slot1 map vertex value - Slot2 map vertex value, will be clamped if it goes lowerthan 0
invert
1 - Slot1 vertex value
=
Creates new map according to the operation that was checked and loads it into athird slot, if the third slot is loaded text will appear stating the names of thecontributing maps and the operation that was used.
Stash
Will save the current map of the active influence or target in its Maps Library.The "Stash" button inside the Math Maps interface will save the last map that wascreated with the Map Maths tool instead.
MakeCrt
Overwrites the current map of the active influence or target. This is very slow inthe current version.
LoadToSlot
Loads the newly created map into whichever slot is currently open.
Bind Joint Clusters
Each Bind Joint Cluster has its own labeled section with:
Influenced meshes
List with every mesh that was skinned to this Bind Joint Cluster.
Joints list
Available actions
Select
Selects all joints that belong to the Bind Joint Cluster.
+BndToSelMesh
Binds the selected mesh to the Bind Joint Cluster using Maya's "Bind Skin"function.
+ChopBndToSelMesh
If a Chop Mesh is selected and joints from this Bind Joint Cluster are matchingits Chop Shaders, the mesh will be skinned so all verts belonging to a ChopShader will have a weight value of 1 coming from the respective influence.
About
Skinning tool prototype ment to create a faster and non-destructive weight-painting workflow.