Navigation
API > API/Plugins > API/Plugins/MeshModelingToolsEditorOnlyExp > API/Plugins/MeshModelingToolsEditorOnlyExp/SkeletalMesh
References
| Module | MeshModelingToolsEditorOnlyExp |
| Header | /Engine/Plugins/Experimental/MeshModelingToolsetExp/Source/MeshModelingToolsEditorOnlyExp/Public/SkeletalMesh/SkinWeightsPaintTool.h |
| Include | #include "SkeletalMesh/SkinWeightsPaintTool.h" |
Syntax
struct FSkinToolWeights
Remarks
Intermediate storage of the weight maps for duration of tool
Variables
| Type | Name | Description | |
|---|---|---|---|
| TArray< VertexWeights > | CurrentWeights | ||
| FSkinToolDeformer | Deformer | Update deformation when vertex weights are modified | |
| TArray< bool > | IsBoneWeighted | Record which bones have any weight assigned to them | |
| TArray< float > | MaxFalloffPerVertexThisStroke | Record the current maximum amount of falloff applied to each vertex during the current stroke values range from 0-1, this allows brushes to sweep over the same vertex, and apply only the maximum amount of modification (add/replace/relax etc) that was encountered for the duration of the stroke. | |
| TArray< VertexWeights > | PreChangeWeights | Double-buffer of the entire weight matrix (stored sparsely for fast deformation) "Pre" is state of weights at stroke start "Current" is state of weights during stroke When stroke is over, PreChangeWeights are synchronized with CurrentWeights | |
| FName | Profile | Which skin profile is currently edited |
Functions
| Type | Name | Description | |
|---|---|---|---|
| void | AddNewInfluenceToVertex
(
const VertexIndex VertexID, |
||
| void | ApplyCurrentWeightsToMeshDescription
(
FMeshDescription* MeshDescription |
||
| void | ApplyEditsToCurrentWeights
(
const FMultiBoneWeightEdits& Edits |
||
| void | CreateWeightEditForVertex
(
const int32 BoneIndex, |
Applies an edit to a single vertex weight on a single bone, then normalizes the remaining weights while keeping the edited weight intact (ie, adapts OTHER influences to achieve normalization) | |
| void | FillWeightEdit
(
const int32 BoneIndex, |
||
| BoneIndex | GetParentBoneToWeightTo
(
BoneIndex ChildBone |
||
| float | GetWeightOfBoneOnVertex
(
const int32 BoneIndex, |
||
| void | InitializeSkinWeights
(
const USkeletalMeshComponent* SkeletalMeshComponent, |
Copy the initial weight values from the skeletal mesh | |
| void | RemoveInfluenceFromVertex
(
const VertexIndex VertexID, |
||
| float | SetCurrentFalloffAndGetMaxFalloffThisStroke
(
int32 VertexID, |
||
| void | SetWeightOfBoneOnVertex
(
const int32 BoneIndex, |
||
| void | Some weight editing operations are RELATIVE to existing weights before the change started (Multiply, Add etc) these "existing weights" are stored in the PreChangeWeights buffer PreChange and Current buffers must be synchronized after a transaction | ||
| void | UpdateIsBoneWeighted
(
BoneIndex BoneToUpdate |