├── LICENSE ├── README.md ├── README.zh-cn.md ├── anan ├── EZAnims.lua ├── EZMount.lua ├── LICENSE │ ├── CatMaid │ │ └── LICENSE │ ├── EZMount │ │ └── LICENSE │ ├── Figura-eye-tracking-API │ │ └── LICENSE │ ├── JimmyAnims │ │ └── LICENSE │ ├── SittingAPI │ │ └── LICENSE │ ├── Wet-control │ │ └── LICENSE │ ├── chatbubble │ │ └── LICENSE │ └── figura-physbone-api │ │ └── LICENSE ├── SittingAPI.lua ├── Wet-control.lua ├── anan.png ├── avatar.json ├── avatar.png ├── chatBubble.bbmodel ├── chatbubble.lua ├── ear.png ├── eye-tracking-api.lua ├── hair.png ├── minecart.bbmodel ├── minecart.png ├── model.bbmodel ├── physBoneAPI.lua ├── script.lua └── tongtong.png └── preview.png /LICENSE: -------------------------------------------------------------------------------- 1 | Attribution-ShareAlike 4.0 International 2 | 3 | ======================================================================= 4 | 5 | Creative Commons Corporation ("Creative Commons") is not a law firm and 6 | does not provide legal services or legal advice. Distribution of 7 | Creative Commons public licenses does not create a lawyer-client or 8 | other relationship. Creative Commons makes its licenses and related 9 | information available on an "as-is" basis. Creative Commons gives no 10 | warranties regarding its licenses, any material licensed under their 11 | terms and conditions, or any related information. Creative Commons 12 | disclaims all liability for damages resulting from their use to the 13 | fullest extent possible. 14 | 15 | Using Creative Commons Public Licenses 16 | 17 | Creative Commons public licenses provide a standard set of terms and 18 | conditions that creators and other rights holders may use to share 19 | original works of authorship and other material subject to copyright 20 | and certain other rights specified in the public license below. The 21 | following considerations are for informational purposes only, are not 22 | exhaustive, and do not form part of our licenses. 23 | 24 | Considerations for licensors: Our public licenses are 25 | intended for use by those authorized to give the public 26 | permission to use material in ways otherwise restricted by 27 | copyright and certain other rights. Our licenses are 28 | irrevocable. Licensors should read and understand the terms 29 | and conditions of the license they choose before applying it. 30 | Licensors should also secure all rights necessary before 31 | applying our licenses so that the public can reuse the 32 | material as expected. Licensors should clearly mark any 33 | material not subject to the license. This includes other CC- 34 | licensed material, or material used under an exception or 35 | limitation to copyright. More considerations for licensors: 36 | wiki.creativecommons.org/Considerations_for_licensors 37 | 38 | Considerations for the public: By using one of our public 39 | licenses, a licensor grants the public permission to use the 40 | licensed material under specified terms and conditions. If 41 | the licensor's permission is not necessary for any reason--for 42 | example, because of any applicable exception or limitation to 43 | copyright--then that use is not regulated by the license. Our 44 | licenses grant only permissions under copyright and certain 45 | other rights that a licensor has authority to grant. Use of 46 | the licensed material may still be restricted for other 47 | reasons, including because others have copyright or other 48 | rights in the material. A licensor may make special requests, 49 | such as asking that all changes be marked or described. 50 | Although not required by our licenses, you are encouraged to 51 | respect those requests where reasonable. More_considerations 52 | for the public: 53 | wiki.creativecommons.org/Considerations_for_licensees 54 | 55 | ======================================================================= 56 | 57 | Creative Commons Attribution-ShareAlike 4.0 International Public 58 | License 59 | 60 | By exercising the Licensed Rights (defined below), You accept and agree 61 | to be bound by the terms and conditions of this Creative Commons 62 | Attribution-ShareAlike 4.0 International Public License ("Public 63 | License"). To the extent this Public License may be interpreted as a 64 | contract, You are granted the Licensed Rights in consideration of Your 65 | acceptance of these terms and conditions, and the Licensor grants You 66 | such rights in consideration of benefits the Licensor receives from 67 | making the Licensed Material available under these terms and 68 | conditions. 69 | 70 | 71 | Section 1 -- Definitions. 72 | 73 | a. Adapted Material means material subject to Copyright and Similar 74 | Rights that is derived from or based upon the Licensed Material 75 | and in which the Licensed Material is translated, altered, 76 | arranged, transformed, or otherwise modified in a manner requiring 77 | permission under the Copyright and Similar Rights held by the 78 | Licensor. For purposes of this Public License, where the Licensed 79 | Material is a musical work, performance, or sound recording, 80 | Adapted Material is always produced where the Licensed Material is 81 | synched in timed relation with a moving image. 82 | 83 | b. Adapter's License means the license You apply to Your Copyright 84 | and Similar Rights in Your contributions to Adapted Material in 85 | accordance with the terms and conditions of this Public License. 86 | 87 | c. BY-SA Compatible License means a license listed at 88 | creativecommons.org/compatiblelicenses, approved by Creative 89 | Commons as essentially the equivalent of this Public License. 90 | 91 | d. Copyright and Similar Rights means copyright and/or similar rights 92 | closely related to copyright including, without limitation, 93 | performance, broadcast, sound recording, and Sui Generis Database 94 | Rights, without regard to how the rights are labeled or 95 | categorized. For purposes of this Public License, the rights 96 | specified in Section 2(b)(1)-(2) are not Copyright and Similar 97 | Rights. 98 | 99 | e. Effective Technological Measures means those measures that, in the 100 | absence of proper authority, may not be circumvented under laws 101 | fulfilling obligations under Article 11 of the WIPO Copyright 102 | Treaty adopted on December 20, 1996, and/or similar international 103 | agreements. 104 | 105 | f. Exceptions and Limitations means fair use, fair dealing, and/or 106 | any other exception or limitation to Copyright and Similar Rights 107 | that applies to Your use of the Licensed Material. 108 | 109 | g. License Elements means the license attributes listed in the name 110 | of a Creative Commons Public License. The License Elements of this 111 | Public License are Attribution and ShareAlike. 112 | 113 | h. Licensed Material means the artistic or literary work, database, 114 | or other material to which the Licensor applied this Public 115 | License. 116 | 117 | i. Licensed Rights means the rights granted to You subject to the 118 | terms and conditions of this Public License, which are limited to 119 | all Copyright and Similar Rights that apply to Your use of the 120 | Licensed Material and that the Licensor has authority to license. 121 | 122 | j. Licensor means the individual(s) or entity(ies) granting rights 123 | under this Public License. 124 | 125 | k. Share means to provide material to the public by any means or 126 | process that requires permission under the Licensed Rights, such 127 | as reproduction, public display, public performance, distribution, 128 | dissemination, communication, or importation, and to make material 129 | available to the public including in ways that members of the 130 | public may access the material from a place and at a time 131 | individually chosen by them. 132 | 133 | l. Sui Generis Database Rights means rights other than copyright 134 | resulting from Directive 96/9/EC of the European Parliament and of 135 | the Council of 11 March 1996 on the legal protection of databases, 136 | as amended and/or succeeded, as well as other essentially 137 | equivalent rights anywhere in the world. 138 | 139 | m. You means the individual or entity exercising the Licensed Rights 140 | under this Public License. Your has a corresponding meaning. 141 | 142 | 143 | Section 2 -- Scope. 144 | 145 | a. License grant. 146 | 147 | 1. Subject to the terms and conditions of this Public License, 148 | the Licensor hereby grants You a worldwide, royalty-free, 149 | non-sublicensable, non-exclusive, irrevocable license to 150 | exercise the Licensed Rights in the Licensed Material to: 151 | 152 | a. reproduce and Share the Licensed Material, in whole or 153 | in part; and 154 | 155 | b. produce, reproduce, and Share Adapted Material. 156 | 157 | 2. Exceptions and Limitations. For the avoidance of doubt, where 158 | Exceptions and Limitations apply to Your use, this Public 159 | License does not apply, and You do not need to comply with 160 | its terms and conditions. 161 | 162 | 3. Term. The term of this Public License is specified in Section 163 | 6(a). 164 | 165 | 4. Media and formats; technical modifications allowed. The 166 | Licensor authorizes You to exercise the Licensed Rights in 167 | all media and formats whether now known or hereafter created, 168 | and to make technical modifications necessary to do so. The 169 | Licensor waives and/or agrees not to assert any right or 170 | authority to forbid You from making technical modifications 171 | necessary to exercise the Licensed Rights, including 172 | technical modifications necessary to circumvent Effective 173 | Technological Measures. For purposes of this Public License, 174 | simply making modifications authorized by this Section 2(a) 175 | (4) never produces Adapted Material. 176 | 177 | 5. Downstream recipients. 178 | 179 | a. Offer from the Licensor -- Licensed Material. Every 180 | recipient of the Licensed Material automatically 181 | receives an offer from the Licensor to exercise the 182 | Licensed Rights under the terms and conditions of this 183 | Public License. 184 | 185 | b. Additional offer from the Licensor -- Adapted Material. 186 | Every recipient of Adapted Material from You 187 | automatically receives an offer from the Licensor to 188 | exercise the Licensed Rights in the Adapted Material 189 | under the conditions of the Adapter's License You apply. 190 | 191 | c. No downstream restrictions. You may not offer or impose 192 | any additional or different terms or conditions on, or 193 | apply any Effective Technological Measures to, the 194 | Licensed Material if doing so restricts exercise of the 195 | Licensed Rights by any recipient of the Licensed 196 | Material. 197 | 198 | 6. No endorsement. Nothing in this Public License constitutes or 199 | may be construed as permission to assert or imply that You 200 | are, or that Your use of the Licensed Material is, connected 201 | with, or sponsored, endorsed, or granted official status by, 202 | the Licensor or others designated to receive attribution as 203 | provided in Section 3(a)(1)(A)(i). 204 | 205 | b. Other rights. 206 | 207 | 1. Moral rights, such as the right of integrity, are not 208 | licensed under this Public License, nor are publicity, 209 | privacy, and/or other similar personality rights; however, to 210 | the extent possible, the Licensor waives and/or agrees not to 211 | assert any such rights held by the Licensor to the limited 212 | extent necessary to allow You to exercise the Licensed 213 | Rights, but not otherwise. 214 | 215 | 2. Patent and trademark rights are not licensed under this 216 | Public License. 217 | 218 | 3. To the extent possible, the Licensor waives any right to 219 | collect royalties from You for the exercise of the Licensed 220 | Rights, whether directly or through a collecting society 221 | under any voluntary or waivable statutory or compulsory 222 | licensing scheme. In all other cases the Licensor expressly 223 | reserves any right to collect such royalties. 224 | 225 | 226 | Section 3 -- License Conditions. 227 | 228 | Your exercise of the Licensed Rights is expressly made subject to the 229 | following conditions. 230 | 231 | a. Attribution. 232 | 233 | 1. If You Share the Licensed Material (including in modified 234 | form), You must: 235 | 236 | a. retain the following if it is supplied by the Licensor 237 | with the Licensed Material: 238 | 239 | i. identification of the creator(s) of the Licensed 240 | Material and any others designated to receive 241 | attribution, in any reasonable manner requested by 242 | the Licensor (including by pseudonym if 243 | designated); 244 | 245 | ii. a copyright notice; 246 | 247 | iii. a notice that refers to this Public License; 248 | 249 | iv. a notice that refers to the disclaimer of 250 | warranties; 251 | 252 | v. a URI or hyperlink to the Licensed Material to the 253 | extent reasonably practicable; 254 | 255 | b. indicate if You modified the Licensed Material and 256 | retain an indication of any previous modifications; and 257 | 258 | c. indicate the Licensed Material is licensed under this 259 | Public License, and include the text of, or the URI or 260 | hyperlink to, this Public License. 261 | 262 | 2. You may satisfy the conditions in Section 3(a)(1) in any 263 | reasonable manner based on the medium, means, and context in 264 | which You Share the Licensed Material. For example, it may be 265 | reasonable to satisfy the conditions by providing a URI or 266 | hyperlink to a resource that includes the required 267 | information. 268 | 269 | 3. If requested by the Licensor, You must remove any of the 270 | information required by Section 3(a)(1)(A) to the extent 271 | reasonably practicable. 272 | 273 | b. ShareAlike. 274 | 275 | In addition to the conditions in Section 3(a), if You Share 276 | Adapted Material You produce, the following conditions also apply. 277 | 278 | 1. The Adapter's License You apply must be a Creative Commons 279 | license with the same License Elements, this version or 280 | later, or a BY-SA Compatible License. 281 | 282 | 2. You must include the text of, or the URI or hyperlink to, the 283 | Adapter's License You apply. You may satisfy this condition 284 | in any reasonable manner based on the medium, means, and 285 | context in which You Share Adapted Material. 286 | 287 | 3. You may not offer or impose any additional or different terms 288 | or conditions on, or apply any Effective Technological 289 | Measures to, Adapted Material that restrict exercise of the 290 | rights granted under the Adapter's License You apply. 291 | 292 | 293 | Section 4 -- Sui Generis Database Rights. 294 | 295 | Where the Licensed Rights include Sui Generis Database Rights that 296 | apply to Your use of the Licensed Material: 297 | 298 | a. for the avoidance of doubt, Section 2(a)(1) grants You the right 299 | to extract, reuse, reproduce, and Share all or a substantial 300 | portion of the contents of the database; 301 | 302 | b. if You include all or a substantial portion of the database 303 | contents in a database in which You have Sui Generis Database 304 | Rights, then the database in which You have Sui Generis Database 305 | Rights (but not its individual contents) is Adapted Material, 306 | 307 | including for purposes of Section 3(b); and 308 | c. You must comply with the conditions in Section 3(a) if You Share 309 | all or a substantial portion of the contents of the database. 310 | 311 | For the avoidance of doubt, this Section 4 supplements and does not 312 | replace Your obligations under this Public License where the Licensed 313 | Rights include other Copyright and Similar Rights. 314 | 315 | 316 | Section 5 -- Disclaimer of Warranties and Limitation of Liability. 317 | 318 | a. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE 319 | EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS 320 | AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF 321 | ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS, 322 | IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION, 323 | WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR 324 | PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS, 325 | ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT 326 | KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT 327 | ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU. 328 | 329 | b. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE 330 | TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION, 331 | NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT, 332 | INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES, 333 | COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR 334 | USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN 335 | ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR 336 | DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR 337 | IN PART, THIS LIMITATION MAY NOT APPLY TO YOU. 338 | 339 | c. The disclaimer of warranties and limitation of liability provided 340 | above shall be interpreted in a manner that, to the extent 341 | possible, most closely approximates an absolute disclaimer and 342 | waiver of all liability. 343 | 344 | 345 | Section 6 -- Term and Termination. 346 | 347 | a. This Public License applies for the term of the Copyright and 348 | Similar Rights licensed here. However, if You fail to comply with 349 | this Public License, then Your rights under this Public License 350 | terminate automatically. 351 | 352 | b. Where Your right to use the Licensed Material has terminated under 353 | Section 6(a), it reinstates: 354 | 355 | 1. automatically as of the date the violation is cured, provided 356 | it is cured within 30 days of Your discovery of the 357 | violation; or 358 | 359 | 2. upon express reinstatement by the Licensor. 360 | 361 | For the avoidance of doubt, this Section 6(b) does not affect any 362 | right the Licensor may have to seek remedies for Your violations 363 | of this Public License. 364 | 365 | c. For the avoidance of doubt, the Licensor may also offer the 366 | Licensed Material under separate terms or conditions or stop 367 | distributing the Licensed Material at any time; however, doing so 368 | will not terminate this Public License. 369 | 370 | d. Sections 1, 5, 6, 7, and 8 survive termination of this Public 371 | License. 372 | 373 | 374 | Section 7 -- Other Terms and Conditions. 375 | 376 | a. The Licensor shall not be bound by any additional or different 377 | terms or conditions communicated by You unless expressly agreed. 378 | 379 | b. Any arrangements, understandings, or agreements regarding the 380 | Licensed Material not stated herein are separate from and 381 | independent of the terms and conditions of this Public License. 382 | 383 | 384 | Section 8 -- Interpretation. 385 | 386 | a. For the avoidance of doubt, this Public License does not, and 387 | shall not be interpreted to, reduce, limit, restrict, or impose 388 | conditions on any use of the Licensed Material that could lawfully 389 | be made without permission under this Public License. 390 | 391 | b. To the extent possible, if any provision of this Public License is 392 | deemed unenforceable, it shall be automatically reformed to the 393 | minimum extent necessary to make it enforceable. If the provision 394 | cannot be reformed, it shall be severed from this Public License 395 | without affecting the enforceability of the remaining terms and 396 | conditions. 397 | 398 | c. No term or condition of this Public License will be waived and no 399 | failure to comply consented to unless expressly agreed to by the 400 | Licensor. 401 | 402 | d. Nothing in this Public License constitutes or may be interpreted 403 | as a limitation upon, or waiver of, any privileges and immunities 404 | that apply to the Licensor or You, including from the legal 405 | processes of any jurisdiction or authority. 406 | 407 | 408 | ======================================================================= 409 | 410 | Creative Commons is not a party to its public 411 | licenses. Notwithstanding, Creative Commons may elect to apply one of 412 | its public licenses to material it publishes and in those instances 413 | will be considered the “Licensor.” The text of the Creative Commons 414 | public licenses is dedicated to the public domain under the CC0 Public 415 | Domain Dedication. Except for the limited purpose of indicating that 416 | material is shared under a Creative Commons public license or as 417 | otherwise permitted by the Creative Commons policies published at 418 | creativecommons.org/policies, Creative Commons does not authorize the 419 | use of the trademark "Creative Commons" or any other trademark or logo 420 | of Creative Commons without its prior written consent including, 421 | without limitation, in connection with any unauthorized modifications 422 | to any of its public licenses or any other arrangements, 423 | understandings, or agreements concerning use of licensed material. For 424 | the avoidance of doubt, this paragraph does not form part of the 425 | public licenses. 426 | 427 | Creative Commons may be contacted at creativecommons.org. 428 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | An-An: Minecraft Avatar (Figura) 2 | === 3 | 4 | [简体中文自述文件 >>](README.zh-cn.md) 5 | 6 | ![Yay, it's An-An!](preview.png) 7 | 8 | Minecraft avatar imitating An-An, mascot of Anthon Open Source Community. 9 | 10 | For more information on An-An and Tong-Tong, her companion, please refer to AOSC's page on [community mascots](https://aosc.io/mascot). 11 | 12 | Requirements 13 | --- 14 | 15 | As this avatar is built for [Figura](https://figuramc.org/), you would need to install it in Minecraft.You can refer to [How to use](https://github.com/Gakuto1112/FiguraBlueArchiveCharacters/blob/base/.github/README.md#how-to-use) 16 | 17 | About Action Animations and Other Effects 18 | --- 19 | 20 | The base model has been completed and is available for download in the releases section. This version does not include any effects (suffix: basemodel). 21 | 22 | Character models with action animations are currently in production and will be released subsequently (suffix: fullmodel). 23 | 24 | Implement animation effects making use of [JimmyAnims](https://github.com/JimmyHelp/JimmyAnims) ,[EZMount](https://github.com/JimmyHelp/EZMount) , [Figura-chatbubble-multiplayer](https://github.com/OvOla2/Figura-chatbubble-multiplayer) , [figura-physbone-api](https://github.com/ChloeSpacedOut/figura-physbone-api) and [figura-eye-tracking-API](https://github.com/OvOla2/Figura-eye-tracking-API). In the future, more third-party Lua APIs may be utilized to achieve animations and other effects. 25 | 26 | -------------------------------------------------------------------------------- /README.zh-cn.md: -------------------------------------------------------------------------------- 1 | 安安 Minecraft 角色模型 (Figura) 2 | === 3 | 4 | [README in English >>](README.md) 5 | 6 | ![好哦,是安安!](preview.png) 7 | 8 | 本仓库用于维护安安的 Minecraft 角色模型。 9 | 10 | 安安是安同开源社区 (AOSC) 的吉祥物之一;欲知有关安安和她的伙伴同同的更多设定信息,请见 AOSC 的[社区吉祥物](https://aosc.io/mascot)页面。 11 | 12 | 依赖 13 | --- 14 | 15 | 本角色模型是基于 [Figura](https://figuramc.org/) 制作的,需安装该模组 (mod) 才能使用安安的角色模型,使用可以参考[How to use](https://github.com/Gakuto1112/FiguraBlueArchiveCharacters/blob/base/.github/README.md#how-to-use) 16 | 17 | 关于动作动画及其它效果 18 | --- 19 | 20 | 目前,基础模型已制作完成,可以在releases下载不包含任何效果的基础模型(后缀为basemodel) 21 | 22 | 带有动作动画的角色模型已制作。(后缀为fullmodel) 23 | 24 | 使用[JimmyAnims](https://github.com/JimmyHelp/JimmyAnims) ,[EZMount](https://github.com/JimmyHelp/EZMount) , [Figura-chatbubble-multiplayer](https://github.com/OvOla2/Figura-chatbubble-multiplayer) , [figura-physbone-api](https://github.com/ChloeSpacedOut/figura-physbone-api) 和 [figura-eye-tracking-API](https://github.com/OvOla2/Figura-eye-tracking-API)实现动画效果导入,以后可能会使用更多第三方luaapi实现动画及其它效果 25 | -------------------------------------------------------------------------------- /anan/EZAnims.lua: -------------------------------------------------------------------------------- 1 | -- V1.14 for 0.1.0 and above 2 | -- Made by JimmyHelp 3 | -- Contains Manuel's runLater 4 | 5 | local anims = {} 6 | 7 | local controller = {} 8 | local controllerMT = {__index = controller} 9 | 10 | local objects = {} 11 | 12 | local exList = { 13 | "idling", 14 | "walking", 15 | "walkingback", 16 | "jumpingup", 17 | "jumpingdown", 18 | "falling", 19 | "sprinting", 20 | "sprintjumpup", 21 | "sprintjumpdown", 22 | "crouching", 23 | "crouchwalk", 24 | "crouchwalkback", 25 | "crouchjumpup", 26 | "crouchjumpdown", 27 | "elytra", 28 | "elytradown", 29 | "trident", 30 | "sleeping", 31 | "swimming", 32 | "sitting", 33 | "sitmove", 34 | "sitmoveback", 35 | "sitjumpup", 36 | "sitjumpdown", 37 | "sitpass", 38 | "crawling", 39 | "crawlstill", 40 | "flying", 41 | "flywalk", 42 | "flywalkback", 43 | "flysprint", 44 | "flyup", 45 | "flydown", 46 | "climbing", 47 | "climbstill", 48 | "climbdown", 49 | "climbcrouch", 50 | "climbcrouchwalking", 51 | "water", 52 | "waterwalk", 53 | "waterwalkback", 54 | "waterup", 55 | "waterdown", 56 | "watercrouch", 57 | "watercrouchwalk", 58 | "watercrouchwalkback", 59 | "watercrouchup", 60 | "watercrouchdown", 61 | "hurt", 62 | "death" 63 | } 64 | 65 | local incList = { 66 | "attackR", 67 | "attackL", 68 | "mineR", 69 | "mineL", 70 | "holdR", 71 | "holdL", 72 | "eatR", 73 | "eatL", 74 | "drinkR", 75 | "drinkL", 76 | "blockR", 77 | "blockL", 78 | "bowR", 79 | "bowL", 80 | "loadR", 81 | "loadL", 82 | "crossR", 83 | "crossL", 84 | "spearR", 85 | "spearL", 86 | "spyglassR", 87 | "spyglassL", 88 | "hornR", 89 | "hornL", 90 | "brushR", 91 | "brushL", 92 | } 93 | 94 | --[[local oldList = {} -- simply make the list again 95 | 96 | for key, _ in pairs(aList) do 97 | oldList[key] = {active = false} 98 | end]] 99 | 100 | local GSAnimBlend 101 | for _, key in ipairs(listFiles(nil,true)) do 102 | if key:find("GSAnimBlend$") then 103 | GSAnimBlend = require(key) 104 | break 105 | end 106 | end 107 | if GSAnimBlend then GSAnimBlend.safe = false end 108 | 109 | local function setBlendTime(ex,inc,o) 110 | for _,list in pairs(o.aList) do 111 | for _,value in pairs(list.list) do 112 | value:setBlendTime(list.type == "excluAnims" and ex or inc) 113 | end 114 | end 115 | end 116 | 117 | ---@param ex? number 118 | ---@param inc? number 119 | function controller:setBlendTimes(ex,inc) 120 | if not GSAnimBlend then error("GSAnimBlend was not found in the avatar, and this function is for interacting with GSAnimBlend.",2) end 121 | if type(ex) ~= "number" and ex ~= nil then 122 | error("The first arg is a non-number value ("..type(ex).."), must be a number or nil.",2) 123 | end 124 | if type(inc) ~= "number" and inc ~= nil then 125 | error("The second arg is a non-number value ("..type(inc).."), must be a number or nil.",2) 126 | end 127 | if ex == nil then 128 | ex = 0 129 | end 130 | if inc == nil then 131 | inc = ex 132 | end 133 | setBlendTime(ex,inc,self) 134 | return self 135 | end 136 | 137 | local flyinit 138 | local function addAnims(bb,o) 139 | local listy = o.aList 140 | for _,anim in pairs(bb) do 141 | for name,animation in pairs(anim) do 142 | if name:find("fly") then flyinit = true end 143 | for key, _ in pairs(o.aList) do 144 | if name:find(key.."$") then 145 | listy[key].list[#listy[key].list+1] = animation 146 | break 147 | end 148 | end 149 | end 150 | end 151 | 152 | if GSAnimBlend then setBlendTime(4,4,o) end 153 | end 154 | 155 | ---@param anim table 156 | ---@param ifFly? boolean 157 | function controller:setAnims(anim,ifFly) 158 | flyinit = ifFly 159 | for key, value in pairs(anim) do 160 | self.aList[key].list = value 161 | end 162 | if GSAnimBlend then setBlendTime(4,4,self) end 163 | return self 164 | end 165 | 166 | ---- Run Later by manuel_2867 ---- 167 | local tmrs={} 168 | local t=0 169 | ---Schedules a function to run after a certain amount of ticks 170 | ---@param ticks number|function Amount of ticks to wait, or a predicate function to check each tick until it returns true 171 | ---@param next function Function to run after amount of ticks, or after the predicate function returned true 172 | local function wait(ticks,next) 173 | local x=type(ticks)=="number" 174 | table.insert(tmrs,{t=x and t+ticks,p=x and function()end or ticks,n=next}) 175 | end 176 | function events.TICK() 177 | t=t+1 178 | for key,timer in pairs(tmrs) do 179 | if timer.p()or(timer.t and t >= timer.t)then 180 | timer.n() 181 | tmrs[key]=nil 182 | end 183 | end 184 | end 185 | 186 | local fallVel = -0.6 187 | ---@param vel? number 188 | function anims:setFallVel(vel) 189 | if type(vel) ~= "number" and vel ~= nil then 190 | error("Tried to set the velocity to a non-number value ("..type(vel)..").") 191 | end 192 | fallVel = vel or -0.6 193 | return self 194 | end 195 | 196 | local oneJump = false 197 | ---@param state? boolean 198 | function anims:setOneJump(state) 199 | oneJump = state or false 200 | return self 201 | end 202 | 203 | local auto = true 204 | function anims:disableAutoSearch() 205 | auto = false 206 | return self 207 | end 208 | 209 | local function getPlay(anim) 210 | local exists, hold = pcall(anim.isHolding,anim) 211 | return anim:isPlaying() or (exists and hold) 212 | end 213 | 214 | local function getOverriders(type,o) 215 | return o.overrideStates[type] or o.overrideStates.allAnims 216 | end 217 | 218 | local function addOverriders(self,type,...) 219 | for _, value in pairs({...}) do 220 | if #self.overriders[type] == 64 then 221 | error("The max amount of overriding animations for "..type.." (64) was reached. Do not put the code for adding overriding animations in a function, it will infinitely add animations.",3) 222 | end 223 | self.overriders[type][#self.overriders[type]+1] = value 224 | end 225 | end 226 | 227 | ---@param state? boolean 228 | function controller:setAllOff(state) 229 | self.setOverrides.allAnims = state 230 | return self 231 | end 232 | 233 | ---@param state? boolean 234 | function controller:setExcluOff(state) 235 | self.setOverrides.excluAnims = state 236 | return self 237 | end 238 | 239 | ---@param state? boolean 240 | function controller:setIncluOff(state) 241 | self.setOverrides.incluAnims = state 242 | return self 243 | end 244 | 245 | ---@param ... Animation 246 | function controller:addExcluOverrider(...) 247 | addOverriders(self,"excluAnims",...) 248 | return self 249 | end 250 | 251 | ---@param ... Animation 252 | function controller:addIncluOverrider(...) 253 | addOverriders(self,"incluAnims",...) 254 | return self 255 | end 256 | 257 | ---@param ... Animation 258 | function controller:addAllOverrider(...) 259 | addOverriders(self,"allAnims",...) 260 | return self 261 | end 262 | 263 | ---@param exState? string 264 | ---@param inState? string 265 | function controller:setState(exState,inState) 266 | if type(exState) ~= "string" and exState ~= nil then 267 | error("The first arg is a non-string value ("..type(exState).."), must be a string or nil.",2) 268 | end 269 | if type(inState) ~= "string" and inState ~= nil then 270 | error("The second arg is a non-string value ("..type(inState).."), must be a string or nil.",2) 271 | end 272 | self.toggleState = {excluAnims = exState or "",incluAnims = inState or exState or ""} 273 | return self 274 | end 275 | 276 | function controller:getState() 277 | return self.toggleState 278 | end 279 | 280 | local function getStates(type,o) 281 | return o.toggleState[type] 282 | end 283 | 284 | ---@param spec? string 285 | function controller:getAnimationStates(spec) 286 | if type(spec) ~= "string" and spec ~= nil then 287 | error("The animation state is a non-string value ("..type(spec).."), must be a string or nil.",2) 288 | end 289 | local states = {} 290 | for k,v in pairs(self.aList) do 291 | states[k] = v.active 292 | end 293 | if spec then return self.aList[spec].active else return states end 294 | end 295 | 296 | local function setAnimation(anim,override,state,o) 297 | local saved = o.aList[anim] 298 | local exists = true 299 | for _,value in pairs(saved.list) do 300 | if value:getName() == state..anim then 301 | if not saved.active and saved.stop then break end 302 | value:setPlaying(saved.active and not override) 303 | if saved.active and saved.stop and not override then 304 | value:stop():play() 305 | end 306 | exists = false 307 | else 308 | if not saved.active and saved.stop then break end 309 | value:stop() 310 | end 311 | end 312 | for _,value in pairs(saved.list) do 313 | if exists and value:getName() == anim then 314 | if not saved.active and saved.stop then break end 315 | if saved.active and saved.stop and not override then 316 | value:stop():play() 317 | break 318 | end 319 | value:setPlaying(saved.active and not override) 320 | end 321 | end 322 | end 323 | 324 | local flying 325 | function pings.EZAnims_cFly(x) 326 | flying = x 327 | end 328 | 329 | local diff = false 330 | local rightResult, leftResult, targetEntity, rightMine, leftMine, rightAttack, leftAttack, oldhitBlock, targetBlock, blockSuccess, blockResult, hitBlock 331 | local yvel, grounded, oldgrounded, hasJumped, cFlying, oldcFlying 332 | local cooldown = false 333 | local updateTimer = 0 334 | local toggleDiff 335 | local function getInfo() 336 | if host:isHost() then 337 | if flyinit then 338 | cFlying = host:isFlying() 339 | if cFlying ~= oldcFlying then 340 | pings.EZAnims_cFly(cFlying) 341 | end 342 | oldcFlying = cFlying 343 | 344 | updateTimer = updateTimer + 1 345 | if updateTimer % 200 == 0 then 346 | pings.EZAnims_cFly(cFlying) 347 | end 348 | end 349 | end 350 | 351 | local pose = player:getPose() 352 | local velocity = player:getVelocity() 353 | local moving = velocity.xz:length() > 0.01 354 | local sprinty = player:isSprinting() 355 | local vehicle = player:getVehicle() 356 | local sitting = vehicle ~= nil or pose == "SITTING" -- if you're reading this code and see this, "SITTING" isn't a vanilla pose, this is for mods 357 | local passenger = vehicle and vehicle:getControllingPassenger() ~= player 358 | local creativeFlying = (flying or false) and not sitting 359 | local standing = pose == "STANDING" 360 | local crouching = pose == "CROUCHING" and not creativeFlying 361 | local gliding = pose == "FALL_FLYING" 362 | local spin = pose == "SPIN_ATTACK" 363 | local sleeping = pose == "SLEEPING" 364 | local swimming = pose == "SWIMMING" 365 | local inWater = player:isUnderwater() and not sitting 366 | local inLiquid = player:isInWater() or player:isInLava() 367 | local liquidSwim = swimming and inLiquid 368 | local crawling = swimming and not inLiquid 369 | 370 | -- hasJumped stuff 371 | 372 | yvel = velocity.y 373 | local hover = yvel < .01 and yvel > -.01 374 | local goingUp = yvel > .01 375 | local goingDown = yvel < -.01 376 | local falling = yvel < fallVel 377 | local playerGround = world.getBlockState(player:getPos():add(0,-.1,0)) 378 | local vehicleGround = sitting and world.getBlockState(vehicle:getPos():add(0,-.1,0)) 379 | oldgrounded = grounded 380 | grounded = playerGround:isSolidBlock() or player:isOnGround() or (sitting and vehicleGround:isSolidBlock() or sitting and vehicle:isOnGround()) 381 | 382 | local pv = velocity:mul(1, 0, 1):normalize() 383 | local pl = models:partToWorldMatrix():applyDir(0,0,-1):mul(1, 0, 1):normalize() 384 | local fwd = pv:dot(pl) 385 | local backwards = fwd < -.8 386 | --local sideways = pv:cross(pl) 387 | --local right = sideways.y > .6 388 | --local left = sideways.y < -.6 389 | 390 | -- canJump stuff 391 | local webbed = world.getBlockState(player:getPos()).id == "minecraft:cobweb" 392 | local ladder = player:isClimbing() and not grounded and not flying 393 | 394 | local canJump = not (inLiquid or webbed or grounded) 395 | 396 | local hp = player:getHealth() + player:getAbsorptionAmount() 397 | 398 | if oldgrounded ~= grounded and not grounded and yvel > 0 then 399 | cooldown = true 400 | wait(10,function() cooldown = false end) 401 | end 402 | 403 | if (oldgrounded ~= grounded and not grounded and yvel > 0) and canJump then hasJumped = true end 404 | if (grounded and (yvel <= 0 and yvel > -0.1)) or (gliding or inLiquid) then hasJumped = false end 405 | 406 | local neverJump = not (gliding or spin or sleeping or swimming or ladder) 407 | local jumpingUp = hasJumped and goingUp and neverJump 408 | local jumpingDown = hasJumped and goingDown and not falling and neverJump or (cooldown and not jumpingUp) 409 | local isJumping = jumpingUp or jumpingDown or falling 410 | local sprinting = sprinty and standing and not inLiquid and not sitting 411 | local walking = moving and not sprinting and not isJumping and not sitting 412 | local forward = walking and not backwards 413 | local backward = walking and backwards 414 | 415 | local handedness = player:isLeftHanded() 416 | local rightItem = player:getHeldItem(handedness) 417 | local leftItem = player:getHeldItem(not handedness) 418 | local rightActive = handedness and "OFF_HAND" or "MAIN_HAND" 419 | local leftActive = not handedness and "OFF_HAND" or "MAIN_HAND" 420 | local activeness = player:getActiveHand() 421 | local using = player:isUsingItem() 422 | local rightSuccess = pcall(rightItem.getUseAction,rightItem) 423 | if rightSuccess then rightResult = rightItem:getUseAction() else rightResult = "NONE" end 424 | local usingR = using and activeness == rightActive and rightResult 425 | local leftSuccess = pcall(leftItem.getUseAction,leftItem) 426 | if leftSuccess then leftResult = leftItem:getUseAction() else leftResult = "NONE" end 427 | local usingL = using and activeness == leftActive and leftResult 428 | local swing = player:getSwingTime() 429 | local arm = swing == 1 and not sleeping and player:getSwingArm() 430 | local rTag= rightItem.tag 431 | local lTag = leftItem.tag 432 | local crossR = rTag and (rTag["Charged"] == 1 or (rTag["ChargedProjectiles"] and next(rTag["ChargedProjectiles"])~= nil)) or false 433 | local crossL = lTag and (lTag["Charged"] == 1 or (lTag["ChargedProjectiles"] and next(lTag["ChargedProjectiles"])~= nil)) or false 434 | local exclude = not (crossR or crossL or using) 435 | local game = player:getGamemode() 436 | local reach = game and 6 or 3 437 | 438 | if swing == 1 then 439 | targetEntity = type(player:getTargetedEntity(reach)) == "PlayerAPI" or type(player:getTargetedEntity(reach)) == "LivingEntityAPI" 440 | rightMine = oldhitBlock and not targetEntity 441 | leftMine = oldhitBlock and not targetEntity 442 | rightAttack = (not oldhitBlock or targetEntity) 443 | leftAttack = (not oldhitBlock or targetEntity) 444 | end 445 | 446 | for _,o in pairs(objects) do 447 | 448 | o.diff = false 449 | for types, tabs in pairs(o.overriders) do 450 | o.overrideStates[types] = o.setOverrides[types] or false 451 | for _, value in pairs(tabs) do 452 | if getPlay(value) then 453 | o.overrideStates[types] = true 454 | break 455 | end 456 | end 457 | if o.oldoverStates[types] ~= o.overrideStates[types] then 458 | o.diff = true 459 | end 460 | o.oldoverStates[types] = o.overrideStates[types] 461 | end 462 | 463 | local ob = o.aList 464 | 465 | ob.flywalkback.active = creativeFlying and backward and (not (goingDown or goingUp)) 466 | ob.flysprint.active = creativeFlying and sprinting and not isJumping and (not (goingDown or goingUp)) 467 | ob.flyup.active = creativeFlying and goingUp 468 | ob.flydown.active = creativeFlying and goingDown 469 | ob.flywalk.active = creativeFlying and forward and (not (goingDown or goingUp)) and not sleeping or (ob.flysprint.active and next(ob.flysprint.list)==nil) or (ob.flywalkback.active and next(ob.flywalkback.list)==nil) 470 | or (ob.flyup.active and next(ob.flyup.list)==nil) or (ob.flydown.active and next(ob.flydown.list)==nil) 471 | ob.flying.active = creativeFlying and not sprinting and not moving and standing and not isJumping and (not (goingDown or goingUp)) and not sleeping or (ob.flywalk.active and next(ob.flywalk.list)==nil) 472 | 473 | ob.watercrouchwalkback.active = inWater and crouching and backward and not goingDown 474 | ob.watercrouchwalk.active = inWater and crouching and forward and not (goingDown or goingUp) or (ob.watercrouchwalkback.active and next(ob.watercrouchwalkback.list)==nil) 475 | ob.watercrouchup.active = inWater and crouching and goingUp 476 | ob.watercrouchdown.active = inWater and crouching and goingDown or (ob.watercrouchup.active and next(ob.watercrouchup.list)==nil) 477 | ob.watercrouch.active = inWater and crouching and not moving and not (goingDown or goingUp) or (ob.watercrouchdown.active and next(ob.watercrouchdown.list)==nil) or (ob.watercrouchwalk.active and next(ob.watercrouchwalk.list)==nil) 478 | 479 | ob.waterdown.active = inWater and goingDown and not falling and standing and not creativeFlying 480 | ob.waterup.active = inWater and goingUp and standing and not creativeFlying 481 | ob.waterwalkback.active = inWater and backward and hover and standing and not creativeFlying 482 | ob.waterwalk.active = inWater and forward and hover and standing and not creativeFlying or (ob.waterwalkback.active and next(ob.waterwalkback.list)==nil) or (ob.waterdown.active and next(ob.waterdown.list)==nil) 483 | or (ob.waterup.active and next(ob.waterup.list)==nil) 484 | ob.water.active = inWater and not moving and standing and hover and not creativeFlying or (ob.waterwalk.active and next(ob.waterwalk.list)==nil) 485 | 486 | 487 | 488 | ob.crawlstill.active = crawling and not moving 489 | ob.crawling.active = crawling and moving or (ob.crawlstill.active and next(ob.crawlstill.list)==nil) 490 | 491 | ob.swimming.active = liquidSwim or (ob.crawling.active and next(ob.crawling.list)==nil) 492 | 493 | ob.elytradown.active = gliding and goingDown 494 | ob.elytra.active = gliding and not goingDown or (ob.elytradown.active and next(ob.elytradown.list)==nil) 495 | 496 | ob.sitpass.active = passenger and standing or false 497 | ob.sitjumpdown.active = sitting and not passenger and standing and (jumpingDown or falling) 498 | ob.sitjumpup.active = sitting and not passenger and jumpingUp and standing or (ob.sitjumpdown.active and next(ob.sitjumpdown.list)==nil) 499 | ob.sitmoveback.active = sitting and not passenger and not isJumping and backwards and standing 500 | ob.sitmove.active = velocity:length() > 0 and not passenger and not backwards and standing and sitting and not isJumping or (ob.sitmoveback.active and next(ob.sitmoveback.list)==nil) or (ob.sitjumpup.active and next(ob.sitjumpup.list)==nil) 501 | ob.sitting.active = sitting and not passenger and velocity:length() == 0 and not isJumping and standing or (ob.sitmove.active and next(ob.sitmove.list)==nil) or (ob.sitpass.active and next(ob.sitpass.list)==nil) or false 502 | 503 | ob.trident.active = spin 504 | ob.sleeping.active = sleeping 505 | 506 | ob.climbcrouchwalking.active = ladder and crouching and not inWater and (moving or yvel ~= 0) 507 | ob.climbcrouch.active = ladder and crouching and hover and not moving or (ob.climbcrouchwalking.active and next(ob.climbcrouchwalking.list)==nil) 508 | ob.climbdown.active = ladder and goingDown and not crouching 509 | ob.climbstill.active = ladder and not crouching and hover 510 | ob.climbing.active = ladder and goingUp and not crouching or (ob.climbdown.active and next(ob.climbdown.list)==nil) or (ob.climbstill.active and next(ob.climbstill.list)==nil) 511 | 512 | ob.crouchjumpdown.active = crouching and jumpingDown and not inWater and not ladder 513 | ob.crouchjumpup.active = crouching and jumpingUp and not inWater and not ladder or (not oneJump and (ob.crouchjumpdown.active and next(ob.crouchjumpdown.list)==nil)) 514 | ob.crouchwalkback.active = backward and crouching and not inWater and not ladder or (ob.watercrouchwalkback.active and next(ob.watercrouchwalkback.list)==nil and next(ob.watercrouchwalk.list)==nil and next(ob.watercrouch.list)==nil) 515 | ob.crouchwalk.active = forward and crouching and not (jumpingDown or jumpingUp) and not inWater and not ladder or (ob.crouchwalkback.active and next(ob.crouchwalkback.list)==nil) or (not oneJump and (ob.crouchjumpup.active and next(ob.crouchjumpup.list)==nil)) or ((ob.watercrouchwalk.active and not ob.watercrouchwalkback.active) and next(ob.watercrouchwalk.list)==nil and next(ob.watercrouch.list)==nil) 516 | ob.crouching.active = crouching and not walking and not inWater and not isJumping and not ladder and not cooldown or (ob.crouchwalk.active and next(ob.crouchwalk.list)==nil) or (ob.climbcrouch.active and next(ob.climbcrouch.list)==nil) or ((ob.watercrouch.active and not ob.watercrouchwalk.active) and next(ob.watercrouch.list)==nil) 517 | 518 | ob.falling.active = falling and not gliding and not creativeFlying and not sitting 519 | 520 | ob.sprintjumpdown.active = jumpingDown and sprinting and not creativeFlying and not ladder or false 521 | ob.sprintjumpup.active = jumpingUp and sprinting and not creativeFlying and not ladder or (not oneJump and (ob.sprintjumpdown.active and next(ob.sprintjumpdown.list)==nil)) or false 522 | ob.jumpingdown.active = jumpingDown and not ladder and not sprinting and not crouching and not sitting and not sleeping and not gliding and not creativeFlying and not spin and not inWater or (ob.falling.active and next(ob.falling.list)==nil) or (oneJump and (ob.sprintjumpdown.active and next(ob.sprintjumpdown.list)==nil)) or (oneJump and (ob.crouchjumpdown.active and next(ob.crouchjumpdown.list)==nil)) 523 | ob.jumpingup.active = jumpingUp and not ladder and not sprinting and not crouching and not sitting and not creativeFlying and not inWater or (ob.jumpingdown.active and next(ob.jumpingdown.list)==nil) or (ob.trident.active and next(ob.trident.list)==nil) or (oneJump and (ob.sprintjumpup.active and next(ob.sprintjumpup.list)==nil)) or (oneJump and (ob.crouchjumpup.active and next(ob.crouchjumpup.list)==nil)) 524 | 525 | ob.sprinting.active = sprinting and not isJumping and not creativeFlying and not ladder and not cooldown and not inWater or (not oneJump and (ob.sprintjumpup.active and next(ob.sprintjumpup.list)==nil)) or false 526 | ob.walkingback.active = backward and standing and not creativeFlying and not ladder and not inWater or (ob.flywalkback.active and next(ob.flywalkback.list)==nil and next(ob.flywalk.list)==nil and next(ob.flying.list)==nil) 527 | ob.walking.active = forward and standing and not creativeFlying and not ladder and not cooldown and not inWater or (ob.walkingback.active and next(ob.walkingback.list)==nil) or (ob.sprinting.active and next(ob.sprinting.list)==nil) or (ob.climbing.active and next(ob.climbing.list)==nil) 528 | or (ob.swimming.active and next(ob.swimming.list)==nil) or (ob.elytra.active and next(ob.elytra.list)==nil) or (ob.jumpingup.active and next(ob.jumpingup.list)==nil) or (ob.waterwalk.active and (next(ob.waterwalk.list)==nil and next(ob.water.list)==nil)) or ((ob.flywalk.active and not ob.flywalkback.active) and next(ob.flywalk.list)==nil and next(ob.flying.list)==nil) 529 | or (ob.crouchwalk.active and (next(ob.crouchwalk)==nil or next(ob.crouching.list)==nil)) 530 | ob.idling.active = not moving and not sprinting and standing and not isJumping and not sitting and not inWater and not creativeFlying and not ladder or (ob.sleeping.active and next(ob.sleeping.list)==nil) or (ob.sitting.active and next(ob.sitting.list)==nil) 531 | or ((ob.water.active and not ob.waterwalk.active) and next(ob.water.list)==nil) or ((ob.flying.active and not ob.flywalk.active) and next(ob.flying.list)==nil) or ((ob.crouching.active and not ob.crouchwalk.active) and next(ob.crouching.list)==nil) 532 | 533 | ob.death.active = hp <= 0 534 | ob.hurt.active = player:getNbt().HurtTime > 0 and hp > 0 535 | 536 | ob.attackR.active = arm == rightActive and rightAttack 537 | ob.attackL.active = arm == leftActive and leftAttack 538 | ob.mineR.active = arm == rightActive and rightMine 539 | ob.mineL.active = arm == leftActive and leftMine 540 | ob.holdR.active = rightItem.id~="minecraft:air" and exclude 541 | ob.holdL.active = leftItem.id~="minecraft:air" and exclude 542 | ob.eatR.active = usingR == "EAT" 543 | ob.eatL.active = usingL == "EAT" 544 | ob.drinkR.active = usingR == "DRINK" 545 | ob.drinkL.active = usingL == "DRINK" 546 | ob.blockR.active = usingR == "BLOCK" 547 | ob.blockL.active = usingL == "BLOCK" 548 | ob.bowR.active = usingR == "BOW" 549 | ob.bowL.active = usingL == "BOW" 550 | ob.loadR.active = usingR == "CROSSBOW" 551 | ob.loadL.active = usingL == "CROSSBOW" 552 | ob.crossR.active = crossR 553 | ob.crossL.active = crossL 554 | ob.spearR.active = usingR == "SPEAR" 555 | ob.spearL.active = usingL == "SPEAR" 556 | ob.spyglassR.active = usingR == "SPYGLASS" 557 | ob.spyglassL.active = usingL == "SPYGLASS" 558 | ob.hornR.active = usingR == "TOOT_HORN" 559 | ob.hornL.active = usingL == "TOOT_HORN" 560 | ob.brushR.active = usingR == "BRUSH" 561 | ob.brushL.active = usingL == "BRUSH" 562 | 563 | for key,value in pairs(o.aList) do 564 | if (value.active ~= o.oldList[key].active) then 565 | setAnimation(key,getOverriders(value.type,o),getStates(value.type,o),o) 566 | end 567 | if (o.toggleDiff or o.diff) and value.active then 568 | setAnimation(key,getOverriders(value.type,o),getStates(value.type,o),o) 569 | end 570 | o.oldList[key].active = value.active 571 | end 572 | 573 | o.toggleDiff = false 574 | for key,_ in pairs(o.toggleState) do 575 | if o.oldToggle[key] ~= o.toggleState[key] then 576 | o.toggleDiff = true 577 | end 578 | o.oldToggle[key] = o.toggleState[key] 579 | end 580 | end 581 | oldhitBlock = hitBlock 582 | targetBlock = player:getTargetedBlock(true, game and 5 or 4.5) 583 | blockSuccess, blockResult = pcall(targetBlock.getTextures, targetBlock) 584 | if blockSuccess then hitBlock = not (next(blockResult) == nil) else hitBlock = true end 585 | end 586 | 587 | function events.tick() 588 | getInfo() 589 | end 590 | 591 | local function getBBModels() 592 | local bbmodels = {} 593 | for _,layer in pairs(models:getChildren()) do 594 | local name = layer:getName() 595 | if animations[name] then 596 | bbmodels[name] = animations[name] 597 | else 598 | for _,layer2 in pairs(layer:getChildren()) do 599 | local name2 = name.."."..layer2:getName() 600 | bbmodels[name2] = animations[name2] 601 | end 602 | end 603 | end 604 | 605 | if next(bbmodels) == nil then 606 | error("No blockbench models containing animations were found.") 607 | end 608 | 609 | local aList = {} 610 | local oldList = {} 611 | for _, value in pairs(exList) do 612 | aList[value] = {active = false,list = {},type = "excluAnims"} 613 | oldList[value] = {active = false} 614 | end 615 | 616 | for _, value in pairs(incList) do 617 | aList[value] = {active = false,list = {},type = "incluAnims"} 618 | oldList[value] = {active = false} 619 | end 620 | 621 | aList.attackR.stop = true 622 | aList.attackL.stop = true 623 | aList.mineR.stop = true 624 | aList.mineL.stop = true 625 | aList.hurt.stop = true 626 | 627 | local o = setmetatable( 628 | { 629 | bbmodels=bbmodels, 630 | aList=aList, 631 | oldList=oldList, 632 | toggleState = {excluAnims="",incluAnims=""}, 633 | oldToggle = {excluAnims="",incluAnims=""}, 634 | toggleDiff = toggleDiff, 635 | overriders = {excluAnims = {},incluAnims = {}, allAnims = {}}, 636 | overrideStates = {excluAnims = false,incluAnims = false, allAnims = false}, 637 | oldoverStates = {excluAnims = false,incluAnims = false, allAnims = false}, 638 | setOverrides = {excluAnims = false,incluAnims = false, allAnims = false}, 639 | diff = diff 640 | }, 641 | controllerMT) 642 | objects[1] = o 643 | addAnims(bbmodels,o) 644 | end 645 | 646 | function events.entity_init() 647 | if #objects == 0 then getBBModels() end 648 | end 649 | 650 | local firstRun = true 651 | ---@param ... table 652 | function anims:addBBModel(...) 653 | local bbmodels = {...} 654 | if next(bbmodels) == nil then 655 | error("The blockbench model provided couldn't be found because it has no animations, or because of a typo or some other mistake.",2) 656 | end 657 | 658 | local aList = {} 659 | local oldList = {} 660 | for _, value in pairs(exList) do 661 | aList[value] = {active = false,list = {},type = "excluAnims"} 662 | oldList[value] = {active = false} 663 | end 664 | 665 | for _, value in pairs(incList) do 666 | aList[value] = {active = false,list = {},type = "incluAnims"} 667 | oldList[value] = {active = false} 668 | end 669 | 670 | aList.attackR.stop = true 671 | aList.attackL.stop = true 672 | aList.mineR.stop = true 673 | aList.mineL.stop = true 674 | aList.hurt.stop = true 675 | 676 | local o = setmetatable( 677 | { 678 | bbmodels=bbmodels, 679 | aList=aList, 680 | oldList=oldList, 681 | toggleState = {excluAnims="",incluAnims=""}, 682 | oldToggle = {excluAnims="",incluAnims=""}, 683 | toggleDiff = toggleDiff, 684 | overriders = {excluAnims = {},incluAnims = {}, allAnims = {}}, 685 | overrideStates = {excluAnims = false,incluAnims = false, allAnims = false}, 686 | oldoverStates = {excluAnims = false,incluAnims = false, allAnims = false}, 687 | setOverrides = {excluAnims = false,incluAnims = false, allAnims = false}, 688 | diff = diff 689 | }, 690 | controllerMT) 691 | objects[#objects+1] = o 692 | if #objects == 16 then 693 | error("The max amount of blockbench models (16) was reached. Do not put the code for adding blockbench models in a function, it will infinitely add blockbench models.",3) 694 | end 695 | if auto then addAnims(bbmodels,o) end 696 | return o 697 | end 698 | 699 | anims.controller = controller 700 | return anims 701 | -------------------------------------------------------------------------------- /anan/EZMount.lua: -------------------------------------------------------------------------------- 1 | -- V1 2 | -- Made by JimmyHelp 3 | -- Contains GS' entityAPI:getLocalHVelocity() function from GSExtensions 4 | 5 | local mounts = {} 6 | local mountList = {} 7 | 8 | local Entity = figuraMetatables.EntityAPI.__index 9 | function Entity:getLocalHVelocity() 10 | return matrices.mat4() 11 | :reset() 12 | :rotateY(self:getRot(client.getFrameTime()).y) 13 | :scale(vec(-1,1,-1)) 14 | :applyDir(self:getVelocity()) 15 | end 16 | 17 | local vehicle 18 | local currentMount = models:newPart("EmptyMount") 19 | local forward 20 | local up 21 | local down 22 | local still 23 | local backward 24 | local yawDiff = 0 25 | local lastYaw = 0 26 | local turnRight 27 | local turnLeft 28 | local rear 29 | local sprint 30 | 31 | function events.tick() 32 | vehicle = player:getVehicle() 33 | renderer:setRenderVehicle(true) 34 | for _,value in pairs(mountList) do 35 | if value == true then 36 | renderer:setRenderVehicle(false) 37 | end 38 | end 39 | if not vehicle then return end 40 | local velocity = vehicle:getLocalHVelocity() 41 | local yVel = velocity.y 42 | local bodyYaw = vehicle:isLiving() and vehicle:getBodyYaw()%360 or vehicle:getRot().y 43 | local yVelDet = vehicle:getType():find("minecart") and 0.1 or 0.001 44 | local sprinting = player:isSprinting() 45 | forward = velocity.z < 0 and ((yVel < yVelDet and yVel > -yVelDet) or yVel == 1) and not sprinting 46 | still = velocity:length() == 0 47 | backward = velocity.z > 0 and (yVel < 0.01 and yVel > -yVelDet) 48 | up = yVel > yVelDet and yVel ~= 1 49 | down = yVel < -yVelDet 50 | yawDiff = bodyYaw - lastYaw 51 | lastYaw = bodyYaw 52 | turnRight = (yawDiff > 1 and yawDiff < 200) or yawDiff < -200 53 | turnLeft = (yawDiff < -1 and yawDiff > -200) or yawDiff > 200 54 | rear = player:getVelocity().y > 0 and yVel == 0 55 | sprint = sprinting and not (down or up) 56 | end 57 | 58 | function events.world_render(delta) 59 | if not vehicle then return end 60 | currentMount:setPos(vehicle:getPos(delta)*16) 61 | if vehicle:isLiving()then 62 | currentMount:setRot(0,-vehicle:getBodyYaw(delta)) 63 | else 64 | currentMount:setRot(0,-vehicle:getRot(delta).y) 65 | end 66 | end 67 | 68 | local function getMount(name) 69 | if not vehicle then return false end 70 | return vehicle:getType():find(name) or vehicle:getName():find(name) 71 | end 72 | 73 | local textGuide = '§f\nlocal textureTable = {\n iron = textures["reference"],\n diamond = textures["reference"],\n golden = textures["reference"],\n leather = textures["reference"]\n}\n'.. 74 | "§6You can find the texture reference of your textures using §flogTable(textures:getTextures())§c" 75 | local repeti = "animations.bbmodelname.animationname" 76 | local animGuide = '§f\nlocal animationTable = {\n still = '..repeti..',\n forward = '..repeti..',\n backward = '..repeti..',\n up = '..repeti..',\n'.. 77 | ' down = '..repeti..',\n turnright = Animati'..repeti..',\n turnleft = '..repeti..',\n rear = '..repeti..',\n gallop = '..repeti..'\n}\n'.. 78 | "§6Unused animations can be deleted from the table.\nIf you don't know how to index an animation, check out the animation guide on the Figura wiki.§c" 79 | local function errorCheck(id,model,head,saddle,bag,armor,text,pass,anim,name) 80 | local which = name == "object" and "fourth" or "ninth" 81 | local switch = name == "object" and "third" or "eighth" 82 | if type(id) ~= "string" then 83 | error("§aCustom Script Warning: §6The value provided for the first param (vehicle id/name) is not a string, it must be an entity's id or name as a string.§c",3) 84 | end 85 | 86 | if type(model) ~= "ModelPart" then 87 | error("§aCustom Script Warning: §6The value provided for the second param (vehicle part) is not a modelpart, check the spelling and modelpart path to confirm it's correct.§c",3) 88 | end 89 | 90 | if type(anim) ~= "table" and type(anim) ~= "nil" then 91 | error("§aCustom Script Warning: §6The value provided for the "..which.." param (animations) is not a table. It should be a table formatted like this:"..animGuide,3) 92 | elseif type(anim) ~= "nil" then 93 | for key,value in pairs(anim) do 94 | if type(key) ~= "string" then 95 | error("§aCustom Script Warning: §6The table provided for the "..which.." param (animations) is set up incorrectly, as the keys are not strings. The table should be formatted like this: ".. 96 | animGuide,3) 97 | end 98 | if type(value) ~= "Animation" then 99 | error('§aCustom Script Warning: §6The value for the '..key..' animation is not an animation, check its spelling to confirm it\'s correct. The table should be formatted like this: '.. 100 | animGuide,3) 101 | end 102 | end 103 | end 104 | 105 | local testing = { 106 | {head,"third","head"}, 107 | {saddle,"fourth","saddle"}, 108 | {bag,"fifth","bag"}, 109 | {armor,"sixth","armor"}, 110 | {pass,switch,"passenger"} 111 | } 112 | 113 | for _,value in pairs(testing) do 114 | if type(value[1]) == "table" then 115 | if next(value[1]) == nil then 116 | error("§aCustom Script Warning: §6The value provided for the "..value[2].." param ("..value[3].." part) is an empty table, check the spelling and modelpart paths of its contents to confirm it's correct.§c",3) 117 | else 118 | for num, part in pairs(value[1]) do 119 | if type(part) ~= "ModelPart" then 120 | error("§aCustom Script Warning: §6The value at position "..num.." of the "..value[2].." param's ("..value[3].." part) table is not a modelpart, check the spelling and modelpart path to confirm it's correct.§c",3) 121 | end 122 | end 123 | end 124 | elseif type(value[1]) ~= "ModelPart" and type(value[1]) ~= "nil" then 125 | error("§aCustom Script Warning: §6The value provided for the "..value[2].." param ("..value[3].." part) is not a modelpart or a table, check the spelling and modelpart path to confirm it's correct.§c",3) 126 | end 127 | end 128 | 129 | if type(text) ~= "table" and (armor and type(text) == "nil") then 130 | error("§aCustom Script Warning: §6The value provided for the seventh param (armor textures) is not a table. It should be a table formatted like this:"..textGuide,3) 131 | elseif type(text) ~= "nil" then 132 | for key,value in pairs(text) do 133 | if type(key) ~= "string" then 134 | error('§aCustom Script Warning: §6The table provided for the seventh param (armor textures) is set up incorrectly, as the keys are not strings. The table should be formatted like this: '.. 135 | textGuide,3) 136 | end 137 | if type(value) ~= "Texture" then 138 | error('§aCustom Script Warning: §6The value for the '..key..' armor is not a texture object. The table should be formatted like this: '.. 139 | textGuide,3) 140 | end 141 | end 142 | end 143 | end 144 | 145 | ---@param id string 146 | ---@param modelpart ModelPart | table 147 | ---@param headpart ModelPart | table 148 | ---@param saddlepart ModelPart | table 149 | ---@param bagpart ModelPart | table 150 | ---@param armorpart ModelPart | table 151 | ---@param armortext table 152 | ---@param passenger ModelPart | table 153 | ---@param anim table 154 | function mounts:newLivingMount(id,modelpart,headpart,saddlepart,bagpart,armorpart,armortext,passenger,anim) 155 | errorCheck(id,modelpart,headpart,saddlepart,bagpart,armorpart,armortext,passenger,anim) 156 | modelpart:setParentType("World"):setVisible(false):scale(-1,1,-1) 157 | local saddles = type(saddlepart)=="table" and saddlepart or {saddlepart} 158 | local bags = type(bagpart) and bagpart or {bagpart} 159 | local head = type(headpart)=="table" and headpart or {headpart} 160 | local armor = type(armorpart)=="table" and armorpart or {armorpart} 161 | local pass = type(passenger)=="table" and passenger or {passenger} 162 | mountList[id] = false 163 | function events.tick() 164 | if not vehicle then modelpart:setVisible(false) return end 165 | if not getMount(id) then mountList[id] = false return end 166 | currentMount = modelpart 167 | modelpart:setVisible(getMount(id) or false):setLight(world.getBlockLightLevel(vehicle:getPos()),world.getSkyLightLevel(vehicle:getPos())) 168 | mountList[id] = true 169 | for _,value in pairs(saddles) do 170 | value:setVisible(vehicle:getControllingPassenger()==player) 171 | end 172 | for _,value in pairs(bags) do 173 | value:setVisible(vehicle:getNbt().Items or false) 174 | end 175 | for _,value in pairs(armor) do 176 | value:setVisible(vehicle:getNbt().ArmorItems[3].id or false) 177 | if vehicle:getNbt().ArmorItems[3].id ~= nil and armortext then 178 | value:setPrimaryTexture("Custom",armortext[vehicle:getNbt().ArmorItems[3].id:gsub(".-:", ""):match("^[^_]+")]) 179 | if vehicle:getNbt().ArmorItems[3].tag then 180 | value:setColor(vectors.intToRGB(player:getVehicle():getNbt().ArmorItems[3].tag.display.color)) 181 | else 182 | value:setColor(vehicle:getNbt().ArmorItems[3].id:gsub(".-:", ""):match("^[^_]+")=="leather" and vec(79/255,50/255,14/255) or vec(1,1,1)) 183 | end 184 | end 185 | end 186 | for _,value in pairs(pass) do 187 | value:setVisible(#vehicle:getPassengers() > 1) 188 | end 189 | if anim then 190 | if anim.forward then anim.forward:setPlaying(forward) end 191 | if anim.backward then anim.backward:setPlaying(backward) end 192 | if anim.still then anim.still:setPlaying(still) end 193 | if anim.up then anim.up:setPlaying(up or (down and not anim.down)) end 194 | if anim.down then anim.down:setPlaying(down) end 195 | if anim.turnright then anim.turnright:setPlaying(turnRight) end 196 | if anim.turnleft then anim.turnleft:setPlaying(turnLeft) end 197 | if anim.rear then if rear then anim.rear:play() end end 198 | if anim.gallop then anim.gallop:setPlaying(sprint) end 199 | end 200 | end 201 | function events.render(delta) 202 | if not vehicle then return end 203 | if not getMount(id) or vehicle:getControllingPassenger() == nil then return end 204 | for _,value in pairs(head) do 205 | value:setOffsetRot(math.clamp(-player:getRot(delta).x,-40,30)) 206 | end 207 | end 208 | end 209 | 210 | ---@param id string 211 | ---@param modelpart ModelPart | table 212 | ---@param passenger ModelPart | table 213 | ---@param anim table 214 | function mounts:newObjectMount(id,modelpart,passenger,anim) 215 | errorCheck(id,modelpart,_,_,_,_,_,passenger,anim,"object") 216 | modelpart:setParentType("World"):setVisible(false):scale(-1,1,-1) 217 | mountList[id] = false 218 | local pass = type(passenger)=="table" and passenger or {passenger} 219 | function events.tick() 220 | if not vehicle then modelpart:setVisible(false) return end 221 | if not getMount(id) then mountList[id] = false return end 222 | currentMount = modelpart 223 | modelpart:setVisible(getMount(id) or false):setLight(world.getBlockLightLevel(vehicle:getPos()),world.getSkyLightLevel(vehicle:getPos())) 224 | mountList[id] = true 225 | for _,value in pairs(pass) do 226 | value:setVisible(#vehicle:getPassengers() > 1) 227 | end 228 | if anim then 229 | if anim.forward then anim.forward:setPlaying(forward) end 230 | if anim.backward then anim.backward:setPlaying(backward) end 231 | if anim.still then anim.still:setPlaying(still) end 232 | if anim.up then anim.up:setPlaying(up or (down and not anim.down)) end 233 | if anim.down then anim.down:setPlaying(down) end 234 | if anim.turnright then anim.turnright:setPlaying(turnRight) end 235 | if anim.turnleft then anim.turnleft:setPlaying(turnLeft) end 236 | if anim.rear then if rear then anim.rear:play() end end 237 | if anim.gallop then anim.gallop:setPlaying(sprint) end 238 | end 239 | end 240 | end 241 | 242 | return mounts -------------------------------------------------------------------------------- /anan/LICENSE/CatMaid/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Gakuto1112 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /anan/LICENSE/EZMount/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 JimmyHelp 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /anan/LICENSE/Figura-eye-tracking-API/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 OvOla2 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /anan/LICENSE/JimmyAnims/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 JimmyHelp 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /anan/LICENSE/SittingAPI/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Gakuto1112 4 | Copyright (c) 2025 OvOla2 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /anan/LICENSE/Wet-control/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Gakuto1112 4 | Copyright (c) 2025 OvOla2 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | -------------------------------------------------------------------------------- /anan/LICENSE/chatbubble/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2025 OvOla2 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /anan/LICENSE/figura-physbone-api/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 ChloeSpacedOut 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /anan/SittingAPI.lua: -------------------------------------------------------------------------------- 1 | ---- SittingAPI.lua ---- 2 | ---- [OVERRIDE NOTICE] 该脚本基于CatMaid项目中sit_down.lua二次开发 3 | ---- Original Author: Gakuto1112 4 | ---- License: MIT 5 | 6 | ---@class SittingAPI 坐立控制API 7 | SittingAPI = { 8 | isSitting = false, 9 | _initialized = false, 10 | _isSynced = false 11 | } 12 | 13 | --- 初始化API 14 | function SittingAPI.init() 15 | if SittingAPI._initialized then return end 16 | 17 | -- 注册按键绑定 18 | keybinds:newKeybind("坐立切换", "key.keyboard.n") 19 | :onPress(function() 20 | if SittingAPI.isSitting then 21 | SittingAPI.standUp() 22 | else 23 | if SittingAPI.canSit() then 24 | SittingAPI.sitDown() 25 | end 26 | end 27 | end) 28 | 29 | -- 注册受伤事件 30 | events.DAMAGE:register(function() 31 | if SittingAPI.isSitting then 32 | SittingAPI.standUp() 33 | end 34 | end) 35 | 36 | -- 检测移动自动站立 37 | events.TICK:register(function() 38 | if SittingAPI.isSitting and player:isMoving(true) then 39 | SittingAPI.standUp() 40 | end 41 | end) 42 | 43 | SittingAPI._initialized = true 44 | end 45 | 46 | -- Ping同步函数 47 | function pings.syncSitState(state) 48 | if not SittingAPI._isSynced then 49 | SittingAPI._isSynced = true 50 | SittingAPI.isSitting = state 51 | 52 | -- 仅控制动画 53 | if state then 54 | animations.model.sit_down:play() 55 | animations.model.stand_up:stop() 56 | else 57 | animations.model.stand_up:play() 58 | animations.model.sit_down:stop() 59 | end 60 | 61 | SittingAPI._isSynced = false 62 | end 63 | end 64 | 65 | --- 检查坐下条件 66 | function SittingAPI.canSit() 67 | if player then 68 | return player:getPose() == "STANDING" and 69 | player:isOnGround() and 70 | not player:getVehicle() and 71 | not player:isMoving(true) 72 | else 73 | return false 74 | end 75 | end 76 | 77 | --- 执行坐下 78 | function SittingAPI.sitDown() 79 | if not SittingAPI.canSit() then return end 80 | 81 | -- 更新本地状态 82 | SittingAPI.isSitting = true 83 | 84 | -- 播放本地动画 85 | animations.model.sit_down:play() 86 | animations.model.stand_up:stop() 87 | 88 | -- 网络同步 89 | if not SittingAPI._isSynced then 90 | pings.syncSitState(true) 91 | end 92 | end 93 | 94 | --- 执行站立 95 | function SittingAPI.standUp() 96 | -- 更新本地状态 97 | SittingAPI.isSitting = false 98 | 99 | -- 播放本地动画 100 | animations.model.stand_up:play() 101 | animations.model.sit_down:stop() 102 | 103 | -- 网络同步 104 | if not SittingAPI._isSynced then 105 | pings.syncSitState(false) 106 | end 107 | end 108 | 109 | --- 获取当前状态 110 | function SittingAPI.getState() 111 | return SittingAPI.isSitting 112 | end 113 | 114 | return SittingAPI 115 | -------------------------------------------------------------------------------- /anan/Wet-control.lua: -------------------------------------------------------------------------------- 1 | ---- Wet-control.lua 2 | ---- [OVERRIDE NOTICE] 该脚本基于CatMaid项目中wet.lua二次开发 3 | ---- Original Author: Gakuto1112 4 | ---- Source: https://github.com/Gakuto1112/CatMaid 5 | ---- License: MIT 6 | 7 | ---@class WetClass 控制润湿功能的类 8 | ---@field WetCount integer 润湿程度计数器 9 | WetClass = { 10 | WetCount = 0, 11 | _shakeCooldown = 0, 12 | _isShaking = false, 13 | -- 粒子参数优化 14 | SHAKE_PARTICLES = 48, -- 甩动时生成的粒子数量(原8→48) 15 | PARTICLE_SPREAD = 1.2, -- 粒子散布范围(原0.7→1.2) 16 | DRIP_PARTICLES = 3 -- 干燥阶段每次生成的粒子数量 17 | } 18 | 19 | events.TICK:register(function() 20 | if client:isPaused() then return end -- 游戏暂停时跳过逻辑 21 | 22 | if player:isWet() then 23 | -- [湿润状态] 重置所有干燥相关状态 24 | WetClass.WetCount = player:isInWater() and 1200 or math.min(WetClass.WetCount + 4, 1200) 25 | WetClass._shakeCooldown = 0 26 | WetClass._isShaking = false 27 | elseif WetClass.WetCount > 0 then 28 | local pos = player:getPos() 29 | 30 | -- [干燥阶段] 常规粒子效果(优化粒子数量计算) 31 | if not WetClass._isShaking and WetClass.WetCount % 6 == 0 then 32 | for _ = 1, WetClass.DRIP_PARTICLES do 33 | particles:newParticle( 34 | "minecraft:falling_water", 35 | pos.x + (math.random() - 0.5) * 0.8, 36 | pos.y + math.random() * 0.3 + 0.5, 37 | pos.z + (math.random() - 0.5) * 0.8 38 | ) 39 | end 40 | end 41 | 42 | -- 自动甩水逻辑(添加粒子生成) 43 | if not WetClass._isShaking then 44 | WetClass._shakeCooldown = WetClass._shakeCooldown + 1 45 | 46 | if WetClass._shakeCooldown >= 40 then 47 | animations.model.shake:play() 48 | -- 新增抖水音效播放 49 | sounds:playSound("entity.wolf.shake", player:getPos()) 50 | 51 | -- 甩动时生成爆发式粒子 52 | for _ = 1, WetClass.SHAKE_PARTICLES do 53 | particles:newParticle( 54 | "minecraft:splash", -- 改为更明显的水花粒子 55 | pos.x + (math.random() - 0.5) * WetClass.PARTICLE_SPREAD, 56 | pos.y + math.random() * 0.5 + 0.5, 57 | pos.z + (math.random() - 0.5) * WetClass.PARTICLE_SPREAD, 58 | 0, 0.2, 0 -- 添加初始速度 59 | ) 60 | end 61 | 62 | WetClass._isShaking = true 63 | WetClass.WetCount = 0 64 | WetClass._shakeCooldown = 0 65 | else 66 | WetClass.WetCount = WetClass.WetCount - 1 67 | end 68 | end 69 | end 70 | 71 | -- 动画结束检测(增加暂停状态过滤) 72 | if WetClass._isShaking and animations.model.shake:getPlayState() == "STOPPED" then 73 | WetClass._isShaking = false 74 | end 75 | end) 76 | 77 | return WetClass 78 | -------------------------------------------------------------------------------- /anan/anan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvOla2/AnAn-Figura-avatar/294b7ea1db5f887ff3d3a72fe1358c92bd674325/anan/anan.png -------------------------------------------------------------------------------- /anan/avatar.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "an an", 3 | "description": "A Mascot Of Anthon Open Source Community", 4 | "authors": [ 5 | "Mainmodel(An-an & Tong-tong bbmodel):\nOvOla2\nScripts:\nEZAnims & EZMount - JimmyHelp\nphysBoneAPI - ChloeSpacedOut & superpowers04\nWet-control & SittingAPI - Gakuto1112(Original Author) & OvOla2(Derivative Author)\neye-tracking-api - OvOla2\nchatbubble - OvOla2 6 | " 7 | ], 8 | "color": "#99bbee" 9 | } 10 | -------------------------------------------------------------------------------- /anan/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvOla2/AnAn-Figura-avatar/294b7ea1db5f887ff3d3a72fe1358c92bd674325/anan/avatar.png -------------------------------------------------------------------------------- /anan/chatBubble.bbmodel: -------------------------------------------------------------------------------- 1 | {"meta":{"format_version":"4.10","model_format":"free","box_uv":false},"name":"chatBubble","model_identifier":"","visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":32,"height":32},"elements":[],"outliner":[{"name":"Camera_speech","origin":[0,38,0],"color":0,"uuid":"f6f0a301-2803-4623-7a03-165792724f48","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":true,"children":[]}],"textures":[]} -------------------------------------------------------------------------------- /anan/chatbubble.lua: -------------------------------------------------------------------------------- 1 | --[[ 2 | Figura Chat Bubble Module v1.0 3 | ]] 4 | 5 | local config = { 6 | bubbleLifetime = 100, 7 | fadeTime = 20, 8 | maxMessageLength = 64, 9 | maxBubbles = 3, 10 | localIndicator = "\\" 11 | } 12 | 13 | -- 保持原始存储结构 14 | local activeBubbles = {} 15 | local modelRoot = models.chatBubble.Camera_speech 16 | 17 | -- 保持原始updateBubble逻辑 18 | local function updateBubble(bubble, offset) 19 | -- 与原代码完全一致 20 | local baseY = offset or 0 21 | bubble.textDisplay:setPos( 22 | 0, 23 | baseY + (bubble.textDims.y-1)/2, 24 | -0.001 25 | ) 26 | end 27 | 28 | -- 修改newBubble直接绑定发送者 29 | local function newBubble(sender, text) 30 | -- 清理旧气泡(与原逻辑一致) 31 | if #activeBubbles >= config.maxBubbles then 32 | activeBubbles[1].textDisplay:remove() 33 | table.remove(activeBubbles, 1) 34 | end 35 | 36 | -- 文本计算保持原样 37 | local rawDims = client.getTextDimensions(text, 200, true) 38 | local textDims = vec( 39 | math.max(rawDims[1], 10), 40 | math.max(rawDims[2], 12) 41 | ) 42 | 43 | -- 创建带发送者绑定的气泡 44 | local bubble = { 45 | sender = sender, -- 直接存储玩家对象 46 | textDisplay = modelRoot:newText("bubble_"..#activeBubbles+1) 47 | :setText(text:sub(1, config.maxMessageLength)) 48 | :alignment("CENTER") 49 | :setWidth(200) 50 | :setShadow(true) 51 | :setScale(0.5), 52 | textDims = textDims, 53 | age = 0 54 | } 55 | 56 | updateBubble(bubble) 57 | table.insert(activeBubbles, bubble) 58 | return bubble 59 | end 60 | 61 | -- 简化Ping函数(自动捕获发送者) 62 | function pings.addBubble(text) 63 | -- 直接使用内置的sender变量 64 | newBubble(sender, text) -- Figura自动注入sender对象 65 | end 66 | 67 | -- 保持原始事件处理 68 | function events.CHAT_SEND_MESSAGE(message) 69 | local isLocal = message:sub(1, #config.localIndicator) == config.localIndicator 70 | local isCommand = message:sub(1,1) == "/" 71 | 72 | if isCommand then 73 | return isLocal and nil or message 74 | end 75 | 76 | if isLocal then 77 | pings.addBubble(message:sub(#config.localIndicator+1)) 78 | return nil 79 | end 80 | 81 | pings.addBubble(message) 82 | return message 83 | end 84 | 85 | -- 保持原始生命周期管理 86 | function events.TICK() 87 | for i = #activeBubbles, 1, -1 do 88 | activeBubbles[i].age = activeBubbles[i].age + 1 89 | if activeBubbles[i].age >= config.bubbleLifetime then 90 | activeBubbles[i].textDisplay:remove() 91 | table.remove(activeBubbles, i) 92 | end 93 | end 94 | end 95 | 96 | -- 修改渲染逻辑(直接使用sender对象) 97 | function events.RENDER(delta) 98 | for _, bubble in ipairs(activeBubbles) do 99 | if bubble.sender and bubble.sender:isLoaded() then 100 | -- 动态位置计算 101 | local headPos = bubble.sender:getPos(delta):add(0, bubble.sender:getEyeHeight() * 1.2, 0) 102 | local camPos = matrices.camera:invertTransformPoint(headPos) 103 | bubble.textDisplay:setMatrix(matrices.model:translate(camPos)) 104 | end 105 | 106 | -- 保持原始淡出逻辑 107 | if bubble.age > config.bubbleLifetime - config.fadeTime then 108 | local progress = (bubble.age - (config.bubbleLifetime - config.fadeTime)) / config.fadeTime 109 | bubble.textDisplay:opacity(1 - math.min(progress, 1)) 110 | end 111 | end 112 | end 113 | 114 | return config 115 | -------------------------------------------------------------------------------- /anan/ear.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvOla2/AnAn-Figura-avatar/294b7ea1db5f887ff3d3a72fe1358c92bd674325/anan/ear.png -------------------------------------------------------------------------------- /anan/eye-tracking-api.lua: -------------------------------------------------------------------------------- 1 | -- eye-tracking-api.lua 2 | local M = {} -- 模块主表 3 | 4 | -- ======================= 默认配置 ======================= 5 | local config = { 6 | -- [!] 默认模型路径(当主脚本不提供配置时使用) 7 | left_eye_path = "model.root.Torso.Head.Eyes.lefteye.leftpupil", 8 | right_eye_path = "model.root.Torso.Head.Eyes.righteye.rightpupil", 9 | head_part = "Head", -- 默认头部部件名称 10 | 11 | -- [!] 默认行为参数 12 | max_offset = 0.5, -- 默认瞳孔最大偏移 13 | sensitivity = 35, -- 默认灵敏度 14 | update_interval = 2, -- 默认更新间隔 15 | debug_mode = false -- 默认关闭调试 16 | } 17 | 18 | -- ======================= 工具函数 ======================= 19 | -- 数值钳制函数:确保数值在[min, max]范围内 20 | -- @param value 输入值 21 | -- @param min 最小值 22 | -- @param max 最大值 23 | -- @return 钳制后的数值 24 | local function clamp(value, min, max) 25 | return value < min and min or (value > max and max or value) 26 | end 27 | 28 | -- ================= 模型部件解析函数 ==================== 29 | -- 根据路径字符串查找模型部件(核心实现) 30 | -- @param path 点分隔的层级路径(如"model.head.left_eye") 31 | -- @return 模型部件对象 或 nil(找不到时) 32 | local function resolve_part(path) 33 | -- 实现方案1:使用Blockbench官方API(需取消注释) 34 | -- return models:findPart(path) -- 注意API函数名可能为findPart/find_part 35 | 36 | -- 实现方案2:通用层级遍历(当前启用) 37 | local parts = {} 38 | for segment in path:gmatch("[^.]+") do -- 分割路径为层级数组 39 | table.insert(parts, segment) 40 | end 41 | local current = models -- 从根模型对象开始 42 | for _, part in ipairs(parts) do 43 | current = current[part] 44 | if not current then 45 | print("[ERROR] 路径解析失败:", part) -- 打印具体失效节点 46 | return nil 47 | end 48 | end 49 | return current 50 | end 51 | 52 | -- ====================== 初始化函数 ===================== 53 | -- 模块初始化入口(主脚本必须调用) 54 | -- @param user_config 用户配置表(可覆盖默认值) 55 | function M.init(user_config) 56 | -- 合并用户配置与默认配置 57 | if user_config then 58 | for k, v in pairs(user_config) do 59 | config[k] = v -- 用户配置优先 60 | end 61 | end 62 | 63 | -- [!] 关键模型部件获取 64 | M.left_pupil = resolve_part(config.left_eye_path) -- 解析左眼路径 65 | M.right_pupil = resolve_part(config.right_eye_path) -- 解析右眼路径 66 | M.head_part = vanilla_model[config.head_part] -- 获取头部部件引用 67 | 68 | -- 错误校验(中断并提示具体问题) 69 | assert(M.left_pupil, "左眼路径无效: "..config.left_eye_path.."\n请检查:\n1.路径拼写\n2.模型层级\n3.部件可见性") 70 | assert(M.right_pupil, "右眼路径无效: "..config.right_eye_path) 71 | assert(M.head_part, "头部部件不存在: "..config.head_part.."\n确认部件是否在vanilla_model中注册") 72 | end 73 | 74 | -- =================== 瞳孔偏移计算逻辑 =================== 75 | -- 根据头部旋转计算瞳孔偏移量 76 | -- @param rotationY 头部Y轴旋转角度(-180~180度) 77 | -- @return x, y, z 三维偏移(当前仅使用X轴) 78 | local function calculate_pupil_offset(rotationY) 79 | -- 归一化处理:将角度映射到[-1,1]范围 80 | local normalized = clamp(rotationY / config.sensitivity, -1, 1) 81 | -- X轴取反实现自然跟随效果 82 | return -normalized * config.max_offset, 0, 0 83 | end 84 | 85 | -- ==================== 游戏刻事件处理 ==================== 86 | -- 每帧执行的主逻辑 87 | function events.tick() 88 | if not (M.left_pupil and M.right_pupil) then return end -- 安全防护 89 | 90 | -- 更新计时器 91 | M.pupilUpdateTimer = (M.pupilUpdateTimer or 0) + 1 92 | if M.pupilUpdateTimer >= config.update_interval then 93 | -- 获取头部Y轴旋转角度 94 | local headRotationY = M.head_part:getOriginRot().y 95 | 96 | -- 计算偏移量 97 | local x, y, z = calculate_pupil_offset(headRotationY) 98 | 99 | -- 应用瞳孔位置 100 | M.left_pupil:pos(x, y, z) 101 | M.right_pupil:pos(x, y, z) 102 | 103 | -- 调试输出 104 | if config.debug_mode then 105 | print(string.format("瞳孔偏移量: X=%.2f (头部旋转 %.1f 度)", x, headRotationY)) 106 | -- 可添加更多调试信息: 107 | -- print("当前配置:", textutils.serialise(config)) 108 | end 109 | 110 | M.pupilUpdateTimer = 0 -- 重置计时器 111 | end 112 | end 113 | 114 | return M 115 | -------------------------------------------------------------------------------- /anan/hair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvOla2/AnAn-Figura-avatar/294b7ea1db5f887ff3d3a72fe1358c92bd674325/anan/hair.png -------------------------------------------------------------------------------- /anan/minecart.bbmodel: -------------------------------------------------------------------------------- 1 | {"meta":{"format_version":"4.10","model_format":"figura","box_uv":true},"visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":64,"height":64},"elements":[{"name":"bottom","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-10,12,-20],"to":[10,28,-18],"autouv":0,"color":0,"origin":[0,0,0],"faces":{"north":{"uv":[44,0,64,16],"texture":1},"east":{"uv":[0,8,2,24],"texture":1},"south":{"uv":[0,0,0,0],"texture":null},"west":{"uv":[2,8,4,24],"texture":1},"up":{"uv":[64,22,44,20],"texture":1},"down":{"uv":[64,22,44,24],"texture":1}},"type":"cube","uuid":"8bd32d50-5523-8d21-0bdc-2501f0b05062"},{"name":"front","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[1,2,-1],"to":[17,4,1],"autouv":0,"color":0,"origin":[0,0,0],"uv_offset":[0,18],"faces":{"north":{"uv":[0,0,0,0],"texture":null},"east":{"uv":[16,2,18,4],"texture":1},"south":{"uv":[0,2,16,4],"texture":1},"west":{"uv":[16,0,18,2],"texture":1},"up":{"uv":[0,0,0,0],"texture":null},"down":{"uv":[0,0,0,0],"texture":null}},"type":"cube","uuid":"11076f04-906c-73ed-7995-011279d1472b"},{"name":"back","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-17,2,-1],"to":[-1,4,1],"autouv":0,"color":0,"origin":[0,0,0],"uv_offset":[0,60],"faces":{"north":{"uv":[0,0,0,0],"texture":null},"east":{"uv":[16,4,18,6],"texture":1},"south":{"uv":[0,6,16,8],"texture":1},"west":{"uv":[16,6,18,8],"texture":1},"up":{"uv":[0,0,0,0],"texture":null},"down":{"uv":[0,0,0,0],"texture":null}},"type":"cube","uuid":"e3c851c2-9e91-3975-0c22-6a6d40583050"},{"name":"right","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-8,2,-8],"to":[8,4,-6],"autouv":0,"color":0,"origin":[0,0,0],"uv_offset":[1,23],"faces":{"north":{"uv":[0,0,0,0],"texture":null},"east":{"uv":[0,0,0,0],"texture":null},"south":{"uv":[18,2,34,4],"texture":1},"west":{"uv":[0,0,0,0],"texture":null},"up":{"uv":[0,0,0,0],"texture":null},"down":{"uv":[0,0,0,0],"texture":null}},"type":"cube","uuid":"5f3fa244-fcf1-7d05-aa9b-ed6a50b3b5b9"},{"name":"left","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-8,2,6],"to":[8,4,8],"autouv":0,"color":0,"origin":[0,0,0],"uv_offset":[20,0],"faces":{"north":{"uv":[0,0,0,0],"texture":null},"east":{"uv":[0,0,0,0],"texture":null},"south":{"uv":[18,0,34,2],"texture":1},"west":{"uv":[0,0,0,0],"texture":null},"up":{"uv":[0,0,0,0],"texture":null},"down":{"uv":[0,0,0,0],"texture":null}},"type":"cube","uuid":"354130f5-110d-531e-31fe-3f2b501d7274"},{"name":"main","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-7,5.9,-9.5],"to":[-1,11.9,-3.5],"autouv":0,"color":0,"origin":[-4,8.9,-6.5],"faces":{"north":{"uv":[0,12,12,24],"texture":0},"east":{"uv":[24,12,36,24],"texture":0},"south":{"uv":[12,0,24,12],"texture":0},"west":{"uv":[12,12,24,24],"texture":0},"up":{"uv":[24,0,36,12],"texture":0},"down":{"uv":[0,0,12,12],"texture":0}},"type":"cube","uuid":"8596f467-b811-1305-6240-75e7adc2bdad"},{"name":"face1","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-3.5,7.4,-9.6],"to":[-1.5,9.4,-9.6],"autouv":0,"color":0,"origin":[-2.5,8.4,-9.6],"uv_offset":[7,52],"faces":{"north":{"uv":[0,24,6,30],"texture":0},"east":{"uv":[0,64,0,64],"texture":0},"south":{"uv":[6,24,12,30],"texture":0},"west":{"uv":[0,64,0,64],"texture":0},"up":{"uv":[0,64,0,64],"texture":0},"down":{"uv":[0,64,0,64],"texture":0}},"type":"cube","uuid":"acff81c9-516d-d51e-b9f2-3220aedb9134"},{"name":"face2","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-6.5,7.4,-9.6],"to":[-4.5,9.4,-9.6],"autouv":0,"color":0,"rotation":[0,0,-180],"origin":[-5.5,8.4,-9.6],"uv_offset":[7,52],"faces":{"north":{"uv":[0,24,6,30],"texture":0},"east":{"uv":[0,64,0,64],"texture":0},"south":{"uv":[6,24,12,30],"texture":0},"west":{"uv":[0,64,0,64],"texture":0},"up":{"uv":[0,64,0,64],"texture":0},"down":{"uv":[0,64,0,64],"texture":0}},"type":"cube","uuid":"8aee3054-4609-93e2-0fe1-710be690c104"},{"name":"mouth","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-5,6.3,-10.1],"to":[-3,8.3,-9.1],"autouv":0,"color":0,"inflate":-0.5,"rotation":[0,0,-180],"origin":[-4,7.3,-9.6],"uv_offset":[7,52],"faces":{"north":{"uv":[14,24,21,31],"texture":0},"east":{"uv":[0,64,0,64],"texture":0},"south":{"uv":[21,24,28,31],"texture":0},"west":{"uv":[0,64,0,64],"texture":0},"up":{"uv":[0,64,0,64],"texture":0},"down":{"uv":[0,64,0,64],"texture":0}},"type":"cube","uuid":"8e08889b-fa2f-bcdd-78b1-fa8711bd7063"},{"name":"RightEarFront1","box_uv":true,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-2.32283,10.16671,-7.3],"to":[-0.57283,12.16671,-5.8],"autouv":0,"color":1,"rotation":[0,0,-25],"origin":[-1.44783,11.16671,-6.55],"uv_offset":[36,0],"faces":{"north":{"uv":[37,1,38,3],"texture":0},"east":{"uv":[36,1,37,3],"texture":0},"south":{"uv":[39,1,40,3],"texture":0},"west":{"uv":[38,1,39,3],"texture":0},"up":{"uv":[38,1,37,0],"texture":0},"down":{"uv":[39,0,38,1],"texture":0}},"type":"cube","uuid":"7760c3a9-b8cc-b1ec-5302-ea233b478484"},{"name":"RightEarFront2","box_uv":true,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-2.84407,9.52731,-7.25],"to":[-1.84407,15.27731,-6.25],"autouv":0,"color":7,"shade":false,"rotation":[0,0,-25],"origin":[-2.34407,12.40231,-6.75],"uv_offset":[39,0],"faces":{"north":{"uv":[40,1,41,6],"texture":0},"east":{"uv":[39,1,40,6],"texture":0},"south":{"uv":[42,1,43,6],"texture":0},"west":{"uv":[41,1,42,6],"texture":0},"up":{"uv":[41,1,40,0],"texture":0},"down":{"uv":[42,0,41,1],"texture":0}},"type":"cube","uuid":"3f47ad64-3886-b2d9-4205-56363d3f44da"},{"name":"RightEarFront3","box_uv":true,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-0.99838,10.73061,-7.25],"to":[0.00162,14.73061,-6.25],"autouv":0,"color":7,"shade":false,"rotation":[0,0,17.5],"origin":[-0.49838,12.73061,-6.75],"uv_offset":[43,0],"faces":{"north":{"uv":[44,1,45,5],"texture":0},"east":{"uv":[43,1,44,5],"texture":0},"south":{"uv":[46,1,47,5],"texture":0},"west":{"uv":[45,1,46,5],"texture":0},"up":{"uv":[0,0,0,0],"texture":null},"down":{"uv":[0,0,0,0],"texture":null}},"type":"cube","uuid":"82332670-376d-9ae0-78a8-883b2c6a418a"},{"name":"RightEarFront4","box_uv":true,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-0.80283,9.29045,-7.15],"to":[0.19717,11.29045,-6.15],"autouv":0,"color":7,"shade":false,"rotation":[0,0,-17.5],"origin":[-0.30283,10.29045,-6.65],"uv_offset":[47,0],"faces":{"north":{"uv":[48,1,49,3],"texture":0},"east":{"uv":[47,1,48,3],"texture":0},"south":{"uv":[50,1,51,3],"texture":0},"west":{"uv":[49,1,50,3],"texture":0},"up":{"uv":[0,0,0,0],"texture":null},"down":{"uv":[0,0,0,0],"texture":null}},"type":"cube","uuid":"fd39a77e-3ec4-30fd-ccea-a14280ef4e41"},{"name":"RightEarBack1","box_uv":true,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-1.73195,9.87558,-6.45],"to":[-0.73195,13.87558,-5.45],"autouv":0,"color":5,"origin":[-1.23195,11.87558,-5.95],"uv_offset":[0,1],"faces":{"north":{"uv":[1,2,2,6],"texture":0},"east":{"uv":[0,2,1,6],"texture":0},"south":{"uv":[3,2,4,6],"texture":0},"west":{"uv":[2,2,3,6],"texture":0},"up":{"uv":[2,2,1,1],"texture":0},"down":{"uv":[0,0,0,0],"texture":null}},"type":"cube","uuid":"6b4a29fe-e3aa-6c3e-0894-a3d2a89540f0"},{"name":"RightEarBack2","box_uv":true,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-2.54379,9.74893,-6.5],"to":[-1.54379,13.74893,-5.5],"autouv":0,"color":3,"rotation":[0,0,-11],"origin":[-2.04379,11.74893,-6],"uv_offset":[1,1],"faces":{"north":{"uv":[2,2,3,6],"texture":0},"east":{"uv":[1,2,2,6],"texture":0},"south":{"uv":[4,2,5,6],"texture":0},"west":{"uv":[3,2,4,6],"texture":0},"up":{"uv":[3,2,2,1],"texture":0},"down":{"uv":[4,1,3,2],"texture":0}},"type":"cube","uuid":"4ed5faa4-d0af-2a92-10d1-a8399b33de70"},{"name":"RightEarBack3","box_uv":true,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-1.18993,10.75117,-6.55],"to":[-0.18993,13.75117,-5.55],"autouv":0,"color":3,"rotation":[0,0,17.5],"origin":[-0.68993,12.25117,-6.05],"uv_offset":[0,1],"faces":{"north":{"uv":[1,2,2,5],"texture":0},"east":{"uv":[0,2,1,5],"texture":0},"south":{"uv":[3,2,4,5],"texture":0},"west":{"uv":[2,2,3,5],"texture":0},"up":{"uv":[2,2,1,1],"texture":0},"down":{"uv":[3,1,2,2],"texture":0}},"type":"cube","uuid":"68d12a24-b734-9931-1ef4-a591377f7275"},{"name":"LeftEarFront1","box_uv":true,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-7.52717,10.16671,-7.3],"to":[-5.77717,12.16671,-5.8],"autouv":0,"color":1,"mirror_uv":true,"rotation":[0,0,25],"origin":[-6.65217,11.16671,-6.55],"uv_offset":[36,0],"faces":{"north":{"uv":[38,1,37,3],"texture":0},"east":{"uv":[39,1,38,3],"texture":0},"south":{"uv":[40,1,39,3],"texture":0},"west":{"uv":[37,1,36,3],"texture":0},"up":{"uv":[37,1,38,0],"texture":0},"down":{"uv":[38,0,39,1],"texture":0}},"type":"cube","uuid":"d1b70dd3-28f2-68de-5978-1c961e0e4502"},{"name":"LeftEarFront2","box_uv":true,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-6.25593,9.52731,-7.25],"to":[-5.25593,15.27731,-6.25],"autouv":0,"color":7,"shade":false,"mirror_uv":true,"rotation":[0,0,25],"origin":[-5.75593,12.40231,-6.75],"uv_offset":[39,0],"faces":{"north":{"uv":[41,1,40,6],"texture":0},"east":{"uv":[42,1,41,6],"texture":0},"south":{"uv":[43,1,42,6],"texture":0},"west":{"uv":[40,1,39,6],"texture":0},"up":{"uv":[40,1,41,0],"texture":0},"down":{"uv":[41,0,42,1],"texture":0}},"type":"cube","uuid":"21f20e6b-b95a-eb0a-93df-313f065d57fd"},{"name":"LeftEarFront3","box_uv":true,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-8.10162,10.73061,-7.25],"to":[-7.10162,14.73061,-6.25],"autouv":0,"color":7,"shade":false,"mirror_uv":true,"rotation":[0,0,-17.5],"origin":[-7.60162,12.73061,-6.75],"uv_offset":[43,0],"faces":{"north":{"uv":[45,1,44,5],"texture":0},"east":{"uv":[46,1,45,5],"texture":0},"south":{"uv":[47,1,46,5],"texture":0},"west":{"uv":[44,1,43,5],"texture":0},"up":{"uv":[0,0,0,0],"texture":null},"down":{"uv":[0,0,0,0],"texture":null}},"type":"cube","uuid":"ce9ccf1d-4458-6a7c-69bd-e30799a78885"},{"name":"LeftEarFront4","box_uv":true,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-8.29717,9.29045,-7.15],"to":[-7.29717,11.29045,-6.15],"autouv":0,"color":7,"shade":false,"mirror_uv":true,"rotation":[0,0,17.5],"origin":[-7.79717,10.29045,-6.65],"uv_offset":[47,0],"faces":{"north":{"uv":[49,1,48,3],"texture":0},"east":{"uv":[50,1,49,3],"texture":0},"south":{"uv":[51,1,50,3],"texture":0},"west":{"uv":[48,1,47,3],"texture":0},"up":{"uv":[0,0,0,0],"texture":null},"down":{"uv":[0,0,0,0],"texture":null}},"type":"cube","uuid":"062b50ac-2dcf-74aa-71f7-d04151e09549"},{"name":"LeftEarBack1","box_uv":true,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-7.36805,9.87558,-6.45],"to":[-6.36805,13.87558,-5.45],"autouv":0,"color":5,"mirror_uv":true,"origin":[-6.86805,11.87558,-5.95],"uv_offset":[0,1],"faces":{"north":{"uv":[2,2,1,6],"texture":0},"east":{"uv":[3,2,2,6],"texture":0},"south":{"uv":[4,2,3,6],"texture":0},"west":{"uv":[1,2,0,6],"texture":0},"up":{"uv":[1,2,2,1],"texture":0},"down":{"uv":[0,0,0,0],"texture":null}},"type":"cube","uuid":"fc7c3f40-60d4-94cb-e3eb-0ad570937af2"},{"name":"LeftEarBack2","box_uv":true,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-6.55621,9.74893,-6.5],"to":[-5.55621,13.74893,-5.5],"autouv":0,"color":3,"rotation":[0,0,11],"origin":[-6.05621,11.74893,-6],"uv_offset":[1,1],"faces":{"north":{"uv":[2,2,3,6],"texture":0},"east":{"uv":[1,2,2,6],"texture":0},"south":{"uv":[4,2,5,6],"texture":0},"west":{"uv":[3,2,4,6],"texture":0},"up":{"uv":[3,2,2,1],"texture":0},"down":{"uv":[4,1,3,2],"texture":0}},"type":"cube","uuid":"5d964588-cc6b-09e0-8651-3bd5e252fe89"},{"name":"LeftEarBack3","box_uv":true,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-7.91007,10.75117,-6.55],"to":[-6.91007,13.75117,-5.55],"autouv":0,"color":3,"mirror_uv":true,"rotation":[0,0,-17.5],"origin":[-7.41007,12.25117,-6.05],"uv_offset":[0,1],"faces":{"north":{"uv":[2,2,1,5],"texture":0},"east":{"uv":[3,2,2,5],"texture":0},"south":{"uv":[4,2,3,5],"texture":0},"west":{"uv":[1,2,0,5],"texture":0},"up":{"uv":[1,2,2,1],"texture":0},"down":{"uv":[2,1,3,2],"texture":0}},"type":"cube","uuid":"c5cc4e24-574b-6a61-873b-cebaf4787147"},{"name":"tail1","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4.5,5.9,-4],"to":[-3.5,6.9,1],"autouv":0,"color":0,"origin":[-4,6.4,-4],"uv_offset":[52,58],"faces":{"north":{"uv":[62,63,63,64],"texture":0},"east":{"uv":[59,57,64,58],"texture":0},"south":{"uv":[63,63,64,64],"texture":0},"west":{"uv":[59,56,64,57],"texture":0},"up":{"uv":[64,63,63,58],"texture":0},"down":{"uv":[63,58,62,63],"texture":0}},"type":"cube","uuid":"e30360a1-44b0-d75e-8ee1-6532d2c817f9"},{"name":"tail2","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-6.3765,5.9,0.02598],"to":[-5.3765,6.9,5.02598],"autouv":0,"color":0,"rotation":[0,27.5,0],"origin":[-3.8,6.4,-3.2],"uv_offset":[52,47],"faces":{"north":{"uv":[60,63,61,64],"texture":0},"east":{"uv":[59,54,64,55],"texture":0},"south":{"uv":[61,63,62,64],"texture":0},"west":{"uv":[59,55,64,56],"texture":0},"up":{"uv":[62,63,61,58],"texture":0},"down":{"uv":[61,58,60,63],"texture":0}},"type":"cube","uuid":"4b02e5af-5555-61ad-f871-4b76dd7b7f12"},{"name":"top","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-10,4,-8],"to":[10,6,8],"autouv":0,"color":5,"origin":[0,4,0],"faces":{"north":{"uv":[44,16,64,18],"texture":1},"east":{"uv":[0,0,16,2],"texture":1},"south":{"uv":[44,18,64,20],"texture":1},"west":{"uv":[0,4,16,6],"texture":1},"up":{"uv":[64,16,44,0],"texture":1},"down":{"uv":[0,0,0,0],"texture":null}},"type":"cube","uuid":"f6778f93-2043-e459-2953-c827228e4859"}],"outliner":[{"name":"minecart","origin":[0,6,0],"color":0,"uuid":"dd73ac0a-f2a4-9159-7198-427ad546b381","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":true,"children":[{"name":"bottom","origin":[0,20,0],"rotation":[-90,0,0],"color":0,"uuid":"f3344c45-6e4c-1e03-1b09-58baa24e6de6","export":true,"mirror_uv":true,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["8bd32d50-5523-8d21-0bdc-2501f0b05062"]},{"name":"front","origin":[9,25,0],"rotation":[0,90,0],"color":0,"uuid":"cd591cf1-f643-4809-cce3-54f61f23f074","export":true,"mirror_uv":true,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["11076f04-906c-73ed-7995-011279d1472b"]},{"name":"back","origin":[-9,25,0],"rotation":[0,-90,0],"color":0,"uuid":"66f943b4-11b8-3070-d258-f23cd3dc207f","export":true,"mirror_uv":true,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["e3c851c2-9e91-3975-0c22-6a6d40583050"]},{"name":"right","origin":[0,25,-7],"rotation":[0,180,0],"color":0,"uuid":"b0d0e549-db29-9fbe-1948-f13f22fc8de7","export":true,"mirror_uv":true,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["5f3fa244-fcf1-7d05-aa9b-ed6a50b3b5b9",{"name":"Tongtong","origin":[-4,8.9,-6.5],"rotation":[0,92.5,0],"color":0,"uuid":"9310e53d-031a-32cc-a112-6380acdb7d86","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["8596f467-b811-1305-6240-75e7adc2bdad","acff81c9-516d-d51e-b9f2-3220aedb9134","8aee3054-4609-93e2-0fe1-710be690c104","8e08889b-fa2f-bcdd-78b1-fa8711bd7063",{"name":"Ears2","origin":[-4,8.9,-6.5],"color":0,"uuid":"2e2f5141-5ecc-e668-b250-2071c40c7950","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[{"name":"RightEarPivot","origin":[-4,8.9,-6.5],"color":0,"uuid":"b34f3158-9197-039c-53b4-afa170cf5267","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[{"name":"RightEar","origin":[-1.22268,11.78082,-6.38571],"rotation":[0,0,-15],"color":0,"uuid":"18a94d4b-2829-027b-5b74-91cf38bd4645","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["7760c3a9-b8cc-b1ec-5302-ea233b478484","3f47ad64-3886-b2d9-4205-56363d3f44da","82332670-376d-9ae0-78a8-883b2c6a418a","fd39a77e-3ec4-30fd-ccea-a14280ef4e41","6b4a29fe-e3aa-6c3e-0894-a3d2a89540f0","4ed5faa4-d0af-2a92-10d1-a8399b33de70","68d12a24-b734-9931-1ef4-a591377f7275"]}]},{"name":"LeftEarPivot","origin":[-4,8.9,-6.5],"color":0,"uuid":"b5fbfb88-82ba-96a7-9ea9-04203f684190","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[{"name":"LeftEar","origin":[-6.87732,11.78082,-6.38571],"rotation":[0,0,15],"color":0,"uuid":"1f6ae139-8bf0-846e-4dc9-765fc5b93211","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["d1b70dd3-28f2-68de-5978-1c961e0e4502","21f20e6b-b95a-eb0a-93df-313f065d57fd","ce9ccf1d-4458-6a7c-69bd-e30799a78885","062b50ac-2dcf-74aa-71f7-d04151e09549","fc7c3f40-60d4-94cb-e3eb-0ad570937af2","5d964588-cc6b-09e0-8651-3bd5e252fe89","c5cc4e24-574b-6a61-873b-cebaf4787147"]}]}]},{"name":"tail","origin":[-4,6.4,-4],"color":0,"uuid":"fe25c76e-a014-d4bc-1f8b-dacfcc97b344","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["e30360a1-44b0-d75e-8ee1-6532d2c817f9","4b02e5af-5555-61ad-f871-4b76dd7b7f12"]}]}]},{"name":"left","origin":[0,25,7],"color":0,"uuid":"56ad101b-e9ef-ac26-7c46-176b398f10a2","export":true,"mirror_uv":true,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["354130f5-110d-531e-31fe-3f2b501d7274"]},{"name":"top","origin":[0,0,0],"color":0,"uuid":"19821c19-a8ef-fc5a-7e01-e4df235a4861","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["f6778f93-2043-e459-2953-c827228e4859"]}]}],"textures":[{"path":"tongtong.png","name":"tongtong.png","folder":"","namespace":"","id":"1","group":"","width":64,"height":64,"uv_width":64,"uv_height":64,"particle":false,"use_as_default":false,"layers_enabled":false,"sync_to_project":"","render_mode":"default","render_sides":"auto","pbr_channel":"color","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"4e90e314-ae70-5640-2fa7-dc95daa79fa3","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAABq0lEQVR4nO3bsU7CQBwG8O+EhDIUHMT4EmwuJCYM7PIerm5MnQyLqw/ixsDg7nOIAQfLDZSpDuRqK7YWob1r7/tN5dqkdx//u5JrEF3XDWEQX0ox8rbh3GsJAOi6buhLKYq6nzAtgOv7j+j49fECbcfBJgiitrbj4H21ivqtPv/3fmfHdLYOmro78JMqfWBX/lnX+lIKX8qj7md0BRQ59xXjKiBL/Bs/VTjGB3DMApeH0VOgDAxAdwd0YwC6O6Cb9QFEj8HP9TpqPO90UtvqRnRdN1QDTRvkX+dPqYxff3HRFMgaXF2/fYBrAANgALo7oBsDAIDxNMBwsky9aDhZYjwNUs9XWbS5GA/g5eESaW1FK/t3gHG7wmUH0IxvQ8c3JPPYPN3utqbvnkX8+KQ9LNPI24Yjb5urItSAs46rIPEUmHstMfdaIm8IdWD9YzDhkCkA7Jd71cofABLlfugiSEREREREREREREREVCVWvQi56vX23lxZ/27QqgDeblboDxaJNqumAPA9DfqDBWaNpr0BKFZNgd9YH4Dxf5sriloMrQ1g1rB26MmF8AtFUo+JmGx5DAAAAABJRU5ErkJggg=="},{"path":"minecart.png","name":"minecart.png","folder":"block","namespace":"","id":"2","group":"","width":64,"height":64,"uv_width":64,"uv_height":64,"particle":false,"use_as_default":false,"layers_enabled":false,"sync_to_project":"","render_mode":"default","render_sides":"auto","pbr_channel":"color","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"6da0ea73-ac38-c3c8-7544-c439404777f2","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAABcklEQVR4Xu2XMU7DQBBF1y0S3MEpcgOgJlBwjhQRJ0BykSqFJU6AKDgHBYQ6yR2SOxApbdAY9ssMAgUv4Fj/v2a/N9J452kSO9nxyek2OA6PDsL6ZYPrXZiUJXITLs8HGS6+IZ439X6RzAou5jMrHOJaF+A/82sk9UCtCrBQb8hPgG/aN2+kHqhVAb4xqgl4eJp++g1owq4NpCIBbQsYF0V187hGOi2gl+fYiFyNhuH27r7Ky9XqffcN37zRWQG+4H810hR/3lQ+CLBJ6PdyLgEhhK09zqygjfZiPuMSoAnQBGgCMAE35SRMH5+5BNQL0gug/Ar4gnQvQoOLs6rgdTGuNvZdwE//u3yFPfGMzk3AnwqgfA+oPwaNfZ+AXxdAPwG+IN0EIJEiAUikSAASKRKARIoEIJEiAUikSAASKRKARIoEIJEiAUikSAASKRKARIoEIJEiAUikSAASKRKARIoEIJEiAUikSAASKRKARAq9gFeNDAze2GKAugAAAABJRU5ErkJggg=="}],"animations":[{"uuid":"8f175af3-eb92-2767-60b4-c95dad8ae5f4","name":"still","loop":"loop","override":false,"length":0,"snapping":24,"selected":false,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":""},{"uuid":"ec20272c-d7f0-8e7a-9a45-0b4f33e3e7d4","name":"up","loop":"loop","override":false,"length":0,"snapping":24,"selected":false,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":"","animators":{"dd73ac0a-f2a4-9159-7198-427ad546b381":{"name":"minecart","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"not player:getVehicle() and 0 or player:getVehicle():getLocalHVelocity().x<0 and -45 or 45"}],"uuid":"54907100-e531-7ebb-8be5-df7bb826572b","time":0,"color":-1,"interpolation":"linear"}]}}},{"uuid":"595aec67-ca24-5090-97b1-78dea994b40e","name":"down","loop":"loop","override":false,"length":0,"snapping":24,"selected":false,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":"","animators":{"dd73ac0a-f2a4-9159-7198-427ad546b381":{"name":"minecart","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"not player:getVehicle() and 0 or player:getVehicle():getLocalHVelocity().x>0 and -45 or 45\n"}],"uuid":"facc477f-7559-660c-2361-6544cea6edeb","time":0,"color":-1,"interpolation":"linear"}]}}},{"uuid":"b610ee3b-4e6f-51c1-a45c-3eb39309e4ce","name":"forward","loop":"loop","override":false,"length":0,"snapping":24,"selected":false,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":""}]} -------------------------------------------------------------------------------- /anan/minecart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvOla2/AnAn-Figura-avatar/294b7ea1db5f887ff3d3a72fe1358c92bd674325/anan/minecart.png -------------------------------------------------------------------------------- /anan/model.bbmodel: -------------------------------------------------------------------------------- 1 | {"meta":{"format_version":"4.10","model_format":"free","box_uv":false},"name":"model","model_identifier":"","visible_box":[1,1,0],"variable_placeholders":"","variable_placeholder_buttons":[],"timeline_setups":[],"unhandled_root_fields":{},"resolution":{"width":32,"height":32},"elements":[{"name":"Body","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4,12,-2],"to":[4,24,2],"autouv":0,"color":4,"origin":[0,24,0],"faces":{"north":{"uv":[104,32,112,44],"texture":0},"east":{"uv":[88,32,92,44],"texture":0},"south":{"uv":[92,32,100,44],"texture":0},"west":{"uv":[100,32,104,44],"texture":0},"up":{"uv":[96,48,88,44],"texture":0},"down":{"uv":[104,44,96,48],"texture":0}},"type":"cube","uuid":"58ce3d28-0b34-424b-8146-d410fe44349c"},{"name":"Jacket","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4,12,-2],"to":[4,24,2],"autouv":0,"color":0,"inflate":0.25,"origin":[0,24,0],"faces":{"north":{"uv":[80,32,88,44],"texture":0},"east":{"uv":[64,32,68,44],"texture":0},"south":{"uv":[68,32,76,44],"texture":0},"west":{"uv":[76,32,80,44],"texture":0},"up":{"uv":[72,48,64,44],"texture":0},"down":{"uv":[80,44,72,48],"texture":0}},"type":"cube","uuid":"00cb7767-91fb-4ef0-beaf-3d8167f3e9f4"},{"name":"LeftArm1","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-7,18,-2],"to":[-4,24,2],"autouv":0,"color":0,"origin":[-5,22,0],"faces":{"north":{"uv":[75,0,78,6],"texture":0},"east":{"uv":[64,0,68,6],"texture":0},"south":{"uv":[68,0,71,6],"texture":0},"west":{"uv":[71,0,75,6],"texture":0},"up":{"uv":[64,6,67,10],"texture":0},"down":{"uv":[67,6,70,10],"texture":0}},"type":"cube","uuid":"237ecf39-bdd3-0104-54e9-802bc16eb084"},{"name":"LeftArm2","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-7,12,-2],"to":[-4,18,2],"autouv":0,"color":0,"origin":[-6,18,0],"faces":{"north":{"uv":[75,10,78,16],"texture":0},"east":{"uv":[64,10,68,16],"texture":0},"south":{"uv":[68,10,71,16],"texture":0},"west":{"uv":[71,10,75,16],"texture":0},"up":{"uv":[72,6,75,10],"texture":0},"down":{"uv":[75,6,78,10],"texture":0}},"type":"cube","uuid":"c4e42e68-60ef-1b48-de65-056e48936d83"},{"name":"LeftSleeve1","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-7,18,-2],"to":[-4,24,2],"autouv":0,"color":0,"inflate":0.25,"origin":[-5,22,0],"faces":{"north":{"uv":[89,0,92,6],"texture":0},"east":{"uv":[78,0,82,6],"texture":0},"south":{"uv":[82,0,85,6],"texture":0},"west":{"uv":[85,0,89,6],"texture":0},"up":{"uv":[78,6,81,10],"texture":0},"down":{"uv":[81,6,84,10],"texture":0}},"type":"cube","uuid":"787363d0-3c70-204f-a9c9-e2ca76bfccb2"},{"name":"LeftSleeve2","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-7,12,-2],"to":[-4,18,2],"autouv":0,"color":0,"inflate":0.25,"origin":[-6,18,0],"faces":{"north":{"uv":[89,10,92,16],"texture":0},"east":{"uv":[78,10,82,16],"texture":0},"south":{"uv":[82,10,85,16],"texture":0},"west":{"uv":[85,10,89,16],"texture":0},"up":{"uv":[86,6,89,10],"texture":0},"down":{"uv":[89,6,92,10],"texture":0}},"type":"cube","uuid":"64e45624-f9b4-b61f-8ce3-d4b757dab0af"},{"name":"RightArm2","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[4,12,-2],"to":[7,18,2],"autouv":0,"color":0,"origin":[6,18,0],"faces":{"north":{"uv":[75,26,78,32],"texture":0},"east":{"uv":[64,26,68,32],"texture":0},"south":{"uv":[68,26,71,32],"texture":0},"west":{"uv":[71,26,75,32],"texture":0},"up":{"uv":[72,22,75,26],"texture":0},"down":{"uv":[75,22,78,26],"texture":0}},"type":"cube","uuid":"aeb5bd23-3e89-6440-1e63-f89c7aad9fdb"},{"name":"RightArm1","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[4,18,-2],"to":[7,24,2],"autouv":0,"color":0,"origin":[5,22,0],"faces":{"north":{"uv":[75,16,78,22],"texture":0},"east":{"uv":[64,16,68,22],"texture":0},"south":{"uv":[68,16,71,22],"texture":0},"west":{"uv":[71,16,75,22],"texture":0},"up":{"uv":[64,22,67,26],"texture":0},"down":{"uv":[67,22,70,26],"texture":0}},"type":"cube","uuid":"ed41e303-5c0d-b8bf-69f8-470ae0d34c7f"},{"name":"RightSleeve1","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[4,18,-2],"to":[7,24,2],"autouv":0,"color":0,"inflate":0.25,"origin":[5,22,0],"faces":{"north":{"uv":[89,16,92,22],"texture":0},"east":{"uv":[78,16,82,22],"texture":0},"south":{"uv":[82,16,85,22],"texture":0},"west":{"uv":[85,16,89,22],"texture":0},"up":{"uv":[78,22,81,26],"texture":0},"down":{"uv":[81,22,84,26],"texture":0}},"type":"cube","uuid":"cdb495db-87f6-00f3-586d-cf6afea448d6"},{"name":"RightSleeve2","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[4,12,-2],"to":[7,18,2],"autouv":0,"color":0,"inflate":0.25,"origin":[6,18,0],"faces":{"north":{"uv":[89,26,92,32],"texture":0},"east":{"uv":[78,26,82,32],"texture":0},"south":{"uv":[82,26,85,32],"texture":0},"west":{"uv":[85,26,89,32],"texture":0},"up":{"uv":[86,22,89,26],"texture":0},"down":{"uv":[89,22,92,26],"texture":0}},"type":"cube","uuid":"bd3eb16a-4301-dcb0-5a8f-adfe2b9477cf"},{"name":"LeftLeg1","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-3.9,6,-2],"to":[0.1,12,2],"autouv":0,"color":0,"origin":[-1.9,12,0],"faces":{"north":{"uv":[104,0,108,6],"texture":0},"east":{"uv":[92,0,96,6],"texture":0},"south":{"uv":[96,0,100,6],"texture":0},"west":{"uv":[100,0,104,6],"texture":0},"up":{"uv":[92,6,96,10],"texture":0},"down":{"uv":[96,6,100,10],"texture":0}},"type":"cube","uuid":"29ef2a66-53f6-6c18-4220-9c53f9602d0f"},{"name":"LeftLeg2","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-3.9,0,-2],"to":[0.1,6,2],"autouv":0,"color":0,"origin":[-1.9,12,0],"faces":{"north":{"uv":[104,10,108,16],"texture":0},"east":{"uv":[92,10,96,16],"texture":0},"south":{"uv":[96,10,100,16],"texture":0},"west":{"uv":[100,10,104,16],"texture":0},"up":{"uv":[100,6,104,10],"texture":0},"down":{"uv":[104,6,108,10],"texture":0}},"type":"cube","uuid":"aa2b8ff2-fc03-8377-cd11-3254f604ff51"},{"name":"LeftPants1","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-3.9,6,-2],"to":[0.1,12,2],"autouv":0,"color":0,"inflate":0.25,"origin":[-1.9,12,0],"faces":{"north":{"uv":[104,16,108,22],"texture":0},"east":{"uv":[92,16,96,22],"texture":0},"south":{"uv":[96,16,100,22],"texture":0},"west":{"uv":[100,16,104,22],"texture":0},"up":{"uv":[92,22,96,26],"texture":0},"down":{"uv":[96,22,100,26],"texture":0}},"type":"cube","uuid":"493a2fb3-dd2e-6244-5086-aa6398c6ff64"},{"name":"LeftPants2","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-3.9,0,-2],"to":[0.1,6,2],"autouv":0,"color":0,"inflate":0.25,"origin":[-1.9,12,0],"faces":{"north":{"uv":[104,26,108,32],"texture":0},"east":{"uv":[92,26,96,32],"texture":0},"south":{"uv":[96,26,100,32],"texture":0},"west":{"uv":[100,26,104,32],"texture":0},"up":{"uv":[100,22,104,26],"texture":0},"down":{"uv":[104,22,108,26],"texture":0}},"type":"cube","uuid":"9b581900-10d5-0567-4bb0-7c21aac55837"},{"name":"RightLeg1","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-0.1,6,-2],"to":[3.9,12,2],"autouv":0,"color":0,"origin":[1.9,12,0],"faces":{"north":{"uv":[120,0,124,6],"texture":0},"east":{"uv":[108,0,112,6],"texture":0},"south":{"uv":[112,0,116,6],"texture":0},"west":{"uv":[116,0,120,6],"texture":0},"up":{"uv":[108,6,112,10],"texture":0},"down":{"uv":[112,6,116,10],"texture":0}},"type":"cube","uuid":"8144b10c-3f03-b843-4837-ae51f81a2ec6"},{"name":"RightLeg2","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-0.1,0,-2],"to":[3.9,6,2],"autouv":0,"color":0,"origin":[1.9,12,0],"faces":{"north":{"uv":[120,10,124,16],"texture":0},"east":{"uv":[108,10,112,16],"texture":0},"south":{"uv":[112,10,116,16],"texture":0},"west":{"uv":[116,10,120,16],"texture":0},"up":{"uv":[116,6,120,10],"texture":0},"down":{"uv":[120,6,124,10],"texture":0}},"type":"cube","uuid":"c0244c0d-69ea-7596-58f1-7f45f90faed5"},{"name":"RightPants1","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-0.1,6,-2],"to":[3.9,12,2],"autouv":0,"color":0,"inflate":0.25,"origin":[1.9,12,0],"faces":{"north":{"uv":[120,16,124,22],"texture":0},"east":{"uv":[108,16,112,22],"texture":0},"south":{"uv":[112,16,116,22],"texture":0},"west":{"uv":[116,16,120,22],"texture":0},"up":{"uv":[108,22,112,26],"texture":0},"down":{"uv":[112,22,116,26],"texture":0}},"type":"cube","uuid":"bbde74ff-319a-dbd6-80cb-94e7ad9c31d1"},{"name":"RightPants2","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-0.1,0,-2],"to":[3.9,6,2],"autouv":0,"color":0,"inflate":0.25,"origin":[1.9,12,0],"faces":{"north":{"uv":[120,26,124,32],"texture":0},"east":{"uv":[108,26,112,32],"texture":0},"south":{"uv":[112,26,116,32],"texture":0},"west":{"uv":[116,26,120,32],"texture":0},"up":{"uv":[116,22,120,26],"texture":0},"down":{"uv":[120,22,124,26],"texture":0}},"type":"cube","uuid":"57e38566-e919-00ec-26f6-1e0dc711b35b"},{"name":"tail","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-1,11,2],"to":[1,13,4],"autouv":0,"color":0,"origin":[0,12,2],"faces":{"north":{"uv":[124,12,128,16],"texture":0},"east":{"uv":[124,0,128,4],"texture":0},"south":{"uv":[124,4,128,8],"texture":0},"west":{"uv":[124,8,128,12],"texture":0},"up":{"uv":[124,16,128,20],"texture":0},"down":{"uv":[124,20,128,24],"texture":0}},"type":"cube","uuid":"a769d2cf-0175-b591-03ee-f0fed824cfd8"},{"name":"Head","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4,24,-4],"to":[4,32,4],"autouv":0,"color":5,"origin":[0,24,0],"faces":{"north":{"uv":[96,56,104,64],"texture":0},"east":{"uv":[88,48,96,56],"texture":0},"south":{"uv":[96,48,104,56],"texture":0},"west":{"uv":[88,56,96,64],"texture":0},"up":{"uv":[112,56,104,48],"texture":0},"down":{"uv":[112,56,104,64],"texture":0}},"type":"cube","uuid":"06e1b3ee-e547-4abb-abb2-5308389d4e1d"},{"name":"Mouth","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-1,24,-4.05],"to":[1,25,-4.05],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[76,64,84,68],"texture":0},"east":{"uv":[84,69,84,70],"texture":0},"south":{"uv":[76,68,84,72],"texture":0},"west":{"uv":[84,71,84,72],"texture":0},"up":{"uv":[81,72,79,72],"texture":0},"down":{"uv":[79,72,77,72],"texture":0}},"type":"cube","uuid":"d7ef165f-6452-f2f9-8c1a-564edd9a64b0"},{"name":"Hat","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4,24,-4],"to":[4,32,4],"autouv":0,"color":0,"inflate":0.5,"origin":[0,24,0],"faces":{"north":{"uv":[72,56,80,64],"texture":0},"east":{"uv":[64,48,72,56],"texture":0},"south":{"uv":[72,48,80,56],"texture":0},"west":{"uv":[64,56,72,64],"texture":0},"up":{"uv":[88,56,80,48],"texture":0},"down":{"uv":[88,56,80,64],"texture":0}},"type":"cube","uuid":"661ad417-5edf-4711-b918-7c77d5f44930"},{"name":"leftorbit","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-2.8,25,-4.05],"to":[-0.8,27,-4.05],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[68,64,72,68],"texture":0},"east":{"uv":[0,0,0,0],"texture":null},"south":{"uv":[0,0,0,0],"texture":null},"west":{"uv":[0,0,0,0],"texture":null},"up":{"uv":[68,68,68,68],"texture":0},"down":{"uv":[68,64,68,64],"texture":0}},"type":"cube","uuid":"78a77a65-10ae-5a6b-f276-f28eb52c88ff"},{"name":"rightorbit","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[0.8,25,-4.05],"to":[2.8,27,-4.05],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[68,68,72,72],"texture":0},"east":{"uv":[0,0,0,0],"texture":null},"south":{"uv":[0,0,0,0],"texture":null},"west":{"uv":[0,0,0,0],"texture":null},"up":{"uv":[68,72,68,72],"texture":0},"down":{"uv":[68,68,68,68],"texture":0}},"type":"cube","uuid":"8be2f751-577c-9b48-90d7-8f0792802a70"},{"name":"1","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[1.3,30.5527,1.46962],"to":[3.3,37.5527,2.46962],"autouv":0,"color":0,"rotation":[-10,0,0],"origin":[-0.2,23.9,0],"faces":{"north":{"uv":[0,0,2,7],"texture":1},"east":{"uv":[9,3,10,10],"texture":1},"south":{"uv":[2,0,4,7],"texture":1},"west":{"uv":[0,10,1,17],"texture":1},"up":{"uv":[17,11,15,10],"texture":1},"down":{"uv":[17,11,15,12],"texture":1}},"type":"cube","uuid":"b71e09dc-3e92-8e05-5bb5-137174e53e1f"},{"name":"1","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-3.1,30.5527,1.46962],"to":[-1.1,37.5527,2.46962],"autouv":0,"color":0,"rotation":[-10,0,0],"origin":[0.4,23.9,0],"faces":{"north":{"uv":[4,0,6,7],"texture":1},"east":{"uv":[1,10,2,17],"texture":1},"south":{"uv":[6,0,8,7],"texture":1},"west":{"uv":[2,10,3,17],"texture":1},"up":{"uv":[17,13,15,12],"texture":1},"down":{"uv":[16,15,14,16],"texture":1}},"type":"cube","uuid":"03175595-bb13-ad1e-2d0c-5dc1d18758ac"},{"name":"2","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[3.79952,30.87819,-1],"to":[4.79952,36.87819,0],"autouv":0,"color":0,"rotation":[0,0,3],"origin":[-0.2,23.9,0],"faces":{"north":{"uv":[3,10,4,16],"texture":1},"east":{"uv":[10,3,11,9],"texture":1},"south":{"uv":[4,10,5,16],"texture":1},"west":{"uv":[5,10,6,16],"texture":1},"up":{"uv":[9,7,8,6],"texture":1},"down":{"uv":[11,15,10,16],"texture":1}},"type":"cube","uuid":"8f042fb2-b5e8-2158-8b2f-8ec40cc3a6cc"},{"name":"2","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4.59952,30.87819,-1],"to":[-3.59952,36.87819,0],"autouv":0,"color":0,"rotation":[0,0,-3],"origin":[0.4,23.9,0],"faces":{"north":{"uv":[10,9,11,15],"texture":1},"east":{"uv":[11,0,12,6],"texture":1},"south":{"uv":[11,6,12,12],"texture":1},"west":{"uv":[12,0,13,6],"texture":1},"up":{"uv":[17,7,16,6],"texture":1},"down":{"uv":[8,16,7,17],"texture":1}},"type":"cube","uuid":"f397366d-79ac-a473-56ba-7a72a4cb6c86"},{"name":"3","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-0.20048,31.12181,-1],"to":[0.79952,37.12181,0],"autouv":0,"color":0,"rotation":[0,0,-3],"origin":[-0.2,23.9,0],"faces":{"north":{"uv":[6,10,7,16],"texture":1},"east":{"uv":[7,10,8,16],"texture":1},"south":{"uv":[8,10,9,16],"texture":1},"west":{"uv":[9,10,10,16],"texture":1},"up":{"uv":[4,17,3,16],"texture":1},"down":{"uv":[5,16,4,17],"texture":1}},"type":"cube","uuid":"6e95608e-8ca5-f57e-e91f-c812aea3c2bb"},{"name":"3","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-0.59952,31.12181,-1],"to":[0.40048,37.12181,0],"autouv":0,"color":0,"rotation":[0,0,3],"origin":[0.4,23.9,0],"faces":{"north":{"uv":[12,6,13,12],"texture":1},"east":{"uv":[11,12,12,18],"texture":1},"south":{"uv":[12,12,13,18],"texture":1},"west":{"uv":[13,0,14,6],"texture":1},"up":{"uv":[17,8,16,7],"texture":1},"down":{"uv":[9,16,8,17],"texture":1}},"type":"cube","uuid":"00bc7a9d-8122-cddd-21fe-86ed76e6651a"},{"name":"4","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-3.6,36.7,-1],"to":[-0.6,37.7,0],"autouv":0,"color":0,"origin":[0.4,23.9,0],"faces":{"north":{"uv":[14,1,17,2],"texture":1},"east":{"uv":[16,8,17,9],"texture":1},"south":{"uv":[14,2,17,3],"texture":1},"west":{"uv":[9,16,10,17],"texture":1},"up":{"uv":[17,4,14,3],"texture":1},"down":{"uv":[17,4,14,5],"texture":1}},"type":"cube","uuid":"56e42eef-f4d8-17d6-fd19-527f8b855503"},{"name":"4","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[0.8,36.7,-1],"to":[3.8,37.7,0],"autouv":0,"color":0,"origin":[-0.2,23.9,0],"faces":{"north":{"uv":[13,6,16,7],"texture":1},"east":{"uv":[5,16,6,17],"texture":1},"south":{"uv":[13,7,16,8],"texture":1},"west":{"uv":[6,16,7,17],"texture":1},"up":{"uv":[16,9,13,8],"texture":1},"down":{"uv":[16,9,13,10],"texture":1}},"type":"cube","uuid":"122e7504-9da7-cb9a-4e15-d436215a4254"},{"name":"5","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-3.6,31.9,0],"to":[-0.6,34.9,1],"autouv":0,"color":0,"rotation":[-2.5,0,0],"origin":[0.4,23.9,0],"faces":{"north":{"uv":[6,7,9,10],"texture":1},"east":{"uv":[14,10,15,13],"texture":1},"south":{"uv":[8,0,11,3],"texture":1},"west":{"uv":[13,14,14,17],"texture":1},"up":{"uv":[17,6,14,5],"texture":1},"down":{"uv":[17,14,14,15],"texture":1}},"type":"cube","uuid":"e57a2a6b-1573-acb0-64b2-45b1debdb6da"},{"name":"5","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[0.8,31.9,0],"to":[3.8,34.9,1],"autouv":0,"color":0,"rotation":[-2.5,0,0],"origin":[-0.2,23.9,0],"faces":{"north":{"uv":[0,7,3,10],"texture":1},"east":{"uv":[8,3,9,6],"texture":1},"south":{"uv":[3,7,6,10],"texture":1},"west":{"uv":[13,10,14,13],"texture":1},"up":{"uv":[16,14,13,13],"texture":1},"down":{"uv":[17,0,14,1],"texture":1}},"type":"cube","uuid":"1d69cb83-c23c-56a6-436d-48241cc7474f"},{"name":"1","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-1.6,27.6,-5.5],"to":[0.4,29.6,-4.5],"autouv":0,"color":0,"rotation":[5.5,0,-2.5],"origin":[0,24,-0.2],"faces":{"north":{"uv":[9,12,11,14],"texture":2},"east":{"uv":[16,13,17,15],"texture":2},"south":{"uv":[11,12,13,14],"texture":2},"west":{"uv":[0,17,1,19],"texture":2},"up":{"uv":[14,9,12,8],"texture":2},"down":{"uv":[16,8,14,9],"texture":2}},"type":"cube","uuid":"f563121b-7fb3-1c29-22b0-beae18874482"},{"name":"2","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[0.7,27.8,-5.4],"to":[1.7,29.8,-4.4],"autouv":0,"color":0,"rotation":[4.5,0,2.5],"origin":[0,24,-0.2],"faces":{"north":{"uv":[17,0,18,2],"texture":2},"east":{"uv":[1,17,2,19],"texture":2},"south":{"uv":[2,17,3,19],"texture":2},"west":{"uv":[17,2,18,4],"texture":2},"up":{"uv":[14,7,13,6],"texture":2},"down":{"uv":[20,2,19,3],"texture":2}},"type":"cube","uuid":"78e90848-5c07-eab0-c078-479489887ddd"},{"name":"1","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[2.3,28.2,-4.8],"to":[3.3,29.2,-3.8],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[19,16,20,17],"texture":2},"east":{"uv":[19,17,20,18],"texture":2},"south":{"uv":[19,18,20,19],"texture":2},"west":{"uv":[19,19,20,20],"texture":2},"up":{"uv":[21,1,20,0],"texture":2},"down":{"uv":[21,1,20,2],"texture":2}},"type":"cube","uuid":"46a64cee-409f-4c54-31de-270dcf25c68c"},{"name":"2","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-3.3,28.2,-4.8],"to":[-2.3,29.2,-3.8],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[20,2,21,3],"texture":2},"east":{"uv":[3,20,4,21],"texture":2},"south":{"uv":[20,3,21,4],"texture":2},"west":{"uv":[4,20,5,21],"texture":2},"up":{"uv":[21,5,20,4],"texture":2},"down":{"uv":[21,5,20,6],"texture":2}},"type":"cube","uuid":"fd72df03-c137-66a5-dc35-c8321dd1a8e2"},{"name":"4","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4.3,27.2,-4.8],"to":[-3.3,28.2,-3.8],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[11,20,12,21],"texture":2},"east":{"uv":[20,11,21,12],"texture":2},"south":{"uv":[20,12,21,13],"texture":2},"west":{"uv":[20,13,21,14],"texture":2},"up":{"uv":[21,15,20,14],"texture":2},"down":{"uv":[16,20,15,21],"texture":2}},"type":"cube","uuid":"555effbd-7895-473c-7531-f2a91a89db4e"},{"name":"6","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[3.3,27.2,-4.8],"to":[4.3,28.2,-3.8],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[20,18,21,19],"texture":2},"east":{"uv":[19,20,20,21],"texture":2},"south":{"uv":[20,19,21,20],"texture":2},"west":{"uv":[20,20,21,21],"texture":2},"up":{"uv":[1,22,0,21],"texture":2},"down":{"uv":[22,0,21,1],"texture":2}},"type":"cube","uuid":"e010e9e7-1d23-bcb3-c037-dce2b46b90c9"},{"name":"7","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4.8,27.2,-4.5],"to":[-3.8,28.2,-3.5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[21,1,22,2],"texture":2},"east":{"uv":[21,2,22,3],"texture":2},"south":{"uv":[3,21,4,22],"texture":2},"west":{"uv":[21,3,22,4],"texture":2},"up":{"uv":[5,22,4,21],"texture":2},"down":{"uv":[22,4,21,5],"texture":2}},"type":"cube","uuid":"7000b4f4-ad83-9390-2fc5-0ff162ea9416"},{"name":"8","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4.8,27.2,-2.5],"to":[-3.8,28.2,-1.5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[21,5,22,6],"texture":2},"east":{"uv":[21,6,22,7],"texture":2},"south":{"uv":[21,7,22,8],"texture":2},"west":{"uv":[21,8,22,9],"texture":2},"up":{"uv":[22,10,21,9],"texture":2},"down":{"uv":[11,21,10,22],"texture":2}},"type":"cube","uuid":"a6c9a9df-290a-9a8f-a267-a64277fbf7bd"},{"name":"9","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4.8,27.2,-0.5],"to":[-3.8,28.2,0.5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[21,10,22,11],"texture":2},"east":{"uv":[11,21,12,22],"texture":2},"south":{"uv":[21,11,22,12],"texture":2},"west":{"uv":[12,21,13,22],"texture":2},"up":{"uv":[22,13,21,12],"texture":2},"down":{"uv":[14,21,13,22],"texture":2}},"type":"cube","uuid":"3f3690ff-c24f-b985-25fa-1a50f33e5cf8"},{"name":"10","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4.8,27.2,1.5],"to":[-3.8,28.2,2.5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[21,13,22,14],"texture":2},"east":{"uv":[14,21,15,22],"texture":2},"south":{"uv":[21,14,22,15],"texture":2},"west":{"uv":[15,21,16,22],"texture":2},"up":{"uv":[22,16,21,15],"texture":2},"down":{"uv":[17,21,16,22],"texture":2}},"type":"cube","uuid":"5057bb4a-07f6-c623-79d9-9c0843756d6a"},{"name":"11","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4.8,27.2,3.5],"to":[-3.8,28.2,4.5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[21,16,22,17],"texture":2},"east":{"uv":[17,21,18,22],"texture":2},"south":{"uv":[21,17,22,18],"texture":2},"west":{"uv":[18,21,19,22],"texture":2},"up":{"uv":[22,19,21,18],"texture":2},"down":{"uv":[20,21,19,22],"texture":2}},"type":"cube","uuid":"584c44fa-c407-8a48-b848-540622235f80"},{"name":"12","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[3.8,27.2,3.5],"to":[4.8,28.2,4.5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[21,19,22,20],"texture":2},"east":{"uv":[20,21,21,22],"texture":2},"south":{"uv":[21,20,22,21],"texture":2},"west":{"uv":[21,21,22,22],"texture":2},"up":{"uv":[1,23,0,22],"texture":2},"down":{"uv":[23,0,22,1],"texture":2}},"type":"cube","uuid":"e84c4c0b-cc61-0964-194a-f2c4ca63b4a1"},{"name":"13","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[3.8,27.2,1.5],"to":[4.8,28.2,2.5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[1,22,2,23],"texture":2},"east":{"uv":[22,1,23,2],"texture":2},"south":{"uv":[2,22,3,23],"texture":2},"west":{"uv":[22,2,23,3],"texture":2},"up":{"uv":[4,23,3,22],"texture":2},"down":{"uv":[23,3,22,4],"texture":2}},"type":"cube","uuid":"f4bce391-bd2f-d148-06ed-e7be4db722ae"},{"name":"14","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[3.8,27.2,-0.5],"to":[4.8,28.2,0.5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[4,22,5,23],"texture":2},"east":{"uv":[22,4,23,5],"texture":2},"south":{"uv":[5,22,6,23],"texture":2},"west":{"uv":[22,5,23,6],"texture":2},"up":{"uv":[7,23,6,22],"texture":2},"down":{"uv":[23,6,22,7],"texture":2}},"type":"cube","uuid":"16cf33c4-5eb5-6843-ccbe-a905331b2522"},{"name":"15","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[3.8,27.2,-2.5],"to":[4.8,28.2,-1.5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[7,22,8,23],"texture":2},"east":{"uv":[22,7,23,8],"texture":2},"south":{"uv":[8,22,9,23],"texture":2},"west":{"uv":[22,8,23,9],"texture":2},"up":{"uv":[10,23,9,22],"texture":2},"down":{"uv":[23,9,22,10],"texture":2}},"type":"cube","uuid":"ff458eef-ec44-ddf6-db35-788d31c3ca9c"},{"name":"16","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[3.8,27.2,-4.5],"to":[4.8,28.2,-3.5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[10,22,11,23],"texture":2},"east":{"uv":[22,10,23,11],"texture":2},"south":{"uv":[11,22,12,23],"texture":2},"west":{"uv":[22,11,23,12],"texture":2},"up":{"uv":[13,23,12,22],"texture":2},"down":{"uv":[23,12,22,13],"texture":2}},"type":"cube","uuid":"6252a4df-a6ed-39a0-5401-c45a433b3333"},{"name":"17","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[1.5,27.2,4],"to":[2.5,28.2,5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[13,22,14,23],"texture":2},"east":{"uv":[22,13,23,14],"texture":2},"south":{"uv":[14,22,15,23],"texture":2},"west":{"uv":[22,14,23,15],"texture":2},"up":{"uv":[16,23,15,22],"texture":2},"down":{"uv":[23,15,22,16],"texture":2}},"type":"cube","uuid":"f5e53d34-fbea-364c-eb5e-30239a7d6ea0"},{"name":"18","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-0.5,27.2,4],"to":[0.5,28.2,5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[16,22,17,23],"texture":2},"east":{"uv":[22,16,23,17],"texture":2},"south":{"uv":[17,22,18,23],"texture":2},"west":{"uv":[22,17,23,18],"texture":2},"up":{"uv":[19,23,18,22],"texture":2},"down":{"uv":[23,18,22,19],"texture":2}},"type":"cube","uuid":"e45515bb-7f5e-5b43-b3a2-5ecb160b1eb5"},{"name":"19","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-2.5,27.2,4],"to":[-1.5,28.2,5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[19,22,20,23],"texture":2},"east":{"uv":[22,19,23,20],"texture":2},"south":{"uv":[20,22,21,23],"texture":2},"west":{"uv":[22,20,23,21],"texture":2},"up":{"uv":[22,23,21,22],"texture":2},"down":{"uv":[23,21,22,22],"texture":2}},"type":"cube","uuid":"47a01662-96fa-e3c4-9535-6d16628337bb"},{"name":"20","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4.2,27.2,4],"to":[-3.2,28.2,5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[22,22,23,23],"texture":2},"east":{"uv":[0,23,1,24],"texture":2},"south":{"uv":[23,0,24,1],"texture":2},"west":{"uv":[1,23,2,24],"texture":2},"up":{"uv":[24,2,23,1],"texture":2},"down":{"uv":[3,23,2,24],"texture":2}},"type":"cube","uuid":"d697b652-35e4-32cf-f1f5-70b639dc07bf"},{"name":"21","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[3.2,27.2,4],"to":[4.2,28.2,5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[23,2,24,3],"texture":2},"east":{"uv":[3,23,4,24],"texture":2},"south":{"uv":[23,3,24,4],"texture":2},"west":{"uv":[4,23,5,24],"texture":2},"up":{"uv":[24,5,23,4],"texture":2},"down":{"uv":[6,23,5,24],"texture":2}},"type":"cube","uuid":"be049c24-4400-cb7d-b117-de1e1e5646d7"},{"name":"3","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-3,30,-4.7],"to":[3,31,-3.7],"autouv":0,"color":0,"origin":[3.4,25,0],"faces":{"north":{"uv":[7,2,13,3],"texture":2},"east":{"uv":[19,3,20,4],"texture":2},"south":{"uv":[7,3,13,4],"texture":2},"west":{"uv":[19,9,20,10],"texture":2},"up":{"uv":[6,9,0,8],"texture":2},"down":{"uv":[12,8,6,9],"texture":2}},"type":"cube","uuid":"dce22d34-97be-f130-7d40-38083df946cc"},{"name":"4","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[3.3,23.3,-4.8],"to":[4.3,27.3,-3.8],"autouv":0,"color":0,"rotation":[2.5,0,-1],"origin":[0,24,0],"faces":{"north":{"uv":[0,13,1,17],"texture":2},"east":{"uv":[1,13,2,17],"texture":2},"south":{"uv":[2,13,3,17],"texture":2},"west":{"uv":[13,2,14,6],"texture":2},"up":{"uv":[11,20,10,19],"texture":2},"down":{"uv":[20,10,19,11],"texture":2}},"type":"cube","uuid":"e735c600-274a-f7ee-d2f1-ca509fb1c36a"},{"name":"5","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4.3,23.3,-4.8],"to":[-3.3,27.3,-3.8],"autouv":0,"color":0,"rotation":[2.5,0,1],"origin":[0,24,0],"faces":{"north":{"uv":[13,11,14,15],"texture":2},"east":{"uv":[14,0,15,4],"texture":2},"south":{"uv":[3,14,4,18],"texture":2},"west":{"uv":[4,14,5,18],"texture":2},"up":{"uv":[12,20,11,19],"texture":2},"down":{"uv":[20,11,19,12],"texture":2}},"type":"cube","uuid":"938099eb-a5c8-26fa-66bd-66c31595c0f4"},{"name":"6","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-3.5,29.7,-4.4],"to":[3.5,31.7,-3.4],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[0,0,7,2],"texture":2},"east":{"uv":[17,4,18,6],"texture":2},"south":{"uv":[0,2,7,4],"texture":2},"west":{"uv":[6,17,7,19],"texture":2},"up":{"uv":[14,1,7,0],"texture":2},"down":{"uv":[14,1,7,2],"texture":2}},"type":"cube","uuid":"e149f1ea-ee0a-5ff7-a537-5e68164e7da8"},{"name":"colliderBody","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[2.91616,22.71506,-4.82303],"to":[4.91616,24.71506,-1.82303],"autouv":0,"color":0,"inflate":-0.2,"rotation":[2.5,0,2.5],"origin":[3.91616,23.71506,-3.32303],"faces":{"north":{"uv":[14,4,16,6],"texture":2},"east":{"uv":[0,9,3,11],"texture":2},"south":{"uv":[14,6,16,8],"texture":2},"west":{"uv":[3,9,6,11],"texture":2},"up":{"uv":[11,7,9,4],"texture":2},"down":{"uv":[8,9,6,12],"texture":2}},"type":"cube","uuid":"7e5aea09-3c1a-00eb-502d-28622aa12c42"},{"name":"2","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[2.94662,21.52148,-4.92902],"to":[4.94662,23.52148,-1.92902],"autouv":0,"color":0,"inflate":-0.35,"rotation":[4.5,-1,-5],"origin":[3.94662,22.52148,-3.42902],"faces":{"north":{"uv":[9,14,11,16],"texture":2},"east":{"uv":[8,9,11,11],"texture":2},"south":{"uv":[11,14,13,16],"texture":2},"west":{"uv":[0,11,3,13],"texture":2},"up":{"uv":[5,14,3,11],"texture":2},"down":{"uv":[13,4,11,7],"texture":2}},"type":"cube","uuid":"29309f73-d27e-1cbf-89c9-7b65804f42c4"},{"name":"3","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[3.7,21,-3.4],"to":[4.7,22,-2.4],"autouv":0,"color":0,"rotation":[7.5,2.5,-5],"origin":[0,24,0],"faces":{"north":{"uv":[23,5,24,6],"texture":2},"east":{"uv":[6,23,7,24],"texture":2},"south":{"uv":[23,6,24,7],"texture":2},"west":{"uv":[7,23,8,24],"texture":2},"up":{"uv":[24,8,23,7],"texture":2},"down":{"uv":[9,23,8,24],"texture":2}},"type":"cube","uuid":"465d4434-855a-7025-bd87-c67c174cbf19"},{"name":"4","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[3.2,19.6,-3.9],"to":[5.2,21.6,-1.9],"autouv":0,"color":0,"inflate":-0.4,"rotation":[7.5,2.5,-5],"origin":[0,24,0],"faces":{"north":{"uv":[14,11,16,13],"texture":2},"east":{"uv":[14,13,16,15],"texture":2},"south":{"uv":[15,0,17,2],"texture":2},"west":{"uv":[15,2,17,4],"texture":2},"up":{"uv":[15,17,13,15],"texture":2},"down":{"uv":[17,15,15,17],"texture":2}},"type":"cube","uuid":"199f35da-99b2-a018-bd75-2baee3926eac"},{"name":"7","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[2.5,28,-4.6],"to":[3.5,31,-4.1],"autouv":0,"color":0,"rotation":[0,0,2],"origin":[0,24,0],"faces":{"north":{"uv":[16,4,17,7],"texture":2},"east":{"uv":[1,19,1.5,22],"texture":2},"south":{"uv":[5,16,6,19],"texture":2},"west":{"uv":[2,19,2.5,22],"texture":2},"up":{"uv":[24,15.5,23,15],"texture":2},"down":{"uv":[17,23,16,23.5],"texture":2}},"type":"cube","uuid":"e5717917-2621-704c-2708-513daaaa321a"},{"name":"9","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-3.5,28,-4.6],"to":[-2.5,31,-4.1],"autouv":0,"color":0,"rotation":[0,0,-2],"origin":[0,24,0],"faces":{"north":{"uv":[10,16,11,19],"texture":2},"east":{"uv":[19,6,19.5,9],"texture":2},"south":{"uv":[16,10,17,13],"texture":2},"west":{"uv":[7,19,7.5,22],"texture":2},"up":{"uv":[24,17.5,23,17],"texture":2},"down":{"uv":[19,23,18,23.5],"texture":2}},"type":"cube","uuid":"8c74e193-4d02-4b65-7832-fb319d0279d5"},{"name":"8","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[3.5,26.8,-4.7],"to":[4.5,29.8,-4.2],"autouv":0,"color":0,"rotation":[0,0,2],"origin":[0,24,0],"faces":{"north":{"uv":[16,7,17,10],"texture":2},"east":{"uv":[5,19,5.5,22],"texture":2},"south":{"uv":[9,16,10,19],"texture":2},"west":{"uv":[6,19,6.5,22],"texture":2},"up":{"uv":[24,16.5,23,16],"texture":2},"down":{"uv":[18,23,17,23.5],"texture":2}},"type":"cube","uuid":"646f3f6d-793f-9b4e-1c53-6cf1c69c3757"},{"name":"10","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4.5,26.7,-4.7],"to":[-3.5,29.7,-4.2],"autouv":0,"color":0,"rotation":[0,0,-2],"origin":[0,24,0],"faces":{"north":{"uv":[11,16,12,19],"texture":2},"east":{"uv":[8,19,8.5,22],"texture":2},"south":{"uv":[12,16,13,19],"texture":2},"west":{"uv":[9,19,9.5,22],"texture":2},"up":{"uv":[24,18.5,23,18],"texture":2},"down":{"uv":[20,23,19,23.5],"texture":2}},"type":"cube","uuid":"ecc742e3-2dbc-31b7-e313-1b1c6a123ae1"},{"name":"3","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-2.3,29.1,-4.8],"to":[-1.3,30.1,-3.8],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[20,6,21,7],"texture":2},"east":{"uv":[20,7,21,8],"texture":2},"south":{"uv":[20,8,21,9],"texture":2},"west":{"uv":[20,9,21,10],"texture":2},"up":{"uv":[11,21,10,20],"texture":2},"down":{"uv":[21,10,20,11],"texture":2}},"type":"cube","uuid":"503122d2-9775-368b-7088-0f383491446c"},{"name":"5","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[1.3,29.1,-4.8],"to":[2.3,30.1,-3.8],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[20,15,21,16],"texture":2},"east":{"uv":[16,20,17,21],"texture":2},"south":{"uv":[20,16,21,17],"texture":2},"west":{"uv":[17,20,18,21],"texture":2},"up":{"uv":[21,18,20,17],"texture":2},"down":{"uv":[19,20,18,21],"texture":2}},"type":"cube","uuid":"0d027090-952e-2d6c-40c8-11c3d593f5d8"},{"name":"11","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-2.7,28.75,-4.75],"to":[-1.7,30.75,-4.25],"autouv":0,"color":0,"rotation":[1,0,-3.5],"origin":[0,24,0],"faces":{"north":{"uv":[17,6,18,8],"texture":2},"east":{"uv":[12,19,12.5,21],"texture":2},"south":{"uv":[7,17,8,19],"texture":2},"west":{"uv":[19,12,19.5,14],"texture":2},"up":{"uv":[24,19.5,23,19],"texture":2},"down":{"uv":[21,23,20,23.5],"texture":2}},"type":"cube","uuid":"b34f88a2-1b23-8c03-fb26-0d63ed790f24"},{"name":"12","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[1.7,28.75,-4.75],"to":[2.7,30.75,-4.25],"autouv":0,"color":0,"rotation":[1,0,2.5],"origin":[0,24,0],"faces":{"north":{"uv":[8,17,9,19],"texture":2},"east":{"uv":[13,19,13.5,21],"texture":2},"south":{"uv":[17,8,18,10],"texture":2},"west":{"uv":[14,19,14.5,21],"texture":2},"up":{"uv":[24,20.5,23,20],"texture":2},"down":{"uv":[22,23,21,23.5],"texture":2}},"type":"cube","uuid":"f35fbee1-eff6-46fa-f484-a46aab7f0eb0"},{"name":"1","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4.5,28.1,3.5],"to":[4.5,29.1,4.5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[0,4,9,5],"texture":2},"east":{"uv":[23,8,24,9],"texture":2},"south":{"uv":[0,5,9,6],"texture":2},"west":{"uv":[9,23,10,24],"texture":2},"up":{"uv":[9,7,0,6],"texture":2},"down":{"uv":[9,7,0,8],"texture":2}},"type":"cube","uuid":"da3800c9-ec7f-cc7b-c195-da95f12c6e73"},{"name":"2","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4.5,28.1,-1.5],"to":[-3.5,29.1,3.5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[23,9,24,10],"texture":2},"east":{"uv":[9,7,14,8],"texture":2},"south":{"uv":[10,23,11,24],"texture":2},"west":{"uv":[8,11,13,12],"texture":2},"up":{"uv":[6,16,5,11],"texture":2},"down":{"uv":[7,12,6,17],"texture":2}},"type":"cube","uuid":"63e5aaa5-a66a-a672-6de5-72c0fcf63106"},{"name":"3","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[3.5,28.1,-1.5],"to":[4.5,29.1,3.5],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[23,10,24,11],"texture":2},"east":{"uv":[11,9,16,10],"texture":2},"south":{"uv":[11,23,12,24],"texture":2},"west":{"uv":[11,10,16,11],"texture":2},"up":{"uv":[8,17,7,12],"texture":2},"down":{"uv":[9,12,8,17],"texture":2}},"type":"cube","uuid":"d94ee905-70bd-e79e-e751-2b66f2568486"},{"name":"4","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4.5,29.1,-3.2],"to":[-3.5,30.1,-1.2],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[23,11,24,12],"texture":2},"east":{"uv":[18,0,20,1],"texture":2},"south":{"uv":[12,23,13,24],"texture":2},"west":{"uv":[18,1,20,2],"texture":2},"up":{"uv":[19,4,18,2],"texture":2},"down":{"uv":[4,18,3,20],"texture":2}},"type":"cube","uuid":"3d830f50-9014-9ab1-5d6f-7b0e359501b8"},{"name":"5","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[3.5,29.1,-3.2],"to":[4.5,30.1,-1.2],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[23,12,24,13],"texture":2},"east":{"uv":[18,4,20,5],"texture":2},"south":{"uv":[13,23,14,24],"texture":2},"west":{"uv":[18,5,20,6],"texture":2},"up":{"uv":[5,20,4,18],"texture":2},"down":{"uv":[19,6,18,8],"texture":2}},"type":"cube","uuid":"35edb8fa-384a-c275-e6e3-0fd840482af9"},{"name":"6","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[3.5,29.4,-4.4],"to":[4.5,31.4,-3.4],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[18,8,19,10],"texture":2},"east":{"uv":[18,10,19,12],"texture":2},"south":{"uv":[18,12,19,14],"texture":2},"west":{"uv":[18,14,19,16],"texture":2},"up":{"uv":[24,14,23,13],"texture":2},"down":{"uv":[15,23,14,24],"texture":2}},"type":"cube","uuid":"cf0e5137-3f42-99ad-9f83-d127bfe9b569"},{"name":"7","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-4.5,29.4,-4.4],"to":[-3.5,31.4,-3.4],"autouv":0,"color":0,"origin":[0,24,0],"faces":{"north":{"uv":[18,16,19,18],"texture":2},"east":{"uv":[17,18,18,20],"texture":2},"south":{"uv":[18,18,19,20],"texture":2},"west":{"uv":[0,19,1,21],"texture":2},"up":{"uv":[24,15,23,14],"texture":2},"down":{"uv":[16,23,15,24],"texture":2}},"type":"cube","uuid":"791997fa-c169-3ea1-783f-fb64e4ce4950"},{"name":"plane","color":0,"origin":[0,24.05,0.04],"rotation":[90,0,0],"export":true,"visibility":true,"locked":false,"render_order":"default","allow_mirror_modeling":true,"vertices":{"aDQ3":[3,-2.3,5.8],"n3T5":[3,-2.3,-0.2],"ohya":[-3,-2.3,5.8],"T279":[-3,-2.3,-0.2]},"faces":{"tQ2CK5xe":{"uv":{"ohya":[0,16],"T279":[0,0],"n3T5":[16,0],"aDQ3":[16,16]},"vertices":["aDQ3","n3T5","T279","ohya"],"texture":0}},"type":"mesh","uuid":"6b113a7f-185a-cf4f-549c-cfcccf3e6311"},{"name":"RightSleeveLace","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[4,15.8,-2],"to":[7,17.8,2],"autouv":0,"color":0,"inflate":0.3,"origin":[5,22,0],"faces":{"north":{"uv":[52,40,64,48],"texture":0},"east":{"uv":[36,32,52,40],"texture":0},"south":{"uv":[52,32,64,40],"texture":0},"west":{"uv":[36,40,52,48],"texture":0},"up":{"uv":[36,48,48,64],"texture":0},"down":{"uv":[48,48,60,64],"texture":0}},"type":"cube","uuid":"3e023684-47ce-1f20-9961-2d57713637c7"},{"name":"LeftSleeveLace","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-7,15.8,-2],"to":[-4,17.8,2],"autouv":0,"color":0,"inflate":0.3,"origin":[-5,22,0],"faces":{"north":{"uv":[52,8,64,16],"texture":0},"east":{"uv":[36,0,52,8],"texture":0},"south":{"uv":[52,0,64,8],"texture":0},"west":{"uv":[36,8,52,16],"texture":0},"up":{"uv":[48,16,60,32],"texture":0},"down":{"uv":[36,16,48,32],"texture":0}},"type":"cube","uuid":"4c98410b-98bf-57bb-838f-fdaf0ae8515a"},{"name":"RightPantsLace","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-0.1,9.8,-2],"to":[3.9,11.8,2],"autouv":0,"color":0,"inflate":0.3,"origin":[1.9,12,0],"faces":{"north":{"uv":[16,64,32,72],"texture":0},"east":{"uv":[0,56,16,64],"texture":0},"south":{"uv":[16,56,32,64],"texture":0},"west":{"uv":[0,64,16,72],"texture":0},"up":{"uv":[0,72,16,88],"texture":0},"down":{"uv":[16,72,32,88],"texture":0}},"type":"cube","uuid":"654a2e74-f0c3-ab65-6028-0e0cf8d7df96"},{"name":"LeftPantsLace","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-3.9,9.8,-2],"to":[0.1,11.8,2],"autouv":0,"color":0,"inflate":0.3,"origin":[-1.9,12,0],"faces":{"north":{"uv":[16,32,32,40],"texture":0},"east":{"uv":[0,24,16,32],"texture":0},"south":{"uv":[16,24,32,32],"texture":0},"west":{"uv":[0,32,16,40],"texture":0},"up":{"uv":[0,40,16,56],"texture":0},"down":{"uv":[16,40,32,56],"texture":0}},"type":"cube","uuid":"a4fa64ef-df98-04f8-47fa-75636c3358a4"},{"name":"lefteyebrow","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-3.8,26,-4.1],"to":[-0.8,28,-4.1],"autouv":0,"color":0,"origin":[-2.3,27,-4.1],"faces":{"north":{"uv":[68,72,71,74],"texture":0},"east":{"uv":[68,74,68,74]},"south":{"uv":[0,0,0,0],"texture":null},"west":{"uv":[71,74,71,74]},"up":{"uv":[68,76,68,76]},"down":{"uv":[71,76,71,76]}},"type":"cube","uuid":"a06a0079-f431-1d37-2030-41db54892a67"},{"name":"righteyebrow","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[0.8,26,-4.1],"to":[3.8,28,-4.1],"autouv":0,"color":0,"origin":[2.3,27,-4.1],"faces":{"north":{"uv":[68,74,71,76],"texture":0},"east":{"uv":[68,74,68,74]},"south":{"uv":[0,0,0,0],"texture":null},"west":{"uv":[65,74,65,74]},"up":{"uv":[68,76,68,76]},"down":{"uv":[65,76,65,76]}},"type":"cube","uuid":"793fbeb4-89d6-4eca-c3ef-46b920b0e2e4"},{"name":"leftpupil","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[-2.25,25.2,-4.1],"to":[-1.25,27,-4.1],"autouv":0,"color":4,"origin":[-1.8,25.7,-4.15],"faces":{"north":{"uv":[66,64,68,68],"texture":0},"east":{"uv":[0,0,0,0],"texture":null},"south":{"uv":[0,0,0,0],"texture":null},"west":{"uv":[0,0,0,0],"texture":null},"up":{"uv":[0,0,0,0],"texture":null},"down":{"uv":[0,0,0,0],"texture":null}},"type":"cube","uuid":"5281248b-59db-6417-5a5a-f40c11054731"},{"name":"rightpupil","box_uv":false,"rescale":false,"locked":false,"light_emission":0,"render_order":"default","allow_mirror_modeling":true,"from":[1.25,25.2,-4.1],"to":[2.25,27,-4.1],"autouv":0,"color":3,"origin":[2.2,24.7,-3.15],"faces":{"north":{"uv":[66,68,68,72],"texture":0},"east":{"uv":[0,0,0,0],"texture":null},"south":{"uv":[0,0,0,0],"texture":null},"west":{"uv":[0,0,0,0],"texture":null},"up":{"uv":[0,0,0,0],"texture":null},"down":{"uv":[0,0,0,0],"texture":null}},"type":"cube","uuid":"5f3b1436-85f4-c6c5-4388-58d3439a2b38"}],"outliner":[{"name":"root","origin":[0,0,0],"color":0,"uuid":"cdd1cbda-5cb7-4302-9bd0-65f0d517bbb6","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[{"name":"Torso","origin":[0,0,0],"color":0,"uuid":"c0168d8f-30f3-edc1-f53b-615a874f842e","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[{"name":"Head","origin":[0,24,0],"color":0,"uuid":"6f690d02-d701-4883-a322-436f46e8c785","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["06e1b3ee-e547-4abb-abb2-5308389d4e1d","d7ef165f-6452-f2f9-8c1a-564edd9a64b0","661ad417-5edf-4711-b918-7c77d5f44930",{"name":"HelmetPivot","origin":[0,24,0],"color":0,"uuid":"8298d6fd-9f44-44ea-90d1-d9cccb35eb8d","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[]},{"name":"Hair","origin":[0,24,0],"color":0,"uuid":"77559541-8e92-6950-e24d-bfe492c6bdbd","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[{"name":"h1","origin":[0,24,0],"color":0,"uuid":"165fb016-b6de-f9e0-6e13-ff7536223e05","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["f563121b-7fb3-1c29-22b0-beae18874482","78e90848-5c07-eab0-c078-479489887ddd","dce22d34-97be-f130-7d40-38083df946cc","e735c600-274a-f7ee-d2f1-ca509fb1c36a","938099eb-a5c8-26fa-66bd-66c31595c0f4","e149f1ea-ee0a-5ff7-a537-5e68164e7da8","e5717917-2621-704c-2708-513daaaa321a","646f3f6d-793f-9b4e-1c53-6cf1c69c3757","8c74e193-4d02-4b65-7832-fb319d0279d5","ecc742e3-2dbc-31b7-e313-1b1c6a123ae1","b34f88a2-1b23-8c03-fb26-0d63ed790f24","f35fbee1-eff6-46fa-f484-a46aab7f0eb0"]},{"name":"h2","origin":[0,24,0],"color":0,"uuid":"0f46963e-c1d4-4cbf-3bd8-41ddefbc8f5d","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["46a64cee-409f-4c54-31de-270dcf25c68c","fd72df03-c137-66a5-dc35-c8321dd1a8e2","503122d2-9775-368b-7088-0f383491446c","555effbd-7895-473c-7531-f2a91a89db4e","0d027090-952e-2d6c-40c8-11c3d593f5d8","e010e9e7-1d23-bcb3-c037-dce2b46b90c9","7000b4f4-ad83-9390-2fc5-0ff162ea9416","a6c9a9df-290a-9a8f-a267-a64277fbf7bd","3f3690ff-c24f-b985-25fa-1a50f33e5cf8","5057bb4a-07f6-c623-79d9-9c0843756d6a","584c44fa-c407-8a48-b848-540622235f80","e84c4c0b-cc61-0964-194a-f2c4ca63b4a1","f4bce391-bd2f-d148-06ed-e7be4db722ae","16cf33c4-5eb5-6843-ccbe-a905331b2522","ff458eef-ec44-ddf6-db35-788d31c3ca9c","6252a4df-a6ed-39a0-5401-c45a433b3333","f5e53d34-fbea-364c-eb5e-30239a7d6ea0","e45515bb-7f5e-5b43-b3a2-5ecb160b1eb5","47a01662-96fa-e3c4-9535-6d16628337bb","d697b652-35e4-32cf-f1f5-70b639dc07bf","be049c24-4400-cb7d-b117-de1e1e5646d7"]},{"name":"h3","origin":[0,24,0],"color":0,"uuid":"fc11cab6-85c0-ec36-e347-44686e0f8661","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[{"name":"t1","origin":[4,24,-3.5],"color":0,"uuid":"505d9896-44c0-a702-e6c3-d06f599c2908","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["7e5aea09-3c1a-00eb-502d-28622aa12c42",{"name":"t2","origin":[4.2,23,-3.5],"color":0,"uuid":"a51bb54b-05df-fb52-e2ad-f9f482b533d8","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["29309f73-d27e-1cbf-89c9-7b65804f42c4",{"name":"physBone1","origin":[4,22,-3.3],"color":0,"uuid":"08adfb2c-eac3-74b5-f36c-40811a810dfc","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["465d4434-855a-7025-bd87-c67c174cbf19",{"name":"physBone2","origin":[3.7,21.2,-3.3],"color":0,"uuid":"02e24fd5-8f63-6043-2f57-3449f11d1c55","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["199f35da-99b2-a018-bd75-2baee3926eac"]}]}]}]}]},{"name":"h4","origin":[0,24,0],"color":0,"uuid":"0df7ae46-f929-cfc8-65a5-0553a100e530","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["da3800c9-ec7f-cc7b-c195-da95f12c6e73","63e5aaa5-a66a-a672-6de5-72c0fcf63106","d94ee905-70bd-e79e-e751-2b66f2568486","3d830f50-9014-9ab1-5d6f-7b0e359501b8","35edb8fa-384a-c275-e6e3-0fd840482af9","cf0e5137-3f42-99ad-9f83-d127bfe9b569","791997fa-c169-3ea1-783f-fb64e4ce4950"]}]},{"name":"Eyebrow","origin":[0,27,-4.1],"color":0,"uuid":"d271cebd-d6dc-cd82-6af8-75923c7d735e","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["a06a0079-f431-1d37-2030-41db54892a67","793fbeb4-89d6-4eca-c3ef-46b920b0e2e4"]},{"name":"Eyes","origin":[0,27,-4.05],"color":0,"uuid":"8583f689-8b52-b529-2a29-8b08a555a27c","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[{"name":"lefteye","origin":[0,27,-4.05],"color":0,"uuid":"2657088d-5dc0-718f-5661-0d6f894c9e4e","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["78a77a65-10ae-5a6b-f276-f28eb52c88ff","5281248b-59db-6417-5a5a-f40c11054731"]},{"name":"righteye","origin":[0,27,-4.05],"color":0,"uuid":"9cdcf72d-072c-01a1-1862-da15cbfe9886","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["8be2f751-577c-9b48-90d7-8f0792802a70","5f3b1436-85f4-c6c5-4388-58d3439a2b38"]}]},{"name":"Ear","origin":[0,23.9,0],"color":0,"uuid":"340f043c-f084-d214-e483-742ec5a6d95c","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[{"name":"physEar1","origin":[2,29.5,0],"color":0,"uuid":"497a7618-2991-2b3b-30d1-c5fb52b3ce34","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["b71e09dc-3e92-8e05-5bb5-137174e53e1f","8f042fb2-b5e8-2158-8b2f-8ec40cc3a6cc","6e95608e-8ca5-f57e-e91f-c812aea3c2bb","122e7504-9da7-cb9a-4e15-d436215a4254","1d69cb83-c23c-56a6-436d-48241cc7474f"]},{"name":"physEar2","origin":[-2,29.5,0],"color":0,"uuid":"a1b3b7fe-dc0e-bc98-01b0-0bc7c6c5f3d0","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["03175595-bb13-ad1e-2d0c-5dc1d18758ac","f397366d-79ac-a473-56ba-7a72a4cb6c86","00bc7a9d-8122-cddd-21fe-86ed76e6651a","56e42eef-f4d8-17d6-fd19-527f8b855503","e57a2a6b-1573-acb0-64b2-45b1debdb6da"]}]}]},{"name":"Body","origin":[0,24,0],"color":0,"uuid":"48aafd5e-73ec-400e-87a1-ca3fcf7efd70","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["58ce3d28-0b34-424b-8146-d410fe44349c","00cb7767-91fb-4ef0-beaf-3d8167f3e9f4",{"name":"Jacketlace","origin":[0,24,0],"color":0,"uuid":"d8476f37-d6f0-1317-d50c-179925173adf","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["6b113a7f-185a-cf4f-549c-cfcccf3e6311"]},{"name":"Tail","origin":[0,12,2],"color":0,"uuid":"450251a5-0a2f-2bc1-8b4b-09e3d6bf173d","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["a769d2cf-0175-b591-03ee-f0fed824cfd8"]},{"name":"LeftParrotPivot","origin":[-6,24,0],"color":0,"uuid":"ae6889d9-f495-4782-ad51-2e8840360470","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[]},{"name":"RightParrotPivot","origin":[6,24,0],"color":0,"uuid":"1549bfad-760c-4d84-8b7c-627ea039981d","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[]},{"name":"ChestplatePivot","origin":[0,24,0],"color":0,"uuid":"ba072a6f-723c-48c4-a10d-02650abf7502","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[]},{"name":"LeftElytraPivot","origin":[0,24,0],"color":0,"uuid":"e1a48478-acba-4ecc-b945-5f16de25bc7e","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[]},{"name":"RightElytraPivot","origin":[0,24,0],"color":0,"uuid":"25bb5ce4-0424-435a-b9e2-b919995f6a14","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[]},{"name":"LeggingsPivot","origin":[0,12,0],"color":0,"uuid":"4447354c-4741-4e6c-afa8-adaea523e974","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[]}]},{"name":"RightArm","origin":[5,22,0],"color":0,"uuid":"66d03ee3-1c31-4075-9cc3-bf85078929e1","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[{"name":"raup","origin":[5,22,0],"color":0,"uuid":"8bcee573-9b1b-f4a4-61ce-f444940fb306","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["ed41e303-5c0d-b8bf-69f8-470ae0d34c7f","cdb495db-87f6-00f3-586d-cf6afea448d6",{"name":"RightShoulderPivot","origin":[6,24,0],"color":0,"uuid":"486550ad-96b5-418a-80a9-377603935847","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[]}]},{"name":"radown","origin":[5,18,0],"color":0,"uuid":"f4ac57d0-4874-b012-a61c-0f081d39af73","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["aeb5bd23-3e89-6440-1e63-f89c7aad9fdb","bd3eb16a-4301-dcb0-5a8f-adfe2b9477cf","3e023684-47ce-1f20-9961-2d57713637c7",{"name":"RightItemPivot","origin":[5.5,12,-2],"color":0,"uuid":"d84c4068-4d11-4c12-ab3f-42066d2c8af4","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[]}]}]},{"name":"LeftArm","origin":[-5,22,0],"color":0,"uuid":"e13f538d-3f28-48da-875b-0e536ceb71e8","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[{"name":"laup","origin":[-5,22,0],"color":0,"uuid":"545c6962-c810-d833-2061-668abd27559e","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["237ecf39-bdd3-0104-54e9-802bc16eb084","787363d0-3c70-204f-a9c9-e2ca76bfccb2",{"name":"LeftShoulderPivot","origin":[-6,24,0],"color":0,"uuid":"9d4515b5-e92b-4cbb-b98e-6af2c0a2f231","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[]}]},{"name":"ladown","origin":[-5,18,0],"color":0,"uuid":"fc0f3a2f-f2c7-e8fb-cd2c-ed2558d406fc","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["c4e42e68-60ef-1b48-de65-056e48936d83","64e45624-f9b4-b61f-8ce3-d4b757dab0af","4c98410b-98bf-57bb-838f-fdaf0ae8515a",{"name":"LeftItemPivot","origin":[-5.5,12,-2],"color":0,"uuid":"69aba8ef-e0f2-4942-a7e0-720fc6d953c0","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[]}]}]}]},{"name":"LeftLeg","origin":[-1.9,12,0],"color":0,"uuid":"9411fcb5-6dbf-4856-b956-99c7e0b7afff","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[{"name":"llup","origin":[-1.9,12,0],"color":0,"uuid":"068dd3bb-41b3-ad80-dec3-b0a25ec77148","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["29ef2a66-53f6-6c18-4220-9c53f9602d0f","493a2fb3-dd2e-6244-5086-aa6398c6ff64","a4fa64ef-df98-04f8-47fa-75636c3358a4",{"name":"LeftLeggingPivot","origin":[-2,12,0],"color":0,"uuid":"cc6af5d2-98ad-4c46-8e45-1390e187a17a","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[]}]},{"name":"lldown","origin":[-1.9,6,0],"color":0,"uuid":"b445eec0-7007-997b-3dc6-0b75cf3bfeb3","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["aa2b8ff2-fc03-8377-cd11-3254f604ff51","9b581900-10d5-0567-4bb0-7c21aac55837",{"name":"LeftBootPivot","origin":[-2,0,0],"color":0,"uuid":"db424428-2b0e-46c0-8b80-527d276d3451","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[]}]}]},{"name":"RightLeg","origin":[1.9,12,0],"color":0,"uuid":"ec722c93-b27a-4b9f-b334-d37542f84978","export":true,"mirror_uv":false,"isOpen":false,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[{"name":"rlup","origin":[1.9,12,0],"color":0,"uuid":"b1644fbe-da5e-f851-c4be-71f5c103ce25","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["8144b10c-3f03-b843-4837-ae51f81a2ec6","bbde74ff-319a-dbd6-80cb-94e7ad9c31d1","654a2e74-f0c3-ab65-6028-0e0cf8d7df96",{"name":"RightLeggingPivot","origin":[2,12,0],"color":0,"uuid":"339bbad7-98cb-4df1-be63-22056e01c742","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[]}]},{"name":"rldown","origin":[1.9,6,0],"color":0,"uuid":"62f5ffa8-af0a-80b5-1ca4-347f747ec799","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":["c0244c0d-69ea-7596-58f1-7f45f90faed5","57e38566-e919-00ec-26f6-1e0dc711b35b",{"name":"RightBootPivot","origin":[2,0,0],"color":0,"uuid":"dbaaef08-c52c-4ced-9b5c-3e2a141ba053","export":true,"mirror_uv":false,"isOpen":true,"locked":false,"visibility":true,"autouv":0,"selected":false,"children":[]}]}]}]}],"textures":[{"path":"/home/new/mc/1.21.1FabricSOD/figura/avatars/anan-sp/anan.png","name":"anan.png","folder":"","namespace":"","id":"0","group":"","width":128,"height":128,"uv_width":128,"uv_height":128,"particle":false,"use_as_default":false,"layers_enabled":false,"sync_to_project":"","render_mode":"default","render_sides":"auto","pbr_channel":"color","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"317aa5b2-43f6-2c29-56df-0795057532d3","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAIC0lEQVR4Xu2c22scVRjAZ5PsLZu0SbcP1XoptkirjWLFUqGIaJX6KIjQv8A3EetjQYSCT+Kb4F/go74oxWuVgrFiRVJtLb1p2yRq06ZJN3tLsvKd3e/k7OncLzuX7/tBmG/P7mzmzPebM+fMnNmcobH3eK1z9lglJwt6dJ43OrmTxj3laedmY60jX3jgwckxGXvh2u27Mo6Dh6ubZFyr1cwTChLAEkWA5JenS0aj0TD9fJqhJsDsK1WxfPZ021qAUqkkdsquYwvGzNcVA5IPsAAbpFUAbAH+WlgSS9uEQksAAiSl6YeWCJZhbo9fAe4b7x4UyMjIiIztiFsAHdsdaSZAXH0B9f+GuQ2DFuD62dMyjoOHnjggY8BxJ6oS4I4PMwFeSHILAKAEq6urvZIuavn8+TO90nh4/e3HxPLDpW5fwNWORAmmDtVEnyBKCbADqqO2RPC/YVvC4OQ7G4ncWhq2rc/CpRm5bQ/s3Y+hUa/XZazsU7Ue8nt14XI3/pCxGZ3t3YRZ4XV9dRQA2FZYxUwC+WaKURNCQQAd2wojWU0+QE2AraVho1KpyNe2FQYg+XA9IKsSUBXgwCEXw0BElcDsKmGa0RPiFrNOoBvi7gSiENgXcJ3MJCQ/6aMANyRFACS0HRk16qgjzBGIXwGcThdWqKeROKjunJIx4KsScRFFC/DIjh2+EnL56lVf2+BXuLCAPoCKr0pECZxq5AsFteMZ5nWA749clrEXqjunfO27uAXQ8VWJLOG3SWYBMoLfhPi9G1guFmUcB7cWF2UMsADEBGi22zIGWIABC1Cv12Pd55VKpa++sW5MEohCAKu7gQALkDCoCaDXN9aNSQL6DnGLfiXQai4Agu+zAAlD3SFOV/fCuBm0ZWKiLwG3Fhdt/+exw4f7Pv/R9LSMAa/rv/XZ5zIGbFemQBoE+PjIURG/8ckHvgRQ12cBNKgJcPzEib7P265MgTQIIF+EcApgATT0TpFb9E6gW9rtdqL2eaI2Jg5YAOL4FcDpdJEWMlGJIMQ1HwAF0gXUy+G1Vax+DtHLzdZRuafAKzhJwy9hTu7ww6BvB6Nwp89fEq/3797ZfaOHXg6vq8UhES801/vKAa/r6xL4qkSWGLQAX736guf/92i7+zzhhbz15Wc71PVf+vRbFkAFn4QOA3x6Wv3O64vhzFyyQj+ivRJo5SwQpgBmhC1AYc/GpM7WuRkWICgsgA04QTPu5wGQKGYFRylALpcL7fcA3j36pli+/8V3vZKIBVAfBEnKQyFRPBegCwBJ63TCcyKsFmDgAgDcAvTjR44wBLjd2iXj1578TSy/Odd9wDOwAFbjeJh3r7YAMC8/CvRkDvq5gD/fm5AxMjzc//AEsra2JmO3zC03ZOyXSAWQEVHy+bypcGERhgAqL+7pis8ChETaBNBhAQLCAhCHBUgRUYwC9Bk6yHKtBvfuRZzP541x5WdVvHBhfkHGUUBGgEFdB9AZLdlP/HCakqXfrvVK0AQ7EemXh00ULQAKoP8MLpaHJUD54g9YJKjvek7GdpATYNDXAS4e7/5gIgtAFPUUYHY7NywB/MICpByQyUyilcbG6KBk8ch4o9kUS7v39ZbLK4FWzjowQnA6wp2wGmUg6x7vLegs3rkTaPsCrZxVMGmNVstYWVkJtI/cCFAsFo1msymWAMawdIIFCMjWalUmaF252bO6tib+Cvm8eLIXnvpVnwDGMqcEWJ0CADwN2DXxVu8hTv/fiUArZwGzIxQSD7Ta7cAJcCtAe3XVyPcEw5gFGACqAJh4jNfX12UCIFYZGupOtXZKAAoAv81TzOdFGcYoAN5+VgUA4PYzCxAxIAAmXhUAEw7Jg3L1PWBkeFj8OXUSQQBMMCRd/ZEmdX6BPgdBfc9KAh4FhMDo6OhGH0A7ygE80q1w6iSq1xT8wgIkmE3j47YJhn4EYNYPwFNAZXS0V9JPbWXFcRZS0IdNA62cBeAUYNeMwxFsdwTCKGFpedl0fZADThN25BxamKXlZRmbwQIEBE4BpUJBxGYiTGzeLI5wSPb927aJstn5eRHDMqgApXJZNPFqjx9jWP5386blT8xv270vWgGSNis4CkAA7NAhQ0oMY30810JrsGVy0pidmxMxJAn6DXYCwCnArPkH4BQA3zdz6ktZpjJ18OX4BFCfBVDjrAGJhKMYMDta682m5U+7oTyZFACg0AKAANDTV5OvxnYClMvlDozd3Qhgdx3gxu8/i6XO9sefEZ3ASAXASRY6cT0XMGhwmKYO91AAWIYhgDrGV68FYA8/VgFkRBQUQEWVwWmc74TZ9+uwAAmgUCh05v/517hy5YosA57e91Sm91GmK+eRTqFQMH6c/kkWAFYC3D13qu/IHttz0PRzSSeVGx0FcD6H5Y3ZOSwSbJmcMN1HLEDGGBsbEwn9+9p1LBJYCZAVMl05L3AfgDggQKvVMn4586ssA1gAB6yuI7gl7usAiNc+QFbIdOW8wH0ARoBPCwe9wJIWSFTSDyACBQkyX0E/UGoFMl9Br1A58hEyFWXMYQGIwwIQhwUgDgtAHBaAOCwAcVgA4rAAxGEBiMMCEIcFIA4LQBwWgDgsAHFYAOKwAMRhAYjDAhCHBSAOC0AcFoA4LABxWADisADEYQGIwwIQhwUgDgtAHBaAOCwAcVgA4rAAxGEBiMMCEIcFIA4LQBwWgDgsAHFYAOKwAMRhAYjDAhCHBSAOC0AcFoA4LABxWADisADEYQGIwwIQhwUgzv8G3T8Xwe1VnQAAAABJRU5ErkJggg=="},{"path":"/home/new/mc/1.21.1FabricSOD/figura/avatars/anan-sp/ear.png","name":"ear.png","folder":"block","namespace":"","id":"1","group":"","width":128,"height":128,"uv_width":32,"uv_height":32,"particle":false,"use_as_default":false,"layers_enabled":false,"sync_to_project":"","render_mode":"default","render_sides":"auto","pbr_channel":"color","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"4066da58-17e0-d9c3-23dc-c867bb5811c1","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAABMNJREFUeF7tnc1qFEEUhaczC0mGiBDjD6IEdREIuBF8BjcuFHwN9z6Be19D0IUbn0FwIwSy0I0iakhADJPoIlG7SeN0J6nqmpriTNf93Dn1c7ru+fpWTXWlp7i4svJnkPG/4XAYNLrv29tFUIOeVy4AoOkgAPSc6PblkwHchhY319acU8DPvT1nD+eXl53lvvapeasB2Pz01Sm1ceNqVW4uA+z8OnQCsH7tkjNwW1+2neW+9qkBCO1/Z3fX1hqgBuDB0x+NWL1+dqH6v8/AGoBp24calLq+SQBK82rD6wDXn3UBIKZ9akND+weA44gBQCg6/axflFNAzB1cTgEx7ectbGQAMoC9RWDMHUwGmLccFnY9TAGteDEFMAXYmwJcSaPL18CY9mEJK31tkxkgxkB2AtNDmVKhWgMAwP8ImMsA5cOgt1sfT2Xg3vqtge9hTvkwKKZ9Srqn6RsAJqIGANMg1K821ePgmDuYDNAvw9tXCwDW9wHIAE0CTK4BXEmsyyIwpv28JVAAaDkCAPOG6Gyvp1hcXHTuA4yWlpyK4/19Z7mv/WyHc3pvk6eWzjr4UrYsdz3NZQALAIRABgCtaPnu4D5kAAA4OwImpgAAAIDODJibAi6vrlaLwM3P35xn+zauX6mCeHh01DmYZcXhwkJVP1X/QRfToTIAHP89QB2r+rgYAHSgp4dViskMcO7uncHvd+8bw6g/mwUAKfqfdcxNZ4AUBk1OASn6B4C4CJABWvEzmQFGo1F1qMN1h5ZnA8bj8VSLwJT9x/F/srVZAF68fDX48OT+4PbzN42o1J89fvQwCoBU/QNAXASqKaC8Q1MZVK4BUvYfN3wygHkArKX8NvIAYOyFEABgfNUPAADQiED2r4kLXSRaWxMAgPGMAAAAkPerYpkC3BEwlwF8R9gODg5svR8g93cFt/kHgGZEyAAtQsgAoZNmz+qTAYxnAB+v7AP4IpR5OQBkbrBveADgi1Dm5QCQucHt4Vkz/MTTQGv7AADAt4BGBMgAGf5sHO8D6D6PZ78TyK+GGX8YBAAA0D0f/qtp7mfjcv8WwO8G9jwDtB/e+F5Zw+PfoIQ3mPtFIACEGRpaGwCMnQDq3U4gGSD0ng6rH50BQg3yHchoz/HtnbrQRav1nT4fDgDgi1Dm5QCQucG+4QGAL0KZl/fuDLxvDcCcH0YsAITFK7vaAJCdpWEDAoCweGVXu3cAZOeAeEAAIDZALQ8AagfE+gAgNkAtDwBqB8T6ACA2QC0PAGoHxPoAIDZALQ8AagfE+gAgNkAtDwBqB8T6ACA2QC0PAGoHxPoAIDZALQ8AagfE+gAgNkAtDwBqB8T6ACA2QC0PAGoHxPoAIDZALQ8AagfE+gAgNkAtDwBqB8T6ACA2QC0PAGoHxPoAIDZALQ8AagfE+gAgNkAtDwBqB8T6ACA2QC0PAGoHxPoAIDZALQ8AagfE+gAgNkAtDwBqB8T6ACA2QC0PAGoHxPoAIDZALQ8AagfE+gAgNkAtDwBqB8T6ACA2QC0PAGoHxPoAIDZALQ8AagfE+gAgNkAtDwBqB8T6ACA2QC0PAGoHxPoAIDZALQ8AagfE+gAgNkAtDwBqB8T6ACA2QC0PAGoHxPoAIDZALf8XVFvNrsW5a9gAAAAASUVORK5CYII="},{"path":"/home/new/mc/1.21.1FabricSOD/figura/avatars/anan-sp/hair.png","name":"hair.png","folder":"block","namespace":"","id":"2","group":"","width":64,"height":64,"uv_width":32,"uv_height":32,"particle":false,"use_as_default":false,"layers_enabled":false,"sync_to_project":"","render_mode":"default","render_sides":"auto","pbr_channel":"color","frame_time":1,"frame_order_type":"loop","frame_order":"","frame_interpolate":false,"visible":true,"internal":true,"saved":true,"uuid":"27612620-7ac5-34c7-72bd-d0b638709c37","source":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAABT5JREFUeF7tWrlW20AUtTgYjA1mMydAkYKTdPT5lfxJmpT5mPwKPWUOJVAYs9oYDDi6g67y9PBoGUmAiNyAZtPMffetI2+t25023uB3//AQeetCs2meLy4vvbjtdFdWplfX1x7+znle4+LqKnZ80tG89w5Aq9WKCAhAAQDu+80AcH0xN64Z4PnSxG84HFol2mw2p52lJTPuafqMC8BIknJcvzMDXgsAMmA8HnsSANf3azCc0VtbXc1mOwKJcQOaAf56puv45MToN8fdjsfm38lk4rzXWAa40mcWAIsLC2a5m9Go0Zyfjy790QDICpw2tkkMgG7v7uxMwQi8S7KiUCOY9SCu4z88AJCWBMf35xGsFgKVGN/fR9pbi4vPz4GKxBk3+n56gEK8gKtE9bw8APQ2Nxv9ft8sqQGQXoAAzBrneo7CLGseALIwgH5/uL9vGNc5PMx1hlyTJeplAaAZQAD2fw2nB7+/5QdAWldXGmHe8vJyZLq2AfTzun13ezsy78/RkREKPQCCHzwzDmAuAAZ8+37QOPzZySXEMOhwDSkJ4GsDAAYAmNwA5JG6y9x2u/0iucE6frtZjn5fxgBQA50EtTudyHiXvWBOLvq4vNQGADwBfloF0FZpALRxvLm5MQelyoz8sBk/1gEYMEHCZAP6i0p/tdBMuCkbGZiM7+5mChj9x6enpk8bMMwZnJ+H89Cv10kLQK/XC9lQKgC64JBE67m5uaQhpt+XbCr1QlIF+pP6mgHYH1JhrEmD62qwZ23cew8AxKnAhweAKtgOKj2aCTI01hlhKiomDHpzBiQBwOQJalAKANotEbBZOowNPDw+RjBNretB9dlWB4hjgHSDEYMt7IMrG7waABWZJTGAFpgxOcd/2toy7vTOz/cnfs1/tduNMmU4NM82BoyC/qR6ANbAHqRxdJU+5mVmgA0AWSOsFACyVLWxsdEYDAYG0FmSkFLXDAAAODiKobMAYICk4whmiTYG2NygTJNzMcB2M+QCgNwIkxu2VQ4AbpysACBxDLAZU67z9PRk/rUxICkO0O++n0zMeowSXVmQ+mborQBgHMB0GAcFa2V84Hp4YwSpS63gUsO2WF4AqOtc31YZ0pHg8PbWTEFFSAZCuBm22aosgFQOgCIToUwM0BWYF14giPQwjjm+kURQ7+d8GwN4b8B+KXkpUb63qPpAagakBQB5fP/s7N+eSwIgC83jxkYKInBVG+vrZjz9MicTALbzmdabFxuNQDfDl6a48aFhkxuFzdExAOkvXXfea/LcAHDTIWAFA8D1tRfIe3CuGwEA5SrW6uStLG9qJTNCRvg1PXm1JZlhVCElA2w0lfcCpXgBWRN0BUAaO9iAke+6QkNYMACFewGNvKzHo09aXdAO+ifpx2f5V+uyi8HS2Z78OqxIEF4ULmsAxFcZMuPSkqZUbe36Ti+OBbbMTreXwYJYBrgAwDmPQenM9nGTXDvN/1IddRDmomKhF7DZAJ198avMJBsgNyr9u84lZCQn36Xb8V58ESILMVi3KDsQRoJMK7/s7U2RkLwnAHDgovy+Fnh4UH1gopy1Hbov7/K1tChh/aWnrV1/F1SU5EMVmGVY5BVUWQBoidqSGwJQOgOou5IiWu/Q9/nH88UoPk/B72uQ+MibXLlGXBUJ4+B2kU+wDgAVRCAlvxPAOF0xymP45Fxrmcu2cX6ZURQARR3EdZ1UN7iui1dhXg1AFaRU5h5rBpSJbhXWrhlQBSmVuceaAWWiW4W1awZUQUpl7rFmQJnoVmHtmgFVkFKZe/zvGfAXAeO1jAF2/SMAAAAASUVORK5CYII="}],"animations":[{"uuid":"2840c542-d88e-8cf8-4432-5ed1d700ae09","name":"idling","loop":"loop","override":true,"length":5,"snapping":24,"selected":false,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":"","animators":{"340f043c-f084-d214-e483-742ec5a6d95c":{"name":"Ear","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"70396cf3-f723-fbb3-ecc9-3bc1ed88aedc","time":0,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"5","y":"0","z":"0"}],"uuid":"06499537-33fa-944e-7681-a1545a17cf38","time":3.25,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"e3b24c90-dcf6-4ce6-ffea-b8de1091494e","time":3,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"73c025b1-f298-09a5-6f8f-def24f6df954","time":3.5,"color":-1,"interpolation":"catmullrom"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"2336876b-be9b-df31-6ed9-0d660f7eef08","time":0,"color":-1,"interpolation":"catmullrom"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"8808ed41-18d1-e402-4a5e-dbd55eb0f5d6","time":3,"color":-1,"interpolation":"catmullrom"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"2bd40342-b8bb-ec9c-289c-6dff9532bbb5","time":3.5,"color":-1,"interpolation":"catmullrom"},{"channel":"scale","data_points":[{"x":"1","y":"1","z":"1"}],"uuid":"1c4d9431-902f-e7c9-aa0f-779d8aac3d9b","time":0,"color":-1,"uniform":true,"interpolation":"catmullrom"},{"channel":"scale","data_points":[{"x":"1","y":"1","z":"1"}],"uuid":"a6e67d12-e0ce-3ae1-09a4-2a0b42a29a6d","time":3,"color":-1,"uniform":true,"interpolation":"catmullrom"},{"channel":"scale","data_points":[{"x":"1","y":"1","z":"1"}],"uuid":"47292e1d-c37b-15ba-f33c-d1b029a897c8","time":3.5,"color":-1,"uniform":true,"interpolation":"catmullrom"}]},"497a7618-2991-2b3b-30d1-c5fb52b3ce34":{"name":"physEar1","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"a76fd0cc-1695-0639-ff0e-43f31a8f3385","time":0,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"87eab21d-5ae2-23f2-a4e5-f6fac3a07f2c","time":0.83333,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"a9a4e8c1-fecb-61bf-e349-372c7f90391d","time":1.16667,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"-7.5"}],"uuid":"9ffae00a-3cd2-a588-0fd0-2b64ebf938ad","time":1,"color":-1,"interpolation":"catmullrom"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"aecbd963-e05a-e958-6ae3-e0a662c77735","time":0,"color":-1,"interpolation":"catmullrom"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"07cf2875-606b-db09-b009-6bc8b2d9e59a","time":0.83333,"color":-1,"interpolation":"catmullrom"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"ee683795-fbdf-a755-8743-77a0e061b3a7","time":1.16667,"color":-1,"interpolation":"catmullrom"},{"channel":"scale","data_points":[{"x":"1","y":"1","z":"1"}],"uuid":"6a2ebf0c-3d8f-8159-2021-48137a3364e6","time":0,"color":-1,"uniform":true,"interpolation":"catmullrom"},{"channel":"scale","data_points":[{"x":"1","y":"1","z":"1"}],"uuid":"ca995b24-a33f-de99-0255-3c1444d6be31","time":0.83333,"color":-1,"uniform":true,"interpolation":"catmullrom"},{"channel":"scale","data_points":[{"x":"1","y":"1","z":"1"}],"uuid":"9ff29a02-c8a8-36b8-49e4-8b56c00a165e","time":1.16667,"color":-1,"uniform":true,"interpolation":"catmullrom"}]},"a1b3b7fe-dc0e-bc98-01b0-0bc7c6c5f3d0":{"name":"physEar2","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"c80ebf4b-e040-b46f-c787-50853519e04d","time":0,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"a4acb262-d1d4-296c-7b41-903eb8640845","time":0.83333,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"0eb785d3-6a0e-ba7f-5276-dee1a356fdef","time":1.16667,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"7.5"}],"uuid":"de6a7fac-1ade-f605-ccb3-1513cd18f1a4","time":1,"color":-1,"interpolation":"catmullrom"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"24bcccd6-420f-38fe-442e-aec0884157b9","time":0,"color":-1,"interpolation":"catmullrom"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"f170cba4-3a61-2394-1426-bd06069b88a9","time":0.83333,"color":-1,"interpolation":"catmullrom"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"a94d007e-82fb-1c11-2c88-45778857c986","time":1.16667,"color":-1,"interpolation":"catmullrom"},{"channel":"scale","data_points":[{"x":"1","y":"1","z":"1"}],"uuid":"8fab9693-84bd-1edf-62e3-3f3857ebc97a","time":0,"color":-1,"uniform":true,"interpolation":"catmullrom"},{"channel":"scale","data_points":[{"x":"1","y":"1","z":"1"}],"uuid":"a4011280-9daf-b422-3e8b-e9f41b1ebcf7","time":0.83333,"color":-1,"uniform":true,"interpolation":"catmullrom"},{"channel":"scale","data_points":[{"x":"1","y":"1","z":"1"}],"uuid":"2af5949d-34ad-fcb9-6c1d-96463e9fd3a2","time":1.16667,"color":-1,"uniform":true,"interpolation":"catmullrom"}]},"8583f689-8b52-b529-2a29-8b08a555a27c":{"name":"Eyes","type":"bone","keyframes":[{"channel":"scale","data_points":[{"x":"1","y":"0.5","z":"1"}],"uuid":"c6fb3418-fe74-ac99-aadc-52de0dfdd0bc","time":1.5,"color":-1,"uniform":false,"interpolation":"catmullrom"},{"channel":"scale","data_points":[{"x":"1","y":"1","z":"1"}],"uuid":"5f569c19-6eed-7851-e479-72713ca98354","time":1.45833,"color":-1,"uniform":true,"interpolation":"catmullrom"},{"channel":"scale","data_points":[{"x":"1","y":"1","z":"1"}],"uuid":"7342ad7a-4a13-7253-65b7-c9cb24347646","time":1.54167,"color":-1,"uniform":true,"interpolation":"catmullrom"}]},"d271cebd-d6dc-cd82-6af8-75923c7d735e":{"name":"Eyebrow","type":"bone","keyframes":[{"channel":"position","data_points":[{"x":"0","y":"-1","z":"0"}],"uuid":"bbf06ca2-7b26-0112-4c53-c5889f71deb5","time":1.5,"color":-1,"interpolation":"catmullrom"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"a8c1681f-3884-dc72-fa63-9acea5675bf9","time":1.45833,"color":-1,"interpolation":"catmullrom"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"786c1358-1e79-ddc3-5a30-4131f664652c","time":1.54167,"color":-1,"interpolation":"catmullrom"}]}}},{"uuid":"b49b65d4-6c4b-0274-e673-17afa21ff81b","name":"flying","loop":"loop","override":true,"length":1,"snapping":24,"selected":false,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":"","animators":{"cdd1cbda-5cb7-4302-9bd0-65f0d517bbb6":{"name":"root","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"68ed6084-16f7-3566-6001-a6b37b2c6393","time":0,"color":-1,"interpolation":"catmullrom"},{"channel":"position","data_points":[{"x":"0","y":"1","z":"0"}],"uuid":"42ecb557-05a8-2672-aa6a-c2ee29c188cb","time":0.5,"color":-1,"interpolation":"catmullrom"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"f052bb57-ec73-9cf9-ff56-ba6fadcae8e8","time":0,"color":-1,"interpolation":"catmullrom"},{"channel":"position","data_points":[{"x":"0","y":"0\n","z":"0"}],"uuid":"12eed216-bc64-47f6-e4b6-70031b5509e0","time":1,"color":-1,"interpolation":"catmullrom"}]},"c0168d8f-30f3-edc1-f53b-615a874f842e":{"name":"Torso","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"62d2a25a-1b78-24d3-9a18-2851b8e84702","time":0,"color":-1,"interpolation":"catmullrom"}]},"66d03ee3-1c31-4075-9cc3-bf85078929e1":{"name":"RightArm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"be32179f-be59-a62a-1a74-d162de296f73","time":0,"color":-1,"interpolation":"catmullrom"}]},"f4ac57d0-4874-b012-a61c-0f081d39af73":{"name":"radown","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"4944fbea-ca89-db7a-5642-45acbefd9284","time":0,"color":-1,"interpolation":"catmullrom"}]},"e13f538d-3f28-48da-875b-0e536ceb71e8":{"name":"LeftArm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"df0e1bfa-b46d-0ce8-6a4b-58d848ca0512","time":0,"color":-1,"interpolation":"catmullrom"}]},"fc0f3a2f-f2c7-e8fb-cd2c-ed2558d406fc":{"name":"ladown","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"00273bef-e29d-0a1c-b0bd-f5b4550e5099","time":0,"color":-1,"interpolation":"catmullrom"}]},"9411fcb5-6dbf-4856-b956-99c7e0b7afff":{"name":"LeftLeg","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"-25","y":"0","z":"0"}],"uuid":"79c41d3a-50b5-a248-2349-d6ab34b0df24","time":0,"color":-1,"interpolation":"catmullrom"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"2bc92b5c-7cdc-56bf-70c7-1883e83e0edd","time":0,"color":-1,"interpolation":"catmullrom"}]},"b445eec0-7007-997b-3dc6-0b75cf3bfeb3":{"name":"lldown","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"50","y":"0","z":"0"}],"uuid":"fa5f1687-8aba-4180-f39b-c494aa6be206","time":0,"color":-1,"interpolation":"catmullrom"},{"channel":"position","data_points":[{"x":"0","y":"1","z":"-0.1"}],"uuid":"f9dbddff-315d-fdb6-a3de-00705a16f527","time":0,"color":-1,"interpolation":"catmullrom"}]},"ec722c93-b27a-4b9f-b334-d37542f84978":{"name":"RightLeg","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"75c3f09d-f15d-c601-99f7-40c1c40f71ec","time":0,"color":-1,"interpolation":"catmullrom"}]},"62f5ffa8-af0a-80b5-1ca4-347f747ec799":{"name":"rldown","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"399a317b-7a5c-81d9-e163-f3b1105a94e4","time":0,"color":-1,"interpolation":"catmullrom"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"ec74a2be-d25e-4160-967f-9a0820b77d00","time":0,"color":-1,"interpolation":"catmullrom"}]}}},{"uuid":"79b89104-b506-2455-3274-3dd976af1a49","name":"flywalk","loop":"loop","override":true,"length":1,"snapping":24,"selected":false,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":"","animators":{"cdd1cbda-5cb7-4302-9bd0-65f0d517bbb6":{"name":"root","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"7.5","y":"0","z":"0"}],"uuid":"7b140cb9-6c0a-89fd-460d-c2f33e44a594","time":0,"color":-1,"interpolation":"catmullrom"}]},"c0168d8f-30f3-edc1-f53b-615a874f842e":{"name":"Torso","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"d5a210a0-3609-98c9-d9ad-c85acb72b2f7","time":0,"color":-1,"interpolation":"catmullrom"}]},"66d03ee3-1c31-4075-9cc3-bf85078929e1":{"name":"RightArm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"5605c21a-9d71-2bf1-4551-bc8e29d412f0","time":0,"color":-1,"interpolation":"catmullrom"}]},"f4ac57d0-4874-b012-a61c-0f081d39af73":{"name":"radown","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"ce57a611-9659-ce17-d155-aa008af7b6b0","time":0,"color":-1,"interpolation":"catmullrom"}]},"e13f538d-3f28-48da-875b-0e536ceb71e8":{"name":"LeftArm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"e489fbc5-e4a8-7173-e940-16cafa6d5ee0","time":0,"color":-1,"interpolation":"catmullrom"}]},"fc0f3a2f-f2c7-e8fb-cd2c-ed2558d406fc":{"name":"ladown","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"4e9cd770-7d72-aad5-8ee1-51ac56196f44","time":0,"color":-1,"interpolation":"catmullrom"}]},"9411fcb5-6dbf-4856-b956-99c7e0b7afff":{"name":"LeftLeg","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"d23fb80e-5628-0e51-971d-b926c0ea928e","time":0,"color":-1,"interpolation":"catmullrom"}]},"b445eec0-7007-997b-3dc6-0b75cf3bfeb3":{"name":"lldown","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"f8afb25e-6ff5-148b-9757-17f00a656dd5","time":0,"color":-1,"interpolation":"catmullrom"}]},"ec722c93-b27a-4b9f-b334-d37542f84978":{"name":"RightLeg","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"d62d8ad5-838f-89b4-a362-65b493f2ff0d","time":0,"color":-1,"interpolation":"catmullrom"}]},"62f5ffa8-af0a-80b5-1ca4-347f747ec799":{"name":"rldown","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"85e8aa36-7e06-fa6a-bd2a-9d7bef806d21","time":0,"color":-1,"interpolation":"catmullrom"}]}}},{"uuid":"7e1dae84-927e-22e8-583f-3c9b5ec73638","name":"falling","loop":"once","override":true,"length":0.5,"snapping":24,"selected":false,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":"","animators":{"66d03ee3-1c31-4075-9cc3-bf85078929e1":{"name":"RightArm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"40"}],"uuid":"85545c9c-1d71-1bc5-e518-9de279d3cd7e","time":0,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"30"}],"uuid":"99f68c03-77ce-ce7d-89f7-2e45424c1165","time":0.25,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"40"}],"uuid":"05535fc6-343e-3ca0-da4b-d9910778d006","time":0.5,"color":-1,"interpolation":"linear"}]},"e13f538d-3f28-48da-875b-0e536ceb71e8":{"name":"LeftArm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"-40"}],"uuid":"181606ed-6dd9-4329-1317-8d6f8fe64cc1","time":0,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"-30"}],"uuid":"1ef07af2-f34d-3c47-0afc-8f73c9bad1cc","time":0.25,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"-40"}],"uuid":"0701fdf2-71a9-c592-dade-a586a4b0ba33","time":0.5,"color":-1,"interpolation":"linear"}]}}},{"uuid":"7c011cfb-6aba-165b-4d09-1fb9154a52fc","name":"sit_down","loop":"hold","override":true,"length":2,"snapping":24,"selected":false,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":"","animators":{"cdd1cbda-5cb7-4302-9bd0-65f0d517bbb6":{"name":"root","type":"bone","keyframes":[{"channel":"position","data_points":[{"x":"0","y":"-10","z":"0"}],"uuid":"06e6d39d-c5ff-6ca5-5a6d-98a52b542a3b","time":0,"color":-1,"interpolation":"linear"}]},"e13f538d-3f28-48da-875b-0e536ceb71e8":{"name":"LeftArm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"-51.12608621921618","y":"5.722462440097388","z":"11.947235503464526"}],"uuid":"590985eb-9a43-deb5-1b08-41aec7cbe4b0","time":0,"color":-1,"interpolation":"linear"}]},"66d03ee3-1c31-4075-9cc3-bf85078929e1":{"name":"RightArm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"-53.714331465718715","y":"-14.260077940778501","z":"-10.2510263087147"}],"uuid":"5c0676fe-0eae-eee7-53eb-aeeb56e96815","time":0,"color":-1,"interpolation":"linear"}]},"9411fcb5-6dbf-4856-b956-99c7e0b7afff":{"name":"LeftLeg","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"-83.99033927878008","y":"-24.594766592722863","z":"-4.629338270886365"}],"uuid":"131d2815-2fd2-d6da-5e20-ca7478cf5d3d","time":0,"color":-1,"interpolation":"linear"}]},"ec722c93-b27a-4b9f-b334-d37542f84978":{"name":"RightLeg","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"-86.49033927878008","y":"24.594766592722863","z":"4.629338270886365"}],"uuid":"1aa346d3-6933-566c-ad61-d41ec9004199","time":0,"color":-1,"interpolation":"linear"}]}}},{"uuid":"2b25c3df-02d8-1fc9-e264-dc5ebc8aa2cb","name":"sprinting","loop":"loop","override":true,"length":1.33333,"snapping":18,"selected":false,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":"","animators":{"cdd1cbda-5cb7-4302-9bd0-65f0d517bbb6":{"name":"root","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"25","y":"0","z":"0"}],"uuid":"add1eaaa-ede2-9b64-9726-11539366934b","time":0,"color":-1,"interpolation":"linear"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"154138d0-d051-3d7b-5957-26f9c6d492e0","time":0,"color":-1,"interpolation":"linear"},{"channel":"position","data_points":[{"x":"0","y":"2","z":"0"}],"uuid":"43d1d5bc-3611-c890-370f-3b68d73fe76b","time":0.16667,"color":-1,"interpolation":"linear"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"084e6bb8-7b7c-b75a-4f39-948c26c2372b","time":0.33333,"color":-1,"interpolation":"linear"},{"channel":"position","data_points":[{"x":"0","y":"2","z":"0"}],"uuid":"866cddad-3aa0-a065-7e57-091b4e035403","time":0.5,"color":-1,"interpolation":"linear"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"a33f29f7-0fd5-81f8-dad4-eedfcc3503cd","time":0.66667,"color":-1,"interpolation":"linear"},{"channel":"position","data_points":[{"x":"0","y":"2","z":"0"}],"uuid":"e4460014-7dea-d34f-7bb3-1ee3e68ad7e4","time":0.83333,"color":-1,"interpolation":"linear"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"4e8ddf5d-0a3c-3765-0d7c-26479b64d16f","time":1,"color":-1,"interpolation":"linear"},{"channel":"position","data_points":[{"x":"0","y":"2","z":"0"}],"uuid":"7132bf78-1282-649f-d94b-627d876e5b20","time":1.16667,"color":-1,"interpolation":"linear"},{"channel":"position","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"f66f6db9-9cce-387d-d053-4a3d6606f954","time":1.33333,"color":-1,"interpolation":"linear"}]},"66d03ee3-1c31-4075-9cc3-bf85078929e1":{"name":"RightArm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"50","y":"0","z":"0"}],"uuid":"02a844ce-9207-699b-f8ce-8cc3c61f8115","time":0,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-60","y":"0","z":"0"}],"uuid":"fb877304-64e7-45ba-a71d-e4559952236f","time":0.33333,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"50","y":"0","z":"0"}],"uuid":"0e7112cd-2c0a-a55a-26f1-ea5854005952","time":0.66667,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-60","y":"0","z":"0"}],"uuid":"0f154192-ed7a-73a9-5185-8832f2a7f9e5","time":1,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"50","y":"0","z":"0"}],"uuid":"bd67a0b2-98aa-f62d-5fe9-c49c930a2ae6","time":1.33333,"color":-1,"interpolation":"catmullrom"}]},"f4ac57d0-4874-b012-a61c-0f081d39af73":{"name":"radown","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"-45","y":"0","z":"0"}],"uuid":"5d927a11-e6da-69c5-aab8-88182b374a15","time":1.33333,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-45","y":"0","z":"0"}],"uuid":"3effe46b-3437-2695-e138-1efd468e7270","time":0,"color":-1,"interpolation":"catmullrom"}]},"e13f538d-3f28-48da-875b-0e536ceb71e8":{"name":"LeftArm","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"-60","y":"0","z":"0"}],"uuid":"41c89ac7-38fd-35bc-ce80-fb8a9c9eed68","time":0,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"50","y":"0","z":"0"}],"uuid":"95b7935f-6ff5-a35c-32c7-2f276c4004a3","time":0.33333,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-60","y":"0","z":"0"}],"uuid":"6dc5ef30-15d6-edf5-bc0b-137f8cfb366a","time":0.66667,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"50","y":"0","z":"0"}],"uuid":"175296e1-b0df-8993-d5e2-3ff32ae3b31b","time":1,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-60","y":"0","z":"0"}],"uuid":"bcbecd03-2dab-184e-4098-490fb3bb3a45","time":1.33333,"color":-1,"interpolation":"catmullrom"}]},"fc0f3a2f-f2c7-e8fb-cd2c-ed2558d406fc":{"name":"ladown","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"-45","y":"0","z":"0"}],"uuid":"c7e37975-1ce6-6544-38e1-95c7c94e38ec","time":0,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-45","y":"0","z":"0"}],"uuid":"d030feb8-c9c6-ed08-3103-7c2c23904f1c","time":1.33333,"color":-1,"interpolation":"catmullrom"}]},"9411fcb5-6dbf-4856-b956-99c7e0b7afff":{"name":"LeftLeg","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"22.5","y":"0","z":"0"}],"uuid":"ba0c45e0-9dd0-acc6-afff-04cb1d2f87a4","time":0,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-90","y":"0","z":"0"}],"uuid":"03560f40-787e-586b-f9ea-75e65f5509a7","time":0.16667,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-60","y":"0","z":"0"}],"uuid":"0560e4db-0af8-038a-860b-9f4933c139f6","time":0.33333,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-20","y":"0","z":"0"}],"uuid":"e0d8d5da-0d1e-f8ae-ff94-8f52effde4ff","time":0.5,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"22.5","y":"0","z":"0"}],"uuid":"6f7d4ac6-6728-e2c1-c906-55f51701e725","time":0.66667,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-90","y":"0","z":"0"}],"uuid":"f58d21ba-6c72-4903-aa19-3c27b2c06b96","time":0.83333,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-60","y":"0","z":"0"}],"uuid":"c5049ea9-f612-90fa-73b2-45dfec225874","time":1,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-20","y":"0","z":"0"}],"uuid":"e782593c-3b20-bb96-ecaf-4125cfe3a21b","time":1.16667,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"22.5","y":"0","z":"0"}],"uuid":"de5b087c-d5f7-9a80-2c41-e8bd83f4030e","time":1.33333,"color":-1,"interpolation":"catmullrom"}]},"b445eec0-7007-997b-3dc6-0b75cf3bfeb3":{"name":"lldown","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"57.5","y":"0","z":"0"}],"uuid":"e5a0cc90-ac6f-fd6d-12ef-3bd473ff820a","time":0,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"57.5","y":"0","z":"0"}],"uuid":"e8c199f6-4d6f-2f3a-348c-51f9fe743933","time":0.16667,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"27.5","y":"0","z":"0"}],"uuid":"6b03b0d8-9113-2167-3035-7ad555c6d2aa","time":0.33333,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"27.5","y":"0","z":"0"}],"uuid":"fecc7403-9ccc-0771-1001-c67300924140","time":0.5,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"57.5","y":"0","z":"0"}],"uuid":"93b6609a-1198-f94e-6a7a-abedb62df18f","time":0.66667,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"57.5","y":"0","z":"0"}],"uuid":"ac1f4482-04bf-0c99-9bd5-256e86fdddae","time":0.83333,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"27.5","y":"0","z":"0"}],"uuid":"deeecfc3-6166-d57c-b33a-fd2f665939d5","time":1,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"27.5","y":"0","z":"0"}],"uuid":"b5a1d134-7895-6afb-b59b-f40126efc7b0","time":1.16667,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"57.5","y":"0","z":"0"}],"uuid":"6f7e4384-b64b-cc8e-2c1a-6d37c2b253e1","time":1.33333,"color":-1,"interpolation":"catmullrom"}]},"ec722c93-b27a-4b9f-b334-d37542f84978":{"name":"RightLeg","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"-20","y":"0","z":"0"}],"uuid":"fa8c767d-7739-3fdb-d199-b68288096f19","time":0.16667,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"22.5","y":"0","z":"0"}],"uuid":"d6e9fba9-da16-69b4-86d8-5f918816a6de","time":0.33333,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-90","y":"0","z":"0"}],"uuid":"7ec78849-4b4d-852f-abce-9a85da6f6cb4","time":0.5,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-60","y":"0","z":"0"}],"uuid":"464a4530-17db-cb56-ff7f-82c0a40ce6f9","time":0.66667,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-20","y":"0","z":"0"}],"uuid":"e48472a9-1f79-0c5f-7233-6f1f2c73f34c","time":0.83333,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"22.5","y":"0","z":"0"}],"uuid":"4b3da88f-6cd1-cbaa-9ab9-193ffffbd816","time":1,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-90","y":"0","z":"0"}],"uuid":"91c83ccd-b7ce-486d-bf7a-31a2a33d6f6b","time":1.16667,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-60","y":"0","z":"0"}],"uuid":"33ee67ec-8740-e22b-84d1-2aef3e39f64e","time":1.33333,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"-60","y":"0","z":"0"}],"uuid":"de479eae-1135-fb03-9d01-c9afa96b5f24","time":0,"color":-1,"interpolation":"catmullrom"}]},"62f5ffa8-af0a-80b5-1ca4-347f747ec799":{"name":"rldown","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"27.5","y":"0","z":"0"}],"uuid":"75264f68-c9e0-625c-f7ab-b2baaa6dec25","time":0,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"27.5","y":"0","z":"0"}],"uuid":"712340fb-ed52-f19f-d42a-8817a3c9af95","time":0.16667,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"57.5","y":"0","z":"0"}],"uuid":"0a2a7674-9fa1-f356-d134-8fb657659d79","time":0.33333,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"57.5","y":"0","z":"0"}],"uuid":"a0a6c0e8-343a-671e-6caf-dada804a7fcc","time":0.5,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"27.5","y":"0","z":"0"}],"uuid":"f03ada31-b10b-f9a4-e0ca-7564bd35535b","time":0.66667,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"27.5","y":"0","z":"0"}],"uuid":"0c0419a8-3ff4-86ef-8d66-1e116907db29","time":0.83333,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"57.5","y":"0","z":"0"}],"uuid":"37de5625-078f-017f-fb5e-3247758ab851","time":1,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"57.5","y":"0","z":"0"}],"uuid":"cd3aac55-2f5f-8391-e385-e024023144ca","time":1.16667,"color":-1,"interpolation":"catmullrom"},{"channel":"rotation","data_points":[{"x":"27.5","y":"0","z":"0"}],"uuid":"0177caf0-51b1-d896-545a-74fc06400201","time":1.33333,"color":-1,"interpolation":"catmullrom"}]},"c0168d8f-30f3-edc1-f53b-615a874f842e":{"name":"Torso","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"b301ec73-4e4d-9c79-c342-314af7a5cefd","time":0,"color":-1,"interpolation":"linear"}]}}},{"uuid":"f874902b-2fc1-3cd1-e6fb-1351d24ed7ff","name":"stand_up","loop":"once","override":false,"length":2,"snapping":24,"selected":false,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":""},{"uuid":"c863d82c-a5c6-b6c1-50fe-bb5c31c3b6b1","name":"shake","loop":"once","override":false,"length":1,"snapping":24,"selected":true,"anim_time_update":"","blend_weight":"","start_delay":"","loop_delay":"","animators":{"c0168d8f-30f3-edc1-f53b-615a874f842e":{"name":"Torso","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"59179209-46e1-50bf-a939-a25a3eaba4fc","time":0,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"5","z":"0"}],"uuid":"a63fc0bb-8adc-d248-b185-ac8a6bdecb5c","time":0.08333,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"-5","z":"0"}],"uuid":"823bef73-292e-5345-13da-7b132b87aedf","time":0.16667,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"5","z":"0"}],"uuid":"f7932aa7-f9bf-c43a-daa0-8155ece0ff55","time":0.25,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"-5","z":"0"}],"uuid":"2fc7c76b-332e-128c-33d9-d33e4dac0efd","time":0.33333,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"5","z":"0"}],"uuid":"3effc486-7ed2-cea4-bd98-ffd0f6e66057","time":0.41667,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"-5","z":"0"}],"uuid":"76f2f1bb-c6b7-2207-98a6-504dcce41c02","time":0.5,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"5","z":"0"}],"uuid":"4682abcd-7a35-f28c-6c66-abde8912f2a6","time":0.58333,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"-5","z":"0"}],"uuid":"4437a24f-4484-32a6-b7bd-02de7483d55d","time":0.66667,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"5","z":"0"}],"uuid":"2d184dfb-5790-aa11-22d9-9a38b7665c29","time":0.75,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"-5","z":"0"}],"uuid":"ebd1c950-5ae1-9508-463b-0f0fc650d246","time":0.83333,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"5","z":"0"}],"uuid":"a165402e-850f-c5e8-111f-e7c61bd4eb5d","time":0.91667,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"a6d66c2e-da59-0194-eac5-fb0fe6f300cf","time":1,"color":-1,"interpolation":"linear"}]},"6f690d02-d701-4883-a322-436f46e8c785":{"name":"Head","type":"bone","keyframes":[{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"783ea855-182a-1c08-6023-c82125805303","time":0,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"20","z":"0"}],"uuid":"b1552f66-cc37-4f77-677f-42d1eaa4474f","time":0.08333,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"-20","z":"0"}],"uuid":"4bfc3945-2db1-757b-a916-2e49ee2b439b","time":0.16667,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"20","z":"0"}],"uuid":"7c5af19f-21d6-c87a-99d0-92eee94ff43f","time":0.25,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"-20","z":"0"}],"uuid":"a969206a-e0a3-ccd4-e979-2073c75372fa","time":0.33333,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"20","z":"0"}],"uuid":"54a970f9-bef3-fbea-e083-7edffaa18812","time":0.41667,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"0","z":"0"}],"uuid":"b42316ad-481b-af2e-e73f-36e1e973bb8c","time":1,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"-20","z":"0"}],"uuid":"aa941391-0e87-4625-d885-4cdea9959a43","time":0.5,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"20","z":"0"}],"uuid":"dce6cb6f-4ddf-5433-dd4b-18999b1115d7","time":0.58333,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"-20","z":"0"}],"uuid":"56bf3aa0-6dea-b80f-2421-599fe733454d","time":0.66667,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"20","z":"0"}],"uuid":"0c11ed96-5880-b8d9-86bd-8e9a1d491c11","time":0.75,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"-20","z":"0"}],"uuid":"213b55f0-677e-fac5-7ffc-0b2c1c8229e8","time":0.83333,"color":-1,"interpolation":"linear"},{"channel":"rotation","data_points":[{"x":"0","y":"20","z":"0"}],"uuid":"dc9b5804-8e54-b7c6-45c3-3f6570da57d6","time":0.91667,"color":-1,"interpolation":"linear"}]}}}]} -------------------------------------------------------------------------------- /anan/physBoneAPI.lua: -------------------------------------------------------------------------------- 1 | -- Physbone 2.0 pre-release 1 By ChloeSpacedOut <3 2 | local physBone = {} 3 | local physBoneIndex = {} 4 | local boneID = 0 5 | local lastDeltaTime,lasterDeltaTime,lastestDeltaTime,lastDelta = 1,1,1,1 6 | local physBonePresets = {} 7 | local debugMode = false 8 | 9 | -- preset physBone functions 10 | physBone.setPreset = function(self,ID,gravity,airResistance,simSpeed,equilibrium,springForce,rotMod) 11 | local presetCache = {} 12 | local references = {gravity = gravity, airResistance = airResistance, simSpeed = simSpeed, equilibrium = equilibrium, springForce = springForce, rotMod = rotMod} 13 | local fallbacks = {gravity = -9.81, airResistance = 0.1, simSpeed = 1, equilibrium = vec(0,0), springForce = 0, rotMod = vec(0,0,0)} 14 | for valID, fallbackVal in pairs(fallbacks) do 15 | presetVal = references[valID] 16 | if presetVal then 17 | presetCache[valID] = presetVal 18 | else 19 | presetCache[valID] = fallbackVal 20 | end 21 | end 22 | physBonePresets[ID] = presetCache 23 | end 24 | 25 | physBone.removePreset = function(self,ID) 26 | if not physBonePresets[ID] then error('error removing preset: preset "'..ID..'" does not exist') end 27 | physBonePresets[ID] = nil 28 | end 29 | 30 | physBone:setPreset("physBone") 31 | physBone:setPreset("physBoob",nil,0.2,2,nil,70,vec(-90,0,0)) 32 | physBone:setPreset("physEar",nil,0.3,2,vec(90,0),30,vec(0,180,180)) 33 | 34 | -- models API function: method by GS 35 | local old_class_index = figuraMetatables.ModelPart.__index 36 | local class_methods = { 37 | newPhysBone = function(self,physBonePreset) 38 | local ID = self:getName() 39 | if physBone[ID] then error('error making physBone: this physBone "'..ID..'" already exists') end 40 | if not physBonePreset then error('error making physBone: your preset can not be nil') end 41 | if not physBonePresets[physBonePreset] then error('error making physBone: preset "'..physBonePreset..'" does not exist') end 42 | local preset = physBonePresets[physBonePreset] 43 | part = self 44 | 45 | boneID = boneID + 1 46 | physBoneIndex[boneID] = ID 47 | physBone[ID] = newPhysBone(part,preset.gravity,preset.airResistance,preset.simSpeed,preset.equilibrium,preset.springForce,preset.rotMod) 48 | part:setRot(0,90,0) 49 | return physBone[ID] 50 | end, 51 | getPhysBone = function(self) 52 | local ID = self:getName() 53 | if not physBone[ID] then error('cannot get physBone: this part does not have a physBone') end 54 | return physBone[ID] 55 | end 56 | } 57 | 58 | function figuraMetatables.ModelPart:__index(key) 59 | if class_methods[key] then 60 | return class_methods[key] 61 | else 62 | return old_class_index(self, key) 63 | end 64 | end 65 | 66 | -- Indexes a physBone 67 | local function newPhysBone(path,gravity,airResistance,simSpeed,equilibrium,springForce,rotMod) 68 | local ID = path:getName() 69 | return { 70 | ID = ID, 71 | path = path, 72 | pos = path:partToWorldMatrix():apply(), 73 | lastPos = path:partToWorldMatrix():apply(), 74 | gravity = gravity, 75 | setGravity = 76 | function(self,data) 77 | self.gravity = data 78 | return self 79 | end, 80 | getGravity = 81 | function(self) 82 | return self.gravity 83 | end, 84 | airResistance = airResistance, 85 | setAirResistance = 86 | function(self,data) 87 | self.airResistance = data 88 | return self 89 | end, 90 | getAirResistance = 91 | function(self) 92 | return self.airResistance 93 | end, 94 | simSpeed = simSpeed, 95 | setSimSpeed = 96 | function(self,data) 97 | self.simSpeed = data 98 | return self 99 | end, 100 | getSimSpeed = 101 | function(self) 102 | return self.simSpeed 103 | end, 104 | equilibrium = equilibrium, 105 | setEquilibrium = 106 | function(self,data) 107 | self.equilibrium = data 108 | if host:isHost() then 109 | local springForceGroup = self.path.PB_Debug_SpringForce 110 | local pivot = springForceGroup:getPivot() 111 | local mat = matrices.mat4() 112 | mat:scale(1,self.springForce/50,1) 113 | mat:translate(-pivot) 114 | mat:rotate(0,0,data.x+90) 115 | mat:rotate(0,data.y,0) 116 | mat:translate(pivot) 117 | springForceGroup:setMatrix(mat) 118 | end 119 | return self 120 | end, 121 | getEquilibrium = 122 | function(self) 123 | return self.equilibrium 124 | end, 125 | springForce = springForce, 126 | setSpringForce = 127 | function(self,data) 128 | self.springForce = data 129 | return self 130 | end, 131 | getSpringForce = 132 | function(self) 133 | return self.springForce 134 | end, 135 | rotMod = rotMod, 136 | setRotMod = 137 | function(self,data) 138 | self.rotMod = data 139 | if host:isHost() then 140 | self.path.PB_Debug_Direction:setRot(-data) 141 | end 142 | return self 143 | end, 144 | getRotMod = 145 | function(self) 146 | return self.upsideDown 147 | end, 148 | remove = 149 | function(self) 150 | local path = self.path 151 | boneID = 0 152 | local newIndex = {} 153 | for k,v in pairs(physBoneIndex) do 154 | if v ~= ID then 155 | boneID = boneID + 1 156 | newIndex[boneID] = v 157 | end 158 | end 159 | physBoneIndex = newIndex 160 | physBone[ID] = nil 161 | for k,v in pairs(path:getChildren()) do 162 | v:setRot(v:getRot()) 163 | end 164 | path:setRot(0,0,0) 165 | end 166 | } 167 | end 168 | 169 | -- Generates a physBone's debug model 170 | local testTexture = textures:newTexture("test",1,1):setPixel(0,0,vec(1,1,1)) 171 | function addDebugParts(part,preset) 172 | local pivotGroup = part:newPart("PB_Debug_Pivot","Camera") 173 | pivotGroup:newSprite("pivot") 174 | :setTexture(testTexture,1,1) 175 | :setColor(1,0,0) 176 | :setRenderType("EMISSIVE_SOLID") 177 | :setMatrix(matrices.mat4():translate(0.5,0.5,0.5):scale(0.5,0.5,0.5):rotate(0,0,0) * 0.1) 178 | 179 | local directionGroup = part:newPart("PB_Debug_Direction") 180 | for k = 3, 6 do 181 | directionGroup:newSprite("line"..k) 182 | :setTexture(testTexture,1,1) 183 | :setRenderType("EMISSIVE_SOLID") 184 | :setMatrix(matrices.mat4():translate(0.5,0,0.5):scale(0.5,3,0.5):rotate(0,k*90,0) * 0.12) 185 | end 186 | directionGroup:setRot(-preset.rotMod) 187 | local springForceGroup = part:newPart("PB_Debug_SpringForce") 188 | for k = 3, 6 do 189 | springForceGroup:newSprite("line"..k) 190 | :setTexture(testTexture,1,1) 191 | :setColor(0,0,1) 192 | :setRenderType("EMISSIVE_SOLID") 193 | :setMatrix(matrices.mat4():translate(0.5,0,0.5):scale(0.25,3,0.25):rotate(0,k*90,0) * 0.11) 194 | end 195 | local pivot = springForceGroup:getPivot() 196 | local mat = matrices.mat4() 197 | mat:translate(-pivot) 198 | mat:scale(1,preset.springForce/50,1) 199 | mat:rotate(0,0,preset.equilibrium.x+90) 200 | mat:rotate(0,preset.equilibrium.y,0) 201 | mat:translate(pivot) 202 | springForceGroup:setMatrix(mat) 203 | 204 | for k,v in pairs({"PB_Debug_Pivot","PB_Debug_Direction","PB_Debug_SpringForce"}) do 205 | part[v]:setVisible(false) 206 | end 207 | end 208 | 209 | -- Pendulum object initialization 210 | function events.entity_init() 211 | local function findCustomParentTypes(path) 212 | for _,part in pairs(path:getChildren()) do 213 | local ID = part:getName() 214 | for presetID,preset in pairs(physBonePresets) do 215 | if string.find(ID,presetID,0) then 216 | boneID = boneID + 1 217 | physBoneIndex[boneID] = ID 218 | physBone[ID] = newPhysBone(part,preset.gravity,preset.airResistance,preset.simSpeed,preset.equilibrium,preset.springForce,preset.rotMod) 219 | part:setRot(0,90,0) 220 | if host:isHost() then 221 | addDebugParts(part,preset) 222 | end 223 | end 224 | end 225 | findCustomParentTypes(part) 226 | end 227 | end 228 | findCustomParentTypes(models) 229 | end 230 | 231 | -- Debug Keybind 232 | local debugKeybind = keybinds:newKeybind("Toggle PhysBone Debug Mode","key.keyboard.grave.accent") 233 | function debugKeybind.press() 234 | debugMode = not debugMode 235 | for _,boneID in pairs(physBoneIndex) do 236 | for k,v in pairs({"PB_Debug_Pivot","PB_Debug_Direction","PB_Debug_SpringForce"}) do 237 | physBone[boneID].path[v]:setVisible(debugMode) 238 | end 239 | end 240 | end 241 | 242 | -- Simple Clock 243 | local physClock = 0 244 | function events.tick() 245 | physClock = physClock + 1 246 | end 247 | 248 | -- Render Function Chooser 249 | local renderFunction 250 | if host:isHost() then 251 | renderFunction = "world_render" 252 | else 253 | renderFunction = "render" 254 | end 255 | 256 | -- Render Function 257 | events[renderFunction] = function (delta) 258 | -- Time Calculations 259 | deltaTime = (physClock + delta) - lastDelta 260 | 261 | -- If world time / render somehow runs twice, don't run 262 | if deltaTime == 0 then return end 263 | 264 | for _,ID in ipairs(physBoneIndex) do 265 | 266 | -- Pendulum logic 267 | local pendulumBase = physBone[ID].path:partToWorldMatrix():apply() 268 | local velocity = (physBone[ID].pos - physBone[ID].lastPos) / lastestDeltaTime / (physBone[ID].simSpeed/100) 269 | 270 | -- Air Resistance 271 | local airResistanceFactor = physBone[ID].airResistance 272 | local airResistance = velocity * (-airResistanceFactor) 273 | velocity = velocity + airResistance * lasterDeltaTime 274 | 275 | -- Spring force 276 | local equalib = physBone[ID].equilibrium 277 | local relativeDirMat = physBone[ID].path:getParent():partToWorldMatrix():copy() * matrices.mat4():rotate(equalib.x,equalib.y) 278 | local reliveDir = relativeDirMat:applyDir(0,0,-1):normalized() 279 | local springForce = reliveDir * physBone[ID].springForce 280 | velocity = velocity + springForce * lasterDeltaTime 281 | 282 | -- Gravity 283 | velocity = velocity + vec(0, physBone[ID].gravity,0) * lasterDeltaTime 284 | 285 | -- Finalise Physics 286 | physBone[ID].lastPos = physBone[ID].pos:copy() 287 | local direction = (physBone[ID].pos + velocity * lasterDeltaTime * (physBone[ID].simSpeed/100)) - pendulumBase 288 | physBone[ID].pos = pendulumBase + direction:normalized() 289 | 290 | -- Rotation Calcualtion 291 | local relativeVec = (physBone[ID].path:partToWorldMatrix()):invert():apply(pendulumBase + (physBone[ID].pos - pendulumBase)):normalize() 292 | relativeVec = vectors.rotateAroundAxis(90,relativeVec,vec(-1,0,0)) 293 | yaw = math.deg(math.atan2(relativeVec.x,relativeVec.z)) 294 | pitch = math.deg(math.asin(-relativeVec.y)) 295 | 296 | -- Transform Matrix 297 | local parentPivot = physBone[ID].path:getPivot() 298 | for _,part in pairs(physBone[ID].path:getChildren()) do 299 | local partID = part:getName() 300 | if partID ~= "PB_Debug_Pivot" and partID ~= "PB_Debug_SpringForce" then 301 | local pivot = part:getPivot() 302 | local mat = matrices.mat4() 303 | local rot = part:getRot() 304 | 305 | mat:translate(-pivot) 306 | mat:rotate(rot.x,rot.y,rot.z) 307 | mat:translate(pivot) 308 | 309 | mat:translate(-parentPivot) 310 | mat:rotate(physBone[ID].rotMod) 311 | mat:rotate(0,-90,0) 312 | mat:rotate(vec(pitch,0,yaw)) 313 | mat:translate(parentPivot) 314 | 315 | part:setMatrix(mat) 316 | end 317 | end 318 | end 319 | 320 | -- Store deltaTime values 321 | lastestDeltaTime,lasterDeltaTime,lastDeltaTime,lastDelta = lasterDeltaTime,lastDeltaTime,deltaTime,(physClock + delta) 322 | end 323 | return physBone -------------------------------------------------------------------------------- /anan/script.lua: -------------------------------------------------------------------------------- 1 | -- Auto generated script file -- 2 | 3 | -- hide vanilla model 4 | vanilla_model.PLAYER:setVisible(false) 5 | 6 | -- hide vanilla armor model 7 | vanilla_model.ARMOR:setVisible(false) 8 | 9 | local anims = require("EZAnims") 10 | local example = anims:addBBModel(animations.model) 11 | anims:setFallVel(-1) 12 | anims:setOneJump(true) 13 | --------------------------------------- 14 | physBone = require('physBoneAPI') 15 | 16 | function events.entity_init() 17 | physBone.physEar1:setSimSpeed(3) 18 | physBone.physEar2:setSimSpeed(3) 19 | physBone.physEar1:setSpringForce(70) 20 | physBone.physEar2:setSpringForce(70) 21 | end 22 | 23 | --------------------------------------- 24 | 25 | local mainPage = action_wheel:newPage() 26 | action_wheel:setPage(mainPage) 27 | 28 | function pings.actionClicked() 29 | animations.model.sit_down:play() 30 | -- animation example (commented out to avoid erroring): 31 | -- animations.bbmodelname.animationname:play() 32 | end 33 | 34 | local action = mainPage:newAction() 35 | :title("sit") 36 | :item("minecraft:oak_stairs") 37 | :hoverColor(1, 0, 1) 38 | :onLeftClick(pings.actionClicked) 39 | 40 | --------------------------------------- 41 | 42 | local mount = require("EZMount") 43 | 44 | local minecart = animations.minecart 45 | 46 | local minecartList = { 47 | ["still"] = minecart.still, 48 | ["forward"] = minecart.forward, 49 | ["backward"] = minecart.backward, 50 | ["turnright"] = minecart.turnright, 51 | ["turnleft"] = minecart.turnleft, 52 | ["up"] = minecart.up, 53 | ["down"] = minecart.down, 54 | ["rear"] = minecart.rear, 55 | } 56 | 57 | 58 | 59 | -- mount:newLivingMount("mule",models.horse,headcubes,saddlecubes,bagcubes,armorcubes,armortex,animlist) 60 | mount:newObjectMount("minecart",models.minecart,passengercubes,minecartList) 61 | 62 | --------------------------------------------------- 63 | -- 引入眼球追踪API模块 64 | local eyeTracking = require("eye-tracking-api") 65 | 66 | -- 自定义配置参数(覆盖默认值) 67 | eyeTracking.init({ 68 | -- [!] 必须根据实际模型层级结构填写路径 69 | left_eye_path = "model.root.Torso.Head.Eyes.lefteye.leftpupil", -- 左眼瞳孔部件的完整路径(点分隔层级) 70 | right_eye_path = "model.root.Torso.Head.Eyes.righteye.rightpupil", -- 右眼瞳孔部件的完整路径 71 | head_part = "Head", -- 头部模型部件的名称(需与model文件中的部件名一致) 72 | 73 | -- [!] 参数调节区 74 | max_offset = 0.5, -- 瞳孔最大水平偏移量(单位:游戏内方块坐标,建议0.3~0.7) 75 | sensitivity = 35, -- 灵敏度系数(值越大响应越平缓,建议20~50) 76 | update_interval = 3, -- 更新间隔(单位:游戏刻,1秒=20刻,建议2~5) 77 | debug_mode = false -- 调试模式开关(true时输出实时数据) 78 | }) 79 | 80 | 81 | ----------------------------------------------------- 82 | local sitting = require("SittingAPI") -- 引入API 83 | -- 初始化(只需一次) 84 | function events.TICK() 85 | sitting.init() 86 | end 87 | 88 | ----------------------------------------------------- 89 | local WetClass = require("Wet-control") 90 | 91 | ----------------------------------------------------- 92 | local ChatBubble = require("chatbubble") 93 | -------------------------------------------------------------------------------- /anan/tongtong.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvOla2/AnAn-Figura-avatar/294b7ea1db5f887ff3d3a72fe1358c92bd674325/anan/tongtong.png -------------------------------------------------------------------------------- /preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OvOla2/AnAn-Figura-avatar/294b7ea1db5f887ff3d3a72fe1358c92bd674325/preview.png --------------------------------------------------------------------------------