- DolphinMeshBuilder.gd: ArrayMesh procédural, 14 sections elliptiques, nageoire dorsale, pectorales, queue horizontale (caudale), gradient dos #4a6d82 / ventre #d8e2ea - Animations: battement caudale (sin), lean virage, flap pectorales, bob corps — fréquence x2 en boost - Dolphin.tscn: remplace 6 capsules CSG par DolphinMesh + DolphinMeshBuilder - DolphinController: corrige double-déclaration speed, pilote animate() - CREDITS.md: mesh procédural CC0 original Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
121 lines
3.6 KiB
Plaintext
121 lines
3.6 KiB
Plaintext
[gd_scene load_steps=7 format=3 uid="uid://dolphin_main"]
|
|
|
|
[ext_resource type="Script" path="res://scripts/dolphin/DolphinController.gd" id="1_controller"]
|
|
[ext_resource type="Script" path="res://scripts/dolphin/HUD.gd" id="2_hud"]
|
|
[ext_resource type="Script" path="res://scripts/dolphin/EcholocationPulse.gd" id="3_echo"]
|
|
[ext_resource type="Script" path="res://scripts/dolphin/BubbleTrail.gd" id="4_bubble_trail"]
|
|
[ext_resource type="Script" path="res://scripts/dolphin/DolphinMeshBuilder.gd" id="5_builder"]
|
|
|
|
[sub_resource type="CapsuleShape3D" id="1_colshape"]
|
|
radius = 0.35
|
|
height = 1.8
|
|
|
|
[sub_resource type="StyleBoxFlat" id="12_panel_style"]
|
|
bg_color = Color(0.05, 0.05, 0.05, 0.7)
|
|
corner_radius_top_left = 10
|
|
corner_radius_top_right = 10
|
|
corner_radius_bottom_left = 10
|
|
corner_radius_bottom_right = 10
|
|
|
|
[node name="Dolphin" type="CharacterBody3D"]
|
|
script = ExtResource("1_controller")
|
|
|
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]
|
|
shape = SubResource("1_colshape")
|
|
|
|
[node name="DolphinBody" type="Node3D" parent="."]
|
|
|
|
[node name="DolphinMesh" type="MeshInstance3D" parent="DolphinBody"]
|
|
script = ExtResource("5_builder")
|
|
|
|
[node name="CameraPivot" type="Node3D" parent="."]
|
|
|
|
[node name="SpringArm" type="SpringArm3D" parent="CameraPivot"]
|
|
spring_length = 3.5
|
|
rotation = Vector3(0, 3.14159, 0)
|
|
|
|
[node name="Camera" type="Camera3D" parent="CameraPivot/SpringArm"]
|
|
|
|
[node name="BubbleEmitterPoint" type="Node3D" parent="."]
|
|
position = Vector3(0, 0, 1.2)
|
|
|
|
[node name="BubbleTrail" type="GPUParticles3D" parent="BubbleEmitterPoint"]
|
|
script = ExtResource("4_bubble_trail")
|
|
|
|
[node name="EcholocationPulse" type="Node3D" parent="."]
|
|
script = ExtResource("3_echo")
|
|
|
|
[node name="HUD" type="CanvasLayer" parent="."]
|
|
script = ExtResource("2_hud")
|
|
|
|
[node name="Panel" type="PanelContainer" parent="HUD"]
|
|
anchors_preset = 0
|
|
anchor_left = 0.0
|
|
anchor_top = 1.0
|
|
anchor_right = 0.0
|
|
anchor_bottom = 1.0
|
|
offset_left = 16.0
|
|
offset_top = -160.0
|
|
offset_right = 220.0
|
|
offset_bottom = -16.0
|
|
theme_override_styles/panel = SubResource("12_panel_style")
|
|
|
|
[node name="VBox" type="VBoxContainer" parent="HUD/Panel"]
|
|
layout_mode = 2
|
|
theme_override_constants/separation = 8
|
|
offset_left = 10.0
|
|
offset_top = 10.0
|
|
offset_right = -10.0
|
|
offset_bottom = -10.0
|
|
|
|
[node name="OxygenRow" type="HBoxContainer" parent="HUD/Panel/VBox"]
|
|
layout_mode = 2
|
|
|
|
[node name="OxygenLabel" type="Label" parent="HUD/Panel/VBox/OxygenRow"]
|
|
layout_mode = 2
|
|
text = "O2:"
|
|
custom_minimum_size = Vector2(36, 0)
|
|
|
|
[node name="OxygenBar" type="ProgressBar" parent="HUD/Panel/VBox/OxygenRow"]
|
|
unique_name_in_owner = true
|
|
layout_mode = 2
|
|
size_flags_horizontal = 3
|
|
custom_minimum_size = Vector2(130, 18)
|
|
max_value = 100.0
|
|
value = 100.0
|
|
show_percentage = false
|
|
|
|
[node name="HealthRow" type="HBoxContainer" parent="HUD/Panel/VBox"]
|
|
layout_mode = 2
|
|
|
|
[node name="HealthLabel" type="Label" parent="HUD/Panel/VBox/HealthRow"]
|
|
layout_mode = 2
|
|
text = "HP:"
|
|
custom_minimum_size = Vector2(36, 0)
|
|
|
|
[node name="HealthBar" type="ProgressBar" parent="HUD/Panel/VBox/HealthRow"]
|
|
unique_name_in_owner = true
|
|
layout_mode = 2
|
|
size_flags_horizontal = 3
|
|
custom_minimum_size = Vector2(130, 18)
|
|
max_value = 100.0
|
|
value = 100.0
|
|
show_percentage = false
|
|
|
|
[node name="HungerRow" type="HBoxContainer" parent="HUD/Panel/VBox"]
|
|
layout_mode = 2
|
|
|
|
[node name="HungerLabel" type="Label" parent="HUD/Panel/VBox/HungerRow"]
|
|
layout_mode = 2
|
|
text = "Food:"
|
|
custom_minimum_size = Vector2(36, 0)
|
|
|
|
[node name="HungerBar" type="ProgressBar" parent="HUD/Panel/VBox/HungerRow"]
|
|
unique_name_in_owner = true
|
|
layout_mode = 2
|
|
size_flags_horizontal = 3
|
|
custom_minimum_size = Vector2(130, 18)
|
|
max_value = 100.0
|
|
value = 100.0
|
|
show_percentage = false
|