evotars 0.0.8 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/.editorconfig +13 -0
  2. package/.prettierrc.json +3 -0
  3. package/README.md +3 -5
  4. package/index.html +13 -0
  5. package/package.json +2 -16
  6. package/playground/main.ts +48 -0
  7. package/playground/styles.css +17 -0
  8. package/public/evotars/agent/data.json +18 -0
  9. package/public/evotars/agent/sprite.json +166 -0
  10. package/public/evotars/agent/sprite.png +0 -0
  11. package/public/evotars/cat/data.json +18 -0
  12. package/public/evotars/cat/sprite.json +231 -0
  13. package/public/evotars/cat/sprite.png +0 -0
  14. package/public/evotars/dude/data.json +18 -0
  15. package/public/evotars/dude/sprite.json +231 -0
  16. package/public/evotars/dude/sprite.png +0 -0
  17. package/public/evotars/girl/data.json +18 -0
  18. package/public/evotars/girl/sprite.json +231 -0
  19. package/public/evotars/girl/sprite.png +0 -0
  20. package/public/evotars/nerd/data.json +18 -0
  21. package/public/evotars/nerd/sprite.json +231 -0
  22. package/public/evotars/nerd/sprite.png +0 -0
  23. package/public/evotars/senior/data.json +18 -0
  24. package/public/evotars/senior/sprite.json +231 -0
  25. package/public/evotars/senior/sprite.png +0 -0
  26. package/public/evotars/set.json +10 -0
  27. package/public/evotars/sith/data.json +18 -0
  28. package/public/evotars/sith/sprite.json +166 -0
  29. package/public/evotars/sith/sprite.png +0 -0
  30. package/public/evotars/sponge/data.json +18 -0
  31. package/public/evotars/sponge/sprite.json +231 -0
  32. package/public/evotars/sponge/sprite.png +0 -0
  33. package/public/fonts/Rubik.ttf +0 -0
  34. package/public/sounds/jump.mp3 +0 -0
  35. package/src/app.ts +71 -0
  36. package/src/config/constants.ts +1 -0
  37. package/src/entities/EmoteSpitter.ts +102 -0
  38. package/src/entities/Evotar.ts +468 -0
  39. package/src/entities/Message.ts +164 -0
  40. package/src/entities/Name.ts +33 -0
  41. package/src/entities/SpriteContainer.ts +65 -0
  42. package/src/entities/TrailEffect.ts +73 -0
  43. package/src/evotars.ts +75 -0
  44. package/src/evotarsManager.ts +313 -0
  45. package/src/helpers/timer.ts +43 -0
  46. package/src/helpers/types.ts +4 -0
  47. package/src/services/soundService.ts +30 -0
  48. package/src/services/spriteService.ts +167 -0
  49. package/src/types/dto/action.ts +79 -0
  50. package/{dist/types/dto/chatter.d.ts → src/types/dto/chatter.ts} +2 -2
  51. package/src/types/dto/event.ts +9 -0
  52. package/src/types/dto/message.ts +8 -0
  53. package/src/types/dto/settings.ts +5 -0
  54. package/src/types/dto/user.ts +13 -0
  55. package/tsconfig.json +23 -0
  56. package/vite.config.js +26 -0
  57. package/dist/app.d.ts +0 -24
  58. package/dist/config/constants.d.ts +0 -1
  59. package/dist/entities/EmoteSpitter.d.ts +0 -15
  60. package/dist/entities/Evotar.d.ts +0 -78
  61. package/dist/entities/Message.d.ts +0 -27
  62. package/dist/entities/Name.d.ts +0 -14
  63. package/dist/entities/SpriteContainer.d.ts +0 -16
  64. package/dist/entities/TrailEffect.d.ts +0 -15
  65. package/dist/evotars.d.ts +0 -15
  66. package/dist/evotars.js +0 -722
  67. package/dist/evotars.umd.cjs +0 -1
  68. package/dist/evotarsManager.d.ts +0 -30
  69. package/dist/helpers/timer.d.ts +0 -14
  70. package/dist/helpers/types.d.ts +0 -10
  71. package/dist/services/soundService.d.ts +0 -14
  72. package/dist/services/spriteService.d.ts +0 -63
  73. package/dist/types/dto/action.d.ts +0 -56
  74. package/dist/types/dto/event.d.ts +0 -9
  75. package/dist/types/dto/message.d.ts +0 -8
  76. package/dist/types/dto/settings.d.ts +0 -5
  77. package/dist/types/dto/user.d.ts +0 -12
  78. /package/{dist/index.d.ts → src/index.ts} +0 -0
  79. /package/{dist/types/dto/index.d.ts → src/types/dto/index.ts} +0 -0
  80. /package/{dist/types/index.d.ts → src/types/index.ts} +0 -0
