a
This commit is contained in:
		
							parent
							
								
									fb4f550890
								
							
						
					
					
						commit
						5d7d4e90bc
					
				
					 12 changed files with 38 additions and 14 deletions
				
			
		
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								blends/giant.blend1
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								blends/giant.blend1
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -2,8 +2,6 @@ extends Node3D
 | 
			
		|||
 | 
			
		||||
@onready var animation: AnimationNodeStateMachinePlayback = $AnimationTree.get("parameters/playback")
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
signal anim_check_grab(position: Vector3)
 | 
			
		||||
 | 
			
		||||
var pickup_animation_in_progress = false
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										
											BIN
										
									
								
								godot/Models/grape_man.glb
									 (Stored with Git LFS)
										
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								godot/Models/grape_man.glb
									 (Stored with Git LFS)
										
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
				
			
			@ -1,4 +1,4 @@
 | 
			
		|||
[gd_scene load_steps=38 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="Script" path="res://Models/grape_man.gd" id="2_ksje8"]
 | 
			
		||||
| 
						 | 
				
			
			@ -135,21 +135,18 @@ xfade_time = 0.3
 | 
			
		|||
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_y2dr5"]
 | 
			
		||||
xfade_time = 0.3
 | 
			
		||||
 | 
			
		||||
[sub_resource type="AnimationNodeStateMachineTransition" id="AnimationNodeStateMachineTransition_ubbuf"]
 | 
			
		||||
xfade_time = 0.3
 | 
			
		||||
 | 
			
		||||
[sub_resource type="AnimationNodeStateMachine" id="AnimationNodeStateMachine_6mfdu"]
 | 
			
		||||
states/IdleEmpty/node = SubResource("AnimationNodeBlendTree_ojr1k")
 | 
			
		||||
states/IdleEmpty/position = Vector2(315, 186)
 | 
			
		||||
states/IdleHold/node = SubResource("AnimationNodeBlendTree_v72vt")
 | 
			
		||||
states/IdleHold/position = Vector2(592, 349)
 | 
			
		||||
states/Pickup/node = SubResource("AnimationNodeAnimation_rrdxi")
 | 
			
		||||
states/Pickup/position = Vector2(711, 105)
 | 
			
		||||
states/Pickup/position = Vector2(734, 117)
 | 
			
		||||
states/WalkEmpty/node = SubResource("AnimationNodeBlendTree_6rmmo")
 | 
			
		||||
states/WalkEmpty/position = Vector2(619, 219)
 | 
			
		||||
states/WalkEmpty/position = Vector2(548, 208)
 | 
			
		||||
states/WalkHold/node = SubResource("AnimationNodeBlendTree_kalnq")
 | 
			
		||||
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"), "IdleHold", "Pickup", SubResource("AnimationNodeStateMachineTransition_ubbuf")]
 | 
			
		||||
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(26, 89)
 | 
			
		||||
 | 
			
		||||
[node name="grape_man" instance=ExtResource("1_fh5yr")]
 | 
			
		||||
| 
						 | 
				
			
			@ -157,7 +154,7 @@ transform = Transform3D(0.065, 0, 0, 0, 0.065, 0, 0, 0, 0.065, 0, 0, 0)
 | 
			
		|||
script = ExtResource("2_ksje8")
 | 
			
		||||
 | 
			
		||||
[node name="Skeleton3D" parent="rig" index="0"]
 | 
			
		||||
bones/0/rotation = Quaternion(0.08892, 0, 0, 0.996039)
 | 
			
		||||
bones/0/rotation = Quaternion(0.0861766, 0, 0, 0.99628)
 | 
			
		||||
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/3/rotation = Quaternion(-0.00997737, 0.100365, -0.694951, 0.711948)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -6,6 +6,7 @@ const JUMP_VELOCITY = 4.5
 | 
			
		|||
@export var horiz_sens = 0.25
 | 
			
		||||
@export var vert_sens = 0.25
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
var holding: WeakRef = weakref(null)
 | 
			
		||||
 | 
			
		||||
# Get the gravity from the project settings to be synced with RigidBody nodes.
 | 
			
		||||
| 
						 | 
				
			
			@ -29,9 +30,21 @@ func _input(event):
 | 
			
		|||
		$CameraMount.rotate_x(deg_to_rad(-event.relative.y * vert_sens))
 | 
			
		||||
		$grape_man.rotate_y(deg_to_rad(event.relative.x * horiz_sens))
 | 
			
		||||
		$CameraMount.global_rotation.x = clampf($CameraMount.global_rotation.x, deg_to_rad(-60), deg_to_rad(-11))
 | 
			
		||||
		
 | 
			
		||||
	if Input.is_action_just_pressed("ui_accept"):
 | 
			
		||||
		var obj = holding.get_ref()
 | 
			
		||||
		if obj:
 | 
			
		||||
			holding = weakref(null)
 | 
			
		||||
		else:
 | 
			
		||||
			$grape_man.pickup()
 | 
			
		||||
		
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
func _physics_process(delta):
 | 
			
		||||
	if $grape_man.pickup_animation_in_progress:
 | 
			
		||||
		return
 | 
			
		||||
	
 | 
			
		||||
	# Add the gravity.
 | 
			
		||||
	if not is_on_floor():
 | 
			
		||||
		velocity.y -= gravity * delta
 | 
			
		||||
| 
						 | 
				
			
			@ -40,6 +53,10 @@ func _physics_process(delta):
 | 
			
		|||
	# Get the input direction and handle the movement/deceleration.
 | 
			
		||||
	# As good practice, you should replace UI actions with custom gameplay actions.
 | 
			
		||||
	var input_dir = Input.get_vector("ui_left", "ui_right", "ui_up", "ui_down")
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
	var direction = (transform.basis * Vector3(input_dir.x, 0, input_dir.y)).normalized()
 | 
			
		||||
	if direction:
 | 
			
		||||
		velocity.x = direction.x * SPEED
 | 
			
		||||
| 
						 | 
				
			
			@ -49,10 +66,20 @@ func _physics_process(delta):
 | 
			
		|||
			$grape_man.global_position.y,
 | 
			
		||||
			$grape_man.global_position.z - velocity.z,
 | 
			
		||||
			))
 | 
			
		||||
		$grape_man.walk_empty()
 | 
			
		||||
		if holding.get_ref():
 | 
			
		||||
			$grape_man.walk_hold()
 | 
			
		||||
		else:
 | 
			
		||||
			$grape_man.walk_empty()
 | 
			
		||||
	else:
 | 
			
		||||
		$grape_man.idle_empty()
 | 
			
		||||
		if holding.get_ref():
 | 
			
		||||
			$grape_man.idle_hold()
 | 
			
		||||
		else:
 | 
			
		||||
			$grape_man.idle_empty()
 | 
			
		||||
		velocity.x = move_toward(velocity.x, 0, SPEED)
 | 
			
		||||
		velocity.z = move_toward(velocity.z, 0, SPEED)
 | 
			
		||||
 | 
			
		||||
	move_and_slide()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
func _on_grape_man_anim_check_grab(_position):
 | 
			
		||||
	holding = weakref(self)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,3 +20,5 @@ 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, 1.39043)
 | 
			
		||||
current = true
 | 
			
		||||
fov = 50.0
 | 
			
		||||
 | 
			
		||||
[connection signal="anim_check_grab" from="grape_man" to="." method="_on_grape_man_anim_check_grab"]
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue