Compare commits

..

No commits in common. "7adfcc2766c65075bbd3a509a693d8c90271c96c" and "8abfb9123731a859b40f2af2fb97a35479494950" have entirely different histories.

11 changed files with 23 additions and 53 deletions

View File

@ -1,7 +0,0 @@
extends Node3D
func _ready():
set_as_top_level(true)
func _process(delta):
global_transform.origin = $"../grape_man".get_pickup_bone_location()

View File

@ -1,7 +1,6 @@
extends Node3D extends Node3D
@onready var animation: AnimationNodeStateMachinePlayback = $AnimationTree.get("parameters/playback") @onready var animation: AnimationNodeStateMachinePlayback = $AnimationTree.get("parameters/playback")
@onready var pickup_bone_idx = $rig/Skeleton3D.find_bone("PickupBone")
signal anim_check_grab(position: Vector3) signal anim_check_grab(position: Vector3)
@ -29,12 +28,8 @@ func idle_hold():
animation.travel("IdleHold") animation.travel("IdleHold")
func animation_key_grab(): func animation_key_grab():
emit_signal("anim_check_grab", get_pickup_bone_location()) emit_signal("anim_check_grab", $GrabPointLocation.global_transform)
func get_pickup_bone_location() -> Vector3:
var trans = $rig/Skeleton3D.global_transform * $rig/Skeleton3D.get_bone_global_pose(pickup_bone_idx)
return trans.origin
func animation_key_pickup_completed(): func animation_key_pickup_completed():
pickup_animation_in_progress = false pickup_animation_in_progress = false
emit_signal("pickup_animation_finished") emit_signal("pickup_animation_finished")

View File

