ImportRotation
ImportRotation
#Overview
name: ImportRotation
The value of this variable can be defined or overridden in .ini config files. 1
.ini config file referencing this setting variable.
It is referenced in 30
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of ImportRotation is to specify the rotation that should be applied to the imported asset during the FBX import process in Unreal Engine 5. This setting variable is part of the FBX import options and is used primarily in the rendering and animation systems.
ImportRotation is typically used in conjunction with the Interchange Editor plugin, which is responsible for handling asset import and conversion in Unreal Engine 5. It is specifically referenced in the FBX import process for various asset types, including static meshes, skeletal meshes, and animations.
The value of this variable is set through the FBX import options UI or programmatically when configuring import settings. It interacts closely with other import transformation variables such as ImportTranslation and ImportUniformScale to define the overall transformation applied to imported assets.
Developers should be aware that ImportRotation affects the orientation of imported assets. It’s particularly important when dealing with assets created in different coordinate systems or when specific adjustments are needed to align imported content with the Unreal Engine world space.
Best practices when using this variable include:
- Ensuring consistency in import settings across related assets to maintain proper alignment and scale.
- Using it in conjunction with ImportTranslation and ImportUniformScale for complete transform control.
- Being mindful of the coordinate system differences between the source application and Unreal Engine.
- Documenting any non-default values used for future reference and consistency in reimports.
- Considering the impact on animations and skinned meshes, as rotation changes can affect bone orientations.
Overall, ImportRotation is a crucial setting for fine-tuning the orientation of imported FBX assets in Unreal Engine 5, allowing developers to correct or adjust asset rotations during the import process.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:639, section: [/Script/UnrealEd.FbxAssetImportData]
- INI Section:
/Script/UnrealEd.FbxAssetImportData
- Raw value:
(Pitch=0.0,Yaw=0.0,Roll=0.0)
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Plugins/Interchange/Editor/Source/InterchangeEditor/Private/InterchangeFbxAssetImportDataConverter.cpp:58
Scope (from outer to inner):
file
namespace UE::Interchange::Private
function void FillFbxAssetImportData
Source code excerpt:
}
AssetImportData->bImportAsScene = false;
AssetImportData->ImportRotation = GenericAssetPipeline->ImportOffsetRotation;
AssetImportData->ImportTranslation = GenericAssetPipeline->ImportOffsetTranslation;
AssetImportData->ImportUniformScale = GenericAssetPipeline->ImportOffsetUniformScale;
}
void FillFbxMeshImportData(const UInterchangeGenericAssetsPipeline* GenericAssetPipeline, UFbxMeshImportData* MeshImportData)
{
#Loc: <Workspace>/Engine/Plugins/Interchange/Editor/Source/InterchangeEditor/Private/InterchangeFbxAssetImportDataConverter.cpp:536
Scope (from outer to inner):
file
namespace UE::Interchange::Private
function UAssetImportData* ConvertToInterchange
Source code excerpt:
GenericAssetPipeline->ReimportStrategy = EReimportStrategyFlags::ApplyNoProperties;
GenericAssetPipeline->ImportOffsetRotation = FbxAssetImportData->ImportRotation;
GenericAssetPipeline->ImportOffsetTranslation = FbxAssetImportData->ImportTranslation;
GenericAssetPipeline->ImportOffsetUniformScale = FbxAssetImportData->ImportUniformScale;
UInterchangeFbxTranslatorSettings* InterchangeFbxTranslatorSettings = NewObject<UInterchangeFbxTranslatorSettings>(DestinationData);
InterchangeFbxTranslatorSettings->ClearInternalFlags(EInternalObjectFlags::Async);
InterchangeFbxTranslatorSettings->bConvertScene = FbxAssetImportData->bConvertScene;
#Loc: <Workspace>/Engine/Plugins/Interchange/Editor/Source/InterchangeEditor/Private/InterchangeFbxAssetImportDataConverter.cpp:669
Scope (from outer to inner):
file
namespace UE::Interchange::Private
function UAssetImportData* ConvertToInterchange
Source code excerpt:
GenericAssetPipeline->AnimationPipeline->bImportAnimations = FbxImportUI->bImportAnimations;
GenericAssetPipeline->ImportOffsetRotation = FbxImportUI->SkeletalMeshImportData->ImportRotation;
GenericAssetPipeline->ImportOffsetTranslation = FbxImportUI->SkeletalMeshImportData->ImportTranslation;
GenericAssetPipeline->ImportOffsetUniformScale = FbxImportUI->SkeletalMeshImportData->ImportUniformScale;
SetTranslatorSettings(FbxImportUI->SkeletalMeshImportData);
FillInterchangeGenericAssetsPipelineFromFbxMeshImportData(GenericAssetPipeline, Cast<UFbxSkeletalMeshImportData>(FbxImportUI->SkeletalMeshImportData));
#Loc: <Workspace>/Engine/Plugins/Interchange/Editor/Source/InterchangeEditor/Private/InterchangeFbxAssetImportDataConverter.cpp:685
Scope (from outer to inner):
file
namespace UE::Interchange::Private
function UAssetImportData* ConvertToInterchange
Source code excerpt:
GenericAssetPipeline->MeshPipeline->bImportSkeletalMeshes = false;
GenericAssetPipeline->ImportOffsetRotation = FbxImportUI->StaticMeshImportData->ImportRotation;
GenericAssetPipeline->ImportOffsetTranslation = FbxImportUI->StaticMeshImportData->ImportTranslation;
GenericAssetPipeline->ImportOffsetUniformScale = FbxImportUI->StaticMeshImportData->ImportUniformScale;
SetTranslatorSettings(FbxImportUI->StaticMeshImportData);
FillInterchangeGenericAssetsPipelineFromFbxMeshImportData(GenericAssetPipeline, Cast<UFbxStaticMeshImportData>(FbxImportUI->StaticMeshImportData));
#Loc: <Workspace>/Engine/Plugins/Interchange/Editor/Source/InterchangeEditor/Private/InterchangeFbxAssetImportDataConverter.cpp:710
Scope (from outer to inner):
file
namespace UE::Interchange::Private
function UAssetImportData* ConvertToInterchange
Source code excerpt:
}
GenericAssetPipeline->ImportOffsetRotation = FbxImportUI->AnimSequenceImportData->ImportRotation;
GenericAssetPipeline->ImportOffsetTranslation = FbxImportUI->AnimSequenceImportData->ImportTranslation;
GenericAssetPipeline->ImportOffsetUniformScale = FbxImportUI->AnimSequenceImportData->ImportUniformScale;
SetTranslatorSettings(FbxImportUI->AnimSequenceImportData);
FillInterchangeGenericAssetsPipelineFromFbxAnimSequenceImportData(GenericAssetPipeline, Cast<UFbxAnimSequenceImportData>(FbxImportUI->AnimSequenceImportData));
#Loc: <Workspace>/Engine/Plugins/Tests/EditorTests/Source/EditorTests/Private/UnrealEd/FbxAutomationTests.cpp:396
Scope (from outer to inner):
file
function BEGIN_FUNCTION_BUILD_OPTIMIZATION bool F
Source code excerpt:
//Copy UFbxAssetImportData
ImportData->ImportTranslation = TestPlan->ImportUI->StaticMeshImportData->ImportTranslation;
ImportData->ImportRotation = TestPlan->ImportUI->StaticMeshImportData->ImportRotation;
ImportData->ImportUniformScale = TestPlan->ImportUI->StaticMeshImportData->ImportUniformScale;
ImportData->bImportAsScene = TestPlan->ImportUI->StaticMeshImportData->bImportAsScene;
if (!FReimportManager::Instance()->Reimport(GlobalImportedObjects[0], false, false, CurFileToImport[0], FbxStaticMeshReimportFactory))
{
ExecutionInfo.AddError(FString::Printf(TEXT("%s->%s: Error when reimporting the staticmesh"), *CleanFilename, *(TestPlan->TestPlanName)));
#Loc: <Workspace>/Engine/Plugins/Tests/EditorTests/Source/EditorTests/Private/UnrealEd/FbxAutomationTests.cpp:438
Scope (from outer to inner):
file
function BEGIN_FUNCTION_BUILD_OPTIMIZATION bool F
Source code excerpt:
//Copy UFbxAssetImportData
ImportData->ImportTranslation = TestPlan->ImportUI->SkeletalMeshImportData->ImportTranslation;
ImportData->ImportRotation = TestPlan->ImportUI->SkeletalMeshImportData->ImportRotation;
ImportData->ImportUniformScale = TestPlan->ImportUI->SkeletalMeshImportData->ImportUniformScale;
ImportData->bImportAsScene = TestPlan->ImportUI->SkeletalMeshImportData->bImportAsScene;
if (!FReimportManager::Instance()->Reimport(GlobalImportedObjects[0], false, false, CurFileToImport[0], FbxSkeletalMeshReimportFactory))
{
ExecutionInfo.AddError(FString::Printf(TEXT("%s->%s: Error when reimporting the skeletal mesh"), *CleanFilename, *(TestPlan->TestPlanName)));
#Loc: <Workspace>/Engine/Plugins/Tests/EditorTests/Source/EditorTests/Private/UnrealEd/FbxAutomationTests.cpp:504
Scope (from outer to inner):
file
function BEGIN_FUNCTION_BUILD_OPTIMIZATION bool F
Source code excerpt:
//Copy UFbxAssetImportData
ImportData->ImportTranslation = TestPlan->ImportUI->StaticMeshImportData->ImportTranslation;
ImportData->ImportRotation = TestPlan->ImportUI->StaticMeshImportData->ImportRotation;
ImportData->ImportUniformScale = TestPlan->ImportUI->StaticMeshImportData->ImportUniformScale;
ImportData->bImportAsScene = TestPlan->ImportUI->StaticMeshImportData->bImportAsScene;
FbxMeshUtils::ImportStaticMeshLOD(ExistingStaticMesh, LodFile, TestPlan->LodIndex);
}
else if (GlobalImportedObjects[0]->IsA(USkeletalMesh::StaticClass()))
#Loc: <Workspace>/Engine/Plugins/Tests/EditorTests/Source/EditorTests/Private/UnrealEd/FbxAutomationTests.cpp:536
Scope (from outer to inner):
file
function BEGIN_FUNCTION_BUILD_OPTIMIZATION bool F
Source code excerpt:
//Copy UFbxAssetImportData
ImportData->ImportTranslation = TestPlan->ImportUI->SkeletalMeshImportData->ImportTranslation;
ImportData->ImportRotation = TestPlan->ImportUI->SkeletalMeshImportData->ImportRotation;
ImportData->ImportUniformScale = TestPlan->ImportUI->SkeletalMeshImportData->ImportUniformScale;
ImportData->bImportAsScene = TestPlan->ImportUI->SkeletalMeshImportData->bImportAsScene;
FbxMeshUtils::ImportSkeletalMeshLOD(ExistingSkeletalMesh, LodFile, TestPlan->LodIndex);
}
}
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Classes/Factories/FbxAssetImportData.h:21
Scope (from outer to inner):
file
class class UFbxAssetImportData : public UAssetImportData
Source code excerpt:
UPROPERTY(EditAnywhere, BlueprintReadWrite, config, Category=Transform, meta=(ImportType="StaticMesh|SkeletalMesh|Animation", ImportCategory="Transform"))
FRotator ImportRotation;
UPROPERTY(EditAnywhere, BlueprintReadWrite, config, Category=Transform, meta=(ImportType="StaticMesh|SkeletalMesh|Animation", ImportCategory="Transform"))
float ImportUniformScale;
/** Whether to convert scene from FBX scene. */
UPROPERTY(EditAnywhere, BlueprintReadWrite, config, Category = Miscellaneous, meta = (ImportType = "StaticMesh|SkeletalMesh|Animation", ImportCategory = "Miscellaneous", ToolTip = "Convert the scene from FBX coordinate system to UE coordinate system"))
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Classes/Factories/FbxSceneImportOptions.h:54
Scope (from outer to inner):
file
class class UFbxSceneImportOptions : public UObject
Source code excerpt:
UPROPERTY()
FRotator ImportRotation;
UPROPERTY()
float ImportUniformScale;
/** If this option is true the node absolute transform (transform, offset and pivot) will be apply to the mesh vertices. */
UPROPERTY()
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxAssetImportData.cpp:16
Scope (from outer to inner):
file
function UFbxAssetImportData::UFbxAssetImportData
Source code excerpt:
: Super(ObjectInitializer)
, ImportTranslation(0)
, ImportRotation(0)
, ImportUniformScale(1.0f)
, bConvertScene(true)
, bForceFrontXAxis(false)
, bConvertSceneUnit(false)
, bImportAsScene(false)
, FbxSceneImportDataReference(nullptr)
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMainImport.cpp:410
Scope (from outer to inner):
file
namespace UnFbx
function void ApplyImportUIToImportOptions
Source code excerpt:
InOutImportOptions.bComputeWeightedNormals = StaticMeshData->bComputeWeightedNormals;
InOutImportOptions.ImportTranslation = StaticMeshData->ImportTranslation;
InOutImportOptions.ImportRotation = StaticMeshData->ImportRotation;
InOutImportOptions.ImportUniformScale = StaticMeshData->ImportUniformScale;
InOutImportOptions.bTransformVertexToAbsolute = StaticMeshData->bTransformVertexToAbsolute;
InOutImportOptions.bBakePivotInVertex = StaticMeshData->bBakePivotInVertex;
InOutImportOptions.bImportStaticMeshLODs = StaticMeshData->bImportMeshLODs;
InOutImportOptions.bConvertScene = StaticMeshData->bConvertScene;
InOutImportOptions.bForceFrontXAxis = StaticMeshData->bForceFrontXAxis;
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMainImport.cpp:430
Scope (from outer to inner):
file
namespace UnFbx
function void ApplyImportUIToImportOptions
Source code excerpt:
InOutImportOptions.bComputeWeightedNormals = SkeletalMeshData->bComputeWeightedNormals;
InOutImportOptions.ImportTranslation = SkeletalMeshData->ImportTranslation;
InOutImportOptions.ImportRotation = SkeletalMeshData->ImportRotation;
InOutImportOptions.ImportUniformScale = SkeletalMeshData->ImportUniformScale;
InOutImportOptions.bTransformVertexToAbsolute = SkeletalMeshData->bTransformVertexToAbsolute;
InOutImportOptions.bBakePivotInVertex = SkeletalMeshData->bBakePivotInVertex;
InOutImportOptions.bImportSkeletalMeshLODs = SkeletalMeshData->bImportMeshLODs;
InOutImportOptions.bConvertScene = SkeletalMeshData->bConvertScene;
InOutImportOptions.bForceFrontXAxis = SkeletalMeshData->bForceFrontXAxis;
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMainImport.cpp:448
Scope (from outer to inner):
file
namespace UnFbx
function void ApplyImportUIToImportOptions
Source code excerpt:
UFbxAnimSequenceImportData* AnimData = ImportUI->AnimSequenceImportData;
AnimData->ImportTranslation = SkeletalMeshData->ImportTranslation;
AnimData->ImportRotation = SkeletalMeshData->ImportRotation;
AnimData->ImportUniformScale = SkeletalMeshData->ImportUniformScale;
AnimData->bConvertScene = SkeletalMeshData->bConvertScene;
AnimData->bForceFrontXAxis = SkeletalMeshData->bForceFrontXAxis;
AnimData->bConvertSceneUnit = SkeletalMeshData->bConvertSceneUnit;
}
}
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMainImport.cpp:461
Scope (from outer to inner):
file
namespace UnFbx
function void ApplyImportUIToImportOptions
Source code excerpt:
InOutImportOptions.bComputeWeightedNormals = true;
InOutImportOptions.ImportTranslation = AnimData->ImportTranslation;
InOutImportOptions.ImportRotation = AnimData->ImportRotation;
InOutImportOptions.ImportUniformScale = AnimData->ImportUniformScale;
InOutImportOptions.bConvertScene = AnimData->bConvertScene;
InOutImportOptions.bForceFrontXAxis = AnimData->bForceFrontXAxis;
InOutImportOptions.bConvertSceneUnit = AnimData->bConvertSceneUnit;
}
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMainImport.cpp:1644
Scope (from outer to inner):
file
namespace UnFbx
function bool FFbxImporter::ImportFromFile
Source code excerpt:
* @EventParam UsedAsFullName boolean Returns whether the importer should use the filename to name the imported mesh
* @EventParam ImportTranslation string Returns the translation vector apply on the import data
* @EventParam ImportRotation string Returns the FRotator vector apply on the import data
* @EventParam ImportUniformScale float Returns the uniform scale apply on the import data
* @EventParam MaterialBasePath string Returns the path pointing on the base material use to import material instance
* @EventParam MaterialSearchLocation string Returns the scope of the search for existing materials (if material not found it can create one depending on bImportMaterials value)
* @EventParam ReorderMaterialToFbxOrder boolean returns weather the importer should reorder the materials in the same order has the fbx file
* @EventParam AutoGenerateCollision boolean Returns whether the importer should create collision primitive
* @EventParam CombineToSingle boolean Returns whether the importer should combine all mesh part together or import many meshes
* @EventParam BakePivotInVertex boolean Returns whether the importer should bake the fbx mesh pivot into the vertex position
* @EventParam TransformVertexToAbsolute boolean Returns whether the importer should bake the global fbx node transform into the vertex position
* @EventParam ImportRigidMesh boolean Returns whether the importer should try to create a rigid mesh (static mesh import as skeletal mesh)
* @EventParam NormalImportMethod string Return if the tangents or normal should be imported or compute
* @EventParam NormalGenerationMethod string Return tangents generation method
* @EventParam CreatePhysicsAsset boolean Returns whether the importer should create the physic asset
* @EventParam ImportAnimations boolean Returns whether the importer should import also the animation
* @EventParam ImportAsSkeletalGeometry boolean Returns whether the importer should import only the geometry
* @EventParam ImportAsSkeletalSkinning boolean Returns whether the importer should import only the skinning
* @EventParam ImportMeshesInBoneHierarchy boolean Returns whether the importer should import also the mesh found in the bone hierarchy
* @EventParam ImportMorph boolean Returns whether the importer should import the morph targets
* @EventParam ImportSkeletalMeshLODs boolean Returns whether the importer should import the LODs
* @EventParam PreserveSmoothingGroups boolean Returns whether the importer should import the smoothing groups
* @EventParam UpdateSkeletonReferencePose boolean Returns whether the importer should update the skeleton reference pose
* @EventParam UseT0AsRefPose boolean Returns whether the importer should use the the animation 0 time has the reference pose
* @EventParam ThresholdPosition float Returns the threshold delta to weld vertices
* @EventParam ThresholdTangentNormal float Returns the threshold delta to weld tangents and normals
* @EventParam ThresholdUV float Returns the threshold delta to weld UVs
* @EventParam MorphThresholdPosition float Returns the morph target threshold delta to compute deltas
* @EventParam AutoComputeLodDistances boolean Returns whether the importer should set the auto compute LOD distance
* @EventParam LodNumber integer Returns the LOD number we should have after the import
* @EventParam BuildReversedIndexBuffer boolean Returns whether the importer should fill the reverse index buffer when building the static mesh
* @EventParam GenerateLightmapUVs boolean Returns whether the importer should generate light map UVs
* @EventParam ImportStaticMeshLODs boolean Returns whether the importer should import the LODs
* @EventParam RemoveDegenerates boolean Returns whether the importer should remove the degenerated triangles when building the static mesh
* @EventParam MinimumLodNumber integer Returns the minimum LOD use by the rendering
* @EventParam StaticMeshLODGroup string Returns the LOD Group settings we use to build this imported static mesh
* @EventParam VertexColorImportOption string Returns how the importer should import the vertex color
* @EventParam VertexOverrideColor string Returns the color use if we need to override the vertex color
* @EventParam AnimationLengthImportType string Returns how we choose the animation time span
* @EventParam DeleteExistingMorphTargetCurves boolean Returns whether the importer should delete the existing morph target curves
* @EventParam AnimationRange string Returns the range of animation the importer should sample if the time span is custom
* @EventParam DoNotImportCurveWithZero boolean Returns whether the importer should import curves containing only zero value
* @EventParam ImportBoneTracks boolean Returns whether the importer should import the bone tracks
* @EventParam ImportCustomAttribute boolean Returns whether the importer should import the custom attribute curves
* @EventParam PreserveLocalTransform boolean Returns whether the importer should preserve the local transform when importing the animation
* @EventParam RemoveRedundantKeys boolean Returns whether the importer should remove all redundant key in an animation
* @EventParam Resample boolean Returns whether the importer should re-sample the animation
* @EventParam SetMaterialDriveParameterOnCustomAttribute boolean Returns whether the importer should hook all custom attribute curve to unreal material attribute
* @EventParam SetMaterialDriveParameterOnCustomAttribute boolean Returns whether the importer should hook some custom attribute (having the suffix) curve to unreal material attribute
* @EventParam ResampleRate float Returns the rate the exporter is suppose to re-sample any imported animations
*
* @Owner Alexis.Matte
*/
FbxDocumentInfo* DocInfo = Scene->GetSceneInfo();
if (DocInfo)
{
if( FEngineAnalytics::IsAvailable() )
{
const static UEnum* FBXImportTypeEnum = StaticEnum<EFBXImportType>();
const static UEnum* FBXAnimationLengthImportTypeEnum = StaticEnum<EFBXAnimationLengthImportType>();
const static UEnum* MaterialSearchLocationEnum = StaticEnum<EMaterialSearchLocation>();
const static UEnum* FBXNormalGenerationMethodEnum = StaticEnum<EFBXNormalGenerationMethod::Type>();
const static UEnum* FBXNormalImportMethodEnum = StaticEnum<EFBXNormalImportMethod>();
const static UEnum* VertexColorImportOptionEnum = StaticEnum<EVertexColorImportOption::Type>();
TArray<FAnalyticsEventAttribute> Attribs;
FString LastSavedVendor(UTF8_TO_TCHAR(DocInfo->LastSaved_ApplicationVendor.Get().Buffer()));
FString LastSavedAppName(UTF8_TO_TCHAR(DocInfo->LastSaved_ApplicationName.Get().Buffer()));
FString LastSavedAppVersion(UTF8_TO_TCHAR(DocInfo->LastSaved_ApplicationVersion.Get().Buffer()));
Attribs.Add(FAnalyticsEventAttribute(TEXT("LastSaved Application Vendor"), LastSavedVendor));
Attribs.Add(FAnalyticsEventAttribute(TEXT("LastSaved Application Name"), LastSavedAppName));
Attribs.Add(FAnalyticsEventAttribute(TEXT("LastSaved Application Version"), LastSavedAppVersion));
Attribs.Add(FAnalyticsEventAttribute(TEXT("FBX Version"), FbxFileVersion));
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMainImport.cpp:1731
Scope (from outer to inner):
file
function bool FFbxImporter::ImportFromFile
Source code excerpt:
Attribs.Add(FAnalyticsEventAttribute(TEXT("GenOpt UsedAsFullName"), ImportOptions->bUsedAsFullName));
Attribs.Add(FAnalyticsEventAttribute(TEXT("GenOpt ImportTranslation"), ImportOptions->ImportTranslation.ToString()));
Attribs.Add(FAnalyticsEventAttribute(TEXT("GenOpt ImportRotation"), ImportOptions->ImportRotation.ToString()));
Attribs.Add(FAnalyticsEventAttribute(TEXT("GenOpt ImportUniformScale"), ImportOptions->ImportUniformScale));
Attribs.Add(FAnalyticsEventAttribute(TEXT("GenOpt MaterialBasePath"), ImportOptions->MaterialBasePath));
Attribs.Add(FAnalyticsEventAttribute(TEXT("GenOpt MaterialSearchLocation"), MaterialSearchLocationEnum->GetNameStringByValue((uint64)(ImportOptions->MaterialSearchLocation))));
Attribs.Add(FAnalyticsEventAttribute(TEXT("GenOpt ReorderMaterialToFbxOrder"), ImportOptions->bReorderMaterialToFbxOrder));
//We cant capture a this member, so just assign the pointer here
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMainImport.cpp:2721
Scope (from outer to inner):
file
namespace UnFbx
function void FFbxImporter::BuildFbxMatrixForImportTransform
Source code excerpt:
FbxVector4 FbxAddedTranslation = Converter.ConvertToFbxPos(AssetData->ImportTranslation);
FbxVector4 FbxAddedScale = Converter.ConvertToFbxScale(FVector(AssetData->ImportUniformScale));
FbxVector4 FbxAddedRotation = Converter.ConvertToFbxRot(AssetData->ImportRotation.Euler());
OutMatrix = FbxAMatrix(FbxAddedTranslation, FbxAddedRotation, FbxAddedScale);
}
/**
* Get all Fbx skeletal mesh objects which are grouped by skeleton they bind to
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportData.cpp:62
Scope (from outer to inner):
file
function UnFbx::FBXImportOptions *JSONToFbxOption
Source code excerpt:
(*DataObj)->TryGetNumberField(TEXT("Y"), Yaw);
(*DataObj)->TryGetNumberField(TEXT("R"), Roll);
Option->ImportRotation.Pitch = (float)Pitch;
Option->ImportRotation.Yaw = (float)Yaw;
Option->ImportRotation.Roll = (float)Roll;
}
double ImportUniformScale;
if (OptionObj->TryGetNumberField(TEXT("ImportUniformScale"), ImportUniformScale))
{
Option->ImportUniformScale = (float)ImportUniformScale;
}
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportData.cpp:176
Scope (from outer to inner):
file
function FString FbxOptionToJSON
Source code excerpt:
Option->ImportTranslation.Y,
Option->ImportTranslation.Z,
Option->ImportRotation.Pitch,
Option->ImportRotation.Yaw,
Option->ImportRotation.Roll,
Option->ImportUniformScale
);
JsonString += FString::Printf(TEXT("\"NormalImportMethod\" : \"%d\", \"NormalGenerationMethod\" : \"%d\", \"bTransformVertexToAbsolute\" : \"%d\", \"bBakePivotInVertex\" : \"%d\", \"bCombineToSingle\" : \"%d\", \"VertexColorImportOption\" : \"%d\", \"VertexOverrideColor\" : {\"R\" : \"%d\", \"G\" : \"%d\", \"B\" : \"%d\", \"A\" : \"%d\" }, "),
(int32)Option->NormalImportMethod,
(int32)Option->NormalGenerationMethod,
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportFactory.cpp:129
Scope (from outer to inner):
file
function bool GetFbxSceneImportOptions
Source code excerpt:
GlobalImportSettings->ImportTranslation = FVector(0);
GlobalImportSettings->ImportRotation = FRotator(0);
GlobalImportSettings->ImportUniformScale = 1.0f;
GlobalImportSettings->DistanceFieldResolutionScale = 1.0f;
GlobalImportSettings->bConvertScene = true;
GlobalImportSettings->bConvertSceneUnit = true;
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportFactory.cpp:194
Scope (from outer to inner):
file
function bool GetFbxSceneImportOptions
Source code excerpt:
GlobalImportSettings->bInvertNormalMap = SceneImportOptions->bInvertNormalMaps;
GlobalImportSettings->ImportTranslation = SceneImportOptions->ImportTranslation;
GlobalImportSettings->ImportRotation = SceneImportOptions->ImportRotation;
GlobalImportSettings->ImportUniformScale = SceneImportOptions->ImportUniformScale;
//Set the override material into the options
for (TSharedPtr<FFbxNodeInfo> NodeInfo : SceneInfoPtr->HierarchyInfo)
{
for (TSharedPtr<FFbxMaterialInfo> Material : NodeInfo->Materials)
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportOptions.cpp:18
Scope (from outer to inner):
file
function UFbxSceneImportOptions::UFbxSceneImportOptions
Source code excerpt:
bInvertNormalMaps = false;
ImportTranslation = FVector(0);
ImportRotation = FRotator(0);
ImportUniformScale = 1.0f;
}
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportOptionsSkeletalMesh.cpp:55
Scope (from outer to inner):
file
function void UFbxSceneImportOptionsSkeletalMesh::FillSkeletalMeshInmportData
Source code excerpt:
SkeletalMeshImportData->bImportMeshLODs = SceneImportOptions->bImportSkeletalMeshLODs;
SkeletalMeshImportData->ImportTranslation = SceneImportOptions->ImportTranslation;
SkeletalMeshImportData->ImportRotation = SceneImportOptions->ImportRotation;
SkeletalMeshImportData->ImportUniformScale = SceneImportOptions->ImportUniformScale;
SkeletalMeshImportData->bTransformVertexToAbsolute = SceneImportOptions->bTransformVertexToAbsolute;
SkeletalMeshImportData->bBakePivotInVertex = SceneImportOptions->bBakePivotInVertex;
SkeletalMeshImportData->bImportAsScene = true;
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxSceneImportOptionsStaticMesh.cpp:54
Scope (from outer to inner):
file
function void UFbxSceneImportOptionsStaticMesh::FillStaticMeshInmportData
Source code excerpt:
StaticMeshImportData->bImportMeshLODs = SceneImportOptions->bImportStaticMeshLODs;
StaticMeshImportData->ImportTranslation = SceneImportOptions->ImportTranslation;
StaticMeshImportData->ImportRotation = SceneImportOptions->ImportRotation;
StaticMeshImportData->ImportUniformScale = SceneImportOptions->ImportUniformScale;
StaticMeshImportData->bTransformVertexToAbsolute = SceneImportOptions->bTransformVertexToAbsolute;
StaticMeshImportData->bBakePivotInVertex = SceneImportOptions->bBakePivotInVertex;
StaticMeshImportData->bImportAsScene = true;
}
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/ReimportFbxSceneFactory.cpp:247
Scope (from outer to inner):
file
function bool GetFbxSceneReImportOptions
Source code excerpt:
GlobalImportSettings->ImportTranslation = FVector(0);
GlobalImportSettings->ImportRotation = FRotator(0);
GlobalImportSettings->ImportUniformScale = 1.0f;
GlobalImportSettings->bConvertScene = true;
GlobalImportSettings->bConvertSceneUnit = true;
GlobalImportSettings->OverrideMaterials.Reset();
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/ReimportFbxSceneFactory.cpp:314
Scope (from outer to inner):
file
function bool GetFbxSceneReImportOptions
Source code excerpt:
SceneImportOptions->bInvertNormalMaps = GlobalImportSettings->bInvertNormalMap;
GlobalImportSettings->ImportTranslation = SceneImportOptions->ImportTranslation;
GlobalImportSettings->ImportRotation = SceneImportOptions->ImportRotation;
GlobalImportSettings->ImportUniformScale = SceneImportOptions->ImportUniformScale;
//Set the override material into the options
for (TSharedPtr<FFbxNodeInfo> NodeInfo : SceneInfoPtr->HierarchyInfo)
{
for (TSharedPtr<FFbxMaterialInfo> Material : NodeInfo->Materials)
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/SFbxSceneOptionWindow.cpp:194
Scope (from outer to inner):
file
function void SFbxSceneOptionWindow::OnFinishedChangingPropertiesSceneTabDetailView
Source code excerpt:
GlobalImportSettings->bInvertNormalMap = SceneImportOptionsDisplay->bInvertNormalMaps;
GlobalImportSettings->ImportTranslation = SceneImportOptionsDisplay->ImportTranslation;
GlobalImportSettings->ImportRotation = SceneImportOptionsDisplay->ImportRotation;
GlobalImportSettings->ImportUniformScale = SceneImportOptionsDisplay->ImportUniformScale;
}
TSharedRef<SDockTab> SFbxSceneOptionWindow::SpawnStaticMeshTab(const FSpawnTabArgs& Args)
{
//Create the static mesh listview
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Public/FbxImporter.h:136
Scope (from outer to inner):
file
namespace UnFbx
Source code excerpt:
bool bRemoveNameSpace;
FVector ImportTranslation;
FRotator ImportRotation;
float ImportUniformScale;
EFBXNormalImportMethod NormalImportMethod;
EFBXNormalGenerationMethod::Type NormalGenerationMethod;
bool bComputeWeightedNormals;
bool bTransformVertexToAbsolute;
bool bBakePivotInVertex;