diff --git a/entities/camera/camera_3d.tscn b/entities/camera/camera_3d.tscn new file mode 100644 index 0000000..2f8ae99 --- /dev/null +++ b/entities/camera/camera_3d.tscn @@ -0,0 +1,11 @@ +[gd_scene load_steps=3 format=3 uid="uid://bux7l5saau0fj"] + +[ext_resource type="Script" uid="uid://bdhupx1blbgwo" path="res://entities/camera/camera_3d.gd" id="1_nojmh"] +[ext_resource type="Script" uid="uid://cos8lidbqmhv6" path="res://entities/camera/camera_effects.gd" id="2_6kt7g"] + +[node name="Camera3D" type="Camera3D"] +transform = Transform3D(-0.995019, -1.11202e-08, -0.0996845, -0.0423712, 0.905169, 0.422936, 0.0902313, 0.425053, -0.90066, 0, 0, 0) +script = ExtResource("1_nojmh") + +[node name="Node" type="Node" parent="."] +script = ExtResource("2_6kt7g") diff --git a/entities/camera/camera_effects.gd b/entities/camera/camera_effects.gd new file mode 100644 index 0000000..0753182 --- /dev/null +++ b/entities/camera/camera_effects.gd @@ -0,0 +1,9 @@ +extends Node + +@export var car: Car +@export var fov_min := 70.0 +@export var speed_fov_effect := 0.5 +@onready var camera_3d: Camera3D = $".." + +func _process(delta: float) -> void: + camera_3d.fov = 70 + car.linear_velocity.length() * speed_fov_effect diff --git a/entities/camera/camera_effects.gd.uid b/entities/camera/camera_effects.gd.uid new file mode 100644 index 0000000..41cbd0b --- /dev/null +++ b/entities/camera/camera_effects.gd.uid @@ -0,0 +1 @@ +uid://cos8lidbqmhv6 diff --git a/entities/car/car.gd b/entities/car/car.gd index d283da9..ecefedb 100644 --- a/entities/car/car.gd +++ b/entities/car/car.gd @@ -37,7 +37,6 @@ var air_time := 0.0 func custom_gravity() -> Vector3: var closest_offset = road_path.curve.get_closest_offset(road_path.to_local(position)) var closest_transform = road_path.curve.sample_baked_with_rotation(closest_offset, true, true) - var closest_point = road_path.to_global(closest_transform.origin) return -closest_transform.basis.y diff --git a/scenes/levels/level0_template.tscn b/scenes/levels/level0_template.tscn index ea6ab60..83958c7 100644 --- a/scenes/levels/level0_template.tscn +++ b/scenes/levels/level0_template.tscn @@ -6,7 +6,7 @@ [ext_resource type="Script" uid="uid://bdw7xdf1lc3ud" path="res://entities/road/do_spline.gd" id="4_mvorh"] [ext_resource type="PackedScene" uid="uid://dgs0fqojgcmu3" path="res://entities/car/car.tscn" id="5_hulh5"] [ext_resource type="PhysicsMaterial" uid="uid://doaljsb6138cp" path="res://entities/car/car_physic_mat.tres" id="6_yw11j"] -[ext_resource type="Script" uid="uid://bdhupx1blbgwo" path="res://entities/camera/camera_3d.gd" id="7_icp1j"] +[ext_resource type="PackedScene" uid="uid://bux7l5saau0fj" path="res://entities/camera/camera_3d.tscn" id="7_u4oya"] [ext_resource type="Shader" uid="uid://tqpr7f3nr72k" path="res://world_env/sky/sky_1.gdshader" id="8_4gpp4"] [ext_resource type="PackedScene" uid="uid://caolvlv4uvi04" path="res://entities/checkpoint/checkpoint.tscn" id="9_rdr40"] [ext_resource type="Material" uid="uid://cx7p36k3dewle" path="res://entities/checkpoint/checkpoint_start_mat.tres" id="10_q5jtg"] @@ -116,13 +116,15 @@ base_lateral_friction = 100.0 [node name="CameraFollowPoint" parent="Car" index="6"] transform = Transform3D(-1, 0, -8.74228e-08, -3.12697e-08, 0.933843, 0.357684, 8.16391e-08, 0.357684, -0.933843, 0, 1.48636, -2.93594) -[node name="Camera3D" type="Camera3D" parent="." node_paths=PackedStringArray("cameraPreview", "followPoint", "previewUi")] -transform = Transform3D(-0.995019, -1.11202e-08, -0.0996845, -0.0423712, 0.905169, 0.422936, 0.0902313, 0.425053, -0.90066, -24.6506, 25.5741, -51.8213) -script = ExtResource("7_icp1j") +[node name="Camera3D" parent="." node_paths=PackedStringArray("cameraPreview", "followPoint", "previewUi") instance=ExtResource("7_u4oya")] +transform = Transform3D(-0.995019, 3.72529e-09, -0.0996846, -0.0423712, 0.905169, 0.422936, 0.0902314, 0.425053, -0.90066, -24.6506, 25.5741, -51.8213) cameraPreview = NodePath("../CameraPreview") followPoint = NodePath("../Car/CameraFollowPoint") previewUi = NodePath("../PreviewUi") +[node name="Node" parent="Camera3D" index="0" node_paths=PackedStringArray("car")] +car = NodePath("../../Car") + [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_0wfyh") @@ -171,6 +173,7 @@ transform = Transform3D(0.903903, -0.229357, 0.361046, 0, 0.844085, 0.53621, -0. [connection signal="end_track" from="CheckPointManager" to="WinMenu" method="_on_check_point_manager_end_track"] [editable path="Car"] +[editable path="Camera3D"] [editable path="Node3D/Checkpoint"] [editable path="GameUi"] [editable path="WinMenu"]