created particle system to indicate missing objects

This commit is contained in:
betalars 2023-03-27 19:18:48 +02:00
parent d328bfcc15
commit 6c3260eaf1
8 changed files with 681 additions and 5 deletions

166
design/particles.svg Normal file
View File

@ -0,0 +1,166 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="64"
height="64"
viewBox="0 0 16.933333 16.933333"
version="1.1"
id="svg5"
inkscape:export-filename="../src/vfx/lens-flare-particle.png"
inkscape:export-xdpi="192"
inkscape:export-ydpi="192"
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
sodipodi:docname="particles.svg"
xml:space="preserve"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview7"
pagecolor="#000000"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="1"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="px"
showgrid="false"
inkscape:zoom="3.0930415"
inkscape:cx="1.9398382"
inkscape:cy="-10.022497"
inkscape:window-width="1920"
inkscape:window-height="1021"
inkscape:window-x="0"
inkscape:window-y="1080"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs2"><linearGradient
inkscape:collect="always"
id="linearGradient7377"><stop
style="stop-color:#fff79f;stop-opacity:0.21692616;"
offset="0.18922633"
id="stop7375" /><stop
style="stop-color:#fff7a0;stop-opacity:0.49803922;"
offset="0.48193598"
id="stop8107" /><stop
style="stop-color:#fffbcc;stop-opacity:1;"
offset="0.87896519"
id="stop7373" /></linearGradient><linearGradient
inkscape:collect="always"
id="linearGradient7233"><stop
style="stop-color:#363636;stop-opacity:1;"
offset="0.32237965"
id="stop7229" /><stop
style="stop-color:#292929;stop-opacity:1;"
offset="0.6226669"
id="stop7239" /><stop
style="stop-color:#404040;stop-opacity:1;"
offset="0.84544945"
id="stop7237" /><stop
style="stop-color:#979797;stop-opacity:1;"
offset="1"
id="stop7231" /></linearGradient><filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter931"
x="-0.065825355"
y="-0.065825355"
width="1.1316507"
height="1.1316507"><feGaussianBlur
inkscape:collect="always"
stdDeviation="0.1819462"
id="feGaussianBlur933" /></filter><radialGradient
inkscape:collect="always"
xlink:href="#linearGradient7233"
id="radialGradient7235"
cx="4.406745"
cy="4.3837647"
fx="4.406745"
fy="4.3837647"
r="3.9771333"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.0847616,-0.0107064,0.01100863,1.1153829,-0.40763855,-0.43349)" /><filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter7295"
x="-0.83648336"
y="-0.83648336"
width="2.6729667"
height="2.6729667"><feGaussianBlur
inkscape:collect="always"
stdDeviation="0.44240133"
id="feGaussianBlur7297" /></filter><filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter7369"
x="-0.086934497"
y="-0.086934497"
width="1.173869"
height="1.173869"><feGaussianBlur
inkscape:collect="always"
stdDeviation="0.092016841"
id="feGaussianBlur7371" /></filter><radialGradient
inkscape:collect="always"
xlink:href="#linearGradient7377"
id="radialGradient7379"
cx="5.2188611"
cy="14.302224"
fx="5.2188611"
fy="14.302224"
r="1.6604936"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(3.3638654,-0.05949294,0.05213108,2.9476082,-12.417147,-26.548531)" /><filter
inkscape:collect="always"
style="color-interpolation-filters:sRGB"
id="filter8892"
x="-0.56434684"
y="-0.56434684"
width="2.1286937"
height="2.1286937"><feGaussianBlur
inkscape:collect="always"
stdDeviation="0.12744467"
id="feGaussianBlur8894" /></filter></defs><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"><circle
style="mix-blend-mode:normal;fill:url(#radialGradient7235);fill-opacity:1;stroke:#b6b4af;stroke-width:0.13229166;stroke-linecap:round;paint-order:stroke fill markers;filter:url(#filter931);stroke-opacity:1;stroke-dasharray:none"
id="path234"
cx="4.2698331"
cy="4.1531682"
r="3.819324" /><circle
style="fill:#3555ff;fill-opacity:1;stroke:none;stroke-width:0.041036;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;filter:url(#filter7295);opacity:0.82328843"
id="circle7303"
cx="12.366085"
cy="4.0699735"
r="0.63465887"
transform="matrix(3.2237976,0,0,3.2237976,-27.49967,-9.0507969)" /><circle
style="fill:#3555ff;fill-opacity:1;stroke:none;stroke-width:0.132292;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;filter:url(#filter7295);opacity:0.82328843"
id="path7293"
cx="12.366085"
cy="4.0699735"
r="0.63465887" /><circle
style="fill:#3555ff;fill-opacity:1;stroke:none;stroke-width:0.2873;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;filter:url(#filter7295);opacity:0.82328843"
id="circle7299"
cx="12.366085"
cy="4.0699735"
r="0.63465887"
transform="matrix(0.46046649,0,0,0.46046649,7.0990396,2.84889)" /><circle
style="fill:#3555ff;fill-opacity:1;stroke:none;stroke-width:0.2873;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke fill markers;filter:url(#filter7295);opacity:0.82328843"
id="circle7305"
cx="12.366085"
cy="4.0699735"
r="0.63465887"
transform="matrix(0.46046649,0,0,0.46046649,6.2531741,1.5181498)" /><circle
style="fill:url(#radialGradient7379);fill-opacity:1;stroke:#b69748;stroke-width:0.132292;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:0.997401;paint-order:normal;filter:url(#filter7369);opacity:0.69204618"
id="path7367"
cx="4.5794258"
cy="13.321833"
r="1.6505899" /><circle
style="fill:#ff9955;fill-opacity:1;stroke:#b69748;stroke-width:0.132292;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:0.997401;paint-order:normal;filter:url(#filter8892)"
id="path8890"
cx="12.415071"
cy="13.301882"
r="0.32959625" /></g></svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -1,4 +1,4 @@
[gd_scene load_steps=34 format=3 uid="uid://b3b0gyvklqn50"] [gd_scene load_steps=41 format=3 uid="uid://b3b0gyvklqn50"]
[ext_resource type="Script" path="res://base-environments/youth_room/room_handle.gd" id="1_aitp0"] [ext_resource type="Script" path="res://base-environments/youth_room/room_handle.gd" id="1_aitp0"]
[ext_resource type="PackedScene" uid="uid://c0i4ydmxtxfho" path="res://base-environments/youth_room/import/youth_room.glb" id="1_jf3oi"] [ext_resource type="PackedScene" uid="uid://c0i4ydmxtxfho" path="res://base-environments/youth_room/import/youth_room.glb" id="1_jf3oi"]
@ -472,6 +472,44 @@ viewport_path = NodePath("Collectable/Collectable_ui/Sprite3D/SubViewport")
radius = 0.342951 radius = 0.342951
height = 1.08154 height = 1.08154
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_f1g8m"]
radius = 0.156739
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_kewqg"]
radius = 0.787239
height = 3.19663
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_k4x40"]
radius = 1.0352
height = 2.55391
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_4q8vc"]
radius = 1.14469
height = 3.78697
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_n20ff"]
radius = 1.73984
height = 5.43669
[sub_resource type="GDScript" id="GDScript_uyt24"]
script/source = "extends StaticBody3D
var risen:bool = false
var start_position:Vector3 = position
func raise(_discard):
if not risen:
var raiser = create_tween()
raiser.tween_property(self, \"position\", position + Vector3(0,1.1,0), 1)
risen = true
func reset(_discard):
risen = false
position = start_position
"
[sub_resource type="BoxShape3D" id="BoxShape3D_gim5a"]
size = Vector3(1, 0.305693, 0.775269)
[node name="youth room" type="Node3D"] [node name="youth room" type="Node3D"]
script = ExtResource("1_aitp0") script = ExtResource("1_aitp0")
@ -540,13 +578,89 @@ shadow_enabled = true
spot_angle = 42.8718 spot_angle = 42.8718
script = SubResource("GDScript_xqa3d") script = SubResource("GDScript_xqa3d")
[node name="CSGCombiner3D" type="CSGCombiner3D" parent="."] [node name="Blockout" type="CSGCombiner3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.811571, 0, 0)
visible = false
use_collision = true use_collision = true
[node name="CSGBox3D" type="CSGBox3D" parent="CSGCombiner3D"] [node name="Floor" type="CSGBox3D" parent="Blockout"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.931684, -0.12195, 0.721855) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.931684, -0.12195, 0.721855)
size = Vector3(5.75304, 0.238875, 4.229) size = Vector3(5.75304, 0.238875, 4.229)
[node name="Wall1" type="CSGBox3D" parent="Blockout/Floor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.09251, 1.18903, 2.10151)
size = Vector3(2.02493, 2.13981, 1)
[node name="Wall2" type="CSGBox3D" parent="Blockout/Floor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.12438, 1.18903, 2.10151)
size = Vector3(1.11794, 2.13981, 1)
[node name="Wall3" type="CSGBox3D" parent="Blockout/Floor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.692784, 1.18903, 2.51779)
size = Vector3(1.97467, 2.13981, 1)
[node name="Wall4" type="CSGBox3D" parent="Blockout/Floor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0505961, 1.18903, -2.27114)
size = Vector3(5.49963, 2.13981, 1)
[node name="Wall5" type="CSGBox3D" parent="Blockout/Floor"]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 2.41253, 1.18903, 1.10946)
size = Vector3(2.02493, 2.13981, 1)
[node name="Wall6" type="CSGBox3D" parent="Blockout/Floor"]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, 1.69649, 1.62974, -0.736064)
size = Vector3(2.02493, 1.06586, 1)
[node name="Wall7" type="CSGBox3D" parent="Blockout/Floor"]
transform = Transform3D(-6.06896e-08, 0, 1, 0, 1, 0, -1.38842, 0, -4.37114e-08, 2.94248, 0.554825, -0.893607)
size = Vector3(2.02493, 1.06586, 1)
[node name="Pillar" type="CSGBox3D" parent="Blockout/Floor"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.340459, 1.18903, 0.542746)
size = Vector3(0.25896, 2.51771, 0.244169)
[node name="wardrobe" type="CSGBox3D" parent="Blockout"]
transform = Transform3D(0.998323, 0, -0.0578951, 0, 1, 0, 0.0578951, 0, 0.998323, -1.65267, 1.06708, -0.295834)
size = Vector3(0.690756, 2.51771, 1.74006)
[node name="desk" type="CSGBox3D" parent="Blockout"]
transform = Transform3D(1.1474, 0, 0, 0, 1, 0, 0, 0, 1, -1.33503, 0.250741, 1.47367)
size = Vector3(0.690756, 1.04931, 1.74006)
[node name="beanBag1" type="CSGSphere3D" parent="Blockout"]
transform = Transform3D(0.930761, 0, 0, 0, 0.811193, 0, 0, 0, 0.811193, -0.693896, 0.11103, 2.36695)
[node name="beanBag2" type="CSGSphere3D" parent="Blockout"]
transform = Transform3D(0.930761, 0, 0, 0, 0.811193, 0, 0, 0, 0.811193, 1.4977, 0.222592, 0.667055)
radius = 0.442542
[node name="shelf" type="CSGBox3D" parent="Blockout"]
transform = Transform3D(1.50675, 0, 0.113429, 0, 1.21197, 0, -0.0247126, 0, 1.59021, 1.22435, 0.523912, -0.31202)
size = Vector3(0.334722, 1, 1)
[node name="shelf2" type="CSGBox3D" parent="Blockout"]
transform = Transform3D(1.51977, 0, -0.268689, 0, 1.21197, 0, 0.299637, 0, 1.90867, 2.65587, 0.308069, 1.91858)
size = Vector3(0.334722, 1, 0.709023)
[node name="bed" type="CSGBox3D" parent="Blockout"]
transform = Transform3D(3.88154, 0, 0.183517, 0, 1.21197, 0, -0.063662, 0, 2.5728, 2.04986, 0.939937, -0.31202)
size = Vector3(0.334722, 0.208577, 1)
[node name="seat" type="CSGBox3D" parent="Blockout"]
transform = Transform3D(1.37974, 0, -0.560171, 0, 0.811194, 0, 0.605992, 0, 1.4926, 0.581465, 0.266536, -0.762094)
size = Vector3(0.548618, 1, 0.313878)
[node name="CSGBox3D2" type="CSGBox3D" parent="Blockout/seat"]
transform = Transform3D(1, 0, 2.98023e-08, 0, 1, 0, -3.27826e-07, 0, 0.999999, 0.0905743, -0.552749, 0.233639)
size = Vector3(0.447724, 1, 0.329058)
[node name="CSGSphere3D" type="CSGSphere3D" parent="Blockout/seat"]
transform = Transform3D(1, 0, 5.96046e-08, 0, 1.34598, 0, -6.55651e-07, 0, 0.999999, 0.0164497, -0.711718, 0.294858)
[node name="ladder" type="CSGBox3D" parent="Blockout"]
transform = Transform3D(0.629683, 0.289502, 0, -0.297919, 0.611894, 0, 0, 0, 1.8813, 1.23808, 0.491789, 0.746785)
size = Vector3(0.180483, 1.62661, 0.160638)
[node name="OmniLight3D2" type="OmniLight3D" parent="."] [node name="OmniLight3D2" type="OmniLight3D" parent="."]
transform = Transform3D(-0.477862, -0.663484, 0.575705, -0.860239, 0.220753, -0.459626, 0.177866, -0.714882, -0.676245, 3.15688, 0.480778, 0.0648447) transform = Transform3D(-0.477862, -0.663484, 0.575705, -0.860239, 0.220753, -0.459626, 0.177866, -0.714882, -0.676245, 3.15688, 0.480778, 0.0648447)
light_size = 0.1 light_size = 0.1
@ -559,7 +673,7 @@ libraries = {
"": SubResource("AnimationLibrary_k8op5") "": SubResource("AnimationLibrary_k8op5")
} }
[node name="PlayerController" parent="." instance=ExtResource("3_foj4y")] [node name="PlayerController" parent="." groups=["camera_owner"] instance=ExtResource("3_foj4y")]
transform = Transform3D(0.686123, 0, 0.727485, 0, 1, 0, -0.727485, 0, 0.686123, 1.14815, 1.19209e-07, 0.730062) transform = Transform3D(0.686123, 0, 0.727485, 0, 1, 0, -0.727485, 0, 0.686123, 1.14815, 1.19209e-07, 0.730062)
active = false active = false
@ -605,7 +719,7 @@ offset_right = 40.0
offset_bottom = 23.0 offset_bottom = 23.0
text = "n out of 3 Memories collected" text = "n out of 3 Memories collected"
[node name="Collectable" type="Area3D" parent="."] [node name="Collectable" type="Area3D" parent="." groups=["collectables"]]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -0.940637, 1.34703, 0.817837) transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -0.940637, 1.34703, 0.817837)
collision_layer = 16 collision_layer = 16
@ -634,6 +748,136 @@ render_target_update_mode = 4
[node name="DisplayMenu" type="CollisionShape3D" parent="Collectable"] [node name="DisplayMenu" type="CollisionShape3D" parent="Collectable"]
shape = SubResource("CapsuleShape3D_72g2i") shape = SubResource("CapsuleShape3D_72g2i")
[node name="Exit" type="Area3D" parent="." groups=["exit"]]
transform = Transform3D(1, 0, 1.06581e-14, 0, 1, 0, -1.06581e-14, 0, 1, 0.13754, 1.34703, -0.95778)
collision_layer = 16
[node name="Collectable_ui" type="Area3D" parent="Exit"]
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -2.38419e-07, 0, 0.071894)
script = ExtResource("11_7uxd8")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Exit/Collectable_ui"]
transform = Transform3D(2.56, 0, 7.10543e-14, 0, 2.56, 0, -7.10543e-14, 0, 2.56, 0, 0, 0.238397)
shape = SubResource("BoxShape3D_cb3g8")
[node name="Sprite3D" type="Sprite3D" parent="Exit/Collectable_ui"]
transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, 0, 0, 0.610758)
pixel_size = 0.015
no_depth_test = true
texture = SubResource("ViewportTexture_gwx6q")
[node name="SubViewport" type="SubViewport" parent="Exit/Collectable_ui/Sprite3D"]
transparent_bg = true
size = Vector2i(300, 350)
render_target_update_mode = 4
[node name="Label" type="Label" parent="Exit/Collectable_ui/Sprite3D/SubViewport"]
offset_right = 40.0
offset_bottom = 23.0
text = "you may not exit now, three are still things to pack."
[node name="DisplayMenu" type="CollisionShape3D" parent="Exit"]
shape = SubResource("CapsuleShape3D_72g2i")
[node name="Board" type="Area3D" parent="." groups=["exit"]]
transform = Transform3D(-4.37114e-08, 0, 1, 0, 1, 0, -1, 0, -4.37114e-08, -0.995796, 1.30696, 1.71915)
collision_layer = 16
[node name="Collectable_ui" type="Area3D" parent="Board"]
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, -2.38419e-07, 0, 0.071894)
script = ExtResource("11_7uxd8")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Board/Collectable_ui"]
transform = Transform3D(2.56, 0, 7.10543e-14, 0, 2.56, 0, -7.10543e-14, 0, 2.56, 0, 0, 0.238397)
shape = SubResource("BoxShape3D_cb3g8")
[node name="Sprite3D" type="Sprite3D" parent="Board/Collectable_ui"]
transform = Transform3D(1, 0, 2.4869e-14, 0, 1, 0, -2.4869e-14, 0, 1, 0, 0, 0.610758)
pixel_size = 0.015
no_depth_test = true
texture = SubResource("ViewportTexture_gwx6q")
[node name="SubViewport" type="SubViewport" parent="Board/Collectable_ui/Sprite3D"]
transparent_bg = true
size = Vector2i(300, 350)
render_target_update_mode = 4
[node name="Label" type="Label" parent="Board/Collectable_ui/Sprite3D/SubViewport"]
offset_right = 40.0
offset_bottom = 23.0
text = "This is the Card Board."
[node name="DisplayMenu" type="CollisionShape3D" parent="Board"]
shape = SubResource("CapsuleShape3D_72g2i")
[node name="Bed and Ladders" type="Node3D" parent="."]
[node name="ladder_trigger" type="Area3D" parent="Bed and Ladders"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.84538, 0, 0.803611)
collision_layer = 2
collision_mask = 2
[node name="CollisionShape3D" type="CollisionShape3D" parent="Bed and Ladders/ladder_trigger"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.170028, 0.244833, -0.0455775)
shape = SubResource("CapsuleShape3D_f1g8m")
[node name="ladder_reset" type="Area3D" parent="Bed and Ladders"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.84538, 0, 0.803611)
collision_layer = 2
collision_mask = 2
[node name="CollisionShape3D" type="CollisionShape3D" parent="Bed and Ladders/ladder_reset"]
transform = Transform3D(0.995341, 0.096419, 0, 4.21461e-09, -4.35077e-08, -1, -0.096419, 0.995341, -4.37114e-08, 0.916567, 1.64525, -1.14479)
shape = SubResource("CapsuleShape3D_kewqg")
[node name="bed_enter" type="Area3D" parent="Bed and Ladders"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.20255, 0, 0.547867)
collision_layer = 2
collision_mask = 2
[node name="CollisionShape3D" type="CollisionShape3D" parent="Bed and Ladders/bed_enter"]
transform = Transform3D(0.995341, 0.096419, 0, 4.21461e-09, -4.35077e-08, -1, -0.096419, 0.995341, -4.37114e-08, 0, 0, 0)
shape = SubResource("CapsuleShape3D_k4x40")
[node name="bed_reset" type="Area3D" parent="Bed and Ladders"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.08894, 0, 0.00684631)
collision_layer = 2
collision_mask = 2
[node name="CollisionShape3D" type="CollisionShape3D" parent="Bed and Ladders/bed_reset"]
transform = Transform3D(0.995341, 0.096419, 0, 4.21461e-09, -4.35077e-08, -1, -0.096419, 0.995341, -4.37114e-08, 0.107988, 1.56575e-08, -0.358201)
shape = SubResource("CapsuleShape3D_4q8vc")
[node name="reset_failover" type="Area3D" parent="Bed and Ladders"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.08894, 0, 0.272245)
collision_layer = 2
collision_mask = 2
[node name="CollisionShape3D" type="CollisionShape3D" parent="Bed and Ladders/reset_failover"]
transform = Transform3D(0.995341, 0.096419, 0, 4.21461e-09, -4.35077e-08, -1, -0.096419, 0.995341, -4.37114e-08, 0, 0, 0)
shape = SubResource("CapsuleShape3D_n20ff")
[node name="ladder" type="StaticBody3D" parent="Bed and Ladders"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.77546, 0, 0.720878)
script = SubResource("GDScript_uyt24")
[node name="CollisionShape3D" type="CollisionShape3D" parent="Bed and Ladders/ladder"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.336261, -0.199846, 0.0549462)
shape = SubResource("BoxShape3D_gim5a")
[connection signal="mouse_entered" from="Collectable" to="Collectable/Collectable_ui" method="show"] [connection signal="mouse_entered" from="Collectable" to="Collectable/Collectable_ui" method="show"]
[connection signal="mouse_entered" from="Collectable" to="Collectable/DisplayMenu" method="set_disabled" binds= [true]] [connection signal="mouse_entered" from="Collectable" to="Collectable/DisplayMenu" method="set_disabled" binds= [true]]
[connection signal="input_event" from="Collectable/Collectable_ui" to="Collectable/Collectable_ui" method="_on_input_event" flags=18] [connection signal="input_event" from="Collectable/Collectable_ui" to="Collectable/Collectable_ui" method="_on_input_event" flags=18]
[connection signal="mouse_entered" from="Exit" to="Exit/Collectable_ui" method="show"]
[connection signal="mouse_entered" from="Exit" to="Exit/DisplayMenu" method="set_disabled"]
[connection signal="input_event" from="Exit/Collectable_ui" to="Exit/Collectable_ui" method="_on_input_event" flags=18]
[connection signal="mouse_entered" from="Board" to="Board/Collectable_ui" method="show"]
[connection signal="mouse_entered" from="Board" to="Board/DisplayMenu" method="set_disabled"]
[connection signal="input_event" from="Board/Collectable_ui" to="Board/Collectable_ui" method="_on_input_event" flags=18]
[connection signal="body_entered" from="Bed and Ladders/ladder_trigger" to="PlayerController" method="_on_bed_enter"]
[connection signal="body_entered" from="Bed and Ladders/ladder_trigger" to="Bed and Ladders/ladder" method="raise"]
[connection signal="body_exited" from="Bed and Ladders/ladder_reset" to="PlayerController" method="_on_bed_exit"]
[connection signal="body_exited" from="Bed and Ladders/ladder_reset" to="Bed and Ladders/ladder" method="reset"]
[connection signal="body_entered" from="Bed and Ladders/bed_enter" to="PlayerController" method="_on_bed_enter"]
[connection signal="body_exited" from="Bed and Ladders/bed_reset" to="PlayerController" method="_on_bed_exit"]
[connection signal="body_exited" from="Bed and Ladders/reset_failover" to="PlayerController" method="_on_bed_exit"]

