Characters now work fine
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -50,7 +50,6 @@ func _process(delta):
|
|||||||
mon_labels[act_obj].text = act_obj.get_act()
|
mon_labels[act_obj].text = act_obj.get_act()
|
||||||
add_child(mon_labels[act_obj])
|
add_child(mon_labels[act_obj])
|
||||||
mon_labels[act_obj].rect_position = camera.unproject_position(act_obj.global_transform.origin)
|
mon_labels[act_obj].rect_position = camera.unproject_position(act_obj.global_transform.origin)
|
||||||
print("act3:", mon_labels[act_obj].text)
|
|
||||||
for k in monitored_objects:
|
for k in monitored_objects:
|
||||||
var epos = k.global_transform.origin
|
var epos = k.global_transform.origin
|
||||||
var new_dist = opos.distance_squared_to(epos)
|
var new_dist = opos.distance_squared_to(epos)
|
||||||
@@ -58,7 +57,6 @@ func _process(delta):
|
|||||||
monitored_objects.erase(k)
|
monitored_objects.erase(k)
|
||||||
mon_labels[k].queue_free()
|
mon_labels[k].queue_free()
|
||||||
mon_labels.erase(k)
|
mon_labels.erase(k)
|
||||||
print("removed label")
|
|
||||||
break
|
break
|
||||||
else:
|
else:
|
||||||
mon_labels[k].rect_position = camera.unproject_position(k.global_transform.origin)
|
mon_labels[k].rect_position = camera.unproject_position(k.global_transform.origin)
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ extends KinematicBody
|
|||||||
var orientation: Transform
|
var orientation: Transform
|
||||||
var velocity: Vector3 = Vector3()
|
var velocity: Vector3 = Vector3()
|
||||||
var skel: Skeleton
|
var skel: Skeleton
|
||||||
|
var anim_tree: AnimationTree
|
||||||
|
var aplay: AnimationPlayer
|
||||||
const GRAVITY = Vector3(0, -9.8, 0)
|
const GRAVITY = Vector3(0, -9.8, 0)
|
||||||
# Declare member variables here. Examples:
|
# Declare member variables here. Examples:
|
||||||
# var a = 2
|
# var a = 2
|
||||||
@@ -10,7 +12,25 @@ const GRAVITY = Vector3(0, -9.8, 0)
|
|||||||
# Called when the node enters the scene tree for the first time.
|
# Called when the node enters the scene tree for the first time.
|
||||||
func _ready():
|
func _ready():
|
||||||
orientation = Transform()
|
orientation = Transform()
|
||||||
skel = get_children()[0]
|
skel = get_children()[0].get_children()[0]
|
||||||
|
var queue = [self]
|
||||||
|
while queue.size() > 0:
|
||||||
|
var item = queue[0]
|
||||||
|
queue.pop_front()
|
||||||
|
if item is Skeleton:
|
||||||
|
skel = item
|
||||||
|
if item is AnimationTree:
|
||||||
|
anim_tree = item
|
||||||
|
if item is AnimationPlayer:
|
||||||
|
aplay = item
|
||||||
|
if skel != null && anim_tree != null && aplay != null:
|
||||||
|
break
|
||||||
|
for c in item.get_children():
|
||||||
|
queue.push_back(c)
|
||||||
|
for v in aplay.get_animation_list():
|
||||||
|
if v.ends_with("loop"):
|
||||||
|
var anim = aplay.get_animation(v)
|
||||||
|
anim.loop = true
|
||||||
add_to_group("characters")
|
add_to_group("characters")
|
||||||
add_to_group("activatable")
|
add_to_group("activatable")
|
||||||
|
|
||||||
@@ -18,15 +38,15 @@ func get_act():
|
|||||||
return "Talk"
|
return "Talk"
|
||||||
|
|
||||||
func idle():
|
func idle():
|
||||||
var sm: AnimationNodeStateMachinePlayback = $AnimationTree["parameters/base/playback"]
|
var sm: AnimationNodeStateMachinePlayback = anim_tree["parameters/base/playback"]
|
||||||
sm.travel("Idle")
|
sm.travel("Idle")
|
||||||
func walk():
|
func walk():
|
||||||
var sm: AnimationNodeStateMachinePlayback = $AnimationTree["parameters/base/playback"]
|
var sm: AnimationNodeStateMachinePlayback = anim_tree["parameters/base/playback"]
|
||||||
sm.travel("Walk")
|
sm.travel("Walk")
|
||||||
func set_walk_speed(spd: float):
|
func set_walk_speed(spd: float):
|
||||||
$AnimationTree["parameters/base/Walk/speed/scale"] = spd
|
anim_tree["parameters/base/Walk/speed/scale"] = spd
|
||||||
func get_walk_speed() -> float:
|
func get_walk_speed() -> float:
|
||||||
return $AnimationTree["parameters/base/Walk/speed/scale"]
|
return anim_tree["parameters/base/Walk/speed/scale"]
|
||||||
|
|
||||||
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
# Called every frame. 'delta' is the elapsed time since the previous frame.
|
||||||
#func _process(delta):
|
#func _process(delta):
|
||||||
@@ -44,8 +64,8 @@ func walkto(target: Vector3, spd: float = 1.4):
|
|||||||
func _process(delta):
|
func _process(delta):
|
||||||
orientation = global_transform
|
orientation = global_transform
|
||||||
orientation.origin = Vector3()
|
orientation.origin = Vector3()
|
||||||
var sm: AnimationNodeStateMachinePlayback = $AnimationTree["parameters/base/playback"]
|
var sm: AnimationNodeStateMachinePlayback = anim_tree["parameters/base/playback"]
|
||||||
var rm = $AnimationTree.get_root_motion_transform()
|
var rm = anim_tree.get_root_motion_transform()
|
||||||
orientation *= rm
|
orientation *= rm
|
||||||
var h_velocity = orientation.origin / delta
|
var h_velocity = orientation.origin / delta
|
||||||
velocity.x = h_velocity.x
|
velocity.x = h_velocity.x
|
||||||
|
|||||||
+3982
-3366
File diff suppressed because one or more lines are too long
@@ -1,66 +1,96 @@
|
|||||||
[gd_scene load_steps=14 format=2]
|
[gd_scene load_steps=19 format=2]
|
||||||
|
|
||||||
[ext_resource path="res://characters/female_2018.escn" type="PackedScene" id=1]
|
[ext_resource path="res://characters/character.gd" type="Script" id=1]
|
||||||
|
[ext_resource path="res://characters/female_2018.escn" type="PackedScene" id=2]
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeAdd2" id=1]
|
[sub_resource type="AnimationNodeAdd2" id=1]
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeAnimation" id=2]
|
[sub_resource type="AnimationNodeAnimation" id=2]
|
||||||
animation = "stand"
|
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeAnimation" id=3]
|
|
||||||
animation = "additive-wiggling-loop"
|
animation = "additive-wiggling-loop"
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeBlendTree" id=4]
|
[sub_resource type="AnimationNodeAnimation" id=3]
|
||||||
nodes/Add2/node = SubResource( 1 )
|
animation = "stand"
|
||||||
nodes/Add2/position = Vector2( 580, 120 )
|
|
||||||
nodes/Animation/node = SubResource( 3 )
|
|
||||||
nodes/Animation/position = Vector2( 100, 260 )
|
|
||||||
"nodes/Animation 2/node" = SubResource( 2 )
|
|
||||||
"nodes/Animation 2/position" = Vector2( 120, 100 )
|
|
||||||
nodes/output/position = Vector2( 1020, 160 )
|
|
||||||
node_connections = [ "output", 0, "Add2", "Add2", 0, "Animation 2", "Add2", 1, "Animation" ]
|
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeAnimation" id=5]
|
[sub_resource type="AnimationNodeTimeScale" id=4]
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeBlendTree" id=5]
|
||||||
|
nodes/Add2/node = SubResource( 1 )
|
||||||
|
nodes/Add2/position = Vector2( 500, 120 )
|
||||||
|
nodes/Animation/node = SubResource( 3 )
|
||||||
|
nodes/Animation/position = Vector2( 117, 81 )
|
||||||
|
"nodes/Animation 2/node" = SubResource( 2 )
|
||||||
|
"nodes/Animation 2/position" = Vector2( 151, 279 )
|
||||||
|
nodes/output/position = Vector2( 1040, 120 )
|
||||||
|
nodes/speed/node = SubResource( 4 )
|
||||||
|
nodes/speed/position = Vector2( 840, 120 )
|
||||||
|
node_connections = [ "speed", 0, "Add2", "output", 0, "speed", "Add2", 0, "Animation", "Add2", 1, "Animation 2" ]
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeAdd2" id=6]
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeAnimation" id=7]
|
||||||
|
animation = "additive-wiggling-loop"
|
||||||
|
|
||||||
|
[sub_resource type="AnimationNodeAnimation" id=8]
|
||||||
animation = "walk-loop"
|
animation = "walk-loop"
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeTimeScale" id=6]
|
[sub_resource type="AnimationNodeTimeScale" id=9]
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeBlendTree" id=7]
|
[sub_resource type="AnimationNodeBlendTree" id=10]
|
||||||
nodes/Animation/node = SubResource( 5 )
|
graph_offset = Vector2( 0, -89 )
|
||||||
nodes/Animation/position = Vector2( 80, 120 )
|
nodes/Add2/node = SubResource( 6 )
|
||||||
nodes/TimeScale/node = SubResource( 6 )
|
nodes/Add2/position = Vector2( 600, 120 )
|
||||||
nodes/TimeScale/position = Vector2( 400, 120 )
|
nodes/Animation/node = SubResource( 8 )
|
||||||
nodes/output/position = Vector2( 820, 160 )
|
nodes/Animation/position = Vector2( 100, 60 )
|
||||||
node_connections = [ "output", 0, "TimeScale", "TimeScale", 0, "Animation" ]
|
"nodes/Animation 2/node" = SubResource( 7 )
|
||||||
|
"nodes/Animation 2/position" = Vector2( 100, 200 )
|
||||||
|
nodes/output/position = Vector2( 1120, 120 )
|
||||||
|
nodes/speed/node = SubResource( 9 )
|
||||||
|
nodes/speed/position = Vector2( 940, 120 )
|
||||||
|
node_connections = [ "speed", 0, "Add2", "output", 0, "speed", "Add2", 0, "Animation", "Add2", 1, "Animation 2" ]
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeStateMachineTransition" id=8]
|
[sub_resource type="AnimationNodeStateMachineTransition" id=11]
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeStateMachineTransition" id=9]
|
[sub_resource type="AnimationNodeStateMachineTransition" id=12]
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeStateMachine" id=10]
|
[sub_resource type="AnimationNodeStateMachine" id=13]
|
||||||
states/Idle/node = SubResource( 4 )
|
states/Idle/node = SubResource( 5 )
|
||||||
states/Idle/position = Vector2( 194, 105 )
|
states/Idle/position = Vector2( 185, 43 )
|
||||||
states/Walk/node = SubResource( 7 )
|
states/Walk/node = SubResource( 10 )
|
||||||
states/Walk/position = Vector2( 344, 217 )
|
states/Walk/position = Vector2( 328, 147 )
|
||||||
transitions = [ "Idle", "Walk", SubResource( 8 ), "Walk", "Idle", SubResource( 9 ) ]
|
transitions = [ "Idle", "Walk", SubResource( 11 ), "Walk", "Idle", SubResource( 12 ) ]
|
||||||
start_node = "Idle"
|
start_node = "Idle"
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeBlendTree" id=11]
|
[sub_resource type="AnimationNodeBlendTree" id=14]
|
||||||
graph_offset = Vector2( 0, -268.75 )
|
graph_offset = Vector2( 0, -54 )
|
||||||
nodes/base/node = SubResource( 10 )
|
nodes/base/node = SubResource( 13 )
|
||||||
nodes/base/position = Vector2( 80, 140 )
|
nodes/base/position = Vector2( 220, 220 )
|
||||||
nodes/output/position = Vector2( 420, 140 )
|
nodes/output/position = Vector2( 540, 220 )
|
||||||
node_connections = [ "output", 0, "base" ]
|
node_connections = [ "output", 0, "base" ]
|
||||||
|
|
||||||
[sub_resource type="AnimationNodeStateMachinePlayback" id=12]
|
[sub_resource type="AnimationNodeStateMachinePlayback" id=15]
|
||||||
|
|
||||||
[node name="female_2018" index="0" instance=ExtResource( 1 )]
|
[sub_resource type="CapsuleShape" id=16]
|
||||||
|
radius = 0.2
|
||||||
|
height = 1.12362
|
||||||
|
|
||||||
[node name="AnimationTree" type="AnimationTree" parent="." index="1"]
|
[node name="female_2018" type="KinematicBody"]
|
||||||
tree_root = SubResource( 11 )
|
script = ExtResource( 1 )
|
||||||
|
|
||||||
|
[node name="female_2018" parent="." instance=ExtResource( 2 )]
|
||||||
|
|
||||||
|
[node name="AnimationTree" type="AnimationTree" parent="female_2018"]
|
||||||
|
tree_root = SubResource( 14 )
|
||||||
anim_player = NodePath("../female_2018/AnimationPlayer")
|
anim_player = NodePath("../female_2018/AnimationPlayer")
|
||||||
active = true
|
active = true
|
||||||
root_motion_track = NodePath(".:root")
|
root_motion_track = NodePath(".:root")
|
||||||
parameters/base/playback = SubResource( 12 )
|
parameters/base/playback = SubResource( 15 )
|
||||||
parameters/base/Idle/Add2/add_amount = 0.3
|
parameters/base/Idle/Add2/add_amount = 0
|
||||||
parameters/base/Walk/TimeScale/scale = 1.0
|
parameters/base/Idle/speed/scale = 1.0
|
||||||
|
parameters/base/Walk/Add2/add_amount = 0
|
||||||
|
parameters/base/Walk/speed/scale = 1.0
|
||||||
|
|
||||||
|
[node name="CollisionShape" type="CollisionShape" parent="."]
|
||||||
|
transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 0.765693, 0 )
|
||||||
|
shape = SubResource( 16 )
|
||||||
|
|
||||||
|
[editable path="female_2018"]
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
+35
-29922
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user