basic camera movement and textures update

This commit is contained in:
Nikolai Fesenko
2025-08-12 22:48:21 +02:00
parent 83095a0b8d
commit 37e0aa1a3e
15 changed files with 131 additions and 85 deletions

BIN
Blends/.DS_Store vendored

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -1,21 +1,6 @@
# Blender 4.5.1 LTS MTL File: 'DoubleBeds.blend'
# www.blender.org
newmtl Material
Kd 0.800000 0.800000 0.800000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.450000
d 1.000000
illum 2
Pr 0.500000
Pm 0.000000
Ps 0.000000
Pc 0.000000
Pcr 0.030000
aniso 0.000000
anisor 0.000000
newmtl Material.002
Kd 0.800000 0.800000 0.800000
Ks 0.500000 0.500000 0.500000
@@ -27,16 +12,16 @@ Pr 0.400000
Pm 1.000000
newmtl Material.003
Kd 0.800000 0.800000 0.800000
Ks 0.500000 0.500000 0.500000
Ke 0.000000 0.000000 0.000000
Ni 1.000000
d 1.000000
illum 2
Pr 0.500000
Pm 0.000000
Ps 0.000000
Pc 0.000000
Pcr 0.030000
aniso 0.000000
anisor 0.000000
map_Kd textures/Material.003 Base Color.png
map_Pr textures/Material.003 Roughness.png

View File

