initial uncanny work

This commit is contained in:
Haze Weathers 2025-02-28 05:31:27 -05:00
parent ab2d42ccd9
commit 8165cda61c
11 changed files with 132 additions and 12 deletions

View file

@ -3,25 +3,26 @@
importer="texture" importer="texture"
type="CompressedTexture2D" type="CompressedTexture2D"
uid="uid://bu4dwr7l6pwcv" uid="uid://bu4dwr7l6pwcv"
path="res://.godot/imported/gskin0.png-181c0e3148c4126d978cd8f14eb610d1.ctex" path.s3tc="res://.godot/imported/gskin0.png-181c0e3148c4126d978cd8f14eb610d1.s3tc.ctex"
metadata={ metadata={
"vram_texture": false "imported_formats": ["s3tc_bptc"],
"vram_texture": true
} }
[deps] [deps]
source_file="res://assets/textures/chaser/gskin0.png" 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] [params]
compress/mode=0 compress/mode=2
compress/high_quality=false compress/high_quality=false
compress/lossy_quality=0.7 compress/lossy_quality=0.7
compress/hdr_compression=1 compress/hdr_compression=1
compress/normal_map=0 compress/normal_map=0
compress/channel_pack=0 compress/channel_pack=0
mipmaps/generate=false mipmaps/generate=true
mipmaps/limit=-1 mipmaps/limit=-1
roughness/mode=0 roughness/mode=0
roughness/src_normal="" roughness/src_normal=""
@ -31,4 +32,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false process/hdr_as_srgb=false
process/hdr_clamp_exposure=false process/hdr_clamp_exposure=false
process/size_limit=0 process/size_limit=0
detect_3d/compress_to=1 detect_3d/compress_to=0

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View file

@ -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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

Before After
Before After

View file

@ -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://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"] [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="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="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="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"] [sub_resource type="Resource" id="Resource_qskty"]
script = ExtResource("2_61qek") script = ExtResource("2_61qek")
title = "Welcome To Poo Central!" title = "Welcome To Golf Central!"
difficulty = 1 difficulty = 1
metadata/_custom_type_script = "uid://hmtamckjm4vm" 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) 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) 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="."] [node name="CSGMesh3D" type="CSGMesh3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0)
use_collision = true use_collision = true
collision_mask = 0 collision_mask = 0
mesh = SubResource("BoxMesh_25rxq") mesh = SubResource("BoxMesh_25rxq")
material = SubResource("ShaderMaterial_tpmcl") 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)

Binary file not shown.

View file

@ -52,7 +52,7 @@ resource_name = "Not Moving"
script = ExtResource("8_d5slg") script = ExtResource("8_d5slg")
expression = "velocity.is_zero_approx()" 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_priority = -100
process_physics_priority = -100 process_physics_priority = -100
collision_layer = 16 collision_layer = 16
@ -87,7 +87,7 @@ shape = SubResource("SphereShape3D_4o01j")
[node name="Graphics" type="Node3D" parent="."] [node name="Graphics" type="Node3D" parent="."]
[node name="CannySprite" type="Sprite3D" parent="Graphics"] [node name="CannySprite" type="Sprite3D" parent="Graphics"]
pixel_size = 0.0156 pixel_size = 0.0313
billboard = 1 billboard = 1
texture_filter = 0 texture_filter = 0
texture = ExtResource("1_cp4br") texture = ExtResource("1_cp4br")
@ -136,7 +136,7 @@ mesh = SubResource("CylinderMesh_b16dl")
[node name="CameraArm" type="SpringArm3D" parent="."] [node name="CameraArm" type="SpringArm3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.5, 0.866025, 0, -0.866025, 0.5, 0, 0, 0) transform = Transform3D(1, 0, 0, 0, 0.5, 0.866025, 0, -0.866025, 0.5, 0, 0, 0)
collision_mask = 8 collision_mask = 8
spring_length = 8.0 spring_length = 7.0
[node name="Camera3D" type="Camera3D" parent="CameraArm"] [node name="Camera3D" type="Camera3D" parent="CameraArm"]
current = true current = true

26
objects/uncanny_cat.gd Normal file
View file

@ -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())

View file

@ -0,0 +1 @@
uid://1mhmcaluavhg

47
objects/uncanny_cat.tscn Normal file
View file

@ -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")

View file

@ -11,7 +11,7 @@ config_version=5
[application] [application]
config/name="ucg-3d" config/name="ucg-3d"
run/main_scene="res://test_scene.tscn" run/main_scene="uid://bkas0lj53glkn"
config/features=PackedStringArray("4.4", "GL Compatibility") config/features=PackedStringArray("4.4", "GL Compatibility")
config/icon="res://icon.svg" config/icon="res://icon.svg"
@ -36,6 +36,7 @@ import/blender/enabled=false
[global_group] [global_group]
friction_floor="" friction_floor=""
chaser_target="Targets that chaser enemies will lock on to."
[input] [input]
@ -51,6 +52,7 @@ charge_shot={
3d_physics/layer_2="friction" 3d_physics/layer_2="friction"
3d_physics/layer_3="water" 3d_physics/layer_3="water"
3d_physics/layer_5="player" 3d_physics/layer_5="player"
3d_physics/layer_6="uncanny"
[rendering] [rendering]