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/AssetProcessorPlatformConfi...

609 lines
28 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"
},
"Platform es3": {
"tags": "android,mobile,renderer,vulkan"
},
"Platform ios": {
"tags": "mobile,renderer,metal"
},
"Platform osx_gl": {
"tags": "tools,renderer,metal"
},
// 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",
//"es3": "enabled",
//"ios": "enabled",
//"osx_gl": "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"
},
// ---- 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 osx_gl, you will have a scanfolder rule like
// "ScanFolder (unique identifier)": {
// "watch": "@ROOT@/foo",
// "include": "tools, renderer",
// "exclude": "osx_gl"
// }
"ScanFolder Game": {
"watch": "@PROJECTROOT@",
"display": "@PROJECTROOT@",
"recursive": 1,
"order": 0
},
// gems will be auto-added from 100 onwards
"ScanFolder Root": {
"watch": "@ROOT@",
"recursive": 0,
"order": 10000
},
"ScanFolder Engine": {
"watch": "@ENGINEROOT@/Engine",
"recursive": 1,
"order": 20000
},
"ScanFolder Editor": {
"watch": "@ENGINEROOT@/Editor",
"output": "editor",
"recursive": 1,
"order": 30000,
"include": "tools,renderer"
},
// 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 AlembicCompressionTemplates": {
"pattern": ".*\\\\/Presets\\\\/GeomCache\\\\/.*"
},
"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/.*"
},
// ------------------------------------------------------------------------------
// Large Worlds Test
// ------------------------------------------------------------------------------
"Exclude Work In Progress Folders": {
"pattern": ".*\\\\/WIP\\\\/.*"
},
"Exclude Content Source Folders": {
"pattern": ".*\\\\/CONTENT_SOURCE\\\\/.*"
},
"Exclude Art Source Folders": {
"pattern": ".*\\\\/ArtSource\\\\/.*"
},
//------------------------------------------------------------------------------
// RC params mapping examples
//------------------------------------------------------------------------------
// 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": "/tga /texture"
//}
// Use a glob, have special params for es3 platform
// "RC TIFFs": {
// "glob": "*.tif",
// "params": "/texture",
// "es3": "/pvrt"
//}
// You can also modify a version to compile all matching files again
// By default the version is empty
// "RC tif": {
// "glob": "*.tif",
// "params": "\\someparams",
// "version": 1.0
//}
// This will make the AssetProcessor compile all the .tif files again
// you can also optionally supply a priority.
// this is used to sort jobs when no other external circumstance sorts them
// for example, copy jobs will be higher in priority than other jobs that are not copy jobs
// however if they're both copy jobs or both not, and no other circumstances apply, then priority will be used.
// default priority is zero if not specified
// you can specify an option to skip processing for a file type based on the platform.
// for example, if you dont want to process tif files for ios, you can make tif files
// process on any platform except for ios:
// "RC tif": {
// "glob": "*.tif",
// "params": "\\someparams",
// "ios": "skip"
//}
// you can specify an option to output product dependencies for a copy job.
// please note that you only need to set this option when cry code is required to parse the asset.
// otherwise product dependencies will be output automatically by the CopyDependencyBuilder.
// for example, if you want to output the product dependencies for font assets:
// "RC font": {
// "glob": "*.font",
// "params": "copy",
// "outputProductDependencies": true
//}
// you can also specify an option to make all jobs critical that matches some pattern/glob.
// for example, if you want to make all png files critical than set critical to true.
// Note that by default all copy jobs are critical.
// Critical jobs are processed before non critical jobs and also prevent the runtime or editor from starting until they are all complete.
// "RC png": {
// "glob": "*.png",
// "params": "\\someparams",
// "critical": true
//}
// you can also specify an option to make all the job store in the asset server cache location if you are running AP in server mode.
// For example, if you want to store all png jobs in the asset server cache location including their logs, you can set checkServer = true.
// The client(i.e if you are running AP in non-server mode) will also check for this flag to know which jobs to fetch from the asset server cache location.
// if unsucessful, it will process the job locally as usual.
// "RC png": {
// "glob": "*.png",
// "params": "\\someparams",
// "critical": true,
// "checkServer": true
//}
// 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: process everything EXCEPT the ones in the libs/ui folder with these params
// "RC png-normal": {
// "pattern": "(?!.*libs\\\\/ui\\\\/).*\\.png",
// "params": "/imagecompressor=CTSquish /streaming=0",
// "lockSource": true
//}
//Example: Process everything in the libs/ui folder with linear color space
// "RC png-ui": {
// "pattern": "(.*libs\\\\/ui\\\\/).*\\.png",
// "params": "/imagecompressor=CTSquish /streaming=0 /colorspace=linear,linear",
// "lockSource": true
//}
// 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
// Give every [Section Name] its own unique Name or else they will overwrite each other!
"RC i_caf": {
"glob": "*.i_caf",
"params": "/cafAlignTracks=1 /animConfigFolder=Animations /skipdba=1 /refresh=1",
// force server to send the 'pc' platform to RC.EXE so it compiles the same as PC.
"server": "/cafAlignTracks=1 /animConfigFolder=Animations /skipdba=1 /refresh=1 /p=pc",
"priority": 5,
"productAssetType": "{6023CFF8-FCBA-4528-A8BF-6E0E10B9AB9C}"
},
"RC caf": {
"glob": "*.caf",
"params": "copy",
"productAssetType": "{6023CFF8-FCBA-4528-A8BF-6E0E10B9AB9C}"
},
"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 dba": {
"glob": "*.dba",
"params": "copy",
"productAssetType": "{511562BE-65A5-4538-A5F1-AC685366243E}",
"version": 2
},
"RC cgf": {
"glob": "*.cgf",
"params": "/VertexPositionFormat=exporter /VertexIndexFormat=u32",
// on server, feed rc.exe the param /p=pc to force it to compile assets for server platform in pc format.
"server": "/VertexPositionFormat=exporter /VertexIndexFormat=u32 /p=pc",
"lockSource": true,
"priority": 10
// allow CGF files to compile first, so untextured models appear before their textures for faster startup
// other available params: /SplitLODs=1
},
"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 fbx": {
"glob": "*.fbx",
// Priority set to 9 so its "before" things like materials but after things like actors and motions (which build using a proper AssetBuilderSDK builder and thus are not in this file)
"priority": 9,
"version": 5
},
"RC chr": {
"glob": "*.chr",
"params": "copy",
"productAssetType": "{60161B46-21F0-4396-A4F0-F2CCF0664CDE}",
"version": 2
},
"RC skin": {
"glob": "*.skin",
"params": "copy"
},
"RC cfi": {
"glob": "*.cfi",
"params": "copy"
},
"RC cfx": {
"glob": "*.cfx",
"params": "copy"
},
"RC cfr": {
"glob": "*.cfr",
"params": "copy"
},
// Warning: If you change the VertexIndexFormat, make sure you update the vtx_idx typedef in Code\CryEngine\CryCommon\ProjectDefines.h
"RC abc": {
"glob": "*.abc",
"params": "/SkipFilesWithoutBuildConfig=0 /VertexIndexFormat=u32",
"console": "/SkipFilesWithoutBuildConfig=0 /VertexIndexFormat=u32",
"mobile": "/SkipFilesWithoutBuildConfig=0 /VertexIndexFormat=u16",
"version": 3,
"server": "skip"
},
"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 adb": {
"glob": "*.adb",
"params": "copy",
"productAssetType": "{50908273-CA36-4668-9828-15DD5092F973}"
},
"RC bspace": {
"glob": "*.bspace",
"params": "copy"
},
"RC cdf": {
"glob": "*.cdf",
"params": "copy",
"productAssetType": "{DF036C63-9AE6-4AC3-A6AC-8A1D76126C01}"
},
// note - this used to be skinnedMeshAsset but its now Character Definition File specific.
// .skin has its own type.
"RC chrparams": {
"glob": "*.chrparams",
"params": "copy",
"productAssetType": "{4BBB785A-6824-4803-A607-F9323E7BEEF1}",
"version": 2
},
"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 srg
"RC azsrg": {
"glob": "*.azsrg",
"params": "copy",
"productAssetType": "{F8C9F4AE-3F6A-45AD-B4FB-0CA415FCC2E1}"
},
// Precompiled shader variant
"RC azshadervariant": {
"glob": "*.azshadervariant",
"params": "copy",
"productAssetType": "{9F4D654B-4439-4C61-8DCD-F1C7C5560768}"
}
}
}
}
}