You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
o3de/Registry/AssetProcessorPlatformConfi...

493 lines
22 KiB
Plaintext

{
// ---- Enable/Disable platforms for the entire project. AssetProcessor will automatically add the current platform by default.
// PLATFORM DEFINITIONS
// [Platform (unique identifier)]
// tags=(comma-seperated-tags)
//
// note: the 'identifier' of a platform is the word(s) following the "Platform" keyword (so [Platform pc] means identifier
// is 'pc' for example. This is used to name its assets folder in the cache and should be used in your bootstrap.cfg
// or your main.cpp to choose what assets to load for that particular platform.
// Its primary use is to enable additional non-host platforms (Ios, android...) that are not the current platform.
// note: 'tags' is a comma-seperated list of tags to tag the platform with that builders can inspect to decide what to do.
// while builders can accept any tags you add in order to make decisions, common tags are
// tools - this platform can host the tools and editor and such
// renderer - this platform runs the client engine and renders on a GPU. If missing we could be on a server-only platform
// mobile - a mobile platform such as a set top box or phone with limited resources
// console - a console platform
// server - a server platform of some kind, usually headless, no renderer.
"Amazon": {
"AssetProcessor": {
"Settings": {
"Platform pc": {
"tags": "tools,renderer,dx12,vulkan,null"
},
"Platform linux": {
"tags": "tools,renderer,vulkan,null"
},
"Platform android": {
"tags": "android,mobile,renderer,vulkan"
},
"Platform ios": {
"tags": "mobile,renderer,metal"
},
"Platform mac": {
"tags": "tools,renderer,metal,null"
},
// this is an example of a headless platform that has no renderer.
// To use this you would still need to make sure 'assetplatform' in your startup params in your main() chooses this 'server' platform as your server 'assets' flavor
"Platform server": {
"tags": "server,dx12,vulkan"
},
// this section allows you to turn on various platforms in addition to the host platform you're running on
// 'enabled' is AUTOMATICALLY TRUE for the current platform that you are running on, so it is not necessary to force it to true for that platform
// To enable any additional platform, just uncomment the appropriate line below.
"Platforms": {
//"pc": "enabled",
//"android": "enabled",
//"ios": "enabled",
//"mac": "enabled",
//"server": "enabled"
},
// ---- The number of worker jobs, 0 means use the number of Logical Cores
"Jobs": {
"minJobs": 1,
"maxJobs": 0
},
// cacheServerAddress is the location of the asset server cache.
// Currently for a network share server this would be the absolute file path to the network share folder.
"Server": {
//"cacheServerAddress": ""
},
// ---- add any metadata file type here that needs to be monitored by the AssetProcessor.
// Modifying these meta file will cause the source asset to re-compile again.
// They are specified in the following format
// metadata extension=original extension to replace
// if the metadata extension does not replace the original, then the original can be blank
// so for example if your normal file is blah.tif and your metafile for that file is blah.tif.exportsettings
// then your declaration would be exportsettings= ; ie, it would be blank
// however if your metafile REPLACES the extension (for example, if you have the file blah.i_caf and its metafile is blah.exportsettings)
// then you specify the original extension here to narrow the scope.
// If a relative path to a specific file is provided instead of an extension, a change to the file will change all files
// with the associated extension (e.g. Animations/SkeletonList.xml=i_caf will cause all i_caf files to recompile when
// Animations/SkeletonList.xml within the current game project changes)
"MetaDataTypes": {
"animsettings": "i_caf",
"Animations/SkeletonList.xml": "i_caf",
"cbc": "abc",
"fbx.assetinfo": "fbx",
"stl.assetinfo": "stl"
},
// ---- add any folders to scan here. The priority order is the order they appear here
// available macros are
// @ROOT@ - the location of asset root
// @PROJECTROOT@ - the location of the project root, for example 'Q:\MyProjects\RPGSample'
// note that they are sorted by their 'order' value, and the lower the order the more important an asset is
// lower order numbers override higher ones.
// If specified, output will be prepended to every path found in that recognizer's watch folder.
// Note that you can also make the scan folder platform specific by using the keywords include and exclude.
// Both include and exclude can contain either platform tags, platform identifiers or both.
// if no include is specified, all currently enabled platforms are included by default.
// If includes ARE specified, it will be filtered down by the list of currently enabled platforms.
// "ScanFolder (unique identifier)": {
// "include": "(comma seperated platform tags or identifiers)",
// "exclude": "(comma seperated platform tags or identifiers)"
// }
// For example if you want to include a scan folder only for platforms that have the platform tags tools and renderer
// but omit it for platform mac, you will have a scanfolder rule like
// "ScanFolder (unique identifier)": {
// "watch": "@ROOT@/foo",
// "include": "tools, renderer",
// "exclude": "mac"
// }
"ScanFolder Project/Assets": {
"watch": "@PROJECTROOT@",
"display": "@PROJECTNAME@",
"recursive": 1,
"order": 0
},
// gems will be auto-added from 100 onwards
"ScanFolder Root": {
"watch": "@ROOT@",
"recursive": 0,
"order": 10000
},
"ScanFolder Assets/Runtime": {
"watch": "@ENGINEROOT@/Assets/Engine",
"recursive": 1,
"order": 20000
},
"ScanFolder Assets/Tools": {
"watch": "@ENGINEROOT@/Assets/Editor",
"recursive": 1,
"order": 30000,
"include": "tools,renderer"
},
"ScanFolder Engine/Registry": {
"watch": "@ENGINEROOT@/Registry",
"recursive": 1,
"order": 40000
},
// Excludes files that match the pattern or glob
// if you use a pattern, remember to escape your backslashes (\\)
"Exclude _LevelBackups": {
"pattern": ".*\\\\/Levels\\\\/.*\\\\/_savebackup\\\\/.*"
},
"Exclude _LevelAutoBackups": {
"pattern": ".*\\\\/Levels\\\\/.*\\\\/_autobackup\\\\/.*"
},
"Exclude HoldFiles": {
"pattern": ".*\\\\/Levels\\\\/.*_hold\\\\/.*"
},
// note that $ has meaning to regex, so we escape it.
"Exclude TempFiles": {
"pattern": ".*\\\\/\\\\$tmp[0-9]*_.*"
},
"Exclude TmpAnimationCompression": {
"pattern": ".*\\\\/Editor\\\\/Tmp\\\\/AnimationCompression\\\\/.*"
},
"Exclude EventLog": {
"pattern": ".*\\\\/Editor\\\\/.*eventlog\\\\.xml"
},
"Exclude GameGemsCode": {
"pattern": ".*\\\\/Gem\\\\/Code\\\\/.*"
},
"Exclude GameGemsResources": {
"pattern": ".*\\\\/Gem\\\\/Resources\\\\/.*"
},
"Exclude Private Certs": {
"pattern": ".*\\DynamicContent\\\\/Certificates\\\\/Private\\\\/.*"
},
"Exclude CMakeLists": {
"pattern": ".*\\\\/CMakeLists.txt"
},
"Exclude CMakeFiles": {
"pattern": ".*\\\\/.*\\\\.cmake"
},
"Exclude User": {
"pattern": ".*/[Uu]ser/.*"
},
"Exclude Build": {
"pattern": ".*/[Bb]uild/.*"
},
"Exclude Install": {
"pattern": ".*/[Ii]nstall/.*"
},
"Exclude UserSettings": {
"pattern": ".*/UserSettings.xml"
},
// ------------------------------------------------------------------------------
// Large Worlds Test
// ------------------------------------------------------------------------------
"Exclude Work In Progress Folders": {
"pattern": ".*\\\\/WIP\\\\/.*"
},
"Exclude Content Source Folders": {
"pattern": ".*\\\\/CONTENT_SOURCE\\\\/.*"
},
"Exclude Art Source Folders": {
"pattern": ".*\\\\/ArtSource\\\\/.*"
},
//------------------------------------------------------------------------------
// Copying Files Automatically Into the Cache
//------------------------------------------------------------------------------
// The below section is used to register patterns (*.something) to copy into the cache
// the "params" block must either be "copy" (copy the file) or "skip" (used for per-platfrom skipping)
// note that productAssetType is a means of setting the output asset Type (as in AZ::Data::AssetType) of a simple job
// and is the recommended way to specify that a certain kind of file (such as '*.myextension') becomes registered as the
// actual UUID of that type in the engine itself.
// Use a regex for matching files, same params for all platforms
// "RC TGAs": {
// "pattern": ".+\\\\.tga$",
// "params": "copy"
//}
// Example Use a glob instead of a regex, skip the copy for the "server" platform
// "RC TIFFs": {
// "glob": "*.tif",
// "params": "copy",
// "server": "skip"
//}
// You can also modify a version to compile all matching files again
// By default the version is empty
// "RC tif": {
// "glob": "*.tif",
// "params": "copy",
// "version": 1.0
//}
// This will make the AssetProcessor compile all the .tif files again if version changes.
// you can also optionally supply a priority.
// this is used to sort jobs when no other external circumstance sorts them (higher wins, default is 0)
// note that the FULL PATH to the file will be used as the match, not the relative path
// so ensure start your patterns with .* or as appropriate.
// Also, any rules which match will apply - so if you have two rules which both apply to PNG files for example
// but you only want one, you might want to use exclusion patterns:
//Example: copy everything EXCEPT the ones in the libs/ui
// "RC png-normal": {
// "pattern": "(?!.*libs\\\\/ui\\\\/).*\\.png",
// "params": "copy"
//}
//Example: Process everything in the libs/ui folder
// "RC png-ui": {
// "pattern": "(.*libs\\\\/ui\\\\/).*\\.png",
// "params": "copy"
//}
// More example Regexes:
// "pattern": "(?!(.*libs\\\\/ui\\\\/)|(.*editor\\\\/).*\\\\.png"
// This pattern will not match anything with editor/ or libs/ui/ in it
// "pattern": "((.*libs\\\\/ui\\\\/)|(.*editor\\\\/).*\\\\.png"
// This pattern will only match anything with editor/ or libs/ui/ in it
// This is a JSON object - every entry must start with "RC" but make sure
// to give every entry its own unique Name or else they will overwrite each other:
"RC mp4": {
"glob": "*.mp4",
"params": "copy",
"productAssetType": "{DDFEE0B2-9E5A-412C-8C77-AB100E24C1DF}"
},
"RC mkv": {
"glob": "*.mkv",
"params": "copy",
"productAssetType": "{DDFEE0B2-9E5A-412C-8C77-AB100E24C1DF}"
},
"RC webm": {
"glob": "*.webm",
"params": "copy",
"productAssetType": "{DDFEE0B2-9E5A-412C-8C77-AB100E24C1DF}"
},
"RC mov": {
"glob": "*.mov",
"params": "copy",
"productAssetType": "{DDFEE0B2-9E5A-412C-8C77-AB100E24C1DF}"
},
"RC bk2": {
"glob": "*.bk2",
"params": "copy",
"productAssetType": "{BF4879B9-B893-41D2-80E9-24A7BDCD2B50}"
},
"RC img": {
"glob": "*.img",
"params": "copy"
},
"RC surfaceTagNameList": {
"glob": "*.surfaceTagNameList",
"params": "copy",
"productAssetType": "{A471B2A9-85FC-4993-842D-1881CBC03A2B}"
},
"RC gradImageSettings": {
"glob": "*.gradimagesettings",
"params": "copy",
"productAssetType": "{B36FEB5C-41B6-4B58-A212-21EF5AEF523C}"
},
"RC png-entityicon": {
"pattern": "(.*EntityIcons\\\\/).*\\\\.png",
"productAssetType": "{3436C30E-E2C5-4C3B-A7B9-66C94A28701B}",
"params": "skip",
"tools": "copy"
},
"RC usm": {
"glob": "*.usm",
"params": "copy",
"server": "skip"
},
"RC animevents": {
"glob": "*.animevents",
"params": "copy",
"productAssetType": "{C1D209C1-F81A-4586-A34E-1615995F9F3F}",
"version": 2
},
"RC bspace": {
"glob": "*.bspace",
"params": "copy"
},
"RC cdf": {
"glob": "*.cdf",
"params": "copy",
"productAssetType": "{DF036C63-9AE6-4AC3-A6AC-8A1D76126C01}"
},
"RC comb": {
"glob": "*.comb",
"params": "copy"
},
"RC dlg": {
"glob": "*.dlg",
"params": "copy"
},
"RC csv": {
"glob": "*.csv",
"params": "copy"
},
"RC json": {
"glob": "*.json",
"params": "copy"
},
"RC lmg": {
"glob": "*.lmg",
"params": "copy"
},
"RC smtl": {
"glob": "*.smtl",
"params": "copy"
},
"RC sub": {
"glob": "*.sub",
"params": "copy",
"productAssetType": "{71F9D30E-13F7-40D6-A3C9-E5358004B31F}",
"version": 2
},
"RC sbsar": {
"glob": "*.sbsar",
"params": "copy"
},
"RC loc.agsxml": {
"glob": "*.loc.agsxml",
"params": "copy",
"version": 1
},
"RC node": {
"glob": "*.node",
"params": "copy"
},
"RC veg": {
"glob": "*.veg",
"params": "copy"
},
"RC dat": {
"glob": "*.dat",
"params": "copy"
},
"RC lut": {
"glob": "*.lut",
"params": "copy"
},
"RC txt": {
"pattern": "^(?!.*PreloadLibs.txt).*\\\\.txt",
"params": "copy"
},
"RC cal": {
"glob": "*.cal",
"params": "copy"
},
"RC grp": {
"glob": "*.grp",
"params": "copy",
"productAssetType": "{7629EDD3-A361-49A2-B271-252127097D81}",
"version": 2
},
"RC xls": {
"glob": "*.xls",
"params": "copy"
},
"RC ini": {
"glob": "*.ini",
"params": "copy"
},
"RC ttf": {
"glob": "*.ttf",
"params": "copy"
},
"RC otf": {
"glob": "*.otf",
"params": "copy"
},
"RC ext": {
"glob": "*.ext",
"params": "copy"
},
// Copy all pak files except level.pak, level.pak has its own builder.
"RC pak": {
"pattern": "^((?!\\\\/level\\\\.pak).)*\\\\.pak$",
"params": "copy"
},
"RC ctc": {
"glob": "*.ctc",
"params": "copy"
},
"RC uiprefab": {
"glob": "*.uiprefab",
"params": "copy",
"server": "skip"
},
"RC sprite": {
"glob": "*.sprite",
"params": "copy",
"server": "skip"
},
"RC bin": {
"glob": "*.bin",
"params": "copy"
},
"RC inputbindings": {
"glob": "*.inputbindings",
"params": "copy",
"productAssetType": "{25971C7A-26E2-4D08-A146-2EFCC1C36B0C}"
},
"RC physmaterial": {
"glob": "*.physmaterial",
"params": "copy",
"productAssetType": "{9E366D8C-33BB-4825-9A1F-FA3ADBE11D0F}"
},
"RC ocm": {
"glob": "*.ocm",
"params": "copy"
},
// Feature tests use the raw .tif files for the golden image comparison
"RC goldenimages": {
"pattern": ".*GoldenImages\\\\/.*\\\\.tif",
"params": "copy",
"server": "skip"
},
// Copy over certificates for use with FileDataSource
"RC CertificatePEM": {
"glob": "*.pem",
"params": "copy"
},
// Copy over certificates for use with Dynamic Content
"RC CertificateDER": {
"glob": "*.der",
"params": "copy"
},
"RC PhysXMeshAsset": {
"glob": "*.pxmesh",
"params": "copy",
"productAssetType": "{7A2871B9-5EAB-4DE0-A901-B0D2C6920DDB}"
},
// Copy over cooked PhysX heightfield
"RC PhysX HeightField": {
"glob": "*.pxheightfield",
"params": "copy",
"productAssetType": "{B61189FE-B2D7-4AF1-8951-CB5C0F7834FC}"
},
"RC filetag": {
"glob": "*.filetag",
"params": "copy",
"productAssetType": "{F3BE5CAB-85B7-44B7-9495-863863F6B267}"
},
// Precompiled shader variant
"RC azshadervariant": {
"glob": "*.azshadervariant",
"params": "copy",
"productAssetType": "{51BED815-36D8-410E-90F0-1FA9FF765FBA}"
}
}
}
}
}