bForceFrontXAxis
bForceFrontXAxis
#Overview
name: bForceFrontXAxis
The value of this variable can be defined or overridden in .ini config files. 3
.ini config files referencing this setting variable.
It is referenced in 64
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of bForceFrontXAxis is to control the axis orientation when importing FBX files into Unreal Engine. Specifically:
-
It is used in the FBX import process to determine whether to force the front axis to align with the X-axis instead of the default -Y axis.
-
This setting is part of the FBX import options and affects the Interchange/FBX import system, which is responsible for importing various asset types like static meshes, skeletal meshes, and animations from FBX files.
-
The value is typically set through import UI options or programmatically when performing FBX imports.
-
It interacts with other import settings like bConvertScene and bConvertSceneUnit to determine the final orientation and scale of imported assets.
-
Developers should be aware that changing this option will affect the orientation of imported assets, which may require adjustments to existing content or import workflows.
-
Best practices include:
- Maintaining consistency in import settings across a project
- Documenting the chosen import settings for team reference
- Testing imports with different settings to ensure desired results
- Considering the source application’s coordinate system when deciding whether to use this option
-
This setting is particularly important when dealing with assets from different 3D modeling software that may use different coordinate systems by default.
-
It’s used in both the import and export processes, ensuring consistency when round-tripping assets between Unreal Engine and external 3D applications.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:71, section: [/Script/UnrealEd.FbxExportOption]
- INI Section:
/Script/UnrealEd.FbxExportOption
- Raw value:
false
- Is Array:
False
Location: <Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:642, section: [/Script/UnrealEd.FbxAssetImportData]
- INI Section:
/Script/UnrealEd.FbxAssetImportData
- Raw value:
False
- Is Array:
False
Location: <Workspace>/Engine/Plugins/Interchange/Runtime/Config/BaseInterchange.ini:68, section: [/Script/InterchangeImport.InterchangeFbxTranslatorProjectSettings]
- INI Section:
/Script/InterchangeImport.InterchangeFbxTranslatorProjectSettings
- Raw value:
False
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Plugins/Animation/ControlRig/Source/ControlRigEditor/Private/ControlRigDrawingDetails.cpp:133
Scope (from outer to inner):
file
function void FControlRigDrawContainerDetails::ImportCurvesFromFBX
Source code excerpt:
UnFbx::FBXImportOptions::ResetOptions(ImportOptions);
ImportOptions->bConvertScene = false;
ImportOptions->bForceFrontXAxis = false;
ImportOptions->bConvertSceneUnit = false;
const FString FileExtension = FPaths::GetExtension(InFilePath);
if (!Importer->ImportFromFile(*InFilePath, FileExtension, true))
{
Importer->ReleaseScene();
#Loc: <Workspace>/Engine/Plugins/Interchange/Editor/Source/InterchangeEditor/Private/InterchangeFbxAssetImportDataConverter.cpp:42
Scope (from outer to inner):
file
namespace UE::Interchange::Private
function void FillFbxAssetImportData
Source code excerpt:
AssetImportData->bConvertScene = InterchangeFbxTranslatorSettings->bConvertScene;
AssetImportData->bConvertSceneUnit = InterchangeFbxTranslatorSettings->bConvertSceneUnit;
AssetImportData->bForceFrontXAxis = InterchangeFbxTranslatorSettings->bForceFrontXAxis;
}
else if(UInterchangeFbxTranslatorSettings* InterchangeFbxTranslatorSettingsCDO = UInterchangeFbxTranslatorSettings::StaticClass()->GetDefaultObject<UInterchangeFbxTranslatorSettings>())
{
AssetImportData->bConvertScene = InterchangeFbxTranslatorSettingsCDO->bConvertScene;
AssetImportData->bConvertSceneUnit = InterchangeFbxTranslatorSettingsCDO->bConvertSceneUnit;
AssetImportData->bForceFrontXAxis = InterchangeFbxTranslatorSettingsCDO->bForceFrontXAxis;
}
else
{
AssetImportData->bConvertScene = true;
AssetImportData->bConvertSceneUnit = true;
AssetImportData->bForceFrontXAxis = false;
}
AssetImportData->bImportAsScene = false;
AssetImportData->ImportRotation = GenericAssetPipeline->ImportOffsetRotation;
AssetImportData->ImportTranslation = GenericAssetPipeline->ImportOffsetTranslation;
AssetImportData->ImportUniformScale = GenericAssetPipeline->ImportOffsetUniformScale;
}
#Loc: <Workspace>/Engine/Plugins/Interchange/Editor/Source/InterchangeEditor/Private/InterchangeFbxAssetImportDataConverter.cpp:543
Scope (from outer to inner):
file
namespace UE::Interchange::Private
function UAssetImportData* ConvertToInterchange
Source code excerpt:
InterchangeFbxTranslatorSettings->ClearInternalFlags(EInternalObjectFlags::Async);
InterchangeFbxTranslatorSettings->bConvertScene = FbxAssetImportData->bConvertScene;
InterchangeFbxTranslatorSettings->bForceFrontXAxis = FbxAssetImportData->bForceFrontXAxis;
InterchangeFbxTranslatorSettings->bConvertSceneUnit = FbxAssetImportData->bConvertSceneUnit;
DestinationData->SetTranslatorSettings(InterchangeFbxTranslatorSettings);
if (const UFbxStaticMeshImportData* LegacyStaticMeshImportData = Cast<UFbxStaticMeshImportData>(FbxAssetImportData))
{
UInterchangeStaticMeshFactoryNode* MeshNode = NewObject<UInterchangeStaticMeshFactoryNode>(DestinationContainer);
#Loc: <Workspace>/Engine/Plugins/Interchange/Editor/Source/InterchangeEditor/Private/InterchangeFbxAssetImportDataConverter.cpp:613
Scope (from outer to inner):
file
namespace UE::Interchange::Private
function UAssetImportData* ConvertToInterchange
lambda-function
Source code excerpt:
InterchangeFbxTranslatorSettings->ClearInternalFlags(EInternalObjectFlags::Async);
InterchangeFbxTranslatorSettings->bConvertScene = FbxAssetImportData->bConvertScene;
InterchangeFbxTranslatorSettings->bForceFrontXAxis = FbxAssetImportData->bForceFrontXAxis;
InterchangeFbxTranslatorSettings->bConvertSceneUnit = FbxAssetImportData->bConvertSceneUnit;
DestinationData->SetTranslatorSettings(InterchangeFbxTranslatorSettings);
};
//General Options
GenericAssetPipeline->bUseSourceNameForAsset = FbxImportUI->bOverrideFullName;
#Loc: <Workspace>/Engine/Plugins/Interchange/Runtime/Source/Dispatcher/Private/InterchangeDispatcherTask.cpp:82
Scope (from outer to inner):
file
namespace UE
namespace Interchange
function bool FJsonLoadSourceCmd::FromJson
Source code excerpt:
return false;
}
if (!((*ActionDataObject)->TryGetBoolField(GetDoesForceFrontXAxisJsonKey(), bForceFrontXAxis)))
{
return false;
}
if (!((*ActionDataObject)->TryGetBoolField(GetDoesConvertSceneUnitJsonKey(), bConvertSceneUnit)))
{
return false;
#Loc: <Workspace>/Engine/Plugins/Interchange/Runtime/Source/Dispatcher/Public/InterchangeDispatcherTask.h:99
Scope (from outer to inner):
file
namespace UE
namespace Interchange
class class FJsonLoadSourceCmd : public IJsonCmdBase
function FJsonLoadSourceCmd
Source code excerpt:
, SourceFilename(InSourceFilename)
, bConvertScene(InbConvertScene)
, bForceFrontXAxis(InbForceFrontXAxis)
, bConvertSceneUnit(InbConvertSceneUnit)
{
bIsDataInitialize = true;
}
virtual FString GetAction() const override
#Loc: <Workspace>/Engine/Plugins/Interchange/Runtime/Source/Dispatcher/Public/InterchangeDispatcherTask.h:151
Scope (from outer to inner):
file
namespace UE
namespace Interchange
class class FJsonLoadSourceCmd : public IJsonCmdBase
function bool GetDoesForceFrontXAxis
Source code excerpt:
//Code should not do query data if the data was not set before
ensure(bIsDataInitialize);
return bForceFrontXAxis;
}
static FString GetDoesForceFrontXAxisJsonKey()
{
static const FString Key = TEXT("ForceFrontXAxis");
return Key;
#Loc: <Workspace>/Engine/Plugins/Interchange/Runtime/Source/Dispatcher/Public/InterchangeDispatcherTask.h:203
Scope (from outer to inner):
file
namespace UE
namespace Interchange
class class FJsonLoadSourceCmd : public IJsonCmdBase
Source code excerpt:
FString SourceFilename = FString();
bool bConvertScene = true;
bool bForceFrontXAxis = false;
bool bConvertSceneUnit = true;
};
class INTERCHANGEDISPATCHER_API FJsonFetchPayloadCmd : public IJsonCmdBase
{
public:
#Loc: <Workspace>/Engine/Plugins/Interchange/Runtime/Source/Import/Private/Fbx/InterchangeFbxTranslator.cpp:190
Scope (from outer to inner):
file
function bool UInterchangeFbxTranslator::Translate
Source code excerpt:
ensure(CacheFbxTranslatorSettings);
const bool bConvertScene = CacheFbxTranslatorSettings ? CacheFbxTranslatorSettings->bConvertScene : true;
const bool bForceFrontXAxis = CacheFbxTranslatorSettings ? CacheFbxTranslatorSettings->bForceFrontXAxis : false;
const bool bConvertSceneUnit = CacheFbxTranslatorSettings ? CacheFbxTranslatorSettings->bConvertSceneUnit : true;
if (bUseWorkerImport)
{
if (!Dispatcher.IsValid())
{
#Loc: <Workspace>/Engine/Plugins/Interchange/Runtime/Source/Import/Private/Fbx/InterchangeFbxTranslator.cpp:200
Scope (from outer to inner):
file
function bool UInterchangeFbxTranslator::Translate
Source code excerpt:
}
//Create a json command to read the fbx file
FString JsonCommand = CreateLoadFbxFileCommand(Filename, bConvertScene, bForceFrontXAxis, bConvertSceneUnit);
int32 TaskIndex = Dispatcher->AddTask(JsonCommand);
//Blocking call until all tasks are executed
Dispatcher->WaitAllTaskToCompleteExecution();
FString WorkerFatalError = Dispatcher->GetInterchangeWorkerFatalError();
#Loc: <Workspace>/Engine/Plugins/Interchange/Runtime/Source/Import/Private/Fbx/InterchangeFbxTranslator.cpp:240
Scope (from outer to inner):
file
function bool UInterchangeFbxTranslator::Translate
Source code excerpt:
FbxParser.Reset();
FbxParser.SetResultContainer(Results);
FbxParser.SetConvertSettings(bConvertScene, bForceFrontXAxis, bConvertSceneUnit);
FbxParser.LoadFbxFile(Filename, BaseNodeContainer);
#endif
}
return true;
}
#Loc: <Workspace>/Engine/Plugins/Interchange/Runtime/Source/Import/Private/Fbx/InterchangeFbxTranslator.cpp:604
Scope (from outer to inner):
file
function FString UInterchangeFbxTranslator::CreateLoadFbxFileCommand
Source code excerpt:
}
FString UInterchangeFbxTranslator::CreateLoadFbxFileCommand(const FString& FbxFilePath, const bool bConvertScene, const bool bForceFrontXAxis, const bool bConvertSceneUnit) const
{
UE::Interchange::FJsonLoadSourceCmd LoadSourceCommand(TEXT("FBX"), FbxFilePath, bConvertScene, bForceFrontXAxis, bConvertSceneUnit);
return LoadSourceCommand.ToJson();
}
FString UInterchangeFbxTranslator::CreateFetchPayloadFbxCommand(const FString& FbxPayloadKey) const
{
UE::Interchange::FJsonFetchPayloadCmd PayloadCommand(TEXT("FBX"), FbxPayloadKey);
#Loc: <Workspace>/Engine/Plugins/Interchange/Runtime/Source/Import/Public/Fbx/InterchangeFbxTranslator.h:34
Scope (from outer to inner):
file
class class UInterchangeFbxTranslatorSettings : public UInterchangeTranslatorSettings
Source code excerpt:
/** Whether to force the front axis to be align with X instead of -Y default. */
UPROPERTY(EditAnywhere, Category = "Fbx Translator", meta = (EditCondition = "bConvertScene"))
bool bForceFrontXAxis = false;
/** Whether to convert the scene from FBX unit to UE unit (centimeter). */
UPROPERTY(EditAnywhere, Category = "Fbx Translator")
bool bConvertSceneUnit = true;
};
#Loc: <Workspace>/Engine/Plugins/Interchange/Runtime/Source/Import/Public/Fbx/InterchangeFbxTranslator.h:102
Scope (from outer to inner):
file
class class UInterchangeFbxTranslator : public UInterchangeTranslatorBase , public IInterchangeTexturePayloadInterface , public IInterchangeMeshPayloadInterface , public IInterchangeAnimationPayloadInterface
Source code excerpt:
/* IInterchangeAnimationPayloadInterface End */
private:
FString CreateLoadFbxFileCommand(const FString& FbxFilePath, const bool bConvertScene, const bool bForceFrontXAxis, const bool bConvertSceneUnit) const;
FString CreateFetchMeshPayloadFbxCommand(const FString& FbxPayloadKey, const FTransform& MeshGlobalTransform) const;
FString CreateFetchPayloadFbxCommand(const FString& FbxPayloadKey) const;
FString CreateFetchAnimationBakeTransformPayloadFbxCommand(const FString& FbxPayloadKey, const double BakeFrequency, const double RangeStartTime, const double RangeEndTime) const;
#Loc: <Workspace>/Engine/Plugins/Interchange/Runtime/Source/Parsers/Fbx/Private/FbxAPI.cpp:130
Scope (from outer to inner):
file
namespace UE
namespace Interchange
namespace Private
function bool FFbxParser::LoadFbxFile
Source code excerpt:
//We always convert scene to UE axis and units
FFbxConvert::ConvertScene(SDKScene, bConvertScene, bForceFrontXAxis, bConvertSceneUnit);
FrameRate = FbxTime::GetFrameRate(SDKScene->GetGlobalSettings().GetTimeMode());
return true;
}
#Loc: <Workspace>/Engine/Plugins/Interchange/Runtime/Source/Parsers/Fbx/Private/FbxAPI.h:52
Scope (from outer to inner):
file
namespace UE
namespace Interchange
namespace Private
class class FFbxParser
function void SetConvertSettings
Source code excerpt:
{
bConvertScene = InbConvertScene;
bForceFrontXAxis = InbForceFrontXAxis;
bConvertSceneUnit = InbConvertSceneUnit;
}
//return the fbx helper for this parser
const TSharedPtr<FFbxHelper> GetFbxHelper();
#Loc: <Workspace>/Engine/Plugins/Interchange/Runtime/Source/Parsers/Fbx/Private/FbxAPI.h:125
Scope (from outer to inner):
file
namespace UE
namespace Interchange
namespace Private
class class FFbxParser
Source code excerpt:
//Convert settings
bool bConvertScene = true;
bool bForceFrontXAxis = false;
bool bConvertSceneUnit = true;
};
}//ns Private
}//ns Interchange
}//ns UE
#Loc: <Workspace>/Engine/Plugins/Interchange/Runtime/Source/Parsers/Fbx/Private/FbxConvert.cpp:13
Scope (from outer to inner):
file
namespace UE
namespace Interchange
namespace Private
function void FFbxConvert::ConvertScene
Source code excerpt:
namespace Private
{
void FFbxConvert::ConvertScene(FbxScene* SDKScene, const bool bConvertScene, const bool bForceFrontXAxis, const bool bConvertSceneUnit)
{
if (!ensure(SDKScene))
{
//Cannot convert a null scene
return;
}
#Loc: <Workspace>/Engine/Plugins/Interchange/Runtime/Source/Parsers/Fbx/Private/FbxConvert.cpp:51
Scope (from outer to inner):
file
namespace UE
namespace Interchange
namespace Private
function void FFbxConvert::ConvertScene
Source code excerpt:
//UE is: z up, front x, left handed
FbxAxisSystem::EUpVector UpVector = FbxAxisSystem::EUpVector::eZAxis;
FbxAxisSystem::EFrontVector FrontVector = (FbxAxisSystem::EFrontVector)(bForceFrontXAxis ? FbxAxisSystem::eParityEven : -FbxAxisSystem::eParityOdd);
FbxAxisSystem::ECoordSystem CoordSystem = FbxAxisSystem::ECoordSystem::eRightHanded;
FbxAxisSystem UnrealImportAxis(UpVector, FrontVector, CoordSystem);
if (FileAxisSystem != UnrealImportAxis)
{
FbxRootNodeUtility::RemoveAllFbxRoots(SDKScene);
#Loc: <Workspace>/Engine/Plugins/Interchange/Runtime/Source/Parsers/Fbx/Private/FbxConvert.h:156
Scope (from outer to inner):
file
namespace UE
namespace Interchange
namespace Private
Source code excerpt:
* Convert a fbx scene
*/
static void ConvertScene(FbxScene* SDKScene, const bool bConvertScene, const bool bForceFrontXAxis, const bool bConvertSceneUnit);
/** Scene Conversion API End */
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
#Loc: <Workspace>/Engine/Source/Editor/MovieSceneTools/Private/MovieSceneToolHelpers.cpp:2267
Scope (from outer to inner):
file
function bool MovieSceneToolHelpers::ImportFBXIntoControlRigChannels
Source code excerpt:
bool bOldbConvertScene = ImportOptions->bConvertScene;
bool bOldbConvertSceneUnit = ImportOptions->bConvertSceneUnit;
bool bOldbForceFrontXAxis = ImportOptions->bForceFrontXAxis;
float OldUniformScale = ImportOptions->ImportUniformScale;
EFBXAnimationLengthImportType OldAnimLengthType = ImportOptions->AnimationLengthImportType;
ImportOptions->bConvertScene = true;
ImportOptions->bConvertSceneUnit = ImportFBXControlRigSettings->bConvertSceneUnit;
ImportOptions->bForceFrontXAxis = ImportFBXControlRigSettings->bForceFrontXAxis;
ImportOptions->ImportUniformScale = ImportFBXControlRigSettings->ImportUniformScale;
ImportOptions->AnimationLengthImportType = FBXALIT_ExportedTime;
const FString FileExtension = FPaths::GetExtension(ImportFilename);
if (!FbxImporter->ImportFromFile(*ImportFilename, FileExtension, true))
{
#Loc: <Workspace>/Engine/Source/Editor/MovieSceneTools/Private/MovieSceneToolHelpers.cpp:2295
Scope (from outer to inner):
file
function bool MovieSceneToolHelpers::ImportFBXIntoControlRigChannels
Source code excerpt:
CurrentImportFBXSettings->bMatchByNameOnly = false;
CurrentImportFBXSettings->bConvertSceneUnit = ImportFBXControlRigSettings->bConvertSceneUnit;
CurrentImportFBXSettings->bForceFrontXAxis = ImportFBXControlRigSettings->bForceFrontXAxis;
CurrentImportFBXSettings->ImportUniformScale = ImportFBXControlRigSettings->ImportUniformScale;
CurrentImportFBXSettings->bCreateCameras = false;
CurrentImportFBXSettings->bReduceKeys = false;
CurrentImportFBXSettings->ReduceKeysTolerance = 0.01f;
UnFbx::FFbxCurvesAPI CurveAPI;
#Loc: <Workspace>/Engine/Source/Editor/MovieSceneTools/Private/MovieSceneToolHelpers.cpp:2454
Scope (from outer to inner):
file
function bool MovieSceneToolHelpers::ImportFBXIntoControlRigChannels
Source code excerpt:
ImportOptions->bConvertScene = bOldbConvertScene;
ImportOptions->bConvertSceneUnit = bOldbConvertSceneUnit;
ImportOptions->bForceFrontXAxis = bOldbForceFrontXAxis;
ImportOptions->ImportUniformScale = OldUniformScale;;
return bValid;
}
bool MovieSceneToolHelpers::ExportFBXFromControlRigChannels(const UMovieSceneSection* Section,
const UMovieSceneUserExportFBXControlRigSettings* ExportFBXControlRigSettings, const TArray<FName>& SelectedControlNames,
#Loc: <Workspace>/Engine/Source/Editor/MovieSceneTools/Private/MovieSceneToolHelpers.cpp:2473
Scope (from outer to inner):
file
function bool MovieSceneToolHelpers::ExportFBXFromControlRigChannels
Source code excerpt:
ExportOptions->FbxExportCompatibility = ExportFBXControlRigSettings->FbxExportCompatibility;
ExportOptions->bASCII = ExportFBXControlRigSettings->bASCII;
ExportOptions->bForceFrontXAxis = ExportFBXControlRigSettings->bForceFrontXAxis;
ExportOptions->bExportLocalTime = ExportFBXControlRigSettings->bExportLocalTime;
Exporter->CreateDocument();
Exporter->SetTransformBaking(true);
Exporter->SetKeepHierarchy(true);
#Loc: <Workspace>/Engine/Source/Editor/MovieSceneTools/Private/MovieSceneToolHelpers.cpp:3409
Scope (from outer to inner):
file
function bool MovieSceneToolHelpers::ReadyFBXForImport
Source code excerpt:
OutParams.bConvertSceneBackup = ImportOptions->bConvertScene;
OutParams.bConvertSceneUnitBackup = ImportOptions->bConvertSceneUnit;
OutParams.bForceFrontXAxisBackup = ImportOptions->bForceFrontXAxis;
OutParams.ImportUniformScaleBackup = ImportOptions->ImportUniformScale;
ImportOptions->bIsImportCancelable = false;
ImportOptions->bConvertScene = true;
ImportOptions->bConvertSceneUnit = ImportFBXSettings->bConvertSceneUnit;
ImportOptions->bForceFrontXAxis = ImportFBXSettings->bForceFrontXAxis;
ImportOptions->ImportUniformScale = ImportFBXSettings->ImportUniformScale;
const FString FileExtension = FPaths::GetExtension(ImportFilename);
if (!FbxImporter->ImportFromFile(*ImportFilename, FileExtension, true))
{
// Log the error message and fail the import.
#Loc: <Workspace>/Engine/Source/Editor/MovieSceneTools/Private/MovieSceneToolHelpers.cpp:3425
Scope (from outer to inner):
file
function bool MovieSceneToolHelpers::ReadyFBXForImport
Source code excerpt:
ImportOptions->bConvertScene = OutParams.bConvertSceneBackup;
ImportOptions->bConvertSceneUnit = OutParams.bConvertSceneUnitBackup;
ImportOptions->bForceFrontXAxis = OutParams.bForceFrontXAxisBackup;
ImportOptions->ImportUniformScale = OutParams.ImportUniformScaleBackup;
return false;
}
return true;
}
#Loc: <Workspace>/Engine/Source/Editor/MovieSceneTools/Private/MovieSceneToolHelpers.cpp:3441
Scope (from outer to inner):
file
function bool ImportFBXOntoControlRigs
Source code excerpt:
CurrentImportFBXSettings->bMatchByNameOnly = ImportFBXSettings->bMatchByNameOnly;
CurrentImportFBXSettings->bForceFrontXAxis = ImportFBXSettings->bForceFrontXAxis;
CurrentImportFBXSettings->bCreateCameras = ImportFBXSettings->bCreateCameras;
CurrentImportFBXSettings->bReduceKeys = ImportFBXSettings->bReduceKeys;
CurrentImportFBXSettings->ReduceKeysTolerance = ImportFBXSettings->ReduceKeysTolerance;
CurrentImportFBXSettings->bConvertSceneUnit = ImportFBXSettings->bConvertSceneUnit;
CurrentImportFBXSettings->ImportUniformScale = ImportFBXSettings->ImportUniformScale;
#Loc: <Workspace>/Engine/Source/Editor/MovieSceneTools/Private/MovieSceneToolHelpers.cpp:3464
Scope (from outer to inner):
file
function bool MovieSceneToolHelpers::ImportFBXIfReady
Source code excerpt:
CurrentImportFBXSettings->bMatchByNameOnly = ImportFBXSettings->bMatchByNameOnly;
CurrentImportFBXSettings->bForceFrontXAxis = ImportFBXSettings->bForceFrontXAxis;
CurrentImportFBXSettings->bCreateCameras = ImportFBXSettings->bCreateCameras;
CurrentImportFBXSettings->bReduceKeys = ImportFBXSettings->bReduceKeys;
CurrentImportFBXSettings->ReduceKeysTolerance = ImportFBXSettings->ReduceKeysTolerance;
CurrentImportFBXSettings->bConvertSceneUnit = ImportFBXSettings->bConvertSceneUnit;
CurrentImportFBXSettings->ImportUniformScale = ImportFBXSettings->ImportUniformScale;
UnFbx::FFbxImporter* FbxImporter = UnFbx::FFbxImporter::GetInstance();
#Loc: <Workspace>/Engine/Source/Editor/MovieSceneTools/Private/MovieSceneToolHelpers.cpp:3554
Scope (from outer to inner):
file
function bool MovieSceneToolHelpers::ImportFBXIfReady
Source code excerpt:
ImportOptions->bConvertScene = InParams.bConvertSceneBackup;
ImportOptions->bConvertSceneUnit = InParams.bConvertSceneUnitBackup;
ImportOptions->bForceFrontXAxis = InParams.bForceFrontXAxisBackup;
ImportOptions->ImportUniformScale = InParams.ImportUniformScaleBackup;
return true;
}
bool MovieSceneToolHelpers::ImportFBXWithDialog(UMovieSceneSequence* InSequence, ISequencer& InSequencer, const TMap<FGuid, FString>& InObjectBindingMap, TOptional<bool> bCreateCameras)
{
#Loc: <Workspace>/Engine/Source/Editor/MovieSceneTools/Private/MovieSceneToolsUserSettings.cpp:32
Scope (from outer to inner):
file
function UMovieSceneUserImportFBXSettings::UMovieSceneUserImportFBXSettings
Source code excerpt:
{
bMatchByNameOnly = true;
bForceFrontXAxis = false;
bCreateCameras = true;
bReplaceTransformTrack = true;
bReduceKeys = true;
ReduceKeysTolerance = 0.001f;
bConvertSceneUnit = true;
ImportUniformScale = 1.0f;
#Loc: <Workspace>/Engine/Source/Editor/MovieSceneTools/Private/MovieSceneToolsUserSettings.cpp:136
Scope (from outer to inner):
file
function UMovieSceneUserImportFBXControlRigSettings::UMovieSceneUserImportFBXControlRigSettings
Source code excerpt:
: Super(Initializer)
{
bForceFrontXAxis = false;
bConvertSceneUnit = true;
ImportUniformScale = 1.0f;
bSpecifyTimeRange = false;
StartTimeRange = 0;
EndTimeRange = 0;
TimeToInsertOrReplaceAnimation = 0;
#Loc: <Workspace>/Engine/Source/Editor/MovieSceneTools/Public/MovieSceneToolsUserSettings.h:71
Scope (from outer to inner):
file
class class UMovieSceneUserImportFBXSettings : public UObject
Source code excerpt:
/** Whether to force the front axis to be align with X instead of -Y. */
UPROPERTY(EditAnywhere, config, Category=Import, meta= (ToolTip = "Convert the scene from FBX coordinate system to UE coordinate system with front X axis instead of -Y"))
bool bForceFrontXAxis;
/** Convert the scene from FBX unit to UE unit(centimeter)*/
UPROPERTY(EditAnywhere, config, Category = Import, meta = (ToolTip = "Convert the scene from FBX unit to UE unit(centimeter)"))
bool bConvertSceneUnit;
/** Import Uniform Scale*/
#Loc: <Workspace>/Engine/Source/Editor/MovieSceneTools/Public/MovieSceneToolsUserSettings.h:225
Scope (from outer to inner):
file
class class UMovieSceneUserImportFBXControlRigSettings : public UObject
Source code excerpt:
/** Whether to force the front axis to be align with X instead of -Y. */
UPROPERTY(EditAnywhere, config, Category = "Import Options", meta = (ToolTip = "Convert the scene from FBX coordinate system to UE coordinate system with front X axis instead of -Y"))
bool bForceFrontXAxis;
/** Convert the scene from FBX unit to UE unit(centimeter)*/
UPROPERTY(EditAnywhere, config, Category = Import, meta = (ToolTip = "Convert the scene from FBX unit to UE unit(centimeter)"))
bool bConvertSceneUnit;
/** Import Uniform Scale*/
#Loc: <Workspace>/Engine/Source/Editor/MovieSceneTools/Public/MovieSceneToolsUserSettings.h:290
Scope (from outer to inner):
file
class class UMovieSceneUserExportFBXControlRigSettings : public UObject
Source code excerpt:
/** Whether to force the front axis to be align with X instead of -Y. */
UPROPERTY(EditAnywhere, config, Category = Exporter, meta = (ToolTip = "Convert the scene from FBX coordinate system to UE coordinate system with front X axis instead of -Y"))
bool bForceFrontXAxis = false;
/** Whether or not import onto selected controls or all controls*/
UPROPERTY(EditAnywhere, config, Category = "Control Rig")
bool bExportOnlySelectedControls = false;
/** Mappings for how Control Rig Control Attributes Map to the incoming Transforms*/
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Classes/Exporters/FbxExportOption.h:51
Scope (from outer to inner):
file
class class UFbxExportOption : public UObject
Source code excerpt:
/** If enabled, export with X axis as the front axis instead of default -Y */
UPROPERTY(EditAnywhere, BlueprintReadWrite, AdvancedDisplay, config, Category = Exporter)
uint32 bForceFrontXAxis : 1;
/** If enabled, export vertex color */
UPROPERTY(EditAnywhere, BlueprintReadWrite, config, category = Mesh)
uint32 VertexColor : 1;
/** If enabled, export the level of detail */
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Classes/Factories/FbxAssetImportData.h:32
Scope (from outer to inner):
file
class class UFbxAssetImportData : public UAssetImportData
Source code excerpt:
/** Whether to force the front axis to be align with X instead of -Y. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, config, Category = Miscellaneous, meta = (editcondition = "bConvertScene", ImportType = "StaticMesh|SkeletalMesh|Animation", ImportCategory = "Miscellaneous", ToolTip = "Convert the scene from FBX coordinate system to UE coordinate system with front X axis instead of -Y"))
bool bForceFrontXAxis;
/** Whether to convert the scene from FBX unit to UE unit (centimeter). */
UPROPERTY(EditAnywhere, BlueprintReadWrite, config, Category = Miscellaneous, meta = (ImportType = "StaticMesh|SkeletalMesh|Animation", ImportCategory = "Miscellaneous", ToolTip = "Convert the scene from FBX unit to UE unit (centimeter)."))
bool bConvertSceneUnit;
/* Use by the reimport factory to answer CanReimport, if true only factory for scene reimport will return true */
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Classes/Factories/FbxSceneImportData.h:44
Scope (from outer to inner):
file
class class UFbxSceneImportData : public UObject
Source code excerpt:
/* Is the original import force front X axis */
bool bForceFrontXAxis;
/* Which type of hierarchy was create see */
int32 HierarchyType;
//The last import scene hierarchy data
TSharedPtr<FFbxSceneInfo> SceneInfoSourceData;
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Classes/Factories/FbxSceneImportOptions.h:48
Scope (from outer to inner):
file
class class UFbxSceneImportOptions : public UObject
Source code excerpt:
/** Whether to force the front axis to be align with X instead of -Y. */
UPROPERTY(EditAnywhere, config, category = ImportOptions)
uint32 bForceFrontXAxis : 1;
UPROPERTY()
FVector ImportTranslation;
UPROPERTY()
FRotator ImportRotation;
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxAssetImportData.cpp:19
Scope (from outer to inner):
file
function UFbxAssetImportData::UFbxAssetImportData
Source code excerpt:
, ImportUniformScale(1.0f)
, bConvertScene(true)
, bForceFrontXAxis(false)
, bConvertSceneUnit(false)
, bImportAsScene(false)
, FbxSceneImportDataReference(nullptr)
{
}
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxExportOption.cpp:20
Scope (from outer to inner):
file
function UFbxExportOption::UFbxExportOption
Source code excerpt:
FbxExportCompatibility = EFbxExportCompatibility::FBX_2013;
bASCII = false;
bForceFrontXAxis = false;
LevelOfDetail = true;
Collision = true;
bExportSourceMesh = false;
bExportMorphTargets = true;
VertexColor = true;
MapSkeletalMotionToRoot = false;
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMainExport.cpp:266
Scope (from outer to inner):
file
namespace UnFbx
function void FFbxExporter::CreateDocument
Source code excerpt:
//FbxScene->GetGlobalSettings().SetOriginalUpAxis(KFbxAxisSystem::Max);
FbxAxisSystem::EFrontVector FrontVector = (FbxAxisSystem::EFrontVector)-FbxAxisSystem::eParityOdd;
if (GetExportOptions()->bForceFrontXAxis)
FrontVector = FbxAxisSystem::eParityEven;
const FbxAxisSystem UnrealZUp(FbxAxisSystem::eZAxis, FrontVector, FbxAxisSystem::eRightHanded);
Scene->GetGlobalSettings().SetAxisSystem(UnrealZUp);
Scene->GetGlobalSettings().SetOriginalUpAxis(UnrealZUp);
// Maya use cm by default
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMainImport.cpp:416
Scope (from outer to inner):
file
namespace UnFbx
function void ApplyImportUIToImportOptions
Source code excerpt:
InOutImportOptions.bImportStaticMeshLODs = StaticMeshData->bImportMeshLODs;
InOutImportOptions.bConvertScene = StaticMeshData->bConvertScene;
InOutImportOptions.bForceFrontXAxis = StaticMeshData->bForceFrontXAxis;
InOutImportOptions.bConvertSceneUnit = StaticMeshData->bConvertSceneUnit;
InOutImportOptions.VertexColorImportOption = StaticMeshData->VertexColorImportOption;
InOutImportOptions.VertexOverrideColor = StaticMeshData->VertexOverrideColor;
InOutImportOptions.bReorderMaterialToFbxOrder = StaticMeshData->bReorderMaterialToFbxOrder;
InOutImportOptions.DistanceFieldResolutionScale = StaticMeshData->DistanceFieldResolutionScale;
}
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMainImport.cpp:436
Scope (from outer to inner):
file
namespace UnFbx
function void ApplyImportUIToImportOptions
Source code excerpt:
InOutImportOptions.bImportSkeletalMeshLODs = SkeletalMeshData->bImportMeshLODs;
InOutImportOptions.bConvertScene = SkeletalMeshData->bConvertScene;
InOutImportOptions.bForceFrontXAxis = SkeletalMeshData->bForceFrontXAxis;
InOutImportOptions.bConvertSceneUnit = SkeletalMeshData->bConvertSceneUnit;
InOutImportOptions.VertexColorImportOption = SkeletalMeshData->VertexColorImportOption;
InOutImportOptions.VertexOverrideColor = SkeletalMeshData->VertexOverrideColor;
InOutImportOptions.bReorderMaterialToFbxOrder = SkeletalMeshData->bReorderMaterialToFbxOrder;
InOutImportOptions.bImportVertexAttributes = SkeletalMeshData->bImportVertexAttributes;
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMainImport.cpp:451
Scope (from outer to inner):
file
namespace UnFbx
function void ApplyImportUIToImportOptions
Source code excerpt:
AnimData->ImportUniformScale = SkeletalMeshData->ImportUniformScale;
AnimData->bConvertScene = SkeletalMeshData->bConvertScene;
AnimData->bForceFrontXAxis = SkeletalMeshData->bForceFrontXAxis;
AnimData->bConvertSceneUnit = SkeletalMeshData->bConvertSceneUnit;
}
}
else
{
UFbxAnimSequenceImportData* AnimData = ImportUI->AnimSequenceImportData;
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMainImport.cpp:464
Scope (from outer to inner):
file
namespace UnFbx
function void ApplyImportUIToImportOptions
Source code excerpt:
InOutImportOptions.ImportUniformScale = AnimData->ImportUniformScale;
InOutImportOptions.bConvertScene = AnimData->bConvertScene;
InOutImportOptions.bForceFrontXAxis = AnimData->bForceFrontXAxis;
InOutImportOptions.bConvertSceneUnit = AnimData->bConvertSceneUnit;
}
//Skeletal mesh unshared options
{
InOutImportOptions.bImportAsSkeletalGeometry = ImportUI->SkeletalMeshImportData->ImportContentType == EFBXImportContentType::FBXICT_Geometry;
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMainImport.cpp:1518
Scope (from outer to inner):
file
namespace UnFbx
function void FFbxImporter::ConvertScene
Source code excerpt:
FbxAxisSystem::EUpVector UpVector = FbxAxisSystem::eZAxis;
FbxAxisSystem::EFrontVector FrontVector = (FbxAxisSystem::EFrontVector) - FbxAxisSystem::eParityOdd;
if (GetImportOptions()->bForceFrontXAxis)
{
FrontVector = FbxAxisSystem::eParityEven;
}
FbxAxisSystem UnrealImportAxis(UpVector, FrontVector, CoordSystem);
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMainImport.cpp:1541
Scope (from outer to inner):
file
namespace UnFbx
function void FFbxImporter::ConvertScene
Source code excerpt:
if (GetImportOptions()->bForceFrontXAxis)
{
JointOrientationMatrix.SetR(FbxVector4(-90.0, -90.0, 0.0));
}
}
}
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMainImport.cpp:1724
Scope (from outer to inner):
file
namespace UnFbx
function bool FFbxImporter::ImportFromFile
Source code excerpt:
Attribs.Add(FAnalyticsEventAttribute(TEXT("GenOpt ConvertScene"), ImportOptions->bConvertScene));
Attribs.Add(FAnalyticsEventAttribute(TEXT("GenOpt ConvertSceneUnit"), ImportOptions->bConvertSceneUnit));
Attribs.Add(FAnalyticsEventAttribute(TEXT("GenOpt ForceFrontXAxis"), ImportOptions->bForceFrontXAxis));
Attribs.Add(FAnalyticsEventAttribute(TEXT("GenOpt ImportMaterials"), ImportOptions->bImportMaterials));
Attribs.Add(FAnalyticsEventAttribute(TEXT("GenOpt ImportTextures"), ImportOptions->bImportTextures));
Attribs.Add(FAnalyticsEventAttribute(TEXT("GenOpt InvertNormalMap"), ImportOptions->bInvertNormalMap));
Attribs.Add(FAnalyticsEventAttribute(TEXT("GenOpt RemoveNameSpace"), ImportOptions->bRemoveNameSpace));
Attribs.Add(FAnalyticsEventAttribute(TEXT("GenOpt UsedAsFullName"), ImportOptions->bUsedAsFullName));
Attribs.Add(FAnalyticsEventAttribute(TEXT("GenOpt ImportTranslation"), ImportOptions->ImportTranslation.ToString()));
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportData.cpp:16
Scope (from outer to inner):
file
function UFbxSceneImportData::UFbxSceneImportData
Source code excerpt:
SceneInfoSourceData = nullptr;
bCreateFolderHierarchy = false;
bForceFrontXAxis = false;
bImportScene = true;
HierarchyType = (int32)EFBXSceneOptionsCreateHierarchyType::FBXSOCHT_CreateLevelActors;
#endif
}
#if WITH_EDITORONLY_DATA
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportData.cpp:45
Scope (from outer to inner):
file
function UnFbx::FBXImportOptions *JSONToFbxOption
Source code excerpt:
OptionObj->TryGetBoolField(TEXT("bUsedAsFullName"), Option->bUsedAsFullName);
OptionObj->TryGetBoolField(TEXT("bConvertScene"), Option->bConvertScene);
OptionObj->TryGetBoolField(TEXT("bForceFrontXAxis"), Option->bForceFrontXAxis);
OptionObj->TryGetBoolField(TEXT("bConvertSceneUnit"), Option->bConvertSceneUnit);
OptionObj->TryGetBoolField(TEXT("bRemoveNameSpace"), Option->bRemoveNameSpace);
double X, Y, Z, Pitch, Yaw, Roll;
const TSharedPtr<FJsonObject> *DataObj = nullptr;
if (OptionObj->TryGetObjectField(TEXT("ImportTranslation"), DataObj))
{
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportData.cpp:167
Scope (from outer to inner):
file
function FString FbxOptionToJSON
Source code excerpt:
Option->bUsedAsFullName ? 1 : 0,
Option->bConvertScene ? 1 : 0,
Option->bForceFrontXAxis ? 1 : 0,
Option->bConvertSceneUnit ? 1 : 0,
Option->bRemoveNameSpace ? 1 : 0
);
JsonString += FString::Printf(TEXT("\"ImportTranslation\" : {\"X\" : \"%f\", \"Y\" : \"%f\", \"Z\" : \"%f\"}, \"ImportRotation\" : {\"P\" : \"%f\", \"Y\" : \"%f\", \"R\" : \"%f\"}, \"ImportUniformScale\" : \"%f\", "),
Option->ImportTranslation.X,
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportData.cpp:299
Scope (from outer to inner):
file
function FString UFbxSceneImportData::ToJson
Source code excerpt:
HierarchyType,
*BluePrintFullName,
bForceFrontXAxis ? 1 : 0
);
if (NameOptionsMap.Num() > 0)
{
Json += TEXT(", \"FbxOptions\" : [");
bool bFirstOption = true;
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportData.cpp:396
Scope (from outer to inner):
file
function void UFbxSceneImportData::FromJson
Source code excerpt:
SceneInfoObj->TryGetNumberField(TEXT("HierarchyType"), HierarchyType);
SceneInfoObj->TryGetStringField(TEXT("BluePrintFullName"), BluePrintFullName);
SceneInfoObj->TryGetBoolField(TEXT("bForceFrontXAxis"), bForceFrontXAxis);
//Read Options
const TArray<TSharedPtr<FJsonValue>>* JSONOptions;
if (SceneInfoObj->TryGetArrayField(TEXT("FbxOptions"), JSONOptions))
{
for (const auto& OptionJsonValue : *JSONOptions)
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportFactory.cpp:188
Scope (from outer to inner):
file
function bool GetFbxSceneImportOptions
Source code excerpt:
//setup all options
GlobalImportSettings->bForceFrontXAxis = SceneImportOptions->bForceFrontXAxis;
GlobalImportSettings->bBakePivotInVertex = SceneImportOptions->bBakePivotInVertex;
GlobalImportSettings->bImportStaticMeshLODs = SceneImportOptions->bImportStaticMeshLODs;
GlobalImportSettings->bImportSkeletalMeshLODs = SceneImportOptions->bImportSkeletalMeshLODs;
GlobalImportSettings->bInvertNormalMap = SceneImportOptions->bInvertNormalMaps;
GlobalImportSettings->ImportTranslation = SceneImportOptions->ImportTranslation;
GlobalImportSettings->ImportRotation = SceneImportOptions->ImportRotation;
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportFactory.cpp:869
Scope (from outer to inner):
file
function UFbxSceneImportData* CreateReImportAsset
Source code excerpt:
ReImportAsset->SourceFbxFile = FPaths::ConvertRelativePathToFull(FbxImportFileName);
ReImportAsset->bCreateFolderHierarchy = SceneImportOptions->bCreateContentFolderHierarchy;
ReImportAsset->bForceFrontXAxis = SceneImportOptions->bForceFrontXAxis;
ReImportAsset->HierarchyType = (int32)SceneImportOptions->HierarchyType;
return ReImportAsset;
}
UObject* UFbxSceneImportFactory::FactoryCreateFile(UClass* InClass, UObject* InParent, FName InName, EObjectFlags Flags, const FString& Filename, const TCHAR* Parms, FFeedbackContext* Warn, bool& bOutOperationCanceled)
{
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportFactory.cpp:1056
Scope (from outer to inner):
file
function UObject* UFbxSceneImportFactory::FactoryCreateBinary
Source code excerpt:
//Set the import option in importscene mode
GlobalImportSettings->bImportScene = true;
bool OriginalForceFrontXAxis = GlobalImportSettings->bForceFrontXAxis;
//Read the fbx and store the hierarchy's information so we can reuse it after importing all the model in the fbx file
if (!FbxImporter->ImportFromFile(*FbxImportFileName, Type, true))
{
// Log the error message and fail the import.
Warn->Log(ELogVerbosity::Error, FbxImporter->GetErrorMessage());
FbxImporter->ReleaseScene();
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportFactory.cpp:1115
Scope (from outer to inner):
file
function UObject* UFbxSceneImportFactory::FactoryCreateBinary
Source code excerpt:
//Convert the scene to the correct axis system. Option like force front X or ConvertScene affect the scene conversion
//We need to get the new convert transform
if(OriginalForceFrontXAxis != GlobalImportSettings->bForceFrontXAxis)
{
ChangeFrontAxis(FbxImporter, &SceneInfo, SceneInfoPtr);
}
FillSceneHierarchyPath(SceneInfoPtr);
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportOptions.cpp:13
Scope (from outer to inner):
file
function UFbxSceneImportOptions::UFbxSceneImportOptions
Source code excerpt:
bImportAsDynamic = false;
HierarchyType = EFBXSceneOptionsCreateHierarchyType::FBXSOCHT_CreateBlueprint;
bForceFrontXAxis = false;
bImportStaticMeshLODs = false;
bImportSkeletalMeshLODs = false;
bInvertNormalMaps = false;
ImportTranslation = FVector(0);
ImportRotation = FRotator(0);
ImportUniformScale = 1.0f;
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/ReimportFbxSceneFactory.cpp:309
Scope (from outer to inner):
file
function bool GetFbxSceneReImportOptions
Source code excerpt:
SceneImportOptions->bBakePivotInVertex = GlobalImportSettings->bBakePivotInVertex;
//setup all options
GlobalImportSettings->bForceFrontXAxis = SceneImportOptions->bForceFrontXAxis;
GlobalImportSettings->bImportStaticMeshLODs = SceneImportOptions->bImportStaticMeshLODs;
GlobalImportSettings->bImportSkeletalMeshLODs = SceneImportOptions->bImportSkeletalMeshLODs;
SceneImportOptions->bInvertNormalMaps = GlobalImportSettings->bInvertNormalMap;
GlobalImportSettings->ImportTranslation = SceneImportOptions->ImportTranslation;
GlobalImportSettings->ImportRotation = SceneImportOptions->ImportRotation;
GlobalImportSettings->ImportUniformScale = SceneImportOptions->ImportUniformScale;
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/ReimportFbxSceneFactory.cpp:414
Scope (from outer to inner):
file
function EReimportResult::Type UReimportFbxSceneFactory::Reimport
Source code excerpt:
GlobalImportSettings->bInvertNormalMap = DefaultOption->bInvertNormalMap;
}
bool OriginalForceFrontXAxis = GlobalImportSettings->bForceFrontXAxis;
//Read the fbx and store the hierarchy's information so we can reuse it after importing all the model in the fbx file
if (!FbxImporter->ImportFromFile(*FbxImportFileName, FPaths::GetExtension(FbxImportFileName), true))
{
// Log the error message and fail the import.
GWarn->Log(ELogVerbosity::Error, FbxImporter->GetErrorMessage());
FbxImporter->ReleaseScene();
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/ReimportFbxSceneFactory.cpp:480
Scope (from outer to inner):
file
function EReimportResult::Type UReimportFbxSceneFactory::Reimport
Source code excerpt:
bool bCanReimportHierarchy = ReimportData->HierarchyType == (int32)EFBXSceneOptionsCreateHierarchyType::FBXSOCHT_CreateBlueprint && !ReimportData->BluePrintFullName.IsEmpty();
SceneImportOptions->bForceFrontXAxis = GlobalImportSettings->bForceFrontXAxis;
//We stop The slow task before showing the import option dialog
//This prevent fight between slow task dialog and import option dialog (both are modal)
GWarn->EndSlowTask();
if (!GetFbxSceneReImportOptions(FbxImporter
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/ReimportFbxSceneFactory.cpp:513
Scope (from outer to inner):
file
function EReimportResult::Type UReimportFbxSceneFactory::Reimport
Source code excerpt:
//Convert the scene to the correct axis system. Option like force front X
//We need to get the new convert transform
if (OriginalForceFrontXAxis != GlobalImportSettings->bForceFrontXAxis)
{
ChangeFrontAxis(FbxImporter, &SceneInfo, SceneInfoPtr);
}
//Overwrite the reimport asset data with the new data
ReimportData->SceneInfoSourceData = SceneInfoPtr;
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/SFbxSceneOptionWindow.cpp:190
Scope (from outer to inner):
file
function void SFbxSceneOptionWindow::OnFinishedChangingPropertiesSceneTabDetailView
Source code excerpt:
}
//Set the Global Import setting
GlobalImportSettings->bForceFrontXAxis = SceneImportOptionsDisplay->bForceFrontXAxis;
GlobalImportSettings->bBakePivotInVertex = SceneImportOptionsDisplay->bBakePivotInVertex;
GlobalImportSettings->bInvertNormalMap = SceneImportOptionsDisplay->bInvertNormalMaps;
GlobalImportSettings->ImportTranslation = SceneImportOptionsDisplay->ImportTranslation;
GlobalImportSettings->ImportRotation = SceneImportOptionsDisplay->ImportRotation;
GlobalImportSettings->ImportUniformScale = SceneImportOptionsDisplay->ImportUniformScale;
}
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Public/FbxImporter.h:132
Scope (from outer to inner):
file
namespace UnFbx
Source code excerpt:
bool bUsedAsFullName;
bool bConvertScene;
bool bForceFrontXAxis;
bool bConvertSceneUnit;
bool bRemoveNameSpace;
FVector ImportTranslation;
FRotator ImportRotation;
float ImportUniformScale;
EFBXNormalImportMethod NormalImportMethod;