class_particlesmaterial.rst 71 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387
  1. :github_url: hide
  2. .. Generated automatically by doc/tools/make_rst.py in Godot's source tree.
  3. .. DO NOT EDIT THIS FILE, but the ParticlesMaterial.xml source instead.
  4. .. The source is found in doc/classes or modules/<name>/doc_classes.
  5. .. _class_ParticlesMaterial:
  6. ParticlesMaterial
  7. =================
  8. **Inherits:** :ref:`Material<class_Material>` **<** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
  9. Particle properties for :ref:`GPUParticles3D<class_GPUParticles3D>` and :ref:`GPUParticles2D<class_GPUParticles2D>` nodes.
  10. Description
  11. -----------
  12. ParticlesMaterial defines particle properties and behavior. It is used in the ``process_material`` of :ref:`GPUParticles3D<class_GPUParticles3D>` and :ref:`GPUParticles2D<class_GPUParticles2D>` emitter nodes.
  13. Some of this material's properties are applied to each particle when emitted, while others can have a :ref:`CurveTexture<class_CurveTexture>` applied to vary values over the lifetime of the particle.
  14. Particle animation is available only in :ref:`GPUParticles2D<class_GPUParticles2D>`. To use it, attach a :ref:`CanvasItemMaterial<class_CanvasItemMaterial>`, with :ref:`CanvasItemMaterial.particles_animation<class_CanvasItemMaterial_property_particles_animation>` enabled, to the particles node.
  15. Properties
  16. ----------
  17. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  18. | :ref:`Texture2D<class_Texture2D>` | :ref:`angle_curve<class_ParticlesMaterial_property_angle_curve>` | |
  19. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  20. | :ref:`float<class_float>` | :ref:`angle_max<class_ParticlesMaterial_property_angle_max>` | ``0.0`` |
  21. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  22. | :ref:`float<class_float>` | :ref:`angle_min<class_ParticlesMaterial_property_angle_min>` | ``0.0`` |
  23. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  24. | :ref:`Texture2D<class_Texture2D>` | :ref:`angular_velocity_curve<class_ParticlesMaterial_property_angular_velocity_curve>` | |
  25. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  26. | :ref:`float<class_float>` | :ref:`angular_velocity_max<class_ParticlesMaterial_property_angular_velocity_max>` | ``0.0`` |
  27. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  28. | :ref:`float<class_float>` | :ref:`angular_velocity_min<class_ParticlesMaterial_property_angular_velocity_min>` | ``0.0`` |
  29. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  30. | :ref:`Texture2D<class_Texture2D>` | :ref:`anim_offset_curve<class_ParticlesMaterial_property_anim_offset_curve>` | |
  31. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  32. | :ref:`float<class_float>` | :ref:`anim_offset_max<class_ParticlesMaterial_property_anim_offset_max>` | ``0.0`` |
  33. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  34. | :ref:`float<class_float>` | :ref:`anim_offset_min<class_ParticlesMaterial_property_anim_offset_min>` | ``0.0`` |
  35. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  36. | :ref:`Texture2D<class_Texture2D>` | :ref:`anim_speed_curve<class_ParticlesMaterial_property_anim_speed_curve>` | |
  37. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  38. | :ref:`float<class_float>` | :ref:`anim_speed_max<class_ParticlesMaterial_property_anim_speed_max>` | ``0.0`` |
  39. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  40. | :ref:`float<class_float>` | :ref:`anim_speed_min<class_ParticlesMaterial_property_anim_speed_min>` | ``0.0`` |
  41. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  42. | :ref:`bool<class_bool>` | :ref:`attractor_interaction_enabled<class_ParticlesMaterial_property_attractor_interaction_enabled>` | ``true`` |
  43. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  44. | :ref:`float<class_float>` | :ref:`collision_bounce<class_ParticlesMaterial_property_collision_bounce>` | ``0.0`` |
  45. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  46. | :ref:`bool<class_bool>` | :ref:`collision_enabled<class_ParticlesMaterial_property_collision_enabled>` | ``false`` |
  47. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  48. | :ref:`float<class_float>` | :ref:`collision_friction<class_ParticlesMaterial_property_collision_friction>` | ``0.0`` |
  49. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  50. | :ref:`bool<class_bool>` | :ref:`collision_use_scale<class_ParticlesMaterial_property_collision_use_scale>` | ``false`` |
  51. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  52. | :ref:`Color<class_Color>` | :ref:`color<class_ParticlesMaterial_property_color>` | ``Color(1, 1, 1, 1)`` |
  53. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  54. | :ref:`Texture2D<class_Texture2D>` | :ref:`color_initial_ramp<class_ParticlesMaterial_property_color_initial_ramp>` | |
  55. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  56. | :ref:`Texture2D<class_Texture2D>` | :ref:`color_ramp<class_ParticlesMaterial_property_color_ramp>` | |
  57. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  58. | :ref:`Texture2D<class_Texture2D>` | :ref:`damping_curve<class_ParticlesMaterial_property_damping_curve>` | |
  59. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  60. | :ref:`float<class_float>` | :ref:`damping_max<class_ParticlesMaterial_property_damping_max>` | ``0.0`` |
  61. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  62. | :ref:`float<class_float>` | :ref:`damping_min<class_ParticlesMaterial_property_damping_min>` | ``0.0`` |
  63. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  64. | :ref:`Vector3<class_Vector3>` | :ref:`direction<class_ParticlesMaterial_property_direction>` | ``Vector3(1, 0, 0)`` |
  65. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  66. | :ref:`Vector3<class_Vector3>` | :ref:`emission_box_extents<class_ParticlesMaterial_property_emission_box_extents>` | |
  67. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  68. | :ref:`Texture2D<class_Texture2D>` | :ref:`emission_color_texture<class_ParticlesMaterial_property_emission_color_texture>` | |
  69. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  70. | :ref:`Texture2D<class_Texture2D>` | :ref:`emission_normal_texture<class_ParticlesMaterial_property_emission_normal_texture>` | |
  71. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  72. | :ref:`int<class_int>` | :ref:`emission_point_count<class_ParticlesMaterial_property_emission_point_count>` | |
  73. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  74. | :ref:`Texture2D<class_Texture2D>` | :ref:`emission_point_texture<class_ParticlesMaterial_property_emission_point_texture>` | |
  75. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  76. | :ref:`Vector3<class_Vector3>` | :ref:`emission_ring_axis<class_ParticlesMaterial_property_emission_ring_axis>` | |
  77. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  78. | :ref:`float<class_float>` | :ref:`emission_ring_height<class_ParticlesMaterial_property_emission_ring_height>` | |
  79. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  80. | :ref:`float<class_float>` | :ref:`emission_ring_inner_radius<class_ParticlesMaterial_property_emission_ring_inner_radius>` | |
  81. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  82. | :ref:`float<class_float>` | :ref:`emission_ring_radius<class_ParticlesMaterial_property_emission_ring_radius>` | |
  83. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  84. | :ref:`EmissionShape<enum_ParticlesMaterial_EmissionShape>` | :ref:`emission_shape<class_ParticlesMaterial_property_emission_shape>` | ``0`` |
  85. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  86. | :ref:`float<class_float>` | :ref:`emission_sphere_radius<class_ParticlesMaterial_property_emission_sphere_radius>` | |
  87. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  88. | :ref:`float<class_float>` | :ref:`flatness<class_ParticlesMaterial_property_flatness>` | ``0.0`` |
  89. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  90. | :ref:`Vector3<class_Vector3>` | :ref:`gravity<class_ParticlesMaterial_property_gravity>` | ``Vector3(0, -9.8, 0)`` |
  91. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  92. | :ref:`Texture2D<class_Texture2D>` | :ref:`hue_variation_curve<class_ParticlesMaterial_property_hue_variation_curve>` | |
  93. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  94. | :ref:`float<class_float>` | :ref:`hue_variation_max<class_ParticlesMaterial_property_hue_variation_max>` | ``0.0`` |
  95. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  96. | :ref:`float<class_float>` | :ref:`hue_variation_min<class_ParticlesMaterial_property_hue_variation_min>` | ``0.0`` |
  97. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  98. | :ref:`float<class_float>` | :ref:`initial_velocity_max<class_ParticlesMaterial_property_initial_velocity_max>` | ``0.0`` |
  99. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  100. | :ref:`float<class_float>` | :ref:`initial_velocity_min<class_ParticlesMaterial_property_initial_velocity_min>` | ``0.0`` |
  101. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  102. | :ref:`float<class_float>` | :ref:`lifetime_randomness<class_ParticlesMaterial_property_lifetime_randomness>` | ``0.0`` |
  103. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  104. | :ref:`Texture2D<class_Texture2D>` | :ref:`linear_accel_curve<class_ParticlesMaterial_property_linear_accel_curve>` | |
  105. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  106. | :ref:`float<class_float>` | :ref:`linear_accel_max<class_ParticlesMaterial_property_linear_accel_max>` | ``0.0`` |
  107. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  108. | :ref:`float<class_float>` | :ref:`linear_accel_min<class_ParticlesMaterial_property_linear_accel_min>` | ``0.0`` |
  109. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  110. | :ref:`Texture2D<class_Texture2D>` | :ref:`orbit_velocity_curve<class_ParticlesMaterial_property_orbit_velocity_curve>` | |
  111. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  112. | :ref:`float<class_float>` | :ref:`orbit_velocity_max<class_ParticlesMaterial_property_orbit_velocity_max>` | |
  113. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  114. | :ref:`float<class_float>` | :ref:`orbit_velocity_min<class_ParticlesMaterial_property_orbit_velocity_min>` | |
  115. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  116. | :ref:`bool<class_bool>` | :ref:`particle_flag_align_y<class_ParticlesMaterial_property_particle_flag_align_y>` | ``false`` |
  117. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  118. | :ref:`bool<class_bool>` | :ref:`particle_flag_disable_z<class_ParticlesMaterial_property_particle_flag_disable_z>` | ``false`` |
  119. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  120. | :ref:`bool<class_bool>` | :ref:`particle_flag_rotate_y<class_ParticlesMaterial_property_particle_flag_rotate_y>` | ``false`` |
  121. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  122. | :ref:`Texture2D<class_Texture2D>` | :ref:`radial_accel_curve<class_ParticlesMaterial_property_radial_accel_curve>` | |
  123. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  124. | :ref:`float<class_float>` | :ref:`radial_accel_max<class_ParticlesMaterial_property_radial_accel_max>` | ``0.0`` |
  125. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  126. | :ref:`float<class_float>` | :ref:`radial_accel_min<class_ParticlesMaterial_property_radial_accel_min>` | ``0.0`` |
  127. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  128. | :ref:`Texture2D<class_Texture2D>` | :ref:`scale_curve<class_ParticlesMaterial_property_scale_curve>` | |
  129. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  130. | :ref:`float<class_float>` | :ref:`scale_max<class_ParticlesMaterial_property_scale_max>` | ``1.0`` |
  131. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  132. | :ref:`float<class_float>` | :ref:`scale_min<class_ParticlesMaterial_property_scale_min>` | ``1.0`` |
  133. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  134. | :ref:`float<class_float>` | :ref:`spread<class_ParticlesMaterial_property_spread>` | ``45.0`` |
  135. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  136. | :ref:`int<class_int>` | :ref:`sub_emitter_amount_at_end<class_ParticlesMaterial_property_sub_emitter_amount_at_end>` | |
  137. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  138. | :ref:`float<class_float>` | :ref:`sub_emitter_frequency<class_ParticlesMaterial_property_sub_emitter_frequency>` | |
  139. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  140. | :ref:`bool<class_bool>` | :ref:`sub_emitter_keep_velocity<class_ParticlesMaterial_property_sub_emitter_keep_velocity>` | ``false`` |
  141. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  142. | :ref:`SubEmitterMode<enum_ParticlesMaterial_SubEmitterMode>` | :ref:`sub_emitter_mode<class_ParticlesMaterial_property_sub_emitter_mode>` | ``0`` |
  143. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  144. | :ref:`Texture2D<class_Texture2D>` | :ref:`tangential_accel_curve<class_ParticlesMaterial_property_tangential_accel_curve>` | |
  145. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  146. | :ref:`float<class_float>` | :ref:`tangential_accel_max<class_ParticlesMaterial_property_tangential_accel_max>` | ``0.0`` |
  147. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  148. | :ref:`float<class_float>` | :ref:`tangential_accel_min<class_ParticlesMaterial_property_tangential_accel_min>` | ``0.0`` |
  149. +--------------------------------------------------------------+------------------------------------------------------------------------------------------------------+-------------------------+
  150. Methods
  151. -------
  152. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  153. | :ref:`float<class_float>` | :ref:`get_param_max<class_ParticlesMaterial_method_get_param_max>` **(** :ref:`Parameter<enum_ParticlesMaterial_Parameter>` param **)** |const| |
  154. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  155. | :ref:`float<class_float>` | :ref:`get_param_min<class_ParticlesMaterial_method_get_param_min>` **(** :ref:`Parameter<enum_ParticlesMaterial_Parameter>` param **)** |const| |
  156. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  157. | :ref:`Texture2D<class_Texture2D>` | :ref:`get_param_texture<class_ParticlesMaterial_method_get_param_texture>` **(** :ref:`Parameter<enum_ParticlesMaterial_Parameter>` param **)** |const| |
  158. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  159. | :ref:`bool<class_bool>` | :ref:`get_particle_flag<class_ParticlesMaterial_method_get_particle_flag>` **(** :ref:`ParticleFlags<enum_ParticlesMaterial_ParticleFlags>` particle_flag **)** |const| |
  160. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  161. | void | :ref:`set_param_max<class_ParticlesMaterial_method_set_param_max>` **(** :ref:`Parameter<enum_ParticlesMaterial_Parameter>` param, :ref:`float<class_float>` value **)** |
  162. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  163. | void | :ref:`set_param_min<class_ParticlesMaterial_method_set_param_min>` **(** :ref:`Parameter<enum_ParticlesMaterial_Parameter>` param, :ref:`float<class_float>` value **)** |
  164. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  165. | void | :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` **(** :ref:`Parameter<enum_ParticlesMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)** |
  166. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  167. | void | :ref:`set_particle_flag<class_ParticlesMaterial_method_set_particle_flag>` **(** :ref:`ParticleFlags<enum_ParticlesMaterial_ParticleFlags>` particle_flag, :ref:`bool<class_bool>` enable **)** |
  168. +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  169. Enumerations
  170. ------------
  171. .. _enum_ParticlesMaterial_Parameter:
  172. .. _class_ParticlesMaterial_constant_PARAM_INITIAL_LINEAR_VELOCITY:
  173. .. _class_ParticlesMaterial_constant_PARAM_ANGULAR_VELOCITY:
  174. .. _class_ParticlesMaterial_constant_PARAM_ORBIT_VELOCITY:
  175. .. _class_ParticlesMaterial_constant_PARAM_LINEAR_ACCEL:
  176. .. _class_ParticlesMaterial_constant_PARAM_RADIAL_ACCEL:
  177. .. _class_ParticlesMaterial_constant_PARAM_TANGENTIAL_ACCEL:
  178. .. _class_ParticlesMaterial_constant_PARAM_DAMPING:
  179. .. _class_ParticlesMaterial_constant_PARAM_ANGLE:
  180. .. _class_ParticlesMaterial_constant_PARAM_SCALE:
  181. .. _class_ParticlesMaterial_constant_PARAM_HUE_VARIATION:
  182. .. _class_ParticlesMaterial_constant_PARAM_ANIM_SPEED:
  183. .. _class_ParticlesMaterial_constant_PARAM_ANIM_OFFSET:
  184. .. _class_ParticlesMaterial_constant_PARAM_MAX:
  185. enum **Parameter**:
  186. - **PARAM_INITIAL_LINEAR_VELOCITY** = **0** --- Use with :ref:`set_param_min<class_ParticlesMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticlesMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set initial velocity properties.
  187. - **PARAM_ANGULAR_VELOCITY** = **1** --- Use with :ref:`set_param_min<class_ParticlesMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticlesMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set angular velocity properties.
  188. - **PARAM_ORBIT_VELOCITY** = **2** --- Use with :ref:`set_param_min<class_ParticlesMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticlesMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set orbital velocity properties.
  189. - **PARAM_LINEAR_ACCEL** = **3** --- Use with :ref:`set_param_min<class_ParticlesMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticlesMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set linear acceleration properties.
  190. - **PARAM_RADIAL_ACCEL** = **4** --- Use with :ref:`set_param_min<class_ParticlesMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticlesMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set radial acceleration properties.
  191. - **PARAM_TANGENTIAL_ACCEL** = **5** --- Use with :ref:`set_param_min<class_ParticlesMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticlesMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set tangential acceleration properties.
  192. - **PARAM_DAMPING** = **6** --- Use with :ref:`set_param_min<class_ParticlesMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticlesMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set damping properties.
  193. - **PARAM_ANGLE** = **7** --- Use with :ref:`set_param_min<class_ParticlesMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticlesMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set angle properties.
  194. - **PARAM_SCALE** = **8** --- Use with :ref:`set_param_min<class_ParticlesMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticlesMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set scale properties.
  195. - **PARAM_HUE_VARIATION** = **9** --- Use with :ref:`set_param_min<class_ParticlesMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticlesMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set hue variation properties.
  196. - **PARAM_ANIM_SPEED** = **10** --- Use with :ref:`set_param_min<class_ParticlesMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticlesMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set animation speed properties.
  197. - **PARAM_ANIM_OFFSET** = **11** --- Use with :ref:`set_param_min<class_ParticlesMaterial_method_set_param_min>`, :ref:`set_param_max<class_ParticlesMaterial_method_set_param_max>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set animation offset properties.
  198. - **PARAM_MAX** = **12** --- Represents the size of the :ref:`Parameter<enum_ParticlesMaterial_Parameter>` enum.
  199. ----
  200. .. _enum_ParticlesMaterial_ParticleFlags:
  201. .. _class_ParticlesMaterial_constant_PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY:
  202. .. _class_ParticlesMaterial_constant_PARTICLE_FLAG_ROTATE_Y:
  203. .. _class_ParticlesMaterial_constant_PARTICLE_FLAG_DISABLE_Z:
  204. .. _class_ParticlesMaterial_constant_PARTICLE_FLAG_MAX:
  205. enum **ParticleFlags**:
  206. - **PARTICLE_FLAG_ALIGN_Y_TO_VELOCITY** = **0** --- Use with :ref:`set_particle_flag<class_ParticlesMaterial_method_set_particle_flag>` to set :ref:`particle_flag_align_y<class_ParticlesMaterial_property_particle_flag_align_y>`.
  207. - **PARTICLE_FLAG_ROTATE_Y** = **1** --- Use with :ref:`set_particle_flag<class_ParticlesMaterial_method_set_particle_flag>` to set :ref:`particle_flag_rotate_y<class_ParticlesMaterial_property_particle_flag_rotate_y>`.
  208. - **PARTICLE_FLAG_DISABLE_Z** = **2** --- Use with :ref:`set_particle_flag<class_ParticlesMaterial_method_set_particle_flag>` to set :ref:`particle_flag_disable_z<class_ParticlesMaterial_property_particle_flag_disable_z>`.
  209. - **PARTICLE_FLAG_MAX** = **3** --- Represents the size of the :ref:`ParticleFlags<enum_ParticlesMaterial_ParticleFlags>` enum.
  210. ----
  211. .. _enum_ParticlesMaterial_EmissionShape:
  212. .. _class_ParticlesMaterial_constant_EMISSION_SHAPE_POINT:
  213. .. _class_ParticlesMaterial_constant_EMISSION_SHAPE_SPHERE:
  214. .. _class_ParticlesMaterial_constant_EMISSION_SHAPE_BOX:
  215. .. _class_ParticlesMaterial_constant_EMISSION_SHAPE_POINTS:
  216. .. _class_ParticlesMaterial_constant_EMISSION_SHAPE_DIRECTED_POINTS:
  217. .. _class_ParticlesMaterial_constant_EMISSION_SHAPE_RING:
  218. .. _class_ParticlesMaterial_constant_EMISSION_SHAPE_MAX:
  219. enum **EmissionShape**:
  220. - **EMISSION_SHAPE_POINT** = **0** --- All particles will be emitted from a single point.
  221. - **EMISSION_SHAPE_SPHERE** = **1** --- Particles will be emitted in the volume of a sphere.
  222. - **EMISSION_SHAPE_BOX** = **2** --- Particles will be emitted in the volume of a box.
  223. - **EMISSION_SHAPE_POINTS** = **3** --- Particles will be emitted at a position determined by sampling a random point on the :ref:`emission_point_texture<class_ParticlesMaterial_property_emission_point_texture>`. Particle color will be modulated by :ref:`emission_color_texture<class_ParticlesMaterial_property_emission_color_texture>`.
  224. - **EMISSION_SHAPE_DIRECTED_POINTS** = **4** --- Particles will be emitted at a position determined by sampling a random point on the :ref:`emission_point_texture<class_ParticlesMaterial_property_emission_point_texture>`. Particle velocity and rotation will be set based on :ref:`emission_normal_texture<class_ParticlesMaterial_property_emission_normal_texture>`. Particle color will be modulated by :ref:`emission_color_texture<class_ParticlesMaterial_property_emission_color_texture>`.
  225. - **EMISSION_SHAPE_RING** = **5** --- Particles will be emitted in a ring or cylinder.
  226. - **EMISSION_SHAPE_MAX** = **6** --- Represents the size of the :ref:`EmissionShape<enum_ParticlesMaterial_EmissionShape>` enum.
  227. ----
  228. .. _enum_ParticlesMaterial_SubEmitterMode:
  229. .. _class_ParticlesMaterial_constant_SUB_EMITTER_DISABLED:
  230. .. _class_ParticlesMaterial_constant_SUB_EMITTER_CONSTANT:
  231. .. _class_ParticlesMaterial_constant_SUB_EMITTER_AT_END:
  232. .. _class_ParticlesMaterial_constant_SUB_EMITTER_AT_COLLISION:
  233. .. _class_ParticlesMaterial_constant_SUB_EMITTER_MAX:
  234. enum **SubEmitterMode**:
  235. - **SUB_EMITTER_DISABLED** = **0**
  236. - **SUB_EMITTER_CONSTANT** = **1**
  237. - **SUB_EMITTER_AT_END** = **2**
  238. - **SUB_EMITTER_AT_COLLISION** = **3**
  239. - **SUB_EMITTER_MAX** = **4**
  240. Property Descriptions
  241. ---------------------
  242. .. _class_ParticlesMaterial_property_angle_curve:
  243. - :ref:`Texture2D<class_Texture2D>` **angle_curve**
  244. +----------+--------------------------+
  245. | *Setter* | set_param_texture(value) |
  246. +----------+--------------------------+
  247. | *Getter* | get_param_texture() |
  248. +----------+--------------------------+
  249. Each particle's rotation will be animated along this :ref:`CurveTexture<class_CurveTexture>`.
  250. ----
  251. .. _class_ParticlesMaterial_property_angle_max:
  252. - :ref:`float<class_float>` **angle_max**
  253. +-----------+----------------------+
  254. | *Default* | ``0.0`` |
  255. +-----------+----------------------+
  256. | *Setter* | set_param_max(value) |
  257. +-----------+----------------------+
  258. | *Getter* | get_param_max() |
  259. +-----------+----------------------+
  260. Maximum angle.
  261. ----
  262. .. _class_ParticlesMaterial_property_angle_min:
  263. - :ref:`float<class_float>` **angle_min**
  264. +-----------+----------------------+
  265. | *Default* | ``0.0`` |
  266. +-----------+----------------------+
  267. | *Setter* | set_param_min(value) |
  268. +-----------+----------------------+
  269. | *Getter* | get_param_min() |
  270. +-----------+----------------------+
  271. Minimum angle.
  272. ----
  273. .. _class_ParticlesMaterial_property_angular_velocity_curve:
  274. - :ref:`Texture2D<class_Texture2D>` **angular_velocity_curve**
  275. +----------+--------------------------+
  276. | *Setter* | set_param_texture(value) |
  277. +----------+--------------------------+
  278. | *Getter* | get_param_texture() |
  279. +----------+--------------------------+
  280. Each particle's angular velocity (rotation speed) will vary along this :ref:`CurveTexture<class_CurveTexture>` over its lifetime.
  281. ----
  282. .. _class_ParticlesMaterial_property_angular_velocity_max:
  283. - :ref:`float<class_float>` **angular_velocity_max**
  284. +-----------+----------------------+
  285. | *Default* | ``0.0`` |
  286. +-----------+----------------------+
  287. | *Setter* | set_param_max(value) |
  288. +-----------+----------------------+
  289. | *Getter* | get_param_max() |
  290. +-----------+----------------------+
  291. Maximum initial angular velocity (rotation speed) applied to each particle in *degrees* per second.
  292. ----
  293. .. _class_ParticlesMaterial_property_angular_velocity_min:
  294. - :ref:`float<class_float>` **angular_velocity_min**
  295. +-----------+----------------------+
  296. | *Default* | ``0.0`` |
  297. +-----------+----------------------+
  298. | *Setter* | set_param_min(value) |
  299. +-----------+----------------------+
  300. | *Getter* | get_param_min() |
  301. +-----------+----------------------+
  302. Minimum initial angular velocity (rotation speed) applied to each particle in *degrees* per second.
  303. ----
  304. .. _class_ParticlesMaterial_property_anim_offset_curve:
  305. - :ref:`Texture2D<class_Texture2D>` **anim_offset_curve**
  306. +----------+--------------------------+
  307. | *Setter* | set_param_texture(value) |
  308. +----------+--------------------------+
  309. | *Getter* | get_param_texture() |
  310. +----------+--------------------------+
  311. Each particle's animation offset will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  312. ----
  313. .. _class_ParticlesMaterial_property_anim_offset_max:
  314. - :ref:`float<class_float>` **anim_offset_max**
  315. +-----------+----------------------+
  316. | *Default* | ``0.0`` |
  317. +-----------+----------------------+
  318. | *Setter* | set_param_max(value) |
  319. +-----------+----------------------+
  320. | *Getter* | get_param_max() |
  321. +-----------+----------------------+
  322. Maximum animation offset.
  323. ----
  324. .. _class_ParticlesMaterial_property_anim_offset_min:
  325. - :ref:`float<class_float>` **anim_offset_min**
  326. +-----------+----------------------+
  327. | *Default* | ``0.0`` |
  328. +-----------+----------------------+
  329. | *Setter* | set_param_min(value) |
  330. +-----------+----------------------+
  331. | *Getter* | get_param_min() |
  332. +-----------+----------------------+
  333. Minimum animation offset.
  334. ----
  335. .. _class_ParticlesMaterial_property_anim_speed_curve:
  336. - :ref:`Texture2D<class_Texture2D>` **anim_speed_curve**
  337. +----------+--------------------------+
  338. | *Setter* | set_param_texture(value) |
  339. +----------+--------------------------+
  340. | *Getter* | get_param_texture() |
  341. +----------+--------------------------+
  342. Each particle's animation speed will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  343. ----
  344. .. _class_ParticlesMaterial_property_anim_speed_max:
  345. - :ref:`float<class_float>` **anim_speed_max**
  346. +-----------+----------------------+
  347. | *Default* | ``0.0`` |
  348. +-----------+----------------------+
  349. | *Setter* | set_param_max(value) |
  350. +-----------+----------------------+
  351. | *Getter* | get_param_max() |
  352. +-----------+----------------------+
  353. Maximum particle animation speed. Animation speed of ``1`` means that the particles will make full ``0`` to ``1`` offset cycle during lifetime, ``2`` means ``2`` cycles etc.
  354. With animation speed greater than ``1``, remember to enable :ref:`CanvasItemMaterial.particles_anim_loop<class_CanvasItemMaterial_property_particles_anim_loop>` property if you want the animation to repeat.
  355. ----
  356. .. _class_ParticlesMaterial_property_anim_speed_min:
  357. - :ref:`float<class_float>` **anim_speed_min**
  358. +-----------+----------------------+
  359. | *Default* | ``0.0`` |
  360. +-----------+----------------------+
  361. | *Setter* | set_param_min(value) |
  362. +-----------+----------------------+
  363. | *Getter* | get_param_min() |
  364. +-----------+----------------------+
  365. Minimum particle animation speed.
  366. ----
  367. .. _class_ParticlesMaterial_property_attractor_interaction_enabled:
  368. - :ref:`bool<class_bool>` **attractor_interaction_enabled**
  369. +-----------+------------------------------------------+
  370. | *Default* | ``true`` |
  371. +-----------+------------------------------------------+
  372. | *Setter* | set_attractor_interaction_enabled(value) |
  373. +-----------+------------------------------------------+
  374. | *Getter* | is_attractor_interaction_enabled() |
  375. +-----------+------------------------------------------+
  376. True if the interaction with particle attractors is enabled.
  377. ----
  378. .. _class_ParticlesMaterial_property_collision_bounce:
  379. - :ref:`float<class_float>` **collision_bounce**
  380. +-----------+-----------------------------+
  381. | *Default* | ``0.0`` |
  382. +-----------+-----------------------------+
  383. | *Setter* | set_collision_bounce(value) |
  384. +-----------+-----------------------------+
  385. | *Getter* | get_collision_bounce() |
  386. +-----------+-----------------------------+
  387. Collision bounciness.
  388. ----
  389. .. _class_ParticlesMaterial_property_collision_enabled:
  390. - :ref:`bool<class_bool>` **collision_enabled**
  391. +-----------+------------------------------+
  392. | *Default* | ``false`` |
  393. +-----------+------------------------------+
  394. | *Setter* | set_collision_enabled(value) |
  395. +-----------+------------------------------+
  396. | *Getter* | is_collision_enabled() |
  397. +-----------+------------------------------+
  398. True if collisions are enabled for this particle system.
  399. ----
  400. .. _class_ParticlesMaterial_property_collision_friction:
  401. - :ref:`float<class_float>` **collision_friction**
  402. +-----------+-------------------------------+
  403. | *Default* | ``0.0`` |
  404. +-----------+-------------------------------+
  405. | *Setter* | set_collision_friction(value) |
  406. +-----------+-------------------------------+
  407. | *Getter* | get_collision_friction() |
  408. +-----------+-------------------------------+
  409. Collision friction.
  410. ----
  411. .. _class_ParticlesMaterial_property_collision_use_scale:
  412. - :ref:`bool<class_bool>` **collision_use_scale**
  413. +-----------+--------------------------------+
  414. | *Default* | ``false`` |
  415. +-----------+--------------------------------+
  416. | *Setter* | set_collision_use_scale(value) |
  417. +-----------+--------------------------------+
  418. | *Getter* | is_collision_using_scale() |
  419. +-----------+--------------------------------+
  420. Should collision take scale into account.
  421. ----
  422. .. _class_ParticlesMaterial_property_color:
  423. - :ref:`Color<class_Color>` **color**
  424. +-----------+-----------------------+
  425. | *Default* | ``Color(1, 1, 1, 1)`` |
  426. +-----------+-----------------------+
  427. | *Setter* | set_color(value) |
  428. +-----------+-----------------------+
  429. | *Getter* | get_color() |
  430. +-----------+-----------------------+
  431. Each particle's initial color. If the :ref:`GPUParticles2D<class_GPUParticles2D>`'s ``texture`` is defined, it will be multiplied by this color. To have particle display color in a :ref:`BaseMaterial3D<class_BaseMaterial3D>` make sure to set :ref:`BaseMaterial3D.vertex_color_use_as_albedo<class_BaseMaterial3D_property_vertex_color_use_as_albedo>` to ``true``.
  432. ----
  433. .. _class_ParticlesMaterial_property_color_initial_ramp:
  434. - :ref:`Texture2D<class_Texture2D>` **color_initial_ramp**
  435. +----------+-------------------------------+
  436. | *Setter* | set_color_initial_ramp(value) |
  437. +----------+-------------------------------+
  438. | *Getter* | get_color_initial_ramp() |
  439. +----------+-------------------------------+
  440. Each particle's initial color will vary along this :ref:`GradientTexture1D<class_GradientTexture1D>` (multiplied with :ref:`color<class_ParticlesMaterial_property_color>`).
  441. ----
  442. .. _class_ParticlesMaterial_property_color_ramp:
  443. - :ref:`Texture2D<class_Texture2D>` **color_ramp**
  444. +----------+-----------------------+
  445. | *Setter* | set_color_ramp(value) |
  446. +----------+-----------------------+
  447. | *Getter* | get_color_ramp() |
  448. +----------+-----------------------+
  449. Each particle's color will vary along this :ref:`GradientTexture1D<class_GradientTexture1D>` over its lifetime (multiplied with :ref:`color<class_ParticlesMaterial_property_color>`).
  450. ----
  451. .. _class_ParticlesMaterial_property_damping_curve:
  452. - :ref:`Texture2D<class_Texture2D>` **damping_curve**
  453. +----------+--------------------------+
  454. | *Setter* | set_param_texture(value) |
  455. +----------+--------------------------+
  456. | *Getter* | get_param_texture() |
  457. +----------+--------------------------+
  458. Damping will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  459. ----
  460. .. _class_ParticlesMaterial_property_damping_max:
  461. - :ref:`float<class_float>` **damping_max**
  462. +-----------+----------------------+
  463. | *Default* | ``0.0`` |
  464. +-----------+----------------------+
  465. | *Setter* | set_param_max(value) |
  466. +-----------+----------------------+
  467. | *Getter* | get_param_max() |
  468. +-----------+----------------------+
  469. ----
  470. .. _class_ParticlesMaterial_property_damping_min:
  471. - :ref:`float<class_float>` **damping_min**
  472. +-----------+----------------------+
  473. | *Default* | ``0.0`` |
  474. +-----------+----------------------+
  475. | *Setter* | set_param_min(value) |
  476. +-----------+----------------------+
  477. | *Getter* | get_param_min() |
  478. +-----------+----------------------+
  479. ----
  480. .. _class_ParticlesMaterial_property_direction:
  481. - :ref:`Vector3<class_Vector3>` **direction**
  482. +-----------+----------------------+
  483. | *Default* | ``Vector3(1, 0, 0)`` |
  484. +-----------+----------------------+
  485. | *Setter* | set_direction(value) |
  486. +-----------+----------------------+
  487. | *Getter* | get_direction() |
  488. +-----------+----------------------+
  489. Unit vector specifying the particles' emission direction.
  490. ----
  491. .. _class_ParticlesMaterial_property_emission_box_extents:
  492. - :ref:`Vector3<class_Vector3>` **emission_box_extents**
  493. +----------+---------------------------------+
  494. | *Setter* | set_emission_box_extents(value) |
  495. +----------+---------------------------------+
  496. | *Getter* | get_emission_box_extents() |
  497. +----------+---------------------------------+
  498. The box's extents if ``emission_shape`` is set to :ref:`EMISSION_SHAPE_BOX<class_ParticlesMaterial_constant_EMISSION_SHAPE_BOX>`.
  499. ----
  500. .. _class_ParticlesMaterial_property_emission_color_texture:
  501. - :ref:`Texture2D<class_Texture2D>` **emission_color_texture**
  502. +----------+-----------------------------------+
  503. | *Setter* | set_emission_color_texture(value) |
  504. +----------+-----------------------------------+
  505. | *Getter* | get_emission_color_texture() |
  506. +----------+-----------------------------------+
  507. Particle color will be modulated by color determined by sampling this texture at the same point as the :ref:`emission_point_texture<class_ParticlesMaterial_property_emission_point_texture>`.
  508. ----
  509. .. _class_ParticlesMaterial_property_emission_normal_texture:
  510. - :ref:`Texture2D<class_Texture2D>` **emission_normal_texture**
  511. +----------+------------------------------------+
  512. | *Setter* | set_emission_normal_texture(value) |
  513. +----------+------------------------------------+
  514. | *Getter* | get_emission_normal_texture() |
  515. +----------+------------------------------------+
  516. Particle velocity and rotation will be set by sampling this texture at the same point as the :ref:`emission_point_texture<class_ParticlesMaterial_property_emission_point_texture>`. Used only in :ref:`EMISSION_SHAPE_DIRECTED_POINTS<class_ParticlesMaterial_constant_EMISSION_SHAPE_DIRECTED_POINTS>`. Can be created automatically from mesh or node by selecting "Create Emission Points from Mesh/Node" under the "Particles" tool in the toolbar.
  517. ----
  518. .. _class_ParticlesMaterial_property_emission_point_count:
  519. - :ref:`int<class_int>` **emission_point_count**
  520. +----------+---------------------------------+
  521. | *Setter* | set_emission_point_count(value) |
  522. +----------+---------------------------------+
  523. | *Getter* | get_emission_point_count() |
  524. +----------+---------------------------------+
  525. The number of emission points if ``emission_shape`` is set to :ref:`EMISSION_SHAPE_POINTS<class_ParticlesMaterial_constant_EMISSION_SHAPE_POINTS>` or :ref:`EMISSION_SHAPE_DIRECTED_POINTS<class_ParticlesMaterial_constant_EMISSION_SHAPE_DIRECTED_POINTS>`.
  526. ----
  527. .. _class_ParticlesMaterial_property_emission_point_texture:
  528. - :ref:`Texture2D<class_Texture2D>` **emission_point_texture**
  529. +----------+-----------------------------------+
  530. | *Setter* | set_emission_point_texture(value) |
  531. +----------+-----------------------------------+
  532. | *Getter* | get_emission_point_texture() |
  533. +----------+-----------------------------------+
  534. Particles will be emitted at positions determined by sampling this texture at a random position. Used with :ref:`EMISSION_SHAPE_POINTS<class_ParticlesMaterial_constant_EMISSION_SHAPE_POINTS>` and :ref:`EMISSION_SHAPE_DIRECTED_POINTS<class_ParticlesMaterial_constant_EMISSION_SHAPE_DIRECTED_POINTS>`. Can be created automatically from mesh or node by selecting "Create Emission Points from Mesh/Node" under the "Particles" tool in the toolbar.
  535. ----
  536. .. _class_ParticlesMaterial_property_emission_ring_axis:
  537. - :ref:`Vector3<class_Vector3>` **emission_ring_axis**
  538. +----------+-------------------------------+
  539. | *Setter* | set_emission_ring_axis(value) |
  540. +----------+-------------------------------+
  541. | *Getter* | get_emission_ring_axis() |
  542. +----------+-------------------------------+
  543. The axis of the ring when using the emitter :ref:`EMISSION_SHAPE_RING<class_ParticlesMaterial_constant_EMISSION_SHAPE_RING>`.
  544. ----
  545. .. _class_ParticlesMaterial_property_emission_ring_height:
  546. - :ref:`float<class_float>` **emission_ring_height**
  547. +----------+---------------------------------+
  548. | *Setter* | set_emission_ring_height(value) |
  549. +----------+---------------------------------+
  550. | *Getter* | get_emission_ring_height() |
  551. +----------+---------------------------------+
  552. The height of the ring when using the emitter :ref:`EMISSION_SHAPE_RING<class_ParticlesMaterial_constant_EMISSION_SHAPE_RING>`.
  553. ----
  554. .. _class_ParticlesMaterial_property_emission_ring_inner_radius:
  555. - :ref:`float<class_float>` **emission_ring_inner_radius**
  556. +----------+---------------------------------------+
  557. | *Setter* | set_emission_ring_inner_radius(value) |
  558. +----------+---------------------------------------+
  559. | *Getter* | get_emission_ring_inner_radius() |
  560. +----------+---------------------------------------+
  561. The inner radius of the ring when using the emitter :ref:`EMISSION_SHAPE_RING<class_ParticlesMaterial_constant_EMISSION_SHAPE_RING>`.
  562. ----
  563. .. _class_ParticlesMaterial_property_emission_ring_radius:
  564. - :ref:`float<class_float>` **emission_ring_radius**
  565. +----------+---------------------------------+
  566. | *Setter* | set_emission_ring_radius(value) |
  567. +----------+---------------------------------+
  568. | *Getter* | get_emission_ring_radius() |
  569. +----------+---------------------------------+
  570. The radius of the ring when using the emitter :ref:`EMISSION_SHAPE_RING<class_ParticlesMaterial_constant_EMISSION_SHAPE_RING>`.
  571. ----
  572. .. _class_ParticlesMaterial_property_emission_shape:
  573. - :ref:`EmissionShape<enum_ParticlesMaterial_EmissionShape>` **emission_shape**
  574. +-----------+---------------------------+
  575. | *Default* | ``0`` |
  576. +-----------+---------------------------+
  577. | *Setter* | set_emission_shape(value) |
  578. +-----------+---------------------------+
  579. | *Getter* | get_emission_shape() |
  580. +-----------+---------------------------+
  581. Particles will be emitted inside this region. Use :ref:`EmissionShape<enum_ParticlesMaterial_EmissionShape>` constants for values.
  582. ----
  583. .. _class_ParticlesMaterial_property_emission_sphere_radius:
  584. - :ref:`float<class_float>` **emission_sphere_radius**
  585. +----------+-----------------------------------+
  586. | *Setter* | set_emission_sphere_radius(value) |
  587. +----------+-----------------------------------+
  588. | *Getter* | get_emission_sphere_radius() |
  589. +----------+-----------------------------------+
  590. The sphere's radius if ``emission_shape`` is set to :ref:`EMISSION_SHAPE_SPHERE<class_ParticlesMaterial_constant_EMISSION_SHAPE_SPHERE>`.
  591. ----
  592. .. _class_ParticlesMaterial_property_flatness:
  593. - :ref:`float<class_float>` **flatness**
  594. +-----------+---------------------+
  595. | *Default* | ``0.0`` |
  596. +-----------+---------------------+
  597. | *Setter* | set_flatness(value) |
  598. +-----------+---------------------+
  599. | *Getter* | get_flatness() |
  600. +-----------+---------------------+
  601. Amount of :ref:`spread<class_ParticlesMaterial_property_spread>` along the Y axis.
  602. ----
  603. .. _class_ParticlesMaterial_property_gravity:
  604. - :ref:`Vector3<class_Vector3>` **gravity**
  605. +-----------+-------------------------+
  606. | *Default* | ``Vector3(0, -9.8, 0)`` |
  607. +-----------+-------------------------+
  608. | *Setter* | set_gravity(value) |
  609. +-----------+-------------------------+
  610. | *Getter* | get_gravity() |
  611. +-----------+-------------------------+
  612. Gravity applied to every particle.
  613. ----
  614. .. _class_ParticlesMaterial_property_hue_variation_curve:
  615. - :ref:`Texture2D<class_Texture2D>` **hue_variation_curve**
  616. +----------+--------------------------+
  617. | *Setter* | set_param_texture(value) |
  618. +----------+--------------------------+
  619. | *Getter* | get_param_texture() |
  620. +----------+--------------------------+
  621. Each particle's hue will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  622. ----
  623. .. _class_ParticlesMaterial_property_hue_variation_max:
  624. - :ref:`float<class_float>` **hue_variation_max**
  625. +-----------+----------------------+
  626. | *Default* | ``0.0`` |
  627. +-----------+----------------------+
  628. | *Setter* | set_param_max(value) |
  629. +-----------+----------------------+
  630. | *Getter* | get_param_max() |
  631. +-----------+----------------------+
  632. Maximum hue variation.
  633. ----
  634. .. _class_ParticlesMaterial_property_hue_variation_min:
  635. - :ref:`float<class_float>` **hue_variation_min**
  636. +-----------+----------------------+
  637. | *Default* | ``0.0`` |
  638. +-----------+----------------------+
  639. | *Setter* | set_param_min(value) |
  640. +-----------+----------------------+
  641. | *Getter* | get_param_min() |
  642. +-----------+----------------------+
  643. Minimum hue variation.
  644. ----
  645. .. _class_ParticlesMaterial_property_initial_velocity_max:
  646. - :ref:`float<class_float>` **initial_velocity_max**
  647. +-----------+----------------------+
  648. | *Default* | ``0.0`` |
  649. +-----------+----------------------+
  650. | *Setter* | set_param_max(value) |
  651. +-----------+----------------------+
  652. | *Getter* | get_param_max() |
  653. +-----------+----------------------+
  654. Maximum initial velocity.
  655. ----
  656. .. _class_ParticlesMaterial_property_initial_velocity_min:
  657. - :ref:`float<class_float>` **initial_velocity_min**
  658. +-----------+----------------------+
  659. | *Default* | ``0.0`` |
  660. +-----------+----------------------+
  661. | *Setter* | set_param_min(value) |
  662. +-----------+----------------------+
  663. | *Getter* | get_param_min() |
  664. +-----------+----------------------+
  665. Minimum initial velocity.
  666. ----
  667. .. _class_ParticlesMaterial_property_lifetime_randomness:
  668. - :ref:`float<class_float>` **lifetime_randomness**
  669. +-----------+--------------------------------+
  670. | *Default* | ``0.0`` |
  671. +-----------+--------------------------------+
  672. | *Setter* | set_lifetime_randomness(value) |
  673. +-----------+--------------------------------+
  674. | *Getter* | get_lifetime_randomness() |
  675. +-----------+--------------------------------+
  676. Particle lifetime randomness ratio. The lifetime will be multiplied by a value interpolated between ``1.0`` and a random number less than one. For example a random ratio of ``0.4`` would scale the original lifetime between ``0.4-1.0`` of its original value.
  677. ----
  678. .. _class_ParticlesMaterial_property_linear_accel_curve:
  679. - :ref:`Texture2D<class_Texture2D>` **linear_accel_curve**
  680. +----------+--------------------------+
  681. | *Setter* | set_param_texture(value) |
  682. +----------+--------------------------+
  683. | *Getter* | get_param_texture() |
  684. +----------+--------------------------+
  685. Each particle's linear acceleration will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  686. ----
  687. .. _class_ParticlesMaterial_property_linear_accel_max:
  688. - :ref:`float<class_float>` **linear_accel_max**
  689. +-----------+----------------------+
  690. | *Default* | ``0.0`` |
  691. +-----------+----------------------+
  692. | *Setter* | set_param_max(value) |
  693. +-----------+----------------------+
  694. | *Getter* | get_param_max() |
  695. +-----------+----------------------+
  696. Maximum linear acceleration.
  697. ----
  698. .. _class_ParticlesMaterial_property_linear_accel_min:
  699. - :ref:`float<class_float>` **linear_accel_min**
  700. +-----------+----------------------+
  701. | *Default* | ``0.0`` |
  702. +-----------+----------------------+
  703. | *Setter* | set_param_min(value) |
  704. +-----------+----------------------+
  705. | *Getter* | get_param_min() |
  706. +-----------+----------------------+
  707. Minimum linear acceleration.
  708. ----
  709. .. _class_ParticlesMaterial_property_orbit_velocity_curve:
  710. - :ref:`Texture2D<class_Texture2D>` **orbit_velocity_curve**
  711. +----------+--------------------------+
  712. | *Setter* | set_param_texture(value) |
  713. +----------+--------------------------+
  714. | *Getter* | get_param_texture() |
  715. +----------+--------------------------+
  716. Each particle's orbital velocity will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  717. ----
  718. .. _class_ParticlesMaterial_property_orbit_velocity_max:
  719. - :ref:`float<class_float>` **orbit_velocity_max**
  720. +----------+----------------------+
  721. | *Setter* | set_param_max(value) |
  722. +----------+----------------------+
  723. | *Getter* | get_param_max() |
  724. +----------+----------------------+
  725. Maximum orbit velocity.
  726. ----
  727. .. _class_ParticlesMaterial_property_orbit_velocity_min:
  728. - :ref:`float<class_float>` **orbit_velocity_min**
  729. +----------+----------------------+
  730. | *Setter* | set_param_min(value) |
  731. +----------+----------------------+
  732. | *Getter* | get_param_min() |
  733. +----------+----------------------+
  734. Minimum orbit velocity.
  735. ----
  736. .. _class_ParticlesMaterial_property_particle_flag_align_y:
  737. - :ref:`bool<class_bool>` **particle_flag_align_y**
  738. +-----------+--------------------------+
  739. | *Default* | ``false`` |
  740. +-----------+--------------------------+
  741. | *Setter* | set_particle_flag(value) |
  742. +-----------+--------------------------+
  743. | *Getter* | get_particle_flag() |
  744. +-----------+--------------------------+
  745. Align Y axis of particle with the direction of its velocity.
  746. ----
  747. .. _class_ParticlesMaterial_property_particle_flag_disable_z:
  748. - :ref:`bool<class_bool>` **particle_flag_disable_z**
  749. +-----------+--------------------------+
  750. | *Default* | ``false`` |
  751. +-----------+--------------------------+
  752. | *Setter* | set_particle_flag(value) |
  753. +-----------+--------------------------+
  754. | *Getter* | get_particle_flag() |
  755. +-----------+--------------------------+
  756. If ``true``, particles will not move on the z axis.
  757. ----
  758. .. _class_ParticlesMaterial_property_particle_flag_rotate_y:
  759. - :ref:`bool<class_bool>` **particle_flag_rotate_y**
  760. +-----------+--------------------------+
  761. | *Default* | ``false`` |
  762. +-----------+--------------------------+
  763. | *Setter* | set_particle_flag(value) |
  764. +-----------+--------------------------+
  765. | *Getter* | get_particle_flag() |
  766. +-----------+--------------------------+
  767. If ``true``, particles rotate around Y axis by :ref:`angle_min<class_ParticlesMaterial_property_angle_min>`.
  768. ----
  769. .. _class_ParticlesMaterial_property_radial_accel_curve:
  770. - :ref:`Texture2D<class_Texture2D>` **radial_accel_curve**
  771. +----------+--------------------------+
  772. | *Setter* | set_param_texture(value) |
  773. +----------+--------------------------+
  774. | *Getter* | get_param_texture() |
  775. +----------+--------------------------+
  776. Each particle's radial acceleration will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  777. ----
  778. .. _class_ParticlesMaterial_property_radial_accel_max:
  779. - :ref:`float<class_float>` **radial_accel_max**
  780. +-----------+----------------------+
  781. | *Default* | ``0.0`` |
  782. +-----------+----------------------+
  783. | *Setter* | set_param_max(value) |
  784. +-----------+----------------------+
  785. | *Getter* | get_param_max() |
  786. +-----------+----------------------+
  787. Maximum radial acceleration.
  788. ----
  789. .. _class_ParticlesMaterial_property_radial_accel_min:
  790. - :ref:`float<class_float>` **radial_accel_min**
  791. +-----------+----------------------+
  792. | *Default* | ``0.0`` |
  793. +-----------+----------------------+
  794. | *Setter* | set_param_min(value) |
  795. +-----------+----------------------+
  796. | *Getter* | get_param_min() |
  797. +-----------+----------------------+
  798. Minimum radial acceleration.
  799. ----
  800. .. _class_ParticlesMaterial_property_scale_curve:
  801. - :ref:`Texture2D<class_Texture2D>` **scale_curve**
  802. +----------+--------------------------+
  803. | *Setter* | set_param_texture(value) |
  804. +----------+--------------------------+
  805. | *Getter* | get_param_texture() |
  806. +----------+--------------------------+
  807. Each particle's scale will vary along this :ref:`CurveTexture<class_CurveTexture>`. If a :ref:`CurveXYZTexture<class_CurveXYZTexture>` is supplied instead, the scale will be separated per-axis.
  808. ----
  809. .. _class_ParticlesMaterial_property_scale_max:
  810. - :ref:`float<class_float>` **scale_max**
  811. +-----------+----------------------+
  812. | *Default* | ``1.0`` |
  813. +-----------+----------------------+
  814. | *Setter* | set_param_max(value) |
  815. +-----------+----------------------+
  816. | *Getter* | get_param_max() |
  817. +-----------+----------------------+
  818. Maximum scale.
  819. ----
  820. .. _class_ParticlesMaterial_property_scale_min:
  821. - :ref:`float<class_float>` **scale_min**
  822. +-----------+----------------------+
  823. | *Default* | ``1.0`` |
  824. +-----------+----------------------+
  825. | *Setter* | set_param_min(value) |
  826. +-----------+----------------------+
  827. | *Getter* | get_param_min() |
  828. +-----------+----------------------+
  829. Minimum scale.
  830. ----
  831. .. _class_ParticlesMaterial_property_spread:
  832. - :ref:`float<class_float>` **spread**
  833. +-----------+-------------------+
  834. | *Default* | ``45.0`` |
  835. +-----------+-------------------+
  836. | *Setter* | set_spread(value) |
  837. +-----------+-------------------+
  838. | *Getter* | get_spread() |
  839. +-----------+-------------------+
  840. Each particle's initial direction range from ``+spread`` to ``-spread`` degrees.
  841. ----
  842. .. _class_ParticlesMaterial_property_sub_emitter_amount_at_end:
  843. - :ref:`int<class_int>` **sub_emitter_amount_at_end**
  844. +----------+--------------------------------------+
  845. | *Setter* | set_sub_emitter_amount_at_end(value) |
  846. +----------+--------------------------------------+
  847. | *Getter* | get_sub_emitter_amount_at_end() |
  848. +----------+--------------------------------------+
  849. ----
  850. .. _class_ParticlesMaterial_property_sub_emitter_frequency:
  851. - :ref:`float<class_float>` **sub_emitter_frequency**
  852. +----------+----------------------------------+
  853. | *Setter* | set_sub_emitter_frequency(value) |
  854. +----------+----------------------------------+
  855. | *Getter* | get_sub_emitter_frequency() |
  856. +----------+----------------------------------+
  857. ----
  858. .. _class_ParticlesMaterial_property_sub_emitter_keep_velocity:
  859. - :ref:`bool<class_bool>` **sub_emitter_keep_velocity**
  860. +-----------+--------------------------------------+
  861. | *Default* | ``false`` |
  862. +-----------+--------------------------------------+
  863. | *Setter* | set_sub_emitter_keep_velocity(value) |
  864. +-----------+--------------------------------------+
  865. | *Getter* | get_sub_emitter_keep_velocity() |
  866. +-----------+--------------------------------------+
  867. ----
  868. .. _class_ParticlesMaterial_property_sub_emitter_mode:
  869. - :ref:`SubEmitterMode<enum_ParticlesMaterial_SubEmitterMode>` **sub_emitter_mode**
  870. +-----------+-----------------------------+
  871. | *Default* | ``0`` |
  872. +-----------+-----------------------------+
  873. | *Setter* | set_sub_emitter_mode(value) |
  874. +-----------+-----------------------------+
  875. | *Getter* | get_sub_emitter_mode() |
  876. +-----------+-----------------------------+
  877. ----
  878. .. _class_ParticlesMaterial_property_tangential_accel_curve:
  879. - :ref:`Texture2D<class_Texture2D>` **tangential_accel_curve**
  880. +----------+--------------------------+
  881. | *Setter* | set_param_texture(value) |
  882. +----------+--------------------------+
  883. | *Getter* | get_param_texture() |
  884. +----------+--------------------------+
  885. Each particle's tangential acceleration will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  886. ----
  887. .. _class_ParticlesMaterial_property_tangential_accel_max:
  888. - :ref:`float<class_float>` **tangential_accel_max**
  889. +-----------+----------------------+
  890. | *Default* | ``0.0`` |
  891. +-----------+----------------------+
  892. | *Setter* | set_param_max(value) |
  893. +-----------+----------------------+
  894. | *Getter* | get_param_max() |
  895. +-----------+----------------------+
  896. Maximum tangential acceleration.
  897. ----
  898. .. _class_ParticlesMaterial_property_tangential_accel_min:
  899. - :ref:`float<class_float>` **tangential_accel_min**
  900. +-----------+----------------------+
  901. | *Default* | ``0.0`` |
  902. +-----------+----------------------+
  903. | *Setter* | set_param_min(value) |
  904. +-----------+----------------------+
  905. | *Getter* | get_param_min() |
  906. +-----------+----------------------+
  907. Minimum tangential acceleration.
  908. Method Descriptions
  909. -------------------
  910. .. _class_ParticlesMaterial_method_get_param_max:
  911. - :ref:`float<class_float>` **get_param_max** **(** :ref:`Parameter<enum_ParticlesMaterial_Parameter>` param **)** |const|
  912. Returns the maximum value range for the given parameter.
  913. ----
  914. .. _class_ParticlesMaterial_method_get_param_min:
  915. - :ref:`float<class_float>` **get_param_min** **(** :ref:`Parameter<enum_ParticlesMaterial_Parameter>` param **)** |const|
  916. Returns the minimum value range for the given parameter.
  917. ----
  918. .. _class_ParticlesMaterial_method_get_param_texture:
  919. - :ref:`Texture2D<class_Texture2D>` **get_param_texture** **(** :ref:`Parameter<enum_ParticlesMaterial_Parameter>` param **)** |const|
  920. Returns the :ref:`Texture2D<class_Texture2D>` used by the specified parameter.
  921. ----
  922. .. _class_ParticlesMaterial_method_get_particle_flag:
  923. - :ref:`bool<class_bool>` **get_particle_flag** **(** :ref:`ParticleFlags<enum_ParticlesMaterial_ParticleFlags>` particle_flag **)** |const|
  924. Returns ``true`` if the specified particle flag is enabled. See :ref:`ParticleFlags<enum_ParticlesMaterial_ParticleFlags>` for options.
  925. ----
  926. .. _class_ParticlesMaterial_method_set_param_max:
  927. - void **set_param_max** **(** :ref:`Parameter<enum_ParticlesMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  928. Sets the maximum value range for the given parameter.
  929. ----
  930. .. _class_ParticlesMaterial_method_set_param_min:
  931. - void **set_param_min** **(** :ref:`Parameter<enum_ParticlesMaterial_Parameter>` param, :ref:`float<class_float>` value **)**
  932. Sets the minimum value range for the given parameter.
  933. ----
  934. .. _class_ParticlesMaterial_method_set_param_texture:
  935. - void **set_param_texture** **(** :ref:`Parameter<enum_ParticlesMaterial_Parameter>` param, :ref:`Texture2D<class_Texture2D>` texture **)**
  936. Sets the :ref:`Texture2D<class_Texture2D>` for the specified :ref:`Parameter<enum_ParticlesMaterial_Parameter>`.
  937. ----
  938. .. _class_ParticlesMaterial_method_set_particle_flag:
  939. - void **set_particle_flag** **(** :ref:`ParticleFlags<enum_ParticlesMaterial_ParticleFlags>` particle_flag, :ref:`bool<class_bool>` enable **)**
  940. If ``true``, enables the specified particle flag. See :ref:`ParticleFlags<enum_ParticlesMaterial_ParticleFlags>` for options.
  941. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  942. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  943. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  944. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  945. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  946. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`