ADD ajout d'un effet trauma qui floute l'ecran lorsque la valeurd e trauma augmente.

This commit is contained in:
osquallo 2020-03-28 08:44:06 +01:00
parent 7978318bf7
commit 59a76dc7c3
6 changed files with 45 additions and 11 deletions

View file

@ -0,0 +1,17 @@
shader_type spatial;
render_mode unshaded, cull_disabled, blend_mix;
uniform float mist_level = 0.0;
uniform float blur_amount : hint_range(0, 5);
void vertex()
{
POSITION = vec4(VERTEX, 1.0);
}
void fragment()
{
ALBEDO = textureLod(SCREEN_TEXTURE, SCREEN_UV, 5.0*mist_level).rgb;
ALPHA = mist_level;
}

View file

@ -71,6 +71,10 @@ func _process( delta ):
$water_fx.get_surface_material( 0 ).set_shader_param( "mist_level", 0.0 ) $water_fx.get_surface_material( 0 ).set_shader_param( "mist_level", 0.0 )
var trauma_value = ($game_ui/stats_window.get_content_child( "trauma" ).value / 6.0)
$trauma_fx.get_surface_material( 0 ).set_shader_param( "mist_level", trauma_value )
func load_player( filename ): func load_player( filename ):
$creatures/player.load_creature( filename ) $creatures/player.load_creature( filename )

View file

@ -1,14 +1,15 @@
[gd_scene load_steps=21 format=2] [gd_scene load_steps=23 format=2]
[ext_resource path="res://scenes/player/player.tscn" type="PackedScene" id=1] [ext_resource path="res://scenes/player/player.tscn" type="PackedScene" id=1]
[ext_resource path="res://scenes/decors/terrains/demo/demo.tscn" type="PackedScene" id=2] [ext_resource path="res://scenes/decors/terrains/demo/demo.tscn" type="PackedScene" id=2]
[ext_resource path="res://scenes/game/game.gd" type="Script" id=3] [ext_resource path="res://scenes/game/game.gd" type="Script" id=3]
[ext_resource path="res://assets/decors/terrains/demo/water/water_fx.shader" type="Shader" id=4] [ext_resource path="res://assets/interfaces/fx/trauma_fx.shader" type="Shader" id=4]
[ext_resource path="res://assets/sky/sky.shader" type="Shader" id=5] [ext_resource path="res://assets/sky/sky.shader" type="Shader" id=5]
[ext_resource path="res://scenes/game/sky.gd" type="Script" id=6] [ext_resource path="res://scenes/game/sky.gd" type="Script" id=6]
[ext_resource path="res://assets/mist/mist.shader" type="Shader" id=7] [ext_resource path="res://assets/mist/mist.shader" type="Shader" id=7]
[ext_resource path="res://assets/interfaces/debug_window/debug_window.tscn" type="PackedScene" id=8] [ext_resource path="res://assets/interfaces/debug_window/debug_window.tscn" type="PackedScene" id=8]
[ext_resource path="res://assets/interfaces/themes/khanat_theme.theme" type="Theme" id=9] [ext_resource path="res://assets/interfaces/themes/khanat_theme.theme" type="Theme" id=9]
[ext_resource path="res://assets/decors/terrains/demo/water/water_fx.shader" type="Shader" id=10]
[ext_resource path="res://scenes/interfaces/game_menu/game_ui.tscn" type="PackedScene" id=11] [ext_resource path="res://scenes/interfaces/game_menu/game_ui.tscn" type="PackedScene" id=11]
[sub_resource type="OpenSimplexNoise" id=1] [sub_resource type="OpenSimplexNoise" id=1]
@ -24,8 +25,8 @@ noise = SubResource( 1 )
[sub_resource type="ShaderMaterial" id=3] [sub_resource type="ShaderMaterial" id=3]
resource_local_to_scene = true resource_local_to_scene = true
shader = ExtResource( 5 ) shader = ExtResource( 5 )
shader_param/iTime = 1086.03 shader_param/iTime = 996.784
shader_param/iFrame = 83264 shader_param/iFrame = 40980
shader_param/COVERAGE = 0.5 shader_param/COVERAGE = 0.5
shader_param/THICKNESS = 25.0 shader_param/THICKNESS = 25.0
shader_param/ABSORPTION = 1.031 shader_param/ABSORPTION = 1.031
@ -76,12 +77,17 @@ shader_param/mist_height = 0.0
shader_param/mist_distance = 25.0 shader_param/mist_distance = 25.0
[sub_resource type="ShaderMaterial" id=10] [sub_resource type="ShaderMaterial" id=10]
shader = ExtResource( 4 ) shader = ExtResource( 10 )
shader_param/mist_level = 0.0 shader_param/mist_level = 0.0
shader_param/mist_color = Color( 0.0156863, 0.411765, 0.545098, 1 ) shader_param/mist_color = Color( 0.0156863, 0.411765, 0.545098, 1 )
shader_param/mist_height = 0.0 shader_param/mist_height = 0.0
shader_param/mist_distance = 5.0 shader_param/mist_distance = 5.0
[sub_resource type="ShaderMaterial" id=11]
shader = ExtResource( 4 )
shader_param/mist_level = 0.0
shader_param/blur_amount = null
[node name="game" type="Spatial"] [node name="game" type="Spatial"]
script = ExtResource( 3 ) script = ExtResource( 3 )
@ -128,6 +134,12 @@ extra_cull_margin = 16384.0
mesh = SubResource( 8 ) mesh = SubResource( 8 )
material/0 = SubResource( 10 ) material/0 = SubResource( 10 )
[node name="trauma_fx" type="MeshInstance" parent="."]
cast_shadow = 0
extra_cull_margin = 16384.0
mesh = SubResource( 8 )
material/0 = SubResource( 11 )
[node name="game_ui" parent="." instance=ExtResource( 11 )] [node name="game_ui" parent="." instance=ExtResource( 11 )]
[node name="debug_window" parent="." instance=ExtResource( 8 )] [node name="debug_window" parent="." instance=ExtResource( 8 )]

