diff --git a/node_server/assets-compiler/bbmodel/conf.json b/node_server/assets-compiler/bbmodel/conf.json index d74d965f3..921541037 100644 --- a/node_server/assets-compiler/bbmodel/conf.json +++ b/node_server/assets-compiler/bbmodel/conf.json @@ -19,6 +19,7 @@ {"name": "mob/horse", "shift": {"x": 0, "y": 0, "z": 0}}, {"name": "mob/fox", "shift": {"x": 0, "y": 0, "z": 0}}, {"name": "mob/npc", "shift": {"x": 0, "y": 0, "z": 0}}, + {"name": "mob/frog", "shift": {"x": 0, "y": 0, "z": 0}}, {"name": "transport/boat", "shift": {"x": 0, "y": 0, "z": 0}}, diff --git a/node_server/assets-compiler/bbmodel/models/mob/frog.bbmodel b/node_server/assets-compiler/bbmodel/models/mob/frog.bbmodel new file mode 100644 index 000000000..7578879df --- /dev/null +++ b/node_server/assets-compiler/bbmodel/models/mob/frog.bbmodel @@ -0,0 +1 @@ +{"meta":{"format_version":"4.5","model_format":"free","box_uv":true},"name":"frog","model_identifier":"frog","visible_box":[1,1,0.25],"variable_placeholders":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":48,"height":48},"elements":[{"name":"body","box_uv":true,"rescale":false,"locked":false,"from":[-3.5,1,-4],"to":[3.5,4,5],"autouv":0,"color":1,"origin":[0,0,0],"uv_offset":[3,1],"faces":{"north":{"uv":[12,10,19,13],"texture":0},"east":{"uv":[3,10,12,13],"texture":0},"south":{"uv":[28,10,35,13],"texture":0},"west":{"uv":[19,10,28,13],"texture":0},"up":{"uv":[19,10,12,1],"texture":0},"down":{"uv":[26,1,19,10],"texture":0}},"type":"cube","uuid":"41a7256a-204f-900b-329f-8815b2ee8ef5"},{"name":"body","box_uv":true,"rescale":false,"locked":false,"from":[-3.5,3,-4],"to":[3.5,3,5],"autouv":0,"color":1,"origin":[0,0,0],"uv_offset":[23,22],"faces":{"north":{"uv":[32,31,39,31],"texture":0},"east":{"uv":[23,31,32,31],"texture":0},"south":{"uv":[48,31,55,31],"texture":0},"west":{"uv":[39,31,48,31],"texture":0},"up":{"uv":[39,31,32,22],"texture":0},"down":{"uv":[46,22,39,31],"texture":0}},"type":"cube","uuid":"cbf6ae3c-96d0-5a09-ee46-06793a3a284d"},{"name":"head","box_uv":true,"rescale":false,"locked":false,"from":[-3.5,5,-4],"to":[3.5,5,5],"autouv":0,"color":2,"origin":[0,0,0],"uv_offset":[23,13],"faces":{"north":{"uv":[32,22,39,22],"texture":0},"east":{"uv":[23,22,32,22],"texture":0},"south":{"uv":[48,22,55,22],"texture":0},"west":{"uv":[39,22,48,22],"texture":0},"up":{"uv":[39,22,32,13],"texture":0},"down":{"uv":[46,13,39,22],"texture":0}},"type":"cube","uuid":"26d9a7c3-8c10-9e6a-ce76-4925e7cac390"},{"name":"head","box_uv":true,"rescale":false,"locked":false,"from":[-3.5,3,-4],"to":[3.5,6,5],"autouv":0,"color":2,"origin":[0,0,0],"uv_offset":[0,13],"faces":{"north":{"uv":[9,22,16,25],"texture":0},"east":{"uv":[0,22,9,25],"texture":0},"south":{"uv":[25,22,32,25],"texture":0},"west":{"uv":[16,22,25,25],"texture":0},"up":{"uv":[16,22,9,13],"texture":0},"down":{"uv":[23,13,16,22],"texture":0}},"type":"cube","uuid":"da64eddc-9b7d-c183-7c5a-c32bd9ab715f"},{"name":"lead","position":[0,6,0],"rotation":[0,0,0],"ignore_inherited_scale":false,"visibility":true,"locked":false,"uuid":"82d34905-519f-66c3-0e40-96824109a29c","type":"locator"},{"name":"right_eye","box_uv":true,"rescale":false,"locked":false,"from":[0.5,6,-3],"to":[3.5,8,0],"autouv":0,"color":4,"origin":[0,0,0],"faces":{"north":{"uv":[3,3,6,5],"texture":0},"east":{"uv":[0,3,3,5],"texture":0},"south":{"uv":[9,3,12,5],"texture":0},"west":{"uv":[6,3,9,5],"texture":0},"up":{"uv":[6,3,3,0],"texture":0},"down":{"uv":[9,0,6,3],"texture":0}},"type":"cube","uuid":"f881f352-f402-4197-0663-4e3187f4622c"},{"name":"left_eye","box_uv":true,"rescale":false,"locked":false,"from":[-3.5,6,-3],"to":[-0.5,8,0],"autouv":0,"color":5,"origin":[0,0,0],"uv_offset":[0,5],"faces":{"north":{"uv":[3,8,6,10],"texture":0},"east":{"uv":[0,8,3,10],"texture":0},"south":{"uv":[9,8,12,10],"texture":0},"west":{"uv":[6,8,9,10],"texture":0},"up":{"uv":[6,8,3,5],"texture":0},"down":{"uv":[9,5,6,8],"texture":0}},"type":"cube","uuid":"700fe81c-fa19-a98b-dce0-8e5aab018605"},{"name":"croaking_body","box_uv":true,"rescale":false,"locked":false,"from":[-3.5,1.1,-3.9],"to":[3.5,3.1,-0.8999999999999999],"autouv":0,"color":6,"inflate":-0.1,"origin":[0,0,0],"uv_offset":[26,5],"faces":{"north":{"uv":[29,8,36,10],"texture":0},"east":{"uv":[26,8,29,10],"texture":0},"south":{"uv":[39,8,46,10],"texture":0},"west":{"uv":[36,8,39,10],"texture":0},"up":{"uv":[36,8,29,5],"texture":0},"down":{"uv":[43,5,36,8],"texture":0}},"type":"cube","uuid":"100415f7-1f66-9060-5ea0-480346374b12"},{"name":"tongue","box_uv":true,"rescale":false,"locked":false,"from":[-2,3.1,-2.1],"to":[2,3.1,4.9],"autouv":0,"color":7,"origin":[0,0,0],"uv_offset":[17,13],"faces":{"north":{"uv":[24,20,28,20],"texture":0},"east":{"uv":[17,20,24,20],"texture":0},"south":{"uv":[35,20,39,20],"texture":0},"west":{"uv":[28,20,35,20],"texture":0},"up":{"uv":[28,20,24,13],"texture":0},"down":{"uv":[32,13,28,20],"texture":0}},"type":"cube","uuid":"1bc691ba-59db-fcb2-bb4f-3452330c5a04"},{"name":"left_arm","box_uv":true,"rescale":false,"locked":false,"from":[-5,0,-3.5],"to":[-3,3,-0.5],"autouv":0,"color":8,"origin":[0,0,0],"uv_offset":[0,32],"faces":{"north":{"uv":[3,35,5,38],"texture":0},"east":{"uv":[0,35,3,38],"texture":0},"south":{"uv":[8,35,10,38],"texture":0},"west":{"uv":[5,35,8,38],"texture":0},"up":{"uv":[5,35,3,32],"texture":0},"down":{"uv":[7,32,5,35],"texture":0}},"type":"cube","uuid":"a2a6f9d8-5138-7e28-e579-3646514f069f"},{"name":"left_arm","box_uv":true,"rescale":false,"locked":false,"from":[-8,-0.01,-7.5],"to":[0,-0.01,0.5],"autouv":0,"color":8,"origin":[-4,0,-3.5],"uv_offset":[18,40],"faces":{"north":{"uv":[26,48,34,48],"texture":0},"east":{"uv":[18,48,26,48],"texture":0},"south":{"uv":[42,48,50,48],"texture":0},"west":{"uv":[34,48,42,48],"texture":0},"up":{"uv":[34,48,26,40],"texture":0},"down":{"uv":[42,40,34,48],"texture":0}},"type":"cube","uuid":"9be50702-31c3-ecae-6313-25f993c53e74"},{"name":"right_arm","box_uv":true,"rescale":false,"locked":false,"from":[3,0,-3.5],"to":[5,3,-0.5],"autouv":0,"color":9,"origin":[0,0,0],"uv_offset":[0,38],"faces":{"north":{"uv":[3,41,5,44],"texture":0},"east":{"uv":[0,41,3,44],"texture":0},"south":{"uv":[8,41,10,44],"texture":0},"west":{"uv":[5,41,8,44],"texture":0},"up":{"uv":[5,41,3,38],"texture":0},"down":{"uv":[7,38,5,41],"texture":0}},"type":"cube","uuid":"f0d94733-01e7-407d-bc3f-a1c9bf0bb5f3"},{"name":"right_arm","box_uv":true,"rescale":false,"locked":false,"from":[0,-0.01,-7.5],"to":[8,-0.01,0.5],"autouv":0,"color":9,"origin":[0,0,0],"uv_offset":[2,40],"faces":{"north":{"uv":[10,48,18,48],"texture":0},"east":{"uv":[2,48,10,48],"texture":0},"south":{"uv":[26,48,34,48],"texture":0},"west":{"uv":[18,48,26,48],"texture":0},"up":{"uv":[18,48,10,40],"texture":0},"down":{"uv":[26,40,18,48],"texture":0}},"type":"cube","uuid":"4f91cb18-b718-2cd1-55e7-e6c0475cb22c"},{"name":"left_leg","box_uv":true,"rescale":false,"locked":false,"from":[-5.5,0,2],"to":[-2.5,3,6],"autouv":0,"color":0,"origin":[0,0,0],"uv_offset":[14,25],"faces":{"north":{"uv":[18,29,21,32],"texture":0},"east":{"uv":[14,29,18,32],"texture":0},"south":{"uv":[25,29,28,32],"texture":0},"west":{"uv":[21,29,25,32],"texture":0},"up":{"uv":[21,29,18,25],"texture":0},"down":{"uv":[24,25,21,29],"texture":0}},"type":"cube","uuid":"12aa3c8e-208e-5776-5658-66993a2c1d16"},{"name":"left_leg","box_uv":true,"rescale":false,"locked":false,"from":[-9.5,-0.01,0],"to":[-1.5,-0.01,8],"autouv":0,"color":0,"origin":[-5.5,0,4],"uv_offset":[2,32],"faces":{"north":{"uv":[10,40,18,40],"texture":0},"east":{"uv":[2,40,10,40],"texture":0},"south":{"uv":[26,40,34,40],"texture":0},"west":{"uv":[18,40,26,40],"texture":0},"up":{"uv":[18,40,10,32],"texture":0},"down":{"uv":[26,32,18,40],"texture":0}},"type":"cube","uuid":"65d54286-1dec-34af-3031-ff2dff636cff"},{"name":"right_leg","box_uv":true,"rescale":false,"locked":false,"from":[2.5,0,2],"to":[5.5,3,6],"autouv":0,"color":1,"origin":[0,0,0],"uv_offset":[0,25],"faces":{"north":{"uv":[4,29,7,32],"texture":0},"east":{"uv":[0,29,4,32],"texture":0},"south":{"uv":[11,29,14,32],"texture":0},"west":{"uv":[7,29,11,32],"texture":0},"up":{"uv":[7,29,4,25],"texture":0},"down":{"uv":[10,25,7,29],"texture":0}},"type":"cube","uuid":"379da55d-7f2b-3299-2841-3cc15338c5f1"},{"name":"right_leg","box_uv":true,"rescale":false,"locked":false,"from":[1.5,-0.01,0],"to":[9.5,-0.01,8],"autouv":0,"color":1,"origin":[5.5,0,4],"uv_offset":[18,32],"faces":{"north":{"uv":[26,40,34,40],"texture":0},"east":{"uv":[18,40,26,40],"texture":0},"south":{"uv":[42,40,50,40],"texture":0},"west":{"uv":[34,40,42,40],"texture":0},"up":{"uv":[34,40,26,32],"texture":0},"down":{"uv":[42,32,34,40],"texture":0}},"type":"cube","uuid":"0ad8ddb5-1dab-5454-a966-1dc9c52b2306"}],"outliner":[{"name":"root","origin":[0,0,0],"color":0,"uuid":"9295efc5-6c11-798f-eb40-2a0588abc75a","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":[{"name":"body","origin":[0,2,4],"color":1,"uuid":"1fb0fd85-c85a-16a6-b64e-b86b1d5aca44","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"children":["41a7256a-204f-900b-329f-8815b2ee8ef5","cbf6ae3c-96d0-5a09-ee46-06793a3a284d",{"name":"head","origin":[0,4,3],"color":2,"uuid":"9cb5e2e9-335c-1b8f-a99f-fb843b138c1d","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"children":["26d9a7c3-8c10-9e6a-ce76-4925e7cac390","da64eddc-9b7d-c183-7c5a-c32bd9ab715f","82d34905-519f-66c3-0e40-96824109a29c",{"name":"eyes","origin":[0.5,4,5],"color":3,"uuid":"ab36d04b-a30e-f524-d8d2-70f3623f16d2","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"children":[{"name":"right_eye","origin":[2,7,-1.5],"color":4,"uuid":"c39b2754-787b-8236-478f-434b326b7785","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"children":["f881f352-f402-4197-0663-4e3187f4622c"]},{"name":"left_eye","origin":[-2,7,-1.5],"color":5,"uuid":"9f2cdd94-90e4-1bbf-c849-980d202f2f7e","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"children":["700fe81c-fa19-a98b-dce0-8e5aab018605"]}]}]},{"name":"croaking_body","origin":[0,3,-1],"color":6,"uuid":"e47662aa-6c49-03fb-0aad-b145cdbf8c84","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"children":["100415f7-1f66-9060-5ea0-480346374b12"]},{"name":"tongue","origin":[0,3.1,5],"color":7,"uuid":"ca540b80-348f-e525-813b-b7083a3baa56","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"children":["1bc691ba-59db-fcb2-bb4f-3452330c5a04"]},{"name":"left_arm","origin":[-4,3,-2.5],"color":8,"uuid":"460efa0a-4ba0-5fde-92ad-14855858acb7","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"children":["a2a6f9d8-5138-7e28-e579-3646514f069f","9be50702-31c3-ecae-6313-25f993c53e74"]},{"name":"right_arm","origin":[4,3,-2.5],"color":9,"uuid":"e488e81d-7ede-4fd3-10f8-29f40090612a","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"children":["f0d94733-01e7-407d-bc3f-a1c9bf0bb5f3","4f91cb18-b718-2cd1-55e7-e6c0475cb22c"]}]},{"name":"left_leg","origin":[-3.5,3,4],"color":0,"uuid":"e5b4cf3a-c5f3-f7af-cd0e-351cceda16a9","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"children":["12aa3c8e-208e-5776-5658-66993a2c1d16","65d54286-1dec-34af-3031-ff2dff636cff"]},{"name":"right_leg","origin":[3.5,3,4],"color":1,"uuid":"c5902144-6262-d694-f090-d273ed4d1509","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"children":["379da55d-7f2b-3299-2841-3cc15338c5f1","0ad8ddb5-1dab-5454-a966-1dc9c52b2306"]}]}],"textures":[{"path":"C:\\Users\\Sergey\\OneDrive\\Рабочий стол\\Target_Client-main\\resource_packs\\vanilla_1.19.0\\textures\\entity\\frog\\temperate_frog.png","name":"temperate_frog.png","folder":"","namespace":"","id":"0","particle":false,"render_mode":"default","render_sides":"auto","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"mode":"bitmap","saved":true,"uuid":"fee754f1-0384-ca57-de85-53fbc9f76e59","relative_path":"../../../../../../../../Users/Sergey/OneDrive/Рабочий стол/Target_Client-main/resource_packs/vanilla_1.19.0/textures/entity/frog/temperate_frog.png","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABNJJREFUaEPVWU1sTUEUnicRIWlpqZ82aFoV5BULEqm/CIlYWFiIHQlhRYIg2IiNiN8FK0IQGyxERGyItGgqLNAXRFX8pFUtRZsQkbjyjXw358677965993X9t1NpzP3zpxvzne+c2ZeSomn4/A6p+fLV90z99idlBwbqm2PkQBAQ6v2XokM4PSa2c6EstF6is/ffijZ3nr9eeT5bDbNM2n3hX3On663Cl6I44FrGxc7VTMn6nVLystUf+833e542aXWnr9fGABYtK58hKoYN1YvRgqh3db727OT6AsypPnoWgeGjxlf4m7e9+5+DaRh97XCAHi6a4UDQw+09LuLnji2TLffnL2r2nt/6XZt+Uj9N4gKAMDd52T0QsEAJBnEQR6YPGOKgjfoHbY/vvqg5Bj7zXHzvcmrj2uPJhrEBGAGH7xAavkZjvcJjIaij/QjQL6H/vpNZ7IB5BvEree2OJL/BBJ1t6XhBIJ55TykZIrSx0CWQcxAljsaFMSXt6905tRP1a9zQbSftb5XS5enPQbEoY2kl+uBHUvrHATotM3L9cI7d91z7T24oEQB2IP2bt2HgD7Z2JZTTUAhGCZ3DW3SQvI4Km3kPGj7xgAkFYMwWj4/J5S5HOZEUlVMw8H5UZ//5wA+UDo+DdMrXbmGfMPrGI+TKzy7SQBcCECk8baKQQ4DhDQc8yJDL6od7+YY2Y6TrT0AEA9y11AK/C4dpWqqSl2ps3E9gL7t6FMj+n5qg+UDGjKnmO0genomEf9YZUcWeXI3GfRhNdOTJUs8mzKvqSnL66dut2TZt23VAitKWQPACs2vO93SAjzGYwNgUnW1fvfTu3dqUACg3JDBJiU3rOiDB4YUAPqagMIAdKxf71Sm0/qzzkxGVV26NPAUYsWKGMDuy79h0jckAJBCjAPy3+bc4Bw54vxNp9WwTEZ7IbVnz8B7gACGT6xRjU0PVFQAUmKKDkAu/WY/6FlwGZUUkgbZUMgGQK53wuJLU5IHeRjjd6yUqgMK4czMx6xc0S/nYBv9rHdkmYJx5Ja8PMAsKxdmxpVlAMoKyX2el2kQbyDM8zWNZIFIBcN3XCcvAGEuluOy2LNxr83ciceAX90DT4RVivJ24/qjl+6dUBjQxAHgWNmZeewpg6MAqEzPV1dv3BpcAAhUBBcfWwCIEQT6oAKgKsUFANADSiGZZaVEAgDrHhglayB6hirCMaoUxim55k2fGRN5xwAASP02NZtSCpnkha086ON9PwnlPBKsHxXNY6xUrjAB0IlMXqtIbTaPghgzrxlNmZRAOBfn4bdxjo1BcuypDEkn0ies1rfR+UK/k3W1yIoTNCk6AEXpAV6vs1YxCzBymQGFoGvr+ao2LKwPPdDnog+k+uLDVlVXMdbq5iEwBmCQVJdcRR1LCVxFNtT+/xUGshl2K2EuDuOZY5rbuwKvKm3iR6uQrChl1SgVhOpBD/T0/Ym9ODahonR4Mh6QKOWvlEF3lQDB+82ogS7jzEbnw7yQ80e+uJetYQsmPZ4lo0z9RQPAPO9KALL+iUqVpHc613wpv59Z5c+rVCi/IixqHCTN/5y1kF8dJE9k+ShRkgqkAcRxddxckHQOiA0AHx5aPcuJk42ZhffffBFr88wNT2SSOF5M6puiB/APc+h1bVI4k8wAAAAASUVORK5CYII="},{"path":"C:\\Users\\Sergey\\OneDrive\\Рабочий стол\\Target_Client-main\\resource_packs\\vanilla_1.19.0\\textures\\entity\\frog\\cold_frog.png","name":"cold_frog.png","folder":"","namespace":"","id":"1","particle":false,"render_mode":"default","render_sides":"auto","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"mode":"bitmap","saved":true,"uuid":"723e4fc5-fb7d-d490-cd59-eea8039ecb43","relative_path":"../../../../../../../../Users/Sergey/OneDrive/Рабочий стол/Target_Client-main/resource_packs/vanilla_1.19.0/textures/entity/frog/cold_frog.png","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABPlJREFUaEPVWV1oVEcUntUoxJhkFYP5U0LpCspqCYjSIoKCBUGq0FKKUBX1zRcfrPgiCn0pESEv+qRiLfggPqgUCgoVpQhGQVq3EbqlBJsfJaKbmDRgUq98k3yXc2fv3jv37t0ke18yuTM7c7453/nOmbkpJZ5D3Ruct4Ux/eba6X9Ssm++tj1GAgANvXj0j8gAPtvb4jQuW6SnGHkzqWT7wdWhyPPZbJpn0lOXv3H6C70KXojjgZ1HVjvfZjr1unUNaTU+WtDtn/JP1C/nnlcGABatb6pR9emlejFSSLeHpzw7iXdBhlzt3u3A8PrGOnfz3o6MayB7j96sDICvT3/kwND+O4160ZaaKXXi+23qzK8/a+MnXk3q97UrpqkRRAUA4O4TAb1QMQBJBnGQB5pXtSl4g95h+8W/A0r28b3Zb47b/uV57dFEg5gAzOCDF0gtP8MxnsBoqKbwDP0IkOPwfvfBH4sBlBvENy/tdyT/CSTqbkvDCQTzynlIyRSlj4Esg5iBLHc0KIjPHtvhfLyuVQ/ngmj/3TuoOj/NeAyIQxtJL9cDnZ+vcBCg0Ozvtu9SP5y8q4amarQR7TtGFID1/zWh/0dAP7n9qqSagEIwTO4a2qSF5HFU2sh50PaNAUiqnrhpGgCfPen1Loc5kVQV03Bw/kbhqWcOKB2f1kzalWvIN7yO/ji5wrObBMCFAGRCNajDqz/RlLBVDLj6wvPfVa0a1YbJB9LcvqbWzTGyHSdbewAgHuRioNX/aqk6kMm4UmfjegC9nM+rhWpM5xL5gIbMKWY7iJ6eScQ/VtmRRZ7cTQZ9WM30eOtWz6ZsvH+/yOsDt0aL7Gv7osGKUtYAsMJgvuCWFuAxHhsALR0deuxQX5+aEwAoN2SwSckNK/rggXkFwA3wGfUIAzCwb5/Tms3qnw3mcqrtypXZpxArVsQAdl/+DZO+eQGAFGIckP825wanq8t5n82qBbmc9kLq+PHZ9wABpBevUr1/PlVRAUiJqToApfSb70HPissoPdCeXqdw5ORjQyEbAKXGhMWXpiQP8jDG71gpVccPgLm4nINtjGG9I8sU9CO3lOUBZlm5MDOuLANQVkju87xMg3gDYZ6vaSQLRCqYBjVTJ5UFIMzFsl8WezbutZk78Rjwq3vgibBKUd5uPOsZdu+EwoAmDgDHymd9PZ4yOAqAtR2b1J3b9+YWAJQGwcXHFgBiBIE+pwCoSnEBAPSsUqiUxgMA6x4YJWsgNw/MqAj7qFLop+SaN31mTJQdA+bVoqnZlFLIpLywxTjZR5BB2u9HRfMYK5UrTAB0IpPXKlKbzaMg+sxrRlMmZS7gXJyHv41zbAySY09lSDqRPmG1vo3OV3pM0dUiuNvz6IHmfNUBqEoP8HqdtYoZhOQyA2rzVy3O8pXTdVHYgb4UfSDVoOnrl5Pq4fXyvtykoAJUF7MQk0UdSwlcRTZnlmjb4oCg8fj9i/x/gVeVNvGjVUhWlLJqlApC9QBg7Ny70eB70qDFsQmLGxYpeNJGKq1VSH6lDLqrBAjeb0YNdBln5Rqv84BEJ78PxL1stXF7kmOKZJSpv2oAyCsTlhFUHln/RKVKkrscGAN+n1nl51UqlF8RFjUOkuZ/yVrIrw6SJ7JylChJBSoKYlu3x80FSeeA2ADwQ2Tk7JamyNkYIHK/DZedgbnZVt8HbD0zF+OqHsAHvG18bcZR4s4AAAAASUVORK5CYII="},{"path":"C:\\Users\\Sergey\\OneDrive\\Рабочий стол\\Target_Client-main\\resource_packs\\vanilla_1.19.0\\textures\\entity\\frog\\warm_frog.png","name":"warm_frog.png","folder":"","namespace":"","id":"2","particle":false,"render_mode":"default","render_sides":"auto","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"mode":"bitmap","saved":true,"uuid":"a64726f2-d1b6-dd50-b36b-ce925c063b2c","relative_path":"../../../../../../../../Users/Sergey/OneDrive/Рабочий стол/Target_Client-main/resource_packs/vanilla_1.19.0/textures/entity/frog/warm_frog.png","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABLNJREFUaEPVWT1oFEEUnhMLDf4kSAxJkAvYCF6jSFCLCEGwDQgiFjHlFWK6FEEQQVKki1ikjFeIKGIaC0ECplA5g4KcYCMkyCXEIDl/iBbiyjfyHe/m9mZmfy6X22b3dmdn3zfvve998y6jxPH8WSH4+WtL3xkZyWfks516XWMkANDQ8xdGIwOYnBwLenqyeor19RUlr6em5iLP57NoNZO+KT4Nvm1+VfBCHA/MzNwMunu69Xc79uxWW7//6OuN9Q01Pn6rOQDw0Wy2V+3b26E/xhDC9crKWs1K4p7NkPsP7gYwnHNxPgC5cvlacwDMz88GMHR29qEG0NnZqe7M3FAvXxW18avlH/p+X/9+fbaFAgBw9el+eqFpANJMYpsHDncd0N6Vnsb1l83vSj7jGJ753BzHHE01iQnATD54gaFlGsaQJTAaKsOPAHEP42SOpprECEcZ/wQSZjQNkWe5ygANwwnEHMeQzJD6mMgyiZnIckVtSUxCkCvFOY4fO1oNobhhI8OLLJkZu3oxQIKCs8+eGVTXx2+rSqWibc7nLykAKxZf699I6Ll7jxuyCULIXDW8FxbHBCmf28LGHBeaA+RxxKs8ZAxzIskqpuEcb86BeoCD3pCeAhPGqRU1qwkAmNQsRkxAX9fD1QQhixnmBjUPDp7WzwEIHsZ16f2SlaJNYuDvGgDIBzygBAAQfARnkwlsrgdQvsdVh+EMwxMnc/payo13b0vW8PQC0GgQRR5XDYDoFZdmWhoaquorzH9qcbHO6yyi8vvIP5+Q8irvFHlYWR5MVh8AvQMD+rW15eXWAGCSmlUSRrUFABaoMDp0qdby6GjQl/sf86ulkuovFLY/hCgRQHWgwA8fP1XZwyXSdgQAKRFgPECw6Lg8EExPB39zObWrVNLvZCYmtt8DBHCw65CW2VEBSHZpOwCNqJn3UTybTqM2lekKIR8AjcZ41QFyPGIbh9QpcmLIWYQQ9sw8TOWK+0h0HHKbynwJK4T4biIPkGGgOCEhqE0gAVj+YQCeydjnfplg8JzSA+8NnxvW8plaiAJRCj0CSgTA5WI+B1DqGtyDsS4K9Zk79Ryg7mEowAisqKuvI7sbCy8WqoLQFcepA0BvqLz6uRrLUQH09x1RT+YftRYAEpVJHQUAcgSJ3lIAJitFBYDx2xpCsspKiqTekbSIa7n5N5+RpQCClCsVbNi2MXEONGpG0ThSKWiSOyi50SfF2rgfFEraNcmA29gwxnIRgNZWZkOWxUjWAE5uthnNj7KO4L7cC8sWpa2r4UO75pgaZchwYvgklQlxDIr6Tl1rkYoTYdJ2ANrSA2yvY8VxmL195gQTCjlDrePaDzcKB1A1qdYnUW1hpZNYsotsf1NsSSmBViT7OqDNqCBgPItk3F6QBKSbu1JRUo3iHhWp7IkSsKtPals12Y9N7AH5Ifkvpa1XCRDcN0RNdJlnSY3XdUACkH/yxW22RqXBpOPraJS7rLYBYO53JQDkA/VP1FBJurK+72dMLQQA8u9VMpQZr3HyIO34D9VC5l6XKyFFWBImSpOB6pLY121xa0HaNSA2ALyI+oHOQ5xChirs2mP7LqbX/wO+k7ViXNsD+AeoX6Vt8ydutgAAAABJRU5ErkJggg=="}],"animations":[{"uuid":"50ecbdcc-49d6-5aff-3ab1-fa97b479bcbd","name":"croak","loop":"once","override":false,"length":3,"snapping":24,"selected":false,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":"","animators":{"e47662aa-6c49-03fb-0aad-b145cdbf8c84":{"name":"croaking_body","type":"bone","keyframes":[{"channel":"position","data_points":[{"x":0,"y":0,"z":0}],"uuid":"f3397934-f634-1821-b40d-029b81f8731e","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0,"z":0}],"uuid":"27a0dbf3-d4cb-e3aa-ef6d-065742fae404","time":0.375,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0,"z":0}],"uuid":"1eb75a3b-c3b0-fbb4-7f2d-ef516236caed","time":0.4167,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":1,"z":0}],"uuid":"7e3362c5-221d-27b4-818a-9083b825f72b","time":0.4583,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":1,"z":0}],"uuid":"7144d7c3-b552-3314-5e31-6354d253ac2b","time":2.9583,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0,"z":0}],"uuid":"6be01654-3923-50f6-21ef-a1de736f1d00","time":3,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":0,"y":0,"z":0}],"uuid":"88d4e89f-a20e-b633-917d-0f7d087d94f2","time":0,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":0,"y":0,"z":0}],"uuid":"b0b5a4b8-d77c-10b5-7ddc-1ed95ba43d34","time":0.375,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":1,"y":1,"z":1}],"uuid":"ee37fa5c-67fa-d972-c04b-c6c74ae56b4e","time":0.4167,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":1,"y":1,"z":1}],"uuid":"918b0433-16da-1252-c4ef-b4bbd97213de","time":0.4583,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":1.3,"y":2.1,"z":1.6}],"uuid":"976e09a0-caf3-1693-2bec-a101f97d5dbe","time":0.5417,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":1.3,"y":2.1,"z":1.6}],"uuid":"11b497e9-e679-14ac-dbea-a3c1515b3b5b","time":0.625,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":1,"y":1,"z":1}],"uuid":"58d21134-be2c-435c-acdd-c0a78966738e","time":0.7083,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":1,"y":1,"z":1}],"uuid":"585cd610-1aae-9435-abbf-63cb82193c82","time":2.25,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":1.3,"y":2.1,"z":1.6}],"uuid":"035226a4-044c-a0db-6cda-cb21e19256ee","time":2.3333,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":1.3,"y":2.1,"z":1.6}],"uuid":"cfc45b48-7f1e-0a7c-d553-674d81f0abef","time":2.4167,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":1,"y":1,"z":1}],"uuid":"34c1e013-74a9-0630-e206-b0ce32130265","time":2.5,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":1,"y":1,"z":1}],"uuid":"b20d05dd-a424-598f-1f50-cb67ed91f0d5","time":2.5833,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":1.3,"y":2.1,"z":1.6}],"uuid":"0de3e61a-a0eb-9b50-cf87-f56f2b8204bd","time":2.6667,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":1.3,"y":2.1,"z":1.8}],"uuid":"59845063-7daa-0593-e831-a568dfe7d8e2","time":2.875,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":1,"y":1,"z":1}],"uuid":"3cff7f8c-2112-42d6-e2b1-82711602ad85","time":2.9583,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":0,"y":0,"z":0}],"uuid":"5a5c4780-d362-43a5-321f-2c366df242df","time":3,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]}}},{"uuid":"78470d88-ef95-9364-b172-0ceb503ef436","name":"walk","loop":"loop","override":false,"length":1.25,"snapping":24,"selected":false,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":"","animators":{"460efa0a-4ba0-5fde-92ad-14855858acb7":{"name":"left_arm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":0,"y":-5,"z":0}],"uuid":"6844d2d1-75a0-15cf-57ea-f4a7a9fe2b40","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":7.5,"y":-2.67,"z":-7.5}],"uuid":"8da5fc5e-c56d-a66b-ce21-904d5db2d214","time":0.2917,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"da252900-de44-3b81-9307-5f6b863fb742","time":0.625,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":22.5,"y":0,"z":0}],"uuid":"6952e973-847a-e7ec-c944-35bbe4c45d19","time":0.7917,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-45,"y":0,"z":0}],"uuid":"d8135803-5fb8-762d-9f47-5c22164ba0b8","time":1.125,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":-5,"z":0}],"uuid":"a72b7c15-51cc-0c7f-1bb1-7d5366b29d79","time":1.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0.1,"z":-2}],"uuid":"21a1dbed-f300-c38a-f281-11fdcfebeb76","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":-0.5,"y":-0.25,"z":-0.13}],"uuid":"8db72920-7546-2a8f-65eb-5a8e343c04cd","time":0.2917,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":-0.5,"y":0.1,"z":2}],"uuid":"79afc50a-279b-9c77-eec7-41be129f3bf2","time":0.625,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0.5,"y":1,"z":-0.11}],"uuid":"a7a166a8-bf3a-5e8c-6004-24be554719f6","time":0.9583,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0.1,"z":-2}],"uuid":"a3a494cd-59aa-29b7-874f-128acd76c6f4","time":1.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]},"e488e81d-7ede-4fd3-10f8-29f40090612a":{"name":"right_arm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"1bd0680c-35df-0d17-e0e6-5e6a105a6d80","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":22.5,"y":0,"z":0}],"uuid":"ecb3a44e-8288-b880-a8ab-dfc88daf91c6","time":0.125,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-45,"y":0,"z":0}],"uuid":"8cb1ca78-4d4d-e720-b35e-fe35f6833474","time":0.4583,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":5,"z":0}],"uuid":"ded73d39-4d73-f3af-131a-1e20d9e6d5e0","time":0.625,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":7.5,"y":2.33,"z":7.5}],"uuid":"96863885-f9aa-35ea-0851-c0de6ad9a3c6","time":0.9583,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"e5a9abdb-d389-43ac-098d-826c2073271b","time":1.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0.5,"y":0.1,"z":2}],"uuid":"a517e81d-0915-01c5-0fed-56304791dd05","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":-0.5,"y":1,"z":0.12}],"uuid":"caa47deb-546e-63fc-7aac-a94811000bd3","time":0.2917,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0.1,"z":-2}],"uuid":"9c68c5b2-1149-2b3e-980e-f46e2eab43ca","time":0.625,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0.5,"y":-0.25,"z":-0.13}],"uuid":"037f7b29-81cc-0fa2-869c-9842cb539959","time":0.9583,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0.5,"y":0.1,"z":2}],"uuid":"8a22eb63-4b5f-4abb-ae19-c2e284d0a1b0","time":1.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]},"e5b4cf3a-c5f3-f7af-cd0e-351cceda16a9":{"name":"left_leg","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"cb9f4eab-7319-000e-95ff-58771a67eb0e","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"cac25d1d-ccf1-c7b6-84ad-9e37b0785522","time":0.1667,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":45,"y":0,"z":0}],"uuid":"4068f99a-fb61-dccf-e959-a4b2d1707a94","time":0.2917,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-45,"y":0,"z":0}],"uuid":"a4537d64-357a-e5d8-d6a9-78d2af5160fa","time":0.625,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"0ad015d1-069d-c249-2dbf-43f1a383e4fc","time":0.7917,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"1af3f5d8-a387-da2a-a2a6-efdcc157aa87","time":1.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0.1,"z":1.2}],"uuid":"a97f772e-b37c-89d2-3868-8b5cabb3d256","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0.1,"z":2}],"uuid":"2c6fcf67-1c72-667c-aeab-666fdc514911","time":0.1667,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":2,"z":1.06}],"uuid":"5dfb8ac6-038c-d77a-3422-6d00408f6fe0","time":0.4583,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0.1,"z":-1}],"uuid":"1947c79a-9034-8734-de0c-ce3919b04200","time":0.7917,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0.1,"z":1.2}],"uuid":"629f439b-60d6-e5ae-315a-3692c11d8ae5","time":1.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]},"c5902144-6262-d694-f090-d273ed4d1509":{"name":"right_leg","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":-33.75,"y":0,"z":0}],"uuid":"e0c0c40a-ce33-db5b-a79c-e88f2b78ebfb","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-45,"y":0,"z":0}],"uuid":"1dc1961a-d353-0536-cb31-0d930dd0142f","time":0.0417,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"331494bd-5585-6be4-8779-b6f07a2c4330","time":0.1667,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"9515d901-458c-c491-f911-6338eefa3cad","time":0.7917,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":45,"y":0,"z":0}],"uuid":"2ff32aa7-30ca-0419-2a84-aea0bace7f01","time":0.9583,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-33.75,"y":0,"z":0}],"uuid":"c8a48494-1df9-56cc-9d71-41c1ff265b7d","time":1.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":1.14,"z":0.11}],"uuid":"beef9264-dcc7-4938-22c5-f33a9d8e10db","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0.1,"z":-1}],"uuid":"2b7f0c74-f4fa-7240-2228-b29ab7bc3aac","time":0.1667,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0.1,"z":2}],"uuid":"72b5319b-747e-1955-9eb9-10e907d91782","time":0.7917,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":2,"z":0.95}],"uuid":"01f4a5ac-4a8a-03c4-cc32-b79423a360f8","time":1.125,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":1.14,"z":0.11}],"uuid":"09c5dd68-b730-5402-c6ec-85c170b2cc06","time":1.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]},"1fb0fd85-c85a-16a6-b64e-b86b1d5aca44":{"name":"body","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":0,"y":5,"z":0}],"uuid":"2b3764a0-10b8-8369-52ed-1dfa67e61165","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-7.5,"y":0.33,"z":7.5}],"uuid":"61339f2d-dbe1-d3f1-4363-3a4690a6d9b3","time":0.2917,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":-5,"z":0}],"uuid":"56cf22c5-b743-73a6-165d-0b4c071fa134","time":0.625,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-7.5,"y":0.33,"z":-7.5}],"uuid":"976b9012-37a9-87c6-5b5e-4fdfcb158e43","time":0.9583,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":5,"z":0}],"uuid":"a2576d5b-b957-bb0a-9565-be86656ea9ef","time":1.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]}}},{"uuid":"0456152c-f940-cb0e-627e-8045978db4f2","name":"jump","loop":"hold","override":false,"length":0.375,"snapping":12,"selected":false,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":"","animators":{"1fb0fd85-c85a-16a6-b64e-b86b1d5aca44":{"name":"body","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"c8f751cc-53d5-4732-1624-c81fc2141088","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-20,"y":0,"z":0}],"uuid":"c4989d40-37db-5a75-6a94-678342931cc8","time":0.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0,"z":0}],"uuid":"a632e448-121a-4047-892a-72a287668b64","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0,"z":0}],"uuid":"b7bb3172-977b-bf7e-e93f-bba513e29c42","time":0.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]},"460efa0a-4ba0-5fde-92ad-14855858acb7":{"name":"left_arm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"4c14e4d3-105a-ae52-f9cd-61b8b9d63edf","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-56.14,"y":0,"z":0}],"uuid":"e3626e1c-bd75-de82-5b55-5c2dcffe293c","time":0.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0,"z":0}],"uuid":"95e7e6d8-678c-d76c-ab8b-7585dc77ddef","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":1,"z":0}],"uuid":"1077ba45-8303-0fd9-23bd-945c093b45b8","time":0.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]},"e488e81d-7ede-4fd3-10f8-29f40090612a":{"name":"right_arm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"e8ad7bf0-a8ab-bea9-9cec-26fa3968bd30","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-56.14,"y":0,"z":0}],"uuid":"67df5aab-8890-4fd0-4262-af4206a66ab8","time":0.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0,"z":0}],"uuid":"5577439b-7a41-1496-2df6-a46ea127028d","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":1,"z":0}],"uuid":"12151a8f-4495-3fd3-9ddd-ea898e4fb06d","time":0.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]},"e5b4cf3a-c5f3-f7af-cd0e-351cceda16a9":{"name":"left_leg","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"a7fa89b9-1e5c-9efb-876d-f0050058acbd","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":45,"y":0,"z":0}],"uuid":"8f81ccd7-fcb5-648b-ce0c-318653d785dc","time":0.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0,"z":0}],"uuid":"19271699-f934-1cc9-efa6-69a232d4cded","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0,"z":0}],"uuid":"d95ceef4-bed9-581b-0ad0-a5fd2e8836d5","time":0.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]},"c5902144-6262-d694-f090-d273ed4d1509":{"name":"right_leg","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"386e4132-1864-fe46-5068-8216354108e2","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":45,"y":0,"z":0}],"uuid":"5b874c1a-66a7-ac93-fa24-c9cc7f4c79e9","time":0.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0,"z":0}],"uuid":"2d9cf136-5869-3b62-0894-cfea3d227273","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0,"z":0}],"uuid":"5cf48fa4-021a-50c7-0455-6b5d1e3e1ce8","time":0.25,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]}}},{"uuid":"ca18364b-e7cd-86f1-86af-89dc4dcb0758","name":"tongue","loop":"once","override":false,"length":0.5,"snapping":12,"selected":false,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":"","animators":{"9cb5e2e9-335c-1b8f-a99f-fb843b138c1d":{"name":"head","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"2ff3cc0c-91f0-9a01-fb5e-60d1841781b4","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-60,"y":0,"z":0}],"uuid":"391103ac-1cb5-7522-8793-218181d5b3dd","time":0.0833,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-60,"y":0,"z":0}],"uuid":"0cb5de34-c07f-3b9a-1f11-09d7443b792b","time":0.4167,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"e4c2e401-9f80-7ee2-3440-fa6f04b3202a","time":0.5,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":1,"y":1,"z":1}],"uuid":"4136eb41-2f32-f451-6331-78af0766c63f","time":0,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":0.998,"y":1,"z":1}],"uuid":"a9afdb7f-f126-1626-b022-2469d5ba541d","time":0.0833,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":0.998,"y":1,"z":1}],"uuid":"c29b4847-a65b-651f-2ef3-04a8f748a4d0","time":0.4167,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":1,"y":1,"z":1}],"uuid":"6dbbaa9b-5762-0307-dc1f-6a20a441d810","time":0.5,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]},"ca540b80-348f-e525-813b-b7083a3baa56":{"name":"tongue","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"7418a331-2cd7-b920-9487-4ecae2b0e6ef","time":0,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"fe27821b-82a5-a4bf-8099-55198f7b9b2b","time":0.0833,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-18,"y":0,"z":0}],"uuid":"f5d33cfe-4ba2-742a-f53c-3c2655868fbb","time":0.4167,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"ef72914a-3cde-fcc3-2630-7ed99f28b491","time":0.5,"color":-1,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":1,"y":1,"z":1}],"uuid":"f410e573-9672-8eb1-41db-79845c6f3b7e","time":0.0833,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":0.5,"y":1,"z":5}],"uuid":"10702fe0-16b3-af3b-b37b-bbee66063f51","time":0.1667,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"scale","data_points":[{"x":1,"y":1,"z":1}],"uuid":"952c3bcc-b0c5-c233-3d67-c9a47c04c8a3","time":0.4167,"color":-1,"uniform":false,"interpolation":"linear","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]}}},{"uuid":"05e05659-e305-6694-e759-c17d7eab791e","name":"swim","loop":"loop","override":false,"length":1.04167,"snapping":24,"selected":false,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":"","animators":{"1fb0fd85-c85a-16a6-b64e-b86b1d5aca44":{"name":"body","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"0d4a17a8-7369-2955-f918-ac63ef941027","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":10,"y":0,"z":0}],"uuid":"3fbe4bbe-1ccd-b11a-93cc-bb72010df18f","time":0.3333,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-10,"y":0,"z":0}],"uuid":"400673ea-117c-afa6-f6a6-4811a93d40dc","time":0.6667,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"6d682099-e6cd-0a8e-cf97-669e2678f957","time":1.0417,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]},"460efa0a-4ba0-5fde-92ad-14855858acb7":{"name":"left_arm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":90,"y":22.5,"z":0}],"uuid":"edf25f76-15d6-3db5-86dd-d89081e119c6","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":45,"y":22.5,"z":0}],"uuid":"f1224401-d9a5-989a-f283-62b0498d3320","time":0.4583,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-22.5,"y":-22.5,"z":-22.5}],"uuid":"942f2df6-5963-5ace-e426-dd07c3909de0","time":0.6667,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-45,"y":-22.5,"z":0}],"uuid":"88387845-a102-4b0d-8c47-1f39195d4ba8","time":0.875,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":22.5,"y":0,"z":22.5}],"uuid":"b4dcc29a-223d-35fd-0714-ded08a258a43","time":0.9583,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":90,"y":22.5,"z":0}],"uuid":"f73d9df9-c8ca-b9fe-2939-6f8479106ab0","time":1.0417,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":-0.64,"z":2}],"uuid":"e3321cdb-45c1-fe6a-906a-f613ea58bfca","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":-0.64,"z":0}],"uuid":"d028c867-8f08-98d9-d177-1c271bcead88","time":0.4583,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0,"z":0}],"uuid":"6f36cf43-e488-7d41-77f3-449b763ec622","time":0.6667,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":-0.27,"z":-1.14}],"uuid":"6461e887-5617-5f1a-ce1f-1fcf10f5e927","time":0.875,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":-1.45,"z":0.43}],"uuid":"1c29f4c2-10c3-b308-30c7-4c6312bd39db","time":0.9583,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":-0.64,"z":2}],"uuid":"16128bc0-70b1-a3ff-7fb1-3725d8422c1d","time":1.0417,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]},"e488e81d-7ede-4fd3-10f8-29f40090612a":{"name":"right_arm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":90,"y":-22.5,"z":0}],"uuid":"9528010a-e8bd-c794-11f6-ccc5266ad90a","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":45,"y":-22.5,"z":0}],"uuid":"bbcafaa0-0062-d4e5-4859-a29188ee42b8","time":0.4583,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-22.5,"y":22.5,"z":22.5}],"uuid":"c566f642-ad56-2573-41d0-51c6b53e93af","time":0.6667,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-45,"y":22.5,"z":0}],"uuid":"95cd1e89-4af2-38b7-7a9f-0263652b084d","time":0.875,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":22.5,"y":0,"z":-22.5}],"uuid":"fb2cb9d4-8063-43e0-7ca7-9fbcbc201391","time":0.9583,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":90,"y":-22.5,"z":0}],"uuid":"eca2d4fb-be21-8d5f-db79-ef7bed2d125f","time":1.0417,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":-0.64,"z":2}],"uuid":"583a5daf-6533-5428-c09b-34776044444c","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":-0.64,"z":0}],"uuid":"43368563-83ac-f7a1-589d-3754e342cf7b","time":0.4583,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0,"z":0}],"uuid":"08e8b211-bcc2-3274-541b-16d1c4f9f5ec","time":0.6667,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":-0.27,"z":-1.14}],"uuid":"b291f629-9b28-3958-9111-d2b7bb931568","time":0.875,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":-1.45,"z":0.43}],"uuid":"b49f594d-eba4-b9e0-89ca-88b3c076ed94","time":0.9583,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":-0.64,"z":2}],"uuid":"b5a6bb6b-a245-d97f-41f5-9100102c6c70","time":1.0417,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]},"e5b4cf3a-c5f3-f7af-cd0e-351cceda16a9":{"name":"left_leg","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":90,"y":0,"z":0}],"uuid":"6306f9d5-f900-01ff-b11e-fde51e895be8","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":90,"y":0,"z":0}],"uuid":"30eabcba-cc1b-c7fd-420e-0aa07818621e","time":0.25,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":67.5,"y":-45,"z":0}],"uuid":"939a5446-9b80-821d-6d5f-0be7f310929f","time":0.4583,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":90,"y":45,"z":0}],"uuid":"2ce68ae6-e25d-1ea0-1c73-990abf0c9883","time":0.7917,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":90,"y":0,"z":0}],"uuid":"0e40140f-59af-96ce-4929-3e24bf9f7656","time":0.9583,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":90,"y":0,"z":0}],"uuid":"ab74f708-c2f0-f1c5-d8f9-2589a1710007","time":1.0417,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":-2.5,"y":0,"z":1}],"uuid":"f2c70745-aa1c-39cb-e6d4-51b2fdf01a60","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":-2,"y":0,"z":1}],"uuid":"1a1b66b6-5607-4a0c-6720-2d9161095b58","time":0.25,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":1,"y":-2,"z":-1}],"uuid":"c15083c9-da29-a09f-b0cd-990130ce467c","time":0.4583,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0.58,"y":0,"z":-2.83}],"uuid":"1acea619-6003-1ab3-1f3f-144f544705be","time":0.7917,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":-2.5,"y":0,"z":1}],"uuid":"f8b539fc-094d-0e98-ec38-99e855e848f7","time":0.9583,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":-2.5,"y":0,"z":1}],"uuid":"02889868-6713-24e1-e3cc-4ee86a30ad89","time":1.0417,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]},"c5902144-6262-d694-f090-d273ed4d1509":{"name":"right_leg","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":90,"y":0,"z":0}],"uuid":"5bf12d4f-c6cd-4541-6571-594214f81ea4","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":90,"y":0,"z":0}],"uuid":"7b12f9ec-55a2-a944-dd10-ad6e05d0976b","time":0.25,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":67.5,"y":45,"z":0}],"uuid":"0cd57a63-89f9-ee5e-255e-b723d5219226","time":0.4583,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":90,"y":-45,"z":0}],"uuid":"101b8d21-7606-21cf-b045-cfad8273fc3d","time":0.7917,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":90,"y":0,"z":0}],"uuid":"c221c343-b58f-381c-fc72-b40c065cd520","time":0.9583,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":90,"y":0,"z":0}],"uuid":"2afd8b91-6c4e-c1e2-b63e-5c0a3c3e0b5e","time":1.0417,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":2.5,"y":0,"z":1}],"uuid":"6ba45a2e-29d6-a9c5-d68b-0abbc915e1e2","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":2,"y":0,"z":1}],"uuid":"5a7c72e2-5db0-01e8-ff78-27892ca6e167","time":0.25,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":-1,"y":-2,"z":-1}],"uuid":"42bd2da6-66d1-e4ab-8b04-4ce918f5b498","time":0.4583,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":-0.58,"y":0,"z":-2.83}],"uuid":"a57c3e73-29b7-bcc2-75f2-e08d9928ebbc","time":0.7917,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":2.5,"y":0,"z":1}],"uuid":"a58affd6-77f0-3f99-32e9-9cf75b1c74a8","time":0.9583,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":2.5,"y":0,"z":1}],"uuid":"a0802f57-26f0-9d51-0431-b0b94ad4c7d4","time":1.0417,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]}}},{"uuid":"bb492458-0d01-3598-e210-69953b70db60","name":"water","loop":"loop","override":false,"length":3,"snapping":24,"selected":true,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":"","animators":{"1fb0fd85-c85a-16a6-b64e-b86b1d5aca44":{"name":"body","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"71f2905c-4f1f-c003-16ab-492505114f22","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":-10,"y":0,"z":0}],"uuid":"ec9dc191-b802-e4c2-e33d-b253c7e2f9b9","time":1.625,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":0}],"uuid":"e113e6ba-e9e5-2df0-4ed4-0638d8732053","time":3,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]},"460efa0a-4ba0-5fde-92ad-14855858acb7":{"name":"left_arm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":0,"y":0,"z":-22.5}],"uuid":"c0d17e0b-2e58-75e9-030f-b35da5648410","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":-45}],"uuid":"01a450ed-779b-b8ff-a20d-e3e75c1f3d09","time":2.2083,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":-22.5}],"uuid":"3bf54919-7649-265b-1462-f5fda6541ddc","time":3,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":-1,"y":0,"z":0}],"uuid":"18f44d97-63f9-09ce-0058-6dae3971a2e3","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":-1,"y":-0.5,"z":0}],"uuid":"53ff70f1-3eda-76a6-6d3e-abb1524ad75c","time":2.2083,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":-1,"y":0,"z":0}],"uuid":"625f2b72-1ef9-e0a0-76b9-7006a1035156","time":3,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]},"e488e81d-7ede-4fd3-10f8-29f40090612a":{"name":"right_arm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":0,"y":0,"z":22.5}],"uuid":"ec207b94-fc8e-6c45-5fae-3bb92d966c69","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":45}],"uuid":"31301968-95f5-e2cd-e47e-1fe975e0abee","time":2.2083,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":0,"y":0,"z":22.5}],"uuid":"1d4f9ba2-8fb0-82b2-7d51-d3f7e1fcf8c5","time":3,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":1,"y":0,"z":0}],"uuid":"35409f33-e225-d004-ebc5-cdf9bb94cc13","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":1,"y":-0.5,"z":0}],"uuid":"41603bfb-dd63-ac1e-f389-af7c86abb7bf","time":2.2083,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":1,"y":0,"z":0}],"uuid":"2939b9ba-ff9c-20cc-2c05-95e140d54742","time":3,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]},"e5b4cf3a-c5f3-f7af-cd0e-351cceda16a9":{"name":"left_leg","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":22.5,"y":-22.5,"z":0}],"uuid":"e856a03f-24d5-f8a5-7f5c-d3ec7fea5aad","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":22.5,"y":-22.5,"z":-45}],"uuid":"b57568e0-a12d-417b-c480-ba59a4e3a41f","time":1,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":22.5,"y":-22.5,"z":0}],"uuid":"f485b8b0-757e-901d-3a62-d7856ca3f300","time":3,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0,"z":1}],"uuid":"8491bd58-d66e-925f-37d3-c2bce83e7fb3","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":-1,"z":1}],"uuid":"12645ba9-5d0a-dc6b-6ef5-a5e2ededddd8","time":1,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0,"z":1}],"uuid":"4fca81b1-6c15-8c99-58d2-3fc6cccd4eba","time":3,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]},"c5902144-6262-d694-f090-d273ed4d1509":{"name":"right_leg","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":22.5,"y":22.5,"z":0}],"uuid":"90c4433c-f446-32a0-0c76-476189737c3c","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":22.5,"y":22.5,"z":45}],"uuid":"f07ca076-6867-7869-29cb-48e749ff0213","time":1,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"rotation","data_points":[{"x":22.5,"y":22.5,"z":0}],"uuid":"26f7885a-1d69-22d3-b423-6ab33c742858","time":3,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0,"z":1}],"uuid":"d2a4e03c-1ad8-2416-99fe-93f8d4f4ffe5","time":0,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":-1,"z":1}],"uuid":"d5eb1c74-90f8-4ec1-1fd3-77bf478e7367","time":1,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]},{"channel":"position","data_points":[{"x":0,"y":0,"z":1}],"uuid":"dcf3a24a-bab6-2bfc-657f-e461935e25cc","time":3,"color":-1,"interpolation":"catmullrom","bezier_linked":true,"bezier_left_time":[-0.1,-0.1,-0.1],"bezier_left_value":[0,0,0],"bezier_right_time":[0.1,0.1,0.1],"bezier_right_value":[0,0,0]}]}}}]} \ No newline at end of file diff --git a/node_server/conf_world.json b/node_server/conf_world.json index 7090b01b4..042048663 100644 --- a/node_server/conf_world.json +++ b/node_server/conf_world.json @@ -14,7 +14,8 @@ "bee", "parrot", "skeleton", - "boat" + "boat", + "frog" ], "tickers": [ "bamboo", diff --git a/node_server/fsm/ai.ts b/node_server/fsm/ai.ts new file mode 100644 index 000000000..f374b1c9c --- /dev/null +++ b/node_server/fsm/ai.ts @@ -0,0 +1,241 @@ +import {PrismarinePlayerControl, TPrismarineOptions} from "@client/prismarine-physics/using.js"; +import { Vector } from "@client/helpers.js"; +import { ServerClient } from "@client/server_client.js"; +import type { Mob } from "../mob.js"; +import type { EnumDamage } from "@client/enums/enum_damage.js"; +import type {MobControlParams} from "@client/control/player_control.js"; +import type {World} from "@client/world.js"; +import { PathNavigate } from "./pathfind/navigation.js"; +import { WorldAction } from "@client/world_action.js"; + +export class AI { + mob: Mob + #chunk_addr = new Vector() + pc: PrismarinePlayerControl + #tasks: any = [] + #nav: PathNavigate + #home: Vector = null + #speed: number = 1 + test: boolean = true + + constructor(mob: Mob) { + this.mob = mob + this.#nav = new PathNavigate(this) + } + + // Добавляем задачу на выполнение + addTask(ai, args = null) { + this.#tasks.push({ ai: ai, args: args }); + } + + addStat(name : string, allowAdding : boolean = false) { + const mobs = this.mob.getWorld().mobs + mobs.getTickStatForMob(this.mob).add(name, allowAdding) + mobs.ticks_stat.add(name, allowAdding) + } + + tick(delta) { + const mob = this.mob + const world = mob.getWorld() + this.#chunk_addr = world.chunkManager.grid.toChunkAddr(mob.pos, this.#chunk_addr); + const chunk = world.chunks.get(this.#chunk_addr); + if (chunk && chunk.isReady()) { + for (const task of this.#tasks) { + if (task.ai.call(this, task.args)) { + break + } + } + this.#nav.update(delta) + } + } + + createPlayerControl(options: TPrismarineOptions): PrismarinePlayerControl { + const mob = this.mob + const world = mob.getWorld() as any as World + return new PrismarinePlayerControl(world, mob.pos, options) + } + + // Send current mob state to players + sendState() { + const mob = this.mob; + const world = mob.getWorld(); + const chunk_over = world.chunks.get(mob.chunk_addr); + if (!chunk_over) { + return; + } + const new_state = mob.exportState(true) + // if state not changed + if(!new_state) { + return + } + const packets = [{ + name: ServerClient.CMD_MOB_UPDATE, + data: new_state + }]; + world.packets_queue.add(Array.from(chunk_over.connections.keys()), packets); + } + + /** Updates the control {@link pc} */ + updateControl(new_states: MobControlParams, delta : float): void { + const pc = this.pc + pc.updateMob(new_states) + const mob = this.mob + pc.tick(delta) + mob.pos.copyFrom(pc.getPos()) + this.sendState() + } + + /** + * Нанесен урон по мобу + * val - количество урона + * type_damage - от чего умер[упал, сгорел, утонул] + * actor - игрок или пероснаж + */ + async onDamage(damage : number, type_damage : EnumDamage, actor : any) { + const mob = this.mob; + const world = mob.getWorld(); + if (actor) { + const velocity = mob.pos.sub(actor.state.pos).normSelf(); + velocity.y = 0.4; + mob.addVelocity(velocity); + } + console.log('AI->Damge: ' + damage); + mob.indicators.live = Math.max(mob.indicators.live - damage, 0); + if (mob.indicators.live <= 0) { + await mob.kill(); + this.onKill(actor, type_damage); + } else { + const actions = new WorldAction(); + actions.addPlaySound({ tag: 'madcraft:block.' + this.getSound(), action: 'hurt', pos: mob.pos.clone() }); + world.actions_queue.add(actor, actions); + mob.markDirty() + } + } + + /** + * Моба убили + * actor - игрок или пероснаж + * type_damage - от чего умер[упал, сгорел, утонул] + */ + onKill(actor : any, type_damage : EnumDamage) { + const mob = this.mob; + const world = mob.getWorld() + const items = this.getDrop(type_damage) + const actions = new WorldAction() + if (items.length > 0) { + actions.addDropItem({ pos: mob.pos, items: items, force: true }); + } + actions.addPlaySound({ tag: 'madcraft:block.' + this.getSound(), action: 'death', pos: mob.pos.clone() }); + world.actions_queue.add(actor, actions); + } + + /** + * Использовать предмет на мобе + * @param actor игрок + * @param item item + */ + onUse(actor : any, item : any) : boolean{ + return false + } + + // начальные установки + onInit() { + const mob = this.mob + this.setHealth(10) + this.setHome(mob.pos) + this.setSpeed(.5) + } + + setSpeed(speed : number) { + this.#speed = speed + } + + // Установка дома (место вокруг которого ходит моб) + setHome(pos: Vector) { + console.log('set home: ' + pos) + this.#home = pos.clone() + } + + // Установка жизни + setHealth(health: number) { + this.mob.indicators.live = health + } + + /** + * Получение дропа при убйстве моба + * @type_damage - от чего умер[упал, сгорел, утонул] + */ + getDrop(type_damage : EnumDamage) { + return [] + } + /** + * Звук моба + */ + getSound() { + return 'player' + } + + // блуждание по миру + aiWander(args) { + if (this.#nav.getPath()) { + return true + } + const chance = args?.chance ? args.chance : 0.01 + const speed = args?.speed ? args.speed : 1 + const mob = this.mob + // с некоторой вероятностью находи точку и идем к ней + if (Math.random() < chance) { + // рандомная позиция + for (let n = 0; n < 10; n++) { + const x = mob.pos.x + (Math.random() - Math.random()) * 16 + const y = mob.pos.y + (Math.random() - Math.random()) * 7 + const z = mob.pos.z + (Math.random() - Math.random()) * 16 + const pos = (new Vector(x, y, z)).floored() + if (this.#nav.tryMoveToPos(pos, speed)) { + return true + } + } + } + return false + } + + // возвращаемся домой, если он есть + aiMoveHome(args) { + if (!this.#home) { + return false + } + if (this.#nav.getPath()) { + return true + } + const distance = args?.distance ? args.distance : 8 + const speed = args?.speed ? args.speed : 1 + const mob = this.mob + if (this.#home.distance(mob.pos) > distance) { + if (this.#nav.tryMoveToPos(this.#home, speed)) { + console.log('AI-> go home') + return true + } else { + this.#home = null + return false + } + } + return false + } + + // Поворот по сторонам + aiLookIdle(params:any) { + if (Math.random() > 0.02) { + return false + } + let angle = (Math.random() - Math.random()) + if (angle > Math.PI / 4) { + angle = Math.PI / 4 + } + if (angle < -Math.PI / 4) { + angle = -Math.PI / 4 + } + this.mob.rotate.z += angle + return true + } + +} \ No newline at end of file diff --git a/node_server/fsm/brain/frog.ts b/node_server/fsm/brain/frog.ts new file mode 100644 index 000000000..8209f8531 --- /dev/null +++ b/node_server/fsm/brain/frog.ts @@ -0,0 +1,44 @@ +import { Vector } from "@client/helpers.js"; +import type { EnumDamage } from "@client/enums/enum_damage.js"; +import { AI } from "fsm/ai.js"; + +export class Brain extends AI { + + constructor(mob) { + super(mob) + this.pc = this.createPlayerControl({ + baseSpeed: 0.2, + playerHeight: 0.6, + stepHeight: 1, + playerHalfWidth: 0.3, + }) + + // Список задач на выполнение + this.addTask(this.aiMoveHome) + this.addTask(this.aiWander) + this.addTask(this.aiLookIdle) + this.addTask(this.aiJump) + } + + // начальные установки + onInit() { + const mob = this.mob + this.setHealth(10) + this.setHome(mob.pos) + this.setSpeed(.2) + } + + aiJump(params:any) { + if (Math.random() > 0.005) { + return false + } + const mob = this.mob + const state = this.pc.player_state + const power = .5 + const z = Math.cos(mob.rotate.z) * power + const x = Math.sin(mob.rotate.z) * power + const y = power + state.vel = new Vector(x, y, z) + } + +} \ No newline at end of file diff --git a/node_server/fsm/pathfind/navigation.ts b/node_server/fsm/pathfind/navigation.ts new file mode 100644 index 000000000..990126a8a --- /dev/null +++ b/node_server/fsm/pathfind/navigation.ts @@ -0,0 +1,272 @@ +import { Vector } from "@client/helpers.js"; +import type { AI } from "fsm/ai"; +import { Node } from "./node"; +import { FLUID_TYPE_MASK, FLUID_WATER_ID } from "@client/fluid/FluidConst.js"; + +const MAX_NODES = 200 +const MAX_TIME_DOWN = 30 + +export class PathNavigate { + + #ai: AI + #can_swim: boolean + #opened: any + #closed: any + #found: boolean + #count: number + #path: any + #timer_wall: number + + constructor(ai: AI) { + this.#ai = ai + this.#opened = new Map() + this.#closed = new Map() + this.#can_swim = true + } + + // очитска пути + clearPath() { + this.#path = null + } + // получение пути + getPath() { + return this.#path + } + // установка пути + setPath(path) { + if (!path) { + return false + } + this.#path = path + this.#timer_wall = 0 + return true + } + // двигаться к точке + tryMoveToPos(pos: Vector, speed: number) { + const path = this.getPathToPos(pos); + return this.setPath(path); + } + + // получаем путь от моба до точки + getPathToPos(position: Vector) { + this.#opened.clear() + this.#closed.clear() + this.#found = false + this.#count = 0 + const mob = this.#ai.mob + const pos = mob.pos.floored() + const target = position.floored() + const node = new Node(pos, 0, this.getDistance(pos, target), null) + this.#opened.set(node.id, node) + this.closeNode(node, target) + if (!this.#found) { + return null + } + // @todo костыль + const clear_nodes = [Array.from(this.#closed).at(-1)[1]] + for (let i = 0; i < 500; i++) { + const t = clear_nodes.at(-1).node + if (t == null) { + break + } + clear_nodes.push(t) + } + return clear_nodes.reverse() + } + + // длина пути из точки а в точку б + getDistance(a: Vector, b: Vector) { + const dis = a.sub(b) + const weight = (Math.abs(dis.x) + Math.abs(dis.y) + Math.abs(dis.z)) * 10 + return weight + } + + // можно ли закрыть точку + closeNode(node: Node, target: Vector) { + if (this.#count++ > MAX_NODES || !node) { + this.#found = false + return + } + // перебор всех соседей + for (let x = -1; x <= 1; x++) { + for (let y = -1; y <= 1; y++) { + for (let z = -1; z <= 1; z++) { + const is_dig = ((y == 1 || y == -1) && z == 0 && (x == 1 || x == -1)) || ((y == 1 || y == -1) && x == 0 && (z == 1 || z == -1)); + const is_cross = (x == 0 && z == 0 && (y == 1 || y == -1)) || (y == 0 && z == 0 && (x == 1 || x == -1)) || (y == 0 && x == 0 && (z == 1 || z == -1)); + const is_up = x == 0 && z == 0 && y == 1; + if ( is_cross) { + this.pushNode(node, x, y, z, is_up ? 16 : 10, target) + } + } + } + } + // добавляем в список закрытых узлов + this.#closed.set(node.id, node) + // удаляем из списка открытых узлов + this.#opened.delete(node.id) + // Если дошли до цели, то выходим + if (this.getDistance(node.vector, target) == 0) { + this.#found = true + return + } + // находим точку с минимальным весом (ближе всего) + let temp_node = null + for (const val of this.#opened.values()) { + if (!temp_node || temp_node.getF() > val.getF()) { + temp_node = val + } + } + // Закрываем точку + this.closeNode(temp_node, target) + } + + // Добавляем точку + pushNode(node: Node, x: number, y: number, z: number, g: number, target: Vector) { + const position = node.vector.offset(x, y, z); + const key = position.toHash() + if (this.#opened.has(key) || this.#closed.has(key) || !this.isValidePosition(position)) { + return false + } + const node_temp = new Node(position, node.g + g, this.getDistance(position, target), node) + this.#opened.set(node_temp.id, node_temp) + } + + isValidePosition(pos: Vector) { + const ai = this.#ai + const mob = ai.mob + const world = mob.getWorld() + let block = world.getBlock(pos.offset(0, -1, 0)) + if (!this.isSolid(block)) { + return false + } + block = world.getBlock(pos); + if (!this.isTransparent(block)) { + return false + } + const height = 1 + if (height > 1) { + block = world.getBlock(pos.offset(0, 1, 0)); + if (!this.isTransparent(block)) { + return false + } + } + return true + } + + // твердые блоки, на котрые можно вставть + isSolid(block: any) { + if (!block) { + return false + } + // это вода/лава, на ней можно стоять если умеешь + if (block.id == 0 && block.fluid > 0 && this.#can_swim) { + return true + } + // воздух/вода/лава + if (block.id == 0) { + return false + } + return true + } + + // через эти блоки можно проходить + isTransparent(block) { + if (!block) { + return false + } + // это воздух/вода/лава + if (block.id == 0 && block.fluid == 0) { + return true + } + // это воздух/вода/лава + if (block.id == 0 && block.fluid != 0 && this.#can_swim) { + return true + } + // трава табличик и т.д. + if (block.material.style == 'sign' || block.material.style == 'cover' || block.material.style == 'planting' || block.material.style == 'banner') { + return true + } + return false + } + + update(delta) { + const ai = this.#ai + const mob = ai.mob + const pc = ai.pc + if (this.#path) { + const pos = this.#path[0].vector.offset(0.5, 0, 0.5) + const dx = pos.x - mob.pos.x + const dz = pos.z - mob.pos.z + const dy = pos.y - mob.pos.y + const dist = dx * dx + dz * dz + if (dist < 0.1) { + this.#timer_wall = 0 + this.#path.shift() + } + if (this.#timer_wall++ > MAX_TIME_DOWN || this.#path.length == 0) { + //console.log('stop move time: ' + this.#timer_wall + ' len: ' + this.#path.length + ' dist: ' + dist + ' dy: ' + dy); + this.#path = null + return false + } + this.setLookPosition(pos) + let jump = false + let sneak = false + if (pc.player_state.isInWater) { + jump = (dy > 0.1) ? true : false + sneak = (dy < -0.1) ? true : false + } + ai.updateControl({ + yaw: mob.rotate.z, + jump: jump, + sneak: sneak, + forward: dist > 0 ? true : false + }, delta) + return true + } + this.setSubmerged() + ai.updateControl({ + yaw: mob.rotate.z, + jump: false, + sneak: false, + forward: false + }, delta) + return false + } + + // смотрим на точку + setLookPosition(pos: Vector, pitch: number = Math.PI) { + const mob = this.#ai.mob + const dx = pos.x - mob.pos.x + const dz = pos.z - mob.pos.z + let angle = Math.atan2(dx, dz) + if (angle > pitch ) { + angle = pitch + } + if (angle < -pitch ) { + angle = -pitch + } + mob.rotate.z = angle + } + + setSubmerged() { + if (!this.#can_swim) { + return + } + const pc = this.#ai.pc + const mob = this.#ai.mob + const world = mob.getWorld() + + let force = 0 + // находим глубину погружения + for (let i = 0; i < 10; i++) { + const water = world.getBlock(mob.pos.offset(0, i / 10, 0).floored()) + if (water?.id == 0 && (water.fluid & FLUID_TYPE_MASK) == FLUID_WATER_ID) { + force += .15 + } + } + /*const force = pc.player_state.isInWater ? pc.player_state.submergedHeight : 0*/ + const velocity = new Vector(0, 0, 0) + velocity.y = .025 * (force - 0.3) + pc.player_state.vel.addSelf(velocity) + } +} \ No newline at end of file diff --git a/node_server/fsm/pathfind/node.ts b/node_server/fsm/pathfind/node.ts new file mode 100644 index 000000000..549daeba8 --- /dev/null +++ b/node_server/fsm/pathfind/node.ts @@ -0,0 +1,37 @@ +import type { Vector } from "@client/helpers"; + +export class Node { + + #vector: Vector + #g: number + #h: number + #node: Node + + constructor(vector: Vector, g: number, h: number, node: Node) { + this.#vector = vector + this.#g = g + this.#h = h + this.#node = node + } + + get node() { + return this.#node + } + + get g(){ + return this.#g + } + + get vector() { + return this.#vector + } + + getF() { + return this.#g + this.#h; + } + + get id() { + return this.#vector.toHash() + } + +} \ No newline at end of file diff --git a/node_server/mob.ts b/node_server/mob.ts index 2f5bc8b21..99e155f65 100644 --- a/node_server/mob.ts +++ b/node_server/mob.ts @@ -85,7 +85,7 @@ export class Mob { static DIRTY_FLAG_SAVED_DEAD = 0x8; // If the mob is dead and was already saved as dead, it won't be saved again. #world : ServerWorld; - #brain : FSMBrain; + #brain : any #chunk_addr : Vector; #forward : Vector; @@ -179,8 +179,8 @@ export class Mob { return this.#world; } - getBrain() : FSMBrain { - return this.#brain; + getBrain() { + return this.#brain } /** @@ -211,7 +211,12 @@ export class Mob { break; } } - return new Mob(world, params, false); + const mob = new Mob(world, params, false) + const brain = mob.getBrain() + if (brain.test) { + brain.onInit() + } + return mob } tick(delta: float): void { diff --git a/www/src/bbmodel/model.ts b/www/src/bbmodel/model.ts index da5ee2f9a..a5733c027 100644 --- a/www/src/bbmodel/model.ts +++ b/www/src/bbmodel/model.ts @@ -151,10 +151,11 @@ export class BBModel_Model { playAnimation(animation_name : string, dt : float, mesh : Mesh_Object_BBModel = null) : boolean { const animation = this.animations.get(animation_name) + if(!animation) { return false } - + // reset all states for(const animation of this.animations.values()) { for(let k in animation.animators) { diff --git a/www/src/constant.ts b/www/src/constant.ts index 7f1386a26..735cd1991 100644 --- a/www/src/constant.ts +++ b/www/src/constant.ts @@ -235,6 +235,7 @@ export enum MOB_TYPE { SKELETON = 'mob/skeleton', SNOW_GOLEM = 'mob/snow_golem', ZOMBIE = 'mob/zombie', + FROG = 'mob/frog', } export enum TREASURE_SOURCE { diff --git a/www/src/mob_model.ts b/www/src/mob_model.ts index 48a3c8152..1ef871035 100644 --- a/www/src/mob_model.ts +++ b/www/src/mob_model.ts @@ -95,9 +95,9 @@ export class MobModel extends NetworkPhysicObject { Object.assign(this, props) - this.type = props.skin.model_name this.skin = props.skin - + this.type = this.skin.model_name + // load mesh const render = Qubatch.render as Renderer const model = Resources._bbmodels.get(this.skin.model_name)