diff --git a/AssetStudioFBXNative/api.cpp b/AssetStudioFBXNative/api.cpp index cf4a856..9d24976 100644 --- a/AssetStudioFBXNative/api.cpp +++ b/AssetStudioFBXNative/api.cpp @@ -941,22 +941,22 @@ AS_API(int32_t) AsFbxAnimGetCurrentBlendShapeChannelCount(AsFbxAnimContext* pAni return 0; } - auto lGeometry = dynamic_cast(pNode->GetNodeAttribute()); - pAnimContext->lGeometry = lGeometry; + auto pMesh = pNode->GetMesh(); + pAnimContext->pMesh = pMesh; - if (lGeometry == nullptr) + if (pMesh == nullptr) { return 0; } - auto blendShapeDeformerCount = lGeometry->GetDeformerCount(FbxDeformer::eBlendShape); + auto blendShapeDeformerCount = pMesh->GetDeformerCount(FbxDeformer::eBlendShape); if (blendShapeDeformerCount <= 0) { return 0; } - auto lBlendShape = dynamic_cast(lGeometry->GetDeformer(0, FbxDeformer::eBlendShape)); + auto lBlendShape = (FbxBlendShape*)pMesh->GetDeformer(0, FbxDeformer::eBlendShape); pAnimContext->lBlendShape = lBlendShape; if (lBlendShape == nullptr) @@ -991,12 +991,12 @@ AS_API(bool32_t) AsFbxAnimIsBlendShapeChannelMatch(AsFbxAnimContext* pAnimContex AS_API(void) AsFbxAnimBeginBlendShapeAnimCurve(AsFbxAnimContext* pAnimContext, int32_t channelIndex) { - if (pAnimContext == nullptr || pAnimContext->lGeometry == nullptr || pAnimContext->lAnimLayer == nullptr) + if (pAnimContext == nullptr || pAnimContext->pMesh == nullptr || pAnimContext->lAnimLayer == nullptr) { return; } - pAnimContext->lAnimCurve = pAnimContext->lGeometry->GetShapeChannel(0, channelIndex, pAnimContext->lAnimLayer, true); + pAnimContext->lAnimCurve = pAnimContext->pMesh->GetShapeChannel(0, channelIndex, pAnimContext->lAnimLayer, true); pAnimContext->lAnimCurve->KeyModifyBegin(); } diff --git a/AssetStudioFBXNative/asfbx_anim_context.cpp b/AssetStudioFBXNative/asfbx_anim_context.cpp index a425178..c66b4ba 100644 --- a/AssetStudioFBXNative/asfbx_anim_context.cpp +++ b/AssetStudioFBXNative/asfbx_anim_context.cpp @@ -21,7 +21,7 @@ AsFbxAnimContext::AsFbxAnimContext(bool32_t eulerFilter) lCurveTY = nullptr; lCurveTZ = nullptr; - lGeometry = nullptr; + pMesh = nullptr; lBlendShape = nullptr; lAnimCurve = nullptr; } diff --git a/AssetStudioFBXNative/asfbx_anim_context.h b/AssetStudioFBXNative/asfbx_anim_context.h index 94241db..cb1e3b3 100644 --- a/AssetStudioFBXNative/asfbx_anim_context.h +++ b/AssetStudioFBXNative/asfbx_anim_context.h @@ -22,7 +22,7 @@ struct AsFbxAnimContext FbxAnimCurve* lCurveTY; FbxAnimCurve* lCurveTZ; - FbxGeometry* lGeometry; + FbxMesh* pMesh; FbxBlendShape* lBlendShape; FbxAnimCurve* lAnimCurve;