package/.editorconfig ADDED
@@ -0,0 +1,13 @@
1
+ # Editor configuration, see http://editorconfig.org
2
+ root = true
3
+
4
+ [*]
5
+ charset = utf-8
6
+ indent_style = space
7
+ indent_size = 2
8
+ insert_final_newline = true
9
+ trim_trailing_whitespace = true
10
+
11
+ [*.md]
12
+ max_line_length = off
13
+ trim_trailing_whitespace = false
@@ -0,0 +1,3 @@
1
+ {
2
+ "singleQuote": true
3
+ }
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # Evotars
2
2
 
3
- Show animated chatter's evotars on your stream.
3
+ Show animated evotars on your stream.
4
4
 
5
5
  ## Features
6
6
 
7
- When a chatter send a meassage, the evotar appears with the chat box.
7
+ It's just an app for rendering any characters and processing commands like message, raid, action, etc.
8
8
 
9
9
  ## Usage
10
10
 
@@ -21,15 +21,13 @@ Put URL to the browser source.
21
21
  Frontend uses PIXI JS for rendering evotars.
22
22
 
23
23
  ```
24
- npm run dev
24
+ pnpm run dev
25
25
  ```
26
26
 
27
27
  ## Creating new sprites
28
28
 
29
29
  It's really easy to create sprites with [Aseprite](https://github.com/aseprite/aseprite)
30
30
 
31
- Example can be found in aseprite folder.
32
-
33
31
  ## Contributing
34
32
 
35
33
  If you'd like to contribute to this project, please feel free to create pull requests.
package/index.html ADDED
@@ -0,0 +1,13 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>Evotars</title>
7
+ <link rel="preload" rel="stylesheet" href="https://fonts.googleapis.com/css?family=Rubik">
8
+ </head>
9
+ <body>
10
+ <script type="module" src="/playground/main.ts"></script>
11
+ </body>
12
+ </html>
13
+
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.8",
2
+ "version": "0.0.9",
3
3
  "name": "evotars",
4
4
  "description": "Show animated characters on stream",
5
5
  "author": "Mikhail Morozov",
@@ -19,22 +19,8 @@
19
19
  "preview": "vite preview",
20
20
  "lint": "tsc --noEmit"
21
21
  },
22
- "files": [
23
- "dist",
24
- "LICENSE",
25
- "README.md"
26
- ],
27
22
  "source": "./src/index.ts",
