assetImportConfig.tscript 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492
  1. function ImportAssetConfigList::onSelect( %this, %id, %text )
  2. {
  3. //Apply our settings to the assets
  4. echo("Changed our import config!");
  5. ImportAssetWindow.activeImportConfigIndex = %id;
  6. //ImportAssetWindow.activeImportConfig = ImportAssetWindow.importConfigsList.getKey(%id);
  7. if(!isObject(ImportAssetWindow.activeImportConfig))
  8. ImportAssetWindow.activeImportConfig = new AssetImportConfig();
  9. ImportAssetWindow.activeImportConfig.loadImportConfig(AssetImportSettings, ImportAssetWindow.importConfigsList.getKey(%id));
  10. ImportAssetWindow.importer.setImportConfig(ImportAssetWindow.activeImportConfig);
  11. //If we were trying to import anything, refresh it with the new config
  12. ImportAssetWindow.importer.resetImportSession();
  13. //if( ImportAssetWindow.importingFilesArray.count() != 0)
  14. // AssetBrowser.reloadImportingFiles();
  15. }
  16. function setupImportConfigSettingsList()
  17. {
  18. if(!isObject(ImportAssetConfigSettingsList))
  19. {
  20. new ArrayObject(ImportAssetConfigSettingsList);
  21. ImportAssetConfigSettingsList.addNewConfigSetting("General/DuplicateAutoResolution", "Duplicate Asset Auto-Resolution Action", "list", "", "AutoRename", "None,AutoPrune,AutoRename,FolderPrefix");
  22. ImportAssetConfigSettingsList.addNewConfigSetting("General/WarningsAsErrors", "Warnings As Errors", "bool", "", "0", "", "");
  23. ImportAssetConfigSettingsList.addNewConfigSetting("General/PreventImportWithErrors", "Prevent Import With Errors", "bool", "", "1", "", "");
  24. ImportAssetConfigSettingsList.addNewConfigSetting("General/AutomaticallyPromptMissingFiles", "Automatically Prompt Missing Files", "bool", "", "0", "", "");
  25. ImportAssetConfigSettingsList.addNewConfigSetting("General/AddDirectoryPrefixToAssetName", "Adds the name of the folder to importing asset name", "bool", "", "0", "", "");
  26. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/ImportMesh", "Import Mesh", "bool", "", "1", "", "ToggleImportMesh");
  27. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/AlwaysAddShapeSuffix", "Always Add Shape Suffix", "bool", "", "0", "");
  28. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/AddedShapeSuffix", "Added Shape Suffix", "string", "", "_shape", "");
  29. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/DoUpAxisOverride", "Do Up-axis Override", "bool", "", "0", "");
  30. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/UpAxisOverride", "Up-axis Override", "list", "", "Z_AXIS", "X_AXIS,Y_AXIS,Z_AXIS");
  31. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/DoScaleOverride", "Do Scale Override", "bool", "", "0", "");
  32. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/ScaleOverride", "Scale Override", "float", "", "1", "");
  33. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/IgnoreNodeScale", "Ignore Node Scale", "bool", "", "0", "");
  34. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/AdjustCenter", "Adjust Center", "bool", "", "0", "");
  35. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/AdjustFloor", "Adjust Floor", "bool", "", "0", "");
  36. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/CollapseSubmeshes", "Collapse Submeshes", "bool", "", "0", "");
  37. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/LODType", "LOD Type", "list", "", "TrailingNumber", "TrailingNumber,DetectDTS,SingleSize");
  38. //ImportAssetConfigSettingsList.addNewConfigSetting("TrailingNumber", "Trailing Number", "float", "", "2", "", "Mesh");
  39. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/AlwaysImportedNodes", "Always Imported Nodes", "command", "", "", "");
  40. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/AlwaysIgnoreNodes", "Always Ignored Nodes", "command", "", "", "");
  41. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/AlwaysImportMeshes", "Always Imported Meshes", "command", "", "", "");
  42. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/AlwaysIgnoreMeshes", "Always Ignored Meshes", "command", "", "", "");
  43. //Assimp/Collada params
  44. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/convertLeftHanded", "Convert To Left Hand", "bool", "", "0", "");
  45. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/calcTangentSpace", "Calculate Tangent Space", "bool", "", "0", "");
  46. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/removeRedundantMats", "Remove Redundant Materials", "bool", "", "0", "");
  47. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/genUVCoords", "Generate UV Corrdinates", "bool", "", "0", "");
  48. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/TransformUVs", "Transform UV Coordinates", "bool", "", "0", "");
  49. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/flipUVCoords", "Flip UV Coordinates", "bool", "", "0", "");
  50. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/findInstances", "Find Instances", "bool", "", "0", "");
  51. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/limitBoneWeights", "Limit Bone Weights", "bool", "", "0", "");
  52. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/JoinIdenticalVerts", "Join Identical Verts", "bool", "", "0", "");
  53. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/reverseWindingOrder", "Flip Winding Order", "bool", "", "0", "");
  54. ImportAssetConfigSettingsList.addNewConfigSetting("Meshes/invertNormals", "Invert Normals", "bool", "", "0", "");
  55. //Materials
  56. ImportAssetConfigSettingsList.addNewConfigSetting("Materials/ImportMaterials", "Import Materials", "bool", "", "1", "");
  57. ImportAssetConfigSettingsList.addNewConfigSetting("Materials/AlwaysAddMaterialSuffix", "Always Add Material Suffix", "bool", "", "1", "");
  58. ImportAssetConfigSettingsList.addNewConfigSetting("Materials/AddedMaterialSuffix", "Added Material Suffix", "string", "", "_mat", "");
  59. ImportAssetConfigSettingsList.addNewConfigSetting("Materials/CreateComposites", "Create Composites", "bool", "", "1", "");
  60. ImportAssetConfigSettingsList.addNewConfigSetting("Materials/UseDiffuseSuffixOnOriginImage", "Use Diffuse Suffix for Origin Image", "bool", "", "1", "");
  61. ImportAssetConfigSettingsList.addNewConfigSetting("Materials/UseExistingMaterials", "Use Existing Materials", "bool", "", "1", "");
  62. ImportAssetConfigSettingsList.addNewConfigSetting("Materials/IgnoreMaterials", "Ignore Materials", "command", "", "", "");
  63. ImportAssetConfigSettingsList.addNewConfigSetting("Materials/PopulateMaterialMaps", "Populate Material Maps", "bool", "", "1", "");
  64. //Animations
  65. ImportAssetConfigSettingsList.addNewConfigSetting("Animations/ImportAnimations", "Import Animations", "bool", "", "1", "");
  66. ImportAssetConfigSettingsList.addNewConfigSetting("Animations/SeparateAnimations", "Separate Animations", "bool", "", "1", "");
  67. ImportAssetConfigSettingsList.addNewConfigSetting("Animations/SeparateAnimationPrefix", "Separate Animation Prefix", "string", "", "", "");
  68. ImportAssetConfigSettingsList.addNewConfigSetting("Animations/animTiming", "Animation Timing", "list", "", "Seconds", "Frames,Seconds,Milliseconds");
  69. ImportAssetConfigSettingsList.addNewConfigSetting("Animations/animFPS", "Animation FPS", "float", "", "2", "");
  70. //Collision
  71. ImportAssetConfigSettingsList.addNewConfigSetting("Collision/GenerateCollisions", "Generate Collisions", "bool", "", "1", "");
  72. ImportAssetConfigSettingsList.addNewConfigSetting("Collision/GenCollisionType", "Generate Collision Type", "list", "", "CollisionMesh", "CollisionMesh,ConvexHull");
  73. ImportAssetConfigSettingsList.addNewConfigSetting("Collision/CollisionMeshPrefix", "CollisionMesh Prefix", "string", "", "Col", "");
  74. ImportAssetConfigSettingsList.addNewConfigSetting("Collision/GenerateLOSCollisions", "Generate LOS Collisions", "bool", "", "1", "");
  75. ImportAssetConfigSettingsList.addNewConfigSetting("Collision/GenLOSCollisionType", "Generate LOS Collision Type", "list", "", "CollisionMesh", "CollisionMesh,ConvexHull");
  76. ImportAssetConfigSettingsList.addNewConfigSetting("Collision/LOSCollisionMeshPrefix", "LOS CollisionMesh Prefix", "string", "", "LOS", "");
  77. //Images
  78. ImportAssetConfigSettingsList.addNewConfigSetting("Images/ImportImages", "Import Images", "bool", "", "1", "");
  79. ImportAssetConfigSettingsList.addNewConfigSetting("Images/AlwaysAddImageSuffix", "Always Add Image Suffix", "bool", "", "1", "");
  80. ImportAssetConfigSettingsList.addNewConfigSetting("Images/AddedImageSuffix", "Added Image Suffix", "string", "", "_image", "");
  81. ImportAssetConfigSettingsList.addNewConfigSetting("Images/ImageType", "Image Type", "list", "", "N/A", "N/A,Diffuse,Normal,Specular,Metalness,Roughness,AO,Composite,GUI");
  82. ImportAssetConfigSettingsList.addNewConfigSetting("Images/DiffuseTypeSuffixes", "Diffuse Type Suffixes", "command", "", "_ALBEDO,_DIFFUSE,_ALB,_DIF,_COLOR,_COL", "");
  83. ImportAssetConfigSettingsList.addNewConfigSetting("Images/NormalTypeSuffixes", "Normal Type Suffixes", "command", "", "_NORMAL,_NORM", "");
  84. ImportAssetConfigSettingsList.addNewConfigSetting("Images/MetalnessTypeSuffixes", "Metalness Type Suffixes", "command", "", "_METAL,_MET,_METALNESS,_METALLIC", "");
  85. ImportAssetConfigSettingsList.addNewConfigSetting("Images/RoughnessTypeSuffixes", "Roughness Type Suffixes", "command", "", "_ROUGH,_ROUGHNESS", "");
  86. ImportAssetConfigSettingsList.addNewConfigSetting("Images/SmoothnessTypeSuffixes", "Smoothness Type Suffixes", "command", "", "_SMOOTH,_SMOOTHNESS", "");
  87. ImportAssetConfigSettingsList.addNewConfigSetting("Images/AOTypeSuffixes", "AO Type Suffixes", "command", "", "_AO,_AMBIENT,_AMBIENTOCCLUSION", "");
  88. ImportAssetConfigSettingsList.addNewConfigSetting("Images/CompositeTypeSuffixes", "Composite Type Suffixes", "command", "", "_COMP,_COMPOSITE", "");
  89. ImportAssetConfigSettingsList.addNewConfigSetting("Images/TextureFilteringMode", "Texture Filtering Mode", "list", "", "Bilinear", "None,Bilinear,Trilinear");
  90. ImportAssetConfigSettingsList.addNewConfigSetting("Images/UseMips", "Use Mipmaps", "bool", "", "1", "");
  91. ImportAssetConfigSettingsList.addNewConfigSetting("Images/IsHDR", "Is HDR", "bool", "", "0", "");
  92. ImportAssetConfigSettingsList.addNewConfigSetting("Images/Scaling", "Scaling", "float", "", "1.0", "");
  93. ImportAssetConfigSettingsList.addNewConfigSetting("Images/Compressed", "Is Compressed", "bool", "", "1", "");
  94. ImportAssetConfigSettingsList.addNewConfigSetting("Images/GenerateMaterialOnImport", "Generate Material On Import", "bool", "", "1", "");
  95. //Sounds
  96. ImportAssetConfigSettingsList.addNewConfigSetting("Sounds/VolumeAdjust", "Volume Adjustment", "float", "", "1.0", "");
  97. ImportAssetConfigSettingsList.addNewConfigSetting("Sounds/PitchAdjust", "Pitch Adjustment", "float", "", "1.0", "");
  98. ImportAssetConfigSettingsList.addNewConfigSetting("Sounds/Compressed", "Is Compressed", "bool", "", "0", "");
  99. ImportAssetConfigSettingsList.addNewConfigSetting("Sounds/AlwaysAddSoundSuffix", "Always Add Sound Suffix", "bool", "", "1", "");
  100. ImportAssetConfigSettingsList.addNewConfigSetting("Sounds/AddedSoundSuffix", "Added Sound Suffix", "string", "", "_sound", "");
  101. }
  102. }
  103. function ImportAssetConfigSettingsList::addNewConfigSetting(%this, %settingName, %settingFieldLabel, %type, %tooltip, %defaultValue, %fieldData)
  104. {
  105. %this.add(%settingName TAB %settingFieldLabel TAB %type TAB %tooltip, %defaultValue TAB %fieldData);
  106. }
  107. //
  108. function ImportAssetConfigEditorWindow::close(%this)
  109. {
  110. %this.setVisible(0);
  111. }
  112. function ImportAssetOptionsWindow::editImportSettings(%this, %assetItem)
  113. {
  114. ImportAssetOptionsWindow.setVisible(1);
  115. ImportAssetOptionsWindow.selectWindow();
  116. ImportOptionsList.clearFields();
  117. %assetType = %assetItem.assetType;
  118. %filePath = %assetItem.filePath;
  119. %assetName = %assetItem.assetName;
  120. %assetConfigObj = %assetItem.importConfig;
  121. %optionsObj = %assetItem.optionsObj; // TODO IS THIS RIGHT
  122. ImportOptionsList.startGroup("Asset");
  123. ImportOptionsList.addField("AssetName", "Asset Name", "string", "", "NewAsset", "", %assetItem);
  124. ImportOptionsList.endGroup();
  125. if(%assetType $= "ShapeAsset")
  126. {
  127. //Get the shape info, so we know what we're doing with the mesh
  128. %shapeInfo = GetShapeInfo(%filePath);
  129. %meshItem = %shapeInfo.findItemByName("Meshes");
  130. %matItem = %shapeInfo.findItemByName("Materials");
  131. %meshCount = %shapeInfo.getItemValue(%meshItem);
  132. %matCount = %shapeInfo.getItemValue(%matItem);
  133. %firstMat = %shapeInfo.getChild(%matItem);
  134. echo("Mesh's first material texture path is: " @ %shapeInfo.getItemValue(%firstMat));
  135. if(%meshCount > 0)
  136. {
  137. ImportOptionsList.startGroup("Mesh");
  138. ImportOptionsList.addField("AutogenCollisions", "Auto-gen Collisions", "bool", "", "0", "", %assetConfigObj);
  139. ImportOptionsList.addField("CollapseSubmeshes", "Collapse Submeshes", "bool", "", "0", "", %assetConfigObj);
  140. ImportOptionsList.addField("UpAxisOverride", "Up-Axis Override", "list", "", "Z_AXIS", "Z_AXIS,Y_AXIS,X_AXIS", %assetConfigObj);
  141. ImportOptionsList.addField("OverrideScale", "Override Scale", "float", "", "1.0", "", %assetConfigObj);
  142. ImportOptionsList.addField("IgnoreNodeScale", "IgnoreNodeScaling", "bool", "", "0", "", %assetConfigObj);
  143. ImportOptionsList.addField("AdjustCenter", "Adjust Center", "bool", "", "0", "", %assetConfigObj);
  144. ImportOptionsList.addField("CollapseSubmeshes", "Collapse Submeshes", "bool", "", "0", "", %assetConfigObj);
  145. ImportOptionsList.addField("AdjustFloor", "Adjust Floor", "bool", "", "0", "", %assetConfigObj);
  146. ImportOptionsList.addField("LODType", "LOD Type", "list", "", "TrailingNumber", "TrailingNumber,DetectDTS", %assetConfigObj);
  147. ImportOptionsList.endGroup();
  148. }
  149. if(%matItem > 0)
  150. {
  151. ImportOptionsList.startGroup("Material");
  152. ImportOptionsList.addCallbackField("ImportMaterials", "Import Materials", "bool", "", "1", "", "ImportMaterialsChanged", %assetConfigObj);
  153. ImportOptionsList.addField("UseExistingMaterials", "Use Existing Materials", "bool", "", "1", "", %assetConfigObj);
  154. ImportOptionsList.endGroup();
  155. }
  156. }
  157. else if(%assetType $= "MaterialAsset")
  158. {
  159. ImportOptionsList.startGroup("Material");
  160. ImportOptionsList.addField("CreateComposites", "Create Composite Textures", "bool", "", "1", "", %assetConfigObj);
  161. ImportOptionsList.endGroup();
  162. }
  163. else if(%assetType $= "ImageAsset")
  164. {
  165. ImportOptionsList.startGroup("Formatting");
  166. ImportOptionsList.addField("ImageType", "Image Type", "string", "", "Diffuse", "", %assetConfigObj);
  167. ImportOptionsList.addField("TextureFiltering", "Texture Filtering", "list", "", "Bilinear", "None,Bilinear,Trilinear", %assetConfigObj);
  168. ImportOptionsList.addField("UseMips", "Use Mips", "bool", "", "1", "", %assetConfigObj);
  169. ImportOptionsList.addField("IsHDR", "Is HDR", "bool", "", "0", "", %assetConfigObj);
  170. ImportOptionsList.endGroup();
  171. ImportOptionsList.startGroup("Scaling");
  172. ImportOptionsList.addField("Scaling", "Scaling", "float", "", "1.0", "", %assetConfigObj);
  173. ImportOptionsList.endGroup();
  174. ImportOptionsList.startGroup("Compression");
  175. ImportOptionsList.addField("IsCompressed", "Is Compressed", "bool", "", "1", "", %assetConfigObj);
  176. ImportOptionsList.endGroup();
  177. ImportOptionsList.startGroup("Material");
  178. ImportOptionsList.addField("GenerateMaterialOnImport", "Generate Material On Import", "bool", "", "1", "", %optionsObj);
  179. ImportOptionsList.addField("PopulateMaterialMaps", "Populate Material Maps", "bool", "", "1", "", %optionsObj);
  180. ImportOptionsList.addField("UseDiffuseSuffixOnOriginImg", "Use Diffuse Suffix for Origin Image", "bool", "", "1", "", %optionsObj);
  181. ImportOptionsList.addField("UseExistingMaterials", "Use Existing Materials", "bool", "", "1", "", %optionsObj);
  182. ImportOptionsList.addField("IgnoreMaterials", "Ignore Importing Materials that fit these naming convention.", "command", "", "1", "", %optionsObj);
  183. ImportOptionsList.endGroup();
  184. }
  185. else if(%assetType $= "SoundAsset")
  186. {
  187. ImportOptionsList.startGroup("Adjustment");
  188. ImportOptionsList.addField("VolumeAdjust", "VolumeAdjustment", "float", "", "1.0", "", %assetConfigObj);
  189. ImportOptionsList.addField("PitchAdjust", "PitchAdjustment", "float", "", "1.0", "", %assetConfigObj);
  190. ImportOptionsList.endGroup();
  191. ImportOptionsList.startGroup("Compression");
  192. ImportOptionsList.addField("IsCompressed", "Is Compressed", "bool", "", "1", "", %assetConfigObj);
  193. ImportOptionsList.endGroup();
  194. }
  195. }
  196. function ImportAssetOptionsWindow::saveAssetOptions(%this)
  197. {
  198. %success = AssetImportSettings.write();
  199. ImportAssetWindow.refresh();
  200. ImportAssetOptionsWindow.setVisible(0);
  201. }
  202. function ImportOptionsList::ImportMaterialsChanged(%this, %fieldName, %newValue, %ownerObject)
  203. {
  204. echo("CHANGED IF OUR IMPORTED MATERIALS WERE HAPPENING!");
  205. }
  206. function getAssetImportConfigValue(%fieldName, %defaultValue)
  207. {
  208. if(ImportAssetWindow.activeImportConfig $= "")
  209. return "";
  210. return AssetImportSettings.value(ImportAssetWindow.activeImportConfig @ "/" @ %fieldName, %defaultValue);
  211. }
  212. function ImportAssetConfigEditorWindow::populateConfigList(%this, %configName)
  213. {
  214. //Ensure our config list is set up
  215. setupImportConfigSettingsList();
  216. AssetImportConfigName.setText(%configName);
  217. ImportOptionsConfigList.clearFields();
  218. ImportOptionsConfigList.setAutoUpdate(false); //we don't want to be updating every time we add a field in here
  219. %this.populateConfigListByGroup("General");
  220. %this.populateConfigListByGroup("Meshes");
  221. %this.populateConfigListByGroup("Materials");
  222. %this.populateConfigListByGroup("Animations");
  223. %this.populateConfigListByGroup("Images");
  224. %this.populateConfigListByGroup("Collision");
  225. %this.populateConfigListByGroup("Sounds");
  226. ImportOptionsConfigList.update();
  227. }
  228. function ImportAssetConfigEditorWindow::populateConfigListByGroup(%this, %groupName)
  229. {
  230. ImportOptionsConfigList.startGroup(%groupName);
  231. for(%i=0; %i < ImportAssetConfigSettingsList.count(); %i++)
  232. {
  233. %settingName = getField(ImportAssetConfigSettingsList.getKey(%i),0);
  234. if(startsWith(%settingName, %groupName@"/"))
  235. {
  236. %labelName = getField(ImportAssetConfigSettingsList.getKey(%i), 1);
  237. %type = getField(ImportAssetConfigSettingsList.getKey(%i), 2);
  238. %tooltip = getField(ImportAssetConfigSettingsList.getKey(%i), 3);
  239. %defaultValue = getField(ImportAssetConfigSettingsList.getValue(%i), 0);
  240. %dataValues = getField(ImportAssetConfigSettingsList.getValue(%i), 1);
  241. ImportOptionsConfigList.addSettingsField(%settingName, %labelName, %type, %tooltip, %defaultValue, %dataValues);
  242. }
  243. }
  244. ImportOptionsConfigList.endGroup();
  245. }
  246. function ImportAssetConfigEditorWindow::addNewConfig(%this)
  247. {
  248. //Ensure our list is set up
  249. setupImportConfigSettingsList();
  250. ImportAssetNewConfigEditorWindow.setVisible(1);
  251. ImportAssetNewConfigEditorWindow.selectWindow();
  252. %configName = AssetImportConfigName.getText();
  253. AssetImportSettings.beginGroup(%configName);
  254. //Meshes
  255. AssetImportSettings.setValue("Meshes/ImportMesh", "1");
  256. AssetImportSettings.setValue("Meshes/AlwaysAddShapeSuffix", "0");
  257. AssetImportSettings.setValue("Meshes/AddedShapeSuffix", "_shape");
  258. AssetImportSettings.setValue("Meshes/DoUpAxisOverride", "0");
  259. AssetImportSettings.setValue("Meshes/UpAxisOverride", "Z_AXIS");
  260. AssetImportSettings.setValue("Meshes/DoScaleOverride", "0");
  261. AssetImportSettings.setValue("Meshes/ScaleOverride", "1.0");
  262. AssetImportSettings.setValue("Meshes/IgnoreNodeScale", "0");
  263. AssetImportSettings.setValue("Meshes/AdjustCenter", "0");
  264. AssetImportSettings.setValue("Meshes/AdjustFloor", "0");
  265. AssetImportSettings.setValue("Meshes/CollapseSubmeshes", "0");
  266. AssetImportSettings.setValue("Meshes/LODType", "TrailingNumber");
  267. AssetImportSettings.setValue("Meshes/AlwaysImportedNodes", "");
  268. AssetImportSettings.setValue("Meshes/AlwaysIgnoreNodes", "");
  269. AssetImportSettings.setValue("Meshes/AlwaysImportMeshes", "");
  270. AssetImportSettings.setValue("Meshes/AlwaysIgnoreMeshes", "");
  271. //Materials
  272. AssetImportSettings.setValue("Materials/ImportMaterials", "1");
  273. AssetImportSettings.setValue("Materials/AlwaysAddMaterialSuffix", "1");
  274. AssetImportSettings.setValue("Materials/AddedMaterialSuffix", "_mat");
  275. AssetImportSettings.setValue("Materials/IgnoreMaterials", "");
  276. AssetImportSettings.setValue("Materials/CreateComposites", "1");
  277. AssetImportSettings.setValue("Materials/UseDiffuseSuffixOnOriginImage", "1");
  278. AssetImportSettings.setValue("Materials/UseExistingMaterials", "1");
  279. AssetImportSettings.setValue("Materials/PopulateMaterialMaps", "1");
  280. //Animations
  281. AssetImportSettings.setValue("Animations/ImportAnimations", "1");
  282. AssetImportSettings.setValue("Animations/SeparateAnimations", "1");
  283. AssetImportSettings.setValue("Animations/SeparateAnimationPrefix", "");
  284. //Collision
  285. AssetImportSettings.setValue("Collision/GenerateCollisions", "1");
  286. AssetImportSettings.setValue("Collision/GenCollisionType", "CollisionMesh");
  287. AssetImportSettings.setValue("Collision/CollisionMeshPrefix", "Col");
  288. AssetImportSettings.setValue("Collision/GenerateLOSCollisions", "1");
  289. AssetImportSettings.setValue("Collision/GenLOSCollisionType", "CollisionMesh");
  290. AssetImportSettings.setValue("Collision/LOSCollisionMeshPrefix", "LOS");
  291. //Images
  292. AssetImportSettings.setValue("Images/ImportImage", "1");
  293. AssetImportSettings.setValue("Images/AlwaysAddImageSuffix", "1");
  294. AssetImportSettings.setValue("Images/AddedImageSuffix", "_image");
  295. AssetImportSettings.setValue("Images/ImageType", "N/A");
  296. AssetImportSettings.setValue("Images/DiffuseTypeSuffixes", "_ALBEDO;_DIFFUSE;_ALB;_DIF;_COLOR;_COL;_BASECOLOR;_BASE_COLOR");
  297. AssetImportSettings.setValue("Images/NormalTypeSuffixes", "_NORMAL;_NORM");
  298. AssetImportSettings.setValue("Images/MetalnessTypeSuffixes", "_METAL;_MET;_METALNESS;_METALLIC");
  299. AssetImportSettings.setValue("Images/RoughnessTypeSuffixes", "_ROUGH;_ROUGHNESS");
  300. AssetImportSettings.setValue("Images/SmoothnessTypeSuffixes", "_SMOOTH;_SMOOTHNESS");
  301. AssetImportSettings.setValue("Images/AOTypeSuffixes", "_AO;_AMBIENT;_AMBIENTOCCLUSION");
  302. AssetImportSettings.setValue("Images/CompositeTypeSuffixes", "_COMP;_COMPOSITE;_PBR;-COMP;-COMPOSITE;-PBR;_ORM;-ORM");
  303. AssetImportSettings.setValue("Images/TextureFilteringMode", "Bilinear");
  304. AssetImportSettings.setValue("Images/UseMips", "1");
  305. AssetImportSettings.setValue("Images/IsHDR", "0");
  306. AssetImportSettings.setValue("Images/Scaling", "1.0");
  307. AssetImportSettings.setValue("Images/Compressed", "1");
  308. AssetImportSettings.setValue("Images/GenerateMaterialOnImport", "1");
  309. //Sounds
  310. AssetImportSettings.setValue("Sounds/VolumeAdjust", "1.0");
  311. AssetImportSettings.setValue("Sounds/PitchAdjust", "1.0");
  312. AssetImportSettings.setValue("Sounds/Compressed", "0");
  313. AssetImportSettings.setValue("Sounds/AlwaysAddSoundSuffix", "1");
  314. AssetImportSettings.setValue("Sounds/AddedSoundSuffix", "_sound");
  315. AssetImportSettings.endGroup();
  316. //Hook in the UI
  317. //%this.populateConfigList(%optionsObj);
  318. }
  319. function ImportAssetConfigEditorWindow::setDefaultValuesByGroup(%this, %groupName)
  320. {
  321. %configList = ImportAssetConfigSettingsList;
  322. for(%i=0; %i < %configList.count(); %i++)
  323. {
  324. %settingName = getField(%configList.getKey(%i),0);
  325. if(startsWith(%settingName, %groupName @ "/"))
  326. {
  327. %defaultValue = getField(%configList.getValue(%i), 0);
  328. AssetImportSettings.setValue(%settingName, %defaultValue);
  329. }
  330. }
  331. }
  332. function ImportAssetConfigEditorWindow::editConfig(%this)
  333. {
  334. //Ensure our list is set up
  335. ImportAssetConfigEditorWindow.setVisible(1);
  336. ImportAssetConfigEditorWindow.selectWindow();
  337. %this.populateConfigList(ImportAssetWindow.activeImportConfig);
  338. }
  339. function ImportAssetConfigEditorWindow::deleteConfig(%this)
  340. {
  341. %configList = ImportAssetConfigSettingsList;
  342. for(%i=0; %i < %configList.count(); %i++)
  343. {
  344. }
  345. ImportAssetWindow.importConfigsList.erase(ImportAssetWindow.activeImportConfigIndex);
  346. ImportAssetConfigList.setSelected(0); //update it
  347. ImportAssetConfigEditorWindow.saveAssetOptionsConfig();
  348. }
  349. function ImportAssetConfigEditorWindow::saveAssetOptionsConfig(%this)
  350. {
  351. %success = AssetImportSettings.write();
  352. ImportAssetConfigEditorWindow.setVisible(0);
  353. ImportAssetWindow.reloadImportOptionConfigs();
  354. }
  355. function ImportAssetConfigEditorWindow::createNewImportConfig(%this)
  356. {
  357. %configName = AssetImportNewConfigName.getText();
  358. %configList = ImportAssetConfigSettingsList;
  359. AssetImportSettings.beginGroup(%configName);
  360. %this.setDefaultValuesByGroup("General");
  361. %this.setDefaultValuesByGroup("Meshes");
  362. %this.setDefaultValuesByGroup("Materials");
  363. %this.setDefaultValuesByGroup("Animations");
  364. %this.setDefaultValuesByGroup("Collision");
  365. %this.setDefaultValuesByGroup("Images");
  366. %this.setDefaultValuesByGroup("Sounds");
  367. AssetImportSettings.endGroup();
  368. %success = AssetImportSettings.write();
  369. ImportAssetNewConfigEditorWindow.setVisible(0);
  370. }
  371. function ImportOptionsConfigList::addSettingsField(%this, %settingsFieldName, %labelText, %fieldType, %tooltip, %fieldValue, %fieldData)
  372. {
  373. %moddedSettingsFieldName = strreplace(%settingsFieldName, "/", "-");
  374. %configGroup = AssetImportConfigName.getText();
  375. %value = AssetImportSettings.value(%configGroup @ "/" @ %settingsFieldName);
  376. if(%value $= "")
  377. %value = %fieldValue;
  378. //%this.addCallbackField(%moddedSettingsFieldName, %labelText, %fieldType, "", %value, %fieldData, %this @ ".changeEditorSetting");
  379. %this.addCallbackField(%moddedSettingsFieldName, %labelText, %fieldType, "", %value, %fieldData, "changeEditorSetting");
  380. }
  381. function ImportOptionsConfigList::changeEditorSetting(%this, %varName, %value)
  382. {
  383. %varName = strreplace(%varName, "-", "/");
  384. echo("Set " @ %varName @ " to be " @ %value);
  385. %configGroup = AssetImportConfigName.getText();
  386. %oldValue = AssetImportSettings.value(%configGroup @ "/" @ %varName, %value);
  387. AssetImportSettings.setValue(%configGroup @ "/" @ %varName, %value);
  388. if(%oldValue !$= %value)
  389. {
  390. %scollPos = ImportAssetConfigEditorScroll.getScrollPosition();
  391. ImportAssetConfigEditorWindow.populateConfigList(ImportAssetWindow.activeImportConfig);
  392. ImportAssetConfigEditorScroll.setScrollPosition(%scollPos.x, %scollPos.y);
  393. }
  394. }
  395. function ImportOptionsConfigList::ToggleImportMesh(%this, %fieldName, %newValue, %ownerObject)
  396. {
  397. %this.setFieldEnabled("DoUpAxisOverride", %newValue);
  398. %this.setFieldEnabled("UpAxisOverride", %newValue);
  399. %this.setFieldEnabled("DoScaleOverride", %newValue);
  400. %this.setFieldEnabled("ScaleOverride", %newValue);
  401. %this.setFieldEnabled("IgnoreNodeScale", %newValue);
  402. %this.setFieldEnabled("AdjustCenter", %newValue);
  403. %this.setFieldEnabled("AdjustFloor", %newValue);
  404. %this.setFieldEnabled("CollapseSubmeshes", %newValue);
  405. %this.setFieldEnabled("LODType", %newValue);
  406. %this.setFieldEnabled("AlwaysImportedNodes", %newValue);
  407. %this.setFieldEnabled("AlwaysIgnoreNodes", %newValue);
  408. %this.setFieldEnabled("AlwaysImportMeshes", %newValue);
  409. %this.setFieldEnabled("AlwaysIgnoreMeshes", %newValue);
  410. }