@ -1,12 +1,10 @@
[gd_scene load_steps=40 format=3 uid="uid://bgoo1lbt28na"] [gd_scene load_steps=37 format=3 uid="uid://bgoo1lbt28na"]
[ext_resource type="PackedScene" uid="uid://bhanbx2dyhv2d" path="res://Models/grape_man.glb" id="1_fh5yr"] [ext_resource type="PackedScene" uid="uid://bhanbx2dyhv2d" path="res://Models/grape_man.glb" id="1_fh5yr"]
[ext_resource type="Script" path="res://Models/grape_man.gd" id="2_ksje8"] [ext_resource type="Script" path="res://Models/grape_man.gd" id="2_ksje8"]
[ext_resource type="AudioStream" uid="uid://csboqs15k3vps" path="res://Sounds/dropgrunt.ogg" id="3_c648b"]
[ext_resource type="AudioStream" uid="uid://baocyd0p3jcku" path="res://Sounds/pickup_grunt.ogg" id="4_nvurj"]
[ext_resource type="AudioStream" uid="uid://b80t5xqckjoqk" path="res://Sounds/heartychuckle.ogg" id="5_b32re"]
[sub_resource type="AnimationNodeAdd2" id="AnimationNodeAdd2_a0vxm"] [sub_resource type="AnimationNodeAdd2" id="AnimationNodeAdd2_a0vxm"]
filter_enabled = true
filters = ["rig/Skeleton3D:forearm.L", "rig/Skeleton3D:forearm.R", "rig/Skeleton3D:head", "rig/Skeleton3D:upper_arm.L", "rig/Skeleton3D:upper_arm.R"] filters = ["rig/Skeleton3D:forearm.L", "rig/Skeleton3D:forearm.R", "rig/Skeleton3D:head", "rig/Skeleton3D:upper_arm.L", "rig/Skeleton3D:upper_arm.R"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_s8uqe"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_s8uqe"]
@ -16,7 +14,7 @@ animation = &"UpperBodyIdle"
animation = &"Idle" animation = &"Idle"
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_ojr1k"] [sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_ojr1k"]
graph_offset = Vector2(-74, 44) graph_offset = Vector2(-312, -69)
nodes/Add2/node = SubResource("AnimationNodeAdd2_a0vxm") nodes/Add2/node = SubResource("AnimationNodeAdd2_a0vxm")
nodes/Add2/position = Vector2(160, 80) nodes/Add2/position = Vector2(160, 80)
nodes/Animation/node = SubResource("AnimationNodeAnimation_4ft7i") nodes/Animation/node = SubResource("AnimationNodeAnimation_4ft7i")
@ -26,6 +24,7 @@ nodes/Animation/position = Vector2(0, 80)
node_connections = [&"output", 0, &"Add2", &"Add2", 0, &"Animation", &"Add2", 1, &"Animation 2"] node_connections = [&"output", 0, &"Add2", &"Add2", 0, &"Animation", &"Add2", 1, &"Animation 2"]
[sub_resource type="AnimationNodeAdd2" id="AnimationNodeAdd2_4gk6k"] [sub_resource type="AnimationNodeAdd2" id="AnimationNodeAdd2_4gk6k"]
filter_enabled = true
filters = ["rig/Skeleton3D:forearm.L", "rig/Skeleton3D:forearm.R", "rig/Skeleton3D:head", "rig/Skeleton3D:upper_arm.L", "rig/Skeleton3D:upper_arm.R"] filters = ["rig/Skeleton3D:forearm.L", "rig/Skeleton3D:forearm.R", "rig/Skeleton3D:head", "rig/Skeleton3D:upper_arm.L", "rig/Skeleton3D:upper_arm.R"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_alnh1"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_alnh1"]
@ -49,6 +48,7 @@ node_connections = [&"output", 0, &"Add2", &"Add2", 0, &"Animation", &"Add2", 1,
animation = &"Pickup" animation = &"Pickup"
[sub_resource type="AnimationNodeAdd2" id="AnimationNodeAdd2_rd6bn"] [sub_resource type="AnimationNodeAdd2" id="AnimationNodeAdd2_rd6bn"]
filter_enabled = true
filters = ["rig/Skeleton3D:forearm.L", "rig/Skeleton3D:forearm.R", "rig/Skeleton3D:head", "rig/Skeleton3D:upper_arm.L", "rig/Skeleton3D:upper_arm.R"] filters = ["rig/Skeleton3D:forearm.L", "rig/Skeleton3D:forearm.R", "rig/Skeleton3D:head", "rig/Skeleton3D:upper_arm.L", "rig/Skeleton3D:upper_arm.R"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_7s7tg"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_7s7tg"]
@ -58,7 +58,7 @@ animation = &"UpperBodyIdle"
animation = &"Walk" animation = &"Walk"
[sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_6rmmo"] [sub_resource type="AnimationNodeBlendTree" id="AnimationNodeBlendTree_6rmmo"]
graph_offset = Vector2(-384.186, 6.2577) graph_offset = Vector2(-358.186, -79.7423)
nodes/Add2/node = SubResource("AnimationNodeAdd2_rd6bn") nodes/Add2/node = SubResource("AnimationNodeAdd2_rd6bn")
nodes/Add2/position = Vector2(140, 80) nodes/Add2/position = Vector2(140, 80)
nodes/Animation/node = SubResource("AnimationNodeAnimation_ir63n") nodes/Animation/node = SubResource("AnimationNodeAnimation_ir63n")
@ -68,6 +68,7 @@ nodes/Animation/position = Vector2(-40, 60)
node_connections = [&"output", 0, &"Add2", &"Add2", 0, &"Animation", &"Add2", 1, &"Animation 2"] node_connections = [&"output", 0, &"Add2", &"Add2", 0, &"Animation", &"Add2", 1, &"Animation 2"]
[sub_resource type="AnimationNodeAdd2" id="AnimationNodeAdd2_sv87c"] [sub_resource type="AnimationNodeAdd2" id="AnimationNodeAdd2_sv87c"]
filter_enabled = true
filters = ["rig/Skeleton3D:forearm.L", "rig/Skeleton3D:forearm.R", "rig/Skeleton3D:head", "rig/Skeleton3D:upper_arm.L", "rig/Skeleton3D:upper_arm.R"] filters = ["rig/Skeleton3D:forearm.L", "rig/Skeleton3D:forearm.R", "rig/Skeleton3D:head", "rig/Skeleton3D:upper_arm.L", "rig/Skeleton3D:upper_arm.R"]
[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_y7bu0"] [sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_y7bu0"]
@ -146,14 +147,14 @@ states/WalkEmpty/position = Vector2(548, 208)
states/WalkHold/node = SubResource("AnimationNodeBlendTree_kalnq") states/WalkHold/node = SubResource("AnimationNodeBlendTree_kalnq")
states/WalkHold/position = Vector2(351, 323) states/WalkHold/position = Vector2(351, 323)
transitions = ["Start", "IdleEmpty", SubResource("AnimationNodeStateMachineTransition_8sw6d"), "IdleEmpty", "WalkHold", SubResource("AnimationNodeStateMachineTransition_71rn8"), "WalkHold", "IdleEmpty", SubResource("AnimationNodeStateMachineTransition_cp7lp"), "WalkEmpty", "IdleEmpty", SubResource("AnimationNodeStateMachineTransition_27n2r"), "IdleEmpty", "WalkEmpty", SubResource("AnimationNodeStateMachineTransition_v26jl"), "IdleHold", "WalkHold", SubResource("AnimationNodeStateMachineTransition_u0rau"), "IdleHold", "WalkEmpty", SubResource("AnimationNodeStateMachineTransition_1hqga"), "WalkEmpty", "IdleHold", SubResource("AnimationNodeStateMachineTransition_uekhs"), "WalkHold", "IdleHold", SubResource("AnimationNodeStateMachineTransition_652wi"), "IdleEmpty", "Pickup", SubResource("AnimationNodeStateMachineTransition_sdgve"), "Pickup", "IdleEmpty", SubResource("AnimationNodeStateMachineTransition_otprv"), "IdleEmpty", "IdleHold", SubResource("AnimationNodeStateMachineTransition_fbwhh"), "IdleHold", "IdleEmpty", SubResource("AnimationNodeStateMachineTransition_4rq7a"), "WalkHold", "WalkEmpty", SubResource("AnimationNodeStateMachineTransition_oange"), "WalkEmpty", "WalkHold", SubResource("AnimationNodeStateMachineTransition_et4tx"), "Pickup", "IdleHold", SubResource("AnimationNodeStateMachineTransition_y2dr5")] transitions = ["Start", "IdleEmpty", SubResource("AnimationNodeStateMachineTransition_8sw6d"), "IdleEmpty", "WalkHold", SubResource("AnimationNodeStateMachineTransition_71rn8"), "WalkHold", "IdleEmpty", SubResource("AnimationNodeStateMachineTransition_cp7lp"), "WalkEmpty", "IdleEmpty", SubResource("AnimationNodeStateMachineTransition_27n2r"), "IdleEmpty", "WalkEmpty", SubResource("AnimationNodeStateMachineTransition_v26jl"), "IdleHold", "WalkHold", SubResource("AnimationNodeStateMachineTransition_u0rau"), "IdleHold", "WalkEmpty", SubResource("AnimationNodeStateMachineTransition_1hqga"), "WalkEmpty", "IdleHold", SubResource("AnimationNodeStateMachineTransition_uekhs"), "WalkHold", "IdleHold", SubResource("AnimationNodeStateMachineTransition_652wi"), "IdleEmpty", "Pickup", SubResource("AnimationNodeStateMachineTransition_sdgve"), "Pickup", "IdleEmpty", SubResource("AnimationNodeStateMachineTransition_otprv"), "IdleEmpty", "IdleHold", SubResource("AnimationNodeStateMachineTransition_fbwhh"), "IdleHold", "IdleEmpty", SubResource("AnimationNodeStateMachineTransition_4rq7a"), "WalkHold", "WalkEmpty", SubResource("AnimationNodeStateMachineTransition_oange"), "WalkEmpty", "WalkHold", SubResource("AnimationNodeStateMachineTransition_et4tx"), "Pickup", "IdleHold", SubResource("AnimationNodeStateMachineTransition_y2dr5")]
graph_offset = Vector2(3, 172) graph_offset = Vector2(26, 89)
[node name="grape_man" instance=ExtResource("1_fh5yr")] [node name="grape_man" instance=ExtResource("1_fh5yr")]
transform = Transform3D(0.065, 0, 0, 0, 0.065, 0, 0, 0, 0.065, 0, 0, 0) transform = Transform3D(0.065, 0, 0, 0, 0.065, 0, 0, 0, 0.065, 0, 0, 0)
script = ExtResource("2_ksje8") script = ExtResource("2_ksje8")
[node name="Skeleton3D" parent="rig" index="0"] [node name="Skeleton3D" parent="rig" index="0"]
bones/0/rotation = Quaternion(0.10292, 0, 0, 0.99469) bones/0/rotation = Quaternion(0.0889611, 0, 0, 0.996035)
bones/1/rotation = Quaternion(-0.0891896, 1.18734e-07, -1.06322e-08, 0.996015) bones/1/rotation = Quaternion(-0.0891896, 1.18734e-07, -1.06322e-08, 0.996015)
bones/2/rotation = Quaternion(0.0133933, -1.19199e-07, 1.5966e-09, 0.99991) bones/2/rotation = Quaternion(0.0133933, -1.19199e-07, 1.5966e-09, 0.99991)
bones/3/rotation = Quaternion(-0.00997737, 0.100365, -0.694951, 0.711948) bones/3/rotation = Quaternion(-0.00997737, 0.100365, -0.694951, 0.711948)
@ -180,12 +181,3 @@ parameters/IdleEmpty/Add2/add_amount = 1.0
parameters/IdleHold/Add2/add_amount = 1.0 parameters/IdleHold/Add2/add_amount = 1.0
parameters/WalkEmpty/Add2/add_amount = 1.0 parameters/WalkEmpty/Add2/add_amount = 1.0
parameters/WalkHold/Add2/add_amount = 1.0 parameters/WalkHold/Add2/add_amount = 1.0
[node name="drop" type="AudioStreamPlayer" parent="." index="5"]
stream = ExtResource("3_c648b")
[node name="pickup" type="AudioStreamPlayer" parent="." index="6"]
stream = ExtResource("4_nvurj")
[node name="chuckle" type="AudioStreamPlayer" parent="." index="7"]
stream = ExtResource("5_b32re")

View File

@ -35,9 +35,7 @@ func _input(event):
var obj = holding.get_ref() var obj = holding.get_ref()
if obj: if obj:
holding = weakref(null) holding = weakref(null)
$grape_man/drop.play()
else: else:
$grape_man/pickup.play()
$grape_man.pickup() $grape_man.pickup()

View File

@ -18,7 +18,7 @@ force/max_rate=false
force/max_rate_hz=44100 force/max_rate_hz=44100
edit/trim=false edit/trim=false
edit/normalize=false edit/normalize=false
edit/loop_mode=2 edit/loop_mode=0
edit/loop_begin=0 edit/loop_begin=0
edit/loop_end=-1 edit/loop_end=-1
compress/mode=0 compress/mode=0

View File

@ -18,7 +18,7 @@ force/max_rate=false
force/max_rate_hz=44100 force/max_rate_hz=44100
edit/trim=false edit/trim=false
edit/normalize=false edit/normalize=false
edit/loop_mode=2 edit/loop_mode=0
edit/loop_begin=0 edit/loop_begin=0
edit/loop_end=-1 edit/loop_end=-1
compress/mode=0 compress/mode=0

View File

@ -1,23 +1,20 @@
[gd_scene load_steps=6 format=3 uid="uid://7utef1nnena8"] [gd_scene load_steps=4 format=3 uid="uid://7utef1nnena8"]
[ext_resource type="Script" path="res://Player.gd" id="1_7gpdp"] [ext_resource type="Script" path="res://Player.gd" id="1_7gpdp"]
[ext_resource type="PackedScene" uid="uid://bgoo1lbt28na" path="res://Models/grape_man.tscn" id="2_ctyy5"] [ext_resource type="PackedScene" uid="uid://bgoo1lbt28na" path="res://Models/grape_man.tscn" id="2_hg0av"]
[ext_resource type="Script" path="res://Holster.gd" id="3_a68da"]
[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_kb4ms"] [sub_resource type="CapsuleShape3D" id="CapsuleShape3D_kb4ms"]
radius = 0.06 radius = 0.06
height = 0.43 height = 0.43
[sub_resource type="SphereShape3D" id="SphereShape3D_6l1w6"]
[node name="Player" type="CharacterBody3D"] [node name="Player" type="CharacterBody3D"]
script = ExtResource("1_7gpdp") script = ExtResource("1_7gpdp")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."] [node name="CollisionShape3D" type="CollisionShape3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.21, 0) transform = Transform3D(0.225, 0, 0, 0, 0.225, 0, 0, 0, 0.145, 0, 0.21, 0)
shape = SubResource("CapsuleShape3D_kb4ms") shape = SubResource("CapsuleShape3D_kb4ms")
[node name="grape_man" parent="." instance=ExtResource("2_ctyy5")] [node name="grape_man" parent="." instance=ExtResource("2_hg0av")]
[node name="CameraMount" type="Node3D" parent="."] [node name="CameraMount" type="Node3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.3, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.3, 0)
@ -27,11 +24,4 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.39043)
current = true current = true
fov = 50.0 fov = 50.0
[node name="Holster" type="Node3D" parent="."] [connection signal="anim_check_grab" from="grape_man" to="." method="_on_grape_man_anim_check_grab"]
script = ExtResource("3_a68da")
[node name="Area3D" type="Area3D" parent="Holster"]
[node name="CollisionShape3D" type="CollisionShape3D" parent="Holster/Area3D"]
transform = Transform3D(0.1, 0, 0, 0, 0.1, 0, 0, 0, 0.1, 0, 0, 0)
shape = SubResource("SphereShape3D_6l1w6")

View File

@ -6,11 +6,13 @@
[sub_resource type="CapsuleMesh" id="CapsuleMesh_b3srs"] [sub_resource type="CapsuleMesh" id="CapsuleMesh_b3srs"]
[node name="CharacterBody3D" type="CharacterBody3D"] [node name="Node3D" type="Node3D"]
script = ExtResource("1_ardgw") script = ExtResource("1_ardgw")
[node name="CollisionShape3D" type="CollisionShape3D" parent="."] [node name="RigidBody3D" type="RigidBody3D" parent="."]
[node name="CollisionShape3D" type="CollisionShape3D" parent="RigidBody3D"]
shape = SubResource("CapsuleShape3D_s4x8n") shape = SubResource("CapsuleShape3D_s4x8n")
[node name="MeshInstance3D" type="MeshInstance3D" parent="CollisionShape3D"] [node name="MeshInstance3D" type="MeshInstance3D" parent="RigidBody3D/CollisionShape3D"]
mesh = SubResource("CapsuleMesh_b3srs") mesh = SubResource("CapsuleMesh_b3srs")