From f152f203e479aac5745e54224e892cb7315fa995 Mon Sep 17 00:00:00 2001 From: tpart Date: Tue, 13 Aug 2024 19:49:26 +0200 Subject: Add robot character model --- client/player/character/character.gd | 27 +++++++++++--- client/player/character/character.tscn | 47 ++++++++++++++----------- client/player/character/default/hand_left.res | Bin 0 -> 11848 bytes client/player/character/default/hand_right.res | Bin 0 -> 11784 bytes client/player/character/default/head.res | Bin 0 -> 32308 bytes client/player/character/default/main.res | Bin 0 -> 30046 bytes client/player/character/default/tie.res | Bin 0 -> 6126 bytes client/player/character/hair.res | Bin 16938 -> 0 bytes client/player/character/hair_2.res | Bin 16368 -> 0 bytes client/player/character/hair_3.res | Bin 19738 -> 0 bytes client/player/character/hairstyles/hair.res | Bin 0 -> 16938 bytes client/player/character/hairstyles/hair_2.res | Bin 0 -> 16368 bytes client/player/character/hairstyles/hair_3.res | Bin 0 -> 19738 bytes client/player/character/hand_left.res | Bin 11848 -> 0 bytes client/player/character/hand_right.res | Bin 11784 -> 0 bytes client/player/character/head.res | Bin 32308 -> 0 bytes client/player/character/main.res | Bin 30046 -> 0 bytes client/player/character/robot/antenna.res | Bin 0 -> 4933 bytes client/player/character/robot/body.res | Bin 0 -> 30064 bytes client/player/character/robot/ears.res | Bin 0 -> 10615 bytes client/player/character/robot/face.webp | Bin 0 -> 1196 bytes client/player/character/robot/face.webp.import | 36 +++++++++++++++++++ client/player/character/robot/head.res | Bin 0 -> 4020 bytes client/player/character/robot/head.tscn | 20 +++++++++++ client/player/character/tie.res | Bin 6126 -> 0 bytes 25 files changed, 105 insertions(+), 25 deletions(-) create mode 100644 client/player/character/default/hand_left.res create mode 100644 client/player/character/default/hand_right.res create mode 100644 client/player/character/default/head.res create mode 100644 client/player/character/default/main.res create mode 100644 client/player/character/default/tie.res delete mode 100644 client/player/character/hair.res delete mode 100644 client/player/character/hair_2.res delete mode 100644 client/player/character/hair_3.res create mode 100644 client/player/character/hairstyles/hair.res create mode 100644 client/player/character/hairstyles/hair_2.res create mode 100644 client/player/character/hairstyles/hair_3.res delete mode 100644 client/player/character/hand_left.res delete mode 100644 client/player/character/hand_right.res delete mode 100644 client/player/character/head.res delete mode 100644 client/player/character/main.res create mode 100644 client/player/character/robot/antenna.res create mode 100644 client/player/character/robot/body.res create mode 100644 client/player/character/robot/ears.res create mode 100644 client/player/character/robot/face.webp create mode 100644 client/player/character/robot/face.webp.import create mode 100644 client/player/character/robot/head.res create mode 100644 client/player/character/robot/head.tscn delete mode 100644 client/player/character/tie.res (limited to 'client') 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/default/hand_left.res b/client/player/character/default/hand_left.res new file mode 100644 index 00000000..8736dad6 Binary files /dev/null and b/client/player/character/default/hand_left.res differ diff --git a/client/player/character/default/hand_right.res b/client/player/character/default/hand_right.res new file mode 100644 index 00000000..44e3683d Binary files /dev/null and b/client/player/character/default/hand_right.res differ diff --git a/client/player/character/default/head.res b/client/player/character/default/head.res new file mode 100644 index 00000000..69be33e7 Binary files /dev/null and b/client/player/character/default/head.res differ diff --git a/client/player/character/default/main.res b/client/player/character/default/main.res new file mode 100644 index 00000000..3ad69367 Binary files /dev/null and b/client/player/character/default/main.res differ diff --git a/client/player/character/default/tie.res b/client/player/character/default/tie.res new file mode 100644 index 00000000..406a4779 Binary files /dev/null and b/client/player/character/default/tie.res differ diff --git a/client/player/character/hair.res b/client/player/character/hair.res deleted file mode 100644 index bea01119..00000000 Binary files a/client/player/character/hair.res and /dev/null differ diff --git a/client/player/character/hair_2.res b/client/player/character/hair_2.res deleted file mode 100644 index 5d41a4b5..00000000 Binary files a/client/player/character/hair_2.res and /dev/null differ diff --git a/client/player/character/hair_3.res b/client/player/character/hair_3.res deleted file mode 100644 index 911afa30..00000000 Binary files a/client/player/character/hair_3.res and /dev/null differ diff --git a/client/player/character/hairstyles/hair.res b/client/player/character/hairstyles/hair.res new file mode 100644 index 00000000..bea01119 Binary files /dev/null and b/client/player/character/hairstyles/hair.res differ diff --git a/client/player/character/hairstyles/hair_2.res b/client/player/character/hairstyles/hair_2.res new file mode 100644 index 00000000..5d41a4b5 Binary files /dev/null and b/client/player/character/hairstyles/hair_2.res differ diff --git a/client/player/character/hairstyles/hair_3.res b/client/player/character/hairstyles/hair_3.res new file mode 100644 index 00000000..911afa30 Binary files /dev/null and b/client/player/character/hairstyles/hair_3.res differ diff --git a/client/player/character/hand_left.res b/client/player/character/hand_left.res deleted file mode 100644 index 8736dad6..00000000 Binary files a/client/player/character/hand_left.res and /dev/null differ diff --git a/client/player/character/hand_right.res b/client/player/character/hand_right.res deleted file mode 100644 index 44e3683d..00000000 Binary files a/client/player/character/hand_right.res and /dev/null differ diff --git a/client/player/character/head.res b/client/player/character/head.res deleted file mode 100644 index 69be33e7..00000000 Binary files a/client/player/character/head.res and /dev/null differ diff --git a/client/player/character/main.res b/client/player/character/main.res deleted file mode 100644 index 3ad69367..00000000 Binary files a/client/player/character/main.res and /dev/null differ diff --git a/client/player/character/robot/antenna.res b/client/player/character/robot/antenna.res new file mode 100644 index 00000000..11416ebf Binary files /dev/null and b/client/player/character/robot/antenna.res differ diff --git a/client/player/character/robot/body.res b/client/player/character/robot/body.res new file mode 100644 index 00000000..b82147d3 Binary files /dev/null and b/client/player/character/robot/body.res differ diff --git a/client/player/character/robot/ears.res b/client/player/character/robot/ears.res new file mode 100644 index 00000000..a41c80e7 Binary files /dev/null and b/client/player/character/robot/ears.res differ diff --git a/client/player/character/robot/face.webp b/client/player/character/robot/face.webp new file mode 100644 index 00000000..2a0808aa Binary files /dev/null and b/client/player/character/robot/face.webp 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 Binary files /dev/null and b/client/player/character/robot/head.res 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("") diff --git a/client/player/character/tie.res b/client/player/character/tie.res deleted file mode 100644 index 406a4779..00000000 Binary files a/client/player/character/tie.res and /dev/null differ -- cgit v1.2.3-70-g09d2