bullet.tscn 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626
  1. [gd_scene load_steps=57 format=3 uid="uid://jphgr3qep5"]
  2. [ext_resource type="Script" uid="uid://iybteh2g0be4" path="res://player/bullet/bullet.gd" id="1"]
  3. [ext_resource type="ArrayMesh" uid="uid://dqkkefcnt0erw" path="res://effects_shared/BlastMesh_Sphere.mesh" id="2"]
  4. [ext_resource type="AudioStream" uid="uid://c0bpunl6shvlr" path="res://player/bullet/bullet_explode.wav" id="3"]
  5. [ext_resource type="Material" uid="uid://bxjcw6j767jtn" path="res://player/bullet/effect/BlastMaterial.tres" id="4"]
  6. [ext_resource type="Material" uid="uid://d1hp4xsnvqyn8" path="res://player/bullet/effect/light_rays_material.tres" id="5"]
  7. [ext_resource type="Texture2D" uid="uid://d17qvns23fvuv" path="res://player/bullet/blue_myst.png" id="8"]
  8. [ext_resource type="Material" uid="uid://byb8a73wgvytk" path="res://player/bullet/bullet_material.tres" id="9"]
  9. [sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_peqai"]
  10. properties/0/path = NodePath(".:global_transform")
  11. properties/0/spawn = true
  12. properties/0/replication_mode = 1
  13. [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ffosa"]
  14. shading_mode = 0
  15. [sub_resource type="SphereMesh" id="SphereMesh_ku2wu"]
  16. radial_segments = 9
  17. rings = 5
  18. [sub_resource type="SphereShape3D" id="SphereShape3D_klbc5"]
  19. radius = 0.170413
  20. [sub_resource type="Animation" id="Animation_gjuvs"]
  21. length = 0.001
  22. tracks/0/type = "value"
  23. tracks/0/imported = false
  24. tracks/0/enabled = true
  25. tracks/0/path = NodePath("OmniLight3D:omni_range")
  26. tracks/0/interp = 1
  27. tracks/0/loop_wrap = true
  28. tracks/0/keys = {
  29. "times": PackedFloat32Array(0),
  30. "transitions": PackedFloat32Array(1),
  31. "update": 0,
  32. "values": [1.5]
  33. }
  34. tracks/1/type = "value"
  35. tracks/1/imported = false
  36. tracks/1/enabled = true
  37. tracks/1/path = NodePath("BulletBody/MainBody:emitting")
  38. tracks/1/interp = 1
  39. tracks/1/loop_wrap = true
  40. tracks/1/keys = {
  41. "times": PackedFloat32Array(0),
  42. "transitions": PackedFloat32Array(1),
  43. "update": 1,
  44. "values": [true]
  45. }
  46. tracks/2/type = "value"
  47. tracks/2/imported = false
  48. tracks/2/enabled = true
  49. tracks/2/path = NodePath("BulletBody/Trail:emitting")
  50. tracks/2/interp = 1
  51. tracks/2/loop_wrap = true
  52. tracks/2/keys = {
  53. "times": PackedFloat32Array(0),
  54. "transitions": PackedFloat32Array(1),
  55. "update": 1,
  56. "values": [true]
  57. }
  58. tracks/3/type = "value"
  59. tracks/3/imported = false
  60. tracks/3/enabled = true
  61. tracks/3/path = NodePath("MeshInstance3D:visible")
  62. tracks/3/interp = 1
  63. tracks/3/loop_wrap = true
  64. tracks/3/keys = {
  65. "times": PackedFloat32Array(0),
  66. "transitions": PackedFloat32Array(1),
  67. "update": 1,
  68. "values": [true]
  69. }
  70. [sub_resource type="Animation" id="Animation_8lnsf"]
  71. resource_name = "explode"
  72. length = 1.6
  73. step = 0.05
  74. tracks/0/type = "value"
  75. tracks/0/imported = false
  76. tracks/0/enabled = true
  77. tracks/0/path = NodePath("OmniLight3D:light_energy")
  78. tracks/0/interp = 1
  79. tracks/0/loop_wrap = true
  80. tracks/0/keys = {
  81. "times": PackedFloat32Array(0, 0.25, 0.7),
  82. "transitions": PackedFloat32Array(1, 1, 1),
  83. "update": 0,
  84. "values": [1.5, 3.0, 0.0]
  85. }
  86. tracks/1/type = "method"
  87. tracks/1/imported = false
  88. tracks/1/enabled = true
  89. tracks/1/path = NodePath(".")
  90. tracks/1/interp = 1
  91. tracks/1/loop_wrap = true
  92. tracks/1/keys = {
  93. "times": PackedFloat32Array(1.5),
  94. "transitions": PackedFloat32Array(1),
  95. "values": [{
  96. "args": [],
  97. "method": &"destroy"
  98. }]
  99. }
  100. tracks/2/type = "value"
  101. tracks/2/imported = false
  102. tracks/2/enabled = true
  103. tracks/2/path = NodePath("BulletBody/MainBody:emitting")
  104. tracks/2/interp = 1
  105. tracks/2/loop_wrap = true
  106. tracks/2/keys = {
  107. "times": PackedFloat32Array(0),
  108. "transitions": PackedFloat32Array(1),
  109. "update": 1,
  110. "values": [false]
  111. }
  112. tracks/3/type = "value"
  113. tracks/3/imported = false
  114. tracks/3/enabled = true
  115. tracks/3/path = NodePath("MeshInstance3D:visible")
  116. tracks/3/interp = 1
  117. tracks/3/loop_wrap = true
  118. tracks/3/keys = {
  119. "times": PackedFloat32Array(0),
  120. "transitions": PackedFloat32Array(1),
  121. "update": 1,
  122. "values": [false]
  123. }
  124. tracks/4/type = "value"
  125. tracks/4/imported = false
  126. tracks/4/enabled = true
  127. tracks/4/path = NodePath("ExplosionAudio:playing")
  128. tracks/4/interp = 1
  129. tracks/4/loop_wrap = true
  130. tracks/4/keys = {
  131. "times": PackedFloat32Array(0.01),
  132. "transitions": PackedFloat32Array(1),
  133. "update": 1,
  134. "values": [true]
  135. }
  136. tracks/5/type = "value"
  137. tracks/5/imported = false
  138. tracks/5/enabled = true
  139. tracks/5/path = NodePath("Blast/BlastParticle:emitting")
  140. tracks/5/interp = 1
  141. tracks/5/loop_wrap = false
  142. tracks/5/keys = {
  143. "times": PackedFloat32Array(0),
  144. "transitions": PackedFloat32Array(1),
  145. "update": 1,
  146. "values": [true]
  147. }
  148. tracks/6/type = "value"
  149. tracks/6/imported = false
  150. tracks/6/enabled = true
  151. tracks/6/path = NodePath("Blast/LightBlast:emitting")
  152. tracks/6/interp = 1
  153. tracks/6/loop_wrap = false
  154. tracks/6/keys = {
  155. "times": PackedFloat32Array(0),
  156. "transitions": PackedFloat32Array(1),
  157. "update": 1,
  158. "values": [true]
  159. }
  160. tracks/7/type = "value"
  161. tracks/7/imported = false
  162. tracks/7/enabled = true
  163. tracks/7/path = NodePath("Blast/BlastSparks:emitting")
  164. tracks/7/interp = 1
  165. tracks/7/loop_wrap = true
  166. tracks/7/keys = {
  167. "times": PackedFloat32Array(0),
  168. "transitions": PackedFloat32Array(1),
  169. "update": 1,
  170. "values": [true]
  171. }
  172. tracks/8/type = "value"
  173. tracks/8/imported = false
  174. tracks/8/enabled = true
  175. tracks/8/path = NodePath("Blast/Smoke:emitting")
  176. tracks/8/interp = 1
  177. tracks/8/loop_wrap = true
  178. tracks/8/keys = {
  179. "times": PackedFloat32Array(0),
  180. "transitions": PackedFloat32Array(1),
  181. "update": 1,
  182. "values": [true]
  183. }
  184. tracks/9/type = "value"
  185. tracks/9/imported = false
  186. tracks/9/enabled = true
  187. tracks/9/path = NodePath("Blast/LightParticle:emitting")
  188. tracks/9/interp = 1
  189. tracks/9/loop_wrap = true
  190. tracks/9/keys = {
  191. "times": PackedFloat32Array(0),
  192. "transitions": PackedFloat32Array(1),
  193. "update": 1,
  194. "values": [true]
  195. }
  196. tracks/10/type = "value"
  197. tracks/10/imported = false
  198. tracks/10/enabled = true
  199. tracks/10/path = NodePath("Blast/InnerBlastLight:emitting")
  200. tracks/10/interp = 1
  201. tracks/10/loop_wrap = true
  202. tracks/10/keys = {
  203. "times": PackedFloat32Array(0),
  204. "transitions": PackedFloat32Array(1),
  205. "update": 1,
  206. "values": [true]
  207. }
  208. tracks/11/type = "value"
  209. tracks/11/imported = false
  210. tracks/11/enabled = true
  211. tracks/11/path = NodePath("BulletBody/Trail:emitting")
  212. tracks/11/interp = 1
  213. tracks/11/loop_wrap = true
  214. tracks/11/keys = {
  215. "times": PackedFloat32Array(0),
  216. "transitions": PackedFloat32Array(1),
  217. "update": 1,
  218. "values": [false]
  219. }
  220. tracks/12/type = "value"
  221. tracks/12/imported = false
  222. tracks/12/enabled = true
  223. tracks/12/path = NodePath("OmniLight3D:omni_range")
  224. tracks/12/interp = 1
  225. tracks/12/loop_wrap = true
  226. tracks/12/keys = {
  227. "times": PackedFloat32Array(0, 0.85),
  228. "transitions": PackedFloat32Array(1, 1),
  229. "update": 0,
  230. "values": [3.0, 0.0]
  231. }
  232. [sub_resource type="AnimationLibrary" id="AnimationLibrary_dbep6"]
  233. _data = {
  234. &"RESET": SubResource("Animation_gjuvs"),
  235. &"explode": SubResource("Animation_8lnsf")
  236. }
  237. [sub_resource type="Gradient" id="Gradient_jp56w"]
  238. offsets = PackedFloat32Array(0, 0.318519, 1)
  239. colors = PackedColorArray(0.828125, 1, 1, 1, 0, 1, 1, 1, 0, 0.0829163, 0.964844, 0)
  240. [sub_resource type="GradientTexture2D" id="GradientTexture2D_l4fco"]
  241. gradient = SubResource("Gradient_jp56w")
  242. width = 128
  243. [sub_resource type="Curve" id="Curve_xubcd"]
  244. _data = [Vector2(0, 0), 0.0, 3.2107, 0, 0, Vector2(0.575949, 1), 1.59619e-07, 0.0, 0, 0]
  245. point_count = 2
  246. [sub_resource type="CurveTexture" id="CurveTexture_d4sff"]
  247. width = 128
  248. curve = SubResource("Curve_xubcd")
  249. [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_3pmfp"]
  250. spread = 0.0
  251. gravity = Vector3(0, 0, 0)
  252. scale_curve = SubResource("CurveTexture_d4sff")
  253. color_ramp = SubResource("GradientTexture2D_l4fco")
  254. [sub_resource type="Gradient" id="Gradient_isgtt"]
  255. offsets = PackedFloat32Array(0, 0.703704)
  256. colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
  257. [sub_resource type="GradientTexture2D" id="GradientTexture2D_ljg6h"]
  258. gradient = SubResource("Gradient_isgtt")
  259. width = 128
  260. [sub_resource type="Curve" id="Curve_7f70q"]
  261. _data = [Vector2(0, 0.236364), 0.0, 0.0, 0, 0, Vector2(0.259494, 1), 0.0, 0.0, 0, 0, Vector2(1, 0.763636), 0.0, 0.0, 0, 0]
  262. point_count = 3
  263. [sub_resource type="CurveTexture" id="CurveTexture_cypcg"]
  264. width = 128
  265. curve = SubResource("Curve_7f70q")
  266. [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_55i88"]
  267. gravity = Vector3(0, 0, 0)
  268. scale_curve = SubResource("CurveTexture_cypcg")
  269. color_ramp = SubResource("GradientTexture2D_ljg6h")
  270. [sub_resource type="QuadMesh" id="QuadMesh_bc4sa"]
  271. size = Vector2(2, 2)
  272. [sub_resource type="Shader" id="Shader_aesx1"]
  273. code = "shader_type spatial;
  274. render_mode blend_mix,depth_draw_opaque,cull_back,diffuse_burley,specular_schlick_ggx;
  275. uniform vec4 albedo : source_color;
  276. uniform sampler2D texture_albedo : source_color;
  277. uniform float point_size : hint_range(0,128);
  278. uniform float emission_energy = 2.0;
  279. void fragment() {
  280. vec2 base_uv = UV;
  281. vec4 albedo_tex = texture(texture_albedo,base_uv);
  282. albedo_tex *= COLOR;
  283. ALBEDO = albedo.rgb * albedo_tex.rgb;
  284. EMISSION = ALBEDO * emission_energy;
  285. }
  286. "
  287. [sub_resource type="ShaderMaterial" id="ShaderMaterial_a7nyu"]
  288. render_priority = 0
  289. shader = SubResource("Shader_aesx1")
  290. shader_parameter/albedo = Color(1, 1, 1, 1)
  291. shader_parameter/point_size = 1.0
  292. shader_parameter/emission_energy = 7.34
  293. [sub_resource type="Gradient" id="Gradient_d1gt1"]
  294. offsets = PackedFloat32Array(0, 0.237037, 0.859259)
  295. colors = PackedColorArray(1, 1, 1, 1, 0, 0.972656, 0.972656, 0.967582, 0.0107751, 0.00360107, 0.921875, 0.478431)
  296. [sub_resource type="GradientTexture2D" id="GradientTexture2D_gy1uy"]
  297. gradient = SubResource("Gradient_d1gt1")
  298. width = 128
  299. [sub_resource type="Curve" id="Curve_0ibll"]
  300. _data = [Vector2(0, 1), 0.0, -1.96199e-07, 0, 0, Vector2(0.848101, 0.781818), -1.30578, -1.30578, 0, 0, Vector2(1, 0.0090909), -0.0813035, 0.0, 0, 0]
  301. point_count = 3
  302. [sub_resource type="CurveTexture" id="CurveTexture_s83mf"]
  303. width = 128
  304. curve = SubResource("Curve_0ibll")
  305. [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_et6w6"]
  306. direction = Vector3(0, 1, 0)
  307. spread = 151.58
  308. gravity = Vector3(0, 0, 0)
  309. scale_curve = SubResource("CurveTexture_s83mf")
  310. color_ramp = SubResource("GradientTexture2D_gy1uy")
  311. [sub_resource type="SphereMesh" id="SphereMesh_bmjnx"]
  312. radius = 0.03
  313. height = 0.06
  314. [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1bio2"]
  315. transparency = 1
  316. shading_mode = 0
  317. vertex_color_use_as_albedo = true
  318. albedo_color = Color(0.12549, 0.627451, 1, 0.560784)
  319. albedo_texture = ExtResource("8")
  320. billboard_mode = 3
  321. billboard_keep_scale = true
  322. particles_anim_h_frames = 1
  323. particles_anim_v_frames = 1
  324. particles_anim_loop = false
  325. proximity_fade_enabled = true
  326. proximity_fade_distance = 0.25
  327. [sub_resource type="Curve" id="Curve_s4ylr"]
  328. _limits = [-1.0, 1.0, 0.0, 1.0]
  329. _data = [Vector2(0, 0.890909), 0.0, 0.0, 0, 0, Vector2(1, -0.0545454), 0.0, 0.0, 0, 0]
  330. point_count = 2
  331. [sub_resource type="CurveTexture" id="CurveTexture_160ax"]
  332. width = 128
  333. curve = SubResource("Curve_s4ylr")
  334. [sub_resource type="Gradient" id="Gradient_2kcl1"]
  335. colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0)
  336. [sub_resource type="GradientTexture1D" id="GradientTexture1D_kbdte"]
  337. gradient = SubResource("Gradient_2kcl1")
  338. [sub_resource type="Curve" id="Curve_5e7et"]
  339. _data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0]
  340. point_count = 2
  341. [sub_resource type="CurveTexture" id="CurveTexture_v5ggx"]
  342. width = 128
  343. curve = SubResource("Curve_5e7et")
  344. [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_rdv14"]
  345. emission_shape = 1
  346. emission_sphere_radius = 0.1
  347. angle_max = 360.0
  348. direction = Vector3(0, 1, 0)
  349. spread = 180.0
  350. initial_velocity_max = 2.0
  351. angular_velocity_curve = SubResource("CurveTexture_160ax")
  352. radial_velocity_min = 1.0
  353. radial_velocity_max = 1.0
  354. gravity = Vector3(0, 0, 0)
  355. scale_min = 0.01
  356. scale_max = 0.2
  357. scale_curve = SubResource("CurveTexture_v5ggx")
  358. color = Color(0.752941, 0.752941, 0.752941, 0.501961)
  359. color_ramp = SubResource("GradientTexture1D_kbdte")
  360. hue_variation_min = -0.2
  361. [sub_resource type="QuadMesh" id="QuadMesh_e01jp"]
  362. size = Vector2(2, 2)
  363. [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_g4vtw"]
  364. albedo_color = Color(0.00784314, 0.988235, 0.988235, 1)
  365. emission_enabled = true
  366. emission = Color(0, 0.486275, 1, 1)
  367. emission_energy_multiplier = 4.0
  368. [sub_resource type="Curve" id="Curve_ecfbn"]
  369. _data = [Vector2(0, 0.021978), 0.0, 0.0, 0, 0, Vector2(0.1, 1), 0.0, 0.0, 0, 0, Vector2(1, 0.021978), 0.0, 0.0, 0, 0]
  370. point_count = 3
  371. [sub_resource type="CurveTexture" id="CurveTexture_2uw6g"]
  372. width = 128
  373. curve = SubResource("Curve_ecfbn")
  374. [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_vah46"]
  375. emission_shape = 1
  376. emission_sphere_radius = 0.3
  377. direction = Vector3(0, 1, 0)
  378. spread = 180.0
  379. initial_velocity_max = 3.0
  380. gravity = Vector3(0, -9.81, 0)
  381. scale_min = 0.5
  382. scale_curve = SubResource("CurveTexture_2uw6g")
  383. collision_mode = 1
  384. collision_friction = 0.03
  385. collision_bounce = 0.6
  386. collision_use_scale = true
  387. [sub_resource type="SphereMesh" id="SphereMesh_20no5"]
  388. radius = 0.03
  389. height = 0.06
  390. radial_segments = 6
  391. rings = 3
  392. [sub_resource type="Curve" id="Curve_lados"]
  393. _data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.379747, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
  394. point_count = 3
  395. [sub_resource type="CurveTexture" id="CurveTexture_3t4rj"]
  396. width = 128
  397. curve = SubResource("Curve_lados")
  398. [sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_c0umg"]
  399. gravity = Vector3(0, 0, 0)
  400. scale_curve = SubResource("CurveTexture_3t4rj")
  401. [sub_resource type="SphereMesh" id="SphereMesh_iddid"]
  402. radius = 0.3
  403. height = 0.6
  404. [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dne7i"]
  405. transparency = 1
  406. shading_mode = 0
  407. vertex_color_use_as_albedo = true
  408. vertex_color_is_srgb = true
  409. albedo_color = Color(0.2, 1, 2, 0.00392157)
  410. [sub_resource type="SphereMesh" id="SphereMesh_pyp6s"]
  411. material = SubResource("StandardMaterial3D_dne7i")
  412. radius = 0.1
  413. height = 0.2
  414. radial_segments = 16
  415. rings = 8
  416. [sub_resource type="Curve" id="Curve_s8ihl"]
  417. _limits = [0.0, 4.0, 0.0, 1.0]
  418. _data = [Vector2(0.150987, 4), 0.0, 0.0, 0, 0, Vector2(1, 0.6936), 0.0, 0.0, 0, 0]
  419. point_count = 2
  420. [sub_resource type="SphereMesh" id="SphereMesh_o6gaf"]
  421. radius = 0.05
  422. height = 0.3
  423. radial_segments = 12
  424. rings = 6
  425. [sub_resource type="Curve" id="Curve_grwmh"]
  426. _data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.417722, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
  427. point_count = 3
  428. [node name="Bullet" type="CharacterBody3D"]
  429. transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.00535512)
  430. collision_layer = 0
  431. collision_mask = 3
  432. script = ExtResource("1")
  433. [node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."]
  434. replication_config = SubResource("SceneReplicationConfig_peqai")
  435. [node name="MeshInstance3D" type="MeshInstance3D" parent="."]
  436. transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
  437. material_override = SubResource("StandardMaterial3D_ffosa")
  438. cast_shadow = 0
  439. mesh = SubResource("SphereMesh_ku2wu")
  440. [node name="OmniLight3D" type="OmniLight3D" parent="."]
  441. light_color = Color(0.12549, 0.627451, 1, 1)
  442. light_energy = 1.5
  443. light_volumetric_fog_energy = 15000.0
  444. light_bake_mode = 0
  445. shadow_bias = 0.03
  446. shadow_blur = 2.0
  447. omni_range = 1.5
  448. omni_attenuation = 2.0
  449. [node name="CollisionShape3D" type="CollisionShape3D" parent="."]
  450. shape = SubResource("SphereShape3D_klbc5")
  451. [node name="AnimationPlayer" type="AnimationPlayer" parent="."]
  452. libraries = {
  453. "": SubResource("AnimationLibrary_dbep6")
  454. }
  455. [node name="ExplosionAudio" type="AudioStreamPlayer3D" parent="."]
  456. stream = ExtResource("3")
  457. unit_size = 20.0
  458. [node name="Blast" type="Node3D" parent="."]
  459. [node name="BlastParticle" type="GPUParticles3D" parent="Blast"]
  460. material_override = ExtResource("4")
  461. cast_shadow = 0
  462. emitting = false
  463. amount = 1
  464. lifetime = 0.6
  465. one_shot = true
  466. fixed_fps = 0
  467. process_material = SubResource("ParticleProcessMaterial_3pmfp")
  468. draw_pass_1 = ExtResource("2")
  469. [node name="LightBlast" type="GPUParticles3D" parent="Blast"]
  470. material_override = ExtResource("5")
  471. cast_shadow = 0
  472. emitting = false
  473. amount = 1
  474. lifetime = 0.15
  475. one_shot = true
  476. fixed_fps = 0
  477. process_material = SubResource("ParticleProcessMaterial_55i88")
  478. draw_pass_1 = SubResource("QuadMesh_bc4sa")
  479. [node name="BlastSparks" type="GPUParticles3D" parent="Blast"]
  480. material_override = SubResource("ShaderMaterial_a7nyu")
  481. cast_shadow = 0
  482. emitting = false
  483. amount = 10
  484. lifetime = 0.3
  485. one_shot = true
  486. explosiveness = 0.92
  487. fixed_fps = 0
  488. process_material = SubResource("ParticleProcessMaterial_et6w6")
  489. draw_pass_1 = SubResource("SphereMesh_bmjnx")
  490. [node name="Smoke" type="GPUParticles3D" parent="Blast"]
  491. material_override = SubResource("StandardMaterial3D_1bio2")
  492. cast_shadow = 0
  493. emitting = false
  494. amount = 250
  495. lifetime = 0.6
  496. one_shot = true
  497. explosiveness = 1.0
  498. fixed_fps = 0
  499. process_material = SubResource("ParticleProcessMaterial_rdv14")
  500. draw_pass_1 = SubResource("QuadMesh_e01jp")
  501. [node name="LightParticle" type="GPUParticles3D" parent="Blast"]
  502. material_override = SubResource("StandardMaterial3D_g4vtw")
  503. cast_shadow = 0
  504. emitting = false
  505. amount = 40
  506. lifetime = 1.5
  507. one_shot = true
  508. explosiveness = 0.84
  509. fixed_fps = 0
  510. collision_base_size = 0.2
  511. process_material = SubResource("ParticleProcessMaterial_vah46")
  512. draw_pass_1 = SubResource("SphereMesh_20no5")
  513. [node name="InnerBlastLight" type="GPUParticles3D" parent="Blast"]
  514. material_override = ExtResource("9")
  515. cast_shadow = 0
  516. emitting = false
  517. amount = 1
  518. lifetime = 0.2
  519. one_shot = true
  520. fixed_fps = 0
  521. process_material = SubResource("ParticleProcessMaterial_c0umg")
  522. draw_pass_1 = SubResource("SphereMesh_iddid")
  523. [node name="MeshInstance2" type="MeshInstance3D" parent="."]
  524. visible = false
  525. material_override = ExtResource("4")
  526. cast_shadow = 0
  527. mesh = ExtResource("2")
  528. [node name="BulletBody" type="Node3D" parent="."]
  529. [node name="MainBody" type="CPUParticles3D" parent="BulletBody"]
  530. cast_shadow = 0
  531. amount = 100
  532. lifetime = 0.1
  533. mesh = SubResource("SphereMesh_pyp6s")
  534. spread = 180.0
  535. gravity = Vector3(0, -1, 0)
  536. scale_amount_min = 0.3
  537. scale_amount_max = 0.3
  538. scale_amount_curve = SubResource("Curve_s8ihl")
  539. [node name="Trail" type="CPUParticles3D" parent="BulletBody"]
  540. material_override = ExtResource("9")
  541. cast_shadow = 0
  542. amount = 25
  543. lifetime = 0.3
  544. mesh = SubResource("SphereMesh_o6gaf")
  545. emission_shape = 1
  546. emission_sphere_radius = 0.1
  547. particle_flag_align_y = true
  548. direction = Vector3(0, 0, -1)
  549. spread = 0.0
  550. gravity = Vector3(0, 0, 0)
  551. initial_velocity_min = 0.01
  552. initial_velocity_max = 0.01
  553. radial_accel_min = 6.0
  554. radial_accel_max = 6.0
  555. scale_amount_min = 0.3
  556. scale_amount_curve = SubResource("Curve_grwmh")