本文整理汇总了C++中USkeleton::Modify方法的典型用法代码示例。如果您正苦于以下问题:C++ USkeleton::Modify方法的具体用法?C++ USkeleton::Modify怎么用?C++ USkeleton::Modify使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类USkeleton
的用法示例。
在下文中一共展示了USkeleton::Modify方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ImportCurve
bool UnFbx::FFbxImporter::ImportCurveToAnimSequence(class UAnimSequence * TargetSequence, const FString& CurveName, const FbxAnimCurve* FbxCurve, int32 CurveFlags,const FbxTimeSpan AnimTimeSpan, const float ValueScale/*=1.f*/) const
{
if (TargetSequence && FbxCurve)
{
FName Name = *CurveName;
USkeleton* Skeleton = TargetSequence->GetSkeleton();
FSmartNameMapping* NameMapping = Skeleton->SmartNames.GetContainer(USkeleton::AnimCurveMappingName);
// Add or retrieve curve
USkeleton::AnimCurveUID Uid;
if (!NameMapping->Exists(Name))
{
// mark skeleton dirty
Skeleton->Modify();
}
NameMapping->AddOrFindName(Name, Uid);
FFloatCurve * CurveToImport = static_cast<FFloatCurve *>(TargetSequence->RawCurveData.GetCurveData(Uid, FRawCurveTracks::FloatType));
if(CurveToImport==NULL)
{
if(TargetSequence->RawCurveData.AddCurveData(Uid, CurveFlags))
{
CurveToImport = static_cast<FFloatCurve *> (TargetSequence->RawCurveData.GetCurveData(Uid, FRawCurveTracks::FloatType));
}
else
{
// this should not happen, we already checked before adding
ensureMsgf(0, TEXT("FBX Import: Critical error: no memory?"));
}
}
else
{
CurveToImport->FloatCurve.Reset();
}
return ImportCurve(FbxCurve, CurveToImport, AnimTimeSpan, ValueScale);
}
return false;
}