2017-02-21 11 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; }

Является ли это так?

Я получил индекс == 0 в версии 2009 года, в то время как индекс == 1 в версии 2016 года.

Любые предложения? Спасибо!

ответ

0

Ответ: новый SDK не может правильно прочитать поле. Я просто конвертирую файлы fbx в FBX Converter 2009. Он работает. Но я не знаю почему.