View File

@ -0,0 +1,174 @@
[gd_scene load_steps=14 format=3 uid="uid://bj3tbkmppabfq"]
[ext_resource type="Shader" path="res://vfx/particle_mixer.gdshader" id="1_g8u1t"]
[ext_resource type="Texture2D" uid="uid://dq7jm5ufknbb6" path="res://vfx/lens-flare-particle.png" id="2_mi0wa"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_lpenh"]
render_priority = 0
shader = ExtResource("1_g8u1t")
shader_parameter/particle_color = null
shader_parameter/particle_texture = ExtResource("2_mi0wa")
[sub_resource type="Gradient" id="Gradient_tjuvm"]
offsets = PackedFloat32Array(0, 0.50813, 1)
colors = PackedColorArray(1, 0.877403, 0.516545, 1, 0.94702, 0.505309, 0.59484, 1, 0.735853, 0.324231, 0.687053, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_d2t20"]
gradient = SubResource("Gradient_tjuvm")
[sub_resource type="Gradient" id="Gradient_c8r4y"]
offsets = PackedFloat32Array(0, 0.00813008, 0.52439, 1)
colors = PackedColorArray(0, 0, 0, 1, 0.0284553, 0.0284553, 0.0284553, 1, 0.244776, 0.244776, 0.244776, 1, 0, 0, 0, 1)
[sub_resource type="GradientTexture1D" id="GradientTexture1D_2vogp"]
gradient = SubResource("Gradient_c8r4y")
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_eegys"]
emission_shape = 1
emission_sphere_radius = 0.3
spread = 180.0
gravity = Vector3(0, 0.02, 0)
initial_velocity_max = 0.2
color_ramp = SubResource("GradientTexture1D_2vogp")
color_initial_ramp = SubResource("GradientTexture1D_d2t20")
turbulence_enabled = true
turbulence_noise_strength = 0.1
turbulence_noise_scale = 2.0
turbulence_noise_speed = Vector3(0.1, 0.3, 0.5)
turbulence_noise_speed_random = 0.3
turbulence_influence_min = 0.01
turbulence_influence_max = 0.03
turbulence_initial_displacement_max = 1.0
[sub_resource type="Shader" id="Shader_p2314"]
code = "// NOTE: Shader automatically converted from Godot Engine 4.0.stable's StandardMaterial3D.
shader_type spatial;
render_mode blend_mix,depth_draw_opaque,cull_back,diffuse_burley,specular_disabled;
uniform vec4 albedo : source_color;
uniform sampler2D texture_albedo : source_color,filter_linear_mipmap,repeat_enable;
uniform float point_size : hint_range(0,128);
uniform float roughness : hint_range(0,1);
uniform sampler2D texture_metallic : hint_default_white,filter_linear_mipmap,repeat_enable;
uniform vec4 metallic_texture_channel;
uniform sampler2D texture_roughness : hint_roughness_r,filter_linear_mipmap,repeat_enable;
uniform float specular;
uniform float metallic;
uniform int particles_anim_h_frames;
uniform int particles_anim_v_frames;
uniform bool particles_anim_loop;
uniform vec4 backlight : source_color;
uniform sampler2D texture_backlight : hint_default_black,filter_linear_mipmap,repeat_enable;
uniform vec3 uv1_scale;
uniform vec3 uv1_offset;
uniform vec3 uv2_scale;
uniform vec3 uv2_offset;
void vertex() {
UV=UV*uv1_scale.xy+uv1_offset.xy;
mat4 mat_world = mat4(normalize(INV_VIEW_MATRIX[0]), normalize(INV_VIEW_MATRIX[1]) ,normalize(INV_VIEW_MATRIX[2]), MODEL_MATRIX[3]);
mat_world = mat_world * mat4(vec4(cos(INSTANCE_CUSTOM.x), -sin(INSTANCE_CUSTOM.x), 0.0, 0.0), vec4(sin(INSTANCE_CUSTOM.x), cos(INSTANCE_CUSTOM.x), 0.0, 0.0), vec4(0.0, 0.0, 1.0, 0.0), vec4(0.0, 0.0, 0.0, 1.0));
MODELVIEW_MATRIX = VIEW_MATRIX * mat_world;
MODELVIEW_NORMAL_MATRIX = mat3(MODELVIEW_MATRIX);
float h_frames = float(particles_anim_h_frames);
float v_frames = float(particles_anim_v_frames);
float particle_total_frames = float(particles_anim_h_frames * particles_anim_v_frames);
float particle_frame = floor(INSTANCE_CUSTOM.z * float(particle_total_frames));
if (!particles_anim_loop) {
particle_frame = clamp(particle_frame, 0.0, particle_total_frames - 1.0);
} else {
particle_frame = mod(particle_frame, particle_total_frames);
}
UV /= vec2(h_frames, v_frames);
UV += vec2(mod(particle_frame, h_frames) / h_frames, floor((particle_frame + 0.5) / h_frames) / v_frames);
}
void fragment() {
vec2 base_uv = UV;
vec4 albedo_tex = texture(texture_albedo,base_uv);
albedo_tex *= COLOR;
ALBEDO = albedo.rgb * albedo_tex.rgb;
float metallic_tex = dot(texture(texture_metallic,base_uv),metallic_texture_channel);
METALLIC = metallic_tex * metallic;
vec4 roughness_texture_channel = vec4(1.0,0.0,0.0,0.0);
float roughness_tex = dot(texture(texture_roughness,base_uv),roughness_texture_channel);
ROUGHNESS = roughness_tex * roughness;
SPECULAR = specular;
vec3 backlight_tex = texture(texture_backlight,base_uv).rgb;
BACKLIGHT = (backlight.rgb+backlight_tex);
}
"
[sub_resource type="ShaderMaterial" id="ShaderMaterial_fgrmi"]
render_priority = 0
shader = SubResource("Shader_p2314")
shader_parameter/albedo = Color(1, 1, 1, 1)
shader_parameter/point_size = 1.0
shader_parameter/roughness = 1.0
shader_parameter/metallic_texture_channel = Plane(1, 0, 0, 0)
shader_parameter/specular = 0.5
shader_parameter/metallic = 0.0
shader_parameter/particles_anim_h_frames = 1
shader_parameter/particles_anim_v_frames = 1
shader_parameter/particles_anim_loop = false
shader_parameter/backlight = Color(0, 0, 0, 1)
shader_parameter/uv1_scale = Vector3(1, 1, 1)
shader_parameter/uv1_offset = Vector3(0, 0, 0)
shader_parameter/uv2_scale = Vector3(1, 1, 1)
shader_parameter/uv2_offset = Vector3(0, 0, 0)
shader_parameter/texture_albedo = ExtResource("2_mi0wa")
shader_parameter/texture_backlight = ExtResource("2_mi0wa")
[sub_resource type="QuadMesh" id="QuadMesh_ea2fp"]
material = SubResource("ShaderMaterial_fgrmi")
size = Vector2(0.1, 0.1)
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xd7ns"]
specular_mode = 2
vertex_color_use_as_albedo = true
albedo_texture = ExtResource("2_mi0wa")
backlight_enabled = true
backlight_texture = ExtResource("2_mi0wa")
billboard_mode = 3
particles_anim_h_frames = 1
particles_anim_v_frames = 1
particles_anim_loop = false
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_coqla"]
blend_mode = 1
albedo_color = Color(0, 0, 0, 1)
metallic_specular = 1.0
[node name="Node3D" type="Node3D"]
[node name="collectable_particles" type="GPUParticles3D" parent="."]
material_override = SubResource("ShaderMaterial_lpenh")
material_overlay = SubResource("ShaderMaterial_lpenh")
cast_shadow = 0
amount = 100
lifetime = 10.0
process_material = SubResource("ParticleProcessMaterial_eegys")
draw_pass_1 = SubResource("QuadMesh_ea2fp")
[node name="CSGBox3D" type="CSGBox3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -2.66951)
size = Vector3(1, 1, 2.7375)
material = SubResource("StandardMaterial3D_xd7ns")
[node name="CSGSphere3D" type="CSGSphere3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.81792, 0, 0)
material = SubResource("StandardMaterial3D_coqla")
[node name="CSGSphere3D2" type="CSGSphere3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.157, -1.19209e-07, 0.894892)
material = SubResource("StandardMaterial3D_coqla")
[node name="Camera3D" type="Camera3D" parent="CSGSphere3D2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.61871)
fov = 33.6

View File

@ -0,0 +1,5 @@
[gd_scene format=3 uid="uid://bigr0lnen1xdh"]
[node name="Node3D" type="Node3D"]
[node name="Node3D" type="Node3D" parent="."]

View File

@ -0,0 +1,30 @@
[gd_scene load_steps=4 format=3 uid="uid://bdnesuqroi7ss"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_nbr3v"]
blend_mode = 1
billboard_mode = 3
particles_anim_h_frames = 1
particles_anim_v_frames = 1
particles_anim_loop = false
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_d61lg"]
emission_shape = 1
emission_sphere_radius = 1.0
spread = 180.0
gravity = Vector3(0, 1, 0)
initial_velocity_min = 0.2
initial_velocity_max = 1.0
turbulence_enabled = true
turbulence_noise_speed = Vector3(0.1, 0.3, 0.5)
turbulence_noise_speed_random = 0.3
turbulence_influence_min = 0.05
turbulence_initial_displacement_max = 1.0
[sub_resource type="QuadMesh" id="QuadMesh_ea2fp"]
[node name="collectable_particles" type="GPUParticles3D"]
material_override = SubResource("StandardMaterial3D_nbr3v")
amount = 30
lifetime = 10.0
process_material = SubResource("ParticleProcessMaterial_d61lg")
draw_pass_1 = SubResource("QuadMesh_ea2fp")

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

View File

@ -0,0 +1,35 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dq7jm5ufknbb6"
path.s3tc="res://.godot/imported/lens-flare-particle.png-977dfc4c080000604387722f4a049ecd.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://vfx/lens-flare-particle.png"
dest_files=["res://.godot/imported/lens-flare-particle.png-977dfc4c080000604387722f4a049ecd.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=0

View File

@ -0,0 +1,22 @@
shader_type spatial;
render_mode blend_add, specular_disabled;
uniform sampler2D particle_texture;
uniform vec4 particle_color : source_color;
void vertex() {
mat4 mat_world = mat4(normalize(INV_VIEW_MATRIX[0]), normalize(INV_VIEW_MATRIX[1]) ,normalize(INV_VIEW_MATRIX[2]), MODEL_MATRIX[3]);
mat_world = mat_world * mat4(vec4(cos(INSTANCE_CUSTOM.x), -sin(INSTANCE_CUSTOM.x), 0.0, 0.0), vec4(sin(INSTANCE_CUSTOM.x), cos(INSTANCE_CUSTOM.x), 0.0, 0.0), vec4(0.0, 0.0, 1.0, 0.0), vec4(0.0, 0.0, 0.0, 1.0));
MODELVIEW_MATRIX = VIEW_MATRIX * mat_world;
MODELVIEW_NORMAL_MATRIX = mat3(MODELVIEW_MATRIX);
UV += vec2(float(INSTANCE_ID%2), float(INSTANCE_ID/2%2));
}
void fragment() {
ALBEDO = texture(particle_texture,UV/2.0).xyz * COLOR.xyz;
EMISSION = ALBEDO/8.0;
BACKLIGHT = ALBEDO;
SPECULAR = 0.0;
}