Ball meshes have a visibility root

This commit is contained in:
Rob Kelly 2025-01-13 12:29:14 -07:00
parent dd15c88585
commit 35c795dbfe
6 changed files with 136 additions and 159 deletions

View File

@ -1,23 +1,27 @@
[gd_scene load_steps=9 format=3 uid="uid://bptiryfbnautm"]
[ext_resource type="PackedScene" uid="uid://dfttci386ohip" path="res://src/equipment/balls/physics_ball/physics_ball.tscn" id="1_pl6e6"]
[ext_resource type="Texture2D" uid="uid://daipuukf6e6bc" path="res://assets/textures/beach_ball/beach_ball.png" id="2_6dwmi"]
[ext_resource type="Script" path="res://src/equipment/balls/beach_ball/beach_ball.gd" id="2_ay78j"]
[ext_resource type="Texture2D" uid="uid://3oatrxh60ed7" path="res://assets/textures/beach_ball/beach_ball_normal_map.png" id="3_rdlj8"]
[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_867vn"]
friction = 0.7
bounce = 0.67
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_x6y4w"]
albedo_texture = ExtResource("2_6dwmi")
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_e5701"]
load_path = "res://.godot/imported/beach_ball.png-103709b22c99e920077c858fb92c2e27.ctex"
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_oyl4c"]
load_path = "res://.godot/imported/beach_ball_normal_map.png-06c8d20483d619e155834bb8abd74c2f.s3tc.ctex"
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_cybhj"]
albedo_texture = SubResource("CompressedTexture2D_e5701")
normal_enabled = true
normal_scale = 0.5
normal_texture = ExtResource("3_rdlj8")
normal_texture = SubResource("CompressedTexture2D_oyl4c")
texture_filter = 4
[sub_resource type="SphereMesh" id="SphereMesh_iqcc5"]
material = SubResource("StandardMaterial3D_x6y4w")
[sub_resource type="SphereMesh" id="SphereMesh_kstjc"]
material = SubResource("StandardMaterial3D_cybhj")
radial_segments = 6
rings = 6
@ -32,8 +36,11 @@ script = ExtResource("2_ay78j")
base_damage = 5.0
radius = 0.5
[node name="BallMesh" parent="." index="0"]
mesh = SubResource("SphereMesh_iqcc5")
[node name="BallMesh" parent="MeshRoot" index="0"]
visible = false
[node name="BeachBallMesh" type="MeshInstance3D" parent="MeshRoot" index="1"]
mesh = SubResource("SphereMesh_kstjc")
[node name="CollisionShape3D" parent="." index="1"]
shape = SubResource("SphereShape3D_cvsx2")

View File

@ -16,11 +16,11 @@ mass = 0.08
physics_material_override = SubResource("PhysicsMaterial_f03f4")
radius = 0.15
[node name="BrickMesh" parent="." index="0" instance=ExtResource("2_ubuxr")]
transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0)
[node name="BallMesh" parent="." index="1"]
[node name="BallMesh" parent="MeshRoot" index="0"]
visible = false
[node name="CollisionShape3D" parent="." index="2"]
[node name="BrickMesh" parent="MeshRoot" index="1" instance=ExtResource("2_ubuxr")]
transform = Transform3D(0.8, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0, 0)
[node name="CollisionShape3D" parent="." index="1"]
shape = SubResource("BoxShape3D_7v3re")

View File

@ -24,10 +24,10 @@ subpixel_positioning = 0
[node name="DebugBall" instance=ExtResource("1_gcsxs")]
script = ExtResource("2_edye5")
[node name="MeshInstance3D" type="MeshInstance3D" parent="BallMesh" index="0"]
[node name="MeshInstance3D" type="MeshInstance3D" parent="MeshRoot/BallMesh" index="0"]
mesh = SubResource("QuadMesh_lf5f4")
[node name="DebugInfo" type="Label3D" parent="BallMesh" index="1"]
[node name="DebugInfo" type="Label3D" parent="MeshRoot/BallMesh" index="1"]
unique_name_in_owner = true
pixel_size = 0.0005
offset = Vector2(0, -64)

View File

@ -182,7 +182,9 @@ angular_damp_mode = 1
script = ExtResource("1_iwh2u")
terrain_physics = ExtResource("3_3gnie")
[node name="BallMesh" type="MeshInstance3D" parent="."]
[node name="MeshRoot" type="Node3D" parent="."]
[node name="BallMesh" type="MeshInstance3D" parent="MeshRoot"]
mesh = SubResource("SphereMesh_y0d13")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."]

View File

