feat: Added 1 and 2 direction animations to wizard character creator

This commit is contained in:
Balloonpopper
2022-12-04 17:20:58 +11:00
committed by Julian Murgia
parent 3e93fd31c6
commit f12d78ba51
2 changed files with 175 additions and 73 deletions

View File

@@ -27,8 +27,9 @@ const DIR_UP_LEFT = "upleft"
const DIR_LIST_8 = [DIR_UP, DIR_UP_RIGHT, DIR_RIGHT, DIR_DOWN_RIGHT, DIR_DOWN, DIR_DOWN_LEFT, \
DIR_LEFT, DIR_UP_LEFT]
const DIR_LIST_4 = [DIR_UP, DIR_RIGHT, DIR_DOWN, DIR_LEFT]
const DIR_LIST_2 = [DIR_RIGHT, DIR_LEFT]
const DIR_LIST_1 = [DIR_DOWN]
const TYPE_WALK = "walk"
const TYPE_TALK = "talk"
@@ -136,8 +137,9 @@ func character_creator_reset() -> void:
get_node(DIR_COUNT_NODE).get_node("four_directions").pressed = true
# For unknown reasons the above doesn't cause the trigger to fire so manual steps required
if get_node(DIR_COUNT_NODE).get_node("eight_directions").pressed:
get_node(DIR_COUNT_NODE).get_node("eight_directions").pressed = false
get_node(DIR_COUNT_NODE).get_node("eight_directions").pressed = false
get_node(DIR_COUNT_NODE).get_node("two_directions").pressed = false
get_node(DIR_COUNT_NODE).get_node("one_direction").pressed = false
get_node(ANIM_TYPE_NODE).get_node("walk_checkbox").pressed = true
animation_type_selected = "walk"
@@ -311,7 +313,8 @@ func setup_test_data() -> void:
get_node(NO_SPRITESHEET_NODE).visible = false
get_node(DIR_COUNT_NODE).get_node("eight_directions").pressed = true
get_node(DIR_COUNT_NODE).get_node("four_directions").pressed = false
for loop in ["four_directions", "two_directions", "one_direction"]:
get_node(DIR_COUNT_NODE).get_node(loop).pressed = false
reset_arrow_colours()
@@ -845,8 +848,12 @@ func spritesheet_on_export_button_pressed() -> void:
if get_node(DIR_COUNT_NODE).get_node("four_directions").pressed:
dirnames = DIR_LIST_4
else:
elif get_node(DIR_COUNT_NODE).get_node("eight_directions").pressed:
dirnames = DIR_LIST_8
elif get_node(DIR_COUNT_NODE).get_node("two_directions").pressed:
dirnames = DIR_LIST_2
else:
dirnames = DIR_LIST_1
for dirloop in dirnames:
anim_name = "%s_%s" % [TYPE_WALK, dirloop]
@@ -935,28 +942,58 @@ func directions_on_eight_directions_pressed() -> void:
# Don't let them untick all boxes
get_node(DIR_COUNT_NODE).get_node("eight_directions").pressed = true
get_node(DIR_COUNT_NODE).get_node("four_directions").pressed = false
for loop in ["four_directions", "two_directions", "one_direction"]:
get_node(DIR_COUNT_NODE).get_node(loop).pressed = false
reset_arrow_colours()
# If 4 directions was already selected, don't let it be unselected.
# If 8 directions was selected, unselect it. Also if the previously selected direction was
# a diagonal, reset the selection to up as the diagonal is no longer valid.
# If previously selected direction is now invalid, change it to a valid one.
func directions_on_four_directions_pressed() -> void:
if not get_node(DIR_COUNT_NODE).get_node("four_directions").pressed:
# Don't let them untick all boxes
get_node(DIR_COUNT_NODE).get_node("four_directions").pressed = true
else:
# Current direction is diagonal
# Current direction is illegal
for loop in ["eight_directions", "two_directions", "one_direction"]:
get_node(DIR_COUNT_NODE).get_node(loop).pressed = false
if not direction_selected in DIR_LIST_4:
direction_selected = DIR_UP
activate_direction(DIR_UP)
get_node(DIR_COUNT_NODE).get_node("eight_directions").pressed = false
reset_arrow_colours()
# If 2 directions was already selected, don't let it be unselected.
# If previously selected direction is now invalid, change it to a valid one.
func directions_on_two_directions_pressed() -> void:
if not get_node(DIR_COUNT_NODE).get_node("two_directions").pressed:
# Don't let them untick all boxes
get_node(DIR_COUNT_NODE).get_node("two_directions").pressed = true
else:
for loop in ["eight_directions", "four_directions", "one_direction"]:
get_node(DIR_COUNT_NODE).get_node(loop).pressed = false
# Current direction is illegal
if not direction_selected in DIR_LIST_2:
direction_selected = DIR_RIGHT
activate_direction(DIR_RIGHT)
reset_arrow_colours()
# If 1 direction was already selected, don't let it be unselected.
# If previously selected direction is now invalid, change it to a valid one.
func directions_on_one_direction_pressed() -> void:
if not get_node(DIR_COUNT_NODE).get_node("one_direction").pressed:
# Don't let them untick all boxes
get_node(DIR_COUNT_NODE).get_node("one_direction").pressed = true
else:
for loop in ["eight_directions", "four_directions", "two_directions"]:
get_node(DIR_COUNT_NODE).get_node(loop).pressed = false
# Current direction is illegal
if not direction_selected in DIR_LIST_1:
direction_selected = DIR_DOWN
activate_direction(DIR_DOWN)
reset_arrow_colours()
# Returns the currently selected animation type
func return_current_animation_type() -> String:
var animation_type: String = ""
@@ -1083,12 +1120,34 @@ func get_metadata_array_offset(dir_to_retrieve = "default", anim_type = "default
# updating the direction arrow sprite was causing issues due to Godot storing the
# sprite by reference rather than by value. It was easier to duplicate the sprites/buttons.
func reset_arrow_colours() -> void:
var current_animation_type = return_current_animation_type()
var current_animation_name
var arrows = get_tree().get_nodes_in_group("direction_buttons")
for arrow in arrows:
arrow.visible = false
for dir in DIR_LIST_8:
current_animation_name = "%s_%s" % [current_animation_type, dir]
get_node(ARROWS_NODE).get_node("Container_up").get_node("ColorRectSpacer").visible = false
get_node(ARROWS_NODE).get_node("Container_left").get_node("ColorRectSpacer").visible = false
get_node(ARROWS_NODE).get_node("Container_down").get_node("ColorRectSpacer").visible = false
var dir_list=DIR_LIST_8
if get_node(DIR_COUNT_NODE).get_node("four_directions").pressed:
dir_list=DIR_LIST_4
if not direction_selected in DIR_LIST_4:
direction_selected = DIR_UP
# get_node(ARROWS_NODE).get_node("Container_up").get_node("ColorRectSpacer").visible = true
if get_node(DIR_COUNT_NODE).get_node("two_directions").pressed:
dir_list=DIR_LIST_2
if not direction_selected in DIR_LIST_2:
direction_selected = DIR_RIGHT
get_node(ARROWS_NODE).get_node("Container_up").get_node("ColorRectSpacer").visible = true
get_node(ARROWS_NODE).get_node("Container_down").get_node("ColorRectSpacer").visible = true
if get_node(DIR_COUNT_NODE).get_node("one_direction").pressed:
dir_list=DIR_LIST_1
if not direction_selected in DIR_LIST_1:
direction_selected = DIR_DOWN
get_node(ARROWS_NODE).get_node("Container_up").get_node("ColorRectSpacer").visible = true
get_node(ARROWS_NODE).get_node("Container_left").get_node("ColorRectSpacer").visible = true
for dir in dir_list:
if anim_metadata[get_metadata_array_offset(dir)][METADATA_SPRITESHEET_FIRST_FRAME] > 0:
get_node(ARROWS_NODE).get_node("Container_%s" % dir).get_node("set_dir_%s" % dir).visible = true
get_node(ARROWS_NODE).get_node("Container_%s" % dir).get_node("unset_dir_%s" % dir).visible = false
@@ -1096,17 +1155,6 @@ func reset_arrow_colours() -> void:
get_node(ARROWS_NODE).get_node("Container_%s" % dir).get_node("set_dir_%s" % dir).visible = false
get_node(ARROWS_NODE).get_node("Container_%s" % dir).get_node("unset_dir_%s" % dir).visible = true
if get_node(DIR_COUNT_NODE).get_node("four_directions").pressed:
var arrows = get_tree().get_nodes_in_group("8_direction_buttons")
for arrow in arrows:
arrow.visible = false
# Current direction is diagonal
if not direction_selected in DIR_LIST_4:
direction_selected = DIR_UP
activate_direction(DIR_UP)
# This works when you change between animation types
# eg. walk and talk - to ensure that the arrow will get changed back from selected with stored
# animation to selected with unstored animation if needs be. It also resets the preview.
@@ -1193,8 +1241,12 @@ func export_player(scene_name) -> void:
if get_node(DIR_COUNT_NODE).get_node("eight_directions").pressed:
num_directions = 8
else:
if get_node(DIR_COUNT_NODE).get_node("four_directions").pressed:
num_directions = 4
if get_node(DIR_COUNT_NODE).get_node("two_directions").pressed:
num_directions = 2
else:
num_directions = 1
var new_character = ESCPlayer.new()
new_character.name = get_node(NAME_NODE).get_node("node_name").text
@@ -1218,11 +1270,21 @@ func export_player(scene_name) -> void:
start_angle_array = [315, 45, 135, 225]
angle_size = 90
dirnames = DIR_LIST_4
else:
elif get_node(DIR_COUNT_NODE).get_node("eight_directions").pressed:
num_directions = 8
start_angle_array = [338, 22, 69, 114, 159, 204, 249, 294]
angle_size = 45
dirnames = DIR_LIST_8
elif get_node(DIR_COUNT_NODE).get_node("two_directions").pressed:
num_directions = 2
start_angle_array = [0, 180]
angle_size = 180
dirnames = DIR_LIST_2
else:
num_directions = 1
start_angle_array = [0]
angle_size = 360
dirnames = DIR_LIST_1
for loop in range(num_directions):
# Need to create new objects here each time in order to avoid having multiple references
@@ -1330,10 +1392,12 @@ func export_generate_animations(character_node, num_directions) -> void:
var largest_frame_dimensions: Vector2 = Vector2.ZERO
var sprite_frames = SpriteFrames.new()
if num_directions == 4:
direction_names = DIR_LIST_4
else:
direction_names = DIR_LIST_8
match num_directions:
1: direction_names = DIR_LIST_1
2: direction_names = DIR_LIST_2
4: direction_names = DIR_LIST_4
8: direction_names = DIR_LIST_8
for animtype in [TYPE_WALK, TYPE_TALK, TYPE_IDLE]:
for anim_dir in direction_names:
@@ -1392,7 +1456,10 @@ func export_generate_animations(character_node, num_directions) -> void:
progress_bar_update("Adding sprite frames to node")
animated_sprite.frames = sprite_frames
animated_sprite.animation = "%s_%s" % [TYPE_IDLE, DIR_DOWN]
if num_directions == 2:
animated_sprite.animation = "%s_%s" % [TYPE_IDLE, DIR_RIGHT]
else:
animated_sprite.animation = "%s_%s" % [TYPE_IDLE, DIR_DOWN]
animated_sprite.position.y = -(largest_frame_dimensions.y / 2) # Place feet at (0,0)
character_node.add_child(animated_sprite)
# Making the owner "character_node" rather than "get_tree().edited_scene_root" means that

View File

@@ -219,7 +219,7 @@ margin_right = 295.0
margin_bottom = 80.0
rect_min_size = Vector2( 200, 0 )
hint_tooltip = "The directory on disk where the character scene will be saved."
text = "res://game/characters"
text = "res://"
editable = false
caret_blink = true
caret_blink_speed = 0.5
@@ -268,17 +268,31 @@ margin_bottom = 52.0
custom_constants/separation = 50
alignment = 1
[node name="four_directions" type="CheckBox" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/directions/HBoxContainer"]
[node name="one_direction" type="CheckBox" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/directions/HBoxContainer"]
margin_left = 53.0
margin_right = 89.0
margin_bottom = 24.0
hint_tooltip = "Create 4 directions of animation"
text = "1"
[node name="two_directions" type="CheckBox" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/directions/HBoxContainer"]
margin_left = 139.0
margin_right = 175.0
margin_bottom = 24.0
hint_tooltip = "Create 4 directions of animation"
text = "2"
[node name="four_directions" type="CheckBox" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/directions/HBoxContainer"]
margin_left = 225.0
margin_right = 261.0
margin_bottom = 24.0
hint_tooltip = "Create 4 directions of animation"
pressed = true
text = "4"
[node name="eight_directions" type="CheckBox" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/directions/HBoxContainer"]
margin_left = 225.0
margin_right = 261.0
margin_left = 311.0
margin_right = 347.0
margin_bottom = 24.0
hint_tooltip = "Create 8 directions of animation"
text = "8"
@@ -370,18 +384,16 @@ margin_bottom = 200.0
[node name="MarginContainer2" type="MarginContainer" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer"]
margin_right = 110.0
margin_bottom = 92.0
margin_bottom = 8.0
custom_constants/margin_left = 5
[node name="GridContainer" type="GridContainer" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2"]
margin_left = 5.0
margin_right = 110.0
margin_bottom = 92.0
margin_bottom = 8.0
columns = 3
[node name="Container_upleft" type="MarginContainer" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer"]
margin_right = 28.0
margin_bottom = 28.0
[node name="set_dir_upleft" type="TextureButton" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer/Container_upleft" groups=["8_direction_buttons", "direction_buttons"]]
visible = false
@@ -404,9 +416,8 @@ texture_pressed = ExtResource( 6 )
texture_hover = ExtResource( 6 )
[node name="Container_up" type="MarginContainer" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer"]
margin_left = 32.0
margin_right = 60.0
margin_bottom = 28.0
margin_left = 4.0
margin_right = 4.0
[node name="set_dir_up" type="TextureButton" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer/Container_up" groups=["direction_buttons"]]
visible = false
@@ -419,19 +430,25 @@ texture_pressed = ExtResource( 23 )
texture_hover = ExtResource( 23 )
[node name="unset_dir_up" type="TextureButton" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer/Container_up" groups=["direction_buttons"]]
visible = false
margin_right = 28.0
margin_bottom = 28.0
hint_tooltip = "Up animation (unconfigured)"
toggle_mode = true
pressed = true
texture_normal = ExtResource( 20 )
texture_pressed = ExtResource( 18 )
texture_hover = ExtResource( 18 )
[node name="Container_upright" type="MarginContainer" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer"]
margin_left = 64.0
margin_right = 92.0
[node name="ColorRectSpacer" type="ColorRect" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer/Container_up"]
visible = false
modulate = Color( 0.235294, 0.341176, 0.290196, 1 )
margin_right = 28.0
margin_bottom = 28.0
rect_min_size = Vector2( 28, 28 )
[node name="Container_upright" type="MarginContainer" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer"]
margin_left = 8.0
margin_right = 8.0
[node name="unset_dir_upright" type="TextureButton" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer/Container_upright" groups=["8_direction_buttons", "direction_buttons"]]
visible = false
@@ -454,9 +471,8 @@ texture_pressed = ExtResource( 24 )
texture_hover = ExtResource( 24 )
[node name="Container_left" type="MarginContainer" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer"]
margin_top = 32.0
margin_right = 28.0
margin_bottom = 60.0
margin_top = 4.0
margin_bottom = 4.0
[node name="set_dir_left" type="TextureButton" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer/Container_left" groups=["direction_buttons"]]
visible = false
@@ -469,6 +485,7 @@ texture_pressed = ExtResource( 26 )
texture_hover = ExtResource( 26 )
[node name="unset_dir_left" type="TextureButton" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer/Container_left" groups=["direction_buttons"]]
visible = false
margin_right = 28.0
margin_bottom = 28.0
hint_tooltip = "Left animation (unconfigured)"
@@ -477,17 +494,24 @@ texture_normal = ExtResource( 21 )
texture_pressed = ExtResource( 13 )
texture_hover = ExtResource( 13 )
[node name="ColorRectSpacer" type="ColorRect" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer/Container_left"]
visible = false
modulate = Color( 0.235294, 0.341176, 0.290196, 1 )
margin_right = 28.0
margin_bottom = 28.0
rect_min_size = Vector2( 28, 28 )
[node name="Container_centre" type="MarginContainer" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer"]
margin_left = 32.0
margin_top = 32.0
margin_right = 60.0
margin_bottom = 60.0
margin_left = 4.0
margin_top = 4.0
margin_right = 4.0
margin_bottom = 4.0
[node name="Container_right" type="MarginContainer" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer"]
margin_left = 64.0
margin_top = 32.0
margin_right = 92.0
margin_bottom = 60.0
margin_left = 8.0
margin_top = 4.0
margin_right = 8.0
margin_bottom = 4.0
[node name="set_dir_right" type="TextureButton" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer/Container_right" groups=["direction_buttons"]]
visible = false
@@ -500,6 +524,7 @@ texture_pressed = ExtResource( 4 )
texture_hover = ExtResource( 4 )
[node name="unset_dir_right" type="TextureButton" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer/Container_right" groups=["direction_buttons"]]
visible = false
margin_right = 28.0
margin_bottom = 28.0
hint_tooltip = "Right animation (unconfigured)"
@@ -509,9 +534,8 @@ texture_pressed = ExtResource( 2 )
texture_hover = ExtResource( 2 )
[node name="Container_downleft" type="MarginContainer" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer"]
margin_top = 64.0
margin_right = 28.0
margin_bottom = 92.0
margin_top = 8.0
margin_bottom = 8.0
[node name="unset_dir_downleft" type="TextureButton" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer/Container_downleft" groups=["8_direction_buttons", "direction_buttons"]]
visible = false
@@ -534,10 +558,10 @@ texture_pressed = ExtResource( 10 )
texture_hover = ExtResource( 10 )
[node name="Container_down" type="MarginContainer" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer"]
margin_left = 32.0
margin_top = 64.0
margin_right = 60.0
margin_bottom = 92.0
margin_left = 4.0
margin_top = 8.0
margin_right = 4.0
margin_bottom = 8.0
[node name="set_dir_down" type="TextureButton" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer/Container_down" groups=["direction_buttons"]]
visible = false
@@ -550,6 +574,7 @@ texture_pressed = ExtResource( 5 )
texture_hover = ExtResource( 5 )
[node name="unset_dir_down" type="TextureButton" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer/Container_down" groups=["direction_buttons"]]
visible = false
margin_right = 28.0
margin_bottom = 28.0
hint_tooltip = "Down animation (unconfigured)"
@@ -558,11 +583,18 @@ texture_normal = ExtResource( 8 )
texture_pressed = ExtResource( 33 )
texture_hover = ExtResource( 33 )
[node name="ColorRectSpacer" type="ColorRect" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer/Container_down"]
visible = false
modulate = Color( 0.235294, 0.341176, 0.290196, 1 )
margin_right = 28.0
margin_bottom = 28.0
rect_min_size = Vector2( 28, 28 )
[node name="Container_downright" type="MarginContainer" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer"]
margin_left = 64.0
margin_top = 64.0
margin_right = 92.0
margin_bottom = 92.0
margin_left = 8.0
margin_top = 8.0
margin_right = 8.0
margin_bottom = 8.0
[node name="set_dir_downright" type="TextureButton" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer/MarginContainer2/GridContainer/Container_downright" groups=["8_direction_buttons", "direction_buttons"]]
visible = false
@@ -585,7 +617,7 @@ texture_pressed = ExtResource( 22 )
texture_hover = ExtResource( 22 )
[node name="MarginContainer3" type="MarginContainer" parent="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer2/HBoxContainer"]
margin_top = 96.0
margin_top = 12.0
margin_right = 110.0
margin_bottom = 161.0
size_flags_horizontal = 3
@@ -596,7 +628,7 @@ custom_constants/margin_left = 15
visible = false
margin_left = 15.0
margin_right = 110.0
margin_bottom = 65.0
margin_bottom = 149.0
hint_tooltip = "Mirror opposite direction's animation"
text = "Mirror"
@@ -1219,6 +1251,7 @@ window_title = "Open a Directory"
mode = 2
[node name="InformationWindows" type="Control" parent="."]
visible = false
margin_left = 50.0
margin_top = 50.0
margin_right = 1240.0
@@ -1402,6 +1435,8 @@ you will lose your current character.
[connection signal="text_changed" from="VBoxContainer/HBoxContainer/configuration/VBoxContainer/node_name/MarginContainer2/GridContainer/node_name" to="." method="nodename_on_node_name_text_changed"]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/configuration/VBoxContainer/node_name/MarginContainer2/GridContainer/character_path_change_button" to="." method="_on_character_path_change_button_pressed"]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/configuration/VBoxContainer/directions/HBoxContainer/one_direction" to="." method="directions_on_one_direction_pressed"]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/configuration/VBoxContainer/directions/HBoxContainer/two_directions" to="." method="directions_on_two_directions_pressed"]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/configuration/VBoxContainer/directions/HBoxContainer/four_directions" to="." method="directions_on_four_directions_pressed"]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/configuration/VBoxContainer/directions/HBoxContainer/eight_directions" to="." method="directions_on_eight_directions_pressed"]
[connection signal="pressed" from="VBoxContainer/HBoxContainer/configuration/VBoxContainer/animation/HBoxContainer/walk_checkbox" to="." method="animation_on_walk_checkbox_pressed"]