Merge feat_new_mood into main

This commit is contained in:
root 2024-01-27 13:54:28 +01:00
commit 7f18748659
35 changed files with 380 additions and 100 deletions

View File

@ -0,0 +1,17 @@
class_name AudienceProfile
extends Node2D
@export var happy_threshold : float
@export var angry_threshold : float
@export var lashout_threshold : float
@export var happiness_decay : float
@export var lashout_decay : float
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta):
pass

View File

@ -1,25 +1,74 @@
class_name Person
class_name AudienceMember
extends Sprite2D
@export var mood : float = 0.
@export var head : Node2D
@export var face : Node2D
@export var profile : AudienceProfile
@export_enum("angry", "neutral", "happy", "laugh") var expression
var known_faces : Array[String] = [
"res://scenes/faces/face_curly.tscn",
"res://scenes/faces/face_jenny.tscn",
"res://scenes/faces/face_moritz.tscn",
"res://scenes/faces/face_ronald.tscn",
# Add more scenes as needed
]
const laughter_duration : float = 2. # seconds
const laughter_bobs : int = 4
var laughter_left : float = 0.
# Called when the node enters the scene tree for the first time.
func _ready():
pass # Replace with function body.
laughter_left = 0.
mood = randf_range(profile.lashout_threshold, profile.happy_threshold)
update_expression()
if face == null:
set_random_face()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(_delta):
pass
func _process(delta):
if laughter_left >= 0:
laughter_left -= delta
if mood > profile.happy_threshold * .5:
mood -= profile.happiness_decay * delta
elif mood < profile.lashout_threshold * .9:
mood += profile.lashout_decay * delta
if Input.is_key_pressed(KEY_SPACE) and OS.is_debug_build():
update_mood(1.)
update_expression()
func hear_joke():
var change = randf_range(-3., 3.)
update_mood(change)
func update_mood(change: float):
if mood > profile.happy_threshold and change > 0 and laughter_left <= 0:
laughter_left = laughter_duration
# bob head
var tween = get_tree().create_tween().bind_node(self).set_loops(laughter_bobs)
var bob_duration = laughter_duration / laughter_bobs / 2
tween.tween_property(face, "position", Vector2.UP * 20, bob_duration).set_delay(randf_range(0, bob_duration))
tween.tween_property(face, "position", Vector2.ZERO, bob_duration)
mood += change
func update_expression():
if laughter_left > 0:
expression = "laugh"
elif mood > profile.happy_threshold:
expression = "happy"
elif mood < profile.angry_threshold:
expression = "angry"
else:
expression = "neutral"
func set_random_face():
var face_res = load(known_faces[randi() % known_faces.size()])

View File

