Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -20,23 +20,32 @@ extends CharacterBody2D
## Also can look at sides. Defaults to look at left, and scales everything by -1 to look
## at right.

const CEL_SHADING_RECOLOR_MATERIAL = preload("uid://b7kf0suo0sc7k")

## The random seed of this character. Setting another character to the same seed
## will make them identical. Setting it to zero will reset the skin color.
@export var character_seed: int

## The recoloring behavior to use in all sprites.
@export var cel_shading_recolor: CelShadingRecolor

## Where is the character facing. Relative to the character.
@export var look_at_side: Enums.LookAtSide = Enums.LookAtSide.LEFT:
set = _set_look_at_side

## The shader material that will be set to all the sprites, the parts that conform the character.
## If none, a duplicate of the corresponding material will be set.
@export var shader_material: ShaderMaterial

## Click this button to update the randomization according to the [member character_seed].
@export_tool_button("Update") var update_button: Callable = apply_character_randomizations

## Click this button to create a random character.
@export_tool_button("Randomize") var randomize_character_button: Callable = randomize_character

## The inner AnimatedSprite2D nodes.
var animated_sprites: Array[AnimatedSprite2D] = []

## The inner nodes that recolor the character skin.
var skin_recolor_nodes: Array[CelShadingRecolor] = []

## The inner nodes that randomize sprites textures.
var random_texture_nodes: Array[RandomTextureSpriteBehavior] = []

Expand All @@ -54,13 +63,8 @@ var _previous_look_at_side: Enums.LookAtSide = Enums.LookAtSide.UNSPECIFIED
func apply_character_randomizations() -> void:
_random_number_generator.seed = character_seed

if skin_recolor_nodes:
var new_skin_medium_color: Color
skin_recolor_nodes[-1].set_random_skin_color(_random_number_generator)
new_skin_medium_color = skin_recolor_nodes[-1].medium_color
for n in skin_recolor_nodes:
n.automatic_shades = true
n.medium_color = new_skin_medium_color
if cel_shading_recolor:
cel_shading_recolor.randomize(_random_number_generator)

for n in random_texture_nodes:
n.randomize_texture(_random_number_generator)
Expand All @@ -86,6 +90,14 @@ func randomize_character() -> void:
func _ready() -> void:
_setup_nodes()

if not shader_material:
shader_material = (CEL_SHADING_RECOLOR_MATERIAL as ShaderMaterial).duplicate()

for node in animated_sprites:
node.material = shader_material

cel_shading_recolor.shader_material = shader_material

if character_seed:
apply_character_randomizations()

Expand All @@ -109,15 +121,12 @@ func _traverse(node: Node) -> void:
animated_sprites.append(node)
for child in node.get_children():
_traverse(child)
elif node is CelShadingRecolor:
skin_recolor_nodes.append(node)
elif node is RandomTextureSpriteBehavior:
random_texture_nodes.append(node)


func _setup_nodes() -> void:
animated_sprites = []
skin_recolor_nodes = []
random_texture_nodes = []
for child in get_children():
_traverse(child)
Expand Down

Large diffs are not rendered by default.

116 changes: 75 additions & 41 deletions scenes/game_elements/characters/npcs/components/skin_tones_test.tscn

Large diffs are not rendered by default.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Git LFS file not shown
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
[gd_resource type="ColorPalette" format=3 uid="uid://bt0d8ui0rahnd"]

