Просмотр исходного кода

Adds import config settings for forcefully adding configurable suffixes for shapes, materials and images

Areloch 4 лет назад
Родитель
Сommit
a0c8a77043

+ 41 - 7
Engine/source/T3D/assets/assetImporter.cpp

@@ -37,6 +37,8 @@ AssetImportConfig::AssetImportConfig() :
    PreventImportWithErrors(true),
    AutomaticallyPromptMissingFiles(false),
    ImportMesh(true),
+   AlwaysAddShapeSuffix(false),
+   AddedShapeSuffix("_shape"),
    UseManualShapeConfigRules(false),
    DoUpAxisOverride(false),
    UpAxisOverride("Z_AXIS"),
@@ -63,6 +65,8 @@ AssetImportConfig::AssetImportConfig() :
    reverseWindingOrder(false),
    invertNormals(false),
    ImportMaterials(true),
+   AlwaysAddMaterialSuffix(true),
+   AddedMaterialSuffix("_mat"),
    CreateORMConfig(true),
    UseDiffuseSuffixOnOriginImage(false),
    UseExistingMaterials(false),
@@ -80,6 +84,8 @@ AssetImportConfig::AssetImportConfig() :
    GenLOSCollisionType(""),
    LOSCollisionMeshPrefix(""),
    importImages(true),
+   AlwaysAddImageSuffix(true),
+   AddedImageSuffix("_image"),
    ImageType("GUI"),
    DiffuseTypeSuffixes("_ALBEDO,_DIFFUSE,_ALB,_DIF,_COLOR,_COL,_A,_C,-ALBEDO,-DIFFUSE,-ALB,-DIF,-COLOR,-COL,-A,-C"),
    NormalTypeSuffixes("_NORMAL,_NORM,_N,-NORMAL,-NORM,-N"),
@@ -133,6 +139,8 @@ void AssetImportConfig::initPersistFields()
 
    addGroup("Meshes");
       addField("ImportMesh", TypeBool, Offset(ImportMesh, AssetImportConfig), "Indicates if this config supports importing meshes");
+      addField("AlwaysAddShapeSuffix", TypeBool, Offset(AlwaysAddShapeSuffix, AssetImportConfig), "When importing a shape, this indicates if it should automatically add a standard suffix onto the name");
+      addField("AddedShapeSuffix", TypeString, Offset(AddedShapeSuffix, AssetImportConfig), " If AlwaysAddShapeSuffix is on, this is the suffix to be added");
       addField("UseManualShapeConfigRules", TypeBool, Offset(UseManualShapeConfigRules, AssetImportConfig), "Indicates if this config should override the per-format sis files with the config's specific settings");
       addField("DoUpAxisOverride", TypeBool, Offset(DoUpAxisOverride, AssetImportConfig), "Indicates if the up axis in the model file should be overridden");
       addField("UpAxisOverride", TypeRealString, Offset(UpAxisOverride, AssetImportConfig), "If overriding, what axis should be used as up. Options are X_AXIS, Y_AXIS, Z_AXIS");
@@ -162,6 +170,8 @@ void AssetImportConfig::initPersistFields()
 
    addGroup("Materials");
       addField("ImportMaterials", TypeBool, Offset(ImportMaterials, AssetImportConfig), "Does this config allow for importing of materials");
+      addField("AlwaysAddMaterialSuffix", TypeBool, Offset(AlwaysAddMaterialSuffix, AssetImportConfig), "When importing a material, this indicates if it should automatically add a standard suffix onto the name");
+      addField("AddedMaterialSuffix", TypeString, Offset(AddedMaterialSuffix, AssetImportConfig), " If AlwaysAddMaterialSuffix is on, this is the suffix to be added");
       addField("CreateORMConfig", TypeBool, Offset(PreventImportWithErrors, AssetImportConfig), "When importing a material, should it automatically attempt to merge Roughness, AO and Metalness maps into a single, composited PBR Configuration map");
       addField("UseDiffuseSuffixOnOriginImage", TypeBool, Offset(UseDiffuseSuffixOnOriginImage, AssetImportConfig), "When generating a material off of an importing image, should the importer force appending a diffusemap suffix onto the end to avoid potential naming confusion.\n e.g. MyCoolStuff.png is imported, generating MyCoolStuff material asset and MyCoolStuff_Diffuse image asset");
       addField("UseExistingMaterials", TypeBool, Offset(UseExistingMaterials, AssetImportConfig), "Should the importer try and use existing material assets in the game directory if at all possible. (Not currently utilized)");
@@ -169,13 +179,13 @@ void AssetImportConfig::initPersistFields()
       addField("PopulateMaterialMaps", TypeBool, Offset(PopulateMaterialMaps, AssetImportConfig), "When processing a material asset, should the importer attempt to populate the various material maps on it by looking up common naming conventions for potentially relevent image files.\n e.g. If MyCoolStuff_Diffuse.png is imported, generating MyCoolStuff material, it would also find MyCoolStuff_Normal and MyCoolStuff_PBR images and map them to the normal and ORMConfig maps respectively automatically");
    endGroup("Materials");
 
