From 6668bff3dd5a87cc90eda963d828eedc00da2429 Mon Sep 17 00:00:00 2001 From: EvanGee Date: Tue, 4 Jun 2024 10:40:01 -0600 Subject: [PATCH] add shader to character that is 'it' --- level/Ground.gd | 4 +++- level/level.tscn | 21 +++++++++++---------- player/player.gd | 1 + player/player.glb.import | 9 ++++++++- player/player_color.gdshader | 8 ++++++++ player/player_color.tres | 7 +++++++ project.godot | 4 ++++ 7 files changed, 42 insertions(+), 12 deletions(-) create mode 100644 player/player_color.gdshader create mode 100644 player/player_color.tres diff --git a/level/Ground.gd b/level/Ground.gd index c807d56..55a1cc6 100644 --- a/level/Ground.gd +++ b/level/Ground.gd @@ -1,6 +1,8 @@ -extends StaticBody3D +extends Node3D func grounded(src: Player): src._is_grounded = true + + diff --git a/level/level.tscn b/level/level.tscn index e4b2581..a94f0b0 100644 --- a/level/level.tscn +++ b/level/level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=13 format=3 uid="uid://b00brfkibo5cj"] +[gd_scene load_steps=14 format=3 uid="uid://b00brfkibo5cj"] [ext_resource type="PackedScene" uid="uid://bq654gwim6col" path="res://level/level.glb" id="1_s37in"] [ext_resource type="Environment" uid="uid://covjrwmk4rplw" path="res://level/world_environment.tres" id="2_ptkl6"] @@ -6,6 +6,7 @@ [ext_resource type="Script" path="res://addons/smoother/smoother.gd" id="5_2tyle"] [ext_resource type="Script" path="res://level/PlayerSpawner.gd" id="6_7ww0m"] [ext_resource type="MeshLibrary" uid="uid://cgh6y5j8wgi36" path="res://level/mesh_library/level_mesh_library.glb" id="6_d34iv"] +[ext_resource type="Script" path="res://level/Ground.gd" id="8_yu1ir"] [sub_resource type="WorldBoundaryShape3D" id="WorldBoundaryShape3D_ujmev"] margin = 2.067 @@ -20,8 +21,7 @@ size = Vector2(100, 100) [sub_resource type="SceneReplicationConfig" id="SceneReplicationConfig_285vp"] -[sub_resource type="BoxShape3D" id="BoxShape3D_kefm0"] -size = Vector3(6.87, 1, 1) +[sub_resource type="BoxShape3D" id="BoxShape3D_0y3ka"] [node name="level" instance=ExtResource("1_s37in")] script = ExtResource("2_s1bx6") @@ -95,13 +95,7 @@ shape = SubResource("BoxShape3D_m3lo5") [node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="." index="9"] replication_config = SubResource("SceneReplicationConfig_285vp") -[node name="StaticBody3D" type="StaticBody3D" parent="." index="10"] - -[node name="CollisionShape3D" type="CollisionShape3D" parent="StaticBody3D" index="0"] -transform = Transform3D(1.5, 0, 0, 0, 3.2, 0, 0, 0, 10, 5.01694, 11.1202, -5.176) -shape = SubResource("BoxShape3D_kefm0") - -[node name="SharedUI" type="Control" parent="." index="11"] +[node name="SharedUI" type="Control" parent="." index="10"] layout_mode = 3 anchors_preset = 0 offset_right = 40.0 @@ -113,5 +107,12 @@ layout_mode = 0 offset_right = 40.0 offset_bottom = 23.0 +[node name="Ground" type="Area3D" parent="." index="11"] +transform = Transform3D(9, 0, 0, 0, 9, 0, 0, 0, 9, 4.85232, 7.93442, -4.42363) + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Ground" index="0"] +shape = SubResource("BoxShape3D_0y3ka") +script = ExtResource("8_yu1ir") + [connection signal="despawned" from="PlayerSpawner" to="." method="client_remove_player"] [connection signal="spawned" from="PlayerSpawner" to="." method="client_add_player"] diff --git a/player/player.gd b/player/player.gd index 98ad7ca..48d1bbb 100644 --- a/player/player.gd +++ b/player/player.gd @@ -33,6 +33,7 @@ signal check_grounded func _ready(): if username == "": username = "Player " + name + $Sphere.set_instance_shader_parameter("color", Color.DARK_ORANGE) func is_on_ground() -> bool: _is_grounded = false diff --git a/player/player.glb.import b/player/player.glb.import index f8ce2b5..82780d6 100644 --- a/player/player.glb.import +++ b/player/player.glb.import @@ -29,6 +29,13 @@ animation/fps=30 animation/trimming=false animation/remove_immutable_tracks=true import_script/path="" -_subresources={} +_subresources={ +"materials": { +"skin": { +"use_external/enabled": true, +"use_external/path": "res://player/player_color.tres" +} +} +} gltf/naming_version=1 gltf/embedded_image_handling=1 diff --git a/player/player_color.gdshader b/player/player_color.gdshader new file mode 100644 index 0000000..7701b2b --- /dev/null +++ b/player/player_color.gdshader @@ -0,0 +1,8 @@ +shader_type spatial; + +instance uniform vec3 color : source_color; + +void fragment() { + ALBEDO = color; + // Called for every pixel the material is visible on. +} diff --git a/player/player_color.tres b/player/player_color.tres new file mode 100644 index 0000000..c33bf26 --- /dev/null +++ b/player/player_color.tres @@ -0,0 +1,7 @@ +[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://k5oba64lxvnw"] + +[ext_resource type="Shader" path="res://player/player_color.gdshader" id="1_mfu2j"] + +[resource] +render_priority = 0 +shader = ExtResource("1_mfu2j") diff --git a/project.godot b/project.godot index d3ad153..f207e49 100644 --- a/project.godot +++ b/project.godot @@ -41,6 +41,10 @@ FmodManager="*res://addons/fmod/FmodManager.gd" enabled=PackedStringArray("res://addons/fmod/plugin.cfg", "res://addons/godot_gltf2meshlib-6391ec247cc04f5fe89243b24fad68bc2ed2a96b/addons/gltf2meshlib/plugin.cfg") +[filesystem] + +import/fbx/enabled=false + [input] move_left={