class_cpuparticles.rst 81 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/3.6/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/3.6/doc/classes/CPUParticles.xml.
  6. .. _class_CPUParticles:
  7. CPUParticles
  8. ============
  9. **Inherits:** :ref:`GeometryInstance<class_GeometryInstance>` **<** :ref:`VisualInstance<class_VisualInstance>` **<** :ref:`CullInstance<class_CullInstance>` **<** :ref:`Spatial<class_Spatial>` **<** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  10. CPU-based 3D particle emitter.
  11. .. rst-class:: classref-introduction-group
  12. Description
  13. -----------
  14. CPU-based 3D particle node used to create a variety of particle systems and effects.
  15. See also :ref:`Particles<class_Particles>`, which provides the same functionality with hardware acceleration, but may not run on older devices.
  16. \ **Note:** Unlike :ref:`Particles<class_Particles>`, the visibility rect is generated on-the-fly and doesn't need to be configured by the user.
  17. .. rst-class:: classref-reftable-group
  18. Properties
  19. ----------
  20. .. table::
  21. :widths: auto
  22. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  23. | :ref:`int<class_int>` | :ref:`amount<class_CPUParticles_property_amount>` | ``8`` |
  24. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  25. | :ref:`float<class_float>` | :ref:`angle<class_CPUParticles_property_angle>` | ``0.0`` |
  26. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  27. | :ref:`Curve<class_Curve>` | :ref:`angle_curve<class_CPUParticles_property_angle_curve>` | |
  28. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  29. | :ref:`float<class_float>` | :ref:`angle_random<class_CPUParticles_property_angle_random>` | ``0.0`` |
  30. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  31. | :ref:`float<class_float>` | :ref:`angular_velocity<class_CPUParticles_property_angular_velocity>` | ``0.0`` |
  32. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  33. | :ref:`Curve<class_Curve>` | :ref:`angular_velocity_curve<class_CPUParticles_property_angular_velocity_curve>` | |
  34. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  35. | :ref:`float<class_float>` | :ref:`angular_velocity_random<class_CPUParticles_property_angular_velocity_random>` | ``0.0`` |
  36. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  37. | :ref:`float<class_float>` | :ref:`anim_offset<class_CPUParticles_property_anim_offset>` | ``0.0`` |
  38. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  39. | :ref:`Curve<class_Curve>` | :ref:`anim_offset_curve<class_CPUParticles_property_anim_offset_curve>` | |
  40. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  41. | :ref:`float<class_float>` | :ref:`anim_offset_random<class_CPUParticles_property_anim_offset_random>` | ``0.0`` |
  42. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  43. | :ref:`float<class_float>` | :ref:`anim_speed<class_CPUParticles_property_anim_speed>` | ``0.0`` |
  44. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  45. | :ref:`Curve<class_Curve>` | :ref:`anim_speed_curve<class_CPUParticles_property_anim_speed_curve>` | |
  46. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  47. | :ref:`float<class_float>` | :ref:`anim_speed_random<class_CPUParticles_property_anim_speed_random>` | ``0.0`` |
  48. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  49. | :ref:`Color<class_Color>` | :ref:`color<class_CPUParticles_property_color>` | ``Color( 1, 1, 1, 1 )`` |
  50. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  51. | :ref:`Gradient<class_Gradient>` | :ref:`color_initial_ramp<class_CPUParticles_property_color_initial_ramp>` | |
  52. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  53. | :ref:`Gradient<class_Gradient>` | :ref:`color_ramp<class_CPUParticles_property_color_ramp>` | |
  54. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  55. | :ref:`float<class_float>` | :ref:`damping<class_CPUParticles_property_damping>` | ``0.0`` |
  56. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  57. | :ref:`Curve<class_Curve>` | :ref:`damping_curve<class_CPUParticles_property_damping_curve>` | |
  58. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  59. | :ref:`float<class_float>` | :ref:`damping_random<class_CPUParticles_property_damping_random>` | ``0.0`` |
  60. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  61. | :ref:`Vector3<class_Vector3>` | :ref:`direction<class_CPUParticles_property_direction>` | ``Vector3( 1, 0, 0 )`` |
  62. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  63. | :ref:`DrawOrder<enum_CPUParticles_DrawOrder>` | :ref:`draw_order<class_CPUParticles_property_draw_order>` | ``0`` |
  64. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  65. | :ref:`Vector3<class_Vector3>` | :ref:`emission_box_extents<class_CPUParticles_property_emission_box_extents>` | |
  66. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  67. | :ref:`PoolColorArray<class_PoolColorArray>` | :ref:`emission_colors<class_CPUParticles_property_emission_colors>` | |
  68. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  69. | :ref:`PoolVector3Array<class_PoolVector3Array>` | :ref:`emission_normals<class_CPUParticles_property_emission_normals>` | |
  70. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  71. | :ref:`PoolVector3Array<class_PoolVector3Array>` | :ref:`emission_points<class_CPUParticles_property_emission_points>` | |
  72. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  73. | :ref:`Vector3<class_Vector3>` | :ref:`emission_ring_axis<class_CPUParticles_property_emission_ring_axis>` | |
  74. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  75. | :ref:`float<class_float>` | :ref:`emission_ring_height<class_CPUParticles_property_emission_ring_height>` | |
  76. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  77. | :ref:`float<class_float>` | :ref:`emission_ring_inner_radius<class_CPUParticles_property_emission_ring_inner_radius>` | |
  78. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  79. | :ref:`float<class_float>` | :ref:`emission_ring_radius<class_CPUParticles_property_emission_ring_radius>` | |
  80. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  81. | :ref:`EmissionShape<enum_CPUParticles_EmissionShape>` | :ref:`emission_shape<class_CPUParticles_property_emission_shape>` | ``0`` |
  82. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  83. | :ref:`float<class_float>` | :ref:`emission_sphere_radius<class_CPUParticles_property_emission_sphere_radius>` | |
  84. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  85. | :ref:`bool<class_bool>` | :ref:`emitting<class_CPUParticles_property_emitting>` | ``true`` |
  86. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  87. | :ref:`float<class_float>` | :ref:`explosiveness<class_CPUParticles_property_explosiveness>` | ``0.0`` |
  88. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  89. | :ref:`int<class_int>` | :ref:`fixed_fps<class_CPUParticles_property_fixed_fps>` | ``0`` |
  90. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  91. | :ref:`bool<class_bool>` | :ref:`flag_align_y<class_CPUParticles_property_flag_align_y>` | ``false`` |
  92. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  93. | :ref:`bool<class_bool>` | :ref:`flag_disable_z<class_CPUParticles_property_flag_disable_z>` | ``false`` |
  94. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  95. | :ref:`bool<class_bool>` | :ref:`flag_rotate_y<class_CPUParticles_property_flag_rotate_y>` | ``false`` |
  96. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  97. | :ref:`float<class_float>` | :ref:`flatness<class_CPUParticles_property_flatness>` | ``0.0`` |
  98. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  99. | :ref:`bool<class_bool>` | :ref:`fract_delta<class_CPUParticles_property_fract_delta>` | ``true`` |
  100. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  101. | :ref:`Vector3<class_Vector3>` | :ref:`gravity<class_CPUParticles_property_gravity>` | ``Vector3( 0, -9.8, 0 )`` |
  102. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  103. | :ref:`float<class_float>` | :ref:`hue_variation<class_CPUParticles_property_hue_variation>` | ``0.0`` |
  104. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  105. | :ref:`Curve<class_Curve>` | :ref:`hue_variation_curve<class_CPUParticles_property_hue_variation_curve>` | |
  106. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  107. | :ref:`float<class_float>` | :ref:`hue_variation_random<class_CPUParticles_property_hue_variation_random>` | ``0.0`` |
  108. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  109. | :ref:`float<class_float>` | :ref:`initial_velocity<class_CPUParticles_property_initial_velocity>` | ``0.0`` |
  110. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  111. | :ref:`float<class_float>` | :ref:`initial_velocity_random<class_CPUParticles_property_initial_velocity_random>` | ``0.0`` |
  112. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  113. | :ref:`float<class_float>` | :ref:`lifetime<class_CPUParticles_property_lifetime>` | ``1.0`` |
  114. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  115. | :ref:`float<class_float>` | :ref:`lifetime_randomness<class_CPUParticles_property_lifetime_randomness>` | ``0.0`` |
  116. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  117. | :ref:`float<class_float>` | :ref:`linear_accel<class_CPUParticles_property_linear_accel>` | ``0.0`` |
  118. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  119. | :ref:`Curve<class_Curve>` | :ref:`linear_accel_curve<class_CPUParticles_property_linear_accel_curve>` | |
  120. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  121. | :ref:`float<class_float>` | :ref:`linear_accel_random<class_CPUParticles_property_linear_accel_random>` | ``0.0`` |
  122. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  123. | :ref:`bool<class_bool>` | :ref:`local_coords<class_CPUParticles_property_local_coords>` | ``true`` |
  124. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  125. | :ref:`Mesh<class_Mesh>` | :ref:`mesh<class_CPUParticles_property_mesh>` | |
  126. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  127. | :ref:`bool<class_bool>` | :ref:`one_shot<class_CPUParticles_property_one_shot>` | ``false`` |
  128. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  129. | :ref:`float<class_float>` | :ref:`orbit_velocity<class_CPUParticles_property_orbit_velocity>` | |
  130. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  131. | :ref:`Curve<class_Curve>` | :ref:`orbit_velocity_curve<class_CPUParticles_property_orbit_velocity_curve>` | |
  132. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  133. | :ref:`float<class_float>` | :ref:`orbit_velocity_random<class_CPUParticles_property_orbit_velocity_random>` | |
  134. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  135. | :ref:`float<class_float>` | :ref:`preprocess<class_CPUParticles_property_preprocess>` | ``0.0`` |
  136. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  137. | :ref:`float<class_float>` | :ref:`radial_accel<class_CPUParticles_property_radial_accel>` | ``0.0`` |
  138. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  139. | :ref:`Curve<class_Curve>` | :ref:`radial_accel_curve<class_CPUParticles_property_radial_accel_curve>` | |
  140. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  141. | :ref:`float<class_float>` | :ref:`radial_accel_random<class_CPUParticles_property_radial_accel_random>` | ``0.0`` |
  142. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  143. | :ref:`float<class_float>` | :ref:`randomness<class_CPUParticles_property_randomness>` | ``0.0`` |
  144. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  145. | :ref:`float<class_float>` | :ref:`scale_amount<class_CPUParticles_property_scale_amount>` | ``1.0`` |
  146. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  147. | :ref:`Curve<class_Curve>` | :ref:`scale_amount_curve<class_CPUParticles_property_scale_amount_curve>` | |
  148. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  149. | :ref:`float<class_float>` | :ref:`scale_amount_random<class_CPUParticles_property_scale_amount_random>` | ``0.0`` |
  150. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  151. | :ref:`float<class_float>` | :ref:`speed_scale<class_CPUParticles_property_speed_scale>` | ``1.0`` |
  152. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  153. | :ref:`float<class_float>` | :ref:`spread<class_CPUParticles_property_spread>` | ``45.0`` |
  154. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  155. | :ref:`float<class_float>` | :ref:`tangential_accel<class_CPUParticles_property_tangential_accel>` | ``0.0`` |
  156. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  157. | :ref:`Curve<class_Curve>` | :ref:`tangential_accel_curve<class_CPUParticles_property_tangential_accel_curve>` | |
  158. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  159. | :ref:`float<class_float>` | :ref:`tangential_accel_random<class_CPUParticles_property_tangential_accel_random>` | ``0.0`` |
  160. +-------------------------------------------------------+-------------------------------------------------------------------------------------------+---------------------------+
  161. .. rst-class:: classref-reftable-group
  162. Methods
  163. -------
  164. .. table::
  165. :widths: auto
  166. +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  167. | void | :ref:`convert_from_particles<class_CPUParticles_method_convert_from_particles>` **(** :ref:`Node<class_Node>` particles **)** |
  168. +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  169. | :ref:`float<class_float>` | :ref:`get_param<class_CPUParticles_method_get_param>` **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const| |
  170. +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  171. | :ref:`Curve<class_Curve>` | :ref:`get_param_curve<class_CPUParticles_method_get_param_curve>` **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const| |
  172. +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  173. | :ref:`float<class_float>` | :ref:`get_param_randomness<class_CPUParticles_method_get_param_randomness>` **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const| |
  174. +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  175. | :ref:`bool<class_bool>` | :ref:`get_particle_flag<class_CPUParticles_method_get_particle_flag>` **(** :ref:`Flags<enum_CPUParticles_Flags>` flag **)** |const| |
  176. +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  177. | void | :ref:`restart<class_CPUParticles_method_restart>` **(** **)** |
  178. +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  179. | void | :ref:`set_param<class_CPUParticles_method_set_param>` **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` value **)** |
  180. +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  181. | void | :ref:`set_param_curve<class_CPUParticles_method_set_param_curve>` **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`Curve<class_Curve>` curve **)** |
  182. +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  183. | void | :ref:`set_param_randomness<class_CPUParticles_method_set_param_randomness>` **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` randomness **)** |
  184. +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  185. | void | :ref:`set_particle_flag<class_CPUParticles_method_set_particle_flag>` **(** :ref:`Flags<enum_CPUParticles_Flags>` flag, :ref:`bool<class_bool>` enable **)** |
  186. +---------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  187. .. rst-class:: classref-section-separator
  188. ----
  189. .. rst-class:: classref-descriptions-group
  190. Enumerations
  191. ------------
  192. .. _enum_CPUParticles_DrawOrder:
  193. .. rst-class:: classref-enumeration
  194. enum **DrawOrder**:
  195. .. _class_CPUParticles_constant_DRAW_ORDER_INDEX:
  196. .. rst-class:: classref-enumeration-constant
  197. :ref:`DrawOrder<enum_CPUParticles_DrawOrder>` **DRAW_ORDER_INDEX** = ``0``
  198. Particles are drawn in the order emitted.
  199. .. _class_CPUParticles_constant_DRAW_ORDER_LIFETIME:
  200. .. rst-class:: classref-enumeration-constant
  201. :ref:`DrawOrder<enum_CPUParticles_DrawOrder>` **DRAW_ORDER_LIFETIME** = ``1``
  202. Particles are drawn in order of remaining lifetime.
  203. .. _class_CPUParticles_constant_DRAW_ORDER_VIEW_DEPTH:
  204. .. rst-class:: classref-enumeration-constant
  205. :ref:`DrawOrder<enum_CPUParticles_DrawOrder>` **DRAW_ORDER_VIEW_DEPTH** = ``2``
  206. Particles are drawn in order of depth.
  207. .. rst-class:: classref-item-separator
  208. ----
  209. .. _enum_CPUParticles_Parameter:
  210. .. rst-class:: classref-enumeration
  211. enum **Parameter**:
  212. .. _class_CPUParticles_constant_PARAM_INITIAL_LINEAR_VELOCITY:
  213. .. rst-class:: classref-enumeration-constant
  214. :ref:`Parameter<enum_CPUParticles_Parameter>` **PARAM_INITIAL_LINEAR_VELOCITY** = ``0``
  215. Use with :ref:`set_param<class_CPUParticles_method_set_param>`, :ref:`set_param_randomness<class_CPUParticles_method_set_param_randomness>`, and :ref:`set_param_curve<class_CPUParticles_method_set_param_curve>` to set initial velocity properties.
  216. .. _class_CPUParticles_constant_PARAM_ANGULAR_VELOCITY:
  217. .. rst-class:: classref-enumeration-constant
  218. :ref:`Parameter<enum_CPUParticles_Parameter>` **PARAM_ANGULAR_VELOCITY** = ``1``
  219. Use with :ref:`set_param<class_CPUParticles_method_set_param>`, :ref:`set_param_randomness<class_CPUParticles_method_set_param_randomness>`, and :ref:`set_param_curve<class_CPUParticles_method_set_param_curve>` to set angular velocity properties.
  220. .. _class_CPUParticles_constant_PARAM_ORBIT_VELOCITY:
  221. .. rst-class:: classref-enumeration-constant
  222. :ref:`Parameter<enum_CPUParticles_Parameter>` **PARAM_ORBIT_VELOCITY** = ``2``
  223. Use with :ref:`set_param<class_CPUParticles_method_set_param>`, :ref:`set_param_randomness<class_CPUParticles_method_set_param_randomness>`, and :ref:`set_param_curve<class_CPUParticles_method_set_param_curve>` to set orbital velocity properties.
  224. .. _class_CPUParticles_constant_PARAM_LINEAR_ACCEL:
  225. .. rst-class:: classref-enumeration-constant
  226. :ref:`Parameter<enum_CPUParticles_Parameter>` **PARAM_LINEAR_ACCEL** = ``3``
  227. Use with :ref:`set_param<class_CPUParticles_method_set_param>`, :ref:`set_param_randomness<class_CPUParticles_method_set_param_randomness>`, and :ref:`set_param_curve<class_CPUParticles_method_set_param_curve>` to set linear acceleration properties.
  228. .. _class_CPUParticles_constant_PARAM_RADIAL_ACCEL:
  229. .. rst-class:: classref-enumeration-constant
  230. :ref:`Parameter<enum_CPUParticles_Parameter>` **PARAM_RADIAL_ACCEL** = ``4``
  231. Use with :ref:`set_param<class_CPUParticles_method_set_param>`, :ref:`set_param_randomness<class_CPUParticles_method_set_param_randomness>`, and :ref:`set_param_curve<class_CPUParticles_method_set_param_curve>` to set radial acceleration properties.
  232. .. _class_CPUParticles_constant_PARAM_TANGENTIAL_ACCEL:
  233. .. rst-class:: classref-enumeration-constant
  234. :ref:`Parameter<enum_CPUParticles_Parameter>` **PARAM_TANGENTIAL_ACCEL** = ``5``
  235. Use with :ref:`set_param<class_CPUParticles_method_set_param>`, :ref:`set_param_randomness<class_CPUParticles_method_set_param_randomness>`, and :ref:`set_param_curve<class_CPUParticles_method_set_param_curve>` to set tangential acceleration properties.
  236. .. _class_CPUParticles_constant_PARAM_DAMPING:
  237. .. rst-class:: classref-enumeration-constant
  238. :ref:`Parameter<enum_CPUParticles_Parameter>` **PARAM_DAMPING** = ``6``
  239. Use with :ref:`set_param<class_CPUParticles_method_set_param>`, :ref:`set_param_randomness<class_CPUParticles_method_set_param_randomness>`, and :ref:`set_param_curve<class_CPUParticles_method_set_param_curve>` to set damping properties.
  240. .. _class_CPUParticles_constant_PARAM_ANGLE:
  241. .. rst-class:: classref-enumeration-constant
  242. :ref:`Parameter<enum_CPUParticles_Parameter>` **PARAM_ANGLE** = ``7``
  243. Use with :ref:`set_param<class_CPUParticles_method_set_param>`, :ref:`set_param_randomness<class_CPUParticles_method_set_param_randomness>`, and :ref:`set_param_curve<class_CPUParticles_method_set_param_curve>` to set angle properties.
  244. .. _class_CPUParticles_constant_PARAM_SCALE:
  245. .. rst-class:: classref-enumeration-constant
  246. :ref:`Parameter<enum_CPUParticles_Parameter>` **PARAM_SCALE** = ``8``
  247. Use with :ref:`set_param<class_CPUParticles_method_set_param>`, :ref:`set_param_randomness<class_CPUParticles_method_set_param_randomness>`, and :ref:`set_param_curve<class_CPUParticles_method_set_param_curve>` to set scale properties.
  248. .. _class_CPUParticles_constant_PARAM_HUE_VARIATION:
  249. .. rst-class:: classref-enumeration-constant
  250. :ref:`Parameter<enum_CPUParticles_Parameter>` **PARAM_HUE_VARIATION** = ``9``
  251. Use with :ref:`set_param<class_CPUParticles_method_set_param>`, :ref:`set_param_randomness<class_CPUParticles_method_set_param_randomness>`, and :ref:`set_param_curve<class_CPUParticles_method_set_param_curve>` to set hue variation properties.
  252. .. _class_CPUParticles_constant_PARAM_ANIM_SPEED:
  253. .. rst-class:: classref-enumeration-constant
  254. :ref:`Parameter<enum_CPUParticles_Parameter>` **PARAM_ANIM_SPEED** = ``10``
  255. Use with :ref:`set_param<class_CPUParticles_method_set_param>`, :ref:`set_param_randomness<class_CPUParticles_method_set_param_randomness>`, and :ref:`set_param_curve<class_CPUParticles_method_set_param_curve>` to set animation speed properties.
  256. .. _class_CPUParticles_constant_PARAM_ANIM_OFFSET:
  257. .. rst-class:: classref-enumeration-constant
  258. :ref:`Parameter<enum_CPUParticles_Parameter>` **PARAM_ANIM_OFFSET** = ``11``
  259. Use with :ref:`set_param<class_CPUParticles_method_set_param>`, :ref:`set_param_randomness<class_CPUParticles_method_set_param_randomness>`, and :ref:`set_param_curve<class_CPUParticles_method_set_param_curve>` to set animation offset properties.
  260. .. _class_CPUParticles_constant_PARAM_MAX:
  261. .. rst-class:: classref-enumeration-constant
  262. :ref:`Parameter<enum_CPUParticles_Parameter>` **PARAM_MAX** = ``12``
  263. Represents the size of the :ref:`Parameter<enum_CPUParticles_Parameter>` enum.
  264. .. rst-class:: classref-item-separator
  265. ----
  266. .. _enum_CPUParticles_Flags:
  267. .. rst-class:: classref-enumeration
  268. enum **Flags**:
  269. .. _class_CPUParticles_constant_FLAG_ALIGN_Y_TO_VELOCITY:
  270. .. rst-class:: classref-enumeration-constant
  271. :ref:`Flags<enum_CPUParticles_Flags>` **FLAG_ALIGN_Y_TO_VELOCITY** = ``0``
  272. Use with :ref:`set_particle_flag<class_CPUParticles_method_set_particle_flag>` to set :ref:`flag_align_y<class_CPUParticles_property_flag_align_y>`.
  273. .. _class_CPUParticles_constant_FLAG_ROTATE_Y:
  274. .. rst-class:: classref-enumeration-constant
  275. :ref:`Flags<enum_CPUParticles_Flags>` **FLAG_ROTATE_Y** = ``1``
  276. Use with :ref:`set_particle_flag<class_CPUParticles_method_set_particle_flag>` to set :ref:`flag_rotate_y<class_CPUParticles_property_flag_rotate_y>`.
  277. .. _class_CPUParticles_constant_FLAG_DISABLE_Z:
  278. .. rst-class:: classref-enumeration-constant
  279. :ref:`Flags<enum_CPUParticles_Flags>` **FLAG_DISABLE_Z** = ``2``
  280. Use with :ref:`set_particle_flag<class_CPUParticles_method_set_particle_flag>` to set :ref:`flag_disable_z<class_CPUParticles_property_flag_disable_z>`.
  281. .. _class_CPUParticles_constant_FLAG_MAX:
  282. .. rst-class:: classref-enumeration-constant
  283. :ref:`Flags<enum_CPUParticles_Flags>` **FLAG_MAX** = ``3``
  284. Represents the size of the :ref:`Flags<enum_CPUParticles_Flags>` enum.
  285. .. rst-class:: classref-item-separator
  286. ----
  287. .. _enum_CPUParticles_EmissionShape:
  288. .. rst-class:: classref-enumeration
  289. enum **EmissionShape**:
  290. .. _class_CPUParticles_constant_EMISSION_SHAPE_POINT:
  291. .. rst-class:: classref-enumeration-constant
  292. :ref:`EmissionShape<enum_CPUParticles_EmissionShape>` **EMISSION_SHAPE_POINT** = ``0``
  293. All particles will be emitted from a single point.
  294. .. _class_CPUParticles_constant_EMISSION_SHAPE_SPHERE:
  295. .. rst-class:: classref-enumeration-constant
  296. :ref:`EmissionShape<enum_CPUParticles_EmissionShape>` **EMISSION_SHAPE_SPHERE** = ``1``
  297. Particles will be emitted in the volume of a sphere.
  298. .. _class_CPUParticles_constant_EMISSION_SHAPE_BOX:
  299. .. rst-class:: classref-enumeration-constant
  300. :ref:`EmissionShape<enum_CPUParticles_EmissionShape>` **EMISSION_SHAPE_BOX** = ``2``
  301. Particles will be emitted in the volume of a box.
  302. .. _class_CPUParticles_constant_EMISSION_SHAPE_POINTS:
  303. .. rst-class:: classref-enumeration-constant
  304. :ref:`EmissionShape<enum_CPUParticles_EmissionShape>` **EMISSION_SHAPE_POINTS** = ``3``
  305. Particles will be emitted at a position chosen randomly among :ref:`emission_points<class_CPUParticles_property_emission_points>`. Particle color will be modulated by :ref:`emission_colors<class_CPUParticles_property_emission_colors>`.
  306. .. _class_CPUParticles_constant_EMISSION_SHAPE_DIRECTED_POINTS:
  307. .. rst-class:: classref-enumeration-constant
  308. :ref:`EmissionShape<enum_CPUParticles_EmissionShape>` **EMISSION_SHAPE_DIRECTED_POINTS** = ``4``
  309. Particles will be emitted at a position chosen randomly among :ref:`emission_points<class_CPUParticles_property_emission_points>`. Particle velocity and rotation will be set based on :ref:`emission_normals<class_CPUParticles_property_emission_normals>`. Particle color will be modulated by :ref:`emission_colors<class_CPUParticles_property_emission_colors>`.
  310. .. _class_CPUParticles_constant_EMISSION_SHAPE_RING:
  311. .. rst-class:: classref-enumeration-constant
  312. :ref:`EmissionShape<enum_CPUParticles_EmissionShape>` **EMISSION_SHAPE_RING** = ``5``
  313. Particles will be emitted in a ring or cylinder.
  314. .. _class_CPUParticles_constant_EMISSION_SHAPE_MAX:
  315. .. rst-class:: classref-enumeration-constant
  316. :ref:`EmissionShape<enum_CPUParticles_EmissionShape>` **EMISSION_SHAPE_MAX** = ``6``
  317. Represents the size of the :ref:`EmissionShape<enum_CPUParticles_EmissionShape>` enum.
  318. .. rst-class:: classref-section-separator
  319. ----
  320. .. rst-class:: classref-descriptions-group
  321. Property Descriptions
  322. ---------------------
  323. .. _class_CPUParticles_property_amount:
  324. .. rst-class:: classref-property
  325. :ref:`int<class_int>` **amount** = ``8``
  326. .. rst-class:: classref-property-setget
  327. - void **set_amount** **(** :ref:`int<class_int>` value **)**
  328. - :ref:`int<class_int>` **get_amount** **(** **)**
  329. The number of particles emitted in one emission cycle (corresponding to the :ref:`lifetime<class_CPUParticles_property_lifetime>`).
  330. \ **Note:** Changing :ref:`amount<class_CPUParticles_property_amount>` will reset the particle emission, therefore removing all particles that were already emitted before changing :ref:`amount<class_CPUParticles_property_amount>`.
  331. .. rst-class:: classref-item-separator
  332. ----
  333. .. _class_CPUParticles_property_angle:
  334. .. rst-class:: classref-property
  335. :ref:`float<class_float>` **angle** = ``0.0``
  336. .. rst-class:: classref-property-setget
  337. - void **set_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` value **)**
  338. - :ref:`float<class_float>` **get_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  339. Initial rotation applied to each particle, in degrees.
  340. .. rst-class:: classref-item-separator
  341. ----
  342. .. _class_CPUParticles_property_angle_curve:
  343. .. rst-class:: classref-property
  344. :ref:`Curve<class_Curve>` **angle_curve**
  345. .. rst-class:: classref-property-setget
  346. - void **set_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`Curve<class_Curve>` curve **)**
  347. - :ref:`Curve<class_Curve>` **get_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  348. Each particle's rotation will be animated along this :ref:`Curve<class_Curve>`.
  349. .. rst-class:: classref-item-separator
  350. ----
  351. .. _class_CPUParticles_property_angle_random:
  352. .. rst-class:: classref-property
  353. :ref:`float<class_float>` **angle_random** = ``0.0``
  354. .. rst-class:: classref-property-setget
  355. - void **set_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` randomness **)**
  356. - :ref:`float<class_float>` **get_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  357. Rotation randomness ratio.
  358. .. rst-class:: classref-item-separator
  359. ----
  360. .. _class_CPUParticles_property_angular_velocity:
  361. .. rst-class:: classref-property
  362. :ref:`float<class_float>` **angular_velocity** = ``0.0``
  363. .. rst-class:: classref-property-setget
  364. - void **set_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` value **)**
  365. - :ref:`float<class_float>` **get_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  366. Initial angular velocity applied to each particle in *degrees* per second. Sets the speed of rotation of the particle.
  367. .. rst-class:: classref-item-separator
  368. ----
  369. .. _class_CPUParticles_property_angular_velocity_curve:
  370. .. rst-class:: classref-property
  371. :ref:`Curve<class_Curve>` **angular_velocity_curve**
  372. .. rst-class:: classref-property-setget
  373. - void **set_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`Curve<class_Curve>` curve **)**
  374. - :ref:`Curve<class_Curve>` **get_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  375. Each particle's angular velocity will vary along this :ref:`Curve<class_Curve>`.
  376. .. rst-class:: classref-item-separator
  377. ----
  378. .. _class_CPUParticles_property_angular_velocity_random:
  379. .. rst-class:: classref-property
  380. :ref:`float<class_float>` **angular_velocity_random** = ``0.0``
  381. .. rst-class:: classref-property-setget
  382. - void **set_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` randomness **)**
  383. - :ref:`float<class_float>` **get_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  384. Angular velocity randomness ratio.
  385. .. rst-class:: classref-item-separator
  386. ----
  387. .. _class_CPUParticles_property_anim_offset:
  388. .. rst-class:: classref-property
  389. :ref:`float<class_float>` **anim_offset** = ``0.0``
  390. .. rst-class:: classref-property-setget
  391. - void **set_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` value **)**
  392. - :ref:`float<class_float>` **get_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  393. Particle animation offset.
  394. .. rst-class:: classref-item-separator
  395. ----
  396. .. _class_CPUParticles_property_anim_offset_curve:
  397. .. rst-class:: classref-property
  398. :ref:`Curve<class_Curve>` **anim_offset_curve**
  399. .. rst-class:: classref-property-setget
  400. - void **set_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`Curve<class_Curve>` curve **)**
  401. - :ref:`Curve<class_Curve>` **get_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  402. Each particle's animation offset will vary along this :ref:`Curve<class_Curve>`.
  403. .. rst-class:: classref-item-separator
  404. ----
  405. .. _class_CPUParticles_property_anim_offset_random:
  406. .. rst-class:: classref-property
  407. :ref:`float<class_float>` **anim_offset_random** = ``0.0``
  408. .. rst-class:: classref-property-setget
  409. - void **set_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` randomness **)**
  410. - :ref:`float<class_float>` **get_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  411. Animation offset randomness ratio.
  412. .. rst-class:: classref-item-separator
  413. ----
  414. .. _class_CPUParticles_property_anim_speed:
  415. .. rst-class:: classref-property
  416. :ref:`float<class_float>` **anim_speed** = ``0.0``
  417. .. rst-class:: classref-property-setget
  418. - void **set_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` value **)**
  419. - :ref:`float<class_float>` **get_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  420. Particle animation speed.
  421. .. rst-class:: classref-item-separator
  422. ----
  423. .. _class_CPUParticles_property_anim_speed_curve:
  424. .. rst-class:: classref-property
  425. :ref:`Curve<class_Curve>` **anim_speed_curve**
  426. .. rst-class:: classref-property-setget
  427. - void **set_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`Curve<class_Curve>` curve **)**
  428. - :ref:`Curve<class_Curve>` **get_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  429. Each particle's animation speed will vary along this :ref:`Curve<class_Curve>`.
  430. .. rst-class:: classref-item-separator
  431. ----
  432. .. _class_CPUParticles_property_anim_speed_random:
  433. .. rst-class:: classref-property
  434. :ref:`float<class_float>` **anim_speed_random** = ``0.0``
  435. .. rst-class:: classref-property-setget
  436. - void **set_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` randomness **)**
  437. - :ref:`float<class_float>` **get_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  438. Animation speed randomness ratio.
  439. .. rst-class:: classref-item-separator
  440. ----
  441. .. _class_CPUParticles_property_color:
  442. .. rst-class:: classref-property
  443. :ref:`Color<class_Color>` **color** = ``Color( 1, 1, 1, 1 )``
  444. .. rst-class:: classref-property-setget
  445. - void **set_color** **(** :ref:`Color<class_Color>` value **)**
  446. - :ref:`Color<class_Color>` **get_color** **(** **)**
  447. Each particle's initial color.
  448. \ **Note:** :ref:`color<class_CPUParticles_property_color>` multiplies the particle mesh's vertex colors. To have a visible effect on a :ref:`Material3D<class_Material3D>`, :ref:`Material3D.vertex_color_use_as_albedo<class_Material3D_property_vertex_color_use_as_albedo>` *must* be ``true``. For a :ref:`ShaderMaterial<class_ShaderMaterial>`, ``ALBEDO *= COLOR.rgb;`` must be inserted in the shader's ``fragment()`` function. Otherwise, :ref:`color<class_CPUParticles_property_color>` will have no visible effect.
  449. .. rst-class:: classref-item-separator
  450. ----
  451. .. _class_CPUParticles_property_color_initial_ramp:
  452. .. rst-class:: classref-property
  453. :ref:`Gradient<class_Gradient>` **color_initial_ramp**
  454. .. rst-class:: classref-property-setget
  455. - void **set_color_initial_ramp** **(** :ref:`Gradient<class_Gradient>` value **)**
  456. - :ref:`Gradient<class_Gradient>` **get_color_initial_ramp** **(** **)**
  457. Each particle's initial color will vary along this :ref:`GradientTexture<class_GradientTexture>` (multiplied with :ref:`color<class_CPUParticles_property_color>`).
  458. \ **Note:** :ref:`color_initial_ramp<class_CPUParticles_property_color_initial_ramp>` multiplies the particle mesh's vertex colors. To have a visible effect on a :ref:`Material3D<class_Material3D>`, :ref:`Material3D.vertex_color_use_as_albedo<class_Material3D_property_vertex_color_use_as_albedo>` *must* be ``true``. For a :ref:`ShaderMaterial<class_ShaderMaterial>`, ``ALBEDO *= COLOR.rgb;`` must be inserted in the shader's ``fragment()`` function. Otherwise, :ref:`color_initial_ramp<class_CPUParticles_property_color_initial_ramp>` will have no visible effect.
  459. .. rst-class:: classref-item-separator
  460. ----
  461. .. _class_CPUParticles_property_color_ramp:
  462. .. rst-class:: classref-property
  463. :ref:`Gradient<class_Gradient>` **color_ramp**
  464. .. rst-class:: classref-property-setget
  465. - void **set_color_ramp** **(** :ref:`Gradient<class_Gradient>` value **)**
  466. - :ref:`Gradient<class_Gradient>` **get_color_ramp** **(** **)**
  467. Each particle's color will vary along this :ref:`GradientTexture<class_GradientTexture>` over its lifetime (multiplied with :ref:`color<class_CPUParticles_property_color>`).
  468. \ **Note:** :ref:`color_ramp<class_CPUParticles_property_color_ramp>` multiplies the particle mesh's vertex colors. To have a visible effect on a :ref:`Material3D<class_Material3D>`, :ref:`Material3D.vertex_color_use_as_albedo<class_Material3D_property_vertex_color_use_as_albedo>` *must* be ``true``. For a :ref:`ShaderMaterial<class_ShaderMaterial>`, ``ALBEDO *= COLOR.rgb;`` must be inserted in the shader's ``fragment()`` function. Otherwise, :ref:`color_ramp<class_CPUParticles_property_color_ramp>` will have no visible effect.
  469. .. rst-class:: classref-item-separator
  470. ----
  471. .. _class_CPUParticles_property_damping:
  472. .. rst-class:: classref-property
  473. :ref:`float<class_float>` **damping** = ``0.0``
  474. .. rst-class:: classref-property-setget
  475. - void **set_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` value **)**
  476. - :ref:`float<class_float>` **get_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  477. The rate at which particles lose velocity.
  478. .. rst-class:: classref-item-separator
  479. ----
  480. .. _class_CPUParticles_property_damping_curve:
  481. .. rst-class:: classref-property
  482. :ref:`Curve<class_Curve>` **damping_curve**
  483. .. rst-class:: classref-property-setget
  484. - void **set_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`Curve<class_Curve>` curve **)**
  485. - :ref:`Curve<class_Curve>` **get_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  486. Damping will vary along this :ref:`Curve<class_Curve>`.
  487. .. rst-class:: classref-item-separator
  488. ----
  489. .. _class_CPUParticles_property_damping_random:
  490. .. rst-class:: classref-property
  491. :ref:`float<class_float>` **damping_random** = ``0.0``
  492. .. rst-class:: classref-property-setget
  493. - void **set_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` randomness **)**
  494. - :ref:`float<class_float>` **get_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  495. Damping randomness ratio.
  496. .. rst-class:: classref-item-separator
  497. ----
  498. .. _class_CPUParticles_property_direction:
  499. .. rst-class:: classref-property
  500. :ref:`Vector3<class_Vector3>` **direction** = ``Vector3( 1, 0, 0 )``
  501. .. rst-class:: classref-property-setget
  502. - void **set_direction** **(** :ref:`Vector3<class_Vector3>` value **)**
  503. - :ref:`Vector3<class_Vector3>` **get_direction** **(** **)**
  504. Unit vector specifying the particles' emission direction.
  505. .. rst-class:: classref-item-separator
  506. ----
  507. .. _class_CPUParticles_property_draw_order:
  508. .. rst-class:: classref-property
  509. :ref:`DrawOrder<enum_CPUParticles_DrawOrder>` **draw_order** = ``0``
  510. .. rst-class:: classref-property-setget
  511. - void **set_draw_order** **(** :ref:`DrawOrder<enum_CPUParticles_DrawOrder>` value **)**
  512. - :ref:`DrawOrder<enum_CPUParticles_DrawOrder>` **get_draw_order** **(** **)**
  513. Particle draw order. Uses :ref:`DrawOrder<enum_CPUParticles_DrawOrder>` values.
  514. .. rst-class:: classref-item-separator
  515. ----
  516. .. _class_CPUParticles_property_emission_box_extents:
  517. .. rst-class:: classref-property
  518. :ref:`Vector3<class_Vector3>` **emission_box_extents**
  519. .. rst-class:: classref-property-setget
  520. - void **set_emission_box_extents** **(** :ref:`Vector3<class_Vector3>` value **)**
  521. - :ref:`Vector3<class_Vector3>` **get_emission_box_extents** **(** **)**
  522. The rectangle's extents if :ref:`emission_shape<class_CPUParticles_property_emission_shape>` is set to :ref:`EMISSION_SHAPE_BOX<class_CPUParticles_constant_EMISSION_SHAPE_BOX>`.
  523. .. rst-class:: classref-item-separator
  524. ----
  525. .. _class_CPUParticles_property_emission_colors:
  526. .. rst-class:: classref-property
  527. :ref:`PoolColorArray<class_PoolColorArray>` **emission_colors**
  528. .. rst-class:: classref-property-setget
  529. - void **set_emission_colors** **(** :ref:`PoolColorArray<class_PoolColorArray>` value **)**
  530. - :ref:`PoolColorArray<class_PoolColorArray>` **get_emission_colors** **(** **)**
  531. Sets the :ref:`Color<class_Color>`\ s to modulate particles by when using :ref:`EMISSION_SHAPE_POINTS<class_CPUParticles_constant_EMISSION_SHAPE_POINTS>` or :ref:`EMISSION_SHAPE_DIRECTED_POINTS<class_CPUParticles_constant_EMISSION_SHAPE_DIRECTED_POINTS>`.
  532. \ **Note:** :ref:`emission_colors<class_CPUParticles_property_emission_colors>` multiplies the particle mesh's vertex colors. To have a visible effect on a :ref:`Material3D<class_Material3D>`, :ref:`Material3D.vertex_color_use_as_albedo<class_Material3D_property_vertex_color_use_as_albedo>` *must* be ``true``. For a :ref:`ShaderMaterial<class_ShaderMaterial>`, ``ALBEDO *= COLOR.rgb;`` must be inserted in the shader's ``fragment()`` function. Otherwise, :ref:`emission_colors<class_CPUParticles_property_emission_colors>` will have no visible effect.
  533. .. rst-class:: classref-item-separator
  534. ----
  535. .. _class_CPUParticles_property_emission_normals:
  536. .. rst-class:: classref-property
  537. :ref:`PoolVector3Array<class_PoolVector3Array>` **emission_normals**
  538. .. rst-class:: classref-property-setget
  539. - void **set_emission_normals** **(** :ref:`PoolVector3Array<class_PoolVector3Array>` value **)**
  540. - :ref:`PoolVector3Array<class_PoolVector3Array>` **get_emission_normals** **(** **)**
  541. Sets the direction the particles will be emitted in when using :ref:`EMISSION_SHAPE_DIRECTED_POINTS<class_CPUParticles_constant_EMISSION_SHAPE_DIRECTED_POINTS>`.
  542. .. rst-class:: classref-item-separator
  543. ----
  544. .. _class_CPUParticles_property_emission_points:
  545. .. rst-class:: classref-property
  546. :ref:`PoolVector3Array<class_PoolVector3Array>` **emission_points**
  547. .. rst-class:: classref-property-setget
  548. - void **set_emission_points** **(** :ref:`PoolVector3Array<class_PoolVector3Array>` value **)**
  549. - :ref:`PoolVector3Array<class_PoolVector3Array>` **get_emission_points** **(** **)**
  550. Sets the initial positions to spawn particles when using :ref:`EMISSION_SHAPE_POINTS<class_CPUParticles_constant_EMISSION_SHAPE_POINTS>` or :ref:`EMISSION_SHAPE_DIRECTED_POINTS<class_CPUParticles_constant_EMISSION_SHAPE_DIRECTED_POINTS>`.
  551. .. rst-class:: classref-item-separator
  552. ----
  553. .. _class_CPUParticles_property_emission_ring_axis:
  554. .. rst-class:: classref-property
  555. :ref:`Vector3<class_Vector3>` **emission_ring_axis**
  556. .. rst-class:: classref-property-setget
  557. - void **set_emission_ring_axis** **(** :ref:`Vector3<class_Vector3>` value **)**
  558. - :ref:`Vector3<class_Vector3>` **get_emission_ring_axis** **(** **)**
  559. The axis for the ring shaped emitter when using :ref:`EMISSION_SHAPE_RING<class_CPUParticles_constant_EMISSION_SHAPE_RING>`.
  560. .. rst-class:: classref-item-separator
  561. ----
  562. .. _class_CPUParticles_property_emission_ring_height:
  563. .. rst-class:: classref-property
  564. :ref:`float<class_float>` **emission_ring_height**
  565. .. rst-class:: classref-property-setget
  566. - void **set_emission_ring_height** **(** :ref:`float<class_float>` value **)**
  567. - :ref:`float<class_float>` **get_emission_ring_height** **(** **)**
  568. The height for the ring shaped emitter when using :ref:`EMISSION_SHAPE_RING<class_CPUParticles_constant_EMISSION_SHAPE_RING>`.
  569. .. rst-class:: classref-item-separator
  570. ----
  571. .. _class_CPUParticles_property_emission_ring_inner_radius:
  572. .. rst-class:: classref-property
  573. :ref:`float<class_float>` **emission_ring_inner_radius**
  574. .. rst-class:: classref-property-setget
  575. - void **set_emission_ring_inner_radius** **(** :ref:`float<class_float>` value **)**
  576. - :ref:`float<class_float>` **get_emission_ring_inner_radius** **(** **)**
  577. The inner radius for the ring shaped emitter when using :ref:`EMISSION_SHAPE_RING<class_CPUParticles_constant_EMISSION_SHAPE_RING>`.
  578. .. rst-class:: classref-item-separator
  579. ----
  580. .. _class_CPUParticles_property_emission_ring_radius:
  581. .. rst-class:: classref-property
  582. :ref:`float<class_float>` **emission_ring_radius**
  583. .. rst-class:: classref-property-setget
  584. - void **set_emission_ring_radius** **(** :ref:`float<class_float>` value **)**
  585. - :ref:`float<class_float>` **get_emission_ring_radius** **(** **)**
  586. The radius for the ring shaped emitter when using :ref:`EMISSION_SHAPE_RING<class_CPUParticles_constant_EMISSION_SHAPE_RING>`.
  587. .. rst-class:: classref-item-separator
  588. ----
  589. .. _class_CPUParticles_property_emission_shape:
  590. .. rst-class:: classref-property
  591. :ref:`EmissionShape<enum_CPUParticles_EmissionShape>` **emission_shape** = ``0``
  592. .. rst-class:: classref-property-setget
  593. - void **set_emission_shape** **(** :ref:`EmissionShape<enum_CPUParticles_EmissionShape>` value **)**
  594. - :ref:`EmissionShape<enum_CPUParticles_EmissionShape>` **get_emission_shape** **(** **)**
  595. Particles will be emitted inside this region. See :ref:`EmissionShape<enum_CPUParticles_EmissionShape>` for possible values.
  596. .. rst-class:: classref-item-separator
  597. ----
  598. .. _class_CPUParticles_property_emission_sphere_radius:
  599. .. rst-class:: classref-property
  600. :ref:`float<class_float>` **emission_sphere_radius**
  601. .. rst-class:: classref-property-setget
  602. - void **set_emission_sphere_radius** **(** :ref:`float<class_float>` value **)**
  603. - :ref:`float<class_float>` **get_emission_sphere_radius** **(** **)**
  604. The sphere's radius if :ref:`EmissionShape<enum_CPUParticles_EmissionShape>` is set to :ref:`EMISSION_SHAPE_SPHERE<class_CPUParticles_constant_EMISSION_SHAPE_SPHERE>`.
  605. .. rst-class:: classref-item-separator
  606. ----
  607. .. _class_CPUParticles_property_emitting:
  608. .. rst-class:: classref-property
  609. :ref:`bool<class_bool>` **emitting** = ``true``
  610. .. rst-class:: classref-property-setget
  611. - void **set_emitting** **(** :ref:`bool<class_bool>` value **)**
  612. - :ref:`bool<class_bool>` **is_emitting** **(** **)**
  613. If ``true``, particles are being emitted.
  614. .. rst-class:: classref-item-separator
  615. ----
  616. .. _class_CPUParticles_property_explosiveness:
  617. .. rst-class:: classref-property
  618. :ref:`float<class_float>` **explosiveness** = ``0.0``
  619. .. rst-class:: classref-property-setget
  620. - void **set_explosiveness_ratio** **(** :ref:`float<class_float>` value **)**
  621. - :ref:`float<class_float>` **get_explosiveness_ratio** **(** **)**
  622. How rapidly particles in an emission cycle are emitted. If greater than ``0``, there will be a gap in emissions before the next cycle begins.
  623. .. rst-class:: classref-item-separator
  624. ----
  625. .. _class_CPUParticles_property_fixed_fps:
  626. .. rst-class:: classref-property
  627. :ref:`int<class_int>` **fixed_fps** = ``0``
  628. .. rst-class:: classref-property-setget
  629. - void **set_fixed_fps** **(** :ref:`int<class_int>` value **)**
  630. - :ref:`int<class_int>` **get_fixed_fps** **(** **)**
  631. The particle system's frame rate is fixed to a value. For instance, changing the value to 2 will make the particles render at 2 frames per second. Note this does not slow down the particle system itself.
  632. .. rst-class:: classref-item-separator
  633. ----
  634. .. _class_CPUParticles_property_flag_align_y:
  635. .. rst-class:: classref-property
  636. :ref:`bool<class_bool>` **flag_align_y** = ``false``
  637. .. rst-class:: classref-property-setget
  638. - void **set_particle_flag** **(** :ref:`Flags<enum_CPUParticles_Flags>` flag, :ref:`bool<class_bool>` enable **)**
  639. - :ref:`bool<class_bool>` **get_particle_flag** **(** :ref:`Flags<enum_CPUParticles_Flags>` flag **)** |const|
  640. Align Y axis of particle with the direction of its velocity.
  641. .. rst-class:: classref-item-separator
  642. ----
  643. .. _class_CPUParticles_property_flag_disable_z:
  644. .. rst-class:: classref-property
  645. :ref:`bool<class_bool>` **flag_disable_z** = ``false``
  646. .. rst-class:: classref-property-setget
  647. - void **set_particle_flag** **(** :ref:`Flags<enum_CPUParticles_Flags>` flag, :ref:`bool<class_bool>` enable **)**
  648. - :ref:`bool<class_bool>` **get_particle_flag** **(** :ref:`Flags<enum_CPUParticles_Flags>` flag **)** |const|
  649. If ``true``, particles will not move on the z axis.
  650. .. rst-class:: classref-item-separator
  651. ----
  652. .. _class_CPUParticles_property_flag_rotate_y:
  653. .. rst-class:: classref-property
  654. :ref:`bool<class_bool>` **flag_rotate_y** = ``false``
  655. .. rst-class:: classref-property-setget
  656. - void **set_particle_flag** **(** :ref:`Flags<enum_CPUParticles_Flags>` flag, :ref:`bool<class_bool>` enable **)**
  657. - :ref:`bool<class_bool>` **get_particle_flag** **(** :ref:`Flags<enum_CPUParticles_Flags>` flag **)** |const|
  658. If ``true``, particles rotate around Y axis by :ref:`angle<class_CPUParticles_property_angle>`.
  659. .. rst-class:: classref-item-separator
  660. ----
  661. .. _class_CPUParticles_property_flatness:
  662. .. rst-class:: classref-property
  663. :ref:`float<class_float>` **flatness** = ``0.0``
  664. .. rst-class:: classref-property-setget
  665. - void **set_flatness** **(** :ref:`float<class_float>` value **)**
  666. - :ref:`float<class_float>` **get_flatness** **(** **)**
  667. Amount of :ref:`spread<class_CPUParticles_property_spread>` in Y/Z plane. A value of ``1`` restricts particles to X/Z plane.
  668. .. rst-class:: classref-item-separator
  669. ----
  670. .. _class_CPUParticles_property_fract_delta:
  671. .. rst-class:: classref-property
  672. :ref:`bool<class_bool>` **fract_delta** = ``true``
  673. .. rst-class:: classref-property-setget
  674. - void **set_fractional_delta** **(** :ref:`bool<class_bool>` value **)**
  675. - :ref:`bool<class_bool>` **get_fractional_delta** **(** **)**
  676. If ``true``, results in fractional delta calculation which has a smoother particles display effect.
  677. .. rst-class:: classref-item-separator
  678. ----
  679. .. _class_CPUParticles_property_gravity:
  680. .. rst-class:: classref-property
  681. :ref:`Vector3<class_Vector3>` **gravity** = ``Vector3( 0, -9.8, 0 )``
  682. .. rst-class:: classref-property-setget
  683. - void **set_gravity** **(** :ref:`Vector3<class_Vector3>` value **)**
  684. - :ref:`Vector3<class_Vector3>` **get_gravity** **(** **)**
  685. Gravity applied to every particle.
  686. .. rst-class:: classref-item-separator
  687. ----
  688. .. _class_CPUParticles_property_hue_variation:
  689. .. rst-class:: classref-property
  690. :ref:`float<class_float>` **hue_variation** = ``0.0``
  691. .. rst-class:: classref-property-setget
  692. - void **set_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` value **)**
  693. - :ref:`float<class_float>` **get_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  694. Initial hue variation applied to each particle.
  695. .. rst-class:: classref-item-separator
  696. ----
  697. .. _class_CPUParticles_property_hue_variation_curve:
  698. .. rst-class:: classref-property
  699. :ref:`Curve<class_Curve>` **hue_variation_curve**
  700. .. rst-class:: classref-property-setget
  701. - void **set_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`Curve<class_Curve>` curve **)**
  702. - :ref:`Curve<class_Curve>` **get_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  703. Each particle's hue will vary along this :ref:`Curve<class_Curve>`.
  704. .. rst-class:: classref-item-separator
  705. ----
  706. .. _class_CPUParticles_property_hue_variation_random:
  707. .. rst-class:: classref-property
  708. :ref:`float<class_float>` **hue_variation_random** = ``0.0``
  709. .. rst-class:: classref-property-setget
  710. - void **set_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` randomness **)**
  711. - :ref:`float<class_float>` **get_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  712. Hue variation randomness ratio.
  713. .. rst-class:: classref-item-separator
  714. ----
  715. .. _class_CPUParticles_property_initial_velocity:
  716. .. rst-class:: classref-property
  717. :ref:`float<class_float>` **initial_velocity** = ``0.0``
  718. .. rst-class:: classref-property-setget
  719. - void **set_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` value **)**
  720. - :ref:`float<class_float>` **get_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  721. Initial velocity magnitude for each particle. Direction comes from :ref:`spread<class_CPUParticles_property_spread>` and the node's orientation.
  722. .. rst-class:: classref-item-separator
  723. ----
  724. .. _class_CPUParticles_property_initial_velocity_random:
  725. .. rst-class:: classref-property
  726. :ref:`float<class_float>` **initial_velocity_random** = ``0.0``
  727. .. rst-class:: classref-property-setget
  728. - void **set_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` randomness **)**
  729. - :ref:`float<class_float>` **get_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  730. Initial velocity randomness ratio.
  731. .. rst-class:: classref-item-separator
  732. ----
  733. .. _class_CPUParticles_property_lifetime:
  734. .. rst-class:: classref-property
  735. :ref:`float<class_float>` **lifetime** = ``1.0``
  736. .. rst-class:: classref-property-setget
  737. - void **set_lifetime** **(** :ref:`float<class_float>` value **)**
  738. - :ref:`float<class_float>` **get_lifetime** **(** **)**
  739. The amount of time each particle will exist (in seconds).
  740. .. rst-class:: classref-item-separator
  741. ----
  742. .. _class_CPUParticles_property_lifetime_randomness:
  743. .. rst-class:: classref-property
  744. :ref:`float<class_float>` **lifetime_randomness** = ``0.0``
  745. .. rst-class:: classref-property-setget
  746. - void **set_lifetime_randomness** **(** :ref:`float<class_float>` value **)**
  747. - :ref:`float<class_float>` **get_lifetime_randomness** **(** **)**
  748. Particle lifetime randomness ratio.
  749. .. rst-class:: classref-item-separator
  750. ----
  751. .. _class_CPUParticles_property_linear_accel:
  752. .. rst-class:: classref-property
  753. :ref:`float<class_float>` **linear_accel** = ``0.0``
  754. .. rst-class:: classref-property-setget
  755. - void **set_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` value **)**
  756. - :ref:`float<class_float>` **get_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  757. Linear acceleration applied to each particle in the direction of motion.
  758. .. rst-class:: classref-item-separator
  759. ----
  760. .. _class_CPUParticles_property_linear_accel_curve:
  761. .. rst-class:: classref-property
  762. :ref:`Curve<class_Curve>` **linear_accel_curve**
  763. .. rst-class:: classref-property-setget
  764. - void **set_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`Curve<class_Curve>` curve **)**
  765. - :ref:`Curve<class_Curve>` **get_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  766. Each particle's linear acceleration will vary along this :ref:`Curve<class_Curve>`.
  767. .. rst-class:: classref-item-separator
  768. ----
  769. .. _class_CPUParticles_property_linear_accel_random:
  770. .. rst-class:: classref-property
  771. :ref:`float<class_float>` **linear_accel_random** = ``0.0``
  772. .. rst-class:: classref-property-setget
  773. - void **set_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` randomness **)**
  774. - :ref:`float<class_float>` **get_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  775. Linear acceleration randomness ratio.
  776. .. rst-class:: classref-item-separator
  777. ----
  778. .. _class_CPUParticles_property_local_coords:
  779. .. rst-class:: classref-property
  780. :ref:`bool<class_bool>` **local_coords** = ``true``
  781. .. rst-class:: classref-property-setget
  782. - void **set_use_local_coordinates** **(** :ref:`bool<class_bool>` value **)**
  783. - :ref:`bool<class_bool>` **get_use_local_coordinates** **(** **)**
  784. If ``true``, particles use the parent node's coordinate space. If ``false``, they use global coordinates.
  785. .. rst-class:: classref-item-separator
  786. ----
  787. .. _class_CPUParticles_property_mesh:
  788. .. rst-class:: classref-property
  789. :ref:`Mesh<class_Mesh>` **mesh**
  790. .. rst-class:: classref-property-setget
  791. - void **set_mesh** **(** :ref:`Mesh<class_Mesh>` value **)**
  792. - :ref:`Mesh<class_Mesh>` **get_mesh** **(** **)**
  793. The :ref:`Mesh<class_Mesh>` used for each particle. If ``null``, particles will be spheres.
  794. .. rst-class:: classref-item-separator
  795. ----
  796. .. _class_CPUParticles_property_one_shot:
  797. .. rst-class:: classref-property
  798. :ref:`bool<class_bool>` **one_shot** = ``false``
  799. .. rst-class:: classref-property-setget
  800. - void **set_one_shot** **(** :ref:`bool<class_bool>` value **)**
  801. - :ref:`bool<class_bool>` **get_one_shot** **(** **)**
  802. If ``true``, only one emission cycle occurs. If set ``true`` during a cycle, emission will stop at the cycle's end.
  803. .. rst-class:: classref-item-separator
  804. ----
  805. .. _class_CPUParticles_property_orbit_velocity:
  806. .. rst-class:: classref-property
  807. :ref:`float<class_float>` **orbit_velocity**
  808. .. rst-class:: classref-property-setget
  809. - void **set_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` value **)**
  810. - :ref:`float<class_float>` **get_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  811. Orbital velocity applied to each particle. Makes the particles circle around origin in the local XY plane. Specified in number of full rotations around origin per second.
  812. This property is only available when :ref:`flag_disable_z<class_CPUParticles_property_flag_disable_z>` is ``true``.
  813. .. rst-class:: classref-item-separator
  814. ----
  815. .. _class_CPUParticles_property_orbit_velocity_curve:
  816. .. rst-class:: classref-property
  817. :ref:`Curve<class_Curve>` **orbit_velocity_curve**
  818. .. rst-class:: classref-property-setget
  819. - void **set_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`Curve<class_Curve>` curve **)**
  820. - :ref:`Curve<class_Curve>` **get_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  821. Each particle's orbital velocity will vary along this :ref:`Curve<class_Curve>`.
  822. .. rst-class:: classref-item-separator
  823. ----
  824. .. _class_CPUParticles_property_orbit_velocity_random:
  825. .. rst-class:: classref-property
  826. :ref:`float<class_float>` **orbit_velocity_random**
  827. .. rst-class:: classref-property-setget
  828. - void **set_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` randomness **)**
  829. - :ref:`float<class_float>` **get_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  830. Orbital velocity randomness ratio.
  831. .. rst-class:: classref-item-separator
  832. ----
  833. .. _class_CPUParticles_property_preprocess:
  834. .. rst-class:: classref-property
  835. :ref:`float<class_float>` **preprocess** = ``0.0``
  836. .. rst-class:: classref-property-setget
  837. - void **set_pre_process_time** **(** :ref:`float<class_float>` value **)**
  838. - :ref:`float<class_float>` **get_pre_process_time** **(** **)**
  839. Particle system starts as if it had already run for this many seconds.
  840. .. rst-class:: classref-item-separator
  841. ----
  842. .. _class_CPUParticles_property_radial_accel:
  843. .. rst-class:: classref-property
  844. :ref:`float<class_float>` **radial_accel** = ``0.0``
  845. .. rst-class:: classref-property-setget
  846. - void **set_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` value **)**
  847. - :ref:`float<class_float>` **get_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  848. Radial acceleration applied to each particle. Makes particle accelerate away from origin.
  849. .. rst-class:: classref-item-separator
  850. ----
  851. .. _class_CPUParticles_property_radial_accel_curve:
  852. .. rst-class:: classref-property
  853. :ref:`Curve<class_Curve>` **radial_accel_curve**
  854. .. rst-class:: classref-property-setget
  855. - void **set_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`Curve<class_Curve>` curve **)**
  856. - :ref:`Curve<class_Curve>` **get_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  857. Each particle's radial acceleration will vary along this :ref:`Curve<class_Curve>`.
  858. .. rst-class:: classref-item-separator
  859. ----
  860. .. _class_CPUParticles_property_radial_accel_random:
  861. .. rst-class:: classref-property
  862. :ref:`float<class_float>` **radial_accel_random** = ``0.0``
  863. .. rst-class:: classref-property-setget
  864. - void **set_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` randomness **)**
  865. - :ref:`float<class_float>` **get_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  866. Radial acceleration randomness ratio.
  867. .. rst-class:: classref-item-separator
  868. ----
  869. .. _class_CPUParticles_property_randomness:
  870. .. rst-class:: classref-property
  871. :ref:`float<class_float>` **randomness** = ``0.0``
  872. .. rst-class:: classref-property-setget
  873. - void **set_randomness_ratio** **(** :ref:`float<class_float>` value **)**
  874. - :ref:`float<class_float>` **get_randomness_ratio** **(** **)**
  875. Emission lifetime randomness ratio.
  876. .. rst-class:: classref-item-separator
  877. ----
  878. .. _class_CPUParticles_property_scale_amount:
  879. .. rst-class:: classref-property
  880. :ref:`float<class_float>` **scale_amount** = ``1.0``
  881. .. rst-class:: classref-property-setget
  882. - void **set_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` value **)**
  883. - :ref:`float<class_float>` **get_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  884. Initial scale applied to each particle. This can be set to a negative value to flip the particle on all axes.
  885. .. rst-class:: classref-item-separator
  886. ----
  887. .. _class_CPUParticles_property_scale_amount_curve:
  888. .. rst-class:: classref-property
  889. :ref:`Curve<class_Curve>` **scale_amount_curve**
  890. .. rst-class:: classref-property-setget
  891. - void **set_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`Curve<class_Curve>` curve **)**
  892. - :ref:`Curve<class_Curve>` **get_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  893. Each particle's scale will vary along this :ref:`Curve<class_Curve>`.
  894. .. rst-class:: classref-item-separator
  895. ----
  896. .. _class_CPUParticles_property_scale_amount_random:
  897. .. rst-class:: classref-property
  898. :ref:`float<class_float>` **scale_amount_random** = ``0.0``
  899. .. rst-class:: classref-property-setget
  900. - void **set_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` randomness **)**
  901. - :ref:`float<class_float>` **get_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  902. Scale randomness ratio.
  903. .. rst-class:: classref-item-separator
  904. ----
  905. .. _class_CPUParticles_property_speed_scale:
  906. .. rst-class:: classref-property
  907. :ref:`float<class_float>` **speed_scale** = ``1.0``
  908. .. rst-class:: classref-property-setget
  909. - void **set_speed_scale** **(** :ref:`float<class_float>` value **)**
  910. - :ref:`float<class_float>` **get_speed_scale** **(** **)**
  911. Particle system's running speed scaling ratio. A value of ``0`` can be used to pause the particles.
  912. .. rst-class:: classref-item-separator
  913. ----
  914. .. _class_CPUParticles_property_spread:
  915. .. rst-class:: classref-property
  916. :ref:`float<class_float>` **spread** = ``45.0``
  917. .. rst-class:: classref-property-setget
  918. - void **set_spread** **(** :ref:`float<class_float>` value **)**
  919. - :ref:`float<class_float>` **get_spread** **(** **)**
  920. Each particle's initial direction range from ``+spread`` to ``-spread`` degrees. Applied to X/Z plane and Y/Z planes.
  921. .. rst-class:: classref-item-separator
  922. ----
  923. .. _class_CPUParticles_property_tangential_accel:
  924. .. rst-class:: classref-property
  925. :ref:`float<class_float>` **tangential_accel** = ``0.0``
  926. .. rst-class:: classref-property-setget
  927. - void **set_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` value **)**
  928. - :ref:`float<class_float>` **get_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  929. Tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion.
  930. .. rst-class:: classref-item-separator
  931. ----
  932. .. _class_CPUParticles_property_tangential_accel_curve:
  933. .. rst-class:: classref-property
  934. :ref:`Curve<class_Curve>` **tangential_accel_curve**
  935. .. rst-class:: classref-property-setget
  936. - void **set_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`Curve<class_Curve>` curve **)**
  937. - :ref:`Curve<class_Curve>` **get_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  938. Each particle's tangential acceleration will vary along this :ref:`Curve<class_Curve>`.
  939. .. rst-class:: classref-item-separator
  940. ----
  941. .. _class_CPUParticles_property_tangential_accel_random:
  942. .. rst-class:: classref-property
  943. :ref:`float<class_float>` **tangential_accel_random** = ``0.0``
  944. .. rst-class:: classref-property-setget
  945. - void **set_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` randomness **)**
  946. - :ref:`float<class_float>` **get_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  947. Tangential acceleration randomness ratio.
  948. .. rst-class:: classref-section-separator
  949. ----
  950. .. rst-class:: classref-descriptions-group
  951. Method Descriptions
  952. -------------------
  953. .. _class_CPUParticles_method_convert_from_particles:
  954. .. rst-class:: classref-method
  955. void **convert_from_particles** **(** :ref:`Node<class_Node>` particles **)**
  956. Sets this node's properties to match a given :ref:`Particles<class_Particles>` node with an assigned :ref:`ParticlesMaterial<class_ParticlesMaterial>`.
  957. .. rst-class:: classref-item-separator
  958. ----
  959. .. _class_CPUParticles_method_get_param:
  960. .. rst-class:: classref-method
  961. :ref:`float<class_float>` **get_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  962. Returns the base value of the parameter specified by :ref:`Parameter<enum_CPUParticles_Parameter>`.
  963. .. rst-class:: classref-item-separator
  964. ----
  965. .. _class_CPUParticles_method_get_param_curve:
  966. .. rst-class:: classref-method
  967. :ref:`Curve<class_Curve>` **get_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  968. Returns the :ref:`Curve<class_Curve>` of the parameter specified by :ref:`Parameter<enum_CPUParticles_Parameter>`.
  969. .. rst-class:: classref-item-separator
  970. ----
  971. .. _class_CPUParticles_method_get_param_randomness:
  972. .. rst-class:: classref-method
  973. :ref:`float<class_float>` **get_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param **)** |const|
  974. Returns the randomness factor of the parameter specified by :ref:`Parameter<enum_CPUParticles_Parameter>`.
  975. .. rst-class:: classref-item-separator
  976. ----
  977. .. _class_CPUParticles_method_get_particle_flag:
  978. .. rst-class:: classref-method
  979. :ref:`bool<class_bool>` **get_particle_flag** **(** :ref:`Flags<enum_CPUParticles_Flags>` flag **)** |const|
  980. Returns the enabled state of the given flag (see :ref:`Flags<enum_CPUParticles_Flags>` for options).
  981. .. rst-class:: classref-item-separator
  982. ----
  983. .. _class_CPUParticles_method_restart:
  984. .. rst-class:: classref-method
  985. void **restart** **(** **)**
  986. Restarts the particle emitter.
  987. .. rst-class:: classref-item-separator
  988. ----
  989. .. _class_CPUParticles_method_set_param:
  990. .. rst-class:: classref-method
  991. void **set_param** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` value **)**
  992. Sets the base value of the parameter specified by :ref:`Parameter<enum_CPUParticles_Parameter>`.
  993. .. rst-class:: classref-item-separator
  994. ----
  995. .. _class_CPUParticles_method_set_param_curve:
  996. .. rst-class:: classref-method
  997. void **set_param_curve** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`Curve<class_Curve>` curve **)**
  998. Sets the :ref:`Curve<class_Curve>` of the parameter specified by :ref:`Parameter<enum_CPUParticles_Parameter>`.
  999. .. rst-class:: classref-item-separator
  1000. ----
  1001. .. _class_CPUParticles_method_set_param_randomness:
  1002. .. rst-class:: classref-method
  1003. void **set_param_randomness** **(** :ref:`Parameter<enum_CPUParticles_Parameter>` param, :ref:`float<class_float>` randomness **)**
  1004. Sets the randomness factor of the parameter specified by :ref:`Parameter<enum_CPUParticles_Parameter>`.
  1005. .. rst-class:: classref-item-separator
  1006. ----
  1007. .. _class_CPUParticles_method_set_particle_flag:
  1008. .. rst-class:: classref-method
  1009. void **set_particle_flag** **(** :ref:`Flags<enum_CPUParticles_Flags>` flag, :ref:`bool<class_bool>` enable **)**
  1010. Enables or disables the given flag (see :ref:`Flags<enum_CPUParticles_Flags>` for options).
  1011. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  1012. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  1013. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  1014. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`