-   addGroup("Meshes");
+   addGroup("Animation");
       addField("ImportAnimations", TypeBool, Offset(ImportAnimations, AssetImportConfig), "Does this config allow for importing Shape Animations");
       addField("SeparateAnimations", TypeBool, Offset(SeparateAnimations, AssetImportConfig), "When importing a shape file, should the animations within be separated out into unique files");
       addField("SeparateAnimationPrefix", TypeRealString, Offset(SeparateAnimationPrefix, AssetImportConfig), "If separating animations out from a source file, what prefix should be added to the names for grouping association");
       addField("animTiming", TypeRealString, Offset(animTiming, AssetImportConfig), "Defines the animation timing for the given animation sequence. Options are FrameTime, Seconds, Milliseconds");
       addField("animFPS", TypeBool, Offset(animFPS, AssetImportConfig), "The FPS of the animation sequence");
-   endGroup("General");
+   endGroup("Animation");
 
    addGroup("Collision");
       addField("GenerateCollisions", TypeBool, Offset(GenerateCollisions, AssetImportConfig), "Does this configuration generate collision geometry when importing. (Not currently enabled)");
@@ -188,6 +198,8 @@ void AssetImportConfig::initPersistFields()
 
    addGroup("Images");
       addField("importImages", TypeBool, Offset(importImages, AssetImportConfig), "Does this configuration support importing images.");
+      addField("AlwaysAddImageSuffix", TypeBool, Offset(AlwaysAddImageSuffix, AssetImportConfig), "When importing an image, this indicates if it should automatically add a standard suffix onto the name");
+      addField("AddedImageSuffix", TypeString, Offset(AddedImageSuffix, AssetImportConfig), " If AlwaysAddImageSuffix is on, this is the suffix to be added");
       addField("ImageType", TypeRealString, Offset(ImageType, AssetImportConfig), "What is the default ImageType images are imported as. Options are: N/A, Diffuse, Normal, Metalness, Roughness, AO, ORMConfig, GUI, Cubemap");
       addField("DiffuseTypeSuffixes", TypeRealString, Offset(DiffuseTypeSuffixes, AssetImportConfig), "What type of suffixes are scanned to detect if an importing image is a diffuse map. \n e.g. _Albedo or _Color");
       addField("NormalTypeSuffixes", TypeRealString, Offset(NormalTypeSuffixes, AssetImportConfig), "What type of suffixes are scanned to detect if an importing image is a normal map. \n e.g. _Normal or _Norm");
