Module |
|
Header |
/Engine/Source/Runtime/Engine/Classes/Engine/SkeletalMesh.h |
Include |
#include "Engine/SkeletalMesh.h" |
class USkeletalMesh :
public UStreamableRenderAsset,
public IInterface_CollisionDataProvider,
public IInterface_AssetUserData,
public INodeMappingProviderInterface
SkeletalMesh is geometry bound to a hierarchical skeleton of bones which can be animated for the purpose of deforming the mesh. Skeletal Meshes are built up of two parts; a set of polygons composed to make up the surface of the mesh, and a hierarchical skeleton which can be used to animate the polygons. The 3D models, rigging, and animations are created in an external modeling and animation application (3DSMax, Maya, Softimage, etc).
Name | Description | ||
---|---|---|---|
|
AssetImportData |
Importing data and options used for this mesh |
|
|
AssetUserData |
Array of user data stored with the asset |
|
|
uint8: 1 |
bEnablePerPolyCollision |
Uses skinned data for collision data. |
|
uint8: 1 |
bHasActiveClothingAssets |
Caching optimization to avoid recalculating in non-editor builds |
|
uint8: 1 |
bHasBeenSimplified |
True if this mesh has ever been simplified with Simplygon. |
|
bHasCustomDefaultEditorCamera |
Should we use a custom camera transform when viewing this mesh in the tools |
|
|
uint8: 1 |
bHasVertexColors |
Whether or not the mesh has vertex colors |
|
UBodySetup *... |
BodySetup |
Physics data for the per poly collision case. In 99% of cases you will not need this and are better off using simple ragdoll collision (physics asset) |
|
uint32: 1 |
bRequiresLODHysteresisConversion |
If true on post load we need to calculate resolution independent LOD hysteresis from the loaded LOD hysteresis. |
|
uint32: 1 |
bRequiresLODScreenSizeConversion |
If true on post load we need to calculate resolution independent Display Factors from the loaded LOD screen sizes. |
|
bSupportLODStreaming |
Whether we can stream the LODs of this mesh |
|
|
DefaultEditorCameraLocation |
Default camera location |
|
|
DefaultEditorCameraLookAt |
Default camera look at |
|
|
float |
DefaultEditorCameraOrthoZoom |
Default camera ortho zoom |
|
DefaultEditorCameraRotation |
Default camera rotation |
|
|
DisableBelowMinLodStripping |
When true all lods below minlod will still be cooked |
|
|
float |
FloorOffset |
Height offset for the floor mesh in the editor |
|
LODSettings |
||
|
Materials |
List of materials applied to this mesh. |
|
|
MaxNumOptionalLODs |
Maximum number of LODs below min LOD level that can be saved to optional pak (currently, need to be either 0 or > num of LODs below MinLod) |
|
|
MaxNumStreamedLODs |
Maximum number of LODs that can be streamed |
|
|
MeshClothingAssets |
Clothing assets imported to this mesh. |
|
|
MinLod |
Minimum LOD to render. |
|
|
MorphTargetIndexMap |
Map of morph target name to index into USkeletalMesh::MorphTargets |
|
|
MorphTargets |
||
|
NegativeBoundsExtension |
Bound extension values in addition to imported bound in the negative direction of XYZ, positive value increases bound size and negative value decreases bound size. |
|
|
NodeMappingData |
Mapping data that is saved |
|
|
OnMeshChanged |
||
|
TRefCountPtr< F... |
PendingUpdate |
|
|
UPhysicsAsset &... |
PhysicsAsset |
Physics and collision information used for this USkeletalMesh, set up in Physics Asset Editor. |
|
PositiveBoundsExtension |
The properties below are protected to force the use of the Set* methods for this data in code so we can keep the extended bounds up to date after changing the data. |
|
|
TSubclassOf< UA... |
PostProcessAnimBlueprint |
Animation Blueprint class to run as a post process for this mesh. |
|
PreviewAttachedAssetContainer |
Attached assets component for this mesh |
|
|
RefBasesInvMatrix |
Reference skeleton precomputed bases. |
|
|
RefSkeleton |
New Reference skeleton type |
|
|
ReleaseResourcesFence |
A fence which is used to keep track of the rendering thread releasing the static mesh resources. |
|
|
RetargetBasePose |
This is buffer that saves pose that is used by retargeting |
|
|
SamplingInfo |
Defines if and how to generate a set of precomputed data allowing targeted and fast sampling of this mesh on the CPU. |
|
|
UPhysicsAsset &... |
ShadowPhysicsAsset |
Physics asset whose shapes will be used for shadowing when components have bCastCharacterCapsuleDirectShadow or bCastCharacterCapsuleIndirectShadow enabled. |
|
Skeleton |
Skeleton of this skeletal mesh |
|
|
TEnumAsByte< EA... |
SkelMirrorAxis |
|
|
TEnumAsByte< EA... |
SkelMirrorFlipAxis |
|
|
TArray< struct ... |
SkelMirrorTable |
List of bones that should be mirrored. |
|
SkinWeightProfiles |
Set of skin weight profiles associated with this mesh |
|
|
UThumbnailInfo ... |
ThumbnailInfo |
Information for thumbnail rendering |
|
UseLegacyMeshDerivedDataKey |
Transient data use when we postload an old asset to use legacy ddc key, it is turn off so if the user change the asset it go back to the latest ddc code |
|
|
VertexColorGuid |
The guid to compute the ddc key, it must be dirty when we change the vertex color. |
Name | Description | |
---|---|---|
|
USkeletalMesh ( |
|
|
USkeletalMesh ( |
This is declared so we can use TUniquePtr |
Name | Description | |
---|---|---|
|
~USkeletalMesh() |
Name | Description | ||
---|---|---|---|
|
AddBoneToReductionSetting |
||
|
AddBoneToReductionSetting |
||
|
AddClothingAsset ( |
Adds an asset to this mesh with validation and event broadcast |
|
|
AddLODInfo ( |
Add New LOD info entry with entry This is used by import code, where they want to override this |
|
|
FSkeletalMes... |
AddLODInfo() |
Add New LOD info entry to LODInfo array |
|
AddSkinWeightProfile ( |
||
|
AllocateResourceForRendering() |
Allocate a new FSkeletalMeshRenderData and assign to SkeletalMeshRenderData member. |
|
|
Build() |
If derive data cache key do not match, regenerate derived data and re-create any render state based on that. |
|
|
BuildPhysicsData() |
Trigger a physics build to ensure per poly collision is created |
|
|
CalculateExtendedBounds() |
Calculate the extended bounds based on the imported bounds and the extension values |
|
|
CalculateInvRefMatrices() |
Setup-only routines - not concerned with the instance. |
|
|
CalculateRequiredBones ( |
Calculate the required bones for a Skeletal Mesh LOD, including possible extra influences |
|
|
CancelAllPendingStreamingActions() |
Cancels any pending static mesh streaming actions if possible. |
|
|
ComputeActiveClothingAssets() |
Compute whether or not any bound clothing assets exist for this mesh |
|
|
ConvertLegacyLODScreenSize() |
Convert legacy screen size (based on fixed resolution) into screen size (diameter in screen units) |
|
|
CopyImportedData ( |
Static function that copy the LOD import data from a source skeletal mesh to a destination skeletal mesh |
|
|
CopyMirrorTableFrom ( |
Utility for copying and converting a mirroring table from another USkeletalMesh. |
|
|
CreateBodySetup() |
||
|
DebugVerifySkeletalMeshLOD() |
Verify SkeletalMeshLOD is set up correctly |
|
|
ExportMirrorTable ( |
Utility for copying and converting a mirroring table from another SkeletalMesh. |
|
|
UMorphTarget... |
FindMorphTarget ( |
Find a named MorphTarget from the MorphSets array in the SkinnedMeshComponent. |
|
UMorphTarget... |
FindMorphTargetAndIndex |
Find a named MorphTarget from the MorphSets array in the SkinnedMeshComponent. |
|
USkeletalMes... |
FindSocket ( |
Find a socket object in this SkeletalMesh by name. |
|
USkeletalMes... |
FindSocketAndIndex |
Find a socket object in this SkeletalMesh by name. |
|
USkeletalMes... |
FindSocketInfo ( |
Find a socket object and asscociated info in this SkeletalMesh by name. |
|
FlushRenderState() |
Flush current render state |
|
|
ForceBulkDataResident ( |
||
|
GetActiveSocketList() |
Returns the "active" socket list - all sockets from this mesh plus all non-duplicates from the skeleton Const ref return value as this cannot be modified externally |
|
|
const UAnimS... |
GetBakePose ( |
Get BakePose for the given LOD |
|
UBodySetup &... |
GetBodySetup() |
|
|
FBoxSphereBo... |
GetBounds() |
Get the extended bounds of this mesh (imported bounds plus bounds extension) |
|
UClothingAss... |
GetClothingAsset ( |
Get a clothing asset from its associated GUID (returns nullptr if no match is found) |
|
GetClothingAssetIndex ( |
Get the index in the clothing asset array for a given asset GUID (INDEX_NONE if there is no match) |
|
|
GetClothingAssetIndex ( |
Get the index in the clothing asset array for a given asset (INDEX_NONE if InAsset isn't in the array) |
|
|
GetClothingAssetsInUse ( |
Populates OutClothingAssets with all clothing assets that are mapped to sections in the mesh. |
|
|
GetComposedRefPoseMatrix ( |
Get the component orientation of a bone or socket. Transforms by parent bones. |
|
|
GetComposedRefPoseMatrix ( |
Get the component orientation of a bone or socket. Transforms by parent bones. |
|
|
const USkele... |
GetDefaultLODSetting() |
Get Default LOD Setting of this mesh |
|
FBoxSphereBo... |
GetImportedBounds() |
Get the original imported bounds of the skel mesh |
|
FSkeletalMes... |
GetImportedModel() |
End USkeletalMeshEditorData public skeletalmesh API. |
|
GetLODImportedDataVersions ( |
Get the Versions of the geo and skinning data. |
|
|
FSkeletalMes... |
GetLODInfo ( |
Get LODInfo of the given index non-const |
|
const FSkele... |
GetLODInfo ( |
Get LODInfo of the given index const |
|
GetLODInfoArray() |
Returns whole array of LODInfo |
|
|
GetLODNum() |
Returns total number of LOD |
|
|
GetMeshOnlySocketList() |
Returns the mesh only socket list - this ignores any sockets in the skeleton Return value is a non-const reference so the socket list can be changed |
|
|
const TArray... |
GetMeshOnlySocketList() |
Const version Returns the mesh only socket list - this ignores any sockets in the skeleton Return value is a non-const reference so the socket list can be changed |
|
UNodeMapping... |
GetNodeMappingContainer ( |
|
|
GetNumSkinWeightProfiles() |
||
|
FOnMeshChang... |
GetOnMeshChanged() |
|
|
GetPostEditChangeStackCounter() |
||
|
FSkeletalMes... |
GetReductionSettings ( |
Get a copy of the reduction settings for a specified LOD index. |
|
GetRefPoseMatrix ( |
||
|
FSkeletalMes... |
GetResourceForRendering() |
Get the data to use for rendering. |
|
const FSkele... |
GetSamplingInfo() |
|
|
const UCloth... |
GetSectionClothingAsset |
Given an LOD and section index, retrieve a clothing asset bound to that section. |
|
UClothingAss... |
GetSectionClothingAsset |
Given an LOD and section index, retrieve a clothing asset bound to that section. |
|
GetSkinWeightProfiles() |
||
|
const TArray... |
GetSkinWeightProfiles() |
|
|
USkeletalMes... |
GetSocketByIndex ( |
Returns a socket by index. |
|
GetSourceFileLabelFromIndex ( |
||
|
const FMeshU... |
GetUVChannelData ( |
Returns the UV channel data for a given material index. |
|
GetVertexBufferFlags() |
Computes flags for building vertex buffers. |
|
|
GetVertexColorData ( |
Returns vertex color data by position. |
|
|
HasActiveClothingAssets() |
Get whether or not any bound clothing assets exist for this mesh |
|
|
HasActiveClothingAssetsForLOD ( |
Get whether or not any bound clothing assets exist for this mesh's given LOD |
|
|
HasCustomActorFactory() |
This is a bit hacky. |
|
|
HasCustomActorReimportFactory() |
This is a bit hacky. |
|
|
ImportMirrorTable ( |
Utility for copying and converting a mirroring table from another SkeletalMesh. |
|
|
InitBoneMirrorInfo() |
Allocate and initialise bone mirroring table for this skeletal mesh. |
|
|
InitMorphTargets() |
Initialize MorphSets look up table : MorphTargetIndexMap |
|
|
InitMorphTargetsAndRebuildRenderData() |
Initialize morph targets and rebuild the render data |
|
|
InitResources() |
Initialize the mesh's render resources. |
|
|
InvalidateDeriveDataCacheGUID() |
Force the creation of a new GUID use to build the derive data cache key. |
|
|
IsLODImportedDataBuildAvailable ( |
Return true if the imported data has all the necessary data to use the skeletalmesh builder. |
|
|
IsLODImportedDataEmpty ( |
Return true if the imported data is present. |
|
|
IsReductionActive ( |
Return true if the reduction settings are setup to reduce a LOD |
|
|
IsSectionUsingCloth |
Checks whether the provided section is using APEX cloth. |
|
|
IsValidLODIndex ( |
Return true if given index's LOD is valid |
|
|
K2_GetAllMorphTargetNames() |
Returns the list of all morph targets of this skeletal mesh |
|
|
LinkStreaming() |
||
|
LoadLODImportedData ( |
USkeletalMeshEditorData public skeletalmesh API We do not want skeletal mesh client to use directly the asset(function GetMeshEditorData) We have to maintain some sync between the LODModels and the asset to avoid loading the asset when building the DDC key. |
|
|
MirrorTableIsGood ( |
Utility for checking that the bone mirroring table of this mesh is good. |
|
|
NeedCPUData ( |
True if this mesh LOD needs to keep it's data on CPU. |
|
|
NumSockets() |
Returns the number of sockets available. Both on this mesh and it's skeleton. |
|
|
FOnPostMeshC... |
OnPostMeshCached() |
Get multicast delegate broadcast post to mesh data caching |
|
ReallocateRetargetBasePose() |
Recalculate Retarget Base Pose BoneTransform |
|
|
RebuildSocketMap() |
Called to rebuild an out-of-date or invalid socket map |
|
|
RegisterMorphTarget ( |
If name conflicts, it will overwrite the reference |
|
|
FDelegateHan... |
RegisterOnClothingChange ( |
Delegates for asset editor events |
|
ReleaseCPUResources() |
Release CPU access version of buffer |
|
|
ReleaseResources() |
Releases the mesh's render resources. |
|
|
ReleaseSkinWeightProfileResources() |
Releases all allocated Skin Weight Profile resources, assumes none are currently in use |
|
|
RemoveClothingAsset |
If the given section of the specified LOD has a clothing asset, unbind it's data and remove it from the asset array |
|
|
RemoveLegacyClothingSections() |
Clothing used to require the original section to be hidden and duplicated to a new rendered section. |
|
|
RemoveLODInfo ( |
Remove LOD info of given index |
|
|
RemoveMeshSection |
Removes a specified section from the skeletal mesh, this is a destructive action |
|
|
ReserveLODImportData ( |
Allocate the space we need. Use this before calling this API in multithreaded. |
|
|
ResetLODInfo() |
Reset whole entry |
|
|
SaveLODImportedData ( |
Fill the asset LOD entry with the InMesh. |
|
|
SetImportedBounds ( |
Set the original imported bounds of the skel mesh, will recalculate extended bounds |
|
|
SetLODImportedDataVersions ( |
Set the Versions of the geo and skinning data. |
|
|
SetLODSettings ( |
||
|
SetNegativeBoundsExtension ( |
Set bound extension values in the negative direction of XYZ, positive value increases bound size |
|
|
SetPositiveBoundsExtension ( |
Set bound extension values in the positive direction of XYZ, positive value increases bound size |
|
|
SetPostEditChangeStackCounter ( |
||
|
SetSamplingInfo ( |
||
|
StackPostEditChange() |
This function will increment the PostEditChange stack counter. |
|
|
UnlinkStreaming() |
||
|
UnregisterAllMorphTarget() |
||
|
UnregisterMorphTarget ( |
||
|
UnregisterOnClothingChange ( |
||
|
UnStackPostEditChange() |
This function will decrement the stack counter. |
|
|
UpdateGenerateUpToData() |
||
|
UpdateUVChannelData ( |
Update the material UV channel data used by the texture streamer. |
|
|
UpgradeOldClothingAssets() |
Take clothing assets that were imported using APEX files before we moved away from the APEX simulation framework and upgrade them to UE4 UClothingAssets. |
|
|
ValidateBoundsExtension() |
Alters the bounds extension values to fit correctly into the current bounds (so negative values never extend the bounds etc.) |
|
|
ValidatePreviewAttachedObjects() |
Makes sure all attached objects are valid and removes any that aren't. |
Name | Description | ||
---|---|---|---|
|
CalcCumulativeLODSize ( |
||
|
CalcNumOptionalMips() |
||
|
CancelPendingMipChangeRequest() |
Tries to cancel a pending LOD change request. |
|
|
DoesMipDataExist ( |
||
|
GetLODGroupForStreaming() |
Get an integer representation of the LOD group |
|
|
GetMipDataFilename |
||
|
GetNumMipsForStreaming() |
Get the total number of LODs including non-streamable and optional LODs |
|
|
GetNumNonStreamingMips() |
Returns the number of LODs in this asset that are not able to be streamed |
|
|
GetNumRequestedMips() |
When the asset is being updated from StreamIn() or StreamOut(), returns the number of LODs requested |
|
|
GetNumResidentMips() |
The number of LODs currently in memory |
|
|
HasPendingUpdate() |
||
|
IsPendingUpdateLocked() |
||
|
IsReadyForStreaming() |
||
|
StreamIn |
Loads mips from disk to memory. Only usable if the asset is streamable. |
|
|
StreamOut ( |
Unload some mips from memory. Only usable if the asset is streamable. |
|
|
UpdateStreamingStatus ( |
Updates the streaming status of the asset and performs finalization when appropriate. |
Name | Description | ||
---|---|---|---|
|
BeginDestroy() |
Called before destroying the object. |
|
|
GetAssetRegistryTagMetadata ( |
Gathers a collection of asset registry tag metadata |
|
|
GetAssetRegistryTags ( |
Gathers a list of asset registry searchable tags which are name/value pairs with some type information This only needs to be implemented for asset objects |
|
|
GetDesc() |
Returns a one line description of an object for viewing in the thumbnail view of the generic browser |
|
|
GetDetailedInfoInternal() |
This will return detail info about this specific object. |
|
|
GetPreloadDependencies |
Called during cooking. |
|
|
GetResourceSizeEx ( |
Get the size of the object/resource for use in memory tools or to display to artists/LDs in the Editor This is the extended version which separates up the used memory into different memory regions (the actual definition of which may be platform specific). |
|
|
IsReadyForFinishDestroy() |
Called to check if the object is ready for FinishDestroy. |
|
|
PostDuplicate ( |
Called after duplication & serialization and before PostLoad. |
|
|
PostEditChangeProperty ( |
Called when a property on this object has been modified externally |
|
|
PostEditUndo() |
Called after applying a transaction to the object. |
|
|
PostInitProperties() |
Called after the C++ constructor and after the properties have been initialized, including those loaded from config. |
|
|
PostLoad() |
Do any object-specific cleanup required immediately after loading an object. |
|
|
PostRename |
Called at the end of Rename(), but only if the rename was actually carried out |
|
|
PreSave ( |
Presave function. |
|
|
Serialize ( |
Handles reading, writing, and reference collecting using FArchive. |
Name | Description | ||
---|---|---|---|
|
ContainsPhysicsTriMeshData ( |
Interface for checking if the implementing objects contains triangle mesh collision data |
|
|
GetPhysicsTriMeshData ( |
Interface for retrieving triangle mesh collision data from the implementing object |
|
|
WantsNegXTriMesh() |
Do we want to create a negative version of this mesh |
Name | Description | ||
---|---|---|---|
|
AddAssetUserData ( |
||
|
const TArray... |
GetAssetUserDataArray() |
|
|
UAssetUserDa... |
GetAssetUserDataOfClass ( |
|
|
RemoveUserDataOfClass ( |
Name |
Description |
---|---|
FOnMeshChanged |
Notification when anything changed |
Name | Description | ||
---|---|---|---|
|
uint8: 1 |
bUseFullPrecisionUVs_DEPRECATED |
If true, use 32 bit UVs. If false, use 16 bit UVs to save memory |
|
uint8: 1 |
bUseHighPrecisionTangentBasis_DEPRECATED |
If true, tangents will be stored at 16 bit vs 8 bit precision |
|
ClothingAssets_DEPRECATED |
Legacy clothing asset data, will be converted to new assets after loading |
|
|
SourceFilePath_DEPRECATED |
Path to the resource used to construct this skeletal mesh |
|
|
SourceFileTimestamp_DEPRECATED |
Date/Time-stamp of the file from the last import |