├── .gitattributes
├── .gitignore
├── LICENSE.md
├── README.md
├── addons
└── scatterbox
│ ├── Examples
│ ├── deadTree.obj
│ ├── deadTree.obj.import
│ ├── deadTree_dead_tree_tex.png
│ ├── deadTree_dead_tree_tex.png.import
│ ├── dead_tree_tex.png
│ ├── dead_tree_tex.png.import
│ ├── exampleScene.tscn
│ ├── pineTree_bark.png
│ ├── pineTree_bark.png.import
│ ├── pineTree_leaves.png
│ ├── pineTree_leaves.png.import
│ ├── testTree.tscn
│ ├── testTree2.tscn
│ ├── tree1.obj
│ └── tree1.obj.import
│ ├── plugin.cfg
│ ├── scatterBox.gd
│ ├── scatterMesh3D.gd
│ ├── scatterScene3D.gd
│ ├── scatterbox3D.aseprite
│ ├── scatterbox3D.png
│ ├── scatterbox3D.png.import
│ └── scatterboxPlugin.gd
├── assets
├── plugin1.gif
└── plugin2.gif
└── project.godot
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Normalize EOL for all files that Git considers text files.
2 | * text=auto eol=lf
3 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Godot 4+ specific ignores
2 | .godot/
3 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2023 The_Vecter
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # SCATTERBOX
2 |
3 | ---
4 |
5 | This plugin attempts to make level design easier, making it easy to place objects/props such as
6 | trees, rocks, etc on terrain easily.
7 | It also allows you to make the props have a random rotation and scale, as well as selecting a
8 | random prop for a pool of props.
9 |
10 | Do note that the scatterMesh node requires adding a material to each mesh, and does not
11 | support multiple materials per mesh. It also requires pressing the refresh button upon changing
12 | the mesh settings.
13 |
14 | ---
15 |
16 | # How to install?
17 |
18 | Copy the contents of the addon folder into your own project's addon folder.
19 | (Or download it from the asset library if I have put it on there)
20 |
21 | ---
22 |
23 | # Features
24 |
25 | - Paint meshes onto terrain
26 | - Paint custom scenes onto terrain
27 | - these can include collisions or custom code.
28 | - Random rotations and scales to make each object slightly different
29 | - Erase functionality
30 | - Press E to quickly toggle between drawing and erasing
31 | - Automatically rotates the meshes to align with the terrain normals
32 | - Scale the draw box with the scroll wheel
33 |
34 | ---
35 |
36 | # Examples
37 |
38 |
39 |
40 |
41 |
--------------------------------------------------------------------------------
/addons/scatterbox/Examples/deadTree.obj:
--------------------------------------------------------------------------------
1 | # Blender v2.91.0 OBJ File: 'deadTree.blend'
2 | # www.blender.org
3 | mtllib deadTree.mtl
4 | o Cylinder
5 | v 0.047618 0.894881 -0.135478
6 | v 0.158014 0.050132 -0.226824
7 | v 0.107774 0.853871 -0.133342
8 | v 0.209400 0.050137 -0.166675
9 | v 0.155678 0.843758 -0.095016
10 | v 0.190088 0.050137 -0.069418
11 | v 0.160517 0.872636 -0.021867
12 | v 0.091689 0.050134 -0.036229
13 | v 0.068025 0.950373 0.046080
14 | v 0.040683 0.050134 -0.066018
15 | v 0.009424 0.050126 -0.136275
16 | v -0.000772 0.845378 0.001955
17 | v 0.057683 0.050137 -0.227916
18 | v -0.012243 0.882311 -0.092265
19 | v -0.058875 1.936764 0.005907
20 | v 0.016775 1.778084 0.019303
21 | v -0.007049 2.016592 0.097774
22 | v -0.132436 1.985762 0.094326
23 | v -0.104440 2.495130 0.066718
24 | v -0.058006 2.469356 0.095429
25 | v -0.058518 2.290397 0.156559
26 | v -0.128414 2.230376 0.153145
27 | v -0.140277 2.136721 0.069719
28 | v -0.172681 3.171305 0.117484
29 | v -0.125739 3.189363 0.134069
30 | v -0.113371 3.173908 0.175034
31 | v -0.089427 2.355050 0.172199
32 | v -0.215937 3.285626 0.175116
33 | v -0.205316 3.786201 0.200493
34 | v -0.190705 3.787237 0.231596
35 | v -0.219552 3.785172 0.245589
36 | v -0.234154 3.784020 0.209749
37 | v 0.090837 1.111048 -0.014770
38 | v -0.084445 1.508673 0.014413
39 | v 0.257836 1.201418 0.000000
40 | v 0.076638 1.126013 0.000000
41 | v 0.239379 1.222286 0.011858
42 | v 0.095872 1.105740 0.012060
43 | v 0.239807 1.213980 -0.014688
44 | v 0.369386 1.392750 0.000000
45 | v -0.068826 1.528399 0.011560
46 | v -0.144005 1.527152 -0.121291
47 | v -0.127265 1.552013 -0.116616
48 | v -0.061856 1.501403 -0.000200
49 | v -0.149702 1.544659 -0.102220
50 | v -0.200104 1.659981 -0.223156
51 | v -0.133364 2.946999 0.174756
52 | v -0.200059 2.938504 0.260057
53 | v -0.157899 2.942990 0.170042
54 | v -0.142777 2.919733 0.180125
55 | v -0.188279 2.966077 0.257778
56 | v -0.232310 3.019089 0.454809
57 | v 0.092474 1.963507 0.296974
58 | v 0.180516 2.033585 0.477294
59 | v 0.072119 1.971232 0.303577
60 | v 0.156364 2.046297 0.481296
61 | v 0.064594 1.950469 0.306609
62 | v 0.182213 2.057677 0.469221
63 | v 0.087587 1.945578 0.309758
64 | v 0.316785 2.236120 0.658749
65 | v 0.002333 1.898921 0.052828
66 | v -0.025035 1.911114 0.060180
67 | v -0.032708 1.883197 0.070834
68 | v -0.005330 1.871011 0.063507
69 | v 0.024505 0.882861 -0.024662
70 | v -0.113845 0.937005 0.023799
71 | v 0.027488 0.899415 -0.043656
72 | v -0.104738 0.959683 0.005922
73 | v 0.012028 0.873510 -0.047690
74 | v -0.094015 0.953052 0.030720
75 | v -0.199337 1.099508 0.099709
76 | v -0.150930 3.190156 0.150097
77 | v -0.111522 3.170818 0.040216
78 | v -0.130480 3.175275 0.150866
79 | v -0.155553 3.162241 0.142339
80 | v -0.109222 3.200367 0.045293
81 | v -0.064292 3.302624 -0.138861
82 | vt 0.167894 0.213404
83 | vt 0.162851 0.001817
84 | vt 0.178723 0.000000
85 | vt 0.149463 0.223232
86 | vt 0.137187 0.004752
87 | vt 0.022896 0.756589
88 | vt 0.035119 0.995467
89 | vt 0.009062 0.997487
90 | vt 0.094446 0.004729
91 | vt 0.099734 0.216654
92 | vt 0.112994 0.002674
93 | vt 0.125687 0.223651
94 | vt 0.137187 0.000000
95 | vt 0.028884 0.399139
96 | vt 0.035742 0.381383
97 | vt 0.075916 0.771008
98 | vt 0.077938 0.492844
99 | vt 0.061039 0.783361
100 | vt 0.152419 0.528715
101 | vt 0.145170 0.602742
102 | vt 0.048626 0.413597
103 | vt 0.108665 0.520406
104 | vt 0.094446 0.437930
105 | vt 0.075979 0.344059
106 | vt 0.125312 0.865922
107 | vt 0.119571 0.559540
108 | vt 0.077061 0.163555
109 | vt 0.064195 0.159958
110 | vt 0.040828 0.000000
111 | vt 0.178237 0.839287
112 | vt 0.178723 0.998788
113 | vt 0.170547 1.000000
114 | vt 0.130729 0.998506
115 | vt 0.137187 0.834058
116 | vt 0.224093 0.057420
117 | vt 0.236011 0.000000
118 | vt 0.218401 0.056127
119 | vt 0.271111 0.047642
120 | vt 0.264130 0.090211
121 | vt 0.271111 0.092171
122 | vt 0.200353 0.238414
123 | vt 0.192735 0.271258
124 | vt 0.193634 0.238389
125 | vt 0.225800 0.056018
126 | vt 0.228590 0.105041
127 | vt 0.185867 0.277254
128 | vt 0.185867 0.238389
129 | vt 0.178723 0.238545
130 | vt 0.224934 0.148188
131 | vt 0.235945 0.105191
132 | vt 0.218401 0.146043
133 | vt 0.230533 0.105080
134 | vt 0.236011 0.105191
135 | vt 0.264130 0.002776
136 | vt 0.270976 0.047642
137 | vt 0.270976 0.000000
138 | vt 0.207018 0.276687
139 | vt 0.207018 0.238389
140 | vt 0.200353 0.272334
141 | vt 0.231745 0.179884
142 | vt 0.235945 0.176661
143 | vt 0.242954 0.265803
144 | vt 0.237051 0.263592
145 | vt 0.242954 0.259120
146 | vt 0.242954 0.225346
147 | vt 0.237090 0.259120
148 | vt 0.235945 0.224340
149 | vt 0.256806 0.076735
150 | vt 0.256806 0.000000
151 | vt 0.248920 0.051835
152 | vt 0.256806 0.022790
153 | vt 0.264130 0.078290
154 | vt 0.264038 0.024096
155 | vt 0.264130 0.000000
156 | vt 0.251707 0.053380
157 | vt 0.242954 0.252380
158 | vt 0.250033 0.187931
159 | vt 0.250033 0.253942
160 | vt 0.185357 0.118270
161 | vt 0.202293 0.185305
162 | vt 0.178723 0.117032
163 | vt 0.209864 0.061145
164 | vt 0.209782 0.112732
165 | vt 0.204175 0.113665
166 | vt 0.202293 0.061461
167 | vt 0.218401 0.000000
168 | vt 0.261220 0.222663
169 | vt 0.256664 0.171625
170 | vt 0.251167 0.170706
171 | vt 0.043271 0.782980
172 | vt 0.048626 0.994419
173 | vt 0.048626 0.787236
174 | vt 0.067917 0.997144
175 | vt 0.000000 0.779074
176 | vt 0.094446 0.994626
177 | vt 0.092060 0.772830
178 | vt 0.178723 0.207113
179 | vt 0.186555 0.233484
180 | vt 0.212749 0.238389
181 | vt 0.229248 0.225378
182 | vt 0.229248 0.199041
183 | vt 0.205330 0.185305
184 | vt 0.190501 0.190427
185 | vt 0.165927 0.463408
186 | vt 0.100283 0.586701
187 | vt 0.061916 0.536700
188 | vt 0.064348 0.352039
189 | vt 0.121301 0.999858
190 | vt 0.166703 0.648122
191 | vt 0.033146 0.000046
192 | vt 0.166961 0.836445
193 | vt 0.244509 0.094338
194 | vt 0.236011 0.093787
195 | vt 0.236488 0.084672
196 | vt 0.244509 0.084059
197 | vt 0.185749 0.066131
198 | vt 0.179936 0.066782
199 | vt 0.070265 0.000147
200 | vt 0.077945 0.000000
201 | vt 0.269184 0.227621
202 | vt 0.276196 0.226875
203 | vt 0.276196 0.270389
204 | vt 0.248966 0.267510
205 | vt 0.244964 0.261448
206 | vt 0.243381 0.267510
207 | vt 0.242954 0.187931
208 | vt 0.200353 0.273031
209 | vt 0.257471 0.000993
210 | vt 0.263524 0.080410
211 | vt 0.263524 0.104429
212 | vt 0.256575 0.101942
213 | vt 0.230133 0.262935
214 | vt 0.235945 0.266068
215 | vt 0.235945 0.258407
216 | vt 0.276859 0.105191
217 | vt 0.276859 0.131629
218 | vt 0.270733 0.129079
219 | vt 0.266448 0.155896
220 | vt 0.270733 0.105191
221 | vt 0.264445 0.106850
222 | vt 0.261220 0.159161
223 | vt 0.261220 0.105191
224 | vt 0.253295 0.105619
225 | vt 0.243614 0.095491
226 | vt 0.236011 0.094338
227 | vt 0.236014 0.102296
228 | vt 0.243614 0.103451
229 | vt 0.211049 0.182932
230 | vt 0.218401 0.181317
231 | vt 0.194436 0.000000
232 | vt 0.202293 0.001126
233 | vt 0.270733 0.225671
234 | vt 0.263302 0.226875
235 | vt 0.242671 0.140777
236 | vt 0.251167 0.187931
237 | vt 0.235945 0.141597
238 | vt 0.192735 0.238389
239 | vt 0.185867 0.276219
240 | vt 0.192735 0.277325
241 | vt 0.269184 0.265471
242 | vt 0.261220 0.227758
243 | vt 0.262700 0.265174
244 | vt 0.258018 0.270301
245 | vt 0.258018 0.222663
246 | vt 0.251167 0.266854
247 | vt 0.213535 0.267639
248 | vt 0.207018 0.244803
249 | vt 0.213535 0.243283
250 | vt 0.257880 0.265662
251 | vt 0.251167 0.105191
252 | vt 0.229248 0.275897
253 | vt 0.222081 0.275542
254 | vt 0.229248 0.238389
255 | vt 0.208581 0.238389
256 | vt 0.269184 0.226875
257 | vt 0.244840 0.083379
258 | vt 0.248920 0.000000
259 | vt 0.236011 0.057630
260 | vt 0.243738 0.055707
261 | vt 0.248920 0.084059
262 | vt 0.232197 0.230091
263 | vt 0.235945 0.179884
264 | vt 0.235945 0.258407
265 | vt 0.222081 0.238389
266 | vt 0.215069 0.267370
267 | vt 0.222081 0.267927
268 | vt 0.256575 0.104429
269 | vt 0.256575 0.076735
270 | vt 0.248920 0.077529
271 | vt 0.248966 0.261448
272 | vt 0.242954 0.258452
273 | vt 0.248966 0.253942
274 | vt 0.275855 0.131629
275 | vt 0.275855 0.161589
276 | vt 0.270733 0.159770
277 | vn 0.7557 0.1095 -0.6457
278 | vn 0.9806 0.0240 0.1947
279 | vn 0.3186 -0.0780 0.9447
280 | vn -0.9106 -0.0821 0.4051
281 | vn -0.8848 0.0016 -0.4660
282 | vn 0.3835 -0.0399 0.9227
283 | vn 0.1348 0.1468 -0.9799
284 | vn 0.9311 0.0997 0.3509
285 | vn -0.1460 -0.1047 0.9837
286 | vn -0.9900 -0.1203 0.0734
287 | vn -0.5419 0.0472 -0.8391
288 | vn -0.9967 -0.0606 -0.0544
289 | vn -0.3834 0.0306 -0.9231
290 | vn 0.2966 0.1012 -0.9496
291 | vn -0.2432 -0.0718 0.9673
292 | vn 0.8904 0.1659 -0.4238
293 | vn -0.7860 0.0142 -0.6181
294 | vn 0.4812 -0.2805 -0.8305
295 | vn 0.4775 -0.8406 -0.2559
296 | vn 0.7256 -0.3808 -0.5732
297 | vn 0.2478 -0.3036 0.9200
298 | vn -0.3042 -0.9526 0.0038
299 | vn 0.3533 -0.2060 0.9125
300 | vn -0.9330 -0.3567 0.0487
301 | vn -0.3333 0.4830 -0.8097
302 | vn -0.7862 0.5860 -0.1960
303 | vn 0.6292 -0.2879 -0.7219
304 | vn -0.6272 0.5729 0.5277
305 | vn 0.4685 -0.2484 0.8478
306 | vn 0.1675 0.7474 0.6429
307 | vn 0.2822 -0.8691 0.4063
308 | vn -0.8875 0.3549 -0.2938
309 | vn -0.8595 0.3353 -0.3858
310 | vn 0.6698 0.7408 -0.0496
311 | vn -0.1783 -0.5873 0.7895
312 | vn 0.8790 -0.2060 -0.4301
313 | vn 0.1443 0.8347 -0.5315
314 | vn -0.5130 0.7762 -0.3666
315 | vn -0.8920 0.3627 0.2697
316 | vn -0.4604 -0.0959 0.8825
317 | vn 0.6359 0.1283 -0.7610
318 | vn 0.9925 0.0758 -0.0956
319 | vn 0.5773 -0.0264 0.8161
320 | vn 0.0490 0.1137 -0.9923
321 | vn -0.9936 -0.0316 0.1086
322 | vn -0.5945 0.0805 -0.8001
323 | vn 0.0000 -1.0000 0.0000
324 | vn 0.9731 0.1619 -0.1637
325 | vn -0.9826 -0.0785 -0.1686
326 | vn -0.7630 -0.1392 0.6312
327 | vn 0.5865 0.1879 -0.7879
328 | vn -0.5579 0.0524 -0.8282
329 | vn 0.5857 -0.0115 0.8104
330 | vn -0.3808 -0.1349 0.9148
331 | vn 0.5076 0.1420 -0.8498
332 | vn -0.8747 -0.0825 0.4776
333 | vn 0.9930 0.1116 -0.0376
334 | vn 0.4368 -0.0064 0.8995
335 | vn 0.9587 0.1052 -0.2644
336 | vn 0.7950 0.0367 0.6055
337 | vn -0.0736 0.9973 -0.0005
338 | vn -0.7970 0.0029 -0.6040
339 | vn 0.4415 -0.0060 0.8973
340 | vn 0.5618 0.0969 -0.8216
341 | vn 0.8979 -0.3004 -0.3217
342 | vn 0.2804 0.1430 -0.9492
343 | vn -0.3113 0.1109 -0.9438
344 | vn 0.9611 0.1430 -0.2362
345 | vn -0.9237 -0.0601 0.3783
346 | vn 0.3304 -0.4776 -0.8141
347 | vn -0.4757 0.8373 -0.2696
348 | vn -0.7887 -0.5518 0.2710
349 | vn -0.7255 -0.6883 0.0000
350 | vn -0.2497 0.3090 0.9177
351 | vn -0.1551 0.9566 0.2469
352 | vn 0.8698 0.3678 -0.3288
353 | vn -0.7032 -0.6132 -0.3599
354 | vn 0.8046 -0.1655 0.5702
355 | vn 0.2232 -0.2620 -0.9389
356 | vn -0.1008 0.9530 -0.2857
357 | vn -0.2791 -0.7750 0.5670
358 | vn -0.8953 0.3551 0.2689
359 | vn -0.3524 -0.2480 -0.9024
360 | vn -0.4573 0.8760 -0.1533
361 | vn 0.2771 0.8999 -0.3367
362 | vn 0.9012 -0.3658 -0.2326
363 | vn -0.2709 -0.8892 0.3686
364 | vn 0.0185 -0.4151 0.9096
365 | vn -0.1827 -0.8725 0.4533
366 | vn -0.5885 -0.3414 -0.7329
367 | vn -0.7959 -0.1440 -0.5881
368 | vn 0.5986 0.5550 0.5777
369 | vn 0.7631 0.6254 -0.1628
370 | vn 0.1051 -0.5005 0.8593
371 | vn 0.4310 0.9007 0.0545
372 | vn 0.8447 -0.4621 -0.2701
373 | vn -0.2232 0.2787 -0.9341
374 | vn -0.8870 -0.2278 -0.4016
375 | vn 0.9780 -0.1069 0.1792
376 | vn 0.9794 -0.1058 0.1721
377 | vn 0.4908 0.7054 0.5114
378 | vn 0.4289 -0.8967 0.1096
379 | vn -0.9089 0.2444 -0.3379
380 | vn -0.2036 -0.2307 0.9515
381 | vn 0.5546 0.7775 0.2965
382 | usemtl TreeMat
383 | s off
384 | f 5/1/1 4/2/1 2/3/1
385 | f 7/4/2 6/5/2 4/2/2
386 | f 9/6/3 8/7/3 6/8/3
387 | f 10/9/4 12/10/4 11/11/4
388 | f 14/12/5 13/13/5 11/11/5
389 | f 9/6/6 21/14/6 27/15/6
390 | f 1/16/7 15/17/7 3/18/7
391 | f 7/4/8 17/19/8 21/20/8
392 | f 9/6/9 27/15/9 22/21/9
393 | f 12/10/10 18/22/10 14/12/10
394 | f 23/23/11 19/24/11 15/17/11
395 | f 18/22/12 28/25/12 23/26/12
396 | f 23/23/13 24/27/13 19/24/13
397 | f 19/24/14 24/27/14 25/28/14
398 | f 27/15/15 31/29/15 22/21/15
399 | f 25/30/16 29/31/16 30/32/16
400 | f 28/25/17 32/33/17 24/34/17
401 | f 39/35/18 40/36/18 35/37/18
402 | f 35/38/19 38/39/19 33/40/19
403 | f 43/41/20 44/42/20 42/43/20
404 | f 37/44/21 38/45/21 35/37/21
405 | f 42/46/22 44/47/22 34/48/22
406 | f 35/37/23 40/36/23 37/44/23
407 | f 45/49/24 46/50/24 42/51/24
408 | f 39/35/25 33/52/25 36/53/25
409 | f 37/54/26 40/55/26 39/56/26
410 | f 42/57/27 46/58/27 43/59/27
411 | f 45/49/28 34/60/28 41/61/28
412 | f 34/62/29 44/63/29 41/64/29
413 | f 43/65/30 46/66/30 45/67/30
414 | f 50/68/31 52/69/31 48/70/31
415 | f 48/71/32 52/72/32 51/73/32
416 | f 51/73/33 49/74/33 48/71/33
417 | f 51/75/34 52/69/34 50/68/34
418 | f 54/76/35 60/77/35 56/78/35
419 | f 58/79/36 60/80/36 54/81/36
420 | f 58/82/37 53/83/37 55/84/37
421 | f 56/85/38 60/86/38 58/82/38
422 | f 56/87/39 55/88/39 57/89/39
423 | f 12/90/40 10/91/40 8/7/40 9/6/40
424 | f 3/18/41 5/92/41 2/93/41
425 | f 5/1/42 7/4/42 4/2/42
426 | f 7/94/43 9/6/43 6/8/43
427 | f 2/93/44 13/95/44 1/16/44 3/18/44
428 | f 11/11/45 12/10/45 14/12/45
429 | f 13/95/46 14/96/46 1/16/46
430 | f 11/97/47 13/98/47 2/99/47 4/100/47 6/101/47 8/102/47 10/103/47
431 | f 16/104/48 17/19/48 7/4/48 5/1/48
432 | f 14/12/49 18/22/49 23/26/49
433 | f 12/10/50 22/105/50 18/22/50
434 | f 15/17/51 16/106/51 5/92/51 3/18/51
435 | f 15/17/52 1/16/52 14/96/52 23/23/52
436 | f 9/6/53 7/94/53 21/14/53
437 | f 12/90/54 9/6/54 22/21/54
438 | f 19/24/55 20/107/55 16/106/55 15/17/55
439 | f 28/25/56 18/22/56 22/105/56 31/108/56
440 | f 17/19/57 16/104/57 20/109/57
441 | f 27/15/58 30/110/58 31/29/58
442 | f 25/30/59 26/111/59 17/19/59 20/109/59
443 | f 26/111/60 30/32/60 21/20/60 17/19/60
444 | f 31/112/61 30/113/61 29/114/61 32/115/61
445 | f 23/26/62 28/25/62 24/34/62
446 | f 27/15/63 21/14/63 30/110/63
447 | f 20/107/64 19/24/64 25/28/64
448 | f 53/116/65 58/79/65 54/81/65 59/117/65
449 | f 25/28/66 24/27/66 29/118/66
450 | f 24/27/67 32/119/67 29/118/67
451 | f 26/111/68 25/30/68 30/32/68
452 | f 28/25/69 31/108/69 32/33/69
453 | f 39/35/70 35/37/70 33/52/70
454 | f 37/120/71 39/121/71 36/122/71
455 | f 45/49/72 42/51/72 34/60/72
456 | f 33/123/73 38/124/73 36/125/73
457 | f 37/44/74 36/53/74 38/45/74
458 | f 43/65/75 45/67/75 41/126/75
459 | f 43/41/76 41/127/76 44/42/76
460 | f 48/71/77 49/74/77 50/128/77
461 | f 51/129/78 50/130/78 47/131/78
462 | f 49/132/79 47/133/79 50/134/79
463 | f 51/135/80 47/136/80 49/137/80
464 | f 59/138/81 54/139/81 56/140/81 57/141/81
465 | f 62/142/82 63/143/82 57/89/82 55/88/82
466 | f 63/144/83 62/145/83 61/146/83 64/147/83
467 | f 56/85/84 58/82/84 55/84/84
468 | f 62/148/85 55/84/85 53/83/85 61/149/85
469 | f 64/150/86 61/151/86 53/116/86 59/117/86
470 | f 64/152/87 59/138/87 57/141/87 63/153/87
471 | f 70/154/88 71/155/88 66/156/88
472 | f 66/157/89 69/158/89 65/159/89
473 | f 68/160/90 69/161/90 66/162/90
474 | f 66/163/91 71/164/91 68/165/91
475 | f 70/166/92 65/167/92 67/168/92
476 | f 68/165/93 71/164/93 70/169/93
477 | f 70/154/94 66/156/94 65/170/94
478 | f 68/171/95 70/172/95 67/173/95
479 | f 65/167/96 69/174/96 67/168/96
480 | f 68/160/97 67/175/97 69/161/97
481 | f 75/176/98 77/177/98 73/178/98
482 | f 73/178/99 77/177/99 76/179/99
483 | f 76/179/100 74/180/100 73/178/100
484 | f 76/181/101 77/182/101 75/183/101
485 | f 73/184/102 74/185/102 75/186/102
486 | f 76/187/103 75/188/103 72/189/103
487 | f 74/190/104 72/191/104 75/192/104
488 | f 76/193/105 72/194/105 74/195/105
489 |
--------------------------------------------------------------------------------
/addons/scatterbox/Examples/deadTree.obj.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="wavefront_obj"
4 | importer_version=1
5 | type="Mesh"
6 | uid="uid://c82e6hpg6t5kw"
7 | path="res://.godot/imported/deadTree.obj-6505e871d6ede60c84519f7d4d6ecfc9.mesh"
8 |
9 | [deps]
10 |
11 | files=["res://.godot/imported/deadTree.obj-6505e871d6ede60c84519f7d4d6ecfc9.mesh"]
12 |
13 | source_file="res://addons/scatterbox/Examples/deadTree.obj"
14 | dest_files=["res://.godot/imported/deadTree.obj-6505e871d6ede60c84519f7d4d6ecfc9.mesh", "res://.godot/imported/deadTree.obj-6505e871d6ede60c84519f7d4d6ecfc9.mesh"]
15 |
16 | [params]
17 |
18 | generate_tangents=true
19 | scale_mesh=Vector3(1, 1, 1)
20 | offset_mesh=Vector3(0, 0, 0)
21 | optimize_mesh=true
22 |
--------------------------------------------------------------------------------
/addons/scatterbox/Examples/deadTree_dead_tree_tex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The-Vector/scatterBox/bc0fdae3c939785a08b35bc34f0a19eb36aa0874/addons/scatterbox/Examples/deadTree_dead_tree_tex.png
--------------------------------------------------------------------------------
/addons/scatterbox/Examples/deadTree_dead_tree_tex.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://bac7k0dhx8nh2"
6 | path.s3tc="res://.godot/imported/deadTree_dead_tree_tex.png-99366261c9604050289b8cc0dcbaee1a.s3tc.ctex"
7 | metadata={
8 | "imported_formats": ["s3tc_bptc"],
9 | "vram_texture": true
10 | }
11 | generator_parameters={}
12 |
13 | [deps]
14 |
15 | source_file="res://addons/scatterbox/Examples/deadTree_dead_tree_tex.png"
16 | dest_files=["res://.godot/imported/deadTree_dead_tree_tex.png-99366261c9604050289b8cc0dcbaee1a.s3tc.ctex"]
17 |
18 | [params]
19 |
20 | compress/mode=2
21 | compress/high_quality=false
22 | compress/lossy_quality=0.7
23 | compress/hdr_compression=1
24 | compress/normal_map=0
25 | compress/channel_pack=0
26 | mipmaps/generate=true
27 | mipmaps/limit=-1
28 | roughness/mode=0
29 | roughness/src_normal=""
30 | process/fix_alpha_border=true
31 | process/premult_alpha=false
32 | process/normal_map_invert_y=false
33 | process/hdr_as_srgb=false
34 | process/hdr_clamp_exposure=false
35 | process/size_limit=0
36 | detect_3d/compress_to=0
37 |
--------------------------------------------------------------------------------
/addons/scatterbox/Examples/dead_tree_tex.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The-Vector/scatterBox/bc0fdae3c939785a08b35bc34f0a19eb36aa0874/addons/scatterbox/Examples/dead_tree_tex.png
--------------------------------------------------------------------------------
/addons/scatterbox/Examples/dead_tree_tex.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://bil246t4yiq8y"
6 | path.s3tc="res://.godot/imported/dead_tree_tex.png-de56540e3e8022a4c6b8751f8c03a98f.s3tc.ctex"
7 | metadata={
8 | "imported_formats": ["s3tc_bptc"],
9 | "vram_texture": true
10 | }
11 |
12 | [deps]
13 |
14 | source_file="res://addons/scatterbox/Examples/dead_tree_tex.png"
15 | dest_files=["res://.godot/imported/dead_tree_tex.png-de56540e3e8022a4c6b8751f8c03a98f.s3tc.ctex"]
16 |
17 | [params]
18 |
19 | compress/mode=2
20 | compress/high_quality=false
21 | compress/lossy_quality=0.7
22 | compress/hdr_compression=1
23 | compress/normal_map=0
24 | compress/channel_pack=0
25 | mipmaps/generate=true
26 | mipmaps/limit=-1
27 | roughness/mode=0
28 | roughness/src_normal=""
29 | process/fix_alpha_border=true
30 | process/premult_alpha=false
31 | process/normal_map_invert_y=false
32 | process/hdr_as_srgb=false
33 | process/hdr_clamp_exposure=false
34 | process/size_limit=0
35 | detect_3d/compress_to=0
36 |
--------------------------------------------------------------------------------
/addons/scatterbox/Examples/exampleScene.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=15 format=3 uid="uid://w2ad5qitrso6"]
2 |
3 | [ext_resource type="Script" path="res://addons/scatterbox/scatterScene3D.gd" id="1_25gfb"]
4 | [ext_resource type="PackedScene" uid="uid://cpdyf5361hxrn" path="res://addons/scatterbox/Examples/testTree2.tscn" id="2_k4blw"]
5 | [ext_resource type="Script" path="res://addons/scatterbox/scatterMesh3D.gd" id="3_js2b0"]
6 | [ext_resource type="ArrayMesh" uid="uid://c82e6hpg6t5kw" path="res://addons/scatterbox/Examples/deadTree.obj" id="4_6j7gc"]
7 | [ext_resource type="Texture2D" uid="uid://bil246t4yiq8y" path="res://addons/scatterbox/Examples/dead_tree_tex.png" id="5_nndih"]
8 |
9 | [sub_resource type="PlaneMesh" id="PlaneMesh_ipgsw"]
10 | size = Vector2(10, 10)
11 |
12 | [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_2gnoy"]
13 | albedo_color = Color(0.219608, 0.556863, 0.211765, 1)
14 |
15 | [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_044ut"]
16 | data = PackedVector3Array(5, 0, 5, -5, 0, 5, 5, 0, -5, -5, 0, 5, -5, 0, -5, 5, 0, -5)
17 |
18 | [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_6drcc"]
19 | data = PackedVector3Array(5, 0, 5, -5, 0, 5, 5, 0, -5, -5, 0, 5, -5, 0, -5, 5, 0, -5)
20 |
21 | [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_obt8j"]
22 |
23 | [sub_resource type="Sky" id="Sky_n44n5"]
24 | sky_material = SubResource("ProceduralSkyMaterial_obt8j")
25 |
26 | [sub_resource type="Environment" id="Environment_ts1rx"]
27 | background_mode = 2
28 | sky = SubResource("Sky_n44n5")
29 | ambient_light_color = Color(0.411765, 0.411765, 0.411765, 1)
30 |
31 | [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_kl0dw"]
32 | albedo_texture = ExtResource("5_nndih")
33 |
34 | [sub_resource type="MultiMesh" id="MultiMesh_k87d5"]
35 | transform_format = 1
36 | instance_count = 218
37 | mesh = ExtResource("4_6j7gc")
38 | buffer = PackedFloat32Array(0.75568, 0, 0, 40.3216, 0, 1.01244, 0, -8.58307e-07, 0, 0, 0.940182, 11.0601, 0.988559, 0, 0, 40.557, 0, 0.75523, 0, 0, 0, 0, 1.24529, 14.0054, 0.953425, 0, 0, 36.1972, 0, 0.922555, 0, -8.58307e-07, 0, 0, 1.00936, 17.0454, 1.19362, 0, 0, 40.675, 0, 1.16746, 0, 0, 0, 0, 1.21193, 11.3362, 0.921639, 0, 0, 37.0694, 0, 1.04694, 0, 0, 0, 0, 0.860484, 18.881, 0.87131, 0, 0, 32.8764, 0, 0.798675, 0, -8.58307e-07, 0, 0, 1.11809, 19.1169, 0.827215, 0, 0, 28.5091, 0, 1.10709, 0, 0, 0, 0, 0.963781, 12.6259, 0.799392, 0, 0, 32.1188, 0, 1.07266, 0, -8.58307e-07, 0, 0, 1.14771, 13.5322, 1.03796, 0, 0, 31.9364, 0, 1.23511, 0, -8.58307e-07, 0, 0, 0.901696, 13.4302, 1.23234, 0, 0, 26.3409, 0, 0.881015, 0, 0, 0, 0, 1.24777, 17.1039, 0.981483, 0, 0, 35.6075, 0, 0.82114, 0, -8.58307e-07, 0, 0, 1.16713, 21.4029, 0.809854, 0, 0, 30.4612, 0, 1.08131, 0, -8.58307e-07, 0, 0, 0.999071, 19.8174, 1.14412, 0, 0, 29.0548, 0, 1.1192, 0, -8.58307e-07, 0, 0, 1.0629, 24.5942, 0.944069, 0, 0, 17.6179, 0, 1.19414, 0, -8.58307e-07, 0, 0, 0.984383, 32.141, 0.892045, 0, 0, 20.6105, 0, 1.1952, 0, -8.58307e-07, 0, 0, 1.12694, 33.2034, 0.90467, 0, 0, 18.6248, 0, 1.24758, 0, -8.58307e-07, 0, 0, 0.758492, 38.8823, 0.753249, 0, 0, 19.2366, 0, 1.0759, 0, 0, 0, 0, 0.920171, 39.6342, 1.14337, 0, 0, 20.5171, 0, 1.04455, 0, -8.58307e-07, 0, 0, 0.794173, 40.3123, 0.951641, 0, 0, 18.3212, 0, 1.0638, 0, 0, 0, 0, 0.806974, 32.9151, 1.04735, 0, 0, 24.6188, 0, 0.858151, 0, -8.58307e-07, 0, 0, 1.17555, 42.4288, 0.817641, 0, 0, 15.4067, 0, 0.790261, 0, 0, 0, 0, 1.17031, 38.426, 1.23757, 0, 0, 17.1337, 0, 1.13399, 0, -8.58307e-07, 0, 0, 1.07214, 40.3452, 0.862137, 0, 0, 20.0034, 0, 0.818617, 0, -8.58307e-07, 0, 0, 0.914149, 41.0609, 0.92179, 0, 0, 19.1208, 0, 0.797771, 0, -8.58307e-07, 0, 0, 1.18557, 43.207, 1.22872, 0, 0, 15.7741, 0, 0.994668, 0, 0, 0, 0, 1.07238, 37.8322, 1.18753, 0, 0, 16.0605, 0, 0.781906, 0, 0, 0, 0, 1.05729, 39.9447, 1.0327, 0, 0, 12.4967, 0, 0.791676, 0, -8.58307e-07, 0, 0, 1.09713, 38.1601, 1.10092, 0, 0, 14.116, 0, 1.12914, 0, -8.58307e-07, 0, 0, 1.1593, 39.6665, 1.08096, 0, 0, 51.4518, 0, 1.01608, 0, 0, 0, 0, 0.919425, 17.5225, 1.24224, 0, 0, 55.9329, 0, 0.811211, 0, -8.58307e-07, 0, 0, 1.02402, 22.1003, 0.929664, 0, 0, 57.2911, 0, 1.18433, 0, -8.58307e-07, 0, 0, 1.00338, 27.2751, 0.815924, 0, 0, 58.7426, 0, 1.02966, 0, 0, 0, 0, 0.791553, 25.8955, 0.81104, 0, 0, 55.9867, 0, 0.77475, 0, -8.58307e-07, 0, 0, 0.862497, 20.6959, 0.919205, 0, 0, 62.0314, 0, 1.21634, 0, -8.58307e-07, 0, 0, 1.07116, 26.4547, 1.23955, 0, 0, 62.474, 0, 0.80061, 0, -8.58307e-07, 0, 0, 1.09344, 18.5807, 1.14029, 0, 0, 68.9106, 0, 0.905881, 0, 0, 0, 0, 1.21877, 24.7791, 1.11397, 0, 0, 65.3441, 0, 0.895957, 0, 0, 0, 0, 0.871888, 19.6961, 0.793188, 0, 0, 70.3261, 0, 0.963226, 0, 0, 0, 0, 1.13419, 26.3757, 1.19001, 0, 0, 68.0334, 0, 0.899813, 0, -8.58307e-07, 0, 0, 1.10072, 21.9065, 1.0988, 0, 0, 66.2196, 0, 1.13257, 0, 0, 0, 0, 0.816006, 22.1759, 0.756102, 0, 0, 73.9941, 0, 1.2052, 0, -8.58307e-07, 0, 0, 0.869333, 17.7658, 1.23007, 0, 0, 73.9271, 0, 1.1474, 0, -1.71661e-06, 0, 0, 0.984855, 19.1855, 1.17484, 0, 0, 69.3723, 0, 0.856468, 0, 0, 0, 0, 0.831605, 16.5315, 0.930762, 0, 0, 62.812, 0, 1.14346, 0, -8.58307e-07, 0, 0, 0.962673, 59.3707, 1.17892, 0, 0, 69.8075, 0, 1.18382, 0, 0, 0, 0, 1.01598, 53.3516, 1.16119, 0, 0, 66.9102, 0, 0.795262, 0, 0, 0, 0, 0.876299, 53.4721, 1.20957, 0, 0, 71.0543, 0, 1.08468, 0, 0, 0, 0, 0.910731, 53.8892, 0.907618, 0, 0, 67.7839, 0, 1.16049, 0, 0, 0, 0, 1.16506, 60.5612, 0.821226, 0, 0, 71.3384, 0, 1.07821, 0, -8.58307e-07, 0, 0, 1.24195, 58.5451, 0.784585, 0, 0, 68.9773, 0, 0.852107, 0, 0, 0, 0, 0.901619, 59.2799, 0.757138, 0, 0, 67.6188, 0, 1.24714, 0, 0, 0, 0, 1.24335, 62.1853, 0.930452, 0, 0, 72.5702, 0, 1.10328, 0, 0, 0, 0, 1.17905, 55.1821, 1.18102, 0, 0, 72.1432, 0, 1.0897, 0, -8.58307e-07, 0, 0, 1.0446, 54.2487, 0.750119, 0, 0, 87.9957, 0, 1.11309, 0, -8.58307e-07, 0, 0, 1.09121, 34.1215, 1.16572, 0, 0, 86.2075, 0, 0.823449, 0, -8.58307e-07, 0, 0, 0.928066, 34.7091, 0.837789, 0, 0, 87.3519, 0, 0.75676, 0, -8.58307e-07, 0, 0, 1.19788, 33.4978, 1.22471, 0, 0, 86.156, 0, 0.862769, 0, -8.58307e-07, 0, 0, 0.842446, 36.0841, 0.827995, 0, 0, 89.502, 0, 0.854656, 0, 0, 0, 0, 0.771439, 42.3781, 1.04126, 0, 0, 84.1356, 0, 1.01045, 0, -8.58307e-07, 0, 0, 0.86136, 46.0255, 0.832485, 0, 0, 82.8294, 0, 0.846794, 0, 0, 0, 0, 1.12028, 42.5764, 0.773412, 0, 0, 89.1913, 0, 0.773743, 0, -8.58307e-07, 0, 0, 1.15946, 42.2834, 0.913746, 0, 0, 85.9122, 0, 1.13719, 0, -8.58307e-07, 0, 0, 0.982302, 50.7378, 0.762704, 0, 0, 52.3261, 0, 1.13399, 0, -8.58307e-07, 0, 0, 1.16032, 54.8046, 0.827245, 0, 0, 58.0433, 0, 1.02561, 0, -8.58307e-07, 0, 0, 1.02637, 55.8463, 0.842504, 0, 0, 51.5582, 0, 0.922685, 0, 0, 0, 0, 1.16708, 55.4663, 0.827279, 0, 0, 57.8028, 0, 1.04507, 0, -8.58307e-07, 0, 0, 1.0111, 58.4005, 1.10306, 0, 0, 52.2013, 0, 1.19991, 0, -8.58307e-07, 0, 0, 1.20994, 59.1975, 1.04508, 0, 0, 51.295, 0, 1.22567, 0, -8.58307e-07, 0, 0, 1.07329, 57.8346, 0.648716, -0.992209, 0, 104.258, 0.874942, 0.572046, 0, 7.95313, 0, 0, 1.00796, 46.0613, 0.613959, -0.939049, 0, 103.621, 0.636004, 0.415826, 0, 6.97886, 0, 0, 1.1032, 46.2888, 0.640073, -0.978989, 0, 104.306, 0.792315, 0.518023, 0, 8.02761, 0, 0, 0.818327, 38.0426, 0.536948, -0.82126, 0, 105.136, 0.63055, 0.41226, 0, 9.2959, 0, 0, 0.803416, 40.2689, 0.485195, -0.742104, 0, 106.835, 0.966881, 0.632156, 0, 11.8946, 0, 0, 1.01396, 41.6837, 0.557371, -0.852497, 0, 104.646, 1.01653, 0.664618, 0, 8.54668, 0, 0, 0.980618, 43.2234, 0.49437, -0.756137, 0, 109.284, 0.90431, 0.591247, 0, 15.641, 0, 0, 0.889836, 44.1166, 0.641404, -0.981025, 0, 110.305, 1.02746, 0.671762, 0, 17.2029, 0, 0, 0.947211, 40.9937, 0.55112, -0.842936, 0, 111.132, 0.973967, 0.636789, 0, 18.4668, 0, 0, 1.07476, 42.2515, 0.608934, -0.931362, 0, 115.193, 0.836377, 0.546831, 0, 24.6784, 0, 0, 1.04585, 41.4019, 0.445346, -0.681155, 0, 114.795, 1.0244, 0.669761, 0, 24.0698, 0, 0, 1.01419, 45.09, 0.448101, -0.685368, 0, 109.783, 0.832132, 0.544056, 0, 16.4048, 0, 0, 1.23876, 47.0881, 0.496707, -0.759711, 0, 112.482, 0.652611, 0.426684, 0, 20.5328, 0, 0, 1.2086, 27.5508, 0.448337, -0.685731, 0, 109.257, 0.660525, 0.431858, 0, 15.6003, 0, 0, 1.0011, 28.9312, 0.458667, -0.70153, 0, 115.717, 0.949991, 0.621113, 0, 25.4808, 0, 0, 1.10504, 18.9625, 0.679305, -1.03899, 0, 117.299, 0.792648, 0.518241, 0, 27.8993, 0, 0, 0.88281, 20.4734, 0.643844, -0.984758, 0, 113.752, 0.910599, 0.595358, 0, 22.475, 0, 0, 1.0311, 25.6428, 0.465096, -0.711363, 0, 109.665, 0.906135, 0.59244, 0, 16.2244, 0, 0, 0.972902, 23.4538, 0.656829, -1.00462, 0, 111.652, 0.951206, 0.621908, 0, 19.2624, 0, 0, 0.898186, 4.42402, 0.681422, -1.04223, 0, 114.699, 1.03828, 0.678837, 0, 23.9239, 0, 0, 1.19766, 1.82554, 0.469732, -0.718454, 0, 109.627, 0.869611, 0.56856, 0, 16.1653, 0, 0, 0.832307, -1.97023, 0.412981, -0.631653, 0, 114.486, 0.923081, 0.603519, 0, 23.598, 0, 0, 0.896955, 2.68104, 0.578971, -0.885534, 0, 114.221, 0.692296, 0.45263, 0, 23.1926, 0, 0, 0.789557, 2.46854, 0.561113, -0.85822, 0, 113.438, 0.736357, 0.481437, 0, 21.9942, 0, 0, 1.12313, -1.0662, 0.529502, -0.809871, 0, 113.783, 0.837295, 0.547432, 0, 22.5222, 0, 0, 1.10397, -5.17534, 0.58998, -0.902372, 0, 111.184, 0.846898, 0.55371, 0, 18.5462, 0, 0, 1.06413, -3.37509, 0.617698, -0.944767, 0, 108.626, 0.828552, 0.541716, 0, 14.6344, 0, 0, 1.05025, 0.951796, 0.496451, -0.75932, 0, 110.949, 0.833832, 0.545168, 0, 18.1868, 0, 0, 0.83777, -4.45832, 0.644332, -0.985503, 0, 113.058, 1.00179, 0.654979, 0, 21.4137, 0, 0, 1.05382, -2.74343, 0.449264, -0.687147, 0, 110.444, 1.00712, 0.658467, 0, 17.4146, 0, 0, 0.987464, 3.0238, 0.587581, -0.898702, 0, 108.072, 0.868244, 0.567667, 0, 13.7867, 0, 0, 1.07594, -4.29628, 0.603458, -0.922986, 0, 107.773, 0.698203, 0.456492, 0, 13.3298, 0, 0, 1.05835, -4.42119, 0.563602, -0.862027, 0, 105.653, 0.89731, 0.58667, 0, 10.0868, 0, 0, 1.00475, 0.0158938, 0.411499, -0.629386, 0, 110.92, 0.963265, 0.629792, 0, 18.1433, 0, 0, 0.943393, -1.65394, 0.460176, -0.703838, 0, 126.944, 0.948129, 0.619896, 0, 42.6518, 0, 0, 1.17026, 22.0048, 0.650823, -0.995431, 0, 123.205, 0.935145, 0.611407, 0, 36.9336, 0, 0, 0.859148, 21.2784, 0.461224, -0.70544, 0, 127.495, 0.656126, 0.428982, 0, 43.4951, 0, 0, 0.957564, 20.9757, 0.437566, -0.669255, 0, 121.389, 0.79454, 0.519478, 0, 34.1553, 0, 0, 0.858256, 21.7799, 0.495979, -0.758598, 0, 122.923, 0.895813, 0.585691, 0, 36.5012, 0, 0, 1.01143, 20.4947, 0.526398, -0.805123, 0, 119.43, 0.798231, 0.521891, 0, 31.1593, 0, 0, 0.845566, 23.3185, 0.448385, -0.685803, 0, 120.887, 0.743313, 0.485985, 0, 33.387, 0, 0, 1.21163, 21.645, 0.579682, -0.886621, 0, 128.026, 0.967663, 0.632667, 0, 44.3067, 0, 0, 1.19283, 22.6279, 0.557613, -0.852868, 0, 124.195, 0.895982, 0.585802, 0, 38.4475, 0, 0, 1.18295, 17.9932, 1.19115, 0, 0, 76.0921, 0, 1.07736, 0, 0, 0, 0, 0.927524, 63.4392, 0.8401, 0, 0, 77.8633, 0, 0.987461, 0, 0, 0, 0, 1.16275, 71.8919, 0.845692, 0, 0, 78.9499, 0, 1.11315, 0, -8.58307e-07, 0, 0, 0.92581, 69.0477, 0.843626, 0, 0, 75.4584, 0, 0.934316, 0, -8.58307e-07, 0, 0, 1.08809, 65.9155, 0.760777, 0, 0, 74.8185, 0, 1.20893, 0, -8.58307e-07, 0, 0, 0.925693, 72.6465, 1.22317, 0, 0, 79.5827, 0, 0.942731, 0, 0, 0, 0, 1.04116, 72.2286, 1.09731, 0, 0, 30.8367, 0, 1.11827, 0, 0, 0, 0, 1.19447, 65.4951, 0.98896, 0, 0, 35.984, 0, 0.820056, 0, 0, 0, 0, 1.08325, 66.0059, 1.13348, 0, 0, 37.4013, 0, 1.20799, 0, -8.58307e-07, 0, 0, 0.942115, 73.7037, 0.843175, 0, 0, 39.1213, 0, 0.993881, 0, 0, 0, 0, 1.1038, 73.9908, 1.21907, 0, 0, 38.7447, 0, 0.966088, 0, -8.58307e-07, 0, 0, 1.00595, 71.3549, 0.779243, 0, 0, 2.0045, 0, 1.04533, 0, -8.58307e-07, 0, 0, 0.951813, 62.9389, 1.08869, 0, 0, 2.93355, 0, 1.06977, 0, -8.58307e-07, 0, 0, 1.20384, 61.4584, 0.779709, 0, 0, -1.57477, 0, 1.24974, 0, 0, 0, 0, 1.11386, 58.0894, 0.783273, 0, 0, -2.22117, 0, 0.787936, 0, -8.58307e-07, 0, 0, 1.12023, 64.2733, 0.801413, 0, 0, 5.57226, 0, 0.760522, 0, 0, 0, 0, 1.06169, 59.9368, 0.965672, 0, 0, 1.98194, 0, 0.840343, 0, 0, 0, 0, 1.1102, 64.4814, 0.798992, 0, 0, 10.649, 0, 1.23169, 0, 0, 0, 0, 0.818728, 72.8853, 0.810551, 0, 0, 8.94783, 0, 0.96816, 0, -8.58307e-07, 0, 0, 0.811204, 72.3082, 0.750651, 0, 0, 13.8138, 0, 1.20993, 0, -8.58307e-07, 0, 0, 1.15451, 72.0744, 0.782831, 0, 0, 11.8197, 0, 1.18617, 0, -8.58307e-07, 0, 0, 1.01838, 69.8754, 0.85527, 0, 0, 10.3977, 0, 0.805471, 0, -8.58307e-07, 0, 0, 0.781852, 67.2671, 1.0205, 0, 0, 13.7865, 0, 0.775895, 0, -8.58307e-07, 0, 0, 1.01763, 72.2499, 0.870714, 0, 0, 9.53898, 0, 1.22558, 0, 0, 0, 0, 1.06046, 71.3061, 1.03973, 0, 0, 11.0116, 0, 1.23787, 0, -8.58307e-07, 0, 0, 1.15983, 75.2749, 1.15172, 0, 0, -16.0852, 0, 1.24603, 0, -8.58307e-07, 0, 0, 0.984447, 62.0039, 1.10086, 0, 0, -19.1531, 0, 0.916684, 0, 0, 0, 0, 1.17353, 64.0842, 0.787527, 0, 0, -15.6706, 0, 1.08788, 0, -8.58307e-07, 0, 0, 0.805047, 59.5487, 1.10085, 0, 0, -12.1336, 0, 1.07955, 0, 0, 0, 0, 1.23606, 63.9387, 0.765732, 0, 0, -15.9539, 0, 1.19497, 0, 0, 0, 0, 0.778345, 63.1379, 1.1348, 0, 0, -14.9294, 0, 1.20826, 0, -8.58307e-07, 0, 0, 0.76846, 68.0062, 0.948585, 0, 0, -9.84703, 0, 0.818939, 0, 0, 0, 0, 0.8788, 68.7766, 1.16144, 0, 0, -32.7636, 0, 1.23603, 0, -8.58307e-07, 0, 0, 1.09144, 61.3505, 0.834533, 0, 0, -29.5555, 0, 1.18838, 0, -8.58307e-07, 0, 0, 0.954771, 69.4293, 0.754344, 0, 0, -28.9222, 0, 1.01182, 0, -8.58307e-07, 0, 0, 1.03359, 64.4663, 1.23231, 0, 0, -32.295, 0, 0.932619, 0, 0, 0, 0, 1.15635, 69.6081, 1.04705, 0, 0, -29.635, 0, 0.761371, 0, -8.58307e-07, 0, 0, 1.17269, 66.6258, 0.813709, 0, 0, -24.7268, 0, 1.2175, 0, 0, 0, 0, 0.965501, 65.0839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1.03292, 0, 0, -33.7333, 0, 1.1508, 0, 0, 0, 0, 1.09119, 24.3439, 0.806753, 0, 0, -34.6044, 0, 1.10663, 0, 0, 0, 0, 0.962154, 25.825, 0.76762, 0, 0, -37.5252, 0, 1.11061, 0, 0, 0, 0, 0.851536, 25.7437, 0.80269, 0, 0, -39.9026, 0, 0.810671, 0, 0, 0, 0, 0.896122, 29.0779, 0.894856, 0, 0, -38.9269, 0, 0.757704, 0, -8.58307e-07, 0, 0, 0.869629, 33.0455, 0.84544, 0, 0, -38.4507, 0, 1.0869, 0, 0, 0, 0, 1.12677, 31.3806, 1.13315, 0, 0, -33.4617, 0, 1.18464, 0, -8.58307e-07, 0, 0, 0.771552, 35.9194, 0.911738, 0, 0, -38.4715, 0, 1.16086, 0, 0, 0, 0, 1.1042, 29.6255, 1.0834, 0, 0, -33.8092, 0, 0.913362, 0, -8.58307e-07, 0, 0, 0.929086, 34.624, 0.817553, 0, 0, -35.2733, 0, 1.0008, 0, 0, 0, 0, 1.12964, 35.1242, 1.0261, 0, 0, -29.8958, 0, 0.787411, 0, -8.58307e-07, 0, 0, 0.989158, 32.2088, 0.842508, 0, 0, -31.5573, 0, 0.919064, 0, -8.58307e-07, 0, 0, 0.94556, 39.1658, 0.996414, 0, 0, -35.2462, 0, 0.950074, 0, 0, 0, 0, 0.930963, 34.307, 1.09349, 0, 0, -34.0303, 0, 0.824464, 0, 0, 0, 0, 1.22814, 38.5592, 1.17604, 0, 0, -26.2284, 0, 0.985263, 0, 0, 0, 0, 1.13929, 41.4188, 1.17626, 0, 0, -32.4162, 0, 1.17547, 0, 0, 0, 0, 0.972683, 40.8602, 0.939991, 0, 0, -28.7253, 0, 1.14727, 0, -8.58307e-07, 0, 0, 0.897907, 36.6702, 0.781335, 0, 0, -32.5701, 0, 1.10289, 0, -8.58307e-07, 0, 0, 0.937443, 41.1998, 0.84176, 0, 0, 43.3133, 0, 0.983039, 0, -8.58307e-07, 0, 0, 0.839321, -14.3141, 0.837284, 0, 0, 45.4166, 0, 0.973364, 0, -8.58307e-07, 0, 0, 0.908319, -7.96881, 0.88922, 0, 0, 46.319, 0, 1.14414, 0, -8.58307e-07, 0, 0, 0.880325, -10.035, 0.765603, 0, 0, 43.8903, 0, 1.04236, 0, -8.58307e-07, 0, 0, 1.16755, -9.46991, 0.832736, 0, 0, 46.3327, 0, 1.10526, 0, -8.58307e-07, 0, 0, 0.841102, -11.1723, 0.91004, 0, 0, 48.3904, 0, 0.758364, 0, -8.58307e-07, 0, 0, 0.945015, -11.9058, 0.908139, 0, 0, 51.2532, 0, 1.03213, 0, -8.58307e-07, 0, 0, 0.78258, -7.65288, 0.869417, 0, 0, 46.319, 0, 0.862253, 0, -8.58307e-07, 0, 0, 1.01239, -12.1853, 0.866755, 0, 0, 53.3202, 0, 1.00807, 0, -8.58307e-07, 0, 0, 1.22453, -8.42381, 1.12638, 0, 0, 47.2108, 0, 0.99, 0, -8.58307e-07, 0, 0, 0.994688, -12.5405, 0.804406, 0, 0, 48.5353, 0, 1.11321, 0, -8.58307e-07, 0, 0, 1.22006, -14.9704, 0.955858, 0, 0, 50.8502, 0, 1.11598, 0, 0, 0, 0, 1.11197, -7.40155, 0.863799, 0, 0, 57.114, 0, 1.19548, 0, 0, 0, 0, 1.18626, -12.2696, 0.85432, 0, 0, 49.6082, 0, 0.785663, 0, 0, 0, 0, 0.798586, -13.3301, 1.05094, 0, 0, 55.4671, 0, 0.822349, 0, 0, 0, 0, 0.797198, -13.9377, 0.97472, 0, 0, 50.9084, 0, 0.947968, 0, 0, 0, 0, 0.925696, -9.18729, 1.19492, 0, 0, 52.3135, 0, 0.861636, 0, 0, 0, 0, 0.86591, -11.489, 0.991202, 0, 0, 68.7965, 0, 1.20432, 0, 0, 0, 0, 0.8467, -7.03535, 0.893936, 0, 0, 69.9457, 0, 0.949668, 0, 0, 0, 0, 0.948561, -11.3363, 0.974751, 0, 0, 76.5801, 0, 1.04225, 0, 0, 0, 0, 0.972928, -8.8138, 1.09182, 0, 0, 70.4363, 0, 0.923695, 0, 0, 0, 0, 1.15792, -2.42436, 1.0541, 0, 0, 79.3612, 0, 0.928902, 0, 0, 0, 0, 0.786086, -7.51385, 1.24573, 0, 0, 78.2414, 0, 1.1739, 0, 0, 0, 0, 0.883314, -9.28871, 1.21007, 0, 0, 80.328, 0, 0.874774, 0, 0, 0, 0, 1.14792, -8.42686, 0.93773, 0, 0, 77.3078, 0, 1.21938, 0, 0, 0, 0, 0.8018, -1.33273, 1.16048, 0, 0, 25.8005, 0, 0.969708, 0, 0, 0, 0, 0.779343, -20.7933, 0.807691, 0, 0, 30.2647, 0, 1.13349, 0, 0, 0, 0, 0.919687, -16.0785, 1.16226, 0, 0, 26.5686, 0, 1.17947, 0, 0, 0, 0, 0.833999, -13.1756, 1.24562, 0, 0, 26.0068, 0, 0.999421, 0, 0, 0, 0, 0.871147, -20.7043, 0.830976, 0, 0, 27.2204, 0, 1.22163, 0, 0, 0, 0, 0.993903, -17.3096, 1.12425, 0, 0, 65.8727, 0, 1.02382, 0, 0, 0, 0, 0.78918, 39.0438, 1.08799, 0, 0, 68.2284, 0, 1.02229, 0, 0, 0, 0, 1.02124, 35.9892, 0.840075, 0, 0, 67.5608, 0, 1.09681, 0, -8.58307e-07, 0, 0, 1.20747, 36.5009, 0.904714, 0, 0, 71.0193, 0, 1.14132, 0, 0, 0, 0, 0.755114, 40.4795, 0.9447, 0, 0, 66.1996, 0, 1.16305, 0, -8.58307e-07, 0, 0, 0.969836, 42.9793, 1.20899, 0, 0, 70.765, 0, 1.02398, 0, 0, 0, 0, 1.07875, 42.8964, 0.852592, 0, 0, 68.92, 0, 1.11019, 0, 0, 0, 0, 1.14383, 35.8561, 1.20733, 0, 0, 73.457, 0, 1.12503, 0, -8.58307e-07, 0, 0, 0.863874, 33.2888, 1.17541, 0, 0, 73.1784, 0, 0.837274, 0, 0, 0, 0, 0.818614, 34.2902, 0.832948, 0, 0, 76.8833, 0, 1.07358, 0, 0, 0, 0, 0.839928, 33.8125, 1.03551, 0, 0, 76.0093, 0, 1.01635, 0, 0, 0, 0, 0.831829, 30.1544, 0.97895, 0, 0, 82.16, 0, 1.13323, 0, 0, 0, 0, 1.09975, 26.0608, 0.816688, 0, 0, 83.7568, 0, 0.855645, 0, 0, 0, 0, 0.934907, 26.594, 1.11055, 0, 0, 81.3253, 0, 1.21245, 0, -8.58307e-07, 0, 0, 0.849673, 20.9004, 0.984101, 0, 0, 87.1123, 0, 1.11113, 0, -1.71661e-06, 0, 0, 1.09954, 18.1316, 1.0783, 0, 0, 83.5651, 0, 0.891905, 0, 0, 0, 0, 0.878265, 16.2096, 1.0804, 0, 0, 83.3325, 0, 0.996582, 0, 0, 0, 0, 1.00599, 24.7975, 0.885631, 0, 0, 86.8532, 0, 1.03665, 0, 0, 0, 0, 0.956839, 20.0802, 0.858379, 0, 0, 82.2466, 0, 0.910817, 0, -8.58307e-07, 0, 0, 0.933454, 17.4968)
39 |
40 | [node name="root" type="Node3D"]
41 |
42 | [node name="MeshInstance3D" type="MeshInstance3D" parent="."]
43 | transform = Transform3D(17.7408, 0, 0, 0, 1.8, 0, 0, 0, 13.9087, 29, 0, 10)
44 | mesh = SubResource("PlaneMesh_ipgsw")
45 | surface_material_override/0 = SubResource("StandardMaterial3D_2gnoy")
46 |
47 | [node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D"]
48 |
49 | [node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D/StaticBody3D"]
50 | shape = SubResource("ConcavePolygonShape3D_044ut")
51 |
52 | [node name="MeshInstance3D2" type="MeshInstance3D" parent="."]
53 | transform = Transform3D(6.06769, -1.50657, 0, 9.28051, 0.985008, 0, 0, 0, 10.656, 114.03, 22.8999, 0)
54 | mesh = SubResource("PlaneMesh_ipgsw")
55 | surface_material_override/0 = SubResource("StandardMaterial3D_2gnoy")
56 |
57 | [node name="StaticBody3D" type="StaticBody3D" parent="MeshInstance3D2"]
58 |
59 | [node name="CollisionShape3D" type="CollisionShape3D" parent="MeshInstance3D2/StaticBody3D"]
60 | shape = SubResource("ConcavePolygonShape3D_6drcc")
61 |
62 | [node name="Camera3D" type="Camera3D" parent="."]
63 | transform = Transform3D(0.689318, 0.150941, -0.70856, 0.0296272, 0.971363, 0.235747, 0.723853, -0.183497, 0.665106, -29.2054, 5.46726, 84.6648)
64 |
65 | [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
66 | transform = Transform3D(0.819302, 0.349088, -0.454842, 1.73955e-08, 0.79329, 0.608844, 0.573362, -0.498827, 0.649944, 22.8811, 17.0385, 62.4693)
67 | shadow_enabled = true
68 |
69 | [node name="WorldEnvironment" type="WorldEnvironment" parent="."]
70 | environment = SubResource("Environment_ts1rx")
71 |
72 | [node name="ScatterScene3D" type="Node3D" parent="."]
73 | script = ExtResource("1_25gfb")
74 | scenes = Array[PackedScene]([ExtResource("2_k4blw")])
75 | instanced_scene_collision_layers = 2147483648
76 | placement_size = Vector3(11, 11, 11)
77 |
78 | [node name="DrawPointer" type="Node3D" parent="ScatterScene3D"]
79 | transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 73.6353, 6.86645e-06, 54.158)
80 |
81 | [node name="ObjectParent" type="Node3D" parent="ScatterScene3D"]
82 |
83 | [node name="@StaticBody3D@37090" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
84 | transform = Transform3D(1.23424, 0, 0, 0, 0.787998, 0, 0, 0, 0.801253, 23.8158, 0, 53.3959)
85 | collision_layer = 2147483648
86 |
87 | [node name="@StaticBody3D@37092" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
88 | transform = Transform3D(1.08069, 0, 0, 0, 1.07078, 0, 0, 0, 0.876528, 22.4362, -8.58307e-07, 56.6444)
89 | collision_layer = 2147483648
90 |
91 | [node name="@StaticBody3D@37094" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
92 | transform = Transform3D(0.996197, 0, 0, 0, 1.16254, 0, 0, 0, 0.955885, 21.8945, 0, 56.6063)
93 | collision_layer = 2147483648
94 |
95 | [node name="@StaticBody3D@37096" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
96 | transform = Transform3D(1.03244, 0, 0, 0, 0.9644, 0, 0, 0, 1.09486, 17.9744, 0, 54.7243)
97 | collision_layer = 2147483648
98 |
99 | [node name="@StaticBody3D@37098" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
100 | transform = Transform3D(0.948157, 0, 0, 0, 1.06047, 0, 0, 0, 1.1848, 3.26424, 0, 51.553)
101 | collision_layer = 2147483648
102 |
103 | [node name="@StaticBody3D@37100" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
104 | transform = Transform3D(0.864458, 0, 0, 0, 0.861902, 0, 0, 0, 0.786143, 6.67025, 0, 50.1844)
105 | collision_layer = 2147483648
106 |
107 | [node name="@StaticBody3D@37102" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
108 | transform = Transform3D(1.05563, 0, 0, 0, 1.11596, 0, 0, 0, 1.20995, -5.15553, 0, 52.0854)
109 | collision_layer = 2147483648
110 |
111 | [node name="@StaticBody3D@37104" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
112 | transform = Transform3D(0.753813, 0, 0, 0, 1.24515, 0, 0, 0, 1.12718, -9.16608, 0, 46.3264)
113 | collision_layer = 2147483648
114 |
115 | [node name="@StaticBody3D@37106" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
116 | transform = Transform3D(1.18955, 0, 0, 0, 0.84802, 0, 0, 0, 1.1412, -5.66357, 0, 50.1009)
117 | collision_layer = 2147483648
118 |
119 | [node name="@StaticBody3D@37108" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
120 | transform = Transform3D(0.872984, 0, 0, 0, 1.0203, 0, 0, 0, 1.09167, -14.5093, 0, 38.9125)
121 | collision_layer = 2147483648
122 |
123 | [node name="@StaticBody3D@37110" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
124 | transform = Transform3D(1.15885, 0, 0, 0, 1.0014, 0, 0, 0, 1.24613, -8.89733, 0, 37.1329)
125 | collision_layer = 2147483648
126 |
127 | [node name="@StaticBody3D@37112" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
128 | transform = Transform3D(1.02608, 0, 0, 0, 1.00332, 0, 0, 0, 1.00171, -13.5912, 0, 37.6116)
129 | collision_layer = 2147483648
130 |
131 | [node name="@StaticBody3D@37114" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
132 | transform = Transform3D(1.12381, 0, 0, 0, 0.830194, 0, 0, 0, 1.18661, -9.0515, 0, 38.5295)
133 | collision_layer = 2147483648
134 |
135 | [node name="@StaticBody3D@37116" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
136 | transform = Transform3D(1.16963, 0, 0, 0, 1.21235, 0, 0, 0, 1.01367, -19.7616, 0, 36.3367)
137 | collision_layer = 2147483648
138 |
139 | [node name="@StaticBody3D@37118" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
140 | transform = Transform3D(0.861319, 0, 0, 0, 0.834268, 0, 0, 0, 1.08568, -17.4276, 0, 26.2306)
141 | collision_layer = 2147483648
142 |
143 | [node name="@StaticBody3D@37120" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
144 | transform = Transform3D(1.02132, 0, 0, 0, 1.05199, 0, 0, 0, 1.18631, -19.9502, 0, 24.8547)
145 | collision_layer = 2147483648
146 |
147 | [node name="@StaticBody3D@37122" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
148 | transform = Transform3D(0.941095, 0, 0, 0, 1.04853, 0, 0, 0, 0.827859, -23.198, 0, 29.5481)
149 | collision_layer = 2147483648
150 |
151 | [node name="@StaticBody3D@37124" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
152 | transform = Transform3D(1.05426, 0, 0, 0, 1.18932, 0, 0, 0, 1.15191, -19.4031, 0, 18.8569)
153 | collision_layer = 2147483648
154 |
155 | [node name="@StaticBody3D@37126" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
156 | transform = Transform3D(0.822528, 0, 0, 0, 1.08612, 0, 0, 0, 0.767492, -15.7988, 0, 19.5136)
157 | collision_layer = 2147483648
158 |
159 | [node name="@StaticBody3D@37128" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
160 | transform = Transform3D(0.829927, 0, 0, 0, 1.03828, 0, 0, 0, 0.802783, -16.5044, 0, 25.2133)
161 | collision_layer = 2147483648
162 |
163 | [node name="@StaticBody3D@37130" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
164 | transform = Transform3D(1.04908, 0, 0, 0, 0.799374, 0, 0, 0, 1.08595, -19.652, 0, 18.8134)
165 | collision_layer = 2147483648
166 |
167 | [node name="@StaticBody3D@37132" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
168 | transform = Transform3D(0.943412, 0, 0, 0, 0.913572, 0, 0, 0, 1.13339, -14.2319, 0, 25.2275)
169 | collision_layer = 2147483648
170 |
171 | [node name="@StaticBody3D@37134" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
172 | transform = Transform3D(1.15821, 0, 0, 0, 0.929866, 0, 0, 0, 0.936802, -15.1614, 0, 18.0501)
173 | collision_layer = 2147483648
174 |
175 | [node name="@StaticBody3D@37162" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
176 | transform = Transform3D(1.17274, 0, 0, 0, 1.13077, 0, 0, 0, 0.861335, 9.7248, 0, -14.6496)
177 | collision_layer = 2147483648
178 |
179 | [node name="@StaticBody3D@37164" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
180 | transform = Transform3D(1.0026, 0, 0, 0, 0.978188, 0, 0, 0, 1.0496, 11.5473, 0, -10.4557)
181 | collision_layer = 2147483648
182 |
183 | [node name="@StaticBody3D@37166" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
184 | transform = Transform3D(0.914572, 0, 0, 0, 0.956001, 0, 0, 0, 0.891898, 11.6975, 0, -7.67533)
185 | collision_layer = 2147483648
186 |
187 | [node name="@StaticBody3D@37168" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
188 | transform = Transform3D(1.16123, 0, 0, 0, 0.975602, 0, 0, 0, 1.12992, 10.6074, 0, -2.60609)
189 | collision_layer = 2147483648
190 |
191 | [node name="@StaticBody3D@37170" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
192 | transform = Transform3D(1.01126, 0, 0, 0, 1.01804, 0, 0, 0, 1.08224, 7.80789, 0, 6.09877)
193 | collision_layer = 2147483648
194 |
195 | [node name="@StaticBody3D@37172" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
196 | transform = Transform3D(0.820158, 0, 0, 0, 0.799542, 0, 0, 0, 0.761506, 7.57795, 0, 7.48388)
197 | collision_layer = 2147483648
198 |
199 | [node name="@StaticBody3D@37174" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
200 | transform = Transform3D(1.18026, 0, 0, 0, 0.75125, 0, 0, 0, 0.940997, 3.73411, 0, 10.1205)
201 | collision_layer = 2147483648
202 |
203 | [node name="@StaticBody3D@37176" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
204 | transform = Transform3D(1.20624, 0, 0, 0, 1.15532, 0, 0, 0, 1.0209, 6.77754, 0, 16.2291)
205 | collision_layer = 2147483648
206 |
207 | [node name="@StaticBody3D@37192" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
208 | transform = Transform3D(1.21216, 0, 0, 0, 1.23992, 0, 0, 0, 0.96144, 33.6352, 0, -18.7713)
209 | collision_layer = 2147483648
210 |
211 | [node name="@StaticBody3D@37194" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
212 | transform = Transform3D(1.06331, 0, 0, 0, 1.1659, 0, 0, 0, 1.22666, 38.7136, 0, -10.7604)
213 | collision_layer = 2147483648
214 |
215 | [node name="@StaticBody3D@37196" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
216 | transform = Transform3D(1.01199, 0, 0, 0, 0.813325, 0, 0, 0, 0.892093, 36.725, 0, -7.70035)
217 | collision_layer = 2147483648
218 |
219 | [node name="@StaticBody3D@37198" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
220 | transform = Transform3D(1.06326, 0, 0, 0, 0.973779, 0, 0, 0, 1.2284, 29.9569, 0, -2.36848)
221 | collision_layer = 2147483648
222 |
223 | [node name="@StaticBody3D@37200" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
224 | transform = Transform3D(0.92459, 0, 0, 0, 1.02285, 0, 0, 0, 1.18038, 27.2282, 0, 2.17105)
225 | collision_layer = 2147483648
226 |
227 | [node name="@StaticBody3D@37202" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
228 | transform = Transform3D(1.17853, 0, 0, 0, 1.12545, 0, 0, 0, 1.11706, 32.1427, 0, 14.4296)
229 | collision_layer = 2147483648
230 |
231 | [node name="@StaticBody3D@37204" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
232 | transform = Transform3D(0.845607, 0, 0, 0, 1.18914, 0, 0, 0, 1.04556, 25.8256, 0, 19.1214)
233 | collision_layer = 2147483648
234 |
235 | [node name="@StaticBody3D@37206" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
236 | transform = Transform3D(0.949069, 0, 0, 0, 1.24945, 0, 0, 0, 1.24184, 27.9333, 0, 13.2414)
237 | collision_layer = 2147483648
238 |
239 | [node name="@StaticBody3D@21548" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
240 | transform = Transform3D(0.774548, 0, 0, 0, 1.15113, 0, 0, 0, 0.862531, 27.8748, 0, 53.4904)
241 | collision_layer = 2147483648
242 |
243 | [node name="@StaticBody3D@21552" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
244 | transform = Transform3D(1.07182, 0, 0, 0, 0.989382, 0, 0, 0, 0.819205, 25.4791, 0, 57.3276)
245 | collision_layer = 2147483648
246 |
247 | [node name="@StaticBody3D@21553" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
248 | transform = Transform3D(1.05438, 0, 0, 0, 1.16302, 0, 0, 0, 0.925305, 22.8524, 0, 55.5104)
249 | collision_layer = 2147483648
250 |
251 | [node name="@StaticBody3D@21554" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
252 | transform = Transform3D(0.879935, 0, 0, 0, 1.1492, 0, 0, 0, 0.969335, 27.0243, 0, 56.9033)
253 | collision_layer = 2147483648
254 |
255 | [node name="@StaticBody3D@21556" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
256 | transform = Transform3D(1.03562, 0, 0, 0, 1.08802, 0, 0, 0, 0.967473, 23.0888, 0, 54.0853)
257 | collision_layer = 2147483648
258 |
259 | [node name="@StaticBody3D@21557" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
260 | transform = Transform3D(1.13162, 0, 0, 0, 1.02056, 0, 0, 0, 1.19706, 22.8362, 0, 51.6706)
261 | collision_layer = 2147483648
262 |
263 | [node name="StaticBody3D" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
264 | transform = Transform3D(0.774736, 0, 0, 0, 0.762235, 0, 0, 0, 0.937939, 49.0696, -8.58307e-07, 35.7277)
265 | collision_layer = 2147483648
266 |
267 | [node name="@StaticBody3D@21592" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
268 | transform = Transform3D(0.774279, 0, 0, 0, 1.05183, 0, 0, 0, 1.11922, 39.6939, 0, 39.0927)
269 | collision_layer = 2147483648
270 |
271 | [node name="@StaticBody3D@21593" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
272 | transform = Transform3D(1.14526, 0, 0, 0, 0.956896, 0, 0, 0, 1.20656, 41.5775, -8.58307e-07, 37.5137)
273 | collision_layer = 2147483648
274 |
275 | [node name="@StaticBody3D@21594" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
276 | transform = Transform3D(1.04165, 0, 0, 0, 1.0414, 0, 0, 0, 0.986298, 44.0989, 0, 34.8442)
277 | collision_layer = 2147483648
278 |
279 | [node name="@StaticBody3D@21595" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
280 | transform = Transform3D(1.0222, 0, 0, 0, 1.14851, 0, 0, 0, 0.986576, 44.5038, 0, 35.7064)
281 | collision_layer = 2147483648
282 |
283 | [node name="@StaticBody3D@21596" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
284 | transform = Transform3D(1.08648, 0, 0, 0, 0.759413, 0, 0, 0, 1.23872, 40.8905, 0, 35.9696)
285 | collision_layer = 2147483648
286 |
287 | [node name="@StaticBody3D@21597" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
288 | transform = Transform3D(1.06019, 0, 0, 0, 0.97357, 0, 0, 0, 0.818333, 46.0486, 0, 44.7689)
289 | collision_layer = 2147483648
290 |
291 | [node name="@StaticBody3D@21598" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
292 | transform = Transform3D(1.08393, 0, 0, 0, 1.22552, 0, 0, 0, 0.878538, 44.5116, 0, 44.5829)
293 | collision_layer = 2147483648
294 |
295 | [node name="@StaticBody3D@21599" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
296 | transform = Transform3D(1.04525, 0, 0, 0, 1.15513, 0, 0, 0, 0.987168, 37.7355, 0, 41.5629)
297 | collision_layer = 2147483648
298 |
299 | [node name="@StaticBody3D@21600" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
300 | transform = Transform3D(0.765396, 0, 0, 0, 0.982917, 0, 0, 0, 1.07472, 37.8927, 0, 51.035)
301 | collision_layer = 2147483648
302 |
303 | [node name="@StaticBody3D@21601" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
304 | transform = Transform3D(1.09515, 0, 0, 0, 1.12603, 0, 0, 0, 0.830202, 43.5143, 0, 49.8752)
305 | collision_layer = 2147483648
306 |
307 | [node name="@StaticBody3D@21602" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
308 | transform = Transform3D(1.06237, 0, 0, 0, 0.852578, 0, 0, 0, 0.753981, 44.8895, 0, 50.6986)
309 | collision_layer = 2147483648
310 |
311 | [node name="@StaticBody3D@21603" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
312 | transform = Transform3D(1.01562, 0, 0, 0, 1.23136, 0, 0, 0, 0.779439, 38.2254, 0, 60.0031)
313 | collision_layer = 2147483648
314 |
315 | [node name="@StaticBody3D@21604" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
316 | transform = Transform3D(0.878811, 0, 0, 0, 0.792445, 0, 0, 0, 1.09858, 45.5424, -8.58307e-07, 52.6739)
317 | collision_layer = 2147483648
318 |
319 | [node name="@StaticBody3D@21605" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
320 | transform = Transform3D(0.862243, 0, 0, 0, 1.08662, 0, 0, 0, 1.14571, 45.525, 0, 51.8993)
321 | collision_layer = 2147483648
322 |
323 | [node name="@StaticBody3D@21606" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
324 | transform = Transform3D(0.871553, 0, 0, 0, 0.864978, 0, 0, 0, 1.04778, 52.8718, 0, 48.9655)
325 | collision_layer = 2147483648
326 |
327 | [node name="@StaticBody3D@21607" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
328 | transform = Transform3D(1.18594, 0, 0, 0, 0.786516, 0, 0, 0, 1.05156, 54.7479, 0, 40.2667)
329 | collision_layer = 2147483648
330 |
331 | [node name="@StaticBody3D@21608" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
332 | transform = Transform3D(0.887737, 0, 0, 0, 0.841212, 0, 0, 0, 1.247, 52.4736, 0, 44.8136)
333 | collision_layer = 2147483648
334 |
335 | [node name="@StaticBody3D@21609" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
336 | transform = Transform3D(0.870019, 0, 0, 0, 1.24234, 0, 0, 0, 0.756435, 61.0796, 0, 49.5016)
337 | collision_layer = 2147483648
338 |
339 | [node name="@StaticBody3D@21610" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
340 | transform = Transform3D(0.751259, 0, 0, 0, 0.970443, 0, 0, 0, 1.19922, 56.7044, 0, 43.7394)
341 | collision_layer = 2147483648
342 |
343 | [node name="@StaticBody3D@21611" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
344 | transform = Transform3D(0.982082, 0, 0, 0, 1.05283, 0, 0, 0, 0.995862, 57.7157, 0, 48.9853)
345 | collision_layer = 2147483648
346 |
347 | [node name="@StaticBody3D@21612" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
348 | transform = Transform3D(1.09247, 0, 0, 0, 1.12723, 0, 0, 0, 0.970048, 65.2277, 0, 50.2219)
349 | collision_layer = 2147483648
350 |
351 | [node name="@StaticBody3D@21613" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
352 | transform = Transform3D(1.23915, 0, 0, 0, 1.05929, 0, 0, 0, 1.07613, 65.682, 0, 45.6963)
353 | collision_layer = 2147483648
354 |
355 | [node name="@StaticBody3D@21614" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
356 | transform = Transform3D(1.1585, 0, 0, 0, 0.804025, 0, 0, 0, 1.21589, 65.309, -8.58307e-07, 56.6155)
357 | collision_layer = 2147483648
358 |
359 | [node name="@StaticBody3D@21615" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
360 | transform = Transform3D(1.09436, 0, 0, 0, 1.20605, 0, 0, 0, 1.14213, 62.319, -8.58307e-07, 48.3368)
361 | collision_layer = 2147483648
362 |
363 | [node name="@StaticBody3D@21616" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
364 | transform = Transform3D(1.12364, 0, 0, 0, 0.905189, 0, 0, 0, 0.780918, 60.7855, -8.58307e-07, 51.4128)
365 | collision_layer = 2147483648
366 |
367 | [node name="@StaticBody3D@21617" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
368 | transform = Transform3D(0.912875, 0, 0, 0, 0.921734, 0, 0, 0, 0.955446, 64.2394, 0, 59.0758)
369 | collision_layer = 2147483648
370 |
371 | [node name="@StaticBody3D@21618" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
372 | transform = Transform3D(0.806239, 0, 0, 0, 1.03659, 0, 0, 0, 1.22468, 72.6297, 0, 62.8228)
373 | collision_layer = 2147483648
374 |
375 | [node name="@StaticBody3D@21619" type="StaticBody3D" parent="ScatterScene3D/ObjectParent" instance=ExtResource("2_k4blw")]
376 | transform = Transform3D(1.04284, 0, 0, 0, 1.08349, 0, 0, 0, 0.841612, 74.9295, 0, 62.1197)
377 | collision_layer = 2147483648
378 |
379 | [node name="ScatterMesh3D" type="Node3D" parent="."]
380 | script = ExtResource("3_js2b0")
381 | meshes = Array[Mesh]([ExtResource("4_6j7gc")])
382 | mesh_materials = Array[Material]([SubResource("StandardMaterial3D_kl0dw")])
383 |
384 | [node name="DrawPointer" type="Node3D" parent="ScatterMesh3D"]
385 | transform = Transform3D(0.547228, -0.836984, 0, 0.836984, 0.547228, 0, 0, 0, 1, 115.827, 25.6486, 38.4174)
386 |
387 | [node name="ObjectParent" type="Node3D" parent="ScatterMesh3D"]
388 |
389 | [node name="@@117173" type="MultiMeshInstance3D" parent="ScatterMesh3D/ObjectParent"]
390 | multimesh = SubResource("MultiMesh_k87d5")
391 |
--------------------------------------------------------------------------------
/addons/scatterbox/Examples/pineTree_bark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The-Vector/scatterBox/bc0fdae3c939785a08b35bc34f0a19eb36aa0874/addons/scatterbox/Examples/pineTree_bark.png
--------------------------------------------------------------------------------
/addons/scatterbox/Examples/pineTree_bark.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://kb2d8t6b5408"
6 | path.s3tc="res://.godot/imported/pineTree_bark.png-f35dd0198fb42e53edfdb8d20a07e21d.s3tc.ctex"
7 | metadata={
8 | "imported_formats": ["s3tc_bptc"],
9 | "vram_texture": true
10 | }
11 |
12 | [deps]
13 |
14 | source_file="res://addons/scatterbox/Examples/pineTree_bark.png"
15 | dest_files=["res://.godot/imported/pineTree_bark.png-f35dd0198fb42e53edfdb8d20a07e21d.s3tc.ctex"]
16 |
17 | [params]
18 |
19 | compress/mode=2
20 | compress/high_quality=false
21 | compress/lossy_quality=0.7
22 | compress/hdr_compression=1
23 | compress/normal_map=0
24 | compress/channel_pack=0
25 | mipmaps/generate=true
26 | mipmaps/limit=-1
27 | roughness/mode=0
28 | roughness/src_normal=""
29 | process/fix_alpha_border=true
30 | process/premult_alpha=false
31 | process/normal_map_invert_y=false
32 | process/hdr_as_srgb=false
33 | process/hdr_clamp_exposure=false
34 | process/size_limit=0
35 | detect_3d/compress_to=0
36 |
--------------------------------------------------------------------------------
/addons/scatterbox/Examples/pineTree_leaves.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The-Vector/scatterBox/bc0fdae3c939785a08b35bc34f0a19eb36aa0874/addons/scatterbox/Examples/pineTree_leaves.png
--------------------------------------------------------------------------------
/addons/scatterbox/Examples/pineTree_leaves.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://bqfgsww0lwu26"
6 | path.s3tc="res://.godot/imported/pineTree_leaves.png-df215c7d028c6291a641c54698691600.s3tc.ctex"
7 | metadata={
8 | "imported_formats": ["s3tc_bptc"],
9 | "vram_texture": true
10 | }
11 |
12 | [deps]
13 |
14 | source_file="res://addons/scatterbox/Examples/pineTree_leaves.png"
15 | dest_files=["res://.godot/imported/pineTree_leaves.png-df215c7d028c6291a641c54698691600.s3tc.ctex"]
16 |
17 | [params]
18 |
19 | compress/mode=2
20 | compress/high_quality=false
21 | compress/lossy_quality=0.7
22 | compress/hdr_compression=1
23 | compress/normal_map=0
24 | compress/channel_pack=0
25 | mipmaps/generate=true
26 | mipmaps/limit=-1
27 | roughness/mode=0
28 | roughness/src_normal=""
29 | process/fix_alpha_border=true
30 | process/premult_alpha=false
31 | process/normal_map_invert_y=false
32 | process/hdr_as_srgb=false
33 | process/hdr_clamp_exposure=false
34 | process/size_limit=0
35 | detect_3d/compress_to=0
36 |
--------------------------------------------------------------------------------
/addons/scatterbox/Examples/testTree.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=3 format=3 uid="uid://cnj1etk7x6rtj"]
2 |
3 | [ext_resource type="ArrayMesh" uid="uid://c82e6hpg6t5kw" path="res://addons/scatterbox/Examples/deadTree.obj" id="1_jxlrm"]
4 |
5 | [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_tqcty"]
6 | data = PackedVector3Array(0.2094, 0.0501, -0.1667, 0.1557, 0.8438, -0.095, 0.158, 0.0501, -0.2268, 0.1901, 0.0501, -0.0694, 0.1605, 0.8726, -0.0219, 0.2094, 0.0501, -0.1667, 0.0917, 0.0501, -0.0362, 0.068, 0.9504, 0.0461, 0.1901, 0.0501, -0.0694, -0.0008, 0.8454, 0.002, 0.0407, 0.0501, -0.066, 0.0094, 0.0501, -0.1363, 0.0577, 0.0501, -0.2279, -0.0122, 0.8823, -0.0923, 0.0094, 0.0501, -0.1363, -0.0585, 2.2904, 0.1566, 0.068, 0.9504, 0.0461, -0.0894, 2.3551, 0.1722, -0.0589, 1.9368, 0.0059, 0.0476, 0.8949, -0.1355, 0.1078, 0.8539, -0.1333, -0.007, 2.0166, 0.0978, 0.1605, 0.8726, -0.0219, -0.0585, 2.2904, 0.1566, -0.0894, 2.3551, 0.1722, 0.068, 0.9504, 0.0461, -0.1284, 2.2304, 0.1531, -0.1324, 1.9858, 0.0943, -0.0008, 0.8454, 0.002, -0.0122, 0.8823, -0.0923, -0.1044, 2.4951, 0.0667, -0.1403, 2.1367, 0.0697, -0.0589, 1.9368, 0.0059, -0.2159, 3.2856, 0.1751, -0.1324, 1.9858, 0.0943, -0.1403, 2.1367, 0.0697, -0.1727, 3.1713, 0.1175, -0.1403, 2.1367, 0.0697, -0.1044, 2.4951, 0.0667, -0.1727, 3.1713, 0.1175, -0.1044, 2.4951, 0.0667, -0.1257, 3.1894, 0.1341, -0.2196, 3.7852, 0.2456, -0.0894, 2.3551, 0.1722, -0.1284, 2.2304, 0.1531, -0.2053, 3.7862, 0.2005, -0.1257, 3.1894, 0.1341, -0.1907, 3.7872, 0.2316, -0.2342, 3.784, 0.2097, -0.2159, 3.2856, 0.1751, -0.1727, 3.1713, 0.1175, 0.3694, 1.3928, 0, 0.2398, 1.214, -0.0147, 0.2578, 1.2014, 0, 0.0959, 1.1057, 0.0121, 0.2578, 1.2014, 0, 0.0908, 1.111, -0.0148, -0.0619, 1.5014, -0.0002, -0.1273, 1.552, -0.1166, -0.144, 1.5272, -0.1213, 0.0959, 1.1057, 0.0121, 0.2394, 1.2223, 0.0119, 0.2578, 1.2014, 0, -0.0619, 1.5014, -0.0002, -0.144, 1.5272, -0.1213, -0.0844, 1.5087, 0.0144, 0.3694, 1.3928, 0, 0.2578, 1.2014, 0, 0.2394, 1.2223, 0.0119, -0.2001, 1.66, -0.2232, -0.1497, 1.5447, -0.1022, -0.144, 1.5272, -0.1213, 0.0908, 1.111, -0.0148, 0.2398, 1.214, -0.0147, 0.0766, 1.126, 0, 0.3694, 1.3928, 0, 0.2394, 1.2223, 0.0119, 0.2398, 1.214, -0.0147, -0.2001, 1.66, -0.2232, -0.144, 1.5272, -0.1213, -0.1273, 1.552, -0.1166, -0.0844, 1.5087, 0.0144, -0.1497, 1.5447, -0.1022, -0.0688, 1.5284, 0.0116, -0.0619, 1.5014, -0.0002, -0.0844, 1.5087, 0.0144, -0.0688, 1.5284, 0.0116, -0.2001, 1.66, -0.2232, -0.1273, 1.552, -0.1166, -0.1497, 1.5447, -0.1022, -0.2323, 3.0191, 0.4548, -0.1428, 2.9197, 0.1801, -0.2001, 2.9385, 0.2601, -0.2323, 3.0191, 0.4548, -0.2001, 2.9385, 0.2601, -0.1883, 2.9661, 0.2578, -0.1579, 2.943, 0.17, -0.1883, 2.9661, 0.2578, -0.2001, 2.9385, 0.2601, -0.2323, 3.0191, 0.4548, -0.1883, 2.9661, 0.2578, -0.1428, 2.9197, 0.1801, 0.3168, 2.2361, 0.6587, 0.1805, 2.0336, 0.4773, 0.1564, 2.0463, 0.4813, 0.3168, 2.2361, 0.6587, 0.1822, 2.0577, 0.4692, 0.1805, 2.0336, 0.4773, 0.0925, 1.9635, 0.297, 0.1822, 2.0577, 0.4692, 0.0721, 1.9712, 0.3036, 0.3168, 2.2361, 0.6587, 0.1564, 2.0463, 0.4813, 0.1822, 2.0577, 0.4692, 0.0721, 1.9712, 0.3036, 0.1564, 2.0463, 0.4813, 0.0646, 1.9505, 0.3066, 0.0407, 0.0501, -0.066, -0.0008, 0.8454, 0.002, 0.0917, 0.0501, -0.0362, 0.0917, 0.0501, -0.0362, -0.0008, 0.8454, 0.002, 0.068, 0.9504, 0.0461, 0.1557, 0.8438, -0.095, 0.1078, 0.8539, -0.1333, 0.158, 0.0501, -0.2268, 0.1605, 0.8726, -0.0219, 0.1557, 0.8438, -0.095, 0.2094, 0.0501, -0.1667, 0.068, 0.9504, 0.0461, 0.1605, 0.8726, -0.0219, 0.1901, 0.0501, -0.0694, 0.0577, 0.0501, -0.2279, 0.158, 0.0501, -0.2268, 0.0476, 0.8949, -0.1355, 0.0476, 0.8949, -0.1355, 0.158, 0.0501, -0.2268, 0.1078, 0.8539, -0.1333, -0.0008, 0.8454, 0.002, 0.0094, 0.0501, -0.1363, -0.0122, 0.8823, -0.0923, -0.0122, 0.8823, -0.0923, 0.0577, 0.0501, -0.2279, 0.0476, 0.8949, -0.1355, 0.0577, 0.0501, -0.2279, 0.0094, 0.0501, -0.1363, 0.158, 0.0501, -0.2268, 0.158, 0.0501, -0.2268, 0.0094, 0.0501, -0.1363, 0.2094, 0.0501, -0.1667, 0.2094, 0.0501, -0.1667, 0.0094, 0.0501, -0.1363, 0.1901, 0.0501, -0.0694, 0.1901, 0.0501, -0.0694, 0.0094, 0.0501, -0.1363, 0.0917, 0.0501, -0.0362, 0.0917, 0.0501, -0.0362, 0.0094, 0.0501, -0.1363, 0.0407, 0.0501, -0.066, -0.007, 2.0166, 0.0978, 0.0168, 1.7781, 0.0193, 0.1605, 0.8726, -0.0219, 0.1605, 0.8726, -0.0219, 0.0168, 1.7781, 0.0193, 0.1557, 0.8438, -0.095, -0.1324, 1.9858, 0.0943, -0.0122, 0.8823, -0.0923, -0.1403, 2.1367, 0.0697, -0.1284, 2.2304, 0.1531, -0.0008, 0.8454, 0.002, -0.1324, 1.9858, 0.0943, 0.0168, 1.7781, 0.0193, -0.0589, 1.9368, 0.0059, 0.1557, 0.8438, -0.095, 0.1557, 0.8438, -0.095, -0.0589, 1.9368, 0.0059, 0.1078, 0.8539, -0.1333, 0.0476, 0.8949, -0.1355, -0.0589, 1.9368, 0.0059, -0.0122, 0.8823, -0.0923, -0.0122, 0.8823, -0.0923, -0.0589, 1.9368, 0.0059, -0.1403, 2.1367, 0.0697, 0.1605, 0.8726, -0.0219, 0.068, 0.9504, 0.0461, -0.0585, 2.2904, 0.1566, 0.068, 0.9504, 0.0461, -0.0008, 0.8454, 0.002, -0.1284, 2.2304, 0.1531, -0.058, 2.4694, 0.0954, -0.1044, 2.4951, 0.0667, 0.0168, 1.7781, 0.0193, 0.0168, 1.7781, 0.0193, -0.1044, 2.4951, 0.0667, -0.0589, 1.9368, 0.0059, -0.1324, 1.9858, 0.0943, -0.2159, 3.2856, 0.1751, -0.1284, 2.2304, 0.1531, -0.1284, 2.2304, 0.1531, -0.2159, 3.2856, 0.1751, -0.2196, 3.7852, 0.2456, 0.0168, 1.7781, 0.0193, -0.007, 2.0166, 0.0978, -0.058, 2.4694, 0.0954, -0.1907, 3.7872, 0.2316, -0.0894, 2.3551, 0.1722, -0.2196, 3.7852, 0.2456, -0.1134, 3.1739, 0.175, -0.1257, 3.1894, 0.1341, -0.007, 2.0166, 0.0978, -0.007, 2.0166, 0.0978, -0.1257, 3.1894, 0.1341, -0.058, 2.4694, 0.0954, -0.1907, 3.7872, 0.2316, -0.1134, 3.1739, 0.175, -0.0585, 2.2904, 0.1566, -0.0585, 2.2904, 0.1566, -0.1134, 3.1739, 0.175, -0.007, 2.0166, 0.0978, -0.1907, 3.7872, 0.2316, -0.2196, 3.7852, 0.2456, -0.2053, 3.7862, 0.2005, -0.2053, 3.7862, 0.2005, -0.2196, 3.7852, 0.2456, -0.2342, 3.784, 0.2097, -0.2159, 3.2856, 0.1751, -0.1403, 2.1367, 0.0697, -0.1727, 3.1713, 0.1175, -0.0585, 2.2904, 0.1566, -0.0894, 2.3551, 0.1722, -0.1907, 3.7872, 0.2316, -0.1044, 2.4951, 0.0667, -0.058, 2.4694, 0.0954, -0.1257, 3.1894, 0.1341, 0.1822, 2.0577, 0.4692, 0.0925, 1.9635, 0.297, 0.1805, 2.0336, 0.4773, 0.1805, 2.0336, 0.4773, 0.0925, 1.9635, 0.297, 0.0876, 1.9456, 0.3098, -0.1727, 3.1713, 0.1175, -0.1257, 3.1894, 0.1341, -0.2053, 3.7862, 0.2005, -0.2342, 3.784, 0.2097, -0.1727, 3.1713, 0.1175, -0.2053, 3.7862, 0.2005, -0.1257, 3.1894, 0.1341, -0.1134, 3.1739, 0.175, -0.1907, 3.7872, 0.2316, -0.2196, 3.7852, 0.2456, -0.2159, 3.2856, 0.1751, -0.2342, 3.784, 0.2097, 0.2578, 1.2014, 0, 0.2398, 1.214, -0.0147, 0.0908, 1.111, -0.0148, 0.2398, 1.214, -0.0147, 0.2394, 1.2223, 0.0119, 0.0766, 1.126, 0, -0.144, 1.5272, -0.1213, -0.1497, 1.5447, -0.1022, -0.0844, 1.5087, 0.0144, 0.0959, 1.1057, 0.0121, 0.0908, 1.111, -0.0148, 0.0766, 1.126, 0, 0.0766, 1.126, 0, 0.2394, 1.2223, 0.0119, 0.0959, 1.1057, 0.0121, -0.1497, 1.5447, -0.1022, -0.1273, 1.552, -0.1166, -0.0688, 1.5284, 0.0116, -0.0688, 1.5284, 0.0116, -0.1273, 1.552, -0.1166, -0.0619, 1.5014, -0.0002, -0.1579, 2.943, 0.17, -0.2001, 2.9385, 0.2601, -0.1428, 2.9197, 0.1801, -0.1428, 2.9197, 0.1801, -0.1883, 2.9661, 0.2578, -0.1334, 2.947, 0.1748, -0.1334, 2.947, 0.1748, -0.1579, 2.943, 0.17, -0.1428, 2.9197, 0.1801, -0.1334, 2.947, 0.1748, -0.1883, 2.9661, 0.2578, -0.1579, 2.943, 0.17, 0.1805, 2.0336, 0.4773, 0.0876, 1.9456, 0.3098, 0.1564, 2.0463, 0.4813, 0.1564, 2.0463, 0.4813, 0.0876, 1.9456, 0.3098, 0.0646, 1.9505, 0.3066, -0.0327, 1.8832, 0.0708, -0.025, 1.9111, 0.0602, 0.0646, 1.9505, 0.3066, 0.0646, 1.9505, 0.3066, -0.025, 1.9111, 0.0602, 0.0721, 1.9712, 0.3036, -0.025, 1.9111, 0.0602, -0.0327, 1.8832, 0.0708, 0.0023, 1.8989, 0.0528, 0.0023, 1.8989, 0.0528, -0.0327, 1.8832, 0.0708, -0.0053, 1.871, 0.0635, 0.1822, 2.0577, 0.4692, 0.1564, 2.0463, 0.4813, 0.0721, 1.9712, 0.3036, 0.0721, 1.9712, 0.3036, -0.025, 1.9111, 0.0602, 0.0925, 1.9635, 0.297, 0.0925, 1.9635, 0.297, -0.025, 1.9111, 0.0602, 0.0023, 1.8989, 0.0528, 0.0023, 1.8989, 0.0528, -0.0053, 1.871, 0.0635, 0.0925, 1.9635, 0.297, 0.0925, 1.9635, 0.297, -0.0053, 1.871, 0.0635, 0.0876, 1.9456, 0.3098, 0.0876, 1.9456, 0.3098, -0.0053, 1.871, 0.0635, 0.0646, 1.9505, 0.3066, 0.0646, 1.9505, 0.3066, -0.0053, 1.871, 0.0635, -0.0327, 1.8832, 0.0708, -0.1993, 1.0995, 0.0997, -0.094, 0.9531, 0.0307, -0.1138, 0.937, 0.0238, 0.012, 0.8735, -0.0477, -0.1138, 0.937, 0.0238, 0.0245, 0.8829, -0.0247, 0.012, 0.8735, -0.0477, -0.1047, 0.9597, 0.0059, -0.1138, 0.937, 0.0238, -0.1993, 1.0995, 0.0997, -0.1138, 0.937, 0.0238, -0.1047, 0.9597, 0.0059, 0.0245, 0.8829, -0.0247, -0.094, 0.9531, 0.0307, 0.0275, 0.8994, -0.0437, -0.1993, 1.0995, 0.0997, -0.1047, 0.9597, 0.0059, -0.094, 0.9531, 0.0307, -0.1138, 0.937, 0.0238, -0.094, 0.9531, 0.0307, 0.0245, 0.8829, -0.0247, -0.094, 0.9531, 0.0307, -0.1047, 0.9597, 0.0059, 0.0275, 0.8994, -0.0437, 0.012, 0.8735, -0.0477, 0.0245, 0.8829, -0.0247, 0.0275, 0.8994, -0.0437, 0.0275, 0.8994, -0.0437, -0.1047, 0.9597, 0.0059, 0.012, 0.8735, -0.0477, -0.0643, 3.3026, -0.1389, -0.1556, 3.1622, 0.1423, -0.1115, 3.1708, 0.0402, -0.0643, 3.3026, -0.1389, -0.1115, 3.1708, 0.0402, -0.1092, 3.2004, 0.0453, -0.1305, 3.1753, 0.1509, -0.1092, 3.2004, 0.0453, -0.1115, 3.1708, 0.0402, -0.0643, 3.3026, -0.1389, -0.1092, 3.2004, 0.0453, -0.1556, 3.1622, 0.1423, -0.1305, 3.1753, 0.1509, -0.1115, 3.1708, 0.0402, -0.1556, 3.1622, 0.1423, -0.1556, 3.1622, 0.1423, -0.1092, 3.2004, 0.0453, -0.1509, 3.1902, 0.1501, -0.1509, 3.1902, 0.1501, -0.1305, 3.1753, 0.1509, -0.1556, 3.1622, 0.1423, -0.1509, 3.1902, 0.1501, -0.1092, 3.2004, 0.0453, -0.1305, 3.1753, 0.1509)
7 |
8 | [node name="StaticBody3D" type="StaticBody3D"]
9 |
10 | [node name="CollisionShape3D" type="CollisionShape3D" parent="."]
11 | shape = SubResource("ConcavePolygonShape3D_tqcty")
12 |
13 | [node name="DeadTree" type="MeshInstance3D" parent="."]
14 | mesh = ExtResource("1_jxlrm")
15 | skeleton = NodePath("")
16 |
--------------------------------------------------------------------------------
/addons/scatterbox/Examples/testTree2.tscn:
--------------------------------------------------------------------------------
1 | [gd_scene load_steps=7 format=3 uid="uid://cpdyf5361hxrn"]
2 |
3 | [ext_resource type="ArrayMesh" uid="uid://cphvxowdhpyxs" path="res://addons/scatterbox/Examples/tree1.obj" id="1_8gvpx"]
4 | [ext_resource type="Texture2D" uid="uid://kb2d8t6b5408" path="res://addons/scatterbox/Examples/pineTree_bark.png" id="2_p6i4n"]
5 | [ext_resource type="Texture2D" uid="uid://bqfgsww0lwu26" path="res://addons/scatterbox/Examples/pineTree_leaves.png" id="3_h31vm"]
6 |
7 | [sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_2n1x2"]
8 | data = PackedVector3Array(0, 1.2628, -0.5613, 0, 0, -0.7344, 0.4861, 1.2628, -0.2806, 0.4861, 1.2628, -0.2806, 0, 0, -0.7344, 0.636, 0, -0.3672, 0.4861, 1.2628, -0.2806, 0.636, 0, -0.3672, 0.4861, 1.2628, 0.2806, 0.4861, 1.2628, 0.2806, 0.636, 0, -0.3672, 0.636, 0, 0.3672, 0.4861, 1.2628, 0.2806, 0.636, 0, 0.3672, 0, 1.2628, 0.5613, 0, 1.2628, 0.5613, 0.636, 0, 0.3672, 0, 0, 0.7344, -0.4861, 1.2628, 0.2806, 0, 0, 0.7344, -0.636, 0, 0.3672, -0.4861, 1.2628, 0.2806, -0.636, 0, 0.3672, -0.4861, 1.2628, -0.2806, -0.4861, 1.2628, -0.2806, -0.636, 0, 0.3672, -0.636, 0, -0.3672, -0.4861, 1.2628, -0.2806, -0.636, 0, -0.3672, 0, 1.2628, -0.5613, 0, 1.2628, -0.5613, -0.636, 0, -0.3672, 0, 0, -0.7344, 0, 0, -0.7344, -0.636, 0, -0.3672, 0.636, 0, -0.3672, 0.636, 0, 0.3672, 0.636, 0, -0.3672, 0, 0, 0.7344, -0.636, 0, 0.3672, 0, 0, 0.7344, -0.636, 0, -0.3672, 0, 0, 0.7344, 0.636, 0, -0.3672, -0.636, 0, -0.3672, -0.0697, 2.8624, -0.163, 0.2126, 2.8624, -0.326, -0.0216, 4.4887, -0.0754, -0.0216, 4.4887, -0.0754, 0.2126, 2.8624, -0.326, 0.1089, 4.4887, -0.1508, -0.4861, 1.2628, 0.2806, -0.4861, 1.2628, -0.2806, -0.0697, 2.8624, 0.163, -0.0697, 2.8624, 0.163, -0.4861, 1.2628, -0.2806, -0.0697, 2.8624, -0.163, 0, 1.2628, -0.5613, 0.4861, 1.2628, -0.2806, 0.2126, 2.8624, -0.326, 0.2126, 2.8624, -0.326, 0.4861, 1.2628, -0.2806, 0.495, 2.8624, -0.163, 0.4861, 1.2628, 0.2806, 0, 1.2628, 0.5613, 0.495, 2.8624, 0.163, 0.495, 2.8624, 0.163, 0, 1.2628, 0.5613, 0.2126, 2.8624, 0.326, -0.0697, 2.8624, -0.163, 0, 1.2628, -0.5613, 0.2126, 2.8624, -0.326, 0, 1.2628, 0.5613, -0.4861, 1.2628, 0.2806, 0.2126, 2.8624, 0.326, 0.2126, 2.8624, 0.326, -0.4861, 1.2628, 0.2806, -0.0697, 2.8624, 0.163, 0.2126, 2.8624, 0.326, -0.0697, 2.8624, 0.163, 0.1089, 4.4887, 0.1508, 0.1089, 4.4887, 0.1508, -0.0697, 2.8624, 0.163, -0.0216, 4.4887, 0.0754, 0.495, 2.8624, -0.163, 0.495, 2.8624, 0.163, 0.2395, 4.4887, -0.0754, 0.2395, 4.4887, -0.0754, 0.495, 2.8624, 0.163, 0.2395, 4.4887, 0.0754, -0.0216, 4.4887, 0.0754, -0.0697, 2.8624, -0.163, -0.0216, 4.4887, -0.0754, 0.495, 2.8624, 0.163, 0.2126, 2.8624, 0.326, 0.2395, 4.4887, 0.0754, 0.2395, 4.4887, 0.0754, 0.2126, 2.8624, 0.326, 0.1089, 4.4887, 0.1508, 0.2126, 2.8624, -0.326, 0.495, 2.8624, -0.163, 0.1089, 4.4887, -0.1508, 0.1089, 4.4887, -0.1508, 0.495, 2.8624, -0.163, 0.2395, 4.4887, -0.0754, -0.0216, 4.4887, 0.0754, -0.0216, 4.4887, -0.0754, 0.1139, 6.3394, -0.0553, 0.2395, 4.4887, 0.0754, 0.1089, 4.4887, 0.1508, 0.1139, 6.3394, -0.0553, 0.1089, 4.4887, -0.1508, 0.2395, 4.4887, -0.0754, 0.1139, 6.3394, -0.0553, 0, 1.2628, 0.5613, 0, 0, 0.7344, -0.4861, 1.2628, 0.2806, 0.4861, 1.2628, -0.2806, 0.4861, 1.2628, 0.2806, 0.495, 2.8624, -0.163, 0.495, 2.8624, -0.163, 0.4861, 1.2628, 0.2806, 0.495, 2.8624, 0.163, -0.4861, 1.2628, -0.2806, 0, 1.2628, -0.5613, -0.0697, 2.8624, -0.163, -0.0216, 4.4887, -0.0754, 0.1089, 4.4887, -0.1508, 0.1139, 6.3394, -0.0553, -0.0697, 2.8624, 0.163, -0.0697, 2.8624, -0.163, -0.0216, 4.4887, 0.0754, 0.1089, 4.4887, 0.1508, -0.0216, 4.4887, 0.0754, 0.1139, 6.3394, -0.0553, 0.2395, 4.4887, -0.0754, 0.2395, 4.4887, 0.0754, 0.1139, 6.3394, -0.0553, 0.0794, 4.7027, 0, 0.0794, 1.6028, -1.55, 1.4217, 1.6028, -0.775, 0.0794, 4.7027, 0, 0.0794, 1.6028, 1.55, -1.2629, 1.6028, 0.775, 0.0794, 1.6028, -1.55, -1.2629, 1.6028, -0.775, 1.4217, 1.6028, -0.775, 1.4217, 1.6028, 0.775, 1.4217, 1.6028, -0.775, 0.0794, 1.6028, 1.55, -1.2629, 1.6028, 0.775, 0.0794, 1.6028, 1.55, -1.2629, 1.6028, -0.775, 0.0794, 1.6028, 1.55, 1.4217, 1.6028, -0.775, -1.2629, 1.6028, -0.775, 0.0794, 4.7027, 0, -1.2629, 1.6028, 0.775, -1.2629, 1.6028, -0.775, 0.0794, 4.7027, 0, -1.2629, 1.6028, -0.775, 0.0794, 1.6028, -1.55, 0.1077, 6.4566, -0.0747, 0.1077, 5.6327, -0.4866, 0.4645, 5.6327, -0.2806, 0.1077, 6.4566, -0.0747, 0.4645, 5.6327, -0.2806, 0.4645, 5.6327, 0.1313, 0.1077, 6.4566, -0.0747, 0.4645, 5.6327, 0.1313, 0.1077, 5.6327, 0.3373, 0.1077, 6.4566, -0.0747, 0.1077, 5.6327, 0.3373, -0.249, 5.6327, 0.1313, 0.1077, 5.6327, -0.4866, -0.249, 5.6327, -0.2806, 0.4645, 5.6327, -0.2806, 0.4645, 5.6327, 0.1313, 0.4645, 5.6327, -0.2806, 0.1077, 5.6327, 0.3373, -0.249, 5.6327, 0.1313, 0.1077, 5.6327, 0.3373, -0.249, 5.6327, -0.2806, 0.1077, 5.6327, 0.3373, 0.4645, 5.6327, -0.2806, -0.249, 5.6327, -0.2806, 0.1077, 6.4566, -0.0747, -0.249, 5.6327, -0.2806, 0.1077, 5.6327, -0.4866, 0.1361, 6.2715, -0.0614, 0.1361, 4.8879, -0.7532, 0.7352, 4.8879, -0.4073, 0.1361, 6.2715, -0.0614, 0.7352, 4.8879, -0.4073, 0.7352, 4.8879, 0.2845, 0.1361, 6.2715, -0.0614, 0.7352, 4.8879, 0.2845, 0.1361, 4.8879, 0.6303, 0.1361, 6.2715, -0.0614, 0.1361, 4.8879, 0.6303, -0.463, 4.8879, 0.2845, 0.1361, 4.8879, -0.7532, -0.463, 4.8879, -0.4073, 0.7352, 4.8879, -0.4073, 0.7352, 4.8879, 0.2845, 0.7352, 4.8879, -0.4073, 0.1361, 4.8879, 0.6303, -0.463, 4.8879, 0.2845, 0.1361, 4.8879, 0.6303, -0.463, 4.8879, -0.4073, 0.1361, 4.8879, 0.6303, 0.7352, 4.8879, -0.4073, -0.463, 4.8879, -0.4073, 0.1361, 6.2715, -0.0614, -0.463, 4.8879, 0.2845, -0.463, 4.8879, -0.4073, 0.1361, 6.2715, -0.0614, -0.463, 4.8879, -0.4073, 0.1361, 4.8879, -0.7532, 0.1455, 5.9304, -0.1125, 1.0288, 3.8907, -0.6224, 1.0288, 3.8907, 0.3975, 0.1455, 5.9304, -0.1125, 1.0288, 3.8907, 0.3975, 0.1455, 3.8907, 0.9074, 0.1455, 5.9304, -0.1125, 0.1455, 3.8907, 0.9074, -0.7377, 3.8907, 0.3975, 0.1455, 3.8907, -1.1323, -0.7377, 3.8907, -0.6224, 1.0288, 3.8907, -0.6224, 1.0288, 3.8907, 0.3975, 1.0288, 3.8907, -0.6224, 0.1455, 3.8907, 0.9074, -0.7377, 3.8907, 0.3975, 0.1455, 3.8907, 0.9074, -0.7377, 3.8907, -0.6224, 0.1455, 3.8907, 0.9074, 1.0288, 3.8907, -0.6224, -0.7377, 3.8907, -0.6224, 0.1455, 5.9304, -0.1125, -0.7377, 3.8907, -0.6224, 0.1455, 3.8907, -1.1323, 0.1172, 5.4459, -0.0473, 0.1172, 2.8556, -1.3424, 1.2388, 2.8556, -0.6948, 0.1172, 5.4459, -0.0473, 1.2388, 2.8556, -0.6948, 1.2388, 2.8556, 0.6003, 0.1172, 5.4459, -0.0473, 1.2388, 2.8556, 0.6003, 0.1172, 2.8556, 1.2479, 0.1172, 5.4459, -0.0473, 0.1172, 2.8556, 1.2479, -1.0045, 2.8556, 0.6003, 0.1172, 2.8556, -1.3424, -1.0045, 2.8556, -0.6948, 1.2388, 2.8556, -0.6948, 1.2388, 2.8556, 0.6003, 1.2388, 2.8556, -0.6948, 0.1172, 2.8556, 1.2479, -1.0045, 2.8556, 0.6003, 0.1172, 2.8556, 1.2479, -1.0045, 2.8556, -0.6948, 0.1172, 2.8556, 1.2479, 1.2388, 2.8556, -0.6948, -1.0045, 2.8556, -0.6948, 0.1172, 5.4459, -0.0473, -1.0045, 2.8556, 0.6003, -1.0045, 2.8556, -0.6948, 0.0794, 4.7027, 0, 1.4217, 1.6028, -0.775, 1.4217, 1.6028, 0.775, 0.0794, 4.7027, 0, 1.4217, 1.6028, 0.775, 0.0794, 1.6028, 1.55, 0.1077, 6.4566, -0.0747, -0.249, 5.6327, 0.1313, -0.249, 5.6327, -0.2806, 0.1455, 5.9304, -0.1125, 0.1455, 3.8907, -1.1323, 1.0288, 3.8907, -0.6224, 0.1455, 5.9304, -0.1125, -0.7377, 3.8907, 0.3975, -0.7377, 3.8907, -0.6224, 0.1172, 5.4459, -0.0473, -1.0045, 2.8556, -0.6948, 0.1172, 2.8556, -1.3424)
9 |
10 | [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_6tr7i"]
11 | albedo_texture = ExtResource("2_p6i4n")
12 |
13 | [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_10tgd"]
14 | albedo_texture = ExtResource("3_h31vm")
15 |
16 | [node name="StaticBody3D" type="StaticBody3D"]
17 |
18 | [node name="CollisionShape3D" type="CollisionShape3D" parent="."]
19 | shape = SubResource("ConcavePolygonShape3D_2n1x2")
20 |
21 | [node name="Tree1" type="MeshInstance3D" parent="."]
22 | mesh = ExtResource("1_8gvpx")
23 | skeleton = NodePath("")
24 | surface_material_override/0 = SubResource("StandardMaterial3D_6tr7i")
25 | surface_material_override/1 = SubResource("StandardMaterial3D_10tgd")
26 |
--------------------------------------------------------------------------------
/addons/scatterbox/Examples/tree1.obj:
--------------------------------------------------------------------------------
1 | # Blender v2.91.0 OBJ File: ''
2 | # www.blender.org
3 | mtllib tree1.mtl
4 | o Cylinder
5 | v -0.000000 0.000000 -0.734358
6 | v -0.000000 0.000000 -0.734358
7 | v -0.000000 0.000000 -0.734358
8 | v -0.000000 1.262846 -0.561260
9 | v -0.000000 1.262846 -0.561260
10 | v -0.000000 1.262846 -0.561260
11 | v -0.000000 1.262846 -0.561260
12 | v 0.635972 0.000000 -0.367179
13 | v 0.635972 0.000000 -0.367179
14 | v 0.635972 0.000000 -0.367179
15 | v 0.486066 1.262846 -0.280630
16 | v 0.486066 1.262846 -0.280630
17 | v 0.486066 1.262846 -0.280630
18 | v 0.486066 1.262846 -0.280630
19 | v 0.635972 0.000000 0.367179
20 | v 0.635972 0.000000 0.367179
21 | v 0.635972 0.000000 0.367179
22 | v 0.486066 1.262846 0.280630
23 | v 0.486066 1.262846 0.280630
24 | v 0.486066 1.262846 0.280630
25 | v 0.486066 1.262846 0.280630
26 | v -0.000000 0.000000 0.734358
27 | v -0.000000 0.000000 0.734358
28 | v -0.000000 0.000000 0.734358
29 | v -0.000000 1.262846 0.561260
30 | v -0.000000 1.262846 0.561260
31 | v -0.000000 1.262846 0.561260
32 | v -0.000000 1.262846 0.561260
33 | v -0.635972 0.000000 0.367179
34 | v -0.635972 0.000000 0.367179
35 | v -0.635972 0.000000 0.367179
36 | v -0.486066 1.262846 0.280630
37 | v -0.486066 1.262846 0.280630
38 | v -0.486066 1.262846 0.280630
39 | v -0.486066 1.262846 0.280630
40 | v -0.635972 0.000000 -0.367179
41 | v -0.635972 0.000000 -0.367179
42 | v -0.635972 0.000000 -0.367179
43 | v -0.486066 1.262846 -0.280630
44 | v -0.486066 1.262846 -0.280630
45 | v -0.486066 1.262846 -0.280630
46 | v -0.486066 1.262846 -0.280630
47 | v 0.212641 2.862376 -0.326002
48 | v 0.212641 2.862376 -0.326002
49 | v 0.212641 2.862376 -0.326002
50 | v 0.212641 2.862376 -0.326002
51 | v 0.494966 2.862376 -0.163001
52 | v 0.494966 2.862376 -0.163001
53 | v 0.494966 2.862376 -0.163001
54 | v 0.494966 2.862376 -0.163001
55 | v 0.494966 2.862376 0.163001
56 | v 0.494966 2.862376 0.163001
57 | v 0.494966 2.862376 0.163001
58 | v 0.494966 2.862376 0.163001
59 | v 0.212641 2.862376 0.326002
60 | v 0.212641 2.862376 0.326002
61 | v 0.212641 2.862376 0.326002
62 | v 0.212641 2.862376 0.326002
63 | v -0.069685 2.862376 0.163001
64 | v -0.069685 2.862376 0.163001
65 | v -0.069685 2.862376 0.163001
66 | v -0.069685 2.862376 0.163001
67 | v -0.069685 2.862376 -0.163001
68 | v -0.069685 2.862376 -0.163001
69 | v -0.069685 2.862376 -0.163001
70 | v -0.069685 2.862376 -0.163001
71 | v 0.108945 4.488683 -0.150767
72 | v 0.108945 4.488683 -0.150767
73 | v 0.108945 4.488683 -0.150767
74 | v 0.108945 4.488683 -0.150767
75 | v 0.239513 4.488683 -0.075383
76 | v 0.239513 4.488683 -0.075383
77 | v 0.239513 4.488683 -0.075383
78 | v 0.239513 4.488683 -0.075383
79 | v 0.239513 4.488683 0.075384
80 | v 0.239513 4.488683 0.075384
81 | v 0.239513 4.488683 0.075384
82 | v 0.239513 4.488683 0.075384
83 | v 0.108945 4.488683 0.150767
84 | v 0.108945 4.488683 0.150767
85 | v 0.108945 4.488683 0.150767
86 | v 0.108945 4.488683 0.150767
87 | v -0.021622 4.488683 0.075384
88 | v -0.021622 4.488683 0.075384
89 | v -0.021622 4.488683 0.075384
90 | v -0.021622 4.488683 0.075384
91 | v -0.021622 4.488683 -0.075383
92 | v -0.021622 4.488683 -0.075383
93 | v -0.021622 4.488683 -0.075383
94 | v -0.021622 4.488683 -0.075383
95 | v 0.113925 6.339444 -0.055332
96 | v 0.113925 6.339444 -0.055332
97 | v 0.113925 6.339444 -0.055332
98 | v 0.113925 6.339444 -0.055332
99 | v 0.113925 6.339444 -0.055332
100 | v 0.113925 6.339444 -0.055332
101 | v 0.079386 1.602794 -1.549958
102 | v 0.079386 1.602794 -1.549958
103 | v 0.079386 1.602794 -1.549958
104 | v 1.421689 1.602794 -0.774979
105 | v 1.421689 1.602794 -0.774979
106 | v 1.421689 1.602794 -0.774979
107 | v 1.421689 1.602794 0.774979
108 | v 1.421689 1.602794 0.774979
109 | v 1.421689 1.602794 0.774979
110 | v 0.079386 1.602794 1.549958
111 | v 0.079386 1.602794 1.549958
112 | v 0.079386 1.602794 1.549958
113 | v -1.262917 1.602794 0.774979
114 | v -1.262917 1.602794 0.774979
115 | v -1.262917 1.602794 0.774979
116 | v -1.262917 1.602794 -0.774979
117 | v -1.262917 1.602794 -0.774979
118 | v -1.262917 1.602794 -0.774979
119 | v 0.079386 4.702710 0.000000
120 | v 0.079386 4.702710 0.000000
121 | v 0.079386 4.702710 0.000000
122 | v 0.079386 4.702710 0.000000
123 | v 0.079386 4.702710 0.000000
124 | v 0.079386 4.702710 0.000000
125 | v 0.107738 5.632703 -0.486622
126 | v 0.107738 5.632703 -0.486622
127 | v 0.107738 5.632703 -0.486622
128 | v 0.464507 5.632703 -0.280641
129 | v 0.464507 5.632703 -0.280641
130 | v 0.464507 5.632703 -0.280641
131 | v 0.464507 5.632703 0.131320
132 | v 0.464507 5.632703 0.131320
133 | v 0.464507 5.632703 0.131320
134 | v 0.107738 5.632703 0.337301
135 | v 0.107738 5.632703 0.337301
136 | v 0.107738 5.632703 0.337301
137 | v -0.249031 5.632703 0.131320
138 | v -0.249031 5.632703 0.131320
139 | v -0.249031 5.632703 0.131320
140 | v -0.249031 5.632703 -0.280641
141 | v -0.249031 5.632703 -0.280641
142 | v -0.249031 5.632703 -0.280641
143 | v 0.107738 6.456626 -0.074660
144 | v 0.107738 6.456626 -0.074660
145 | v 0.107738 6.456626 -0.074660
146 | v 0.107738 6.456626 -0.074660
147 | v 0.107738 6.456626 -0.074660
148 | v 0.107738 6.456626 -0.074660
149 | v 0.136090 4.887925 -0.753195
150 | v 0.136090 4.887925 -0.753195
151 | v 0.136090 4.887925 -0.753195
152 | v 0.735177 4.887925 -0.407312
153 | v 0.735177 4.887925 -0.407312
154 | v 0.735177 4.887925 -0.407312
155 | v 0.735176 4.887925 0.284453
156 | v 0.735176 4.887925 0.284453
157 | v 0.735176 4.887925 0.284453
158 | v 0.136090 4.887925 0.630336
159 | v 0.136090 4.887925 0.630336
160 | v 0.136090 4.887925 0.630336
161 | v -0.462996 4.887925 0.284453
162 | v -0.462996 4.887925 0.284453
163 | v -0.462996 4.887925 0.284453
164 | v -0.462996 4.887925 -0.407312
165 | v -0.462996 4.887925 -0.407312
166 | v -0.462996 4.887925 -0.407312
167 | v 0.136090 6.271456 -0.061429
168 | v 0.136090 6.271456 -0.061429
169 | v 0.136090 6.271456 -0.061429
170 | v 0.136090 6.271456 -0.061429
171 | v 0.136090 6.271456 -0.061429
172 | v 0.136090 6.271456 -0.061429
173 | v 0.145541 3.890728 -1.132317
174 | v 0.145541 3.890728 -1.132317
175 | v 0.145541 3.890728 -1.132317
176 | v 1.028760 3.890728 -0.622390
177 | v 1.028760 3.890728 -0.622390
178 | v 1.028760 3.890728 -0.622390
179 | v 1.028760 3.890728 0.397464
180 | v 1.028760 3.890728 0.397464
181 | v 1.028760 3.890728 0.397464
182 | v 0.145541 3.890728 0.907390
183 | v 0.145541 3.890728 0.907390
184 | v 0.145541 3.890728 0.907390
185 | v -0.737679 3.890728 0.397464
186 | v -0.737679 3.890728 0.397464
187 | v -0.737679 3.890728 0.397464
188 | v -0.737679 3.890728 -0.622390
189 | v -0.737679 3.890728 -0.622390
190 | v -0.737679 3.890728 -0.622390
191 | v 0.145541 5.930435 -0.112463
192 | v 0.145541 5.930435 -0.112463
193 | v 0.145541 5.930435 -0.112463
194 | v 0.145541 5.930435 -0.112463
195 | v 0.145541 5.930435 -0.112463
196 | v 0.145541 5.930435 -0.112463
197 | v 0.117189 2.855582 -1.342417
198 | v 0.117189 2.855582 -1.342417
199 | v 0.117189 2.855582 -1.342417
200 | v 1.238833 2.855582 -0.694835
201 | v 1.238833 2.855582 -0.694835
202 | v 1.238833 2.855582 -0.694835
203 | v 1.238833 2.855582 0.600328
204 | v 1.238833 2.855582 0.600328
205 | v 1.238833 2.855582 0.600328
206 | v 0.117189 2.855582 1.247910
207 | v 0.117189 2.855582 1.247910
208 | v 0.117189 2.855582 1.247910
209 | v -1.004456 2.855582 0.600328
210 | v -1.004456 2.855582 0.600328
211 | v -1.004456 2.855582 0.600328
212 | v -1.004456 2.855582 -0.694835
213 | v -1.004456 2.855582 -0.694835
214 | v -1.004456 2.855582 -0.694835
215 | v 0.117189 5.445909 -0.047253
216 | v 0.117189 5.445909 -0.047253
217 | v 0.117189 5.445909 -0.047253
218 | v 0.117189 5.445909 -0.047253
219 | v 0.117189 5.445909 -0.047253
220 | v 0.117189 5.445909 -0.047253
221 | vt 0.478568 0.024528
222 | vt 0.478568 0.420427
223 | vt 0.630949 0.420427
224 | vt 0.677944 0.024528
225 | vt 0.623948 0.024528
226 | vt 0.596815 0.420427
227 | vt 0.420861 0.420427
228 | vt 0.393728 0.024528
229 | vt 0.677944 0.024528
230 | vt 0.630949 0.420427
231 | vt 0.478568 0.420427
232 | vt 0.478568 0.024528
233 | vt 0.478568 0.024528
234 | vt 0.326188 0.420427
235 | vt 0.279193 0.024528
236 | vt 0.393728 0.024528
237 | vt 0.420861 0.420427
238 | vt 0.596815 0.420427
239 | vt 0.623948 0.024528
240 | vt 0.279193 0.024528
241 | vt 0.326188 0.420427
242 | vt 0.478568 0.420427
243 | vt 0.478568 0.024528
244 | vt 0.279193 1.003023
245 | vt 0.478568 1.118132
246 | vt 0.677944 1.003023
247 | vt 0.677944 0.772803
248 | vt 0.478568 0.657693
249 | vt 0.279193 0.772803
250 | vt 0.545231 0.921876
251 | vt 0.456722 0.921876
252 | vt 0.471790 1.431719
253 | vt 0.512723 1.431719
254 | vt 0.596815 0.420427
255 | vt 0.420861 0.420427
256 | vt 0.457738 0.921876
257 | vt 0.559939 0.921876
258 | vt 0.630949 0.420427
259 | vt 0.478568 0.420427
260 | vt 0.545231 0.921876
261 | vt 0.633739 0.921876
262 | vt 0.478568 0.420427
263 | vt 0.630949 0.420427
264 | vt 0.633739 0.921876
265 | vt 0.545231 0.921876
266 | vt 0.478568 0.420427
267 | vt 0.456722 0.921876
268 | vt 0.545231 0.921876
269 | vt 0.326188 0.420427
270 | vt 0.478568 0.420427
271 | vt 0.545231 0.921876
272 | vt 0.456722 0.921876
273 | vt 0.456722 0.921876
274 | vt 0.545231 0.921876
275 | vt 0.512723 1.431719
276 | vt 0.471790 1.431719
277 | vt 0.457738 0.921876
278 | vt 0.559939 0.921876
279 | vt 0.532471 1.431719
280 | vt 0.485206 1.431719
281 | vt 0.559939 0.921876
282 | vt 0.485206 1.431719
283 | vt 0.532471 1.431719
284 | vt 0.545231 0.921876
285 | vt 0.633739 0.921876
286 | vt 0.553655 1.431719
287 | vt 0.512723 1.431719
288 | vt 0.633739 0.921876
289 | vt 0.545231 0.921876
290 | vt 0.512723 1.431719
291 | vt 0.553655 1.431719
292 | vt 0.532471 1.431719
293 | vt 0.485206 1.431719
294 | vt 0.508838 2.011929
295 | vt 0.512723 1.431719
296 | vt 0.553655 1.431719
297 | vt 0.537412 2.011929
298 | vt 0.553655 1.431719
299 | vt 0.512723 1.431719
300 | vt 0.537412 2.011929
301 | vt 0.478568 0.420427
302 | vt 0.420861 0.420427
303 | vt 0.596815 0.420427
304 | vt 0.559939 0.921876
305 | vt 0.457738 0.921876
306 | vt 0.326188 0.420427
307 | vt 0.512723 1.431719
308 | vt 0.471790 1.431719
309 | vt 0.537412 2.011929
310 | vt 0.457738 0.921876
311 | vt 0.471790 1.431719
312 | vt 0.512723 1.431719
313 | vt 0.537412 2.011929
314 | vt 0.485206 1.431719
315 | vt 0.532471 1.431719
316 | vt 0.508838 2.011929
317 | vt 0.250000 0.490000
318 | vt 0.250000 0.250000
319 | vt 0.457846 0.370000
320 | vt 0.250000 0.010000
321 | vt 0.250000 0.250000
322 | vt 0.042154 0.130000
323 | vt 0.542154 0.370000
324 | vt 0.750000 0.490000
325 | vt 0.957846 0.370000
326 | vt 0.957846 0.130000
327 | vt 0.750000 0.010000
328 | vt 0.542154 0.130000
329 | vt 0.042154 0.130000
330 | vt 0.250000 0.250000
331 | vt 0.042154 0.370000
332 | vt 0.042154 0.370000
333 | vt 0.250000 0.250000
334 | vt 0.250000 0.490000
335 | vt 0.250000 0.490000
336 | vt 0.250000 0.250000
337 | vt 0.457846 0.370000
338 | vt 0.457846 0.370000
339 | vt 0.250000 0.250000
340 | vt 0.457846 0.130000
341 | vt 0.457846 0.130000
342 | vt 0.250000 0.250000
343 | vt 0.250000 0.010000
344 | vt 0.250000 0.010000
345 | vt 0.250000 0.250000
346 | vt 0.042154 0.130000
347 | vt 0.542154 0.370000
348 | vt 0.750000 0.490000
349 | vt 0.957846 0.370000
350 | vt 0.957846 0.130000
351 | vt 0.750000 0.010000
352 | vt 0.542154 0.130000
353 | vt 0.042154 0.370000
354 | vt 0.250000 0.250000
355 | vt 0.250000 0.490000
356 | vt 0.250000 0.490000
357 | vt 0.250000 0.250000
358 | vt 0.457846 0.370000
359 | vt 0.457846 0.370000
360 | vt 0.250000 0.250000
361 | vt 0.457846 0.130000
362 | vt 0.457846 0.130000
363 | vt 0.250000 0.250000
364 | vt 0.250000 0.010000
365 | vt 0.250000 0.010000
366 | vt 0.250000 0.250000
367 | vt 0.042154 0.130000
368 | vt 0.542154 0.370000
369 | vt 0.750000 0.490000
370 | vt 0.957846 0.370000
371 | vt 0.957846 0.130000
372 | vt 0.750000 0.010000
373 | vt 0.542154 0.130000
374 | vt 0.042154 0.130000
375 | vt 0.250000 0.250000
376 | vt 0.042154 0.370000
377 | vt 0.042154 0.370000
378 | vt 0.250000 0.250000
379 | vt 0.250000 0.490000
380 | vt 0.457846 0.370000
381 | vt 0.250000 0.250000
382 | vt 0.457846 0.130000
383 | vt 0.457846 0.130000
384 | vt 0.250000 0.250000
385 | vt 0.250000 0.010000
386 | vt 0.250000 0.010000
387 | vt 0.250000 0.250000
388 | vt 0.042154 0.130000
389 | vt 0.542154 0.370000
390 | vt 0.750000 0.490000
391 | vt 0.957846 0.370000
392 | vt 0.957846 0.130000
393 | vt 0.750000 0.010000
394 | vt 0.542154 0.130000
395 | vt 0.042154 0.370000
396 | vt 0.250000 0.250000
397 | vt 0.250000 0.490000
398 | vt 0.250000 0.490000
399 | vt 0.250000 0.250000
400 | vt 0.457846 0.370000
401 | vt 0.457846 0.370000
402 | vt 0.250000 0.250000
403 | vt 0.457846 0.130000
404 | vt 0.457846 0.130000
405 | vt 0.250000 0.250000
406 | vt 0.250000 0.010000
407 | vt 0.250000 0.010000
408 | vt 0.250000 0.250000
409 | vt 0.042154 0.130000
410 | vt 0.542154 0.370000
411 | vt 0.750000 0.490000
412 | vt 0.957846 0.370000
413 | vt 0.957846 0.130000
414 | vt 0.750000 0.010000
415 | vt 0.542154 0.130000
416 | vt 0.042154 0.130000
417 | vt 0.250000 0.250000
418 | vt 0.042154 0.370000
419 | vt 0.457846 0.370000
420 | vt 0.250000 0.250000
421 | vt 0.457846 0.130000
422 | vt 0.457846 0.130000
423 | vt 0.250000 0.250000
424 | vt 0.250000 0.010000
425 | vt 0.042154 0.130000
426 | vt 0.250000 0.250000
427 | vt 0.042154 0.370000
428 | vt 0.250000 0.490000
429 | vt 0.250000 0.250000
430 | vt 0.457846 0.370000
431 | vt 0.042154 0.130000
432 | vt 0.250000 0.250000
433 | vt 0.042154 0.370000
434 | vt 0.042154 0.370000
435 | vt 0.250000 0.250000
436 | vt 0.250000 0.490000
437 | vn 0.4965 0.1179 -0.8600
438 | vn 0.9930 0.1179 0.0000
439 | vn 0.4965 0.1179 0.8600
440 | vn -0.4965 0.1179 0.8600
441 | vn -0.9930 0.1179 0.0000
442 | vn -0.4965 0.1179 -0.8600
443 | vn 0.0000 -1.0000 0.0000
444 | vn -0.4991 0.0613 -0.8644
445 | vn -0.9677 0.2519 0.0000
446 | vn 0.4991 0.0608 -0.8644
447 | vn 0.4991 0.0608 0.8644
448 | vn -0.4909 0.1903 -0.8502
449 | vn -0.4909 0.1903 0.8502
450 | vn -0.4991 0.0613 0.8644
451 | vn 0.9879 0.1552 0.0000
452 | vn -0.9996 0.0295 0.0000
453 | vn 0.4961 0.1242 0.8593
454 | vn 0.4961 0.1242 -0.8593
455 | vn -0.9973 0.0730 0.0000
456 | vn 0.4978 0.0947 0.8621
457 | vn 0.4995 0.0433 -0.8652
458 | vn 1.0000 -0.0056 0.0000
459 | vn -0.4995 0.0460 -0.8651
460 | vn -0.4976 0.0973 0.8619
461 | vn 0.9977 0.0677 0.0000
462 | vn 0.4588 0.3974 -0.7947
463 | vn -0.4588 0.3974 0.7947
464 | vn -0.9177 0.3974 0.0000
465 | vn -0.4588 0.3974 -0.7947
466 | vn 0.9177 0.3974 -0.0000
467 | vn 0.4588 0.3974 0.7947
468 | usemtl Bark
469 | s off
470 | f 3/1/1 6/2/1 11/3/1
471 | f 3/1/1 11/3/1 9/4/1
472 | f 10/5/2 13/6/2 20/7/2
473 | f 10/5/2 20/7/2 17/8/2
474 | f 16/9/3 18/10/3 27/11/3
475 | f 16/9/3 27/11/3 24/12/3
476 | f 22/13/4 34/14/4 30/15/4
477 | f 29/16/5 32/17/5 39/18/5
478 | f 29/16/5 39/18/5 36/19/5
479 | f 37/20/6 41/21/6 4/22/6
480 | f 37/20/6 4/22/6 1/23/6
481 | f 38/24/7 2/25/7 8/26/7
482 | f 8/26/7 15/27/7 23/28/7
483 | f 23/28/7 31/29/7 38/24/7
484 | f 8/26/7 23/28/7 38/24/7
485 | f 43/30/8 65/31/8 90/32/8
486 | f 43/30/8 90/32/8 68/33/8
487 | f 40/34/9 33/35/9 60/36/9
488 | f 40/34/9 60/36/9 64/37/9
489 | f 12/38/10 7/39/10 46/40/10
490 | f 12/38/10 46/40/10 48/41/10
491 | f 28/42/11 19/43/11 52/44/11
492 | f 28/42/11 52/44/11 58/45/11
493 | f 5/46/12 66/47/12 44/48/12
494 | f 35/49/13 26/50/13 56/51/13
495 | f 35/49/13 56/51/13 62/52/13
496 | f 61/53/14 55/54/14 79/55/14
497 | f 61/53/14 79/55/14 85/56/14
498 | f 53/57/15 49/58/15 73/59/15
499 | f 53/57/15 73/59/15 77/60/15
500 | f 63/61/16 83/62/16 87/63/16
501 | f 57/64/17 51/65/17 75/66/17
502 | f 57/64/17 75/66/17 81/67/17
503 | f 47/68/18 45/69/18 69/70/18
504 | f 47/68/18 69/70/18 71/71/18
505 | f 88/72/19 84/73/19 91/74/19
506 | f 82/75/20 76/76/20 94/77/20
507 | f 72/78/21 70/79/21 95/80/21
508 | s 1
509 | f 22/13/4 25/81/4 34/14/4
510 | f 21/82/22 14/83/22 50/84/22
511 | f 21/82/22 50/84/22 54/85/22
512 | f 5/46/12 42/86/12 66/47/12
513 | f 67/87/23 89/88/23 92/89/23
514 | f 63/61/16 59/90/16 83/62/16
515 | f 86/91/24 80/92/24 93/93/24
516 | f 78/94/25 74/95/25 96/96/25
517 | usemtl leaves
518 | s off
519 | f 99/97/26 119/98/26 101/99/26
520 | f 106/100/27 116/101/27 110/102/27
521 | f 114/103/7 98/104/7 100/105/7
522 | f 100/105/7 103/106/7 107/107/7
523 | f 107/107/7 111/108/7 114/103/7
524 | f 100/105/7 107/107/7 114/103/7
525 | f 109/109/28 115/110/28 112/111/28
526 | f 113/112/29 117/113/29 97/114/29
527 | f 123/115/26 143/116/26 125/117/26
528 | f 126/118/30 144/119/30 129/120/30
529 | f 128/121/31 142/122/31 132/123/31
530 | f 130/124/27 141/125/27 134/126/27
531 | f 138/127/7 122/128/7 124/129/7
532 | f 124/129/7 127/130/7 131/131/7
533 | f 131/131/7 135/132/7 138/127/7
534 | f 124/129/7 131/131/7 138/127/7
535 | f 137/133/29 140/134/29 121/135/29
536 | f 147/136/26 167/137/26 149/138/26
537 | f 150/139/30 168/140/30 153/141/30
538 | f 152/142/31 166/143/31 156/144/31
539 | f 154/145/27 164/146/27 158/147/27
540 | f 162/148/7 146/149/7 148/150/7
541 | f 148/150/7 151/151/7 155/152/7
542 | f 155/152/7 159/153/7 162/148/7
543 | f 148/150/7 155/152/7 162/148/7
544 | f 157/154/28 163/155/28 160/156/28
545 | f 161/157/29 165/158/29 145/159/29
546 | f 174/160/30 192/161/30 177/162/30
547 | f 176/163/31 190/164/31 180/165/31
548 | f 178/166/27 188/167/27 182/168/27
549 | f 186/169/7 170/170/7 172/171/7
550 | f 172/171/7 175/172/7 179/173/7
551 | f 179/173/7 183/174/7 186/169/7
552 | f 172/171/7 179/173/7 186/169/7
553 | f 185/175/29 189/176/29 169/177/29
554 | f 195/178/26 215/179/26 197/180/26
555 | f 198/181/30 216/182/30 201/183/30
556 | f 200/184/31 214/185/31 204/186/31
557 | f 202/187/27 212/188/27 206/189/27
558 | f 210/190/7 194/191/7 196/192/7
559 | f 196/192/7 199/193/7 203/194/7
560 | f 203/194/7 207/195/7 210/190/7
561 | f 196/192/7 203/194/7 210/190/7
562 | f 205/196/28 211/197/28 208/198/28
563 | s 1
564 | f 102/199/30 120/200/30 105/201/30
565 | f 104/202/31 118/203/31 108/204/31
566 | f 133/205/28 139/206/28 136/207/28
567 | f 171/208/26 191/209/26 173/210/26
568 | f 181/211/28 187/212/28 184/213/28
569 | f 209/214/29 213/215/29 193/216/29
570 |
--------------------------------------------------------------------------------
/addons/scatterbox/Examples/tree1.obj.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="wavefront_obj"
4 | importer_version=1
5 | type="Mesh"
6 | uid="uid://cphvxowdhpyxs"
7 | path="res://.godot/imported/tree1.obj-a798944e3dc795f1e094923d22cf4622.mesh"
8 |
9 | [deps]
10 |
11 | files=["res://.godot/imported/tree1.obj-a798944e3dc795f1e094923d22cf4622.mesh"]
12 |
13 | source_file="res://addons/scatterbox/Examples/tree1.obj"
14 | dest_files=["res://.godot/imported/tree1.obj-a798944e3dc795f1e094923d22cf4622.mesh", "res://.godot/imported/tree1.obj-a798944e3dc795f1e094923d22cf4622.mesh"]
15 |
16 | [params]
17 |
18 | generate_tangents=true
19 | scale_mesh=Vector3(1, 1, 1)
20 | offset_mesh=Vector3(0, 0, 0)
21 | optimize_mesh=true
22 |
--------------------------------------------------------------------------------
/addons/scatterbox/plugin.cfg:
--------------------------------------------------------------------------------
1 | [plugin]
2 |
3 | name="ScatterBox"
4 | description="Scatter Objects/terrain within an area"
5 | author="The_Vecter"
6 | version="1.0.0"
7 | script="scatterboxPlugin.gd"
8 |
--------------------------------------------------------------------------------
/addons/scatterbox/scatterBox.gd:
--------------------------------------------------------------------------------
1 | @tool
2 | extends Node3D
3 | class_name ScatterBox
4 |
5 |
6 | #delete all of the meshes/objects
7 | @export var deleteAll := false:
8 | get: return deleteAll
9 | set(value):
10 | if(value):
11 | delete_obj()
12 | deleteAll = false
13 |
14 | #guhhh
15 | @export var refresh_btn := false:
16 | get: return refresh_btn
17 | set(value):
18 | if(value):
19 | refresh()
20 | refresh_btn = false
21 |
22 | #how far the mesh/object is from the gound
23 | @export var offset_position := Vector3(0, 0, 0):
24 | get: return offset_position
25 | set(value):
26 | offset_position = value.clamp(Vector3.ONE * -100.0, Vector3.ONE * 100.0)
27 | _update_debug_area_size()
28 |
29 |
30 | var show_debug_area := true
31 | var _debug_draw_instance : MeshInstance3D
32 |
33 | var draw_pointer : Node3D
34 | var object_parent : Node3D
35 |
36 | var is_drawing = true
37 |
38 |
39 | ## The number of instances to generate.
40 | @export_range(0, 1000, 1) var count := 1:
41 | get: return count
42 | set(value):
43 | count = value
44 | _update_debug_area_size()
45 |
46 | #the size of the draw box
47 | @export var placement_size := Vector3(10.0, 10.0, 10.0):
48 | get: return placement_size
49 | set(value):
50 | placement_size = value.clamp(Vector3.ONE * 0.01, Vector3.ONE * 100.0)
51 | _update_debug_area_size()
52 |
53 |
54 | @export_group("Random Size")
55 |
56 | ## The minimum random size for each instance.
57 | @export var min_random_size := Vector3(0.75, 0.75, 0.75):
58 | get: return min_random_size
59 | set(value):
60 | min_random_size = value.clamp(Vector3.ONE * 0.01, Vector3.ONE * 100.0)
61 | _update_debug_area_size()
62 |
63 | ## The maximum random size for each instance.
64 | @export var max_random_size := Vector3(1.25, 1.25, 1.25):
65 | get: return max_random_size
66 | set(value):
67 | max_random_size = value.clamp(Vector3.ONE * 0.01, Vector3.ONE * 100.0)
68 | _update_debug_area_size()
69 |
70 |
71 | @export_group("Random Rotation")
72 |
73 | ## Rotate each instance by a random amount between
74 | ## [code]-random_rotation[/code] and +[code]random_rotation[/code].
75 | @export var random_rotation := Vector3(0.0, 0.0, 0.0):
76 | get: return random_rotation
77 | set(value):
78 | random_rotation = value.clamp(Vector3.ONE * 0.00, Vector3.ONE * 180.0)
79 | _update_debug_area_size()
80 |
81 |
82 | var _rng := RandomNumberGenerator.new()
83 |
84 | @onready var _space: PhysicsDirectSpaceState3D = get_world_3d().direct_space_state
85 |
86 | var current_color : Color
87 |
88 | #if the node is currently selected
89 | var selected = false
90 |
91 | #refresh the nodes
92 | #useful for the mesh scatter
93 | #as you need the meshinstances to be generated before adding anything to them
94 | func refresh():
95 | pass
96 |
97 |
98 | # Called when the node enters the scene tree for the first time.
99 | func _ready():
100 | _rng.randomize()
101 |
102 | current_color = Color(0.0, 0.0, 1.0, 0.0784313725)
103 |
104 | #get the subnodes
105 | draw_pointer = get_node_or_null("DrawPointer")
106 | object_parent = get_node_or_null("ObjectParent")
107 |
108 | #create them if they don't exist
109 | if(draw_pointer == null):
110 | draw_pointer = Node3D.new()
111 | draw_pointer.name = "DrawPointer"
112 | add_child(draw_pointer)
113 | draw_pointer.global_transform.origin = global_transform.origin
114 | draw_pointer.set_owner(get_tree().edited_scene_root)
115 |
116 | if(object_parent == null):
117 | object_parent = Node3D.new()
118 | object_parent.name = "ObjectParent"
119 | add_child(object_parent)
120 | object_parent.set_owner(self)
121 | object_parent.global_transform.origin = global_transform.origin
122 | object_parent.set_owner(get_tree().edited_scene_root)
123 |
124 | refresh()
125 |
126 |
127 |
128 | #move the draw box to the mouse position
129 | func move_to_mouse(camera, mouse: Vector2):
130 | var start = camera.project_ray_origin(mouse)
131 | var end = start + camera.project_ray_normal(mouse) * 1000
132 | var result = _space.intersect_ray(PhysicsRayQueryParameters3D.create(start, end))
133 |
134 | if result.is_empty():
135 | return false
136 |
137 | var t := Transform3D()
138 | t.origin = result.position
139 |
140 | t.origin += offset_position
141 |
142 | #align mesh with floor nomral
143 | t.basis = Basis(result.normal.cross(global_transform.basis.z),
144 | result.normal,
145 | global_transform.basis.x.cross(result.normal),
146 | ).orthonormalized()
147 |
148 | draw_pointer.basis = t.basis
149 |
150 | draw_pointer.global_transform.origin = result.position
151 | return true
152 |
153 |
154 | func select():
155 | selected = true
156 | _create_debug_area()
157 | _update_debug_area()
158 |
159 | func deselect():
160 | selected = false
161 | is_drawing = true
162 | _delete_debug_area()
163 |
164 |
165 | func draw():
166 | if(is_drawing):
167 | scatter_obj()
168 | else:
169 | erase_obj()
170 |
171 |
172 | #toggle draw and erase mode
173 | func toggle_drawing():
174 | is_drawing = !is_drawing
175 | #change the colour of the draw box
176 | _update_debug_area()
177 |
178 | return is_drawing
179 |
180 |
181 |
182 | func _delete_debug_area() -> void:
183 | if _debug_draw_instance != null && _debug_draw_instance.is_inside_tree():
184 | _debug_draw_instance.queue_free()
185 | _debug_draw_instance = null
186 |
187 |
188 | func _create_debug_area() -> void:
189 | _delete_debug_area()
190 | _debug_draw_instance = MeshInstance3D.new()
191 |
192 | var material := StandardMaterial3D.new()
193 | _debug_draw_instance.material_override = material
194 |
195 | material.transparency = BaseMaterial3D.TRANSPARENCY_ALPHA
196 | material.cull_mode = BaseMaterial3D.CULL_DISABLED
197 | material.shading_mode = BaseMaterial3D.SHADING_MODE_UNSHADED
198 |
199 | material.albedo_color = current_color
200 |
201 | material.no_depth_test = true
202 |
203 | var mesh: Mesh
204 | mesh = BoxMesh.new()
205 |
206 | _debug_draw_instance.mesh = mesh
207 | _debug_draw_instance.visible = show_debug_area
208 |
209 | if(draw_pointer != null):
210 | draw_pointer.add_child(_debug_draw_instance)
211 | _update_debug_area_size()
212 |
213 |
214 | func _update_debug_area() -> void:
215 | if(is_drawing):
216 | current_color = Color(0.0, 0.0, 1.0, 0.0784313725)
217 | else:
218 | current_color = Color(1.0, 1.0, 1.0, 0.0784313725)
219 |
220 | _debug_draw_instance.material_override.albedo_color = current_color
221 |
222 |
223 | func _update_debug_area_size() -> void:
224 | if _debug_draw_instance != null && _debug_draw_instance.is_inside_tree():
225 | _debug_draw_instance.mesh.size = placement_size
226 |
227 |
228 |
229 | func grow_box():
230 | placement_size += Vector3(0.5, 0.5, 0.5)
231 | _update_debug_area_size()
232 |
233 | func shrink_box():
234 | placement_size -= Vector3(0.5, 0.5, 0.5)
235 | placement_size.x = clamp(placement_size.x, 0, placement_size.x)
236 | placement_size.y = clamp(placement_size.y, 0, placement_size.y)
237 | placement_size.z = clamp(placement_size.z, 0, placement_size.z)
238 | _update_debug_area_size()
239 |
240 |
241 | #virtual method
242 | func scatter_obj():
243 | pass
244 |
245 |
246 | #virtual method
247 | func erase_obj():
248 | pass
249 |
250 |
251 | #delete all the created/painted objects
252 | func delete_obj():
253 | for i in object_parent.get_children():
254 | i.queue_free()
255 | refresh()
256 |
257 |
258 |
--------------------------------------------------------------------------------
/addons/scatterbox/scatterMesh3D.gd:
--------------------------------------------------------------------------------
1 | @tool
2 | extends ScatterBox
3 | class_name ScatterMesh3D
4 |
5 | @export var meshes: Array[Mesh]
6 | @export var mesh_materials: Array[Material]
7 |
8 |
9 | var multiMeshes = []
10 |
11 |
12 |
13 | func refresh():
14 | multiMeshes = []
15 |
16 | for i in object_parent.get_children():
17 | multiMeshes.append(i)
18 |
19 | #create the two multimeshes
20 | if multiMeshes == []:
21 | for mesh in meshes:
22 | var newMultimeshInst = MultiMeshInstance3D.new()
23 | object_parent.add_child(newMultimeshInst)
24 | newMultimeshInst.global_transform.origin = object_parent.global_transform.origin
25 | newMultimeshInst.set_owner(get_tree().edited_scene_root)
26 |
27 | var newMultimesh = MultiMesh.new()
28 | newMultimesh.transform_format = MultiMesh.TRANSFORM_3D
29 | newMultimeshInst.multimesh = newMultimesh
30 | newMultimesh.mesh = mesh
31 |
32 | for i in range(meshes.size()):
33 | var newMultimesh = object_parent.get_child(i)
34 | newMultimesh.multimesh.mesh.surface_set_material(0, mesh_materials[i])
35 |
36 |
37 | func scatter_obj():
38 | for i in range(count):
39 | var pos := draw_pointer.global_position
40 |
41 | #get a random position in the drawing box
42 | pos += Vector3(
43 | _rng.randf_range(-placement_size.x / 2.0, placement_size.x / 2.0),
44 | 0,
45 | _rng.randf_range(-placement_size.z / 2.0, placement_size.z / 2.0))
46 |
47 | pos = pos + Vector3(
48 | _rng.randf_range(min_random_size.x, max_random_size.x),
49 | 0,
50 | _rng.randf_range(min_random_size.z, max_random_size.z))
51 |
52 | #make a raycast to align the mesh to the floor
53 | var startPos = pos
54 | startPos.y += placement_size.y
55 | var endPos = pos
56 | endPos.y -= placement_size.y
57 |
58 | var ray = PhysicsRayQueryParameters3D.create(startPos, endPos)
59 |
60 | var hit = _space.intersect_ray(ray)
61 |
62 | if(hit.is_empty()): continue
63 |
64 | var t := Transform3D()
65 | t.origin = hit.position
66 | t.origin += offset_position
67 |
68 | #https://kidscancode.org/godot_recipes/3.x/3d/3d_align_surface/index.html
69 | t.basis.y = hit.normal
70 | t.basis.x = -t.basis.z.cross(hit.normal)
71 | t.basis = t.basis.orthonormalized()
72 |
73 | #apply a random rotation and scaling
74 | t.basis = t.basis.scaled(Vector3(
75 | _rng.randf_range(min_random_size.x, max_random_size.x),
76 | _rng.randf_range(min_random_size.y, max_random_size.y),
77 | _rng.randf_range(min_random_size.z, max_random_size.z)))\
78 | .rotated(Vector3.RIGHT, deg_to_rad(_rng.randf_range(-random_rotation.x, random_rotation.x)))\
79 | .rotated(Vector3.UP, deg_to_rad(_rng.randf_range(-random_rotation.y, random_rotation.y)))\
80 | .rotated(Vector3.FORWARD, deg_to_rad(_rng.randf_range(-random_rotation.z, random_rotation.z)))
81 |
82 | #get a random mesh
83 | var rand_mesh = _rng.randi_range(0, meshes.size()-1)
84 |
85 | #get the correct multimesh
86 | #as each one stores one mesh
87 | var multimeshInst = multiMeshes[rand_mesh]
88 | var multiMesh = multimeshInst.multimesh
89 |
90 | #save all the old transforms
91 | var transforms = []
92 | for oldT in multiMesh.instance_count:
93 | transforms.append(multiMesh.get_instance_transform(oldT))
94 |
95 | #editing the instance count resets the buffer
96 | multiMesh.instance_count += 1
97 |
98 | #add all the old instance transforms back
99 | for oldT in multiMesh.instance_count-1:
100 | multiMesh.set_instance_transform(oldT, transforms[oldT])
101 |
102 | #set the new instance transform
103 | multiMesh.set_instance_transform(multiMesh.instance_count-1, t)
104 |
105 |
106 | func erase_obj():
107 | var pos := draw_pointer.global_position
108 |
109 | var start_pos = pos
110 | start_pos -= Vector3(placement_size.x/2, placement_size.y/2, placement_size.z/2)
111 |
112 | var box = AABB(start_pos, placement_size)
113 |
114 | #see if any of the multimeshes is in the bounding box
115 | for mesh_num in range(multiMeshes.size()):
116 | var multimeshInst = multiMeshes[mesh_num]
117 | var multiMesh = multimeshInst.multimesh
118 |
119 | var transforms = []
120 |
121 | #save instances that are outside the box
122 | for oldT in multiMesh.instance_count:
123 | var cur_t = multiMesh.get_instance_transform(oldT)
124 |
125 | if(box.has_point(cur_t.origin)):
126 | continue
127 | else:
128 | transforms.append(cur_t)
129 |
130 | #update the instance count
131 | multiMesh.instance_count = transforms.size()
132 |
133 | #update the instances
134 | for oldT in multiMesh.instance_count-1:
135 | multiMesh.set_instance_transform(oldT, transforms[oldT])
136 |
137 |
--------------------------------------------------------------------------------
/addons/scatterbox/scatterScene3D.gd:
--------------------------------------------------------------------------------
1 | @tool
2 | extends ScatterBox
3 | class_name ScatterScene3D
4 |
5 | @export var scenes: Array[PackedScene]
6 |
7 | @export_flags_3d_physics var instanced_scene_collision_layers
8 |
9 |
10 | #overwrite default code
11 | func move_to_mouse(camera, mouse: Vector2):
12 | var start = camera.project_ray_origin(mouse)
13 | var end = start + camera.project_ray_normal(mouse) * 1000
14 | var result = _space.intersect_ray(PhysicsRayQueryParameters3D.create(start, end, ~instanced_scene_collision_layers))
15 |
16 | if result.is_empty():
17 | return false
18 |
19 | var t := Transform3D()
20 | t.origin = result.position
21 |
22 | t.origin += offset_position
23 |
24 | #align mesh with floor nomral
25 | t.basis = Basis(result.normal.cross(global_transform.basis.z),
26 | result.normal,
27 | global_transform.basis.x.cross(result.normal),
28 | ).orthonormalized()
29 |
30 | draw_pointer.basis = t.basis
31 |
32 | draw_pointer.global_transform.origin = result.position
33 | return true
34 |
35 |
36 |
37 | func refresh():
38 | pass
39 |
40 |
41 | func scatter_obj():
42 | for i in range(count):
43 | var pos := draw_pointer.global_position
44 |
45 | pos += Vector3(
46 | _rng.randf_range(-placement_size.x / 2.0, placement_size.x / 2.0),
47 | 0,
48 | _rng.randf_range(-placement_size.z / 2.0, placement_size.z / 2.0))
49 |
50 | pos = pos + Vector3(
51 | _rng.randf_range(min_random_size.x, max_random_size.x),
52 | 0,
53 | _rng.randf_range(min_random_size.z, max_random_size.z))
54 |
55 |
56 | var startPos = pos
57 | startPos.y += placement_size.y
58 | var endPos = pos
59 | endPos.y -= placement_size.y
60 |
61 | var ray = PhysicsRayQueryParameters3D.create(startPos, endPos, ~instanced_scene_collision_layers)
62 |
63 | var hit = _space.intersect_ray(ray)
64 |
65 | if(hit.is_empty()): continue
66 |
67 | var t := Transform3D()
68 | t.origin = hit.position
69 | t.origin += offset_position
70 |
71 | #https://kidscancode.org/godot_recipes/3.x/3d/3d_align_surface/index.html
72 | t.basis.y = hit.normal
73 | t.basis.x = -t.basis.z.cross(hit.normal)
74 | t.basis = t.basis.orthonormalized()
75 |
76 |
77 | t.basis = t.basis.scaled(Vector3(
78 | _rng.randf_range(min_random_size.x, max_random_size.x),
79 | _rng.randf_range(min_random_size.y, max_random_size.y),
80 | _rng.randf_range(min_random_size.z, max_random_size.z)))\
81 | .rotated(Vector3.RIGHT, deg_to_rad(_rng.randf_range(-random_rotation.x, random_rotation.x)))\
82 | .rotated(Vector3.UP, deg_to_rad(_rng.randf_range(-random_rotation.y, random_rotation.y)))\
83 | .rotated(Vector3.FORWARD, deg_to_rad(_rng.randf_range(-random_rotation.z, random_rotation.z)))
84 |
85 |
86 | var rand_scene = _rng.randi_range(0, scenes.size()-1)
87 |
88 | var scene_inst = scenes[rand_scene].instantiate()
89 | scene_inst.global_transform = t
90 |
91 | if(scene_inst is StaticBody3D):
92 | scene_inst.collision_layer = instanced_scene_collision_layers
93 |
94 |
95 | object_parent.add_child(scene_inst)
96 | scene_inst.set_owner(get_tree().edited_scene_root)
97 |
98 |
99 | func erase_obj():
100 | var pos := draw_pointer.global_position
101 |
102 | var start_pos = pos
103 | start_pos -= Vector3(placement_size.x/2, placement_size.y/2, placement_size.z/2)
104 |
105 | var box = AABB(start_pos, placement_size)
106 |
107 | for child in object_parent.get_children():
108 | if(box.has_point(child.global_transform.origin)):
109 | child.queue_free()
110 |
111 |
--------------------------------------------------------------------------------
/addons/scatterbox/scatterbox3D.aseprite:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The-Vector/scatterBox/bc0fdae3c939785a08b35bc34f0a19eb36aa0874/addons/scatterbox/scatterbox3D.aseprite
--------------------------------------------------------------------------------
/addons/scatterbox/scatterbox3D.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The-Vector/scatterBox/bc0fdae3c939785a08b35bc34f0a19eb36aa0874/addons/scatterbox/scatterbox3D.png
--------------------------------------------------------------------------------
/addons/scatterbox/scatterbox3D.png.import:
--------------------------------------------------------------------------------
1 | [remap]
2 |
3 | importer="texture"
4 | type="CompressedTexture2D"
5 | uid="uid://ckjln1yjea530"
6 | path="res://.godot/imported/scatterbox3D.png-238319ec044c7234897c232ef52639e7.ctex"
7 | metadata={
8 | "vram_texture": false
9 | }
10 |
11 | [deps]
12 |
13 | source_file="res://addons/scatterbox/scatterbox3D.png"
14 | dest_files=["res://.godot/imported/scatterbox3D.png-238319ec044c7234897c232ef52639e7.ctex"]
15 |
16 | [params]
17 |
18 | compress/mode=0
19 | compress/high_quality=false
20 | compress/lossy_quality=0.7
21 | compress/hdr_compression=1
22 | compress/normal_map=0
23 | compress/channel_pack=0
24 | mipmaps/generate=false
25 | mipmaps/limit=-1
26 | roughness/mode=0
27 | roughness/src_normal=""
28 | process/fix_alpha_border=true
29 | process/premult_alpha=false
30 | process/normal_map_invert_y=false
31 | process/hdr_as_srgb=false
32 | process/hdr_clamp_exposure=false
33 | process/size_limit=0
34 | detect_3d/compress_to=1
35 |
--------------------------------------------------------------------------------
/addons/scatterbox/scatterboxPlugin.gd:
--------------------------------------------------------------------------------
1 | @tool
2 | extends EditorPlugin
3 |
4 |
5 | var selection = get_editor_interface().get_selection()
6 |
7 | var selected_node
8 |
9 | var mouse_down = false
10 | var can_move_selection = true
11 |
12 | var erase_button : CheckBox = null
13 |
14 |
15 | func _enter_tree():
16 | # Initialization of the plugin goes here.
17 | add_custom_type("ScatterMesh3D", "ScatterBox", preload("scatterMesh3D.gd"), preload("scatterbox3D.png"))
18 | add_custom_type("ScatterScene3D", "ScatterBox", preload("scatterScene3D.gd"), preload("scatterbox3D.png"))
19 |
20 | selection.selection_changed.connect(_on_selection_changed)
21 |
22 | InputMap.add_action("PlaceTerrain")
23 | var ev = InputEventKey.new()
24 | ev.keycode = KEY_C
25 | InputMap.action_add_event("PlaceTerrain", ev)
26 |
27 | add_erase_button()
28 |
29 |
30 |
31 | func _exit_tree():
32 | # Clean-up of the plugin
33 | remove_custom_type("ScatterMesh3D")
34 | remove_custom_type("ScatterScene3D")
35 |
36 | InputMap.action_erase_events("PlaceTerrain")
37 | remove_erase_button()
38 |
39 |
40 | func _make_visible(visible):
41 | if visible:
42 | selected_node.selected = true
43 | add_erase_button()
44 | else:
45 | remove_erase_button()
46 |
47 |
48 | func add_erase_button():
49 | if erase_button != null:
50 | return
51 |
52 | erase_button = CheckBox.new()
53 | erase_button.text = "Erase: "
54 | erase_button.connect("toggled", toggle_drawing)
55 | add_control_to_container(EditorPlugin.CONTAINER_SPATIAL_EDITOR_MENU, erase_button)
56 |
57 |
58 | func remove_erase_button():
59 | if erase_button == null:
60 | return
61 |
62 | remove_control_from_container(EditorPlugin.CONTAINER_SPATIAL_EDITOR_MENU, erase_button)
63 | erase_button.queue_free()
64 | erase_button = null
65 |
66 |
67 | #when selecting another node hide the draw box
68 | func _on_selection_changed():
69 | if(selected_node != null):
70 | #reset the current node
71 | selected_node.deselect()
72 | selected_node = null
73 | erase_button.button_pressed = false
74 |
75 |
76 | #if the current node is a scatterbox get the custom keybinds/actions
77 | func _handles(object):
78 | if (object is ScatterBox):
79 | selected_node = object
80 | selected_node.select()
81 | return true
82 |
83 | return false
84 |
85 |
86 | #get the inputs
87 | func _forward_3d_gui_input(viewport_camera, event):
88 | var captured_event = false
89 |
90 | #if alt held/pressed dont do anything
91 | if(event is InputEventKey):
92 | if(event.keycode == KEY_ALT):
93 | if(event.pressed):
94 | can_move_selection = false
95 | return false
96 |
97 | else:
98 | can_move_selection = true
99 |
100 | #E switches between erase and draw modes
101 | if(event.keycode == KEY_E):
102 | if(event.pressed):
103 | erase_button.button_pressed = !erase_button.button_pressed
104 |
105 | #scroll wheel to change the size of the draw bow
106 | if(event is InputEventMouseButton and selected_node != null and can_move_selection):
107 | if(event.button_index == 4):
108 | selected_node.grow_box()
109 | captured_event = true
110 | if(event.button_index == 5):
111 | selected_node.shrink_box()
112 | captured_event = true
113 |
114 | #mouse stuff
115 | if(can_move_selection and selected_node != null):
116 | if(event is InputEventMouseButton):
117 | if(event.button_index == MOUSE_BUTTON_LEFT):
118 | if(event.pressed == false):
119 | mouse_down = false
120 | captured_event = true
121 | else:
122 | mouse_down = true
123 |
124 |
125 | if event is InputEventMouseMotion:
126 | if(mouse_down):
127 | if(selected_node != null):
128 | move_object_to_mouse(viewport_camera, selected_node, event.position)
129 | selected_node.draw()
130 | captured_event = true
131 | else:
132 | var res = move_object_to_mouse(viewport_camera, selected_node, event.position)
133 | captured_event = res
134 |
135 |
136 | return captured_event
137 |
138 |
139 | func toggle_drawing(_toggle = false):
140 | if(selected_node != null):
141 | var res = selected_node.toggle_drawing()
142 |
143 |
144 | func move_object_to_mouse(camera, object, mouse_pos):
145 | object.move_to_mouse(camera, mouse_pos)
146 |
147 |
148 |
--------------------------------------------------------------------------------
/assets/plugin1.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The-Vector/scatterBox/bc0fdae3c939785a08b35bc34f0a19eb36aa0874/assets/plugin1.gif
--------------------------------------------------------------------------------
/assets/plugin2.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/The-Vector/scatterBox/bc0fdae3c939785a08b35bc34f0a19eb36aa0874/assets/plugin2.gif
--------------------------------------------------------------------------------
/project.godot:
--------------------------------------------------------------------------------
1 | ; Engine configuration file.
2 | ; It's best edited using the editor UI and not directly,
3 | ; since the parameters that go here are not all obvious.
4 | ;
5 | ; Format:
6 | ; [section] ; section goes between []
7 | ; param=value ; assign values to parameters
8 |
9 | config_version=5
10 |
11 | [application]
12 |
13 | config/name="scatterBox"
14 | config/description="Plugin to draw scenes/meshes on terrain."
15 | config/features=PackedStringArray("4.0", "Forward Plus")
16 |
17 | [dotnet]
18 |
19 | project/assembly_name="Plugin Test"
20 |
21 | [editor_plugins]
22 |
23 | enabled=PackedStringArray("res://addons/scatterbox/plugin.cfg")
24 |
--------------------------------------------------------------------------------