@ -1,16 +1,19 @@
[gd_scene load_steps=4 format=3 uid="uid://cl4fax7fbh2g7"]
[ext_resource type="Script" path="res://scenes/crowd/person.gd" id="1_mx0i8"]
[ext_resource type="Script" path="res://scenes/crowd/audience_profile.gd" id="2_bsodr"]
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_kbo53"]
size = Vector2(20, 30)
[sub_resource type="RectangleShape2D" id="RectangleShape2D_5rd5b"]
[node name="Person" type="Sprite2D" node_paths=PackedStringArray("head")]
[node name="Person" type="Sprite2D" node_paths=PackedStringArray("head", "profile")]
texture = SubResource("PlaceholderTexture2D_kbo53")
script = ExtResource("1_mx0i8")
head = NodePath("Head")
profile = NodePath("Profile")
expression = 1
[node name="Head" type="Node2D" parent="."]
position = Vector2(0, -16)
@ -20,3 +23,11 @@ scale = Vector2(0.3, 0.3)
[node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D"]
shape = SubResource("RectangleShape2D_5rd5b")
[node name="Profile" type="Node2D" parent="."]
script = ExtResource("2_bsodr")
happy_threshold = 3.0
angry_threshold = -3.0
lashout_threshold = -10.0
happiness_decay = 1.0
lashout_decay = 10.0

View File

@ -1,38 +1,40 @@
extends Node2D
@export var mood : int = 0
var last_mood : int = 0
@export_enum("angry", "neutral", "happy", "laugh") var expression
@export var sprite_happy : Sprite2D
@export var sprite_neutral : Sprite2D
@export var sprite_unhappy : Sprite2D
var person_controller : AudienceMember
var expression_map = {}
const tween_speed : float = 1.5
const expression_change_speed : float = 1.5
const color_transparent : Color = Color(1, 1, 1, 0)
const color_visible : Color = Color(1, 1, 1, 1)
# Called when the node enters the scene tree for the first time.
func _ready():
mood = 0
last_mood = 0
sprite_happy.modulate.a = 0
sprite_neutral.modulate.a = 1
sprite_unhappy.modulate.a = 0
# Called every frame. 'delta' is the elapsed time since the previous frame.
expression_map = {
"angry" : $Unhappy,
"neutral" : $Neutral,
"happy" : $Happy,
"laugh" : $Laugh,
}
person_controller = get_node("../../../Person")
expression = person_controller.expression
reset_face()
func _process(_delta):
if mood != last_mood:
var tween = get_tree().create_tween().bind_node(self).set_parallel().set_trans(Tween.TRANS_LINEAR)
if mood < 0:
tween.tween_property(sprite_unhappy, "modulate", color_visible, tween_speed)
tween.tween_property(sprite_neutral, "modulate", color_transparent, tween_speed)
tween.tween_property(sprite_happy, "modulate", color_transparent, tween_speed)
elif mood > 0:
tween.tween_property(sprite_unhappy, "modulate", color_transparent, tween_speed)
tween.tween_property(sprite_neutral, "modulate", color_transparent, tween_speed)
tween.tween_property(sprite_happy, "modulate", color_visible, tween_speed)
else:
tween.tween_property(sprite_unhappy, "modulate", color_transparent, tween_speed)
tween.tween_property(sprite_neutral, "modulate", color_visible, tween_speed)
tween.tween_property(sprite_happy, "modulate", color_transparent, tween_speed)
last_mood = mood
if expression != person_controller.expression:
update_face(person_controller.expression)
expression = person_controller.expression
func reset_face():
for expr in expression_map:
expression_map[expr].modulate = color_transparent.lerp(color_visible, expr == expression)
func update_face(new_expression: String):
var trans_speed = expression_change_speed
if new_expression == "laugh":
trans_speed = 0
#var trans_speed = lerpf(0, expression_change_speed, new_expression != "laugh")
var tween = get_tree().create_tween().bind_node(self).set_parallel().set_trans(Tween.TRANS_LINEAR)
tween.tween_property(expression_map[expression], "modulate", color_transparent, trans_speed)
tween.tween_property(expression_map[new_expression], "modulate", color_visible, trans_speed)

View File

@ -1,20 +1,22 @@
[gd_scene load_steps=5 format=3 uid="uid://bvc6fbd5cgb0i"]
[gd_scene load_steps=6 format=3 uid="uid://bvc6fbd5cgb0i"]
[ext_resource type="Texture2D" uid="uid://f74hle6gaeie" path="res://sprites/faces/curly_happy.png" id="1_7pet0"]
[ext_resource type="Script" path="res://scenes/faces/face.gd" id="1_vcbhp"]
[ext_resource type="Texture2D" uid="uid://oeljmd05bkvj" path="res://sprites/faces/curly_neutral.png" id="2_54uqk"]
[ext_resource type="Texture2D" uid="uid://5iygla17stpm" path="res://sprites/faces/curly_not_amused.png" id="3_2t0h4"]
[ext_resource type="Texture2D" uid="uid://lb4freja2bhq" path="res://sprites/faces/curly_laughing.svg" id="3_3ejvg"]
[node name="FaceCurly" type="Node2D" node_paths=PackedStringArray("sprite_happy", "sprite_neutral", "sprite_unhappy")]
[node name="FaceCurly" type="Node2D"]
script = ExtResource("1_vcbhp")
sprite_happy = NodePath("Happy")
sprite_neutral = NodePath("Neutral")
sprite_unhappy = NodePath("Unhappy")
[node name="Happy" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0)
texture = ExtResource("1_7pet0")
[node name="Laugh" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0)
texture = ExtResource("3_3ejvg")
[node name="Neutral" type="Sprite2D" parent="."]
texture = ExtResource("2_54uqk")

View File

@ -0,0 +1,25 @@
[gd_scene load_steps=6 format=3 uid="uid://d2ssc4pyu363v"]
[ext_resource type="Script" path="res://scenes/faces/face.gd" id="1_l3mwj"]
[ext_resource type="Texture2D" uid="uid://dfo0nujuqaeek" path="res://sprites/faces/jenny_happy.svg" id="2_c2flt"]
[ext_resource type="Texture2D" uid="uid://ckwbh5swm710" path="res://sprites/faces/jenny_laughing.svg" id="3_oyx01"]
[ext_resource type="Texture2D" uid="uid://bw7i3n2re3ra7" path="res://sprites/faces/jenny_neutral.svg" id="4_cqtfu"]
[ext_resource type="Texture2D" uid="uid://djixausmja6lq" path="res://sprites/faces/jenny_not_amused.svg" id="5_fvvlp"]
[node name="FaceJenny" type="Node2D"]
script = ExtResource("1_l3mwj")
[node name="Happy" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0)
texture = ExtResource("2_c2flt")
[node name="Laugh" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0)
texture = ExtResource("3_oyx01")
[node name="Neutral" type="Sprite2D" parent="."]
texture = ExtResource("4_cqtfu")
[node name="Unhappy" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0)
texture = ExtResource("5_fvvlp")

View File

@ -1,20 +1,22 @@
[gd_scene load_steps=5 format=3 uid="uid://bsiogxvikwl6o"]
[gd_scene load_steps=6 format=3 uid="uid://bsiogxvikwl6o"]
[ext_resource type="Script" path="res://scenes/faces/face.gd" id="1_abnxg"]
[ext_resource type="Texture2D" uid="uid://vvpc4mnl4nj4" path="res://sprites/faces/moritz_happy.svg" id="2_0u1g1"]
[ext_resource type="Texture2D" uid="uid://b0ppuni7v257g" path="res://sprites/faces/moritz_neutral.svg" id="3_s33ae"]
[ext_resource type="Texture2D" uid="uid://brba4d1tnllb3" path="res://sprites/faces/moritz_laughing.svg" id="3_yv3if"]
[ext_resource type="Texture2D" uid="uid://7tn6ynr07tns" path="res://sprites/faces/moritz_not_amused.svg" id="4_0rss5"]
[node name="FaceMoritz" type="Node2D" node_paths=PackedStringArray("sprite_happy", "sprite_neutral", "sprite_unhappy")]
[node name="FaceMoritz" type="Node2D"]
script = ExtResource("1_abnxg")
sprite_happy = NodePath("Happy")
sprite_neutral = NodePath("Neutral")
sprite_unhappy = NodePath("Unhappy")
[node name="Happy" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0)
texture = ExtResource("2_0u1g1")
[node name="Laugh" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0)
texture = ExtResource("3_yv3if")
[node name="Neutral" type="Sprite2D" parent="."]
texture = ExtResource("3_s33ae")

View File

@ -1,15 +1,13 @@
[gd_scene load_steps=5 format=3 uid="uid://cueulkc3lnk5c"]
[gd_scene load_steps=6 format=3 uid="uid://cueulkc3lnk5c"]
[ext_resource type="Script" path="res://scenes/faces/face.gd" id="1_8nd6f"]
[ext_resource type="Texture2D" uid="uid://ctelqstn5ksh1" path="res://sprites/faces/ronald_happy.svg" id="2_512yk"]
[ext_resource type="Texture2D" uid="uid://ijs3777dtv0n" path="res://sprites/faces/ronald_neutral.svg" id="3_ko187"]
[ext_resource type="Texture2D" uid="uid://cn7dhkoupxvt8" path="res://sprites/faces/ronald_not_amused.svg" id="4_cf5hk"]
[ext_resource type="Texture2D" uid="uid://deylqp2w3ydk5" path="res://sprites/faces/ronald_laughing.svg" id="5_kpy4k"]
[node name="FaceCurly" type="Node2D" node_paths=PackedStringArray("sprite_happy", "sprite_neutral", "sprite_unhappy")]
[node name="FaceRonald" type="Node2D"]
script = ExtResource("1_8nd6f")
sprite_happy = NodePath("Happy")
sprite_neutral = NodePath("Neutral")
sprite_unhappy = NodePath("Unhappy")
[node name="Happy" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0)
@ -21,3 +19,7 @@ texture = ExtResource("3_ko187")
[node name="Unhappy" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0)
texture = ExtResource("4_cf5hk")
[node name="Laugh" type="Sprite2D" parent="."]
modulate = Color(1, 1, 1, 0)
texture = ExtResource("5_kpy4k")

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bpqg3w1yn5en2"
uid="uid://bt8qft2vpyl24"
path="res://.godot/imported/body_blue_1.svg-73876d7999610404d0db199910a0001c.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://k75ikdlcha0x"
uid="uid://dqxv2u4xiwiup"
path="res://.godot/imported/body_blue_2.svg-265a6bbe215977e1844c9edb12ebc54a.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://w3ukx6ledg2h"
uid="uid://7bw8nqowkthc"
path="res://.godot/imported/body_blue_3.svg-09c9930b57bc9b1b69c9302b4407e04b.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://b5f8xpn4nj6ft"
uid="uid://baijihfhkfk0i"
path="res://.godot/imported/body_green_1.svg-0f1c7e95fceb1f9c545d50aec87cf824.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://dsiv1d048bnhg"
uid="uid://p557r4sksm4a"
path="res://.godot/imported/body_green_2.svg-6f7c4955ab219414fd9eb4c5d31f0ba1.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bs2i67yhtm0xu"
uid="uid://bsy1pfhg1ante"
path="res://.godot/imported/body_green_3.svg-c1f23e8ec790ac8c6126ba0f019a8f67.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://cd7b0iw88gfsp"
uid="uid://b6211hcc6kclc"
path="res://.godot/imported/body_red_1.svg-93218131e9d07dd5a078f158c7f0982c.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://cvl6jmos3ujx8"
uid="uid://c2cg5x7x14nd"
path="res://.godot/imported/body_red_2.svg-331a1a45509217126883521e6057c8d2.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bo1i0x46c3f83"
uid="uid://bahxyel8pbh40"
path="res://.godot/imported/body_red_3.svg-fcf6f315944385b55753c51760ec4603.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://beon06374ao1r"
uid="uid://lb4freja2bhq"
path="res://.godot/imported/curly_laughing.svg-d03e95d77d09a6e46fd0d44d6e662cf9.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://biajrflebysyv"
uid="uid://dfo0nujuqaeek"
path="res://.godot/imported/jenny_happy.svg-18bdcbac4f00afe90ad78093013f7bcf.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://iawie8jta0sc"
uid="uid://ckwbh5swm710"
path="res://.godot/imported/jenny_laughing.svg-f4f475b2560be57a24e4706cae137684.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://b0bowckojyvc2"
uid="uid://bw7i3n2re3ra7"
path="res://.godot/imported/jenny_neutral.svg-a1345b588fa620a12022fb582666b45f.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://biwyogsdqy4f7"
uid="uid://djixausmja6lq"
path="res://.godot/imported/jenny_not_amused.svg-e9a1c9cd72a5898e23665eb2000f38ce.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://c3knmbmhf2e0r"
uid="uid://brba4d1tnllb3"
path="res://.godot/imported/moritz_laughing.svg-2d677aae6e0e61cab19c6b1064900671.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://l8w7ko5tee10"
uid="uid://deylqp2w3ydk5"
path="res://.godot/imported/ronald_laughing.svg-9eecc7a3e15c7d15e3aab3dd29e25768.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://mrklwytos3ar"
uid="uid://bavsg3hu7pccy"
path="res://.godot/imported/bottle.svg-22011b05c9a3d7eae13e737f1162b981.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://br2j6yu0f7x37"
uid="uid://huokdqy7birm"
path="res://.godot/imported/bubble_blue.svg-fb037e1cfad202315c866906d98ef36c.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://b2vtyqcfr5ukt"
uid="uid://bsda544aynmha"
path="res://.godot/imported/bubble_green.svg-dd7d0ea9035cbc69a271558239c1ef90.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://03ch1nqrnm6c"
uid="uid://cttngp4bj5fh2"
path="res://.godot/imported/bubble_red.svg-a001b24d0912ebfc1149224f019251a6.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bso51p5hgngnp"
uid="uid://bg85if5rrrdmm"
path="res://.godot/imported/buehne.svg-f08ab195d5bf3b8336c502a17edc7380.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://cwplm30c4bo8q"
uid="uid://b10sikhisctbi"
path="res://.godot/imported/squiggle_curled.svg-09eec38ae1f9e8bfe58a2c8a27c73570.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://dh28yulxwsu6x"
uid="uid://dodo6eb5r4yw3"
path="res://.godot/imported/squiggle_curved.svg-a4b3b2af12e2b683d257e95254b5eb5f.ctex"
metadata={
"vram_texture": false

View File

@ -2,7 +2,7 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://cq8xdj8gf0h25"
uid="uid://cr1e5m4r4evbl"
path="res://.godot/imported/squiggle_sharp.svg-ccf4c01f73c0fcd39d355176af89c902.ctex"
metadata={
"vram_texture": false

View File

@ -0,0 +1,133 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="59.120758mm"
height="101.09949mm"
viewBox="0 0 59.120758 101.09949"
version="1.1"
id="svg674"
inkscape:version="1.2.2 (732a01da63, 2022-12-09)"
sodipodi:docname="´tim_side.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview676"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="0.75455247"
inkscape:cx="746.13764"
inkscape:cy="614.93404"
inkscape:window-width="1920"
inkscape:window-height="1027"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
showguides="false">
<inkscape:grid
type="xygrid"
id="grid1241" />
</sodipodi:namedview>
<defs
id="defs671" />
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-201.54215,-116.83476)">
<g
id="g28741">
<path
style="fill:#37abc8;fill-opacity:1;stroke:none;stroke-width:0.529167"
d="m 222.89413,151.90187 c 0,0 -16.76535,13.3146 -19.58778,19.09188 -2.82243,5.77728 -1.65482,8.08002 -0.62609,10.80694 1.02873,2.72692 3.64321,4.05425 5.15397,4.78238 1.33082,0.64139 4.57756,3.73926 5.38998,7.9656 1.15658,6.01668 -6.9425,18.84393 -6.9425,18.84393 l 9.12632,-0.17532 c 0,0 8.97463,-13.29977 8.56296,-18.21526 -0.41167,-4.91549 -5.10969,-9.21514 -3.39604,-9.08894 1.71365,0.1262 2.85449,-0.64832 4.41792,-0.21786 1.23547,0.34016 3.8952,1.94344 5.5039,5.36325 0.42703,0.90778 1.71937,3.76822 1.81933,4.85391 0.47653,5.17574 -4.71829,17.67059 -4.71829,17.67059 l 8.93338,-0.19037 c 0,0 4.7498,-12.6658 5.20687,-18.10009 0.25454,-3.02634 -0.19799,-6.29978 -2.22399,-9.02868 -2.77939,-3.74367 -3.38178,-5.3949 -4.22262,-6.8399 -0.58306,-1.00199 -2.86809,-3.59462 4.99187,-10.96357 4.76781,-4.46996 8.39725,-9.1201 8.39725,-9.1201 z"
id="path26758"
sodipodi:nodetypes="czzsscczzsssccsssscc" />
<path
style="fill:#a05a2c;stroke:none;stroke-width:0.529167"
d="m 234.52174,210.61409 c 0,0 4.54778,0.56135 6.35513,1.75067 1.80735,1.18932 3.16335,4.51914 3.20242,5.29454 0.0391,0.7754 -17.32314,-0.33561 -17.32314,-0.33561 0,0 -0.41346,-3.5868 0,-4.95893 0.41346,-1.37213 1.70027,-2.27406 1.70027,-2.27406 z"
id="path26829"
sodipodi:nodetypes="czzczcc" />
<path
style="fill:#a05a2c;stroke:none;stroke-width:0.529167"
d="m 213.09113,211.01868 c 0,0 4.98544,0.35076 7.08646,1.8959 2.10102,1.54514 2.87674,3.7105 2.75491,4.53308 -0.12183,0.82258 -16.86037,0.24795 -16.86037,0.24795 0,0 -1.28496,-5.7349 0.77392,-6.36024 2.05888,-0.62533 6.24508,-0.31669 6.24508,-0.31669 z"
id="path26831"
sodipodi:nodetypes="czzczc" />
<path
style="fill:#ff7f2a;fill-opacity:1;stroke:none;stroke-width:0.529167"
d="m 232.48052,146.92208 c -4.1591,-0.083 -5.54533,1.08255 -7.53896,2.1039 -1.99363,1.02135 -0.78887,0.44515 -4.38312,3.50649 -3.59425,3.06134 -15.77922,15.25325 -15.77922,15.25325 0,0 0.67179,3.16927 3.5065,5.25974 2.83471,2.09047 8.38145,3.76037 13.14934,4.20779 4.76789,0.44742 13.85065,-1.4026 13.85065,-1.4026 0,0 12.29324,-11.66863 14.02598,-15.42857 1.73274,-3.75994 2.03261,-5.15991 -0.52598,-8.24026 -2.55859,-3.08035 -12.14609,-5.17676 -16.30519,-5.25974 z"
id="path26868"
sodipodi:nodetypes="zzzczzczzz" />
<path
style="fill:#ffd5d5;fill-opacity:1;stroke:none;stroke-width:0.529167"
d="m 222.13636,121.67533 c 0,0 -7.56257,6.3821 -10.51948,10.87012 -2.95691,4.48803 -5.26412,6.17052 -5.61039,8.59092 -0.34626,2.4204 3.9708,4.81046 6.13637,7.01298 2.16556,2.20253 7.36363,6.48701 7.36363,6.48701 l 8.76624,-5.43506 -11.74676,-9.64285 4.73377,-7.01299 4.38312,-6.83766 z"
id="path27200"
sodipodi:nodetypes="czzzcccccc" />
<path
style="fill:#ff7f2a;fill-opacity:1;stroke:none;stroke-width:0.529167"
d="m 219.68182,141.48701 c 0,0 -4.04498,0.81055 -5.5486,1.95013 -1.50362,1.13958 -2.86699,5.06286 -2.86699,5.06286 l 9.11689,7.36364 10.62401,-7.01481 c 0,0 -2.15692,-2.19401 -3.92106,-3.73782 -1.76415,-1.5438 -7.40425,-3.624 -7.40425,-3.624 z"
id="path27601"
sodipodi:nodetypes="czccczc" />
<path
style="fill:#ffd5d5;fill-opacity:1;stroke:none;stroke-width:0.529167"
d="m 242.56455,132.95768 c 1.00598,0.7943 3.02132,1.35103 4.21508,2.04557 1.19376,0.69454 2.04556,3.71919 2.04556,3.71919 l 4.40106,-2.2935 c 0,0 0.7895,-2.17877 0.062,-3.65721 -0.72753,-1.47844 -1.09112,-2.82584 -2.2935,-3.59523 -1.20238,-0.76939 -4.92063,-2.42497 -6.57058,-1.92159 -1.64995,0.50338 -2.75191,1.16128 -3.09934,2.35549 -0.34743,1.19421 0.23376,2.55298 1.23974,3.34728 z"
id="path27732"
sodipodi:nodetypes="zzcczzzzzz" />
<path
style="fill:#ffd5d5;fill-opacity:1;stroke:none;stroke-width:0.529167"
d="m 245.10599,162.27736 c 0,0 12.05528,0.64153 14.75281,-2.23152 2.69753,-2.87305 -2.10275,-13.66253 -3.96714,-18.47202 -1.86439,-4.80949 -6.07469,-10.41375 -6.07469,-10.41375 l -3.47125,3.47125 c 0,0 3.60059,6.03049 4.33906,9.54595 0.73847,3.51545 0.86782,9.54593 0.86782,9.54593 l -5.82675,0.99179 z"
id="path27657"
sodipodi:nodetypes="czzcczccc" />
<path
style="fill:#ffd5d5;fill-opacity:1;stroke:none;stroke-width:0.529167"
d="m 231.95454,144.81818 c -1.18839,2.12145 0.8543,3.82442 2.27922,4.90909 1.42492,1.08467 3.63193,1.23489 5.25975,0.87663 1.62782,-0.35826 3.4857,-1.09864 3.85714,-2.62987 0.37144,-1.53123 -1.57793,-4.20779 -2.27922,-4.20779 -0.70129,0 -7.9285,-1.06951 -9.11689,1.05194 z"
id="path28034"
sodipodi:nodetypes="zzzzzz" />
<path
style="fill:#ffd5d5;fill-opacity:1;stroke:none;stroke-width:0.529167"
d="m 250.37486,139.28032 c 0,0 -3.52754,0.58154 -4.71098,-0.61987 -1.18344,-1.20141 -1.26507,-4.13763 -0.61987,-5.33084 0.6452,-1.19321 1.56815,-1.86563 2.47946,-1.23974 0.91131,0.62589 -0.97947,2.72571 -0.37192,3.84317 0.60755,1.11746 3.34728,1.73563 3.34728,1.73563 z"
id="path27730"
sodipodi:nodetypes="czzzzcc" />
<path
style="fill:#6c5353;fill-opacity:1;stroke:none;stroke-width:0.529167"
d="m 235.98701,127.63636 c -2.79595,1.58817 -6.40018,4.61382 -7.53896,8.06494 -1.13878,3.45112 0.70994,11.50084 3.33117,12.7987 2.62123,1.29785 2.28986,-1.75819 6.2816,-1.06441 3.99174,0.69378 1.38747,4.63403 6.07879,3.08064 4.69131,-1.55338 7.12033,-11.87174 6.22402,-15.69155 -0.89631,-3.81981 -3.32974,-7.78141 -6.31169,-8.94156 -2.98195,-1.16015 -5.26898,0.16507 -8.06493,1.75324 z"
id="path26866"
sodipodi:nodetypes="zzzzzzzz" />
<path
style="fill:#ff7f2a;fill-opacity:1;stroke:none;stroke-width:0.529167"
d="m 251.34848,152.66192 c 4.19606,2.19764 8.85682,5.70398 7.30454,9.26039 -6.16417,2.37067 -9.83172,1.5314 -14.53882,2.02869 l -1.36371,-5.45482 0.49589,-5.08291 z"
id="path27728"
sodipodi:nodetypes="cccccc" />
<g
id="g27838"
transform="rotate(31.874701,187.50745,242.53864)">
<path
style="fill:#000000;stroke:#000000;stroke-width:0.529167"
d="m 158.35714,116.5064 c 0,0 -8.28412,3.73801 -10.41375,5.95072 -2.12963,2.21271 -2.97536,5.70277 -2.97536,5.70277 0,0 2.82978,0.77704 5.95072,-0.24794 3.12094,-1.02498 11.40554,-7.68635 11.40554,-7.68635 z"
id="path27805"
sodipodi:nodetypes="czczcc" />
<ellipse
style="fill:#000000;stroke:#000000;stroke-width:0.529167"
id="ellipse27807"
cx="164.05992"
cy="116.13452"
rx="5.2068768"
ry="5.0829043" />
</g>
<path
style="fill:#ffd5d5;fill-opacity:1;stroke:none;stroke-width:0.529167"
d="m 217.4026,118.6948 c -2.35056,1.40115 -2.79402,3.30047 -3.33117,5.25975 -0.53715,1.95929 1.4026,4.03247 1.4026,4.03247 l 8.41558,-0.17533 c 2.37901,0.2081 3.88851,-0.0623 3.81331,-1.84091 0,0 -3.49834,-1.30412 -3.28734,-3.06818 0.211,-1.76406 4.51595,-2.60974 3.15585,-4.90909 -1.3601,-2.29935 -7.81828,-0.69986 -10.16883,0.70129 z"
id="path27840"
sodipodi:nodetypes="zzccczzz" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.6 KiB

View File

@ -0,0 +1,37 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://d2lxcrpuframt"
path="res://.godot/imported/tim_ducking.svg-ca7873cc128761502164ba1147bd4069.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://sprites/tim_ducking.svg"
dest_files=["res://.godot/imported/tim_ducking.svg-ca7873cc128761502164ba1147bd4069.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
svg/scale=1.0
editor/scale_with_editor_scale=false
editor/convert_colors_with_editor_theme=false

File diff suppressed because one or more lines are too long