aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortpart <tpart120@proton.me>2024-08-13 19:49:26 +0200
committertpart <tpart120@proton.me>2024-08-13 19:49:47 +0200
commitf152f203e479aac5745e54224e892cb7315fa995 (patch)
tree8c6f6ada7aa4141892d30b7aa4332097b01aa478
parentf24a9001ef0fafcdbcf20e23eef67f4b71dcf3a5 (diff)
downloadhurrycurry-f152f203e479aac5745e54224e892cb7315fa995.tar
hurrycurry-f152f203e479aac5745e54224e892cb7315fa995.tar.bz2
hurrycurry-f152f203e479aac5745e54224e892cb7315fa995.tar.zst
Add robot character model
-rw-r--r--client/player/character/character.gd27
-rw-r--r--client/player/character/character.tscn47
-rw-r--r--client/player/character/default/hand_left.res (renamed from client/player/character/hand_left.res)bin11848 -> 11848 bytes
-rw-r--r--client/player/character/default/hand_right.res (renamed from client/player/character/hand_right.res)bin11784 -> 11784 bytes
-rw-r--r--client/player/character/default/head.res (renamed from client/player/character/head.res)bin32308 -> 32308 bytes
-rw-r--r--client/player/character/default/main.res (renamed from client/player/character/main.res)bin30046 -> 30046 bytes
-rw-r--r--client/player/character/default/tie.res (renamed from client/player/character/tie.res)bin6126 -> 6126 bytes
-rw-r--r--client/player/character/hairstyles/hair.res (renamed from client/player/character/hair.res)bin16938 -> 16938 bytes
-rw-r--r--client/player/character/hairstyles/hair_2.res (renamed from client/player/character/hair_2.res)bin16368 -> 16368 bytes
-rw-r--r--client/player/character/hairstyles/hair_3.res (renamed from client/player/character/hair_3.res)bin19738 -> 19738 bytes
-rw-r--r--client/player/character/robot/antenna.resbin0 -> 4933 bytes
-rw-r--r--client/player/character/robot/body.resbin0 -> 30064 bytes
-rw-r--r--client/player/character/robot/ears.resbin0 -> 10615 bytes
-rw-r--r--client/player/character/robot/face.webpbin0 -> 1196 bytes
-rw-r--r--client/player/character/robot/face.webp.import36
-rw-r--r--client/player/character/robot/head.resbin0 -> 4020 bytes
-rw-r--r--client/player/character/robot/head.tscn20
17 files changed, 105 insertions, 25 deletions
diff --git a/client/player/character/character.gd b/client/player/character/character.gd
index d15ac61e..31d5230e 100644
--- a/client/player/character/character.gd
+++ b/client/player/character/character.gd
@@ -17,7 +17,10 @@
extends Node3D
class_name Character
+const DEFAULT_MAIN_MESH = preload("res://player/character/default/main.res")
const CUSTOMER_MAIN_MESH = preload("res://player/character/customer_body.res")
+const ROBOT_MAIN_MESH = preload("res://player/character/robot/body.res")
+
const WALK_ANIM_STRENGTH := 0.05
const WALK_ANIM_SPEED:= 15.0
@@ -37,12 +40,15 @@ var current_animation := "idle"
@onready var username_tag = $Username
@onready var tie = $Main/Tie
-@onready var hairstyles = {
- "Brown": $Main/Head/Hair,
- "Blond": $Main/Head/Hair2,
- "E. Parsley": $Main/Head/Hair3
+@onready var hairstyles := {
+ "Brown": $Main/HeadDefault/Hair,
+ "Blond": $Main/HeadDefault/Hair2,
+ "E. Parsley": $Main/HeadDefault/Hair3
}
+@onready var head_default: MeshInstance3D = $Main/HeadDefault
+@onready var head_robot: MeshInstance3D = $Main/HeadRobot
+
@onready var step_sounds: PlayRandom = $Steps
@onready var boost_sounds: PlayRandom = $Boosts
@@ -79,6 +85,9 @@ func _process(delta):
play_animation(next_animation)
func select_hairstyle(id: int):
+ if id == 51:
+ toggle_robot(true)
+ return
if id < 0:
to_customer()
id *= -1
@@ -95,6 +104,16 @@ func to_customer():
main.mesh = CUSTOMER_MAIN_MESH
tie.queue_free()
+func toggle_robot(b: bool):
+ if b:
+ head_robot.show()
+ head_default.hide()
+ main.mesh = ROBOT_MAIN_MESH
+ else:
+ head_robot.hide()
+ head_default.show()
+ main.mesh = DEFAULT_MAIN_MESH
+
func play_animation(name_: String):
current_animation = name_
hand_animations.play(name_)
diff --git a/client/player/character/character.tscn b/client/player/character/character.tscn
index b3d524f6..0957eb68 100644
--- a/client/player/character/character.tscn
+++ b/client/player/character/character.tscn
@@ -1,15 +1,16 @@
-[gd_scene load_steps=24 format=3 uid="uid://b3hhir2fvnunu"]
+[gd_scene load_steps=25 format=3 uid="uid://b3hhir2fvnunu"]
[ext_resource type="Script" path="res://player/character/character.gd" id="1_12lbh"]
-[ext_resource type="ArrayMesh" uid="uid://bnmm01yjwultj" path="res://player/character/main.res" id="2_lxdbd"]
-[ext_resource type="ArrayMesh" uid="uid://46sp3fu3n6ls" path="res://player/character/hand_right.res" id="3_26h3l"]
-[ext_resource type="ArrayMesh" uid="uid://r52cylox4imf" path="res://player/character/hand_left.res" id="4_ellbc"]
-[ext_resource type="ArrayMesh" uid="uid://csryncouqhwp1" path="res://player/character/head.res" id="5_tyg2e"]
-[ext_resource type="ArrayMesh" uid="uid://bsxmxq4dfv2vy" path="res://player/character/hair.res" id="6_rfl5m"]
-[ext_resource type="ArrayMesh" uid="uid://dx7jswwaesok4" path="res://player/character/hair_2.res" id="7_0551e"]
-[ext_resource type="ArrayMesh" uid="uid://c2qnwt44x8ujl" path="res://player/character/tie.res" id="7_knv6q"]
-[ext_resource type="ArrayMesh" uid="uid://c5qsthvtf3cta" path="res://player/character/hair_3.res" id="8_2bc5u"]
+[ext_resource type="ArrayMesh" uid="uid://bnmm01yjwultj" path="res://player/character/default/main.res" id="2_uovyg"]
+[ext_resource type="ArrayMesh" uid="uid://46sp3fu3n6ls" path="res://player/character/default/hand_right.res" id="3_k28vh"]
+[ext_resource type="ArrayMesh" uid="uid://r52cylox4imf" path="res://player/character/default/hand_left.res" id="4_tcrm3"]
+[ext_resource type="ArrayMesh" uid="uid://csryncouqhwp1" path="res://player/character/default/head.res" id="5_n1vl0"]
+[ext_resource type="ArrayMesh" uid="uid://bsxmxq4dfv2vy" path="res://player/character/hairstyles/hair.res" id="6_3uydp"]
+[ext_resource type="ArrayMesh" uid="uid://dx7jswwaesok4" path="res://player/character/hairstyles/hair_2.res" id="7_1403k"]
+[ext_resource type="ArrayMesh" uid="uid://c5qsthvtf3cta" path="res://player/character/hairstyles/hair_3.res" id="8_x5g32"]
+[ext_resource type="ArrayMesh" uid="uid://c2qnwt44x8ujl" path="res://player/character/default/tie.res" id="9_kgric"]
[ext_resource type="AudioStream" uid="uid://bxiorkb4xb8t1" path="res://player/sounds/step1.ogg" id="10_qpd6x"]
+[ext_resource type="PackedScene" uid="uid://c6sqsj7r03qp1" path="res://player/character/robot/head.tscn" id="10_w8s0d"]
[ext_resource type="AudioStream" uid="uid://l2fd8u7rq3cq" path="res://player/sounds/step2.ogg" id="11_2dmo8"]
[ext_resource type="AudioStream" uid="uid://d353uwy83crca" path="res://player/sounds/step3.ogg" id="12_bj5ue"]
[ext_resource type="Script" path="res://audio/play_random.gd" id="14_3rb6x"]
@@ -586,46 +587,50 @@ script = ExtResource("1_12lbh")
[node name="Main" type="MeshInstance3D" parent="."]
transform = Transform3D(0.33, 0, 0, 0, 0.33, 0, 0, 0, 0.33, 0, 0.33, 0)
-mesh = ExtResource("2_lxdbd")
+mesh = ExtResource("2_uovyg")
skeleton = NodePath("")
[node name="HandRight" type="MeshInstance3D" parent="Main"]
transform = Transform3D(0.287144, 0.2864, -1.17785e-06, 0.402357, -0.133775, 0.337554, 0.292329, -0.0971941, -0.464603, -1.302, -0.17, 0)
-mesh = ExtResource("3_26h3l")
+mesh = ExtResource("3_k28vh")
skeleton = NodePath("")
[node name="HandLeft" type="MeshInstance3D" parent="Main"]
transform = Transform3D(0.287143, -0.2864, 1.45591e-06, -0.497341, -0.165355, -2.37987e-16, 7.2796e-07, -7.26076e-07, -0.574281, 1.302, -0.17, 0)
-mesh = ExtResource("4_ellbc")
+mesh = ExtResource("4_tcrm3")
skeleton = NodePath("")
-[node name="Head" type="MeshInstance3D" parent="Main"]
+[node name="HeadDefault" type="MeshInstance3D" parent="Main"]
transform = Transform3D(0.75, 0, 0, 0, 0.75, 0, 0, 0, 0.75, 0, 1.25, 0)
-mesh = ExtResource("5_tyg2e")
+mesh = ExtResource("5_n1vl0")
skeleton = NodePath("")
-[node name="Hair" type="MeshInstance3D" parent="Main/Head"]
+[node name="Hair" type="MeshInstance3D" parent="Main/HeadDefault"]
transform = Transform3D(1.06667, 0, 0, 0, 1.06667, 0, 0, 0, 1.06667, 0, 0.4, 0)
-mesh = ExtResource("6_rfl5m")
+mesh = ExtResource("6_3uydp")
skeleton = NodePath("")
-[node name="Hair2" type="MeshInstance3D" parent="Main/Head"]
+[node name="Hair2" type="MeshInstance3D" parent="Main/HeadDefault"]
transform = Transform3D(1.06667, 0, 0, 0, 1.06667, 0, 0, 0, 1.06667, 0, 0.4, 0)
visible = false
-mesh = ExtResource("7_0551e")
+mesh = ExtResource("7_1403k")
skeleton = NodePath("")
-[node name="Hair3" type="MeshInstance3D" parent="Main/Head"]
+[node name="Hair3" type="MeshInstance3D" parent="Main/HeadDefault"]
transform = Transform3D(1.06667, 0, 0, 0, 1.06667, 0, 0, 0, 1.06667, 0, 0.4, 0)
visible = false
-mesh = ExtResource("8_2bc5u")
+mesh = ExtResource("8_x5g32")
skeleton = NodePath("")
[node name="Tie" type="MeshInstance3D" parent="Main"]
transform = Transform3D(0.125, 0, 0, 0, 0.125, 0, 0, 0, 0.125, 0, 0.47772, 0.445265)
-mesh = ExtResource("7_knv6q")
+mesh = ExtResource("9_kgric")
skeleton = NodePath("")
+[node name="HeadRobot" parent="Main" instance=ExtResource("10_w8s0d")]
+transform = Transform3D(1.875, 0, 0, 0, 1.25, 0, 0, 0, 1.25, 0, 1.25, 0)
+visible = false
+
[node name="HandAnimations" type="AnimationPlayer" parent="."]
libraries = {
"": SubResource("AnimationLibrary_xtrfe")
diff --git a/client/player/character/hand_left.res b/client/player/character/default/hand_left.res
index 8736dad6..8736dad6 100644
--- a/client/player/character/hand_left.res
+++ b/client/player/character/default/hand_left.res
Binary files differ
diff --git a/client/player/character/hand_right.res b/client/player/character/default/hand_right.res
index 44e3683d..44e3683d 100644
--- a/client/player/character/hand_right.res
+++ b/client/player/character/default/hand_right.res
Binary files differ
diff --git a/client/player/character/head.res b/client/player/character/default/head.res
index 69be33e7..69be33e7 100644
--- a/client/player/character/head.res
+++ b/client/player/character/default/head.res
Binary files differ
diff --git a/client/player/character/main.res b/client/player/character/default/main.res
index 3ad69367..3ad69367 100644
--- a/client/player/character/main.res
+++ b/client/player/character/default/main.res
Binary files differ
diff --git a/client/player/character/tie.res b/client/player/character/default/tie.res
index 406a4779..406a4779 100644
--- a/client/player/character/tie.res
+++ b/client/player/character/default/tie.res
Binary files differ
diff --git a/client/player/character/hair.res b/client/player/character/hairstyles/hair.res
index bea01119..bea01119 100644
--- a/client/player/character/hair.res
+++ b/client/player/character/hairstyles/hair.res
Binary files differ
diff --git a/client/player/character/hair_2.res b/client/player/character/hairstyles/hair_2.res
index 5d41a4b5..5d41a4b5 100644
--- a/client/player/character/hair_2.res
+++ b/client/player/character/hairstyles/hair_2.res
Binary files differ
diff --git a/client/player/character/hair_3.res b/client/player/character/hairstyles/hair_3.res
index 911afa30..911afa30 100644
--- a/client/player/character/hair_3.res
+++ b/client/player/character/hairstyles/hair_3.res
Binary files differ
diff --git a/client/player/character/robot/antenna.res b/client/player/character/robot/antenna.res
new file mode 100644
index 00000000..11416ebf
--- /dev/null
+++ b/client/player/character/robot/antenna.res
Binary files differ
diff --git a/client/player/character/robot/body.res b/client/player/character/robot/body.res
new file mode 100644
index 00000000..b82147d3
--- /dev/null
+++ b/client/player/character/robot/body.res
Binary files differ
diff --git a/client/player/character/robot/ears.res b/client/player/character/robot/ears.res
new file mode 100644
index 00000000..a41c80e7
--- /dev/null
+++ b/client/player/character/robot/ears.res
Binary files differ
diff --git a/client/player/character/robot/face.webp b/client/player/character/robot/face.webp
new file mode 100644
index 00000000..2a0808aa
--- /dev/null
+++ b/client/player/character/robot/face.webp
Binary files differ
diff --git a/client/player/character/robot/face.webp.import b/client/player/character/robot/face.webp.import
new file mode 100644
index 00000000..390dfa02
--- /dev/null
+++ b/client/player/character/robot/face.webp.import
@@ -0,0 +1,36 @@
+[remap]
+
+importer="texture"
+type="CompressedTexture2D"
+uid="uid://ck26gfqasow26"
+path.s3tc="res://.godot/imported/face.webp-90afa5549ff02b63c82faeaa147cf172.s3tc.ctex"
+path.etc2="res://.godot/imported/face.webp-90afa5549ff02b63c82faeaa147cf172.etc2.ctex"
+metadata={
+"imported_formats": ["s3tc_bptc", "etc2_astc"],
+"vram_texture": true
+}
+
+[deps]
+
+source_file="res://player/character/robot/face.webp"
+dest_files=["res://.godot/imported/face.webp-90afa5549ff02b63c82faeaa147cf172.s3tc.ctex", "res://.godot/imported/face.webp-90afa5549ff02b63c82faeaa147cf172.etc2.ctex"]
+
+[params]
+
+compress/mode=2
+compress/high_quality=false
+compress/lossy_quality=0.7
+compress/hdr_compression=1
+compress/normal_map=0
+compress/channel_pack=0
+mipmaps/generate=true
+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=0
diff --git a/client/player/character/robot/head.res b/client/player/character/robot/head.res
new file mode 100644
index 00000000..36032f3b
--- /dev/null
+++ b/client/player/character/robot/head.res
Binary files differ
diff --git a/client/player/character/robot/head.tscn b/client/player/character/robot/head.tscn
new file mode 100644
index 00000000..1684131d
--- /dev/null
+++ b/client/player/character/robot/head.tscn
@@ -0,0 +1,20 @@
+[gd_scene load_steps=4 format=3 uid="uid://c6sqsj7r03qp1"]
+
+[ext_resource type="ArrayMesh" uid="uid://b6jg603dkd4ys" path="res://player/character/robot/head.res" id="1_phkuo"]
+[ext_resource type="ArrayMesh" uid="uid://d06pr5ahve2ni" path="res://player/character/robot/ears.res" id="2_2lybj"]
+[ext_resource type="ArrayMesh" uid="uid://cv86smrevtpid" path="res://player/character/robot/antenna.res" id="3_dmtg5"]
+
+[node name="Head" type="MeshInstance3D"]
+transform = Transform3D(1.875, 0, 0, 0, 1.25, 0, 0, 0, 1.25, 0, 2.125, 0)
+mesh = ExtResource("1_phkuo")
+skeleton = NodePath("")
+
+[node name="Ears" type="MeshInstance3D" parent="."]
+transform = Transform3D(0, 0.533333, 0, -0.24, 0, 0, 0, 0, 0.24, 0, 0, 0)
+mesh = ExtResource("2_2lybj")
+skeleton = NodePath("")
+
+[node name="Antenna" type="MeshInstance3D" parent="."]
+transform = Transform3D(0.533333, 0, 0, 0, 0.8, 0, 0, 0, 0.8, 0, 0.7, 0)
+mesh = ExtResource("3_dmtg5")
+skeleton = NodePath("")