Add ESCAnimationResource to hold characters animations. (#342)

Co-authored-by: StraToN <StraToN@users.noreply.github.com>
Co-authored-by: Dennis Ploeger <develop@dieploegers.de>
Co-authored-by: dploeger <dploeger@users.noreply.github.com>
This commit is contained in:
Julian Murgia
2021-08-03 17:48:55 +02:00
committed by GitHub
parent 56bf96da8c
commit 392dc2d607
15 changed files with 553 additions and 207 deletions

View File

@@ -1,68 +1,181 @@
[gd_scene load_steps=40 format=2]
[gd_scene load_steps=75 format=2]
[ext_resource path="res://addons/escoria-core/game/core-scripts/esc_player.gd" type="Script" id=1]
[ext_resource path="res://game/characters/mark/png/mark_talk_down.png" type="Texture" id=2]
[ext_resource path="res://game/characters/mark/mark_anims.gd" type="Script" id=3]
[ext_resource path="res://addons/escoria-core/game/core-scripts/resources/esc_animationname.gd" type="Script" id=3]
[ext_resource path="res://game/characters/mark/png/mark.png" type="Texture" id=4]
[ext_resource path="res://game/characters/mark/png/mark_talk_down_right.png" type="Texture" id=5]
[ext_resource path="res://game/characters/mark/png/mark_talk_up.png" type="Texture" id=6]
[ext_resource path="res://game/characters/mark/png/mark_talk_right.png" type="Texture" id=7]
[ext_resource path="res://addons/escoria-core/game/core-scripts/resources/esc_animationresource.gd" type="Script" id=8]
[ext_resource path="res://addons/escoria-core/game/core-scripts/resources/esc_directionangle.gd" type="Script" id=9]
[sub_resource type="AtlasTexture" id=1]
atlas = ExtResource( 2 )
region = Rect2( 0, 0, 24, 70 )
[sub_resource type="Resource" id=33]
script = ExtResource( 9 )
angle_start = 340
angle_size = 40
[sub_resource type="AtlasTexture" id=2]
atlas = ExtResource( 2 )
region = Rect2( 24, 0, 24, 70 )
[sub_resource type="Resource" id=34]
script = ExtResource( 9 )
angle_start = 20
angle_size = 50
[sub_resource type="AtlasTexture" id=3]
atlas = ExtResource( 2 )
region = Rect2( 48, 0, 24, 70 )
[sub_resource type="Resource" id=35]
script = ExtResource( 9 )
angle_start = 70
angle_size = 40
[sub_resource type="AtlasTexture" id=4]
atlas = ExtResource( 4 )
region = Rect2( 216, 0, 24, 70 )
[sub_resource type="Resource" id=36]
script = ExtResource( 9 )
angle_start = 110
angle_size = 50
[sub_resource type="AtlasTexture" id=5]
atlas = ExtResource( 4 )
region = Rect2( 240, 0, 24, 70 )
[sub_resource type="Resource" id=37]
script = ExtResource( 9 )
angle_start = 160
angle_size = 40
[sub_resource type="AtlasTexture" id=6]
atlas = ExtResource( 4 )
region = Rect2( 264, 0, 24, 70 )
[sub_resource type="Resource" id=38]
script = ExtResource( 9 )
angle_start = 200
angle_size = 50
[sub_resource type="AtlasTexture" id=7]
atlas = ExtResource( 4 )
region = Rect2( 288, 0, 24, 70 )
[sub_resource type="Resource" id=39]
script = ExtResource( 9 )
angle_start = 250
angle_size = 40
[sub_resource type="AtlasTexture" id=8]
atlas = ExtResource( 4 )
region = Rect2( 312, 0, 24, 70 )
[sub_resource type="Resource" id=40]
script = ExtResource( 9 )
angle_start = 290
angle_size = 50
[sub_resource type="AtlasTexture" id=9]
atlas = ExtResource( 4 )
region = Rect2( 72, 0, 24, 70 )
[sub_resource type="Resource" id=41]
script = ExtResource( 3 )
animation = "walk_up"
mirrored = false
[sub_resource type="AtlasTexture" id=10]
atlas = ExtResource( 4 )
region = Rect2( 336, 0, 24, 70 )
[sub_resource type="Resource" id=42]
script = ExtResource( 3 )
animation = "walk_up"
mirrored = false
[sub_resource type="AtlasTexture" id=11]
atlas = ExtResource( 4 )
region = Rect2( 360, 0, 24, 70 )
[sub_resource type="Resource" id=43]
script = ExtResource( 3 )
animation = "walk_right"
mirrored = false
[sub_resource type="AtlasTexture" id=12]
atlas = ExtResource( 4 )
region = Rect2( 384, 0, 24, 70 )
[sub_resource type="Resource" id=44]
script = ExtResource( 3 )
animation = "walk_down"
mirrored = false
[sub_resource type="AtlasTexture" id=13]
atlas = ExtResource( 6 )
region = Rect2( 0, 0, 24, 70 )
[sub_resource type="Resource" id=45]
script = ExtResource( 3 )
animation = "walk_down"
mirrored = false
[sub_resource type="AtlasTexture" id=14]
atlas = ExtResource( 6 )
region = Rect2( 24, 0, 24, 70 )
[sub_resource type="Resource" id=46]
script = ExtResource( 3 )
animation = "walk_down"
mirrored = false
[sub_resource type="Resource" id=47]
script = ExtResource( 3 )
animation = "walk_right"
mirrored = true
[sub_resource type="Resource" id=48]
script = ExtResource( 3 )
animation = "walk_up"
mirrored = false
[sub_resource type="Resource" id=50]
script = ExtResource( 3 )
animation = "idle_up"
mirrored = false
[sub_resource type="Resource" id=51]
script = ExtResource( 3 )
animation = "idle_up"
mirrored = false
[sub_resource type="Resource" id=52]
script = ExtResource( 3 )
animation = "idle_right"
mirrored = false
[sub_resource type="Resource" id=53]
script = ExtResource( 3 )
animation = "idle_down_right"
mirrored = false
[sub_resource type="Resource" id=54]
script = ExtResource( 3 )
animation = "idle_down"
mirrored = false
[sub_resource type="Resource" id=55]
script = ExtResource( 3 )
animation = "idle_down_left"
mirrored = false
[sub_resource type="Resource" id=56]
script = ExtResource( 3 )
animation = "idle_left"
mirrored = false
[sub_resource type="Resource" id=57]
script = ExtResource( 3 )
animation = "idle_up"
mirrored = false
[sub_resource type="Resource" id=58]
script = ExtResource( 3 )
animation = "speak_up"
mirrored = false
[sub_resource type="Resource" id=59]
script = ExtResource( 3 )
animation = "speak_up"
mirrored = false
[sub_resource type="Resource" id=60]
script = ExtResource( 3 )
animation = "speak_right"
mirrored = false
[sub_resource type="Resource" id=61]
script = ExtResource( 3 )
animation = "speak_down"
mirrored = false
[sub_resource type="Resource" id=62]
script = ExtResource( 3 )
animation = "speak_down"
mirrored = false
[sub_resource type="Resource" id=63]
script = ExtResource( 3 )
animation = "speak_down"
mirrored = false
[sub_resource type="Resource" id=64]
script = ExtResource( 3 )
animation = "speak_right"
mirrored = true
[sub_resource type="Resource" id=65]
script = ExtResource( 3 )
animation = "speak_up"
mirrored = false
[sub_resource type="Resource" id=49]
script = ExtResource( 8 )
dir_angles = [ SubResource( 33 ), SubResource( 34 ), SubResource( 35 ), SubResource( 36 ), SubResource( 37 ), SubResource( 38 ), SubResource( 39 ), SubResource( 40 ) ]
directions = [ SubResource( 41 ), SubResource( 42 ), SubResource( 43 ), SubResource( 44 ), SubResource( 45 ), SubResource( 46 ), SubResource( 47 ), SubResource( 48 ) ]
idles = [ SubResource( 50 ), SubResource( 51 ), SubResource( 52 ), SubResource( 53 ), SubResource( 54 ), SubResource( 55 ), SubResource( 56 ), SubResource( 57 ) ]
speaks = [ SubResource( 58 ), SubResource( 59 ), SubResource( 60 ), SubResource( 61 ), SubResource( 62 ), SubResource( 63 ), SubResource( 64 ), SubResource( 65 ) ]
[sub_resource type="AtlasTexture" id=15]
atlas = ExtResource( 7 )
@@ -96,18 +209,70 @@ region = Rect2( 168, 0, 24, 70 )
atlas = ExtResource( 4 )
region = Rect2( 192, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=4]
atlas = ExtResource( 4 )
region = Rect2( 216, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=5]
atlas = ExtResource( 4 )
region = Rect2( 240, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=6]
atlas = ExtResource( 4 )
region = Rect2( 264, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=7]
atlas = ExtResource( 4 )
region = Rect2( 288, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=8]
atlas = ExtResource( 4 )
region = Rect2( 312, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=29]
atlas = ExtResource( 4 )
region = Rect2( 24, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=1]
atlas = ExtResource( 2 )
region = Rect2( 0, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=2]
atlas = ExtResource( 2 )
region = Rect2( 24, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=3]
atlas = ExtResource( 2 )
region = Rect2( 48, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=23]
atlas = ExtResource( 4 )
region = Rect2( 48, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=24]
[sub_resource type="AtlasTexture" id=9]
atlas = ExtResource( 4 )
region = Rect2( 120, 0, 24, 70 )
region = Rect2( 72, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=10]
atlas = ExtResource( 4 )
region = Rect2( 336, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=11]
atlas = ExtResource( 4 )
region = Rect2( 360, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=12]
atlas = ExtResource( 4 )
region = Rect2( 384, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=25]
atlas = ExtResource( 4 )
region = Rect2( 96, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=24]
atlas = ExtResource( 4 )
region = Rect2( 120, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=26]
atlas = ExtResource( 5 )
region = Rect2( 0, 0, 24, 70 )
@@ -120,19 +285,28 @@ region = Rect2( 24, 0, 24, 70 )
atlas = ExtResource( 5 )
region = Rect2( 48, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=29]
atlas = ExtResource( 4 )
region = Rect2( 24, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=30]
atlas = ExtResource( 4 )
region = Rect2( 0, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=13]
atlas = ExtResource( 6 )
region = Rect2( 0, 0, 24, 70 )
[sub_resource type="AtlasTexture" id=14]
atlas = ExtResource( 6 )
region = Rect2( 24, 0, 24, 70 )
[sub_resource type="SpriteFrames" id=31]
animations = [ {
"frames": [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 2 ), SubResource( 3 ) ],
"frames": [ SubResource( 15 ), SubResource( 16 ), SubResource( 17 ), SubResource( 18 ), SubResource( 19 ) ],
"loop": true,
"name": "speak_down",
"name": "speak_right",
"speed": 5.0
}, {
"frames": [ SubResource( 20 ), SubResource( 21 ), SubResource( 22 ), SubResource( 21 ) ],
"loop": true,
"name": "walk_down",
"speed": 6.0
}, {
"frames": [ SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ) ],
@@ -140,6 +314,21 @@ animations = [ {
"name": "walk_right",
"speed": 6.0
}, {
"frames": [ SubResource( 29 ) ],
"loop": true,
"name": "idle_down_right",
"speed": 5.0
}, {
"frames": [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 2 ), SubResource( 3 ) ],
"loop": true,
"name": "speak_down",
"speed": 6.0
}, {
"frames": [ SubResource( 23 ) ],
"loop": true,
"name": "idle_right",
"speed": 5.0
}, {
"frames": [ SubResource( 9 ) ],
"loop": true,
"name": "idle_up",
@@ -150,24 +339,9 @@ animations = [ {
"name": "walk_up",
"speed": 6.0
}, {
"frames": [ SubResource( 13 ), SubResource( 14 ), SubResource( 13 ), SubResource( 14 ), SubResource( 14 ) ],
"frames": [ SubResource( 25 ) ],
"loop": true,
"name": "speak_up",
"speed": 3.0
}, {
"frames": [ SubResource( 15 ), SubResource( 16 ), SubResource( 17 ), SubResource( 18 ), SubResource( 19 ) ],
"loop": true,
"name": "speak_right",
"speed": 5.0
}, {
"frames": [ SubResource( 20 ), SubResource( 21 ), SubResource( 22 ), SubResource( 21 ) ],
"loop": true,
"name": "walk_down",
"speed": 6.0
}, {
"frames": [ SubResource( 23 ) ],
"loop": true,
"name": "idle_right",
"name": "idle_left",
"speed": 5.0
}, {
"frames": [ SubResource( 24 ) ],
@@ -175,25 +349,20 @@ animations = [ {
"name": "idle_down_left",
"speed": 5.0
}, {
"frames": [ SubResource( 25 ) ],
"loop": true,
"name": "idle_left",
"speed": 5.0
}, {
"frames": [ SubResource( 26 ), SubResource( 27 ), SubResource( 28 ) ],
"loop": true,
"name": "speak_down_right",
"speed": 6.0
}, {
"frames": [ SubResource( 29 ) ],
"loop": true,
"name": "idle_down_right",
"speed": 5.0
}, {
"frames": [ SubResource( 30 ) ],
"loop": true,
"name": "idle_down",
"speed": 5.0
}, {
"frames": [ SubResource( 13 ), SubResource( 14 ), SubResource( 13 ), SubResource( 14 ), SubResource( 14 ) ],
"loop": true,
"name": "speak_up",
"speed": 3.0
} ]
[sub_resource type="CapsuleShape2D" id=32]
@@ -204,7 +373,7 @@ script = ExtResource( 1 )
global_id = "player"
is_movable = true
dialog_color = Color( 1, 1, 1, 1 )
animations = ExtResource( 3 )
animations = SubResource( 49 )
[node name="sprite" type="AnimatedSprite" parent="."]
position = Vector2( 0, -140.938 )

View File

@@ -0,0 +1,51 @@
[gd_resource type="Resource" load_steps=11 format=2]
[ext_resource path="res://addons/escoria-core/game/core-scripts/resources/esc_animationresource.gd" type="Script" id=1]
[ext_resource path="res://addons/escoria-core/game/core-scripts/resources/esc_directionangle.gd" type="Script" id=2]
[sub_resource type="Resource" id=1]
script = ExtResource( 2 )
angle_start = 340
angle_size = 40
[sub_resource type="Resource" id=2]
script = ExtResource( 2 )
angle_start = 20
angle_size = 50
[sub_resource type="Resource" id=3]
script = ExtResource( 2 )
angle_start = 70
angle_size = 40
[sub_resource type="Resource" id=4]
script = ExtResource( 2 )
angle_start = 110
angle_size = 50
[sub_resource type="Resource" id=5]
script = ExtResource( 2 )
angle_start = 160
angle_size = 40
[sub_resource type="Resource" id=6]
script = ExtResource( 2 )
angle_start = 200
angle_size = 50
[sub_resource type="Resource" id=7]
script = ExtResource( 2 )
angle_start = 250
angle_size = 40
[sub_resource type="Resource" id=8]
script = ExtResource( 2 )
angle_start = 290
angle_size = 50
[resource]
script = ExtResource( 1 )
dir_angles = [ SubResource( 1 ), SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 ), SubResource( 7 ), SubResource( 8 ) ]
directions = [ ]
idles = [ ]
speaks = [ ]

View File

@@ -1,90 +0,0 @@
#const dir_angles = [
# 0, # 0 NORTH FACE CAMERA
# 45, # 1 NORTHEAST
# 90, # 2 EAST
# 135, # 3 SOUTHEAST
# 180, # 4 SOUTH BACK TO CAMERA
# 225, # 5 SOUTHWEST
# 270, # 6 WEST
# 315, # 7 NORTHWEST
#]
# Angle is [from_angle, area_angle]
# example : on a clock, [180, 45] starts exactly from 6 o'clock (180°)
# and stops between 7 o'clock and 8 o'clock (45° from 6 o'clock)
const dir_angles = [
[340, 40], # 0 UP
[20, 50], # 1 RIGHT UP
[70, 40], # 2 RIGHT
[110, 50], # 3 RIGHT DOWN
[160, 40], # 4 DOWN
[200, 50], # 5 LEFT DOWN
[250, 40], # 6 LEFT
[290, 50] # 7 LEFT UP
]
# Array of animations for each direction, from UP to RIGHT_UP clockwise
# [animation_name, scale]: scale parameter can be set to -1 to mirror the animation
const directions = [
["walk_up", 1], # 0 UP
["walk_up", 1], # 1 RIGHT UP
["walk_right", 1], # 2 RIGHT
["walk_down", 1], # 3 RIGHT DOWN
["walk_down", 1], # 4 DOWN
["walk_down", 1], # 5 LEFT DOWN
["walk_right", -1], # 6 LEFT
["walk_up", 1] # 7 LEFT UP
]
const idles = [
["idle_up", 1], # 0 UP
["idle_up", 1], # 1 RIGHT UP
["idle_right", 1], # 2 RIGHT
["idle_down_right", 1], # 3 RIGHT DOWN
["idle_down", 1], # 4 DOWN
["idle_down_left", 1], # 5 LEFT DOWN
["idle_left", 1], # 6 LEFT
["idle_up", 1] # 7 LEFT UP
]
const speaks = [
["speak_up", 1], # 0 UP
["speak_up", 1], # 1 RIGHT UP
["speak_right", 1], # 2 RIGHT
["speak_down", 1], # 3 RIGHT DOWN
["speak_down", 1], # 4 DOWN
["speak_down", 1], # 5 LEFT DOWN
["speak_right", -1], # 6 LEFT
["speak_up", 1] # 7 LEFT UP
]
#const directions = ["walk_left", -1, # 0
# "walk_left", -1, # 1
# "walk_back", 1, # 2
# "walk_back", 1, # 3
# "walk_left", 1, # 4
# "walk_left", 1, # 5
# "walk_front", 1, # 6
# "walk_front", 1 # 7
# ]
#
#const idles = [ "idle_front_right", 1, # 0
# "idle_front_right", 1, # 1
# "idle_back", 1, # 2
# "idle_back", 1, # 3
# "idle_front_left", 1, # 4
# "idle_front_left", 1, # 5
# "idle_front", 1, # 6
# "idle_front", 1 # 7
# ]
#
#const speaks = ["idle_front_left", 1, # 0
# "idle_front_left", 1, # 1
# "idle_back", 1, # 2
# "idle_back", 1, # 3
# "idle_front_right", 1, # 4
# "idle_front_right", 1, # 5
# "idle_front", 1, # 6
# "idle_front", 1 # 7
# ]