@ -1,10 +1,17 @@
[gd_scene load_steps=13 format=3 uid="uid://dcqxlbsrubapk"]
[gd_scene load_steps=14 format=3 uid="uid://dcqxlbsrubapk"]
[ext_resource type="PackedScene" uid="uid://dfttci386ohip" path="res://src/equipment/balls/physics_ball/physics_ball.tscn" id="1_yh4fp"]
[ext_resource type="Texture2D" uid="uid://c47bkx508biqr" path="res://assets/sprites/particles/plasma.png" id="2_8fdyx"]
[ext_resource type="Script" path="res://src/equipment/balls/plasma_ball/plasma_ball.gd" id="2_16fhh"]
[ext_resource type="Material" uid="uid://f3qufrkoiv66" path="res://assets/materials/plasma_ball.tres" id="3_6gyuc"]
[sub_resource type="SphereMesh" id="SphereMesh_n65ut"]
material = ExtResource("3_6gyuc")
radius = 0.1
height = 0.2
radial_segments = 6
rings = 6
[sub_resource type="Curve" id="Curve_kabhn"]
max_value = 2.0
_data = [Vector2(0, 2), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
@ -55,11 +62,13 @@ radius = 0.1
script = ExtResource("2_16fhh")
magnetic = true
[node name="BallMesh" parent="." index="0"]
transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 0)
surface_material_override/0 = ExtResource("3_6gyuc")
[node name="BallMesh" parent="MeshRoot" index="0"]
visible = false
[node name="PlasmaFireEffect" type="GPUParticles3D" parent="BallMesh" index="0"]
[node name="PlasmaBallMesh" type="MeshInstance3D" parent="MeshRoot" index="1"]
mesh = SubResource("SphereMesh_n65ut")
[node name="PlasmaFireEffect" type="GPUParticles3D" parent="MeshRoot/PlasmaBallMesh" index="0"]
sorting_offset = -1.0
amount = 20
lifetime = 0.6

View File