@@ -3,25 +3,26 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://kl1jplui8wfq"
path="res://.godot/imported/Material.003 Base Color.png-d42a5bbd4c48c68f8735701e76a27b29.ctex"
path.s3tc="res://.godot/imported/Material.003 Base Color.png-d42a5bbd4c48c68f8735701e76a27b29.s3tc.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Blends/Mobel/textures/Material.003 Base Color.png"
dest_files=["res://.godot/imported/Material.003 Base Color.png-d42a5bbd4c48c68f8735701e76a27b29.ctex"]
dest_files=["res://.godot/imported/Material.003 Base Color.png-d42a5bbd4c48c68f8735701e76a27b29.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

View File

@@ -3,25 +3,26 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://lbbig7lpdun3"
path="res://.godot/imported/Material.003 Roughness.png-14263e554e9cb206530fa0866884012b.ctex"
path.s3tc="res://.godot/imported/Material.003 Roughness.png-14263e554e9cb206530fa0866884012b.s3tc.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Blends/Mobel/textures/Material.003 Roughness.png"
dest_files=["res://.godot/imported/Material.003 Roughness.png-14263e554e9cb206530fa0866884012b.ctex"]
dest_files=["res://.godot/imported/Material.003 Roughness.png-14263e554e9cb206530fa0866884012b.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

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -0,0 +1,34 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://84bnb4rnuhuq"
path="res://.godot/imported/double_bed_metal.png-ecfdaed077568d6224139d3066a4c4c8.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Blends/Mobel/textures/double_bed_metal.png"
dest_files=["res://.godot/imported/double_bed_metal.png-ecfdaed077568d6224139d3066a4c4c8.ctex"]
[params]
compress/mode=0
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/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=1

Binary file not shown.

Binary file not shown.

View File

@@ -1,6 +1,6 @@
[gd_scene load_steps=2 format=3 uid="uid://0t0cvsitlfmm"]
[ext_resource type="PackedScene" uid="uid://bnikfigm0lp5q" path="res://Blends/Mobel/DoubleBeds.glb" id="1_kkvf5"]
[ext_resource type="PackedScene" uid="uid://ca3mea0tt0xvg" path="res://Blends/Mobel/DoubleBeds.blend" id="1_kkvf5"]
[node name="DoubleBeds" type="Node3D"]

View File

@@ -1,21 +1,9 @@
[gd_scene load_steps=12 format=3 uid="uid://bj7y7q2qkpnci"]
[gd_scene load_steps=8 format=3 uid="uid://bj7y7q2qkpnci"]
[ext_resource type="ArrayMesh" uid="uid://622ethh2pdfa" path="res://Blends/road/road.obj" id="4_jjvhh"]
[ext_resource type="Texture2D" uid="uid://h1bl3q1pjjnm" path="res://Blends/textures/snow_02_rough_4k.jpg" id="5_21xkr"]
[ext_resource type="ArrayMesh" uid="uid://ws8ddp6stf3s" path="res://Blends/ground.obj" id="6_6bp64"]
[ext_resource type="PackedScene" uid="uid://dim2geqhn6d35" path="res://Scenes/Prefabs/cart.tscn" id="6_21xkr"]
[ext_resource type="PackedScene" uid="uid://dy03tqug33fep" path="res://Blends/ground.blend" id="6_344ge"]
[ext_resource type="Script" uid="uid://drrp1k2q71hq2" path="res://Scripts/camera_3d.gd" id="7_6bp64"]
[ext_resource type="PackedScene" uid="uid://bnikfigm0lp5q" path="res://Blends/Mobel/DoubleBeds.glb" id="8_344ge"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_344ge"]
albedo_texture = ExtResource("5_21xkr")
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ynf5e"]
albedo_texture = ExtResource("5_21xkr")
metallic = 0.31
[sub_resource type="BoxShape3D" id="BoxShape3D_jjvhh"]
size = Vector3(172.382, 1, 159.805)
[sub_resource type="ParticleProcessMaterial" id="ParticleProcessMaterial_21xkr"]
lifetime_randomness = 0.55
@@ -28,6 +16,8 @@ scale_min = 0.0
[sub_resource type="QuadMesh" id="QuadMesh_21xkr"]
size = Vector2(0.5, 0.5)
[sub_resource type="BoxShape3D" id="BoxShape3D_21xkr"]
[node name="Node3D" type="Node3D"]
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
@@ -43,42 +33,6 @@ skeleton = NodePath("../Road")
transform = Transform3D(10.9512, 0, 0, 0, 1, 0, 0, 0, 1, -53.9758, 37.1737, -62.1734)
mesh = ExtResource("4_jjvhh")
[node name="Ground2" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 180.354, 36.969, -59.426)
material_override = SubResource("StandardMaterial3D_344ge")
mesh = ExtResource("6_6bp64")
skeleton = NodePath("../Ground")
surface_material_override/0 = SubResource("StandardMaterial3D_ynf5e")
[node name="StaticBody3D" type="StaticBody3D" parent="Ground2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.9207, -0.00321198, -0.742706)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Ground2/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.167175, 0, -0.376099)
shape = SubResource("BoxShape3D_jjvhh")
[node name="Ground" type="MeshInstance3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.3213, 36.9694, -59.4263)
material_override = SubResource("StandardMaterial3D_344ge")
mesh = ExtResource("6_6bp64")
[node name="StaticBody3D" type="StaticBody3D" parent="Ground"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.9207, -0.00321198, -0.742706)
[node name="CollisionShape3D" type="CollisionShape3D" parent="Ground/StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.57438, 0, -0.376099)
shape = SubResource("BoxShape3D_jjvhh")
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 0.710217, 0.703983, 0, -0.703983, 0.710217, -16.0276, 52.362, -52.6538)
script = ExtResource("7_6bp64")
rayLength = 1000.0
[node name="DebugLabel1" type="Label" parent="Camera3D"]
offset_right = 40.0
offset_bottom = 23.0
text = "Text"
[node name="GPUParticles3D" type="GPUParticles3D" parent="."]
transform = Transform3D(3.70763, 0, 0, 0, 2.24982, 0, 0, 0, 3.71542, -7.77808, 47.2887, -60.0289)
emitting = false
@@ -95,9 +49,42 @@ light_energy = 1.162
spot_range = 23.417
spot_angle = 89.99
[node name="DoubleBeds" parent="." instance=ExtResource("8_344ge")]
transform = Transform3D(-0.00574796, 0, -1.00041, 0, 1, 0, 0.930317, 0, -0.00618104, -6.7791, 40.4211, -61.7192)
[node name="Cart" parent="." node_paths=PackedStringArray("mainCamera") instance=ExtResource("6_21xkr")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.31428, 39.9268, -60.2323)
mainCamera = NodePath("../Camera3D")
mainCamera = NodePath("../RigidBody3D/Camera3D")
[node name="RigidBody3D" type="RigidBody3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.05618, 41.42, -58.2918)
collision_layer = 128
collision_mask = 128
axis_lock_angular_x = true
axis_lock_angular_z = true
mass = 0.001
gravity_scale = 0.0
[node name="Camera3D" type="Camera3D" parent="RigidBody3D" node_paths=PackedStringArray("ownRigidBody", "endZoom")]
transform = Transform3D(1, 0, 0, 0, 0.710217, 0.703983, 0, -0.703983, 0.710217, 0, 17.894, 13.2384)
current = true
script = ExtResource("7_6bp64")
rayLength = 1000.0
camera_speed = 2.0
ownRigidBody = NodePath("..")
endZoom = NodePath("../endZoom")
[node name="DebugLabel1" type="Label" parent="RigidBody3D/Camera3D"]
offset_right = 40.0
offset_bottom = 23.0
text = "Text"
[node name="endZoom" type="Node3D" parent="RigidBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 41.2007, 42.2133)
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D"]
shape = SubResource("BoxShape3D_21xkr")
debug_color = Color(0.895552, 0, 0.381247, 1)
[node name="ground" parent="." instance=ExtResource("6_344ge")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.3213, 36.9694, -59.4263)
[node name="ground2" parent="." instance=ExtResource("6_344ge")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 180.354, 36.969, -59.426)

View File

@@ -1,11 +1,38 @@
extends Camera3D
@export var rayLength: float
@export var camera_speed: float
@export var ownRigidBody: RigidBody3D
@export var endZoom: Node3D
var debugLabel
var global_delta
var default_pos
func _ready() -> void:
default_pos = self.position
debugLabel = $DebugLabel1
func _process(delta: float) -> void:
global_delta = delta
if(Input.is_action_just_released("move_camera_enable")):
ownRigidBody.angular_velocity = Vector3.ZERO
if(Input.is_action_pressed("move_camera_enable")):
var mouseV = Input.get_last_mouse_velocity()
ownRigidBody.angular_velocity.y = -mouseV.x * delta / camera_speed
#ownRigidBody.angular_velocity.x = mouseV.y * delta / camera_speed
#print(self.position.dot(ownRigidBody.position))
func _input(event: InputEvent) -> void:
if(event.is_action("camera_zoom")):
if (event.as_text() == "Mouse Wheel Up"):
self.position = self.position.lerp(Vector3.ZERO,global_delta * 5.0)
else:
self.position = self.position.lerp(endZoom.position,global_delta * 5.0)
func getGlobalRayTargetObject():
var space = get_world_3d().direct_space_state
var mousePos = get_viewport().get_mouse_position()

View File

@@ -27,3 +27,14 @@ enter_build_mode={
"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":66,"key_label":0,"unicode":98,"location":0,"echo":false,"script":null)
]
}
move_camera_enable={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null)
]
}
camera_zoom={
"deadzone": 0.2,
"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":8,"position":Vector2(105, 22),"global_position":Vector2(114, 70),"factor":0.0300018,"button_index":4,"canceled":false,"pressed":true,"double_click":false,"script":null)
, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":16,"position":Vector2(72, 17),"global_position":Vector2(81, 65),"factor":0.0300018,"button_index":5,"canceled":false,"pressed":true,"double_click":false,"script":null)
]
}