class_particlesmaterial.rst 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996
  1. :github_url: hide
  2. .. Generated automatically by doc/tools/makerst.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:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
  9. **Category:** Core
  10. Brief Description
  11. -----------------
  12. Particle properties for :ref:`Particles<class_Particles>` and :ref:`Particles2D<class_Particles2D>` nodes.
  13. Properties
  14. ----------
  15. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  16. | :ref:`float<class_float>` | :ref:`angle<class_ParticlesMaterial_property_angle>` |
  17. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  18. | :ref:`Texture<class_Texture>` | :ref:`angle_curve<class_ParticlesMaterial_property_angle_curve>` |
  19. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  20. | :ref:`float<class_float>` | :ref:`angle_random<class_ParticlesMaterial_property_angle_random>` |
  21. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  22. | :ref:`float<class_float>` | :ref:`angular_velocity<class_ParticlesMaterial_property_angular_velocity>` |
  23. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  24. | :ref:`Texture<class_Texture>` | :ref:`angular_velocity_curve<class_ParticlesMaterial_property_angular_velocity_curve>` |
  25. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  26. | :ref:`float<class_float>` | :ref:`angular_velocity_random<class_ParticlesMaterial_property_angular_velocity_random>` |
  27. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  28. | :ref:`float<class_float>` | :ref:`anim_offset<class_ParticlesMaterial_property_anim_offset>` |
  29. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  30. | :ref:`Texture<class_Texture>` | :ref:`anim_offset_curve<class_ParticlesMaterial_property_anim_offset_curve>` |
  31. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  32. | :ref:`float<class_float>` | :ref:`anim_offset_random<class_ParticlesMaterial_property_anim_offset_random>` |
  33. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  34. | :ref:`float<class_float>` | :ref:`anim_speed<class_ParticlesMaterial_property_anim_speed>` |
  35. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  36. | :ref:`Texture<class_Texture>` | :ref:`anim_speed_curve<class_ParticlesMaterial_property_anim_speed_curve>` |
  37. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  38. | :ref:`float<class_float>` | :ref:`anim_speed_random<class_ParticlesMaterial_property_anim_speed_random>` |
  39. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  40. | :ref:`Color<class_Color>` | :ref:`color<class_ParticlesMaterial_property_color>` |
  41. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  42. | :ref:`Texture<class_Texture>` | :ref:`color_ramp<class_ParticlesMaterial_property_color_ramp>` |
  43. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  44. | :ref:`float<class_float>` | :ref:`damping<class_ParticlesMaterial_property_damping>` |
  45. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  46. | :ref:`Texture<class_Texture>` | :ref:`damping_curve<class_ParticlesMaterial_property_damping_curve>` |
  47. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  48. | :ref:`float<class_float>` | :ref:`damping_random<class_ParticlesMaterial_property_damping_random>` |
  49. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  50. | :ref:`Vector3<class_Vector3>` | :ref:`emission_box_extents<class_ParticlesMaterial_property_emission_box_extents>` |
  51. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  52. | :ref:`Texture<class_Texture>` | :ref:`emission_color_texture<class_ParticlesMaterial_property_emission_color_texture>` |
  53. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  54. | :ref:`Texture<class_Texture>` | :ref:`emission_normal_texture<class_ParticlesMaterial_property_emission_normal_texture>` |
  55. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  56. | :ref:`int<class_int>` | :ref:`emission_point_count<class_ParticlesMaterial_property_emission_point_count>` |
  57. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  58. | :ref:`Texture<class_Texture>` | :ref:`emission_point_texture<class_ParticlesMaterial_property_emission_point_texture>` |
  59. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  60. | :ref:`EmissionShape<enum_ParticlesMaterial_EmissionShape>` | :ref:`emission_shape<class_ParticlesMaterial_property_emission_shape>` |
  61. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  62. | :ref:`float<class_float>` | :ref:`emission_sphere_radius<class_ParticlesMaterial_property_emission_sphere_radius>` |
  63. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  64. | :ref:`bool<class_bool>` | :ref:`flag_align_y<class_ParticlesMaterial_property_flag_align_y>` |
  65. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  66. | :ref:`bool<class_bool>` | :ref:`flag_disable_z<class_ParticlesMaterial_property_flag_disable_z>` |
  67. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  68. | :ref:`bool<class_bool>` | :ref:`flag_rotate_y<class_ParticlesMaterial_property_flag_rotate_y>` |
  69. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  70. | :ref:`float<class_float>` | :ref:`flatness<class_ParticlesMaterial_property_flatness>` |
  71. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  72. | :ref:`Vector3<class_Vector3>` | :ref:`gravity<class_ParticlesMaterial_property_gravity>` |
  73. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  74. | :ref:`float<class_float>` | :ref:`hue_variation<class_ParticlesMaterial_property_hue_variation>` |
  75. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  76. | :ref:`Texture<class_Texture>` | :ref:`hue_variation_curve<class_ParticlesMaterial_property_hue_variation_curve>` |
  77. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  78. | :ref:`float<class_float>` | :ref:`hue_variation_random<class_ParticlesMaterial_property_hue_variation_random>` |
  79. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  80. | :ref:`float<class_float>` | :ref:`initial_velocity<class_ParticlesMaterial_property_initial_velocity>` |
  81. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  82. | :ref:`float<class_float>` | :ref:`initial_velocity_random<class_ParticlesMaterial_property_initial_velocity_random>` |
  83. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  84. | :ref:`float<class_float>` | :ref:`linear_accel<class_ParticlesMaterial_property_linear_accel>` |
  85. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  86. | :ref:`Texture<class_Texture>` | :ref:`linear_accel_curve<class_ParticlesMaterial_property_linear_accel_curve>` |
  87. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  88. | :ref:`float<class_float>` | :ref:`linear_accel_random<class_ParticlesMaterial_property_linear_accel_random>` |
  89. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  90. | :ref:`float<class_float>` | :ref:`orbit_velocity<class_ParticlesMaterial_property_orbit_velocity>` |
  91. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  92. | :ref:`Texture<class_Texture>` | :ref:`orbit_velocity_curve<class_ParticlesMaterial_property_orbit_velocity_curve>` |
  93. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  94. | :ref:`float<class_float>` | :ref:`orbit_velocity_random<class_ParticlesMaterial_property_orbit_velocity_random>` |
  95. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  96. | :ref:`float<class_float>` | :ref:`radial_accel<class_ParticlesMaterial_property_radial_accel>` |
  97. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  98. | :ref:`Texture<class_Texture>` | :ref:`radial_accel_curve<class_ParticlesMaterial_property_radial_accel_curve>` |
  99. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  100. | :ref:`float<class_float>` | :ref:`radial_accel_random<class_ParticlesMaterial_property_radial_accel_random>` |
  101. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  102. | :ref:`float<class_float>` | :ref:`scale<class_ParticlesMaterial_property_scale>` |
  103. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  104. | :ref:`Texture<class_Texture>` | :ref:`scale_curve<class_ParticlesMaterial_property_scale_curve>` |
  105. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  106. | :ref:`float<class_float>` | :ref:`scale_random<class_ParticlesMaterial_property_scale_random>` |
  107. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  108. | :ref:`float<class_float>` | :ref:`spread<class_ParticlesMaterial_property_spread>` |
  109. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  110. | :ref:`float<class_float>` | :ref:`tangential_accel<class_ParticlesMaterial_property_tangential_accel>` |
  111. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  112. | :ref:`Texture<class_Texture>` | :ref:`tangential_accel_curve<class_ParticlesMaterial_property_tangential_accel_curve>` |
  113. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  114. | :ref:`float<class_float>` | :ref:`tangential_accel_random<class_ParticlesMaterial_property_tangential_accel_random>` |
  115. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  116. | :ref:`GradientTexture<class_GradientTexture>` | :ref:`trail_color_modifier<class_ParticlesMaterial_property_trail_color_modifier>` |
  117. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  118. | :ref:`int<class_int>` | :ref:`trail_divisor<class_ParticlesMaterial_property_trail_divisor>` |
  119. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  120. | :ref:`CurveTexture<class_CurveTexture>` | :ref:`trail_size_modifier<class_ParticlesMaterial_property_trail_size_modifier>` |
  121. +------------------------------------------------------------+------------------------------------------------------------------------------------------+
  122. Enumerations
  123. ------------
  124. .. _enum_ParticlesMaterial_Parameter:
  125. .. _class_ParticlesMaterial_constant_PARAM_INITIAL_LINEAR_VELOCITY:
  126. .. _class_ParticlesMaterial_constant_PARAM_ANGULAR_VELOCITY:
  127. .. _class_ParticlesMaterial_constant_PARAM_ORBIT_VELOCITY:
  128. .. _class_ParticlesMaterial_constant_PARAM_LINEAR_ACCEL:
  129. .. _class_ParticlesMaterial_constant_PARAM_RADIAL_ACCEL:
  130. .. _class_ParticlesMaterial_constant_PARAM_TANGENTIAL_ACCEL:
  131. .. _class_ParticlesMaterial_constant_PARAM_DAMPING:
  132. .. _class_ParticlesMaterial_constant_PARAM_ANGLE:
  133. .. _class_ParticlesMaterial_constant_PARAM_SCALE:
  134. .. _class_ParticlesMaterial_constant_PARAM_HUE_VARIATION:
  135. .. _class_ParticlesMaterial_constant_PARAM_ANIM_SPEED:
  136. .. _class_ParticlesMaterial_constant_PARAM_ANIM_OFFSET:
  137. .. _class_ParticlesMaterial_constant_PARAM_MAX:
  138. enum **Parameter**:
  139. - **PARAM_INITIAL_LINEAR_VELOCITY** = **0** --- Use with :ref:`set_param<class_ParticlesMaterial_method_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_method_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set initial velocity properties.
  140. - **PARAM_ANGULAR_VELOCITY** = **1** --- Use with :ref:`set_param<class_ParticlesMaterial_method_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_method_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set angular velocity properties.
  141. - **PARAM_ORBIT_VELOCITY** = **2** --- Use with :ref:`set_param<class_ParticlesMaterial_method_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_method_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set orbital velocity properties.
  142. - **PARAM_LINEAR_ACCEL** = **3** --- Use with :ref:`set_param<class_ParticlesMaterial_method_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_method_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set linear acceleration properties.
  143. - **PARAM_RADIAL_ACCEL** = **4** --- Use with :ref:`set_param<class_ParticlesMaterial_method_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_method_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set radial acceleration properties.
  144. - **PARAM_TANGENTIAL_ACCEL** = **5** --- Use with :ref:`set_param<class_ParticlesMaterial_method_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_method_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set tangential acceleration properties.
  145. - **PARAM_DAMPING** = **6** --- Use with :ref:`set_param<class_ParticlesMaterial_method_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_method_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set damping properties.
  146. - **PARAM_ANGLE** = **7** --- Use with :ref:`set_param<class_ParticlesMaterial_method_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_method_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set angle properties.
  147. - **PARAM_SCALE** = **8** --- Use with :ref:`set_param<class_ParticlesMaterial_method_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_method_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set scale properties.
  148. - **PARAM_HUE_VARIATION** = **9** --- Use with :ref:`set_param<class_ParticlesMaterial_method_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_method_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set hue variation properties.
  149. - **PARAM_ANIM_SPEED** = **10** --- Use with :ref:`set_param<class_ParticlesMaterial_method_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_method_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set animation speed properties.
  150. - **PARAM_ANIM_OFFSET** = **11** --- Use with :ref:`set_param<class_ParticlesMaterial_method_set_param>`, :ref:`set_param_randomness<class_ParticlesMaterial_method_set_param_randomness>`, and :ref:`set_param_texture<class_ParticlesMaterial_method_set_param_texture>` to set animation offset properties.
  151. - **PARAM_MAX** = **12** --- Represents the size of the :ref:`Parameter<enum_ParticlesMaterial_Parameter>` enum.
  152. ----
  153. .. _enum_ParticlesMaterial_Flags:
  154. .. _class_ParticlesMaterial_constant_FLAG_ALIGN_Y_TO_VELOCITY:
  155. .. _class_ParticlesMaterial_constant_FLAG_ROTATE_Y:
  156. .. _class_ParticlesMaterial_constant_FLAG_DISABLE_Z:
  157. .. _class_ParticlesMaterial_constant_FLAG_MAX:
  158. enum **Flags**:
  159. - **FLAG_ALIGN_Y_TO_VELOCITY** = **0** --- Use with :ref:`set_flag<class_ParticlesMaterial_method_set_flag>` to set :ref:`flag_align_y<class_ParticlesMaterial_property_flag_align_y>`.
  160. - **FLAG_ROTATE_Y** = **1** --- Use with :ref:`set_flag<class_ParticlesMaterial_method_set_flag>` to set :ref:`flag_rotate_y<class_ParticlesMaterial_property_flag_rotate_y>`.
  161. - **FLAG_DISABLE_Z** = **2** --- Use with :ref:`set_flag<class_ParticlesMaterial_method_set_flag>` to set :ref:`flag_disable_z<class_ParticlesMaterial_property_flag_disable_z>`.
  162. - **FLAG_MAX** = **3** --- Represents the size of the :ref:`Flags<enum_ParticlesMaterial_Flags>` enum.
  163. ----
  164. .. _enum_ParticlesMaterial_EmissionShape:
  165. .. _class_ParticlesMaterial_constant_EMISSION_SHAPE_POINT:
  166. .. _class_ParticlesMaterial_constant_EMISSION_SHAPE_SPHERE:
  167. .. _class_ParticlesMaterial_constant_EMISSION_SHAPE_BOX:
  168. .. _class_ParticlesMaterial_constant_EMISSION_SHAPE_POINTS:
  169. .. _class_ParticlesMaterial_constant_EMISSION_SHAPE_DIRECTED_POINTS:
  170. enum **EmissionShape**:
  171. - **EMISSION_SHAPE_POINT** = **0** --- All particles will be emitted from a single point.
  172. - **EMISSION_SHAPE_SPHERE** = **1** --- Particles will be emitted in the volume of a sphere.
  173. - **EMISSION_SHAPE_BOX** = **2** --- Particles will be emitted in the volume of a box.
  174. - **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>`.
  175. - **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>`.
  176. Description
  177. -----------
  178. ParticlesMaterial defines particle properties and behavior. It is used in the ``process_material`` of :ref:`Particles<class_Particles>` and :ref:`Particles2D<class_Particles2D>` emitter nodes.
  179. 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.
  180. When a randomness ratio is applied to a property it is used to scale that property by a random amount. The random ratio is used to interpolate between ``1.0`` and a random number less than one, the result is multiplied by the property to obtain the randomized property. For example a random ratio of ``0.4`` would scale the original property between ``0.4-1.0`` of its original value.
  181. Property Descriptions
  182. ---------------------
  183. .. _class_ParticlesMaterial_property_angle:
  184. - :ref:`float<class_float>` **angle**
  185. +----------+------------------+
  186. | *Setter* | set_param(value) |
  187. +----------+------------------+
  188. | *Getter* | get_param() |
  189. +----------+------------------+
  190. Initial rotation applied to each particle, in degrees.
  191. Only applied when :ref:`flag_disable_z<class_ParticlesMaterial_property_flag_disable_z>` or :ref:`flag_rotate_y<class_ParticlesMaterial_property_flag_rotate_y>` are ``true`` or the :ref:`SpatialMaterial<class_SpatialMaterial>` being used to draw the particle is using ``BillboardMode.BILLBOARD_PARTICLES``.
  192. ----
  193. .. _class_ParticlesMaterial_property_angle_curve:
  194. - :ref:`Texture<class_Texture>` **angle_curve**
  195. +----------+--------------------------+
  196. | *Setter* | set_param_texture(value) |
  197. +----------+--------------------------+
  198. | *Getter* | get_param_texture() |
  199. +----------+--------------------------+
  200. Each particle's rotation will be animated along this :ref:`CurveTexture<class_CurveTexture>`.
  201. ----
  202. .. _class_ParticlesMaterial_property_angle_random:
  203. - :ref:`float<class_float>` **angle_random**
  204. +----------+-----------------------------+
  205. | *Setter* | set_param_randomness(value) |
  206. +----------+-----------------------------+
  207. | *Getter* | get_param_randomness() |
  208. +----------+-----------------------------+
  209. Rotation randomness ratio. Default value: ``0``.
  210. ----
  211. .. _class_ParticlesMaterial_property_angular_velocity:
  212. - :ref:`float<class_float>` **angular_velocity**
  213. +----------+------------------+
  214. | *Setter* | set_param(value) |
  215. +----------+------------------+
  216. | *Getter* | get_param() |
  217. +----------+------------------+
  218. Initial angular velocity applied to each particle. Sets the speed of rotation of the particle.
  219. Only applied when :ref:`flag_disable_z<class_ParticlesMaterial_property_flag_disable_z>` or :ref:`flag_rotate_y<class_ParticlesMaterial_property_flag_rotate_y>` are ``true`` or the :ref:`SpatialMaterial<class_SpatialMaterial>` being used to draw the particle is using ``BillboardMode.BILLBOARD_PARTICLES``.
  220. ----
  221. .. _class_ParticlesMaterial_property_angular_velocity_curve:
  222. - :ref:`Texture<class_Texture>` **angular_velocity_curve**
  223. +----------+--------------------------+
  224. | *Setter* | set_param_texture(value) |
  225. +----------+--------------------------+
  226. | *Getter* | get_param_texture() |
  227. +----------+--------------------------+
  228. Each particle's angular velocity will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  229. ----
  230. .. _class_ParticlesMaterial_property_angular_velocity_random:
  231. - :ref:`float<class_float>` **angular_velocity_random**
  232. +----------+-----------------------------+
  233. | *Setter* | set_param_randomness(value) |
  234. +----------+-----------------------------+
  235. | *Getter* | get_param_randomness() |
  236. +----------+-----------------------------+
  237. Angular velocity randomness ratio. Default value: ``0``.
  238. ----
  239. .. _class_ParticlesMaterial_property_anim_offset:
  240. - :ref:`float<class_float>` **anim_offset**
  241. +----------+------------------+
  242. | *Setter* | set_param(value) |
  243. +----------+------------------+
  244. | *Getter* | get_param() |
  245. +----------+------------------+
  246. Particle animation offset.
  247. ----
  248. .. _class_ParticlesMaterial_property_anim_offset_curve:
  249. - :ref:`Texture<class_Texture>` **anim_offset_curve**
  250. +----------+--------------------------+
  251. | *Setter* | set_param_texture(value) |
  252. +----------+--------------------------+
  253. | *Getter* | get_param_texture() |
  254. +----------+--------------------------+
  255. Each particle's animation offset will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  256. ----
  257. .. _class_ParticlesMaterial_property_anim_offset_random:
  258. - :ref:`float<class_float>` **anim_offset_random**
  259. +----------+-----------------------------+
  260. | *Setter* | set_param_randomness(value) |
  261. +----------+-----------------------------+
  262. | *Getter* | get_param_randomness() |
  263. +----------+-----------------------------+
  264. Animation offset randomness ratio. Default value: ``0``.
  265. ----
  266. .. _class_ParticlesMaterial_property_anim_speed:
  267. - :ref:`float<class_float>` **anim_speed**
  268. +----------+------------------+
  269. | *Setter* | set_param(value) |
  270. +----------+------------------+
  271. | *Getter* | get_param() |
  272. +----------+------------------+
  273. Particle animation speed.
  274. ----
  275. .. _class_ParticlesMaterial_property_anim_speed_curve:
  276. - :ref:`Texture<class_Texture>` **anim_speed_curve**
  277. +----------+--------------------------+
  278. | *Setter* | set_param_texture(value) |
  279. +----------+--------------------------+
  280. | *Getter* | get_param_texture() |
  281. +----------+--------------------------+
  282. Each particle's animation speed will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  283. ----
  284. .. _class_ParticlesMaterial_property_anim_speed_random:
  285. - :ref:`float<class_float>` **anim_speed_random**
  286. +----------+-----------------------------+
  287. | *Setter* | set_param_randomness(value) |
  288. +----------+-----------------------------+
  289. | *Getter* | get_param_randomness() |
  290. +----------+-----------------------------+
  291. Animation speed randomness ratio. Default value: ``0``.
  292. ----
  293. .. _class_ParticlesMaterial_property_color:
  294. - :ref:`Color<class_Color>` **color**
  295. +----------+------------------+
  296. | *Setter* | set_color(value) |
  297. +----------+------------------+
  298. | *Getter* | get_color() |
  299. +----------+------------------+
  300. Each particle's initial color. If the :ref:`Particles2D<class_Particles2D>`'s ``texture`` is defined, it will be multiplied by this color. To have particle display color in a :ref:`SpatialMaterial<class_SpatialMaterial>` make sure to set :ref:`SpatialMaterial.vertex_color_use_as_albedo<class_SpatialMaterial_property_vertex_color_use_as_albedo>` to ``true``.
  301. ----
  302. .. _class_ParticlesMaterial_property_color_ramp:
  303. - :ref:`Texture<class_Texture>` **color_ramp**
  304. +----------+-----------------------+
  305. | *Setter* | set_color_ramp(value) |
  306. +----------+-----------------------+
  307. | *Getter* | get_color_ramp() |
  308. +----------+-----------------------+
  309. Each particle's color will vary along this :ref:`GradientTexture<class_GradientTexture>`.
  310. ----
  311. .. _class_ParticlesMaterial_property_damping:
  312. - :ref:`float<class_float>` **damping**
  313. +----------+------------------+
  314. | *Setter* | set_param(value) |
  315. +----------+------------------+
  316. | *Getter* | get_param() |
  317. +----------+------------------+
  318. The rate at which particles lose velocity.
  319. ----
  320. .. _class_ParticlesMaterial_property_damping_curve:
  321. - :ref:`Texture<class_Texture>` **damping_curve**
  322. +----------+--------------------------+
  323. | *Setter* | set_param_texture(value) |
  324. +----------+--------------------------+
  325. | *Getter* | get_param_texture() |
  326. +----------+--------------------------+
  327. Damping will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  328. ----
  329. .. _class_ParticlesMaterial_property_damping_random:
  330. - :ref:`float<class_float>` **damping_random**
  331. +----------+-----------------------------+
  332. | *Setter* | set_param_randomness(value) |
  333. +----------+-----------------------------+
  334. | *Getter* | get_param_randomness() |
  335. +----------+-----------------------------+
  336. Damping randomness ratio. Default value: ``0``.
  337. ----
  338. .. _class_ParticlesMaterial_property_emission_box_extents:
  339. - :ref:`Vector3<class_Vector3>` **emission_box_extents**
  340. +----------+---------------------------------+
  341. | *Setter* | set_emission_box_extents(value) |
  342. +----------+---------------------------------+
  343. | *Getter* | get_emission_box_extents() |
  344. +----------+---------------------------------+
  345. The box's extents if ``emission_shape`` is set to :ref:`EMISSION_SHAPE_BOX<class_ParticlesMaterial_constant_EMISSION_SHAPE_BOX>`.
  346. ----
  347. .. _class_ParticlesMaterial_property_emission_color_texture:
  348. - :ref:`Texture<class_Texture>` **emission_color_texture**
  349. +----------+-----------------------------------+
  350. | *Setter* | set_emission_color_texture(value) |
  351. +----------+-----------------------------------+
  352. | *Getter* | get_emission_color_texture() |
  353. +----------+-----------------------------------+
  354. 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>`.
  355. ----
  356. .. _class_ParticlesMaterial_property_emission_normal_texture:
  357. - :ref:`Texture<class_Texture>` **emission_normal_texture**
  358. +----------+------------------------------------+
  359. | *Setter* | set_emission_normal_texture(value) |
  360. +----------+------------------------------------+
  361. | *Getter* | get_emission_normal_texture() |
  362. +----------+------------------------------------+
  363. 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.
  364. ----
  365. .. _class_ParticlesMaterial_property_emission_point_count:
  366. - :ref:`int<class_int>` **emission_point_count**
  367. +----------+---------------------------------+
  368. | *Setter* | set_emission_point_count(value) |
  369. +----------+---------------------------------+
  370. | *Getter* | get_emission_point_count() |
  371. +----------+---------------------------------+
  372. 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>`.
  373. ----
  374. .. _class_ParticlesMaterial_property_emission_point_texture:
  375. - :ref:`Texture<class_Texture>` **emission_point_texture**
  376. +----------+-----------------------------------+
  377. | *Setter* | set_emission_point_texture(value) |
  378. +----------+-----------------------------------+
  379. | *Getter* | get_emission_point_texture() |
  380. +----------+-----------------------------------+
  381. 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.
  382. ----
  383. .. _class_ParticlesMaterial_property_emission_shape:
  384. - :ref:`EmissionShape<enum_ParticlesMaterial_EmissionShape>` **emission_shape**
  385. +----------+---------------------------+
  386. | *Setter* | set_emission_shape(value) |
  387. +----------+---------------------------+
  388. | *Getter* | get_emission_shape() |
  389. +----------+---------------------------+
  390. Particles will be emitted inside this region. Use ``EMISSION_SHAPE_*`` constants for values. Default value: :ref:`EMISSION_SHAPE_POINT<class_ParticlesMaterial_constant_EMISSION_SHAPE_POINT>`.
  391. ----
  392. .. _class_ParticlesMaterial_property_emission_sphere_radius:
  393. - :ref:`float<class_float>` **emission_sphere_radius**
  394. +----------+-----------------------------------+
  395. | *Setter* | set_emission_sphere_radius(value) |
  396. +----------+-----------------------------------+
  397. | *Getter* | get_emission_sphere_radius() |
  398. +----------+-----------------------------------+
  399. The sphere's radius if ``emission_shape`` is set to :ref:`EMISSION_SHAPE_SPHERE<class_ParticlesMaterial_constant_EMISSION_SHAPE_SPHERE>`.
  400. ----
  401. .. _class_ParticlesMaterial_property_flag_align_y:
  402. - :ref:`bool<class_bool>` **flag_align_y**
  403. +----------+-----------------+
  404. | *Setter* | set_flag(value) |
  405. +----------+-----------------+
  406. | *Getter* | get_flag() |
  407. +----------+-----------------+
  408. Align y-axis of particle with the direction of its velocity.
  409. ----
  410. .. _class_ParticlesMaterial_property_flag_disable_z:
  411. - :ref:`bool<class_bool>` **flag_disable_z**
  412. +----------+-----------------+
  413. | *Setter* | set_flag(value) |
  414. +----------+-----------------+
  415. | *Getter* | get_flag() |
  416. +----------+-----------------+
  417. If ``true``, particles will not move on the z axis. Default value: ``true`` for :ref:`Particles2D<class_Particles2D>`, ``false`` for :ref:`Particles<class_Particles>`.
  418. ----
  419. .. _class_ParticlesMaterial_property_flag_rotate_y:
  420. - :ref:`bool<class_bool>` **flag_rotate_y**
  421. +----------+-----------------+
  422. | *Setter* | set_flag(value) |
  423. +----------+-----------------+
  424. | *Getter* | get_flag() |
  425. +----------+-----------------+
  426. If ``true``, particles rotate around y-axis by :ref:`angle<class_ParticlesMaterial_property_angle>`.
  427. ----
  428. .. _class_ParticlesMaterial_property_flatness:
  429. - :ref:`float<class_float>` **flatness**
  430. +----------+---------------------+
  431. | *Setter* | set_flatness(value) |
  432. +----------+---------------------+
  433. | *Getter* | get_flatness() |
  434. +----------+---------------------+
  435. Amount of :ref:`spread<class_ParticlesMaterial_property_spread>` in Y/Z plane. A value of ``1`` restricts particles to X/Z plane. Default ``0``.
  436. ----
  437. .. _class_ParticlesMaterial_property_gravity:
  438. - :ref:`Vector3<class_Vector3>` **gravity**
  439. +----------+--------------------+
  440. | *Setter* | set_gravity(value) |
  441. +----------+--------------------+
  442. | *Getter* | get_gravity() |
  443. +----------+--------------------+
  444. Gravity applied to every particle. Default value: ``(0, -9.8, 0)``.
  445. ----
  446. .. _class_ParticlesMaterial_property_hue_variation:
  447. - :ref:`float<class_float>` **hue_variation**
  448. +----------+------------------+
  449. | *Setter* | set_param(value) |
  450. +----------+------------------+
  451. | *Getter* | get_param() |
  452. +----------+------------------+
  453. Initial hue variation applied to each particle.
  454. ----
  455. .. _class_ParticlesMaterial_property_hue_variation_curve:
  456. - :ref:`Texture<class_Texture>` **hue_variation_curve**
  457. +----------+--------------------------+
  458. | *Setter* | set_param_texture(value) |
  459. +----------+--------------------------+
  460. | *Getter* | get_param_texture() |
  461. +----------+--------------------------+
  462. Each particle's hue will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  463. ----
  464. .. _class_ParticlesMaterial_property_hue_variation_random:
  465. - :ref:`float<class_float>` **hue_variation_random**
  466. +----------+-----------------------------+
  467. | *Setter* | set_param_randomness(value) |
  468. +----------+-----------------------------+
  469. | *Getter* | get_param_randomness() |
  470. +----------+-----------------------------+
  471. Hue variation randomness ratio. Default value: ``0``.
  472. ----
  473. .. _class_ParticlesMaterial_property_initial_velocity:
  474. - :ref:`float<class_float>` **initial_velocity**
  475. +----------+------------------+
  476. | *Setter* | set_param(value) |
  477. +----------+------------------+
  478. | *Getter* | get_param() |
  479. +----------+------------------+
  480. Initial velocity magnitude for each particle. Direction comes from :ref:`spread<class_ParticlesMaterial_property_spread>` and the node's orientation.
  481. ----
  482. .. _class_ParticlesMaterial_property_initial_velocity_random:
  483. - :ref:`float<class_float>` **initial_velocity_random**
  484. +----------+-----------------------------+
  485. | *Setter* | set_param_randomness(value) |
  486. +----------+-----------------------------+
  487. | *Getter* | get_param_randomness() |
  488. +----------+-----------------------------+
  489. Initial velocity randomness ratio. Default value: ``0``.
  490. ----
  491. .. _class_ParticlesMaterial_property_linear_accel:
  492. - :ref:`float<class_float>` **linear_accel**
  493. +----------+------------------+
  494. | *Setter* | set_param(value) |
  495. +----------+------------------+
  496. | *Getter* | get_param() |
  497. +----------+------------------+
  498. Linear acceleration applied to each particle in the direction of motion.
  499. ----
  500. .. _class_ParticlesMaterial_property_linear_accel_curve:
  501. - :ref:`Texture<class_Texture>` **linear_accel_curve**
  502. +----------+--------------------------+
  503. | *Setter* | set_param_texture(value) |
  504. +----------+--------------------------+
  505. | *Getter* | get_param_texture() |
  506. +----------+--------------------------+
  507. Each particle's linear acceleration will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  508. ----
  509. .. _class_ParticlesMaterial_property_linear_accel_random:
  510. - :ref:`float<class_float>` **linear_accel_random**
  511. +----------+-----------------------------+
  512. | *Setter* | set_param_randomness(value) |
  513. +----------+-----------------------------+
  514. | *Getter* | get_param_randomness() |
  515. +----------+-----------------------------+
  516. Linear acceleration randomness ratio. Default value: ``0``.
  517. ----
  518. .. _class_ParticlesMaterial_property_orbit_velocity:
  519. - :ref:`float<class_float>` **orbit_velocity**
  520. +----------+------------------+
  521. | *Setter* | set_param(value) |
  522. +----------+------------------+
  523. | *Getter* | get_param() |
  524. +----------+------------------+
  525. Orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second.
  526. Only available when :ref:`flag_disable_z<class_ParticlesMaterial_property_flag_disable_z>` is ``true``.
  527. ----
  528. .. _class_ParticlesMaterial_property_orbit_velocity_curve:
  529. - :ref:`Texture<class_Texture>` **orbit_velocity_curve**
  530. +----------+--------------------------+
  531. | *Setter* | set_param_texture(value) |
  532. +----------+--------------------------+
  533. | *Getter* | get_param_texture() |
  534. +----------+--------------------------+
  535. Each particle's orbital velocity will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  536. ----
  537. .. _class_ParticlesMaterial_property_orbit_velocity_random:
  538. - :ref:`float<class_float>` **orbit_velocity_random**
  539. +----------+-----------------------------+
  540. | *Setter* | set_param_randomness(value) |
  541. +----------+-----------------------------+
  542. | *Getter* | get_param_randomness() |
  543. +----------+-----------------------------+
  544. Orbital velocity randomness ratio. Default value: ``0``.
  545. ----
  546. .. _class_ParticlesMaterial_property_radial_accel:
  547. - :ref:`float<class_float>` **radial_accel**
  548. +----------+------------------+
  549. | *Setter* | set_param(value) |
  550. +----------+------------------+
  551. | *Getter* | get_param() |
  552. +----------+------------------+
  553. Radial acceleration applied to each particle. Makes particle accelerate away from origin.
  554. ----
  555. .. _class_ParticlesMaterial_property_radial_accel_curve:
  556. - :ref:`Texture<class_Texture>` **radial_accel_curve**
  557. +----------+--------------------------+
  558. | *Setter* | set_param_texture(value) |
  559. +----------+--------------------------+
  560. | *Getter* | get_param_texture() |
  561. +----------+--------------------------+
  562. Each particle's radial acceleration will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  563. ----
  564. .. _class_ParticlesMaterial_property_radial_accel_random:
  565. - :ref:`float<class_float>` **radial_accel_random**
  566. +----------+-----------------------------+
  567. | *Setter* | set_param_randomness(value) |
  568. +----------+-----------------------------+
  569. | *Getter* | get_param_randomness() |
  570. +----------+-----------------------------+
  571. Radial acceleration randomness ratio. Default value: ``0``.
  572. ----
  573. .. _class_ParticlesMaterial_property_scale:
  574. - :ref:`float<class_float>` **scale**
  575. +----------+------------------+
  576. | *Setter* | set_param(value) |
  577. +----------+------------------+
  578. | *Getter* | get_param() |
  579. +----------+------------------+
  580. Initial scale applied to each particle.
  581. ----
  582. .. _class_ParticlesMaterial_property_scale_curve:
  583. - :ref:`Texture<class_Texture>` **scale_curve**
  584. +----------+--------------------------+
  585. | *Setter* | set_param_texture(value) |
  586. +----------+--------------------------+
  587. | *Getter* | get_param_texture() |
  588. +----------+--------------------------+
  589. Each particle's scale will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  590. ----
  591. .. _class_ParticlesMaterial_property_scale_random:
  592. - :ref:`float<class_float>` **scale_random**
  593. +----------+-----------------------------+
  594. | *Setter* | set_param_randomness(value) |
  595. +----------+-----------------------------+
  596. | *Getter* | get_param_randomness() |
  597. +----------+-----------------------------+
  598. Scale randomness ratio. Default value: ``0``.
  599. ----
  600. .. _class_ParticlesMaterial_property_spread:
  601. - :ref:`float<class_float>` **spread**
  602. +----------+-------------------+
  603. | *Setter* | set_spread(value) |
  604. +----------+-------------------+
  605. | *Getter* | get_spread() |
  606. +----------+-------------------+
  607. Each particle's initial direction range from ``+spread`` to ``-spread`` degrees. Default value: ``45``. Applied to X/Z plane and Y/Z planes.
  608. ----
  609. .. _class_ParticlesMaterial_property_tangential_accel:
  610. - :ref:`float<class_float>` **tangential_accel**
  611. +----------+------------------+
  612. | *Setter* | set_param(value) |
  613. +----------+------------------+
  614. | *Getter* | get_param() |
  615. +----------+------------------+
  616. Tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion.
  617. ----
  618. .. _class_ParticlesMaterial_property_tangential_accel_curve:
  619. - :ref:`Texture<class_Texture>` **tangential_accel_curve**
  620. +----------+--------------------------+
  621. | *Setter* | set_param_texture(value) |
  622. +----------+--------------------------+
  623. | *Getter* | get_param_texture() |
  624. +----------+--------------------------+
  625. Each particle's tangential acceleration will vary along this :ref:`CurveTexture<class_CurveTexture>`.
  626. ----
  627. .. _class_ParticlesMaterial_property_tangential_accel_random:
  628. - :ref:`float<class_float>` **tangential_accel_random**
  629. +----------+-----------------------------+
  630. | *Setter* | set_param_randomness(value) |
  631. +----------+-----------------------------+
  632. | *Getter* | get_param_randomness() |
  633. +----------+-----------------------------+
  634. Tangential acceleration randomness ratio. Default value: ``0``.
  635. ----
  636. .. _class_ParticlesMaterial_property_trail_color_modifier:
  637. - :ref:`GradientTexture<class_GradientTexture>` **trail_color_modifier**
  638. +----------+---------------------------------+
  639. | *Setter* | set_trail_color_modifier(value) |
  640. +----------+---------------------------------+
  641. | *Getter* | get_trail_color_modifier() |
  642. +----------+---------------------------------+
  643. Trail particles' color will vary along this :ref:`GradientTexture<class_GradientTexture>`.
  644. ----
  645. .. _class_ParticlesMaterial_property_trail_divisor:
  646. - :ref:`int<class_int>` **trail_divisor**
  647. +----------+--------------------------+
  648. | *Setter* | set_trail_divisor(value) |
  649. +----------+--------------------------+
  650. | *Getter* | get_trail_divisor() |
  651. +----------+--------------------------+
  652. Emitter will emit ``amount`` divided by ``trail_divisor`` particles. The remaining particles will be used as trail(s).
  653. ----
  654. .. _class_ParticlesMaterial_property_trail_size_modifier:
  655. - :ref:`CurveTexture<class_CurveTexture>` **trail_size_modifier**
  656. +----------+--------------------------------+
  657. | *Setter* | set_trail_size_modifier(value) |
  658. +----------+--------------------------------+
  659. | *Getter* | get_trail_size_modifier() |
  660. +----------+--------------------------------+
  661. Trail particles' size will vary along this :ref:`CurveTexture<class_CurveTexture>`.