2017-02-21 12 views
0

FBX SDKを2016にアップグレードしましたが、バグがありました。FbxAnimCurveのSDK 2016と2009のバージョンが異なる動作

古いコードは次のとおりです。

KFbxCamera * FBXPopulator::GetActiveCamera(KTime & a_Time) const { KFbxCameraSwitcher* cameraSwitcher = m_Scene->GetGlobalCameraSettings().GetCameraSwitcher(); if (cameraSwitcher) { KFCurve* curve = cameraSwitcher->CameraIndex.GetKFCurve(NULL, m_Scene->GetCurrentTakeName()); if (curve) { int32_t index = static_cast< int32_t >(curve->Evaluate(a_Time) - 1); return m_DeclaredCameras[ index ]->GetCamera(); } } return NULL; }

現在のコードは次のとおりです。

FbxCamera * FBXPopulator::GetActiveCamera(FbxTime & a_Time) const { FbxCameraSwitcher* cameraSwitcher = m_Scene->GlobalCameraSettings().GetCameraSwitcher(); if (cameraSwitcher) { //Is it right here? FbxAnimCurve* curve = cameraSwitcher->CameraIndex.GetCurve(m_Scene->GetCurrentAnimationStack()->GetMember()); if (curve) { int32_t index = static_cast< int32_t >(curve->Evaluate(a_Time) - 1); return m_DeclaredCameras[index]->GetCamera(); } } return NULL; }

それは間違ってますか?

2009年版ではindex == 0、2016年版ではindex == 1です。

提案がありますか? ありがとうございました!

答えて

0

答えは、新しいSDKでは一部のフィールドを正しく読み取れません。 FBX Converter 2009でfbxファイルを変換するだけです。 これは機能します。 しかし私は理由を知らない。

関連する問題