239 lines
6.0 KiB
Plaintext
239 lines
6.0 KiB
Plaintext
[gd_scene load_steps=10 format=2]
|
|
|
|
[ext_resource path="res://models/flag.glb" type="PackedScene" id=1]
|
|
[ext_resource path="res://scenes/Goal.gd" type="Script" id=2]
|
|
|
|
[sub_resource type="BoxShape" id=1]
|
|
|
|
extents = Vector3( 0.584547, 2.22627, 0.659734 )
|
|
|
|
[sub_resource type="Shader" id=2]
|
|
|
|
code = "shader_type spatial;
|
|
|
|
uniform float PI = 3.1415;
|
|
|
|
// BILLBOARD_FIXED_Y
|
|
// from: https://github.com/godotengine/godot/blob/master/scene/resources/material.cpp#L552
|
|
void vertex() {
|
|
MODELVIEW_MATRIX = INV_CAMERA_MATRIX * mat4(CAMERA_MATRIX[0],WORLD_MATRIX[1],vec4(normalize(cross(CAMERA_MATRIX[0].xyz,WORLD_MATRIX[1].xyz)),0.0),WORLD_MATRIX[3]);
|
|
MODELVIEW_MATRIX = MODELVIEW_MATRIX * mat4(vec4(length(WORLD_MATRIX[0].xyz),0,0,0),vec4(0,1,0,0),vec4(0,0,length(WORLD_MATRIX[2].xyz),0),vec4(0,0,0,1));
|
|
}
|
|
|
|
float shine_ray(vec2 center_coords, float time, float offset, float speed) {
|
|
// atan() is in [-pi, pi[
|
|
float angle = atan(center_coords.x, center_coords.y);
|
|
bool on_ray = abs(angle - offset) < 0.1;
|
|
|
|
if (!on_ray) {
|
|
return 0.0;
|
|
}
|
|
|
|
float max_dist = 0.5; // maximum orthogonal distance from center in a [0,1] rectangle
|
|
float center_dist = sqrt(pow(center_coords.x, 2) + pow(center_coords.y, 2)) / max_dist;
|
|
float intensity = 1.0 + (sin(time * 3.0) / 3.0);
|
|
return clamp((1.0 - center_dist) * intensity, 0.0, 1.0);
|
|
}
|
|
|
|
void fragment() {
|
|
ALBEDO = vec3(1.0, 1.0, 0);
|
|
|
|
vec2 center_coords = vec2(UV.x - 0.5, UV.y - 0.5);
|
|
ALPHA = clamp(
|
|
shine_ray(center_coords, TIME, 0.5 * PI, 0.3) +
|
|
shine_ray(center_coords, TIME, (-1.0 + 0.5) * PI, 0.3) +
|
|
shine_ray(center_coords, TIME, 0.3 * PI, 0.5) +
|
|
shine_ray(center_coords, TIME, (-1.0 + 0.3) * PI, 0.4) +
|
|
shine_ray(center_coords, TIME, 0.8 * PI, 0.5) +
|
|
shine_ray(center_coords, TIME, (-1.0 + 0.8) * PI, 0.4),
|
|
0.0, 1.0);
|
|
}
|
|
"
|
|
_sections_unfolded = [ "Resource" ]
|
|
|
|
[sub_resource type="ShaderMaterial" id=3]
|
|
|
|
render_priority = 0
|
|
shader = SubResource( 2 )
|
|
shader_param/PI = null
|
|
|
|
[sub_resource type="Gradient" id=4]
|
|
|
|
offsets = PoolRealArray( 0, 1 )
|
|
colors = PoolColorArray( 0, 0, 0, 1, 1, 1, 1, 1 )
|
|
|
|
[sub_resource type="GradientTexture" id=5]
|
|
|
|
flags = 4
|
|
gradient = SubResource( 4 )
|
|
width = 2
|
|
_sections_unfolded = [ "Resource" ]
|
|
|
|
[sub_resource type="ParticlesMaterial" id=9]
|
|
|
|
render_priority = 0
|
|
trail_divisor = 1
|
|
emission_shape = 0
|
|
flag_align_y = false
|
|
flag_rotate_y = false
|
|
flag_disable_z = false
|
|
spread = 45.0
|
|
flatness = 0.0
|
|
gravity = Vector3( 0, -9.8, 0 )
|
|
initial_velocity = 5.0
|
|
initial_velocity_random = 0.0
|
|
angular_velocity = 3.39
|
|
angular_velocity_random = 0.0
|
|
linear_accel = 0.0
|
|
linear_accel_random = 0.0
|
|
radial_accel = 0.0
|
|
radial_accel_random = 0.0
|
|
tangential_accel = 0.0
|
|
tangential_accel_random = 0.0
|
|
damping = 0.0
|
|
damping_random = 0.0
|
|
angle = 0.0
|
|
angle_random = 0.0
|
|
scale = 1.0
|
|
scale_random = 0.0
|
|
color = Color( 1, 1, 1, 1 )
|
|
hue_variation = 0.0
|
|
hue_variation_random = 0.0
|
|
anim_speed = 0.0
|
|
anim_speed_random = 0.0
|
|
anim_offset = 0.0
|
|
anim_offset_random = 0.0
|
|
anim_loop = false
|
|
_sections_unfolded = [ "Angle", "Gravity", "Initial Velocity", "Resource", "Scale" ]
|
|
|
|
[sub_resource type="CubeMesh" id=8]
|
|
|
|
custom_aabb = AABB( 0, 0, 0, 0, 0, 0 )
|
|
size = Vector3( 0.5, 0.5, 0.5 )
|
|
subdivide_width = 0
|
|
subdivide_height = 0
|
|
subdivide_depth = 0
|
|
|
|
[node name="Scene Root" index="0" instance=ExtResource( 1 )]
|
|
|
|
script = ExtResource( 2 )
|
|
|
|
[node name="Pole" parent="." index="0"]
|
|
|
|
editor/display_folded = true
|
|
|
|
[node name="Flag" parent="Pole" index="0"]
|
|
|
|
transform = Transform( 5, 0, 0, 0, -4.37114e-08, -0.5, 0, 1, -2.18557e-08, 4.02201, 0.453122, 0 )
|
|
_sections_unfolded = [ "Transform" ]
|
|
|
|
[node name="Flag.001" parent="Pole" index="1"]
|
|
|
|
transform = Transform( 5, 0, 0, 0, -4.37114e-08, -0.5, 0, 1, -2.18557e-08, 5.99137, 0.443566, -0.191931 )
|
|
_sections_unfolded = [ "Transform" ]
|
|
|
|
[node name="Lamp" parent="." index="1"]
|
|
|
|
visible = false
|
|
|
|
[node name="Camera" parent="." index="2"]
|
|
|
|
editor/display_folded = true
|
|
visible = false
|
|
|
|
[node name="Area" type="Area" parent="." index="3"]
|
|
|
|
input_ray_pickable = false
|
|
input_capture_on_drag = false
|
|
space_override = 0
|
|
gravity_point = false
|
|
gravity_distance_scale = 0.0
|
|
gravity_vec = Vector3( 0, -1, 0 )
|
|
gravity = 9.8
|
|
linear_damp = 0.1
|
|
angular_damp = 1.0
|
|
priority = 0.0
|
|
monitoring = true
|
|
monitorable = true
|
|
collision_layer = 1
|
|
collision_mask = 1
|
|
audio_bus_override = false
|
|
audio_bus_name = "Master"
|
|
reverb_bus_enable = false
|
|
reverb_bus_name = "Master"
|
|
reverb_bus_amount = 0.0
|
|
reverb_bus_uniformity = 0.0
|
|
|
|
[node name="CollisionShape" type="CollisionShape" parent="Area" index="0"]
|
|
|
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.2251, 0 )
|
|
shape = SubResource( 1 )
|
|
disabled = false
|
|
|
|
[node name="ShineRays" type="Sprite3D" parent="." index="4"]
|
|
|
|
transform = Transform( 250, 0, 0, 0, 500, 0, 0, 0, 1, 0, 0, 0 )
|
|
layers = 1
|
|
material_override = SubResource( 3 )
|
|
cast_shadow = 1
|
|
extra_cull_margin = 0.0
|
|
use_in_baked_light = false
|
|
lod_min_distance = 0.0
|
|
lod_min_hysteresis = 0.0
|
|
lod_max_distance = 0.0
|
|
lod_max_hysteresis = 0.0
|
|
centered = true
|
|
offset = Vector2( 0, 0 )
|
|
flip_h = false
|
|
flip_v = false
|
|
modulate = Color( 1, 1, 1, 1 )
|
|
opacity = 1.0
|
|
pixel_size = 0.01
|
|
axis = 2
|
|
transparent = true
|
|
shaded = false
|
|
double_sided = true
|
|
alpha_cut = 0
|
|
texture = SubResource( 5 )
|
|
vframes = 1
|
|
hframes = 1
|
|
frame = 0
|
|
region_enabled = false
|
|
region_rect = Rect2( 0, 0, 0, 0 )
|
|
_sections_unfolded = [ "Animation", "Flags", "Geometry", "LOD", "Pause", "Region", "Transform", "Visibility" ]
|
|
__meta__ = {
|
|
"_edit_lock_": true
|
|
}
|
|
|
|
[node name="Particles" type="Particles" parent="." index="5"]
|
|
|
|
transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4.26872, 0 )
|
|
layers = 1
|
|
material_override = null
|
|
cast_shadow = 1
|
|
extra_cull_margin = 0.0
|
|
use_in_baked_light = false
|
|
lod_min_distance = 0.0
|
|
lod_min_hysteresis = 0.0
|
|
lod_max_distance = 0.0
|
|
lod_max_hysteresis = 0.0
|
|
emitting = false
|
|
amount = 8
|
|
lifetime = 1.0
|
|
one_shot = false
|
|
preprocess = 0.0
|
|
speed_scale = 1.0
|
|
explosiveness = 0.5
|
|
randomness = 0.0
|
|
fixed_fps = 0
|
|
fract_delta = true
|
|
visibility_aabb = AABB( -4, -4, -4.30868, 8, 8, 8.61736 )
|
|
local_coords = true
|
|
draw_order = 0
|
|
process_material = SubResource( 9 )
|
|
draw_passes = 1
|
|
draw_pass_1 = SubResource( 8 )
|
|
_sections_unfolded = [ "Draw Passes", "Drawing", "Pause", "Process Material", "Time" ]
|
|
|
|
|