[resource]
colors = PackedColorArray(1, 1, 0.627451, 1, 1, 1, 0, 1, 0.627451, 0.627451, 0, 1, 0.18039216, 0.18039216, 0, 1, 0.7764706, 0.5058824, 0.23137255, 1, 0.6862745, 0.3647059, 0.13725491, 1, 0.48235294, 0.23921569, 0.07058824, 1, 0.18039216, 0, 0, 1, 0.627451, 1, 0.627451, 1, 0, 1, 0, 1, 0, 0.627451, 0, 1, 0, 0.18039216, 0, 1)
46 changes: 20 additions & 26 deletions scenes/game_elements/characters/npcs/townie.tscn
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
[ext_resource type="Script" uid="uid://c0a7xf5qx8p4y" path="res://scenes/game_elements/components/cel_shading_recolor.gd" id="2_nj51j"]
[ext_resource type="Script" uid="uid://dl6rgfwdn3qp4" path="res://scenes/game_elements/characters/components/character_randomizer.gd" id="2_xf1o5"]
[ext_resource type="SpriteFrames" uid="uid://do4waj3mgr6vw" path="res://scenes/game_elements/characters/components/sprite_frames/townie-legs_003.dy_-12.tres" id="3_4rgc5"]
[ext_resource type="Shader" uid="uid://bs1yj5q1vidgx" path="res://scenes/game_elements/components/cel_shading_recolor.gdshader" id="3_byt3c"]
[ext_resource type="Script" uid="uid://boyesrjdix688" path="res://scenes/game_logic/sprite_behaviors/random_texture_sprite_behavior.gd" id="5_8nfuc"]
[ext_resource type="SpriteFrames" uid="uid://bygxgwwtt1j6h" path="res://scenes/game_elements/characters/components/sprite_frames/townie-legs_001.tres" id="5_r7ycj"]
[ext_resource type="SpriteFrames" uid="uid://ubitgryup0jx" path="res://scenes/game_elements/characters/components/sprite_frames/townie-legs_002.dy_-6.tres" id="6_hbfaq"]
Expand All @@ -22,22 +23,29 @@
[ext_resource type="SpriteFrames" uid="uid://dnfyg3i87cp17" path="res://scenes/game_elements/characters/components/sprite_frames/townie-hair_005.tres" id="24_hskxo"]
[ext_resource type="SpriteFrames" uid="uid://c43yaqne7a2kh" path="res://scenes/game_elements/characters/components/sprite_frames/townie-hair_002.tres" id="33_m1eb2"]

[sub_resource type="ShaderMaterial" id="ShaderMaterial_byt3c"]
resource_local_to_scene = true
shader = ExtResource("3_byt3c")
shader_parameter/color_count = 0
shader_parameter/key_colors = PackedInt32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
shader_parameter/new_colors = PackedVector3Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)

