// Fill out your copyright notice in the Description page of Project Settings. #include "Libraries/FASkinnedMeshComponentExtends.h" #include "Components/SkinnedMeshComponent.h" void UFASkinnedMeshComponentExtends::HideBoneByNameExplicitly(USkinnedMeshComponent* MeshComponent, FName BoneName, EPhysBodyOp PhysBodyOption) { // Find appropriate BoneIndex int32 BoneIndex = MeshComponent->GetBoneIndex(BoneName); if ( BoneIndex != INDEX_NONE ) { HideBoneExplicitly(MeshComponent, BoneIndex, PhysBodyOption); } } void UFASkinnedMeshComponentExtends::HideBoneExplicitly(USkinnedMeshComponent* MeshComponent, int32 BoneIndex, EPhysBodyOp PhysBodyOption) { TArray& EditableBoneVisibilityStates = MeshComponent->GetEditableBoneVisibilityStates(); if ((!MeshComponent->MasterPoseComponent.IsValid()) && BoneIndex < EditableBoneVisibilityStates.Num()) { checkSlow ( BoneIndex != INDEX_NONE ); EditableBoneVisibilityStates[ BoneIndex ] = BVS_ExplicitlyHidden; MeshComponent->bBoneVisibilityDirty = true; } }