@ -1,27 +1,31 @@
[gd_scene load_steps=37 format=4 uid="uid://deuytmxw2lc62"]
[ext_resource type="PackedScene" uid="uid://dfttci386ohip" path="res://src/equipment/balls/physics_ball/physics_ball.tscn" id="1_14gld"]
[ext_resource type="Texture2D" uid="uid://ckhiq6rfjv63u" path="res://assets/textures/gfolfball/gfolfball.png" id="2_a2gtg"]
[ext_resource type="Script" path="res://src/equipment/balls/power_ball/power_ball.gd" id="2_hy51e"]
[ext_resource type="Texture2D" uid="uid://btntjs7mbdigu" path="res://assets/textures/gfolfball/gfolfball_normal.png" id="3_60i75"]
[ext_resource type="PackedScene" uid="uid://dd2nxbfssd4hh" path="res://assets/models/balls/powerball/fireball.gltf" id="5_i8vmm"]
[ext_resource type="AudioStream" uid="uid://tqr7u7vb2r0f" path="res://assets/sound/sfx/ball/effects/fireball.wav" id="6_uwolu"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fcniu"]
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_bmjge"]
load_path = "res://.godot/imported/gfolfball.png-4fde775993c78b86828199273dc9e4be.s3tc.ctex"
[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_314t2"]
load_path = "res://.godot/imported/gfolfball_normal.png-d9cc0e700a9a63c2e2cea72beebc6133.s3tc.ctex"
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_ya45b"]
albedo_color = Color(2, 0.266, 0.266, 1)
albedo_texture = ExtResource("2_a2gtg")
albedo_texture = SubResource("CompressedTexture2D_bmjge")
albedo_texture_force_srgb = true
metallic = 1.0
roughness = 0.67
normal_enabled = true
normal_scale = 0.2
normal_texture = ExtResource("3_60i75")
normal_texture = SubResource("CompressedTexture2D_314t2")
clearcoat_roughness = 0.0
uv1_scale = Vector3(3, 1.5, 3)
texture_filter = 4
[sub_resource type="SphereMesh" id="SphereMesh_0b0i7"]
material = SubResource("StandardMaterial3D_fcniu")
[sub_resource type="SphereMesh" id="SphereMesh_v4hrl"]
material = SubResource("StandardMaterial3D_ya45b")
radius = 0.05
height = 0.1
radial_segments = 6
@ -45,6 +49,33 @@ vertex_color_use_as_albedo = true
albedo_color = Color(2, 1.98431, 1.6, 0.156863)
albedo_texture = SubResource("GradientTexture2D_ny4ye")
[sub_resource type="Animation" id="Animation_2co83"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("FireballScaleRoot:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(1, 1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("FireballScaleRoot:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
[sub_resource type="Animation" id="Animation_5t74j"]
resource_name = "flicker"
length = 2.0
@ -74,33 +105,6 @@ tracks/1/keys = {
"values": [Vector3(0, 0, 0), Vector3(0, 2.0944, 0)]
}
[sub_resource type="Animation" id="Animation_2co83"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("FireballScaleRoot:scale")
tracks/0/interp = 1
tracks/0/loop_wrap = true
tracks/0/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(1, 1, 1)]
}
tracks/1/type = "value"
tracks/1/imported = false
tracks/1/enabled = true
tracks/1/path = NodePath("FireballScaleRoot:rotation")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Vector3(0, 0, 0)]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_hmunj"]
_data = {
"RESET": SubResource("Animation_2co83"),
@ -234,6 +238,45 @@ _surfaces = [{
blend_shape_mode = 0
shadow_mesh = SubResource("ArrayMesh_r0r4b")
[sub_resource type="Animation" id="Animation_6c6mi"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ParticleEffects/PowerParticles:emitting")
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("ParticleEffects/SmokeParticles:emitting")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("SFX/PowerballSFX:playing")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="Animation" id="Animation_7yrvu"]
resource_name = "activate"
length = 4.8
@ -266,115 +309,28 @@ tracks/1/keys = {
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("BallMesh/FireballPivot:visible")
tracks/2/path = NodePath("ParticleEffects/SmokeParticles:emitting")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0.8, 4.8),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("BallMesh/FireballPivot/FireballScaleRoot/fireball/Fireball:surface_material_override/0:albedo_color")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0.8, 0.9, 4, 4.8),
"transitions": PackedFloat32Array(1, 1, 1.618, 1),
"update": 0,
"values": [Color(1, 0.993333, 0.8, 0), Color(2, 1.98431, 1.6, 0.156863), Color(2, 1.98431, 1.6, 0.156863), Color(1, 0.993333, 0.8, 0)]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("ParticleEffects/SmokeParticles:emitting")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0.9, 4.5),
"transitions": PackedFloat32Array(1, 1),
"update": 1,
"values": [true, false]
}
tracks/5/type = "value"
tracks/5/imported = false
tracks/5/enabled = true
tracks/5/path = NodePath("SFX/PowerballSFX:playing")
tracks/5/interp = 1
tracks/5/loop_wrap = true
tracks/5/keys = {
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("SFX/PowerballSFX:playing")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0.333333),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [true]
}
[sub_resource type="Animation" id="Animation_6c6mi"]
length = 0.001
tracks/0/type = "value"
tracks/0/imported = false
tracks/0/enabled = true
tracks/0/path = NodePath("ParticleEffects/PowerParticles:emitting")
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("BallMesh/FireballPivot:visible")
tracks/1/interp = 1
tracks/1/loop_wrap = true
tracks/1/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/2/type = "value"
tracks/2/imported = false
tracks/2/enabled = true
tracks/2/path = NodePath("BallMesh/FireballPivot/FireballScaleRoot/fireball/Fireball:surface_material_override/0:albedo_color")
tracks/2/interp = 1
tracks/2/loop_wrap = true
tracks/2/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 0,
"values": [Color(2, 1.98431, 1.6, 0.156863)]
}
tracks/3/type = "value"
tracks/3/imported = false
tracks/3/enabled = true
tracks/3/path = NodePath("ParticleEffects/SmokeParticles:emitting")
tracks/3/interp = 1
tracks/3/loop_wrap = true
tracks/3/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
tracks/4/type = "value"
tracks/4/imported = false
tracks/4/enabled = true
tracks/4/path = NodePath("SFX/PowerballSFX:playing")
tracks/4/interp = 1
tracks/4/loop_wrap = true
tracks/4/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [false]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_ospg0"]
_data = {
"RESET": SubResource("Animation_6c6mi"),
@ -386,23 +342,26 @@ freeze_mode = 1
script = ExtResource("2_hy51e")
once_per_shot_ability = true
[node name="BallMesh" parent="." index="0"]
mesh = SubResource("SphereMesh_0b0i7")
[node name="BallMesh" parent="MeshRoot" index="0"]
visible = false
[node name="FireballPivot" type="Node3D" parent="BallMesh" index="0"]
[node name="PowerballMesh" type="MeshInstance3D" parent="MeshRoot" index="1"]
mesh = SubResource("SphereMesh_v4hrl")
[node name="FireballPivot" type="Node3D" parent="MeshRoot/PowerballMesh" index="0"]
unique_name_in_owner = true
visible = false
[node name="FireballScaleRoot" type="Node3D" parent="BallMesh/FireballPivot" index="0"]
[node name="FireballScaleRoot" type="Node3D" parent="MeshRoot/PowerballMesh/FireballPivot" index="0"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.1, 0)
[node name="fireball" parent="BallMesh/FireballPivot/FireballScaleRoot" index="0" instance=ExtResource("5_i8vmm")]
[node name="fireball" parent="MeshRoot/PowerballMesh/FireballPivot/FireballScaleRoot" index="0" instance=ExtResource("5_i8vmm")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.17, 0)
[node name="Fireball" parent="BallMesh/FireballPivot/FireballScaleRoot/fireball" index="0"]
[node name="Fireball" parent="MeshRoot/PowerballMesh/FireballPivot/FireballScaleRoot/fireball" index="0"]
surface_material_override/0 = SubResource("StandardMaterial3D_aqmuo")
[node name="FireballAnimation" type="AnimationPlayer" parent="BallMesh/FireballPivot" index="1"]
[node name="FireballAnimation" type="AnimationPlayer" parent="MeshRoot/PowerballMesh/FireballPivot" index="1"]
libraries = {
"": SubResource("AnimationLibrary_hmunj")
}
@ -438,4 +397,4 @@ libraries = {
"": SubResource("AnimationLibrary_ospg0")
}
[editable path="BallMesh/FireballPivot/FireballScaleRoot/fireball"]
[editable path="MeshRoot/PowerballMesh/FireballPivot/FireballScaleRoot/fireball"]