View file

@ -29,7 +29,9 @@ func set_trauma( value ):
func update_trauma(): func update_trauma():
$stats_window.get_content_child( "trauma" ).self_modulate.a = (($stats_window.get_content_child( "oubli" ).value+$stats_window.get_content_child( "douleur" ).value)/2)/6.0 var trauma_value = (($stats_window.get_content_child( "oubli" ).value+$stats_window.get_content_child( "douleur" ).value)/2)
$stats_window.get_content_child( "trauma" ).value = trauma_value
$stats_window.get_content_child( "trauma" ).self_modulate.a = trauma_value/6.0
func _on_douleur_value_changed(value): func _on_douleur_value_changed(value):
$stats_window.get_content_child( "douleur" ).self_modulate.a = (value / 18.0) * (value / 18.0) $stats_window.get_content_child( "douleur" ).self_modulate.a = (value / 18.0) * (value / 18.0)

View file

@ -60,7 +60,6 @@ margin_right = 128.0
margin_bottom = 128.0 margin_bottom = 128.0
max_value = 6.0 max_value = 6.0
step = 0.5 step = 0.5
value = 6.0
texture_progress = ExtResource( 4 ) texture_progress = ExtResource( 4 )
fill_mode = 8 fill_mode = 8
__meta__ = { __meta__ = {

View file

@ -12,7 +12,7 @@ export var jump_impulse = 25
export(float, 0.1, 20.0, 0.1) var rotation_speed_factor: = 0.01 export(float, 0.1, 20.0, 0.1) var rotation_speed_factor: = 0.01
var velocity: = Vector3.ZERO var velocity: = Vector3.ZERO
var is_sprinting = false var _is_sprinting = false
func _ready(): func _ready():
# $camera.make_current() # $camera.make_current()
@ -22,7 +22,7 @@ func _ready():
func _input( event ): func _input( event ):
if event.is_action_pressed( "toggle_sprint" ): if event.is_action_pressed( "toggle_sprint" ):
is_sprinting = not is_sprinting self._is_sprinting = not self._is_sprinting
func _process( delta ): func _process( delta ):
@ -111,8 +111,8 @@ func load_creature( filename ):
$model/ra/model/metarig/Skeleton/body.get_surface_material( 0 ).set_shader_param( "albedo", self.creature.color ) $model/ra/model/metarig/Skeleton/body.get_surface_material( 0 ).set_shader_param( "albedo", self.creature.color )
func is_sprinting(): func is_sprinting():
if (not self.is_sprinting and Input.is_action_pressed( "sprint" )) \ if (not self._is_sprinting and Input.is_action_pressed( "sprint" )) \
or (self.is_sprinting and not Input.is_action_pressed( "sprint" )) \ or (self._is_sprinting and not Input.is_action_pressed( "sprint" )) \
: :
return true return true
return false return false