first version of EU AI Act game

This commit is contained in:
Anna Hiemenz
2026-05-26 21:46:46 +02:00
commit d370249649
1735 changed files with 79828 additions and 0 deletions
File diff suppressed because one or more lines are too long
+18
View File
@@ -0,0 +1,18 @@
[gd_scene load_steps=3 format=3 uid="uid://bpjqsditshpyd"]
[ext_resource type="ArrayMesh" uid="uid://dka5ewv6regyf" path="res://Resources/meshes/arrow.tres" id="1_vl03t"]
[sub_resource type="BoxShape3D" id="BoxShape3D_vl03t"]
size = Vector3(1.8034668, 0.13964844, 1.7332764)
[node name="Arrow" type="StaticBody3D"]
collision_layer = 4
collision_mask = 15
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(0.44, 0, 0, 0, 0.057506055, 0, 0, 0, 0.44, 0, 0, 0)
mesh = ExtResource("1_vl03t")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.42590332, 0.0043945313, 0.36663818)
shape = SubResource("BoxShape3D_vl03t")
+76
View File
@@ -0,0 +1,76 @@
extends StaticBody3D
class_name Balloon
@export var pop_up_text = ""
@export var wait_time = 4.0
@export var image_path = "res://assets/Images/spiel_ballon_text2.png"
@onready var label_3d: Label3D = $Label3D
@onready var balloon_model: MeshInstance3D = $Balloon_model
@onready var collision_shape_3d: CollisionShape3D = $CollisionShape3D
@onready var area_3d: Area3D = $Area3D
signal balloon_popped
func _ready() -> void:
for child in get_children():
if child is RigidBody3D:
child.freeze = true
child.gravity_scale = 0.0
$label.texture = load(image_path)
func _on_area_3d_body_entered(body: Node3D) -> void:
if not body.is_in_group("throwable"):
return
$AudioStreamPlayer.play()
balloon_popped.emit()
# hide balloon, animation, make label visible
balloon_model.visible = false
$AnimationPlayer.play("pop")
collision_shape_3d.call_deferred("queue_free")
area_3d.call_deferred("queue_free")
label_3d.text = pop_up_text
label_3d.visible = true
# --- let objects hanging from balloons fall ---
for child in get_children():
print(child.name)
if child is not RigidBody3D and child is not Area3D:
print(child)
continue # Label und Ballon ignorieren
var global_tf = child.global_transform
remove_child(child)
get_tree().current_scene.add_child(child) # zurück zur Welt
child.global_transform = global_tf
if child is Area3D and child.name.contains('Battery'):
print('battery falling')
print(child.position)
child.position.y = child.position.y - child.new_y_diff
print(child.position)
child.set_picture()
# if RigidBody3D: activate physics again
if child is RigidBody3D:
child.freeze = false
child.gravity_scale = 1.0
# start coroutine for delay + fade out
await fade_and_destroy()
func fade_and_destroy() -> void:
# wait 10 seconds
await get_tree().create_timer(wait_time).timeout
# create tween and play it
var tween = create_tween()
tween.tween_property($label, "modulate:a", 0.0, 0.5) # 2 Sekunden FadeOut
# wait til tween is finished
await tween.finished
# delete node
queue_free()
func _on_animation_player_animation_finished(anim_name: StringName) -> void:
if anim_name == 'pop':
$popped_balloon.visible = false
+1
View File
@@ -0,0 +1 @@
uid://dgai8blbmru22
File diff suppressed because one or more lines are too long
+16
View File
@@ -0,0 +1,16 @@
extends Node3D
@export var balloon_resource: String = "res://Resources/meshes/dog.tres"
signal balloon_chosen
func _ready() -> void:
$Balloon_model.mesh = load(balloon_resource)
func _on_area_3d_body_entered(body: Node3D) -> void:
if not body.is_in_group("throwable") and not body is Player:
return
balloon_chosen.emit(balloon_resource)
func set_mesh(mesh: String):
$Balloon_model.mesh = load(mesh)
@@ -0,0 +1 @@
uid://cffy3itwwknc7
@@ -0,0 +1,31 @@
[gd_scene load_steps=5 format=3 uid="uid://ccdju064l1xg0"]
[ext_resource type="Script" uid="uid://cffy3itwwknc7" path="res://Resources/Objects/balloon_collectable.gd" id="1_3uo3v"]
[ext_resource type="ArrayMesh" uid="uid://jlkdee0elxgj" path="res://Resources/meshes/dog.tres" id="1_lsomq"]
[ext_resource type="ArrayMesh" uid="uid://m3hcjcox5dkf" path="res://Resources/meshes/balloon_string_curved.tres" id="2_3uo3v"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_l0yg6"]
radius = 0.8
[node name="Balloon" type="Node3D"]
script = ExtResource("1_3uo3v")
[node name="Area3D" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.32942295, 0)
collision_layer = 33
collision_mask = 33
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"]
shape = SubResource("CapsuleShape3D_l0yg6")
[node name="Balloon_model" type="MeshInstance3D" parent="."]
transform = Transform3D(1.5, 0, 0, 0, 1.5, 0, 0, 0, 1.5, 0, 0.28870273, 0)
mesh = ExtResource("1_lsomq")
skeleton = NodePath("")
[node name="Cylinder_049" type="MeshInstance3D" parent="Balloon_model"]
transform = Transform3D(0.40000004, 0, 0, 0, 0.40000004, 0, 0, 0, 0.40000004, 0, -0.38572907, 0)
mesh = ExtResource("2_3uo3v")
skeleton = NodePath("")
[connection signal="body_entered" from="Area3D" to="." method="_on_area_3d_body_entered"]
+51
View File
@@ -0,0 +1,51 @@
extends Grabbable_Object
class_name Battery
@export var stored_power: int = 50
@export var battery_label: String
var connected_station: Node3D = null
var original_transform: Transform3D
var grabbed_parent
var lamp_color
@onready var battery_lamp_0: CSGSphere3D = $Battery/Battery_lamp_0
@export var image_path: String = "res://assets/Images/EU_AI_Act_logo_main.png"
func _ready() -> void:
lamp_color = battery_lamp_0.material.albedo_color
$Sprite3D.texture = load(image_path)
func insert_into_station(station: Node3D):
if connected_station:
return
connected_station = station
grabbed_parent = get_parent()
original_transform = global_transform
# put battery inot box
grabbed_parent.remove_child(self)
station.add_child(self)
self.visible = false
self.freeze = true
if station.has_method("insert_battery"):
station.insert_battery(self)
func remove_from_station():
if not connected_station:
return null
var station = connected_station
connected_station = null
# get battery back out
if original_parent:
station.remove_child(self)
grabbed_parent.add_child(self)
global_transform = original_transform
self.visible = true
self.freeze = false
return self
+1
View File
@@ -0,0 +1 @@
uid://buxph0fig58vk
File diff suppressed because one or more lines are too long
+18
View File
@@ -0,0 +1,18 @@
extends Area3D
@export var new_y_diff = 0.0
@export var image_path: String = "res://assets/Images/EU_AI_Act_logo_main.png"
signal battery_collected
func set_picture() -> void:
print('setting picture: ', image_path)
$Sprite3D.texture = load(image_path)
$Sprite3D.visible = true
func _on_body_entered(body: Node) -> void:
$AudioStreamPlayer.play()
await get_tree().create_timer(0.1).timeout
Global.batteries += 1
battery_collected.emit()
queue_free()
+1
View File
@@ -0,0 +1 @@
uid://blrm6oxhr4c5l
File diff suppressed because one or more lines are too long
+150
View File
@@ -0,0 +1,150 @@
extends StaticBody3D
class_name BatteryBox2
@onready var ai_threat: Label3D = $AI_threat/AI_threat_label
@onready var box_battery = $Battery
@onready var battery_lamp_0:= $battery_lamp_0
@onready var battery_lamp_1:= $battery_lamp_1
@onready var status_lamps = [
$Status/status_0,
$Status/status_1,
$Status/status_2,
$Status/status_3,
$Status/status_4
]
@export var power_needed: int = 50
@export var max_power: int = 100
@export var display_text: String
var current_power: int = 0
var battery_obj: Battery = null
var blink_timer: Timer
var color_dict = {25: Color(0.0, 1.697, 0.0),
50: Color(1.697, 1.697, 0.0),
75: Color(1.697, 0.85, 0.0),
100: Color(1.697, 0.0, 0.0)}
signal removed_battery
signal fully_charged
func _ready() -> void:
blink_timer = Timer.new()
blink_timer.wait_time = 0.3
blink_timer.one_shot = false
blink_timer.timeout.connect(_on_blink_timeout)
add_child(blink_timer)
ai_threat.text = display_text
for lamp in status_lamps:
lamp.visible = true
if lamp.get_surface_override_material(0) == null:
var material = StandardMaterial3D.new()
lamp.set_surface_override_material(0, material)
lamp.get_surface_override_material(0).albedo_color = Color.DIM_GRAY
var material_b0 = battery_lamp_0.mesh.surface_get_material(0).duplicate()
battery_lamp_0.mesh.surface_set_material(0, material_b0)
var material_b1 = battery_lamp_1.mesh.surface_get_material(0).duplicate()
battery_lamp_1.mesh.surface_set_material(0, material_b1)
func insert_battery(battery: Battery) -> void:
battery_obj = battery
current_power = battery_obj.stored_power
var lamp_color = color_dict[current_power]
battery_lamp_0.mesh.surface_get_material(0).albedo_color = lamp_color
battery_lamp_1.mesh.surface_get_material(0).albedo_color = lamp_color
box_battery.visible = true
update_status_lamps(battery_obj)
func remove_battery() -> Battery:
$Sprite3D.visible = false
var temp_battery = battery_obj
battery_obj = null
if current_power == power_needed:
removed_battery.emit()
current_power = 0
box_battery.visible = false
blink_timer.stop()
for lamp in status_lamps:
if lamp.get_surface_override_material(0) == null:
var material = StandardMaterial3D.new()
lamp.set_surface_override_material(0, material)
lamp.get_surface_override_material(0).albedo_color = Color.DIM_GRAY
lamp.visible = true
battery_lamp_0.mesh.surface_get_material(0).albedo_color = Color.DIM_GRAY
battery_lamp_1.mesh.surface_get_material(0).albedo_color = Color.DIM_GRAY
temp_battery.remove_from_station()
return temp_battery
func update_status_lamps(battery_obj: Battery) -> void:
# ratio between current_power and power_needed
var ratio: float = 0.0
if power_needed != 0:
ratio = float(current_power) / float(power_needed)
ratio = clamp(ratio, 0.0, 1.0)
# count of lamps that should be colored (0..len)
var lamps_to_light: int = ceil(ratio * status_lamps.size())
# special cases: exactly full or overloaded
var is_full := current_power == power_needed
var is_over := current_power > power_needed
if is_full:
play_sounds('insert_correct')
fully_charged.emit()
$Sprite3D.texture = load(battery_obj.image_path)
$Sprite3D.visible = true
# update each lamp
for i in range(lamps_to_light):
var lamp = status_lamps[i]
# secure that material is there
if lamp.get_surface_override_material(0) == null:
var material = StandardMaterial3D.new()
lamp.set_surface_override_material(0, material)
lamp.get_surface_override_material(0).albedo_color = Color.GREEN
if is_over:
play_sounds('insert_false')
# too much -> all red
lamp.get_surface_override_material(0).albedo_color = Color.RED
lamp.visible = true
elif is_full:
# exaclty full -> all green
lamp.get_surface_override_material(0).albedo_color = Color.GREEN
lamp.visible = true
else:
# off / grey
play_sounds('insert_false')
lamp.get_surface_override_material(0).albedo_color = Color.YELLOW
lamp.visible = true
await get_tree().create_timer(0.3).timeout
# blink if overloaded
if is_over:
if not blink_timer.is_stopped():
# timer is running -> nothing
pass
else:
blink_timer.start()
else:
blink_timer.stop()
# make sure that all are visible (if blinking before)
for lamp in status_lamps:
lamp.visible = true
func _on_blink_timeout() -> void:
# in case of too much power: lamps blink (toggle visibility)
if current_power > power_needed:
for lamp in status_lamps:
if lamp.get_surface_override_material(0).albedo_color == Color.DIM_GRAY:
lamp.get_surface_override_material(0).albedo_color = Color.RED
else:
lamp.get_surface_override_material(0).albedo_color = Color.DIM_GRAY
func play_sounds(soundname: String) -> void:
if soundname == 'insert_correct':
$audio_right.play()
elif soundname == 'insert_false':
$audio_false.play()
+1
View File
@@ -0,0 +1 @@
uid://ctgkbxok3s47x
File diff suppressed because one or more lines are too long
+24
View File
@@ -0,0 +1,24 @@
[gd_scene load_steps=5 format=3 uid="uid://dw48drx137ih2"]
[ext_resource type="Script" uid="uid://b8c8vph26uu41" path="res://Interact/grabbable_object.gd" id="1_8qqxd"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qncar"]
albedo_color = Color(0.53, 1, 0.9451667, 1)
[sub_resource type="BoxMesh" id="BoxMesh_qncar"]
material = SubResource("StandardMaterial3D_qncar")
[sub_resource type="BoxShape3D" id="BoxShape3D_im0tn"]
[node name="Block" type="RigidBody3D"]
collision_layer = 4
collision_mask = 7
mass = 0.001
continuous_cd = true
script = ExtResource("1_8qqxd")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
mesh = SubResource("BoxMesh_qncar")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("BoxShape3D_im0tn")
+19
View File
@@ -0,0 +1,19 @@
[gd_scene load_steps=3 format=3 uid="uid://cq0h8h7icvfe0"]
[ext_resource type="ArrayMesh" uid="uid://dxs6dl0kt33hf" path="res://Resources/meshes/bridge.tres" id="1_5r8xi"]
[sub_resource type="BoxShape3D" id="BoxShape3D_h7pgn"]
size = Vector3(22, 0.2, 2.5)
[node name="bridge" type="StaticBody3D"]
transform = Transform3D(0.99701, -0.0772759, 0, 0.0772759, 0.99701, 0, 0, 0, 1, 0, 0, 0)
collision_layer = 2
collision_mask = 13
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(1.2, 0, 0, 0, 1.2, 0, 0, 0, 1.2, 0, 1.194, 0)
mesh = ExtResource("1_5r8xi")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.195, 0)
shape = SubResource("BoxShape3D_h7pgn")
+18
View File
@@ -0,0 +1,18 @@
[gd_scene load_steps=3 format=3 uid="uid://cekwmmeqhnt8c"]
[ext_resource type="ArrayMesh" uid="uid://2k22inm231b5" path="res://Resources/meshes/fence.tres" id="1_cvhob"]
[sub_resource type="BoxShape3D" id="BoxShape3D_mfgll"]
size = Vector3(0.211, 10, 1.981)
[node name="Fence" type="StaticBody3D"]
collision_layer = 64
collision_mask = 9
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.371139e-08, 1, 0, -1, -4.371139e-08, 0, 0, 0, 1, 0, 1.3103899, 0)
mesh = ExtResource("1_cvhob")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0075683594, 5.002912, -0.00012207031)
shape = SubResource("BoxShape3D_mfgll")
+18
View File
@@ -0,0 +1,18 @@
[gd_scene load_steps=3 format=3 uid="uid://cxdft2gl865c8"]
[ext_resource type="ArrayMesh" uid="uid://blqyd0o0ggy2t" path="res://Resources/meshes/fence_broken.tres" id="1_s6vr1"]
[sub_resource type="BoxShape3D" id="BoxShape3D_mfgll"]
size = Vector3(0.211, 0.9, 1.981)
[node name="Fence" type="StaticBody3D"]
collision_layer = 64
collision_mask = 9
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.371139e-08, 1, 0, -1, -4.371139e-08, 0, 0, 0, 1, 0, 1.3234521, -0.02176714)
mesh = ExtResource("1_s6vr1")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0075683594, 0.4515351, -0.00012207031)
shape = SubResource("BoxShape3D_mfgll")
+18
View File
@@ -0,0 +1,18 @@
[gd_scene load_steps=3 format=3 uid="uid://cbiyc2os4l2le"]
[ext_resource type="ArrayMesh" uid="uid://cp8pmyubrkik5" path="res://Resources/meshes/fence_left.tres" id="1_xstg8"]
[sub_resource type="BoxShape3D" id="BoxShape3D_mfgll"]
size = Vector3(0.211, 10, 1.981)
[node name="FenceLeft" type="StaticBody3D"]
collision_layer = 64
collision_mask = 9
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.371139e-08, 1, 0, -1, -4.371139e-08, 0, 0, 0, 1, 0, 1.230836, 0)
mesh = ExtResource("1_xstg8")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0075683594, 4.9100523, -0.00012207031)
shape = SubResource("BoxShape3D_mfgll")
+18
View File
@@ -0,0 +1,18 @@
[gd_scene load_steps=3 format=3 uid="uid://78ini7csghyn"]
[ext_resource type="ArrayMesh" uid="uid://3dws0pbmut6j" path="res://Resources/meshes/fence_right.tres" id="1_2kidb"]
[sub_resource type="BoxShape3D" id="BoxShape3D_mfgll"]
size = Vector3(0.211, 10, 1.981)
[node name="FenceRight" type="StaticBody3D"]
collision_layer = 64
collision_mask = 9
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(-4.371139e-08, 1, 0, -1, -4.371139e-08, 0, 0, 0, 1, 0, 1.3164206, 0)
mesh = ExtResource("1_2kidb")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.0075683594, 4.9798994, -0.00012207031)
shape = SubResource("BoxShape3D_mfgll")
+53
View File
@@ -0,0 +1,53 @@
[gd_scene load_steps=5 format=4 uid="uid://sdytd17xrx81"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_xantc"]
resource_name = "black"
cull_mode = 2
albedo_color = Color(0, 0, 0, 1)
roughness = 0.5
[sub_resource type="ArrayMesh" id="ArrayMesh_2uyr3"]
_surfaces = [{
"aabb": AABB(0.609988, -7.67489e-09, -0.801522, 0.703757, 0.00369327, 1.60304),
"format": 34896613377,
"index_count": 18,
"index_data": PackedByteArray("AAABAAIAAAADAAEABAAFAAYABAAHAAUACAAJAAoACAALAAkA"),
"name": "black",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 12,
"vertex_data": PackedByteArray("2iEBAP//AAAATgAAAAAAAABOAAD//wAA2iEBAAAAAAAAAP//v90AAP///v/zywAA///+/7/dAAAAAP//88sAAAAA//9/NAAA///+/7MiAAD///7/fzQAAAAA//+zIgAA")
}]
blend_shape_mode = 0
[sub_resource type="ArrayMesh" id="ArrayMesh_duw40"]
resource_name = "assets_Plane_007"
_surfaces = [{
"aabb": AABB(0.609988, -7.67489e-09, -0.801522, 0.703757, 0.00369327, 1.60304),
"attribute_data": PackedByteArray("AAD/////AAD/////AAAAAAAA/////wAA/////wAAAAAAAP////8AAP////8AAAAA"),
"format": 34896613399,
"index_count": 18,
"index_data": PackedByteArray("AAABAAIAAAADAAEABAAFAAYABAAHAAUACAAJAAoACAALAAkA"),
"material": SubResource("StandardMaterial3D_xantc"),
"name": "black",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 12,
"vertex_data": PackedByteArray("2iEBAP///78ATgAAAAD/vwBOAAD///+/2iEBAAAA/78AAP//v93/v////v/zy/+////+/7/d/78AAP//88v/vwAA//9/NP+////+/7Mi/7////7/fzT/vwAA//+zIv+//v//f/7//3/+//9//v//f////3////9/////f////3////9/////f////3////9/")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_2uyr3")
[sub_resource type="BoxShape3D" id="BoxShape3D_t0hol"]
size = Vector3(0.3, 0.1, 1.55)
[node name="fence_small" type="StaticBody3D"]
collision_layer = 4
[node name="Schranke" type="MeshInstance3D" parent="."]
mesh = SubResource("ArrayMesh_duw40")
skeleton = NodePath("")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(0.997626, -0.0688685, 0, 0.0688685, 0.997626, 0, 0, 0, 1, 0.81965, 0.0212097, -0.00942993)
shape = SubResource("BoxShape3D_t0hol")
+53
View File
@@ -0,0 +1,53 @@
[gd_scene load_steps=7 format=3 uid="uid://1oady27a34wi"]
[ext_resource type="Script" uid="uid://bivev0gbnbo5t" path="res://npc.gd" id="1_6jshr"]
[ext_resource type="PackedScene" uid="uid://ctx8osel3k43n" path="res://check_collision_wall.tscn" id="2_nwv0p"]
[ext_resource type="PackedScene" uid="uid://bhihpqj7er21q" path="res://check_collision_npc.tscn" id="3_e80nv"]
[ext_resource type="PackedScene" uid="uid://dl4nljdcflehk" path="res://helper.tscn" id="4_nwv0p"]
[sub_resource type="BoxShape3D" id="BoxShape3D_6jshr"]
size = Vector3(0.5161743, 1.3706055, 0.501709)
[sub_resource type="BoxShape3D" id="BoxShape3D_nwv0p"]
size = Vector3(1.2747803, 1.223877, 1.4574585)
[node name="NPC" type="CharacterBody3D"]
transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0, 0)
collision_layer = 8
collision_mask = 7
script = ExtResource("1_6jshr")
prompt_message = "drücken Sie [t] oder [Enter]"
talkable = true
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.037261963, -0.04911697, -0.022094727)
shape = SubResource("BoxShape3D_6jshr")
[node name="RayCast3D" parent="." instance=ExtResource("2_nwv0p")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.55272627, -0.076056)
[node name="InteractionChecker" type="Area3D" parent="."]
collision_layer = 0
[node name="CollisionShape3D" type="CollisionShape3D" parent="InteractionChecker"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0037231457, -0.060058594, 0.22872925)
shape = SubResource("BoxShape3D_nwv0p")
[node name="RayCast3D2" parent="." instance=ExtResource("3_e80nv")]
[node name="helper" parent="." instance=ExtResource("4_nwv0p")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.3250453e-09, -0.54445666, -0.060911417)
[node name="Label3D" type="Label3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.3886542, 0)
billboard = 1
text = "Rede mit mir!
(t / Enter)
|
|
\\/"
font_size = 42
outline_size = 8
[connection signal="body_entered" from="InteractionChecker" to="." method="_on_interaction_checker_body_entered"]
[connection signal="body_exited" from="InteractionChecker" to="." method="_on_interaction_checker_body_exited"]
+17
View File
@@ -0,0 +1,17 @@
[gd_scene load_steps=3 format=3 uid="uid://cbg71qd7mr1a5"]
[ext_resource type="ArrayMesh" uid="uid://cx3mytwy5a0ld" path="res://Resources/meshes/plane.tres" id="1_5clto"]
[sub_resource type="BoxShape3D" id="BoxShape3D_e4xu0"]
size = Vector3(2.2, 0.1, 2.1)
[node name="bridge2" type="StaticBody3D"]
collision_layer = 2
collision_mask = 13
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
transform = Transform3D(0.103683256, 0, 0, 0, 0.71690935, 0, 0, 0, 1.082177, 0, 0, 0)
mesh = ExtResource("1_5clto")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
shape = SubResource("BoxShape3D_e4xu0")
+72
View File
@@ -0,0 +1,72 @@
extends Node3D
@export var required_weight: float = 5.0
@export var active_color: Color = Color(0, 1, 0)
@export var inactive_color: Color = Color(1, 0, 0)
@export var text_on_activation: String
@onready var area: Area3D = $Area3D
@onready var mesh: MeshInstance3D = $MeshInstance3D
@onready var static_body: StaticBody3D = $StaticBody3D
signal activated
signal deactivated
var current_weight: float = 0.0
var is_active: bool = false
func _ready():
mesh.material_override = StandardMaterial3D.new()
mesh.material_override.albedo_color = inactive_color
func _on_body_entered(body: Node3D) -> void:
print("body entered")
print(body)
var w = _get_body_weight(body)
if w > 0:
current_weight += w
_check_weight()
func _on_body_exited(body: Node3D) -> void:
var w = _get_body_weight(body)
if w > 0:
current_weight -= w
_check_weight()
func _get_body_weight(body: Node3D) -> float:
if body.has_method("get_weight"):
return body.get_weight()
elif body is RigidBody3D:
return body.mass
return 0.0
func _check_weight() -> void:
var active_now = current_weight >= required_weight
if active_now != is_active:
is_active = active_now
_update_visuals()
if is_active:
_on_activated()
else:
_on_deactivated()
func _update_visuals():
mesh.material_override.albedo_color = active_color if is_active else inactive_color
var target_pos_y = -0.05 if is_active else 0.0
var tween = get_tree().create_tween()
# Bewege sowohl das sichtbare Mesh als auch den Kollisionskörper nach unten
tween.tween_property(mesh, "position:y", target_pos_y, 0.2)\
.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_OUT)
tween.tween_property(static_body, "position:y", target_pos_y, 0.2)\
.set_trans(Tween.TRANS_SINE).set_ease(Tween.EASE_OUT)
func _on_activated():
print("Pressure block activated! Total weight =", current_weight)
activated.emit()
func _on_deactivated():
print("Pressure block deactivated!")
deactivated.emit()
+1
View File
@@ -0,0 +1 @@
uid://debptt7fdw0mw
+38
View File
@@ -0,0 +1,38 @@
[gd_scene load_steps=5 format=3 uid="uid://dvjxy8tyaxcjr"]
[ext_resource type="Script" uid="uid://debptt7fdw0mw" path="res://Resources/Objects/pressure_block.gd" id="1_adrnk"]
[sub_resource type="BoxShape3D" id="BoxShape3D_mjcge"]
size = Vector3(1, 0.5, 1)
[sub_resource type="BoxMesh" id="BoxMesh_adrnk"]
size = Vector3(1, 0.1, 1)
[sub_resource type="BoxShape3D" id="BoxShape3D_adrnk"]
size = Vector3(1, 0.1, 1)
[node name="PressureBlock" type="Node3D"]
script = ExtResource("1_adrnk")
[node name="Area3D" type="Area3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.46808624, 0)
collision_layer = 4
collision_mask = 5
[node name="CollisionShape3D" type="CollisionShape3D" parent="Area3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.26072478, 0)
shape = SubResource("BoxShape3D_mjcge")
[node name="MeshInstance3D" type="MeshInstance3D" parent="."]
mesh = SubResource("BoxMesh_adrnk")
[node name="StaticBody3D" type="StaticBody3D" parent="."]
collision_layer = 4
collision_mask = 4
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
shape = SubResource("BoxShape3D_adrnk")
disabled = true
[connection signal="body_entered" from="Area3D" to="." method="_on_body_entered"]
[connection signal="body_exited" from="Area3D" to="." method="_on_body_exited"]
+82
View File
@@ -0,0 +1,82 @@
extends Node3D
class_name QuizBox
@export var question: String
@export var correct: int
@export var answer_0: String
@export var answer_1: String
@export var answer_2: String
@export var answer_3: String
@onready var animation_player: AnimationPlayer = $AnimationPlayer
@onready var quiz_light: CSGSphere3D = $quiz_box_sb/quiz_box/quiz_light
@onready var answer_pad_0: Area3D = $answers/answer_pad_0/Area3D
@onready var answer_pad_1: Area3D = $answers/answer_pad_1/Area3D
@onready var answer_pad_2: Area3D = $answers/answer_pad_2/Area3D
@onready var answer_pad_3: Area3D = $answers/answer_pad_3/Area3D
@onready var answer_0_label: Label3D = $answers/answer_pad_0/answer_0_label
@onready var answer_1_label: Label3D = $answers/answer_pad_1/answer_1_label
@onready var answer_2_label: Label3D = $answers/answer_pad_2/answer_2_label
@onready var answer_3_label: Label3D = $answers/answer_pad_3/answer_3_label
@onready var question_label: Label3D = $StaticBody3D/Wall/question_label
var answered_correctly := false
func _ready() -> void:
# Texte setzen
question_label.text = question
answer_0_label.text = answer_0
answer_1_label.text = answer_1
answer_2_label.text = answer_2
answer_3_label.text = answer_3
# Signale verbinden
answer_pad_0.body_entered.connect(_on_answer_entered.bind(0))
answer_pad_1.body_entered.connect(_on_answer_entered.bind(1))
answer_pad_2.body_entered.connect(_on_answer_entered.bind(2))
answer_pad_3.body_entered.connect(_on_answer_entered.bind(3))
# WICHTIG: Material duplizieren, damit es nicht mit anderen Instanzen geteilt wird
if quiz_light.material != null:
# tiefe Kopie (alle Subressourcen mitduplizieren)
quiz_light.material = quiz_light.material.duplicate(true)
else:
quiz_light.material = StandardMaterial3D.new()
# Grundeinstellungen für diese Instanz
quiz_light.material.emission_enabled = true
quiz_light.material.emission_energy = 0.5
quiz_light.material.albedo_color = Color.WHITE
quiz_light.material.emission = Color.WHITE
func _on_answer_entered(body: Node3D, answer_index: int) -> void:
if not body.is_in_group("player"):
return # Nur Player soll triggern
# Wenn schon korrekt beantwortet, nichts tun
if answered_correctly:
return
# Prüfen und nur DIESE Instanzlampe setzen
if answer_index == correct:
_set_light_color(Color.GREEN)
question_label.visible = false
animation_player.play("open_door")
answered_correctly = true
else:
_set_light_color(Color.RED)
# optional: nach kurzer Zeit zurücksetzen, damit neu versucht werden kann
await get_tree().create_timer(1.0).timeout
_set_light_color(Color.WHITE)
func _set_light_color(color: Color) -> void:
# Setze nur das Material dieser Instanz
if quiz_light.material == null:
quiz_light.material = StandardMaterial3D.new()
quiz_light.material.albedo_color = color
quiz_light.material.emission = color
# erhöhe kurz die Emission für Sichtbarkeit bei Farben außer weiß
quiz_light.material.emission_energy = 1.5 if color != Color.WHITE else 0.5
+1
View File
@@ -0,0 +1 @@
uid://caan28e6gl7fk
+217
View File
@@ -0,0 +1,217 @@
[gd_scene load_steps=11 format=3 uid="uid://c45ex56io7rv7"]
[ext_resource type="Script" uid="uid://caan28e6gl7fk" path="res://Resources/Objects/quiz_object.gd" id="1_ybh4a"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ybh4a"]
[sub_resource type="BoxShape3D" id="BoxShape3D_6mevd"]
size = Vector3(1, 2, 1)
[sub_resource type="BoxShape3D" id="BoxShape3D_ybh4a"]
[sub_resource type="Animation" id="Animation_ybh4a"]
length = 0.001
tracks/0/type = "position_3d"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("StaticBody3D/Wall/left_door_sb/left_door")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = PackedFloat32Array(0, 1, -2, 0, 0)
tracks/1/type = "position_3d"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("StaticBody3D/Wall/right_door_sb/right_door")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = PackedFloat32Array(0, 1, 2, 0, 0)
tracks/2/type = "position_3d"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("StaticBody3D/Wall/left_door_sb/left_door_cs")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = PackedFloat32Array(0, 1, -2, 0, 0)
tracks/3/type = "position_3d"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("StaticBody3D/Wall/right_door_sb/right_door_cs")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = PackedFloat32Array(0, 1, 2, 0, 0)
[sub_resource type="Animation" id="Animation_5clbn"]
resource_name = "open_door"
length = 2.0
tracks/0/type = "position_3d"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("StaticBody3D/Wall/left_door_sb/left_door")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = PackedFloat32Array(0, 1, -2, 0, 0, 2, 1, -5, 0, 0)
tracks/1/type = "position_3d"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("StaticBody3D/Wall/right_door_sb/right_door")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = PackedFloat32Array(0, 1, 2, 0, 0, 2, 1, 5, 0, 0)
tracks/2/type = "position_3d"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("StaticBody3D/Wall/right_door_sb/right_door_cs")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = PackedFloat32Array(0, 1, 2, 0, 0, 2, 1, 5, 0, 0)
tracks/3/type = "position_3d"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("StaticBody3D/Wall/left_door_sb/left_door_cs")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = PackedFloat32Array(0, 1, -2, 0, 0, 2, 1, -5, 0, 0)
[sub_resource type="AnimationLibrary" id="AnimationLibrary_402uq"]
_data = {
&"RESET": SubResource("Animation_ybh4a"),
&"open_door": SubResource("Animation_5clbn")
}
[sub_resource type="BoxShape3D" id="BoxShape3D_402uq"]
size = Vector3(5, 6, 0.5)
[sub_resource type="BoxShape3D" id="BoxShape3D_584uj"]
size = Vector3(4, 6, 0.2)
[sub_resource type="BoxShape3D" id="BoxShape3D_resk5"]
size = Vector3(4, 6, 0.2)
[node name="quiz_object" type="Node3D"]
script = ExtResource("1_ybh4a")
[node name="quiz_box_sb" type="StaticBody3D" parent="."]
[node name="quiz_box" type="CSGBox3D" parent="quiz_box_sb"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, 0)
[node name="quiz_light" type="CSGSphere3D" parent="quiz_box_sb/quiz_box"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.9793253, 0)
material = SubResource("StandardMaterial3D_ybh4a")
[node name="CollisionShape3D" type="CollisionShape3D" parent="quiz_box_sb"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0.5, 0)
shape = SubResource("BoxShape3D_6mevd")
[node name="answers" type="Node3D" parent="."]
[node name="answer_pad_0" type="CSGBox3D" parent="answers"]
size = Vector3(1, 0.1, 1)
[node name="answer_0_label" type="Label3D" parent="answers/answer_pad_0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
autowrap_mode = 2
[node name="Area3D" type="Area3D" parent="answers/answer_pad_0"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="answers/answer_pad_0/Area3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.48036242, 0)
shape = SubResource("BoxShape3D_ybh4a")
[node name="answer_pad_1" type="CSGBox3D" parent="answers"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.5, 0, 0)
size = Vector3(1, 0.1, 1)
[node name="answer_1_label" type="Label3D" parent="answers/answer_pad_1"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
autowrap_mode = 2
[node name="Area3D" type="Area3D" parent="answers/answer_pad_1"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="answers/answer_pad_1/Area3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.48036242, 0)
shape = SubResource("BoxShape3D_ybh4a")
[node name="answer_pad_2" type="CSGBox3D" parent="answers"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3, 0, 0)
size = Vector3(1, 0.1, 1)
[node name="answer_2_label" type="Label3D" parent="answers/answer_pad_2"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
autowrap_mode = 2
[node name="Area3D" type="Area3D" parent="answers/answer_pad_2"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="answers/answer_pad_2/Area3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.48036242, 0)
shape = SubResource("BoxShape3D_ybh4a")
[node name="answer_pad_3" type="CSGBox3D" parent="answers"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.5, 0, 0)
size = Vector3(1, 0.1, 1)
[node name="answer_3_label" type="Label3D" parent="answers/answer_pad_3"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
autowrap_mode = 2
[node name="Area3D" type="Area3D" parent="answers/answer_pad_3"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="answers/answer_pad_3/Area3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.48036242, 0)
shape = SubResource("BoxShape3D_ybh4a")
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_402uq")
}
[node name="StaticBody3D" type="StaticBody3D" parent="."]
collision_layer = 7
collision_mask = 7
[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3, 3, -4)
shape = SubResource("BoxShape3D_402uq")
[node name="CollisionShape3D2" type="CollisionShape3D" parent="StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.5, 3, -4)
shape = SubResource("BoxShape3D_402uq")
[node name="Wall" type="CSGBox3D" parent="StaticBody3D"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.25, 3, -4)
size = Vector3(16, 6, 0.5)
[node name="door_space" type="CSGSphere3D" parent="StaticBody3D/Wall"]
operation = 2
radius = 3.1
rings = 10
[node name="question_label" type="Label3D" parent="StaticBody3D/Wall"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.18187094)
font_size = 64
autowrap_mode = 2
width = 1000.0
[node name="left_door_sb" type="StaticBody3D" parent="StaticBody3D/Wall"]
collision_layer = 7
collision_mask = 7
[node name="left_door" type="CSGBox3D" parent="StaticBody3D/Wall/left_door_sb"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, 0)
size = Vector3(4, 6, 0.2)
[node name="left_door_cs" type="CollisionShape3D" parent="StaticBody3D/Wall/left_door_sb"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 0, 0)
shape = SubResource("BoxShape3D_584uj")
[node name="right_door_sb" type="StaticBody3D" parent="StaticBody3D/Wall"]
collision_layer = 7
collision_mask = 7
[node name="right_door" type="CSGBox3D" parent="StaticBody3D/Wall/right_door_sb"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0)
size = Vector3(4, 6, 0.2)
[node name="right_door_cs" type="CollisionShape3D" parent="StaticBody3D/Wall/right_door_sb"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 0, 0)
shape = SubResource("BoxShape3D_resk5")
+9
View File
@@ -0,0 +1,9 @@
extends RigidBody3D
func _ready():
await get_tree().create_timer(10.0).timeout
queue_free()
func _on_body_entered(body: Node) -> void:
gravity_scale = 1.0
+1
View File
@@ -0,0 +1 @@
uid://dwc5ak0wgd6aj
File diff suppressed because one or more lines are too long
@@ -0,0 +1,9 @@
extends Node3D
func _ready() -> void:
$Armature/Skeleton3D/Cube_001.mesh = load(Global.mesh_resource_player)
if Global.balloon_collected == true:
$Balloon.visible = true
$Balloon.set_mesh(Global.resource_balloon)
@@ -0,0 +1 @@
uid://dre5qo5tbisfv
@@ -0,0 +1,30 @@
[gd_scene load_steps=6 format=3 uid="uid://drtpl8y1pojrc"]
[ext_resource type="PackedScene" uid="uid://dra235mdhf5nv" path="res://assets/astronaut_gw-v2_rig.glb" id="1_qv5ss"]
[ext_resource type="Script" uid="uid://dre5qo5tbisfv" path="res://Resources/Players/astronaut_for_animation.gd" id="2_7h4jy"]
[ext_resource type="ArrayMesh" uid="uid://cnkc0coob8mu" path="res://Resources/meshes/player_uniGW2.tres" id="3_pfcjo"]
[ext_resource type="PackedScene" uid="uid://ccdju064l1xg0" path="res://Resources/Objects/balloon_collectable.tscn" id="3_t7xo6"]
[ext_resource type="PackedScene" uid="uid://dl4nljdcflehk" path="res://helper.tscn" id="4_t7xo6"]
[node name="astronaut" instance=ExtResource("1_qv5ss")]
script = ExtResource("2_7h4jy")
[node name="Skeleton3D" parent="Armature" index="0"]
bones/1/rotation = Quaternion(0, 0, -0.024488833, 0.9997001)
bones/3/rotation = Quaternion(7.424678e-08, 3.9001097e-08, -0.4683429, 0.8835468)
bones/5/rotation = Quaternion(2.4243334e-08, 6.898198e-08, 0.4388793, 0.89854604)
bones/7/rotation = Quaternion(-0.7071068, -2.6692543e-08, 2.6692543e-08, 0.7071068)
bones/10/rotation = Quaternion(-0.7071068, -1.5454312e-08, 1.5454312e-08, 0.7071068)
[node name="Cube_001" parent="Armature/Skeleton3D" index="0"]
mesh = ExtResource("3_pfcjo")
[node name="Balloon" parent="." index="2" instance=ExtResource("3_t7xo6")]
transform = Transform3D(0.49786475, -0.04615923, 0, 0.04615923, 0.49786475, 0, 0, 0, 0.5, -0.2128411, 1.5290457, -0.5337905)
visible = false
[node name="helper" type="Node3D" parent="." index="3"]
transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0.096, 1.141, 0.538)
visible = false
[node name="helper" parent="helper" index="0" instance=ExtResource("4_t7xo6")]
+283
View File
@@ -0,0 +1,283 @@
extends CharacterBody3D
class_name Player
var speed = 5.0
const JUMP_VELOCITY = 12
const throw_strength = 50
var speeds = [5.0, 2.5, 1.5, 1.0]
var animation_player_speeds = [1.5, 1.0, 0.7, 0.5]
var counter_speed := 0
enum PlayerMode {
NORMAL,
AIM
}
var mode = PlayerMode.NORMAL
var xform : Transform3D
var grabbed_item : Grabbable_Object
var dialogueActive : bool
var weight: float = 5.0
# --- Camera ---
var camera_pitch := 0.0
var zoom := 5.0
@export var min_zoom := 1
@export var max_zoom := 10.0
@export var zoom_speed := 0.5
@export var min_pitch := deg_to_rad(-80)
@export var max_pitch := deg_to_rad(0)
@export var mouse_sensitivity:float = 0.0007
@onready var camera_3d: Camera3D = $Camera_Controller/Camera_Pivot/Camera3D
@onready var crosshair: Control = $Crosshair
@onready var spring_arm: SpringArm3D = $Camera_Controller/Camera_Pivot
@onready var interact_ray: ShapeCast3D = $InteractRay
@onready var chatbot = $Chatbot
@onready var env = $".."
var rock_scene: PackedScene = preload("res://Resources/Objects/rock.tscn")
signal inventory_opened
signal inventory_closed
signal chatbot_opened
func _ready() -> void:
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
$Camera_Controller.position = position
$Armature/Skeleton3D/CharacterMesh.mesh = load(Global.mesh_resource_player)
camera_pitch = $Camera_Controller/Camera_Pivot.rotation.x
zoom = spring_arm.spring_length
if DialogueState.currentTask > 1:
$AnimationPlayer.play('helper_visible')
if Global.balloon_collected == true:
print(Global.resource_balloon)
_on_balloon_balloon_chosen(Global.resource_balloon)
func _process(delta: float) -> void:
if Global.chatbot_opened:
return
if Input.is_action_just_pressed("help"):
if DialogueState.is_dialogue_open == false:
DialogueState.is_dialogue_open = true
DialogueManager.show_chosen_dialogue_balloon(load("res://Interact/dialogue/helper.dialogue"), "/game_balloons/game_balloon_v_1.tscn", "start", [self, $Player/helper])
func _input(event):
if event is InputEventMouseMotion and mode == PlayerMode.NORMAL:
$Camera_Controller.rotate_y(-event.relative.x * mouse_sensitivity)
camera_pitch -= event.relative.y * mouse_sensitivity
camera_pitch = clamp(camera_pitch, min_pitch, max_pitch)
$Camera_Controller/Camera_Pivot.rotation.x = camera_pitch
if event is InputEventMouseButton and event.pressed:
if event.button_index == MOUSE_BUTTON_WHEEL_UP:
zoom -= zoom_speed
elif event.button_index == MOUSE_BUTTON_WHEEL_DOWN:
zoom += zoom_speed
zoom = clamp(zoom, min_zoom, max_zoom)
spring_arm.spring_length = zoom
print(spring_arm.spring_length)
func _physics_process(delta: float) -> void:
if Global.chatbot_opened or $Inventory.visible:
return
dialogueActive = DialogueState.is_dialogue_open
var thisTime = Time.get_unix_time_from_system()
# --- DROP / THROW ---
if Input.is_action_just_pressed("drop") and grabbed_item:
grabbed_item.release(self)
$AnimationPlayer.play_backwards("pickup")
play_sound('drop')
if Input.is_action_just_pressed("throw") and grabbed_item:
grabbed_item.release(self, true)
play_sound('drop')
elif Input.is_action_just_pressed("throw") and not grabbed_item:
if mode == PlayerMode.NORMAL:
mode = PlayerMode.AIM
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
else:
mode = PlayerMode.NORMAL
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
# --- AIM THROW ---
elif Input.is_action_just_pressed("click") and mode == PlayerMode.AIM and not dialogueActive and not $Inventory.visible:
var mouse_pos = get_viewport().get_mouse_position()
var ray_origin = camera_3d.project_ray_origin(mouse_pos)
var ray_direction = camera_3d.project_ray_normal(mouse_pos)
var ray_length = 1000
var space_state = get_world_3d().direct_space_state
var query = PhysicsRayQueryParameters3D.create(
ray_origin,
ray_origin + ray_direction * ray_length
)
query.exclude = [self]
#Exclude Boundary Layer (Layer 7)
query.collision_mask = ~(1 << 6)
var result = space_state.intersect_ray(query)
var target_position: Vector3
if result.size() > 0:
target_position = result.position
else:
target_position = ray_origin + ray_direction * ray_length
var from = global_transform.origin + Vector3(0, 1.5, 0)
var throw_direction = (target_position - from).normalized()
var rock_instance = rock_scene.instantiate()
get_tree().current_scene.add_child(rock_instance)
var forward_dir = -camera_3d.global_transform.basis.z.normalized()
rock_instance.global_transform.origin = from + forward_dir * 1.0
rock_instance.freeze = false
rock_instance.sleeping = false
rock_instance.gravity_scale = 0.0
rock_instance.linear_velocity = throw_direction * throw_strength
$AnimationPlayer.play("jump")
$audio_throw.play()
# --- GRAVITY ---
if not is_on_floor():
velocity += get_gravity() * delta
# --- JUMP ---
if Input.is_action_just_pressed("ui_accept") and is_on_floor():
var deltaTime = thisTime - DialogueState.time_since_dialoge_open
if not dialogueActive and (deltaTime > 0.5):
$audio_jump.play()
velocity.y = JUMP_VELOCITY
$AnimationPlayer.stop()
$AnimationPlayer.play("jump")
await get_tree().create_timer(0.4).timeout
$AnimationPlayer.play_backwards("jump")
# --- MOVEMENT ---
var input_dir := Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
if dialogueActive or $Inventory.visible:
input_dir = Vector2.ZERO
var direction : Vector3 = ($Camera_Controller.transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
if input_dir != Vector2.ZERO:
self.rotation_degrees.y = $Camera_Controller.rotation_degrees.y - rad_to_deg(input_dir.angle()) - 90
# --- FLOOR ALIGN ---
if is_on_floor() and input_dir != Vector2.ZERO:
align_with_floor($RayCast3D.get_collision_normal())
global_transform = global_transform.interpolate_with(xform, 0.3)
elif not is_on_floor():
align_with_floor(Vector3.UP)
global_transform = global_transform.interpolate_with(xform, 0.3)
# --- VELOCITY ---
if direction:
velocity.x = direction.x * speed
velocity.z = direction.z * speed
if grabbed_item:
$AnimationPlayer.play("pickup_walk")
else:
$AnimationPlayer.play("walk")
else:
velocity.x = move_toward(velocity.x, 0, speed)
velocity.z = move_toward(velocity.z, 0, speed)
move_and_slide()
$Camera_Controller.position = lerp($Camera_Controller.position, position, 0.15)
func align_with_floor(floor_normal):
xform = global_transform
xform.basis.y = floor_normal
xform.basis.x = -xform.basis.z.cross(floor_normal)
xform.basis = xform.basis.orthonormalized()
func _on_fall_zone_body_entered(body: Node3D) -> void:
get_tree().reload_current_scene()
func openChatBot():
chatbot_opened.emit()
chatbot.visible = true
Global.chatbot_opened = true
chatbot._prompt_edit.grab_focus()
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
env.quiet_down_music()
func get_weight():
return weight
func _on_interact_ray_grabbed() -> void:
$AnimationPlayer.play("pickup")
func set_mode(mode_new: String) -> void:
if mode_new == "aim":
mode = PlayerMode.AIM
Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE)
elif mode_new == "normal":
mode = PlayerMode.NORMAL
Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED)
func toggle_inventory() -> void:
if $Inventory.visible:
$Inventory.visible = false
set_mode("normal")
inventory_closed.emit()
else:
$Inventory.visible = true
set_mode("aim")
inventory_opened.emit()
func _on_balloon_balloon_chosen(mesh: String) -> void:
$Balloon.visible = true
$Balloon.set_mesh(mesh)
Global.resource_balloon = mesh
Global.balloon_collected = true
func slow_down() -> void:
if counter_speed < len(speeds)-1:
counter_speed += 1
speed = speeds[counter_speed]
func reset_speed() -> void:
counter_speed = 0
speed = 5.0
func _on_animation_player_animation_started(anim_name: StringName) -> void:
if anim_name == 'walk' or anim_name == 'pickup_walk':
$AnimationPlayer.speed_scale = animation_player_speeds[counter_speed]
else:
$AnimationPlayer.speed_scale = animation_player_speeds[1]
func play_sound(sound_name: String) -> void:
if sound_name == 'pickup':
$audio_pickup.play()
elif sound_name == 'drop':
$audio_pickup.play()
func toggle_music() -> void:
env.toggle_music()
+1
View File
@@ -0,0 +1 @@
uid://wxn7lwnmu4ft
+757
View File
@@ -0,0 +1,757 @@
[gd_scene load_steps=27 format=3 uid="uid://feh8xoh78swi"]
[ext_resource type="Script" uid="uid://wxn7lwnmu4ft" path="res://Resources/Players/player.gd" id="1_dq61c"]
[ext_resource type="ArrayMesh" uid="uid://cnkc0coob8mu" path="res://Resources/meshes/player_uniGW2.tres" id="3_gyuqh"]
[ext_resource type="PackedScene" uid="uid://dy1tmm44vfmh" path="res://Interact/interact_ray.tscn" id="3_wknd5"]
[ext_resource type="Script" uid="uid://bethfppdcwvxc" path="res://crosshair.gd" id="4_gyuqh"]
[ext_resource type="PackedScene" uid="uid://dw8bb4m4ycg7a" path="res://inventory.tscn" id="5_wknd5"]
[ext_resource type="PackedScene" uid="uid://ccdju064l1xg0" path="res://Resources/Objects/balloon_collectable.tscn" id="6_rjb0o"]
[ext_resource type="PackedScene" uid="uid://dl4nljdcflehk" path="res://helper.tscn" id="7_4r34j"]
[ext_resource type="PackedScene" uid="uid://b0nf2m2olu4jf" path="res://addons/godot_llama/demo/demo.tscn" id="8_erypk"]
[ext_resource type="AudioStream" uid="uid://dwqsonsq5vyu0" path="res://assets/Sounds/collection1/Explosions/Short/sfx_exp_short_soft11.wav" id="9_qpqd5"]
[ext_resource type="AudioStream" uid="uid://c3bxwp8pfb3cn" path="res://assets/Sounds/collection1/General Sounds/Neutral Sounds/sfx_sound_neutral1.wav" id="10_41dcx"]
[ext_resource type="AudioStream" uid="uid://8pfv1mgu10pt" path="res://assets/Sounds/collection1/Movement/Jumping and Landing/sfx_movement_jump1.wav" id="11_a75tr"]
[sub_resource type="BoxShape3D" id="BoxShape3D_uk0nh"]
size = Vector3(1.25093, 1.8731, 1.20929)
[sub_resource type="Skin" id="Skin_gyuqh"]
resource_name = "Skin"
bind_count = 13
bind/0/name = &"body"
bind/0/bone = -1
bind/0/pose = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.3528, 0)
bind/1/name = &"head"
bind/1/bone = -1
bind/1/pose = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.958969, 0)
bind/2/name = &"shoulder.l"
bind/2/bone = -1
bind/2/pose = Transform3D(-0.185148, -0.98271, -1.14389e-07, 0.98271, -0.185149, -2.66453e-14, -2.1179e-08, -1.12412e-07, 1, 0.942389, 0.177552, 1.07799e-07)
bind/3/name = &"arm.l"
bind/3/bone = -1
bind/3/pose = Transform3D(-0.873768, -0.486343, -2.02672e-07, 0.486343, -0.873768, 0, -1.77089e-07, -9.85682e-08, 1, 0.690726, 0.651202, 1.39991e-07)
bind/4/name = &"shoulder.r"
bind/4/bone = -1
bind/4/pose = Transform3D(-0.176299, 0.984337, 1.3201e-07, -0.984337, -0.176299, -1.59872e-14, 2.32732e-08, -1.29942e-07, 1, -0.943948, 0.169065, 1.2461e-07)
bind/5/name = &"arm.r"
bind/5/bone = -1
bind/5/pose = Transform3D(-0.870257, 0.492598, -2.15315e-08, -0.492598, -0.870257, -4.44089e-15, -1.87379e-08, 1.06064e-08, 1, -0.690192, 0.653943, -1.48609e-08)
bind/6/name = &"hip.l"
bind/6/bone = -1
bind/6/pose = Transform3D(0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, -0.3528)
bind/7/name = &"upper_leg.l"
bind/7/bone = -1
bind/7/pose = Transform3D(7.54979e-08, 0, 1, 0, -1, 0, 1, 0, -7.54979e-08, -1.22397e-08, 0.3528, -0.16212)
bind/8/name = &"lower_leg.l"
bind/8/bone = -1
bind/8/pose = Transform3D(7.54979e-08, 0, 1, 0, -1, 0, 1, 0, -7.54979e-08, -1.22397e-08, 0.248877, -0.16212)
bind/9/name = &"hip.r"
bind/9/bone = -1
bind/9/pose = Transform3D(0, 0, -1, -1, 0, 0, 0, 1, 0, 0, 0, -0.3528)
bind/10/name = &"upper_leg.r"
bind/10/bone = -1
bind/10/pose = Transform3D(-4.37114e-08, 0, -1, 0, -1, 0, -1, 0, 4.37114e-08, -6.35966e-09, 0.3528, -0.145492)
bind/11/name = &"lower_leg.r"
bind/11/bone = -1
bind/11/pose = Transform3D(-4.37114e-08, 0, -1, 0, -1, 0, -1, 0, 4.37114e-08, -6.35966e-09, 0.24472, -0.145492)
bind/12/name = &"neutral_bone"
bind/12/bone = -1
bind/12/pose = Transform3D(1, 0, 0, 0, 0, -1, 0, 1, 0, 0, 0, 0)
[sub_resource type="Animation" id="Animation_3fe0i"]
resource_name = "RESET"
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("helper:visible")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("helper:position")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0.096, 1.141, 0.538)]
}
[sub_resource type="Animation" id="Animation_erypk"]
resource_name = "collect_helper_part2"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("helper:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0.0960083, 1.1406784, 0.538002), Vector3(0.0960083, -0.08320968, 0.538002)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("helper:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, true]
}
[sub_resource type="Animation" id="Animation_4r34j"]
resource_name = "helper_visible"
length = 0.01
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("helper:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0.0960083, -0.08320968, 0.538002)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("helper:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="Animation" id="Animation_kitjm"]
resource_name = "idle-loop"
length = 1.0833334
loop_mode = 1
tracks/0/type = "rotation_3d"
tracks/0/imported = true
tracks/0/enabled = true
tracks/0/path = NodePath("Armature/Skeleton3D:head")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = PackedFloat32Array(0, 1, 0, 0, -0.024488833, 0.9997001, 0.06666667, 1, 0, 0, -0.023532195, 0.9997231, 0.1, 1, 0, 0, -0.022525162, 0.9997464, 0.13333334, 1, 0, 0, -0.021227574, 0.9997747, 0.16666667, 1, 0, 0, -0.0196859, 0.9998062, 0.2, 1, 0, 0, -0.017911708, 0.9998396, 0.3, 1, 0, 0, -0.0121470615, 0.99992627, 0.33333334, 1, 0, 0, -0.010233168, 0.9999477, 0.36666667, 1, 0, 0, -0.008458738, 0.99996424, 0.4, 1, 0, 0, -0.0068586585, 0.9999765, 0.43333334, 1, 0, 0, -0.0054794243, 0.99998504, 0.46666667, 1, 0, 0, -0.0043675266, 0.99999046, 0.53333336, 1, 0, 0, -0.0032827677, 0.99999464, 0.6333333, 1, 0, 0, -0.0048711714, 0.9999882, 0.6666667, 1, 0, 0, -0.006087676, 0.99998146, 0.7, 1, 0, 0, -0.0076296404, 0.999971, 0.73333335, 1, 0, 0, -0.009345958, 0.99995637, 0.76666665, 1, 0, 0, -0.011190119, 0.9999375, 0.8333333, 1, 0, 0, -0.015075953, 0.99988645, 0.8666667, 1, 0, 0, -0.016989721, 0.99985576, 0.9, 1, 0, 0, -0.018798813, 0.99982333, 0.93333334, 1, 0, 0, -0.020456744, 0.9997908, 0.96666664, 1, 0, 0, -0.021917041, 0.9997598, 1, 1, 0, 0, -0.023133267, 0.9997325, 1.0666667, 1, 0, 0, -0.024345534, 0.9997037, 1.0833334, 1, 0, 0, -0.024488833, 0.9997001)
tracks/1/type = "rotation_3d"
tracks/1/imported = true
tracks/1/enabled = true
tracks/1/path = NodePath("Armature/Skeleton3D:arm.l")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = PackedFloat32Array(0, 1, 7.424678e-08, 3.9001094e-08, -0.4683429, 0.8835468, 0.033333335, 1, 7.4302335e-08, 3.8917683e-08, -0.46721676, 0.88414294, 0.06666667, 1, 7.4431775e-08, 3.872237e-08, -0.46458033, 0.885531, 0.1, 1, 7.462511e-08, 3.84281e-08, -0.4606092, 0.887603, 0.13333334, 1, 7.4872105e-08, 3.8047695e-08, -0.45547733, 0.8902474, 0.16666667, 1, 7.51624e-08, 3.7593928e-08, -0.44935825, 0.8933517, 0.2, 1, 7.549224e-08, 3.706932e-08, -0.44228724, 0.8968735, 0.23333333, 1, 7.583646e-08, 3.651112e-08, -0.43476743, 0.90054274, 0.3, 1, 7.6531585e-08, 3.5348503e-08, -0.41911793, 0.90793186, 0.33333334, 1, 7.686551e-08, 3.4772025e-08, -0.4113643, 0.9114711, 0.36666667, 1, 7.717001e-08, 3.4235477e-08, -0.40415135, 0.91469216, 0.4, 1, 7.744037e-08, 3.3749966e-08, -0.39762765, 0.91754687, 0.43333334, 1, 7.767019e-08, 3.333025e-08, -0.39199018, 0.91996944, 0.46666667, 1, 7.785327e-08, 3.2991093e-08, -0.38743636, 0.9218965, 0.5, 1, 7.798345e-08, 3.2747245e-08, -0.3841631, 0.9232653, 0.53333336, 1, 6.41315e-08, 3.9174488e-08, -0.3829864, 0.9237541, 0.56666666, 1, 6.0626874e-08, 4.085854e-08, -0.38372338, 0.92344815, 0.6, 1, 6.052203e-08, 4.1052278e-08, -0.38631013, 0.922369, 0.6333333, 1, 6.034729e-08, 4.1372523e-08, -0.39058882, 0.9205653, 0.6666667, 1, 6.011109e-08, 4.1800266e-08, -0.39630932, 0.9181171, 0.7, 1, 5.9811555e-08, 4.2334484e-08, -0.40346235, 0.91499627, 0.73333335, 1, 5.9477394e-08, 4.2919936e-08, -0.41131318, 0.91149414, 0.76666665, 1, 5.911788e-08, 4.3537902e-08, -0.41961336, 0.9077029, 0.8333333, 1, 5.836256e-08, 4.4798206e-08, -0.43658403, 0.8996635, 0.8666667, 1, 5.7999003e-08, 4.5387402e-08, -0.4445384, 0.8957598, 0.9, 1, 5.7664e-08, 4.5920824e-08, -0.45175117, 0.89214396, 0.93333334, 1, 5.7369746e-08, 4.6382066e-08, -0.45799688, 0.8889538, 0.96666664, 1, 5.7128684e-08, 4.6754995e-08, -0.46305287, 0.88633066, 1, 1, 5.6953294e-08, 4.7023583e-08, -0.4666979, 0.8844168, 1.0333333, 1, 7.078811e-08, 4.0605606e-08, -0.46801406, 0.8837211, 1.0833334, 1, 7.424678e-08, 3.9001094e-08, -0.4683429, 0.8835468)
tracks/2/type = "rotation_3d"
tracks/2/imported = true
tracks/2/enabled = true
tracks/2/path = NodePath("Armature/Skeleton3D:arm.r")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = PackedFloat32Array(0, 1, 2.4243331e-08, 6.898198e-08, 0.43887928, 0.89854604, 0.033333335, 1, 2.4169724e-08, 6.9008046e-08, 0.43792248, 0.89901274, 0.06666667, 1, 2.3997506e-08, 6.906872e-08, 0.43568337, 0.9001, 0.1, 1, 2.3738348e-08, 6.915911e-08, 0.43231246, 0.901724, 0.13333334, 1, 2.3403869e-08, 6.927417e-08, 0.42795923, 0.90379816, 0.16666667, 1, 2.300568e-08, 6.940882e-08, 0.4227731, 0.9062357, 0.2, 1, 2.254637e-08, 6.956098e-08, 0.41678596, 0.90900475, 0.23333333, 1, 2.205883e-08, 6.9718844e-08, 0.41042495, 0.9118944, 0.3, 1, 2.1047086e-08, 7.0034545e-08, 0.3972056, 0.9177296, 0.33333334, 1, 2.0547182e-08, 7.018466e-08, 0.39066452, 0.9205331, 0.36666667, 1, 2.0082878e-08, 7.032063e-08, 0.38458377, 0.9230901, 0.4, 1, 1.9663542e-08, 7.0440585e-08, 0.37908745, 0.92536086, 0.43333334, 1, 1.9301613e-08, 7.054196e-08, 0.3743401, 0.9272915, 0.46666667, 1, 1.9009542e-08, 7.062232e-08, 0.3705068, 0.92882985, 0.5, 1, 1.8799755e-08, 7.067924e-08, 0.36775205, 0.9299239, 0.56666666, 1, 2.034004e-08, 7.140312e-08, 0.36774907, 0.929925, 0.6, 1, 2.0572921e-08, 7.134004e-08, 0.37080446, 0.92871106, 0.6333333, 1, 2.0953191e-08, 7.123523e-08, 0.3757913, 0.9267043, 0.6666667, 1, 2.1453479e-08, 7.109394e-08, 0.3823476, 0.92401856, 0.7, 1, 2.2059782e-08, 7.091751e-08, 0.39028642, 0.9206936, 0.73333335, 1, 2.2704533e-08, 7.072357e-08, 0.39872035, 0.91707265, 0.76666665, 1, 2.3360691e-08, 7.051947e-08, 0.40729463, 0.91329694, 0.8, 1, 2.400152e-08, 7.0313504e-08, 0.4156599, 0.90952015, 0.8333333, 1, 2.4600622e-08, 7.011499e-08, 0.42347273, 0.90590894, 0.8666667, 1, 2.509242e-08, 6.994767e-08, 0.42988047, 0.9028859, 0.9, 1, 2.5464708e-08, 6.981838e-08, 0.4347276, 0.900562, 0.93333334, 1, 2.5075877e-08, 6.94488e-08, 0.43768612, 0.8991279, 0.96666664, 1, 2.4243331e-08, 6.898199e-08, 0.4388793, 0.89854604, 1.0833334, 1, 2.4243331e-08, 6.898198e-08, 0.43887928, 0.89854604)
tracks/3/type = "rotation_3d"
tracks/3/imported = true
tracks/3/enabled = true
tracks/3/path = NodePath("Armature/Skeleton3D:hip.l")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = PackedFloat32Array(0, 1, -0.5, -0.5, -0.5, 0.5)
tracks/4/type = "rotation_3d"
tracks/4/imported = true
tracks/4/enabled = true
tracks/4/path = NodePath("Armature/Skeleton3D:upper_leg.l")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = PackedFloat32Array(0, 1, -0.7071068, -2.6692542e-08, 2.6692542e-08, 0.7071068)
tracks/5/type = "rotation_3d"
tracks/5/imported = true
tracks/5/enabled = true
tracks/5/path = NodePath("Armature/Skeleton3D:hip.r")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = PackedFloat32Array(0, 1, -0.5, 0.5, 0.5, 0.5)
tracks/6/type = "rotation_3d"
tracks/6/imported = true
tracks/6/enabled = true
tracks/6/path = NodePath("Armature/Skeleton3D:upper_leg.r")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = PackedFloat32Array(0, 1, -0.7071068, -1.5454312e-08, 1.5454312e-08, 0.7071068)
[sub_resource type="Animation" id="Animation_i5730"]
resource_name = "jump"
length = 0.20833333
tracks/0/type = "rotation_3d"
tracks/0/imported = true
tracks/0/enabled = true
tracks/0/path = NodePath("Armature/Skeleton3D:head")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = PackedFloat32Array(0, 1, 0, 0, 0, 1)
tracks/1/type = "rotation_3d"
tracks/1/imported = true
tracks/1/enabled = true
tracks/1/path = NodePath("Armature/Skeleton3D:arm.l")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = PackedFloat32Array(0, 1, 0.036538295, -0.050690103, -0.42360502, 0.9036893, 0.033333335, 1, 0.08287326, -0.118203335, -0.41701508, 0.89736193, 0.06666667, 1, 0.19100359, -0.27582675, -0.38983727, 0.8575921, 0.1, 1, 0.3289899, -0.47714087, -0.32671192, 0.7465666, 0.13333334, 1, 0.44907475, -0.65257686, -0.23154037, 0.5646809, 0.16666667, 1, 0.5169525, -0.7519604, -0.14098726, 0.38397694, 0.20833333, 1, 0.53779584, -0.7825644, -0.09865995, 0.2977161)
tracks/2/type = "rotation_3d"
tracks/2/imported = true
tracks/2/enabled = true
tracks/2/path = NodePath("Armature/Skeleton3D:arm.r")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = PackedFloat32Array(0, 1, 2.349101e-08, 6.948292e-08, 0.42525995, 0.90507126, 0.033333335, 1, -0.018352704, -0.016519874, 0.416211, 0.9089327, 0.06666667, 1, -0.056133576, -0.05052778, 0.39663497, 0.9148643, 0.1, 1, -0.10461941, -0.09417161, 0.3696238, 0.91845775, 0.13333334, 1, -0.15477219, -0.13931593, 0.33939558, 0.9173044, 0.16666667, 1, -0.19763152, -0.17789513, 0.31164458, 0.912235, 0.20833333, 1, -0.2195022, -0.19758171, 0.2967719, 0.9081336)
tracks/3/type = "rotation_3d"
tracks/3/imported = true
tracks/3/enabled = true
tracks/3/path = NodePath("Armature/Skeleton3D:hip.l")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = PackedFloat32Array(0, 1, -0.5, -0.5, -0.5, 0.5)
tracks/4/type = "rotation_3d"
tracks/4/imported = true
tracks/4/enabled = true
tracks/4/path = NodePath("Armature/Skeleton3D:upper_leg.l")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = PackedFloat32Array(0, 1, -0.7071068, -2.6692542e-08, 2.6692542e-08, 0.7071068, 0.033333335, 1, -0.70673823, 0.022826672, 0.022826724, 0.7067383, 0.06666667, 1, -0.70362854, 0.07004856, 0.07004862, 0.7036286, 0.1, 1, -0.6949302, 0.13065991, 0.13065997, 0.6949302, 0.13333334, 1, -0.6802412, 0.19305934, 0.1930594, 0.6802412, 0.16666667, 1, -0.66300935, 0.24580197, 0.24580202, 0.66300935, 0.20833333, 1, -0.6525517, 0.27235317, 0.2723532, 0.6525517)
tracks/5/type = "rotation_3d"
tracks/5/imported = true
tracks/5/enabled = true
tracks/5/path = NodePath("Armature/Skeleton3D:hip.r")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = PackedFloat32Array(0, 1, -0.5, 0.5, 0.5, 0.5)
tracks/6/type = "rotation_3d"
tracks/6/imported = true
tracks/6/enabled = true
tracks/6/path = NodePath("Armature/Skeleton3D:upper_leg.r")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = PackedFloat32Array(0, 1, -0.7071068, -1.5454312e-08, 1.5454312e-08, 0.7071068, 0.033333335, 1, -0.706891, 0.01746796, 0.017467992, 0.70689106, 0.06666667, 1, -0.7050892, 0.053378057, 0.05337809, 0.7050892, 0.1, 1, -0.7000768, 0.09946126, 0.09946129, 0.7000767, 0.13333334, 1, -0.6916174, 0.14719175, 0.14719178, 0.69161737, 0.16666667, 1, -0.68162763, 0.18810582, 0.18810587, 0.6816276, 0.20833333, 1, -0.6754944, 0.20906316, 0.2090632, 0.6754943)
[sub_resource type="Animation" id="Animation_4m5ha"]
resource_name = "jump1-loop"
length = 0.5833333
loop_mode = 1
tracks/0/type = "rotation_3d"
tracks/0/imported = true
tracks/0/enabled = true
tracks/0/path = NodePath("Armature/Skeleton3D:head")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = PackedFloat32Array(0, 1, 0, 0, 0, 1)
tracks/1/type = "rotation_3d"
tracks/1/imported = true
tracks/1/enabled = true
tracks/1/path = NodePath("Armature/Skeleton3D:arm.l")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = PackedFloat32Array(0, 1, 0.16491105, -0.19907025, -0.46216232, 0.8482815, 0.033333335, 1, 0.16292813, -0.1966766, -0.44568896, 0.8579826, 0.06666667, 1, 0.15795462, -0.19067287, -0.40574467, 0.8798099, 0.1, 1, 0.14960615, -0.18059514, -0.34231567, 0.909848, 0.13333334, 1, 0.13738729, -0.16584532, -0.25570658, 0.94246185, 0.16666667, 1, 0.12086617, -0.14590205, -0.14725594, 0.970783, 0.2, 1, 0.10003102, -0.12075119, -0.02095889, 0.9874076, 0.23333333, 1, 0.07746595, -0.09351207, 0.10570058, 0.9869559, 0.26666668, 1, 0.05509115, -0.06650261, 0.22280262, 0.9710312, 0.3, 1, 0.03475427, -0.041953206, 0.32283667, 0.9448855, 0.33333334, 1, 0.01797073, -0.021693187, 0.4011522, 0.9155782, 0.36666667, 1, 0.0073409793, -0.008861614, 0.44884396, 0.89353603, 0.4, 1, 0.001871625, -0.0022593576, 0.47281396, 0.8811574, 0.43333334, 1, -6.8684805e-08, 3.97834e-08, 0.43325853, 0.9012697, 0.46666667, 1, -4.6923528e-08, 4.2163578e-08, 0.2959903, 0.95519096, 0.5, 1, -5.022673e-09, 4.4119368e-08, 0.031682793, 0.99949807, 0.53333336, 1, 3.723895e-08, 4.2906425e-08, -0.23490036, 0.97201943, 0.56666666, 1, 5.9497896e-08, 4.091479e-08, -0.37530804, 0.9269002, 0.5833333, 1, 6.728594e-08, 3.9968324e-08, -0.4244344, 0.9054587)
tracks/2/type = "rotation_3d"
tracks/2/imported = true
tracks/2/enabled = true
tracks/2/path = NodePath("Armature/Skeleton3D:arm.r")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = PackedFloat32Array(0, 1, 0.12278029, 0.103681155, 0.47836125, 0.8633341, 0.033333335, 1, 0.12142256, 0.10253463, 0.4610096, 0.87304837, 0.06666667, 1, 0.117976256, 0.09962444, 0.4187322, 0.89488554, 0.1, 1, 0.11208792, 0.09465207, 0.3511598, 0.9247508, 0.13333334, 1, 0.10329391, 0.08722602, 0.2582469, 0.9565723, 0.16666667, 1, 0.09115662, 0.07697676, 0.14110272, 0.98277926, 0.2, 1, 0.0755583, 0.06380485, 0.0039358935, 0.9950901, 0.23333333, 1, 0.058495414, 0.049396202, -0.13330726, 0.9881131, 0.26666668, 1, 0.041513238, 0.035055704, -0.25931442, 0.9642634, 0.3, 1, 0.02609686, 0.022037433, -0.36583734, 0.9300518, 0.33333334, 1, 0.013439841, 0.011349292, -0.44816688, 0.89377695, 0.36666667, 1, 0.005481215, 0.00462867, -0.49766386, 0.8673403, 0.4, 1, 0.0013952059, 0.0011782625, -0.52240455, 0.8526958, 0.43333334, 1, -2.5545276e-08, 6.776717e-08, -0.4822765, 0.87601906, 0.46666667, 1, -1.4686288e-08, 7.412076e-08, -0.34021562, 0.94034743, 0.5, 1, 6.0131793e-09, 8.1016715e-08, -0.060081095, 0.9981935, 0.53333336, 1, 2.6220649e-08, 8.1283744e-08, 0.22496933, 0.9743659, 0.56666666, 1, 2.6558359e-08, 7.398688e-08, 0.37372044, 0.9275414, 0.5833333, 1, 2.349101e-08, 6.948292e-08, 0.42525995, 0.90507126)
tracks/3/type = "rotation_3d"
tracks/3/imported = true
tracks/3/enabled = true
tracks/3/path = NodePath("Armature/Skeleton3D:hip.l")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = PackedFloat32Array(0, 1, -0.5, -0.5, -0.5, 0.5)
tracks/4/type = "rotation_3d"
tracks/4/imported = true
tracks/4/enabled = true
tracks/4/path = NodePath("Armature/Skeleton3D:upper_leg.l")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = PackedFloat32Array(0, 1, -0.6980985, 0.1125101, 0.112510145, 0.6980985, 0.033333335, 1, -0.6953522, 0.11572834, 0.11419779, 0.7000365, 0.06666667, 1, -0.6890111, 0.123073585, 0.118044704, 0.70440197, 0.1, 1, -0.6795414, 0.133829, 0.123665184, 0.7106477, 0.13333334, 1, -0.66739976, 0.14726606, 0.13066608, 0.71820384, 0.16666667, 1, -0.65306926, 0.16264959, 0.13865215, 0.72651315, 0.23333333, 1, -0.62081605, 0.19557627, 0.15563886, 0.7430437, 0.26666668, 1, -0.60487473, 0.2110678, 0.16357923, 0.75021255, 0.3, 1, -0.59004927, 0.22505257, 0.170718, 0.7563391, 0.33333334, 1, -0.57712626, 0.23692986, 0.1767586, 0.76127917, 0.36666667, 1, -0.5683018, 0.24488069, 0.18079057, 0.76444834, 0.4, 1, -0.56363004, 0.2490393, 0.18289568, 0.76606137, 0.43333334, 1, -0.57315195, 0.23559785, 0.17271246, 0.7656114, 0.46666667, 1, -0.6011017, 0.19609173, 0.14375125, 0.76128864, 0.53333336, 1, -0.68163, 0.057088032, 0.04185022, 0.7282651, 0.56666666, 1, -0.7004931, 0.015788428, 0.01157425, 0.71339065, 0.5833333, 1, -0.7071068, -2.6692542e-08, 2.6692542e-08, 0.7071068)
tracks/5/type = "rotation_3d"
tracks/5/imported = true
tracks/5/enabled = true
tracks/5/path = NodePath("Armature/Skeleton3D:hip.r")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = PackedFloat32Array(0, 1, -0.5, 0.5, 0.5, 0.5)
tracks/6/type = "rotation_3d"
tracks/6/imported = true
tracks/6/enabled = true
tracks/6/path = NodePath("Armature/Skeleton3D:upper_leg.r")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = PackedFloat32Array(0, 1, -0.7023051, -0.08226587, -0.08226583, 0.702305, 0.033333335, 1, -0.7002828, -0.07615434, -0.07683486, 0.705621, 0.06666667, 1, -0.6954091, -0.062060937, -0.06430797, 0.7130351, 0.1, 1, -0.6876369, -0.041140474, -0.045705575, 0.7234459, 0.13333334, 1, -0.6768588, -0.014601349, -0.022094617, 0.73563635, 0.16666667, 1, -0.6630332, 0.01627228, 0.005390068, 0.7483938, 0.23333333, 1, -0.6279835, 0.083747916, 0.0655246, 0.77092785, 0.26666668, 1, -0.6090053, 0.115754455, 0.09408087, 0.77901363, 0.3, 1, -0.5905409, 0.1446456, 0.119875684, 0.78483695, 0.33333334, 1, -0.5739046, 0.1690913, 0.14171518, 0.7886435, 0.36666667, 1, -0.56231534, 0.18534684, 0.15624487, 0.79059196, 0.4, 1, -0.5561034, 0.19382134, 0.16382195, 0.7914195, 0.43333334, 1, -0.5651424, 0.18495072, 0.15646008, 0.78862387, 0.46666667, 1, -0.593492, 0.15372734, 0.13004649, 0.7792454, 0.53333336, 1, -0.67835075, 0.04472942, 0.037839115, 0.7323987, 0.56666666, 1, -0.69949377, 0.012381507, 0.010474229, 0.71445477, 0.5833333, 1, -0.7071068, -1.5454312e-08, 1.5454312e-08, 0.7071068)
[sub_resource type="Animation" id="Animation_qw38m"]
resource_name = "pickup"
length = 0.20833333
tracks/0/type = "rotation_3d"
tracks/0/imported = true
tracks/0/enabled = true
tracks/0/path = NodePath("Armature/Skeleton3D:head")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = PackedFloat32Array(0, 1, 0, 0, 0, 1)
tracks/1/type = "rotation_3d"
tracks/1/imported = true
tracks/1/enabled = true
tracks/1/path = NodePath("Armature/Skeleton3D:arm.l")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = PackedFloat32Array(0, 1, 6.728594e-08, 3.9968324e-08, -0.4244344, 0.9054587, 0.033333335, 1, 0.044615045, -0.02984432, -0.4370112, 0.897853, 0.06666667, 1, 0.14010738, -0.09372214, -0.4594671, 0.8720528, 0.1, 1, 0.26287308, -0.17584398, -0.47896206, 0.8188846, 0.13333334, 1, 0.38504738, -0.25757024, -0.48653138, 0.74073166, 0.16666667, 1, 0.48032945, -0.3213074, -0.4823678, 0.65830576, 0.20833333, 1, 0.523814, -0.3503956, -0.47677234, 0.612805)
tracks/2/type = "rotation_3d"
tracks/2/imported = true
tracks/2/enabled = true
tracks/2/path = NodePath("Armature/Skeleton3D:arm.r")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = PackedFloat32Array(0, 1, 2.349101e-08, 6.948292e-08, 0.42525995, 0.90507126, 0.033333335, 1, 0.041553196, 0.033103567, 0.43505287, 0.8988362, 0.06666667, 1, 0.13026266, 0.10377432, 0.45171005, 0.8764819, 0.1, 1, 0.24429049, 0.19461507, 0.46422726, 0.82881856, 0.13333334, 1, 0.35806894, 0.28525713, 0.46552187, 0.7574328, 0.16666667, 1, 0.4473714, 0.35640028, 0.45702252, 0.68115205, 0.20833333, 1, 0.48844275, 0.38911995, 0.44961932, 0.6386328)
tracks/3/type = "rotation_3d"
tracks/3/imported = true
tracks/3/enabled = true
tracks/3/path = NodePath("Armature/Skeleton3D:hip.l")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = PackedFloat32Array(0, 1, -0.5, -0.5, -0.5, 0.5)
tracks/4/type = "rotation_3d"
tracks/4/imported = true
tracks/4/enabled = true
tracks/4/path = NodePath("Armature/Skeleton3D:upper_leg.l")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = PackedFloat32Array(0, 1, -0.7071068, -2.6692542e-08, 2.6692542e-08, 0.7071068)
tracks/5/type = "rotation_3d"
tracks/5/imported = true
tracks/5/enabled = true
tracks/5/path = NodePath("Armature/Skeleton3D:hip.r")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = PackedFloat32Array(0, 1, -0.5, 0.5, 0.5, 0.5)
tracks/6/type = "rotation_3d"
tracks/6/imported = true
tracks/6/enabled = true
tracks/6/path = NodePath("Armature/Skeleton3D:upper_leg.r")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = PackedFloat32Array(0, 1, -0.7071068, -1.5454312e-08, 1.5454312e-08, 0.7071068)
[sub_resource type="Animation" id="Animation_5eaja"]
resource_name = "pickup_walk"
length = 1.0833334
tracks/0/type = "rotation_3d"
tracks/0/imported = true
tracks/0/enabled = true
tracks/0/path = NodePath("Armature/Skeleton3D:head")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = PackedFloat32Array(0, 1, 0, 0, 0, 1)
tracks/1/type = "rotation_3d"
tracks/1/imported = true
tracks/1/enabled = true
tracks/1/path = NodePath("Armature/Skeleton3D:arm.l")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = PackedFloat32Array(0, 1, 0.44240275, -0.53902584, -0.342163, 0.6298059)
tracks/2/type = "rotation_3d"
tracks/2/imported = true
tracks/2/enabled = true
tracks/2/path = NodePath("Armature/Skeleton3D:arm.r")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = PackedFloat32Array(0, 1, 0.43278182, 0.49161798, 0.3524288, 0.6684352)
tracks/3/type = "rotation_3d"
tracks/3/imported = true
tracks/3/enabled = true
tracks/3/path = NodePath("Armature/Skeleton3D:hip.l")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = PackedFloat32Array(0, 1, -0.5, -0.5, -0.5, 0.5)
tracks/4/type = "rotation_3d"
tracks/4/imported = true
tracks/4/enabled = true
tracks/4/path = NodePath("Armature/Skeleton3D:upper_leg.l")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = PackedFloat32Array(0, 1, -0.60595876, 0.3644366, 0.36443666, 0.6059587, 0.06666667, 1, -0.60595876, 0.3644366, 0.36443666, 0.6059587, 0.1, 1, -0.6032101, 0.36896825, 0.36896828, 0.6032101, 0.13333334, 1, -0.59639233, 0.37988952, 0.37988958, 0.59639245, 0.16666667, 1, -0.5855792, 0.39635456, 0.39635462, 0.5855793, 0.2, 1, -0.5795719, 0.40508807, 0.40508813, 0.57957196, 0.23333333, 1, -0.5895815, 0.39037627, 0.39037627, 0.58958155, 0.26666668, 1, -0.6165933, 0.34613982, 0.34613985, 0.6165933, 0.3, 1, -0.6541701, 0.26844278, 0.2684428, 0.6541701, 0.33333334, 1, -0.6892638, 0.15784594, 0.157846, 0.6892639, 0.36666667, 1, -0.7066153, 0.026357096, 0.026357153, 0.70661545, 0.4, 1, -0.7008727, -0.093687855, -0.0936878, 0.7008728, 0.43333334, 1, -0.6816648, -0.18797097, -0.1879709, 0.6816648, 0.46666667, 1, -0.6618372, -0.24894077, -0.24894069, 0.6618373, 0.5, 1, -0.6517511, -0.27426365, -0.27426362, 0.6517511, 0.53333336, 1, -0.6582527, -0.25827003, -0.25826997, 0.65825266, 0.56666666, 1, -0.67109025, -0.22279571, -0.22279567, 0.67109025, 0.6, 1, -0.6857183, -0.17259939, -0.17259935, 0.68571824, 0.6666667, 1, -0.70495313, -0.05514667, -0.055146623, 0.7049531, 0.7, 1, -0.70691395, -0.016512973, -0.016512923, 0.70691395, 0.73333335, 1, -0.7071068, -0.00015736022, -0.00015730923, 0.7071068, 0.76666665, 1, -0.7070719, 0.0070313667, 0.00703141, 0.70707184, 0.8, 1, -0.70687455, 0.018124059, 0.018124092, 0.70687443, 0.8333333, 1, -0.7056039, 0.046078686, 0.046078723, 0.7056038, 0.8666667, 1, -0.7008078, 0.09417304, 0.09417307, 0.70080763, 0.9, 1, -0.6911309, 0.14945938, 0.14945939, 0.6911309, 0.93333334, 1, -0.67634094, 0.206308, 0.20630804, 0.6763409, 0.96666664, 1, -0.6577143, 0.25963807, 0.2596381, 0.65771425, 1, 1, -0.6378587, 0.3051825, 0.30518252, 0.63785857, 1.0333333, 1, -0.6225582, 0.33529305, 0.33529308, 0.62255806, 1.0666667, 1, -0.61391485, 0.35086837, 0.35086843, 0.6139148, 1.0833334, 1, -0.6107917, 0.3562773, 0.35627735, 0.6107917)
tracks/5/type = "rotation_3d"
tracks/5/imported = true
tracks/5/enabled = true
tracks/5/path = NodePath("Armature/Skeleton3D:hip.r")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = PackedFloat32Array(0, 1, -0.5, 0.5, 0.5, 0.5)
tracks/6/type = "rotation_3d"
tracks/6/imported = true
tracks/6/enabled = true
tracks/6/path = NodePath("Armature/Skeleton3D:upper_leg.r")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = PackedFloat32Array(0, 1, -0.66778064, 0.2325275, 0.23252754, 0.66778064, 0.033333335, 1, -0.6728083, 0.21755226, 0.21755232, 0.6728083, 0.06666667, 1, -0.6822603, 0.18579805, 0.18579808, 0.6822603, 0.1, 1, -0.6924698, 0.14312816, 0.14312819, 0.6924698, 0.13333334, 1, -0.70056885, 0.09593359, 0.09593362, 0.7005689, 0.16666667, 1, -0.7052536, 0.051159598, 0.05115963, 0.70525366, 0.2, 1, -0.7067271, 0.023168769, 0.023168799, 0.70672715, 0.23333333, 1, -0.7070106, 0.011661734, 0.011661766, 0.7070106, 0.26666668, 1, -0.70709205, 0.004570252, 0.004570281, 0.70709205, 0.3, 1, -0.70703137, -0.010325267, -0.010325237, 0.7070314, 0.33333334, 1, -0.7056518, -0.045337453, -0.04533742, 0.7056519, 0.36666667, 1, -0.6996207, -0.102619424, -0.102619395, 0.69962084, 0.4, 1, -0.68725264, -0.16638435, -0.16638432, 0.68725276, 0.43333334, 1, -0.6688022, -0.2295728, -0.22957277, 0.6688022, 0.46666667, 1, -0.6466371, -0.28611276, -0.28611273, 0.6466371, 0.5, 1, -0.6247237, -0.33124068, -0.33124065, 0.6247236, 0.53333336, 1, -0.60671896, -0.36316958, -0.36316955, 0.606719, 0.56666666, 1, -0.5896747, -0.39023554, -0.39023548, 0.5896747, 0.6, 1, -0.573949, -0.4130166, -0.41301656, 0.5739489, 0.6333333, 1, -0.5598276, -0.43196422, -0.4319642, 0.55982757, 0.6666667, 1, -0.5475638, -0.447408, -0.44740796, 0.5475638, 0.7, 1, -0.53831047, -0.45849967, -0.45849964, 0.53831035, 0.73333335, 1, -0.53158885, -0.46627605, -0.46627602, 0.5315888, 0.76666665, 1, -0.5276454, -0.4707339, -0.4707339, 0.5276454, 0.8, 1, -0.531291, -0.46661535, -0.46661535, 0.531291, 0.8333333, 1, -0.5512564, -0.4428502, -0.4428502, 0.5512565, 0.8666667, 1, -0.6014973, -0.37175405, -0.37175405, 0.6014972, 0.9, 1, -0.6556332, -0.26484933, -0.2648493, 0.65563315, 0.93333334, 1, -0.6944868, -0.13299699, -0.13299698, 0.69448674, 0.96666664, 1, -0.7070926, 0.004495856, 0.0044958577, 0.70709246, 1, 1, -0.6961938, 0.12375077, 0.123750776, 0.6961937, 1.0333333, 1, -0.67905474, 0.19719204, 0.19719204, 0.6790547, 1.0666667, 1, -0.6672913, 0.23392808, 0.23392811, 0.6672913, 1.0833334, 1, -0.66282797, 0.24629061, 0.24629065, 0.66282797)
[sub_resource type="Animation" id="Animation_pg0cp"]
resource_name = "reset"
length = 0.001
tracks/0/type = "rotation_3d"
tracks/0/imported = true
tracks/0/enabled = true
tracks/0/path = NodePath("Armature/Skeleton3D:head")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = PackedFloat32Array(0, 1, 0, 0, 0, 1)
tracks/1/type = "rotation_3d"
tracks/1/imported = true
tracks/1/enabled = true
tracks/1/path = NodePath("Armature/Skeleton3D:arm.l")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = PackedFloat32Array(0, 1, 6.728594e-08, 3.9968324e-08, -0.4244344, 0.9054587)
tracks/2/type = "rotation_3d"
tracks/2/imported = true
tracks/2/enabled = true
tracks/2/path = NodePath("Armature/Skeleton3D:arm.r")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = PackedFloat32Array(0, 1, 2.349101e-08, 6.948292e-08, 0.42525995, 0.90507126)
tracks/3/type = "rotation_3d"
tracks/3/imported = true
tracks/3/enabled = true
tracks/3/path = NodePath("Armature/Skeleton3D:hip.l")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = PackedFloat32Array(0, 1, -0.5, -0.5, -0.5, 0.5)
tracks/4/type = "rotation_3d"
tracks/4/imported = true
tracks/4/enabled = true
tracks/4/path = NodePath("Armature/Skeleton3D:upper_leg.l")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = PackedFloat32Array(0, 1, -0.7071068, -2.6692542e-08, 2.6692542e-08, 0.7071068)
tracks/5/type = "rotation_3d"
tracks/5/imported = true
tracks/5/enabled = true
tracks/5/path = NodePath("Armature/Skeleton3D:hip.r")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = PackedFloat32Array(0, 1, -0.5, 0.5, 0.5, 0.5)
tracks/6/type = "rotation_3d"
tracks/6/imported = true
tracks/6/enabled = true
tracks/6/path = NodePath("Armature/Skeleton3D:upper_leg.r")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = PackedFloat32Array(0, 1, -0.7071068, -1.5454312e-08, 1.5454312e-08, 0.7071068)
[sub_resource type="Animation" id="Animation_52h43"]
resource_name = "walk-loop"
length = 1.0833334
tracks/0/type = "rotation_3d"
tracks/0/imported = true
tracks/0/enabled = true
tracks/0/path = NodePath("Armature/Skeleton3D:head")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = PackedFloat32Array(0, 1, 0, 0, 0, 1)
tracks/1/type = "rotation_3d"
tracks/1/imported = true
tracks/1/enabled = true
tracks/1/path = NodePath("Armature/Skeleton3D:arm.l")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = PackedFloat32Array(0, 1, 0.274355, -0.3806173, -0.37481663, 0.79960775, 0.033333335, 1, 0.2714617, -0.37660342, -0.37592492, 0.801972, 0.06666667, 1, 0.26462373, -0.36711693, -0.3784849, 0.80743337, 0.1, 1, 0.25419867, -0.3526541, -0.3822309, 0.81542486, 0.13333334, 1, 0.24051654, -0.33367264, -0.38686773, 0.8253168, 0.16666667, 1, 0.223897, -0.31061602, -0.39208817, 0.8364536, 0.2, 1, 0.20407194, -0.28311232, -0.39774787, 0.8485275, 0.23333333, 1, 0.18218736, -0.25275153, -0.40330747, 0.86038804, 0.26666668, 1, 0.15845338, -0.21982497, -0.40855402, 0.87158084, 0.3, 1, 0.13305698, -0.1845921, -0.4133, 0.8817056, 0.33333334, 1, 0.10615978, -0.14727713, -0.41738102, 0.8904115, 0.36666667, 1, 0.07725142, -0.10717209, -0.42071414, 0.89752215, 0.4, 1, 0.04718683, -0.06546298, -0.42305017, 0.90250576, 0.46666667, 1, -0.013830324, 0.019187145, -0.42431563, 0.9052055, 0.5, 1, -0.043459024, 0.060291544, -0.42326054, 0.9029545, 0.53333336, 1, -0.07086286, 0.09830934, -0.42130613, 0.89878523, 0.56666666, 1, -0.0958137, 0.13292404, -0.41869774, 0.89322066, 0.6, 1, -0.11789824, 0.1635623, -0.41571766, 0.8868631, 0.6333333, 1, -0.13676141, 0.18973155, -0.41266248, 0.88034546, 0.6666667, 1, -0.15209931, 0.21101007, -0.4098244, 0.8742909, 0.7, 1, -0.16219473, 0.22501555, -0.4077798, 0.869929, 0.73333335, 1, -0.16787551, 0.23289663, -0.40656674, 0.86734104, 0.76666665, 1, -0.16340235, 0.22669093, -0.40752575, 0.869387, 0.8, 1, -0.14386564, 0.19958729, -0.4113879, 0.8776261, 0.8333333, 1, -0.10497887, 0.14563906, -0.4175384, 0.89074713, 0.8666667, 1, -0.045283653, 0.062822886, -0.4231598, 0.90273947, 0.9, 1, 0.02366014, -0.032823984, -0.42408693, 0.9047172, 0.93333334, 1, 0.094985865, -0.13177535, -0.41879725, 0.8934326, 0.96666664, 1, 0.16181995, -0.22449538, -0.40785837, 0.8700963, 1, 1, 0.21807429, -0.30253798, -0.39381355, 0.84013414, 1.0333333, 1, 0.25417697, -0.3526239, -0.38223866, 0.81544113, 1.0666667, 1, 0.27256402, -0.37813258, -0.3755045, 0.8010749, 1.0833334, 1, 0.27887058, -0.3868817, -0.3730568, 0.79585326)
tracks/2/type = "rotation_3d"
tracks/2/imported = true
tracks/2/enabled = true
tracks/2/path = NodePath("Armature/Skeleton3D:arm.r")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = PackedFloat32Array(0, 1, -0.15459529, -0.21817005, 0.40977544, 0.87211597, 0.033333335, 1, -0.15927261, -0.22477087, 0.40880525, 0.87005097, 0.06666667, 1, -0.16879784, -0.23821317, 0.4067322, 0.865639, 0.1, 1, -0.18100263, -0.255437, 0.40388274, 0.8595747, 0.13333334, 1, -0.19377217, -0.2734578, 0.40066472, 0.85272574, 0.16666667, 1, -0.20507099, -0.28940308, 0.3976105, 0.84622556, 0.2, 1, -0.21054503, -0.29712823, 0.3960597, 0.84292495, 0.23333333, 1, -0.19928291, -0.28123477, 0.3991996, 0.8496076, 0.26666668, 1, -0.16628906, -0.23467276, 0.40729094, 0.8668281, 0.3, 1, -0.110335134, -0.15570866, 0.4174444, 0.88843757, 0.33333334, 1, -0.035037424, -0.049446005, 0.42447835, 0.9034078, 0.36666667, 1, 0.04999893, 0.07056013, 0.42366678, 0.9016806, 0.4, 1, 0.12684685, 0.17901048, 0.4148988, 0.8830199, 0.43333334, 1, 0.18774644, 0.26495403, 0.40221378, 0.85602266, 0.46666667, 1, 0.22797991, 0.32173282, 0.39080286, 0.8317369, 0.5, 1, 0.24508724, 0.3458753, 0.38516036, 0.819728, 0.53333336, 1, 0.24129015, 0.34051675, 0.3864553, 0.822484, 0.56666666, 1, 0.23222496, 0.32772362, 0.38944834, 0.828854, 0.6, 1, 0.21821508, 0.30795246, 0.39380717, 0.8381309, 0.6333333, 1, 0.19955707, 0.28162166, 0.39912558, 0.8494498, 0.6666667, 1, 0.17654917, 0.24915215, 0.40494794, 0.8618415, 0.7, 1, 0.14872853, 0.2098907, 0.4109485, 0.87461245, 0.73333335, 1, 0.1180961, 0.1666612, 0.41629404, 0.88598907, 0.76666665, 1, 0.08543309, 0.120566085, 0.42059168, 0.89513564, 0.8333333, 1, 0.017634049, 0.024885863, 0.4250622, 0.90465015, 0.8666667, 1, -0.01467868, -0.020714985, 0.425123, 0.9047795, 0.9, 1, -0.04446189, -0.062746026, 0.42400077, 0.9023911, 0.93333334, 1, -0.07099054, -0.10018411, 0.4220422, 0.89822274, 0.96666664, 1, -0.09364835, -0.1321596, 0.41964442, 0.8931196, 1, 1, -0.111921966, -0.15794797, 0.4172158, 0.88795096, 1.0333333, 1, -0.12352726, -0.1743257, 0.41544038, 0.88417244, 1.0666667, 1, -0.12948188, -0.18272904, 0.41445833, 0.88208216, 1.0833334, 1, -0.13152054, -0.18560605, 0.4141109, 0.88134265)
tracks/3/type = "rotation_3d"
tracks/3/imported = true
tracks/3/enabled = true
tracks/3/path = NodePath("Armature/Skeleton3D:hip.l")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = PackedFloat32Array(0, 1, -0.5, -0.5, -0.5, 0.5)
tracks/4/type = "rotation_3d"
tracks/4/imported = true
tracks/4/enabled = true
tracks/4/path = NodePath("Armature/Skeleton3D:upper_leg.l")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = PackedFloat32Array(0, 1, -0.60595876, 0.3644366, 0.36443666, 0.6059587, 0.06666667, 1, -0.60595876, 0.3644366, 0.36443666, 0.6059587, 0.1, 1, -0.6032101, 0.36896825, 0.36896828, 0.6032101, 0.13333334, 1, -0.59639233, 0.37988952, 0.37988958, 0.59639245, 0.16666667, 1, -0.5855792, 0.39635456, 0.39635462, 0.5855793, 0.2, 1, -0.5795719, 0.40508807, 0.40508813, 0.57957196, 0.23333333, 1, -0.5895815, 0.39037627, 0.39037627, 0.58958155, 0.26666668, 1, -0.6165933, 0.34613982, 0.34613985, 0.6165933, 0.3, 1, -0.6541701, 0.26844278, 0.2684428, 0.6541701, 0.33333334, 1, -0.6892638, 0.15784594, 0.157846, 0.6892639, 0.36666667, 1, -0.7066153, 0.026357096, 0.026357153, 0.70661545, 0.4, 1, -0.7008727, -0.093687855, -0.0936878, 0.7008728, 0.43333334, 1, -0.6816648, -0.18797097, -0.1879709, 0.6816648, 0.46666667, 1, -0.6618372, -0.24894077, -0.24894069, 0.6618373, 0.5, 1, -0.6517511, -0.27426365, -0.27426362, 0.6517511, 0.53333336, 1, -0.6582527, -0.25827003, -0.25826997, 0.65825266, 0.56666666, 1, -0.67109025, -0.22279571, -0.22279567, 0.67109025, 0.6, 1, -0.6857183, -0.17259939, -0.17259935, 0.68571824, 0.6666667, 1, -0.70495313, -0.05514667, -0.055146623, 0.7049531, 0.7, 1, -0.70691395, -0.016512973, -0.016512923, 0.70691395, 0.73333335, 1, -0.7071068, -0.00015736022, -0.00015730923, 0.7071068, 0.76666665, 1, -0.7070719, 0.0070313667, 0.00703141, 0.70707184, 0.8, 1, -0.70687455, 0.018124059, 0.018124092, 0.70687443, 0.8333333, 1, -0.7056039, 0.046078686, 0.046078723, 0.7056038, 0.8666667, 1, -0.7008078, 0.09417304, 0.09417307, 0.70080763, 0.9, 1, -0.6911309, 0.14945938, 0.14945939, 0.6911309, 0.93333334, 1, -0.67634094, 0.206308, 0.20630804, 0.6763409, 0.96666664, 1, -0.6577143, 0.25963807, 0.2596381, 0.65771425, 1, 1, -0.6378587, 0.3051825, 0.30518252, 0.63785857, 1.0333333, 1, -0.6225582, 0.33529305, 0.33529308, 0.62255806, 1.0666667, 1, -0.61391485, 0.35086837, 0.35086843, 0.6139148, 1.0833334, 1, -0.6107917, 0.3562773, 0.35627735, 0.6107917)
tracks/5/type = "rotation_3d"
tracks/5/imported = true
tracks/5/enabled = true
tracks/5/path = NodePath("Armature/Skeleton3D:hip.r")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = PackedFloat32Array(0, 1, -0.5, 0.5, 0.5, 0.5)
tracks/6/type = "rotation_3d"
tracks/6/imported = true
tracks/6/enabled = true
tracks/6/path = NodePath("Armature/Skeleton3D:upper_leg.r")
tracks/6/interp = 1
tracks/6/loop_wrap = true
tracks/6/keys = PackedFloat32Array(0, 1, -0.66778064, 0.2325275, 0.23252754, 0.66778064, 0.033333335, 1, -0.6728083, 0.21755226, 0.21755232, 0.6728083, 0.06666667, 1, -0.6822603, 0.18579805, 0.18579808, 0.6822603, 0.1, 1, -0.6924698, 0.14312816, 0.14312819, 0.6924698, 0.13333334, 1, -0.70056885, 0.09593359, 0.09593362, 0.7005689, 0.16666667, 1, -0.7052536, 0.051159598, 0.05115963, 0.70525366, 0.2, 1, -0.7067271, 0.023168769, 0.023168799, 0.70672715, 0.23333333, 1, -0.7070106, 0.011661734, 0.011661766, 0.7070106, 0.26666668, 1, -0.70709205, 0.004570252, 0.004570281, 0.70709205, 0.3, 1, -0.70703137, -0.010325267, -0.010325237, 0.7070314, 0.33333334, 1, -0.7056518, -0.045337453, -0.04533742, 0.7056519, 0.36666667, 1, -0.6996207, -0.102619424, -0.102619395, 0.69962084, 0.4, 1, -0.68725264, -0.16638435, -0.16638432, 0.68725276, 0.43333334, 1, -0.6688022, -0.2295728, -0.22957277, 0.6688022, 0.46666667, 1, -0.6466371, -0.28611276, -0.28611273, 0.6466371, 0.5, 1, -0.6247237, -0.33124068, -0.33124065, 0.6247236, 0.53333336, 1, -0.60671896, -0.36316958, -0.36316955, 0.606719, 0.56666666, 1, -0.5896747, -0.39023554, -0.39023548, 0.5896747, 0.6, 1, -0.573949, -0.4130166, -0.41301656, 0.5739489, 0.6333333, 1, -0.5598276, -0.43196422, -0.4319642, 0.55982757, 0.6666667, 1, -0.5475638, -0.447408, -0.44740796, 0.5475638, 0.7, 1, -0.53831047, -0.45849967, -0.45849964, 0.53831035, 0.73333335, 1, -0.53158885, -0.46627605, -0.46627602, 0.5315888, 0.76666665, 1, -0.5276454, -0.4707339, -0.4707339, 0.5276454, 0.8, 1, -0.531291, -0.46661535, -0.46661535, 0.531291, 0.8333333, 1, -0.5512564, -0.4428502, -0.4428502, 0.5512565, 0.8666667, 1, -0.6014973, -0.37175405, -0.37175405, 0.6014972, 0.9, 1, -0.6556332, -0.26484933, -0.2648493, 0.65563315, 0.93333334, 1, -0.6944868, -0.13299699, -0.13299698, 0.69448674, 0.96666664, 1, -0.7070926, 0.004495856, 0.0044958577, 0.70709246, 1, 1, -0.6961938, 0.12375077, 0.123750776, 0.6961937, 1.0333333, 1, -0.67905474, 0.19719204, 0.19719204, 0.6790547, 1.0666667, 1, -0.6672913, 0.23392808, 0.23392811, 0.6672913, 1.0833334, 1, -0.66282797, 0.24629061, 0.24629065, 0.66282797)
[sub_resource type="AnimationLibrary" id="AnimationLibrary_pj205"]
_data = {
&"RESET": SubResource("Animation_3fe0i"),
&"collect_helper_part2": SubResource("Animation_erypk"),
&"helper_visible": SubResource("Animation_4r34j"),
&"idle": SubResource("Animation_kitjm"),
&"jump": SubResource("Animation_i5730"),
&"jump1": SubResource("Animation_4m5ha"),
&"pickup": SubResource("Animation_qw38m"),
&"pickup_walk": SubResource("Animation_5eaja"),
&"reset": SubResource("Animation_pg0cp"),
&"walk": SubResource("Animation_52h43")
}
[sub_resource type="Animation" id="Animation_ijy7i"]
resource_name = "collect_helper_part2"
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("helper:position")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [Vector3(0.0960083, 1.1406784, 0.538002), Vector3(0.0960083, -0.08320968, 0.538002)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("helper:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0, 1),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, true]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_qpqd5"]
_data = {
&"collect_helper_part2": SubResource("Animation_ijy7i")
}
[node name="Player" type="CharacterBody3D"]
collision_mask = 95
script = ExtResource("1_dq61c")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00389862, -0.462623, 0.104645)
shape = SubResource("BoxShape3D_uk0nh")
[node name="Camera_Controller" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
top_level = true
[node name="Camera_Pivot" type="SpringArm3D" parent="Camera_Controller"]
transform = Transform3D(1, 0, 0, 0, 0.93358, 0.358368, 0, -0.358368, 0.93358, 0, 0, 0)
collision_mask = 2
spring_length = 5.0
[node name="Camera3D" type="Camera3D" parent="Camera_Controller/Camera_Pivot"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.375, 4.596)
current = true
fov = 70.0
[node name="RayCast3D" type="RayCast3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.38872, 0)
collision_mask = 14
[node name="InteractRay" parent="." instance=ExtResource("3_wknd5")]
transform = Transform3D(1.17, 0, 0, 0, -5.11423e-08, -1.17, 0, 1.17, -5.11423e-08, 0, -0.382462, 0)
collision_mask = 12
debug_shape_custom_color = Color(0.79, 0.00789999, 0.00789999, 1)
[node name="Armature" type="Node3D" parent="."]
transform = Transform3D(-1, 0, -8.74228e-08, 0, 1, 0, 8.74228e-08, 0, -1, 0, -1.41604, 0)
[node name="Skeleton3D" type="Skeleton3D" parent="Armature"]
bones/0/name = "body"
bones/0/parent = -1
bones/0/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.3528, 0)
bones/0/enabled = true
bones/0/position = Vector3(0, 0.35279977, 0)
bones/0/rotation = Quaternion(0, 0, 0, 1)
bones/0/scale = Vector3(1, 1, 1)
bones/1/name = "head"
bones/1/parent = 0
bones/1/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.606169, 0)
bones/1/enabled = true
bones/1/position = Vector3(0, 0.606169, 0)
bones/1/rotation = Quaternion(0, 0, 0, 1)
bones/1/scale = Vector3(1, 1, 1)
bones/2/name = "shoulder.l"
bones/2/parent = 0
bones/2/rest = Transform3D(-0.185149, 0.982711, -2.1179e-08, -0.982711, -0.185148, -1.12412e-07, -1.14389e-07, -1.06581e-14, 1, 0, 0.606169, 0)
bones/2/enabled = true
bones/2/position = Vector3(0, 0.606169, 0)
bones/2/rotation = Quaternion(4.4027612e-08, 3.650722e-08, -0.7697886, 0.6382989)
bones/2/scale = Vector3(1.0000005, 1.0000004, 1)
bones/3/name = "arm.l"
bones/3/parent = 2
bones/3/rest = Transform3D(0.639711, 0.768615, 1.52624e-08, -0.768616, 0.639711, -1.55777e-07, -1.29496e-07, 8.79214e-08, 1, 2.6077e-08, 0.291873, 4.88498e-15)
bones/3/enabled = true
bones/3/position = Vector3(2.6077e-08, 0.291873, 4.88498e-15)
bones/3/rotation = Quaternion(0.27435496, -0.3806172, -0.37481663, 0.79960763)
bones/3/scale = Vector3(1.0000004, 0.99999964, 1)
bones/4/name = "shoulder.r"
bones/4/parent = 0
bones/4/rest = Transform3D(-0.176299, -0.984337, 2.32732e-08, 0.984337, -0.176299, -1.29942e-07, 1.3201e-07, -1.42109e-14, 1, 0, 0.606169, 0)
bones/4/enabled = true
bones/4/position = Vector3(0, 0.606169, 0)
bones/4/rotation = Quaternion(5.0619818e-08, -4.235909e-08, 0.76690906, 0.6417558)
bones/4/scale = Vector3(1.0000002, 1.0000002, 1)
bones/5/name = "arm.r"
bones/5/parent = 4
bones/5/rest = Transform3D(0.638308, -0.769781, 1.45754e-07, 0.769781, 0.638308, 1.65745e-08, -1.05794e-07, 1.01619e-07, 1, 2.23517e-08, 0.282945, -5.32907e-15)
bones/5/enabled = true
bones/5/position = Vector3(2.23517e-08, 0.282945, -5.32907e-15)
bones/5/rotation = Quaternion(-0.15459529, -0.21817008, 0.40977547, 0.872116)
bones/5/scale = Vector3(0.99999994, 0.99999994, 1)
bones/6/name = "hip.l"
bones/6/parent = -1
bones/6/rest = Transform3D(0, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0.3528, 0)
bones/6/enabled = true
bones/6/position = Vector3(0, 0.35279977, 0)
bones/6/rotation = Quaternion(0.5, 0.5, 0.5, -0.5)
bones/6/scale = Vector3(1, 1, 1)
bones/7/name = "upper_leg.l"
bones/7/parent = 6
bones/7/rest = Transform3D(1, 0, -7.54979e-08, 7.54979e-08, 0, 1, 0, -1, 0, 0, 0.16212, 0)
bones/7/enabled = true
bones/7/position = Vector3(0, 0.16212, 0)
bones/7/rotation = Quaternion(-0.6059587, 0.3644366, 0.3644366, 0.6059587)
bones/7/scale = Vector3(1, 1, 1)
bones/8/name = "lower_leg.l"
bones/8/parent = 7
bones/8/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.103923, 0)
bones/8/enabled = true
bones/8/position = Vector3(0, 0.103923, 0)
bones/8/rotation = Quaternion(0, 0, 0, 1)
bones/8/scale = Vector3(1, 1, 1)
bones/9/name = "hip.r"
bones/9/parent = -1
bones/9/rest = Transform3D(0, -1, 0, 0, 0, 1, -1, 0, 0, 0, 0.3528, 0)
bones/9/enabled = true
bones/9/position = Vector3(0, 0.35279977, 0)
bones/9/rotation = Quaternion(0.5, -0.5, -0.5, -0.5)
bones/9/scale = Vector3(1, 1, 1)
bones/10/name = "upper_leg.r"
bones/10/parent = 9
bones/10/rest = Transform3D(1, 0, -4.37114e-08, 4.37114e-08, 0, 1, 0, -1, 0, 0, 0.145492, 0)
bones/10/enabled = true
bones/10/position = Vector3(0, 0.145492, 0)
bones/10/rotation = Quaternion(-0.66778064, 0.23252751, 0.23252754, 0.66778064)
bones/10/scale = Vector3(1, 1, 1)
bones/11/name = "lower_leg.r"
bones/11/parent = 10
bones/11/rest = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.10808, 0)
bones/11/enabled = true
bones/11/position = Vector3(0, 0.10808, 0)
bones/11/rotation = Quaternion(0, 0, 0, 1)
bones/11/scale = Vector3(1, 1, 1)
bones/12/name = "neutral_bone"
bones/12/parent = -1
bones/12/rest = Transform3D(1, 0, 0, 0, 0, 1, 0, -1, 0, 0, 0, 0)
bones/12/enabled = true
bones/12/position = Vector3(0, 0, 0)
bones/12/rotation = Quaternion(-0.70710677, 0, 0, 0.70710677)
bones/12/scale = Vector3(1, 1, 1)
[node name="CharacterMesh" type="MeshInstance3D" parent="Armature/Skeleton3D"]
mesh = ExtResource("3_gyuqh")
skin = SubResource("Skin_gyuqh")
[node name="Crosshair" type="Control" parent="."]
layout_mode = 3
anchors_preset = 8
anchor_left = 0.5
anchor_top = 0.5
anchor_right = 0.5
anchor_bottom = 0.5
offset_left = -20.0
offset_top = -20.0
offset_right = 20.0
offset_bottom = 20.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("4_gyuqh")
metadata/_edit_use_anchors_ = true
[node name="Horizontal" type="Line2D" parent="Crosshair"]
points = PackedVector2Array(-15, 0, 15, 0)
width = 2.0
[node name="Vertical" type="Line2D" parent="Crosshair"]
points = PackedVector2Array(0, -15, 0, 15)
width = 2.0
[node name="Inventory" parent="." instance=ExtResource("5_wknd5")]
visible = false
[node name="Balloon" parent="." instance=ExtResource("6_rjb0o")]
transform = Transform3D(0.6970959, 0.06369831, 0, -0.06369831, 0.6970959, 0, 0, 0, 0.70000005, 0.2608546, 0.32857847, 0.54166865)
visible = false
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_pj205")
}
[node name="helper" type="Node3D" parent="."]
transform = Transform3D(0.4, 0, 0, 0, 0.4, 0, 0, 0, 0.4, 0.096, 1.141, 0.538)
visible = false
[node name="helper" parent="helper" instance=ExtResource("7_4r34j")]
[node name="Chatbot" parent="." instance=ExtResource("8_erypk")]
visible = false
[node name="audio_throw" type="AudioStreamPlayer" parent="."]
stream = ExtResource("9_qpqd5")
volume_db = -3.0
[node name="audio_pickup" type="AudioStreamPlayer" parent="."]
stream = ExtResource("10_41dcx")
volume_db = -7.0
[node name="AnimationPlayer2" type="AnimationPlayer" parent="."]
libraries = {
&"": SubResource("AnimationLibrary_qpqd5")
}
[node name="audio_jump" type="AudioStreamPlayer" parent="."]
stream = ExtResource("11_a75tr")
volume_db = -8.0
[connection signal="grabbed" from="InteractRay" to="." method="_on_interact_ray_grabbed"]
[connection signal="animation_started" from="AnimationPlayer" to="." method="_on_animation_player_animation_started"]
+5
View File
@@ -0,0 +1,5 @@
[gd_scene load_steps=2 format=3 uid="uid://b4mmlt4progvd"]
[ext_resource type="PackedScene" uid="uid://cg6wf4m1u7anr" path="res://assets/assets.glb" id="1_nyoif"]
[node name="assets" instance=ExtResource("1_nyoif")]
Binary file not shown.
+266
View File
@@ -0,0 +1,266 @@
extends Node3D
const count_battery_boxes = 4
var currently_charged_battery_boxes := 0
signal show_door
@onready var aliens = $"npcs/aliens"
@onready var batteries = $"Objects/Balloons_A2"
@onready var chatbot: Control = $npcs/helpers/Chatbot
var aliens_start_count: int
var batteries_start_count: int
var helper_collected = false
var not_congratulated_1 = true
var not_congratulated_2 = true
var release_generators = false
var popped_balloons := 0
var current_task := 0
var current_text: String
var rabbit_activated = false
var audio_playing = true
@onready var checkpoints = [$startpoint,
$Objects/pressure_blocks/PressureBlock_A1,
$Objects/pressure_blocks/PressureBlock_A2,
$Objects/pressure_blocks/PressureBlock_A3,
$Objects/pressure_blocks/PressureBlock_A3_1,
]
@onready var generators = $Objects/generators
func _ready() -> void:
aliens_start_count = aliens.get_child_count()
batteries_start_count = batteries.get_child_count()
func _process(delta: float) -> void:
if Global.chatbot_opened:
return
if Input.is_action_just_pressed("Screenshot"):
take_screenshot()
if Input.is_action_just_pressed("fast_forward"):
current_task = (current_task + 1 ) % len(checkpoints)
print(current_task, checkpoints[current_task].position)
$Player.position = checkpoints[current_task].position + Vector3(0.0, 0.5, 0.0)
if Input.is_action_just_pressed("rewind"):
current_task = (current_task - 1 ) % len(checkpoints)
$Player.position = checkpoints[current_task].position
if Input.is_action_just_pressed("inventory"):
if current_task == 3:
$Player.toggle_inventory()
if current_task == 4 and Input.is_action_just_pressed("keypad"):
reset_music_volume()
$Keypad.visible = true
$Hilfestellung/CanvasLayer.visible = false
$Player.set_mode('aim')
if not_congratulated_1 and aliens.get_child_count() <= aliens_start_count-5:
not_congratulated_1 = false
show_congratulations("Glückwunsch!
Die erste Aufgabe ist geschafft.", "Definitionen von KI")
func show_congratulations(text, text_2) -> void:
print(text)
$Player/helper/helper.celebrate()
$Hilfestellung/CanvasLayer.visible = false
$Congratulations/CanvasLayer/Panel/Label.text = text
$Congratulations/CanvasLayer.visible = true
$Congratulations/CanvasLayer/Panel/Label_repeat.text = "(Um die "+ text_2 + " noch einmal nachzulesen, sprechen Sie mit ihrem Helfer)"
await get_tree().create_timer(5.0).timeout
$Player/helper/helper.stop_anim()
$Congratulations/CanvasLayer.visible = false
func openLinkinBrowser(link):
OS.shell_open(link)
func openAIActinBrowser():
openLinkinBrowser("https://eur-lex.europa.eu/legal-content/DE/TXT/?uri=CELEX:32024R1689")
func openDSGVOinBrowser():
openLinkinBrowser("https://dsgvo-gesetz.de/")
func _on_openChatBot():
$Hilfestellung/CanvasLayer.visible = false
$HUD.visible = false
quiet_down_music()
func _on_battery_box_removed_battery() -> void:
currently_charged_battery_boxes -= 1
print(currently_charged_battery_boxes)
func _on_show_door() -> void:
print('showing door')
$Objects/spaceship/Door.visible = true
$Objects/spaceship/Door.position.y = 0.012
$Objects/spaceship/door_cover/CollisionShape3D.disabled = true
func _on_door_body_entered(body: Node3D) -> void:
if $Objects/spaceship/Door.visible:
DialogueState.currentTask = 5
Transition.change_scene("res://quiz.tscn")
func _on_pressure_block_a3_activated() -> void:
quiet_down_music()
$Objects/pressure_blocks/PressureBlock_A3.current_weight = 10.0
DialogueManager.show_chosen_dialogue_balloon(load($Objects/pressure_blocks/PressureBlock_A3.text_on_activation), "/game_balloons/game_balloon_v_2.tscn", "start")
func _on_pressure_block_a_1_activated() -> void:
current_task = 1
DialogueState.currentTask = 1
current_text = "[Enter] oder [t] drücken, um mit den Aliens zu reden"
$Hinweistexte/CanvasLayer/Panel/Label.text = "Wenn Sie weiterlaufen werden Ihnen einige Aliens begegnen. Sprechen Sie mit ihnen, um verschiedene Definitionen von Künstlicher Intelligenz (KI) kennenzulernen."
$Hinweistexte/CanvasLayer.visible = true
if $Tutorial:
$Tutorial.queue_free()
if $Objects/Bridges/walls_tutorial:
$Objects/Bridges/walls_tutorial.queue_free()
if $Objects/Chip0/block:
$Objects/Chip0/block.queue_free()
func _on_pressure_block_a_2_activated() -> void:
current_task = 2
current_text = "Zielen mit der Maus, Klicken zum Werfen, [r] zum Wechsel zwischen Wurf- und Kameramodus"
$Hinweistexte/CanvasLayer/Panel/Label.text = "Laufen Sie weiter zur Wurfzone.
Dort angekommen, können Sie die Ballons abwerfen, um zu entdecken, in was für Systemen KI bereits eingesetzt wird bzw. werden kann.
Sammeln Sie danach die Batterien, Sie werden sie im weiteren Verlauf benötigen.
Zur Erinnerung: Zielen mit der Maus (Fadenkreuz) und Werfen durch Klicken. Wenn Sie kein Fadenkreuz sehen, evtl. [r] drücken, um den Modus zu wechseln."
$Hinweistexte/CanvasLayer.visible = true
func _on_pressure_block_deactivated() -> void:
$Hinweistexte/CanvasLayer.visible = false
$Hilfestellung/CanvasLayer/Panel/Label.text = current_text
$Hilfestellung/CanvasLayer.visible = true
func _on_pressure_block_a_3_1_activated() -> void:
reset_music_volume()
current_task = 3
DialogueState.currentTask = 3
current_text = "Auswahl der Batterien im Inventar [c], Einfügen mit [f] - ([e] zum wieder rausholen, [q] ablegen)"
$Objects/pressure_blocks/PressureBlock_A3_1.current_weight = 10.0
$AnimationPlayer.play("start_ordering_game")
_on_pressure_block_deactivated()
func _on_balloon_tree_exited() -> void:
popped_balloons += 1
if popped_balloons == Global.TOTAL_BALLOONS_A2 and current_task == 2:
not_congratulated_2 = false
DialogueState.batteriesFlag = true
show_congratulations("Glückwunsch!
Die 2. Aufgabe ist geschafft.", "KI-Systeme")
$Objects/arrows/after_throw.visible = true
$Objects/Fences/no_arrows/barrier_throw.position.x = 4.0
$Hilfestellung/CanvasLayer/Panel/Label.text = "Sammeln Sie die Batterien auf (durch Vorbeilaufen) - einen Counter dazu sehen Sie oben links"
$Hilfestellung/CanvasLayer.visible = true
func _on_pressure_block_a_4_activated() -> void:
quiet_down_music()
current_task = 4
DialogueState.currentTask = 4
DialogueState.personalDataFlag = true
$Objects/spaceship/keypad.visible = true
current_text = "[k] drücken zum Starten des nächsten Minispiels"
$Hilfestellung/CanvasLayer.visible = true
$Objects/pressure_blocks/PressureBlock_A4.current_weight = 10.0
DialogueManager.show_chosen_dialogue_balloon(load($Objects/pressure_blocks/PressureBlock_A4.text_on_activation), "/game_balloons/game_balloon_v_2.tscn", "start")
_on_pressure_block_deactivated()
func _on_keypad_game_finished() -> void:
$Keypad.visible = false
$Objects/spaceship/keypad.visible = false
$Hilfestellung/CanvasLayer/Panel/Label.text = "Gehen Sie durch die Tür ins Raumschiff"
$Hilfestellung/CanvasLayer.visible = true
show_door.emit()
func _on_battery_3_battery_collected() -> void:
$Player/helper.visible = true
#TODO implement if helper should replace battery 3 (since it's also a chatbot)
func _on_animation_player_animation_finished(anim_name: StringName) -> void:
if anim_name == "collect_helper_part1":
$Player/AnimationPlayer2.play("collect_helper_part2")
if anim_name == 'follow_rabbit':
$AnimationPlayer.play('rotate_label')
if anim_name == "ordering_finished":
generators.queue_free()
show_congratulations("Glückwunsch!
Die 3. Aufgabe ist geschafft.", "Risikostufen von KI")
$Objects/pressure_blocks/PressureBlock_A4.position = Vector3(-87.26, 3.787, 209.9)
func _on_helper_corner_dialogue_finished() -> void:
if not helper_collected:
$AnimationPlayer.play("collect_helper_part1")
$npcs/helpers/helper_corner/CollisionShape3D.disabled = true
helper_collected = true
$Objects/chip1/star.queue_free()
func _on_battery_box_fully_charged() -> void:
currently_charged_battery_boxes += 1
print('currently charged boxes: ', currently_charged_battery_boxes)
if currently_charged_battery_boxes == count_battery_boxes:
print('all boxes are full')
await get_tree().create_timer(1.5).timeout
$AnimationPlayer.play("ordering_finished")
$Objects/Chip0/Arrows_A4.visible = true
func _on_player_inventory_opened() -> void:
$Hilfestellung/CanvasLayer.visible = false
$HUD.visible = false
func _on_player_inventory_closed() -> void:
$Hilfestellung/CanvasLayer.visible = true
$HUD.visible = true
func _on_balloon_popped(balloon: Balloon) -> void:
$Player/helper/helper.play_small_celebration()
func _on_chatbot_closing_chatbot() -> void:
if current_task > 0:
$HUD.visible = true
$Hilfestellung/CanvasLayer.visible = true
reset_music_volume()
func take_screenshot():
print('taking screenshot')
var image = get_viewport().get_texture().get_image()
image.save_png("user://screenshot"+Time.get_datetime_string_from_system()+".png")
func _on_start_rabbit_body_entered(body: Node3D) -> void:
if not rabbit_activated:
$AnimationPlayer.play('follow_rabbit')
rabbit_activated = true
func quiet_down_music() -> void:
$AudioStreamPlayer.volume_db = -20.0
func reset_music_volume() -> void:
$AudioStreamPlayer.volume_db = -10.0
func toggle_music() -> void:
if not audio_playing:
audio_playing = true
$AudioStreamPlayer.play()
else:
$AudioStreamPlayer.stop()
audio_playing = false
func _on_audio_stream_player_finished() -> void:
$AudioStreamPlayer.play()
@@ -0,0 +1 @@
uid://d0lyomtjfroou
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,15 @@
[gd_resource type="Terrain3DMaterial" load_steps=2 format=3 uid="uid://dtdjnbbnpdyqg"]
[ext_resource type="Shader" uid="uid://01qauauvd8aa" path="res://addons/terrain_3d/extras/shaders/minimum.gdshader" id="1_yvehn"]
[resource]
_shader_parameters = {
&"color_high": Color(0.5019608, 0.4, 0.2, 1),
&"color_low": Color(0.055, 0.216, 0.11, 1),
&"flat_terrain_normals": false,
&"height_scale": 1.0,
&"height_split": 1.0
}
shader_override_enabled = true
shader_override = ExtResource("1_yvehn")
show_region_grid = true
Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c2crd1tqwu4i"
path="res://.godot/imported/Metal049A.png-af30c4a6a788f1059dad8d458b88d8e5.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Resources/Terrains/textures/Metal049A_1K-PNG/Metal049A.png"
dest_files=["res://.godot/imported/Metal049A.png-af30c4a6a788f1059dad8d458b88d8e5.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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
@@ -0,0 +1,58 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://k8b0a35qcriu"
valid=false
[deps]
source_file="res://Resources/Terrains/textures/Metal049A_1K-PNG/Metal049A_1K-PNG.blend"
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2
@@ -0,0 +1,41 @@
<?xml version="1.0"?>
<materialx version="1.39" fileprefix="./">
<open_pbr_surface type="surfaceshader" xpos="6.159420" ypos="-1.879310" name="Metal049A_1K_PNG_OpenPbrSurface">
<input type="color3" name="base_color" nodename="Metal049A_1K_PNG_Color" />
<input type="float" name="base_metalness" nodename="Metal049A_1K_PNG_Metalness" />
<input type="vector3" name="geometry_normal" nodename="NormalMap" />
<input type="float" name="specular_roughness" nodename="Metal049A_1K_PNG_Roughness" />
</open_pbr_surface>
<surfacematerial type="material" xpos="8.695652" ypos="0.000000" name="Metal049A_1K_PNG">
<input type="surfaceshader" name="surfaceshader" nodename="Metal049A_1K_PNG_OpenPbrSurface" />
<input type="displacementshader" name="displacementshader" nodename="displacement" />
</surfacematerial>
<tiledimage type="color3" xpos="3.623188" ypos="-3.103448" name="Metal049A_1K_PNG_Color">
<input type="filename" value="Metal049A_1K-PNG_Color.png" colorspace="srgb_texture" name="file" />
<input type="vector2" value="1.0, 1.0" name="uvtiling" />
</tiledimage>
<tiledimage type="float" xpos="3.623188" ypos="5.163793" name="Metal049A_1K_PNG_Displacement">
<input type="filename" value="Metal049A_1K-PNG_Displacement.png" name="file" />
<input type="vector2" value="1.0, 1.0" name="uvtiling" />
</tiledimage>
<displacement type="displacementshader" xpos="6.159420" ypos="1.879310" name="displacement">
<input type="float" name="displacement" nodename="Metal049A_1K_PNG_Displacement" />
<input type="float" value="1.0" name="scale" />
</displacement>
<tiledimage type="float" xpos="3.623188" ypos="-1.758621" name="Metal049A_1K_PNG_Metalness">
<input type="filename" value="Metal049A_1K-PNG_Metalness.png" name="file" />
<input type="vector2" value="1.0, 1.0" name="uvtiling" />
</tiledimage>
<tiledimage type="vector3" xpos="1.086957" ypos="0.879310" name="Metal049A_1K_PNG_NormalGL">
<input type="filename" value="Metal049A_1K-PNG_NormalGL.png" name="file" />
<input type="vector2" value="1.0, 1.0" name="uvtiling" />
</tiledimage>
<normalmap type="vector3" xpos="3.623188" ypos="3.586207" name="NormalMap">
<input type="vector3" name="in" nodename="Metal049A_1K_PNG_NormalGL" />
<input type="float" value="1.0" name="scale" />
</normalmap>
<tiledimage type="float" xpos="3.623188" ypos="-0.413793" name="Metal049A_1K_PNG_Roughness">
<input type="filename" value="Metal049A_1K-PNG_Roughness.png" name="file" />
<input type="vector2" value="1.0, 1.0" name="uvtiling" />
</tiledimage>
</materialx>
@@ -0,0 +1,19 @@
[gd_resource type="StandardMaterial3D" load_steps=6 format=3 uid="acg_bsi79hm4"]
[ext_resource type="Texture2D" uid="uid://acg_0b6m4z8d" id="Color" path="./Metal049A_1K-PNG_Color.png"]
[ext_resource type="Texture2D" uid="uid://acg_d70su2z9" id="Metalness" path="./Metal049A_1K-PNG_Metalness.png"]
[ext_resource type="Texture2D" uid="uid://acg_q1sedajb" id="Displacement" path="./Metal049A_1K-PNG_Displacement.png"]
[ext_resource type="Texture2D" uid="uid://acg_w7dtvmnb" id="Roughness" path="./Metal049A_1K-PNG_Roughness.png"]
[ext_resource type="Texture2D" uid="uid://acg_70ebfpqw" id="NormalGL" path="./Metal049A_1K-PNG_NormalGL.png"]
[resource]
albedo_texture = ExtResource("Color")
metallic_texture = ExtResource("Metalness")
metallic = 1.0
metallic_texture_channel = 4
roughness_texture = ExtResource("Roughness")
roughness_texture_channel = 4
normal_texture = ExtResource("NormalGL")
normal_enabled = true
heightmap_texture = ExtResource("Displacement")
heightmap_scale = 1.0
heightmap_enabled = true
Binary file not shown.

After

Width:  |  Height:  |  Size: 523 KiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://ymsbb8ebr4be"
path.s3tc="res://.godot/imported/Metal049A_1K-PNG_Color.png-b49d04f407d2e9f51385bd00b6d2b523.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Resources/Terrains/textures/Metal049A_1K-PNG/Metal049A_1K-PNG_Color.png"
dest_files=["res://.godot/imported/Metal049A_1K-PNG_Color.png-b49d04f407d2e9f51385bd00b6d2b523.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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.

After

Width:  |  Height:  |  Size: 660 KiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://eeqc0v5aml83"
path.s3tc="res://.godot/imported/Metal049A_1K-PNG_Displacement.png-edeb5a8909a4a38b237ba41f02a3e746.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Resources/Terrains/textures/Metal049A_1K-PNG/Metal049A_1K-PNG_Displacement.png"
dest_files=["res://.godot/imported/Metal049A_1K-PNG_Displacement.png-edeb5a8909a4a38b237ba41f02a3e746.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=7
roughness/src_normal="res://Resources/Terrains/textures/Metal049A_1K-PNG/Metal049A_1K-PNG_NormalGL.png"
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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.

After

Width:  |  Height:  |  Size: 4.2 KiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cashf8o1kyiyl"
path.s3tc="res://.godot/imported/Metal049A_1K-PNG_Metalness.png-977c78b622afff4ae8f6c1ae7fd71d24.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Resources/Terrains/textures/Metal049A_1K-PNG/Metal049A_1K-PNG_Metalness.png"
dest_files=["res://.godot/imported/Metal049A_1K-PNG_Metalness.png-977c78b622afff4ae8f6c1ae7fd71d24.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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.

After

Width:  |  Height:  |  Size: 1.7 MiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://3d7y5qhidukr"
path="res://.godot/imported/Metal049A_1K-PNG_NormalDX.png-6ce689dc3d10533969f3cac9567aac29.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Resources/Terrains/textures/Metal049A_1K-PNG/Metal049A_1K-PNG_NormalDX.png"
dest_files=["res://.godot/imported/Metal049A_1K-PNG_NormalDX.png-6ce689dc3d10533969f3cac9567aac29.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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.

After

Width:  |  Height:  |  Size: 1.7 MiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b7hpibl4jwxs1"
path.s3tc="res://.godot/imported/Metal049A_1K-PNG_NormalGL.png-9d579f937c7a21b488aebd999266e82a.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Resources/Terrains/textures/Metal049A_1K-PNG/Metal049A_1K-PNG_NormalGL.png"
dest_files=["res://.godot/imported/Metal049A_1K-PNG_NormalGL.png-9d579f937c7a21b488aebd999266e82a.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=1
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=1
roughness/src_normal="res://Resources/Terrains/textures/Metal049A_1K-PNG/Metal049A_1K-PNG_NormalGL.png"
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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.

After

Width:  |  Height:  |  Size: 318 KiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://c26ux424gd22x"
path.s3tc="res://.godot/imported/Metal049A_1K-PNG_Roughness.png-cf591183f3ff358a18aa539a0a51ac6a.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Resources/Terrains/textures/Metal049A_1K-PNG/Metal049A_1K-PNG_Roughness.png"
dest_files=["res://.godot/imported/Metal049A_1K-PNG_Roughness.png-cf591183f3ff358a18aa539a0a51ac6a.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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.

After

Width:  |  Height:  |  Size: 879 KiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://b451ixfesvaxq"
path.s3tc="res://.godot/imported/packed_albedo_height.png-9b200ee014c5e8138260b365d753e3fc.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Resources/Terrains/textures/Metal049A_1K-PNG/packed_albedo_height.png"
dest_files=["res://.godot/imported/packed_albedo_height.png-9b200ee014c5e8138260b365d753e3fc.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=2
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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.

After

Width:  |  Height:  |  Size: 877 KiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://spq2bgvqimc7"
path.s3tc="res://.godot/imported/packed_normal_roughness.png-7ea0c3d6cd52642900c3cc2a3dd2382f.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Resources/Terrains/textures/Metal049A_1K-PNG/packed_normal_roughness.png"
dest_files=["res://.godot/imported/packed_normal_roughness.png-7ea0c3d6cd52642900c3cc2a3dd2382f.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=2
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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.

After

Width:  |  Height:  |  Size: 221 KiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://nfsuuh75rq3f"
path="res://.godot/imported/Plastic013A.png-62daefd537b68b47f3b9a1bc7b8c8649.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Resources/Terrains/textures/Plastic013A_1K-PNG/Plastic013A.png"
dest_files=["res://.godot/imported/Plastic013A.png-62daefd537b68b47f3b9a1bc7b8c8649.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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
@@ -0,0 +1,58 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://sme4m6ddgaub"
valid=false
[deps]
source_file="res://Resources/Terrains/textures/Plastic013A_1K-PNG/Plastic013A_1K-PNG.blend"
[params]
nodes/root_type=""
nodes/root_name=""
nodes/root_script=null
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_name_suffixes=true
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
materials/extract=0
materials/extract_format=0
materials/extract_path=""
_subresources={}
blender/nodes/visible=0
blender/nodes/active_collection_only=false
blender/nodes/punctual_lights=true
blender/nodes/cameras=true
blender/nodes/custom_properties=true
blender/nodes/modifiers=1
blender/meshes/colors=false
blender/meshes/uvs=true
blender/meshes/normals=true
blender/meshes/export_geometry_nodes_instances=false
blender/meshes/tangents=true
blender/meshes/skins=2
blender/meshes/export_bones_deforming_mesh_only=false
blender/materials/unpack_enabled=true
blender/materials/export_materials=1
blender/animation/limit_playback=true
blender/animation/always_sample=true
blender/animation/group_tracks=true
gltf/naming_version=2
@@ -0,0 +1,36 @@
<?xml version="1.0"?>
<materialx version="1.39" fileprefix="./">
<open_pbr_surface name="Plastic013A_1K_PNG_OpenPbrSurface" xpos="6.159420" type="surfaceshader" ypos="-1.879310">
<input name="base_color" nodename="Plastic013A_1K_PNG_Color" type="color3" />
<input name="geometry_normal" nodename="NormalMap" type="vector3" />
<input name="specular_roughness" nodename="Plastic013A_1K_PNG_Roughness" type="float" />
</open_pbr_surface>
<surfacematerial name="Plastic013A_1K_PNG" xpos="8.695652" type="material" ypos="0.000000">
<input name="surfaceshader" nodename="Plastic013A_1K_PNG_OpenPbrSurface" type="surfaceshader" />
<input name="displacementshader" nodename="displacement" type="displacementshader" />
</surfacematerial>
<tiledimage name="Plastic013A_1K_PNG_Color" xpos="3.623188" type="color3" ypos="-3.103448">
<input name="file" colorspace="srgb_texture" type="filename" value="Plastic013A_1K-PNG_Color.png" />
<input name="uvtiling" type="vector2" value="1.0, 1.0" />
</tiledimage>
<tiledimage name="Plastic013A_1K_PNG_Displacement" xpos="3.623188" type="float" ypos="5.163793">
<input name="file" type="filename" value="Plastic013A_1K-PNG_Displacement.png" />
<input name="uvtiling" type="vector2" value="1.0, 1.0" />
</tiledimage>
<displacement name="displacement" xpos="6.159420" type="displacementshader" ypos="1.879310">
<input name="displacement" nodename="Plastic013A_1K_PNG_Displacement" type="float" />
<input name="scale" type="float" value="1.0" />
</displacement>
<tiledimage name="Plastic013A_1K_PNG_NormalGL" xpos="1.086957" type="vector3" ypos="0.879310">
<input name="file" type="filename" value="Plastic013A_1K-PNG_NormalGL.png" />
<input name="uvtiling" type="vector2" value="1.0, 1.0" />
</tiledimage>
<normalmap name="NormalMap" xpos="3.623188" type="vector3" ypos="3.586207">
<input name="in" nodename="Plastic013A_1K_PNG_NormalGL" type="vector3" />
<input name="scale" type="float" value="1.0" />
</normalmap>
<tiledimage name="Plastic013A_1K_PNG_Roughness" xpos="3.623188" type="float" ypos="-0.413793">
<input name="file" type="filename" value="Plastic013A_1K-PNG_Roughness.png" />
<input name="uvtiling" type="vector2" value="1.0, 1.0" />
</tiledimage>
</materialx>
@@ -0,0 +1,15 @@
[gd_resource type="StandardMaterial3D" load_steps=5 format=3 uid="acg_duvs16ey"]
[ext_resource type="Texture2D" uid="uid://acg_dn0thus9" id="Color" path="./Plastic013A_1K-PNG_Color.png"]
[ext_resource type="Texture2D" uid="uid://acg_unpc623f" id="Displacement" path="./Plastic013A_1K-PNG_Displacement.png"]
[ext_resource type="Texture2D" uid="uid://acg_tm8a3y1l" id="Roughness" path="./Plastic013A_1K-PNG_Roughness.png"]
[ext_resource type="Texture2D" uid="uid://acg_0n9f2kmz" id="NormalGL" path="./Plastic013A_1K-PNG_NormalGL.png"]
[resource]
albedo_texture = ExtResource("Color")
roughness_texture = ExtResource("Roughness")
roughness_texture_channel = 4
normal_texture = ExtResource("NormalGL")
normal_enabled = true
heightmap_texture = ExtResource("Displacement")
heightmap_scale = 1.0
heightmap_enabled = true
Binary file not shown.

After

Width:  |  Height:  |  Size: 543 KiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://cj812bnkpphrn"
path.s3tc="res://.godot/imported/Plastic013A_1K-PNG_Color.png-14d6f487d2ccecae33d0ee54b94ed48c.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Resources/Terrains/textures/Plastic013A_1K-PNG/Plastic013A_1K-PNG_Color.png"
dest_files=["res://.godot/imported/Plastic013A_1K-PNG_Color.png-14d6f487d2ccecae33d0ee54b94ed48c.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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.

After

Width:  |  Height:  |  Size: 1.9 MiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d3tab2l5tqi7i"
path.s3tc="res://.godot/imported/Plastic013A_1K-PNG_Displacement.png-2c9d27de05b243240097f282b6d32a6f.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Resources/Terrains/textures/Plastic013A_1K-PNG/Plastic013A_1K-PNG_Displacement.png"
dest_files=["res://.godot/imported/Plastic013A_1K-PNG_Displacement.png-2c9d27de05b243240097f282b6d32a6f.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=7
roughness/src_normal="res://Resources/Terrains/textures/Plastic013A_1K-PNG/Plastic013A_1K-PNG_NormalGL.png"
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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.

After

Width:  |  Height:  |  Size: 5.3 MiB

@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://6ks77scpmv0t"
path="res://.godot/imported/Plastic013A_1K-PNG_NormalDX.png-b1bbfd75b874421b15c67667b89115be.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://Resources/Terrains/textures/Plastic013A_1K-PNG/Plastic013A_1K-PNG_NormalDX.png"
dest_files=["res://.godot/imported/Plastic013A_1K-PNG_NormalDX.png-b1bbfd75b874421b15c67667b89115be.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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.

After

Width:  |  Height:  |  Size: 5.3 MiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://1olubinyiafc"
path.s3tc="res://.godot/imported/Plastic013A_1K-PNG_NormalGL.png-cc73060ee8ee6e71aa49c6967a15fb99.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Resources/Terrains/textures/Plastic013A_1K-PNG/Plastic013A_1K-PNG_NormalGL.png"
dest_files=["res://.godot/imported/Plastic013A_1K-PNG_NormalGL.png-cc73060ee8ee6e71aa49c6967a15fb99.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=1
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=1
roughness/src_normal="res://Resources/Terrains/textures/Plastic013A_1K-PNG/Plastic013A_1K-PNG_NormalGL.png"
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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.

After

Width:  |  Height:  |  Size: 591 KiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://dvaxasa3r15oj"
path.s3tc="res://.godot/imported/Plastic013A_1K-PNG_Roughness.png-1c4442489bb773f8b1af0709f14c4d89.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Resources/Terrains/textures/Plastic013A_1K-PNG/Plastic013A_1K-PNG_Roughness.png"
dest_files=["res://.godot/imported/Plastic013A_1K-PNG_Roughness.png-1c4442489bb773f8b1af0709f14c4d89.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
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/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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.

After

Width:  |  Height:  |  Size: 1.8 MiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://doplg6oeefgil"
path.s3tc="res://.godot/imported/packed_albedo_height.png-7955e52c9478f0e101b9cc32d2e9b413.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Resources/Terrains/textures/Plastic013A_1K-PNG/packed_albedo_height.png"
dest_files=["res://.godot/imported/packed_albedo_height.png-7955e52c9478f0e101b9cc32d2e9b413.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=2
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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.

After

Width:  |  Height:  |  Size: 2.4 MiB

@@ -0,0 +1,41 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://boexwv4y50kii"
path.s3tc="res://.godot/imported/packed_normal_roughness.png-42be8fdd457e8732b7fc7133544465f7.s3tc.ctex"
metadata={
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://Resources/Terrains/textures/Plastic013A_1K-PNG/packed_normal_roughness.png"
dest_files=["res://.godot/imported/packed_normal_roughness.png-42be8fdd457e8732b7fc7133544465f7.s3tc.ctex"]
[params]
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=2
compress/channel_pack=0
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
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
View File
View File
+42
View File
@@ -0,0 +1,42 @@
[gd_resource type="ArrayMesh" load_steps=3 format=4 uid="uid://dka5ewv6regyf"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jkj82"]
resource_name = "pink_em"
cull_mode = 2
albedo_color = Color(0, 0.8235294, 0.8156863, 1)
roughness = 0.5
emission_enabled = true
emission = Color(0, 0.5764706, 0.4862745, 1)
emission_energy_multiplier = 2.7091084
[sub_resource type="ArrayMesh" id="ArrayMesh_0h1bv"]
_surfaces = [{
"aabb": AABB(-1, -1, -1, 4, 2, 3.6964846),
"format": 34359742465,
"index_count": 60,
"index_data": PackedByteArray("AAABAAIAAwACAAEAAAAEAAEABAADAAEABQAAAAIABAAAAAUAAwAGAAIABQACAAYABAAHAAMABAAFAAcABwAIAAMABgAJAAUABQAKAAcABwAKAAgABQAJAAoAAwAIAAsAAwALAAYACgALAAgABgALAAkACgAJAAsA"),
"name": "pink_em",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 12,
"vertex_data": PackedByteArray("AACAvwAAgL80kyxAAACAvwAAgD/PTDI/AACAvwAAgD80kyxAAACAPwAAgD8AAIC/AACAvwAAgL/PTDI/AACAPwAAgL8AAIA/AACAPwAAgD8AAIA/AACAPwAAgL8AAIC/AABAQAAAgD/PTDI/AABAQAAAgL80kyxAAABAQAAAgL/PTDI/AABAQAAAgD80kyxA")
}]
blend_shape_mode = 0
[resource]
resource_name = "assets_Cube_046"
_surfaces = [{
"aabb": AABB(-1, -1, -1, 4, 2, 3.6964846),
"attribute_data": PackedByteArray("AADAPgAAgD8AACA/AABAPwAAID8AAIA/AADAPgAAQD8AAMA+AABAPwAAID8AAAA/AAAgPwAAQD8AAMA+AAAAPwAAID8AAIA+AADAPgAAgD4AAMA+AACAPgAAID8AAIA+AADAPgAAgD4AACA/AAAAAAAAID8AAIA+AADAPgAAAAAAAAA+AAAAPwAAwD4AAIA+AADAPgAAAD8AAAA+AACAPgAAwD4AAAA/AADAPgAAgD4AACA/AAAAPwAAYD8AAIA+AABgPwAAAD8AACA/AACAPgAAID8AAIA+AAAgPwAAAD8AAMA+AAAAPwAAID8AAIA+AAAgPwAAAD8AAMA+AACAPgAAwD4AAAA/AAAgPwAAAD8AACA/AAAAPwAAwD4AAAA/"),
"format": 34359742487,
"index_count": 60,
"index_data": PackedByteArray("AAABAAIAAAADAAEABAAFAAYABAAHAAUACAAJAAoACAALAAkADAANAA4ADAAPAA0AEAARABIAEAATABEAEQAUABIAEQAVABQAFgAXABgAFgAZABcAFgAaABkAFgAbABoAHAAdAB4AHAAfAB0AIAAhACIAIAAjACEA"),
"material": SubResource("StandardMaterial3D_jkj82"),
"name": "pink_em",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 36,
"vertex_data": PackedByteArray("AACAvwAAgL80kyxAAACAvwAAgD/PTDI/AACAvwAAgD80kyxAAACAvwAAgL/PTDI/AACAvwAAgL/PTDI/AACAPwAAgD8AAIC/AACAvwAAgD/PTDI/AACAPwAAgL8AAIC/AACAPwAAgD8AAIA/AABAQAAAgL80kyxAAACAPwAAgL8AAIA/AABAQAAAgD80kyxAAACAPwAAgL8AAIA/AACAvwAAgD80kyxAAACAPwAAgD8AAIA/AACAvwAAgL80kyxAAACAvwAAgL/PTDI/AACAPwAAgL8AAIA/AACAPwAAgL8AAIC/AACAvwAAgL80kyxAAABAQAAAgL/PTDI/AABAQAAAgL80kyxAAACAPwAAgD8AAIC/AACAvwAAgD80kyxAAACAvwAAgD/PTDI/AACAPwAAgD8AAIA/AABAQAAAgD80kyxAAABAQAAAgD/PTDI/AABAQAAAgL/PTDI/AABAQAAAgD80kyxAAABAQAAAgD/PTDI/AABAQAAAgL80kyxAAACAPwAAgL8AAIC/AABAQAAAgD/PTDI/AACAPwAAgD8AAIC/AABAQAAAgL/PTDI/AAD/f/9///8AAP9//3///wAA/3//f///AAD/f/9///8AAEDF/3///wAAQMX/f///AABAxf9///8AAEDF/3///0FF/3////8/QUX/f////z9BRf9/////P0FF/3////8/vbr/f/9///+9uv9//3///726/3//f///vbr/f/9/////fwAA//9e3f9/AAD//17d/38AAP//Xt3/fwAA//9e3f9/AAD///+//38AAP///7//f///vjr/v/9///++Ov+//3///746/7//f///vjr/v/9///////+//3///////7////9//3///////3//f///////f/9///////9//3//////QMX///+///9Axf///7///0DF////v///QMX///+/")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_0h1bv")
File diff suppressed because one or more lines are too long
@@ -0,0 +1,42 @@
[gd_resource type="ArrayMesh" load_steps=3 format=4 uid="uid://m3hcjcox5dkf"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0yxht"]
resource_name = "antenna"
cull_mode = 2
albedo_color = Color(0.7499889, 0.77488834, 0.81999606, 1)
metallic = 0.11764705
roughness = 0.4738562
[sub_resource type="ArrayMesh" id="ArrayMesh_6gtti"]
_surfaces = [{
"aabb": AABB(-0.047843218, -0.78447527, -0.037635345, 0.0956862, 1.5689504, 0.07527069),
"format": 34896613377,
"index_count": 564,
"index_data": PackedByteArray("EgAjAAEAQgABACMAEgAoACMAKABCACMAJAASAAEADAAoABIAJAABAEMAAQBEAEMAQgBEAAEABwAkAEMABwBDAEQAJQASACQAJQAMABIAJgAkAAcAJgAlACQAFgAmAAcARQAMACUARgAlACYARgBFACUAGQBGACYAGQAmABYAOgBFAEYARwBGABkARwA6AEYAFgAHACcAJwAHAEQAJwBEABQAFwAWACcANAAZABYANAAWABcASABHABkASAAZADQAFQAnABQAFwAnABUARABJABQAFQAUAEkARABKAEkARABCAEoAMQAVAEkASwAXABUASwAVADEAMQBJAAYASQBKAAYAAgAxAAYAAgAGAEoAGAAxAAIAGABLADEAMwAXAEsAMwA0ABcAHgBLABgAHgAzAEsADgA0ADMADgBIADQANQAzAB4ANQAOADMAMgAeABgANgA1AB4ANgAeADIAMgAYADAAMAAYAAIADQA2ADIAHAAyADAADQAyABwAMAACAC4ALgACAEoAHAAwABoAGgAwAC4ALgBKACkAGgAuAAUABQAuACkASgBMACkABQApAEwASgBCAEwATABCAAsAKgAFAEwAKgBMAAsAEwALAEIAEwAqAAsAKAATAEIALQAFACoALQAaAAUAKwAqABMAKwAtACoAGwATACgAGwArABMADAAbACgALwAaAC0ALwAcABoAHQAtACsAHQAvAC0ALAArABsALAAdACsAAwAbAAwAAwAsABsARQADAAwAPgAcAC8APgANABwATQAvAB0ATQA+AC8AQAAdACwAQABNAB0AHwAsAAMAHwBAACwADwADAEUADwAfAAMAOgAPAEUATgBAAB8ATwBNAEAATgBPAEAATwBQAE0AUAA+AE0AUQAfAA8AUQBOAB8AUgAPADoAUgBRAA8AUwBSADoAUwA6AEcAQQBRAFIAOQBSAFMAOQBBAFIAVABTAEcAVABHAEgAEAA5AFMAEABTAFQAOAA5ABAAQQAiAFEAIgBOAFEAIQAiAEEAVQBBADkAVQAhAEEAOABVADkAIQBWACIAVQBWACEAIgAKAE4AVgAKACIACgBPAE4AVwBVADgAVwA4ABAAVwBWAFUAVgAAAAoACgA/AE8AAAA/AAoAPwBQAE8AVgBYAAAAAABYAD8AVgBZAFgAWQBWAFcAWAARAD8APwARAFAAWAAJABEAWABZAAkAEQBaAFAAUABaAD4AWgANAD4ACQA9ABEAEQA9AFoACQBZAD0AWgBbAA0APQBbAFoAWwA2AA0AWQA8AD0APQA8AFsAWwBcADYAPABcAFsAXAA1ADYAWQA7ADwAXABdADUAXQAOADUAPAAgAFwAIABdAFwAOwAgADwAWQBeADsAOwBeACAAWQBXAF4AXQBfAA4AXwBIAA4AXwBUAEgAIAAIAF0ACABfAF0AXgAIACAANwBUAF8ACAA3AF8ANwAQAFQAVwAQADcABAA3AAgABABXADcAXgAEAAgAXgBXAAQA"),
"lods": [0.022081114, PackedByteArray("EgAjAAEAIwAUAAEAJAASAAEABwAkAAEABwABABQAJQASACQAJgAkAAcAJgAlACQAFgAmAAcAGQAlACYAGQAmABYAFgAHACcAJwAHABQAJQAMABIAFwAWACcAAwAMACUAGQADACUADAAoABIAEgAoACMADAAbACgAAwAbAAwAKAATACMAGwATACgAEwALACMAKQAjAAsAFAAjACkAEwAqAAsAGwArABMAKwAqABMALAArABsAAwAsABsAKwAtACoAKgAFAAsALQAFACoABQApAAsAHQAtACsALAAdACsALQAaAAUABQAuACkAGgAuAAUALwAaAC0AHQAvAC0AGgAwAC4ALgACACkAMAACAC4AAgAGACkAFAApAAYALwAcABoAHAAwABoAFQAUAAYAFQAnABQAFwAnABUAMQAVAAYAAgAxAAYAFwAVADEAGAAxAAIAMAAYAAIAGAAXADEAMgAYADAAHAAyADAAHgAXABgAMgAeABgAHgAzABcAMwA0ABcANAAWABcANQAzAB4ANgAeADIANgA1AB4ADQAyABwADQA2ADIANQAOADMADgA0ADMANAAZABYACAAOADUANgAIADUANwA0AA4ACAA3AA4AEAAZADQANwAQADQABAA3AAgAOAAQADcABAA4ADcAEAA5ABkAOAA5ABAAOQA6ABkAOgADABkABAAIACAAIAAIADYAOwA4AAQAOwAEACAAPAAgADYAOwAgADwAPAA2AA0AOwA8AD0APQA8AA0AOwAAADgACQA7AD0AAAA7AAkAPQANAD4APgANABwAPgAcAC8AHQA+AC8AEQA9AD4AEQA+AB0ACQA9ABEACQARAD8APwARAB0AAAAJAD8APwAdAEAAQAAdACwAAAA/AAoACgA/AEAAHwBAACwACgBAAB8AHwAsAAMADwAfAAMADwAKAB8AOgAPAAMAAAAKACIAIgAKAA8AQQAPADoAQQAiAA8AOQBBADoAIQAAACIAIQAiAEEAIQBBADkAOAAAACEAOAAhADkA"), 0.044029586, PackedByteArray("EgATAAEAEwALAAEABwASAAEAEwAFAAsABgABAAsABQAGAAsAFAABAAYABwABABQAFQAUAAYAFQAHABQAAgAVAAYABQACAAYAFgAHABUAFwAVAAIAFwAWABUAGAAXAAIAGAACAAUAGQAWABcAFgAMAAcAGQAMABYADAASAAcAGgAYAAUAGgAFABMAGwATABIAGwAaABMADAAbABIAHAAYABoAAwAbAAwAGQADAAwAHQAaABsAHQAcABoAAwAdABsAHAAeABgAHgAXABgAHgAZABcADQAeABwAHQANABwACAAZAB4ADQAIAB4AHwAdAAMADwADABkADwAfAAMACAAQABkAEAAPABkACgAdAB8ADwAKAB8AEQANAB0ACgARAB0AIAAIAA0AEQAgAA0ABAAQAAgABAAIACAACQAgABEACQAEACAACQARAAoABAAhABAACQAAAAQABAAAACEAAAAJAAoAIQAiABAAIQAAACIAEAAiAA8AAAAKACIAIgAKAA8A"), 0.09930834, PackedByteArray("BQALAAEABgABAAsABQAGAAsABwABAAYADAAFAAEADAABAAcAAwAFAAwABwADAAwABQACAAYAAgAHAAYADQACAAUAAwANAAUADgAHAAIADQAOAAIADwADAAcAEAAHAA4AEAAPAAcADQAIAA4ACAAQAA4AEQANAAMAEQAIAA0ADwAKAAMACgARAAMAEAAKAA8ACQAIABEACQARAAoABAAQAAgACQAEAAgABAAAABAACQAAAAQAAAAKABAAAAAJAAoA"), 0.20832618, PackedByteArray("BQAGAAEABwABAAYABQACAAYAAgAHAAYAAwAFAAEAAwABAAcABQAIAAIACAAHAAIACQAFAAMACQAIAAUACgADAAcACgAJAAMACAAKAAcAAAAJAAoACQAAAAgAAAAKAAgA"), 0.3821529, PackedByteArray("AwABAAEAAwACAAEAAgAEAAEABAADAAEAAAACAAMAAAAEAAIAAAADAAQA"), 0.51358193, PackedByteArray("AAABAAEAAAACAAEAAgAAAAEAAAAAAAIA")],
"name": "antenna",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 96,
"vertex_data": PackedByteArray("U3UAAAAAAACXiP//AAAAAFN1bNv//wAAo21IkgAAAABTdQAA//8AAIbMbNv/vwAAPlb//9juAAAgHmzb/z8AALBkkiT//wAAhswAAP8/AACwZJIkAAAAAEft////fwAATpvatgAAAAD747Zt/78AAHBatm3Y7gAAcFq2bSYRAAB9DZIk/78AAOO7kiT/PwAAU3Vs2wAAAACGzGzb/z8AAOYj////fwAAIB5s2/+/AACeNtq2/38AABtE2rb/vwAATpvatv//AADyCEiS/38AAIHy2rb/vwAAps3atiYRAADVxEiS/78AANXESJL/PwAAo21Ikv//AADIjLZtAAAAAAiXkiTY7gAAIB4AAP8/AABYMpIkJhEAAO+6//8mEQAA+0Js2yYRAAD2aNq2JhEAABtE2rb/PwAAohBs2/9/AACrp2zbJhEAAO+6///Y7gAAA9ps2/9/AACB8tq2/z8AAPufSJImEQAA///atv9/AACrp2zb2O4AAFPSSJL/fwAAps3attjuAAD7Qmzb2O4AAPufSJLY7gAASjtIktjuAABwFkiS/78AAMiMtm3//wAAIL+2bdjuAABYMpIk2O4AACAeAAD/vwAAAACSJP9/AACVNbZt/z8AAIbMAAD/vwAA47uSJP+/AABgyZIk/38AAHnxtm3/fwAACJeSJCYRAAAgv7ZtJhEAAH0NkiT/PwAAyd////8/AAA+Vv//JhEAAGQx////PwAASjtIkiYRAABwFkiS/z8AABgotm3/fwAAlTW2bf+/AABkMf///78AAJeI/////wAA9mjattjuAADJ3////78AAPvjtm3/PwAAgoUkSQAAAADbtyRJJhEAALXcJEn/PwAAKlMkSSYRAABPLiRJ/z8AANIgJEn/fwAATy4kSf+/AACiEAAA/38AAPtCAAAmEQAA+0IAANjuAACrpwAAJhEAAAPaAAD/fwAAM+okSf9/AAC13CRJ/78AANu3JEnY7gAAgoUkSf//AACrpwAA2O4AACpTJEnY7gAA")
}]
blend_shape_mode = 0
[resource]
resource_name = "assets_Cylinder_028"
_surfaces = [{
"aabb": AABB(-0.047843218, -0.78447527, -0.037635345, 0.0956862, 1.5689504, 0.07527069),
"attribute_data": PackedByteArray("AAD/fwAAAAD//wAA/39JEv///38AANs2/3//f///2zaqqkkSqmoAAFTV/3///7Zt/3+2bQAAtm2qKkkS/78AAP//kiSqqiRJVNW2bapqJElVVbZtVRUkSQAAkiRHITT1/z+OgnB9/7809Ueh/7+Ogv+/b/3//0kSVNVJEqnqkiSqqpIkVNXbNv//JEn/f5IkqqrbNlSVtm3/f9s2VVWSJP8/2zaqKv9/VVVJEv8/AAD/P5IkAABJEgAAJElVFbZtjwL/v8qKR6Gp6gAAqepJEqnq2zZU1ZIk/79JElSVAAD/v5IkqeokSanqtm3/v9s2/7+2bf+/JEmqqv9/qqq2bVSVJElUlds2VJWSJKpqtm1VVf9/VJVJEqpqSRL/P0kS/38kSapq2zZVVds2/z+2baoqtm2qKiRJVRWSJKoqkiRVFUkSt17KirdeNPU09bfeyoq33lTVAACqqgAA//9tW6nqbVtU1SRJ/38AAFVVAACqapIkqioAAFUVAACqKts2VRXbNlVVJEn/PyRJVRVtWwAAbVuqKm1b/z9tW1VVbVtVFf9//z//f6pq/3+qam1bVJX/f/9/bVtUlW1b/7//f6qqbVv/v21bqer/f1TVbVs0dUehygpHoUchyoo0dbfe/z9v/coKt95HocqKt97Kim/9/7+Ogv+/R6E09bfeNPU="),
"format": 34896613399,
"index_count": 564,
"index_data": PackedByteArray("HQAyAAIAHQAzADIAMwBVADIAEAAzAB0AMwAeAFUAEAAfADMAHwAeADMABwAfABAAHgAPAFUABwA0AB8AIgA0AAcAHwA1AB4ANAA1AB8AHgA2AA8ANQA2AB4ANgBWAA8AIgA5ADQAVwA5ACIANAAhADUAOQAhADQANQA4ADYAIQA4ADUANgAIAFYAOAAIADYACAA3AFYAVwBYADkACwBYAFcAOQBZACEAWABZADkAIQA7ADgAWQA7ACEAOAAgAAgAOwAgADgACABFADcAIABFAAgARQBaADcARQADAFoAAwAJAFoAIABCAEUAQgADAEUAOwAkACAAJABCACAAPQAkADsAWQA9ADsAAwBGAAkARgBbAAkAQgAjAAMAIwBGAAMAJABBAEIAQQAjAEIAPQARACQAEQBBACQARgAqAFsAKgArAFsAIwBcAEYAXAAqAEYAQQAmACMAJgBcACMAEQBAAEEAQAAmAEEAKgBHACsARwBdACsAXAAnACoAJwBHACoAJgBJAFwASQAnAFwAQABIACYASABJACYARwAOAF0ADgBeAF0AJwAsAEcALAAOAEcASQBKACcASgAsACcASAATAEkAEwBKAEkADgBQAF4AUAABAF4AUAAtAAEATwBQAA4ALABPAA4ATgAtAFAATwBOAFAATgAWAC0AKABPACwASgAoACwAXwBOAE8AKABfAE8AYAAWAE4AXwBgAE4AYAAFABYAYQAoAEoAEwBhAEoAYgBfACgAYQBiACgATQBgAF8AYgBNAF8AFQAFAGAATQAVAGAAFQAuAAUAYwAuABUAYwBkAC4AZQAVAE0AZQBjABUAZgBNAGIAZgBlAE0AZwBmAGIAZwBiAGEALwBkAGMALwANAGQAaAANAC8AaAAAAA0AKQBoAC8ATAAvAGMAKQAvAEwATABjAGUAaQApAEwASwBMAGUAaQBMAEsASwBlAGYARABpAEsAFABLAGYARABLABQAFABmAGcAagBEABQAagAUAEMAQwAUAGcABgBqAEMAQwBnAGsAawBnAGEAawBhABMABgBDAAwADABDAGsAbAAGAAwAbQBrABMADABrAG0AbQATAEgAbAAMACUAJQAMAG0APgBsACUAbgBtAEgAJQBtAG4AbgBIAEAAPgAlAD8APwAlAG4AbwA+AD8AcABuAEAAPwBuAHAAcABAABEAbwA/ADwAPAA/AHAACgBvADwAcQBwABEAPABwAHEAcQARAD0ACgA8ABIAEgA8AHEAcgAKABIAcwBxAD0AEgBxAHMAcwA9AFkAWABzAFkAOgASAHMAOgBzAFgAcgASADoACwA6AFgABAByADoABAA6AAsAdAAYAFEAdAB1ABgAGAB1AHYAdwB0ABkAeAB0AHcAdQB0AHgAeAB3AFIAdQB4AHkAeQB4ABcAdQB5ADAAegB7ABsAegB8AHsAewB8ABoAfQB6ADEAfgB6AH0AfAB6AH4AfgB9AFQAfAB+AH8AfwB+ABwAfAB/AFMA"),
"lods": [0.022081114, PackedByteArray("HQAyAAIAHQAzADIAEAAzAB0AMwAeADIAEAAfADMAHwAeADMABwAfABAAHgAPADIABwA0AB8AIgA0AAcAHwA1AB4ANAA1AB8AHgA2AA8ANQA2AB4ANgAIAA8ACAA3AA8ANQA4ADYAOAAIADYANAAhADUAIQA4ADUAIgA5ADQAOQAhADQACwA5ACIACwA6ADkAOgAhADkABAA6AAsABAAKADoAOgASACEACgASADoAIQA7ADgACgA8ABIAEgA9ACEAIQA9ADsAEgA8AD0ACgA+ADwAOwAgADgAOAAgAAgAPQAkADsAOwAkACAAPAARAD0APQARACQAPgA/ADwAPAA/ABEAPgAlAD8APgAGACUAPwBAABEAPwAlAEAAEQBBACQAEQBAAEEAJABBAEIAJABCACAABgAMACUAJQAMAEAABgBDAAwABgBEAEMAIABCAEUAIABFAAgACABFADcARQADADcAQgADAEUAAwAJADcAQgAjAAMAQQAjAEIAAwBGAAkAIwBGAAMARgAqAAkAKgArAAkAIwAnAEYAJwAqAEYAQQAmACMAJgAnACMAQAAmAEEAKgBHACsAJwBHACoARwAOACsADgABACsAJwAsAEcALAAOAEcAQABIACYAQAAMAEgAJgBJACcASABJACYADAATAEgASAATAEkADABDABMASQBKACcAEwBKAEkASgAsACcAQwBKABMAQwAUAEoARAAUAEMASgAoACwAFAAoAEoARABLABQAFABLACgARAApAEsAKQBMAEsASwBMAE0ASwBNACgAKQAvAEwAKQAAAC8AAAANAC8ATAAvABUALwANABUATAAVAE0AFQANAC4AFQAuAAUATQAVAAUATQAFACgAKAAFAE4ABQAWAE4ATgAWAC0AKABOAE8AKABPACwALABPAA4ATwBOAFAATgAtAFAATwBQAA4AUAAtAAEADgBQAAEAUQAwABgAMABRAFIAUgBRABkAMABSABcAGwBTABoAUwAbAFQAVAAbADEAUwBUABwA"), 0.044029586, PackedByteArray("HQAeAAIAHgAPAAIAHwAeAB0AEAAfAB0ABwAfABAAHgAIAA8ACAAJAA8AHwAgAB4AIAAIAB4ABwAhAB8AIQAgAB8AIgAhAAcACwAhACIACAADAAkABAAKAAsAIAAjAAgAIwADAAgAIQAkACAAJAAjACAACwASACEACgASAAsAIQARACQAEgARACEACgAlABIAEgAlABEACgAGACUAJAAmACMAEQAmACQAJQAMABEAEQAMACYABgAMACUAJgAnACMAIwAnAAMADAAoACYAJgAoACcABgAUAAwADAAUACgABgApABQAJwAqAAMAAwAqAAkAKgArAAkAJwAsACoAKAAsACcAKgAOACsALAAOACoADgABACsADgAtAAEAFgAtAA4ALAAWAA4AKAAWACwAKAAFABYAFQAFACgAFAAVACgAFQAuAAUAFQANAC4AFAAvABUALwANABUAKQAvABQAAAANAC8AKQAAAC8AFwAYABkAMAAYABcAHAAbADEAGgAbABwA"), 0.09930834, PackedByteArray("CAAPAAIAEAAIAAIACAAJAA8ABwAIABAACAADAAkABwARAAgAEQADAAgAEgARAAcACwASAAcACgASAAsABAAKAAsACgAMABIAEgAMABEACgAGAAwAEQATAAMAEQAMABMABgAUAAwADAAUABMABgAAABQAAAANABQAFAANABUAFQANAAUAFAAOABMAFAAVAA4AFQAFAA4AEwAOAAMADgAFABYAAwAOAAkAFgABAA4ADgABAAkAFwAYABkAGgAbABwA"), 0.20832618, PackedByteArray("CAAJAAIABwAIAAIACAADAAkACgAIAAcACwAKAAcABAAKAAsACgAMAAgACAAMAAMACgAAAAwAAAANAAwADAAOAAMADAANAA4AAwAOAAkADQAFAA4ADgABAAkABQABAA4A"), 0.3821529, PackedByteArray("BQABAAIABgAFAAIAAAAFAAYAAwAGAAIABAAGAAMABwADAAIABAADAAcA"), 0.51358193, PackedByteArray("AAABAAIAAwAAAAIABAAAAAMABAADAAIA")],
"material": SubResource("StandardMaterial3D_0yxht"),
"name": "antenna",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 128,
"vertex_data": PackedByteArray("U3UAAAAAq/2XiP//AACw/ZeI//8AAGP9U3Vs2///UYBTdQAAAABo/aNtSJIAAJH/U3UAAP///5yjbUiSAACR/4bMbNv/v4GqPlb//9ju4KOGzAAA/z8R2LBkkiQAALj/sGSSJP//RoCwZJIkAAC4/yAebNv/PyzVR+3///9/v8ROm9q2AACH//vjtm3/v8aq47uSJP8/eNVwWrZt2O4llX0NkiT/v82qcFq2bSYR2epOm9q2AACH/z5W///Y7pSjl4j//wAA/+JH7f///39Yx4bMAAD/P0AnU3UAAAAA/xxTdQAA////YlN1bNsAAK3/hsxs2/8/ftWmzdq2JhFD6oHy2rb/v+Wq1cRIkv8/jNXIjLZtAADI/06b2rb//3eA1cRIkv+/cqoIl5Ik2O4XlaNtSJL//22AG0Tatv+/baryCEiS/3//vyAeAAD/P27YIB5s2/+/06rmI////38rxZ422rb/f/+/U3Vs2wAArf/IjLZtAADI/1gykiQmEWzq5iP///9/2cYgHgAA/z8PKO+6//8mEdLrq6ds2yYR8er7n0iSJhEJ64Hy2rb/PxnVA9ps2/9//7/vuv//2O6Vo///2rb/f/+/IL+2bSYReuoIl5IkJhHn6lPSSJL/f/+/YMmSJP9//7958bZt/38AwIbMAAD/v6Wy47uSJP+/hqogv7Zt2O6FlfufSJLY7vWUps3attjuu5VYMpIk2O6SlSAeAAD/v/2yq6ds29juDZX7Qmzb2O6blaIQbNv/f/+/yIy2bf//NoBKO0iS2O6zlXAWSJL/v+CqAACSJP9//799DZIk/z8x1ZU1tm3/P3DV9mjatiYREusbRNq2/z+R1ftCbNsmEWPq77r//yYR/uDvuv//2O5No4bMAAD/vztNIB4AAP+/F03J3////z8J2Mnf////v56ygoUkSQAA2v/btyRJJhGK6vvjtm3/PznVl4j//////5xkMf///78Fs/Zo2rbY7uyUZDH///8/dtg+Vv//JhE87HAWSJL/Px7VSjtIkiYRS+qVNbZt/7+Pqhgotm3/fwDAKlMkSSYRyuqChSRJAADa/08uJEn/P2jV0iAkSf9/AsBPLiRJ/7+bqvtCAAAmETXsohAAAP9/JMX7QgAA2O7boypTJEnY7jeVq6cAANjumqOChSRJ//8kgNu3JEnY7naVA9oAAP9/xsS13CRJ/7+/qjPqJEn/fwLAq6cAACYR2eu13CRJ/z9D1cnf////P87YZDH///8/39c+Vv//JhFs4Mnf////v8Cyl4j//////5xkMf///7/qsvtCAAAmEYgfq6cAACYRCh8D2gAA/3+vOKIQAAD/fxw5+0IAANjub1yrpwAA2O6sXLRXUfivh7HXLaiOBxx8IPxveDAoAID5/yEBM3/+f/n/U4J6AfPA0q3Vbs0u/n/7/1yDn/wAgPv/pn6A/9K16Rr+fwMA7oLbAZJ/KwESfa/9Q4H+/TV/1P8AgAMAKdzFsqX/538kwhJhWxE2UBUAsX+XAC9/BID9/1iBfgDwf0QAZX/zAJ1/DAEDgAAAYX6gAdh+0AFrfv4BBYP1/JyAB//AgHz+LVCG7rF9if6qm6jIaIAs//p//f/7fwAAHYBw/7zhhLwXL1KRuaitCJ2AIADmf3kAy3+OAPmB/QAH0cM/mH/NAM+ALADif4gAOn+KASR/tgF7gj0BjlfcP7d+BAL1glQCln7IATt/+QCXgfj93z6p1kuC0QGofSj+DH4F/+iE5gRugSv+IYE0/teATv5tgNT+SH5e/wyAvv8zgHD/Wn/b/+Hj1XfUy/paoimcPgBAdKi3riMRwb9eKP5/BAC1f1oBtoGgABP/sH5mqcW+v4AL/32RGNCmiLfWYYDz/huAfv8LfR/+fX29/keAqv4AgAQACoEj/RKC2PsXgx77wVZX98NIYOTmLR+/04Ml+yZAHFH5dwkIJXzjBAhl7TXrfNsE730fBFJ3wyjzftoCKNCjbqzuCK/k94qbgL5FVg7/UH+h1+S/lBsbiCgI62PhHjxCnDxNnt4y6aPwJO1L")
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_6gtti")
File diff suppressed because one or more lines are too long
+40
View File
@@ -0,0 +1,40 @@
[gd_resource type="ArrayMesh" load_steps=3 format=3 uid="uid://dxs6dl0kt33hf"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_eac83"]
resource_name = "gold"
cull_mode = 2
albedo_color = Color(0.5599798, 0.46687463, 0.24808455, 1)
metallic = 0.8496732
roughness = 0.61764705
[sub_resource type="ArrayMesh" id="ArrayMesh_4me7l"]
_surfaces = [{
"aabb": AABB(-10.976849, 0, -1, 21.953697, 1e-05, 2),
"format": 34896613377,
"index_count": 6,
"index_data": PackedByteArray(0, 0, 1, 0, 2, 0, 0, 0, 3, 0, 1, 0),
"name": "gold",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 4,
"vertex_data": PackedByteArray(0, 0, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 255, 255, 0, 0, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
}]
blend_shape_mode = 0
[resource]
resource_name = "assets_Plane_012"
_surfaces = [{
"aabb": AABB(-10.976849, 0, -1, 21.953697, 1e-05, 2),
"attribute_data": PackedByteArray(0, 0, 255, 255, 255, 255, 0, 0, 255, 255, 255, 255, 0, 0, 0, 0),
"format": 34896613399,
"index_count": 6,
"index_data": PackedByteArray(0, 0, 1, 0, 2, 0, 0, 0, 3, 0, 1, 0),
"material": SubResource("StandardMaterial3D_eac83"),
"name": "gold",
"primitive": 3,
"uv_scale": Vector4(0, 0, 0, 0),
"vertex_count": 4,
"vertex_data": PackedByteArray(0, 0, 0, 0, 255, 255, 255, 191, 255, 255, 0, 0, 0, 0, 255, 191, 255, 255, 0, 0, 255, 255, 255, 191, 0, 0, 0, 0, 0, 0, 255, 191, 255, 255, 255, 127, 255, 255, 255, 127, 255, 255, 255, 127, 255, 255, 255, 127)
}]
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_4me7l")
File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More