From 8165cda61cc92924f562677f627927294afa5242 Mon Sep 17 00:00:00 2001 From: Haze Weathers Date: Fri, 28 Feb 2025 05:31:27 -0500 Subject: [PATCH] initial uncanny work --- assets/textures/chaser/gskin0.png.import | 13 +++--- assets/textures/chaser/uncanny.png | Bin 0 -> 4507 bytes assets/textures/chaser/uncanny.png.import | 35 ++++++++++++++++ assets/textures/player/canny.png | Bin 5695 -> 4553 bytes levels/w1/1_01.tscn | 12 +++++- levels/w1/1_04.scn | Bin 4334 -> 0 bytes objects/canny_cat.tscn | 6 +-- objects/uncanny_cat.gd | 26 ++++++++++++ objects/uncanny_cat.gd.uid | 1 + objects/uncanny_cat.tscn | 47 ++++++++++++++++++++++ project.godot | 4 +- 11 files changed, 132 insertions(+), 12 deletions(-) create mode 100644 assets/textures/chaser/uncanny.png create mode 100644 assets/textures/chaser/uncanny.png.import delete mode 100644 levels/w1/1_04.scn create mode 100644 objects/uncanny_cat.gd create mode 100644 objects/uncanny_cat.gd.uid create mode 100644 objects/uncanny_cat.tscn diff --git a/assets/textures/chaser/gskin0.png.import b/assets/textures/chaser/gskin0.png.import index 6faca52..f333bd4 100644 --- a/assets/textures/chaser/gskin0.png.import +++ b/assets/textures/chaser/gskin0.png.import @@ -3,25 +3,26 @@ importer="texture" type="CompressedTexture2D" uid="uid://bu4dwr7l6pwcv" -path="res://.godot/imported/gskin0.png-181c0e3148c4126d978cd8f14eb610d1.ctex" +path.s3tc="res://.godot/imported/gskin0.png-181c0e3148c4126d978cd8f14eb610d1.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://assets/textures/chaser/gskin0.png" -dest_files=["res://.godot/imported/gskin0.png-181c0e3148c4126d978cd8f14eb610d1.ctex"] +dest_files=["res://.godot/imported/gskin0.png-181c0e3148c4126d978cd8f14eb610d1.s3tc.ctex"] [params] -compress/mode=0 +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=false +mipmaps/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" @@ -31,4 +32,4 @@ process/normal_map_invert_y=false process/hdr_as_srgb=false process/hdr_clamp_exposure=false process/size_limit=0 -detect_3d/compress_to=1 +detect_3d/compress_to=0 diff --git a/assets/textures/chaser/uncanny.png b/assets/textures/chaser/uncanny.png new file mode 100644 index 0000000000000000000000000000000000000000..9b2a51e50d6f191173a23a7fdc9954b14e6cfe5d GIT binary patch literal 4507 zcmeHKe^3)w9#6nd5ej;0Rgmi5VmUxJ*=!P$YzYViC29~!PHCsKZgyY78uG(rApt7& z5Oq+h$k}#E(bKtWty(Cpch_3<6w%VLR_Wk<*(W#X!h(58SbV#Jmpe@N;Zz@9Z|?*Kbx5EB8mN**DLg}wzE z1@<)P_e0}1h4=a!*y1Nj`sRZrG7t5O%$7ooQm9CUS`X_(0JOef-ZQvS!b#uh@!Cf4TDHv3V0rlTD9wQ3o3g=EYrs=Pq@1U+B>H z^koiQooS1i9{C);rZ)a{%i-*dgZ!+Pf%>jD=N~w6^~BWVlE%B+Z*2a^+p@$xJ>>Z8 zwBxJ#t`qisn_islK-Q#P$y@g~7yLWt40`d~>CV=toI9)gW^9c9?i6)_U)XpYe+kR3 ztEJQ4IKHrD#m;Fl@t-fNy4(GEP5sl+htgK{7B7fR=>6-Qdy{H{u1EJKU;0zwlxxqg zY1y_0YmfPJ!q#useywkvdhEwXp1xl4eCx#1HBFbVtv;8us&v+S@7-K|YPRoCWJ6~B zJE`wJo@LonJmGTBwO9L&eMpe)U)?!>vHN;t<7;i7=#F*%dh)#Gci!*rSbyZm{p#2M z{*Or;bNp=^zWlxsQZU5ZiiKj!QkwO;6%6OKBSpyV6VFSQkrnbWtP2U49XWZA5&x#+ zD30-*5nrjbkQQGqD&_O5{K#5WU}LLXtbxO`GNUs>G!VFvz+fSFnI}MpjJU*0gDnm# zaZG{;E+bwHX_V{rBTS>vC`ckN#8*&wW;B-J=NxpAY2hFRJQ?v)LGaN^WiS|21l0Fm?3FGFoy{RSU>L*c&`T&IT^dRTrlD|%wt3TxqTMP zFuf-*r~>Gr3^6{XNr4K2KP{3R6XHi}S@(4+zDZ~pj z%piv3o(wvv&Ia)GFwJzPBu2mCimEAyS7`ube+f`aZO`&uH zLac!@s76tlJpqC7ut=l=as>}O6axedQW2B}crQi8zLfWrhejrByc<~sMifn@(~vqfMHw_&off(g&GL?H3GrBH2nK{@#5@INX&hpqbNz@ByndV4TV}+Ei|+8W1+Ejv2#kpl z5bQQwhHXP-m>{7rhvO3IEMAUxRQ@ltczLi4z{8Q}^8whuQW^^1C@WeMehNR9@zPbo zFzHgz3>yw1z*L~H!oU@tVoMp16G8PDOxK}t{%2A_%{h>sLnOhmddMcdN=@h~I7GX~ zkgm1cNmfn%ggxMO2tme=vYntKXa(sh{e!|%q!Ub)G#mCMSc=5s0l^58A}IY&1yc?N ztQ2d;P{bL^|I#Ew0*op$ur53X#S3boa<~`{Y6c$slApn|_$9Z%u<=dCr0=*~<8qBj zfiZ!{vuj+gF)1)6@OXCp-{guOd7VNY_!Sg{m!&H^+Rwp@*381Cwmj(LXU~{NrRFbN z#5vjOnyQAzhSmeEO~2pR4098G`A-I9vY4r2lgpZ0X2RgZg4vSy@b!qqsQKwAsvn2f z>))77*|wA(_wtXLj$@M(g@L&Gn-}NSteeu`LYdxjP3%3K)*EyD-VZrnu-3nn*kU!Y z{TkV%#<^F?&e{v#JTx(ap7*S4aS9Ti={&l-D^w79r)OvUEZ3EUOVzILyEeCG>SX*D zdEDC`L4V<*H)+A zjyqz{ed39$?;7?ld8>y#x{rK&zVNZ#FRMR$;cUkzw;i^|xv@_sKb{odm`{F?^4Pt? z4^Q#UbzkeO$=WRI2J&BZDLdBYQBmg?Is50}zY4k@YabYh+4q8c*9)rU$#qSO??)VL W%Px9`oADi}C^P33nA&ny)&2+K;wPj4 literal 0 HcmV?d00001 diff --git a/assets/textures/chaser/uncanny.png.import b/assets/textures/chaser/uncanny.png.import new file mode 100644 index 0000000..ea7b766 --- /dev/null +++ b/assets/textures/chaser/uncanny.png.import @@ -0,0 +1,35 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c2a63sfnh6il" +path.s3tc="res://.godot/imported/uncanny.png-738ed8a4c24053be61a387bfe7510f94.s3tc.ctex" +metadata={ +"imported_formats": ["s3tc_bptc"], +"vram_texture": true +} + +[deps] + +source_file="res://assets/textures/chaser/uncanny.png" +dest_files=["res://.godot/imported/uncanny.png-738ed8a4c24053be61a387bfe7510f94.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 diff --git a/assets/textures/player/canny.png b/assets/textures/player/canny.png index dad99fd2592626de8a675e19ca55122df0c9707d..cb2b51e73c7cb22c12269be372c9e0f3768cb91a 100644 GIT binary patch delta 1132 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 FV1jEC-uD0i diff --git a/levels/w1/1_01.tscn b/levels/w1/1_01.tscn index b1899b1..115c40c 100644 --- a/levels/w1/1_01.tscn +++ b/levels/w1/1_01.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=16 format=3 uid="uid://bkas0lj53glkn"] +[gd_scene load_steps=18 format=3 uid="uid://bkas0lj53glkn"] [ext_resource type="Script" uid="uid://vydhlp6ju8bw" path="res://levels/level.gd" id="1_r1ilo"] [ext_resource type="Script" uid="uid://hmtamckjm4vm" path="res://levels/level_info.gd" id="2_61qek"] @@ -8,10 +8,12 @@ [ext_resource type="Shader" uid="uid://c3y1ht34ep01k" path="res://assets/shaders/horizontal_world_uv.gdshader" id="6_ka4lg"] [ext_resource type="PackedScene" uid="uid://bfic5n608nc5j" path="res://objects/sand_pit.tscn" id="6_rlgmy"] [ext_resource type="Texture2D" uid="uid://cpmi7w2fwm2sf" path="res://assets/textures/world/checker_grass.png" id="7_3jvq7"] +[ext_resource type="PackedScene" uid="uid://bndtsprfwrkau" path="res://objects/uncanny_cat.tscn" id="7_qskty"] +[ext_resource type="PackedScene" uid="uid://13qlrib2dk36" path="res://objects/waterman_pole.tscn" id="10_qrwyj"] [sub_resource type="Resource" id="Resource_qskty"] script = ExtResource("2_61qek") -title = "Welcome To Poo Central!" +title = "Welcome To Golf Central!" difficulty = 1 metadata/_custom_type_script = "uid://hmtamckjm4vm" @@ -93,9 +95,15 @@ polygon = PackedVector2Array(-3, -2, 1, 0, 5, 6, -3, 6) transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, -12.5406, 0, -10.5995) polygon = PackedVector2Array(2.33224, -4.27959, 0.718879, 0.533604, 2.00957, 6.26103, -3.74475, 6.12658, -3.52964, -4.44092) +[node name="UncannyCat" parent="Objects" instance=ExtResource("7_qskty")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.89785, 0) + [node name="CSGMesh3D" type="CSGMesh3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0) use_collision = true collision_mask = 0 mesh = SubResource("BoxMesh_25rxq") material = SubResource("ShaderMaterial_tpmcl") + +[node name="WatermanPole" parent="." instance=ExtResource("10_qrwyj")] +transform = Transform3D(1, 0, 0, 0, 8, 0, 0, 0, 1, 0, 0, 4) diff --git a/levels/w1/1_04.scn b/levels/w1/1_04.scn deleted file mode 100644 index 73439005f4f75a1697ec687ffb98e095ad15c87d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4334 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 diff --git a/objects/canny_cat.tscn b/objects/canny_cat.tscn index 754876e..2140f9b 100644 --- a/objects/canny_cat.tscn +++ b/objects/canny_cat.tscn @@ -52,7 +52,7 @@ resource_name = "Not Moving" script = ExtResource("8_d5slg") expression = "velocity.is_zero_approx()" -[node name="CannyCat" type="CharacterBody3D" node_paths=PackedStringArray("state_chart", "graphics", "power_indicator", "camera_arm", "collision_shape")] +[node name="CannyCat" type="CharacterBody3D" node_paths=PackedStringArray("state_chart", "graphics", "power_indicator", "camera_arm", "collision_shape") groups=["chaser_target"]] process_priority = -100 process_physics_priority = -100 collision_layer = 16 @@ -87,7 +87,7 @@ shape = SubResource("SphereShape3D_4o01j") [node name="Graphics" type="Node3D" parent="."] [node name="CannySprite" type="Sprite3D" parent="Graphics"] -pixel_size = 0.0156 +pixel_size = 0.0313 billboard = 1 texture_filter = 0 texture = ExtResource("1_cp4br") @@ -136,7 +136,7 @@ mesh = SubResource("CylinderMesh_b16dl") [node name="CameraArm" type="SpringArm3D" parent="."] transform = Transform3D(1, 0, 0, 0, 0.5, 0.866025, 0, -0.866025, 0.5, 0, 0, 0) collision_mask = 8 -spring_length = 8.0 +spring_length = 7.0 [node name="Camera3D" type="Camera3D" parent="CameraArm"] current = true diff --git a/objects/uncanny_cat.gd b/objects/uncanny_cat.gd new file mode 100644 index 0000000..baa8cff --- /dev/null +++ b/objects/uncanny_cat.gd @@ -0,0 +1,26 @@ +extends CharacterBody3D + + +@export var acceleration: float +@export var speed: float +@export var vertical_speed: float + + +func _physics_process(delta: float) -> void: + var target: Node3D = null + for node in get_tree().get_nodes_in_group(&"chaser_target"): + if node is Node3D: + if not target or ( + global_position.distance_squared_to(node.global_position) < + global_position.distance_squared_to(target.global_position) + ): + target = node + + if target: + velocity += global_position.direction_to(target.global_position) * acceleration * delta + velocity = velocity.limit_length(speed) + velocity.y = (target.global_position.y - global_position.y) * vertical_speed + + var col = move_and_collide(velocity * delta) + if col: + velocity = velocity.bounce(col.get_normal()) diff --git a/objects/uncanny_cat.gd.uid b/objects/uncanny_cat.gd.uid new file mode 100644 index 0000000..d50f6ae --- /dev/null +++ b/objects/uncanny_cat.gd.uid @@ -0,0 +1 @@ +uid://1mhmcaluavhg diff --git a/objects/uncanny_cat.tscn b/objects/uncanny_cat.tscn new file mode 100644 index 0000000..c36c2ad --- /dev/null +++ b/objects/uncanny_cat.tscn @@ -0,0 +1,47 @@ +[gd_scene load_steps=6 format=3 uid="uid://bndtsprfwrkau"] + +[ext_resource type="Script" uid="uid://1mhmcaluavhg" path="res://objects/uncanny_cat.gd" id="1_bsm3e"] +[ext_resource type="Texture2D" uid="uid://c2a63sfnh6il" path="res://assets/textures/chaser/uncanny.png" id="2_eotxf"] + +[sub_resource type="SphereShape3D" id="SphereShape3D_eotxf"] +radius = 0.45 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_eotxf"] +transparency = 3 +alpha_hash_scale = 1.0 +alpha_antialiasing_mode = 0 +no_depth_test = true +shading_mode = 0 +albedo_color = Color(1, 0, 0, 0.501961) +albedo_texture = ExtResource("2_eotxf") +texture_filter = 0 +billboard_mode = 1 + +[sub_resource type="SphereShape3D" id="SphereShape3D_ixuei"] + +[node name="UncannyCat" type="CharacterBody3D"] +collision_layer = 32 +collision_mask = 32 +motion_mode = 1 +script = ExtResource("1_bsm3e") +acceleration = 0.6 +speed = 1.5 +vertical_speed = 0.5 + +[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +shape = SubResource("SphereShape3D_eotxf") + +[node name="Sprite3D" type="Sprite3D" parent="."] +material_overlay = SubResource("StandardMaterial3D_eotxf") +pixel_size = 0.0313 +billboard = 1 +texture_filter = 0 +texture = ExtResource("2_eotxf") + +[node name="PlayerDetector" type="Area3D" parent="."] +collision_layer = 0 +collision_mask = 16 +monitorable = false + +[node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerDetector"] +shape = SubResource("SphereShape3D_ixuei") diff --git a/project.godot b/project.godot index 8a754ec..391a0aa 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="ucg-3d" -run/main_scene="res://test_scene.tscn" +run/main_scene="uid://bkas0lj53glkn" config/features=PackedStringArray("4.4", "GL Compatibility") config/icon="res://icon.svg" @@ -36,6 +36,7 @@ import/blender/enabled=false [global_group] friction_floor="" +chaser_target="Targets that chaser enemies will lock on to." [input] @@ -51,6 +52,7 @@ charge_shot={ 3d_physics/layer_2="friction" 3d_physics/layer_3="water" 3d_physics/layer_5="player" +3d_physics/layer_6="uncanny" [rendering]