atom_constants.py 77 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237
  1. """
  2. Copyright (c) Contributors to the Open 3D Engine Project.
  3. For complete copyright and license terms please see the LICENSE at the root of this distribution.
  4. SPDX-License-Identifier: Apache-2.0 OR MIT
  5. Holds constants used across both hydra and non-hydra scripts.
  6. """
  7. # Light type options for the Light component.
  8. LIGHT_TYPES = {
  9. 'unknown': 0,
  10. 'sphere': 1,
  11. 'spot_disk': 2,
  12. 'capsule': 3,
  13. 'quad': 4,
  14. 'polygon': 5,
  15. 'simple_point': 6,
  16. 'simple_spot': 7,
  17. }
  18. # Intensity mode options for the Light component.
  19. INTENSITY_MODE = {
  20. 'Candela': 0,
  21. 'Lumen': 1,
  22. 'Ev100': 3,
  23. 'Nit': 5,
  24. }
  25. # Attenuation Radius Mode options for the Light component.
  26. ATTENUATION_RADIUS_MODE = {
  27. 'explicit': 0,
  28. 'automatic': 1,
  29. }
  30. # Shadow Map Size options for the Light component.
  31. SHADOWMAP_SIZE = {
  32. 'Size256': 256,
  33. 'Size512': 512,
  34. 'Size1024': 1024,
  35. 'Size2048': 2048,
  36. }
  37. # Shadow filter method options for the Light component.
  38. SHADOW_FILTER_METHOD = {
  39. 'PCF': 1,
  40. 'ESM': 2,
  41. 'PCF+ESM': 3,
  42. 'None': 0,
  43. }
  44. # CubeMap capture type options for the Cubemap Capture Component
  45. CUBEMAP_CAPTURE_TYPE = {
  46. 'Specular IBL': 0,
  47. 'Diffuse ILB': 1,
  48. }
  49. # Specular IBL property options for the Cubemap Capture Component
  50. SPECULAR_IBL_QUALITY = {
  51. 'Very Low': 0,
  52. 'Low': 1,
  53. 'Medium': 2,
  54. 'High': 3,
  55. 'Very High': 4,
  56. }
  57. # Qualiity Level settings for Diffuse Global Illumination level component
  58. GLOBAL_ILLUMINATION_QUALITY = {
  59. 'Low': 0,
  60. 'Medium': 1,
  61. 'High': 2,
  62. }
  63. # Mesh LOD type
  64. MESH_LOD_TYPE = {
  65. 'default': 0,
  66. 'screen coverage': 1,
  67. 'specific lod': 2,
  68. }
  69. # Display Mapper type
  70. DISPLAY_MAPPER_OPERATION_TYPE = {
  71. 'Aces': 0,
  72. 'AcesLut': 1,
  73. 'Passthrough': 2,
  74. 'GammaSRGB': 3,
  75. 'Reinhard': 4,
  76. }
  77. # Display Mapper presets
  78. DISPLAY_MAPPER_PRESET = {
  79. '48Nits': 0,
  80. '1000Nits': 1,
  81. '2000Nits': 2,
  82. '4000Nits': 3,
  83. }
  84. # Control Type options for the Exposure Control component.
  85. EXPOSURE_CONTROL_TYPE = {
  86. 'manual': 0,
  87. 'eye_adaptation': 1
  88. }
  89. #Reflection Probe Baked Cubemap Quality
  90. BAKED_CUBEMAP_QUALITY = {
  91. 'Very Low': 0,
  92. 'Low': 1,
  93. 'Medium': 2,
  94. 'High': 3,
  95. 'Very High': 4
  96. }
  97. #Diffuse Probe Grid number of rays to cast per probe from enum DiffuseProbeGridNumRaysPerProbe
  98. NUM_RAYS_PER_PROBE = {
  99. 'NumRaysPerProbe_144': 0,
  100. 'NumRaysPerProbe_288': 1,
  101. 'NumRaysPerProbe_432': 2,
  102. 'NumRaysPerProbe_576': 3,
  103. 'NumRaysPerProbe_720': 4,
  104. 'NumRaysPerProbe_864': 5,
  105. 'NumRaysPerProbe_1008': 6,
  106. }
  107. # LUT Resolution options for the HDR Color Grading component.
  108. LUT_RESOLUTION = {
  109. '16x16x16': 16,
  110. '32x32x32': 32,
  111. '64x64x64': 64,
  112. }
  113. # Shaper Type options for the HDR Color Grading & Look Modification components.
  114. SHAPER_TYPE = {
  115. 'None': 0,
  116. 'linear_custom': 1,
  117. '48_nits': 2,
  118. '1000_nits': 3,
  119. '2000_nits': 4,
  120. '4000_nits': 5,
  121. 'log2_custom': 6,
  122. 'pq': 7,
  123. }
  124. # Hair Lighting Model
  125. HAIR_LIGHTING_MODEL = {
  126. 'GGX': 0,
  127. 'Marschner': 1,
  128. 'Kajiya': 2,
  129. }
  130. # Physical Sky Intensity Mode
  131. PHYSICAL_SKY_INTENSITY_MODE = {
  132. 'Ev100': 4,
  133. 'Nit': 3,
  134. }
  135. # PostFX Layer Category as defined in
  136. # ./Gems/AtomLyIntegration/CommonFeatures/Assets/PostProcess/default.postfxlayercategories
  137. POSTFX_LAYER_CATEGORY = {
  138. 'FrontEnd': 1000000,
  139. 'Cinematics': 2000000,
  140. 'Gameplay': 3000000,
  141. 'Camera': 4000000,
  142. 'Volume': 5000000,
  143. 'Level': 6000000,
  144. 'Default': 2147483647,
  145. }
  146. # Level list used in Editor Level Load Test
  147. # WARNING: "Sponza" level is sandboxed due to an intermittent failure.
  148. LEVEL_LIST = ["hermanubis", "hermanubis_high", "macbeth_shaderballs", "PbrMaterialChart", "ShadowTest"]
  149. class AtomComponentProperties:
  150. """
  151. Holds Atom component related constants
  152. """
  153. @staticmethod
  154. def actor(property: str = 'name') -> str:
  155. """
  156. Actor component properties.
  157. - 'Actor asset' Asset.id of the actor asset.
  158. :param property: From the last element of the property tree path. Default 'name' for component name string.
  159. :return: Full property path OR component name if no property specified.
  160. """
  161. properties = {
  162. 'name': 'Actor',
  163. 'Actor asset': 'Actor asset',
  164. }
  165. return properties[property]
  166. @staticmethod
  167. def bloom(property: str = 'name') -> str:
  168. """
  169. Bloom component properties. Requires PostFX Layer component.
  170. - 'requires' a list of component names as strings required by this component.
  171. Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.\n
  172. - 'Enable Bloom' Toggle active state of the component True/False
  173. - 'Enabled Override' Toggle use of overrides on the bloom component
  174. - 'Threshold Override' Override factor for Threshold (0-1)
  175. - 'Knee Override' Override factor for Knee (0-1)
  176. - 'Intensity Override' Override factor for Intensity (0-1)
  177. - 'BicubicEnabled Override' Override toggle for Bicubic Enabled
  178. - 'KernelSizeScale Override' Override factor for Kernel Size Scale (0-1)
  179. - 'KernelSizeStage0 Override' Override factor for Kernel Size stage 0 (0-1)
  180. - 'KernelSizeStage1 Override' Override factor for Kernel Size stage 1 (0-1)
  181. - 'KernelSizeStage2 Override' Override factor for Kernel Size stage 2 (0-1)
  182. - 'KernelSizeStage3 Override' Override factor for Kernel Size stage 3 (0-1)
  183. - 'KernelSizeStage4 Override' Override factor for Kernel Size stage 4 (0-1)
  184. - 'TintStage0 Override' Override factor for Tint stage 0 (0-1)
  185. - 'TintStage1 Override' Override factor for Tint stage 1 (0-1)
  186. - 'TintStage2 Override' Override factor for Tint stage 2 (0-1)
  187. - 'TintStage3 Override' Override factor for Tint stage 3 (0-1)
  188. - 'TintStage4 Override' Override factor for Tint stage 4 (0-1)
  189. - 'Threshold' Brighness of the light source to which bloom is applied (0-INF)
  190. - 'Knee' Soft knee to smoothen edges of threshold (0-1)
  191. - 'Intensity' Brightness of bloom (0-10000)
  192. - 'Enable Bicubic' Toggle to enable Bicubic Filtering for upsampling
  193. - 'Kernel Size Scale' Global scaling factor for Kernel size (0-2)
  194. - 'Kernel Size 0' Kernel Size for blur stage 0 in percent of screen width (0-1)
  195. - 'Kernel Size 1' Kernel Size for blur stage 1 in percent of screen width (0-1)
  196. - 'Kernel Size 2' Kernel Size for blur stage 2 in percent of screen width (0-1)
  197. - 'Kernel Size 3' Kernel Size for blur stage 3 in percent of screen width (0-1)
  198. - 'Kernel Size 4' Kernel Size for blur stage 4 in percent of screen width (0-1)
  199. - 'Tint 0' Tint for blur stage 0. RGB value set using azlmbr.math.Vector3 tuple
  200. - 'Tint 1' Tint for blur stage 1. RGB value set using azlmbr.math.Vector3 tuple
  201. - 'Tint 2' Tint for blur stage 2. RGB value set using azlmbr.math.Vector3 tuple
  202. - 'Tint 3' Tint for blur stage 3. RGB value set using azlmbr.math.Vector3 tuple
  203. - 'Tint 4' Tint for blur stage 4. RGB value set using azlmbr.math.Vector3 tuple
  204. :param property: From the last element of the property tree path. Default 'name' for component name string.
  205. :return: Full property path OR component name if no property specified.
  206. """
  207. properties = {
  208. 'name': 'Bloom',
  209. 'requires': [AtomComponentProperties.postfx_layer()],
  210. 'Enable Bloom': 'Controller|Configuration|Enable Bloom',
  211. 'Enabled Override': 'Controller|Configuration|Overrides|Enabled Override',
  212. 'Threshold Override': 'Controller|Configuration|Overrides|Threshold Override',
  213. 'Knee Override': 'Controller|Configuration|Overrides|Knee Override',
  214. 'Intensity Override': 'Controller|Configuration|Overrides|Intensity Override',
  215. 'BicubicEnabled Override': 'Controller|Configuration|Overrides|BicubicEnabled Override',
  216. 'KernelSizeScale Override': 'Controller|Configuration|Overrides|KernelSizeScale Override',
  217. 'KernelSizeStage0 Override': 'Controller|Configuration|Overrides|KernelSizeStage0 Override',
  218. 'KernelSizeStage1 Override': 'Controller|Configuration|Overrides|KernelSizeStage1 Override',
  219. 'KernelSizeStage2 Override': 'Controller|Configuration|Overrides|KernelSizeStage2 Override',
  220. 'KernelSizeStage3 Override': 'Controller|Configuration|Overrides|KernelSizeStage3 Override',
  221. 'KernelSizeStage4 Override': 'Controller|Configuration|Overrides|KernelSizeStage4 Override',
  222. 'TintStage0 Override': 'Controller|Configuration|Overrides|TintStage0 Override',
  223. 'TintStage1 Override': 'Controller|Configuration|Overrides|TintStage1 Override',
  224. 'TintStage2 Override': 'Controller|Configuration|Overrides|TintStage2 Override',
  225. 'TintStage3 Override': 'Controller|Configuration|Overrides|TintStage3 Override',
  226. 'TintStage4 Override': 'Controller|Configuration|Overrides|TintStage4 Override',
  227. 'Threshold': 'Controller|Configuration|Threshold',
  228. 'Knee': 'Controller|Configuration|Knee',
  229. 'Intensity': 'Controller|Configuration|Intensity',
  230. 'Enable Bicubic': 'Controller|Configuration|Enable Bicubic',
  231. 'Kernel Size Scale': 'Controller|Configuration|Kernel Size|Kernel Size Scale',
  232. 'Kernel Size 0': 'Controller|Configuration|Kernel Size|Kernel Size 0',
  233. 'Kernel Size 1': 'Controller|Configuration|Kernel Size|Kernel Size 1',
  234. 'Kernel Size 2': 'Controller|Configuration|Kernel Size|Kernel Size 2',
  235. 'Kernel Size 3': 'Controller|Configuration|Kernel Size|Kernel Size 3',
  236. 'Kernel Size 4': 'Controller|Configuration|Kernel Size|Kernel Size 4',
  237. 'Tint 0': 'Controller|Configuration|Tint|Tint 0',
  238. 'Tint 1': 'Controller|Configuration|Tint|Tint 1',
  239. 'Tint 2': 'Controller|Configuration|Tint|Tint 2',
  240. 'Tint 3': 'Controller|Configuration|Tint|Tint 3',
  241. 'Tint 4': 'Controller|Configuration|Tint|Tint 4',
  242. }
  243. return properties[property]
  244. @staticmethod
  245. def camera(property: str = 'name') -> str:
  246. """
  247. Camera component properties.
  248. - 'Field of view': Sets the value for the camera's FOV (Field of View) in degrees, i.e. 60.0
  249. :param property: From the last element of the property tree path. Default 'name' for component name string.
  250. :return: Full property path OR component name if no property specified.
  251. """
  252. properties = {
  253. 'name': 'Camera',
  254. 'Field of view': 'Controller|Configuration|Field of view'
  255. }
  256. return properties[property]
  257. @staticmethod
  258. def cube_map_capture(property: str = 'name') -> str:
  259. """
  260. CubeMap capture component properties.
  261. - 'Specular ILB' controls the quality of Specular IBL created
  262. - 'Capture Type': controls if CubeMap Capture component uses 'Diffuse ILB' or 'Specular ILB'
  263. - 'Exposure': Controls the exposure light in the image taken
  264. :param property: From the last element of the property tree path. Default 'name' for component name string.
  265. :return: Full property path OR component name if no property specified.
  266. """
  267. properties = {
  268. 'name': 'CubeMap Capture',
  269. 'Specular IBL CubeMap Quality': 'Controller|Configuration|Specular IBL CubeMap Quality',
  270. 'Capture Type': 'Controller|Configuration|Capture Type',
  271. 'Exposure': 'Controller|Configuration|Exposure',
  272. }
  273. return properties[property]
  274. @staticmethod
  275. def decal(property: str = 'name') -> str:
  276. """
  277. Decal component properties.
  278. - 'Attenuation Angle' controls how much the angle between geometry and decal impacts opacity. 0-1 Radians
  279. - 'Opacity' where one is opaque and zero is transparent
  280. - 'Normal Map Opacity' normal map set to one is opaque and zero is transparent
  281. - 'Sort Key' 0-255 stacking z-sort like key to define which decal is on top of another
  282. - 'Material' the material Asset.id of the decal.
  283. :param property: From the last element of the property tree path. Default 'name' for component name string.
  284. :return: Full property path OR component name if no property specified.
  285. """
  286. properties = {
  287. 'name': 'Decal',
  288. 'Attenuation Angle': 'Controller|Configuration|Attenuation Angle',
  289. 'Opacity': 'Controller|Configuration|Opacity',
  290. 'Normal Map Opacity': 'Controller|Configuration|Normal Map Opacity',
  291. 'Sort Key': 'Controller|Configuration|Sort Key',
  292. 'Material': 'Controller|Configuration|Material',
  293. }
  294. return properties[property]
  295. @staticmethod
  296. def deferred_fog(property: str = 'name') -> str:
  297. """
  298. Deferred Fog component properties. Requires PostFX Layer component.
  299. - 'requires' a list of component names as strings required by this component.
  300. Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.\n
  301. - 'Enable Deferred Fog' Toggle active state of the component (bool).
  302. - 'Fog Color' Sets the fog color. RGB value set using azlmbr.math.Vector3 tuple.
  303. - 'Fog Start Distance' Distance from the viewer where the fog starts (0.0, 5000.0).
  304. - 'Fog End Distance' Distance from the viewer where fog masks the background scene (0.0, 5000.0).
  305. - 'Fog Bottom Height' Height at which the fog layer starts (-5000.0, 5000.0).
  306. - 'Fog Max Height' Height of the fog layer top (-5000.0, 5000.0).
  307. - 'Noise Texture' The noise texture used for creating the fog turbulence (Asset.id).
  308. This property is not yet implemented for editing and will be fixed in a future sprint.
  309. - 'Noise Texture First Octave Scale' Scale of the first noise octave (INF, INF).
  310. Higher values indicates higher frequency. Values set using azlmbr.math.Vector2 tuple.
  311. - 'Noise Texture First Octave Velocity' Velocity of the first noise octave UV coordinates (INF, INF).
  312. Values set using azlmbr.math.Vector2 tuple.
  313. - 'Noise Texture Second Octave Scale' Scale of the second noise octave (INF, INF).
  314. Higher values indicates higher frequency. Values set using azlmbr.math.Vector2 tuple.
  315. - 'Noise Texture Second Octave Velocity' Velocity of the second noise octave UV coordinates (INF, INF).
  316. Values set using azlmbr.math.Vector2 tuple.
  317. - 'Octaves Blend Factor' Blend factor between the noise octaves (0.0, 1.0).
  318. - 'Enable Turbulence Properties' Enables Turbulence Properties (bool).
  319. - 'Enable Fog Layer' Enables the fog layer (bool).
  320. :param property: From the last element of the property tree path. Default 'name' for component name string.
  321. :return: Full property path OR component name if no property specified.
  322. """
  323. properties = {
  324. 'name': 'Deferred Fog',
  325. 'requires': [AtomComponentProperties.postfx_layer()],
  326. 'Enable Deferred Fog': 'Controller|Configuration|Enable Deferred Fog',
  327. 'Fog Color': 'Controller|Configuration|Fog Color',
  328. 'Fog Start Distance': 'Controller|Configuration|Fog Start Distance',
  329. 'Fog End Distance': 'Controller|Configuration|Fog End Distance',
  330. 'Fog Bottom Height': 'Controller|Configuration|Fog Bottom Height',
  331. 'Fog Max Height': 'Controller|Configuration|Fog Max Height',
  332. 'Noise Texture': 'Controller|Configuration|Noise Texture',
  333. 'Noise Texture First Octave Scale': 'Controller|Configuration|Noise Texture First Octave Scale',
  334. 'Noise Texture First Octave Velocity': 'Controller|Configuration|Noise Texture First Octave Velocity',
  335. 'Noise Texture Second Octave Scale': 'Controller|Configuration|Noise Texture Second Octave Scale',
  336. 'Noise Texture Second Octave Velocity': 'Controller|Configuration|Noise Texture Second Octave Velocity',
  337. 'Octaves Blend Factor': 'Controller|Configuration|Octaves Blend Factor',
  338. 'Enable Turbulence Properties': 'Controller|Configuration|Enable Turbulence Properties',
  339. 'Enable Fog Layer': 'Controller|Configuration|Enable Fog Layer',
  340. }
  341. return properties[property]
  342. @staticmethod
  343. def depth_of_field(property: str = 'name') -> str:
  344. """
  345. Depth of Field component properties. Requires PostFX Layer component.
  346. - 'requires' a list of component names as strings required by this component.
  347. Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.\n
  348. - 'Camera Entity' an EditorEntity.id reference to the Camera component required for this effect.
  349. Must be a different entity than the one which hosts Depth of Field component.\n
  350. - 'CameraEntityId Override' Override enable for CameraEntityId, (bool, default true).
  351. - 'Enabled Override' Override enable for Enabled, (bool, default true).
  352. - 'QualityLevel Override' Override enable for QualityLevel, (bool, default true).
  353. - 'ApertureF Override' Override factor for ApertureF, (float, 0.0 to default 1.0).
  354. - 'FocusDistance Override' Override factor for Focus Distance, (float, 0.0 to default 1.0).
  355. - 'EnableAutoFocus Override' Override enable for EnableAutoFocus, (bool, default true).
  356. - 'AutoFocusScreenPosition Override' Override enable for AutoFocusScreenPosition, (float, 0.0 to default 1.0).
  357. - 'AutoFocusSensitivity Override' Override enable for AutoFocusSensitivity, (float, 0.0 to default 1.0).
  358. - 'AutoFocusSpeed Override' Override enable for AutoFocusSpeed, (float, 0.0 to default 1.0).
  359. - 'AutoFocusDelay Override' Override enable for AutoFocusDelay, (float, 0.0 to default 1.0).
  360. - 'EnableDebugColoring Override' Override enable for EnableDebugColoring, (bool, default true).
  361. - 'Enable Depth of Field' Enables or disables depth of field, (bool, default false).
  362. - 'Quality Level' 0 or 1, 0 is standard Bokeh blur, 1 is high quality Bokeh blur (int, 0 or 1, default is 1).
  363. - 'Aperture F' The higher the value the larger the aperture opening, (float, 0.0 to default 0.5).
  364. - 'F Number' The ratio of the system's focal length to the diameter of the aperture.
  365. - 'Focus Distance' The distance from the camera to the focused object (float, 0.0 to default 100.0).
  366. - 'Enable Auto Focus' Enables or disables auto focus (bool, default true).
  367. - 'Focus Screen Position' XY value of the focus position on screen for autofocus (math.Vector2(float x, float
  368. y) where ranges are 0.0 to 1.0).\n
  369. - 'Auto Focus Sensitivity' Higher value is more responsive, lower needs greater distance depth to refocus,
  370. range 0.0 to 1.0.
  371. - 'Auto Focus Speed' Distance that focus moves per second, normalizing the distance from view near to view far
  372. at the value of 1, range 0.0 to 2.0.
  373. - 'Auto Focus Delay' Specifies a delay time for focus to shift from one target to another, range 0.0 to 1.0.
  374. - 'Enable Debug Color' Enables or disables debug color overlay, (bool).
  375. :param property: From the last element of the property tree path. Default 'name' for component name string.
  376. :return: Full property path OR component name if no property specified.
  377. """
  378. properties = {
  379. 'name': 'DepthOfField',
  380. 'requires': [AtomComponentProperties.postfx_layer()],
  381. 'Camera Entity': 'Controller|Configuration|Camera Entity',
  382. 'CameraEntityId Override': 'Controller|Configuration|Overrides|CameraEntityId Override',
  383. 'Enabled Override': 'Controller|Configuration|Overrides|Enabled Override',
  384. 'QualityLevel Override': 'Controller|Configuration|Overrides|QualityLevel Override',
  385. 'ApertureF Override': 'Controller|Configuration|Aperture F',
  386. 'FocusDistance Override': 'Controller|Configuration|Overrides|FocusDistance Override',
  387. 'EnableAutoFocus Override': 'Controller|Configuration|Overrides|EnableAutoFocus Override',
  388. 'AutoFocusScreenPosition Override': 'Controller|Configuration|Overrides|AutoFocusScreenPosition Override',
  389. 'AutoFocusSensitivity Override': 'Controller|Configuration|Overrides|AutoFocusSensitivity Override',
  390. 'AutoFocusSpeed Override': 'Controller|Configuration|Overrides|AutoFocusSpeed Override',
  391. 'AutoFocusDelay Override': 'Controller|Configuration|Overrides|AutoFocusDelay Override',
  392. 'EnableDebugColoring Override': 'Controller|Configuration|Overrides|EnableDebugColoring Override',
  393. 'Enable Depth of Field': 'Controller|Configuration|Enable Depth of Field',
  394. 'Quality Level': 'Controller|Configuration|Quality Level',
  395. 'Aperture F': 'Controller|Configuration|Aperture F',
  396. 'F Number': 'Controller|Configuration|F Number',
  397. 'Focus Distance': 'Controller|Configuration|Focus Distance',
  398. 'Enable Auto Focus': 'Controller|Configuration|Auto Focus|Enable Auto Focus',
  399. 'Focus Screen Position': 'Controller|Configuration|Auto Focus|Focus Screen Position',
  400. 'Auto Focus Sensitivity': 'Controller|Configuration|Auto Focus|Auto Focus Sensitivity',
  401. 'Auto Focus Speed': 'Controller|Configuration|Auto Focus|Auto Focus Speed',
  402. 'Auto Focus Delay': 'Controller|Configuration|Auto Focus|Auto Focus Delay',
  403. 'Enable Debug Color': 'Controller|Configuration|Debugging|Enable Debug Color'
  404. }
  405. return properties[property]
  406. @staticmethod
  407. def diffuse_global_illumination(property: str = 'name') -> str:
  408. """
  409. Diffuse Global Illumination level component properties.
  410. Controls global settings for Diffuse Probe Grid components.
  411. - 'Quality Level' from atom_constants.py GLOBAL_ILLUMINATION_QUALITY
  412. :param property: From the last element of the property tree path. Default 'name' for component name string.
  413. :return: Full property path OR component name if no property specified.
  414. """
  415. properties = {
  416. 'name': 'Diffuse Global Illumination',
  417. 'Quality Level': 'Controller|Configuration|Quality Level'
  418. }
  419. return properties[property]
  420. @staticmethod
  421. def diffuse_probe_grid(property: str = 'name') -> str:
  422. """
  423. Diffuse Probe Grid component properties. Requires one of 'shapes'.
  424. - 'shapes' a list of supported shapes as component names.
  425. - 'Scrolling' Toggle the translation of probes with the entity (bool)
  426. - 'Show Inactive Probes' Toggle the visualization of inactive probes (bool)
  427. - 'Show Visualization' Toggles the probe grid visualization (bool)
  428. - 'Visualization Sphere Radius' Sets the radius of probe visualization spheres (float 0.1 to inf)
  429. - 'Normal Bias' Adjusts normal bias (float 0.0 to 1.0)
  430. - 'Ambient Multiplier' adjusts multiplier for irradiance intensity (float 0.0 to 10.0)
  431. - 'View Bias'Adjusts view bias (float 0.0 to 1.0)
  432. - 'Number of Rays Per Probe' Number of rays to cast per probe from atom_constants.py NUM_RAYS_PER_PROBE
  433. :param property: From the last element of the property tree path. Default 'name' for component name string.
  434. :return: Full property path OR component name if no property specified.
  435. """
  436. properties = {
  437. 'name': 'Diffuse Probe Grid',
  438. 'shapes': ['Axis Aligned Box Shape', 'Box Shape'],
  439. 'Scrolling': 'Grid Settings|Scrolling',
  440. 'Show Inactive Probes': 'Visualization|Show Inactive Probes',
  441. 'Show Visualization': 'Visualization|Show Visualization',
  442. 'Visualization Sphere Radius': 'Visualization|Visualization Sphere Radius',
  443. 'Normal Bias': 'Grid Settings|Normal Bias',
  444. 'Ambient Multiplier': 'Grid Settings|Ambient Multiplier',
  445. 'View Bias': 'Grid Settings|View Bias',
  446. 'Number of Rays Per Probe': 'Grid Settings|Number of Rays Per Probe',
  447. }
  448. return properties[property]
  449. @staticmethod
  450. def directional_light(property: str = 'name') -> str:
  451. """
  452. Directional Light component properties.
  453. - 'Camera' an EditorEntity.id reference to the Camera component that controls cascaded shadow view frustum.
  454. Must be a different entity than the one which hosts Directional Light component.\n
  455. :param property: From the last element of the property tree path. Default 'name' for component name string.
  456. :return: Full property path OR component name if no property specified.
  457. """
  458. properties = {
  459. 'name': 'Directional Light',
  460. 'Camera': 'Controller|Configuration|Shadow|Camera',
  461. }
  462. return properties[property]
  463. @staticmethod
  464. def display_mapper(property: str = 'name') -> str:
  465. """
  466. Display Mapper level component properties.
  467. - 'Type' specifies the Display Mapper type from atom_constants.py DISPLAY_MAPPER_OPERATION_TYPE
  468. - 'Enable LDR color grading LUT' toggles the use of LDR color grading LUT
  469. - 'LDR color Grading LUT' is the Low Definition Range (LDR) color grading for Look-up Textures (LUT) which is
  470. an Asset.id value corresponding to a LUT asset file.
  471. - 'Override Defaults' toggle enables parameter overrides for ACES settings (bool)
  472. - 'Alter Surround' toggle applies gamma adjustments for dim surround (bool)
  473. - 'Alter Desaturation' toggle applies desaturation adjustment for luminance differences (bool)
  474. - 'Alter CAT D60 to D65' toggles conversion referencing black luminance level constant (bool)
  475. - 'Preset Selection' select from a list of presets from atom_constants.py DISPLAY_MAPPER_PRESET
  476. - 'Cinema Limit (black)' reference black
  477. - 'Cinema Limit (white)' reference white
  478. - 'Min Point (luminance)' linear extension below this value
  479. - 'Mid Point (luminance)' middle gray value
  480. - 'Max Point (luminance)' linear extension above this value
  481. - 'Surround Gamma' applied to compensate for the condition of the viewing environment
  482. - 'Gamma' value applied as the basic Gamma curve Opto-Electrical Transfer Function (OETF)
  483. :param property: From the last element of the property tree path. Default 'name' for component name string.
  484. :return: Full property path OR component name if no property specified.
  485. """
  486. properties = {
  487. 'name': 'Display Mapper',
  488. 'Type': 'Controller|Configuration|Type',
  489. 'Enable LDR color grading LUT': 'Controller|Configuration|Enable LDR color grading LUT',
  490. 'LDR color Grading LUT': 'Controller|Configuration|LDR color Grading LUT',
  491. 'Override Defaults': 'Controller|Configuration|ACES Parameters|Override Defaults',
  492. 'Alter Surround': 'Controller|Configuration|ACES Parameters|Alter Surround',
  493. 'Alter Desaturation': 'Controller|Configuration|ACES Parameters|Alter Desaturation',
  494. 'Alter CAT D60 to D65': 'Controller|Configuration|ACES Parameters|Alter CAT D60 to D65',
  495. 'Preset Selection': 'Controller|Configuration|ACES Parameters|Load Preset|Preset Selection',
  496. 'Cinema Limit (black)': 'Controller|Configuration|ACES Parameters|Cinema Limit (black)',
  497. 'Cinema Limit (white)': 'Controller|Configuration|ACES Parameters|Cinema Limit (white)',
  498. 'Min Point (luminance)': 'Controller|Configuration|ACES Parameters|Min Point (luminance)',
  499. 'Mid Point (luminance)': 'Controller|Configuration|ACES Parameters|Mid Point (luminance)',
  500. 'Max Point (luminance)': 'Controller|Configuration|ACES Parameters|Max Point (luminance)',
  501. 'Surround Gamma': 'Controller|Configuration|ACES Parameters|Surround Gamma',
  502. 'Gamma': 'Controller|Configuration|ACES Parameters|Gamma',
  503. }
  504. return properties[property]
  505. @staticmethod
  506. def entity_reference(property: str = 'name') -> str:
  507. """
  508. Entity Reference component properties.
  509. - 'EntityIdReferences' component container of entityId references. Initially empty.
  510. :param property: From the last element of the property tree path. Default 'name' for component name string.
  511. :return: Full property path OR component name if no property specified.
  512. """
  513. properties = {
  514. 'name': 'Entity Reference',
  515. 'EntityIdReferences': 'Controller|Configuration|EntityIdReferences',
  516. }
  517. return properties[property]
  518. @staticmethod
  519. def exposure_control(property: str = 'name') -> str:
  520. """
  521. Exposure Control component properties. Requires PostFX Layer component.
  522. - 'requires' a list of component names as strings required by this component.
  523. Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.\n
  524. - 'Enable' Toggle active state of Exposure Control (bool).
  525. - 'Enabled Override' Toggle active state of Exposure Control Overrides (bool).
  526. - 'ExposureControlType Override' Toggle enable for Exposure Control Type (bool).
  527. - 'ManualCompensation Override' Override Factor for Manual Compensation (0.0, 1.0).
  528. - 'EyeAdaptationExposureMin Override' Override Factor for Minimum Exposure (0.0, 1.0).
  529. - 'EyeAdaptationExposureMax Override' Override Factor for Maximum Exposure (0.0, 1.0).
  530. - 'EyeAdaptationSpeedUp Override' Override Factor for Speed Up (0.0, 1.0).
  531. - 'EyeAdaptationSpeedDown Override' Override Factor for Speed Down (0.0, 1.0).
  532. - 'HeatmapEnabled Override' Toggle enable for Enable Heatmap (bool).
  533. - 'Control Type' specifies manual or Eye Adaptation control from atom_constants.py CONTROL_TYPE.
  534. - 'Manual Compensation' Manual exposure compensation value (-16.0, 16.0).
  535. - 'Minimum Exposure' Exposure compensation for Eye Adaptation minimum exposure (-16.0, 16.0).
  536. - 'Maximum Exposure' Exposure compensation for Eye Adaptation maximum exposure (-16.0, 16.0).
  537. - 'Speed Up' Speed for Auto Exposure to adapt to bright scenes (0.01, 10.0).
  538. - 'Speed Down' Speed for Auto Exposure to adapt to dark scenes (0.01, 10.0).
  539. - 'Enable Heatmap' Toggle enable for Heatmap (bool).
  540. :param property: From the last element of the property tree path. Default 'name' for component name string.
  541. :return: Full property path OR component name if no property specified.
  542. """
  543. properties = {
  544. 'name': 'Exposure Control',
  545. 'requires': [AtomComponentProperties.postfx_layer()],
  546. 'Enable': 'Controller|Configuration|Enable',
  547. 'Enabled Override': 'Controller|Configuration|Overrides|Enabled Override',
  548. 'ExposureControlType Override': 'Controller|Configuration|Overrides|ExposureControlType Override',
  549. 'ManualCompensation Override': 'Controller|Configuration|Overrides|ManualCompensation Override',
  550. 'EyeAdaptationExposureMin Override': 'Controller|Configuration|Overrides|EyeAdaptationExposureMin Override',
  551. 'EyeAdaptationExposureMax Override': 'Controller|Configuration|Overrides|EyeAdaptationExposureMax Override',
  552. 'EyeAdaptationSpeedUp Override': 'Controller|Configuration|Overrides|EyeAdaptationSpeedUp Override',
  553. 'EyeAdaptationSpeedDown Override': 'Controller|Configuration|Overrides|EyeAdaptationSpeedDown Override',
  554. 'HeatmapEnabled Override': 'Controller|Configuration|Overrides|HeatmapEnabled Override',
  555. 'Control Type': 'Controller|Configuration|Control Type',
  556. 'Manual Compensation': 'Controller|Configuration|Manual Compensation',
  557. 'Minimum Exposure': 'Controller|Configuration|Eye Adaptation|Minimum Exposure',
  558. 'Maximum Exposure': 'Controller|Configuration|Eye Adaptation|Maximum Exposure',
  559. 'Speed Up': 'Controller|Configuration|Eye Adaptation|Speed Up',
  560. 'Speed Down': 'Controller|Configuration|Eye Adaptation|Speed Down',
  561. 'Enable Heatmap': 'Controller|Configuration|Eye Adaptation|Enable Heatmap',
  562. }
  563. return properties[property]
  564. @staticmethod
  565. def global_skylight(property: str = 'name') -> str:
  566. """
  567. Global Skylight (IBL) component properties.
  568. - 'Diffuse Image' Asset.id for the cubemap image for determining diffuse lighting.
  569. - 'Specular Image' Asset.id for the cubemap image for determining specular lighting.
  570. - 'Exposure' Exposure setting for Global Skylight, value range is -5 to 5
  571. :param property: From the last element of the property tree path. Default 'name' for component name string.
  572. :return: Full property path OR component name if no property specified.
  573. """
  574. properties = {
  575. 'name': 'Global Skylight (IBL)',
  576. 'Diffuse Image': 'Controller|Configuration|Diffuse Image',
  577. 'Specular Image': 'Controller|Configuration|Specular Image',
  578. 'Exposure': 'Controller|Configuration|Exposure',
  579. }
  580. return properties[property]
  581. @staticmethod
  582. def grid(property: str = 'name') -> str:
  583. """
  584. Grid component properties.
  585. - 'Grid Size': The size of the grid, default value is 32
  586. - 'Axis Color': Sets color of the grid axis using azlmbr.math.Color tuple, default value is 0,0,255 (blue)
  587. - 'Primary Grid Spacing': Amount of space between grid lines, default value is 1.0
  588. - 'Primary Color': Sets color of the primary grid lines using azlmbr.math.Color tuple,
  589. default value is 64,64,64 (dark grey)
  590. - 'Secondary Grid Spacing': Amount of space between sub-grid lines, default value is 0.25
  591. - 'Secondary Color': Sets color of the secondary grid lines using azlmbr.math.Color tuple,
  592. default value is 128,128,128 (light grey)
  593. :param property: From the last element of the property tree path. Default 'name' for component name string.
  594. :return: Full property path OR component name if no property specified.
  595. """
  596. properties = {
  597. 'name': 'Grid',
  598. 'Grid Size': 'Controller|Configuration|Grid Size',
  599. 'Axis Color': 'Controller|Configuration|Axis Color',
  600. 'Primary Grid Spacing': 'Controller|Configuration|Primary Grid Spacing',
  601. 'Primary Color': 'Controller|Configuration|Primary Color',
  602. 'Secondary Grid Spacing': 'Controller|Configuration|Secondary Grid Spacing',
  603. 'Secondary Color': 'Controller|Configuration|Secondary Color',
  604. }
  605. return properties[property]
  606. @staticmethod
  607. def hair(property: str = 'name') -> str:
  608. """
  609. Atom Hair component properties. Requires Actor component.
  610. - 'requires' a list of component names as strings required by this component.
  611. Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.
  612. - 'Hair Asset' Asset.id of the hair TressFX asset.
  613. - 'Enable Area Lights' (bool default True)
  614. - 'Enable Azimuth' Azimuth Contribution (bool default True)
  615. - 'Enable Directional Lights' (bool default True)
  616. - 'Enable IBL' imaged-based lighting for hair (bool default True)
  617. - 'Enable Longitude' Longitude Contribution (bool default True)
  618. - 'Enable Marschner R' (bool default True)
  619. - 'Enable Marschner TRT' (bool default True)
  620. - 'Enable Marschner TT' (bool default True)
  621. - 'Enable Punctual Lights' (bool default True)
  622. - 'Enable Shadows' (bool default True)
  623. - 'Hair Lighting Model' simulation algorithm selected from atom_constants.py HAIR_LIGHTING_MODEL (default 'Marschner')
  624. - 'Base Albedo Asset' Asset.id of the base albedo texture asset (streamingimage or supported texture format)
  625. - 'Base Color' base color of the hair (math.Color RGBA, default 255,255,255,161)
  626. - 'Enable Hair LOD' Level of Detail usage for the hair (bool default False)
  627. - 'Enable Hair LOD(Shadow)' Level of Detail usage for the shadow of hair (bool default False)
  628. - 'Enable Strand Tangent' (bool default False)
  629. - 'Enable Strand UV' usage of Strand Albedo (bool default False)
  630. - 'Enable Thin Tip' end of the hair will narrow or be squared off (bool default True)
  631. - 'Fiber Radius' Diameter of the fiber (float 0.0 to 0.01, default 0.002)
  632. - 'Fiber Spacing' spacing between the fibers (float 0.0.to 1.0, default 0.4)
  633. - 'Fiber ratio' extent to which the hair strand will taper (float 0.01 to 1.0, default 0.06)
  634. - 'Hair Cuticle Angle' determins how the light refraction behaves (float radians 0.05 to 0.15, default 0.08)
  635. - 'Hair Ex1' Specular power to use for the calculated specular root value (float 0.0 to 100.0, default 14.4)
  636. - 'Hair Ex2' Specular power to use for the calculated specular tip value (float 0.0 to 100.0, default 11.8)
  637. - 'Hair Kdiffuse' Diffuse coefficient, think of it as a gain value (float 0.0 to 1.0, deafult 0.22)
  638. - 'Hair Ks1' Primary specular reflection coefficient (float 0.0 to 1.0, default 0.001)
  639. - 'Hair Ks2' Secondary specular reflection coefficient (float 0.0 to 1.0, default 0.136)
  640. - 'Hair Roughness' (float 0.4 to 0.9, default 0.65)
  641. - 'Hair Shadow Alpha' attenuate hair shadows based on depth into strands (float 0.0 to 1.0, default 0.35)
  642. - 'LOD End Distance' Distance in centimeters where LOD will be its maximum reduction/multiplier (float 0.0 to inf, default 5.0)
  643. - 'LOD Start Distance' Distance to begin LOD in centimeters camera to hair. (float 0.0 to inf, default 1.0)
  644. - 'Mat Tip Color' blend from root to tip (math.Color RGBA, default 255,255,255,161)
  645. - 'Max LOD Reduction' Maximum amount of reduction as a percentage of the original (float 0.0 to 1.0, default 0.5)
  646. - 'Max LOD Strand Width Multiplier' Maximum amount the strand width would be multiplied by (float 0.0 to 10.0, default 2.0)
  647. - 'Max Shadow Fibers' shadow attenuation calculation cutoff (int 0 to 100, default 50)
  648. - 'Shadow LOD End Distance' Distance where shadow LOD should be at its maximum (float 0.0 to inf, default 5.0)
  649. - 'Shadow LOD Start Distance' Distance to begin shadow LOD (float 0.0 to inf, default 1.0)
  650. - 'Shadow Max LOD Reduction' max reduction as a percentage of the original (float 0.0 to 1.0, default 0.5)
  651. - 'Shadow Max LOD Strand Width Multiplier' max amount the shadow width cast by the strand would be multiplied by (float 0.0 to 10.0, default 2.0)
  652. - 'Strand Albedo Asset' Asset.id of the texture asset used for strands (streamingimage)
  653. - 'Strand UVTiling Factor' Amount of tiling to use (float 0.0 to 10.0, default 1.0)
  654. - 'Tip Percentage' amount of lerp blend between Base Scalp Albedo and Mat Tip Color (float 0.0 default to 1.0)
  655. - 'Clamp Velocity' limits the displacement of hair segments per frame (float 1.0 to 24.0, default 20.0)
  656. - 'Damping' smooths out the motion of the hair (float 0.0 to 1.0, default 0.08)
  657. - 'Global Constraint Range' global shape stiffness (float 0.0 to 1.0, default 0.308)
  658. - 'Global Constraint Stiffness' stiffness of a strand (float 0.0 to 1.0, default 0.408)
  659. - 'Gravity Magnitude' gravitational pseudo value approximating force on strands (float 0.0 to 1.0 default 0.19)
  660. - 'Length Constraint Iterations' simulation time (iterations) toward keeping the global hair shape (int 1 to 10, default 3)
  661. - 'Local Constraint Iterations' more simulation time (iterations) toward keeping the local hair shape (int 1 to 10, default 3)
  662. - 'Local Constraint Stiffness' Controls the stiffness of a strand (float 0.0 to 1.0, default 0.908)
  663. - 'Tip Separation' Forces the tips of the strands away from each other (float 0.0 to 1.0, default 0.1)
  664. - 'Vsp Accel Threshold' Velocity Shock Propagation acceleration threshold (float 0.0 to 10.0, default 1.208)
  665. - 'Vsp Coeffs' Velocity Shock Propagation (float 0.0 to 1.0, default 0.758)
  666. - 'Wind Angle Radians' (float radians 0.0 to 1.0, default 0.698)
  667. - 'Wind Direction' (math.Vector3 XYZ world space default 0.0, 1.0, 0.0)
  668. - 'Wind Magnitude' wind multiplier (float 0.0 default to 1.0)
  669. :param property: From the last element of the property tree path. Default 'name' for component name string.
  670. :return: Full property path OR component name if no property specified.
  671. """
  672. properties = {
  673. 'name': 'Atom Hair',
  674. 'requires': [AtomComponentProperties.actor()],
  675. 'Hair Asset': 'Controller|Configuration|Hair Asset',
  676. 'Enable Area Lights': 'Controller|Configuration|Hair Global Settings|Enable Area Lights',
  677. 'Enable Azimuth': 'Controller|Configuration|Hair Global Settings|Enable Azimuth',
  678. 'Enable Directional Lights': 'Controller|Configuration|Hair Global Settings|Enable Directional Lights',
  679. 'Enable IBL': 'Controller|Configuration|Hair Global Settings|Enable IBL',
  680. 'Enable Longitude': 'Controller|Configuration|Hair Global Settings|Enable Longitude',
  681. 'Enable Marschner R': 'Controller|Configuration|Hair Global Settings|Enable Marschner R',
  682. 'Enable Marschner TRT': 'Controller|Configuration|Hair Global Settings|Enable Marschner TRT',
  683. 'Enable Marschner TT': 'Controller|Configuration|Hair Global Settings|Enable Marschner TT',
  684. 'Enable Punctual Lights': 'Controller|Configuration|Hair Global Settings|Enable Punctual Lights',
  685. 'Enable Shadows': 'Controller|Configuration|Hair Global Settings|Enable Shadows',
  686. 'Hair Lighting Model': 'Controller|Configuration|Hair Global Settings|Hair Lighting Model',
  687. 'Base Albedo Asset': 'Controller|Configuration|TressFX Render Settings|Base Albedo Asset',
  688. 'Base Color': 'Controller|Configuration|TressFX Render Settings|Base Color',
  689. 'Enable Hair LOD': 'Controller|Configuration|TressFX Render Settings|Enable Hair LOD',
  690. 'Enable Hair LOD(Shadow)': 'Controller|Configuration|TressFX Render Settings|Enable Hair LOD(Shadow)',
  691. 'Enable Strand Tangent': 'Controller|Configuration|TressFX Render Settings|Enable Strand Tangent',
  692. 'Enable Strand UV': 'Controller|Configuration|TressFX Render Settings|Enable Strand UV',
  693. 'Enable Thin Tip': 'Controller|Configuration|TressFX Render Settings|Enable Thin Tip',
  694. 'Fiber Radius': 'Controller|Configuration|TressFX Render Settings|Fiber Radius',
  695. 'Fiber Spacing': 'Controller|Configuration|TressFX Render Settings|Fiber Spacing',
  696. 'Fiber ratio': 'Controller|Configuration|TressFX Render Settings|Fiber ratio',
  697. 'Hair Cuticle Angle': 'Controller|Configuration|TressFX Render Settings|Hair Cuticle Angle',
  698. 'Hair Ex1': 'Controller|Configuration|TressFX Render Settings|Hair Ex1',
  699. 'Hair Ex2': 'Controller|Configuration|TressFX Render Settings|Hair Ex2',
  700. 'Hair Kdiffuse': 'Controller|Configuration|TressFX Render Settings|Hair Kdiffuse',
  701. 'Hair Ks1': 'Controller|Configuration|TressFX Render Settings|Hair Ks1',
  702. 'Hair Ks2': 'Controller|Configuration|TressFX Render Settings|Hair Ks2',
  703. 'Hair Roughness': 'Controller|Configuration|TressFX Render Settings|Hair Roughness',
  704. 'Hair Shadow Alpha': 'Controller|Configuration|TressFX Render Settings|Hair Shadow Alpha',
  705. 'LOD End Distance': 'Controller|Configuration|TressFX Render Settings|LOD End Distance',
  706. 'LOD Start Distance': 'Controller|Configuration|TressFX Render Settings|LOD Start Distance',
  707. 'Mat Tip Color': 'Controller|Configuration|TressFX Render Settings|Mat Tip Color',
  708. 'Max LOD Reduction': 'Controller|Configuration|TressFX Render Settings|Max LOD Reduction',
  709. 'Max LOD Strand Width Multiplier': 'Controller|Configuration|TressFX Render Settings|Max LOD Strand Width Multiplier',
  710. 'Max Shadow Fibers': 'Controller|Configuration|TressFX Render Settings|Max Shadow Fibers',
  711. 'Shadow LOD End Distance': 'Controller|Configuration|TressFX Render Settings|Shadow LOD End Distance',
  712. 'Shadow LOD Start Distance': 'Controller|Configuration|TressFX Render Settings|Shadow LOD Start Distance',
  713. 'Shadow Max LOD Reduction': 'Controller|Configuration|TressFX Render Settings|Shadow Max LOD Reduction',
  714. 'Shadow Max LOD Strand Width Multiplier': 'Controller|Configuration|TressFX Render Settings|Shadow Max LOD Strand Width Multiplier',
  715. 'Strand Albedo Asset': 'Controller|Configuration|TressFX Render Settings|Strand Albedo Asset',
  716. 'Strand UVTiling Factor': 'Controller|Configuration|TressFX Render Settings|Strand UVTiling Factor',
  717. 'Tip Percentage': 'Controller|Configuration|TressFX Render Settings|Tip Percentage',
  718. 'Clamp Velocity': 'Controller|Configuration|TressFX Sim Settings|Clamp Velocity',
  719. 'Damping': 'Controller|Configuration|TressFX Sim Settings|Damping',
  720. 'Global Constraint Range': 'Controller|Configuration|TressFX Sim Settings|Global Constraint Range',
  721. 'Global Constraint Stiffness': 'Controller|Configuration|TressFX Sim Settings|Global Constraint Stiffness',
  722. 'Gravity Magnitude': 'Controller|Configuration|TressFX Sim Settings|Gravity Magnitude',
  723. 'Length Constraint Iterations': 'Controller|Configuration|TressFX Sim Settings|Length Constraint Iterations',
  724. 'Local Constraint Iterations': 'Controller|Configuration|TressFX Sim Settings|Local Constraint Iterations',
  725. 'Local Constraint Stiffness': 'Controller|Configuration|TressFX Sim Settings|Local Constraint Stiffness',
  726. 'Tip Separation': 'Controller|Configuration|TressFX Sim Settings|Tip Separation',
  727. 'Vsp Accel Threshold': 'Controller|Configuration|TressFX Sim Settings|Vsp Accel Threshold',
  728. 'Vsp Coeffs': 'Controller|Configuration|TressFX Sim Settings|Vsp Coeffs',
  729. 'Wind Angle Radians': 'Controller|Configuration|TressFX Sim Settings|Wind Angle Radians',
  730. 'Wind Direction': 'Controller|Configuration|TressFX Sim Settings|Wind Direction',
  731. 'Wind Magnitude': 'Controller|Configuration|TressFX Sim Settings|Wind Magnitude',
  732. }
  733. return properties[property]
  734. @staticmethod
  735. def hdr_color_grading(property: str = 'name') -> str:
  736. """
  737. HDR Color Grading component properties. Requires PostFX Layer component.
  738. - 'requires' a list of component names as strings required by this component.
  739. Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.\n
  740. - 'Enable HDR color grading' Toggle active state of the component. (bool)
  741. - 'Color Adjustment Weight' Level of influence for Color Adjustment parameters. (0, 1)
  742. - 'Exposure' Brightness/Darkness of the scene. (-INF, INF)
  743. - 'Contrast' Lowers/Enhances the difference in color of the scene. (-100, 100)
  744. - 'Pre Saturation' Controls base color saturation before further modification. (-100, 100)
  745. - 'Filter Intensity' Brightness of the color filter. (-INF, INF)
  746. - 'Filter Multiply' Enables and controls strength of the color filter. (0, 1)
  747. - 'Filter Swatch' Determines color of the color filter applied to the scene. (Vector3)
  748. - 'White Balance Weight' Level of influence for White Balance parameters. (0, 1)
  749. - 'Temperature' Color temperature in Kelvin. (1000, 40000)
  750. - 'Tint' Changes the tint of the scene from Neutral (0) to Magenta (-100) or Green (100). (-100, 100)
  751. - 'Luminance Preservation' Maintains the relative brightness of the scene
  752. before applying Color Grading. (0, 1)
  753. - 'Split Toning Weight' Level of influence for Split Toning parameters. (0, 1)
  754. - 'Balance' Determines the level of light interpreted as Shadow or Highlight. (-1, 1)
  755. - 'Split Toning Shadows Color' Shadows are toned to this color. (Vector3)
  756. - 'Split Toning Highlights Color' Highlights are toned to this color.
  757. - 'SMH Weight' Level of influence for Shadow Midtones Highlights parameters. (0, 1)
  758. - 'Shadows Start' Minimum brightness to interpret as Shadow. (0, 16)
  759. - 'Shadows End' Maximum brightness to interpret as Shadow. (0, 16)
  760. - 'Highlights Start' Minimum brightness to interpret as Highlight. (0, 16)
  761. - 'Highlights End' Maximum brightness to interpret as Shadow. (0, 16)
  762. - 'SMH Shadows Color' Shadow interpreted areas set to this color. (Vector3)
  763. - 'SMH Midtones Color' Midtone interpreted areas set to this color. (Vector3)
  764. - 'SMH Highlights Color' Highlight interpreted areas set to this color. (Vector3)
  765. - 'Channel Mixing Red' Color Channels interpreted as Red. (Vector3)
  766. - 'Channel Mixing Green' Color Channels interpreted as Green. (Vector3)
  767. - 'Channel Mixing Blue' Color channels interpreted as Blue. (Vector3)
  768. - 'Final Adjustment Weight' Level of influence for Final Adjustment parameters parameters. (0, 1)
  769. - 'Post Saturation' Controls color saturation after modification. (-100, 100)
  770. - 'Hue Shift' Shifts all color by 1% of a rotation in the color wheel per 0.01. (0.0, 1.0)
  771. - 'LUT Resolution' Resolution of generated LUT from atom_constants.py LUT_RESOLUTION.
  772. - 'Shaper Type' Shaper type used for the generated LUT from atom_constants.py SHAPER_TYPE.
  773. - 'Generated LUT Path' absolute path to the generated look up table file (read-only)
  774. :param property: From the last element of the property tree path. Default 'name' for component name string.
  775. :return: Full property path OR component name if no property specified.
  776. """
  777. properties = {
  778. 'name': 'HDR Color Grading',
  779. 'requires': [AtomComponentProperties.postfx_layer()],
  780. 'Enable HDR color grading': 'Controller|Configuration|Enable HDR color grading',
  781. 'Color Adjustment Weight': 'Controller|Configuration|Color Adjustment|Weight',
  782. 'Exposure': 'Controller|Configuration|Color Adjustment|Exposure',
  783. 'Contrast': 'Controller|Configuration|Color Adjustment|Contrast',
  784. 'Pre Saturation': 'Controller|Configuration|Color Adjustment|Pre Saturation',
  785. 'Filter Intensity': 'Controller|Configuration|Color Adjustment|Filter Intensity',
  786. 'Filter Multiply': 'Controller|Configuration|Color Adjustment|Filter Multiply',
  787. 'Filter Swatch': 'Controller|Configuration|Color Adjustment|Filter Swatch',
  788. 'White Balance Weight': 'Controller|Configuration|White Balance|Weight',
  789. 'Temperature': 'Controller|Configuration|White Balance|Temperature',
  790. 'Tint': 'Controller|Configuration|White Balance|Tint',
  791. 'Luminance Preservation': 'Controller|Configuration|White Balance|Luminance Preservation',
  792. 'Split Toning Weight': 'Controller|Configuration|Split Toning|Weight',
  793. 'Balance': 'Controller|Configuration|Split Toning|Balance',
  794. 'Split Toning Shadows Color': 'Controller|Configuration|Split Toning|Shadows Color',
  795. 'Split Toning Highlights Color': 'Controller|Configuration|Split Toning|Highlights Color',
  796. 'SMH Weight': 'Controller|Configuration|Shadow Midtones Highlights|Weight',
  797. 'Shadows Start': 'Controller|Configuration|Shadow Midtones Highlights|Shadows Start',
  798. 'Shadows End': 'Controller|Configuration|Shadow Midtones Highlights|Shadows End',
  799. 'Highlights Start': 'Controller|Configuration|Shadow Midtones Highlights|Highlights Start',
  800. 'Highlights End': 'Controller|Configuration|Shadow Midtones Highlights|Highlights End',
  801. 'SMH Shadows Color': 'Controller|Configuration|Shadow Midtones Highlights|Shadows Color',
  802. 'SMH Midtones Color': 'Controller|Configuration|Shadow Midtones Highlights|Midtones Color',
  803. 'SMH Highlights Color': 'Controller|Configuration|Shadow Midtones Highlights|Highlights Color',
  804. 'Channel Mixing Red': 'Controller|Configuration|Channel Mixing|Channel Mixing Red',
  805. 'Channel Mixing Green': 'Controller|Configuration|Channel Mixing|Channel Mixing Green',
  806. 'Channel Mixing Blue': 'Controller|Configuration|Channel Mixing|Channel Mixing Blue',
  807. 'Final Adjustment Weight': 'Controller|Configuration|Final Adjustment|Weight',
  808. 'Post Saturation': 'Controller|Configuration|Final Adjustment|Post Saturation',
  809. 'Hue Shift': 'Controller|Configuration|Final Adjustment|Hue Shift',
  810. 'LUT Resolution': 'Controller|Configuration|LUT Generation|LUT Resolution',
  811. 'Shaper Type': 'Controller|Configuration|LUT Generation|Shaper Type',
  812. 'Generated LUT Path': 'LUT Generation|Generated LUT Path',
  813. }
  814. return properties[property]
  815. @staticmethod
  816. def hdri_skybox(property: str = 'name') -> str:
  817. """
  818. HDRi Skybox component properties.
  819. - 'Cubemap Texture': Asset.id for the texture used in cubemap rendering (File Type *.exr.streamingimage).
  820. - 'Exposure': Light exposure value for HDRi Skybox projection ('float', range -5.0 - 5.0, default 0.0).
  821. :param property: From the last element of the property tree path. Default 'name' for component name string.
  822. :return: Full property path OR component name if no property specified.
  823. """
  824. properties = {
  825. 'name': 'HDRi Skybox',
  826. 'Cubemap Texture': 'Controller|Configuration|Cubemap Texture',
  827. 'Exposure': 'Controller|Configuration|Exposure',
  828. }
  829. return properties[property]
  830. @staticmethod
  831. def light(property: str = 'name') -> str:
  832. """
  833. Light component properties.
  834. - 'Light type' from atom_constants.py LIGHT_TYPES
  835. - 'Color' the RGBA value to set for the color of the light using azlmbr.math.Color tuple.
  836. - 'Intensity mode' from atom_constants.py INTENSITY_MODE
  837. - 'Intensity' the intensity of the light in the set photometric unit (float with no ceiling).
  838. - 'Attenuation radius Mode' from atom_constants.py ATTENUATION_RADIUS_MODE
  839. - 'Attenuation radius Radius' sets the distance at which the light no longer has effect.
  840. - 'Enable shadow' toggle for enabling shadows for the light.
  841. - 'Shadows Bias' how deep in shadow a surface must be before being affected by it (Range 0-100).
  842. - 'Normal Shadow Bias' reduces shadow acne (Range 0-10).
  843. - 'Shadowmap size' from atom_constants.py SHADOWMAP_SIZE
  844. - 'Shadow filter method' from atom_constants.py SHADOW_FILTER_METHOD
  845. - 'Filtering sample count' smooths/hardens shadow edges - specific to PCF & ESM+PCF (Range 4-64).
  846. - 'ESM exponent' smooths/hardens shadow edges - specific to ESM & ESM+PCF (Range 50-5000).
  847. - 'Enable shutters' toggle for enabling shutters for the light.
  848. - 'Inner angle' inner angle value for the shutters (in degrees) (Range 0.5-90).
  849. - 'Outer angle' outer angle value for the shutters (in degrees) (Range 0.5-90).
  850. - 'Both directions' Enables/Disables light emitting from both sides of a surface.
  851. - 'Fast approximation' Enables/Disables fast approximation of linear transformed cosines.
  852. :param property: From the last element of the property tree path. Default 'name' for component name string.
  853. :return: Full property path OR component name if no property specified.
  854. """
  855. properties = {
  856. 'name': 'Light',
  857. 'Light type': 'Controller|Configuration|Light type',
  858. 'Color': 'Controller|Configuration|Color',
  859. 'Intensity mode': 'Controller|Configuration|Intensity mode',
  860. 'Intensity': 'Controller|Configuration|Intensity',
  861. 'Attenuation radius Mode': 'Controller|Configuration|Attenuation radius|Mode',
  862. 'Attenuation radius Radius': 'Controller|Configuration|Attenuation radius|Radius',
  863. 'Enable shadow': 'Controller|Configuration|Shadows|Enable shadow',
  864. 'Shadows Bias': 'Controller|Configuration|Shadows|Bias',
  865. 'Normal shadow bias': 'Controller|Configuration|Shadows|Normal Shadow Bias',
  866. 'Shadowmap size': 'Controller|Configuration|Shadows|Shadowmap size',
  867. 'Shadow filter method': 'Controller|Configuration|Shadows|Shadow filter method',
  868. 'Filtering sample count': 'Controller|Configuration|Shadows|Filtering sample count',
  869. 'ESM exponent': 'Controller|Configuration|Shadows|ESM exponent',
  870. 'Enable shutters': 'Controller|Configuration|Shutters|Enable shutters',
  871. 'Inner angle': 'Controller|Configuration|Shutters|Inner angle',
  872. 'Outer angle': 'Controller|Configuration|Shutters|Outer angle',
  873. 'Both directions': 'Controller|Configuration|Both directions',
  874. 'Fast approximation': 'Controller|Configuration|Fast approximation',
  875. }
  876. return properties[property]
  877. @staticmethod
  878. def look_modification(property: str = 'name') -> str:
  879. """
  880. Look Modification component properties. Requires PostFX Layer component.
  881. - 'requires' a list of component names as strings required by this component.
  882. Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.\n
  883. - 'Enable look modification' Toggle active state of the component True/False
  884. - 'Color Grading LUT' Asset.id for the LUT used for affecting level look.
  885. - 'Shaper Type' Shaper type used for scene look modification from atom_constants.py SHAPER_TYPE.
  886. - 'LUT Intensity' Overall influence of the LUT on the scene. (0.0, 1.0)
  887. - 'LUT Override' Blend intensity of the LUT (for use with multiple Look Modification entities). (0.0, 1.0)
  888. :param property: From the last element of the property tree path. Default 'name' for component name string.
  889. :return: Full property path OR component name if no property specified.
  890. """
  891. properties = {
  892. 'name': 'Look Modification',
  893. 'requires': [AtomComponentProperties.postfx_layer()],
  894. 'Enable look modification': 'Controller|Configuration|Enable look modification',
  895. 'Color Grading LUT': 'Controller|Configuration|Color Grading LUT',
  896. 'Shaper Type': 'Controller|Configuration|Shaper Type',
  897. 'LUT Intensity': 'Controller|Configuration|LUT Intensity',
  898. 'LUT Override': 'Controller|Configuration|LUT Override',
  899. }
  900. return properties[property]
  901. @staticmethod
  902. def material(property: str = 'name') -> str:
  903. """
  904. Material component properties. Requires one of Actor OR Mesh component.
  905. - 'requires' a list of component names as strings required by this component.
  906. Only one of these is required at a time for this component.\n
  907. - 'Material Asset': the default material Asset.id. Overrides all Model and LOD materials.
  908. - 'Enable LOD Materials' toggles the use of LOD Materials.
  909. - 'LOD Materials' container property for specified LOD materials. (list of EditorMaterialComponentSlot)
  910. - 'Model Materials' container property of materials included with model. (EditorMaterialComponentSlot)
  911. :param property: From the last element of the property tree path. Default 'name' for component name string.
  912. :return: Full property path OR component name if no property specified.
  913. """
  914. properties = {
  915. 'name': 'Material',
  916. 'requires': [AtomComponentProperties.actor(), AtomComponentProperties.mesh()],
  917. 'Material Asset': 'Default Material|Material Asset',
  918. 'Enable LOD Materials': 'Enable LOD Materials',
  919. 'LOD Materials': 'LOD Materials',
  920. 'Model Materials': 'Model Materials',
  921. }
  922. return properties[property]
  923. @staticmethod
  924. def mesh(property: str = 'name') -> str:
  925. """
  926. Mesh component properties.
  927. - 'Model Asset' Asset.id of the mesh model.
  928. - 'Mesh Asset' Mesh Asset is deprecated in favor of Model Asset, but this property will continue
  929. to exist and map to the new Model Asset property to keep older tests working.
  930. - 'Sort Key' dis-ambiguates which mesh renders in front of others (signed int 64)
  931. - 'Use ray tracing' Toggles interaction with ray tracing (bool)
  932. - 'Lod Type' options: default, screen coverage, specific lod
  933. - 'Exclude from reflection cubemaps' Toggles inclusion in generated cubemaps (bool)
  934. - 'Use Forward Pass IBL Specular' Toggles Forward Pass IBL Specular (bool)
  935. - 'Minimum Screen Coverage' portion of the screen at which the mesh is culled; 0 (never culled) to 1
  936. - 'Quality Decay Rate' rate at which the mesh degrades; 0 (never) to 1 (lowest quality imediately)
  937. - 'Lod Override' which specific LOD to always use; default or other named LOD
  938. :param property: From the last element of the property tree path. Default 'name' for component name string.
  939. :return: Full property path OR component name if no property specified.
  940. :rtype: str
  941. """
  942. properties = {
  943. 'name': 'Mesh',
  944. 'Model Asset': 'Controller|Configuration|Model Asset',
  945. 'Mesh Asset': 'Controller|Configuration|Model Asset',
  946. 'Sort Key': 'Controller|Configuration|Sort Key',
  947. 'Use ray tracing': 'Controller|Configuration|Use ray tracing',
  948. 'Lod Type': 'Controller|Configuration|Lod Type',
  949. 'Exclude from reflection cubemaps': 'Controller|Configuration|Exclude from reflection cubemaps',
  950. 'Use Forward Pass IBL Specular': 'Controller|Configuration|Use Forward Pass IBL Specular',
  951. 'Minimum Screen Coverage': 'Controller|Configuration|Lod Configuration|Minimum Screen Coverage',
  952. 'Quality Decay Rate': 'Controller|Configuration|Lod Configuration|Quality Decay Rate',
  953. 'Lod Override': 'Controller|Configuration|Lod Configuration|Lod Override',
  954. }
  955. return properties[property]
  956. @staticmethod
  957. def occlusion_culling_plane(property: str = 'name') -> str:
  958. """
  959. Occlusion Culling Plane component properties.
  960. - 'Show Visualization' Toggles the visual display of the Occlusion Culling Plane in edit and game mode (bool)
  961. - 'Transparent Visualization': Toggles the transparency of the Occlusion Culling Plane when visible (bool)
  962. :param property: From the last element of the property tree path. Default 'name' for component name string.
  963. :return: Full property path OR component name if no property specified.
  964. """
  965. properties = {
  966. 'name': 'Occlusion Culling Plane',
  967. 'Show Visualization': 'Controller|Configuration|Settings|Show Visualization',
  968. 'Transparent Visualization': 'Controller|Configuration|Settings|Transparent Visualization',
  969. }
  970. return properties[property]
  971. @staticmethod
  972. def physical_sky(property: str = 'name') -> str:
  973. """
  974. Physical Sky component properties.
  975. - 'Intensity Mode' Specifying the light unit type (emum, Ev100, Nit, default Ev100).
  976. - 'Sky Intensity' Brightness of the sky (float, range -4.0 - 11.0, default 4.0).
  977. - 'Sun Intensity' Brightness of the sun (float, range -4.0 - 11.0, default 8.0).
  978. - 'Turbidity' A measure of the aerosol content in the air (int, range 1-10, default of 1).
  979. - 'Sun Radius Factor' A factor for Physical sun radius in millions of km. 1 unit is 695,508 km
  980. (float, range 0.1 - 2, default 1.0). /n
  981. - 'Enable Fog' Toggle fog on or off (bool, default False).
  982. - 'Fog Color' Color of the fog (math.Color(float x, float y, float z, float a) where ranges are 0 to 255).
  983. - 'Fog Top Height' Height of the fog upwards from the horizon (float, range 0.0 - 0.5 default 0.01).
  984. - 'Fog Bottom Height' Height of the fog downwards from the horizon (float, range 0.0 - 0.3 default 0.0).
  985. :param property: From the last element of the property tree path. Default 'name' for component name string.
  986. :return: Full property path OR component name if no property specified.
  987. """
  988. properties = {
  989. 'name': 'Physical Sky',
  990. 'Intensity Mode': 'Controller|Configuration|Intensity Mode',
  991. 'Sky Intensity': 'Controller|Configuration|Sky Intensity',
  992. 'Sun Intensity': 'Controller|Configuration|Sun Intensity',
  993. 'Turbidity': 'Controller|Configuration|Turbidity',
  994. 'Sun Radius Factor': 'Controller|Configuration|Sun Radius Factor',
  995. 'Enable Fog': 'Controller|Configuration|Fog|Enable Fog',
  996. 'Fog Color': 'Controller|Configuration|Fog|Fog Color',
  997. 'Fog Top Height': 'Controller|Configuration|Fog|Fog Top Height',
  998. 'Fog Bottom Height': 'Controller|Configuration|Fog|Fog Bottom Height',
  999. }
  1000. return properties[property]
  1001. @staticmethod
  1002. def postfx_layer(property: str = 'name') -> str:
  1003. """
  1004. PostFX Layer component properties.
  1005. - 'Layer Category' frequency at which the settings will be applied from atom_constants.py POSTFX_LAYER_CATEGORY
  1006. - 'Priority' this will take over other settings with the same frequency. lower takes precedence (int)
  1007. - 'Weight' how much these settings override previous settings. (float 0.0 to default 1.0)
  1008. - 'Select Camera Tags Only' property container list of tags.
  1009. Only cameras with these tags will include this effect.
  1010. - 'Excluded Camera Tags' property container list of tags.
  1011. Cameras with these tags will not be included in the effect.
  1012. :param property: From the last element of the property tree path. Default 'name' for component name string.
  1013. :return: Full property path OR component name if no property specified.
  1014. """
  1015. properties = {
  1016. 'name': 'PostFX Layer',
  1017. 'Layer Category': 'Controller|Configuration|Layer Category',
  1018. 'Priority': 'Controller|Configuration|Priority',
  1019. 'Weight': 'Controller|Configuration|Weight',
  1020. 'Select Camera Tags Only': 'Controller|Configuration|Select Camera Tags Only',
  1021. 'Excluded Camera Tags': 'Controller|Configuration|Excluded Camera Tags',
  1022. }
  1023. return properties[property]
  1024. @staticmethod
  1025. def postfx_gradient(property: str = 'name') -> str:
  1026. """
  1027. PostFX Gradient Weight Modifier component properties. Requires PostFX Layer component.
  1028. - 'requires' a list of component names as strings required by this component.
  1029. Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.
  1030. - 'Gradient Entity Id' a separate entity id containing a gradient component.
  1031. - 'Opacity' factor multiplied by the current gradient before mixing. (float 0.0 to 1.0)
  1032. - 'Invert Input' swap the gradient input order black/white behave oppositely (bool)
  1033. - 'Enable Levels' toggle the application of input/output levels (bool)
  1034. - 'Input Max' adjustment to the white point for the input
  1035. treating more of the gradient as max value. (float 0.0 to default 1.0)
  1036. - 'Input Min' adjustment to the black point for the input
  1037. treating more of the gradient as min value. (float 0.0 default to 1.0)
  1038. - 'Input Mid' adjustment to the midtone point for the input
  1039. effecting all values of the gradient to be more toward min or max. (float 0.0 to 10.0, default 1.0)
  1040. - 'Output Max' adjusts the output white point of the effective gradient after input levels are applied
  1041. (float 0.0 to default 1.0)
  1042. - 'Output Min' adjusts the output black point of the effective gradient after input levels are applied
  1043. (float 0.0 default to 1.0)
  1044. - 'Enable Transform' toggle the ability to apply transform to the gradient input (bool)
  1045. - 'Scale' adjusts the gradient size (Vector3 default 1.0,1.0,1.0)
  1046. - 'Rotate' rotates the gradient (Vector3 rotation degrees; default 0.0,0.0,0.0)
  1047. - 'Translate' moves the gradient position (Vector3 default 0.0,0.0,0.0)
  1048. :param property: From the last element of the property tree path. Default 'name' for component name string.
  1049. :return: Full property path OR component name if no property specified.
  1050. """
  1051. properties = {
  1052. 'name': 'PostFX Gradient Weight Modifier',
  1053. 'requires': [AtomComponentProperties.postfx_layer()],
  1054. 'Gradient Entity Id': 'Controller|Configuration|Gradient Sampler|Gradient Entity Id',
  1055. 'Opacity': 'Controller|Configuration|Gradient Sampler|Opacity',
  1056. 'Invert Input': 'Controller|Configuration|Gradient Sampler|Advanced|Invert Input',
  1057. 'Enable Levels': 'Controller|Configuration|Gradient Sampler|Enable Levels',
  1058. 'Input Max': 'Controller|Configuration|Gradient Sampler|Enable Levels|Input Max',
  1059. 'Input Min': 'Controller|Configuration|Gradient Sampler|Enable Levels|Input Min',
  1060. 'Input Mid': 'Controller|Configuration|Gradient Sampler|Enable Levels|Input Mid',
  1061. 'Output Max': 'Controller|Configuration|Gradient Sampler|Enable Levels|Output Max',
  1062. 'Output Min': 'Controller|Configuration|Gradient Sampler|Enable Levels|Output Min',
  1063. 'Enable Transform': 'Controller|Configuration|Gradient Sampler|Enable Transform',
  1064. 'Scale': 'Controller|Configuration|Gradient Sampler|Enable Transform|Scale',
  1065. 'Rotate': 'Controller|Configuration|Gradient Sampler|Enable Transform|Rotate',
  1066. 'Translate': 'Controller|Configuration|Gradient Sampler|Enable Transform|Translate',
  1067. }
  1068. return properties[property]
  1069. @staticmethod
  1070. def postfx_radius(property: str = 'name') -> str:
  1071. """
  1072. PostFX Radius Weight Modifier component properties. Requires PostFX Layer component.
  1073. - 'requires' a list of component names as strings required by this component.
  1074. Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.
  1075. - 'Radius' Radius of the PostFX modification (float deafult 0.0 to infinity)
  1076. :param property: From the last element of the property tree path. Default 'name' for component name string.
  1077. :return: Full property path OR component name if no property specified.
  1078. """
  1079. properties = {
  1080. 'name': 'PostFX Radius Weight Modifier',
  1081. 'requires': [AtomComponentProperties.postfx_layer()],
  1082. 'Radius': 'Controller|Configuration|Radius',
  1083. }
  1084. return properties[property]
  1085. @staticmethod
  1086. def postfx_shape(property: str = 'name') -> str:
  1087. """
  1088. PostFX Shape Weight Modifier component properties. Requires PostFX Layer and one of 'shapes' listed.
  1089. - 'requires' a list of component names as strings required by this component.
  1090. Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.
  1091. - 'shapes' a list of supported shapes as component names. 'Tube Shape' is also supported but requires 'Spline'.
  1092. - 'Fall-off Distance' Distance from the shape to smoothly transition the PostFX.
  1093. :param property: From the last element of the property tree path. Default 'name' for component name string.
  1094. :return: Full property path OR component name if no property specified.
  1095. """
  1096. properties = {
  1097. 'name': 'PostFX Shape Weight Modifier',
  1098. 'requires': [AtomComponentProperties.postfx_layer()],
  1099. 'shapes': ['Axis Aligned Box Shape', 'Box Shape', 'Capsule Shape', 'Compound Shape', 'Cylinder Shape',
  1100. 'Disk Shape', 'Polygon Prism Shape', 'Quad Shape', 'Sphere Shape', 'Shape Reference'],
  1101. 'Fall-off Distance': 'Controller|Configuration|Fall-off Distance',
  1102. }
  1103. return properties[property]
  1104. @staticmethod
  1105. def reflection_probe(property: str = 'name') -> str:
  1106. """
  1107. Reflection Probe component properties. Requires one of 'shapes' listed.
  1108. - 'shapes' a list of supported shapes as component names.
  1109. - 'Bake Exposure' Used when baking the cubemap. (float -20.0 to 20.0)
  1110. - 'Parallax Correction' Toggles between preauthored cubemap and one that captures at the location. (bool)
  1111. - 'Show Visualization' Toggles the reflection probe visualization sphere. (bool)
  1112. - 'Settings Exposure' Used when rendering meshes with the cubemap. (float -20.0 to 20.0)
  1113. - 'Use Baked Cubemap' Toggles between preauthored cubemap and one that captures at the location. (bool)
  1114. - 'Baked Cubemap Quality' resolution of the baked cubemap from atom_constants.py BAKED_CUBEMAP_QUALITY.
  1115. - 'Height' Inner extents constrained by the shape dimensions attached to the entity.
  1116. - 'Length' Inner extents constrained by the shape dimensions attached to the entity.
  1117. - 'Width' Inner extents constrained by the shape dimensions attached to the entity.
  1118. - 'Baked Cubemap Path' Read-only Path of baked cubemap image generated by calling 'BakeReflectionProbe' ebus.
  1119. :param property: From the last element of the property tree path. Default 'name' for component name string.
  1120. :return: Full property path OR component name if no property specified.
  1121. """
  1122. properties = {
  1123. 'name': 'Reflection Probe',
  1124. 'shapes': ['Axis Aligned Box Shape', 'Box Shape'],
  1125. 'Bake Exposure': 'Cubemap Bake|Bake Exposure',
  1126. 'Parallax Correction': 'Controller|Configuration|Settings|Parallax Correction',
  1127. 'Show Visualization': 'Controller|Configuration|Settings|Show Visualization',
  1128. 'Settings Exposure': 'Controller|Configuration|Settings|Exposure',
  1129. 'Use Baked Cubemap': 'Cubemap|Use Baked Cubemap',
  1130. 'Baked Cubemap Quality': 'Cubemap|Baked Cubemap Quality',
  1131. 'Height': 'Controller|Configuration|Inner Extents|Height',
  1132. 'Length': 'Controller|Configuration|Inner Extents|Length',
  1133. 'Width': 'Controller|Configuration|Inner Extents|Width',
  1134. 'Baked Cubemap Path': 'Cubemap|Baked Cubemap Path',
  1135. }
  1136. return properties[property]
  1137. @staticmethod
  1138. def ssao(property: str = 'name') -> str:
  1139. """
  1140. SSAO component properties. Requires PostFX Layer component.
  1141. - 'requires' a list of component names as strings required by this component.
  1142. Use editor_entity_utils EditorEntity.add_components(list) to add this list of requirements.\n
  1143. - 'Enable SSAO' toggles the overall function of Screen Space Ambient Occlusion (bool)
  1144. - 'SSAO Strength' multiplier for SSAO strenght (float 0.0 to 2.0, default 1.0)
  1145. - 'Sampling Radius' (float 0.0 to 0.25, default 0.05)
  1146. - 'Enable Blur' toggles the blur feature of SSAO (bool)
  1147. - 'Blur Strength' (float 0.0 to 1.0 default 0.85)
  1148. - 'Blur Edge Threshold' (float default 0.0 to 1.0)
  1149. - 'Blur Sharpness' (float 0.0 to 400.0, default 200.0)
  1150. - 'Enable Downsample' toggles downsampling before SSAO; trades quality for speed (bool)
  1151. - 'Enabled Override' toggles a collection of override values (bool)
  1152. - 'Strength Override' (float 0.0 to default 1.0)
  1153. - 'SamplingRadius Override' (float 0.0 to default 1.0)
  1154. - 'EnableBlur Override' toggles blur overrides (bool)
  1155. - 'BlurConstFalloff Override' (float 0.0 to default 1.0)
  1156. - 'BlurDepthFalloffThreshold Override' (float 0.0 to default 1.0)
  1157. - 'BlurDepthFalloffStrength Override' (float 0.0 to default 1.0)
  1158. - 'EnableDownsample Override' toggles override for enable downsampling (bool)
  1159. :param property: From the last element of the property tree path. Default 'name' for component name string.
  1160. :return: Full property path OR component name if no property specified.
  1161. """
  1162. properties = {
  1163. 'name': 'SSAO',
  1164. 'requires': [AtomComponentProperties.postfx_layer()],
  1165. 'Enable SSAO': 'Controller|Configuration|Enable SSAO',
  1166. 'SSAO Strength': 'Controller|Configuration|SSAO Strength',
  1167. 'Sampling Radius': 'Controller|Configuration|Sampling Radius',
  1168. 'Enable Blur': 'Controller|Configuration|Enable Blur',
  1169. 'Blur Strength': 'Controller|Configuration|Blur Strength',
  1170. 'Blur Edge Threshold': 'Controller|Configuration|Blur Edge Threshold',
  1171. 'Blur Sharpness': 'Controller|Configuration|Blur Sharpness',
  1172. 'Enable Downsample': 'Controller|Configuration|Enable Downsample',
  1173. 'Enabled Override': 'Controller|Configuration|Overrides|Enabled Override',
  1174. 'Strength Override': 'Controller|Configuration|Overrides|Strength Override',
  1175. 'SamplingRadius Override': 'Controller|Configuration|Overrides|SamplingRadius Override',
  1176. 'EnableBlur Override': 'Controller|Configuration|Overrides|EnableBlur Override',
  1177. 'BlurConstFalloff Override': 'Controller|Configuration|Overrides|BlurConstFalloff Override',
  1178. 'BlurDepthFalloffStrength Override': 'Controller|Configuration|Overrides|BlurDepthFalloffStrength Override',
  1179. 'BlurDepthFalloffThreshold Override': 'Controller|Configuration|Overrides|BlurDepthFalloffThreshold Override',
  1180. 'EnableDownsample Override': 'Controller|Configuration|Overrides|EnableDownsample Override',
  1181. }
  1182. return properties[property]