28
- "main": "./dist/evotars.umd.cjs",
29
- "module": "./dist/evotars.js",
30
- "exports": {
31
- ".": {
32
- "import": "./dist/evotars.js",
33
- "require": "./dist/evotars.umd.cjs"
34
- }
35
- },
36
- "type": "module",
37
- "types": "./dist/index.d.ts",
23
+ "main": "./src/index.ts",
38
24
  "devDependencies": {
39
25
  "@types/tinycolor2": "^1.4.6",
40
26
  "typescript": "^5.0.2",
@@ -0,0 +1,48 @@
1
+ import { Evotars } from '../src/evotars';
2
+ import { SettingsEntity } from '../src/types';
3
+ import './styles.css';
4
+
5
+ const sounds = { jump: { src: '/sounds/jump.mp3' } };
6
+ const settings: SettingsEntity = {
7
+ fallingEvotars: true,
8
+ };
9
+
10
+ const root = document.body;
11
+
12
+ if (root) {
13
+ const evotars = new Evotars(root, {
14
+ font: 'Rubik',
15
+ sounds,
16
+ spriteLoaderFn: async (name: string) => {
17
+ const path = '/evotars/' + name + '/';
18
+ const sprite = await fetch(path + 'sprite.json');
19
+ const spriteJson = await sprite.json();
20
+ const data = await fetch(path + 'data.json');
21
+ const dataJson = await data.json();
22
+
23
+ return {
24
+ data: dataJson,
25
+ image: path + 'sprite.png',
26
+ sprite: spriteJson,
27
+ };
28
+ },
29
+ });
30
+
31
+ await evotars.run();
32
+ evotars.updateSettings(settings);
33
+
34
+ setTimeout(() => {
35
+ evotars.processMessage({
36
+ message: 'Hello!',
37
+ userId: '1',
38
+ emotes: [
39
+ 'https://static-cdn.jtvnw.net/emoticons/v2/emotesv2_a3c4578cf38c4c668553ead85b899d70/default/dark/3.0',
40
+ ],
41
+ info: {
42
+ color: 'pink',
43
+ displayName: 'Evotar',
44
+ sprite: 'dude',
45
+ },
46
+ });
47
+ }, 500);
48
+ }
@@ -0,0 +1,17 @@
1
+ :root {
2
+ margin: 0;
3
+ padding: 0;
4
+ }
5
+
6
+ html {
7
+ height: 100%;
8
+ }
9
+
10
+ body {
11
+ margin: 0;
12
+ padding: 0;
13
+ width: 100%;
14
+ height: 100%;
15
+ min-height: 100%;
16
+ overflow: hidden;
17
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "agent",
3
+ "collider": {
4
+ "x": 8,
5
+ "y": 7,
6
+ "w": 16,
7
+ "h": 18
8
+ },
9
+ "size": {
10
+ "w": 32,
11
+ "h": 32
12
+ },
13
+ "scale": 4,
14
+ "flip": true,
15
+ "colored": [
16
+ "Body"
17
+ ]
18
+ }
@@ -0,0 +1,166 @@
1
+ { "frames": {
2
+ "agent_Body_0": {
3
+ "frame": { "x": 0, "y": 0, "w": 32, "h": 32 },
4
+ "rotated": false,
5
+ "trimmed": false,
6
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
7
+ "sourceSize": { "w": 32, "h": 32 },
8
+ "duration": 300
9
+ },
10
+ "agent_Body_1": {
11
+ "frame": { "x": 32, "y": 0, "w": 32, "h": 32 },
12
+ "rotated": false,
13
+ "trimmed": false,
14
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
15
+ "sourceSize": { "w": 32, "h": 32 },
16
+ "duration": 300
17
+ },
18
+ "agent_Body_2": {
19
+ "frame": { "x": 64, "y": 0, "w": 32, "h": 32 },
20
+ "rotated": false,
21
+ "trimmed": false,
22
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
23
+ "sourceSize": { "w": 32, "h": 32 },
24
+ "duration": 300
25
+ },
26
+ "agent_Body_3": {
27
+ "frame": { "x": 96, "y": 0, "w": 32, "h": 32 },
28
+ "rotated": false,
29
+ "trimmed": false,
30
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
31
+ "sourceSize": { "w": 32, "h": 32 },
32
+ "duration": 100
33
+ },
34
+ "agent_Body_4": {
35
+ "frame": { "x": 128, "y": 0, "w": 32, "h": 32 },
36
+ "rotated": false,
37
+ "trimmed": false,
38
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
39
+ "sourceSize": { "w": 32, "h": 32 },
40
+ "duration": 100
41
+ },
42
+ "agent_Body_5": {
43
+ "frame": { "x": 160, "y": 0, "w": 32, "h": 32 },
44
+ "rotated": false,
45
+ "trimmed": false,
46
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
47
+ "sourceSize": { "w": 32, "h": 32 },
48
+ "duration": 100
49
+ },
50
+ "agent_Body_6": {
51
+ "frame": { "x": 192, "y": 0, "w": 32, "h": 32 },
52
+ "rotated": false,
53
+ "trimmed": false,
54
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
55
+ "sourceSize": { "w": 32, "h": 32 },
56
+ "duration": 100
57
+ },
58
+ "agent_Body_7": {
59
+ "frame": { "x": 224, "y": 0, "w": 32, "h": 32 },
60
+ "rotated": false,
61
+ "trimmed": false,
62
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
63
+ "sourceSize": { "w": 32, "h": 32 },
64
+ "duration": 100
65
+ },
66
+ "agent_Body_8": {
67
+ "frame": { "x": 256, "y": 0, "w": 32, "h": 32 },
68
+ "rotated": false,
69
+ "trimmed": false,
70
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
71
+ "sourceSize": { "w": 32, "h": 32 },
72
+ "duration": 100
73
+ },
74
+ "agent_Eyes_0": {
75
+ "frame": { "x": 0, "y": 32, "w": 32, "h": 32 },
76
+ "rotated": false,
77
+ "trimmed": false,
78
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
79
+ "sourceSize": { "w": 32, "h": 32 },
80
+ "duration": 300
81
+ },
82
+ "agent_Eyes_1": {
83
+ "frame": { "x": 32, "y": 32, "w": 32, "h": 32 },
84
+ "rotated": false,
85
+ "trimmed": false,
86
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
87
+ "sourceSize": { "w": 32, "h": 32 },
88
+ "duration": 300
89
+ },
90
+ "agent_Eyes_2": {
91
+ "frame": { "x": 64, "y": 32, "w": 32, "h": 32 },
92
+ "rotated": false,
93
+ "trimmed": false,
94
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
95
+ "sourceSize": { "w": 32, "h": 32 },
96
+ "duration": 300
97
+ },
98
+ "agent_Eyes_3": {
99
+ "frame": { "x": 96, "y": 32, "w": 32, "h": 32 },
100
+ "rotated": false,
101
+ "trimmed": false,
102
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
103
+ "sourceSize": { "w": 32, "h": 32 },
104
+ "duration": 100
105
+ },
106
+ "agent_Eyes_4": {
107
+ "frame": { "x": 128, "y": 32, "w": 32, "h": 32 },
108
+ "rotated": false,
109
+ "trimmed": false,
110
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
111
+ "sourceSize": { "w": 32, "h": 32 },
112
+ "duration": 100
113
+ },
114
+ "agent_Eyes_5": {
115
+ "frame": { "x": 160, "y": 32, "w": 32, "h": 32 },
116
+ "rotated": false,
117
+ "trimmed": false,
118
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
119
+ "sourceSize": { "w": 32, "h": 32 },
120
+ "duration": 100
121
+ },
122
+ "agent_Eyes_6": {
123
+ "frame": { "x": 192, "y": 32, "w": 32, "h": 32 },
124
+ "rotated": false,
125
+ "trimmed": false,
126
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
127
+ "sourceSize": { "w": 32, "h": 32 },
128
+ "duration": 100
129
+ },
130
+ "agent_Eyes_7": {
131
+ "frame": { "x": 224, "y": 32, "w": 32, "h": 32 },
132
+ "rotated": false,
133
+ "trimmed": false,
134
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
135
+ "sourceSize": { "w": 32, "h": 32 },
136
+ "duration": 100
137
+ },
138
+ "agent_Eyes_8": {
139
+ "frame": { "x": 256, "y": 32, "w": 32, "h": 32 },
140
+ "rotated": false,
141
+ "trimmed": false,
142
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
143
+ "sourceSize": { "w": 32, "h": 32 },
144
+ "duration": 100
145
+ }
146
+ },
147
+ "meta": {
148
+ "app": "https://www.aseprite.org/",
149
+ "version": "1.x-dev",
150
+ "image": "agent.png",
151
+ "format": "RGBA8888",
152
+ "size": { "w": 288, "h": 64 },
153
+ "scale": "1",
154
+ "frameTags": [
155
+ { "name": "Idle", "from": 0, "to": 2, "direction": "forward", "color": "#000000ff" },
156
+ { "name": "Jump", "from": 3, "to": 3, "direction": "forward", "color": "#000000ff" },
157
+ { "name": "Fall", "from": 4, "to": 4, "direction": "forward", "color": "#000000ff" },
158
+ { "name": "Land", "from": 5, "to": 5, "direction": "forward", "color": "#000000ff" },
159
+ { "name": "Run", "from": 6, "to": 8, "direction": "forward", "color": "#000000ff" }
160
+ ],
161
+ "layers": [
162
+ { "name": "Body", "opacity": 255, "blendMode": "normal" },
163
+ { "name": "Eyes", "opacity": 255, "blendMode": "normal" }
164
+ ]
165
+ }
166
+ }
Binary file
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "cat",
3
+ "collider": {
4
+ "x": 8,
5
+ "y": 4,
6
+ "w": 16,
7
+ "h": 11
8
+ },
9
+ "size": {
10
+ "w": 32,
11
+ "h": 32
12
+ },
13
+ "scale": 4,
14
+ "flip": true,
15
+ "colored": [
16
+ "Body"
17
+ ]
18
+ }
@@ -0,0 +1,231 @@
1
+ { "frames": {
2
+ "cat_Body_0": {
3
+ "frame": { "x": 0, "y": 0, "w": 32, "h": 32 },
4
+ "rotated": false,
5
+ "trimmed": false,
6
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
7
+ "sourceSize": { "w": 32, "h": 32 },
8
+ "duration": 300
9
+ },
10
+ "cat_Body_1": {
11
+ "frame": { "x": 32, "y": 0, "w": 32, "h": 32 },
12
+ "rotated": false,
13
+ "trimmed": false,
14
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
15
+ "sourceSize": { "w": 32, "h": 32 },
16
+ "duration": 300
17
+ },
18
+ "cat_Body_2": {
19
+ "frame": { "x": 64, "y": 0, "w": 32, "h": 32 },
20
+ "rotated": false,
21
+ "trimmed": false,
22
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
23
+ "sourceSize": { "w": 32, "h": 32 },
24
+ "duration": 300
25
+ },
26
+ "cat_Body_3": {
27
+ "frame": { "x": 96, "y": 0, "w": 32, "h": 32 },
28
+ "rotated": false,
29
+ "trimmed": false,
30
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
31
+ "sourceSize": { "w": 32, "h": 32 },
32
+ "duration": 100
33
+ },
34
+ "cat_Body_4": {
35
+ "frame": { "x": 128, "y": 0, "w": 32, "h": 32 },
36
+ "rotated": false,
37
+ "trimmed": false,
38
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
39
+ "sourceSize": { "w": 32, "h": 32 },
40
+ "duration": 100
41
+ },
42
+ "cat_Body_5": {
43
+ "frame": { "x": 160, "y": 0, "w": 32, "h": 32 },
44
+ "rotated": false,
45
+ "trimmed": false,
46
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
47
+ "sourceSize": { "w": 32, "h": 32 },
48
+ "duration": 100
49
+ },
50
+ "cat_Body_6": {
51
+ "frame": { "x": 192, "y": 0, "w": 32, "h": 32 },
52
+ "rotated": false,
53
+ "trimmed": false,
54
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
55
+ "sourceSize": { "w": 32, "h": 32 },
56
+ "duration": 100
57
+ },
58
+ "cat_Body_7": {
59
+ "frame": { "x": 224, "y": 0, "w": 32, "h": 32 },
60
+ "rotated": false,
61
+ "trimmed": false,
62
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
63
+ "sourceSize": { "w": 32, "h": 32 },
64
+ "duration": 100
65
+ },
66
+ "cat_Body_8": {
67
+ "frame": { "x": 256, "y": 0, "w": 32, "h": 32 },
68
+ "rotated": false,
69
+ "trimmed": false,
70
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
71
+ "sourceSize": { "w": 32, "h": 32 },
72
+ "duration": 100
73
+ },
74
+ "cat_Body_9": {
75
+ "frame": { "x": 288, "y": 0, "w": 32, "h": 32 },
76
+ "rotated": false,
77
+ "trimmed": false,
78
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
79
+ "sourceSize": { "w": 32, "h": 32 },
80
+ "duration": 300
81
+ },
82
+ "cat_Body_10": {
83
+ "frame": { "x": 320, "y": 0, "w": 32, "h": 32 },
84
+ "rotated": false,
85
+ "trimmed": false,
86
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
87
+ "sourceSize": { "w": 32, "h": 32 },
88
+ "duration": 300
89
+ },
90
+ "cat_Body_11": {
91
+ "frame": { "x": 352, "y": 0, "w": 32, "h": 32 },
92
+ "rotated": false,
93
+ "trimmed": false,
94
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
95
+ "sourceSize": { "w": 32, "h": 32 },
96
+ "duration": 300
97
+ },
98
+ "cat_Body_12": {
99
+ "frame": { "x": 384, "y": 0, "w": 32, "h": 32 },
100
+ "rotated": false,
101
+ "trimmed": false,
102
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
103
+ "sourceSize": { "w": 32, "h": 32 },
104
+ "duration": 1000
105
+ },
106
+ "cat_Eyes_0": {
107
+ "frame": { "x": 0, "y": 32, "w": 32, "h": 32 },
108
+ "rotated": false,
109
+ "trimmed": false,
110
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
111
+ "sourceSize": { "w": 32, "h": 32 },
112
+ "duration": 300
113
+ },
114
+ "cat_Eyes_1": {
115
+ "frame": { "x": 32, "y": 32, "w": 32, "h": 32 },
116
+ "rotated": false,
117
+ "trimmed": false,
118
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
119
+ "sourceSize": { "w": 32, "h": 32 },
120
+ "duration": 300
121
+ },
122
+ "cat_Eyes_2": {
123
+ "frame": { "x": 64, "y": 32, "w": 32, "h": 32 },
124
+ "rotated": false,
125
+ "trimmed": false,
126
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
127
+ "sourceSize": { "w": 32, "h": 32 },
128
+ "duration": 300
129
+ },
130
+ "cat_Eyes_3": {
131
+ "frame": { "x": 96, "y": 32, "w": 32, "h": 32 },
132
+ "rotated": false,
133
+ "trimmed": false,
134
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
135
+ "sourceSize": { "w": 32, "h": 32 },
136
+ "duration": 100
137
+ },
138
+ "cat_Eyes_4": {
139
+ "frame": { "x": 128, "y": 32, "w": 32, "h": 32 },
140
+ "rotated": false,
141
+ "trimmed": false,
142
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
143
+ "sourceSize": { "w": 32, "h": 32 },
144
+ "duration": 100
145
+ },
146
+ "cat_Eyes_5": {
147
+ "frame": { "x": 160, "y": 32, "w": 32, "h": 32 },
148
+ "rotated": false,
149
+ "trimmed": false,
150
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
151
+ "sourceSize": { "w": 32, "h": 32 },
152
+ "duration": 100
153
+ },
154
+ "cat_Eyes_6": {
155
+ "frame": { "x": 192, "y": 32, "w": 32, "h": 32 },
156
+ "rotated": false,
157
+ "trimmed": false,
158
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
159
+ "sourceSize": { "w": 32, "h": 32 },
160
+ "duration": 100
161
+ },
162
+ "cat_Eyes_7": {
163
+ "frame": { "x": 224, "y": 32, "w": 32, "h": 32 },
164
+ "rotated": false,
165
+ "trimmed": false,
166
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
167
+ "sourceSize": { "w": 32, "h": 32 },
168
+ "duration": 100
169
+ },
170
+ "cat_Eyes_8": {
171
+ "frame": { "x": 256, "y": 32, "w": 32, "h": 32 },
172
+ "rotated": false,
173
+ "trimmed": false,
174
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
175
+ "sourceSize": { "w": 32, "h": 32 },
176
+ "duration": 100
177
+ },
178
+ "cat_Eyes_9": {
179
+ "frame": { "x": 288, "y": 32, "w": 32, "h": 32 },
180
+ "rotated": false,
181
+ "trimmed": false,
182
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
183
+ "sourceSize": { "w": 32, "h": 32 },
184
+ "duration": 300
185
+ },
186
+ "cat_Eyes_10": {
187
+ "frame": { "x": 320, "y": 32, "w": 32, "h": 32 },
188
+ "rotated": false,
189
+ "trimmed": false,
190
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
191
+ "sourceSize": { "w": 32, "h": 32 },
192
+ "duration": 300
193
+ },
194
+ "cat_Eyes_11": {
195
+ "frame": { "x": 352, "y": 32, "w": 32, "h": 32 },
196
+ "rotated": false,
197
+ "trimmed": false,
198
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
199
+ "sourceSize": { "w": 32, "h": 32 },
200
+ "duration": 300
201
+ },
202
+ "cat_Eyes_12": {
203
+ "frame": { "x": 384, "y": 32, "w": 32, "h": 32 },
204
+ "rotated": false,
205
+ "trimmed": false,
206
+ "spriteSourceSize": { "x": 0, "y": 0, "w": 32, "h": 32 },
207
+ "sourceSize": { "w": 32, "h": 32 },
208
+ "duration": 1000
209
+ }
210
+ },
211
+ "meta": {
212
+ "app": "https://www.aseprite.org/",
213
+ "version": "1.x-dev",
214
+ "image": "cat.png",
215
+ "format": "RGBA8888",
216
+ "size": { "w": 416, "h": 64 },
217
+ "scale": "1",
218
+ "frameTags": [
219
+ { "name": "Idle", "from": 0, "to": 2, "direction": "forward", "color": "#000000ff" },
220
+ { "name": "Jump", "from": 3, "to": 3, "direction": "forward", "color": "#000000ff" },
221
+ { "name": "Fall", "from": 4, "to": 4, "direction": "forward", "color": "#000000ff" },
222
+ { "name": "Land", "from": 5, "to": 5, "direction": "forward", "color": "#000000ff" },
223
+ { "name": "Run", "from": 6, "to": 8, "direction": "forward", "color": "#000000ff" },
224
+ { "name": "Die", "from": 9, "to": 12, "direction": "forward", "color": "#000000ff" }
225
+ ],
226
+ "layers": [
227
+ { "name": "Body", "opacity": 255, "blendMode": "normal" },
228
+ { "name": "Eyes", "opacity": 255, "blendMode": "normal" }
229
+ ]
230
+ }
231
+ }
Binary file
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "dude",
3
+ "collider": {
4
+ "x": 8,
5
+ "y": 7,
6
+ "w": 16,
7
+ "h": 18
8
+ },
9
+ "size": {
10
+ "w": 32,
11
+ "h": 32
12
+ },
13
+ "scale": 4,
14
+ "flip": true,
15
+ "colored": [
16
+ "Body"
17
+ ]
18
+ }