[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_qs15o"]

[node name="Townie" type="CharacterBody2D" unique_id=1098678013]
[node name="Townie" type="CharacterBody2D" unique_id=1098678013 node_paths=PackedStringArray("cel_shading_recolor")]
material = ExtResource("1_nj51j")
instance_shader_parameters/shade_high_new = Color(0.9056, 0.7616, 0.7928, 1)
instance_shader_parameters/shade_low_new = Color(0.7056, 0.5616, 0.5928, 1)
instance_shader_parameters/shade_medium_new = Color(0.882, 0.702, 0.741, 1)
collision_layer = 2
collision_mask = 0
script = ExtResource("2_xf1o5")
cel_shading_recolor = NodePath("CelShadingRecolor")
shader_material = SubResource("ShaderMaterial_byt3c")

[node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=128596675]
rotation = -1.5707964
shape = SubResource("CapsuleShape2D_qs15o")

[node name="AnimatedSprite2DLegs" type="AnimatedSprite2D" parent="." unique_id=385222684]
material = SubResource("ShaderMaterial_byt3c")
position = Vector2(-3, -31)
sprite_frames = ExtResource("3_4rgc5")
animation = &"idle"
Expand All @@ -56,22 +64,12 @@ sprite = NodePath("..")
metadata/_custom_type_script = "uid://dy68p7gf07pi3"

[node name="AnimatedSprite2DBody" type="AnimatedSprite2D" parent="AnimatedSprite2DLegs" unique_id=2098127821]
material = ExtResource("1_nj51j")
instance_shader_parameters/shade_high_new = Color(0.91999996, 0.91999996, 0.2, 1)
instance_shader_parameters/shade_low_new = Color(0.71999997, 0.71999997, 0, 1)
instance_shader_parameters/shade_medium_new = Color(0.9, 0.9, 0, 1)
material = SubResource("ShaderMaterial_byt3c")
position = Vector2(0, -12)
sprite_frames = ExtResource("16_5y6le")
animation = &"idle"
autoplay = "idle"

[node name="CelShadingRecolor" type="Node" parent="AnimatedSprite2DLegs/AnimatedSprite2DBody" unique_id=1327679537 node_paths=PackedStringArray("node_to_recolor")]
script = ExtResource("2_nj51j")
node_to_recolor = NodePath("..")
high_color = Color(0.91999996, 0.91999996, 0.2, 1)
low_color = Color(0.71999997, 0.71999997, 0, 1)
metadata/_custom_type_script = "uid://c0a7xf5qx8p4y"

[node name="RandomTextureSpriteBehavior" type="Node2D" parent="AnimatedSprite2DLegs/AnimatedSprite2DBody" unique_id=1733667753 node_paths=PackedStringArray("sprite")]
script = ExtResource("5_8nfuc")
sprite_frames = Array[SpriteFrames]([ExtResource("16_5y6le"), ExtResource("11_tidpj"), ExtResource("12_hurny")])
Expand All @@ -84,21 +82,11 @@ sprite = NodePath("..")
metadata/_custom_type_script = "uid://dy68p7gf07pi3"

[node name="AnimatedSprite2DHead" type="AnimatedSprite2D" parent="AnimatedSprite2DLegs/AnimatedSprite2DBody" unique_id=421503015]
material = ExtResource("1_nj51j")
instance_shader_parameters/shade_high_new = Color(0.91999996, 0.91999996, 0.2, 1)
instance_shader_parameters/shade_low_new = Color(0.71999997, 0.71999997, 0, 1)
instance_shader_parameters/shade_medium_new = Color(0.9, 0.9, 0, 1)
material = SubResource("ShaderMaterial_byt3c")
sprite_frames = ExtResource("22_8wbfo")
animation = &"idle"
autoplay = "idle"

[node name="CelShadingRecolor" type="Node" parent="AnimatedSprite2DLegs/AnimatedSprite2DBody/AnimatedSprite2DHead" unique_id=2000765677 node_paths=PackedStringArray("node_to_recolor")]
script = ExtResource("2_nj51j")
node_to_recolor = NodePath("..")
high_color = Color(0.91999996, 0.91999996, 0.2, 1)
low_color = Color(0.71999997, 0.71999997, 0, 1)
metadata/_custom_type_script = "uid://c0a7xf5qx8p4y"

[node name="RandomTextureSpriteBehavior" type="Node2D" parent="AnimatedSprite2DLegs/AnimatedSprite2DBody/AnimatedSprite2DHead" unique_id=592927150 node_paths=PackedStringArray("sprite")]
script = ExtResource("5_8nfuc")
sprite_frames = Array[SpriteFrames]([ExtResource("22_8wbfo"), ExtResource("15_byt3c"), ExtResource("16_kccyr"), ExtResource("17_syy7w"), ExtResource("18_4rgc5")])
Expand All @@ -112,6 +100,7 @@ sprite = NodePath("..")
metadata/_custom_type_script = "uid://dy68p7gf07pi3"

[node name="AnimatedSprite2DHair" type="AnimatedSprite2D" parent="AnimatedSprite2DLegs/AnimatedSprite2DBody/AnimatedSprite2DHead" unique_id=2123781958]
material = SubResource("ShaderMaterial_byt3c")
sprite_frames = ExtResource("33_m1eb2")
animation = &"idle"
autoplay = "idle"
Expand All @@ -128,3 +117,8 @@ script = ExtResource("10_syy7w")
character = NodePath("../../../../..")
sprite = NodePath("..")
metadata/_custom_type_script = "uid://dy68p7gf07pi3"

[node name="CelShadingRecolor" type="Node" parent="." unique_id=1327679537]
script = ExtResource("2_nj51j")
shader_material = SubResource("ShaderMaterial_byt3c")
metadata/_custom_type_script = "uid://c0a7xf5qx8p4y"
Loading
Loading