Я хочу экспортировать / импортировать информацию о скелете из Maya, используя Fbx SDK.Я могу получить информацию о переводе / повороте / масштабировании из FbxNode
Но я не знаю, как получить информацию о блокировке из fbx SDK, информация о блокировке означает свободу оси перевода или свободу степени вращения.
Я обнаружил, что класс FbxConstraint имеет атрибут блокировки, но я не знаю, как получить к нему доступ в FbxNode
FbxSkeleton* lSkeleton = (FbxSkeleton*)FNode->GetNodeAttribute();
auto* bone = new ZBoneMSKel();
FbxDouble3 translation = FNode->LclTranslation.Get();
bone->set_translate(Zt_Vector3D{ translation[0],translation[1],translation[2] });
FbxDouble3 joint_orientation = FNode->PreRotation.Get();
bone->set_joint_orient(Zt_Vector3D{ degree2Radian(joint_orientation[0]),degree2Radian(joint_orientation[1]),degree2Radian(joint_orientation[2]) });
FbxDouble3 rotation = FNode->LclRotation.Get();
bone->set_rotate(Zt_Vector3D{ degree2Radian(rotation[0]),degree2Radian(rotation[1]),degree2Radian(rotation[2]) });
FbxDouble3 rotation_axis = FNode->PostRotation.Get();
bone->set_axis_rotate(Zt_Vector3D{ degree2Radian(rotation_axis[0]),degree2Radian(rotation_axis[1]),degree2Radian(rotation_axis[2]) });
FbxDouble3 scaling = FNode->LclScaling.Get();
bone->set_scaling(Zt_Vector3D{ scaling[0],scaling[1],scaling[2] });
/// how to access the lock info ?
bone->set_x_trans_limit(FNode->TranslationMinX, FNode->TranslationMaxX);
bone->set_y_trans_limit(FNode->TranslationMinY, FNode->TranslationMaxY);
bone->set_z_trans_limit(FNode->TranslationMinZ, FNode->TranslationMaxZ);
bone->set_x_rotate_limit(FNode->RotationMinX, FNode->RotationMaxX);
bone->set_y_rotate_limit(FNode->RotationMinY, FNode->RotationMaxY);
bone->set_z_rotate_limit(FNode->RotationMinZ, FNode->RotationMaxZ);