Added kaleidoscope scene
This commit is contained in:
		
							parent
							
								
									496b205573
								
							
						
					
					
						commit
						32a517ec22
					
				
					 9 changed files with 310 additions and 83 deletions
				
			
		| 
						 | 
				
			
			@ -1,16 +0,0 @@
 | 
			
		|||
shader_type spatial;
 | 
			
		||||
render_mode unshaded;
 | 
			
		||||
 | 
			
		||||
instance uniform int id;
 | 
			
		||||
 | 
			
		||||
void vertex() {
 | 
			
		||||
	// Called for every vertex the material is visible on.
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void fragment() {
 | 
			
		||||
	ALBEDO = vec3(cos(TIME + float(id) * 0.01), sin(TIME + float(id) * 0.01), tan(TIME + float(id) * 0.01));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void light() {
 | 
			
		||||
	DIFFUSE_LIGHT = vec3(1.0, 1.0, 1.0);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										57
									
								
								assets/shaders/kaleidoscope.gdshader
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								assets/shaders/kaleidoscope.gdshader
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,57 @@
 | 
			
		|||
shader_type canvas_item;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
group_uniforms segments;
 | 
			
		||||
	uniform float segments: hint_range(2.0, 48.0, 1.0) = 6.0;
 | 
			
		||||
	uniform bool segmentReflect = true;
 | 
			
		||||
group_uniforms;
 | 
			
		||||
group_uniforms polar;
 | 
			
		||||
	uniform vec2 polarOffset = vec2(0.5, 0.5);
 | 
			
		||||
	uniform float polarAngle: hint_range(0.0, 360.0) = 0.0;
 | 
			
		||||
group_uniforms;
 | 
			
		||||
group_uniforms source;
 | 
			
		||||
	uniform vec2 sourceOffset = vec2(0.5, 0.5);
 | 
			
		||||
	uniform float sourceScale = 2.0;
 | 
			
		||||
	uniform float sourceAngle: hint_range(0.0, 360.0) = 0.0;
 | 
			
		||||
group_uniforms;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
vec2 simpleRotate(vec2 uv, float rotation) {
 | 
			
		||||
    return vec2(
 | 
			
		||||
        cos(rotation) * uv.x + sin(rotation) * uv.y,
 | 
			
		||||
        cos(rotation) * uv.y - sin(rotation) * uv.x
 | 
			
		||||
    );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
vec2 kaleid(vec2 uv, float addAngle, vec2 origin, float segCount, bool doReflect) {
 | 
			
		||||
	
 | 
			
		||||
	uv -= origin;
 | 
			
		||||
	float radius = sqrt(dot(uv, uv));
 | 
			
		||||
	float angle = atan(uv.y, uv.x) + addAngle;
 | 
			
		||||
	
 | 
			
		||||
	float segmentAngle = TAU / segCount;
 | 
			
		||||
	angle -= segmentAngle * floor(angle / segmentAngle);
 | 
			
		||||
	
 | 
			
		||||
	if (doReflect) {
 | 
			
		||||
		angle = min(angle, segmentAngle - angle);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	return vec2(cos(angle), sin(angle)) * radius;
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
void fragment() {
 | 
			
		||||
	
 | 
			
		||||
	vec2 newUV = kaleid(UV, radians(polarAngle), polarOffset, segments, segmentReflect);
 | 
			
		||||
	
 | 
			
		||||
	newUV = simpleRotate(newUV, radians(sourceAngle));
 | 
			
		||||
	newUV += sourceOffset;
 | 
			
		||||
	newUV *= sourceScale;
 | 
			
		||||
	
 | 
			
		||||
	vec4 finalColor = texture(TEXTURE, fract(newUV * sourceScale - sourceOffset));
 | 
			
		||||
	
 | 
			
		||||
	COLOR = finalColor;
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										154
									
								
								entities/kaleido_scope.tscn
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										154
									
								
								entities/kaleido_scope.tscn
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,154 @@
 | 
			
		|||
[gd_scene load_steps=9 format=3 uid="uid://b761uk7sjprrp"]
 | 
			
		||||
 | 
			
		||||
[ext_resource type="Shader" path="res://assets/shaders/kaleidoscope.gdshader" id="1_nwvg1"]
 | 
			
		||||
[ext_resource type="PackedScene" uid="uid://qehbjfkqs5pl" path="res://entities/ParticlesCool.tscn" id="1_yc1r8"]
 | 
			
		||||
 | 
			
		||||
[sub_resource type="GDScript" id="GDScript_mtsk5"]
 | 
			
		||||
script/source = "extends Control
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
func _on_timer_timeout() -> void:
 | 
			
		||||
	$AnimationPlayer.play(\"kaleidoskope_1\");
 | 
			
		||||
"
 | 
			
		||||
 | 
			
		||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_a6cuy"]
 | 
			
		||||
shader = ExtResource("1_nwvg1")
 | 
			
		||||
shader_parameter/segments = 6.0
 | 
			
		||||
shader_parameter/segmentReflect = true
 | 
			
		||||
shader_parameter/polarOffset = Vector2(0.5, 0.5)
 | 
			
		||||
shader_parameter/polarAngle = 0.0
 | 
			
		||||
shader_parameter/sourceOffset = Vector2(0.5, 0.5)
 | 
			
		||||
shader_parameter/sourceScale = 2.0
 | 
			
		||||
shader_parameter/sourceAngle = 0.0
 | 
			
		||||
 | 
			
		||||
[sub_resource type="ViewportTexture" id="ViewportTexture_1y4ry"]
 | 
			
		||||
viewport_path = NodePath("SubViewport")
 | 
			
		||||
 | 
			
		||||
[sub_resource type="Animation" id="Animation_olvxy"]
 | 
			
		||||
resource_name = "kaleidoskope_1"
 | 
			
		||||
length = 20.0
 | 
			
		||||
tracks/0/type = "value"
 | 
			
		||||
tracks/0/imported = false
 | 
			
		||||
tracks/0/enabled = true
 | 
			
		||||
tracks/0/path = NodePath("TextureRect:material:shader_parameter/segments")
 | 
			
		||||
tracks/0/interp = 1
 | 
			
		||||
tracks/0/loop_wrap = true
 | 
			
		||||
tracks/0/keys = {
 | 
			
		||||
"times": PackedFloat32Array(0.0333334, 1.06667, 2.1, 3.06667, 4.06667, 5.06667, 6.03333, 7.1, 8.13333, 9.1),
 | 
			
		||||
"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
 | 
			
		||||
"update": 1,
 | 
			
		||||
"values": [4.0, 6.0, 8.0, 10.0, 12.0, 8.0, 4.0, 6.0, 8.0, 6.0]
 | 
			
		||||
}
 | 
			
		||||
tracks/1/type = "value"
 | 
			
		||||
tracks/1/imported = false
 | 
			
		||||
tracks/1/enabled = true
 | 
			
		||||
tracks/1/path = NodePath("TextureRect:material:shader_parameter/sourceAngle")
 | 
			
		||||
tracks/1/interp = 1
 | 
			
		||||
tracks/1/loop_wrap = true
 | 
			
		||||
tracks/1/keys = {
 | 
			
		||||
"times": PackedFloat32Array(0, 1.03333),
 | 
			
		||||
"transitions": PackedFloat32Array(1, 1),
 | 
			
		||||
"update": 0,
 | 
			
		||||
"values": [0.0, 0.0]
 | 
			
		||||
}
 | 
			
		||||
tracks/2/type = "value"
 | 
			
		||||
tracks/2/imported = false
 | 
			
		||||
tracks/2/enabled = true
 | 
			
		||||
tracks/2/path = NodePath("TextureRect:material:shader_parameter/sourceOffset")
 | 
			
		||||
tracks/2/interp = 1
 | 
			
		||||
tracks/2/loop_wrap = true
 | 
			
		||||
tracks/2/keys = {
 | 
			
		||||
"times": PackedFloat32Array(0.0333333, 9.1, 11.5333, 15.0667),
 | 
			
		||||
"transitions": PackedFloat32Array(1, 1, 1, 1),
 | 
			
		||||
"update": 0,
 | 
			
		||||
"values": [Vector2(0.5, 0.5), Vector2(0.5, 0.5), Vector2(0.5, 0), Vector2(1, -1)]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[sub_resource type="Animation" id="Animation_1yxhh"]
 | 
			
		||||
length = 0.001
 | 
			
		||||
tracks/0/type = "value"
 | 
			
		||||
tracks/0/imported = false
 | 
			
		||||
tracks/0/enabled = true
 | 
			
		||||
tracks/0/path = NodePath("TextureRect:material:shader_parameter/segments")
 | 
			
		||||
tracks/0/interp = 1
 | 
			
		||||
tracks/0/loop_wrap = true
 | 
			
		||||
tracks/0/keys = {
 | 
			
		||||
"times": PackedFloat32Array(0),
 | 
			
		||||
"transitions": PackedFloat32Array(1),
 | 
			
		||||
"update": 0,
 | 
			
		||||
"values": [6.0]
 | 
			
		||||
}
 | 
			
		||||
tracks/1/type = "value"
 | 
			
		||||
tracks/1/imported = false
 | 
			
		||||
tracks/1/enabled = true
 | 
			
		||||
tracks/1/path = NodePath("TextureRect:material:shader_parameter/sourceAngle")
 | 
			
		||||
tracks/1/interp = 1
 | 
			
		||||
tracks/1/loop_wrap = true
 | 
			
		||||
tracks/1/keys = {
 | 
			
		||||
"times": PackedFloat32Array(0),
 | 
			
		||||
"transitions": PackedFloat32Array(1),
 | 
			
		||||
"update": 0,
 | 
			
		||||
"values": [0.0]
 | 
			
		||||
}
 | 
			
		||||
tracks/2/type = "value"
 | 
			
		||||
tracks/2/imported = false
 | 
			
		||||
tracks/2/enabled = true
 | 
			
		||||
tracks/2/path = NodePath("TextureRect:material:shader_parameter/sourceOffset")
 | 
			
		||||
tracks/2/interp = 1
 | 
			
		||||
tracks/2/loop_wrap = true
 | 
			
		||||
tracks/2/keys = {
 | 
			
		||||
"times": PackedFloat32Array(0),
 | 
			
		||||
"transitions": PackedFloat32Array(1),
 | 
			
		||||
"update": 0,
 | 
			
		||||
"values": [Vector2(0.5, 0.5)]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_4qo5x"]
 | 
			
		||||
_data = {
 | 
			
		||||
"RESET": SubResource("Animation_1yxhh"),
 | 
			
		||||
"kaleidoskope_1": SubResource("Animation_olvxy")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[node name="KaleidoScope" type="Control"]
 | 
			
		||||
layout_mode = 3
 | 
			
		||||
anchors_preset = 15
 | 
			
		||||
anchor_right = 1.0
 | 
			
		||||
anchor_bottom = 1.0
 | 
			
		||||
grow_horizontal = 2
 | 
			
		||||
grow_vertical = 2
 | 
			
		||||
script = SubResource("GDScript_mtsk5")
 | 
			
		||||
 | 
			
		||||
[node name="TextureRect" type="TextureRect" parent="."]
 | 
			
		||||
material = SubResource("ShaderMaterial_a6cuy")
 | 
			
		||||
layout_mode = 1
 | 
			
		||||
anchors_preset = 15
 | 
			
		||||
anchor_right = 1.0
 | 
			
		||||
anchor_bottom = 1.0
 | 
			
		||||
grow_horizontal = 2
 | 
			
		||||
grow_vertical = 2
 | 
			
		||||
texture = SubResource("ViewportTexture_1y4ry")
 | 
			
		||||
 | 
			
		||||
[node name="SubViewport" type="SubViewport" parent="."]
 | 
			
		||||
size = Vector2i(1152, 648)
 | 
			
		||||
 | 
			
		||||
[node name="Camera3D" type="Camera3D" parent="SubViewport"]
 | 
			
		||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2.31619)
 | 
			
		||||
 | 
			
		||||
[node name="Node3D" parent="SubViewport" instance=ExtResource("1_yc1r8")]
 | 
			
		||||
 | 
			
		||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
 | 
			
		||||
transform = Transform3D(1, 0, 0, 0, 0.910979, 0.412453, 0, -0.412453, 0.910979, 0, 0, 0)
 | 
			
		||||
 | 
			
		||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
 | 
			
		||||
libraries = {
 | 
			
		||||
"": SubResource("AnimationLibrary_4qo5x")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[node name="Timer" type="Timer" parent="."]
 | 
			
		||||
wait_time = 2.0
 | 
			
		||||
autostart = true
 | 
			
		||||
 | 
			
		||||
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
 | 
			
		||||
| 
						 | 
				
			
			@ -4,7 +4,7 @@
 | 
			
		|||
 | 
			
		||||
[sub_resource type="Animation" id="Animation_qy15n"]
 | 
			
		||||
resource_name = "timeline"
 | 
			
		||||
length = 20.0
 | 
			
		||||
length = 60.0
 | 
			
		||||
tracks/0/type = "method"
 | 
			
		||||
tracks/0/imported = false
 | 
			
		||||
tracks/0/enabled = true
 | 
			
		||||
| 
						 | 
				
			
			@ -12,7 +12,7 @@ tracks/0/path = NodePath(".")
 | 
			
		|||
tracks/0/interp = 1
 | 
			
		||||
tracks/0/loop_wrap = true
 | 
			
		||||
tracks/0/keys = {
 | 
			
		||||
"times": PackedFloat32Array(0, 10, 20),
 | 
			
		||||
"times": PackedFloat32Array(0, 10, 60.0333),
 | 
			
		||||
"transitions": PackedFloat32Array(1, 1, 1),
 | 
			
		||||
"values": [{
 | 
			
		||||
"args": [0],
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,48 +0,0 @@
 | 
			
		|||
[gd_scene load_steps=8 format=3 uid="uid://lcp4gqi6nigy"]
 | 
			
		||||
 | 
			
		||||
[ext_resource type="Script" path="res://scripts/shape_dance.gd" id="1_g2fd3"]
 | 
			
		||||
[ext_resource type="Shader" path="res://assets/shaders/ShapeDanceShapes.gdshader" id="2_jw15c"]
 | 
			
		||||
 | 
			
		||||
[sub_resource type="Curve3D" id="Curve3D_kx25u"]
 | 
			
		||||
_data = {
 | 
			
		||||
"points": PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, -6.635, 0, 14.74, 0, 0, 0, 60, 0, 1.8),
 | 
			
		||||
"tilts": PackedFloat32Array(0, 0)
 | 
			
		||||
}
 | 
			
		||||
point_count = 2
 | 
			
		||||
 | 
			
		||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_r1n2u"]
 | 
			
		||||
render_priority = 0
 | 
			
		||||
shader = ExtResource("2_jw15c")
 | 
			
		||||
 | 
			
		||||
[sub_resource type="BoxMesh" id="BoxMesh_ysqih"]
 | 
			
		||||
material = SubResource("ShaderMaterial_r1n2u")
 | 
			
		||||
 | 
			
		||||
[sub_resource type="Sky" id="Sky_ux7r0"]
 | 
			
		||||
 | 
			
		||||
[sub_resource type="Environment" id="Environment_1wa4s"]
 | 
			
		||||
background_mode = 2
 | 
			
		||||
sky = SubResource("Sky_ux7r0")
 | 
			
		||||
 | 
			
		||||
[node name="ShapeDance" type="Node3D"]
 | 
			
		||||
script = ExtResource("1_g2fd3")
 | 
			
		||||
amount = 20
 | 
			
		||||
offset = 2.8
 | 
			
		||||
shape_shader = ExtResource("2_jw15c")
 | 
			
		||||
 | 
			
		||||
[node name="Path" type="Path3D" parent="."]
 | 
			
		||||
curve = SubResource("Curve3D_kx25u")
 | 
			
		||||
 | 
			
		||||
[node name="PathFollow3D" type="PathFollow3D" parent="Path"]
 | 
			
		||||
transform = Transform3D(-0.0299847, 0, -0.999484, 0, 0.999932, 0, 0.999487, 0, -0.0299846, 0, 0, 0)
 | 
			
		||||
 | 
			
		||||
[node name="MeshInstance3D" type="MeshInstance3D" parent="Path/PathFollow3D"]
 | 
			
		||||
mesh = SubResource("BoxMesh_ysqih")
 | 
			
		||||
 | 
			
		||||
[node name="Camera3D" type="Camera3D" parent="."]
 | 
			
		||||
transform = Transform3D(0.394721, 0.132523, -0.909194, -0.0542735, 0.991179, 0.120911, 0.917197, 0.00161915, 0.398431, -0.411877, 1.41195, 2.2298)
 | 
			
		||||
 | 
			
		||||
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
 | 
			
		||||
environment = SubResource("Environment_1wa4s")
 | 
			
		||||
 | 
			
		||||
[node name="ShowLight" type="DirectionalLight3D" parent="."]
 | 
			
		||||
visible = false
 | 
			
		||||
| 
						 | 
				
			
			@ -1,15 +1,16 @@
 | 
			
		|||
[gd_scene load_steps=4 format=3 uid="uid://dfvl3luba7j4"]
 | 
			
		||||
[gd_scene load_steps=8 format=3 uid="uid://dfvl3luba7j4"]
 | 
			
		||||
 | 
			
		||||
[ext_resource type="Texture2D" uid="uid://5hxbsfm0aa0" path="res://icon.svg" id="1_3phrh"]
 | 
			
		||||
 | 
			
		||||
[sub_resource type="GDScript" id="GDScript_axp0a"]
 | 
			
		||||
resource_name = "Test"
 | 
			
		||||
script/source = "extends Node2D
 | 
			
		||||
script/source = "extends Control
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
func _ready() -> void:
 | 
			
		||||
	$ScramblingText.infinite = true
 | 
			
		||||
	$ScramblingText.start()
 | 
			
		||||
	$AnimationPlayer.play(\"blink\");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
func _on_timer_timeout() -> void:
 | 
			
		||||
| 
						 | 
				
			
			@ -19,23 +20,94 @@ func _on_timer_timeout() -> void:
 | 
			
		|||
[sub_resource type="LabelSettings" id="LabelSettings_w3bnc"]
 | 
			
		||||
font_size = 48
 | 
			
		||||
 | 
			
		||||
[node name="Test" type="Node2D"]
 | 
			
		||||
[sub_resource type="LabelSettings" id="LabelSettings_78g6a"]
 | 
			
		||||
font_size = 48
 | 
			
		||||
 | 
			
		||||
[sub_resource type="Animation" id="Animation_t3ulj"]
 | 
			
		||||
resource_name = "blink"
 | 
			
		||||
length = 2.0
 | 
			
		||||
loop_mode = 1
 | 
			
		||||
tracks/0/type = "value"
 | 
			
		||||
tracks/0/imported = false
 | 
			
		||||
tracks/0/enabled = true
 | 
			
		||||
tracks/0/path = NodePath("Label:visible")
 | 
			
		||||
tracks/0/interp = 1
 | 
			
		||||
tracks/0/loop_wrap = true
 | 
			
		||||
tracks/0/keys = {
 | 
			
		||||
"times": PackedFloat32Array(0, 1),
 | 
			
		||||
"transitions": PackedFloat32Array(1, 1),
 | 
			
		||||
"update": 1,
 | 
			
		||||
"values": [false, true]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[sub_resource type="Animation" id="Animation_dirfa"]
 | 
			
		||||
length = 0.001
 | 
			
		||||
tracks/0/type = "value"
 | 
			
		||||
tracks/0/imported = false
 | 
			
		||||
tracks/0/enabled = true
 | 
			
		||||
tracks/0/path = NodePath("Label:visible")
 | 
			
		||||
tracks/0/interp = 1
 | 
			
		||||
tracks/0/loop_wrap = true
 | 
			
		||||
tracks/0/keys = {
 | 
			
		||||
"times": PackedFloat32Array(0),
 | 
			
		||||
"transitions": PackedFloat32Array(1),
 | 
			
		||||
"update": 1,
 | 
			
		||||
"values": [true]
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[sub_resource type="AnimationLibrary" id="AnimationLibrary_jgx00"]
 | 
			
		||||
_data = {
 | 
			
		||||
"RESET": SubResource("Animation_dirfa"),
 | 
			
		||||
"blink": SubResource("Animation_t3ulj")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[node name="Test" type="Control"]
 | 
			
		||||
layout_mode = 3
 | 
			
		||||
anchors_preset = 15
 | 
			
		||||
anchor_right = 1.0
 | 
			
		||||
anchor_bottom = 1.0
 | 
			
		||||
grow_horizontal = 2
 | 
			
		||||
grow_vertical = 2
 | 
			
		||||
script = SubResource("GDScript_axp0a")
 | 
			
		||||
 | 
			
		||||
[node name="ColorRect" type="ColorRect" parent="."]
 | 
			
		||||
layout_mode = 1
 | 
			
		||||
anchors_preset = 15
 | 
			
		||||
anchor_right = 1.0
 | 
			
		||||
anchor_bottom = 1.0
 | 
			
		||||
grow_horizontal = 2
 | 
			
		||||
grow_vertical = 2
 | 
			
		||||
color = Color(0, 0, 0, 1)
 | 
			
		||||
 | 
			
		||||
[node name="Icon" type="Sprite2D" parent="."]
 | 
			
		||||
position = Vector2(534, 309)
 | 
			
		||||
texture = ExtResource("1_3phrh")
 | 
			
		||||
 | 
			
		||||
[node name="ScramblingText" type="ScramblingText" parent="."]
 | 
			
		||||
speed = 5.0
 | 
			
		||||
duration = 0.05
 | 
			
		||||
infinite = false
 | 
			
		||||
offset_right = 40.0
 | 
			
		||||
offset_bottom = 23.0
 | 
			
		||||
text = "HELLO WORLD"
 | 
			
		||||
text = "LOADING DEMO..."
 | 
			
		||||
label_settings = SubResource("LabelSettings_w3bnc")
 | 
			
		||||
 | 
			
		||||
[node name="Timer" type="Timer" parent="."]
 | 
			
		||||
wait_time = 3.0
 | 
			
		||||
wait_time = 1.5
 | 
			
		||||
one_shot = true
 | 
			
		||||
autostart = true
 | 
			
		||||
 | 
			
		||||
[node name="Label" type="Label" parent="."]
 | 
			
		||||
layout_mode = 0
 | 
			
		||||
offset_top = 93.0
 | 
			
		||||
offset_right = 40.0
 | 
			
		||||
offset_bottom = 116.0
 | 
			
		||||
text = "PLEASE WAIT"
 | 
			
		||||
label_settings = SubResource("LabelSettings_78g6a")
 | 
			
		||||
 | 
			
		||||
[node name="AnimationPlayer" type="AnimationPlayer" parent="."]
 | 
			
		||||
libraries = {
 | 
			
		||||
"": SubResource("AnimationLibrary_jgx00")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[connection signal="timeout" from="Timer" to="." method="_on_timer_timeout"]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,25 +3,26 @@
 | 
			
		|||
importer="texture"
 | 
			
		||||
type="CompressedTexture2D"
 | 
			
		||||
uid="uid://5hxbsfm0aa0"
 | 
			
		||||
path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"
 | 
			
		||||
path.s3tc="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.s3tc.ctex"
 | 
			
		||||
metadata={
 | 
			
		||||
"vram_texture": false
 | 
			
		||||
"imported_formats": ["s3tc_bptc"],
 | 
			
		||||
"vram_texture": true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[deps]
 | 
			
		||||
 | 
			
		||||
source_file="res://icon.svg"
 | 
			
		||||
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"]
 | 
			
		||||
dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.s3tc.ctex"]
 | 
			
		||||
 | 
			
		||||
[params]
 | 
			
		||||
 | 
			
		||||
compress/mode=0
 | 
			
		||||
compress/mode=2
 | 
			
		||||
compress/high_quality=false
 | 
			
		||||
compress/lossy_quality=0.7
 | 
			
		||||
compress/hdr_compression=1
 | 
			
		||||
compress/normal_map=0
 | 
			
		||||
compress/channel_pack=0
 | 
			
		||||
mipmaps/generate=false
 | 
			
		||||
mipmaps/generate=true
 | 
			
		||||
mipmaps/limit=-1
 | 
			
		||||
roughness/mode=0
 | 
			
		||||
roughness/src_normal=""
 | 
			
		||||
| 
						 | 
				
			
			@ -31,7 +32,7 @@ process/normal_map_invert_y=false
 | 
			
		|||
process/hdr_as_srgb=false
 | 
			
		||||
process/hdr_clamp_exposure=false
 | 
			
		||||
process/size_limit=0
 | 
			
		||||
detect_3d/compress_to=1
 | 
			
		||||
detect_3d/compress_to=0
 | 
			
		||||
svg/scale=1.0
 | 
			
		||||
editor/scale_with_editor_scale=false
 | 
			
		||||
editor/convert_colors_with_editor_theme=false
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,9 +1,10 @@
 | 
			
		|||
extends Manager
 | 
			
		||||
 | 
			
		||||
var scene1: PackedScene = preload("res://entities/test.tscn");
 | 
			
		||||
var scene2: PackedScene = preload("res://entities/shape_dance.tscn");
 | 
			
		||||
var scene2: PackedScene = preload("res://entities/kaleido_scope.tscn");
 | 
			
		||||
var scene3: PackedScene = preload("res://entities/ParticlesCool.tscn");
 | 
			
		||||
var scene4: PackedScene = preload("res://entities/test.tscn")
 | 
			
		||||
var scene5: PackedScene = preload("res://entities/shape_dance.tscn");
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Called when the node enters the scene tree for the first time.
 | 
			
		||||
| 
						 | 
				
			
			@ -12,5 +13,6 @@ func _ready() -> void:
 | 
			
		|||
	register_scene(scene2);
 | 
			
		||||
	register_scene(scene3);
 | 
			
		||||
	register_scene(scene4);
 | 
			
		||||
	register_scene(scene5);
 | 
			
		||||
	start_audio();
 | 
			
		||||
	$AnimationPlayer.play("timeline");
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,8 +4,11 @@ extends Node3D
 | 
			
		|||
@export var offset: float = 2.0;
 | 
			
		||||
@export var shape_shader: Shader;
 | 
			
		||||
 | 
			
		||||
var nodes: Array[PathFollow3D];
 | 
			
		||||
 | 
			
		||||
@onready var path: Path3D = $Path
 | 
			
		||||
@onready var shape_material: ShaderMaterial = ShaderMaterial.new();
 | 
			
		||||
@onready var shapes: Array[PrimitiveMesh] = [BoxMesh.new(), PrismMesh.new(), TorusMesh.new(), CylinderMesh.new()];
 | 
			
		||||
 | 
			
		||||
# Called when the node enters the scene tree for the first time.
 | 
			
		||||
func _ready() -> void:
 | 
			
		||||
| 
						 | 
				
			
			@ -13,20 +16,22 @@ func _ready() -> void:
 | 
			
		|||
	shape_material.set_shader(shape_shader);
 | 
			
		||||
	var path_length: float = (path as Path3D).get_curve().get_baked_length();
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	for i in range(amount):
 | 
			
		||||
		var instance: PathFollow3D = PathFollow3D.new();
 | 
			
		||||
		var mesh_instance: MeshInstance3D = MeshInstance3D.new();
 | 
			
		||||
		mesh_instance.mesh = BoxMesh.new();
 | 
			
		||||
		mesh_instance.mesh = shapes.pick_random();
 | 
			
		||||
		mesh_instance.set_surface_override_material(0, shape_material);
 | 
			
		||||
		mesh_instance.set_instance_shader_parameter("id", i);
 | 
			
		||||
		print("kaka" + str((mesh_instance.get_surface_override_material(0) as Material).get_shader_parameter("id")))
 | 
			
		||||
		instance.add_child(mesh_instance);
 | 
			
		||||
		
 | 
			
		||||
		path.add_child(instance);
 | 
			
		||||
		instance.set_progress_ratio(offset / 100 * i);
 | 
			
		||||
		#print(instance.progress_ratio);
 | 
			
		||||
		
 | 
			
		||||
		nodes.push_back(instance);
 | 
			
		||||
		
 | 
			
		||||
 | 
			
		||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
 | 
			
		||||
func _process(delta: float) -> void:
 | 
			
		||||
	pass
 | 
			
		||||
	for i in nodes.size():
 | 
			
		||||
		nodes[i].rotate(Vector3(1.0, 0.0, 0.0), 10 * delta);
 | 
			
		||||
	
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue