BaseEmmisiveTextureName
BaseEmmisiveTextureName
#Overview
name: BaseEmmisiveTextureName
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 8
C++ source files.
#Summary
#Usage in the C++ source code
The purpose of BaseEmmisiveTextureName is to specify the name of the base emissive texture for imported FBX materials in Unreal Engine 5. This variable is primarily used in the material import and customization process for FBX assets.
This setting variable is relied upon by the following Unreal Engine subsystems and modules:
- FBX Import system
- Material Import and Creation system
- Detail Customization system for FBX import options
The value of this variable is typically set through the FBX import UI, specifically in the Material category of the import options. It can be modified by users during the import process or programmatically through the FBX import API.
BaseEmmisiveTextureName interacts with other texture-related variables in the FBX import process, such as BaseDiffuseTextureName, BaseNormalTextureName, BaseSpecularTextureName, and BaseOpacityTextureName. It’s also related to BaseEmissiveColorName, which is used when no emissive texture is present.
Developers should be aware of the following when using this variable:
- The spelling “Emmisive” is inconsistent with the standard spelling “Emissive”. This inconsistency is present in the codebase and should be maintained for compatibility.
- This variable is used to link the emissive texture property from the FBX material to the Unreal material during import.
- The value of this variable affects whether a material can be instanced during import.
Best practices when using this variable include:
- Ensure consistent naming conventions for textures in your FBX files to streamline the import process.
- Use descriptive and standardized names for emissive textures to make them easily identifiable during import.
- Consider setting default values for this variable in your project’s FBX import settings to maintain consistency across imports.
- When programmatically modifying this variable, ensure that the corresponding texture exists in the FBX file or your project to avoid broken material references.
- Be aware of the interaction between this variable and other texture-related import settings to create the desired material result.
#Setting Variables
#References In INI files
Location: <Workspace>/Engine/Config/BaseEditorPerProjectUserSettings.ini:704, section: [/Script/UnrealEd.FbxTextureImportData]
- INI Section:
/Script/UnrealEd.FbxTextureImportData
- Raw value:
""
- Is Array:
False
#References in C++ code
#Callsites
This variable is referenced in the following C++ source code:
#Loc: <Workspace>/Engine/Source/Editor/DetailCustomizations/Private/FbxImportUIDetails.cpp:954
Scope (from outer to inner):
file
function void FFbxImportUIDetails::ConstructBaseMaterialUI
Source code excerpt:
{
// base emmisive properties
InitialSelect = FindString(BaseTextureNames, ImportUI->TextureImportData->BaseEmmisiveTextureName);
InitialSelect = InitialSelect == INDEX_NONE ? 0 : InitialSelect; // default to the empty string located at index 0
MaterialCategory.AddCustomRow(LOCTEXT("BaseEmissiveTextureProperty", "Base Emissive Texture Property")).NameContent()
[
SNew(STextBlock)
.Text(LOCTEXT("BaseEmissiveTextureProperty", "Base Emissive Texture Property"))
.Font(IDetailLayoutBuilder::GetDetailFont())
#Loc: <Workspace>/Engine/Source/Editor/DetailCustomizations/Private/FbxImportUIDetails.cpp:1245
Scope (from outer to inner):
file
function void FFbxImportUIDetails::OnEmmisiveTextureColor
Source code excerpt:
void FFbxImportUIDetails::OnEmmisiveTextureColor(TSharedPtr<FString> Selection, ESelectInfo::Type SelectInfo)
{
GetSelectionParameterString(Selection, ImportUI->TextureImportData->BaseEmmisiveTextureName);
}
void FFbxImportUIDetails::OnEmissiveColor(TSharedPtr<FString> Selection, ESelectInfo::Type SelectInfo)
{
GetSelectionParameterString(Selection, ImportUI->TextureImportData->BaseEmissiveColorName);
}
#Loc: <Workspace>/Engine/Source/Editor/DetailCustomizations/Private/FbxImportUIDetails.cpp:1268
Scope (from outer to inner):
file
function FReply FFbxImportUIDetails::MaterialBaseParamClearAllProperties
Source code excerpt:
ImportUI->TextureImportData->BaseDiffuseTextureName.Empty();
ImportUI->TextureImportData->BaseNormalTextureName.Empty();
ImportUI->TextureImportData->BaseEmmisiveTextureName.Empty();
ImportUI->TextureImportData->BaseEmissiveColorName.Empty();
ImportUI->TextureImportData->BaseSpecularTextureName.Empty();
ImportUI->TextureImportData->BaseOpacityTextureName.Empty();
//Need to refresh the custom detail since we do not have any pointer on the combo box
RefreshCustomDetail();
return FReply::Handled();
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Classes/Factories/FbxTextureImportData.h:45
Scope (from outer to inner):
file
class class UFbxTextureImportData : public UFbxAssetImportData
Source code excerpt:
UPROPERTY(BlueprintReadWrite, config, Category = Material, meta = (ImportType = "Mesh"))
FString BaseEmmisiveTextureName;
UPROPERTY(BlueprintReadWrite, config, Category = Material, meta = (ImportType = "Mesh"))
FString BaseSpecularTextureName;
UPROPERTY(BlueprintReadWrite, config, Category = Material, meta = (ImportType = "Mesh"))
FString BaseOpacityTextureName;
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMainImport.cpp:394
Scope (from outer to inner):
file
namespace UnFbx
function void ApplyImportUIToImportOptions
Source code excerpt:
InOutImportOptions.BaseDiffuseTextureName = ImportUI->TextureImportData->BaseDiffuseTextureName;
InOutImportOptions.BaseNormalTextureName = ImportUI->TextureImportData->BaseNormalTextureName;
InOutImportOptions.BaseEmmisiveTextureName = ImportUI->TextureImportData->BaseEmmisiveTextureName;
InOutImportOptions.BaseSpecularTextureName = ImportUI->TextureImportData->BaseSpecularTextureName;
InOutImportOptions.BaseOpacityTextureName = ImportUI->TextureImportData->BaseOpacityTextureName;
InOutImportOptions.BaseEmissiveColorName = ImportUI->TextureImportData->BaseEmissiveColorName;
}
InOutImportOptions.bImportTextures = ImportUI->bImportTextures;
}
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMaterialImport.cpp:648
Scope (from outer to inner):
file
function UMaterialInterface* UnFbx::FFbxImporter::CreateUnrealMaterial
Source code excerpt:
if (FbxEmissiveProperty.IsValid())
{
bCanInstance &= CanUseMaterialWithInstance(FbxMaterial, FbxSurfaceMaterial::sEmissive, FbxImportOptions->BaseEmmisiveTextureName, FbxImportOptions->BaseMaterial, OutUVSets);
}
else
{
bCanInstance &= !FbxImportOptions->BaseEmissiveColorName.IsEmpty();
}
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Private/Fbx/FbxMaterialImport.cpp:702
Scope (from outer to inner):
file
function UMaterialInterface* UnFbx::FFbxImporter::CreateUnrealMaterial
Source code excerpt:
// textures and properties
bool bDiffuseTextureCreated = LinkMaterialProperty(FbxMaterial, UnrealMaterialConstant, FbxSurfaceMaterial::sDiffuse, FName(*FbxImportOptions->BaseDiffuseTextureName), false);
bool bEmissiveTextureCreated = LinkMaterialProperty(FbxMaterial, UnrealMaterialConstant, FbxSurfaceMaterial::sEmissive, FName(*FbxImportOptions->BaseEmmisiveTextureName), false);
bool bOpacityTextureCreated = LinkMaterialProperty(FbxMaterial, UnrealMaterialConstant, FbxSurfaceMaterial::sTransparentColor, FName(*FbxImportOptions->BaseOpacityTextureName), false);
LinkMaterialProperty(FbxMaterial, UnrealMaterialConstant, FbxSurfaceMaterial::sSpecular, FName(*FbxImportOptions->BaseSpecularTextureName), false);
if (!LinkMaterialProperty(FbxMaterial, UnrealMaterialConstant, FbxSurfaceMaterial::sNormalMap, FName(*FbxImportOptions->BaseNormalTextureName), true))
{
LinkMaterialProperty(FbxMaterial, UnrealMaterialConstant, FbxSurfaceMaterial::sBump, FName(*FbxImportOptions->BaseNormalTextureName), true); // no bump in unreal, use as normal map
}
#Loc: <Workspace>/Engine/Source/Editor/UnrealEd/Public/FbxImporter.h:167
Scope (from outer to inner):
file
namespace UnFbx
Source code excerpt:
FString BaseEmissiveColorName;
FString BaseNormalTextureName;
FString BaseEmmisiveTextureName;
FString BaseSpecularTextureName;
FString BaseOpacityTextureName;
EMaterialSearchLocation MaterialSearchLocation;
//If true the materials will be reorder to follow the fbx order
bool bReorderMaterialToFbxOrder;
// Skeletal Mesh options