Drone as CharacterBody3D

This commit is contained in:
2025-02-02 14:01:03 -05:00
parent 5f6012696b
commit 1550f57f5d
207 changed files with 4397 additions and 471 deletions

View File

@@ -0,0 +1,9 @@
[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://d0gkxc5fuh354"]
[ext_resource type="Texture2D" uid="uid://c2qrve7v33f01" path="res://assets/textures/Kenny's Prototype Textures PNG/Dark/texture_black (1).png" id="1_6mcyk"]
[resource]
albedo_texture = ExtResource("1_6mcyk")
roughness = 0.5
uv1_scale = Vector3(0.15, 0.15, 0.15)
uv1_triplanar = true

View File

@@ -0,0 +1,6 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://cyyhyowgl74ic"]
[resource]
albedo_color = Color(0.28485, 0.28485, 0.28485, 1)
metallic = 1.0
roughness = 0.8

View File

@@ -0,0 +1,6 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://bs525pbcpqua6"]
[resource]
albedo_color = Color(0.298895, 0.980368, 0.360663, 1)
metallic_specular = 0.8
roughness = 0.6

View File

@@ -0,0 +1,23 @@
[gd_resource type="StandardMaterial3D" load_steps=4 format=3 uid="uid://uy2txkh3slat"]
[sub_resource type="Gradient" id="Gradient_nwimj"]
offsets = PackedFloat32Array(0.285714, 0.857143)
colors = PackedColorArray(0.46918, 0.233464, 0.330482, 1, 1, 1, 1, 1)
[sub_resource type="FastNoiseLite" id="FastNoiseLite_symyh"]
noise_type = 0
frequency = 0.0028
fractal_type = 3
fractal_octaves = 10
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_6qupf"]
seamless = true
color_ramp = SubResource("Gradient_nwimj")
noise = SubResource("FastNoiseLite_symyh")
[resource]
albedo_color = Color(0.57906, 0.301518, 0.414739, 1)
albedo_texture = SubResource("NoiseTexture2D_6qupf")
metallic = 1.0
roughness = 0.29
uv1_triplanar = true

View File

@@ -0,0 +1,8 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://b2okmc5xyxhkm"]
[resource]
transparency = 1
diffuse_mode = 2
albedo_color = Color(0.141176, 0.239216, 0.0862745, 0.784314)
metallic_specular = 0.6
roughness = 0.4

View File

@@ -0,0 +1,6 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://dpaqrdyltu0hj"]
[resource]
transparency = 1
albedo_color = Color(0.898039, 0.392157, 0.258824, 0.784314)
roughness = 0.4

View File

@@ -0,0 +1,6 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://is2nkfruok8v"]
[resource]
albedo_color = Color(0.807964, 0.6722, 0.473427, 1)
metallic_specular = 0.8
roughness = 0.6

View File

@@ -0,0 +1,90 @@
/* License CC BY-NC-SA 4.0 Deed */
/* https://creativecommons.org/licenses/by-nc-sa/4.0/ */
/* Fork of Ryk's VCR distortion shader */
/* https://www.shadertoy.com/view/ldjGzV */
shader_type canvas_item;
uniform sampler2D screen_texture: hint_screen_texture, filter_linear_mipmap, repeat_disable;
group_uniforms Image;
uniform float curvature: hint_range(0., 10., .01) = 2.;
uniform float skip: hint_range(0., 1., .01) = 1.;
uniform float image_flicker: hint_range(0., 1., .01) = 1.;
group_uniforms Vignette;
uniform float vignette_flicker_speed: hint_range(0., 2., .01) = 1.;
uniform float vignette_strength: hint_range(0., 2., 0.01) = 1.;
group_uniforms Scanlines;
uniform float small_scanlines_speed: hint_range(0., 10., .01) = 1.;
uniform float small_scanlines_proximity: hint_range(.01, 2., .01) = 1.;
uniform float small_scanlines_opacity: hint_range(0.01, 5., .01) = 1.;
uniform float scanlines_opacity: hint_range(0., 2., .01) = 1.;
uniform float scanlines_speed: hint_range(0., 5., .01) = 1.;
uniform float scanline_thickness: hint_range(0., .6, .01) = 0.5;
uniform float scanlines_spacing: hint_range(0.3, 3., .01) = 1.;
group_uniforms Noise;
uniform sampler2D noise_texture: filter_linear_mipmap, repeat_enable;
float noise(vec2 p, vec2 uv)
{
float s = texture(noise_texture,vec2(1.*TIME,2.*TIME)*8. + p*1.).x;
s *= s;
return s;
}
float onOff(float a, float b, float c)
{
return step(c, sin(TIME + a*cos(TIME*b)));
}
float ramp(float y, float start, float end)
{
float inside = step(start,y) - step(end,y);
float fact = (y-start)/(end-start)*inside;
return (1.-fact) * inside;
}
float stripes(vec2 uv)
{
float noi = noise(uv*vec2(0.5,1.) + vec2(1.,3.), uv)*scanlines_opacity;
return ramp(mod(uv.y*4.*scanlines_spacing + TIME*scanlines_speed/(2.*scanlines_spacing)+sin(TIME*scanlines_speed + sin(TIME*scanlines_speed*0.63*scanlines_spacing)),1.),scanline_thickness,.6)*noi;
}
vec3 getVideo(vec2 uv)
{
vec2 look = uv;
float window = 1./(1.+20.*(look.y-mod(TIME/4.,1.))*(look.y-mod(TIME/4.,1.)))*image_flicker;
look.x = look.x + sin(look.y*10. + TIME)/50.*onOff(4.,4.,.3)*(1.+cos(TIME*80.))*window;
float vShift = 0.4*onOff(2.,3.,.9)*(sin(TIME)*sin(TIME*20.)+(0.5 + 0.1*sin(TIME*200.)*cos(TIME)))*skip;
look.y = mod(look.y + vShift, 1.);
vec3 video = texture(screen_texture,look).xyz;
return video;
}
vec2 screenDistort(vec2 uv)
{
uv -= vec2(.5,.5);
uv = uv*1.2*(1./1.2+curvature*uv.x*uv.x*uv.y*uv.y);
uv += vec2(.5,.5);
return uv;
}
void fragment()
{
vec2 uv = FRAGCOORD.xy / (1.0 / SCREEN_PIXEL_SIZE).xy;
uv = screenDistort(uv);
vec3 video = getVideo(uv);
float vigAmt = 3.+.3*sin(TIME*vignette_flicker_speed+1. + 5.*cos(TIME*5.*vignette_flicker_speed+1.));
vigAmt *= vignette_strength;
float vignette = (1.-vigAmt*(uv.y-.5)*(uv.y-.5))*(1.-vigAmt*(uv.x-.5)*(uv.x-.5));
video += stripes(uv);
video += noise(uv*2., uv)/2.;
video *= vignette;
video *= (12./small_scanlines_opacity+mod(uv.y*30.*small_scanlines_proximity+TIME*small_scanlines_speed,1.))/13.*small_scanlines_opacity;
COLOR = vec4(video,1.0);
}