@@ -223,6 +235,8 @@ void AssetImportConfig::loadImportConfig(Settings* configSettings, String config
 
    //Meshes
    ImportMesh = dAtob(configSettings->value(String(configName + "/Meshes/ImportMesh").c_str()));
+   AlwaysAddShapeSuffix = dAtob(configSettings->value(String(configName + "/Meshes/AlwaysAddShapeSuffix").c_str()));
+   AddedShapeSuffix = configSettings->value(String(configName + "/Meshes/AddedShapeSuffix").c_str());
    UseManualShapeConfigRules = dAtob(configSettings->value(String(configName + "/Meshes/UseManualShapeConfigRules").c_str()));
    DoUpAxisOverride = dAtob(configSettings->value(String(configName + "/Meshes/DoUpAxisOverride").c_str()));
    UpAxisOverride = configSettings->value(String(configName + "/Meshes/UpAxisOverride").c_str());
@@ -253,6 +267,8 @@ void AssetImportConfig::loadImportConfig(Settings* configSettings, String config
 
    //Materials
    ImportMaterials = dAtob(configSettings->value(String(configName + "/Materials/ImportMaterials").c_str()));
+   AlwaysAddMaterialSuffix = dAtob(configSettings->value(String(configName + "/Materials/AlwaysAddMaterialSuffix").c_str()));
+   AddedMaterialSuffix = configSettings->value(String(configName + "/Materials/AddedMaterialSuffix").c_str());
    CreateORMConfig = dAtob(configSettings->value(String(configName + "/Materials/CreateORMConfig").c_str()));
    UseDiffuseSuffixOnOriginImage = dAtob(configSettings->value(String(configName + "/Materials/UseDiffuseSuffixOnOriginImage").c_str()));
    UseExistingMaterials = dAtob(configSettings->value(String(configName + "/Materials/UseExistingMaterials").c_str()));
@@ -276,6 +292,8 @@ void AssetImportConfig::loadImportConfig(Settings* configSettings, String config
 
    //Images
    importImages = dAtob(configSettings->value(String(configName + "/Images/importImages").c_str()));
+   AlwaysAddImageSuffix = dAtob(configSettings->value(String(configName + "/Images/AlwaysAddImageSuffix").c_str()));
+   AddedImageSuffix = configSettings->value(String(configName + "/Images/AddedImageSuffix").c_str());
    ImageType = configSettings->value(String(configName + "/Images/ImageType").c_str());
    DiffuseTypeSuffixes = configSettings->value(String(configName + "/Images/DiffuseTypeSuffixes").c_str());
    NormalTypeSuffixes = configSettings->value(String(configName + "/Images/NormalTypeSuffixes").c_str());
@@ -306,6 +324,8 @@ void AssetImportConfig::CopyTo(AssetImportConfig* target) const
 
    //Meshes
    target->ImportMesh = ImportMesh;
+   target->AlwaysAddShapeSuffix = AlwaysAddShapeSuffix;
+   target->AddedShapeSuffix = AddedShapeSuffix;
    target->UseManualShapeConfigRules = UseManualShapeConfigRules;
    target->DoUpAxisOverride = DoUpAxisOverride;
    target->UpAxisOverride = UpAxisOverride;
@@ -336,6 +356,8 @@ void AssetImportConfig::CopyTo(AssetImportConfig* target) const
 
    //Materials
    target->ImportMaterials = ImportMaterials;
+   target->AlwaysAddMaterialSuffix = AlwaysAddMaterialSuffix;
+   target->AddedMaterialSuffix = AddedMaterialSuffix;
    target->CreateORMConfig = CreateORMConfig;
    target->UseDiffuseSuffixOnOriginImage = UseDiffuseSuffixOnOriginImage;
    target->UseExistingMaterials = UseExistingMaterials;
@@ -359,6 +381,8 @@ void AssetImportConfig::CopyTo(AssetImportConfig* target) const
 
    //Images
    target->importImages = importImages;
+   target->AlwaysAddImageSuffix = AlwaysAddImageSuffix;
+   target->AddedImageSuffix = AddedImageSuffix;
    target->ImageType = ImageType;
    target->DiffuseTypeSuffixes = DiffuseTypeSuffixes;
    target->NormalTypeSuffixes = NormalTypeSuffixes;
@@ -1537,9 +1561,9 @@ void AssetImporter::processImageAsset(AssetImportObject* assetItem)
          {
             //We need to ensure that our image asset doesn't match the same name as the material asset, so if we're not trying to force the diffuse suffix
             //we'll give it a generic one
-            if (materialAsset && materialAsset->assetName.compare(assetItem->assetName) == 0)
+            if ((materialAsset && materialAsset->assetName.compare(assetItem->assetName) == 0) || activeImportConfig->AlwaysAddImageSuffix)
             {
-               assetItem->assetName = assetItem->assetName + "_image";
+               assetItem->assetName = assetItem->assetName + activeImportConfig->AddedImageSuffix;
                assetItem->cleanAssetName = assetItem->assetName;
             }
          }
@@ -1585,6 +1609,11 @@ void AssetImporter::processMaterialAsset(AssetImportObject* assetItem)
       }
    }
 
+   if (activeImportConfig->AlwaysAddMaterialSuffix)
+   {
+      assetItem->assetName += activeImportConfig->AddedMaterialSuffix;
+   }
+
    if (activeImportConfig->PopulateMaterialMaps)
    {
       //If we're trying to populate the rest of our material maps, we need to go looking
@@ -1787,6 +1816,11 @@ void AssetImporter::processShapeAsset(AssetImportObject* assetItem)
       assetItem->shapeInfo = shapeInfo;
    }
 
+   if (activeImportConfig->AlwaysAddShapeSuffix)
+   {
+      assetItem->assetName += activeImportConfig->AddedShapeSuffix;
+   }
+
    S32 meshCount = dAtoi(assetItem->shapeInfo->getDataField(StringTable->insert("_meshCount"), nullptr));
    S32 shapeItem = assetItem->shapeInfo->findItemByName("Meshes");
 
@@ -1851,7 +1885,7 @@ void AssetImporter::processShapeMaterialInfo(AssetImportObject* assetItem, S32 m
    if (matName == assetItem->assetName)
    {
       //So apparently we managed to name the material the same as the shape. So we'll tweak the name
-      matAssetName += String("_Mat");
+      matAssetName += activeImportConfig->AlwaysAddMaterialSuffix;
    }
 
    //Do a check so we don't import materials that are on our ignore list
@@ -2015,9 +2049,9 @@ void AssetImporter::processSoundAsset(AssetImportObject* assetItem)
          {
             //We need to ensure that our image asset doesn't match the same name as the material asset, so if we're not trying to force the diffuse suffix
             //we'll give it a generic one
-            if (materialAsset && materialAsset->assetName.compare(assetItem->assetName) == 0)
+            if ((materialAsset && materialAsset->assetName.compare(assetItem->assetName) == 0) || activeImportConfig->AlwaysAddImageSuffix)
             {
-               assetItem->assetName = assetItem->assetName + "_image";
+               assetItem->assetName = assetItem->assetName + activeImportConfig->AddedImageSuffix;
                assetItem->cleanAssetName = assetItem->assetName;
             }
          }

+ 30 - 0
Engine/source/T3D/assets/assetImporter.h

@@ -47,6 +47,16 @@ public:
    /// </summary>
    bool ImportMesh;
 
+   /// <summary>
+   /// When importing a shape, this indicates if it should automatically add a standard suffix onto the name
+   /// </summary>
+   bool AlwaysAddShapeSuffix;
+
+   /// <summary>
+   /// If AlwaysAddShapeSuffix is on, this is the suffix to be added
+   /// </summary>
+   String AddedShapeSuffix;
+
    /// <summary>
    /// Indicates if this config should override the per-format sis files with the config's specific settings
    /// </summary>
@@ -187,6 +197,16 @@ public:
    /// </summary>
    bool CreateORMConfig;
 
+   /// <summary>
+   /// When creating a material on import, this indicates if it should automatically add a standard suffix onto the name
+   /// </summary>
+   bool AlwaysAddMaterialSuffix;
+
+   /// <summary>
+   /// If AlwaysAddMaterialSuffix is on, this is the suffix to be added
+   /// </summary>
+   String AddedMaterialSuffix;
+
    /// <summary>
    /// When generating a material off of an importing image, should the importer force appending a diffusemap suffix onto the end to avoid potential naming confusion.
    /// e.g. MyCoolStuff.png is imported, generating MyCoolStuff material asset and MyCoolStuff_Diffuse image asset
@@ -275,6 +295,16 @@ public:
    /// </summary>
    bool importImages;
 
+   /// <summary>
+   /// When importing an image, this indicates if it should automatically add a standard suffix onto the name
+   /// </summary>
+   bool AlwaysAddImageSuffix;
+
+   /// <summary>
+   /// If AlwaysAddImageSuffix is on, this is the suffix to be added
+   /// </summary>
+   String AddedImageSuffix;
+
    /// <summary>
    /// What is the default ImageType images are imported as. Options are: N/A, Diffuse, Normal, Metalness, Roughness, AO, ORMConfig, GUI, Cubemap
    /// </summary>

+ 110 - 92
Templates/BaseGame/game/tools/assetBrowser/assetImportConfigs.xml

@@ -1,138 +1,156 @@
 <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
 <AssetImportSettings>
-    <Group name="NewTest">
+    <Group name="DefaultImportConfig">
+        <Group name="Animations">
+            <Setting name="animFPS">2</Setting>
+            <Setting name="animTiming">Seconds</Setting>
+            <Setting name="ImportAnimations">1</Setting>
+            <Setting name="SeparateAnimations">1</Setting>
+        </Group>
+        <Group name="Collision">
+            <Setting name="CollisionMeshPrefix">Col</Setting>
+            <Setting name="GenCollisionType">CollisionMesh</Setting>
+            <Setting name="GenerateCollisions">1</Setting>
+            <Setting name="GenerateLOSCollisions">1</Setting>
+            <Setting name="GenLOSCollisionType">CollisionMesh</Setting>
+            <Setting name="LOSCollisionMeshPrefix">LOS</Setting>
+        </Group>
+        <Group name="General">
+            <Setting name="AutomaticallyPromptMissingFiles">0</Setting>
+            <Setting name="DuplicatAutoResolution">AutoPrune</Setting>
+            <Setting name="PreventImportWithErrors">1</Setting>
+            <Setting name="WarningsAsErrors">0</Setting>
+        </Group>
+        <Group name="Images">
+            <Setting name="AddedImageSuffix">_image</Setting>
+            <Setting name="AlwaysAddImageSuffix">1</Setting>
+            <Setting name="AOTypeSuffixes">_AO,_AMBIENT,_AMBIENTOCCLUSION</Setting>
+            <Setting name="CompositeTypeSuffixes">_COMP,_COMPOSITE,_PBR,-COMP,-COMPOSITE,-PBR,_ORM,-ORM</Setting>
+            <Setting name="Compressed">1</Setting>
+            <Setting name="DiffuseTypeSuffixes">_ALBEDO,_DIFFUSE,_ALB,_DIF,_COLOR,_COL</Setting>
+            <Setting name="GenerateMaterialOnImport">1</Setting>
+            <Setting name="ImageType">N/A</Setting>
+            <Setting name="ImportImages">1</Setting>
+            <Setting name="IsHDR">0</Setting>
+            <Setting name="MetalnessTypeSuffixes">_METAL,_MET,_METALNESS,_METALLIC</Setting>
+            <Setting name="NormalTypeSuffixes">_NORMAL,_NORM</Setting>
+            <Setting name="RoughnessTypeSuffixes">_ROUGH,_ROUGHNESS</Setting>
+            <Setting name="Scaling">1.0</Setting>
+            <Setting name="SmoothnessTypeSuffixes">_SMOOTH,_SMOOTHNESS</Setting>
+            <Setting name="TextureFilteringMode">Bilinear</Setting>
+            <Setting name="UseMips">1</Setting>
+        </Group>
+        <Group name="Materials">
+            <Setting name="AddedMaterialSuffix">_mat</Setting>
+            <Setting name="AlwaysAddMaterialSuffix">0</Setting>
+            <Setting name="CreateComposites">1</Setting>
+            <Setting name="ImportMaterials">1</Setting>
+            <Setting name="PopulateMaterialMaps">1</Setting>
+            <Setting name="UseDiffuseSuffixOnOriginImage">1</Setting>
+            <Setting name="UseExistingMaterials">1</Setting>
+        </Group>
         <Group name="Meshes">
+            <Setting name="AddedShapeSuffix">_shape</Setting>
+            <Setting name="AdjustCenter">0</Setting>
+            <Setting name="AdjustFloor">0</Setting>
+            <Setting name="AlwaysAddShapeSuffix">0</Setting>
             <Setting name="calcTangentSpace">0</Setting>
             <Setting name="CollapseSubmeshes">0</Setting>
-            <Setting name="LODType">TrailingNumber</Setting>
-            <Setting name="removeRedundantMats">0</Setting>
-            <Setting name="ImportMesh">1</Setting>
+            <Setting name="convertLeftHanded">0</Setting>
+            <Setting name="DoScaleOverride">0</Setting>
             <Setting name="DoUpAxisOverride">0</Setting>
-            <Setting name="UpAxisOverride">Z_AXIS</Setting>
+            <Setting name="findInstances">0</Setting>
+            <Setting name="flipUVCoords">0</Setting>
+            <Setting name="genUVCoords">0</Setting>
+            <Setting name="IgnoreNodeScale">0</Setting>
+            <Setting name="ImportMesh">1</Setting>
             <Setting name="invertNormals">0</Setting>
-            <Setting name="limitBoneWeights">0</Setting>
-            <Setting name="AdjustFloor">0</Setting>
             <Setting name="JoinIdenticalVerts">0</Setting>
+            <Setting name="limitBoneWeights">0</Setting>
+            <Setting name="LODType">TrailingNumber</Setting>
+            <Setting name="removeRedundantMats">0</Setting>
             <Setting name="reverseWindingOrder">0</Setting>
-            <Setting name="genUVCoords">0</Setting>
-            <Setting name="TransformUVs">0</Setting>
-            <Setting name="flipUVCoords">0</Setting>
-            <Setting name="AdjustCenter">0</Setting>
-            <Setting name="convertLeftHanded">0</Setting>
-            <Setting name="findInstances">0</Setting>
-            <Setting name="IgnoreNodeScale">0</Setting>
             <Setting name="ScaleOverride">1</Setting>
-            <Setting name="DoScaleOverride">0</Setting>
+            <Setting name="TransformUVs">0</Setting>
+            <Setting name="UpAxisOverride">Z_AXIS</Setting>
         </Group>
         <Group name="Sounds">
             <Setting name="Compressed">0</Setting>
             <Setting name="PitchAdjust">1.0</Setting>
             <Setting name="VolumeAdjust">1.0</Setting>
         </Group>
-        <Group name="Images">
-            <Setting name="MetalnessTypeSuffixes">_METAL,_MET,_METALNESS,_METALLIC</Setting>
-            <Setting name="Scaling">1.0</Setting>
-            <Setting name="IsHDR">0</Setting>
-            <Setting name="ImageType">N/A</Setting>
-            <Setting name="Compressed">1</Setting>
-            <Setting name="PBRTypeSuffixes">_COMP,_COMPOSITE,_PBR,-COMP,-COMPOSITE,-PBR,_ORM,-ORM</Setting>
-            <Setting name="NormalTypeSuffixes">_NORMAL,_NORM</Setting>
-            <Setting name="AOTypeSuffixes">_AO,_AMBIENT,_AMBIENTOCCLUSION</Setting>
-            <Setting name="DiffuseTypeSuffixes">_ALBEDO,_DIFFUSE,_ALB,_DIF,_COLOR,_COL</Setting>
-            <Setting name="SmoothnessTypeSuffixes">_SMOOTH,_SMOOTHNESS</Setting>
-            <Setting name="GenerateMaterialOnImport">1</Setting>
-            <Setting name="TextureFilteringMode">Bilinear</Setting>
-            <Setting name="UseMips">1</Setting>
-            <Setting name="RoughnessTypeSuffixes">_ROUGH,_ROUGHNESS</Setting>
-        </Group>
+    </Group>
+    <Group name="NewTest">
         <Group name="Animations">
-            <Setting name="animTiming">Seconds</Setting>
             <Setting name="animFPS">2</Setting>
+            <Setting name="animTiming">Seconds</Setting>
             <Setting name="ImportAnimations">1</Setting>
             <Setting name="SeparateAnimations">1</Setting>
         </Group>
-        <Group name="General">
-            <Setting name="WarningsAsErrors">0</Setting>
-            <Setting name="AutomaticallyPromptMissingFiles">0</Setting>
-            <Setting name="DuplicatAutoResolution">AutoPrune</Setting>
-            <Setting name="PreventImportWithErrors">1</Setting>
-        </Group>
         <Group name="Collision">
-            <Setting name="GenLOSCollisionType">CollisionMesh</Setting>
-            <Setting name="LOSCollisionMeshPrefix">LOS</Setting>
             <Setting name="CollisionMeshPrefix">Col</Setting>
-            <Setting name="GenerateLOSCollisions">1</Setting>
             <Setting name="GenCollisionType">CollisionMesh</Setting>
             <Setting name="GenerateCollisions">1</Setting>
-        </Group>
-        <Group name="Materials">
-            <Setting name="ImportMaterials">1</Setting>
-            <Setting name="UseExistingMaterials">1</Setting>
-            <Setting name="UseDiffuseSuffixOnOriginImage">1</Setting>
-            <Setting name="CreateComposites">1</Setting>
-            <Setting name="PopulateMaterialMaps">1</Setting>
-        </Group>
-    </Group>
-    <Group name="DefaultConfig">
-        <Group name="Collision">
-            <Setting name="LOSCollisionMeshPrefix">LOS</Setting>
             <Setting name="GenerateLOSCollisions">1</Setting>
-            <Setting name="CollisionMeshPrefix">Col</Setting>
-            <Setting name="GenerateCollisions">1</Setting>
             <Setting name="GenLOSCollisionType">CollisionMesh</Setting>
-            <Setting name="GenCollisionType">CollisionMesh</Setting>
+            <Setting name="LOSCollisionMeshPrefix">LOS</Setting>
         </Group>
-        <Group name="Meshes">
-            <Setting name="AdjustCenter">0</Setting>
-            <Setting name="invertNormals">0</Setting>
-            <Setting name="AdjustFloor">0</Setting>
-            <Setting name="JoinIdenticalVerts">1</Setting>
-            <Setting name="reverseWindingOrder">0</Setting>
-            <Setting name="ScaleOverride">1</Setting>
-            <Setting name="DoUpAxisOverride">0</Setting>
-            <Setting name="UpAxisOverride">Z_AXIS</Setting>
-            <Setting name="CollapseSubmeshes">0</Setting>
-            <Setting name="LODType">TrailingNumber</Setting>
-            <Setting name="IgnoreNodeScale">0</Setting>
-            <Setting name="DoScaleOverride">0</Setting>
+        <Group name="General">
+            <Setting name="AutomaticallyPromptMissingFiles">0</Setting>
+            <Setting name="DuplicatAutoResolution">AutoPrune</Setting>
+            <Setting name="PreventImportWithErrors">1</Setting>
+            <Setting name="WarningsAsErrors">0</Setting>
         </Group>
         <Group name="Images">
             <Setting name="AOTypeSuffixes">_AO,_AMBIENT,_AMBIENTOCCLUSION</Setting>
-            <Setting name="DiffuseTypeSuffixes">_ALBEDO,_DIFFUSE,_ALB,_DIF,_COLOR,_COL,_baseColor,_a,</Setting>
-            <Setting name="PopulateMaterialMaps">1</Setting>
-            <Setting name="ImageType">N/A</Setting>
+            <Setting name="Compressed">1</Setting>
+            <Setting name="DiffuseTypeSuffixes">_ALBEDO,_DIFFUSE,_ALB,_DIF,_COLOR,_COL</Setting>
             <Setting name="GenerateMaterialOnImport">1</Setting>
+            <Setting name="ImageType">N/A</Setting>
+            <Setting name="IsHDR">0</Setting>
+            <Setting name="MetalnessTypeSuffixes">_METAL,_MET,_METALNESS,_METALLIC</Setting>
             <Setting name="NormalTypeSuffixes">_NORMAL,_NORM</Setting>
-            <Setting name="TextureFilteringMode">Bilinear</Setting>
-            <Setting name="RoughnessTypeSuffixes">_ROUGH,_ROUGHNESS</Setting>
             <Setting name="PBRTypeSuffixes">_COMP,_COMPOSITE,_PBR,-COMP,-COMPOSITE,-PBR,_ORM,-ORM</Setting>
-            <Setting name="UseMips">1</Setting>
-            <Setting name="Compressed">1</Setting>
+            <Setting name="RoughnessTypeSuffixes">_ROUGH,_ROUGHNESS</Setting>
             <Setting name="Scaling">1.0</Setting>
-            <Setting name="MetalnessTypeSuffixes">_METAL,_MET,_METALNESS,_METALLIC</Setting>
-            <Setting name="IsHDR">0</Setting>
             <Setting name="SmoothnessTypeSuffixes">_SMOOTH,_SMOOTHNESS</Setting>
+            <Setting name="TextureFilteringMode">Bilinear</Setting>
+            <Setting name="UseMips">1</Setting>
         </Group>
         <Group name="Materials">
-            <Setting name="UseExistingMaterials">1</Setting>
-            <Setting name="UseDiffuseSuffixOnOriginImage">1</Setting>
+            <Setting name="CreateComposites">1</Setting>
             <Setting name="ImportMaterials">1</Setting>
-            <Setting name="AlwaysPresentImageMaps">0</Setting>
             <Setting name="PopulateMaterialMaps">1</Setting>
-            <Setting name="IgnoreMaterials">Default*;</Setting>
-            <Setting name="CreateComposites">1</Setting>
+            <Setting name="UseDiffuseSuffixOnOriginImage">1</Setting>
+            <Setting name="UseExistingMaterials">1</Setting>
+        </Group>
+        <Group name="Meshes">
+            <Setting name="AdjustCenter">0</Setting>
+            <Setting name="AdjustFloor">0</Setting>
+            <Setting name="calcTangentSpace">0</Setting>
+            <Setting name="CollapseSubmeshes">0</Setting>
+            <Setting name="convertLeftHanded">0</Setting>
+            <Setting name="DoScaleOverride">0</Setting>
+            <Setting name="DoUpAxisOverride">0</Setting>
+            <Setting name="findInstances">0</Setting>
+            <Setting name="flipUVCoords">0</Setting>
+            <Setting name="genUVCoords">0</Setting>
+            <Setting name="IgnoreNodeScale">0</Setting>
+            <Setting name="ImportMesh">1</Setting>
+            <Setting name="invertNormals">0</Setting>
+            <Setting name="JoinIdenticalVerts">0</Setting>
+            <Setting name="limitBoneWeights">0</Setting>
+            <Setting name="LODType">TrailingNumber</Setting>
+            <Setting name="removeRedundantMats">0</Setting>
+            <Setting name="reverseWindingOrder">0</Setting>
+            <Setting name="ScaleOverride">1</Setting>
+            <Setting name="TransformUVs">0</Setting>
+            <Setting name="UpAxisOverride">Z_AXIS</Setting>
         </Group>
         <Group name="Sounds">
-            <Setting name="VolumeAdjust">1.0</Setting>
-            <Setting name="PitchAdjust">1.0</Setting>
             <Setting name="Compressed">0</Setting>
-        </Group>
-        <Group name="General">
-            <Setting name="DuplicatAutoResolution">AutoPrune</Setting>
-        </Group>
-        <Group name="Animations">
-            <Setting name="SeparateAnimations">1</Setting>
-            <Setting name="ImportAnimations">1</Setting>
+            <Setting name="PitchAdjust">1.0</Setting>
+            <Setting name="VolumeAdjust">1.0</Setting>
         </Group>
     </Group>
 </AssetImportSettings>

+ 15 - 1
Templates/BaseGame/game/tools/assetBrowser/scripts/assetImportConfig.tscript

@@ -37,6 +37,8 @@ function setupImportConfigSettingsList()
       ImportAssetConfigSettingsList.addNewConfigSetting("General/AutomaticallyPromptMissingFiles", "Automatically Prompt Missing Files", "bool", "", "0", "", "");
    
       ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/ImportMesh", "Import Mesh", "bool", "", "1", "", "ToggleImportMesh");
+      ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/AlwaysAddShapeSuffix", "Always Add Shape Suffix", "bool", "", "0", "");
+      ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/AddedShapeSuffix", "Added Shape Suffix", "string", "", "_shape", "");
       ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/DoUpAxisOverride", "Do Up-axis Override", "bool", "", "0", "");
       ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/UpAxisOverride", "Up-axis Override", "list", "", "Z_AXIS", "X_AXIS,Y_AXIS,Z_AXIS");
       ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/DoScaleOverride", "Do Scale Override", "bool", "", "0", "");
@@ -67,6 +69,8 @@ function setupImportConfigSettingsList()
       
       //Materials
       ImportAssetConfigSettingsList.addNewConfigSetting("Materials/ImportMaterials", "Import Materials", "bool", "", "1", "");
+      ImportAssetConfigSettingsList.addNewConfigSetting("Materials/AlwaysAddMaterialSuffix", "Always Add Material Suffix", "bool", "", "1", "");
+      ImportAssetConfigSettingsList.addNewConfigSetting("Materials/AddedMaterialSuffix", "Added Material Suffix", "string", "", "_mat", "");
       ImportAssetConfigSettingsList.addNewConfigSetting("Materials/CreateComposites", "Create Composites", "bool", "", "1", "");
       ImportAssetConfigSettingsList.addNewConfigSetting("Materials/UseDiffuseSuffixOnOriginImage", "Use Diffuse Suffix for Origin Image", "bool", "", "1", "");
       ImportAssetConfigSettingsList.addNewConfigSetting("Materials/UseExistingMaterials", "Use Existing Materials", "bool", "", "1", "");
@@ -89,6 +93,9 @@ function setupImportConfigSettingsList()
       ImportAssetConfigSettingsList.addNewConfigSetting("Collision/LOSCollisionMeshPrefix", "LOS CollisionMesh Prefix", "string", "", "LOS", "");
       
       //Images
+      ImportAssetConfigSettingsList.addNewConfigSetting("Images/ImportImages", "Import Images", "bool", "", "1", "");
+      ImportAssetConfigSettingsList.addNewConfigSetting("Images/AlwaysAddImageSuffix", "Always Add Image Suffix", "bool", "", "1", "");
+      ImportAssetConfigSettingsList.addNewConfigSetting("Images/AddedImageSuffix", "Added Image Suffix", "string", "", "_image", "");
       ImportAssetConfigSettingsList.addNewConfigSetting("Images/ImageType", "Image Type", "list", "", "N/A", "N/A,Diffuse,Normal,Specular,Metalness,Roughness,AO,Composite,GUI");
       ImportAssetConfigSettingsList.addNewConfigSetting("Images/DiffuseTypeSuffixes", "Diffuse Type Suffixes", "command", "", "_ALBEDO,_DIFFUSE,_ALB,_DIF,_COLOR,_COL", "");
       ImportAssetConfigSettingsList.addNewConfigSetting("Images/NormalTypeSuffixes", "Normal Type Suffixes", "command", "", "_NORMAL,_NORM", "");
@@ -303,6 +310,8 @@ function ImportAssetConfigEditorWindow::addNewConfig(%this)
    
    //Meshes
    AssetImportSettings.setValue("Meshes/ImportMesh", "1");
+   AssetImportSettings.setValue("Meshes/AlwaysAddShapeSuffix", "0");
+   AssetImportSettings.setValue("Meshes/AddedShapeSuffix", "_shape");
    AssetImportSettings.setValue("Meshes/DoUpAxisOverride", "0");
    AssetImportSettings.setValue("Meshes/UpAxisOverride", "Z_AXIS");
    AssetImportSettings.setValue("Meshes/DoScaleOverride", "0");
@@ -319,6 +328,8 @@ function ImportAssetConfigEditorWindow::addNewConfig(%this)
    
    //Materials
    AssetImportSettings.setValue("Materials/ImportMaterials", "1");
+   AssetImportSettings.setValue("Materials/AlwaysAddMaterialSuffix", "1");
+   AssetImportSettings.setValue("Materials/AddedMaterialSuffix", "_mat");
    AssetImportSettings.setValue("Materials/IgnoreMaterials", "");
    AssetImportSettings.setValue("Materials/CreateComposites", "1");
    AssetImportSettings.setValue("Materials/UseDiffuseSuffixOnOriginImage", "1");
@@ -339,6 +350,9 @@ function ImportAssetConfigEditorWindow::addNewConfig(%this)
    AssetImportSettings.setValue("Collision/LOSCollisionMeshPrefix", "LOS");
    
    //Images
+   AssetImportSettings.setValue("Images/ImportImage", "1");
+   AssetImportSettings.setValue("Images/AlwaysAddImageSuffix", "1");
+   AssetImportSettings.setValue("Images/AddedImageSuffix", "_image");
    AssetImportSettings.setValue("Images/ImageType", "N/A");
    AssetImportSettings.setValue("Images/DiffuseTypeSuffixes", "_ALBEDO;_DIFFUSE;_ALB;_DIF;_COLOR;_COL;_BASECOLOR;_BASE_COLOR");
    AssetImportSettings.setValue("Images/NormalTypeSuffixes", "_NORMAL;_NORM");
@@ -346,7 +360,7 @@ function ImportAssetConfigEditorWindow::addNewConfig(%this)
    AssetImportSettings.setValue("Images/RoughnessTypeSuffixes", "_ROUGH;_ROUGHNESS");
    AssetImportSettings.setValue("Images/SmoothnessTypeSuffixes", "_SMOOTH;_SMOOTHNESS");
    AssetImportSettings.setValue("Images/AOTypeSuffixes", "_AO;_AMBIENT;_AMBIENTOCCLUSION");
-   AssetImportSettings.setValue("Images/CompositeTypeSuffixes", "_COMP;_COMPOSITE");
+   AssetImportSettings.setValue("Images/CompositeTypeSuffixes", "_COMP;_COMPOSITE;_PBR;-COMP;-COMPOSITE;-PBR;_ORM;-ORM");
    AssetImportSettings.setValue("Images/TextureFilteringMode", "Bilinear");
    AssetImportSettings.setValue("Images/UseMips", "1");
    AssetImportSettings.setValue("Images/IsHDR", "0");

+ 2 - 2
Templates/BaseGame/game/tools/settings.xml

@@ -17,10 +17,10 @@
         <Setting name="TerrainMatAssetSubdirectoryFormat">&lt;AssetType&gt;/</Setting>
     </Group>
     <Group name="Assets">
-        <Setting name="AssetImporDefaultConfig">TestConfig</Setting>
+        <Setting name="AssetImporDefaultConfig">DefaultImportConfig</Setting>
         <Setting name="AutoImport">1</Setting>
         <Group name="Browser">
-            <Setting name="previewTileSize">small</Setting>
+            <Setting name="previewTileSize">1</Setting>
         </Group>
     </Group>
     <Group name="AxisGizmo">