From 6b6e9d5c8d3d2a862d891699743e28f16d0057b9 Mon Sep 17 00:00:00 2001 From: Snowram Date: Tue, 2 Jun 2020 01:56:50 +0200 Subject: [PATCH 01/48] Add quadruped_low skeleton --- assets/common/npc_names.json | 14 + .../npc/crocodile/female/chest_front.vox | Bin 0 -> 3704 bytes .../voxel/npc/crocodile/female/chest_rear.vox | Bin 0 -> 2092 bytes .../voxel/npc/crocodile/female/foot_bl.vox | Bin 0 -> 1340 bytes .../voxel/npc/crocodile/female/foot_br.vox | Bin 0 -> 1340 bytes .../voxel/npc/crocodile/female/foot_fl.vox | Bin 0 -> 1300 bytes .../voxel/npc/crocodile/female/foot_fr.vox | Bin 0 -> 1304 bytes .../voxel/npc/crocodile/female/head_lower.vox | Bin 0 -> 1968 bytes .../voxel/npc/crocodile/female/head_upper.vox | Bin 0 -> 2328 bytes .../voxel/npc/crocodile/female/jaw.vox | Bin 0 -> 1472 bytes .../voxel/npc/crocodile/female/tail.vox | Bin 0 -> 1256 bytes .../voxel/npc/crocodile/male/chest_front.vox | Bin 0 -> 3704 bytes .../voxel/npc/crocodile/male/chest_rear.vox | Bin 0 -> 2092 bytes .../voxel/npc/crocodile/male/foot_bl.vox | Bin 0 -> 1340 bytes .../voxel/npc/crocodile/male/foot_br.vox | Bin 0 -> 1340 bytes .../voxel/npc/crocodile/male/foot_fl.vox | Bin 0 -> 1300 bytes .../voxel/npc/crocodile/male/foot_fr.vox | Bin 0 -> 1304 bytes .../voxel/npc/crocodile/male/head_lower.vox | Bin 0 -> 1968 bytes .../voxel/npc/crocodile/male/head_upper.vox | Bin 0 -> 2328 bytes .../voxygen/voxel/npc/crocodile/male/jaw.vox | Bin 0 -> 1472 bytes .../voxygen/voxel/npc/crocodile/male/tail.vox | Bin 0 -> 1256 bytes .../voxel/quadruped_low_central_manifest.ron | 62 ++++ .../voxel/quadruped_low_lateral_manifest.ron | 38 +++ common/src/comp/body.rs | 5 + common/src/comp/body/quadruped_low.rs | 69 ++++ common/src/comp/mod.rs | 2 +- common/src/generation.rs | 1 + common/src/npc.rs | 13 +- voxygen/src/anim/mod.rs | 76 +++++ voxygen/src/anim/quadruped_low/idle.rs | 116 +++++++ voxygen/src/anim/quadruped_low/jump.rs | 121 +++++++ voxygen/src/anim/quadruped_low/mod.rs | 167 ++++++++++ voxygen/src/anim/quadruped_low/run.rs | 136 ++++++++ voxygen/src/scene/figure/cache.rs | 69 ++++ voxygen/src/scene/figure/load.rs | 301 ++++++++++++++++++ voxygen/src/scene/figure/mod.rs | 139 ++++++++ 36 files changed, 1327 insertions(+), 2 deletions(-) create mode 100644 assets/voxygen/voxel/npc/crocodile/female/chest_front.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/female/chest_rear.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/female/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/female/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/female/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/female/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/female/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/female/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/female/jaw.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/female/tail.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/male/chest_front.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/male/chest_rear.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/male/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/male/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/male/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/male/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/male/tail.vox create mode 100644 assets/voxygen/voxel/quadruped_low_central_manifest.ron create mode 100644 assets/voxygen/voxel/quadruped_low_lateral_manifest.ron create mode 100644 common/src/comp/body/quadruped_low.rs create mode 100644 voxygen/src/anim/mod.rs create mode 100644 voxygen/src/anim/quadruped_low/idle.rs create mode 100644 voxygen/src/anim/quadruped_low/jump.rs create mode 100644 voxygen/src/anim/quadruped_low/mod.rs create mode 100644 voxygen/src/anim/quadruped_low/run.rs diff --git a/assets/common/npc_names.json b/assets/common/npc_names.json index 32aa922761..a8e2a0cadc 100644 --- a/assets/common/npc_names.json +++ b/assets/common/npc_names.json @@ -561,5 +561,19 @@ "generic": "Reddragon" } } + }, + "quadruped_low": { + "body": { + "keyword": "quadruped_low", + "names": [ + "Sobek" + ] + }, + "species": { + "crocodile": { + "keyword": "crocodile", + "generic": "Crocodile" + } + } } } diff --git a/assets/voxygen/voxel/npc/crocodile/female/chest_front.vox b/assets/voxygen/voxel/npc/crocodile/female/chest_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..c7fd5d2d8e158d79caade4fa1b36b4c337e2f41a GIT binary patch literal 3704 zcma);f9Tz1701u>oafi)-s|$-``vGwyZ8EI-><)#yKd8|&9*V;++r@5Zf;~K?aQ)k z$k6en$ghb@&9%lfDyPK|5lv+qMSs|cA%cilP!J*#(ZBr>(SN7cGZBQ0y71;a=lOA- zbKd7X=W};_@s6d(L}bfNo3d5_PmQ- zb*Z0R>P8=X!N-0E-p8(QQr~9~Q&-!mr)~DOVlOwKfD96doC&d;+SqBwerjL|29 zhq>SezU_v=yHQizplRG7iyM{}wi`c|CiEqTu0*7UZghTF+M(}2Np9rY+HKgEof{<4 zv2z}1Pp}g`zLn7ToiNTI1m6$I_fro2lmIr9$3I70G4x{6ZVG|?gsy7chh9AO5qc?m z?m_LE$x<8K!#op%yT{ycL6z}gA5mnZ-qD_G8g7c=my43#^2&b19N*Ff@1aha;TCKh4 zhK{|Fd?lcaCBR?JHC!niCGw&0BXH$v?ilA59M$}Es0(F(i~U;tCeFnD)L)^#y-O2R|p(lqu#)Wv4u_NCNxfSdrsdX9p(F1G;r~MMCty&w^H)<)k`tE8y!K4m-k}qc14$p`j-@d{s~qdp+?2SGiK{2kKCXGf+2y{6uUj@hRhgjG_8NowGN> zRYSfSc#{ODvBvLvvBm?3p}vEPTEpBId7IiIW^xd*AMq{Lm@<26jce!!>?hB<_i#^M z@GW$BXCP5~nSK^Lc0i%G1h@&jamNQ)ijDGC587 zp6N#(KeB^+@|57%JKsy3PjHz6V`@m5E7V>hzfSA8^5=UQUy`f&gl}R{eDXl)L5_Gl zQ2LIehk1Ne;PBVe;}kghou~IGJtH6;y~opo6olFzsYRvt1bR#0t$4Wd@Tb&~tGU59 zp~gHp^u(DTo^>z7#9NIZw`J(tGRiF(d5|0QMh3YcLB_tve#Uli zNUdkN$8(?Jqq45NX^r$1{7UGFdQRw`agH)-s-$lvdQC&m@XSSWmGRF983cM$R_?{m zjE^2)vjfa~q|jGVhcg}GMQTR|sV&68*%}9Rq>K}BMED9w1qse_;9k)1wj=Qc<`kKT zF@jKP9LN^m(-z;@+F$9HDP#W}zwGC`tLTaEbV{5f{s5HkaBAyN87Fv;#1)VV60t>M zi!He0dmPAzGMC6lB+ev$5Ev^+o;l#!d}BZ${(#R47eVnK4iddVL8kvE>_x|2KtU4j z7IdH>ci7Wm4>DK2$xrBD5BMta$%91CjzIB6;n;I$tbU2d7M!x?$a$&Xikd@wDde@V zFY*6FfrER;|B%A}n!^8w!h0>8xozVYZW0`-ztyW(+sw?2eRxFd=AWIl(Zs*(9}^RH z=FAqWzn3?ivaOpxXLs*jV>1Uf+o?mF?9`FF?bOrv+p1IFw23PwZ2mP1ZNUvgn>>E4 z$%bgMuVwOl&*bbpJAaGV{QJZ%I4pMgt72uJ*m<*Jee`)RiS2#r8oU3Q8|;DS*4Xz? zf7aH|h;2J6_SIL!9(tFv+ZNf9>7iXTGi57JuC>McCv5oSBAYsKp)G&&Qk#F5*hSyP z_A#;Xp36BTo8B%&x`OZntegziU@rIa#E z`||%U{*!yIvK1><*bi47x2u*vZ)*-cYzt=>+M7QY`@=4=mzFKF$;nCEJ33&u-u$}B z>_MBmf3BT=`lB3vdl9v>WQl#};-hxsnj?14|?zyemwp(`Dt^XJoCx%r|gw~14oa5(EtDd literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/crocodile/female/chest_rear.vox b/assets/voxygen/voxel/npc/crocodile/female/chest_rear.vox new file mode 100644 index 0000000000000000000000000000000000000000..d3ad81189f88b94a1ef62df28cd490ed5ae36f1f GIT binary patch literal 2092 zcma)5ZD^Hc7`~s6_k6ua^PG3?)28PfKeqYR+;N*uZRW`@-v^KWaNBtju0opX0L)*Hoz42GW1;4*&N=wp-nzRi{Lg-b% zrmZnCWlY@qYsbc|=Du%Ho7PIFRm7&1V?7n3cWuma--t?!tJ0QdPL$q13)`3q^4zta ziR!csTh9h<+=NZcTJ710ia8NU+OYAgmV~v$5z=uRRB_`nCaU8)BuNwX&vo2r9diOI zZGy%#0plr0QYs=TZc?0z8+!b@pA>Vr-;R&x4ve?YOL}Mxfn%Vd^`bi2x`xvZZ^y~ zhimr8Xzu&DsH1UsC!jp-upawk1LPjzUPw_F#)fF@sY6Y~rRLODT=vW7&T~x+np%i| z&YoD8+8PzpQTB@Q5}{tyUK4|kXivyn$V=EC?Qpi(cO6hM#hFo@1;spyxHL`JFJ&dA zgUn}r9d%5?{tPJ3hKSiW>LcvGgeBqlwHRZWS23qhEA8jt>}kKpL1LuW0j|kY=ruK0 zzV7UewthWdS9-&GoJ*l@iupA4RYAqKq2ihvD&o-8MzMcFuY<%z6V9*>a2?(h(UX%UAH!KxF12H?h4XHsd@JmO^=F@aEN9)}>=;)k9seHRg~NEmnKPV` z%?;136+89hrMkKr*=!aM1_kRsxsFuMpZGl|2a}V{@V|?Vn40i3TLAIv}zB9OCj$n{*zXcpw{70enCEV?WRbqS{R z2|WJiUJ!JiSdM+CR%8E}8oWF4H0rW~mLb8*mjnmz@NP>XiZe;f&6c5ZtQJMxIY=Ha zMA_(Ul;2o@yd8qMZ!`C>AlD>z#(_+qo*-YbGkgWy1$U?7u=BQFVtGlGt4K~J6F6!%-w zg~-$=(c4mj;XTWc-BN|&&UKhP`XYWA&0t|F7ps=dM$@w;*wa>pt_^~|or015f@>!P zmBoc z@;mZy`}292XfMFvoH_r{-;eWiZEL-S?oQy~$#dxYYz*&R{RSU?eHY93^<&MU5j35? zhStk>QCnM!2LeclhCg8L3hsaT5Z`^y*MFV!6;8dg$Nib@JMie=KYX-)l7G_P<98lk IKOt8B2BTp?W&i*H literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/crocodile/female/foot_bl.vox b/assets/voxygen/voxel/npc/crocodile/female/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..beb8ae93adca376b68f7f7aa685dfa82cdc66842 GIT binary patch literal 1340 zcma)5ZAhC}6h8OfH;K&EnY{7aMSY`flG?iX5z|IHI~ALzI;_*RezA_q46d8g60C%c zHC?F_t8)?^?W%4_DW$Fzm5u%AWJoELQruvJQA!zOfA?dI{(E*}DF}0H7oPVy=iKL> zd(V0AZF}`tew>IJ4+fi<$YmmG3AWcipKy32F*rmTK1fBi#>xAC%3iQuZ_1K)BDat7=$#e#=l>%C_BgZp>Vs9AEJww3Z0!$HMmGO3?1HUm(4G|VUC9GW~+`Ywq4Pm~X@byu` z!?y_G2EtGqVIrK4^KTI1VM4c`5UC@~aJ;!Z8{v8b!_6+ldrA>)twg-H7Hbz?$L|Ya z>~^N3sx%LwmtE*-t3=;nLad80dzx^2oZxe0Bj_nar*AI?>h__{la6qC4#paa@KZE| z`YJDSt1e;O$NdPTV&bDdG&Sr;S6dxcuU)|8I|ia1IY>@UMy75>$u1|nZUer(JF&mi zjfr!)Se!HP^IZ=f-rtSOyyx-);oi4|UwMg~U;j1FPjK^{ZRNR+ WPCWAylh5q!c)QrvHCyd%wDdQTP9eAe literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/crocodile/female/foot_br.vox b/assets/voxygen/voxel/npc/crocodile/female/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..54608b91777aecee4b11d7a9bcbfc0b986c1f590 GIT binary patch literal 1340 zcma)5ZAhC}6h8OfH&*8A%!eOQ7tI@OlhoG5?>5@mX|QRk!#Z8-7wf3Z;JP_2Vnf(i z)0H~0x=f;DTh$FIrPQ@z!p44dGNcqrDQ>XAD5Z?Czxy#p|2;cNDF}0H7aq=i&U@~8 z&N=VBT`wOmjuBDoA%7biavF#_{N281lZ00~gI%OCj-TlEKW3X;4U8RvMoB4Snnt4< zgQPN%P)1VHv_sLTB5Br0ngnx$kR~ORSx9A+lC4lC$+3!*DNP7t8WBU742sNYlGsNk zO_9+cg-K&@4GhkcjNy32S{mongkTL}R#I|a*5jNqrNx}%rD83vQIo8%q*-z;lDI}G z9VDbKrEo|gbRnc&uum~JNU|FQ*)_J@w_OQg*O)63`mvUm4yA^{{nypiAsi0lQIv4_ z^9?vGkMXC)g7x)QB-eF+9BqLYaI(*f@K^xx2|wb|lZej^qc;9FEPE};t+pbsL5FK$ zKgeeQ4Lt)|GJ!U7kkv}aJxwT_A(Y)9qz@5xMhIr+IoAk-)72QBZ@`&FFFs5>kLEC; zeU|Y03gPU1KHHuTTTn+y*o~UCMih)#pikw)y<7y(?cK=jC6v6+xnqQ?{xZ-jtRG4T z&1QmDEhunLpv)75WA8X{#Ew}aBp7eD+VC6O*>S?k$AtAOggZBxHxib7gs+bg9=t&a zwh+d<2s6PPTzHKT3ljS42xHBJdG@zgMm_*YG^NS(y1?2yHC~(AU+B#MO(4zNI7FQ-F+&4CI-ODBtaX$EBlY-!2@eaAD?r zAyyW3{Cvla2lw{iGuB*NCfxm&@aqqRP|%6_NF_F|H{p+8IxsSsg{i9++`Mna8bavi zd8GP3#d8@WG`ar0|I7PfWYNj=(w?o#>PfGB7o8v_zP;2@bH@_^*!YK^EyK S@#%g$yPa?AnXUV6V(D+&1|g0B literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/crocodile/female/foot_fl.vox b/assets/voxygen/voxel/npc/crocodile/female/foot_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..552169ea08e99a7e9013de7b180715fa4f430622 GIT binary patch literal 1300 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/crocodile/female/jaw.vox b/assets/voxygen/voxel/npc/crocodile/female/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..61c4076bbf6933729dd2f9416f9441f0dcb4f37a GIT binary patch literal 1472 zcma)5eMnt(7=F(=_gt@DHEY*zyL!*j&3or&*YEAR(H~1f#$b$LK|zc$BKo&KBKq&?IgWvlQ9pQizn}N_zUOz^ zUp$@{6OpDv!Db5iLKkTbcGM?Y29JYCCN$#siH=}cp~BNc*lnsqA#`2wsBx-8wNu8c z4$ZEZHoIbIaf)HHDIVSO>(q6{)R=3FqwQp!6=R)7sS-Aa;?W$6p_4#SF(Yf0Qg6759Z zkQ2QYR{wbVg?A8(kG$kkIhShjtJKAcvyU*BQYH7Xh8GSA3#?OBRfTXk zj7L*~!=J9hbp3@tTrRAwHNiU9gDYrmd=4kO0|*Z_Vr4Xlm8p|hnI1sp%A0WQaUs1t z6B!2#cxU%P>UBte0%ZOf$a)%5ngr>m1v!&~q8kE7zaS|h*g-q(nxJo@90M~4aAq!m z_g9}qU0Bc(6}-AAID4P9Em?4f4CIG>s93H+_Mi*KcouvMx$xiKh4d~#{=4Lk3Cenk zATP21hyxN$hAg>|?HfgrKLm5nFmS|!s0dbx*PGnJ5yv6e8AJf^b_UVtut(yZADG zTL@vdnTG0;Tr@skh~D-}^dAvKx&^am1h*yx749qqefj9B*o(oseQ5WkAyk%)@rDBY z7;Z#;wI4avA7i3|`v|09^1XgEH|$4udmUD?)dQF-fn!tp34h@yWa?Y`Cc#*D#T2r6zkV(@%zuM7#vH%_*EBf z-p|A`M$o~1Y|ej*dl?ecdjEa?(?@qA@>VZm=ZCOxd2Dljcg9oj8L9B)CL`cYMq5=9 z+Wh}-{^g!xl$Ms_gUVSH`{xlDJ%`LlCT@Qw_@Ps9t*{VYuNQsh5RM*Rf<#7;I+%*p z>Bryj?JT|>w;S&iL~$@Mg;Qe}kkONldtVk{wIdT#d3pcXzm;ckooKy_!9L*Z^c6%t zU&f`S@9@#L8z>(b#lds4XuNz2tv5DMQ&WRS0*HgapU^f055InVzlVHZ{}tyixcQ%L Zm2;h4cw$?@C;E1BJKxrtt@<{(@;74aD7*jw literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/crocodile/female/tail.vox b/assets/voxygen/voxel/npc/crocodile/female/tail.vox new file mode 100644 index 0000000000000000000000000000000000000000..c6b18273243dcbfc7f2a70bbc41107aabb08714b GIT binary patch literal 1256 zcma)*eMsG96vxl+`gY4^zFgn!>h9I;-a9wDdVSfhTP_uM=QNyYn{Tw3L<|}8?8BFWxJSltcn<|87B^j(;6`f(=_fQ$&+>49<%tt4PxVp0{1&#|HquKo$=L6} zJ+l|7jX`>!M&^={wKNhNg!EHF&bUx`U9k2F+rmPM+G$sXp0QH;ruTDt*3Snk&ruT+ znkI$U7KAhRG`1-Vd(c6C$V1su71{kZ9HUuy=5z7h+DUqckpG_MjtIW4LgZzwKV(HF z6Oct4*`8qvy+NG22jTE`CPi3LywPCiSJjh)!oo+w>Sf{f4YjL;xmw}tqr!vNgVXC5D5xh6~aJ`Fs*!(FN&q4sRzN(#S^t_KauoI8yQCCg67`&{DCD7VrP-f2pg8l9CcWET5ss zJBNSxEScd~<~rVdhyEToGj*Bp7fW1R{GN}$Tc@;dm;+~LsK0cR z=IiTJRaNmwK&%S>Bx+rF_|4=0d#Ly8zxMSJZoIS2dbYiTC$_oyWWAN%irXBsdA)_N F{0-B8AejIF literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/crocodile/male/chest_front.vox b/assets/voxygen/voxel/npc/crocodile/male/chest_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..c7fd5d2d8e158d79caade4fa1b36b4c337e2f41a GIT binary patch literal 3704 zcma);f9Tz1701u>oafi)-s|$-``vGwyZ8EI-><)#yKd8|&9*V;++r@5Zf;~K?aQ)k z$k6en$ghb@&9%lfDyPK|5lv+qMSs|cA%cilP!J*#(ZBr>(SN7cGZBQ0y71;a=lOA- zbKd7X=W};_@s6d(L}bfNo3d5_PmQ- zb*Z0R>P8=X!N-0E-p8(QQr~9~Q&-!mr)~DOVlOwKfD96doC&d;+SqBwerjL|29 zhq>SezU_v=yHQizplRG7iyM{}wi`c|CiEqTu0*7UZghTF+M(}2Np9rY+HKgEof{<4 zv2z}1Pp}g`zLn7ToiNTI1m6$I_fro2lmIr9$3I70G4x{6ZVG|?gsy7chh9AO5qc?m z?m_LE$x<8K!#op%yT{ycL6z}gA5mnZ-qD_G8g7c=my43#^2&b19N*Ff@1aha;TCKh4 zhK{|Fd?lcaCBR?JHC!niCGw&0BXH$v?ilA59M$}Es0(F(i~U;tCeFnD)L)^#y-O2R|p(lqu#)Wv4u_NCNxfSdrsdX9p(F1G;r~MMCty&w^H)<)k`tE8y!K4m-k}qc14$p`j-@d{s~qdp+?2SGiK{2kKCXGf+2y{6uUj@hRhgjG_8NowGN> zRYSfSc#{ODvBvLvvBm?3p}vEPTEpBId7IiIW^xd*AMq{Lm@<26jce!!>?hB<_i#^M z@GW$BXCP5~nSK^Lc0i%G1h@&jamNQ)ijDGC587 zp6N#(KeB^+@|57%JKsy3PjHz6V`@m5E7V>hzfSA8^5=UQUy`f&gl}R{eDXl)L5_Gl zQ2LIehk1Ne;PBVe;}kghou~IGJtH6;y~opo6olFzsYRvt1bR#0t$4Wd@Tb&~tGU59 zp~gHp^u(DTo^>z7#9NIZw`J(tGRiF(d5|0QMh3YcLB_tve#Uli zNUdkN$8(?Jqq45NX^r$1{7UGFdQRw`agH)-s-$lvdQC&m@XSSWmGRF983cM$R_?{m zjE^2)vjfa~q|jGVhcg}GMQTR|sV&68*%}9Rq>K}BMED9w1qse_;9k)1wj=Qc<`kKT zF@jKP9LN^m(-z;@+F$9HDP#W}zwGC`tLTaEbV{5f{s5HkaBAyN87Fv;#1)VV60t>M zi!He0dmPAzGMC6lB+ev$5Ev^+o;l#!d}BZ${(#R47eVnK4iddVL8kvE>_x|2KtU4j z7IdH>ci7Wm4>DK2$xrBD5BMta$%91CjzIB6;n;I$tbU2d7M!x?$a$&Xikd@wDde@V zFY*6FfrER;|B%A}n!^8w!h0>8xozVYZW0`-ztyW(+sw?2eRxFd=AWIl(Zs*(9}^RH z=FAqWzn3?ivaOpxXLs*jV>1Uf+o?mF?9`FF?bOrv+p1IFw23PwZ2mP1ZNUvgn>>E4 z$%bgMuVwOl&*bbpJAaGV{QJZ%I4pMgt72uJ*m<*Jee`)RiS2#r8oU3Q8|;DS*4Xz? zf7aH|h;2J6_SIL!9(tFv+ZNf9>7iXTGi57JuC>McCv5oSBAYsKp)G&&Qk#F5*hSyP z_A#;Xp36BTo8B%&x`OZntegziU@rIa#E z`||%U{*!yIvK1><*bi47x2u*vZ)*-cYzt=>+M7QY`@=4=mzFKF$;nCEJ33&u-u$}B z>_MBmf3BT=`lB3vdl9v>WQl#};-hxsnj?14|?zyemwp(`Dt^XJoCx%r|gw~14oa5(EtDd literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/crocodile/male/chest_rear.vox b/assets/voxygen/voxel/npc/crocodile/male/chest_rear.vox new file mode 100644 index 0000000000000000000000000000000000000000..d3ad81189f88b94a1ef62df28cd490ed5ae36f1f GIT binary patch literal 2092 zcma)5ZD^Hc7`~s6_k6ua^PG3?)28PfKeqYR+;N*uZRW`@-v^KWaNBtju0opX0L)*Hoz42GW1;4*&N=wp-nzRi{Lg-b% zrmZnCWlY@qYsbc|=Du%Ho7PIFRm7&1V?7n3cWuma--t?!tJ0QdPL$q13)`3q^4zta ziR!csTh9h<+=NZcTJ710ia8NU+OYAgmV~v$5z=uRRB_`nCaU8)BuNwX&vo2r9diOI zZGy%#0plr0QYs=TZc?0z8+!b@pA>Vr-;R&x4ve?YOL}Mxfn%Vd^`bi2x`xvZZ^y~ zhimr8Xzu&DsH1UsC!jp-upawk1LPjzUPw_F#)fF@sY6Y~rRLODT=vW7&T~x+np%i| z&YoD8+8PzpQTB@Q5}{tyUK4|kXivyn$V=EC?Qpi(cO6hM#hFo@1;spyxHL`JFJ&dA zgUn}r9d%5?{tPJ3hKSiW>LcvGgeBqlwHRZWS23qhEA8jt>}kKpL1LuW0j|kY=ruK0 zzV7UewthWdS9-&GoJ*l@iupA4RYAqKq2ihvD&o-8MzMcFuY<%z6V9*>a2?(h(UX%UAH!KxF12H?h4XHsd@JmO^=F@aEN9)}>=;)k9seHRg~NEmnKPV` z%?;136+89hrMkKr*=!aM1_kRsxsFuMpZGl|2a}V{@V|?Vn40i3TLAIv}zB9OCj$n{*zXcpw{70enCEV?WRbqS{R z2|WJiUJ!JiSdM+CR%8E}8oWF4H0rW~mLb8*mjnmz@NP>XiZe;f&6c5ZtQJMxIY=Ha zMA_(Ul;2o@yd8qMZ!`C>AlD>z#(_+qo*-YbGkgWy1$U?7u=BQFVtGlGt4K~J6F6!%-w zg~-$=(c4mj;XTWc-BN|&&UKhP`XYWA&0t|F7ps=dM$@w;*wa>pt_^~|or015f@>!P zmBoc z@;mZy`}292XfMFvoH_r{-;eWiZEL-S?oQy~$#dxYYz*&R{RSU?eHY93^<&MU5j35? zhStk>QCnM!2LeclhCg8L3hsaT5Z`^y*MFV!6;8dg$Nib@JMie=KYX-)l7G_P<98lk IKOt8B2BTp?W&i*H literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/crocodile/male/foot_bl.vox b/assets/voxygen/voxel/npc/crocodile/male/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..beb8ae93adca376b68f7f7aa685dfa82cdc66842 GIT binary patch literal 1340 zcma)5ZAhC}6h8OfH;K&EnY{7aMSY`flG?iX5z|IHI~ALzI;_*RezA_q46d8g60C%c zHC?F_t8)?^?W%4_DW$Fzm5u%AWJoELQruvJQA!zOfA?dI{(E*}DF}0H7oPVy=iKL> zd(V0AZF}`tew>IJ4+fi<$YmmG3AWcipKy32F*rmTK1fBi#>xAC%3iQuZ_1K)BDat7=$#e#=l>%C_BgZp>Vs9AEJww3Z0!$HMmGO3?1HUm(4G|VUC9GW~+`Ywq4Pm~X@byu` z!?y_G2EtGqVIrK4^KTI1VM4c`5UC@~aJ;!Z8{v8b!_6+ldrA>)twg-H7Hbz?$L|Ya z>~^N3sx%LwmtE*-t3=;nLad80dzx^2oZxe0Bj_nar*AI?>h__{la6qC4#paa@KZE| z`YJDSt1e;O$NdPTV&bDdG&Sr;S6dxcuU)|8I|ia1IY>@UMy75>$u1|nZUer(JF&mi zjfr!)Se!HP^IZ=f-rtSOyyx-);oi4|UwMg~U;j1FPjK^{ZRNR+ WPCWAylh5q!c)QrvHCyd%wDdQTP9eAe literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/crocodile/male/foot_br.vox b/assets/voxygen/voxel/npc/crocodile/male/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..54608b91777aecee4b11d7a9bcbfc0b986c1f590 GIT binary patch literal 1340 zcma)5ZAhC}6h8OfH&*8A%!eOQ7tI@OlhoG5?>5@mX|QRk!#Z8-7wf3Z;JP_2Vnf(i z)0H~0x=f;DTh$FIrPQ@z!p44dGNcqrDQ>XAD5Z?Czxy#p|2;cNDF}0H7aq=i&U@~8 z&N=VBT`wOmjuBDoA%7biavF#_{N281lZ00~gI%OCj-TlEKW3X;4U8RvMoB4Snnt4< zgQPN%P)1VHv_sLTB5Br0ngnx$kR~ORSx9A+lC4lC$+3!*DNP7t8WBU742sNYlGsNk zO_9+cg-K&@4GhkcjNy32S{mongkTL}R#I|a*5jNqrNx}%rD83vQIo8%q*-z;lDI}G z9VDbKrEo|gbRnc&uum~JNU|FQ*)_J@w_OQg*O)63`mvUm4yA^{{nypiAsi0lQIv4_ z^9?vGkMXC)g7x)QB-eF+9BqLYaI(*f@K^xx2|wb|lZej^qc;9FEPE};t+pbsL5FK$ zKgeeQ4Lt)|GJ!U7kkv}aJxwT_A(Y)9qz@5xMhIr+IoAk-)72QBZ@`&FFFs5>kLEC; zeU|Y03gPU1KHHuTTTn+y*o~UCMih)#pikw)y<7y(?cK=jC6v6+xnqQ?{xZ-jtRG4T z&1QmDEhunLpv)75WA8X{#Ew}aBp7eD+VC6O*>S?k$AtAOggZBxHxib7gs+bg9=t&a zwh+d<2s6PPTzHKT3ljS42xHBJdG@zgMm_*YG^NS(y1?2yHC~(AU+B#MO(4zNI7FQ-F+&4CI-ODBtaX$EBlY-!2@eaAD?r zAyyW3{Cvla2lw{iGuB*NCfxm&@aqqRP|%6_NF_F|H{p+8IxsSsg{i9++`Mna8bavi zd8GP3#d8@WG`ar0|I7PfWYNj=(w?o#>PfGB7o8v_zP;2@bH@_^*!YK^EyK S@#%g$yPa?AnXUV6V(D+&1|g0B literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/crocodile/male/foot_fl.vox b/assets/voxygen/voxel/npc/crocodile/male/foot_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..552169ea08e99a7e9013de7b180715fa4f430622 GIT binary patch literal 1300 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/crocodile/male/jaw.vox b/assets/voxygen/voxel/npc/crocodile/male/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..61c4076bbf6933729dd2f9416f9441f0dcb4f37a GIT binary patch literal 1472 zcma)5eMnt(7=F(=_gt@DHEY*zyL!*j&3or&*YEAR(H~1f#$b$LK|zc$BKo&KBKq&?IgWvlQ9pQizn}N_zUOz^ zUp$@{6OpDv!Db5iLKkTbcGM?Y29JYCCN$#siH=}cp~BNc*lnsqA#`2wsBx-8wNu8c z4$ZEZHoIbIaf)HHDIVSO>(q6{)R=3FqwQp!6=R)7sS-Aa;?W$6p_4#SF(Yf0Qg6759Z zkQ2QYR{wbVg?A8(kG$kkIhShjtJKAcvyU*BQYH7Xh8GSA3#?OBRfTXk zj7L*~!=J9hbp3@tTrRAwHNiU9gDYrmd=4kO0|*Z_Vr4Xlm8p|hnI1sp%A0WQaUs1t z6B!2#cxU%P>UBte0%ZOf$a)%5ngr>m1v!&~q8kE7zaS|h*g-q(nxJo@90M~4aAq!m z_g9}qU0Bc(6}-AAID4P9Em?4f4CIG>s93H+_Mi*KcouvMx$xiKh4d~#{=4Lk3Cenk zATP21hyxN$hAg>|?HfgrKLm5nFmS|!s0dbx*PGnJ5yv6e8AJf^b_UVtut(yZADG zTL@vdnTG0;Tr@skh~D-}^dAvKx&^am1h*yx749qqefj9B*o(oseQ5WkAyk%)@rDBY z7;Z#;wI4avA7i3|`v|09^1XgEH|$4udmUD?)dQF-fn!tp34h@yWa?Y`Cc#*D#T2r6zkV(@%zuM7#vH%_*EBf z-p|A`M$o~1Y|ej*dl?ecdjEa?(?@qA@>VZm=ZCOxd2Dljcg9oj8L9B)CL`cYMq5=9 z+Wh}-{^g!xl$Ms_gUVSH`{xlDJ%`LlCT@Qw_@Ps9t*{VYuNQsh5RM*Rf<#7;I+%*p z>Bryj?JT|>w;S&iL~$@Mg;Qe}kkONldtVk{wIdT#d3pcXzm;ckooKy_!9L*Z^c6%t zU&f`S@9@#L8z>(b#lds4XuNz2tv5DMQ&WRS0*HgapU^f055InVzlVHZ{}tyixcQ%L Zm2;h4cw$?@C;E1BJKxrtt@<{(@;74aD7*jw literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/crocodile/male/tail.vox b/assets/voxygen/voxel/npc/crocodile/male/tail.vox new file mode 100644 index 0000000000000000000000000000000000000000..c6b18273243dcbfc7f2a70bbc41107aabb08714b GIT binary patch literal 1256 zcma)*eMsG96vxl+`gY4^zFgn!>h9I;-a9wDdVSfhTP_uM=QNyYn{Tw3L<|}8?8BFWxJSltcn<|87B^j(;6`f(=_fQ$&+>49<%tt4PxVp0{1&#|HquKo$=L6} zJ+l|7jX`>!M&^={wKNhNg!EHF&bUx`U9k2F+rmPM+G$sXp0QH;ruTDt*3Snk&ruT+ znkI$U7KAhRG`1-Vd(c6C$V1su71{kZ9HUuy=5z7h+DUqckpG_MjtIW4LgZzwKV(HF z6Oct4*`8qvy+NG22jTE`CPi3LywPCiSJjh)!oo+w>Sf{f4YjL;xmw}tqr!vNgVXC5D5xh6~aJ`Fs*!(FN&q4sRzN(#S^t_KauoI8yQCCg67`&{DCD7VrP-f2pg8l9CcWET5ss zJBNSxEScd~<~rVdhyEToGj*Bp7fW1R{GN}$Tc@;dm;+~LsK0cR z=IiTJRaNmwK&%S>Bx+rF_|4=0d#Ly8zxMSJZoIS2dbYiTC$_oyWWAN%irXBsdA)_N F{0-B8AejIF literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron new file mode 100644 index 0000000000..f883018fd8 --- /dev/null +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -0,0 +1,62 @@ +({ + (Crocodile, Male): ( + upper: ( + offset: (-7.0, -9.0, -5.5), + central: ("npc.crocodile.male.head_upper"), + ), + lower: ( + offset: (-7.0, -4.5, -5.0), + central: ("npc.crocodile.male.head_lower"), + ), + jaw: ( + offset: (-3.0, -3.0, -2.5), + central: ("npc.crocodile.male.jaw"), + ), + chest_rear: ( + offset: (-8.0, -5.5, -6.0), + central: ("npc.crocodile.male.chest_front"), + ), + chest_front: ( + offset: (-8.0, -5.5, -6.0), + central: ("npc.crocodile.male.chest_front"), + ), + tail_rear: ( + offset: (-2.0, -9.5, -5.0), + central: ("npc.crocodile.male.tail"), + ), + tail_front: ( + offset: (-2.0, -9.5, -5.0), + central: ("npc.crocodile.male.tail"), + ), + ), + (Crocodile, Female): ( + upper: ( + offset: (-7.0, -9.0, -5.5), + central: ("npc.crocodile.female.head_upper"), + ), + lower: ( + offset: (-7.0, -4.5, -5.0), + central: ("npc.crocodile.female.head_lower"), + ), + jaw: ( + offset: (-3.0, -3.0, -2.5), + central: ("npc.crocodile.female.jaw"), + ), + chest_rear: ( + offset: (-8.0, -5.5, -6.0), + central: ("npc.crocodile.female.chest_rear"), + ), + chest_front: ( + offset: (-8.0, -5.5, -6.0), + central: ("npc.crocodile.female.chest_front"), + ), + tail_rear: ( + offset: (-2.0, -9.5, -5.0), + central: ("npc.crocodile.female.tail"), + ), + tail_front: ( + offset: (-2.0, -9.5, -5.0), + central: ("npc.crocodile.female.tail"), + ), + ), +}) diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron new file mode 100644 index 0000000000..99a67b071a --- /dev/null +++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron @@ -0,0 +1,38 @@ +({ + (Crocodile, Male): ( + front_left: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.crocodile.male.foot_fl"), + ), + front_right: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.crocodile.male.foot_fr"), + ), + back_left: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.crocodile.male.foot_bl"), + ), + back_right: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.crocodile.male.foot_br"), + ), + ), + (Crocodile, Female): ( + front_left: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.crocodile.female.foot_fl"), + ), + front_right: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.crocodile.female.foot_fr"), + ), + back_left: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.crocodile.female.foot_bl"), + ), + back_right: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.crocodile.female.foot_br"), + ), + ), +}) diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index a69cc9b961..4019f7d0a0 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -10,6 +10,7 @@ pub mod humanoid; pub mod object; pub mod quadruped_medium; pub mod quadruped_small; +pub mod quadruped_low; use crate::{ assets::{self, Asset}, @@ -34,6 +35,7 @@ pub enum Body { Object(object::Body) = 9, Golem(golem::Body) = 10, Critter(critter::Body) = 11, + QuadrupedLow(quadruped_low::Body) = 12, } /// Data representing data generic to the body together with per-species data. @@ -61,6 +63,7 @@ pub struct AllBodies { pub golem: BodyData>, pub critter: BodyData>, pub dragon: BodyData>, + pub quadruped_low: BodyData>, } /// Can only retrieve body metadata by direct index. @@ -78,6 +81,7 @@ impl core::ops::Index for AllBodies &self.golem.body, NpcKind::Rat => &self.critter.body, NpcKind::Reddragon => &self.dragon.body, + NpcKind::Crocodile => &self.quadruped_low.body, } } } @@ -118,6 +122,7 @@ impl Body { Body::FishSmall(_) => 0.2, Body::BipedLarge(_) => 2.0, Body::Golem(_) => 2.5, + Body::QuadrupedLow(_) => 1.0, Body::Object(_) => 0.3, } } diff --git a/common/src/comp/body/quadruped_low.rs b/common/src/comp/body/quadruped_low.rs new file mode 100644 index 0000000000..7296016344 --- /dev/null +++ b/common/src/comp/body/quadruped_low.rs @@ -0,0 +1,69 @@ +use rand::{seq::SliceRandom, thread_rng}; + +#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] +pub struct Body { + pub species: Species, + pub body_type: BodyType, +} + +impl Body { + pub fn random() -> Self { + let mut rng = thread_rng(); + let species = *(&ALL_SPECIES).choose(&mut rng).unwrap(); + Self::random_with(&mut rng, &species) + } + + #[inline] + pub fn random_with(rng: &mut impl rand::Rng, &species: &Species) -> Self { + let body_type = *(&ALL_BODY_TYPES).choose(rng).unwrap(); + Self { species, body_type } + } +} + +impl From for super::Body { + fn from(body: Body) -> Self { super::Body::QuadrupedLow(body) } +} + +#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] +#[repr(u32)] +pub enum Species { + Crocodile = 0, +} + +/// Data representing per-species generic data. +/// +/// NOTE: Deliberately don't (yet?) implement serialize. +#[derive(Clone, Debug, Deserialize)] +pub struct AllSpecies { + pub crocodile: SpeciesMeta, +} + +impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { + type Output = SpeciesMeta; + + #[inline] + fn index(&self, &index: &'a Species) -> &Self::Output { + match index { + Species::Crocodile => &self.crocodile, + } + } +} + +pub const ALL_SPECIES: [Species; 1] = [ + Species::Crocodile, +]; + +impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { + type IntoIter = std::iter::Copied>; + type Item = Species; + + fn into_iter(self) -> Self::IntoIter { ALL_SPECIES.iter().copied() } +} + +#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] +#[repr(u32)] +pub enum BodyType { + Female = 0, + Male = 1, +} +pub const ALL_BODY_TYPES: [BodyType; 2] = [BodyType::Female, BodyType::Male]; diff --git a/common/src/comp/mod.rs b/common/src/comp/mod.rs index 106f995d2c..6a10583e7a 100644 --- a/common/src/comp/mod.rs +++ b/common/src/comp/mod.rs @@ -23,7 +23,7 @@ pub use admin::{Admin, AdminList}; pub use agent::{Agent, Alignment}; pub use body::{ biped_large, bird_medium, bird_small, critter, dragon, fish_medium, fish_small, golem, - humanoid, object, quadruped_medium, quadruped_small, AllBodies, Body, BodyData, + humanoid, object, quadruped_medium, quadruped_small, quadruped_low, AllBodies, Body, BodyData, }; pub use character_state::{Attacking, CharacterState, StateUpdate}; pub use chat::{ChatMode, ChatMsg, ChatType, Faction, Group, SpeechBubble, SpeechBubbleType}; diff --git a/common/src/generation.rs b/common/src/generation.rs index d482a5b6b3..3edd331c24 100644 --- a/common/src/generation.rs +++ b/common/src/generation.rs @@ -108,6 +108,7 @@ impl EntityInfo { Some(get_npc_name(&NPC_NAMES.quadruped_small, body.species)) }, Body::Dragon(body) => Some(get_npc_name(&NPC_NAMES.dragon, body.species)), + Body::QuadrupedLow(body) => Some(get_npc_name(&NPC_NAMES.quadruped_low, body.species)), _ => None, } .map(|s| { diff --git a/common/src/npc.rs b/common/src/npc.rs index 2d5d72b5fc..03727b6917 100644 --- a/common/src/npc.rs +++ b/common/src/npc.rs @@ -16,9 +16,10 @@ pub enum NpcKind { Rat, StoneGolem, Reddragon, + Crocodile, } -pub const ALL_NPCS: [NpcKind; 8] = [ +pub const ALL_NPCS: [NpcKind; 9] = [ NpcKind::Humanoid, NpcKind::Wolf, NpcKind::Pig, @@ -27,6 +28,7 @@ pub const ALL_NPCS: [NpcKind; 8] = [ NpcKind::Rat, NpcKind::StoneGolem, NpcKind::Reddragon, + NpcKind::Crocodile, ]; /// Body-specific NPC name metadata. @@ -94,6 +96,7 @@ pub fn kind_to_body(kind: NpcKind) -> Body { NpcKind::Rat => comp::critter::Body::random().into(), NpcKind::StoneGolem => comp::golem::Body::random().into(), NpcKind::Reddragon => comp::dragon::Body::random().into(), + NpcKind::Crocodile => comp::quadruped_low::Body::random().into(), } } @@ -223,6 +226,14 @@ impl NpcBody { comp::dragon::Body::random_with, ) }) + .or_else(|| { + parse( + s, + NpcKind::Crocodile, + &npc_names.quadruped_low, + comp::quadruped_low::Body::random_with, + ) + }) .ok_or(()) } } diff --git a/voxygen/src/anim/mod.rs b/voxygen/src/anim/mod.rs new file mode 100644 index 0000000000..500abdf94b --- /dev/null +++ b/voxygen/src/anim/mod.rs @@ -0,0 +1,76 @@ +pub mod biped_large; +pub mod bird_medium; +pub mod bird_small; +pub mod character; +pub mod critter; +pub mod dragon; +pub mod fish_medium; +pub mod fish_small; +pub mod fixture; +pub mod golem; +pub mod object; +pub mod quadruped_medium; +pub mod quadruped_small; +pub mod quadruped_low; + +use crate::render::FigureBoneData; +use vek::*; + +#[derive(Copy, Clone, Debug)] +pub struct Bone { + pub offset: Vec3, + pub ori: Quaternion, + pub scale: Vec3, +} + +impl Default for Bone { + fn default() -> Self { + Self { + offset: Vec3::zero(), + ori: Quaternion::identity(), + scale: Vec3::broadcast(1.0 / 11.0), + } + } +} + +impl Bone { + pub fn compute_base_matrix(&self) -> Mat4 { + Mat4::::translation_3d(self.offset) + * Mat4::scaling_3d(self.scale) + * Mat4::from(self.ori) + } + + /// Change the current bone to be more like `target`. + fn interpolate(&mut self, target: &Bone, dt: f32) { + // TODO: Make configurable. + let factor = (15.0 * dt).min(1.0); + self.offset += (target.offset - self.offset) * factor; + self.ori = vek::Slerp::slerp(self.ori, target.ori, factor); + self.scale += (target.scale - self.scale) * factor; + } +} + +pub trait Skeleton: Send + Sync + 'static { + type Attr; + + fn bone_count(&self) -> usize { 16 } + + fn compute_matrices(&self) -> ([FigureBoneData; 16], Vec3); + + /// Change the current skeleton to be more like `target`. + fn interpolate(&mut self, target: &Self, dt: f32); +} + +pub trait Animation { + type Skeleton: Skeleton; + type Dependency; + + /// Returns a new skeleton that is generated by the animation. + fn update_skeleton( + skeleton: &Self::Skeleton, + dependency: Self::Dependency, + anim_time: f64, + rate: &mut f32, + skeleton_attr: &<::Skeleton as Skeleton>::Attr, + ) -> Self::Skeleton; +} diff --git a/voxygen/src/anim/quadruped_low/idle.rs b/voxygen/src/anim/quadruped_low/idle.rs new file mode 100644 index 0000000000..1c84216cda --- /dev/null +++ b/voxygen/src/anim/quadruped_low/idle.rs @@ -0,0 +1,116 @@ +use super::{super::Animation, QuadrupedLowSkeleton, SkeletonAttr}; +use std::{f32::consts::PI, ops::Mul}; +use vek::*; + +pub struct IdleAnimation; + +impl Animation for IdleAnimation { + type Dependency = f64; + type Skeleton = QuadrupedLowSkeleton; + + fn update_skeleton( + skeleton: &Self::Skeleton, + global_time: Self::Dependency, + anim_time: f64, + _rate: &mut f32, + skeleton_attr: &SkeletonAttr, + ) -> Self::Skeleton { + let mut next = (*skeleton).clone(); + + let ultra_slow = (anim_time as f32 * 1.0).sin(); + let slow = (anim_time as f32 * 2.5).sin(); + let slowalt = (anim_time as f32 * 2.5 + PI / 2.0).sin(); + + let dragon_look = Vec2::new( + ((global_time + anim_time) as f32 / 8.0) + .floor() + .mul(7331.0) + .sin() + * 0.5, + ((global_time + anim_time) as f32 / 8.0) + .floor() + .mul(1337.0) + .sin() + * 0.25, + ); + + next.head_upper.offset = Vec3::new( + 0.0, + skeleton_attr.head_upper.0, + skeleton_attr.head_upper.1 + ultra_slow * 0.20, + ); + next.head_upper.ori = Quaternion::rotation_z(0.8 * dragon_look.x) + * Quaternion::rotation_x(0.8 * dragon_look.y); + next.head_upper.scale = Vec3::one(); + + next.head_lower.offset = Vec3::new( + 0.0, + skeleton_attr.head_lower.0, + skeleton_attr.head_lower.1 + ultra_slow * 0.20, + ); + next.head_lower.ori = Quaternion::rotation_z(0.8 * dragon_look.x) + * Quaternion::rotation_x(-0.2 + 0.8 * dragon_look.y); + next.head_lower.scale = Vec3::one() * 1.05; + + next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); + next.jaw.ori = Quaternion::rotation_x(slow * 0.04); + next.jaw.scale = Vec3::one() * 1.05; + + next.chest_front.offset = Vec3::new( + 0.0, + skeleton_attr.chest_front.0, + skeleton_attr.chest_front.1, + ); + next.chest_front.ori = Quaternion::rotation_y(slow * 0.01); + next.chest_front.scale = Vec3::one() * 1.05; + + next.chest_rear.offset = + Vec3::new(0.0, skeleton_attr.chest_rear.0, skeleton_attr.chest_rear.1); + next.chest_rear.ori = Quaternion::rotation_y(slow * 0.01); + next.chest_rear.scale = Vec3::one() * 1.05; + + next.tail_front.offset = + Vec3::new(0.0, skeleton_attr.tail_front.0, skeleton_attr.tail_front.1); + next.tail_front.ori = Quaternion::rotation_z(slowalt * 0.10) * Quaternion::rotation_x(0.1); + next.tail_front.scale = Vec3::one() * 0.98; + + next.tail_rear.offset = + Vec3::new(0.0, skeleton_attr.tail_rear.0, skeleton_attr.tail_rear.1); + next.tail_rear.ori = Quaternion::rotation_z(slowalt * 0.12) * Quaternion::rotation_x(0.05); + next.tail_rear.scale = Vec3::one() * 0.98; + + next.foot_fl.offset = Vec3::new( + -skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2, + ); + next.foot_fl.ori = Quaternion::rotation_x(0.0); + next.foot_fl.scale = Vec3::one(); + + next.foot_fr.offset = Vec3::new( + skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2, + ); + next.foot_fr.ori = Quaternion::rotation_x(0.0); + next.foot_fr.scale = Vec3::one(); + + next.foot_bl.offset = Vec3::new( + -skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2, + ); + next.foot_bl.ori = Quaternion::rotation_x(0.0); + next.foot_bl.scale = Vec3::one(); + + next.foot_br.offset = Vec3::new( + skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2, + ); + next.foot_br.ori = Quaternion::rotation_x(0.0); + next.foot_br.scale = Vec3::one(); + + next + } +} diff --git a/voxygen/src/anim/quadruped_low/jump.rs b/voxygen/src/anim/quadruped_low/jump.rs new file mode 100644 index 0000000000..b311951396 --- /dev/null +++ b/voxygen/src/anim/quadruped_low/jump.rs @@ -0,0 +1,121 @@ +use super::{super::Animation, QuadrupedLowSkeleton, SkeletonAttr}; +use std::f32::consts::PI; +use vek::*; + +pub struct JumpAnimation; + +impl Animation for JumpAnimation { + type Dependency = (f32, f64); + type Skeleton = QuadrupedLowSkeleton; + + fn update_skeleton( + skeleton: &Self::Skeleton, + _global_time: Self::Dependency, + anim_time: f64, + _rate: &mut f32, + skeleton_attr: &SkeletonAttr, + ) -> Self::Skeleton { + let mut next = (*skeleton).clone(); + + let lab = 12.0; + + let wave_ultra_slow = (anim_time as f32 * 1.0 + PI).sin(); + let wave_ultra_slow_cos = (anim_time as f32 * 3.0 + PI).cos(); + let wave_slow = (anim_time as f32 * 3.5 + PI).sin(); + + let footl = (anim_time as f32 * lab as f32 + PI).sin(); + let footr = (anim_time as f32 * lab as f32).sin(); + + let center = (anim_time as f32 * lab as f32 + PI / 2.0).sin(); + let centeroffset = (anim_time as f32 * lab as f32 + PI * 1.5).sin(); + + next.head_upper.offset = Vec3::new( + 0.0, + skeleton_attr.head_upper.0, + skeleton_attr.head_upper.1 + wave_ultra_slow * 0.20, + ); + next.head_upper.ori = + Quaternion::rotation_z(0.0) * Quaternion::rotation_x(wave_ultra_slow * -0.10); + next.head_upper.scale = Vec3::one() * 1.05; + + next.head_lower.offset = Vec3::new( + 0.0, + skeleton_attr.head_lower.0, + skeleton_attr.head_lower.1 + wave_ultra_slow * 0.20, + ); + next.head_lower.ori = + Quaternion::rotation_z(0.0) * Quaternion::rotation_x(wave_ultra_slow * -0.10); + next.head_lower.scale = Vec3::one() * 1.05; + + next.jaw.offset = Vec3::new( + 0.0, + skeleton_attr.jaw.0 - wave_ultra_slow_cos * 0.12, + skeleton_attr.jaw.1 + wave_slow * 0.2, + ); + next.jaw.ori = Quaternion::rotation_x(wave_slow * 0.03); + next.jaw.scale = Vec3::one() * 1.05; + + next.tail_front.offset = Vec3::new( + 0.0, + skeleton_attr.tail_front.0, + skeleton_attr.tail_front.1 + centeroffset * 0.6, + ); + next.tail_front.ori = Quaternion::rotation_x(center * 0.03); + next.tail_front.scale = Vec3::one() * 0.98; + + next.tail_rear.offset = Vec3::new( + 0.0, + skeleton_attr.tail_rear.0, + skeleton_attr.tail_rear.1 + centeroffset * 0.6, + ); + next.tail_rear.ori = Quaternion::rotation_x(center * 0.03); + next.tail_rear.scale = Vec3::one() * 0.98; + + next.chest_front.offset = Vec3::new( + 0.0, + skeleton_attr.chest_front.0, + skeleton_attr.chest_front.1, + ); + next.chest_front.ori = Quaternion::rotation_y(center * 0.05); + next.chest_front.scale = Vec3::one(); + + next.chest_rear.offset = + Vec3::new(0.0, skeleton_attr.chest_rear.0, skeleton_attr.chest_rear.1); + next.chest_rear.ori = Quaternion::rotation_y(center * 0.05); + next.chest_rear.scale = Vec3::one(); + + next.foot_fl.offset = Vec3::new( + -skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2, + ); + next.foot_fl.ori = Quaternion::rotation_x(-1.3 + footl * 0.06); + next.foot_fl.scale = Vec3::one(); + + next.foot_fr.offset = Vec3::new( + skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2, + ); + next.foot_fr.ori = Quaternion::rotation_x(-1.3 + footr * 0.06); + next.foot_fr.scale = Vec3::one(); + + next.foot_bl.offset = Vec3::new( + -skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2, + ); + next.foot_bl.ori = Quaternion::rotation_x(-1.3 + footl * 0.06); + next.foot_bl.scale = Vec3::one(); + + next.foot_br.offset = Vec3::new( + skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2, + ); + next.foot_br.ori = Quaternion::rotation_x(-1.3 + footr * 0.06); + next.foot_br.scale = Vec3::one(); + + next + } +} diff --git a/voxygen/src/anim/quadruped_low/mod.rs b/voxygen/src/anim/quadruped_low/mod.rs new file mode 100644 index 0000000000..20adaf21bf --- /dev/null +++ b/voxygen/src/anim/quadruped_low/mod.rs @@ -0,0 +1,167 @@ +pub mod idle; +pub mod jump; +pub mod run; + +// Reexports +pub use self::{idle::IdleAnimation, jump::JumpAnimation, run::RunAnimation}; + +use super::{Bone, Skeleton}; +use crate::render::FigureBoneData; +use common::comp::{self}; +use vek::Vec3; + +#[derive(Clone, Default)] +pub struct QuadrupedLowSkeleton { + head_upper: Bone, + head_lower: Bone, + jaw: Bone, + tail_front: Bone, + tail_rear: Bone, + chest_front: Bone, + chest_rear: Bone, + foot_fl: Bone, + foot_fr: Bone, + foot_bl: Bone, + foot_br: Bone, +} + +impl QuadrupedLowSkeleton { + pub fn new() -> Self { Self::default() } +} + +impl Skeleton for QuadrupedLowSkeleton { + type Attr = SkeletonAttr; + + fn bone_count(&self) -> usize { 11 } + + fn compute_matrices(&self) -> ([FigureBoneData; 16], Vec3) { + let head_upper_mat = self.head_upper.compute_base_matrix(); + let head_lower_mat = self.head_lower.compute_base_matrix(); + let chest_front_mat = self.chest_front.compute_base_matrix(); + let chest_rear_mat = self.chest_rear.compute_base_matrix(); + ( + [ + FigureBoneData::new(chest_front_mat * head_lower_mat * head_upper_mat), + FigureBoneData::new(chest_front_mat * head_lower_mat), + FigureBoneData::new( + chest_front_mat + * head_lower_mat + * head_upper_mat + * self.jaw.compute_base_matrix(), + ), + FigureBoneData::new(chest_front_mat), + FigureBoneData::new(chest_front_mat * self.chest_rear.compute_base_matrix()), + FigureBoneData::new(chest_front_mat * chest_rear_mat * self.tail_front.compute_base_matrix()), + FigureBoneData::new( + chest_front_mat + * chest_rear_mat + * self.tail_front.compute_base_matrix() + * self.tail_rear.compute_base_matrix(), + ), + FigureBoneData::new(self.foot_fl.compute_base_matrix()), + FigureBoneData::new(self.foot_fr.compute_base_matrix()), + FigureBoneData::new(self.foot_bl.compute_base_matrix()), + FigureBoneData::new(self.foot_br.compute_base_matrix()), + FigureBoneData::default(), + FigureBoneData::default(), + FigureBoneData::default(), + FigureBoneData::default(), + FigureBoneData::default(), + ], + Vec3::default(), + ) + } + + fn interpolate(&mut self, target: &Self, dt: f32) { + self.head_upper.interpolate(&target.head_upper, dt); + self.head_lower.interpolate(&target.head_lower, dt); + self.jaw.interpolate(&target.jaw, dt); + self.tail_front.interpolate(&target.tail_front, dt); + self.tail_rear.interpolate(&target.tail_rear, dt); + self.chest_front.interpolate(&target.chest_front, dt); + self.chest_rear.interpolate(&target.chest_rear, dt); + self.foot_fl.interpolate(&target.foot_fl, dt); + self.foot_fr.interpolate(&target.foot_fr, dt); + self.foot_bl.interpolate(&target.foot_bl, dt); + self.foot_br.interpolate(&target.foot_br, dt); + } +} + +pub struct SkeletonAttr { + head_upper: (f32, f32), + head_lower: (f32, f32), + jaw: (f32, f32), + tail_front: (f32, f32), + tail_rear: (f32, f32), + chest_front: (f32, f32), + chest_rear: (f32, f32), + feet_f: (f32, f32, f32), + feet_b: (f32, f32, f32), + height: f32, +} + +impl<'a> std::convert::TryFrom<&'a comp::Body> for SkeletonAttr { + type Error = (); + + fn try_from(body: &'a comp::Body) -> Result { + match body { + comp::Body::QuadrupedLow(body) => Ok(SkeletonAttr::from(body)), + _ => Err(()), + } + } +} + +impl Default for SkeletonAttr { + fn default() -> Self { + Self { + head_upper: (0.0, 0.0), + head_lower: (0.0, 0.0), + jaw: (0.0, 0.0), + tail_front: (0.0, 0.0), + tail_rear: (0.0, 0.0), + chest_front: (0.0, 0.0), + chest_rear: (0.0, 0.0), + feet_f: (0.0, 0.0, 0.0), + feet_b: (0.0, 0.0, 0.0), + height: (0.0), + } + } +} + +impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { + fn from(body: &'a comp::quadruped_low::Body) -> Self { + use comp::quadruped_low::Species::*; + Self { + head_upper: match (body.species, body.body_type) { + (Crocodile, _) => (12.0, 16.0), + }, + head_lower: match (body.species, body.body_type) { + (Crocodile, _) => (-4.0, -7.0), + }, + jaw: match (body.species, body.body_type) { + (Crocodile, _) => (3.0, -5.0), + }, + tail_rear: match (body.species, body.body_type) { + (Crocodile, _) => (-6.0, -2.0), + }, + tail_front: match (body.species, body.body_type) { + (Crocodile, _) => (-6.0, -2.0), + }, + chest_front: match (body.species, body.body_type) { + (Crocodile, _) => (4.0, 11.0), + }, + chest_rear: match (body.species, body.body_type) { + (Crocodile, _) => (4.0, 11.0), + }, + feet_f: match (body.species, body.body_type) { + (Crocodile, _) => (5.0, 6.0, 2.0), + }, + feet_b: match (body.species, body.body_type) { + (Crocodile, _) => (5.0, -4.0, 3.0), + }, + height: match (body.species, body.body_type) { + (Crocodile, _) => (1.2), + }, + } + } +} diff --git a/voxygen/src/anim/quadruped_low/run.rs b/voxygen/src/anim/quadruped_low/run.rs new file mode 100644 index 0000000000..2e08762f32 --- /dev/null +++ b/voxygen/src/anim/quadruped_low/run.rs @@ -0,0 +1,136 @@ +use super::{super::Animation, QuadrupedLowSkeleton, SkeletonAttr}; +use std::{f32::consts::PI, ops::Mul}; +use vek::*; + +pub struct RunAnimation; + +impl Animation for RunAnimation { + type Dependency = (f32, f64); + type Skeleton = QuadrupedLowSkeleton; + + fn update_skeleton( + skeleton: &Self::Skeleton, + (_velocity, global_time): Self::Dependency, + anim_time: f64, + _rate: &mut f32, + skeleton_attr: &SkeletonAttr, + ) -> Self::Skeleton { + let mut next = (*skeleton).clone(); + + let lab = 14; + + let wave_ultra_slow_cos = (anim_time as f32 * 3.0 + PI).cos(); + let wave_slow = (anim_time as f32 * 4.5).sin(); + + let vertlf = (anim_time as f32 * lab as f32 + PI * 1.8).sin().max(0.15); + let vertrfoffset = (anim_time as f32 * lab as f32 + PI * 0.80).sin().max(0.15); + let vertlboffset = (anim_time as f32 * lab as f32).sin().max(0.15); + let vertrb = (anim_time as f32 * lab as f32 + PI).sin().max(0.15); + + let horilf = (anim_time as f32 * lab as f32 + PI * 1.2).sin(); + let horirfoffset = (anim_time as f32 * lab as f32 + PI * 0.20).sin(); + let horilboffset = (anim_time as f32 * lab as f32 + PI * 1.4).sin(); + let horirb = (anim_time as f32 * lab as f32 + PI * 0.4).sin(); + + let vertchest = (anim_time as f32 * lab as f32 + PI * 0.3).sin().max(0.2); + let horichest = (anim_time as f32 * lab as f32 + PI * 0.8).sin(); + + let center = (anim_time as f32 * lab as f32 + PI / 2.0).sin(); + let centeroffset = (anim_time as f32 * lab as f32 + PI * 1.5).sin(); + + let dragon_look = Vec2::new( + ((global_time + anim_time) as f32 / 4.0) + .floor() + .mul(7331.0) + .sin() + * 0.25, + ((global_time + anim_time) as f32 / 4.0) + .floor() + .mul(1337.0) + .sin() + * 0.125, + ); + + next.head_upper.offset = + Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); + next.head_upper.ori = + Quaternion::rotation_x(dragon_look.y) * Quaternion::rotation_z(dragon_look.x); + next.head_upper.scale = Vec3::one(); + + next.head_lower.offset = + Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); + next.head_lower.ori = Quaternion::rotation_x(wave_slow * 0.05); + next.head_lower.scale = Vec3::one(); + + next.jaw.offset = Vec3::new( + 0.0, + skeleton_attr.jaw.0 - wave_ultra_slow_cos * 0.12, + skeleton_attr.jaw.1 + wave_slow * 0.2, + ); + next.jaw.ori = Quaternion::rotation_x(wave_slow * 0.03); + next.jaw.scale = Vec3::one() * 1.05; + + next.tail_front.offset = Vec3::new( + 0.0, + skeleton_attr.tail_front.0, + skeleton_attr.tail_front.1 + centeroffset * 0.6, + ); + next.tail_front.ori = Quaternion::rotation_x(center * 0.03); + next.tail_front.scale = Vec3::one() * 0.98; + + next.tail_rear.offset = Vec3::new( + 0.0, + skeleton_attr.tail_rear.0, + skeleton_attr.tail_rear.1 + centeroffset * 0.6, + ); + next.tail_rear.ori = Quaternion::rotation_x(center * 0.03); + next.tail_rear.scale = Vec3::one() * 0.98; + + next.chest_front.offset = Vec3::new( + 0.0, + skeleton_attr.chest_front.0 + horichest * 1.25, + skeleton_attr.chest_front.1 + vertchest * -1.6 + 1.0, + ); + next.chest_front.ori = Quaternion::rotation_y(horichest * -0.09); + next.chest_front.scale = Vec3::one(); + + next.chest_rear.offset = + Vec3::new(0.0, skeleton_attr.chest_rear.0, skeleton_attr.chest_rear.1); + next.chest_rear.ori = Quaternion::rotation_y(horichest * -0.09); + next.chest_rear.scale = Vec3::one(); + + next.foot_fl.offset = Vec3::new( + -skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1 + horilf * 2.5, + skeleton_attr.feet_f.2 + vertlf * 5.0 * skeleton_attr.height - 0.5, + ); + next.foot_fl.ori = Quaternion::rotation_x(horilf * 0.4); + next.foot_fl.scale = Vec3::one(); + + next.foot_fr.offset = Vec3::new( + skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1 + horirfoffset * 2.5, + skeleton_attr.feet_f.2 + vertrfoffset * 5.0 * skeleton_attr.height - 0.5, + ); + next.foot_fr.ori = Quaternion::rotation_x(horirfoffset * 0.4); + next.foot_fr.scale = Vec3::one(); + + next.foot_bl.offset = Vec3::new( + -skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1 + horilboffset * 3.0, + skeleton_attr.feet_b.2 + vertlboffset * 5.0 * skeleton_attr.height - 0.5, + ); + next.foot_bl.ori = Quaternion::rotation_x(horilboffset * 0.35); + next.foot_bl.scale = Vec3::one(); + + next.foot_br.offset = Vec3::new( + skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1 + horirb * 3.0, + skeleton_attr.feet_b.2 + vertrb * 5.0 * skeleton_attr.height - 0.5, + ); + next.foot_br.ori = Quaternion::rotation_x(horirb * 0.35); + next.foot_br.scale = Vec3::one(); + + next + } +} diff --git a/voxygen/src/scene/figure/cache.rs b/voxygen/src/scene/figure/cache.rs index 941a4da22a..e250e73795 100644 --- a/voxygen/src/scene/figure/cache.rs +++ b/voxygen/src/scene/figure/cache.rs @@ -678,6 +678,75 @@ impl FigureModelCache { None, ] }, + Body::QuadrupedLow(body) => { + let quadruped_low_central_spec = + QuadrupedLowCentralSpec::load_watched(manifest_indicator); + let quadruped_low_lateral_spec = + QuadrupedLowLateralSpec::load_watched(manifest_indicator); + + [ + Some(quadruped_low_central_spec.mesh_head_upper( + body.species, + body.body_type, + generate_mesh, + )), + Some(quadruped_low_central_spec.mesh_head_lower( + body.species, + body.body_type, + generate_mesh, + )), + Some(quadruped_low_central_spec.mesh_jaw( + body.species, + body.body_type, + generate_mesh, + )), + Some(quadruped_low_central_spec.mesh_tail_front( + body.species, + body.body_type, + generate_mesh, + )), + Some(quadruped_low_central_spec.mesh_tail_rear( + body.species, + body.body_type, + generate_mesh, + )), + Some(quadruped_low_central_spec.mesh_chest_front( + body.species, + body.body_type, + generate_mesh, + )), + Some(quadruped_low_central_spec.mesh_chest_rear( + body.species, + body.body_type, + generate_mesh, + )), + Some(quadruped_low_lateral_spec.mesh_foot_fl( + body.species, + body.body_type, + generate_mesh, + )), + Some(quadruped_low_lateral_spec.mesh_foot_fr( + body.species, + body.body_type, + generate_mesh, + )), + Some(quadruped_low_lateral_spec.mesh_foot_bl( + body.species, + body.body_type, + generate_mesh, + )), + Some(quadruped_low_lateral_spec.mesh_foot_br( + body.species, + body.body_type, + generate_mesh, + )), + None, + None, + None, + None, + None, + ] + }, Body::Object(object) => [ Some(mesh_object(object, generate_mesh)), None, diff --git a/voxygen/src/scene/figure/load.rs b/voxygen/src/scene/figure/load.rs index 3a61c147a6..aa64fe2e8f 100644 --- a/voxygen/src/scene/figure/load.rs +++ b/voxygen/src/scene/figure/load.rs @@ -18,6 +18,7 @@ use common::{ object, quadruped_medium::{BodyType as QMBodyType, Species as QMSpecies}, quadruped_small::{BodyType as QSBodyType, Species as QSSpecies}, + quadruped_low::{BodyType as QLBodyType, Species as QLSpecies}, Loadout, }, figure::{DynaUnionizer, MatSegment, Material, Segment}, @@ -2951,6 +2952,306 @@ impl GolemLateralSpec { generate_mesh(&lateral, Vec3::from(spec.foot_r.offset)) } } + +/// + +#[derive(Serialize, Deserialize)] +pub struct QuadrupedLowCentralSpec(HashMap<(QLSpecies, QLBodyType), SidedQLCentralVoxSpec>); + +#[derive(Serialize, Deserialize)] +struct SidedQLCentralVoxSpec { + upper: QuadrupedLowCentralSubSpec, + lower: QuadrupedLowCentralSubSpec, + jaw: QuadrupedLowCentralSubSpec, + chest_front: QuadrupedLowCentralSubSpec, + chest_rear: QuadrupedLowCentralSubSpec, + tail_front: QuadrupedLowCentralSubSpec, + tail_rear: QuadrupedLowCentralSubSpec, +} +#[derive(Serialize, Deserialize)] +struct QuadrupedLowCentralSubSpec { + offset: [f32; 3], // Should be relative to initial origin + central: VoxSimple, +} + +#[derive(Serialize, Deserialize)] +pub struct QuadrupedLowLateralSpec(HashMap<(QLSpecies, QLBodyType), SidedQLLateralVoxSpec>); +#[derive(Serialize, Deserialize)] +struct SidedQLLateralVoxSpec { + front_left: QuadrupedLowLateralSubSpec, + front_right: QuadrupedLowLateralSubSpec, + back_left: QuadrupedLowLateralSubSpec, + back_right: QuadrupedLowLateralSubSpec, +} +#[derive(Serialize, Deserialize)] +struct QuadrupedLowLateralSubSpec { + offset: [f32; 3], // Should be relative to initial origin + lateral: VoxSimple, +} + +impl Asset for QuadrupedLowCentralSpec { + const ENDINGS: &'static [&'static str] = &["ron"]; + + fn parse(buf_reader: BufReader) -> Result { + ron::de::from_reader(buf_reader).map_err(assets::Error::parse_error) + } +} + +impl Asset for QuadrupedLowLateralSpec { + const ENDINGS: &'static [&'static str] = &["ron"]; + + fn parse(buf_reader: BufReader) -> Result { + ron::de::from_reader(buf_reader).map_err(assets::Error::parse_error) + } +} + +impl QuadrupedLowCentralSpec { + pub fn load_watched(indicator: &mut ReloadIndicator) -> Arc { + assets::load_watched::("voxygen.voxel.quadruped_low_central_manifest", indicator) + .unwrap() + } + + pub fn mesh_head_upper( + &self, + species: QLSpecies, + body_type: QLBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No upper head specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let central = graceful_load_segment(&spec.upper.central.0); + + generate_mesh(¢ral, Vec3::from(spec.upper.offset)) + } + + pub fn mesh_head_lower( + &self, + species: QLSpecies, + body_type: QLBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No lower head specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let central = graceful_load_segment(&spec.lower.central.0); + + generate_mesh(¢ral, Vec3::from(spec.lower.offset)) + } + + pub fn mesh_jaw( + &self, + species: QLSpecies, + body_type: QLBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No jaw specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let central = graceful_load_segment(&spec.jaw.central.0); + + generate_mesh(¢ral, Vec3::from(spec.jaw.offset)) + } + + pub fn mesh_chest_front( + &self, + species: QLSpecies, + body_type: QLBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No chest_front specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let central = graceful_load_segment(&spec.chest_front.central.0); + + generate_mesh(¢ral, Vec3::from(spec.chest_front.offset)) + } + + pub fn mesh_chest_rear( + &self, + species: QLSpecies, + body_type: QLBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No chest_rear specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let central = graceful_load_segment(&spec.chest_rear.central.0); + + generate_mesh(¢ral, Vec3::from(spec.chest_rear.offset)) + } + + pub fn mesh_tail_rear( + &self, + species: QLSpecies, + body_type: QLBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No tail_rear specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let central = graceful_load_segment(&spec.tail_rear.central.0); + + generate_mesh(¢ral, Vec3::from(spec.tail_rear.offset)) + } + + pub fn mesh_tail_front( + &self, + species: QLSpecies, + body_type: QLBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No tail_front specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let central = graceful_load_segment(&spec.tail_front.central.0); + + generate_mesh(¢ral, Vec3::from(spec.tail_front.offset)) + } +} + +impl QuadrupedLowLateralSpec { + pub fn load_watched(indicator: &mut ReloadIndicator) -> Arc { + assets::load_watched::("voxygen.voxel.quadruped_low_lateral_manifest", indicator) + .unwrap() + } + + pub fn mesh_foot_fl( + &self, + species: QLSpecies, + body_type: QLBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No foot specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let lateral = graceful_load_segment(&spec.front_left.lateral.0); + + generate_mesh(&lateral, Vec3::from(spec.front_left.offset)) + } + + pub fn mesh_foot_fr( + &self, + species: QLSpecies, + body_type: QLBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No foot specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let lateral = graceful_load_segment(&spec.front_right.lateral.0); + + generate_mesh(&lateral, Vec3::from(spec.front_right.offset)) + } + + pub fn mesh_foot_bl( + &self, + species: QLSpecies, + body_type: QLBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No foot specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let lateral = graceful_load_segment(&spec.back_left.lateral.0); + + generate_mesh(&lateral, Vec3::from(spec.back_left.offset)) + } + + pub fn mesh_foot_br( + &self, + species: QLSpecies, + body_type: QLBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No foot specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let lateral = graceful_load_segment(&spec.back_right.lateral.0); + + generate_mesh(&lateral, Vec3::from(spec.back_right.offset)) + } +} + +/// + pub fn mesh_object( obj: object::Body, generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs index cde859f370..4a8633cac7 100644 --- a/voxygen/src/scene/figure/mod.rs +++ b/voxygen/src/scene/figure/mod.rs @@ -5,6 +5,13 @@ pub use cache::FigureModelCache; pub use load::load_mesh; // TODO: Don't make this public. use crate::{ + anim::{ + self, biped_large::BipedLargeSkeleton, bird_medium::BirdMediumSkeleton, + bird_small::BirdSmallSkeleton, character::CharacterSkeleton, critter::CritterSkeleton, + dragon::DragonSkeleton, fish_medium::FishMediumSkeleton, fish_small::FishSmallSkeleton, + golem::GolemSkeleton, object::ObjectSkeleton, quadruped_medium::QuadrupedMediumSkeleton, + quadruped_small::QuadrupedSmallSkeleton, quadruped_low::QuadrupedLowSkeleton, Animation, Skeleton, + }, ecs::comp::Interpolated, render::{Consts, FigureBoneData, FigureLocals, Globals, Light, Renderer, Shadow}, scene::{ @@ -44,6 +51,7 @@ pub struct FigureMgr { critter_model_cache: FigureModelCache, quadruped_small_model_cache: FigureModelCache, quadruped_medium_model_cache: FigureModelCache, + quadruped_low_model_cache: FigureModelCache, bird_medium_model_cache: FigureModelCache, bird_small_model_cache: FigureModelCache, dragon_model_cache: FigureModelCache, @@ -54,6 +62,7 @@ pub struct FigureMgr { character_states: HashMap>, quadruped_small_states: HashMap>, quadruped_medium_states: HashMap>, + quadruped_low_states: HashMap>, bird_medium_states: HashMap>, fish_medium_states: HashMap>, critter_states: HashMap>, @@ -73,6 +82,7 @@ impl FigureMgr { critter_model_cache: FigureModelCache::new(), quadruped_small_model_cache: FigureModelCache::new(), quadruped_medium_model_cache: FigureModelCache::new(), + quadruped_low_model_cache: FigureModelCache::new(), bird_medium_model_cache: FigureModelCache::new(), bird_small_model_cache: FigureModelCache::new(), dragon_model_cache: FigureModelCache::new(), @@ -83,6 +93,7 @@ impl FigureMgr { character_states: HashMap::new(), quadruped_small_states: HashMap::new(), quadruped_medium_states: HashMap::new(), + quadruped_low_states: HashMap::new(), bird_medium_states: HashMap::new(), fish_medium_states: HashMap::new(), critter_states: HashMap::new(), @@ -100,6 +111,7 @@ impl FigureMgr { self.critter_model_cache.clean(tick); self.quadruped_small_model_cache.clean(tick); self.quadruped_medium_model_cache.clean(tick); + self.quadruped_low_model_cache.clean(tick); self.bird_medium_model_cache.clean(tick); self.bird_small_model_cache.clean(tick); self.dragon_model_cache.clean(tick); @@ -261,6 +273,9 @@ impl FigureMgr { Body::QuadrupedMedium(_) => { self.quadruped_medium_states.remove(&entity); }, + Body::QuadrupedLow(_) => { + self.quadruped_low_states.remove(&entity); + }, Body::BirdMedium(_) => { self.bird_medium_states.remove(&entity); }, @@ -307,6 +322,11 @@ impl FigureMgr { .get_mut(&entity) .map(|state| state.visible = false); }, + Body::QuadrupedLow(_) => { + self.quadruped_low_states + .get_mut(&entity) + .map(|state| state.visible = false); + }, Body::BirdMedium(_) => { self.bird_medium_states .get_mut(&entity) @@ -374,6 +394,10 @@ impl FigureMgr { .quadruped_medium_states .get(&entity) .map(|state| state.lpindex), + Body::QuadrupedLow(_) => self + .quadruped_low_states + .get(&entity) + .map(|state| state.lpindex), Body::BirdMedium(_) => self .bird_medium_states .get(&entity) @@ -430,6 +454,12 @@ impl FigureMgr { state.visible = false }); }, + Body::QuadrupedLow(_) => { + self.quadruped_low_states.get_mut(&entity).map(|state| { + state.lpindex = lpindex; + state.visible = false + }); + }, Body::BirdMedium(_) => { self.bird_medium_states.get_mut(&entity).map(|state| { state.lpindex = lpindex; @@ -989,6 +1019,89 @@ impl FigureMgr { is_player, ); }, + Body::QuadrupedLow(_) => { + let skeleton_attr = &self + .quadruped_low_model_cache + .get_or_create_model( + renderer, + *body, + loadout, + tick, + CameraMode::default(), + None, + ) + .1; + + let state = self + .quadruped_low_states + .entry(entity) + .or_insert_with(|| { + FigureState::new(renderer, QuadrupedLowSkeleton::new()) + }); + + let (character, last_character) = match (character, last_character) { + (Some(c), Some(l)) => (c, l), + _ => continue, + }; + + if !character.same_variant(&last_character.0) { + state.state_time = 0.0; + } + + let target_base = match ( + physics.on_ground, + vel.0.magnitude_squared() > MOVING_THRESHOLD_SQR, // Moving + physics.in_fluid, // In water + ) { + // Standing + (true, false, false) => { + anim::quadruped_low::IdleAnimation::update_skeleton( + &QuadrupedLowSkeleton::new(), + time, + state.state_time, + &mut state_animation_rate, + skeleton_attr, + ) + }, + // Running + (true, true, false) => { + anim::quadruped_low::RunAnimation::update_skeleton( + &QuadrupedLowSkeleton::new(), + (vel.0.magnitude(), time), + state.state_time, + &mut state_animation_rate, + skeleton_attr, + ) + }, + // In air + (false, _, false) => { + anim::quadruped_low::JumpAnimation::update_skeleton( + &QuadrupedLowSkeleton::new(), + (vel.0.magnitude(), time), + state.state_time, + &mut state_animation_rate, + skeleton_attr, + ) + }, + + // TODO! + _ => state.skeleton_mut().clone(), + }; + + state.skeleton.interpolate(&target_base, dt); + state.update( + renderer, + pos.0, + ori, + scale, + col, + dt, + state_animation_rate, + lpindex, + true, + is_player, + ); + }, Body::BirdMedium(_) => { let skeleton_attr = &self .bird_medium_model_cache @@ -1622,6 +1735,8 @@ impl FigureMgr { .retain(|entity, _| ecs.entities().is_alive(*entity)); self.quadruped_medium_states .retain(|entity, _| ecs.entities().is_alive(*entity)); + self.quadruped_low_states + .retain(|entity, _| ecs.entities().is_alive(*entity)); self.bird_medium_states .retain(|entity, _| ecs.entities().is_alive(*entity)); self.fish_medium_states @@ -1774,6 +1889,7 @@ impl FigureMgr { critter_model_cache, quadruped_small_model_cache, quadruped_medium_model_cache, + quadruped_low_model_cache, bird_medium_model_cache, bird_small_model_cache, dragon_model_cache, @@ -1784,6 +1900,7 @@ impl FigureMgr { character_states, quadruped_small_states, quadruped_medium_states, + quadruped_low_states, bird_medium_states, fish_medium_states, critter_states, @@ -1846,6 +1963,22 @@ impl FigureMgr { .0, ) }), + Body::QuadrupedLow(_) => quadruped_low_states.get(&entity).map(|state| { + ( + state.locals(), + state.bone_consts(), + &quadruped_low_model_cache + .get_or_create_model( + renderer, + *body, + loadout, + tick, + player_camera_mode, + character_state, + ) + .0, + ) + }), Body::BirdMedium(_) => bird_medium_states.get(&entity).map(|state| { ( state.locals(), @@ -2022,6 +2155,7 @@ impl FigureMgr { + self.quadruped_small_states.len() + self.character_states.len() + self.quadruped_medium_states.len() + + self.quadruped_low_states.len() + self.bird_medium_states.len() + self.fish_medium_states.len() + self.critter_states.len() @@ -2048,6 +2182,11 @@ impl FigureMgr { .iter() .filter(|(_, c)| c.visible) .count() + + self + .quadruped_low_states + .iter() + .filter(|(_, c)| c.visible) + .count() + self .bird_medium_states .iter() From e08e9b8a9ab4d662680b2823e693bf42baba3d4d Mon Sep 17 00:00:00 2001 From: Snowram Date: Wed, 3 Jun 2020 02:56:42 +0200 Subject: [PATCH 02/48] Add legs to quadruped_medium --- .../quadruped_medium_lateral_manifest.ron | 384 +++++++++++++++--- voxygen/src/anim/src/quadruped_medium/mod.rs | 45 +- .../audio/sfx/event_mapper/movement/mod.rs | 2 + voxygen/src/scene/figure/cache.rs | 24 +- voxygen/src/scene/figure/load.rs | 112 ++++- voxygen/src/scene/figure/mod.rs | 2 +- 6 files changed, 480 insertions(+), 89 deletions(-) diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index ed7260aa95..a91a680737 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -1,288 +1,544 @@ ({ (Grolgar, Male): ( - left_front: ( + leg_lf: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.grolgar.male.leg_lf"), + ), + leg_rf: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.grolgar.male.leg_rf"), + ), + leg_lb: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.grolgar.male.leg_lb"), + ), + leg_rb: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.grolgar.male.leg_rb"), + ), + foot_lf: ( offset: (-2.5, -4.0, -1.5), lateral: ("npc.grolgar.male.foot_lf"), ), - right_front: ( + foot_rf: ( offset: (-2.5, -4.0, -1.5), lateral: ("npc.grolgar.male.foot_rf"), ), - left_back: ( + foot_lb: ( offset: (-2.5, -4.0, -3.0), lateral: ("npc.grolgar.male.foot_lb"), ), - right_back: ( + foot_rb: ( offset: (-2.5, -4.0, -3.0), lateral: ("npc.grolgar.male.foot_rb"), ), ), (Grolgar, Female): ( - left_front: ( + leg_lf: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.grolgar.female.leg_lf"), + ), + leg_rf: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.grolgar.female.leg_rf"), + ), + leg_lb: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.grolgar.female.leg_lb"), + ), + leg_rb: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.grolgar.female.leg_rb"), + ), + foot_lf: ( offset: (-2.5, -4.0, -1.5), lateral: ("npc.grolgar.female.foot_lf"), ), - right_front: ( + foot_rf: ( offset: (-2.5, -4.0, -1.5), lateral: ("npc.grolgar.female.foot_rf"), ), - left_back: ( + foot_lb: ( offset: (-2.5, -4.0, -3.0), lateral: ("npc.grolgar.female.foot_lb"), ), - right_back: ( + foot_rb: ( offset: (-2.5, -4.0, -3.0), lateral: ("npc.grolgar.female.foot_rb"), ), ), (Saber, Male): ( - left_front: ( + leg_lf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.saber.male.leg_lf"), + ), + leg_rf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.saber.male.leg_rf"), + ), + leg_lb: ( + offset: (-1.5, -4.0, -3.5), + lateral: ("npc.saber.male.leg_lb"), + ), + leg_rb: ( + offset: (-1.5, -4.0, -3.5), + lateral: ("npc.saber.male.leg_rb"), + ), + foot_lf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.saber.male.foot_lf"), ), - right_front: ( + foot_rf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.saber.male.foot_rf"), ), - left_back: ( + foot_lb: ( offset: (-1.5, -4.0, -3.5), lateral: ("npc.saber.male.foot_lb"), ), - right_back: ( + foot_rb: ( offset: (-1.5, -4.0, -3.5), lateral: ("npc.saber.male.foot_rb"), ), ), (Saber, Female): ( - left_front: ( + leg_lf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.saber.female.leg_lf"), + ), + leg_rf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.saber.female.leg_rf"), + ), + leg_lb: ( + offset: (-1.5, -4.0, -3.5), + lateral: ("npc.saber.female.leg_lb"), + ), + leg_rb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.saber.female.leg_rb"), + ), + foot_lf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.saber.female.foot_lf"), ), - right_front: ( + foot_rf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.saber.female.foot_rf"), ), - left_back: ( + foot_lb: ( offset: (-1.5, -4.0, -3.5), lateral: ("npc.saber.female.foot_lb"), ), - right_back: ( + foot_rb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.saber.female.foot_rb"), ), ), (Viper, Male): ( - left_front: ( + leg_lf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.viper.male.leg_lf"), + ), + leg_rf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.viper.male.leg_rf"), + ), + leg_lb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.viper.male.leg_lb"), + ), + leg_rb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.viper.male.leg_rb"), + ), + foot_lf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.viper.male.foot_lf"), ), - right_front: ( + foot_rf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.viper.male.foot_rf"), ), - left_back: ( + foot_lb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.viper.male.foot_lb"), ), - right_back: ( + foot_rb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.viper.male.foot_rb"), ), ), (Viper, Female): ( - left_front: ( + leg_lf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.viper.female.leg_lf"), + ), + leg_rf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.viper.female.leg_rf"), + ), + leg_lb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.viper.female.leg_lb"), + ), + leg_rb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.viper.female.leg_rb"), + ), + foot_lf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.viper.female.foot_lf"), ), - right_front: ( + foot_rf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.viper.female.foot_rf"), ), - left_back: ( + foot_lb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.viper.female.foot_lb"), ), - right_back: ( + foot_rb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.viper.female.foot_rb"), ), ), (Tuskram, Male): ( - left_front: ( + leg_lf: ( + offset: (-1.5, -1.5, -4.5), + lateral: ("npc.tuskram.male.leg_lf"), + ), + leg_rf: ( + offset: (-1.5, -1.5, -4.5), + lateral: ("npc.tuskram.male.leg_rf"), + ), + leg_lb: ( + offset: (-1.5, -4.0, -5.5), + lateral: ("npc.tuskram.male.leg_lb"), + ), + leg_rb: ( + offset: (-1.5, -4.0, -5.5), + lateral: ("npc.tuskram.male.leg_rb"), + ), + foot_lf: ( offset: (-1.5, -1.5, -4.5), lateral: ("npc.tuskram.male.foot_lf"), ), - right_front: ( + foot_rf: ( offset: (-1.5, -1.5, -4.5), lateral: ("npc.tuskram.male.foot_rf"), ), - left_back: ( + foot_lb: ( offset: (-1.5, -4.0, -5.5), lateral: ("npc.tuskram.male.foot_lb"), ), - right_back: ( + foot_rb: ( offset: (-1.5, -4.0, -5.5), lateral: ("npc.tuskram.male.foot_rb"), ), ), (Tuskram, Female): ( - left_front: ( + leg_lf: ( + offset: (-1.5, -1.5, -4.5), + lateral: ("npc.tuskram.female.leg_lf"), + ), + leg_rf: ( + offset: (-1.5, -1.5, -4.5), + lateral: ("npc.tuskram.female.leg_rf"), + ), + leg_lb: ( + offset: (-1.5, -4.0, -5.5), + lateral: ("npc.tuskram.female.leg_lb"), + ), + leg_rb: ( + offset: (-1.5, -4.0, -5.5), + lateral: ("npc.tuskram.female.leg_rb"), + ), + foot_lf: ( offset: (-1.5, -1.5, -4.5), lateral: ("npc.tuskram.female.foot_lf"), ), - right_front: ( + foot_rf: ( offset: (-1.5, -1.5, -4.5), lateral: ("npc.tuskram.female.foot_rf"), ), - left_back: ( + foot_lb: ( offset: (-1.5, -4.0, -5.5), lateral: ("npc.tuskram.female.foot_lb"), ), - right_back: ( + foot_rb: ( offset: (-1.5, -4.0, -5.5), lateral: ("npc.tuskram.female.foot_rb"), ), ), (Alligator, Male): ( - left_front: ( + leg_lf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.alligator.male.leg_lf"), + ), + leg_rf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.alligator.male.leg_rf"), + ), + leg_lb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.alligator.male.leg_lb"), + ), + leg_rb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.alligator.male.leg_rb"), + ), + foot_lf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.alligator.male.foot_lf"), ), - right_front: ( + foot_rf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.alligator.male.foot_rf"), ), - left_back: ( + foot_lb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.alligator.male.foot_lb"), ), - right_back: ( + foot_rb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.alligator.male.foot_rb"), ), ), (Alligator, Female): ( - left_front: ( + leg_lf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.alligator.female.leg_lf"), + ), + leg_rf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.alligator.female.leg_rf"), + ), + leg_lb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.alligator.female.leg_lb"), + ), + leg_rb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.alligator.female.leg_rb"), + ), + foot_lf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.alligator.female.foot_lf"), ), - right_front: ( + foot_rf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.alligator.female.foot_rf"), ), - left_back: ( + foot_lb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.alligator.female.foot_lb"), ), - right_back: ( + foot_rb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.alligator.female.foot_rb"), ), ), (Monitor, Male): ( - left_front: ( + leg_lf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.monitor.male.leg_lf"), + ), + leg_rf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.monitor.male.leg_rf"), + ), + leg_lb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.monitor.male.leg_lb"), + ), + leg_rb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.monitor.male.leg_rb"), + ), + foot_lf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.monitor.male.foot_lf"), ), - right_front: ( + foot_rf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.monitor.male.foot_rf"), ), - left_back: ( + foot_lb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.monitor.male.foot_lb"), ), - right_back: ( + foot_rb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.monitor.male.foot_rb"), ), ), (Monitor, Female): ( - left_front: ( + leg_lf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.monitor.female.leg_lf"), + ), + leg_rf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.monitor.female.leg_rf"), + ), + leg_lb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.monitor.female.leg_lb"), + ), + leg_rb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.monitor.female.leg_rb"), + ), + foot_lf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.monitor.female.foot_lf"), ), - right_front: ( + foot_rf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.monitor.female.foot_rf"), ), - left_back: ( + foot_lb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.monitor.female.foot_lb"), ), - right_back: ( + foot_rb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.monitor.female.foot_rb"), ), ), (Lion, Male): ( - left_front: ( + leg_lf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.lion.male.leg_lf"), + ), + leg_rf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.lion.male.leg_rf"), + ), + leg_lb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.lion.male.leg_lb"), + ), + leg_rb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.lion.male.leg_rb"), + ), + foot_lf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.lion.male.foot_lf"), ), - right_front: ( + foot_rf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.lion.male.foot_rf"), ), - left_back: ( + foot_lb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.lion.male.foot_lb"), ), - right_back: ( + foot_rb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.lion.male.foot_rb"), ), ), (Lion, Female): ( - left_front: ( + leg_lf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.lion.female.leg_lf"), + ), + leg_rf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.lion.female.leg_rf"), + ), + leg_lb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.lion.female.leg_lb"), + ), + leg_rb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.lion.female.leg_rb"), + ), + foot_lf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.lion.female.foot_lf"), ), - right_front: ( + foot_rf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.lion.female.foot_rf"), ), - left_back: ( + foot_lb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.lion.female.foot_lb"), ), - right_back: ( + foot_rb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.lion.female.foot_rb"), ), ), (Tarasque, Male): ( - left_front: ( + leg_lf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.tarasque.male.leg_lf"), + ), + leg_rf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.tarasque.male.leg_rf"), + ), + leg_lb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.tarasque.male.leg_lb"), + ), + leg_rb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.tarasque.male.leg_rb"), + ), + foot_lf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.tarasque.male.foot_lf"), ), - right_front: ( + foot_rf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.tarasque.male.foot_rf"), ), - left_back: ( + foot_lb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.tarasque.male.foot_lb"), ), - right_back: ( + foot_rb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.tarasque.male.foot_rb"), ), ), (Tarasque, Female): ( - left_front: ( + leg_lf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.tarasque.female.leg_lf"), + ), + leg_rf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.tarasque.female.leg_rf"), + ), + leg_lb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.tarasque.female.leg_lb"), + ), + leg_rb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.tarasque.female.leg_rb"), + ), + foot_lf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.tarasque.female.foot_lf"), ), - right_front: ( + foot_rf: ( offset: (-1.5, -1.5, -2.5), lateral: ("npc.tarasque.female.foot_rf"), ), - left_back: ( + foot_lb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.tarasque.female.foot_lb"), ), - right_back: ( + foot_rb: ( offset: (-1.5, -2.0, -3.5), lateral: ("npc.tarasque.female.foot_rb"), ), diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index bf65ab0750..febfc12325 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -18,6 +18,10 @@ pub struct QuadrupedMediumSkeleton { torso_back: Bone, torso_mid: Bone, ears: Bone, + leg_lf: Bone, + leg_rf: Bone, + leg_lb: Bone, + leg_rb: Bone, foot_lf: Bone, foot_rf: Bone, foot_lb: Bone, @@ -31,10 +35,7 @@ impl QuadrupedMediumSkeleton { impl Skeleton for QuadrupedMediumSkeleton { type Attr = SkeletonAttr; - #[cfg(feature = "use-dyn-lib")] - const COMPUTE_FN: &'static [u8] = b"quadruped_medium_compute_mats\0"; - - fn bone_count(&self) -> usize { 11 } + fn bone_count(&self) -> usize { 15 } #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_medium_compute_mats")] fn compute_matrices_inner(&self) -> ([FigureBoneData; 16], Vec3) { @@ -51,15 +52,15 @@ impl Skeleton for QuadrupedMediumSkeleton { FigureBoneData::new(self.torso_back.compute_base_matrix()), FigureBoneData::new(torso_mid_mat), FigureBoneData::new(head_upper_mat * ears_mat), + FigureBoneData::new(self.leg_lf.compute_base_matrix()), + FigureBoneData::new(self.leg_rf.compute_base_matrix()), + FigureBoneData::new(self.leg_lb.compute_base_matrix()), + FigureBoneData::new(self.leg_rb.compute_base_matrix()), FigureBoneData::new(self.foot_lf.compute_base_matrix()), FigureBoneData::new(self.foot_rf.compute_base_matrix()), FigureBoneData::new(self.foot_lb.compute_base_matrix()), FigureBoneData::new(self.foot_rb.compute_base_matrix()), FigureBoneData::default(), - FigureBoneData::default(), - FigureBoneData::default(), - FigureBoneData::default(), - FigureBoneData::default(), ], Vec3::default(), ) @@ -73,6 +74,10 @@ impl Skeleton for QuadrupedMediumSkeleton { self.torso_back.interpolate(&target.torso_back, dt); self.torso_mid.interpolate(&target.torso_mid, dt); self.ears.interpolate(&target.ears, dt); + self.leg_lf.interpolate(&target.leg_lf, dt); + self.leg_rf.interpolate(&target.leg_rf, dt); + self.leg_lb.interpolate(&target.leg_lb, dt); + self.leg_rb.interpolate(&target.leg_rb, dt); self.foot_lf.interpolate(&target.foot_lf, dt); self.foot_rf.interpolate(&target.foot_rf, dt); self.foot_lb.interpolate(&target.foot_lb, dt); @@ -88,6 +93,8 @@ pub struct SkeletonAttr { torso_back: (f32, f32), torso_mid: (f32, f32), ears: (f32, f32), + leg_f: (f32, f32, f32), + leg_b: (f32, f32, f32), feet_f: (f32, f32, f32), feet_b: (f32, f32, f32), height: f32, @@ -114,6 +121,8 @@ impl Default for SkeletonAttr { torso_back: (0.0, 0.0), torso_mid: (0.0, 0.0), ears: (0.0, 0.0), + leg_f: (0.0, 0.0, 0.0), + leg_b: (0.0, 0.0, 0.0), feet_f: (0.0, 0.0, 0.0), feet_b: (0.0, 0.0, 0.0), height: (0.0), @@ -195,6 +204,26 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Lion, _) => (-2.0, 4.0), (Tarasque, _) => (1.5, -2.0), }, + leg_f: match (body.species, body.body_type) { + (Grolgar, _) => (5.0, 6.0, 2.0), + (Saber, _) => (4.0, 6.0, 3.0), + (Viper, _) => (4.0, 6.0, 3.0), + (Tuskram, _) => (4.0, 6.0, 4.5), + (Alligator, _) => (4.0, 6.0, 3.0), + (Monitor, _) => (4.0, 6.0, 3.0), + (Lion, _) => (5.0, 6.0, 3.0), + (Tarasque, _) => (4.0, 6.0, 3.0), + }, + leg_b: match (body.species, body.body_type) { + (Grolgar, _) => (5.0, -4.0, 3.0), + (Saber, _) => (4.0, -6.0, 3.5), + (Viper, _) => (4.0, -4.0, 3.5), + (Tuskram, _) => (4.0, -8.0, 5.5), + (Alligator, _) => (4.0, -4.0, 3.5), + (Monitor, _) => (4.0, -6.0, 3.5), + (Lion, _) => (5.5, -8.0, 3.5), + (Tarasque, _) => (4.0, -8.0, 3.5), + }, feet_f: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 6.0, 2.0), (Saber, _) => (4.0, 6.0, 3.0), diff --git a/voxygen/src/audio/sfx/event_mapper/movement/mod.rs b/voxygen/src/audio/sfx/event_mapper/movement/mod.rs index fd4263ed1b..a884066274 100644 --- a/voxygen/src/audio/sfx/event_mapper/movement/mod.rs +++ b/voxygen/src/audio/sfx/event_mapper/movement/mod.rs @@ -66,6 +66,7 @@ impl EventMapper for MovementEventMapper { Body::Humanoid(_) => Self::map_movement_event(character, physics, state, vel.0), Body::QuadrupedMedium(_) | Body::QuadrupedSmall(_) + | Body::QuadrupedLow(_) | Body::BirdMedium(_) | Body::BirdSmall(_) | Body::BipedLarge(_) => Self::map_non_humanoid_movement_event(physics, vel.0), @@ -190,6 +191,7 @@ impl MovementEventMapper { Body::Humanoid(_) => 0.9, Body::QuadrupedSmall(_) => 0.3, Body::QuadrupedMedium(_) => 0.7, + Body::QuadrupedLow(_) => 0.7, Body::BirdMedium(_) => 0.3, Body::BirdSmall(_) => 0.2, Body::BipedLarge(_) => 1.0, diff --git a/voxygen/src/scene/figure/cache.rs b/voxygen/src/scene/figure/cache.rs index e250e73795..9bab8b701a 100644 --- a/voxygen/src/scene/figure/cache.rs +++ b/voxygen/src/scene/figure/cache.rs @@ -295,6 +295,26 @@ impl FigureModelCache { body.body_type, generate_mesh, )), + Some(quadruped_medium_lateral_spec.mesh_leg_lf( + body.species, + body.body_type, + generate_mesh, + )), + Some(quadruped_medium_lateral_spec.mesh_leg_rf( + body.species, + body.body_type, + generate_mesh, + )), + Some(quadruped_medium_lateral_spec.mesh_leg_lb( + body.species, + body.body_type, + generate_mesh, + )), + Some(quadruped_medium_lateral_spec.mesh_leg_rb( + body.species, + body.body_type, + generate_mesh, + )), Some(quadruped_medium_lateral_spec.mesh_foot_lf( body.species, body.body_type, @@ -316,10 +336,6 @@ impl FigureModelCache { generate_mesh, )), None, - None, - None, - None, - None, ] }, Body::BirdMedium(body) => { diff --git a/voxygen/src/scene/figure/load.rs b/voxygen/src/scene/figure/load.rs index aa64fe2e8f..5913b31cd0 100644 --- a/voxygen/src/scene/figure/load.rs +++ b/voxygen/src/scene/figure/load.rs @@ -1231,10 +1231,14 @@ struct QuadrupedMediumCentralSubSpec { pub struct QuadrupedMediumLateralSpec(HashMap<(QMSpecies, QMBodyType), SidedQMLateralVoxSpec>); #[derive(Serialize, Deserialize)] struct SidedQMLateralVoxSpec { - left_front: QuadrupedMediumLateralSubSpec, - right_front: QuadrupedMediumLateralSubSpec, - left_back: QuadrupedMediumLateralSubSpec, - right_back: QuadrupedMediumLateralSubSpec, + leg_lf: QuadrupedMediumLateralSubSpec, + leg_rf: QuadrupedMediumLateralSubSpec, + leg_lb: QuadrupedMediumLateralSubSpec, + leg_rb: QuadrupedMediumLateralSubSpec, + foot_lf: QuadrupedMediumLateralSubSpec, + foot_rf: QuadrupedMediumLateralSubSpec, + foot_lb: QuadrupedMediumLateralSubSpec, + foot_rb: QuadrupedMediumLateralSubSpec, } #[derive(Serialize, Deserialize)] struct QuadrupedMediumLateralSubSpec { @@ -1434,9 +1438,9 @@ impl QuadrupedMediumLateralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); }, }; - let lateral = graceful_load_segment(&spec.left_front.lateral.0); + let lateral = graceful_load_segment(&spec.foot_lf.lateral.0); - generate_mesh(&lateral, Vec3::from(spec.left_front.offset)) + generate_mesh(&lateral, Vec3::from(spec.foot_lf.offset)) } pub fn mesh_foot_rf( @@ -1455,9 +1459,9 @@ impl QuadrupedMediumLateralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); }, }; - let lateral = graceful_load_segment(&spec.right_front.lateral.0); + let lateral = graceful_load_segment(&spec.foot_rf.lateral.0); - generate_mesh(&lateral, Vec3::from(spec.right_front.offset)) + generate_mesh(&lateral, Vec3::from(spec.foot_rf.offset)) } pub fn mesh_foot_lb( @@ -1476,9 +1480,9 @@ impl QuadrupedMediumLateralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); }, }; - let lateral = graceful_load_segment(&spec.left_back.lateral.0); + let lateral = graceful_load_segment(&spec.foot_lb.lateral.0); - generate_mesh(&lateral, Vec3::from(spec.left_back.offset)) + generate_mesh(&lateral, Vec3::from(spec.foot_lb.offset)) } pub fn mesh_foot_rb( @@ -1497,9 +1501,93 @@ impl QuadrupedMediumLateralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); }, }; - let lateral = graceful_load_segment(&spec.right_back.lateral.0); + let lateral = graceful_load_segment(&spec.foot_rb.lateral.0); - generate_mesh(&lateral, Vec3::from(spec.right_back.offset)) + generate_mesh(&lateral, Vec3::from(spec.foot_rb.offset)) + } + + pub fn mesh_leg_lf( + &self, + species: QMSpecies, + body_type: QMBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No leg specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let lateral = graceful_load_segment(&spec.leg_lf.lateral.0); + + generate_mesh(&lateral, Vec3::from(spec.leg_lf.offset)) + } + + pub fn mesh_leg_rf( + &self, + species: QMSpecies, + body_type: QMBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No leg specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let lateral = graceful_load_segment(&spec.leg_rf.lateral.0); + + generate_mesh(&lateral, Vec3::from(spec.leg_rf.offset)) + } + + pub fn mesh_leg_lb( + &self, + species: QMSpecies, + body_type: QMBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No leg specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let lateral = graceful_load_segment(&spec.leg_lb.lateral.0); + + generate_mesh(&lateral, Vec3::from(spec.leg_lb.offset)) + } + + pub fn mesh_leg_rb( + &self, + species: QMSpecies, + body_type: QMBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No foot specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let lateral = graceful_load_segment(&spec.leg_rb.lateral.0); + + generate_mesh(&lateral, Vec3::from(spec.leg_rb.offset)) } } diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs index 4a8633cac7..712d8648d8 100644 --- a/voxygen/src/scene/figure/mod.rs +++ b/voxygen/src/scene/figure/mod.rs @@ -394,7 +394,7 @@ impl FigureMgr { .quadruped_medium_states .get(&entity) .map(|state| state.lpindex), - Body::QuadrupedLow(_) => self + Body::QuadrupedLow(_) => self .quadruped_low_states .get(&entity) .map(|state| state.lpindex), From 6e0e3d094f3a07a887becb5202ee50f4a26569bd Mon Sep 17 00:00:00 2001 From: Snowram Date: Wed, 3 Jun 2020 03:09:59 +0200 Subject: [PATCH 03/48] Remove quad_low mobs from quad_medium --- assets/common/npc_names.json | 12 -- .../voxel/npc/alligator/female/foot_lb.vox | Bin 1224 -> 0 bytes .../voxel/npc/alligator/female/foot_lf.vox | Bin 1160 -> 0 bytes .../voxel/npc/alligator/female/foot_rb.vox | Bin 1224 -> 0 bytes .../voxel/npc/alligator/female/foot_rf.vox | Bin 1160 -> 0 bytes .../voxel/npc/alligator/female/head_lower.vox | Bin 1672 -> 0 bytes .../voxel/npc/alligator/female/head_upper.vox | Bin 2608 -> 0 bytes .../voxel/npc/alligator/female/jaw.vox | Bin 1464 -> 0 bytes .../voxel/npc/alligator/female/tail.vox | Bin 1280 -> 0 bytes .../voxel/npc/alligator/female/torso_back.vox | Bin 2128 -> 0 bytes .../npc/alligator/female/torso_front.vox | Bin 2832 -> 0 bytes .../voxel/npc/alligator/male/foot_lb.vox | Bin 1224 -> 0 bytes .../voxel/npc/alligator/male/foot_lf.vox | Bin 1160 -> 0 bytes .../voxel/npc/alligator/male/foot_rb.vox | Bin 1224 -> 0 bytes .../voxel/npc/alligator/male/foot_rf.vox | Bin 1160 -> 0 bytes .../voxel/npc/alligator/male/head_lower.vox | Bin 1672 -> 0 bytes .../voxel/npc/alligator/male/head_upper.vox | Bin 2608 -> 0 bytes .../voxygen/voxel/npc/alligator/male/jaw.vox | Bin 1464 -> 0 bytes .../voxygen/voxel/npc/alligator/male/tail.vox | Bin 1280 -> 0 bytes .../voxel/npc/alligator/male/torso_back.vox | Bin 2128 -> 0 bytes .../voxel/npc/alligator/male/torso_front.vox | Bin 2832 -> 0 bytes .../voxel/npc/monitor/female/foot_lb.vox | Bin 1188 -> 0 bytes .../voxel/npc/monitor/female/foot_lf.vox | Bin 1156 -> 0 bytes .../voxel/npc/monitor/female/foot_rb.vox | Bin 1188 -> 0 bytes .../voxel/npc/monitor/female/foot_rf.vox | Bin 1188 -> 0 bytes .../voxel/npc/monitor/female/head_lower.vox | Bin 1488 -> 0 bytes .../voxel/npc/monitor/female/head_upper.vox | Bin 1968 -> 0 bytes .../voxygen/voxel/npc/monitor/female/jaw.vox | Bin 1240 -> 0 bytes .../voxygen/voxel/npc/monitor/female/tail.vox | Bin 1216 -> 0 bytes .../voxel/npc/monitor/female/torso_back.vox | Bin 1704 -> 0 bytes .../voxel/npc/monitor/female/torso_front.vox | Bin 2064 -> 0 bytes .../voxel/npc/monitor/male/foot_lb.vox | Bin 1188 -> 0 bytes .../voxel/npc/monitor/male/foot_lf.vox | Bin 1156 -> 0 bytes .../voxel/npc/monitor/male/foot_rb.vox | Bin 1188 -> 0 bytes .../voxel/npc/monitor/male/foot_rf.vox | Bin 1188 -> 0 bytes .../voxel/npc/monitor/male/head_lower.vox | Bin 1488 -> 0 bytes .../voxel/npc/monitor/male/head_upper.vox | Bin 1968 -> 0 bytes assets/voxygen/voxel/npc/monitor/male/jaw.vox | Bin 1240 -> 0 bytes .../voxygen/voxel/npc/monitor/male/tail.vox | Bin 1216 -> 0 bytes .../voxel/npc/monitor/male/torso_back.vox | Bin 1704 -> 0 bytes .../voxel/npc/monitor/male/torso_front.vox | Bin 2064 -> 0 bytes .../voxel/npc/viper/female/foot_lb.vox | Bin 1196 -> 0 bytes .../voxel/npc/viper/female/foot_lf.vox | Bin 1172 -> 0 bytes .../voxel/npc/viper/female/foot_rb.vox | Bin 1196 -> 0 bytes .../voxel/npc/viper/female/foot_rf.vox | Bin 1172 -> 0 bytes .../voxel/npc/viper/female/head_lower.vox | Bin 1576 -> 0 bytes .../voxel/npc/viper/female/head_upper.vox | Bin 2552 -> 0 bytes assets/voxygen/voxel/npc/viper/female/jaw.vox | Bin 1272 -> 0 bytes .../voxygen/voxel/npc/viper/female/tail.vox | Bin 1200 -> 0 bytes .../voxel/npc/viper/female/torso_back.vox | Bin 2392 -> 0 bytes .../voxel/npc/viper/female/torso_front.vox | Bin 3392 -> 0 bytes .../voxygen/voxel/npc/viper/male/foot_lb.vox | Bin 1196 -> 0 bytes .../voxygen/voxel/npc/viper/male/foot_lf.vox | Bin 1172 -> 0 bytes .../voxygen/voxel/npc/viper/male/foot_rb.vox | Bin 1196 -> 0 bytes .../voxygen/voxel/npc/viper/male/foot_rf.vox | Bin 1172 -> 0 bytes .../voxel/npc/viper/male/head_lower.vox | Bin 1576 -> 0 bytes .../voxel/npc/viper/male/head_upper.vox | Bin 2552 -> 0 bytes assets/voxygen/voxel/npc/viper/male/jaw.vox | Bin 1272 -> 0 bytes assets/voxygen/voxel/npc/viper/male/tail.vox | Bin 1200 -> 0 bytes .../voxel/npc/viper/male/torso_back.vox | Bin 2392 -> 0 bytes .../voxel/npc/viper/male/torso_front.vox | Bin 3392 -> 0 bytes .../quadruped_medium_central_manifest.ron | 180 ---------------- .../quadruped_medium_lateral_manifest.ron | 204 ------------------ common/src/comp/body/quadruped_medium.rs | 14 +- voxygen/src/anim/src/quadruped_medium/mod.rs | 36 ---- 65 files changed, 1 insertion(+), 445 deletions(-) delete mode 100644 assets/voxygen/voxel/npc/alligator/female/foot_lb.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/foot_lf.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/foot_rb.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/foot_rf.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/torso_back.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/torso_front.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/male/foot_lb.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/male/foot_lf.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/male/foot_rb.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/male/foot_rf.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/male/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/male/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/male/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/male/tail.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/male/torso_back.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/male/torso_front.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/foot_lb.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/foot_lf.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/foot_rb.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/foot_rf.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/torso_back.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/torso_front.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/male/foot_lb.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/male/foot_lf.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/male/foot_rb.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/male/foot_rf.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/male/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/male/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/male/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/male/tail.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/male/torso_back.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/male/torso_front.vox delete mode 100644 assets/voxygen/voxel/npc/viper/female/foot_lb.vox delete mode 100644 assets/voxygen/voxel/npc/viper/female/foot_lf.vox delete mode 100644 assets/voxygen/voxel/npc/viper/female/foot_rb.vox delete mode 100644 assets/voxygen/voxel/npc/viper/female/foot_rf.vox delete mode 100644 assets/voxygen/voxel/npc/viper/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/viper/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/viper/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/viper/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/viper/female/torso_back.vox delete mode 100644 assets/voxygen/voxel/npc/viper/female/torso_front.vox delete mode 100644 assets/voxygen/voxel/npc/viper/male/foot_lb.vox delete mode 100644 assets/voxygen/voxel/npc/viper/male/foot_lf.vox delete mode 100644 assets/voxygen/voxel/npc/viper/male/foot_rb.vox delete mode 100644 assets/voxygen/voxel/npc/viper/male/foot_rf.vox delete mode 100644 assets/voxygen/voxel/npc/viper/male/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/viper/male/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/viper/male/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/viper/male/tail.vox delete mode 100644 assets/voxygen/voxel/npc/viper/male/torso_back.vox delete mode 100644 assets/voxygen/voxel/npc/viper/male/torso_front.vox diff --git a/assets/common/npc_names.json b/assets/common/npc_names.json index a8e2a0cadc..511bbb0627 100644 --- a/assets/common/npc_names.json +++ b/assets/common/npc_names.json @@ -251,22 +251,10 @@ "keyword": "sabertooth", "generic": "Sabertooth Tiger" }, - "viper": { - "keyword": "viper", - "generic": "Lizard" - }, "tuskram": { "keyword": "tuskram", "generic": "Tusk Ram" }, - "alligator": { - "keyword": "alligator", - "generic": "Alligator" - }, - "monitor": { - "keyword": "monitor", - "generic": "Monitor Lizard" - }, "lion": { "keyword": "lion", "generic": "Lion" diff --git a/assets/voxygen/voxel/npc/alligator/female/foot_lb.vox b/assets/voxygen/voxel/npc/alligator/female/foot_lb.vox deleted file mode 100644 index 16521a938c8f2a5c17fad7100850ead2aff9e08f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1224 zcmaize@NVQ7{{OQ_X;GNoq3*mx6bp_<(+HJAF1osx~1Yy=fat`-8R``BM-5SBMy~g zv7JdaEW63Mpk)>!v1XgxNzorBL&ji?VIzW&F(Uf6KO*|?)pIupqFf(%^Sqz;^L(Dq z=lT5Td*zTjDI#5ag9p?|>M@a?V5sfMjHAP%P$`Q;heN@!jHtt{FfCGMC^V_eG?kl@ zFKSIgxuM)*sBWlkl!?ML)EbsDLllOQZIw|*^OyZb8|DXSd0e=Vc+F7%58u0yUoVxY8RPtHJIi==T1%>^An49lAZ{X zPMjb;bB3n$X{-S|CCA;k&sO7|-G#J0jtoA5%sq{)*|ByBMMJ{YDPj9HA!kt75*G^8 zw_gz&x^n3lvJyI1z9oEr-j!Sg^{~Dx7&d$?4cs&qcIi08L{D+bl{sWrS|5t z6de^R&S~wWuzN+2S9Sf-9Ar8VS+X%v<78oHA@^Q%LPr_XA}lL@Q2e5p9u^ia3abmk zt?TLsgt<21>x06^8$!5U8156M!gj`w3(2t1-z-F1g-fb;H#i8lc^K`kB6+HgSZ@=_ zffiQZeT`q|!&H~s*T6=KLx>*}X5SK4J`fsR4uZZ4jyCQfIToeQXD8g? zWU{@IRDTUl-vs5)4YR#A%!uF0)H{QWoDPv%7-#*)WfE_Ch#hf~o105fy&*J~r-D^Rcd(nip<=EBySuFdDAnQoNqEt1bNYQxA~~Rwlo& zas6%y8pXvEf<5PF>HK7co@?s_0s$TfNREO(u&fLBzj?U7`})5AFRouO`_DGBnc!xz NjQ*%tw(z6p%U?0#AB_M2 diff --git a/assets/voxygen/voxel/npc/alligator/female/foot_lf.vox b/assets/voxygen/voxel/npc/alligator/female/foot_lf.vox deleted file mode 100644 index 64881111b89027d53c630d07fcb31593aff55c6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1160 zcma)*QE1aw6vod#Zcyy((lt$+q)U^u)g*P+v|SpP&c(H%rZtY*wbQ6Yhq8v!DM3P8 zfm8*tJle-CbKbe9%uK-bFqYBA-4?e)2di`D5qs5l_ho>H~5LhGU+Z>s*IMM$OunKzJXurRx|oCmL3 zpwmu9gaw7~6@FI83=4DTg{4{H&P^eECeCzF_-c=^`i>Co5Qh7NiKvmWLxRPfVzVbo z%}c{vQ1R|&Gtr=f(QYT%qm3kbTgVQyvGl=P{4x`zzQ#yvV>Ml`IXT+b!eFP6JSa?^ z5Ejn~UaOgqyOsmqEyUWl(dRZ2ZMHDpQAe)7fnckLPg|=v=T-ON*E8|{AS1^jyJIe&gvQe!obb@CRV8?68KyH5n(zmw7Gf?XmkW ztSi*o*K?QH0E|q|lDv}RqxoBW^6d&QA5XFU^b}o}7wNgNLLd;}k$@B_@H^{Pgoj`M gb-st{fBjcpjo{jxJ&6m+C*=z9r{&fPKYhRa2_1nQIsgCw diff --git a/assets/voxygen/voxel/npc/alligator/female/foot_rb.vox b/assets/voxygen/voxel/npc/alligator/female/foot_rb.vox deleted file mode 100644 index c6683bf74dd0cc1f586a56e9a19a592988c758e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1224 zcmaizaY)={7{{OAU4dk?yF5?NTY8?lymQT+nz~%;mWn&wEu3lFZIdlF@(|mQ5S3%G zok`cQ>?Y@emRX3znr(6?MSqwK8G|u~jR-=@A*F8=Y5~& zecs>u_P%n+lM<2e-p~Oxl7392I}~Yq(sXoK6)I(M=x`)7Zi+fQ=Eo{!hQgu{i*k$D zEo#M3ZYZ}JsvD{sWfp}PY7J|dAqvB=8y1V|7S%24D>to}+^Ssjn)5~MhC-{^Euy)^ zP_9;UA8dblZ+2rEY-(yE7K`y9DeSwvM!Dlpes?%nT@7Q7tDy`BI(Ks7STnKVPBMuQ zndAvFGiPYboW>S(;yUiZbG91a>@KA3ab(~LWbSEX&51266b=eor-bd-gq#6kOI*lT z-+4u-59iV`Xd`kipZAuZp*1FSO$)Ct3Zr**ZC5cRQ7;uSKMm<1?jZ->$zuHTr37w1 zOW{$W;+*DA3AAel4IO1ni?FQtLGg=XdPG>fD6B3B zx2~%n6z1B5uMY|vZwS$LVWd}>iaMD%E~KJDUz0H0DqK>%tG<|Mo0qY!DpIFviS;y+ z>ThB7-PibaK1y}DlijtYbiP!@soq8gI)wN!VfHOyvs~Z zcQe^uNxH8Fw?9Gob0cgIL>Xqo*UJ7baN0ahc?sUSdbwIy(VRGsEAHavXTrTB!j-Bjd_Euj<-_dXw}iyUC>SbWdFJ6i zJX@@Hr=*0pE2r7hoaE$%35xm(x${*e%MlkzkLMrfZ`L>GnYj*k-)5*EMrRg?f1c+3 zr5k+o-8#>oNwDYqES;aM(0y&4U@*u70m)JD2iA4r{x=WzcVF+<|HbtQX5ZOn)(mbI OGxbNsvWXwPUj70~@*k4` diff --git a/assets/voxygen/voxel/npc/alligator/female/foot_rf.vox b/assets/voxygen/voxel/npc/alligator/female/foot_rf.vox deleted file mode 100644 index 13f3c949e9b93e8bc2d48598abae35d972bb0889..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1160 zcma)*QE1aw6vod#Zcyy((lt$+q)U^u)g*P+v|SpP&c(H%rZtY*wbQ6Yhq8v!DM3P8 zf!KiUs{W%zNTvjtH;`(uFuS#!2d`S7 z(@sW&1%>Ywepbi~3v=g%rCH(5O(ApHC?YcIoj94V5g8gC`_FY z7S9P@tC^6ymIK}`#M-yf=Qa{;wlLmNN3OqtV5^5uTdO$dRrlf7Gx7c)BgZ1-X2)2$ zb&2%54ift<6c-m$SyoDeMUThjz`JE5uQa-tI8(*kXAXY2<7V|CJd8{wz# zgwd#z3&|#yueI^(k3GcB>KXsSz|H$6R;eZu_*?%GVLC3fxrBb75O0^q^bhUY_>cZC zhr?_7t(DK?c9i3;F2V0Aq1U&8UeEv6-_+E^$1PJdc&72EPGd@%xc#~CV83wH>BQx7 zF;Ej{*Uot)IZAn~oP|ksR`rG_&Fb%1t-M#4VY@%gk+Wk|_E&K4dL0W96KR|6vHLHq zE7aQ8bC=ivj7-jwyprRi`CEMQ?Fug+PqF><6kV4W>AA5&AQ0e@fD|e4JL^`2hhP77 fzK806{a0R%;M$x$i3`am|tWIniPt)`mp1T#3rYel!^oK}57M216po*x&saWB;yQ&xwYx#`eI)ec#XheLe5n z^~%n|NfBw=($Y>Lhg^})mT1#c#^6aIo**n@=dNf=qo%?$MpzydaFh<%mUt~f6ON(H-t(525+jHj&$$JGIg zF^-~5DEgGiH+igKQ`(HPUD_$kqtv3j%27dAE3ZS{;w+Ys#ckJ&gv-U6P5w* zZNjoSA9t}eb;7Z@2lumiZ<`%x>!i;89aGoDQ|BxW?;T3TzOL!dSW9$3F<-eVpxH;0 z3)k#Rj-2G~h9~y+aDKuj2a0~pJJ;~RJcspN!?WRn9N5A;%jB@8;Wx>X@l!W@&}SJi zPE%@4zRVt!HaW6c!!^8_`3Mhdcv#=VxjmdqX!GGIsnhl_*25k`DU>ezDASAcYC`y~ z9zr;;hY-GzC;3jox0C=s9lir&$%R8~Z+>YDYb8%jO%3AlI3A1(wtjpAMZQ1ryU&NE zr8byzrDXx_t|;* zPeX3_k=7>2+%L!*6Rf)`NEr~UN(j&@mx+V^(nZ zE^|9_kRJ=8I37mTd<40JJ_JwYAUsom@|({hvqw;Tl(i=X_16XR8vBo=Kqgj0=6uKv zk78YU3`NfkqrG_(db=92D1skiG5kU~F)Wz0IypCUIVkj%}qrRd5 ztuK~hUsp8-UKS*J1=EKF*G~(o@^jDXEc{)2xLXKL;0yp6$r;PBK%BtDzR`*Yvo+&A~|!og8& zJ~oZkPp+f$>ODjv5j+q;QV9G3>z?5LR}bgA&+qHM{QL=%|Jh1;zPksHY~y^SKTbaG MZe`9&{V}of7hA|KO#lD@ diff --git a/assets/voxygen/voxel/npc/alligator/female/head_upper.vox b/assets/voxygen/voxel/npc/alligator/female/head_upper.vox deleted file mode 100644 index 3425103eb79eae24c481babfef38a43b6092744e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2608 zcma)+Z)n!n701v0_j~f+q{e8Xi+K`lli1ZoT}&J4(rK{K#$laV8~@Ob%6t&FF4SN{ z=xEcGI&pPbh#lK%-H=jBT`MMR?1hsdrBF(7V+@9rGRFF1FZN=Lz5DKSBL!iO?ST*H z+ zlK15zSW~L9rT`v_Xys7ChnOJSyq^663m)HNQ;v&R2oRx2R!*#kYHMluIF$J$_&=W;{MPAKC9t1apiXe&}>1Y?VI|tD(ksM%JQp zO{M6{Mtu%^w#iXvCPq2>}cR=E?t>*k{ z4_J5Ad4J@*d^Q%+GUg&aM4!-soXE>zlc$EIJc&!hKnR>0$e$PwvBsT9%ZwVxk3A)F zjQFXD&lE-cG;w!I)Bz<(1%44e_2d%J$=481&Z!j2k^Lc`SC#jmMXt9I5_Li#zm)T1 zzQj1?eFbY!f>gqXRF!qXRznRq#*Qs_56O!Wk2hK4QT7ZK|s3*2|_L3ETmd;$eLzb$2>$x;On@%jyOp8 zKL3Y6;6EaQuf>N5349%6h>*b7GlmEWd_Ctwgap2x^C3b4-(cm?Ks+RT-#|P>NZIF` zj1YK>2%(WN1nQ6A^Li8WnFh{1lm3YkK&n*VWbhFa4vr zS=X+OD*xUdS1~omoTMMT~v@rXm7S27btqb2$<4}uQpXgA>a~sri{(jkT zk{zp&UARkjy+w_qrj^G{YtEYPeaBRF%v3*PTF$uTEz_3KTJ1XCsPX5Q>wAlz(~fD= z-Z|6PFPWbGh`oE;)L!Y-y6Il^Um4QsiDq@4X;bgTwd#BC9<4lRTK7C>&zrVgHQ86W zf2vA0*C4yxtku1zbZ=ipU7tTG?J8@|OpEY`N=1Lc&Yd(}`l0FC8>aW)WjtiMFl_qe zqo$kRFjaP%PL7$*R$BDZ6Q=o!>F|JQa);?v=J#%CQ)ReQQ+vBLe`J%U_ixqw(e1kS z^4Ij&ixq9?YSFe$Yqk4J-8wS1RmXOjW)7LoKV!Q3imAW7O(VVQbg=(EP3*W|W4$e^ zY+0={JJ;*V;f)&J)~7Yweymse(POYtXTN()dv-pcLt{I%_~y%+{br}853E*gZLL-< zZ_>tly42Uxss8)!)&rY*boRwHy7YRd{`h{cZhp8yKjF?R7fm1h+Vtn&nWie;dUa;A zuD`uqfB(}yO`LAjnKzsD?nkYZ^zwiIAfAi+e`oY%o+SqqNgQs3l>rAWO`b8Ylad%M1~eohY#&g!YtFKN}`mHO}(>$N!E zs@aZ?|Ik0j<+C2&_kkvkO3$8qLo+|WqVHe+t$y^I8~WnYr}W?p=e7H_tJ?R@4Gj$q z=@XNz3iMBf8>Wwcbt}J*>97B_&R4kfo!xF diff --git a/assets/voxygen/voxel/npc/alligator/female/jaw.vox b/assets/voxygen/voxel/npc/alligator/female/jaw.vox deleted file mode 100644 index 215c645e572adc637191f02d613faf27ad298593..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1464 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 diff --git a/assets/voxygen/voxel/npc/alligator/female/torso_back.vox b/assets/voxygen/voxel/npc/alligator/female/torso_back.vox deleted file mode 100644 index 9f780d9d31ac30a79ccdd6a4d8535d5120d4c21e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2128 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 US^QMK)p)D9o6p=V-(s)%H%Z)MA^-pY diff --git a/assets/voxygen/voxel/npc/alligator/male/foot_lb.vox b/assets/voxygen/voxel/npc/alligator/male/foot_lb.vox deleted file mode 100644 index 16521a938c8f2a5c17fad7100850ead2aff9e08f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1224 zcmaize@NVQ7{{OQ_X;GNoq3*mx6bp_<(+HJAF1osx~1Yy=fat`-8R``BM-5SBMy~g zv7JdaEW63Mpk)>!v1XgxNzorBL&ji?VIzW&F(Uf6KO*|?)pIupqFf(%^Sqz;^L(Dq z=lT5Td*zTjDI#5ag9p?|>M@a?V5sfMjHAP%P$`Q;heN@!jHtt{FfCGMC^V_eG?kl@ zFKSIgxuM)*sBWlkl!?ML)EbsDLllOQZIw|*^OyZb8|DXSd0e=Vc+F7%58u0yUoVxY8RPtHJIi==T1%>^An49lAZ{X zPMjb;bB3n$X{-S|CCA;k&sO7|-G#J0jtoA5%sq{)*|ByBMMJ{YDPj9HA!kt75*G^8 zw_gz&x^n3lvJyI1z9oEr-j!Sg^{~Dx7&d$?4cs&qcIi08L{D+bl{sWrS|5t z6de^R&S~wWuzN+2S9Sf-9Ar8VS+X%v<78oHA@^Q%LPr_XA}lL@Q2e5p9u^ia3abmk zt?TLsgt<21>x06^8$!5U8156M!gj`w3(2t1-z-F1g-fb;H#i8lc^K`kB6+HgSZ@=_ zffiQZeT`q|!&H~s*T6=KLx>*}X5SK4J`fsR4uZZ4jyCQfIToeQXD8g? zWU{@IRDTUl-vs5)4YR#A%!uF0)H{QWoDPv%7-#*)WfE_Ch#hf~o105fy&*J~r-D^Rcd(nip<=EBySuFdDAnQoNqEt1bNYQxA~~Rwlo& zas6%y8pXvEf<5PF>HK7co@?s_0s$TfNREO(u&fLBzj?U7`})5AFRouO`_DGBnc!xz NjQ*%tw(z6p%U?0#AB_M2 diff --git a/assets/voxygen/voxel/npc/alligator/male/foot_lf.vox b/assets/voxygen/voxel/npc/alligator/male/foot_lf.vox deleted file mode 100644 index 64881111b89027d53c630d07fcb31593aff55c6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1160 zcma)*QE1aw6vod#Zcyy((lt$+q)U^u)g*P+v|SpP&c(H%rZtY*wbQ6Yhq8v!DM3P8 zfm8*tJle-CbKbe9%uK-bFqYBA-4?e)2di`D5qs5l_ho>H~5LhGU+Z>s*IMM$OunKzJXurRx|oCmL3 zpwmu9gaw7~6@FI83=4DTg{4{H&P^eECeCzF_-c=^`i>Co5Qh7NiKvmWLxRPfVzVbo z%}c{vQ1R|&Gtr=f(QYT%qm3kbTgVQyvGl=P{4x`zzQ#yvV>Ml`IXT+b!eFP6JSa?^ z5Ejn~UaOgqyOsmqEyUWl(dRZ2ZMHDpQAe)7fnckLPg|=v=T-ON*E8|{AS1^jyJIe&gvQe!obb@CRV8?68KyH5n(zmw7Gf?XmkW ztSi*o*K?QH0E|q|lDv}RqxoBW^6d&QA5XFU^b}o}7wNgNLLd;}k$@B_@H^{Pgoj`M gb-st{fBjcpjo{jxJ&6m+C*=z9r{&fPKYhRa2_1nQIsgCw diff --git a/assets/voxygen/voxel/npc/alligator/male/foot_rb.vox b/assets/voxygen/voxel/npc/alligator/male/foot_rb.vox deleted file mode 100644 index c6683bf74dd0cc1f586a56e9a19a592988c758e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1224 zcmaizaY)={7{{OAU4dk?yF5?NTY8?lymQT+nz~%;mWn&wEu3lFZIdlF@(|mQ5S3%G zok`cQ>?Y@emRX3znr(6?MSqwK8G|u~jR-=@A*F8=Y5~& zecs>u_P%n+lM<2e-p~Oxl7392I}~Yq(sXoK6)I(M=x`)7Zi+fQ=Eo{!hQgu{i*k$D zEo#M3ZYZ}JsvD{sWfp}PY7J|dAqvB=8y1V|7S%24D>to}+^Ssjn)5~MhC-{^Euy)^ zP_9;UA8dblZ+2rEY-(yE7K`y9DeSwvM!Dlpes?%nT@7Q7tDy`BI(Ks7STnKVPBMuQ zndAvFGiPYboW>S(;yUiZbG91a>@KA3ab(~LWbSEX&51266b=eor-bd-gq#6kOI*lT z-+4u-59iV`Xd`kipZAuZp*1FSO$)Ct3Zr**ZC5cRQ7;uSKMm<1?jZ->$zuHTr37w1 zOW{$W;+*DA3AAel4IO1ni?FQtLGg=XdPG>fD6B3B zx2~%n6z1B5uMY|vZwS$LVWd}>iaMD%E~KJDUz0H0DqK>%tG<|Mo0qY!DpIFviS;y+ z>ThB7-PibaK1y}DlijtYbiP!@soq8gI)wN!VfHOyvs~Z zcQe^uNxH8Fw?9Gob0cgIL>Xqo*UJ7baN0ahc?sUSdbwIy(VRGsEAHavXTrTB!j-Bjd_Euj<-_dXw}iyUC>SbWdFJ6i zJX@@Hr=*0pE2r7hoaE$%35xm(x${*e%MlkzkLMrfZ`L>GnYj*k-)5*EMrRg?f1c+3 zr5k+o-8#>oNwDYqES;aM(0y&4U@*u70m)JD2iA4r{x=WzcVF+<|HbtQX5ZOn)(mbI OGxbNsvWXwPUj70~@*k4` diff --git a/assets/voxygen/voxel/npc/alligator/male/foot_rf.vox b/assets/voxygen/voxel/npc/alligator/male/foot_rf.vox deleted file mode 100644 index 13f3c949e9b93e8bc2d48598abae35d972bb0889..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1160 zcma)*QE1aw6vod#Zcyy((lt$+q)U^u)g*P+v|SpP&c(H%rZtY*wbQ6Yhq8v!DM3P8 zf!KiUs{W%zNTvjtH;`(uFuS#!2d`S7 z(@sW&1%>Ywepbi~3v=g%rCH(5O(ApHC?YcIoj94V5g8gC`_FY z7S9P@tC^6ymIK}`#M-yf=Qa{;wlLmNN3OqtV5^5uTdO$dRrlf7Gx7c)BgZ1-X2)2$ zb&2%54ift<6c-m$SyoDeMUThjz`JE5uQa-tI8(*kXAXY2<7V|CJd8{wz# zgwd#z3&|#yueI^(k3GcB>KXsSz|H$6R;eZu_*?%GVLC3fxrBb75O0^q^bhUY_>cZC zhr?_7t(DK?c9i3;F2V0Aq1U&8UeEv6-_+E^$1PJdc&72EPGd@%xc#~CV83wH>BQx7 zF;Ej{*Uot)IZAn~oP|ksR`rG_&Fb%1t-M#4VY@%gk+Wk|_E&K4dL0W96KR|6vHLHq zE7aQ8bC=ivj7-jwyprRi`CEMQ?Fug+PqF><6kV4W>AA5&AQ0e@fD|e4JL^`2hhP77 fzK806{a0R%;M$x$i3`am|tWIniPt)`mp1T#3rYel!^oK}57M216po*x&saWB;yQ&xwYx#`eI)ec#XheLe5n z^~%n|NfBw=($Y>Lhg^})mT1#c#^6aIo**n@=dNf=qo%?$MpzydaFh<%mUt~f6ON(H-t(525+jHj&$$JGIg zF^-~5DEgGiH+igKQ`(HPUD_$kqtv3j%27dAE3ZS{;w+Ys#ckJ&gv-U6P5w* zZNjoSA9t}eb;7Z@2lumiZ<`%x>!i;89aGoDQ|BxW?;T3TzOL!dSW9$3F<-eVpxH;0 z3)k#Rj-2G~h9~y+aDKuj2a0~pJJ;~RJcspN!?WRn9N5A;%jB@8;Wx>X@l!W@&}SJi zPE%@4zRVt!HaW6c!!^8_`3Mhdcv#=VxjmdqX!GGIsnhl_*25k`DU>ezDASAcYC`y~ z9zr;;hY-GzC;3jox0C=s9lir&$%R8~Z+>YDYb8%jO%3AlI3A1(wtjpAMZQ1ryU&NE zr8byzrDXx_t|;* zPeX3_k=7>2+%L!*6Rf)`NEr~UN(j&@mx+V^(nZ zE^|9_kRJ=8I37mTd<40JJ_JwYAUsom@|({hvqw;Tl(i=X_16XR8vBo=Kqgj0=6uKv zk78YU3`NfkqrG_(db=92D1skiG5kU~F)Wz0IypCUIVkj%}qrRd5 ztuK~hUsp8-UKS*J1=EKF*G~(o@^jDXEc{)2xLXKL;0yp6$r;PBK%BtDzR`*Yvo+&A~|!og8& zJ~oZkPp+f$>ODjv5j+q;QV9G3>z?5LR}bgA&+qHM{QL=%|Jh1;zPksHY~y^SKTbaG MZe`9&{V}of7hA|KO#lD@ diff --git a/assets/voxygen/voxel/npc/alligator/male/head_upper.vox b/assets/voxygen/voxel/npc/alligator/male/head_upper.vox deleted file mode 100644 index 3425103eb79eae24c481babfef38a43b6092744e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2608 zcma)+Z)n!n701v0_j~f+q{e8Xi+K`lli1ZoT}&J4(rK{K#$laV8~@Ob%6t&FF4SN{ z=xEcGI&pPbh#lK%-H=jBT`MMR?1hsdrBF(7V+@9rGRFF1FZN=Lz5DKSBL!iO?ST*H z+ zlK15zSW~L9rT`v_Xys7ChnOJSyq^663m)HNQ;v&R2oRx2R!*#kYHMluIF$J$_&=W;{MPAKC9t1apiXe&}>1Y?VI|tD(ksM%JQp zO{M6{Mtu%^w#iXvCPq2>}cR=E?t>*k{ z4_J5Ad4J@*d^Q%+GUg&aM4!-soXE>zlc$EIJc&!hKnR>0$e$PwvBsT9%ZwVxk3A)F zjQFXD&lE-cG;w!I)Bz<(1%44e_2d%J$=481&Z!j2k^Lc`SC#jmMXt9I5_Li#zm)T1 zzQj1?eFbY!f>gqXRF!qXRznRq#*Qs_56O!Wk2hK4QT7ZK|s3*2|_L3ETmd;$eLzb$2>$x;On@%jyOp8 zKL3Y6;6EaQuf>N5349%6h>*b7GlmEWd_Ctwgap2x^C3b4-(cm?Ks+RT-#|P>NZIF` zj1YK>2%(WN1nQ6A^Li8WnFh{1lm3YkK&n*VWbhFa4vr zS=X+OD*xUdS1~omoTMMT~v@rXm7S27btqb2$<4}uQpXgA>a~sri{(jkT zk{zp&UARkjy+w_qrj^G{YtEYPeaBRF%v3*PTF$uTEz_3KTJ1XCsPX5Q>wAlz(~fD= z-Z|6PFPWbGh`oE;)L!Y-y6Il^Um4QsiDq@4X;bgTwd#BC9<4lRTK7C>&zrVgHQ86W zf2vA0*C4yxtku1zbZ=ipU7tTG?J8@|OpEY`N=1Lc&Yd(}`l0FC8>aW)WjtiMFl_qe zqo$kRFjaP%PL7$*R$BDZ6Q=o!>F|JQa);?v=J#%CQ)ReQQ+vBLe`J%U_ixqw(e1kS z^4Ij&ixq9?YSFe$Yqk4J-8wS1RmXOjW)7LoKV!Q3imAW7O(VVQbg=(EP3*W|W4$e^ zY+0={JJ;*V;f)&J)~7Yweymse(POYtXTN()dv-pcLt{I%_~y%+{br}853E*gZLL-< zZ_>tly42Uxss8)!)&rY*boRwHy7YRd{`h{cZhp8yKjF?R7fm1h+Vtn&nWie;dUa;A zuD`uqfB(}yO`LAjnKzsD?nkYZ^zwiIAfAi+e`oY%o+SqqNgQs3l>rAWO`b8Ylad%M1~eohY#&g!YtFKN}`mHO}(>$N!E zs@aZ?|Ik0j<+C2&_kkvkO3$8qLo+|WqVHe+t$y^I8~WnYr}W?p=e7H_tJ?R@4Gj$q z=@XNz3iMBf8>Wwcbt}J*>97B_&R4kfo!xF diff --git a/assets/voxygen/voxel/npc/alligator/male/jaw.vox b/assets/voxygen/voxel/npc/alligator/male/jaw.vox deleted file mode 100644 index 215c645e572adc637191f02d613faf27ad298593..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1464 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 diff --git a/assets/voxygen/voxel/npc/alligator/male/torso_back.vox b/assets/voxygen/voxel/npc/alligator/male/torso_back.vox deleted file mode 100644 index 9f780d9d31ac30a79ccdd6a4d8535d5120d4c21e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2128 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 US^QMK)p)D9o6p=V-(s)%H%Z)MA^-pY diff --git a/assets/voxygen/voxel/npc/monitor/female/foot_lb.vox b/assets/voxygen/voxel/npc/monitor/female/foot_lb.vox deleted file mode 100644 index c7daeb8a5405eae9601b87c6213b6281ef2c16ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1188 zcmaizUuc_U6vj`!C=}~zv}xKTGmU9GlXR|2TieXcnc0>u?K0_VqIM5JAcqBHnr-;@!{pORp3=4?LXz=X}rm zy>H}|BhH+Ng!hLIDJ9d7i1de|U61RI5~G3&mGqIL(a?~xb*Wa+j1n;zC9jeZO_RJq zK@>EDvUP~EHG_&9RNSEAN-G#dLD!m=*Yp~LrhEmXp3_u~s2&xzPYXM*3uPn1wvd)$m`%7%Bo7T?WhsXi{$pI5VU!rm1@URC=i%8+aY zvScRRWM^S_7584WL(em0MOaq&QQ=pG?3l3lk+8ZT+{!CID9m*U-y9Y;-VkEl!dOI@ zj#-!-5^^zN&@Uu9h07}5*J>lyXW~aQooSMofX|kK}d0e#Z+QAFW9;PpDXYn%^Ki%@Oai@__ z)Xu`ZaQi#qmmh?Qn48O~7S^tH@cYmG#4nkc`qE7Pu9XdHiK_D`@js=`B_VWpw&p*2 zaK|S9;SRnU3zzsiYM#LBs=`}aLBLbNfPWhUzW?SQ@7%+``M0#R@L~HbO};q-=?hp> zR&IVS+&d;*b-VF+JPg+*ICx+QNlj1{uVQ&-^BAG+JBq)FpSSEkouy)`%5?Y`1^I9KbvOXg;{z(U7`Q_I>BI& r2Le*2z@He`h5O%be&2m{zy2?;o?z*nZKd_(RyjTXuv}^I!~5lLP7f;Y diff --git a/assets/voxygen/voxel/npc/monitor/female/foot_lf.vox b/assets/voxygen/voxel/npc/monitor/female/foot_lf.vox deleted file mode 100644 index e2cfe966e418825c8e9d2ec7c4816e832d205364..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1156 zcma)*QE1aw6vj{D24$T!vuWBSU7Dq>OHyY|+of^oTwEJ!TH~l)JB?a&C~GL4C5+IP z;Ly0TOgg(5QipS0H%b}K&XlBV?4c`CL=cfqM35pP;_Dv9*xPUS-;FU4-41*l&UfxT z=YIFz)BDz5dsalkJ3_malc8rsxaEOfE#ubfR_J(% zj0g(~w-p{LWQK*gv%=D>a4jcfPsN!I3P0=-R^Jn%?ZR-cFcCE|c1WIt@ZINwsq8Lzqzzk!L51{gUOAwN6D%9RVG z-*=GMZ>6}nn2ORDsJ9yMxEy%5Y~r;B7Zax{nfuDYoojAZZ`ARH>Y1MruKy%F_(d3v zIyskYWcgAnzuxU8cG|%Bw?=X|&8$*IB=EQXBf@lCXmtsFJ|W&FkLe%Wwdo)I-wlV? z^xG;n;C7VZt}4OrDxt@>o*vKt*WcLK$Y;${)O)7!r%qx{nz{P5aBIJC(doqHa?xKM zXV=boBsof1tc-<8byoF;$1Upb*lc`Qn_;^@&5_e%RP>c|%LB`A4Vo;Nq&>()A=iW{__g24yD+Ba*EC`7wNvdLLd;}zJL@d@H^{PgnK{!b-sJ* cfBjcpjo{jxJ;`gyC*?H$X}Pt+Pv0+p0zFzJz5oCK diff --git a/assets/voxygen/voxel/npc/monitor/female/foot_rb.vox b/assets/voxygen/voxel/npc/monitor/female/foot_rb.vox deleted file mode 100644 index e943a0bd5066e9e253f9777a43dec2b1a93bbf44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1188 zcmaizU1*zS6vs~zg<@TeHcgvkrZH`|B%SNh);2S9X11kEyG**;xMf@EWW$D1H-dz= zgvpj!jH4Q3NGCXJl~TsGZYfDoyr^ZAF&JaiA%c`KM7;Gv#Jiu*n_ek)KJb6fIsfzZ zp64U{`e8>-L_+(52bGZY6C(Y=NY~Svp_V~GQ6+i!NF+FEOL%vgpTILSJ zzO3-pf-rtx<@Q;zN1fCsJhT-8*kUG}Q&v24wRmrDr}~&se@@lT344|Wc|-M|C_}Op z$fAir&c7(N-H%-3=55o3MFO)V(;y4sVokzmfF& zBaEMpP?(=&?bc;7?>I>uwNYMPPEF;rG}(-J-A>weZsX-f%zeh1KgF{Qh%4v5Q8gu9(Q*x3Eqv5w#zs`A@2Si3=U>&F3FI zux(@h;SR2ig-Y|=Yo5X5tin@Uf!|%hfNu)}-v6FI*14O1&)?G0!YA!BGg3=e>q3d;J+sUYw+6u$p@} z8d!>0$T%GT*nh3R7N^xZ(tnrOFpN*nll;2CM~k=k?E5udI+J4W`5Ah@Sf>Bx8i7E7 rM*>o&z@He_good5{NF=$zy8m!o?z*nZ6-D6Wu?K0_VqIM5JAcqBHnr-;@!{pORp3=4?LXz=X}rm zy>H}|BhH+Ng!hLIDJ9d7i1de|U61RI5~G3&mGqIL(a?~xb*Wa+j1n;zC9jeZO_RJq zK@>EDvUP~EHG_&9RNSEAN-G#dLD!m=*Yp~LrhEmXp3_u~s2&xzPYXM*3uPn1wvd)$m`%7%Bo7T?WhsXi{$pI5VU!rm1@URC=i%8+aY zvScRRWM^S_7584WL(em0MOaq&QQ=pG?3l3lk+8ZT+{!CID9m*U-y9Y;-VkEl!dOI@ zj#-!-5^^zN&@Uu9h07}5*J>lyXW~aQooSMofX|kK}d0e#Z+QAFW9;PpDXYn%^Ki%@Oai@__ z)Xu`ZaQi#qmmh?Qn48O~7S^tH@cYmG#4nkc`qE7Pu9XdHiK_D`@js=`B_VWpw&p*2 zaK|S9;SRnU3zzsiYM#LBs=`}aLBLbNfPWhUzW?SQ@7%+``M0#R@L~HbO};q-=?hp> zR&IVS+&d;*b-VF+JPg+*ICx+QNlj1{uVQ&-^BAG+JBq)FpSSEkouy)`%5?Y`1^I9KbvOXg;{z(U7`Q_I>BI& r2Le*2z@He`h5O%be&2m{zy2?;o?z*nZKd_(RyjTXuv}^I!~5lLP7f;Y diff --git a/assets/voxygen/voxel/npc/monitor/female/head_lower.vox b/assets/voxygen/voxel/npc/monitor/female/head_lower.vox deleted file mode 100644 index 1daeebdb97d8673125bdab8e9a172abef12f7723..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1488 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 g&FdFT{Q527hoZq5uE@ diff --git a/assets/voxygen/voxel/npc/monitor/female/tail.vox b/assets/voxygen/voxel/npc/monitor/female/tail.vox deleted file mode 100644 index 1856f9ceb332fb320e929f35d8a0e7b2bf2e5283..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1216 zcma)*Urbw77{I>{*s3_JQp%rV!2**O9V=jA7H20ktgy~71h;OG&1{i|;1*&CkY;A9 z66=D)N?>N2h=vfd4F_q7#s?$|S(Yrzf{QURWLb>y)dypI`}y6@w`J3l{Bq9uefOMm zzwh4D^~QnHNf8O{4(`)Vu4IaI1jB)+jES~Q$`k+g2M&gVQA28TC?=CEiekz%EsBBY z*dRl_V#+Wrn#}66v^UtK-ax$=ezUSgy@8HRnKEz6QZ_4F6tm2WI#DO;M4hPH-}3ry z_375o&_FaA<$glgb7_q->)-rowX(Vz!f026DfYGP;Appx=wKVEc#u@$D5OIEYyXvY3;WV zKAp?Q%g@mq71}3+w-L2uH+8dDM+J>Bl}`#W_}ld$t76jTgv2ER>(ty(fjn z6+zzA^GD3cL=LiKC0=c3Zbu$>U$sN)^Gt}ato)?>rc4Y83!e$AbHdFuWdAx>bXFc6r&8&X(7QfF% zs4BD3SW`mVYn2@Ds;942h;<9o?+GjC1h1orpu3#I-t7!D@1)CZBT{E)tfhivPc?x? z4;LDXIp@`S_$-Wn*vIgRFv+=5)~{b8@vf8TAv@XG*%ahHL$%$4$K}MkeH*XTxETMS zn1wH${Cv~R#_cLD>Y2$|;nw%UuRjVSkxI_TYFWG5#2>$OFmTqw*u0g+JB4geLRjmO z&i|O!Wl(5x2|W$MV6!}wfB)WX>HH^qo47I*O6Tt=cpA4e4|hopK35K%4O{8-{QvxG zYis$mewu2}48Hgo3S))b_)55YNVr^CiOc1pw``ETdzO&c2zdi}EKfc7hNp`3-*Gs2 zzhZ)2z68h4j#AK*&+Tt2SPmDGC@p=c{>F30UI#mFG0+RcQ**?=PV&jpbw2-LotIC> z*>z@`wl7xbxVDbp@8`aNm=*paV_mrS-GleLr~lV~#q|=V@7bezBlxJ8;U5=EZ~XZ6 F@(2T))_RF&g(E zaXTOPP=qk|k(~b^_c9=8^gnt2qdV6AGyj)^ZOQoy^Hw0>%R!(h3l07(bk=2}v*O?R zYYGbx3Y0!^{;H}f^c{W$;oU(rjGRJ#EFafD7u?+^m@6xT-|xqfk^$`4b_Eg}MoxbY z7SBF>!xIJkb_xse_L>Q7X&A@BGpCW)y9&3yT7$)KKE{iS@!$F;&T#GRxQYHFz|h%Q z#J-rv2Uotw$KTz-3&%&W<`*LzQ+v7Qp-9+#vBJj zSK<)pQZ8Y5FVx+LJ@2JCp&xZZ>rgi~bg5hZ_ai3dMQN`{Gv|FrLO(Fn zos^SiLNCoQF5`QQA2^}$Xv5gnA?RZ$4W*>hKAr!`!)R`wppQr0qwZ1nCSvFvbNl3z z#xvnCr=*dWRUapG$E7a#iR(?*iI;nme5~>mi=;=(R z%oXSi>0`;?sASJPYeQpH@{aH|w&viR1J1=N59T(yE9B~AP-bY&=DeZwH5XyEKRQ?1 z8Tvbf(b;F{PO;DA<_e|uj<7tt!heL%K6<_xHjL>oj_)XE=HR|KJO`XdKp&5>3?bCH zrBYWRUXtGtwC#HJWp$9KZL#D<4B3_md=89E+O;@s0X@d)Q#q%O`x%K$C=C1 zITOOV0>aUr6CQ0{bhBlt=N}zFR&%BoJ(Bb^n*1x=b;(_x`S5{UcnM~q-zhLFZS5cDnCw|Y$ z!uWU-^t;e7iZzW3uzgDvlAVnh?QOtl|8|U?*oVcVdy!d_gWPRJC^|3)vC~T+bsnTW z9dh<*$kiNVHVLNf5zOcl%)KOtvP7{bCI6UV-r=uj7}Y1m=|F zpn72;8eb~K&ep|fUnS_-A~^k);L349e!LeY&v#*NSpr*HYq6$&>7#!mTj!&$x(pvy z&%p5t_M<8jeebqo|K2tXo$AI|>InMZEJkuuKBCbmrcZqe^Yb%N7Ar=@yxCZ~FowQ& zX5iwPV*GGDj=MMK;3MW784}$1TJY0%g6>2qPWF`J>V*~f^~V-;9L>bBR2ITpxwwl$ zw6Px(_3vO`It43Y|6Tu{)w3Vf|9Mx_MEwQRryyROjdEFjb_4rQoI}rNBY6Mvw>b69ZM?9r7t0QvM&l<}&~oWEYHDh5UjT^^_yhK~ r;NDjc_}$}v{oj8+!HIYFxID9IGal;t^WphP@=14(`#gSrg01`w2$ac& diff --git a/assets/voxygen/voxel/npc/monitor/male/foot_lb.vox b/assets/voxygen/voxel/npc/monitor/male/foot_lb.vox deleted file mode 100644 index c7daeb8a5405eae9601b87c6213b6281ef2c16ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1188 zcmaizUuc_U6vj`!C=}~zv}xKTGmU9GlXR|2TieXcnc0>u?K0_VqIM5JAcqBHnr-;@!{pORp3=4?LXz=X}rm zy>H}|BhH+Ng!hLIDJ9d7i1de|U61RI5~G3&mGqIL(a?~xb*Wa+j1n;zC9jeZO_RJq zK@>EDvUP~EHG_&9RNSEAN-G#dLD!m=*Yp~LrhEmXp3_u~s2&xzPYXM*3uPn1wvd)$m`%7%Bo7T?WhsXi{$pI5VU!rm1@URC=i%8+aY zvScRRWM^S_7584WL(em0MOaq&QQ=pG?3l3lk+8ZT+{!CID9m*U-y9Y;-VkEl!dOI@ zj#-!-5^^zN&@Uu9h07}5*J>lyXW~aQooSMofX|kK}d0e#Z+QAFW9;PpDXYn%^Ki%@Oai@__ z)Xu`ZaQi#qmmh?Qn48O~7S^tH@cYmG#4nkc`qE7Pu9XdHiK_D`@js=`B_VWpw&p*2 zaK|S9;SRnU3zzsiYM#LBs=`}aLBLbNfPWhUzW?SQ@7%+``M0#R@L~HbO};q-=?hp> zR&IVS+&d;*b-VF+JPg+*ICx+QNlj1{uVQ&-^BAG+JBq)FpSSEkouy)`%5?Y`1^I9KbvOXg;{z(U7`Q_I>BI& r2Le*2z@He`h5O%be&2m{zy2?;o?z*nZKd_(RyjTXuv}^I!~5lLP7f;Y diff --git a/assets/voxygen/voxel/npc/monitor/male/foot_lf.vox b/assets/voxygen/voxel/npc/monitor/male/foot_lf.vox deleted file mode 100644 index e2cfe966e418825c8e9d2ec7c4816e832d205364..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1156 zcma)*QE1aw6vj{D24$T!vuWBSU7Dq>OHyY|+of^oTwEJ!TH~l)JB?a&C~GL4C5+IP z;Ly0TOgg(5QipS0H%b}K&XlBV?4c`CL=cfqM35pP;_Dv9*xPUS-;FU4-41*l&UfxT z=YIFz)BDz5dsalkJ3_malc8rsxaEOfE#ubfR_J(% zj0g(~w-p{LWQK*gv%=D>a4jcfPsN!I3P0=-R^Jn%?ZR-cFcCE|c1WIt@ZINwsq8Lzqzzk!L51{gUOAwN6D%9RVG z-*=GMZ>6}nn2ORDsJ9yMxEy%5Y~r;B7Zax{nfuDYoojAZZ`ARH>Y1MruKy%F_(d3v zIyskYWcgAnzuxU8cG|%Bw?=X|&8$*IB=EQXBf@lCXmtsFJ|W&FkLe%Wwdo)I-wlV? z^xG;n;C7VZt}4OrDxt@>o*vKt*WcLK$Y;${)O)7!r%qx{nz{P5aBIJC(doqHa?xKM zXV=boBsof1tc-<8byoF;$1Upb*lc`Qn_;^@&5_e%RP>c|%LB`A4Vo;Nq&>()A=iW{__g24yD+Ba*EC`7wNvdLLd;}zJL@d@H^{PgnK{!b-sJ* cfBjcpjo{jxJ;`gyC*?H$X}Pt+Pv0+p0zFzJz5oCK diff --git a/assets/voxygen/voxel/npc/monitor/male/foot_rb.vox b/assets/voxygen/voxel/npc/monitor/male/foot_rb.vox deleted file mode 100644 index e943a0bd5066e9e253f9777a43dec2b1a93bbf44..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1188 zcmaizU1*zS6vs~zg<@TeHcgvkrZH`|B%SNh);2S9X11kEyG**;xMf@EWW$D1H-dz= zgvpj!jH4Q3NGCXJl~TsGZYfDoyr^ZAF&JaiA%c`KM7;Gv#Jiu*n_ek)KJb6fIsfzZ zp64U{`e8>-L_+(52bGZY6C(Y=NY~Svp_V~GQ6+i!NF+FEOL%vgpTILSJ zzO3-pf-rtx<@Q;zN1fCsJhT-8*kUG}Q&v24wRmrDr}~&se@@lT344|Wc|-M|C_}Op z$fAir&c7(N-H%-3=55o3MFO)V(;y4sVokzmfF& zBaEMpP?(=&?bc;7?>I>uwNYMPPEF;rG}(-J-A>weZsX-f%zeh1KgF{Qh%4v5Q8gu9(Q*x3Eqv5w#zs`A@2Si3=U>&F3FI zux(@h;SR2ig-Y|=Yo5X5tin@Uf!|%hfNu)}-v6FI*14O1&)?G0!YA!BGg3=e>q3d;J+sUYw+6u$p@} z8d!>0$T%GT*nh3R7N^xZ(tnrOFpN*nll;2CM~k=k?E5udI+J4W`5Ah@Sf>Bx8i7E7 rM*>o&z@He_good5{NF=$zy8m!o?z*nZ6-D6Wu?K0_VqIM5JAcqBHnr-;@!{pORp3=4?LXz=X}rm zy>H}|BhH+Ng!hLIDJ9d7i1de|U61RI5~G3&mGqIL(a?~xb*Wa+j1n;zC9jeZO_RJq zK@>EDvUP~EHG_&9RNSEAN-G#dLD!m=*Yp~LrhEmXp3_u~s2&xzPYXM*3uPn1wvd)$m`%7%Bo7T?WhsXi{$pI5VU!rm1@URC=i%8+aY zvScRRWM^S_7584WL(em0MOaq&QQ=pG?3l3lk+8ZT+{!CID9m*U-y9Y;-VkEl!dOI@ zj#-!-5^^zN&@Uu9h07}5*J>lyXW~aQooSMofX|kK}d0e#Z+QAFW9;PpDXYn%^Ki%@Oai@__ z)Xu`ZaQi#qmmh?Qn48O~7S^tH@cYmG#4nkc`qE7Pu9XdHiK_D`@js=`B_VWpw&p*2 zaK|S9;SRnU3zzsiYM#LBs=`}aLBLbNfPWhUzW?SQ@7%+``M0#R@L~HbO};q-=?hp> zR&IVS+&d;*b-VF+JPg+*ICx+QNlj1{uVQ&-^BAG+JBq)FpSSEkouy)`%5?Y`1^I9KbvOXg;{z(U7`Q_I>BI& r2Le*2z@He`h5O%be&2m{zy2?;o?z*nZKd_(RyjTXuv}^I!~5lLP7f;Y diff --git a/assets/voxygen/voxel/npc/monitor/male/head_lower.vox b/assets/voxygen/voxel/npc/monitor/male/head_lower.vox deleted file mode 100644 index 1daeebdb97d8673125bdab8e9a172abef12f7723..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1488 zcma)5eMnt(7=C}hbBQvTUD(>dAoYS`J2iw@li>wU^QMoL( zTVuA?+)Z?&4`(6cvSvG?QWThkjKLVgB7%@HBKo&KBKq&?IgW)ep$VRQ z)dTqxBGR%u&`KfSS|aU%VB=Gc!6%M*f-r~!2ZMq46%{^52pz9%Q|Xvth^+}ln3l42 zytXY<#l%oC(_oGk+aSz%71JWNFlNMQTd`Kf(MR1-?7YvRG#-TRAb4 zI`b4EjG0qqj(EN ze#^NLXII?CB##l#`3Z|R(41E}{7Od+LNmu8v_VN|lib9eMQ&yBzWTAN?M;htKA2b-}l8o)yIFcv0HqH5s;lKn1Z9?D1l zsS1QA-E+n@I(vJ&r#su4M3KIGSTOxuK+OF$@ik3vwytWm=(7!mt;W^L}Ixq{4k63*MPL_-;Li^lm}nY4)BF)GY~Q zKlw)zAmd4pxm09(N3q=(Lc#MxXl<%NPiF%bMetK7gx@H~hXk`93YM=4Zril|g6T%V zSNjBOZwNw7f}u{qSjdI5hXfNLL2tESut9K{{frg#v^tuqL$i{`H zBFy)eqOs10kLq%8v6A3M za>q8*lzA}rP7Y?Ty7BXEFV^ms;A3*m&j{{(Blz_P!APhWmm}p^xlxZlerdOf$1cJ3;$nC_9`qFqV(*?gNMrC zeE1GeW%1j|&BfbAX=J zb-cN)XjDX6*EVmWkaK>K_U6vU+3vv4N6aBSV%zr4=64Jge!mbVASq3#fFx}ObwW8g zTXktab;5Xrlg{pRA0?rvD@yD9EG3}{xF$es1H8889Hi%x1nrTxr+H74m9 z_QF0a`|${)ZNf6fBgAJO8&OH??{pYt(lKl_<%Ff30bSvC< zrFjyYHoS^GJL?eZ+knZzW=tmbU~=prY9`-9RwM_xyNggXP>#^}DoCRT>B)p#dSZ*<1Z^XNx33Bg-)C%F z9txsCERKayeItVW-fRR<F`wv0#T_@e$@871ZAp$QIV`&wz}~gd(kl^Ykg6T_wJ1L$cf{TrUuQv;3_6wp-f^i)UPZ=Re3)4 zb=07zMG)U982>#q#n@539K8*z&=Jl-v??E`no4n|r4)_z6jnS13p$C^F+-@x5(1;70u=#Q4+Y`hY;uB^kKzqX_IWEM^(vyr-=iy0K6lk-UP z-^;o53D$+4=ij*{lIDM4;}XQ*--pp-eV90ZGR?nW;R^@{=ObJ=7j>bz*jhUWTPyw_ z{~Nnjpt7dyMa4zb4IV{qJQugW5d7FBxLj6-P$-1%l0Ix)e;pF<$Nb*;m>PTX zh68!roq_^=NCm%~^;XYqk@WqCZSZ#$b$L`y&V$Bcgx%BclIaJ$GXvB-97qyr1{;c|M=# z^E{u=r}OnAjwumoIS^=7k{?n;+5^FcXA(k(N_k3QQXDxN3`{B~hD%|XjaswWh?|s6 zhQ!S#iJ6r(IA%(bn4vK3Fye+nl5r9foj1(t7iE(|wJE`>%_)YiGinWmsI3{)uX`)Z zYKx)TNaRwjwwP3#R4dGCA8vf@K=QzPwyLTs!r?HFqQb$e>l9l5;t#8pwY3%!<7Qx) z*5*AN@2Ms{)Xef&faU0MmZwisxqJ$X-$u?c2aYqvcxLt@4Lgwjr;*v`k#!rE79ndu z$eR#ez9ppg3p*o1hHBdlp}ZxHrU47Vvl)E2@&ff?p>0xlYe5*fuWQ?K$qzYkg}qcP z`LPdLagOKWoh!h1`z5lv1=m^KdrGKT732-gKbne6rX!11#!BqW@5$uBt9EF55xo~y z6akluUzI0^g@sRqwRz!AT(w`AZ4kabENs3lgc^n6PGKTsZ@bz!khdy7oxb(Monn}&9!b$c2?5gBt&|InRkWNOF~6{ zE&;EL?uy+E*6*d$Ya>){XS}h9rQQ-6YJ7ZJlgFhB?MJnRi4Xc2ITd8?$|x(b3q;>> z67I5-mX=0##&eX|E%-c6Dt7N;U#W+Q_w!h|?&POCUN-L)^O@#cniKAREBx}KFdA}m zIa0>@%{qSnxt+m_7RF;%;`ejdq=2CIBU%3m?aPo*=Mj3VWZU`&4(HRXgeM{r~#Q%F6h-a)uJ$EY)M@$cf}|`*YzzmvF=F#^dqOS2)C> zgNsOHl+3|QR;C}{;h9{0JNfy%S2W4~>L@2Jo+rCEi+f)cu@cN7>Tvw4|B1N7UPs&S zGS~+r)AK~WSmL9_@452b2CtkRWB<7sny;QvP~X>o g&FdFT{Q527hoZq5uE@ diff --git a/assets/voxygen/voxel/npc/monitor/male/tail.vox b/assets/voxygen/voxel/npc/monitor/male/tail.vox deleted file mode 100644 index 1856f9ceb332fb320e929f35d8a0e7b2bf2e5283..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1216 zcma)*Urbw77{I>{*s3_JQp%rV!2**O9V=jA7H20ktgy~71h;OG&1{i|;1*&CkY;A9 z66=D)N?>N2h=vfd4F_q7#s?$|S(Yrzf{QURWLb>y)dypI`}y6@w`J3l{Bq9uefOMm zzwh4D^~QnHNf8O{4(`)Vu4IaI1jB)+jES~Q$`k+g2M&gVQA28TC?=CEiekz%EsBBY z*dRl_V#+Wrn#}66v^UtK-ax$=ezUSgy@8HRnKEz6QZ_4F6tm2WI#DO;M4hPH-}3ry z_375o&_FaA<$glgb7_q->)-rowX(Vz!f026DfYGP;Appx=wKVEc#u@$D5OIEYyXvY3;WV zKAp?Q%g@mq71}3+w-L2uH+8dDM+J>Bl}`#W_}ld$t76jTgv2ER>(ty(fjn z6+zzA^GD3cL=LiKC0=c3Zbu$>U$sN)^Gt}ato)?>rc4Y83!e$AbHdFuWdAx>bXFc6r&8&X(7QfF% zs4BD3SW`mVYn2@Ds;942h;<9o?+GjC1h1orpu3#I-t7!D@1)CZBT{E)tfhivPc?x? z4;LDXIp@`S_$-Wn*vIgRFv+=5)~{b8@vf8TAv@XG*%ahHL$%$4$K}MkeH*XTxETMS zn1wH${Cv~R#_cLD>Y2$|;nw%UuRjVSkxI_TYFWG5#2>$OFmTqw*u0g+JB4geLRjmO z&i|O!Wl(5x2|W$MV6!}wfB)WX>HH^qo47I*O6Tt=cpA4e4|hopK35K%4O{8-{QvxG zYis$mewu2}48Hgo3S))b_)55YNVr^CiOc1pw``ETdzO&c2zdi}EKfc7hNp`3-*Gs2 zzhZ)2z68h4j#AK*&+Tt2SPmDGC@p=c{>F30UI#mFG0+RcQ**?=PV&jpbw2-LotIC> z*>z@`wl7xbxVDbp@8`aNm=*paV_mrS-GleLr~lV~#q|=V@7bezBlxJ8;U5=EZ~XZ6 F@(2T))_RF&g(E zaXTOPP=qk|k(~b^_c9=8^gnt2qdV6AGyj)^ZOQoy^Hw0>%R!(h3l07(bk=2}v*O?R zYYGbx3Y0!^{;H}f^c{W$;oU(rjGRJ#EFafD7u?+^m@6xT-|xqfk^$`4b_Eg}MoxbY z7SBF>!xIJkb_xse_L>Q7X&A@BGpCW)y9&3yT7$)KKE{iS@!$F;&T#GRxQYHFz|h%Q z#J-rv2Uotw$KTz-3&%&W<`*LzQ+v7Qp-9+#vBJj zSK<)pQZ8Y5FVx+LJ@2JCp&xZZ>rgi~bg5hZ_ai3dMQN`{Gv|FrLO(Fn zos^SiLNCoQF5`QQA2^}$Xv5gnA?RZ$4W*>hKAr!`!)R`wppQr0qwZ1nCSvFvbNl3z z#xvnCr=*dWRUapG$E7a#iR(?*iI;nme5~>mi=;=(R z%oXSi>0`;?sASJPYeQpH@{aH|w&viR1J1=N59T(yE9B~AP-bY&=DeZwH5XyEKRQ?1 z8Tvbf(b;F{PO;DA<_e|uj<7tt!heL%K6<_xHjL>oj_)XE=HR|KJO`XdKp&5>3?bCH zrBYWRUXtGtwC#HJWp$9KZL#D<4B3_md=89E+O;@s0X@d)Q#q%O`x%K$C=C1 zITOOV0>aUr6CQ0{bhBlt=N}zFR&%BoJ(Bb^n*1x=b;(_x`S5{UcnM~q-zhLFZS5cDnCw|Y$ z!uWU-^t;e7iZzW3uzgDvlAVnh?QOtl|8|U?*oVcVdy!d_gWPRJC^|3)vC~T+bsnTW z9dh<*$kiNVHVLNf5zOcl%)KOtvP7{bCI6UV-r=uj7}Y1m=|F zpn72;8eb~K&ep|fUnS_-A~^k);L349e!LeY&v#*NSpr*HYq6$&>7#!mTj!&$x(pvy z&%p5t_M<8jeebqo|K2tXo$AI|>InMZEJkuuKBCbmrcZqe^Yb%N7Ar=@yxCZ~FowQ& zX5iwPV*GGDj=MMK;3MW784}$1TJY0%g6>2qPWF`J>V*~f^~V-;9L>bBR2ITpxwwl$ zw6Px(_3vO`It43Y|6Tu{)w3Vf|9Mx_MEwQRryyROjdEFjb_4rQoI}rNBY6Mvw>b69ZM?9r7t0QvM&l<}&~oWEYHDh5UjT^^_yhK~ r;NDjc_}$}v{oj8+!HIYFxID9IGal;t^WphP@=14(`#gSrg01`w2$ac& diff --git a/assets/voxygen/voxel/npc/viper/female/foot_lb.vox b/assets/voxygen/voxel/npc/viper/female/foot_lb.vox deleted file mode 100644 index e3106afe8e95d12891b29468b6660c77ff846182..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1196 zcmaizZ)jUp6u{4WQ7qQgXw$SwW*XCWCh1(4wzip>GqWvS+I7;^)-Bu0CLQ*r)Qupa zEn%`{7VD_i7}5&PTBQ`3t6NEm;)hyB8G|uK9U@2>L&UFs5b@j3n+yce&I3R0JAdvu z_ndcc-^+(w84>B)8$O^GnR!U0Cmd;eEUzdrDU?YbQ5-rP2@k3@FE)j4k^#*mQ57_x z>k`#;F+`zj>RTZuEvoC9vTMq&DZ3UG%@ox{p=pMu>rqkYnyz%+5QQcR6(gF;rD6`Y zzqGe-097v#2#`o5xR(<4U0kEe@+ZGrEUd0}k(bNi90xjga^hH!M7)#SM3`La1i9(c zH0MrX4q34sci}oyi+6Sx()KVi^e8g-B(i43+$EF`3tOjz?N@}NAz@2WC{?=klF-;y zOvkX9$k|ffU4DwzgwUN9URxAKZ>zoCcASQr>V%J`YzRlpf_u`AZ@v=$^=BwQDpa3U zxiiA<6+vE6^~Z{kbP2L#VWQ5#!p<`8yx@S2r%8*jtoT9kiy}QDEPg1gE(kZSDm^63 zwFzGz6gFNLjCNt9Pna^Sj2{;=hR`1n;;q7rvUfMyG1}aWb$iI1tS8aiOlGi!)puUy z*Lj25Dl5C|E9rdE!^ys8hB}1gF=6&iVdZ_H$!RC-tLA9a4l?KC^!cn9jSeQ;YsmK3 z;qXmR_3Q}S{RX2!GgEI5F?uROc43_LYZpnq;U;m!L2+?06{Sy5=P={euX^^f`I>*wS0xeoW-BsK`6(+ea&&+^{VH9q=oo##$Z zu;<(?ou91Gb7h@SD8xMhDN^tUrgh=&H}}tXSKY7w^Q$LVcxRifdFN)ny!}DGLgEMS Gm%jkUEG5?f diff --git a/assets/voxygen/voxel/npc/viper/female/foot_lf.vox b/assets/voxygen/voxel/npc/viper/female/foot_lf.vox deleted file mode 100644 index 00f9ab1916d6b9bf4ba0433e8b5ff8e9d52b592f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1172 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 diff --git a/assets/voxygen/voxel/npc/viper/female/jaw.vox b/assets/voxygen/voxel/npc/viper/female/jaw.vox deleted file mode 100644 index daef62cba1d1219ac941c65894cb0a69a86ec434..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1272 zcma)*e@NVQ7{{OQ-5HY2t~}2lXKJS|?;LafNZqt`OU0e;zTr&U&L3>Ck%!oZgs2>g z?P|=1%}jKoHfJF+)@&1%qCZSR#$b$LBZ81IO8U1yBKq&u^S!YU66%3B&#(9Me7?`~ z{e0S9Ka@KmBB6ajQz}b4m8TR53Y+54;c#$4wIw?g4!dC*3Ws5sc0)|V zX4zueY{rINVY90iW5c0wBhJy7p|N;eOotez&EhM^P}}Y>LN*H`rrl=sQP?G9D95f^ zY(_{7g>oHnu7vCk&8ux_-eGZVsuhOz&{50;tx3?D1g$yP@Y+7npe0pRRYapv9*qh6 zFRzm4`innYE>>1TSaKt{h}pD@qn*`6`mtLSQDm0G^ zZ_NpV_qDb;lkA9>{HULbg#eyD7v7Of{4+U}+kG z7sJIKW_P9X;1v%vzR0);ONt*O5jIqh4+wLg2rIL~om=V$gz0+W>x07j+d`y47-$nl zBW}(f5zK}?bhg#eUngADcyoCsk$Nvf&4o-HFD2Sq$wYT8E9c(ix0wh_e!Aml z{az8D>6r^N!rgC$Uw#mVB86Oxm9cuGmfwGFq3^ttk!vn)-Opg19KyPf`25FoFa1KT zPw1+WE$8n&u>GI;zZ?j~=g&@m7QZ(Ye@-&hzGPafw$WPh|K~3&E92wJDT+&`sUAK< zMl6Hdp9>G#h3kcd_V|&ywDi z#=Wl!SPEw_mYe&p{aZY%*Ws4C^mW7F*#%*?VS+rYp;|+*~6N z2=GWi5*7T3eNA}y&ExNTsQ2r?^7;hh?`*Ta+TOtv-%38Qx6)h1HrH&nx8Ta(lKd?o diff --git a/assets/voxygen/voxel/npc/viper/female/tail.vox b/assets/voxygen/voxel/npc/viper/female/tail.vox deleted file mode 100644 index 525b787d6973bba8af6353e2e17978076974c875..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1200 zcma)*Z%kWN6u{5pk0au+N-4BOs0C(Qbc{b1W^r~x!wPE&L!MhV$Y!=kgSe$J1V}Tp zRf)LZ5Sy}Pn}~)GGlv^#iN+5|7P2f^mIW7MV#u-><5xcz^~3*zN54uHsg^ex@M58g+-xl z$?4W|m7ODDl^7Oft3+M$RLnqAK7)L9R3wx(;w`xdQRGf+NNLDv-fI$qzc zYGtLRrGVG0+05En2t%#}GlaW#aHQWye58xaWRT3v5i+wUXwDqR zzBPg@n>!p?q3+@v2ZTBy3Fx#mcr^7MenZbPk({ zoGRwymFH-W3q48UttDaXj>_$^Q4w`g9rxf(`?1H&IHzoQ7AmQ~@dBlXgz8gj@08HG zD##nE{&)eBEJBveOxD?1+)={aSMAXGJV_B&6hA9|S0qP;rO$-5Md9W(W&4HsfbiWu zVe@Sv+98bU!gSQa#9<*76{=nu#qOEpobvZH*@y<5jQ6-m9cv)o*G#|O&e}(B^2b7y z+A0gJ4V84g=Hi&%%uuJ0=ojYR6IRa(-U=H*Pc?_U+ljUBME6*THrbi#s3AR2N1(Ny z3$5jx^{RRJOiX_`#Mto&>BR{)u3uv2T_^E_b_xp%DJy=4I=hK_w-fL7ZM@RpX8MD2 zmcDTE%S{iPw`;kmYNi*2TR#ZD{UnS>U7SlavVNtFKY#5dcE-fi*JiHWv9d`e5jBr& z|3}qaMuaxEFwi25w97;N5AWTU?LRfx#y6v(Z2uKyPvdcx;HfOa=PshJWh;I4|G)pn z#zsDEo};dQ9^d3?tO+YOz7*~r6fV15xZQ3Bt47$nXBkP1QxYp-W%j{8JZV#Br=o)Q zYm)5p&2aS01Z4xI-2S$Pm57xYhvT978|#d{4)oq4HV9+0izL2E^U3mc&i}Z<%O@t; zb$X7j&sXWax`E&C=e~dxDEOP)4dLGR55Di7I$!@4SC=q*&mN_X;G<%O|8cSG#*fdJ Fe*p`+BYXe= diff --git a/assets/voxygen/voxel/npc/viper/female/torso_back.vox b/assets/voxygen/voxel/npc/viper/female/torso_back.vox deleted file mode 100644 index 4eef98b53fe6485529c99768bf935a5efdf02842..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2392 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 Gm%jkUEG5?f diff --git a/assets/voxygen/voxel/npc/viper/male/foot_lf.vox b/assets/voxygen/voxel/npc/viper/male/foot_lf.vox deleted file mode 100644 index 00f9ab1916d6b9bf4ba0433e8b5ff8e9d52b592f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1172 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 diff --git a/assets/voxygen/voxel/npc/viper/male/jaw.vox b/assets/voxygen/voxel/npc/viper/male/jaw.vox deleted file mode 100644 index daef62cba1d1219ac941c65894cb0a69a86ec434..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1272 zcma)*e@NVQ7{{OQ-5HY2t~}2lXKJS|?;LafNZqt`OU0e;zTr&U&L3>Ck%!oZgs2>g z?P|=1%}jKoHfJF+)@&1%qCZSR#$b$LBZ81IO8U1yBKq&u^S!YU66%3B&#(9Me7?`~ z{e0S9Ka@KmBB6ajQz}b4m8TR53Y+54;c#$4wIw?g4!dC*3Ws5sc0)|V zX4zueY{rINVY90iW5c0wBhJy7p|N;eOotez&EhM^P}}Y>LN*H`rrl=sQP?G9D95f^ zY(_{7g>oHnu7vCk&8ux_-eGZVsuhOz&{50;tx3?D1g$yP@Y+7npe0pRRYapv9*qh6 zFRzm4`innYE>>1TSaKt{h}pD@qn*`6`mtLSQDm0G^ zZ_NpV_qDb;lkA9>{HULbg#eyD7v7Of{4+U}+kG z7sJIKW_P9X;1v%vzR0);ONt*O5jIqh4+wLg2rIL~om=V$gz0+W>x07j+d`y47-$nl zBW}(f5zK}?bhg#eUngADcyoCsk$Nvf&4o-HFD2Sq$wYT8E9c(ix0wh_e!Aml z{az8D>6r^N!rgC$Uw#mVB86Oxm9cuGmfwGFq3^ttk!vn)-Opg19KyPf`25FoFa1KT zPw1+WE$8n&u>GI;zZ?j~=g&@m7QZ(Ye@-&hzGPafw$WPh|K~3&E92wJDT+&`sUAK< zMl6Hdp9>G#h3kcd_V|&ywDi z#=Wl!SPEw_mYe&p{aZY%*Ws4C^mW7F*#%*?VS+rYp;|+*~6N z2=GWi5*7T3eNA}y&ExNTsQ2r?^7;hh?`*Ta+TOtv-%38Qx6)h1HrH&nx8Ta(lKd?o diff --git a/assets/voxygen/voxel/npc/viper/male/tail.vox b/assets/voxygen/voxel/npc/viper/male/tail.vox deleted file mode 100644 index 525b787d6973bba8af6353e2e17978076974c875..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1200 zcma)*Z%kWN6u{5pk0au+N-4BOs0C(Qbc{b1W^r~x!wPE&L!MhV$Y!=kgSe$J1V}Tp zRf)LZ5Sy}Pn}~)GGlv^#iN+5|7P2f^mIW7MV#u-><5xcz^~3*zN54uHsg^ex@M58g+-xl z$?4W|m7ODDl^7Oft3+M$RLnqAK7)L9R3wx(;w`xdQRGf+NNLDv-fI$qzc zYGtLRrGVG0+05En2t%#}GlaW#aHQWye58xaWRT3v5i+wUXwDqR zzBPg@n>!p?q3+@v2ZTBy3Fx#mcr^7MenZbPk({ zoGRwymFH-W3q48UttDaXj>_$^Q4w`g9rxf(`?1H&IHzoQ7AmQ~@dBlXgz8gj@08HG zD##nE{&)eBEJBveOxD?1+)={aSMAXGJV_B&6hA9|S0qP;rO$-5Md9W(W&4HsfbiWu zVe@Sv+98bU!gSQa#9<*76{=nu#qOEpobvZH*@y<5jQ6-m9cv)o*G#|O&e}(B^2b7y z+A0gJ4V84g=Hi&%%uuJ0=ojYR6IRa(-U=H*Pc?_U+ljUBME6*THrbi#s3AR2N1(Ny z3$5jx^{RRJOiX_`#Mto&>BR{)u3uv2T_^E_b_xp%DJy=4I=hK_w-fL7ZM@RpX8MD2 zmcDTE%S{iPw`;kmYNi*2TR#ZD{UnS>U7SlavVNtFKY#5dcE-fi*JiHWv9d`e5jBr& z|3}qaMuaxEFwi25w97;N5AWTU?LRfx#y6v(Z2uKyPvdcx;HfOa=PshJWh;I4|G)pn z#zsDEo};dQ9^d3?tO+YOz7*~r6fV15xZQ3Bt47$nXBkP1QxYp-W%j{8JZV#Br=o)Q zYm)5p&2aS01Z4xI-2S$Pm57xYhvT978|#d{4)oq4HV9+0izL2E^U3mc&i}Z<%O@t; zb$X7j&sXWax`E&C=e~dxDEOP)4dLGR55Di7I$!@4SC=q*&mN_X;G<%O|8cSG#*fdJ Fe*p`+BYXe= diff --git a/assets/voxygen/voxel/npc/viper/male/torso_back.vox b/assets/voxygen/voxel/npc/viper/male/torso_back.vox deleted file mode 100644 index 4eef98b53fe6485529c99768bf935a5efdf02842..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2392 zcmah}ZD^Kd6h8Oo^M1`%&gnMW*8FIjrcO<#Gn+Zly*fk9rSk*#qU7_wnleIEhM_BI ziDhd{gGwz#!ZZ~pML$eJL=X{^2tq_6`rD6){#{-7#F9{Y;c$Pv_c`Y}*SXHq{_?8o z0TF4N*SeI8v?N7Vw011WgadyG+Ax}@tyh=jg6$!CTO0P zq`6=!XD!XpH2u>m=MpAsGOl20I^_yJA{LrYg#S(K!d;pv_6IW%+H1o2v% z)x_!}lQ-UG72g++U0CCDvT!jTFXQ&y&JI#2GW*zbK&N~&`P!IRY>sG_s4K-tujKO!BI*1Y~ z*6fW>nu6tj-ct+0nnK^Ws)Q|g@@g`w(;DK9bUun0*V3PTRY|?Yl3z`36n#B=q1k`K zJ4a4D^&xyONli>TRw=#31)YX?VIJ6fmDbdH;7{jl&?sZOpl4#R?7P1spi?yCkpt|p?+eeE^N>}wc_aO!Bau@f z7klhjmuLShzX6)Ma@49KK1U7dP$PAx`PLDi4tiF^MsuvoQd2I>6>}QyeZUy_;v6{g zA=H&{wl!n8pat@-!fbG_S&QbpTKa18s>!t?E*-Qwl#@DOpDpLwQ#YO(x73~IH_3AT zec+2Tpr{$o{zvSsr%o*AK?gljf0}b@sF#R6_tdl^7RO%ep>LGUFJJi5JhAt`kByCu z=uy*|OBPp)80$zS-Rqy(2Qw;}vaw+>?I;wk7{*M#mJi!s>Siow243?AN&nSEzl&U`4i zd{S`j9M8>y;|l~|FBjZ-O%N{>>}(etic7J7gJ2*QtZx+TXb~LY{j%xhh!@mg_p(|H zY?_Mhl`}E0c|I<`^D2Hj5o5xbQp}lJg~cz{VpID}6taSzb%LXB2rj)ZSh{dF*0r}_ z?Tkt2YMF)h`clNxD{ye(I9ymi85Q-t81vjtOl*j;tEm`=-Y#I*wvHj+5Toz)8g#Fz zKsueqsNqjyaz!y3>S{1!(s<0CT8Be#jmDW{HTdaTJ?`9?fRCB;!U@6kZw0^nAlMz( z;z-XlTsb`-zyG`fT?dMB@QV_hyIF=is6q$%7^;6GdD$VDU-$U>w=Nm~PyJu+Y#XY- za?}&3uNi^*s$poV8-|sQMOfMJZ~ZeW%h6gt_ObO(n>Gy}%sh(84ad>cyANeOWw`p8 z;Px89soGl9)zxA1m>pQM=scunH%4@gz{SJ&d$^~Z+NrF>o8$U1x2X>s5A4UN^&@fP zt8uv4QHH+iYWz2Uco$-=UU3~=n}J=2Pon4Z3wZDR_xR|$TX=qZFXrw$ip8H^!iuxE z(A?aNdjd#;hCg9$3GRM#AKzW->;L}e6b{YV!|Sm%Yw_S5{(P{1)cUBqhkYL2KjN+Y E4G9;b!Tcd@8-{)rY+b;&#fGn9BQPFl2im!OtND=%e2fhj z<4DXAeX$V}G9eiYe2W1YSc5%rzHZuChs;RZ9!3nhT=6kU%S8y%iu5D>NI%jyZDAyX zw7G^^Y&4iwcwhz)Y(bO%ra*@{76I8)JWgODEMnf z+Bo90Zpd0kjI^C22J+z@G0+aQ1MNUN(vA*)X(!r=Hh3_Zex?r|Y~@-Ge4(v;GcB7; z%W+;!#hJ0TC7FGuo_&<2Wc=~eS;5(s4W;HRHklJ?N7{*TaLHoR4%ti_JS66u3LDg? ztZf84BRUc~5;_d=ODcNN0j}m+fm%+)pYbtqrffN1_?kFN zww$M;yN!H7q@BuU@VB5(9b(qi-A(O*QZB-=??0>>uChw`(o5&}U`bpGJ zrlt}#l{iD0vy{pm3W>9lslh}oX3kFHoMg^R;w)s&N2VrIfisZFX`<#c=O9w&2{QE` z@gYH^b|W<#sFgsyM(R2iNxjBWr`(gi-0}G7$cy97ukb~RKb-$aek1xLwj%Z;=QMJD zBj-AD-XnWcu~(5AtB5mlZyNHN*<%BN`#W$)`SN~H-?6+^+#`YdPUJ3@+Agv{ZCBJo z#MeaqRF&iHVQ)%3v(96~qu=x0GuN}$Q@0+yzU(QndgAiL=ZVvo`<}6oO*2!cfi)p< zm!l`3C!jN+BcLM`9n_B_UWW|$=vn8P?}*V;myUIgby8}r+=1A#$jo=k{9M-ZRyx`d z9kJXm6XV2G<}>Db2Ld%2%0BR3IS?P7tU$PwP%DC^Pd zz=K7S=Zv5&) z;&1&ATD5AGj*X4!CnrQ7{>gQn*ZEKVduOL!yS7=&@2$bhx@FUSTHn1|#}01N%SQ+G z@`<`$KK-n&y!?!I40P#?C+6zh=N4)2nfp~X1eJYlDrY~ha=lACHj7T%FFNbE=;F6U z^FGl@L%Dk@*c{*kP5a3s4kk^Hm)2Dn+mvnb%e{YYjxc44? zU}>)&|IRGE@OqE_@x4C1`N1OnF*Yxq6Mg?TqJRFq=#kNd`s(;Hz5doZ{o9|m>4BF! z^w=An`p$vSs>%m1lHG|5;sq z^aY(UK11LAndnD5Mc-VwP}``pCl1)5e zp for super::Body { pub enum Species { Grolgar = 0, Saber = 1, - Viper = 2, Tuskram = 3, - Alligator = 4, - Monitor = 5, Lion = 6, Tarasque = 7, } @@ -44,10 +41,7 @@ pub enum Species { pub struct AllSpecies { pub grolgar: SpeciesMeta, pub saber: SpeciesMeta, - pub viper: SpeciesMeta, pub tuskram: SpeciesMeta, - pub alligator: SpeciesMeta, - pub monitor: SpeciesMeta, pub lion: SpeciesMeta, pub tarasque: SpeciesMeta, } @@ -60,23 +54,17 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies match index { Species::Grolgar => &self.grolgar, Species::Saber => &self.saber, - Species::Viper => &self.viper, Species::Tuskram => &self.tuskram, - Species::Alligator => &self.alligator, - Species::Monitor => &self.monitor, Species::Lion => &self.lion, Species::Tarasque => &self.tarasque, } } } -pub const ALL_SPECIES: [Species; 8] = [ +pub const ALL_SPECIES: [Species; 5] = [ Species::Grolgar, Species::Saber, - Species::Viper, Species::Tuskram, - Species::Alligator, - Species::Monitor, Species::Lion, Species::Tarasque, ]; diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index febfc12325..7a1193a1c1 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -137,120 +137,84 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { head_upper: match (body.species, body.body_type) { (Grolgar, _) => (12.0, 16.0), (Saber, _) => (14.0, 12.0), - (Viper, _) => (14.0, 10.0), (Tuskram, _) => (9.0, 12.0), - (Alligator, _) => (16.0, 11.0), - (Monitor, _) => (14.0, 6.0), (Lion, _) => (12.5, 14.0), (Tarasque, _) => (12.0, 19.0), }, head_lower: match (body.species, body.body_type) { (Grolgar, _) => (-4.0, -7.0), (Saber, _) => (-6.0, 0.0), - (Viper, _) => (-3.0, -1.0), (Tuskram, _) => (-3.0, -1.0), - (Alligator, _) => (-5.0, -4.0), - (Monitor, _) => (-3.0, -1.0), (Lion, _) => (-5.0, -1.0), (Tarasque, _) => (-5.0, -6.0), }, jaw: match (body.species, body.body_type) { (Grolgar, _) => (3.0, -5.0), (Saber, _) => (2.0, -1.0), - (Viper, _) => (3.0, -2.0), (Tuskram, _) => (2.0, -2.0), - (Alligator, _) => (6.0, -6.0), - (Monitor, _) => (4.0, -3.0), (Lion, _) => (2.0, -3.0), (Tarasque, _) => (4.0, -9.0), }, tail: match (body.species, body.body_type) { (Grolgar, _) => (-6.0, -2.0), (Saber, _) => (-4.0, -2.0), - (Viper, _) => (-6.0, -1.0), (Tuskram, _) => (-6.0, -2.0), - (Alligator, _) => (-7.0, -1.0), - (Monitor, _) => (-7.0, -1.0), (Lion, _) => (-8.0, -6.0), (Tarasque, _) => (-7.0, -2.0), }, torso_back: match (body.species, body.body_type) { (Grolgar, _) => (4.0, 11.0), (Saber, _) => (4.0, 9.0), - (Viper, _) => (4.0, 7.0), (Tuskram, _) => (4.0, 9.0), - (Alligator, _) => (4.0, 6.0), - (Monitor, _) => (4.0, 4.0), (Lion, _) => (4.0, 10.0), (Tarasque, _) => (4.0, 9.0), }, torso_mid: match (body.species, body.body_type) { (Grolgar, _) => (-7.0, 10.5), (Saber, _) => (-7.0, 9.5), - (Viper, _) => (-7.0, 7.0), (Tuskram, _) => (-7.0, 9.0), - (Alligator, _) => (-7.0, 6.0), - (Monitor, _) => (-7.0, 4.0), (Lion, _) => (-9.0, 9.0), (Tarasque, _) => (-7.0, 8.0), }, ears: match (body.species, body.body_type) { (Grolgar, _) => (-1.0, 5.0), (Saber, _) => (-1.0, 6.0), - (Viper, _) => (10.0, 2.0), (Tuskram, _) => (10.0, 2.0), - (Alligator, _) => (10.0, 2.0), - (Monitor, _) => (10.0, 2.0), (Lion, _) => (-2.0, 4.0), (Tarasque, _) => (1.5, -2.0), }, leg_f: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 6.0, 2.0), (Saber, _) => (4.0, 6.0, 3.0), - (Viper, _) => (4.0, 6.0, 3.0), (Tuskram, _) => (4.0, 6.0, 4.5), - (Alligator, _) => (4.0, 6.0, 3.0), - (Monitor, _) => (4.0, 6.0, 3.0), (Lion, _) => (5.0, 6.0, 3.0), (Tarasque, _) => (4.0, 6.0, 3.0), }, leg_b: match (body.species, body.body_type) { (Grolgar, _) => (5.0, -4.0, 3.0), (Saber, _) => (4.0, -6.0, 3.5), - (Viper, _) => (4.0, -4.0, 3.5), (Tuskram, _) => (4.0, -8.0, 5.5), - (Alligator, _) => (4.0, -4.0, 3.5), - (Monitor, _) => (4.0, -6.0, 3.5), (Lion, _) => (5.5, -8.0, 3.5), (Tarasque, _) => (4.0, -8.0, 3.5), }, feet_f: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 6.0, 2.0), (Saber, _) => (4.0, 6.0, 3.0), - (Viper, _) => (4.0, 6.0, 3.0), (Tuskram, _) => (4.0, 6.0, 4.5), - (Alligator, _) => (4.0, 6.0, 3.0), - (Monitor, _) => (4.0, 6.0, 3.0), (Lion, _) => (5.0, 6.0, 3.0), (Tarasque, _) => (4.0, 6.0, 3.0), }, feet_b: match (body.species, body.body_type) { (Grolgar, _) => (5.0, -4.0, 3.0), (Saber, _) => (4.0, -6.0, 3.5), - (Viper, _) => (4.0, -4.0, 3.5), (Tuskram, _) => (4.0, -8.0, 5.5), - (Alligator, _) => (4.0, -4.0, 3.5), - (Monitor, _) => (4.0, -6.0, 3.5), (Lion, _) => (5.5, -8.0, 3.5), (Tarasque, _) => (4.0, -8.0, 3.5), }, height: match (body.species, body.body_type) { (Grolgar, _) => (1.2), (Saber, _) => (1.0), - (Viper, _) => (0.7), (Tuskram, _) => (1.0), - (Alligator, _) => (0.5), - (Monitor, _) => (0.4), (Lion, _) => (1.4), (Tarasque, _) => (1.1), }, From 955e348a539678f656f1a5b903a7869d93f43861 Mon Sep 17 00:00:00 2001 From: Snowram Date: Thu, 4 Jun 2020 23:15:38 +0200 Subject: [PATCH 04/48] Add alligator, salamander and monitor npcs --- assets/common/npc_names.json | 12 ++ .../voxel/npc/alligator/female/chest.vox | Bin 0 -> 4448 bytes .../voxel/npc/alligator/female/foot_bl.vox | Bin 0 -> 1340 bytes .../voxel/npc/alligator/female/foot_br.vox | Bin 0 -> 1340 bytes .../voxel/npc/alligator/female/foot_fl.vox | Bin 0 -> 1300 bytes .../voxel/npc/alligator/female/foot_fr.vox | Bin 0 -> 1304 bytes .../voxel/npc/alligator/female/head_lower.vox | Bin 0 -> 2136 bytes .../voxel/npc/alligator/female/head_upper.vox | Bin 0 -> 2376 bytes .../voxel/npc/alligator/female/jaw.vox | Bin 0 -> 1744 bytes .../voxel/npc/alligator/female/tail_front.vox | Bin 0 -> 2288 bytes .../voxel/npc/alligator/female/tail_rear.vox | Bin 0 -> 1320 bytes .../voxel/npc/alligator/male/chest.vox | Bin 0 -> 4448 bytes .../voxel/npc/alligator/male/foot_bl.vox | Bin 0 -> 1340 bytes .../voxel/npc/alligator/male/foot_br.vox | Bin 0 -> 1340 bytes .../voxel/npc/alligator/male/foot_fl.vox | Bin 0 -> 1300 bytes .../voxel/npc/alligator/male/foot_fr.vox | Bin 0 -> 1304 bytes .../voxel/npc/alligator/male/head_lower.vox | Bin 0 -> 2136 bytes .../voxel/npc/alligator/male/head_upper.vox | Bin 0 -> 2376 bytes .../voxygen/voxel/npc/alligator/male/jaw.vox | Bin 0 -> 1744 bytes .../voxel/npc/alligator/male/tail_front.vox | Bin 0 -> 2288 bytes .../voxel/npc/alligator/male/tail_rear.vox | Bin 0 -> 1320 bytes .../voxel/npc/crocodile/female/chest.vox | Bin 0 -> 4168 bytes .../npc/crocodile/female/chest_front.vox | Bin 3704 -> 0 bytes .../chest_rear.vox => female/tail_front.vox} | Bin 2092 -> 2096 bytes .../female/{tail.vox => tail_rear.vox} | Bin .../voxel/npc/crocodile/male/chest.vox | Bin 0 -> 4168 bytes .../voxel/npc/crocodile/male/chest_front.vox | Bin 3704 -> 0 bytes .../chest_rear.vox => male/tail_front.vox} | Bin 2092 -> 2096 bytes .../male/{tail.vox => tail_rear.vox} | Bin .../voxel/npc/monitor/female/chest.vox | Bin 0 -> 3144 bytes .../voxel/npc/monitor/female/foot_bl.vox | Bin 0 -> 1260 bytes .../voxel/npc/monitor/female/foot_br.vox | Bin 0 -> 1260 bytes .../voxel/npc/monitor/female/foot_fl.vox | Bin 0 -> 1292 bytes .../voxel/npc/monitor/female/foot_fr.vox | Bin 0 -> 1292 bytes .../voxel/npc/monitor/female/head_lower.vox | Bin 0 -> 1656 bytes .../voxel/npc/monitor/female/head_upper.vox | Bin 0 -> 1896 bytes .../voxygen/voxel/npc/monitor/female/jaw.vox | Bin 0 -> 1280 bytes .../voxel/npc/monitor/female/tail_front.vox | Bin 0 -> 1592 bytes .../voxel/npc/monitor/female/tail_rear.vox | Bin 0 -> 1224 bytes .../voxygen/voxel/npc/monitor/male/chest.vox | Bin 0 -> 3144 bytes .../voxel/npc/monitor/male/foot_bl.vox | Bin 0 -> 1260 bytes .../voxel/npc/monitor/male/foot_br.vox | Bin 0 -> 1260 bytes .../voxel/npc/monitor/male/foot_fl.vox | Bin 0 -> 1292 bytes .../voxel/npc/monitor/male/foot_fr.vox | Bin 0 -> 1292 bytes .../voxel/npc/monitor/male/head_lower.vox | Bin 0 -> 1656 bytes .../voxel/npc/monitor/male/head_upper.vox | Bin 0 -> 1896 bytes assets/voxygen/voxel/npc/monitor/male/jaw.vox | Bin 0 -> 1280 bytes .../voxel/npc/monitor/male/tail_front.vox | Bin 0 -> 1592 bytes .../voxel/npc/monitor/male/tail_rear.vox | Bin 0 -> 1224 bytes .../voxel/npc/salamander/female/chest.vox | Bin 0 -> 4252 bytes .../voxel/npc/salamander/female/foot_bl.vox | Bin 0 -> 1244 bytes .../voxel/npc/salamander/female/foot_br.vox | Bin 0 -> 1244 bytes .../voxel/npc/salamander/female/foot_fl.vox | Bin 0 -> 1268 bytes .../voxel/npc/salamander/female/foot_fr.vox | Bin 0 -> 1268 bytes .../npc/salamander/female/head_lower.vox | Bin 0 -> 1700 bytes .../npc/salamander/female/head_upper.vox | Bin 0 -> 2588 bytes .../voxel/npc/salamander/female/jaw.vox | Bin 0 -> 1612 bytes .../npc/salamander/female/tail_front.vox | Bin 0 -> 2244 bytes .../voxel/npc/salamander/female/tail_rear.vox | Bin 0 -> 1872 bytes .../voxel/npc/salamander/male/chest.vox | Bin 0 -> 4252 bytes .../voxel/npc/salamander/male/foot_bl.vox | Bin 0 -> 1244 bytes .../voxel/npc/salamander/male/foot_br.vox | Bin 0 -> 1244 bytes .../voxel/npc/salamander/male/foot_fl.vox | Bin 0 -> 1268 bytes .../voxel/npc/salamander/male/foot_fr.vox | Bin 0 -> 1268 bytes .../voxel/npc/salamander/male/head_lower.vox | Bin 0 -> 1700 bytes .../voxel/npc/salamander/male/head_upper.vox | Bin 0 -> 2588 bytes .../voxygen/voxel/npc/salamander/male/jaw.vox | Bin 0 -> 1612 bytes .../voxel/npc/salamander/male/tail_front.vox | Bin 0 -> 2244 bytes .../voxel/npc/salamander/male/tail_rear.vox | Bin 0 -> 1872 bytes .../voxel/quadruped_low_central_manifest.ron | 180 ++++++++++++++++-- .../voxel/quadruped_low_lateral_manifest.ron | 108 +++++++++++ common/src/comp/body/quadruped_low.rs | 14 +- voxygen/src/anim/quadruped_low/idle.rs | 15 +- voxygen/src/anim/quadruped_low/jump.rs | 15 +- voxygen/src/anim/quadruped_low/mod.rs | 66 ++++--- voxygen/src/anim/quadruped_low/run.rs | 16 +- voxygen/src/anim/src/quadruped_medium/mod.rs | 8 +- voxygen/src/scene/figure/cache.rs | 8 +- voxygen/src/scene/figure/load.rs | 34 +--- 79 files changed, 366 insertions(+), 110 deletions(-) create mode 100644 assets/voxygen/voxel/npc/alligator/female/chest.vox create mode 100644 assets/voxygen/voxel/npc/alligator/female/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/alligator/female/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/alligator/female/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/alligator/female/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/alligator/female/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/alligator/female/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/alligator/female/jaw.vox create mode 100644 assets/voxygen/voxel/npc/alligator/female/tail_front.vox create mode 100644 assets/voxygen/voxel/npc/alligator/female/tail_rear.vox create mode 100644 assets/voxygen/voxel/npc/alligator/male/chest.vox create mode 100644 assets/voxygen/voxel/npc/alligator/male/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/alligator/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/alligator/male/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/alligator/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/alligator/male/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/alligator/male/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/alligator/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/alligator/male/tail_front.vox create mode 100644 assets/voxygen/voxel/npc/alligator/male/tail_rear.vox create mode 100644 assets/voxygen/voxel/npc/crocodile/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/crocodile/female/chest_front.vox rename assets/voxygen/voxel/npc/crocodile/{male/chest_rear.vox => female/tail_front.vox} (88%) rename assets/voxygen/voxel/npc/crocodile/female/{tail.vox => tail_rear.vox} (100%) create mode 100644 assets/voxygen/voxel/npc/crocodile/male/chest.vox delete mode 100644 assets/voxygen/voxel/npc/crocodile/male/chest_front.vox rename assets/voxygen/voxel/npc/crocodile/{female/chest_rear.vox => male/tail_front.vox} (88%) rename assets/voxygen/voxel/npc/crocodile/male/{tail.vox => tail_rear.vox} (100%) create mode 100644 assets/voxygen/voxel/npc/monitor/female/chest.vox create mode 100644 assets/voxygen/voxel/npc/monitor/female/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/monitor/female/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/monitor/female/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/monitor/female/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/monitor/female/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/monitor/female/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/monitor/female/jaw.vox create mode 100644 assets/voxygen/voxel/npc/monitor/female/tail_front.vox create mode 100644 assets/voxygen/voxel/npc/monitor/female/tail_rear.vox create mode 100644 assets/voxygen/voxel/npc/monitor/male/chest.vox create mode 100644 assets/voxygen/voxel/npc/monitor/male/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/monitor/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/monitor/male/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/monitor/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/monitor/male/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/monitor/male/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/monitor/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/monitor/male/tail_front.vox create mode 100644 assets/voxygen/voxel/npc/monitor/male/tail_rear.vox create mode 100644 assets/voxygen/voxel/npc/salamander/female/chest.vox create mode 100644 assets/voxygen/voxel/npc/salamander/female/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/salamander/female/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/salamander/female/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/salamander/female/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/salamander/female/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/salamander/female/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/salamander/female/jaw.vox create mode 100644 assets/voxygen/voxel/npc/salamander/female/tail_front.vox create mode 100644 assets/voxygen/voxel/npc/salamander/female/tail_rear.vox create mode 100644 assets/voxygen/voxel/npc/salamander/male/chest.vox create mode 100644 assets/voxygen/voxel/npc/salamander/male/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/salamander/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/salamander/male/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/salamander/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/salamander/male/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/salamander/male/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/salamander/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/salamander/male/tail_front.vox create mode 100644 assets/voxygen/voxel/npc/salamander/male/tail_rear.vox diff --git a/assets/common/npc_names.json b/assets/common/npc_names.json index 511bbb0627..9fbc2e649f 100644 --- a/assets/common/npc_names.json +++ b/assets/common/npc_names.json @@ -561,6 +561,18 @@ "crocodile": { "keyword": "crocodile", "generic": "Crocodile" + }, + "alligator": { + "keyword": "alligator", + "generic": "Alligator" + }, + "salamander": { + "keyword": "salamander", + "generic": "Salamander" + }, + "monitor": { + "keyword": "monitor", + "generic": "Monitor" } } } diff --git a/assets/voxygen/voxel/npc/alligator/female/chest.vox b/assets/voxygen/voxel/npc/alligator/female/chest.vox new file mode 100644 index 0000000000000000000000000000000000000000..98149f48cc6007b371eeebbd700bc4e603e9ebc7 GIT binary patch literal 4448 zcma)W{!!uH1W)M$vNH{Gfkoq8*9=SlUQP!RO5wOlzK>QZ74y* zp`{)xreaOg5G}SwTY`vaRg%!s2OElrAR@L8g(4!Q^tBJA^lkOGM+Bjk_Q0RD_u6Z( z^bdgywrHDO>IJ+ehlyKd;au5Vq(_frE(g&yjPMo*iLo{rrxh+RL3 z9p9R+p0-`q&=>aG;_>AN1>1rycl0Q+o|@2RY;)10(D4J$-hiD4fju7NMh_i43^s=S z4t^2X4tijFNbDRk7Ts(DxV{0ln7;2gdg%s^8ra5BGsdN^VN<9}v4g}oGfs_xo9(OW zcT%&eBi|l-dW^f+kzelB`ncBg>>#k7JIEfsLBM|?Zt9tF=(sje%LKQG@7TeA31dec zEcFWP^B|#5#4P0I$sw`dF*fKO^NhV`Zo9VcI$<0^V(jrzI0p%zq3g#UXyzGTy4DG} z#*bsor}i2dnTLk>a0)#;Rvp70H*S!gxkK-%iK#Zk_Q=9|DQ@gokHC^!(}2QWe7agU zdTyw%VSlNx?g3do|&0T7_SQUrX+#YsQ9kjnu@~ znY)nmFemO6W0N==nY)J6=xpY_K&H%nOBLM9#F+;H*u)!3F?8^`R&4kXqSJd*Z( zt9jEj@4OCeF!agzK?2rL_elSJXj7!_0eIFN`U=K2fXKUQ1MqF~VUS|zM_b|hA<}== z1ABd-|DHJrjyXPD1wLYhow8%2 zxsw{7z&qZSK>s8C4*-;Oc134R%* zz#JqvJK|<|1f&Ng(tpGIsCl12AeVq$tT7C4A+RBgjWPXfI9I;%6~(lU>_=8WER*BBe>P{?1iC#qUk?yTWk#(Bx~yx`mG+H1ZEoEOVD*Ba3W!yZSU z3^5(Zf%vBO6Tg)&=f}axS9|sbSAEkL^a1V#K7~AV;Euy5;VV>bDFe z+#E3Qv)mB}4EM!yo*ie_BP}^Q`sRpdsilRxtDp~dQg><$XG`rI=fZH0EO68(N4^1( z-z$;ddmsljZ35p3uZG5}>Fkh>xy8;hH>?}J9qhC0OYHHQZyHGKv+Q^1TmYVL8sixF z-Ne{3PF{@)vIKsAF%FjBZTPp2-*tTRlI3?7aS|~sv62SpEmAvt_-fDZJW!m$Ki{qi zf4*6aW8n89JUnn9l1CtpM>-IR6>2Q!|zrafZ^qCp2d@jY=IT)ZVF9HJ#J z5H#z+0sfB|2E`mWkZNw^9~E}M;oDX2_zE?SGT8E)oi#(GWZNNMj#>_qIZ~ek`isb6wh7B8Jetup)JgVe|pT8lasej2orl#cV z*_~4VUfOnAZrc7?x$BONGJkNpoIbowP9MEXPCt3StUvuNS+rt_beFW!T{2< z^Ge=&mH8$m&uvli>zkFl|8*sETa`SpSILpN#q!8kl^mZ_a_0sm2RAEu3jMC}GMU>l zlta5#%kg`zl=(gD<@mkV%h^Z2B7ZwMCzp&C%QaW7lI@>gE%)qQFZ*v)vT%oz6W>wt z`V&gltz0JCW-pN2*Ih0LHeV%sXBW%dc)2{j^+Gvy=M}Q$nl-ZGny2N7b<|_yB02Jd z{c_XRtL2Wpo8`<4kIK<+4rTtf<G5FB`>aCEi*GSa_{J%?6~1IQ45FU z+ym#znI}K$;dhsDc2=&G?_GFIuHAT4?tbhMIq%LT^3Ja=lr#I5%F*-B|Bw1tyXx!K z-EYf*dqp06@_AYKKBd50!{YK>jKA uJtZIf<|BR|aK8T6I#+OV&ps)iz3q1ScwQGj9)FtrG~Flnd~*CLw(8$KQ=t+7 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/alligator/female/foot_bl.vox b/assets/voxygen/voxel/npc/alligator/female/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..5a4bf21425bc0cdbeb3a64f42e48f66558deb48a GIT binary patch literal 1340 zcma)5ZA_b06h8Ofw=EGt+P4%6Sl}&eZTEqN32fkG0%08=rbFt+SDYD<2B#AYVWiQx z&Si`+ur>uV9iSo0vJ5u@jm9677_ux`mIeJ`V#u-><6nOmvwx4LEK5kl=uMvYIbZjj zd(L}r=+$FI2_kAe6lh~2kBO)~(AoHGO5v5pU=wMKW5+uKkC{{JrPN2zkVPq*&}c|8 zEK=DlLg^MIt)ys3BWY74b+eMX6w;=#&&)9WvMH9O z6uM$aBC90H;20rnnpC>toQn4<61pZO=S}IUyi(VMw3;~Hq?FaHI99Ta&t*~^$2Bcd z8Wtf9lN5$Yh+;F#X0~Zk6iZ2NDacUFipbD}a4SJ>jYRR$rdJMa4ujjTuC7KT62YSw z;qVu0aN8f_PrDtftF1__8-W$HHNSupJvE37H)CZifR)$@tW2Lq)ylibD#$@bjujbB zJG`^|L5(KRz%!tE8)(getX4wKDMG;%VfRf!+5jOVO3+z%Tqj(dY(ab`h|6;wxR`t% z4G}^xPIz;XaOMH;4d%fWHc%4rp>nwn`Ga;C6M6706vBUJCvv(8B_DC_1lQQ(2EE4h zN7F#@Owf`Y`Mxpi_J`r#GXfkbMw|#q#@nqf{Kgy~AuN7MSiMTPdyDlt!h9p)o1=t{ zw+P`T!bpfP6?WkK8-zrd&|6IyZXnFCJ-9Cq;YI_aK@Spr<%o1tA<_^DwKzLt1CYnmI+*^jm zT0aVEFJrQj=TVb|sgDQH)^q?pp#~(cT|n#|1Cg$Lq^GANSGS^UryG8+fy%u*aG>0a zsdEKboHOwAT^}~?@51L?b9sSq?>oY;KN3d69?V25uy&&!fBe#p!SO6iT(jfW11C06 zh)$lzX8$L7F2jU+@4xqds$~bF@AV;ZZWs$!#y9(ShyVZg zUr|wkPpW27=ATE+*jYHEPTcvD@KYDzy2k^r*NcAlFj@{Tfuf_x9?V8^`pG~1Adl~k z%Y_e1<2YCo!^!dU$nDL+{jW=r>~tblRP>Mer{Yq%j5kP4S`~|g6c=+v;^F8GI^j+ctHxJFH~zLG}CwMgO` zrF4>z4k?9G3gHk!+6DU*bDbo+PLN$=%YECG5O$5ZBH=jF^xDCVVQ~MowY7-FVtAY& z9J;a!r|Aj)G?}on(u&Nw8BC+C`6V3h^&=K-MtU@ebmBPDQ>RdqejoWI7UWv=$SpF# zJ+lwgr~?f?2bwd0R?Wz7C0I@pN+t=rZV|Ev3Au5Ck-7N>;le}~@0QVEvJ7 zP%;m+XhN}P6uZ1(ICl>NhwVrbVVUu6s|~-gO%4+lJ}0bPBiy^qJV2OhBz$v(u>KAq z+(a1eBus|QIQJGI6(;o65~2-+Y4(TqS`lt^U?k*1s=o@cjvAx}>alYEP5eF|#!jah zbycNke$|Ek&Ke9JCd7LQGanM}Ob~oFD}tVK^!WB5(y$Mm9y7vwi!t6*fu+7mG}d`h zQg;axKAwj^ACsRBqOEB^dOI7ieEmEU?>P|bE=EpH4hoHWRPJ!X>vq7mXFK*+xiNXR z1Pikc{Cv-Y^#?m~nKhT@3HQGv{Q4tdB<#X;yc(-F>+#1g?TC!!WBj@aw;vW^9i`~v zd2IB5g69$?)Vu$^|C24-5&xhcsk2ecUme@%-&XhnJdOf*O7q}%=b@uE7aiXJ-+y&= zH9o7EL8W&N{?RiiiWlMTmxQ0X2{&9WxZQ3HIHPDevbDUoGL{;t%-Z`!&3L zY7_^~%%J(|9kkzCLm&{qV*)6ffxn>E2#>yfTHhnSU;p);pWwzj+iYjMd+>~BK0e!T PWw-KeKC^khMJ)XdD={G8 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/alligator/female/foot_fl.vox b/assets/voxygen/voxel/npc/alligator/female/foot_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..2477f25a7485f18bcbe238e212f9be1620e82598 GIT binary patch literal 1300 zcma)*ZAhJE7{{;YzMo@~X`Yw)-cird&2#pay3|cst|{)!mvE+SPDhK4JlJY!h?7In z&Kh&#G?SyTnzN8G#%voZMIV;L7=tmy`VfSS5z*H^MD*>~eOv<}qaOJ4zpt13f8E#h z+;`i{2lHYg(zqwoWJtsz(h_Q~eP-1VdCG7cw!y(e?V+W={iSi%(wksumz5yB+8{x+ zTUnM{TiR)KdX-X6r44M$t+eG-DjriVEy`sp?Q~e$t+lb0aydjhEt6v@aaqdbI>c?+ z23lO&Auii!+S)R?+U+p9w%KEgc4=)ijedfqd_7L?S#I6ZU;}2fyb}e)o7-Tx=x%T@TIE zRR26jJ1dFw)iXaBVt(u>^Ajg2pMRUwoOF`Yog`;^2u$rnY8^=T)5x?7xsyg}qmX_= z$Qc#3+z=AGh2*H$AeCC9}6V3vbv*K_p1o zTs7G}9(==D1ZQ$7zPpL^4x!)!qa8Cfw)&A*O#OjGWIP4A_NP%*l1u%IMI3J{r+dE;?G&co6>g6R zW!@}8!2&wUw$W3wleS z41|lAjFxie`d)tfsfC`QREDp5xVe@v*cK*AVrTl8 zxiqxezc=Gqg1!v|b5p1cq|jQCOl$G~@4vLPl#j}%*j_wM<=|;DqnX_OT=?OzaIL6_ zKp;SuzmJA}w~*)n8+tadF!A^wzL#b0j@Qfkh2!k59OKx~Su&2K^We)u7TPlz%gg)6 z{Ns6XtwSyM>FI(~6IY0SF~@~l-|@+}%e-)Mklm-JsK0cZmK)1dS6A~$KoSl31HCLf p{QB|v9-900UvcvUSKrxMzI?cYCw4seWW64*=UcmH?RuSD`3qFgAISg! literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/alligator/female/foot_fr.vox b/assets/voxygen/voxel/npc/alligator/female/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..2b83989fe8901ad23949f0c6055eebdc69e95078 GIT binary patch literal 1304 zcma)*eMsG96vxl+`Ted*rg>j{H(&16&3pG^S54iNdnUnzRzjCejjUuYD#;v^@1UEUk|oYY#k#I<=H&#F%ng4AW_gk<+Gz zi0Kri?3Q6TVr<%Hm<~%Rr)6rNWjHKTLm76{P)<{nT`ALH=or(~T*ui=!)a5ZVL0_U zoHk3t6uW5?yV7-(sdJ+_x`tB9p>#bn>eG80Vmic7ZV}}%G?XZ}p}A#Au4#$eGz^br zYFim@OKGm548yH7SBA_cj8NZ-@QoC8@)Cb3aS zIVoh03%hR!v3){(Sa52dd`-AG)<9&snM<>+TwHmMnvl>O5nf*q&fM3z&FN$X-QDt%Ad44+0y-lqA1t>)y>;M1& literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/alligator/female/head_lower.vox b/assets/voxygen/voxel/npc/alligator/female/head_lower.vox new file mode 100644 index 0000000000000000000000000000000000000000..d9caa3babb79cfccccd15a85afc13ee6452eed85 GIT binary patch literal 2136 zcma)7ZD^Hc7`~tT`FJJMJUer9(>Bk0)V7t{^fWg&YUPH`uUNLF^Mec}56iLnyoosmD5-Xo*WS>#c3_F6M1EFmK2^VLt9b&PJZPN^96J zsLfjTRxt$^l=n?gTiHVmb*YhX?j*h)_fXadV~KIB=XuL{3~Ma!!f|#_UF9CacTEUO zJ;zvsDfkF#$@o3QH;{sNQczl@wTaDn+`r z#^o(z^&#h7$QgBMU=Qa)-V#2ZW8PcV*pN5mEPbW#mA#0>F{jKCmb?i*?-KTQF7=lB z!KW_z#^;T7d8O}!@KKv{5uUlgvsS3hbJqBr8lM{PbCxq17i-y9*~9Hm zJ{4*w>T-tqhP(SX7hx^=2=3q`IHyzQIg8R)zJ-tP!F>bkgxU#b2!YmfM_OS|;axnj z^sz_f@4pX?jg1%>7{HH1f@L3FM!xh9{8n0uOP5w5eol9cV)cp#v3X-N2KrZEbWaCH zhc;vM;0`PreF0Nulw(qP29qjEQG28b((WO>cR`MoKrWYI$|^zmcEOATf(OnDCiDs> z4GOZ1%T5X2-oFyVhdS}W(Js6_b}!ln1f9czXU+(AU1x1)C8~-kW)0M#;X*5>_mv{u zSBbjg)u{jaK9p||%zBl*N2oD34|$UMyC*<~CqvGcVtU;kJWyXme(p|Sc@D!O7$crr zRfV5vhj$9jyeGJHLU83A<5t13cEM*)2yQ+rC@vN3>=qm-mf_8(1tUelrba=3o8S=h zorOvi+f(fBtij0E1sLdBgpqAaaOth5@XPTc?$4K@WkEGoJW_+L-HXt>Trjv%aO5Sy z#r=YYs!DX!&BBI;dFX3vLU&ymiiPRew{$ixY?_bumU_%+`2hPHcpuGEaNvzztX{ep z8@t;ucJeI@J)dG={d7#6I1$sb8O*;gkNVma4fEz;@q$_$czp)W98K}vl{(zKc0WF( z=7r;et6vCy`bMz3Sc5}@3vv1M68!r88uaa*f_*1TaqfBrZlW4JypQqyxA0#21xsrG zegEw%=V0)~tr&T|AIA^x9pArd+C8XCr=qTUGMZ~AqpNWey6XS`{tFi_#Jh`*V1E5E zH1By06@wM{`eVVj>jkH3YEWBSi*5OStXy^;GPoO4`=(;-;9qa}awWezRaJOp_Anl9 z9>SKrZ(`b}a$Ng#HpY4?Ff?=KKkh%Ci@nyZxr)ARz^;QQF!;#@ymS65y#M75JhWpE z9)9fzRvf;FHD_<2wY3#L3Lp~*{0@6V@WbbS&G!SpU;oAPU-bCz>~?!}{RZ5MBYDfe Qlf6^!_L|%MJDin20X)$|L;wH) literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/alligator/female/head_upper.vox b/assets/voxygen/voxel/npc/alligator/female/head_upper.vox new file mode 100644 index 0000000000000000000000000000000000000000..a373e50f0d2afcd8d53a10459894b1166c5fe4c5 GIT binary patch literal 2376 zcma)6ZETh08NQ$U`FKx1&S~FsN=pkX^c>K(eqiBUDVEqGG*J0iDpHZJOe2vKbYo>{ zfHX5&XGDTv*Ay01U<)zE$du4#i$5G$h%qt5pg&9&V$8Da?|v-H{$0DC8WR#RdXg*8 zb3f1haoyK*zi0GkJD1Lg$kuhk+qg(pBeH#X*HC>l_{$L~;fbA3>>74)!{4CcnKhXS z_OLCO0hhO_E7&yDn^bd}g@Q>#p7&f0S6|S>Cf?O*=B>+Iy&14Xs54opHKkBvGTUfM zhPI(?XtO|~j7zu%HJNL$C6h?bbFbcIzE*O|T){DCJulz7Ju_vpU4K_<0&o$cQ&Q<39 zG;@g=5NA{G*q38W-V7LWGtQQrVIF6T#xqBq8Sv!qgnL5kwB)Ia^|t6)*9YooZKe&8 zH*1iidU7MQMpI8e=e20Xq&CN%66Oum&q}6&euR>XjUWeAO>G0Yg-&} zHnO)6XTlVHgBCSUZRl$_E5W;>C6w`&JZz3AP^Z|NW8NC(;&G zvnZSm;k~8K%5#;f6E7W!)v^`ouqqW7!M!t5 z5o^j$3|Fm)(@LUBe^cQHUGeeWGlye*FdbeQZ=^$lsTeEegt2O(FJm<3kTUszP>(8OibYGDZ!>U zucOlRKm4bu3D>S|Mf|-tJd16cAHb7)`!O-T8MDWSF+24nX3reL>e*kSad8XsEh+M? zP3Stm1~TL!2Wuf0i;(NhXxu7jc}}qSwBX+N1-XNQ{G^~nyZK$gtEaYL`s@hKUD$zF z=YE0>6M~Ux!Bdw7M?YiiNE_O#Wh|TMM(@=@EE;P<`D7cqFD*gO$9JP;k6_sg%ss;z z_f;T|vHr0fWV!&k(u76b$8m2@6_xvr0FQKFS_E^%vs>HoPp;EP1ebp&xc0W-lMiSQ z3N8)_{`{!m)-!_YM!}I$!RcxV znFH%_?Ul#zuS-?jQ)$N9l}oUBpcDH?SL5I#g2}yt^S>5+bV|_M-iG1sW!TeuKgKq! z!Dx3gs@Wo(+_)T9_pQLt+8!)kdk&|1sYib!PXG2GwrzY6dq+25?wwaK^@}nlb}vF* zT^$ydQmnYUf}XB2dhfpr53cOO>6aGc@`WOzW=AG%eY{D*Z24T+?KmA`K$eyd1)M% z-a0YgfBV7)be9*Pdr1NPT?Opu%VS5+kMDogs#SP>^?9u5xrqMbFQRp_6(9dW@WpPy zyPcir>gvLQ$~d-cx&oOzh6Q5_Fn8vgH~dW-XQ#a#&o7_GL;X{D`ozmvxUU5_{M!5$`-=1RL-+g$=fAVt*9*J%;9EOhe!IWZdZ)A7V{YHy!B_qd D8i-I0 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/alligator/female/jaw.vox b/assets/voxygen/voxel/npc/alligator/female/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..1c87c49e8eca06effc14cbc0c7fb9bcc53a7a9df GIT binary patch literal 1744 zcma)5eMnVz7=C}h^Kp;&!)#qOKc?Mt`taVqW;V5qw5gbx4Rg9Oi#3vYacxb8lw3B} zZIL?L`2&kgAoy9?BD${#{PTuoFWL;*bY2AzxR1Re((F9 zbJ}0tv1nXGnm09WBgwb6NNZz9eb_hnIK(`{Aa?BRX#7a?z~>xco7z!?WvOZ%(2lmr z8QL+(CSe4~rmD7loiQe1_)J}gnCJVLXOJ~vI`k73YgoSDphg&kCM->xFnnb2Oc)_D zVFby96;Q4YsF-PqYZ0a?o?#JW(-zmTC1wP~)6~oWV+_U+h9NP_QLf=ocO=HiVpdSa zG;=JQ@h1I*HpH_uV>IhzFgJs>gAy}?tPvuIXosnX>5nMSj40O%E846bR-O*CChJ-u za!7erhKg~wt|^RHtgFP;)U;n;^DN90&LfN^Yo$Cx(IzaOwe~gk$Xwf2G22qEZ4w4S zpUpT$T~SxmmBBjx+?>;5{}y|<*tczpYjY=xJJa-Qhv00Qb7}gO@8|3`ds1Y@9VqTu zIm%P)R|Q!+#9lMmTPEK@gqlBVnD-Dygu99G%$?ZGv$(UVP>EaGoyPkbMgQxX5L0tVJ;%M^AX95B0jkeQg1*sJ($Dv9M@4mPYQ zMpJbOy4owyvqg~JEtq^)aD7-%UX+i<#A0-ouR?F#I1qg*gSh!$5Rxk5V8h25?YAM#QiDTqQ zAugYB@zbpY?%!FC&v@tbl;HL^f?s|R^e0O&kuJlHOSSm@=T`I%W?|?;6j$%&;XaDd z!F@cMe;@bKC#a48`~3U2E=BsCE{q@P!_?`)NAnjgoQH&)jYM%Ks^XbwtBjzn^#9La zR#t|OD<-kJ^en0d4kIs}hnwdFKkgD-EGa=e9!Iy=hpn5hLDK!m?#;&R$;a>Ty?lN< zMMZdj$rv_Pjbh*6Q7qh(i#uN~!E8q!Mi(vm$Nv2|zt+yy+vx2E4xK!Y^cT}OaqWA2 z`rSRecwhh<4^N`$^mVjexrdsX8axz090GsBxF>k<_2d2?@ca5NKYzhT|Jl=gW>+Vk V*uL}0`C0rd?dhDS&(DaJzX8P&H}wDj literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/alligator/female/tail_front.vox b/assets/voxygen/voxel/npc/alligator/female/tail_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..38226f9fc9c4f50fb8a03c1f665082013dd1d899 GIT binary patch literal 2288 zcma)8YlxI(6h7~HFW=03v*ygV?z*e3&WzUXbg|WG-CC(NU2O9bo4J)YDv})Ry2N6# z6txwZn6@pe(M2sJ!n6{1Df&?o5-#tM<}QI6O%?3LA`(DvlO$Bbi* zDB_)GKjL!492gTKEhuwC%-O9bF72H)Mej^vi7${#39PTIV@)AqEpN1_c`XQMu%d}o zQ&gjg<~g%y(Ga7OgFrrnJ*_c`BW6`o2pP`Ko>qw?Lm>~=61!&}@kQ(v*vmR%=NwA@ zY>t|Ige>bAVhilWSpu~uXX@zVypDAp_w3csPYjVJfxP)F<2-Hd$Z=Mm)*_G2GbflN z;=Ln}J`j73KJphL#%3tQ5Xgy%xf^0PG5I5Q&wFc`OI}TS&z%@@>o}Lq+oCewq;oUJ zat51Axkz`SiD7-q-i9+;?q2z3ly5;&_Jn6xhUVIxy8jy1A8XIYmV_zZWG3i&a- zmvoP5FUELJ&6ImPD_3@ zGW>3^COK5jVabhhe}>vdoQq=khHao7=p)Bgq@;PNSc=P=iqB9xsdy(Pmy@!_QZliW zO^&|2l)RU+r|q(|vr-9JDZ5z9AkDZ>;l&obO=dxnTCN^cu`8CB6r`Sx{ zrTxW}RGDXqiSrxQG^}HZ!Lyc0YsXqr;&9V*nbIw*ZdfjV{cd%4cVlE^1V4-kZhZ9& zDviJ6*TzPiKD`#{=Xn1l)~&t@cWvpx$na`R?(WCr*j<=B@DP?xK8Trfo6*o*KtoF- zIu2a}>GO~sImnSB6qZTeQPj&Z~!kK-hk(( zF2>3c!N9oS?h}GXzhv$}E86O1EEuVx>r^l13^k&>w-wc+^U(R}rD)zPSnvdEPq4=o z709jZzbgY7p8+}9h&k2WxV*ED$`w0-n@SiL!4&1bwQcx`dVHtg#EXK{ZwfwpkLO;& zkv_ruw+PPNE2ys$>>L#AuQ%bDI|UPU!PaiU@Jhi!`Uh&QsP~nzYoHwy+ZJPF!%|Fa zUxCxl-iDu#)^S;-3CkAG!|LnXv2AcEcHATw-6A;jh~T4rg08k!^j8;PbJvv^T6qly zt4*la=3wutg*df!5&D*OV(zk+v9F7K^vuNmr*~l8s%x=ja3!YRdKP03lrget4&pe* z?4*E2msZf(QAXF5m*CpP9oYZWT%0&u#y6i;aqf%D@CtjLIx6`5L&1+<33k=nad31A z&KzHXU%p+Bp*=IP_pL^}_hk#tVIDS;k7@k(ke6Y>ijIHBfB%|GF#7N|OguG=qp$6m z#@{ykB2>$>P@OjeJsmT!p}PSaI{!cZB}W6mYx+f1|^=ltt{kvz;+uMsD z1dt2`zrmgreE-3p^L@|v^oEO2J6|8(v>AV&)62i@3+W5_&d)jDzCf(}0aL3+ A!2kdN literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/alligator/female/tail_rear.vox b/assets/voxygen/voxel/npc/alligator/female/tail_rear.vox new file mode 100644 index 0000000000000000000000000000000000000000..66a171e4ef7c227f9cd22f35e1528615cb2c2756 GIT binary patch literal 1320 zcma)*ZAhJE7{{;Yc|3Z`G+&PIc68_H<~e(@qbGG!mP^GsU&5KT`9_OL9&EKF#L1y( zXN@^=n#s{vO)X@MG229?=);nbF&JZ5AA*oED*D=oh`#;0j$NKUxZ7Ejl81yhwR8?JhJE@%R9^-UjX;sK{&F5 zNfB0*HyfS&syaC+EPO1iUKQ@%QoB-^s}a6BDr~$V1ZsuBHeo!F%K6uXa6srT69%e< zY4tbzGYQnV7-}vc+*3rbwUlsg6{{Cs<+u3&yWOc&6y;F=VgWsErSu&ULS4elyTa`; zp~RU6nPjwm(9Ygiy!ZL*|@)(Pc`S#ym0Ru;pgv# zp+EuCp<>ouE34O7|rN!^~bt)?>c_biqg+H;@g@<21 n{=SELzy51opWx;@+p4o2ojkE4i%;g;>2|)Yd$!KEiIu+rh literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/alligator/male/chest.vox b/assets/voxygen/voxel/npc/alligator/male/chest.vox new file mode 100644 index 0000000000000000000000000000000000000000..98149f48cc6007b371eeebbd700bc4e603e9ebc7 GIT binary patch literal 4448 zcma)W{!!uH1W)M$vNH{Gfkoq8*9=SlUQP!RO5wOlzK>QZ74y* zp`{)xreaOg5G}SwTY`vaRg%!s2OElrAR@L8g(4!Q^tBJA^lkOGM+Bjk_Q0RD_u6Z( z^bdgywrHDO>IJ+ehlyKd;au5Vq(_frE(g&yjPMo*iLo{rrxh+RL3 z9p9R+p0-`q&=>aG;_>AN1>1rycl0Q+o|@2RY;)10(D4J$-hiD4fju7NMh_i43^s=S z4t^2X4tijFNbDRk7Ts(DxV{0ln7;2gdg%s^8ra5BGsdN^VN<9}v4g}oGfs_xo9(OW zcT%&eBi|l-dW^f+kzelB`ncBg>>#k7JIEfsLBM|?Zt9tF=(sje%LKQG@7TeA31dec zEcFWP^B|#5#4P0I$sw`dF*fKO^NhV`Zo9VcI$<0^V(jrzI0p%zq3g#UXyzGTy4DG} z#*bsor}i2dnTLk>a0)#;Rvp70H*S!gxkK-%iK#Zk_Q=9|DQ@gokHC^!(}2QWe7agU zdTyw%VSlNx?g3do|&0T7_SQUrX+#YsQ9kjnu@~ znY)nmFemO6W0N==nY)J6=xpY_K&H%nOBLM9#F+;H*u)!3F?8^`R&4kXqSJd*Z( zt9jEj@4OCeF!agzK?2rL_elSJXj7!_0eIFN`U=K2fXKUQ1MqF~VUS|zM_b|hA<}== z1ABd-|DHJrjyXPD1wLYhow8%2 zxsw{7z&qZSK>s8C4*-;Oc134R%* zz#JqvJK|<|1f&Ng(tpGIsCl12AeVq$tT7C4A+RBgjWPXfI9I;%6~(lU>_=8WER*BBe>P{?1iC#qUk?yTWk#(Bx~yx`mG+H1ZEoEOVD*Ba3W!yZSU z3^5(Zf%vBO6Tg)&=f}axS9|sbSAEkL^a1V#K7~AV;Euy5;VV>bDFe z+#E3Qv)mB}4EM!yo*ie_BP}^Q`sRpdsilRxtDp~dQg><$XG`rI=fZH0EO68(N4^1( z-z$;ddmsljZ35p3uZG5}>Fkh>xy8;hH>?}J9qhC0OYHHQZyHGKv+Q^1TmYVL8sixF z-Ne{3PF{@)vIKsAF%FjBZTPp2-*tTRlI3?7aS|~sv62SpEmAvt_-fDZJW!m$Ki{qi zf4*6aW8n89JUnn9l1CtpM>-IR6>2Q!|zrafZ^qCp2d@jY=IT)ZVF9HJ#J z5H#z+0sfB|2E`mWkZNw^9~E}M;oDX2_zE?SGT8E)oi#(GWZNNMj#>_qIZ~ek`isb6wh7B8Jetup)JgVe|pT8lasej2orl#cV z*_~4VUfOnAZrc7?x$BONGJkNpoIbowP9MEXPCt3StUvuNS+rt_beFW!T{2< z^Ge=&mH8$m&uvli>zkFl|8*sETa`SpSILpN#q!8kl^mZ_a_0sm2RAEu3jMC}GMU>l zlta5#%kg`zl=(gD<@mkV%h^Z2B7ZwMCzp&C%QaW7lI@>gE%)qQFZ*v)vT%oz6W>wt z`V&gltz0JCW-pN2*Ih0LHeV%sXBW%dc)2{j^+Gvy=M}Q$nl-ZGny2N7b<|_yB02Jd z{c_XRtL2Wpo8`<4kIK<+4rTtf<G5FB`>aCEi*GSa_{J%?6~1IQ45FU z+ym#znI}K$;dhsDc2=&G?_GFIuHAT4?tbhMIq%LT^3Ja=lr#I5%F*-B|Bw1tyXx!K z-EYf*dqp06@_AYKKBd50!{YK>jKA uJtZIf<|BR|aK8T6I#+OV&ps)iz3q1ScwQGj9)FtrG~Flnd~*CLw(8$KQ=t+7 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/alligator/male/foot_bl.vox b/assets/voxygen/voxel/npc/alligator/male/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..5a4bf21425bc0cdbeb3a64f42e48f66558deb48a GIT binary patch literal 1340 zcma)5ZA_b06h8Ofw=EGt+P4%6Sl}&eZTEqN32fkG0%08=rbFt+SDYD<2B#AYVWiQx z&Si`+ur>uV9iSo0vJ5u@jm9677_ux`mIeJ`V#u-><6nOmvwx4LEK5kl=uMvYIbZjj zd(L}r=+$FI2_kAe6lh~2kBO)~(AoHGO5v5pU=wMKW5+uKkC{{JrPN2zkVPq*&}c|8 zEK=DlLg^MIt)ys3BWY74b+eMX6w;=#&&)9WvMH9O z6uM$aBC90H;20rnnpC>toQn4<61pZO=S}IUyi(VMw3;~Hq?FaHI99Ta&t*~^$2Bcd z8Wtf9lN5$Yh+;F#X0~Zk6iZ2NDacUFipbD}a4SJ>jYRR$rdJMa4ujjTuC7KT62YSw z;qVu0aN8f_PrDtftF1__8-W$HHNSupJvE37H)CZifR)$@tW2Lq)ylibD#$@bjujbB zJG`^|L5(KRz%!tE8)(getX4wKDMG;%VfRf!+5jOVO3+z%Tqj(dY(ab`h|6;wxR`t% z4G}^xPIz;XaOMH;4d%fWHc%4rp>nwn`Ga;C6M6706vBUJCvv(8B_DC_1lQQ(2EE4h zN7F#@Owf`Y`Mxpi_J`r#GXfkbMw|#q#@nqf{Kgy~AuN7MSiMTPdyDlt!h9p)o1=t{ zw+P`T!bpfP6?WkK8-zrd&|6IyZXnFCJ-9Cq;YI_aK@Spr<%o1tA<_^DwKzLt1CYnmI+*^jm zT0aVEFJrQj=TVb|sgDQH)^q?pp#~(cT|n#|1Cg$Lq^GANSGS^UryG8+fy%u*aG>0a zsdEKboHOwAT^}~?@51L?b9sSq?>oY;KN3d69?V25uy&&!fBe#p!SO6iT(jfW11C06 zh)$lzX8$L7F2jU+@4xqds$~bF@AV;ZZWs$!#y9(ShyVZg zUr|wkPpW27=ATE+*jYHEPTcvD@KYDzy2k^r*NcAlFj@{Tfuf_x9?V8^`pG~1Adl~k z%Y_e1<2YCo!^!dU$nDL+{jW=r>~tblRP>Mer{Yq%j5kP4S`~|g6c=+v;^F8GI^j+ctHxJFH~zLG}CwMgO` zrF4>z4k?9G3gHk!+6DU*bDbo+PLN$=%YECG5O$5ZBH=jF^xDCVVQ~MowY7-FVtAY& z9J;a!r|Aj)G?}on(u&Nw8BC+C`6V3h^&=K-MtU@ebmBPDQ>RdqejoWI7UWv=$SpF# zJ+lwgr~?f?2bwd0R?Wz7C0I@pN+t=rZV|Ev3Au5Ck-7N>;le}~@0QVEvJ7 zP%;m+XhN}P6uZ1(ICl>NhwVrbVVUu6s|~-gO%4+lJ}0bPBiy^qJV2OhBz$v(u>KAq z+(a1eBus|QIQJGI6(;o65~2-+Y4(TqS`lt^U?k*1s=o@cjvAx}>alYEP5eF|#!jah zbycNke$|Ek&Ke9JCd7LQGanM}Ob~oFD}tVK^!WB5(y$Mm9y7vwi!t6*fu+7mG}d`h zQg;axKAwj^ACsRBqOEB^dOI7ieEmEU?>P|bE=EpH4hoHWRPJ!X>vq7mXFK*+xiNXR z1Pikc{Cv-Y^#?m~nKhT@3HQGv{Q4tdB<#X;yc(-F>+#1g?TC!!WBj@aw;vW^9i`~v zd2IB5g69$?)Vu$^|C24-5&xhcsk2ecUme@%-&XhnJdOf*O7q}%=b@uE7aiXJ-+y&= zH9o7EL8W&N{?RiiiWlMTmxQ0X2{&9WxZQ3HIHPDevbDUoGL{;t%-Z`!&3L zY7_^~%%J(|9kkzCLm&{qV*)6ffxn>E2#>yfTHhnSU;p);pWwzj+iYjMd+>~BK0e!T PWw-KeKC^khMJ)XdD={G8 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/alligator/male/foot_fl.vox b/assets/voxygen/voxel/npc/alligator/male/foot_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..2477f25a7485f18bcbe238e212f9be1620e82598 GIT binary patch literal 1300 zcma)*ZAhJE7{{;YzMo@~X`Yw)-cird&2#pay3|cst|{)!mvE+SPDhK4JlJY!h?7In z&Kh&#G?SyTnzN8G#%voZMIV;L7=tmy`VfSS5z*H^MD*>~eOv<}qaOJ4zpt13f8E#h z+;`i{2lHYg(zqwoWJtsz(h_Q~eP-1VdCG7cw!y(e?V+W={iSi%(wksumz5yB+8{x+ zTUnM{TiR)KdX-X6r44M$t+eG-DjriVEy`sp?Q~e$t+lb0aydjhEt6v@aaqdbI>c?+ z23lO&Auii!+S)R?+U+p9w%KEgc4=)ijedfqd_7L?S#I6ZU;}2fyb}e)o7-Tx=x%T@TIE zRR26jJ1dFw)iXaBVt(u>^Ajg2pMRUwoOF`Yog`;^2u$rnY8^=T)5x?7xsyg}qmX_= z$Qc#3+z=AGh2*H$AeCC9}6V3vbv*K_p1o zTs7G}9(==D1ZQ$7zPpL^4x!)!qa8Cfw)&A*O#OjGWIP4A_NP%*l1u%IMI3J{r+dE;?G&co6>g6R zW!@}8!2&wUw$W3wleS z41|lAjFxie`d)tfsfC`QREDp5xVe@v*cK*AVrTl8 zxiqxezc=Gqg1!v|b5p1cq|jQCOl$G~@4vLPl#j}%*j_wM<=|;DqnX_OT=?OzaIL6_ zKp;SuzmJA}w~*)n8+tadF!A^wzL#b0j@Qfkh2!k59OKx~Su&2K^We)u7TPlz%gg)6 z{Ns6XtwSyM>FI(~6IY0SF~@~l-|@+}%e-)Mklm-JsK0cZmK)1dS6A~$KoSl31HCLf p{QB|v9-900UvcvUSKrxMzI?cYCw4seWW64*=UcmH?RuSD`3qFgAISg! literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/alligator/male/foot_fr.vox b/assets/voxygen/voxel/npc/alligator/male/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..2b83989fe8901ad23949f0c6055eebdc69e95078 GIT binary patch literal 1304 zcma)*eMsG96vxl+`Ted*rg>j{H(&16&3pG^S54iNdnUnzRzjCejjUuYD#;v^@1UEUk|oYY#k#I<=H&#F%ng4AW_gk<+Gz zi0Kri?3Q6TVr<%Hm<~%Rr)6rNWjHKTLm76{P)<{nT`ALH=or(~T*ui=!)a5ZVL0_U zoHk3t6uW5?yV7-(sdJ+_x`tB9p>#bn>eG80Vmic7ZV}}%G?XZ}p}A#Au4#$eGz^br zYFim@OKGm548yH7SBA_cj8NZ-@QoC8@)Cb3aS zIVoh03%hR!v3){(Sa52dd`-AG)<9&snM<>+TwHmMnvl>O5nf*q&fM3z&FN$X-QDt%Ad44+0y-lqA1t>)y>;M1& literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/alligator/male/head_lower.vox b/assets/voxygen/voxel/npc/alligator/male/head_lower.vox new file mode 100644 index 0000000000000000000000000000000000000000..d9caa3babb79cfccccd15a85afc13ee6452eed85 GIT binary patch literal 2136 zcma)7ZD^Hc7`~tT`FJJMJUer9(>Bk0)V7t{^fWg&YUPH`uUNLF^Mec}56iLnyoosmD5-Xo*WS>#c3_F6M1EFmK2^VLt9b&PJZPN^96J zsLfjTRxt$^l=n?gTiHVmb*YhX?j*h)_fXadV~KIB=XuL{3~Ma!!f|#_UF9CacTEUO zJ;zvsDfkF#$@o3QH;{sNQczl@wTaDn+`r z#^o(z^&#h7$QgBMU=Qa)-V#2ZW8PcV*pN5mEPbW#mA#0>F{jKCmb?i*?-KTQF7=lB z!KW_z#^;T7d8O}!@KKv{5uUlgvsS3hbJqBr8lM{PbCxq17i-y9*~9Hm zJ{4*w>T-tqhP(SX7hx^=2=3q`IHyzQIg8R)zJ-tP!F>bkgxU#b2!YmfM_OS|;axnj z^sz_f@4pX?jg1%>7{HH1f@L3FM!xh9{8n0uOP5w5eol9cV)cp#v3X-N2KrZEbWaCH zhc;vM;0`PreF0Nulw(qP29qjEQG28b((WO>cR`MoKrWYI$|^zmcEOATf(OnDCiDs> z4GOZ1%T5X2-oFyVhdS}W(Js6_b}!ln1f9czXU+(AU1x1)C8~-kW)0M#;X*5>_mv{u zSBbjg)u{jaK9p||%zBl*N2oD34|$UMyC*<~CqvGcVtU;kJWyXme(p|Sc@D!O7$crr zRfV5vhj$9jyeGJHLU83A<5t13cEM*)2yQ+rC@vN3>=qm-mf_8(1tUelrba=3o8S=h zorOvi+f(fBtij0E1sLdBgpqAaaOth5@XPTc?$4K@WkEGoJW_+L-HXt>Trjv%aO5Sy z#r=YYs!DX!&BBI;dFX3vLU&ymiiPRew{$ixY?_bumU_%+`2hPHcpuGEaNvzztX{ep z8@t;ucJeI@J)dG={d7#6I1$sb8O*;gkNVma4fEz;@q$_$czp)W98K}vl{(zKc0WF( z=7r;et6vCy`bMz3Sc5}@3vv1M68!r88uaa*f_*1TaqfBrZlW4JypQqyxA0#21xsrG zegEw%=V0)~tr&T|AIA^x9pArd+C8XCr=qTUGMZ~AqpNWey6XS`{tFi_#Jh`*V1E5E zH1By06@wM{`eVVj>jkH3YEWBSi*5OStXy^;GPoO4`=(;-;9qa}awWezRaJOp_Anl9 z9>SKrZ(`b}a$Ng#HpY4?Ff?=KKkh%Ci@nyZxr)ARz^;QQF!;#@ymS65y#M75JhWpE z9)9fzRvf;FHD_<2wY3#L3Lp~*{0@6V@WbbS&G!SpU;oAPU-bCz>~?!}{RZ5MBYDfe Qlf6^!_L|%MJDin20X)$|L;wH) literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/alligator/male/head_upper.vox b/assets/voxygen/voxel/npc/alligator/male/head_upper.vox new file mode 100644 index 0000000000000000000000000000000000000000..a373e50f0d2afcd8d53a10459894b1166c5fe4c5 GIT binary patch literal 2376 zcma)6ZETh08NQ$U`FKx1&S~FsN=pkX^c>K(eqiBUDVEqGG*J0iDpHZJOe2vKbYo>{ zfHX5&XGDTv*Ay01U<)zE$du4#i$5G$h%qt5pg&9&V$8Da?|v-H{$0DC8WR#RdXg*8 zb3f1haoyK*zi0GkJD1Lg$kuhk+qg(pBeH#X*HC>l_{$L~;fbA3>>74)!{4CcnKhXS z_OLCO0hhO_E7&yDn^bd}g@Q>#p7&f0S6|S>Cf?O*=B>+Iy&14Xs54opHKkBvGTUfM zhPI(?XtO|~j7zu%HJNL$C6h?bbFbcIzE*O|T){DCJulz7Ju_vpU4K_<0&o$cQ&Q<39 zG;@g=5NA{G*q38W-V7LWGtQQrVIF6T#xqBq8Sv!qgnL5kwB)Ia^|t6)*9YooZKe&8 zH*1iidU7MQMpI8e=e20Xq&CN%66Oum&q}6&euR>XjUWeAO>G0Yg-&} zHnO)6XTlVHgBCSUZRl$_E5W;>C6w`&JZz3AP^Z|NW8NC(;&G zvnZSm;k~8K%5#;f6E7W!)v^`ouqqW7!M!t5 z5o^j$3|Fm)(@LUBe^cQHUGeeWGlye*FdbeQZ=^$lsTeEegt2O(FJm<3kTUszP>(8OibYGDZ!>U zucOlRKm4bu3D>S|Mf|-tJd16cAHb7)`!O-T8MDWSF+24nX3reL>e*kSad8XsEh+M? zP3Stm1~TL!2Wuf0i;(NhXxu7jc}}qSwBX+N1-XNQ{G^~nyZK$gtEaYL`s@hKUD$zF z=YE0>6M~Ux!Bdw7M?YiiNE_O#Wh|TMM(@=@EE;P<`D7cqFD*gO$9JP;k6_sg%ss;z z_f;T|vHr0fWV!&k(u76b$8m2@6_xvr0FQKFS_E^%vs>HoPp;EP1ebp&xc0W-lMiSQ z3N8)_{`{!m)-!_YM!}I$!RcxV znFH%_?Ul#zuS-?jQ)$N9l}oUBpcDH?SL5I#g2}yt^S>5+bV|_M-iG1sW!TeuKgKq! z!Dx3gs@Wo(+_)T9_pQLt+8!)kdk&|1sYib!PXG2GwrzY6dq+25?wwaK^@}nlb}vF* zT^$ydQmnYUf}XB2dhfpr53cOO>6aGc@`WOzW=AG%eY{D*Z24T+?KmA`K$eyd1)M% z-a0YgfBV7)be9*Pdr1NPT?Opu%VS5+kMDogs#SP>^?9u5xrqMbFQRp_6(9dW@WpPy zyPcir>gvLQ$~d-cx&oOzh6Q5_Fn8vgH~dW-XQ#a#&o7_GL;X{D`ozmvxUU5_{M!5$`-=1RL-+g$=fAVt*9*J%;9EOhe!IWZdZ)A7V{YHy!B_qd D8i-I0 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/alligator/male/jaw.vox b/assets/voxygen/voxel/npc/alligator/male/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..1c87c49e8eca06effc14cbc0c7fb9bcc53a7a9df GIT binary patch literal 1744 zcma)5eMnVz7=C}h^Kp;&!)#qOKc?Mt`taVqW;V5qw5gbx4Rg9Oi#3vYacxb8lw3B} zZIL?L`2&kgAoy9?BD${#{PTuoFWL;*bY2AzxR1Re((F9 zbJ}0tv1nXGnm09WBgwb6NNZz9eb_hnIK(`{Aa?BRX#7a?z~>xco7z!?WvOZ%(2lmr z8QL+(CSe4~rmD7loiQe1_)J}gnCJVLXOJ~vI`k73YgoSDphg&kCM->xFnnb2Oc)_D zVFby96;Q4YsF-PqYZ0a?o?#JW(-zmTC1wP~)6~oWV+_U+h9NP_QLf=ocO=HiVpdSa zG;=JQ@h1I*HpH_uV>IhzFgJs>gAy}?tPvuIXosnX>5nMSj40O%E846bR-O*CChJ-u za!7erhKg~wt|^RHtgFP;)U;n;^DN90&LfN^Yo$Cx(IzaOwe~gk$Xwf2G22qEZ4w4S zpUpT$T~SxmmBBjx+?>;5{}y|<*tczpYjY=xJJa-Qhv00Qb7}gO@8|3`ds1Y@9VqTu zIm%P)R|Q!+#9lMmTPEK@gqlBVnD-Dygu99G%$?ZGv$(UVP>EaGoyPkbMgQxX5L0tVJ;%M^AX95B0jkeQg1*sJ($Dv9M@4mPYQ zMpJbOy4owyvqg~JEtq^)aD7-%UX+i<#A0-ouR?F#I1qg*gSh!$5Rxk5V8h25?YAM#QiDTqQ zAugYB@zbpY?%!FC&v@tbl;HL^f?s|R^e0O&kuJlHOSSm@=T`I%W?|?;6j$%&;XaDd z!F@cMe;@bKC#a48`~3U2E=BsCE{q@P!_?`)NAnjgoQH&)jYM%Ks^XbwtBjzn^#9La zR#t|OD<-kJ^en0d4kIs}hnwdFKkgD-EGa=e9!Iy=hpn5hLDK!m?#;&R$;a>Ty?lN< zMMZdj$rv_Pjbh*6Q7qh(i#uN~!E8q!Mi(vm$Nv2|zt+yy+vx2E4xK!Y^cT}OaqWA2 z`rSRecwhh<4^N`$^mVjexrdsX8axz090GsBxF>k<_2d2?@ca5NKYzhT|Jl=gW>+Vk V*uL}0`C0rd?dhDS&(DaJzX8P&H}wDj literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/alligator/male/tail_front.vox b/assets/voxygen/voxel/npc/alligator/male/tail_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..38226f9fc9c4f50fb8a03c1f665082013dd1d899 GIT binary patch literal 2288 zcma)8YlxI(6h7~HFW=03v*ygV?z*e3&WzUXbg|WG-CC(NU2O9bo4J)YDv})Ry2N6# z6txwZn6@pe(M2sJ!n6{1Df&?o5-#tM<}QI6O%?3LA`(DvlO$Bbi* zDB_)GKjL!492gTKEhuwC%-O9bF72H)Mej^vi7${#39PTIV@)AqEpN1_c`XQMu%d}o zQ&gjg<~g%y(Ga7OgFrrnJ*_c`BW6`o2pP`Ko>qw?Lm>~=61!&}@kQ(v*vmR%=NwA@ zY>t|Ige>bAVhilWSpu~uXX@zVypDAp_w3csPYjVJfxP)F<2-Hd$Z=Mm)*_G2GbflN z;=Ln}J`j73KJphL#%3tQ5Xgy%xf^0PG5I5Q&wFc`OI}TS&z%@@>o}Lq+oCewq;oUJ zat51Axkz`SiD7-q-i9+;?q2z3ly5;&_Jn6xhUVIxy8jy1A8XIYmV_zZWG3i&a- zmvoP5FUELJ&6ImPD_3@ zGW>3^COK5jVabhhe}>vdoQq=khHao7=p)Bgq@;PNSc=P=iqB9xsdy(Pmy@!_QZliW zO^&|2l)RU+r|q(|vr-9JDZ5z9AkDZ>;l&obO=dxnTCN^cu`8CB6r`Sx{ zrTxW}RGDXqiSrxQG^}HZ!Lyc0YsXqr;&9V*nbIw*ZdfjV{cd%4cVlE^1V4-kZhZ9& zDviJ6*TzPiKD`#{=Xn1l)~&t@cWvpx$na`R?(WCr*j<=B@DP?xK8Trfo6*o*KtoF- zIu2a}>GO~sImnSB6qZTeQPj&Z~!kK-hk(( zF2>3c!N9oS?h}GXzhv$}E86O1EEuVx>r^l13^k&>w-wc+^U(R}rD)zPSnvdEPq4=o z709jZzbgY7p8+}9h&k2WxV*ED$`w0-n@SiL!4&1bwQcx`dVHtg#EXK{ZwfwpkLO;& zkv_ruw+PPNE2ys$>>L#AuQ%bDI|UPU!PaiU@Jhi!`Uh&QsP~nzYoHwy+ZJPF!%|Fa zUxCxl-iDu#)^S;-3CkAG!|LnXv2AcEcHATw-6A;jh~T4rg08k!^j8;PbJvv^T6qly zt4*la=3wutg*df!5&D*OV(zk+v9F7K^vuNmr*~l8s%x=ja3!YRdKP03lrget4&pe* z?4*E2msZf(QAXF5m*CpP9oYZWT%0&u#y6i;aqf%D@CtjLIx6`5L&1+<33k=nad31A z&KzHXU%p+Bp*=IP_pL^}_hk#tVIDS;k7@k(ke6Y>ijIHBfB%|GF#7N|OguG=qp$6m z#@{ykB2>$>P@OjeJsmT!p}PSaI{!cZB}W6mYx+f1|^=ltt{kvz;+uMsD z1dt2`zrmgreE-3p^L@|v^oEO2J6|8(v>AV&)62i@3+W5_&d)jDzCf(}0aL3+ A!2kdN literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/alligator/male/tail_rear.vox b/assets/voxygen/voxel/npc/alligator/male/tail_rear.vox new file mode 100644 index 0000000000000000000000000000000000000000..66a171e4ef7c227f9cd22f35e1528615cb2c2756 GIT binary patch literal 1320 zcma)*ZAhJE7{{;Yc|3Z`G+&PIc68_H<~e(@qbGG!mP^GsU&5KT`9_OL9&EKF#L1y( zXN@^=n#s{vO)X@MG229?=);nbF&JZ5AA*oED*D=oh`#;0j$NKUxZ7Ejl81yhwR8?JhJE@%R9^-UjX;sK{&F5 zNfB0*HyfS&syaC+EPO1iUKQ@%QoB-^s}a6BDr~$V1ZsuBHeo!F%K6uXa6srT69%e< zY4tbzGYQnV7-}vc+*3rbwUlsg6{{Cs<+u3&yWOc&6y;F=VgWsErSu&ULS4elyTa`; zp~RU6nPjwm(9Ygiy!ZL*|@)(Pc`S#ym0Ru;pgv# zp+EuCp<>ouE34O7|rN!^~bt)?>c_biqg+H;@g@<21 n{=SELzy51opWx;@+p4o2ojkE4i%;g;>2|)Yd$!KEiIu+rh literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/crocodile/female/chest.vox b/assets/voxygen/voxel/npc/crocodile/female/chest.vox new file mode 100644 index 0000000000000000000000000000000000000000..43d12dd52b01791a0c51099bec3b58d70b6e15c1 GIT binary patch literal 4168 zcma);f9Tz1701tWo}Zul%iVjw?x#(^_v?@C>#ydn+jLqpH|Cr(=5p!Ok)gCN%d#Ou z$Cn~!;u3SMF^$S;F+@aD*+$VHHbO)Y5eo`JL?ZgPKO*|?^m?ucLPlM9bI#{^&N~>^2 zP4?nYTcFKe%T43Mj0d?%=%>C%#$-o_J%m4I(x}wTmyVkx{{R z#OGYUTQXCC!v}|~Z@ZaNdEzV`83kgHmLr#On7cZYYrf!{cIY=v82HAMPv2M8wX5V> zM`1!eF@c^=yUD&ANy`r!&TVS$SuY)Iw{?UtuWMH7-!)5)*fq37nSd^E7b55z}OnOPjjyx9p zNg(5U>Q$fMyJ65Yeh|rf>Y_X0!?1KbJrV{PUn2hJwhnVo$FYM<%hL~jkXX~6C#Ez` z4ZTgiVy!Rv${pm1rD^FnQ149MJaus$9cSuUpnjs`2fl+o$X)#C5eLZFjNLd6Ad{DZ ztwjA}wbPF1#&Mzck-fxs;yZDs?`Yps_d?vUhdgn(#*G3rb^Rz%V_)+PZCYU*-~%>% zqXVrupeF)xXXSw!dHiWAy0+ADP3ab zeii!L!N*$Two<3sllV~2#FmoNLcf)IZ+m_$oE@N^^+28TM5gu}dG8=!djdP2nl#8b zppzbE4LwKiC8$z2ZP&ahxzK^sx)l5Zx#%zzd;tO81FguZp9^<9bJsGmK;gA8Z<6+N zR`$}cBpoOCh-@g#nao@PF_Tx|+4EHgXr{jlc_{QWG7kC7cPiux{et}nA6WCqC}=W! z+0EpP95g}$@bFFMezC8ac>$G7-Qcw_$4XsehGgbfp*HL})?yC$N?nlgP%Y%G&=VOx z(~HPv>=uvBSM+YCx3D4PC}30YC16h``Aw|R)99wc8<6Q! z5IHO2PXHby{1kj?uoH=)Df9(v9ysdZ$cvlk;1lNwe8U-z9A|hzKBHUe`Q$CTI8eu| zbi5xf^`lZBWrhM(W@V(liTXy?0^b$zns^g@0@Nm=>(e0lIEcuGL|r5G1u^iAj;}x` zRRrD!;3|-D$g7YW&MW8_?0b0cI1~F`c+=pMa4z4)Q42@jg?j*PBJlKhAofUoBQw{N ze@8C}{q4Ay=%hq_*-J`oBS_4OK)#X9tYvJJ$_FUx8M_7K#5eHRiXc?#m^mP68hfBA zjh!;9gj!W#TLU$X%s6OfKYDb4Q|5m}7er)}@IDG_4n2_JBh-1`pcKYUpk|(!m3Pv~ zv{!l{@E&>kNcrEOG9$>QN|6tNx}zhBdEx0{d-@%oQsZ6{13qQ0F4#ZZ+r+IU(ij7cLjZi z-BA6begQuswH5ASgG~wCgGrw-V~HgQHRkNZIhj6D>?LAK$R*-PN@z_=1 zYmafJ0#CmdPRW*W~A^x4+NnW&;+vZAH=cFJqaMf zCy*Vply6n`=(zxm%3XqHz6( ta-2+I#RBzSN$D*TC%M+yIT-%LL7!fTsFG{(WRW zvJVn`h8AeUp3=L%_HSaJ{z)Li7uFi6O1*139fY?Vnm}ev9q$MTj{kU0>0jO;r^CVw zP-Rbfzd(df%1neW+*|d$g`T$v8bN~3(83*SfCl!t7Xd{06nNL5g?rcljqFFx<(@>4 z;4>(ZeW11PK>(3=@s`bBxK0=p^|x-_I-8%Lw-1kq-SD$FY-Z|T_K&G4J9B26)!$27 zPT9>{KWlg2wch6UZ?#j0w%Dm7ciX9_?zgq4zG+jJPT8U>m)PQKN4E0#RVJIF$=;U9 za|4q%7TSVsVvFt*JLj<2C9jB;y<**iVneKm8foI4`#S zsMuFu7JKMjbhj_H<#QuDe}2~1oZMi`_D$L7iKRAs;#^zx=0&#XPOwf+3X>^WYwI_T>7Bdjnj5i#7={+Z(DAEg&uuS?ByScoq1mDtylTp zAokoQv0vRH_Wswz<~EBxxKr%#+(LWwD`Lmy#CER}+rLrlY1X%om)hK>ksa8+!j9d0 zh0Wi(){gDD-p)MsW&7KSIlFjfpraZUS-#Y^ z%${#|uDQ(iZM@2M&MvgM@iKd2^9A%--!L?_hJX;R@l=ASKAveU2lK?^A6kh_yT+4g(-XW-6eL?4%ja8F^T^k z^0Hs-`j!7Z{`+pa&<=j4emn8Z)NfW{=fK7 z?!MesuU>6GTzlLuU-g`=KlHFIIk?2${JGd4?ht!%#R^-wa;5E=*>5-9@S4fN19tYl zv+eX#AJy>NOX;2E%k4WC9JSA_KVtVh{-`b9y~y7A$c;S_iV$44fdg!Ndfjx^Y4j$ r@avEK`+)xXU;A9a$vyidefEw!?c?vd`7!@#^wZWpsq;zxQ)K1e=Gc_! literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/crocodile/female/chest_front.vox b/assets/voxygen/voxel/npc/crocodile/female/chest_front.vox deleted file mode 100644 index c7fd5d2d8e158d79caade4fa1b36b4c337e2f41a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3704 zcma);f9Tz1701u>oafi)-s|$-``vGwyZ8EI-><)#yKd8|&9*V;++r@5Zf;~K?aQ)k z$k6en$ghb@&9%lfDyPK|5lv+qMSs|cA%cilP!J*#(ZBr>(SN7cGZBQ0y71;a=lOA- zbKd7X=W};_@s6d(L}bfNo3d5_PmQ- zb*Z0R>P8=X!N-0E-p8(QQr~9~Q&-!mr)~DOVlOwKfD96doC&d;+SqBwerjL|29 zhq>SezU_v=yHQizplRG7iyM{}wi`c|CiEqTu0*7UZghTF+M(}2Np9rY+HKgEof{<4 zv2z}1Pp}g`zLn7ToiNTI1m6$I_fro2lmIr9$3I70G4x{6ZVG|?gsy7chh9AO5qc?m z?m_LE$x<8K!#op%yT{ycL6z}gA5mnZ-qD_G8g7c=my43#^2&b19N*Ff@1aha;TCKh4 zhK{|Fd?lcaCBR?JHC!niCGw&0BXH$v?ilA59M$}Es0(F(i~U;tCeFnD)L)^#y-O2R|p(lqu#)Wv4u_NCNxfSdrsdX9p(F1G;r~MMCty&w^H)<)k`tE8y!K4m-k}qc14$p`j-@d{s~qdp+?2SGiK{2kKCXGf+2y{6uUj@hRhgjG_8NowGN> zRYSfSc#{ODvBvLvvBm?3p}vEPTEpBId7IiIW^xd*AMq{Lm@<26jce!!>?hB<_i#^M z@GW$BXCP5~nSK^Lc0i%G1h@&jamNQ)ijDGC587 zp6N#(KeB^+@|57%JKsy3PjHz6V`@m5E7V>hzfSA8^5=UQUy`f&gl}R{eDXl)L5_Gl zQ2LIehk1Ne;PBVe;}kghou~IGJtH6;y~opo6olFzsYRvt1bR#0t$4Wd@Tb&~tGU59 zp~gHp^u(DTo^>z7#9NIZw`J(tGRiF(d5|0QMh3YcLB_tve#Uli zNUdkN$8(?Jqq45NX^r$1{7UGFdQRw`agH)-s-$lvdQC&m@XSSWmGRF983cM$R_?{m zjE^2)vjfa~q|jGVhcg}GMQTR|sV&68*%}9Rq>K}BMED9w1qse_;9k)1wj=Qc<`kKT zF@jKP9LN^m(-z;@+F$9HDP#W}zwGC`tLTaEbV{5f{s5HkaBAyN87Fv;#1)VV60t>M zi!He0dmPAzGMC6lB+ev$5Ev^+o;l#!d}BZ${(#R47eVnK4iddVL8kvE>_x|2KtU4j z7IdH>ci7Wm4>DK2$xrBD5BMta$%91CjzIB6;n;I$tbU2d7M!x?$a$&Xikd@wDde@V zFY*6FfrER;|B%A}n!^8w!h0>8xozVYZW0`-ztyW(+sw?2eRxFd=AWIl(Zs*(9}^RH z=FAqWzn3?ivaOpxXLs*jV>1Uf+o?mF?9`FF?bOrv+p1IFw23PwZ2mP1ZNUvgn>>E4 z$%bgMuVwOl&*bbpJAaGV{QJZ%I4pMgt72uJ*m<*Jee`)RiS2#r8oU3Q8|;DS*4Xz? zf7aH|h;2J6_SIL!9(tFv+ZNf9>7iXTGi57JuC>McCv5oSBAYsKp)G&&Qk#F5*hSyP z_A#;Xp36BTo8B%&x`OZntegziU@rIa#E z`||%U{*!yIvK1><*bi47x2u*vZ)*-cYzt=>+M7QY`@=4=mzFKF$;nCEJ33&u-u$}B z>_MBmf3BT=`lB3vdl9v>WQl#};-hxsnj?14|?zyemwp(`Dt^XJoCx%r|gw~14oa5(EtDd diff --git a/assets/voxygen/voxel/npc/crocodile/male/chest_rear.vox b/assets/voxygen/voxel/npc/crocodile/female/tail_front.vox similarity index 88% rename from assets/voxygen/voxel/npc/crocodile/male/chest_rear.vox rename to assets/voxygen/voxel/npc/crocodile/female/tail_front.vox index d3ad81189f88b94a1ef62df28cd490ed5ae36f1f..5afafad6fa01e2f2e532c7f58b7c9edb2efb1eca 100644 GIT binary patch delta 49 zcmZ1@ut7jD%s)b58Uq7^ucN0QkYbRTC@9bQh8e_UVEDDs@;NgL69c2kW(5`=761|z B3M&8r delta 44 wcmdlWutq>I%s)b58Uq7^ucN0QkYbRSC@9bQf*HhQVEDPw@;UQn6&4;A0OHCC>i_@% diff --git a/assets/voxygen/voxel/npc/crocodile/female/tail.vox b/assets/voxygen/voxel/npc/crocodile/female/tail_rear.vox similarity index 100% rename from assets/voxygen/voxel/npc/crocodile/female/tail.vox rename to assets/voxygen/voxel/npc/crocodile/female/tail_rear.vox diff --git a/assets/voxygen/voxel/npc/crocodile/male/chest.vox b/assets/voxygen/voxel/npc/crocodile/male/chest.vox new file mode 100644 index 0000000000000000000000000000000000000000..43d12dd52b01791a0c51099bec3b58d70b6e15c1 GIT binary patch literal 4168 zcma);f9Tz1701tWo}Zul%iVjw?x#(^_v?@C>#ydn+jLqpH|Cr(=5p!Ok)gCN%d#Ou z$Cn~!;u3SMF^$S;F+@aD*+$VHHbO)Y5eo`JL?ZgPKO*|?^m?ucLPlM9bI#{^&N~>^2 zP4?nYTcFKe%T43Mj0d?%=%>C%#$-o_J%m4I(x}wTmyVkx{{R z#OGYUTQXCC!v}|~Z@ZaNdEzV`83kgHmLr#On7cZYYrf!{cIY=v82HAMPv2M8wX5V> zM`1!eF@c^=yUD&ANy`r!&TVS$SuY)Iw{?UtuWMH7-!)5)*fq37nSd^E7b55z}OnOPjjyx9p zNg(5U>Q$fMyJ65Yeh|rf>Y_X0!?1KbJrV{PUn2hJwhnVo$FYM<%hL~jkXX~6C#Ez` z4ZTgiVy!Rv${pm1rD^FnQ149MJaus$9cSuUpnjs`2fl+o$X)#C5eLZFjNLd6Ad{DZ ztwjA}wbPF1#&Mzck-fxs;yZDs?`Yps_d?vUhdgn(#*G3rb^Rz%V_)+PZCYU*-~%>% zqXVrupeF)xXXSw!dHiWAy0+ADP3ab zeii!L!N*$Two<3sllV~2#FmoNLcf)IZ+m_$oE@N^^+28TM5gu}dG8=!djdP2nl#8b zppzbE4LwKiC8$z2ZP&ahxzK^sx)l5Zx#%zzd;tO81FguZp9^<9bJsGmK;gA8Z<6+N zR`$}cBpoOCh-@g#nao@PF_Tx|+4EHgXr{jlc_{QWG7kC7cPiux{et}nA6WCqC}=W! z+0EpP95g}$@bFFMezC8ac>$G7-Qcw_$4XsehGgbfp*HL})?yC$N?nlgP%Y%G&=VOx z(~HPv>=uvBSM+YCx3D4PC}30YC16h``Aw|R)99wc8<6Q! z5IHO2PXHby{1kj?uoH=)Df9(v9ysdZ$cvlk;1lNwe8U-z9A|hzKBHUe`Q$CTI8eu| zbi5xf^`lZBWrhM(W@V(liTXy?0^b$zns^g@0@Nm=>(e0lIEcuGL|r5G1u^iAj;}x` zRRrD!;3|-D$g7YW&MW8_?0b0cI1~F`c+=pMa4z4)Q42@jg?j*PBJlKhAofUoBQw{N ze@8C}{q4Ay=%hq_*-J`oBS_4OK)#X9tYvJJ$_FUx8M_7K#5eHRiXc?#m^mP68hfBA zjh!;9gj!W#TLU$X%s6OfKYDb4Q|5m}7er)}@IDG_4n2_JBh-1`pcKYUpk|(!m3Pv~ zv{!l{@E&>kNcrEOG9$>QN|6tNx}zhBdEx0{d-@%oQsZ6{13qQ0F4#ZZ+r+IU(ij7cLjZi z-BA6begQuswH5ASgG~wCgGrw-V~HgQHRkNZIhj6D>?LAK$R*-PN@z_=1 zYmafJ0#CmdPRW*W~A^x4+NnW&;+vZAH=cFJqaMf zCy*Vply6n`=(zxm%3XqHz6( ta-2+I#RBzSN$D*TC%M+yIT-%LL7!fTsFG{(WRW zvJVn`h8AeUp3=L%_HSaJ{z)Li7uFi6O1*139fY?Vnm}ev9q$MTj{kU0>0jO;r^CVw zP-Rbfzd(df%1neW+*|d$g`T$v8bN~3(83*SfCl!t7Xd{06nNL5g?rcljqFFx<(@>4 z;4>(ZeW11PK>(3=@s`bBxK0=p^|x-_I-8%Lw-1kq-SD$FY-Z|T_K&G4J9B26)!$27 zPT9>{KWlg2wch6UZ?#j0w%Dm7ciX9_?zgq4zG+jJPT8U>m)PQKN4E0#RVJIF$=;U9 za|4q%7TSVsVvFt*JLj<2C9jB;y<**iVneKm8foI4`#S zsMuFu7JKMjbhj_H<#QuDe}2~1oZMi`_D$L7iKRAs;#^zx=0&#XPOwf+3X>^WYwI_T>7Bdjnj5i#7={+Z(DAEg&uuS?ByScoq1mDtylTp zAokoQv0vRH_Wswz<~EBxxKr%#+(LWwD`Lmy#CER}+rLrlY1X%om)hK>ksa8+!j9d0 zh0Wi(){gDD-p)MsW&7KSIlFjfpraZUS-#Y^ z%${#|uDQ(iZM@2M&MvgM@iKd2^9A%--!L?_hJX;R@l=ASKAveU2lK?^A6kh_yT+4g(-XW-6eL?4%ja8F^T^k z^0Hs-`j!7Z{`+pa&<=j4emn8Z)NfW{=fK7 z?!MesuU>6GTzlLuU-g`=KlHFIIk?2${JGd4?ht!%#R^-wa;5E=*>5-9@S4fN19tYl zv+eX#AJy>NOX;2E%k4WC9JSA_KVtVh{-`b9y~y7A$c;S_iV$44fdg!Ndfjx^Y4j$ r@avEK`+)xXU;A9a$vyidefEw!?c?vd`7!@#^wZWpsq;zxQ)K1e=Gc_! literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/crocodile/male/chest_front.vox b/assets/voxygen/voxel/npc/crocodile/male/chest_front.vox deleted file mode 100644 index c7fd5d2d8e158d79caade4fa1b36b4c337e2f41a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3704 zcma);f9Tz1701u>oafi)-s|$-``vGwyZ8EI-><)#yKd8|&9*V;++r@5Zf;~K?aQ)k z$k6en$ghb@&9%lfDyPK|5lv+qMSs|cA%cilP!J*#(ZBr>(SN7cGZBQ0y71;a=lOA- zbKd7X=W};_@s6d(L}bfNo3d5_PmQ- zb*Z0R>P8=X!N-0E-p8(QQr~9~Q&-!mr)~DOVlOwKfD96doC&d;+SqBwerjL|29 zhq>SezU_v=yHQizplRG7iyM{}wi`c|CiEqTu0*7UZghTF+M(}2Np9rY+HKgEof{<4 zv2z}1Pp}g`zLn7ToiNTI1m6$I_fro2lmIr9$3I70G4x{6ZVG|?gsy7chh9AO5qc?m z?m_LE$x<8K!#op%yT{ycL6z}gA5mnZ-qD_G8g7c=my43#^2&b19N*Ff@1aha;TCKh4 zhK{|Fd?lcaCBR?JHC!niCGw&0BXH$v?ilA59M$}Es0(F(i~U;tCeFnD)L)^#y-O2R|p(lqu#)Wv4u_NCNxfSdrsdX9p(F1G;r~MMCty&w^H)<)k`tE8y!K4m-k}qc14$p`j-@d{s~qdp+?2SGiK{2kKCXGf+2y{6uUj@hRhgjG_8NowGN> zRYSfSc#{ODvBvLvvBm?3p}vEPTEpBId7IiIW^xd*AMq{Lm@<26jce!!>?hB<_i#^M z@GW$BXCP5~nSK^Lc0i%G1h@&jamNQ)ijDGC587 zp6N#(KeB^+@|57%JKsy3PjHz6V`@m5E7V>hzfSA8^5=UQUy`f&gl}R{eDXl)L5_Gl zQ2LIehk1Ne;PBVe;}kghou~IGJtH6;y~opo6olFzsYRvt1bR#0t$4Wd@Tb&~tGU59 zp~gHp^u(DTo^>z7#9NIZw`J(tGRiF(d5|0QMh3YcLB_tve#Uli zNUdkN$8(?Jqq45NX^r$1{7UGFdQRw`agH)-s-$lvdQC&m@XSSWmGRF983cM$R_?{m zjE^2)vjfa~q|jGVhcg}GMQTR|sV&68*%}9Rq>K}BMED9w1qse_;9k)1wj=Qc<`kKT zF@jKP9LN^m(-z;@+F$9HDP#W}zwGC`tLTaEbV{5f{s5HkaBAyN87Fv;#1)VV60t>M zi!He0dmPAzGMC6lB+ev$5Ev^+o;l#!d}BZ${(#R47eVnK4iddVL8kvE>_x|2KtU4j z7IdH>ci7Wm4>DK2$xrBD5BMta$%91CjzIB6;n;I$tbU2d7M!x?$a$&Xikd@wDde@V zFY*6FfrER;|B%A}n!^8w!h0>8xozVYZW0`-ztyW(+sw?2eRxFd=AWIl(Zs*(9}^RH z=FAqWzn3?ivaOpxXLs*jV>1Uf+o?mF?9`FF?bOrv+p1IFw23PwZ2mP1ZNUvgn>>E4 z$%bgMuVwOl&*bbpJAaGV{QJZ%I4pMgt72uJ*m<*Jee`)RiS2#r8oU3Q8|;DS*4Xz? zf7aH|h;2J6_SIL!9(tFv+ZNf9>7iXTGi57JuC>McCv5oSBAYsKp)G&&Qk#F5*hSyP z_A#;Xp36BTo8B%&x`OZntegziU@rIa#E z`||%U{*!yIvK1><*bi47x2u*vZ)*-cYzt=>+M7QY`@=4=mzFKF$;nCEJ33&u-u$}B z>_MBmf3BT=`lB3vdl9v>WQl#};-hxsnj?14|?zyemwp(`Dt^XJoCx%r|gw~14oa5(EtDd diff --git a/assets/voxygen/voxel/npc/crocodile/female/chest_rear.vox b/assets/voxygen/voxel/npc/crocodile/male/tail_front.vox similarity index 88% rename from assets/voxygen/voxel/npc/crocodile/female/chest_rear.vox rename to assets/voxygen/voxel/npc/crocodile/male/tail_front.vox index d3ad81189f88b94a1ef62df28cd490ed5ae36f1f..5afafad6fa01e2f2e532c7f58b7c9edb2efb1eca 100644 GIT binary patch delta 49 zcmZ1@ut7jD%s)b58Uq7^ucN0QkYbRTC@9bQh8e_UVEDDs@;NgL69c2kW(5`=761|z B3M&8r delta 44 wcmdlWutq>I%s)b58Uq7^ucN0QkYbRSC@9bQf*HhQVEDPw@;UQn6&4;A0OHCC>i_@% diff --git a/assets/voxygen/voxel/npc/crocodile/male/tail.vox b/assets/voxygen/voxel/npc/crocodile/male/tail_rear.vox similarity index 100% rename from assets/voxygen/voxel/npc/crocodile/male/tail.vox rename to assets/voxygen/voxel/npc/crocodile/male/tail_rear.vox diff --git a/assets/voxygen/voxel/npc/monitor/female/chest.vox b/assets/voxygen/voxel/npc/monitor/female/chest.vox new file mode 100644 index 0000000000000000000000000000000000000000..7b0392fadea9a215aa5c889bcf9b875bd97d8fe7 GIT binary patch literal 3144 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/monitor/female/foot_fl.vox b/assets/voxygen/voxel/npc/monitor/female/foot_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..9474880dbfc9c20a2ec0079748e2badabb46002f GIT binary patch literal 1292 zcmaize@xVM7{{OQj{_Eo6vy%72(Bb5HUE3{Ih@8Ct!I1h`T2RC@B8!p zJe{xY$(<6BmO5XnQu4qQY4`aXpNu(55)|SUYzlk!`hDLk9TSg&P0UD~7|}S*h?trd zHFYgw)AWdLXpwjoH*|>_tG+~aWyh;J!;pw>6H5#UsRm&qPQsdkP1h|`(=9{OEW^-4 zx~Xys@nTx>ni)2YSX>L4DrcCQrJGvV)b+5TD__?vO&7})J*?|mNHbJVQ$mKCW7CYV zsTr0{S6acQnIW4PR-BmOIL)+nHN8?NigQe=s;USEgWR7Gwx3@n&;Ecv?RL&D2{F0q zTcEXhEBkwD2o5x}FzRDrVm}Mh$EaL5O0w5M#=cx~j~7#PVH?tDL;9XTEcECk` z&`rg>7iYg6*H|X*nH)Sfo+GVW$UmWaPYJcx1=+3U4<{g#Nl3`fXo-{At*P97(Fr@A zWm1Gig&zX}epPyMP?-BzSeg}XTFUndml}nyb_pwogg}!p*eQ$$9Gu)IOa+AADq)~O zIIH4q<(UK;T@1GsGIg+&U`HiWhwE87^#;Gq1SrmPP+OWq^UH-C?5w13hcMD3TzE&g zenxP*N6CABkjYa%=sDN);Gd0KM2Et zLe7qqv3#|jKYnhf|8z2Am+e^53|7d&ukK@&{{eL`144b#fAc@GbJJt~UktXa^3P7+ zh})HlJ12>nq9i)1Hqhbuhkr$OCO&sQ-4$EtZ`eks+d-h*$yieXG5%#`W%ze{={xi) zHKXs5F_OWJ&xE^O!j-~8QqnWY$}1o(rvMolCbd76#p#Ft@OY+rJK5R1TQJE>H4_{- zeUkLvG;UujV9}q!L~btso*%2*xjn?*_FMEHhN0Vz7h}Y}ozFHMYP~b0&JHoxMAAa9G^}hZuuU2q%&(`XTUEMtLW64MMdV0Os+B0kI Hb!z2rAG17; literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/monitor/female/foot_fr.vox b/assets/voxygen/voxel/npc/monitor/female/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..10dfe84b418a67ece41c92ef34baad686920baa1 GIT binary patch literal 1292 zcmaize@xVM7{{OQk2_c-QXI#RBcKBe4igUu5U7rT@I)v?NRJCpUAgtug0X>(Bb5HUE3{Ih@8Ct!I1h{XC!N`Fx)5 z`}6%g9k1=lnG})cT7Qcod0>jP`2!74#sX#W3ULZHg*|%%{_hpX%&TA%bJ;FN)TUt9 zjAh#@^kq}iqNc7b>xQ;$Xu4vF#;F=Zm#D4~r|JwtmUWw0Vkp=oY}m!p>=Lo*dc@T9 zu%T%Y!_Y0=6w5Fr94Dp~rv+JQ4hQEKg_vFS z&(qShmHpk-g!-G9AMrCkzMuK2V^qu^CCTR`eP0ea$BQVuunlRjA-zu^m!3wJoFp|1 zsYis&F=6wULVT~VVOU63vGa;h)|^1q>l+E2Nan+ZXQ&SetrNmqv%+9h?QP85N1CX7H5Q;VHNv?OAW$TyM&cPLa_s;}-Sn_>yNFL!&$(&g);Gd0KL|s? z0?rPXvUIhMKYnhb?{pHQmmP$o>8y}VK;6fx{sZb>`h~i}|JHwG=cdQ{zZhs<)t{BN z5sy0sPj({Jg^9FRZlK-!kN)zk4E&xvy2`iESHF!8kCR}Ti_yk>V){!eBS z`Xp&RsocJn&q5%b@thp~-9J{hbGyafwp;WahQX;BhCiRB55Mo8dSCySS0lJOXKVRlXBUs+Sn`p-9@s!|53_9cvEQnaxf) z$w)>Fb>-9=W6sphdw|vYVXQId<~(QST3chzwbsx2(OUnm?)NZ_HCku8cHQ@VUC(_# z_j}&A>(xDlQ$*C(*xJrS{gSA&HPHNolkhKP1@`O>v{vhhGJVM8GWD1edfcT^%wm?z z($Hfr&4@|XTpU{_>xLFnh8CB)qjAhNr4jpCPcYYXEpD;LGMs+gmsxTj%c<)eJ3W|P zx)zfOP|T$}aJ&ZB*~_eSgZ)O_ZSWl!%HTN(jpBlHms8V;Jrq}hdo!fqdzq{;D@%`C z49U4=axclTbTkIDGPStkn&q%youSw#Syz(pAv}}!x~(*wb%U9G(zJ!HMJyq0w=kl@G@@>&#<81YOG;ZxGa?vD$cRe{Td}UB zh$_R3xO6jW8Jz28#L`Wkq1lq_mS)M(KIeFZ;5mHW6t*zUsEc87>^9kJ@)?HY z+~OH7_DKgk$Hg@zOxt28$0N+BvW$pj@%;?e7;a6AxOr#6y9rH;?reFvk<8`yr>?FJ zp->19CkR_FETSm=FZ_|7jtdI}=Xb4j4(;1FVt;QvLdUjaZnPD16Za ziJX0fC_G+{vWuHQ%>p#w23>v%w3vz1HbT~6Lf$xG-IoM4Kv)wdq;Z~kl~CQ5gw3y| zAaEiLAIv|ErVycHlJMqr!f>3=cH|;I=tXhJhniVGJcH@*j^)BPU4V*P&myabP<(=W zPZ1h!5@;9CA5oymWRRVX(G4EVY|Oy@7d*hWXD~^GdBzXHAbw$<93ou*n6NNIxEOdtzyK6CZ zXbTojy^dd}gD5Y`L_=i(w!c)016{Qk*hUEV5-z??xOs-)@r|PBxgo5p2%@*E3GFSL zA8WIH8_?WPflnIpaHfWzM|~>B-ygv6kpQO8k6`}FDNMZOMX1|@q@*Ndr#*=co>Wwn zc~P@|EjCw{Vf?*3T)*VSkGFkTx?7Gau%+z3_dmR2?c@Ew7-~!GpP!uqpEm=(f@IW}C1ZEp z8tkt4XaAb~T(tU%(NnV?gH4;z<;z5{+Jmu{5;*%;RaGId%a4JBub_VPUF3vwaO*R| z{cgh5(o&>l=OVAD1X%?opzsJX1~V{!cKJU%p3Cn}em>qQnZ%3r6X-vE64`xOxO<}n z^MM>p6c*y&^Bv!gtv2>{-ofA@VEF6|!k^FLBl|m?|Mni9KRSx!8^0l`u^XN@Lh$?j zc*vg$DF*(8agXre>*f1B;P>nQbp8qx-`PsO)ZK$exg$P`SL4-cE6=QqSMk!{H%f>l literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/monitor/female/head_upper.vox b/assets/voxygen/voxel/npc/monitor/female/head_upper.vox new file mode 100644 index 0000000000000000000000000000000000000000..90948f46a84e3c43848696610019f73c95025e5b GIT binary patch literal 1896 zcmah|YiN~q9RB@p=bUXhSG(`5-Dlg;)H$2et(>_vr_P#}rJI_DqK9G13Yp_z*h*Yt zjy0xIq83BM)XsahQS`wi!~}7}B!Uo;h(6Ybh`v2N?@W_0dg0-Bdw$pVecNANUo1ITdv>G(Nbo7ugJHA(K4wC3D`G{qE0wp7wUuwn8jM@ zV(m*&liKRViZIp|8($h-Y@DHOimg!-nzkY=W8!SkFh?mhVF^cDGf$JR$roiNtYwa7 z4yDp+!myX6)K*OzLTgGNiaKG*)rL0VjGYidv9I%M`Mnu8gbUe(Q`$44JtaD>r(hCF zOu`u#SK4}7Y(i-l*UEX8Jfmz}DIFJW<3`(r6%#jv(#F%|8|4zB4f)iWtF`kS{g%@D ze5DEBZ#-w1qfFcy_M|l0B@Crvu4o;1+Mk1bU(&Y9c!s)=FNS@L_Js3`V-M#N&atL- z2^(;p1dJyk8y82eb)I65_VX-zS>st}J>|paPsO<_brodY0QWUE?gES%%N!fGN!-Em zUcOF_WgW*lhIevSCnQMQQCb~0A=XK z*Yqi0r%wggpL=TZwJ(#H%N{zJyCt)B67&6Ck|~q9yK`|vXx?1;;H_3Szqmx~)bAp- zwY7-FVz@UbSa$L%N;Ce%?-?05c}3tq7h1-!YQ)hwj73bJ9n)X3+A_` zV9_hn(QzOh?~gx?#+aaONbvea!M;i6w&kH9T7t4z1T~`#2zO_o>ZKM&ES67;rJV0imH z#MUjq@Xn>Ua_Ck3G7`ni(k#@^E5wS$71-Xs0A0%keVYWQ-V$6sDhNmVQTl8TW>rP8 zsl5@anioBcjc%TUrur&;RG*KdHM~b%8V26$!oJ-d7&+04@pFeT_(ln0onfS;q#!5# zNz4hSp{lY3HM3`6(Y#6wyqk}Ur%Uj|^$70VoQaRwb96*-<14{W-wAr76*%5kjjI=y z;hzP>2rRV`~3xyvts}(#rqdf7i+x5BLA9r*&%of}H7ylw=}O zn2Nf}RIIC=hILi{>|axmhn7egHrC8WcjH2|N3sx|AI6d9a`^jKS68EBZ3DV?yo9>` zcaYnci))_H8^pH5 z2a&Tm8#gbNW4t35gGEL7cYmL^a+!w>Yi^)>C$R6>S@eB6iVwVRaN_G*cy3QWQZN0A zlqH=AzZOG7Lj&&dSCJ5bKVWVN?tXcHzPtRs{x8nIaOyvMRG#kKhzGVGe4sy0KF;@O K&ZGKcxbhd23!iKN literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/monitor/female/jaw.vox b/assets/voxygen/voxel/npc/monitor/female/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..f7ba1966f98a47dcba87a76e6655a5d4fc01cfb4 GIT binary patch literal 1280 zcmaize@NVA9LGQ3``!)9<}A-s?@aB~rRUQ5BXw$drsi%=%Q1e#UkSG!1SAXxvD<>*+aJfYZ>UAu#UuT`y)uNXF2vRjA|wcCs( zQ`NK?)izbb!qA-J(450CmPFO2c~RT6Nz^nXYS@gZP1UBp-HIEQZ`G>WjcU7HW0sn- zWGJRX=PKqpT}v@m@*1-%rp6V!Lu(xR9g3m0Vd`Ads5TY5+B+IvsS)kd8s+8Xgu`JT zj0#)NFOuo}i$9!B&MyeoxEh$Fxp6alyDACyH8M98U~Y6Ta}!4>n>$Rr-$lxv3^I=9 zk$YhaQtv=|oCrQ-Ds1dk=~;rz4I zg@u+e;jL+5AgZ-3Zqhb(rMHE^s}ijL|1zq%?%ZgbF*Q^uJHfrBA5M z{qOz{ZQuB~|IhlHR{Bp%-hj`Wh%Y^k%G@~G%Gc9Y_)q_(X>J0(EILc`>8;yByU#_a z#KUkyHdg<|#l-}7`sq3FDwRX;krGMa<|o3v4&h2p4hhL_QZutjO3y|jgCzDQGC%R~ zA0Bn<-APO1-Rv=5t{i3G$>St;3w_ygtE|ceYwD Xc69Q{w~~+SwREl6>YCN|8gu1u$xAsR literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/monitor/female/tail_front.vox b/assets/voxygen/voxel/npc/monitor/female/tail_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..ae92ccd1fb423ce3f5c443db6c8250b40d844300 GIT binary patch literal 1592 zcmah|e@K;Q6h7bked^V#=H~U+y-wX#n_gSxkEy9!*Qv9c>1L*@>yOna>LRU>Au5+f zbBkQK#EBMLR2w4EvRzTx*dI-XL=cxti!m4yF~-GJ4(<0JZ?`xxxf>@CbpT8+lJACL$5@8Yh5BPnL3?BFd2^D9C4NFA~WkgKN zj3~nh8!<-M6cx7ORK$#-wW+WfuR>8CPSD%HfrX!_Qka1j)Jt5fgmB7|7NE#KS(oerG zsA#pL=8aA8pH9U`%g>=PC}^J&yge@%j0L9#E1PDKH_+9*&8R6W#>5BNn7`u2Pj@_63zy(C&Rm=o-2GPY%MXH)KoKsCmSgos1OE8A z0|Vz$Fn-N}P$Ua$$c3N#i0VJgy$lK(ivL^x@jaWL>i=@6HL5=+a}zx7GbTQShM16`hU1S(t@Z!Uz^UtV4g|2{AJkG_W5vGfG7!F5 zh-H5kCiC*}@A>-Po?Qz#&~X<7$AICPIgEa>h>sV($HnjN;iZ#fNWS?y?DgGny%mJl z>%~LC(L_-2j4vA_kiEm|K<4$M*p+*_DXjTp7=WX28g|?Pjwx zCpnVQ4Rq<$8e`7HWWZ|uVXQId<`^^A+8T4Nwf?L>TI;`8&ll5JqxEd>@B8z9KcDCO z`97cT=hOE39`~?_G**Y3lw@+1NJ}_U_p~WARw%50^Patt@JZ9uaGQ^HGACXsA>RB|WY+|itUQDPjroTqLMQHsR#cHiJVbSpltyjoOWR+TRsUMG`il_^28qYxJRB0XUz{b+_9wsFY+RfX%(xz&qN!mE`#UR%_cSooA7*N3 zKT{*eD4#k?TF8!LpBwk_A_^~UMe0@~-RqDm&myyS(i(-#BSQ9|u;~jSrCV5^5YkoK zuL)(1Rw~}uK;%R^A5K3?FtVkRSIEm<-{H+VBiG@r~xv`d@jOWprWM~C20tq&dxi0jg_$wo z&P~-J;YywG0RO0S;6J&C-22xHu()Y+iGd5uXvK1 z>?)?N%FicN*_;jNepIG0_(3;)M7qG(+!rh_}12TCHTIKSQxA4S%7Bz~+rq zloT>}GMn+s9)7svV_~j{3%cgysBrgd;ivC}m{GvFL@Be^YxwQQ7NTd;7`STV=DdRi za*61EEcSmu_oYXuDg5vLkL=v|r2o%*8yEY}$=ZO=lYuWcmCC|YT7&Cp_5ag5)hO@VHaYPEHQ*d6T?SImCf8r^xEcWbTHS>4<|Nx0`>jZ_eAfeS*C$ zcZnW`zL7B!pH1@7#J8OP<{mE{>nHWbuUM>QX@_{ zC_3o|C^pl03wS7qFNou;707{`&&Z*Ie|f1Y(>pYXdSF7 zI(pC=c4Q9^O__|4#~$iBA^3&{Ign$O+M!s3&M! z*>O$<`U*1K!L{j_n`4j2Eo4aRT1v~8(hO~By0&Y%PHe@tujxe5bfvFq85-J2=!<6P zNX@sU>N~Na?V{z;$4+X-wzjCdsS^Rxrj|-fY-w9+p%bgI3@z=1YTjKarRq8!e9_96qT$-w$g!c+ zoTo`0ja&n>fh+ZR=HhDj)m=L_$esO(4^!t{54AR!13XokF|}wF4CF{oX}HqmJYaa{ zA;dcLfu21*_&W6m`pKB|5^|5k`#b|?8EVu*{hk^c?N;F85N; zb+YT68#&TLVuq2NiQImwZ|oU|nj(2(P0ND)M;EA@`Os5=J!NX-y8y?YG8T2GrY{qB zE7g5j)Y(nLw~HorYKXOb=eS4I>flPeZ+K?x+YSsR#v?~!B66tvPCyR$I__P}*j4SG7 zRhUnqe8<>pV0KX896fsW5`Aa~&rS<=S8?s4!d^W0791_m6R#P+V29{Z5&52gRWR=g zGlMjEaxk-ky99TYP!`nU;Srl7CKQew+>wHO=skFXf2gqgg1ZV%!P%2PR*0dNRADX! zbE>ePBI7VWWDhy85||#Hf)S>Cx%*S`ITy2bl36t%66 zx{-@W-`O5`SBd>a>W>+Z9LPQ~C+yz2c2M4!=D3UpN0w|ucFC0rR>V&u`-MCF6BO}R z>@nA(ykYz!_4>qqsVUHd#}<0AdzC)hOct;<}Q zQ^Ys-i7hJF^x@HK?k&$fF>~d9Fn0yRMe-`&39tk6NSq!13A{)yB|cI|)SQnyMx0|m zj(HW-9l!`ti6uhXn%sx6TcK6HIY+=v8>>oWn z_VQJ+{CjiwvhCb{r#*aNgN+^8ZkJCC+vU>_+vRgl+1krb+Vr7boAb~DTk!NUTl&gf zCR^3yP|f7EPn%rpwdp&=W<4P`_mtS}zZ9z+5^Ii&&EVYohS=&IbzA@SX*TlA4Ey1g z&)AkRv0Z1xzI9RT*d(#L`fT3lfGrvuv^AH8tp9M24V>(=!SnNN#XFy~S^LEnJp=Yx zv5jww$^GO%UNJe-GAVoP#PWW-aOX_>;EVlc_k7mQh}aeA52K^@7x3_|GF*c(fh*o@hIHh1A- zn>By2$@p=bd3dH>Id@}+Pxo-pQzxwT*59nYX`l6fbIgW@hU_Dr zic}!`r-k>$KK%8K`aa}-{XaXeaO$1i%wOHN-#$KPJwHCr^Lf7S z=lgj&U)_^CDIzU({#K>rt|`*)4>UeuIZ7T=u>FladjtN@t)LQ*f-YKI7m1mo#WYP~ z31Y^@ka&V-#1q7b*~E+)%C{-o6eDia%($jY+)#C*NnF=771Nb3Dp!vg3Z?~Jj~b># z4P7FdDRa6e5mT3_t}EM+IaAl7h85GS9Lv_CHqDqbG(Bo++MKznjYxuKMs_v5TqlZ? zB~?{bghC|npqg}voOA&g{fmyE*vGr z=OA-mF1g2x@Lbr2G}@59$B|1i?Le`kD`AZ?OPuLI^QkCzxB9ylzQT^IR z0w+@WVDV`hLPFbw@aC*A6j!xvPO^h;@^$i&GE&;c=&WJK5R1Q!v4cHRBvOeUgmcbYj;ESPWz`o}0_R`&)TCw@2CAevAIY zFf=to__KLFjDE+tZ*TMbu@RE5{Yp|@7p^x#_J-oHvMv` zMa7Ui?Le`kD`AZ?OPuLI=QkCzxB9ylzQT^IR z0w+@WVDV`hfdG`9Uug^FCbtcHE;*ywf?9+<2DsZXy4KI(t&6 zy)MXZHGen}nMg(=c1DU_%xq2L&I>Ns@eC6pEGqn9S^TW@#Go+yk+3u)+zcze4wsI#{qnqKjLM9KE66~mC@^C#%r(Wlm zX^Wyf2eqX+G{02H!Olwhb_k&!;lkU(^)rIYJ3`)bgKRFb=;>^rwW<11Zoape#@Z4- zuFc|1h1y3=3S;m0F?2M*^toXcFP~!kEjPg~7fDG;WTZYxu`7iVkDH1uo2V}JF!o*+ zvlrdmz3F8oTEr)6=KQp9>l@*x?}cHjkh7sOmao?H+mG$^pH5-)vYl`&lNE9ZsC}&R zKcMz9Ak=&QoBxrWn;!B1Vz6bEe|E-3yzVr-Imy&`lIf`0Ku5_x{427Z_`UgbS8Sob zVH=%Z2UfX@(WV08{L9M92<-OJcjy&rM&2bel*x@xg*#osmBK<&Gn{1Q6_B1&fP{ug z>rZ2G>cKxe?o@XtJDYb3CU~)CoCBv%lF^$^^jZOnflS78bNToDc-_wJ5%#v@q zP0bMcY@QDz-*N8S+dO}4gyd_#l2q4)>y02jpO5?MsYs#%e_-4e?tT5>`|hdx^?!Nw e1XthLT79vrn}>cp`OscZuNPa}v({dxR{jEa={G$9 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/monitor/male/foot_fl.vox b/assets/voxygen/voxel/npc/monitor/male/foot_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..9474880dbfc9c20a2ec0079748e2badabb46002f GIT binary patch literal 1292 zcmaize@xVM7{{OQj{_Eo6vy%72(Bb5HUE3{Ih@8Ct!I1h`T2RC@B8!p zJe{xY$(<6BmO5XnQu4qQY4`aXpNu(55)|SUYzlk!`hDLk9TSg&P0UD~7|}S*h?trd zHFYgw)AWdLXpwjoH*|>_tG+~aWyh;J!;pw>6H5#UsRm&qPQsdkP1h|`(=9{OEW^-4 zx~Xys@nTx>ni)2YSX>L4DrcCQrJGvV)b+5TD__?vO&7})J*?|mNHbJVQ$mKCW7CYV zsTr0{S6acQnIW4PR-BmOIL)+nHN8?NigQe=s;USEgWR7Gwx3@n&;Ecv?RL&D2{F0q zTcEXhEBkwD2o5x}FzRDrVm}Mh$EaL5O0w5M#=cx~j~7#PVH?tDL;9XTEcECk` z&`rg>7iYg6*H|X*nH)Sfo+GVW$UmWaPYJcx1=+3U4<{g#Nl3`fXo-{At*P97(Fr@A zWm1Gig&zX}epPyMP?-BzSeg}XTFUndml}nyb_pwogg}!p*eQ$$9Gu)IOa+AADq)~O zIIH4q<(UK;T@1GsGIg+&U`HiWhwE87^#;Gq1SrmPP+OWq^UH-C?5w13hcMD3TzE&g zenxP*N6CABkjYa%=sDN);Gd0KM2Et zLe7qqv3#|jKYnhf|8z2Am+e^53|7d&ukK@&{{eL`144b#fAc@GbJJt~UktXa^3P7+ zh})HlJ12>nq9i)1Hqhbuhkr$OCO&sQ-4$EtZ`eks+d-h*$yieXG5%#`W%ze{={xi) zHKXs5F_OWJ&xE^O!j-~8QqnWY$}1o(rvMolCbd76#p#Ft@OY+rJK5R1TQJE>H4_{- zeUkLvG;UujV9}q!L~btso*%2*xjn?*_FMEHhN0Vz7h}Y}ozFHMYP~b0&JHoxMAAa9G^}hZuuU2q%&(`XTUEMtLW64MMdV0Os+B0kI Hb!z2rAG17; literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/monitor/male/foot_fr.vox b/assets/voxygen/voxel/npc/monitor/male/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..10dfe84b418a67ece41c92ef34baad686920baa1 GIT binary patch literal 1292 zcmaize@xVM7{{OQk2_c-QXI#RBcKBe4igUu5U7rT@I)v?NRJCpUAgtug0X>(Bb5HUE3{Ih@8Ct!I1h{XC!N`Fx)5 z`}6%g9k1=lnG})cT7Qcod0>jP`2!74#sX#W3ULZHg*|%%{_hpX%&TA%bJ;FN)TUt9 zjAh#@^kq}iqNc7b>xQ;$Xu4vF#;F=Zm#D4~r|JwtmUWw0Vkp=oY}m!p>=Lo*dc@T9 zu%T%Y!_Y0=6w5Fr94Dp~rv+JQ4hQEKg_vFS z&(qShmHpk-g!-G9AMrCkzMuK2V^qu^CCTR`eP0ea$BQVuunlRjA-zu^m!3wJoFp|1 zsYis&F=6wULVT~VVOU63vGa;h)|^1q>l+E2Nan+ZXQ&SetrNmqv%+9h?QP85N1CX7H5Q;VHNv?OAW$TyM&cPLa_s;}-Sn_>yNFL!&$(&g);Gd0KL|s? z0?rPXvUIhMKYnhb?{pHQmmP$o>8y}VK;6fx{sZb>`h~i}|JHwG=cdQ{zZhs<)t{BN z5sy0sPj({Jg^9FRZlK-!kN)zk4E&xvy2`iESHF!8kCR}Ti_yk>V){!eBS z`Xp&RsocJn&q5%b@thp~-9J{hbGyafwp;WahQX;BhCiRB55Mo8dSCySS0lJOXKVRlXBUs+Sn`p-9@s!|53_9cvEQnaxf) z$w)>Fb>-9=W6sphdw|vYVXQId<~(QST3chzwbsx2(OUnm?)NZ_HCku8cHQ@VUC(_# z_j}&A>(xDlQ$*C(*xJrS{gSA&HPHNolkhKP1@`O>v{vhhGJVM8GWD1edfcT^%wm?z z($Hfr&4@|XTpU{_>xLFnh8CB)qjAhNr4jpCPcYYXEpD;LGMs+gmsxTj%c<)eJ3W|P zx)zfOP|T$}aJ&ZB*~_eSgZ)O_ZSWl!%HTN(jpBlHms8V;Jrq}hdo!fqdzq{;D@%`C z49U4=axclTbTkIDGPStkn&q%youSw#Syz(pAv}}!x~(*wb%U9G(zJ!HMJyq0w=kl@G@@>&#<81YOG;ZxGa?vD$cRe{Td}UB zh$_R3xO6jW8Jz28#L`Wkq1lq_mS)M(KIeFZ;5mHW6t*zUsEc87>^9kJ@)?HY z+~OH7_DKgk$Hg@zOxt28$0N+BvW$pj@%;?e7;a6AxOr#6y9rH;?reFvk<8`yr>?FJ zp->19CkR_FETSm=FZ_|7jtdI}=Xb4j4(;1FVt;QvLdUjaZnPD16Za ziJX0fC_G+{vWuHQ%>p#w23>v%w3vz1HbT~6Lf$xG-IoM4Kv)wdq;Z~kl~CQ5gw3y| zAaEiLAIv|ErVycHlJMqr!f>3=cH|;I=tXhJhniVGJcH@*j^)BPU4V*P&myabP<(=W zPZ1h!5@;9CA5oymWRRVX(G4EVY|Oy@7d*hWXD~^GdBzXHAbw$<93ou*n6NNIxEOdtzyK6CZ zXbTojy^dd}gD5Y`L_=i(w!c)016{Qk*hUEV5-z??xOs-)@r|PBxgo5p2%@*E3GFSL zA8WIH8_?WPflnIpaHfWzM|~>B-ygv6kpQO8k6`}FDNMZOMX1|@q@*Ndr#*=co>Wwn zc~P@|EjCw{Vf?*3T)*VSkGFkTx?7Gau%+z3_dmR2?c@Ew7-~!GpP!uqpEm=(f@IW}C1ZEp z8tkt4XaAb~T(tU%(NnV?gH4;z<;z5{+Jmu{5;*%;RaGId%a4JBub_VPUF3vwaO*R| z{cgh5(o&>l=OVAD1X%?opzsJX1~V{!cKJU%p3Cn}em>qQnZ%3r6X-vE64`xOxO<}n z^MM>p6c*y&^Bv!gtv2>{-ofA@VEF6|!k^FLBl|m?|Mni9KRSx!8^0l`u^XN@Lh$?j zc*vg$DF*(8agXre>*f1B;P>nQbp8qx-`PsO)ZK$exg$P`SL4-cE6=QqSMk!{H%f>l literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/monitor/male/head_upper.vox b/assets/voxygen/voxel/npc/monitor/male/head_upper.vox new file mode 100644 index 0000000000000000000000000000000000000000..90948f46a84e3c43848696610019f73c95025e5b GIT binary patch literal 1896 zcmah|YiN~q9RB@p=bUXhSG(`5-Dlg;)H$2et(>_vr_P#}rJI_DqK9G13Yp_z*h*Yt zjy0xIq83BM)XsahQS`wi!~}7}B!Uo;h(6Ybh`v2N?@W_0dg0-Bdw$pVecNANUo1ITdv>G(Nbo7ugJHA(K4wC3D`G{qE0wp7wUuwn8jM@ zV(m*&liKRViZIp|8($h-Y@DHOimg!-nzkY=W8!SkFh?mhVF^cDGf$JR$roiNtYwa7 z4yDp+!myX6)K*OzLTgGNiaKG*)rL0VjGYidv9I%M`Mnu8gbUe(Q`$44JtaD>r(hCF zOu`u#SK4}7Y(i-l*UEX8Jfmz}DIFJW<3`(r6%#jv(#F%|8|4zB4f)iWtF`kS{g%@D ze5DEBZ#-w1qfFcy_M|l0B@Crvu4o;1+Mk1bU(&Y9c!s)=FNS@L_Js3`V-M#N&atL- z2^(;p1dJyk8y82eb)I65_VX-zS>st}J>|paPsO<_brodY0QWUE?gES%%N!fGN!-Em zUcOF_WgW*lhIevSCnQMQQCb~0A=XK z*Yqi0r%wggpL=TZwJ(#H%N{zJyCt)B67&6Ck|~q9yK`|vXx?1;;H_3Szqmx~)bAp- zwY7-FVz@UbSa$L%N;Ce%?-?05c}3tq7h1-!YQ)hwj73bJ9n)X3+A_` zV9_hn(QzOh?~gx?#+aaONbvea!M;i6w&kH9T7t4z1T~`#2zO_o>ZKM&ES67;rJV0imH z#MUjq@Xn>Ua_Ck3G7`ni(k#@^E5wS$71-Xs0A0%keVYWQ-V$6sDhNmVQTl8TW>rP8 zsl5@anioBcjc%TUrur&;RG*KdHM~b%8V26$!oJ-d7&+04@pFeT_(ln0onfS;q#!5# zNz4hSp{lY3HM3`6(Y#6wyqk}Ur%Uj|^$70VoQaRwb96*-<14{W-wAr76*%5kjjI=y z;hzP>2rRV`~3xyvts}(#rqdf7i+x5BLA9r*&%of}H7ylw=}O zn2Nf}RIIC=hILi{>|axmhn7egHrC8WcjH2|N3sx|AI6d9a`^jKS68EBZ3DV?yo9>` zcaYnci))_H8^pH5 z2a&Tm8#gbNW4t35gGEL7cYmL^a+!w>Yi^)>C$R6>S@eB6iVwVRaN_G*cy3QWQZN0A zlqH=AzZOG7Lj&&dSCJ5bKVWVN?tXcHzPtRs{x8nIaOyvMRG#kKhzGVGe4sy0KF;@O K&ZGKcxbhd23!iKN literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/monitor/male/jaw.vox b/assets/voxygen/voxel/npc/monitor/male/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..f7ba1966f98a47dcba87a76e6655a5d4fc01cfb4 GIT binary patch literal 1280 zcmaize@NVA9LGQ3``!)9<}A-s?@aB~rRUQ5BXw$drsi%=%Q1e#UkSG!1SAXxvD<>*+aJfYZ>UAu#UuT`y)uNXF2vRjA|wcCs( zQ`NK?)izbb!qA-J(450CmPFO2c~RT6Nz^nXYS@gZP1UBp-HIEQZ`G>WjcU7HW0sn- zWGJRX=PKqpT}v@m@*1-%rp6V!Lu(xR9g3m0Vd`Ads5TY5+B+IvsS)kd8s+8Xgu`JT zj0#)NFOuo}i$9!B&MyeoxEh$Fxp6alyDACyH8M98U~Y6Ta}!4>n>$Rr-$lxv3^I=9 zk$YhaQtv=|oCrQ-Ds1dk=~;rz4I zg@u+e;jL+5AgZ-3Zqhb(rMHE^s}ijL|1zq%?%ZgbF*Q^uJHfrBA5M z{qOz{ZQuB~|IhlHR{Bp%-hj`Wh%Y^k%G@~G%Gc9Y_)q_(X>J0(EILc`>8;yByU#_a z#KUkyHdg<|#l-}7`sq3FDwRX;krGMa<|o3v4&h2p4hhL_QZutjO3y|jgCzDQGC%R~ zA0Bn<-APO1-Rv=5t{i3G$>St;3w_ygtE|ceYwD Xc69Q{w~~+SwREl6>YCN|8gu1u$xAsR literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/monitor/male/tail_front.vox b/assets/voxygen/voxel/npc/monitor/male/tail_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..ae92ccd1fb423ce3f5c443db6c8250b40d844300 GIT binary patch literal 1592 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 C%A+O# literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/salamander/female/foot_bl.vox b/assets/voxygen/voxel/npc/salamander/female/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..7290806bc8b65be438e93a749c2de0cdc860728a GIT binary patch literal 1244 zcmc(eZ%mt26voee--5({0SCpFtzdzT7PIj$Km}(RR928p#=ub-ab}w^f||B35z@?z zE=FAD7-<0GCgQTpWZ9gg5R)Y$S#X*x%R-jLM2Xo4<5xcz>Pep5Jm)#j zIrqKyy*+ym6itgrM^ku@UgQUdNLM%#deSC39@EIsFf|VJM#8gtwWCzS5EU~-EYl%z zhf;CVkhm_il;)3*P zuc2(OvJ6vVdbX9JjF_o4Ln%wN-_+bNq{TF)Nh#TtscSQ}wy$+pljwnV)YsRONF=yF zCG0-GN^$Pr{F$4}%1Q@zTnR6-r@ewh2OCI?w6i!7W^w8ei!<+1xA+d(K_{*^iYPi> zj&Cl2gfft!$C3GGkX0wy9YX%Fuz6B={+f_ABs`TAHfip>EYx&7LECUPkrSKvXlV;A z386D3ym?g^y`#OIZajltN)mo*(?JTNxp+^z@n0;Y^5!=3`-GAcy7#ouxGcziJ%20< zNj;4$hf5WC+t9fneeXM+WjGUYtyk0MEx0_0zm)h-Hd7;Y3 zKl)j}UCuc@(_g%WTi1n9Lj_}lWy~h4S-sNCA3t{yJ(W%S(fxdV$Hh8@|J(PUZY?F< zzk}-PYR=Zpv7>UHhKX@pNf$T2(D(JaaJj4upU=lY@d&T%UOTq;Mx9sZhuwEQpCkkr}JOuZ`awqdb@5B9e~l9OC&F(`FP<5pM1B* z){0toj?dBl*)m<%)(8fJ+!v564gSJh)8w9aV}HNu|Lec>@6SHizpd*hxbe;&w%X#u OG&}z&ZKLs{{qhf(rYo!f literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/salamander/female/foot_br.vox b/assets/voxygen/voxel/npc/salamander/female/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..7f134c0d0a741e40b8260ba95a819918b825ea59 GIT binary patch literal 1244 zcmc(eZ%mU{6vof{zO5ts7tm7HqJVwhWEj3LG>*~sFDWncGUS@!L>`{Kt zgsy1`LzmS}GM97ETVqGFor zql*@|XlAXJuo$MU)|#F)lx9)bpftneh6Jse?6T+*6g7)zT5?}_SBn~K-5MJkNu^Re zm=boMU!lzQH-Fk}EH8Ip+SN#oJ?&K-I@m;Nq@CPEgxu62ax?GIkb9T>fE~x1rIa48 z#5?ClLRMt(No0N_vSKH{Lns;&HctvKTo>{Ng=f;jCdKVngu0HWXdB8WdSVkFFK(eV zC3I$lx2_4JcU5ht6IaYldCEt9HbC*P4fkm$zDp%k-`Yk|pHO~6^_~`*mjv0b_8-eb zGS4ClHYTTY0qAjtAZuk-t*7?ovqnrljE zf7!#4o(2Zng!DmSE+H(P5$at|BEE9^>bEo8>ZiwNCstR?nUlxJOuR#=xthJN_=&#O zLU(sJe!rj5pYrIUJ+|0ELZhrdF z$J(7r&Z#|pWm~v?LkKlhF&6VMo33T$YLGvE?qc{M^YvW^Yn1$N-+ww>LAHMf zwY9aJZJ1+6^*l`z<2cd|ZhfKd>kZ+G$Aj1FWuRg|Vv0efRo&zpDT1zx40VKAhjw)gxSgXOHrx_$bYc MKTcb3{P=qL2PqUQk^lez literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/salamander/female/foot_fl.vox b/assets/voxygen/voxel/npc/salamander/female/foot_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..02ca8d1d9a99d77744007ee9becf3b1c72005bb7 GIT binary patch literal 1268 zcmc(ee@xVM7{{OQk0aKvLBbJ-0v({-(Ue~UF31ky!h_HdA-RxcQv(^*;En~m+2mY{ zoQdoPwlpH=Y;zhhU~O&@bL85bbIiH6V&xyLfBU1g{(JR&@z2tKd$#wU&-?v6pXd4f z?A&`Ge@aAJ>%)80$*;CZdpHt$(jjUoipLa|;y_m9-gC1yKZWXLu(&opADONLBCwG=1E9I|w58>*SckddM_ToSV^BWl>H zSw_q@%$PQe>OwTvRIYUth9NOi6gsxWh#96d7?#vqw(K%(X>_UPGK|>1rd{=-dvmO& zriOSt&izSY_k~poGXCbzj0{#*T5;@Zc#%CVr5rj~OMJM6#qltUlZRNGewXUScSsAm z$$lfB{Np9~W&%jah4ep;%szvxx=CvlvId0B6TJ1TT*!QnlN%l=eBvs?ekI?_fxeHBxf)K?`aSIOL>&t+(uTnP*W1! z`#;@O#6r&wDk>^CTRp>$vRP`!$H-1(bMp(muh)eu#l`r1K6(p=d1d!Jk{Bg(Fq5U} z2X}Z}&muQBm-ma3?5v&S@Tm`YwkM0*Ulp+w$>ylr{jc+P@|;>-?Y9{0g^}sYBrY!S z@%#-w`EHG^rB&=4o1x{iW!mS~2nK`P7m!p1e_^dDx#!(j-!J;U{wx0d*$3-);`#+Q V{@KI46MR_A(H|AtDE#R8@(=z)E|vfQ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/salamander/female/foot_fr.vox b/assets/voxygen/voxel/npc/salamander/female/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..4b9ddbc8887d98000077f26f9a46bd193147c1a7 GIT binary patch literal 1268 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 E2R$Lo-T(jq literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/salamander/female/jaw.vox b/assets/voxygen/voxel/npc/salamander/female/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..a3e7bee59bc7fdaca6cfdeff274cc93b6f86d02c GIT binary patch literal 1612 zcmc(eZA_JA7{{;szMnUa)gbW@2Sqx7a-b=Q<0Z^6AOu1~goKb~QxhH4IOk!>&TNWn zku#Aou%(eXXPZ-u0c&%Mm?PKboMXENIeeFYQef#%+@MG!Mp6$2)bzS#;z1+`p zKkYmBZ&miA^lxD*D7G7BPX%Jc}4&GuI-9Xx6n^!y<-g_Eqew*;lcz zVLi>66lbzU;yg;irE-2hg~~JdhVTe+MfH@#UE(N7*h+khFxl4unzm*R)z*@5s4kV~ zPiVt6!!^S^;?Q=fUJ$n=VOdmL`8I8bwrg<)+9~X%*vqn2!X^%Jxz8hty+kWtl#1)X zH_A`32sOmGW(^hi+!s)!(te7qEA zN5^fdLtNs~PjQT|xnI*3t$i^8#utk|Yb(dZ6>BQi*Op3noFgPEA)@?U^{;GOz8t&{ z6%`doCX;wLBG`Um0lDdaM%^ zfyUlcbRJ)cPiEJkHYsQs6})|2aP%H?TO!Eri6Spqh_dNwWc8&ZdOCu_%WF|`dp$C` z1bN3E!|(XfMZ+M#11-!9+qZcScZ_9YI539=gglps%(P z?S*0VY|g@&lZP=n^e*bQlwjwpmFRqZ8`|31P+3`tqrDxdudm1AtqYhw--Y?F4kb=xEtTx%fu4a{%_|$U7wHX?u{rdEydaL32ZF6h^nCz$Q;bX?XUQ~ z-V|IdC_pS0!=c=MytaJ`GB|)$eXB4#{^%PXq{)2r%t&Y|^=sN@)9lwIXOVjvt>J~oxei7@6%dqvt1e(5>L+g!2R99Ey yp#b6$`~|Z}=RtINzF&F2{%ie*vybKv*7*xA|7VZWVDWKlLHtQ;%Y~nuFaH4Tdsqel literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/salamander/female/tail_front.vox b/assets/voxygen/voxel/npc/salamander/female/tail_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..40326f9dd663eefa1f9bc356fda370de82b519e6 GIT binary patch literal 2244 zcmc(hZD^KN7{{;kdf&aW<(zHmv}e9-GjwyZmu9v(*EZL*Ik$AFWT-jisn~r#Bge3G z5-l-b7}H2wCSo9($uFw;fLsJA0qnp?|)Cfm40n-ah`Lo>zwQVyUulP z*13A!>|qgUt!rMzK`w+M?af^cPbL%oJ@&vn$93zwnm@3~s>m!QVzk6I5aX=McyE^* zqa!0aHde)!W|WS-vnyO6O+GXkAJ}?hRP05?PBiB_@?s(%nAnAkarAkvJCm_iM>Z6O zGl$W!)h=U=<0!GSG?T1LleN-hIJcI5=OSYyV?E;n$Nd}?*PKLF>&VfJXFT;-pmtDJz}hrCdXLE7)xDNQHM#`Ok}9fYH}&Xb)FUQcW5K;IR=(yB4_9$rwvu)9oaPJ zWV9jcV5ot6d=kSNd26XhGEUJL=R)SOk}*M|hq`!%Wu0_VS4W>VWKZ;%*mxCb*3uiB zu}YYS^-=uIb;lTIZR`?Vo;s~&U3A8f(J7sAhGu!zq)~t3=Q)mbu*_pM_bNl38`h;4!=8}4|?g8U`XzK#b1I7iRPKSX` zJ2Hh{r32Q{F}Dv@96FT_olg5uN1I!!@kk1g-O;XN6Q{z z4Esb=ljhsd>|@Puf?lD~7!V_4Nvip?8q(BIpFvB74H z9odYrqwk_}>>Xs)<|6Nn*_ge10g6YeAq@_)^Kr<@XCPN|k<}`gmKMx7BzXRUAlxZ< zYCtfB^W3w7C9O|jWjYI8d#2#y@tIiBFK8PQym?-*>n8WM<)ffGg*p8ts2Huq^qw4~ z4&|w#u%K}-;{Cy#0=xNBs91PCS#+lNoxc%aEVC8cd62Um_ z4(&JEsl9?rp9yY{3V!)cFjOlz*&z6Kjo|KEf-cVA>l7T?!u4K3eX(Fum7sTp;2782 zmgJ+mA%(uSA`EX`jQ);F3~#T;#7D2;_tV{2P?(FQi)W$br6O$Yti;Zhf`N^Kkyvo~ zprE24AI&9mu%TihdRA1Uvm_VYOQz%Cz8x4Ed>ai*%dq<8YIMC?hmMX8R99DHS9(1f z8yj)!$_b1f-++m)b|5=D8>v(Z`T6-MD^8(e;XJ&sxEP1_&A|CDQuyh|65PG90LPiL zq;Mv#UlKIbl%lV@2*(D>arIn1{`k2aJ^QoJvTZHCxtWK%nDxK$A84G5(M^j`US5vF zl_OYGb`mv%dyzMghihN*zFrrcEh<8BaWS?R_TrVMi;#gnOzoM9@uT9oTjB3fP^&s1#^p&JE=*1zp}sn%m2gS`}z|<{~efoXAc__ R=fix-`lEc42S0kh`~yX;q7wiB literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/salamander/female/tail_rear.vox b/assets/voxygen/voxel/npc/salamander/female/tail_rear.vox new file mode 100644 index 0000000000000000000000000000000000000000..46f6dd9cdb44697dfe05013520e77851bdbea933 GIT binary patch literal 1872 zcmc&zU1*kN7{1@<=ly<-E$3`gr+xEho1vSN{j_D9+nRGtn{!K-N`{(KzKVVCJ8}#| zC(#mr8PiBxCSo9($uRZ-PNNq%Kg1BsCBGz9+P`8A*6)NfL3DmM9TZX`g4` zN$NiRKKpflioECn-J2Xfc6}s=!2aXremQ zQ4@G^FHkWRnuIWpHls5-L77mY7gvE!I!MOGyg(ZjYD?W`Y{FwaZB_!~WI{5^sEkQE z=!{8tfng10RYn^ZBcYd28ATo&_cDsQiV176W<&)l>V?L78868kpY_ zDE91;$73(zg`T?`&xR_>x)JUmV#sgml{KrCG4;ln2IcEUlh6&u$(UYk;<`~$s)Vjr zaow1QETRaF=m7{H^Gf;DGvp)luf{F#%3$;mdj?{dpH*0q*m`_>u^^tEDq zs0HIEw`2U&d#D_L7g=?=$a`}E7VKY&;?ZhIlZEV!L(V-5xs{8oHo@$)VD53j3s(iv zy@DBof|=BFF9}w*C9pP~h3*40@$tkwG!6*bhXrq45$wCi-1dAF^rWzGpad0Tb(qte zgVd3Hlw6pPvfE2Ady8P<0oEQ7)ZP%tM)LPZA;Zr=uH|58Nj5H)&cgkd<^XG-$FK+{ zhzG=P#QB4Q>z@klj|qPHRxn&AIM*cjW`p42+k$TD?{^7~@1VU;&`>PcRwd|b6r85L zePup+no{U*FT%*q6&UEO#K`UjOn&q_e!tLzrG>euT`?c6FBf5FS0(nY6%1|_j0S=m z#{?Ax`DiIwh%FV%(A!vzu995ztek^mhxTB2=p8iGmSO!X)#!e$9-Wv(Z`T6-MD^8(e*Uo!KhnGiW80Rayu2JI zDo3%r>>O%_4kB+b54XSIeZ3*LR8)lG;$rMB?8B>Tu0aO-F{^hLCQd!R!~NVvK|ujN zSTu}PH7Bv-@P~MA+icwZY7r*7^RO#7_h0*Wajw?pjyvex4eUF05rgN)aP-G|>x%2aq_ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/salamander/male/chest.vox b/assets/voxygen/voxel/npc/salamander/male/chest.vox new file mode 100644 index 0000000000000000000000000000000000000000..0f812c5e90773cff210932404ef633a4116a0ca3 GIT binary patch literal 4252 zcmc(iTa2Am7035w?aOyLmr6U>0SZpJw8cP6NiP<$)0x_qTCkK>s6fO3Qpl+3Ij50k zf`Jl4C0x@Kj9^7VFd-n4wlN_Q8-m1y5Ymu|i4wzu@zn=od|UqZ!8e6hCtcb5TYFvp z>$2BA-FL&y7acdo?3&(jJ&SpyZ_J(@`?t2`gTD^62#V0nx9s0>^M4MOcw=ne&Y2$6 zadTBywwQ)}TfU*j&DFKpUe(6u+ANrw?}qP&?}qORnJ#)AnT?fMu-VNuPz%4sPK$nv zPK&)3do4a%CR25W7$h>YD|rjQ17xE141evD0PkL4C75;3IGzkgvyB?I6~66dR~z-(l^t_UthB?LhDwD;dRF zhOv=R=ougS;Amx7h?%51rKWN}Jd^e3p-wmrC-{h%j+@K*> zRo4x3ErZ;UhuROT+K)18-C!5L6_ksAbSfxAbX}-^Er3jNqv|U_-8Ik%bzlYQfY+wgavf>f)nI zeDJGYv15l-7hD}|BU8}>bq|79!>e0z(1qxWrkwR1=fu#FVT1n+rmByPKKba$z%??{ zRGjyVZ<$T-Q*8%{oF;OU`{1eQg+5raAElCm%8YW)4N{?|^a(gJx$RLW_6dKfDRxTF z$*e1Oi6en0gD;bxREVBT^lEC61z&F6z&A3RiN9h^+$M`fgTB9jr2k!R!$1{omY%Z>RKuedj+%P%BH*y}f+G(e685nZ z1{VAd^7M$5SczeA`BCNJx zrvE(k7xtDo9KGiufh_&)sF`OKR!iSFW`u_XveeJfPoCK#kfmQ7v&++u!s;@48Dk}W zauUf$B>qU8IWwD+S#Z2VHbKFTY_xM$${zCUt(!~9cGaS(VM8f!`FF zY`9A7(Q5*47ItDb3k`N_>_-x07c{xJEz6D&CbIb1t^y{K8^tJF?#WPDhdGhpvq2BluPmaJHz%SMe#FHCv2k-|l zdLdun7BB^{hO#t&fT`+q5IIufn@#J0#kC?>q zCK0nI&&lxyqmwvG*htt&*i6_=U{7F<$R_g4h(I0!bHYaiMghZ5)HC1L^{2k4{mm1)^jjC{MGsuAD^F}x zvo)x>uU7NI=hVD2q5WM(&z&=R{*y+(_`1=2pV7_{qv!BF@ru!_cQtz5TwnJ;c#i(~ z^aVOQZ*=!Dqu+kb==~p{yL(cX9hlOK=U3^vlbiLtgNt?Qu}NL^(uKO_-OKdcTa8}) zAhwSiz2+^W<|h0f&T5Wz)x5D-k6yM&UtYaLKm77}s@Hu%j~Szy}OGj#U@yt?RDPgR>iT->L~caP@im#KZUMv7_JBt=Fv48@{?x_kVp__wL=R z8#iv$`{!=aZQHi#*|(q9lh56%XMTCFE?Trmr>3TKa&l7FtenzyS6r%Jx@x69`SAJr z+Rvx-kAGODAH9FMK8Md$%P-LP-ZZ*((`r3@V1+(=WUapQ>Wu#VPkZ#>qkY|Z_f7ii z50>gjdg1>q{>Qdmq9<>^QrE6st52;zp;xYXK{p+JNS7X2s_*`SdVSOAD=Sv$%9Shi zp5=%1Yun#YbL6ltIk-emKl4cqA0QXYmMzmCUUE#Y-So8H`RI@I^S7U?@Biu&J-vUa z-aRq#U->U`#nvr*-qVBksNVm~%X;L+llu4@Z|hHfcUCW5y-u%v=!EY4*;~5j^|QKp z^Je|nsG1DvKh>Y*V_|BH?=SS%|2qHuQ=i~3=Ul<@J^Qq^9Ddqa;eXcI*zjlTn|}k( C%A+O# literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/salamander/male/foot_bl.vox b/assets/voxygen/voxel/npc/salamander/male/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..7290806bc8b65be438e93a749c2de0cdc860728a GIT binary patch literal 1244 zcmc(eZ%mt26voee--5({0SCpFtzdzT7PIj$Km}(RR928p#=ub-ab}w^f||B35z@?z zE=FAD7-<0GCgQTpWZ9gg5R)Y$S#X*x%R-jLM2Xo4<5xcz>Pep5Jm)#j zIrqKyy*+ym6itgrM^ku@UgQUdNLM%#deSC39@EIsFf|VJM#8gtwWCzS5EU~-EYl%z zhf;CVkhm_il;)3*P zuc2(OvJ6vVdbX9JjF_o4Ln%wN-_+bNq{TF)Nh#TtscSQ}wy$+pljwnV)YsRONF=yF zCG0-GN^$Pr{F$4}%1Q@zTnR6-r@ewh2OCI?w6i!7W^w8ei!<+1xA+d(K_{*^iYPi> zj&Cl2gfft!$C3GGkX0wy9YX%Fuz6B={+f_ABs`TAHfip>EYx&7LECUPkrSKvXlV;A z386D3ym?g^y`#OIZajltN)mo*(?JTNxp+^z@n0;Y^5!=3`-GAcy7#ouxGcziJ%20< zNj;4$hf5WC+t9fneeXM+WjGUYtyk0MEx0_0zm)h-Hd7;Y3 zKl)j}UCuc@(_g%WTi1n9Lj_}lWy~h4S-sNCA3t{yJ(W%S(fxdV$Hh8@|J(PUZY?F< zzk}-PYR=Zpv7>UHhKX@pNf$T2(D(JaaJj4upU=lY@d&T%UOTq;Mx9sZhuwEQpCkkr}JOuZ`awqdb@5B9e~l9OC&F(`FP<5pM1B* z){0toj?dBl*)m<%)(8fJ+!v564gSJh)8w9aV}HNu|Lec>@6SHizpd*hxbe;&w%X#u OG&}z&ZKLs{{qhf(rYo!f literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/salamander/male/foot_br.vox b/assets/voxygen/voxel/npc/salamander/male/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..7f134c0d0a741e40b8260ba95a819918b825ea59 GIT binary patch literal 1244 zcmc(eZ%mU{6vof{zO5ts7tm7HqJVwhWEj3LG>*~sFDWncGUS@!L>`{Kt zgsy1`LzmS}GM97ETVqGFor zql*@|XlAXJuo$MU)|#F)lx9)bpftneh6Jse?6T+*6g7)zT5?}_SBn~K-5MJkNu^Re zm=boMU!lzQH-Fk}EH8Ip+SN#oJ?&K-I@m;Nq@CPEgxu62ax?GIkb9T>fE~x1rIa48 z#5?ClLRMt(No0N_vSKH{Lns;&HctvKTo>{Ng=f;jCdKVngu0HWXdB8WdSVkFFK(eV zC3I$lx2_4JcU5ht6IaYldCEt9HbC*P4fkm$zDp%k-`Yk|pHO~6^_~`*mjv0b_8-eb zGS4ClHYTTY0qAjtAZuk-t*7?ovqnrljE zf7!#4o(2Zng!DmSE+H(P5$at|BEE9^>bEo8>ZiwNCstR?nUlxJOuR#=xthJN_=&#O zLU(sJe!rj5pYrIUJ+|0ELZhrdF z$J(7r&Z#|pWm~v?LkKlhF&6VMo33T$YLGvE?qc{M^YvW^Yn1$N-+ww>LAHMf zwY9aJZJ1+6^*l`z<2cd|ZhfKd>kZ+G$Aj1FWuRg|Vv0efRo&zpDT1zx40VKAhjw)gxSgXOHrx_$bYc MKTcb3{P=qL2PqUQk^lez literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/salamander/male/foot_fl.vox b/assets/voxygen/voxel/npc/salamander/male/foot_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..02ca8d1d9a99d77744007ee9becf3b1c72005bb7 GIT binary patch literal 1268 zcmc(ee@xVM7{{OQk0aKvLBbJ-0v({-(Ue~UF31ky!h_HdA-RxcQv(^*;En~m+2mY{ zoQdoPwlpH=Y;zhhU~O&@bL85bbIiH6V&xyLfBU1g{(JR&@z2tKd$#wU&-?v6pXd4f z?A&`Ge@aAJ>%)80$*;CZdpHt$(jjUoipLa|;y_m9-gC1yKZWXLu(&opADONLBCwG=1E9I|w58>*SckddM_ToSV^BWl>H zSw_q@%$PQe>OwTvRIYUth9NOi6gsxWh#96d7?#vqw(K%(X>_UPGK|>1rd{=-dvmO& zriOSt&izSY_k~poGXCbzj0{#*T5;@Zc#%CVr5rj~OMJM6#qltUlZRNGewXUScSsAm z$$lfB{Np9~W&%jah4ep;%szvxx=CvlvId0B6TJ1TT*!QnlN%l=eBvs?ekI?_fxeHBxf)K?`aSIOL>&t+(uTnP*W1! z`#;@O#6r&wDk>^CTRp>$vRP`!$H-1(bMp(muh)eu#l`r1K6(p=d1d!Jk{Bg(Fq5U} z2X}Z}&muQBm-ma3?5v&S@Tm`YwkM0*Ulp+w$>ylr{jc+P@|;>-?Y9{0g^}sYBrY!S z@%#-w`EHG^rB&=4o1x{iW!mS~2nK`P7m!p1e_^dDx#!(j-!J;U{wx0d*$3-);`#+Q V{@KI46MR_A(H|AtDE#R8@(=z)E|vfQ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/salamander/male/foot_fr.vox b/assets/voxygen/voxel/npc/salamander/male/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..4b9ddbc8887d98000077f26f9a46bd193147c1a7 GIT binary patch literal 1268 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 E2R$Lo-T(jq literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/salamander/male/jaw.vox b/assets/voxygen/voxel/npc/salamander/male/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..a3e7bee59bc7fdaca6cfdeff274cc93b6f86d02c GIT binary patch literal 1612 zcmc(eZA_JA7{{;szMnUa)gbW@2Sqx7a-b=Q<0Z^6AOu1~goKb~QxhH4IOk!>&TNWn zku#Aou%(eXXPZ-u0c&%Mm?PKboMXENIeeFYQef#%+@MG!Mp6$2)bzS#;z1+`p zKkYmBZ&miA^lxD*D7G7BPX%Jc}4&GuI-9Xx6n^!y<-g_Eqew*;lcz zVLi>66lbzU;yg;irE-2hg~~JdhVTe+MfH@#UE(N7*h+khFxl4unzm*R)z*@5s4kV~ zPiVt6!!^S^;?Q=fUJ$n=VOdmL`8I8bwrg<)+9~X%*vqn2!X^%Jxz8hty+kWtl#1)X zH_A`32sOmGW(^hi+!s)!(te7qEA zN5^fdLtNs~PjQT|xnI*3t$i^8#utk|Yb(dZ6>BQi*Op3noFgPEA)@?U^{;GOz8t&{ z6%`doCX;wLBG`Um0lDdaM%^ zfyUlcbRJ)cPiEJkHYsQs6})|2aP%H?TO!Eri6Spqh_dNwWc8&ZdOCu_%WF|`dp$C` z1bN3E!|(XfMZ+M#11-!9+qZcScZ_9YI539=gglps%(P z?S*0VY|g@&lZP=n^e*bQlwjwpmFRqZ8`|31P+3`tqrDxdudm1AtqYhw--Y?F4kb=xEtTx%fu4a{%_|$U7wHX?u{rdEydaL32ZF6h^nCz$Q;bX?XUQ~ z-V|IdC_pS0!=c=MytaJ`GB|)$eXB4#{^%PXq{)2r%t&Y|^=sN@)9lwIXOVjvt>J~oxei7@6%dqvt1e(5>L+g!2R99Ey yp#b6$`~|Z}=RtINzF&F2{%ie*vybKv*7*xA|7VZWVDWKlLHtQ;%Y~nuFaH4Tdsqel literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/salamander/male/tail_front.vox b/assets/voxygen/voxel/npc/salamander/male/tail_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..40326f9dd663eefa1f9bc356fda370de82b519e6 GIT binary patch literal 2244 zcmc(hZD^KN7{{;kdf&aW<(zHmv}e9-GjwyZmu9v(*EZL*Ik$AFWT-jisn~r#Bge3G z5-l-b7}H2wCSo9($uFw;fLsJA0qnp?|)Cfm40n-ah`Lo>zwQVyUulP z*13A!>|qgUt!rMzK`w+M?af^cPbL%oJ@&vn$93zwnm@3~s>m!QVzk6I5aX=McyE^* zqa!0aHde)!W|WS-vnyO6O+GXkAJ}?hRP05?PBiB_@?s(%nAnAkarAkvJCm_iM>Z6O zGl$W!)h=U=<0!GSG?T1LleN-hIJcI5=OSYyV?E;n$Nd}?*PKLF>&VfJXFT;-pmtDJz}hrCdXLE7)xDNQHM#`Ok}9fYH}&Xb)FUQcW5K;IR=(yB4_9$rwvu)9oaPJ zWV9jcV5ot6d=kSNd26XhGEUJL=R)SOk}*M|hq`!%Wu0_VS4W>VWKZ;%*mxCb*3uiB zu}YYS^-=uIb;lTIZR`?Vo;s~&U3A8f(J7sAhGu!zq)~t3=Q)mbu*_pM_bNl38`h;4!=8}4|?g8U`XzK#b1I7iRPKSX` zJ2Hh{r32Q{F}Dv@96FT_olg5uN1I!!@kk1g-O;XN6Q{z z4Esb=ljhsd>|@Puf?lD~7!V_4Nvip?8q(BIpFvB74H z9odYrqwk_}>>Xs)<|6Nn*_ge10g6YeAq@_)^Kr<@XCPN|k<}`gmKMx7BzXRUAlxZ< zYCtfB^W3w7C9O|jWjYI8d#2#y@tIiBFK8PQym?-*>n8WM<)ffGg*p8ts2Huq^qw4~ z4&|w#u%K}-;{Cy#0=xNBs91PCS#+lNoxc%aEVC8cd62Um_ z4(&JEsl9?rp9yY{3V!)cFjOlz*&z6Kjo|KEf-cVA>l7T?!u4K3eX(Fum7sTp;2782 zmgJ+mA%(uSA`EX`jQ);F3~#T;#7D2;_tV{2P?(FQi)W$br6O$Yti;Zhf`N^Kkyvo~ zprE24AI&9mu%TihdRA1Uvm_VYOQz%Cz8x4Ed>ai*%dq<8YIMC?hmMX8R99DHS9(1f z8yj)!$_b1f-++m)b|5=D8>v(Z`T6-MD^8(e;XJ&sxEP1_&A|CDQuyh|65PG90LPiL zq;Mv#UlKIbl%lV@2*(D>arIn1{`k2aJ^QoJvTZHCxtWK%nDxK$A84G5(M^j`US5vF zl_OYGb`mv%dyzMghihN*zFrrcEh<8BaWS?R_TrVMi;#gnOzoM9@uT9oTjB3fP^&s1#^p&JE=*1zp}sn%m2gS`}z|<{~efoXAc__ R=fix-`lEc42S0kh`~yX;q7wiB literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/salamander/male/tail_rear.vox b/assets/voxygen/voxel/npc/salamander/male/tail_rear.vox new file mode 100644 index 0000000000000000000000000000000000000000..46f6dd9cdb44697dfe05013520e77851bdbea933 GIT binary patch literal 1872 zcmc&zU1*kN7{1@<=ly<-E$3`gr+xEho1vSN{j_D9+nRGtn{!K-N`{(KzKVVCJ8}#| zC(#mr8PiBxCSo9($uRZ-PNNq%Kg1BsCBGz9+P`8A*6)NfL3DmM9TZX`g4` zN$NiRKKpflioECn-J2Xfc6}s=!2aXremQ zQ4@G^FHkWRnuIWpHls5-L77mY7gvE!I!MOGyg(ZjYD?W`Y{FwaZB_!~WI{5^sEkQE z=!{8tfng10RYn^ZBcYd28ATo&_cDsQiV176W<&)l>V?L78868kpY_ zDE91;$73(zg`T?`&xR_>x)JUmV#sgml{KrCG4;ln2IcEUlh6&u$(UYk;<`~$s)Vjr zaow1QETRaF=m7{H^Gf;DGvp)luf{F#%3$;mdj?{dpH*0q*m`_>u^^tEDq zs0HIEw`2U&d#D_L7g=?=$a`}E7VKY&;?ZhIlZEV!L(V-5xs{8oHo@$)VD53j3s(iv zy@DBof|=BFF9}w*C9pP~h3*40@$tkwG!6*bhXrq45$wCi-1dAF^rWzGpad0Tb(qte zgVd3Hlw6pPvfE2Ady8P<0oEQ7)ZP%tM)LPZA;Zr=uH|58Nj5H)&cgkd<^XG-$FK+{ zhzG=P#QB4Q>z@klj|qPHRxn&AIM*cjW`p42+k$TD?{^7~@1VU;&`>PcRwd|b6r85L zePup+no{U*FT%*q6&UEO#K`UjOn&q_e!tLzrG>euT`?c6FBf5FS0(nY6%1|_j0S=m z#{?Ax`DiIwh%FV%(A!vzu995ztek^mhxTB2=p8iGmSO!X)#!e$9-Wv(Z`T6-MD^8(e*Uo!KhnGiW80Rayu2JI zDo3%r>>O%_4kB+b54XSIeZ3*LR8)lG;$rMB?8B>Tu0aO-F{^hLCQd!R!~NVvK|ujN zSTu}PH7Bv-@P~MA+icwZY7r*7^RO#7_h0*Wajw?pjyvex4eUF05rgN)aP-G|>x%2aq_ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index f883018fd8..8860a70dca 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -12,21 +12,17 @@ offset: (-3.0, -3.0, -2.5), central: ("npc.crocodile.male.jaw"), ), - chest_rear: ( + chest: ( offset: (-8.0, -5.5, -6.0), - central: ("npc.crocodile.male.chest_front"), - ), - chest_front: ( - offset: (-8.0, -5.5, -6.0), - central: ("npc.crocodile.male.chest_front"), + central: ("npc.crocodile.male.chest"), ), tail_rear: ( offset: (-2.0, -9.5, -5.0), - central: ("npc.crocodile.male.tail"), + central: ("npc.crocodile.male.tail_rear"), ), tail_front: ( offset: (-2.0, -9.5, -5.0), - central: ("npc.crocodile.male.tail"), + central: ("npc.crocodile.male.tail_front"), ), ), (Crocodile, Female): ( @@ -42,21 +38,173 @@ offset: (-3.0, -3.0, -2.5), central: ("npc.crocodile.female.jaw"), ), - chest_rear: ( + chest: ( offset: (-8.0, -5.5, -6.0), - central: ("npc.crocodile.female.chest_rear"), - ), - chest_front: ( - offset: (-8.0, -5.5, -6.0), - central: ("npc.crocodile.female.chest_front"), + central: ("npc.crocodile.female.chest"), ), tail_rear: ( offset: (-2.0, -9.5, -5.0), - central: ("npc.crocodile.female.tail"), + central: ("npc.crocodile.female.tail_rear"), ), tail_front: ( offset: (-2.0, -9.5, -5.0), - central: ("npc.crocodile.female.tail"), + central: ("npc.crocodile.female.tail_front"), + ), + ), + (Alligator, Male): ( + upper: ( + offset: (-7.0, -9.0, -5.5), + central: ("npc.alligator.male.head_upper"), + ), + lower: ( + offset: (-7.0, -4.5, -5.0), + central: ("npc.alligator.male.head_lower"), + ), + jaw: ( + offset: (-3.0, -3.0, -2.5), + central: ("npc.alligator.male.jaw"), + ), + chest: ( + offset: (-8.0, -5.5, -6.0), + central: ("npc.alligator.male.chest"), + ), + tail_rear: ( + offset: (-2.0, -9.5, -5.0), + central: ("npc.alligator.male.tail_rear"), + ), + tail_front: ( + offset: (-2.0, -9.5, -5.0), + central: ("npc.alligator.male.tail_front"), + ), + ), + (Alligator, Female): ( + upper: ( + offset: (-7.0, -9.0, -5.5), + central: ("npc.alligator.female.head_upper"), + ), + lower: ( + offset: (-7.0, -4.5, -5.0), + central: ("npc.alligator.female.head_lower"), + ), + jaw: ( + offset: (-3.0, -3.0, -2.5), + central: ("npc.alligator.female.jaw"), + ), + chest: ( + offset: (-8.0, -5.5, -6.0), + central: ("npc.alligator.female.chest"), + ), + tail_rear: ( + offset: (-2.0, -9.5, -5.0), + central: ("npc.alligator.female.tail_rear"), + ), + tail_front: ( + offset: (-2.0, -9.5, -5.0), + central: ("npc.alligator.female.tail_front"), + ), + ), + (Salamander, Male): ( + upper: ( + offset: (-7.0, -9.0, -5.5), + central: ("npc.salamander.male.head_upper"), + ), + lower: ( + offset: (-7.0, -4.5, -5.0), + central: ("npc.salamander.male.head_lower"), + ), + jaw: ( + offset: (-3.0, -3.0, -2.5), + central: ("npc.salamander.male.jaw"), + ), + chest: ( + offset: (-8.0, -5.5, -6.0), + central: ("npc.salamander.male.chest"), + ), + tail_rear: ( + offset: (-2.0, -9.5, -5.0), + central: ("npc.salamander.male.tail_rear"), + ), + tail_front: ( + offset: (-2.0, -9.5, -5.0), + central: ("npc.salamander.male.tail_front"), + ), + ), + (Salamander, Female): ( + upper: ( + offset: (-7.0, -9.0, -5.5), + central: ("npc.salamander.female.head_upper"), + ), + lower: ( + offset: (-7.0, -4.5, -5.0), + central: ("npc.salamander.female.head_lower"), + ), + jaw: ( + offset: (-3.0, -3.0, -2.5), + central: ("npc.salamander.female.jaw"), + ), + chest: ( + offset: (-8.0, -5.5, -6.0), + central: ("npc.salamander.female.chest"), + ), + tail_rear: ( + offset: (-2.0, -9.5, -5.0), + central: ("npc.salamander.female.tail_rear"), + ), + tail_front: ( + offset: (-2.0, -9.5, -5.0), + central: ("npc.salamander.female.tail_front"), + ), + ), + (Monitor, Male): ( + upper: ( + offset: (-7.0, -9.0, -5.5), + central: ("npc.monitor.male.head_upper"), + ), + lower: ( + offset: (-7.0, -4.5, -5.0), + central: ("npc.monitor.male.head_lower"), + ), + jaw: ( + offset: (-3.0, -3.0, -2.5), + central: ("npc.monitor.male.jaw"), + ), + chest: ( + offset: (-8.0, -5.5, -6.0), + central: ("npc.monitor.male.chest"), + ), + tail_rear: ( + offset: (-2.0, -9.5, -5.0), + central: ("npc.monitor.male.tail_rear"), + ), + tail_front: ( + offset: (-2.0, -9.5, -5.0), + central: ("npc.monitor.male.tail_front"), + ), + ), + (Monitor, Female): ( + upper: ( + offset: (-7.0, -9.0, -5.5), + central: ("npc.monitor.female.head_upper"), + ), + lower: ( + offset: (-7.0, -4.5, -5.0), + central: ("npc.monitor.female.head_lower"), + ), + jaw: ( + offset: (-3.0, -3.0, -2.5), + central: ("npc.monitor.female.jaw"), + ), + chest: ( + offset: (-8.0, -5.5, -6.0), + central: ("npc.monitor.female.chest"), + ), + tail_rear: ( + offset: (-2.0, -9.5, -5.0), + central: ("npc.monitor.female.tail_rear"), + ), + tail_front: ( + offset: (-2.0, -9.5, -5.0), + central: ("npc.monitor.female.tail_front"), ), ), }) diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron index 99a67b071a..6cc5a0cb0f 100644 --- a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron @@ -35,4 +35,112 @@ lateral: ("npc.crocodile.female.foot_br"), ), ), + (Alligator, Male): ( + front_left: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.alligator.male.foot_fl"), + ), + front_right: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.alligator.male.foot_fr"), + ), + back_left: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.alligator.male.foot_bl"), + ), + back_right: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.alligator.male.foot_br"), + ), + ), + (Alligator, Female): ( + front_left: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.alligator.female.foot_fl"), + ), + front_right: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.alligator.female.foot_fr"), + ), + back_left: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.alligator.female.foot_bl"), + ), + back_right: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.alligator.female.foot_br"), + ), + ), + (Salamander, Male): ( + front_left: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.salamander.male.foot_fl"), + ), + front_right: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.salamander.male.foot_fr"), + ), + back_left: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.salamander.male.foot_bl"), + ), + back_right: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.salamander.male.foot_br"), + ), + ), + (Salamander, Female): ( + front_left: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.salamander.female.foot_fl"), + ), + front_right: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.salamander.female.foot_fr"), + ), + back_left: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.salamander.female.foot_bl"), + ), + back_right: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.salamander.female.foot_br"), + ), + ), + (Monitor, Male): ( + front_left: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.monitor.male.foot_fl"), + ), + front_right: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.monitor.male.foot_fr"), + ), + back_left: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.monitor.male.foot_bl"), + ), + back_right: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.monitor.male.foot_br"), + ), + ), + (Monitor, Female): ( + front_left: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.monitor.female.foot_fl"), + ), + front_right: ( + offset: (-2.5, -4.0, -1.5), + lateral: ("npc.monitor.female.foot_fr"), + ), + back_left: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.monitor.female.foot_bl"), + ), + back_right: ( + offset: (-2.5, -4.0, -3.0), + lateral: ("npc.monitor.female.foot_br"), + ), + ), }) diff --git a/common/src/comp/body/quadruped_low.rs b/common/src/comp/body/quadruped_low.rs index 7296016344..0f25697dcd 100644 --- a/common/src/comp/body/quadruped_low.rs +++ b/common/src/comp/body/quadruped_low.rs @@ -28,6 +28,9 @@ impl From for super::Body { #[repr(u32)] pub enum Species { Crocodile = 0, + Alligator = 1, + Salamander = 2, + Monitor = 3, } /// Data representing per-species generic data. @@ -36,6 +39,9 @@ pub enum Species { #[derive(Clone, Debug, Deserialize)] pub struct AllSpecies { pub crocodile: SpeciesMeta, + pub alligator: SpeciesMeta, + pub salamander: SpeciesMeta, + pub monitor: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -45,12 +51,18 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies fn index(&self, &index: &'a Species) -> &Self::Output { match index { Species::Crocodile => &self.crocodile, + Species::Alligator => &self.alligator, + Species::Salamander => &self.salamander, + Species::Monitor => &self.monitor, } } } -pub const ALL_SPECIES: [Species; 1] = [ +pub const ALL_SPECIES: [Species; 4] = [ Species::Crocodile, + Species::Alligator, + Species::Salamander, + Species::Monitor, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/voxygen/src/anim/quadruped_low/idle.rs b/voxygen/src/anim/quadruped_low/idle.rs index 1c84216cda..380eb268b1 100644 --- a/voxygen/src/anim/quadruped_low/idle.rs +++ b/voxygen/src/anim/quadruped_low/idle.rs @@ -56,18 +56,13 @@ impl Animation for IdleAnimation { next.jaw.ori = Quaternion::rotation_x(slow * 0.04); next.jaw.scale = Vec3::one() * 1.05; - next.chest_front.offset = Vec3::new( + next.chest.offset = Vec3::new( 0.0, - skeleton_attr.chest_front.0, - skeleton_attr.chest_front.1, + skeleton_attr.chest.0, + skeleton_attr.chest.1, ); - next.chest_front.ori = Quaternion::rotation_y(slow * 0.01); - next.chest_front.scale = Vec3::one() * 1.05; - - next.chest_rear.offset = - Vec3::new(0.0, skeleton_attr.chest_rear.0, skeleton_attr.chest_rear.1); - next.chest_rear.ori = Quaternion::rotation_y(slow * 0.01); - next.chest_rear.scale = Vec3::one() * 1.05; + next.chest.ori = Quaternion::rotation_y(slow * 0.01); + next.chest.scale = Vec3::one() * 1.05; next.tail_front.offset = Vec3::new(0.0, skeleton_attr.tail_front.0, skeleton_attr.tail_front.1); diff --git a/voxygen/src/anim/quadruped_low/jump.rs b/voxygen/src/anim/quadruped_low/jump.rs index b311951396..c02adef7f6 100644 --- a/voxygen/src/anim/quadruped_low/jump.rs +++ b/voxygen/src/anim/quadruped_low/jump.rs @@ -71,18 +71,13 @@ impl Animation for JumpAnimation { next.tail_rear.ori = Quaternion::rotation_x(center * 0.03); next.tail_rear.scale = Vec3::one() * 0.98; - next.chest_front.offset = Vec3::new( + next.chest.offset = Vec3::new( 0.0, - skeleton_attr.chest_front.0, - skeleton_attr.chest_front.1, + skeleton_attr.chest.0, + skeleton_attr.chest.1, ); - next.chest_front.ori = Quaternion::rotation_y(center * 0.05); - next.chest_front.scale = Vec3::one(); - - next.chest_rear.offset = - Vec3::new(0.0, skeleton_attr.chest_rear.0, skeleton_attr.chest_rear.1); - next.chest_rear.ori = Quaternion::rotation_y(center * 0.05); - next.chest_rear.scale = Vec3::one(); + next.chest.ori = Quaternion::rotation_y(center * 0.05); + next.chest.scale = Vec3::one(); next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, diff --git a/voxygen/src/anim/quadruped_low/mod.rs b/voxygen/src/anim/quadruped_low/mod.rs index 20adaf21bf..30305eb20e 100644 --- a/voxygen/src/anim/quadruped_low/mod.rs +++ b/voxygen/src/anim/quadruped_low/mod.rs @@ -17,8 +17,7 @@ pub struct QuadrupedLowSkeleton { jaw: Bone, tail_front: Bone, tail_rear: Bone, - chest_front: Bone, - chest_rear: Bone, + chest: Bone, foot_fl: Bone, foot_fr: Bone, foot_bl: Bone, @@ -32,29 +31,28 @@ impl QuadrupedLowSkeleton { impl Skeleton for QuadrupedLowSkeleton { type Attr = SkeletonAttr; - fn bone_count(&self) -> usize { 11 } + fn bone_count(&self) -> usize { 10 } fn compute_matrices(&self) -> ([FigureBoneData; 16], Vec3) { let head_upper_mat = self.head_upper.compute_base_matrix(); let head_lower_mat = self.head_lower.compute_base_matrix(); - let chest_front_mat = self.chest_front.compute_base_matrix(); - let chest_rear_mat = self.chest_rear.compute_base_matrix(); + let chest_mat = self.chest.compute_base_matrix(); + let chest_mat = self.chest.compute_base_matrix(); ( [ - FigureBoneData::new(chest_front_mat * head_lower_mat * head_upper_mat), - FigureBoneData::new(chest_front_mat * head_lower_mat), + FigureBoneData::new(chest_mat * head_lower_mat * head_upper_mat), + FigureBoneData::new(chest_mat * head_lower_mat), FigureBoneData::new( - chest_front_mat + chest_mat * head_lower_mat * head_upper_mat * self.jaw.compute_base_matrix(), ), - FigureBoneData::new(chest_front_mat), - FigureBoneData::new(chest_front_mat * self.chest_rear.compute_base_matrix()), - FigureBoneData::new(chest_front_mat * chest_rear_mat * self.tail_front.compute_base_matrix()), + FigureBoneData::new(chest_mat), + FigureBoneData::new(chest_mat * self.tail_front.compute_base_matrix()), FigureBoneData::new( - chest_front_mat - * chest_rear_mat + chest_mat + * chest_mat * self.tail_front.compute_base_matrix() * self.tail_rear.compute_base_matrix(), ), @@ -67,6 +65,7 @@ impl Skeleton for QuadrupedLowSkeleton { FigureBoneData::default(), FigureBoneData::default(), FigureBoneData::default(), + FigureBoneData::default(), ], Vec3::default(), ) @@ -78,8 +77,7 @@ impl Skeleton for QuadrupedLowSkeleton { self.jaw.interpolate(&target.jaw, dt); self.tail_front.interpolate(&target.tail_front, dt); self.tail_rear.interpolate(&target.tail_rear, dt); - self.chest_front.interpolate(&target.chest_front, dt); - self.chest_rear.interpolate(&target.chest_rear, dt); + self.chest.interpolate(&target.chest, dt); self.foot_fl.interpolate(&target.foot_fl, dt); self.foot_fr.interpolate(&target.foot_fr, dt); self.foot_bl.interpolate(&target.foot_bl, dt); @@ -93,8 +91,7 @@ pub struct SkeletonAttr { jaw: (f32, f32), tail_front: (f32, f32), tail_rear: (f32, f32), - chest_front: (f32, f32), - chest_rear: (f32, f32), + chest: (f32, f32), feet_f: (f32, f32, f32), feet_b: (f32, f32, f32), height: f32, @@ -119,8 +116,7 @@ impl Default for SkeletonAttr { jaw: (0.0, 0.0), tail_front: (0.0, 0.0), tail_rear: (0.0, 0.0), - chest_front: (0.0, 0.0), - chest_rear: (0.0, 0.0), + chest: (0.0, 0.0), feet_f: (0.0, 0.0, 0.0), feet_b: (0.0, 0.0, 0.0), height: (0.0), @@ -134,33 +130,57 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { Self { head_upper: match (body.species, body.body_type) { (Crocodile, _) => (12.0, 16.0), + (Alligator, _) => (12.0, 16.0), + (Salamander, _) => (12.0, 16.0), + (Monitor, _) => (12.0, 16.0), }, head_lower: match (body.species, body.body_type) { (Crocodile, _) => (-4.0, -7.0), + (Alligator, _) => (-4.0, -7.0), + (Salamander, _) => (-4.0, -7.0), + (Monitor, _) => (-4.0, -7.0), }, jaw: match (body.species, body.body_type) { (Crocodile, _) => (3.0, -5.0), + (Alligator, _) => (3.0, -5.0), + (Salamander, _) => (3.0, -5.0), + (Monitor, _) => (3.0, -5.0), }, tail_rear: match (body.species, body.body_type) { (Crocodile, _) => (-6.0, -2.0), + (Alligator, _) => (-6.0, -2.0), + (Salamander, _) => (-6.0, -2.0), + (Monitor, _) => (-6.0, -2.0), }, tail_front: match (body.species, body.body_type) { (Crocodile, _) => (-6.0, -2.0), + (Alligator, _) => (-6.0, -2.0), + (Salamander, _) => (-6.0, -2.0), + (Monitor, _) => (-6.0, -2.0), }, - chest_front: match (body.species, body.body_type) { - (Crocodile, _) => (4.0, 11.0), - }, - chest_rear: match (body.species, body.body_type) { + chest: match (body.species, body.body_type) { (Crocodile, _) => (4.0, 11.0), + (Alligator, _) => (4.0, 11.0), + (Salamander, _) => (4.0, 11.0), + (Monitor, _) => (4.0, 11.0), }, feet_f: match (body.species, body.body_type) { (Crocodile, _) => (5.0, 6.0, 2.0), + (Alligator, _) => (5.0, 6.0, 2.0), + (Salamander, _) => (5.0, 6.0, 2.0), + (Monitor, _) => (5.0, 6.0, 2.0), }, feet_b: match (body.species, body.body_type) { (Crocodile, _) => (5.0, -4.0, 3.0), + (Alligator, _) => (5.0, -4.0, 3.0), + (Salamander, _) => (5.0, -4.0, 3.0), + (Monitor, _) => (5.0, -4.0, 3.0), }, height: match (body.species, body.body_type) { (Crocodile, _) => (1.2), + (Alligator, _) => (1.2), + (Salamander, _) => (1.2), + (Monitor, _) => (1.2), }, } } diff --git a/voxygen/src/anim/quadruped_low/run.rs b/voxygen/src/anim/quadruped_low/run.rs index 2e08762f32..bc842b3edf 100644 --- a/voxygen/src/anim/quadruped_low/run.rs +++ b/voxygen/src/anim/quadruped_low/run.rs @@ -86,18 +86,10 @@ impl Animation for RunAnimation { next.tail_rear.ori = Quaternion::rotation_x(center * 0.03); next.tail_rear.scale = Vec3::one() * 0.98; - next.chest_front.offset = Vec3::new( - 0.0, - skeleton_attr.chest_front.0 + horichest * 1.25, - skeleton_attr.chest_front.1 + vertchest * -1.6 + 1.0, - ); - next.chest_front.ori = Quaternion::rotation_y(horichest * -0.09); - next.chest_front.scale = Vec3::one(); - - next.chest_rear.offset = - Vec3::new(0.0, skeleton_attr.chest_rear.0, skeleton_attr.chest_rear.1); - next.chest_rear.ori = Quaternion::rotation_y(horichest * -0.09); - next.chest_rear.scale = Vec3::one(); + next.chest.offset = + Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1); + next.chest.ori = Quaternion::rotation_y(horichest * -0.09); + next.chest.scale = Vec3::one(); next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index 7a1193a1c1..9288b80625 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -56,10 +56,10 @@ impl Skeleton for QuadrupedMediumSkeleton { FigureBoneData::new(self.leg_rf.compute_base_matrix()), FigureBoneData::new(self.leg_lb.compute_base_matrix()), FigureBoneData::new(self.leg_rb.compute_base_matrix()), - FigureBoneData::new(self.foot_lf.compute_base_matrix()), - FigureBoneData::new(self.foot_rf.compute_base_matrix()), - FigureBoneData::new(self.foot_lb.compute_base_matrix()), - FigureBoneData::new(self.foot_rb.compute_base_matrix()), + FigureBoneData::new(self.leg_lf.compute_base_matrix() * self.foot_lf.compute_base_matrix()), + FigureBoneData::new(self.leg_rf.compute_base_matrix() * self.foot_rf.compute_base_matrix()), + FigureBoneData::new(self.leg_lb.compute_base_matrix() * self.foot_lb.compute_base_matrix()), + FigureBoneData::new(self.leg_rb.compute_base_matrix() * self.foot_rb.compute_base_matrix()), FigureBoneData::default(), ], Vec3::default(), diff --git a/voxygen/src/scene/figure/cache.rs b/voxygen/src/scene/figure/cache.rs index 9bab8b701a..cf5c55278c 100644 --- a/voxygen/src/scene/figure/cache.rs +++ b/voxygen/src/scene/figure/cache.rs @@ -726,12 +726,7 @@ impl FigureModelCache { body.body_type, generate_mesh, )), - Some(quadruped_low_central_spec.mesh_chest_front( - body.species, - body.body_type, - generate_mesh, - )), - Some(quadruped_low_central_spec.mesh_chest_rear( + Some(quadruped_low_central_spec.mesh_chest( body.species, body.body_type, generate_mesh, @@ -761,6 +756,7 @@ impl FigureModelCache { None, None, None, + None, ] }, Body::Object(object) => [ diff --git a/voxygen/src/scene/figure/load.rs b/voxygen/src/scene/figure/load.rs index 5913b31cd0..d0f38faeb9 100644 --- a/voxygen/src/scene/figure/load.rs +++ b/voxygen/src/scene/figure/load.rs @@ -1579,7 +1579,7 @@ impl QuadrupedMediumLateralSpec { Some(spec) => spec, None => { error!( - "No foot specification exists for the combination of {:?} and {:?}", + "No leg specification exists for the combination of {:?} and {:?}", species, body_type ); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); @@ -3051,8 +3051,7 @@ struct SidedQLCentralVoxSpec { upper: QuadrupedLowCentralSubSpec, lower: QuadrupedLowCentralSubSpec, jaw: QuadrupedLowCentralSubSpec, - chest_front: QuadrupedLowCentralSubSpec, - chest_rear: QuadrupedLowCentralSubSpec, + chest: QuadrupedLowCentralSubSpec, tail_front: QuadrupedLowCentralSubSpec, tail_rear: QuadrupedLowCentralSubSpec, } @@ -3162,7 +3161,7 @@ impl QuadrupedLowCentralSpec { generate_mesh(¢ral, Vec3::from(spec.jaw.offset)) } - pub fn mesh_chest_front( + pub fn mesh_chest( &self, species: QLSpecies, body_type: QLBodyType, @@ -3172,36 +3171,15 @@ impl QuadrupedLowCentralSpec { Some(spec) => spec, None => { error!( - "No chest_front specification exists for the combination of {:?} and {:?}", + "No chest specification exists for the combination of {:?} and {:?}", species, body_type ); return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); }, }; - let central = graceful_load_segment(&spec.chest_front.central.0); + let central = graceful_load_segment(&spec.chest.central.0); - generate_mesh(¢ral, Vec3::from(spec.chest_front.offset)) - } - - pub fn mesh_chest_rear( - &self, - species: QLSpecies, - body_type: QLBodyType, - generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, - ) -> Mesh { - let spec = match self.0.get(&(species, body_type)) { - Some(spec) => spec, - None => { - error!( - "No chest_rear specification exists for the combination of {:?} and {:?}", - species, body_type - ); - return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); - }, - }; - let central = graceful_load_segment(&spec.chest_rear.central.0); - - generate_mesh(¢ral, Vec3::from(spec.chest_rear.offset)) + generate_mesh(¢ral, Vec3::from(spec.chest.offset)) } pub fn mesh_tail_rear( From cdb91e95c17f0a77ddb200ca58981d1571026281 Mon Sep 17 00:00:00 2001 From: jshipsey Date: Thu, 4 Jun 2020 22:04:07 -0400 Subject: [PATCH 05/48] manifests, skeleton, basic placement --- .../voxel/npc/monitor/female/chest.vox | Bin 3144 -> 3144 bytes .../voxel/npc/monitor/female/foot_br.vox | Bin 1260 -> 1260 bytes .../voxel/npc/monitor/female/foot_fr.vox | Bin 1292 -> 1292 bytes .../voxel/npc/monitor/female/head_lower.vox | Bin 1656 -> 1656 bytes .../voxygen/voxel/npc/monitor/female/jaw.vox | Bin 1280 -> 44387 bytes .../voxel/npc/monitor/female/tail_front.vox | Bin 1592 -> 1592 bytes .../voxygen/voxel/npc/monitor/male/chest.vox | Bin 3144 -> 3144 bytes .../voxel/npc/monitor/male/foot_br.vox | Bin 1260 -> 1260 bytes .../voxel/npc/monitor/male/foot_fr.vox | Bin 1292 -> 1292 bytes .../voxel/npc/monitor/male/head_lower.vox | Bin 1656 -> 1656 bytes assets/voxygen/voxel/npc/monitor/male/jaw.vox | Bin 1280 -> 44387 bytes .../voxel/npc/monitor/male/tail_front.vox | Bin 1592 -> 1592 bytes .../voxel/quadruped_low_central_manifest.ron | 97 ++++++++--------- .../voxel/quadruped_low_lateral_manifest.ron | 64 ++++++------ voxygen/src/anim/quadruped_low/idle.rs | 24 ++--- voxygen/src/anim/quadruped_low/mod.rs | 98 +++++++++--------- voxygen/src/anim/quadruped_low/run.rs | 10 +- voxygen/src/scene/figure/cache.rs | 10 +- 18 files changed, 151 insertions(+), 152 deletions(-) diff --git a/assets/voxygen/voxel/npc/monitor/female/chest.vox b/assets/voxygen/voxel/npc/monitor/female/chest.vox index 7b0392fadea9a215aa5c889bcf9b875bd97d8fe7..b5e2ca846de576c9d711deed837cb565e8f5bd5a 100644 GIT binary patch literal 3144 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 delta 602 zcmXw!&5af@5JboQZ)*i95ClnZ;S7X85?=xwNX4E&JmKt-=am@gsk*D$ZO{AL``h0y zug}+Y{pZKeU*En82Hzj(Cc9jo-maZ!prNvR(;Z};I*nZ0E^SZ9$*A$FUCfhzD4w(@ znMpnS*o#Kf*Ul3N%~^tWX*)i+c9+8$R(#!wmMHW34CN6}%0(a9^*DV$o?OgaPdU3G zoQD}1S}9LL(5Jmv7Bq1}K+D=wczM*xp-fpq7Cae0i+ldb{a8j!8YJGh#*9bSRJ6!&i}4_+4tVi`}X8Vl&0Kq^-cu zW-IUtt>E05ai8g&H(zdccS!1Cw!VjP2m&Lyq%#-?F6wyYwi4>hxZRaHGkKtr!Dwv` O{@VFFZ})HcWd8t~qNv9WA zjGTn7$Eep`G03w)uPfBcvyPKaw#gJF+oE*3D?*<2vR%l$K`(j?I?w5I^te0gY z*Xy{NEq9iI*2icTg&lLeLV0kRJ%Y(b~(HENYi|4E@OW;iJ!EHR)=CRi~xnSlA2KM60A-yb- zy_h(pS5{;%77gi@9ofrxt6n*gy;waYmNl{$-(Ev{JSBTCo2-O^p4J-j9u?{pUhg_IPO*EnQ?L`-TE)X;?&EZKc%JZl|t2KFaIz zQcO`C#cwi^Y0FefKQMztaTJN#5hM=XN#cAQ#Viptu1?T|-GZh)FKBqJppmVD#>jHq zF+n*?qG{&x(NwW@3_aR?7tL=Gw4y^$`b7H z!^vd1Fonjg7c^%Pfm7KqMIEju?Bu>Xt+w?>_VjfG^W+xIYyqh}Y-PSGB z>zYPy%X3Ggpc79DI(J0S#Z$6eBb+X%IDM4l9}PQGaIK<@hl5HHEROx%9Z<35JS5ksih`w z1s&ekOx;JfQ@baHTGk~}baXV0A9DvyPmCc;dJ5%cPNtbz>9qUd33TFM3cYbLgRWnm zN>9r<&m0zX=_NsLy(XwxOQXH5*>wK+JbLfVmE_+MLpzVg(y5+!x=zVdA@@VA-y!#< zLD0PP|GoaY#goJ9f39(fT7S~`(Ug%gmNJq@Q9=4BTAe?VR$KblpPQ6Gr5TfGeQqZC z=g*+>j5yMA5@}~iD)IWWv$LsURT0&??xTXXhbX=^o-RBi=-N6#$I{Yh%=iSFFfo7Me(tw; z!D(8%@)G%Lh?@2sq1I>5(Br3HrG2klC9AKEMxA_@qUWrmL|Y3L6&2A<`BD+XWugzr za8=Na7el@q^8Wg`cKH(Imn1*_!smnQ)`!cHZIR`H<09KsK>6+e^pS62s}}QHS>JKH z%&2E)u*v5fE(J*fkLjp7V>)rwve|UTgaCm zTgbO7wvb&Xhb?3swr~WzFdAOSKUQL2<&p5hQSidi@IwBv9{WDL173J1 zyl@P>kUtB;z7NO33*+F0m!Uy1mTi}Hc!V5nGFWd?*d;Dyh?3!jA-ei2@H7+&}#c;OLv;g{isN8yEE zffpWw7d{6sJPt2B0WUlWFMJ+ecnV&48eaHSc;Oj%VHdox8(#P|c;O51!WZF%UxydI z1TTCUUib}o;Wy!hXW@mfzzfg83%>;~d=*~!ZFu2%c;R>8g%{w3--Q=mgcp7fUif`@ z;U#$C58#ED;e}V=g+1`XAHoZ-!V6!67hZ!G{s><9I=t}5@WMCXg+GB8{uEyLCcN-x z@WSix!k@znZ@>$G0WZ7>FZ?CE@GW@Zui%Am!wY{6FMJ1H_#1fPZ{dZ%gBSiDUib%i z;UD3Je}Wgj3om>RUifEt;a}i|e}xym4=?;1yzm2f;osqfAHoa&0WbU~yzpP}!hgdH z{{t`lFT9W-h5lu87iv<*$1s_qWU>XDd`=^0G*7i&oelE4IWtccYNKT#%W5_CCLU(9 zdt7cO54M_3R zA?(3ArSjXGY>tpUCtOiGLiW$Gnk?oVUV^Hx)0~4la>Xqd$_=j2vhuBJR&Tb=p_bKG zQsXS<&<0s7YPmBQDvv?SWw@={>$3GNITYuXyUYuIK!u1{u$tBF^aRuutM)eV@Eofu zIlR>&YF3EqZ1j1VYEi8XnoGIaWDA7yid5;gJDfI;Y8+7ER}~Cd(+lCb)%<+NsEw?2 zd%blkdY#r7+WF892deCDrwVWzPiGJKoK-=n-B#)955g^Gll9zUCN!~H!G_)_+$%h> z%DDX60Dm}&x>Nz5y-M?_i)rZ(%j=S_!z|TBz7BnEdsFyo^8c^K$L%tOCkh2~27@x# tfNkSJ7Pb1o=Kj3huJU1=3av`K;Qmsj%T_h0q{f+*Q{5mu#$u9R9|4`h!E*or delta 51 zcmaESi>ZN2HOxOkVHyJigRi5fACO{r!@|H2>>1_C1L6Py8xV6&R6W0WKNAlN05u5; AmH+?% diff --git a/assets/voxygen/voxel/npc/monitor/female/tail_front.vox b/assets/voxygen/voxel/npc/monitor/female/tail_front.vox index ae92ccd1fb423ce3f5c443db6c8250b40d844300..989985b73036c32d35bf85a483702e396c765a9d 100644 GIT binary patch delta 527 zcmW-d$x+2X5JOwt-aQ#`fh@Sfg*yp31&DzN=JunQa!5RVSE z)*3P89jQB~x+RU6H8OJ4ns?5;TaMhb=U!dA?pVkJ(O-U#y0bCAW>?EzXZG;S;vDe4 z&HD{zi(2wZ*T{or21HRb6;L6nsf)o{HB{tSRzPR<@IOR>z$%tAUr!QVlRRt8B1#sv zSRi6KCR>bTUmX^4c_HL(fHb)-l_L-lUVISakjT}JGe9VhlR2&^TocZStIBZRBse0w zWp{!ZJ2SK2{~N;X>du}E6@o-|frL;gtWP)lQm!f2u`w*h1O~*xmD&&vv~m^D7Q_KL YG0;H_bP@w`{rA`BM@;ej{@!!?2e^T4(EtDd delta 527 zcmW-d$x+2X5JRWc?cEu0fh@Sfg*yp31&DzN=JunQa!5RVSExn=sOwa(Lp?k*I|saP z^?rldq$b{oYvfKd1EMIJ3MdhEMi+y%#88rBSpgl{!~YNk0xMb0d_75cP4cWUizr#x zY=Ma7m^|A^_SJ3?mls0r21t|ZGBg4a;l(>K4vAcCI0J<8IGE##!ZqQHxT*~2O@bq` zTXv^0V`nDz`+r5aUESDop+bX=^P^RJet++(e?B;FPXGV_ diff --git a/assets/voxygen/voxel/npc/monitor/male/chest.vox b/assets/voxygen/voxel/npc/monitor/male/chest.vox index 7b0392fadea9a215aa5c889bcf9b875bd97d8fe7..b5e2ca846de576c9d711deed837cb565e8f5bd5a 100644 GIT binary patch literal 3144 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 delta 602 zcmXw!&5af@5JboQZ)*i95ClnZ;S7X85?=xwNX4E&JmKt-=am@gsk*D$ZO{AL``h0y zug}+Y{pZKeU*En82Hzj(Cc9jo-maZ!prNvR(;Z};I*nZ0E^SZ9$*A$FUCfhzD4w(@ znMpnS*o#Kf*Ul3N%~^tWX*)i+c9+8$R(#!wmMHW34CN6}%0(a9^*DV$o?OgaPdU3G zoQD}1S}9LL(5Jmv7Bq1}K+D=wczM*xp-fpq7Cae0i+ldb{a8j!8YJGh#*9bSRJ6!&i}4_+4tVi`}X8Vl&0Kq^-cu zW-IUtt>E05ai8g&H(zdccS!1Cw!VjP2m&Lyq%#-?F6wyYwi4>hxZRaHGkKtr!Dwv` O{@VFFZ})HcWd8t~qNv9WA zjGTn7$Eep`G03w)uPfBcvyPKaw#gJF+oE*3D?*<2vR%l$K`(j?I?w5I^te0gY z*Xy{NEq9iI*2icTg&lLeLV0kRJ%Y(b~(HENYi|4E@OW;iJ!EHR)=CRi~xnSlA2KM60A-yb- zy_h(pS5{;%77gi@9ofrxt6n*gy;waYmNl{$-(Ev{JSBTCo2-O^p4J-j9u?{pUhg_IPO*EnQ?L`-TE)X;?&EZKc%JZl|t2KFaIz zQcO`C#cwi^Y0FefKQMztaTJN#5hM=XN#cAQ#Viptu1?T|-GZh)FKBqJppmVD#>jHq zF+n*?qG{&x(NwW@3_aR?7tL=Gw4y^$`b7H z!^vd1Fonjg7c^%Pfm7KqMIEju?Bu>Xt+w?>_VjfG^W+xIYyqh}Y-PSGB z>zYPy%X3Ggpc79DI(J0S#Z$6eBb+X%IDM4l9}PQGaIK<@hl5HHEROx%9Z<35JS5ksih`w z1s&ekOx;JfQ@baHTGk~}baXV0A9DvyPmCc;dJ5%cPNtbz>9qUd33TFM3cYbLgRWnm zN>9r<&m0zX=_NsLy(XwxOQXH5*>wK+JbLfVmE_+MLpzVg(y5+!x=zVdA@@VA-y!#< zLD0PP|GoaY#goJ9f39(fT7S~`(Ug%gmNJq@Q9=4BTAe?VR$KblpPQ6Gr5TfGeQqZC z=g*+>j5yMA5@}~iD)IWWv$LsURT0&??xTXXhbX=^o-RBi=-N6#$I{Yh%=iSFFfo7Me(tw; z!D(8%@)G%Lh?@2sq1I>5(Br3HrG2klC9AKEMxA_@qUWrmL|Y3L6&2A<`BD+XWugzr za8=Na7el@q^8Wg`cKH(Imn1*_!smnQ)`!cHZIR`H<09KsK>6+e^pS62s}}QHS>JKH z%&2E)u*v5fE(J*fkLjp7V>)rwve|UTgaCm zTgbO7wvb&Xhb?3swr~WzFdAOSKUQL2<&p5hQSidi@IwBv9{WDL173J1 zyl@P>kUtB;z7NO33*+F0m!Uy1mTi}Hc!V5nGFWd?*d;Dyh?3!jA-ei2@H7+&}#c;OLv;g{isN8yEE zffpWw7d{6sJPt2B0WUlWFMJ+ecnV&48eaHSc;Oj%VHdox8(#P|c;O51!WZF%UxydI z1TTCUUib}o;Wy!hXW@mfzzfg83%>;~d=*~!ZFu2%c;R>8g%{w3--Q=mgcp7fUif`@ z;U#$C58#ED;e}V=g+1`XAHoZ-!V6!67hZ!G{s><9I=t}5@WMCXg+GB8{uEyLCcN-x z@WSix!k@znZ@>$G0WZ7>FZ?CE@GW@Zui%Am!wY{6FMJ1H_#1fPZ{dZ%gBSiDUib%i z;UD3Je}Wgj3om>RUifEt;a}i|e}xym4=?;1yzm2f;osqfAHoa&0WbU~yzpP}!hgdH z{{t`lFT9W-h5lu87iv<*$1s_qWU>XDd`=^0G*7i&oelE4IWtccYNKT#%W5_CCLU(9 zdt7cO54M_3R zA?(3ArSjXGY>tpUCtOiGLiW$Gnk?oVUV^Hx)0~4la>Xqd$_=j2vhuBJR&Tb=p_bKG zQsXS<&<0s7YPmBQDvv?SWw@={>$3GNITYuXyUYuIK!u1{u$tBF^aRuutM)eV@Eofu zIlR>&YF3EqZ1j1VYEi8XnoGIaWDA7yid5;gJDfI;Y8+7ER}~Cd(+lCb)%<+NsEw?2 zd%blkdY#r7+WF892deCDrwVWzPiGJKoK-=n-B#)955g^Gll9zUCN!~H!G_)_+$%h> z%DDX60Dm}&x>Nz5y-M?_i)rZ(%j=S_!z|TBz7BnEdsFyo^8c^K$L%tOCkh2~27@x# tfNkSJ7Pb1o=Kj3huJU1=3av`K;Qmsj%T_h0q{f+*Q{5mu#$u9R9|4`h!E*or delta 51 zcmaESi>ZN2HOxOkVHyJigRi5fACO{r!@|H2>>1_C1L6Py8xV6&R6W0WKNAlN05u5; AmH+?% diff --git a/assets/voxygen/voxel/npc/monitor/male/tail_front.vox b/assets/voxygen/voxel/npc/monitor/male/tail_front.vox index ae92ccd1fb423ce3f5c443db6c8250b40d844300..989985b73036c32d35bf85a483702e396c765a9d 100644 GIT binary patch delta 527 zcmW-d$x+2X5JOwt-aQ#`fh@Sfg*yp31&DzN=JunQa!5RVSE z)*3P89jQB~x+RU6H8OJ4ns?5;TaMhb=U!dA?pVkJ(O-U#y0bCAW>?EzXZG;S;vDe4 z&HD{zi(2wZ*T{or21HRb6;L6nsf)o{HB{tSRzPR<@IOR>z$%tAUr!QVlRRt8B1#sv zSRi6KCR>bTUmX^4c_HL(fHb)-l_L-lUVISakjT}JGe9VhlR2&^TocZStIBZRBse0w zWp{!ZJ2SK2{~N;X>du}E6@o-|frL;gtWP)lQm!f2u`w*h1O~*xmD&&vv~m^D7Q_KL YG0;H_bP@w`{rA`BM@;ej{@!!?2e^T4(EtDd delta 527 zcmW-d$x+2X5JRWc?cEu0fh@Sfg*yp31&DzN=JunQa!5RVSExn=sOwa(Lp?k*I|saP z^?rldq$b{oYvfKd1EMIJ3MdhEMi+y%#88rBSpgl{!~YNk0xMb0d_75cP4cWUizr#x zY=Ma7m^|A^_SJ3?mls0r21t|ZGBg4a;l(>K4vAcCI0J<8IGE##!ZqQHxT*~2O@bq` zTXv^0V`nDz`+r5aUESDop+bX=^P^RJet++(e?B;FPXGV_ diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index 8860a70dca..1c43efdab1 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -1,209 +1,210 @@ ({ (Crocodile, Male): ( upper: ( - offset: (-7.0, -9.0, -5.5), + offset: (-4.0, -8.5, -3.0), central: ("npc.crocodile.male.head_upper"), ), lower: ( - offset: (-7.0, -4.5, -5.0), + offset: (-4.0, -4.0, -3.0), central: ("npc.crocodile.male.head_lower"), ), jaw: ( - offset: (-3.0, -3.0, -2.5), + offset: (-4.0, -7.0, -1.5), central: ("npc.crocodile.male.jaw"), ), chest: ( - offset: (-8.0, -5.5, -6.0), + offset: (-5.0, -7.5, -3.0), central: ("npc.crocodile.male.chest"), ), tail_rear: ( - offset: (-2.0, -9.5, -5.0), + offset: (-1.0, -4.5, -1.5), central: ("npc.crocodile.male.tail_rear"), ), tail_front: ( - offset: (-2.0, -9.5, -5.0), + offset: (-3.0, -13.0, -2.5), central: ("npc.crocodile.male.tail_front"), ), ), (Crocodile, Female): ( upper: ( - offset: (-7.0, -9.0, -5.5), + offset: (-4.0, -8.5, -3.0), central: ("npc.crocodile.female.head_upper"), ), lower: ( - offset: (-7.0, -4.5, -5.0), + offset: (-4.0, -4.0, -3.0), central: ("npc.crocodile.female.head_lower"), ), jaw: ( - offset: (-3.0, -3.0, -2.5), + offset: (-4.0, -7.0, -1.5), central: ("npc.crocodile.female.jaw"), ), chest: ( - offset: (-8.0, -5.5, -6.0), + offset: (-5.0, -7.5, -3.0), central: ("npc.crocodile.female.chest"), ), tail_rear: ( - offset: (-2.0, -9.5, -5.0), + offset: (-1.0, -4.5, -1.5), central: ("npc.crocodile.female.tail_rear"), ), tail_front: ( - offset: (-2.0, -9.5, -5.0), + offset: (-3.0, -13.0, -2.5), central: ("npc.crocodile.female.tail_front"), ), ), (Alligator, Male): ( upper: ( - offset: (-7.0, -9.0, -5.5), + offset: (-4.0, -8.5, -2.5), central: ("npc.alligator.male.head_upper"), ), lower: ( - offset: (-7.0, -4.5, -5.0), + offset: (-4.0, -4.0, -3.5), central: ("npc.alligator.male.head_lower"), ), jaw: ( - offset: (-3.0, -3.0, -2.5), + offset: (-4.0, -7.5, -2.5), central: ("npc.alligator.male.jaw"), ), chest: ( - offset: (-8.0, -5.5, -6.0), + offset: (-6.0, -7.5, -3.5), central: ("npc.alligator.male.chest"), ), tail_rear: ( - offset: (-2.0, -9.5, -5.0), + offset: (-2.0, -9.0, -1.5), central: ("npc.alligator.male.tail_rear"), ), tail_front: ( - offset: (-2.0, -9.5, -5.0), + offset: (-4.0, -13.0, -2.5), central: ("npc.alligator.male.tail_front"), ), ), (Alligator, Female): ( upper: ( - offset: (-7.0, -9.0, -5.5), + offset: (-4.0, -8.5, -2.5), central: ("npc.alligator.female.head_upper"), ), lower: ( - offset: (-7.0, -4.5, -5.0), + offset: (-4.0, -4.0, -3.5), central: ("npc.alligator.female.head_lower"), ), jaw: ( - offset: (-3.0, -3.0, -2.5), + offset: (-4.0, -7.5, -2.5), central: ("npc.alligator.female.jaw"), ), chest: ( - offset: (-8.0, -5.5, -6.0), + offset: (-6.0, -7.5, -3.5), central: ("npc.alligator.female.chest"), ), tail_rear: ( - offset: (-2.0, -9.5, -5.0), + offset: (-2.0, -9.0, -1.5), central: ("npc.alligator.female.tail_rear"), ), tail_front: ( - offset: (-2.0, -9.5, -5.0), + offset: (-4.0, -13.0, -2.5), central: ("npc.alligator.female.tail_front"), ), ), (Salamander, Male): ( upper: ( - offset: (-7.0, -9.0, -5.5), + offset: (-6.5, -6.0, -2.0), central: ("npc.salamander.male.head_upper"), ), lower: ( - offset: (-7.0, -4.5, -5.0), + offset: (-6.5, -3.5, -2.0), central: ("npc.salamander.male.head_lower"), ), jaw: ( - offset: (-3.0, -3.0, -2.5), + offset: (-5.5, -4.0, -2.0), central: ("npc.salamander.male.jaw"), ), chest: ( - offset: (-8.0, -5.5, -6.0), + offset: (-6.5, -8.5, -3.0), central: ("npc.salamander.male.chest"), ), tail_rear: ( - offset: (-2.0, -9.5, -5.0), + offset: (-3.0, -13.0, -3.0), central: ("npc.salamander.male.tail_rear"), ), tail_front: ( - offset: (-2.0, -9.5, -5.0), + offset: (-4.5, -9.0, -3.0), central: ("npc.salamander.male.tail_front"), ), ), (Salamander, Female): ( upper: ( - offset: (-7.0, -9.0, -5.5), + offset: (-6.5, -6.0, -2.0), central: ("npc.salamander.female.head_upper"), ), lower: ( - offset: (-7.0, -4.5, -5.0), + offset: (-6.5, -3.5, -2.0), central: ("npc.salamander.female.head_lower"), ), jaw: ( - offset: (-3.0, -3.0, -2.5), + offset: (-5.5, -4.0, -2.0), central: ("npc.salamander.female.jaw"), ), chest: ( - offset: (-8.0, -5.5, -6.0), + offset: (-6.5, -8.5, -3.0), central: ("npc.salamander.female.chest"), ), tail_rear: ( - offset: (-2.0, -9.5, -5.0), + offset: (-3.0, -13.0, -3.0), central: ("npc.salamander.female.tail_rear"), ), tail_front: ( - offset: (-2.0, -9.5, -5.0), + offset: (-4.5, -9.0, -3.0), central: ("npc.salamander.female.tail_front"), ), ), (Monitor, Male): ( upper: ( - offset: (-7.0, -9.0, -5.5), + offset: (-3.0, -5.5, -3.0), central: ("npc.monitor.male.head_upper"), ), lower: ( - offset: (-7.0, -4.5, -5.0), + offset: (-3.0, -3.5, -3.5), central: ("npc.monitor.male.head_lower"), ), jaw: ( - offset: (-3.0, -3.0, -2.5), + offset: (-3.0, -3.5, -1.0), central: ("npc.monitor.male.jaw"), ), chest: ( - offset: (-8.0, -5.5, -6.0), + offset: (-4.0, -7.0, -3.0), central: ("npc.monitor.male.chest"), ), tail_rear: ( - offset: (-2.0, -9.5, -5.0), + offset: (-1.0, -11.0, -2.0), central: ("npc.monitor.male.tail_rear"), ), + tail_front: ( - offset: (-2.0, -9.5, -5.0), + offset: (-2.0, -13.0, -2.0), central: ("npc.monitor.male.tail_front"), ), ), (Monitor, Female): ( upper: ( - offset: (-7.0, -9.0, -5.5), + offset: (-3.0, -5.5, -3.0), central: ("npc.monitor.female.head_upper"), ), lower: ( - offset: (-7.0, -4.5, -5.0), + offset: (-3.0, -3.5, -3.5), central: ("npc.monitor.female.head_lower"), ), jaw: ( - offset: (-3.0, -3.0, -2.5), + offset: (-3.0, -3.5, -1.0), central: ("npc.monitor.female.jaw"), ), chest: ( - offset: (-8.0, -5.5, -6.0), + offset: (-4.0, -7.0, -3.0), central: ("npc.monitor.female.chest"), ), tail_rear: ( - offset: (-2.0, -9.5, -5.0), + offset: (-1.0, -11.0, -2.0), central: ("npc.monitor.female.tail_rear"), ), tail_front: ( - offset: (-2.0, -9.5, -5.0), + offset: (-2.0, -13.0, -2.0), central: ("npc.monitor.female.tail_front"), ), ), diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron index 6cc5a0cb0f..e4749253f8 100644 --- a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron @@ -1,145 +1,145 @@ ({ (Crocodile, Male): ( front_left: ( - offset: (-2.5, -4.0, -1.5), + offset: (-3.5, -3.5, -4.0), lateral: ("npc.crocodile.male.foot_fl"), ), front_right: ( - offset: (-2.5, -4.0, -1.5), + offset: (-3.5, -3.5, -4.0), lateral: ("npc.crocodile.male.foot_fr"), ), back_left: ( - offset: (-2.5, -4.0, -3.0), + offset: (-4.0, -2.5, -4.0), lateral: ("npc.crocodile.male.foot_bl"), ), back_right: ( - offset: (-2.5, -4.0, -3.0), + offset: (-4.0, -2.5, -4.0), lateral: ("npc.crocodile.male.foot_br"), ), ), (Crocodile, Female): ( front_left: ( - offset: (-2.5, -4.0, -1.5), + offset: (-3.5, -3.5, -4.0), lateral: ("npc.crocodile.female.foot_fl"), ), front_right: ( - offset: (-2.5, -4.0, -1.5), + offset: (-3.5, -3.5, -4.0), lateral: ("npc.crocodile.female.foot_fr"), ), back_left: ( - offset: (-2.5, -4.0, -3.0), + offset: (-4.0, -2.5, -4.0), lateral: ("npc.crocodile.female.foot_bl"), ), back_right: ( - offset: (-2.5, -4.0, -3.0), + offset: (-4.0, -2.5, -4.0), lateral: ("npc.crocodile.female.foot_br"), ), ), (Alligator, Male): ( front_left: ( - offset: (-2.5, -4.0, -1.5), + offset: (-3.5, -3.5, -4.0), lateral: ("npc.alligator.male.foot_fl"), ), front_right: ( - offset: (-2.5, -4.0, -1.5), + offset: (-3.5, -3.5, -4.0), lateral: ("npc.alligator.male.foot_fr"), ), back_left: ( - offset: (-2.5, -4.0, -3.0), + offset: (-4.0, -2.5, -4.0), lateral: ("npc.alligator.male.foot_bl"), ), back_right: ( - offset: (-2.5, -4.0, -3.0), + offset: (-4.0, -2.5, -4.0), lateral: ("npc.alligator.male.foot_br"), ), ), (Alligator, Female): ( front_left: ( - offset: (-2.5, -4.0, -1.5), + offset: (-3.5, -3.5, -4.0), lateral: ("npc.alligator.female.foot_fl"), ), front_right: ( - offset: (-2.5, -4.0, -1.5), + offset: (-3.5, -3.5, -4.0), lateral: ("npc.alligator.female.foot_fr"), ), back_left: ( - offset: (-2.5, -4.0, -3.0), + offset: (-4.0, -2.5, -4.0), lateral: ("npc.alligator.female.foot_bl"), ), back_right: ( - offset: (-2.5, -4.0, -3.0), + offset: (-4.0, -2.5, -4.0), lateral: ("npc.alligator.female.foot_br"), ), ), (Salamander, Male): ( front_left: ( - offset: (-2.5, -4.0, -1.5), + offset: (-3.0, -3.5, -3.0), lateral: ("npc.salamander.male.foot_fl"), ), front_right: ( - offset: (-2.5, -4.0, -1.5), + offset: (-3.0, -3.5, -3.0), lateral: ("npc.salamander.male.foot_fr"), ), back_left: ( - offset: (-2.5, -4.0, -3.0), + offset: (-3.5, -2.5, -3.0), lateral: ("npc.salamander.male.foot_bl"), ), back_right: ( - offset: (-2.5, -4.0, -3.0), + offset: (-3.5, -2.5, -3.0), lateral: ("npc.salamander.male.foot_br"), ), ), (Salamander, Female): ( front_left: ( - offset: (-2.5, -4.0, -1.5), + offset: (-3.0, -3.5, -3.0), lateral: ("npc.salamander.female.foot_fl"), ), front_right: ( - offset: (-2.5, -4.0, -1.5), + offset: (-3.0, -3.5, -3.0), lateral: ("npc.salamander.female.foot_fr"), ), back_left: ( - offset: (-2.5, -4.0, -3.0), + offset: (-3.5, -2.5, -3.0), lateral: ("npc.salamander.female.foot_bl"), ), back_right: ( - offset: (-2.5, -4.0, -3.0), + offset: (-3.5, -2.5, -3.0), lateral: ("npc.salamander.female.foot_br"), ), ), (Monitor, Male): ( front_left: ( - offset: (-2.5, -4.0, -1.5), + offset: (-4.0, -3.5, -5.0), lateral: ("npc.monitor.male.foot_fl"), ), front_right: ( - offset: (-2.5, -4.0, -1.5), + offset: (-4.0, -3.5, -5.0), lateral: ("npc.monitor.male.foot_fr"), ), back_left: ( - offset: (-2.5, -4.0, -3.0), + offset: (-3.5, -2.5, -5.0), lateral: ("npc.monitor.male.foot_bl"), ), back_right: ( - offset: (-2.5, -4.0, -3.0), + offset: (-3.5, -2.5, -5.0), lateral: ("npc.monitor.male.foot_br"), ), ), (Monitor, Female): ( front_left: ( - offset: (-2.5, -4.0, -1.5), + offset: (-4.0, -3.5, -5.0), lateral: ("npc.monitor.female.foot_fl"), ), front_right: ( - offset: (-2.5, -4.0, -1.5), + offset: (-4.0, -3.5, -5.0), lateral: ("npc.monitor.female.foot_fr"), ), back_left: ( - offset: (-2.5, -4.0, -3.0), + offset: (-3.5, -2.5, -5.0), lateral: ("npc.monitor.female.foot_bl"), ), back_right: ( - offset: (-2.5, -4.0, -3.0), + offset: (-3.5, -2.5, -5.0), lateral: ("npc.monitor.female.foot_br"), ), ), diff --git a/voxygen/src/anim/quadruped_low/idle.rs b/voxygen/src/anim/quadruped_low/idle.rs index 380eb268b1..446ef9fd49 100644 --- a/voxygen/src/anim/quadruped_low/idle.rs +++ b/voxygen/src/anim/quadruped_low/idle.rs @@ -17,9 +17,9 @@ impl Animation for IdleAnimation { ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let ultra_slow = (anim_time as f32 * 1.0).sin(); - let slow = (anim_time as f32 * 2.5).sin(); - let slowalt = (anim_time as f32 * 2.5 + PI / 2.0).sin(); + let ultra_slow = 0.0*(anim_time as f32 * 1.0).sin(); + let slow = 0.0*(anim_time as f32 * 2.5).sin(); + let slowalt = 0.0*(anim_time as f32 * 2.5 + PI / 2.0).sin(); let dragon_look = Vec2::new( ((global_time + anim_time) as f32 / 8.0) @@ -49,30 +49,30 @@ impl Animation for IdleAnimation { skeleton_attr.head_lower.1 + ultra_slow * 0.20, ); next.head_lower.ori = Quaternion::rotation_z(0.8 * dragon_look.x) - * Quaternion::rotation_x(-0.2 + 0.8 * dragon_look.y); - next.head_lower.scale = Vec3::one() * 1.05; + * Quaternion::rotation_x( 0.8 * dragon_look.y); + next.head_lower.scale = Vec3::one(); next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); next.jaw.ori = Quaternion::rotation_x(slow * 0.04); - next.jaw.scale = Vec3::one() * 1.05; + next.jaw.scale = Vec3::one()*0.98; next.chest.offset = Vec3::new( 0.0, skeleton_attr.chest.0, skeleton_attr.chest.1, - ); + )/6.0; next.chest.ori = Quaternion::rotation_y(slow * 0.01); - next.chest.scale = Vec3::one() * 1.05; + next.chest.scale = Vec3::one() /6.0; next.tail_front.offset = Vec3::new(0.0, skeleton_attr.tail_front.0, skeleton_attr.tail_front.1); - next.tail_front.ori = Quaternion::rotation_z(slowalt * 0.10) * Quaternion::rotation_x(0.1); - next.tail_front.scale = Vec3::one() * 0.98; + next.tail_front.ori = Quaternion::rotation_z(0.0); + next.tail_front.scale = Vec3::one()*0.98; next.tail_rear.offset = Vec3::new(0.0, skeleton_attr.tail_rear.0, skeleton_attr.tail_rear.1); - next.tail_rear.ori = Quaternion::rotation_z(slowalt * 0.12) * Quaternion::rotation_x(0.05); - next.tail_rear.scale = Vec3::one() * 0.98; + next.tail_rear.ori = Quaternion::rotation_z(slowalt * 0.12); + next.tail_rear.scale = Vec3::one()*0.98; next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, diff --git a/voxygen/src/anim/quadruped_low/mod.rs b/voxygen/src/anim/quadruped_low/mod.rs index 30305eb20e..5211dae55f 100644 --- a/voxygen/src/anim/quadruped_low/mod.rs +++ b/voxygen/src/anim/quadruped_low/mod.rs @@ -15,9 +15,9 @@ pub struct QuadrupedLowSkeleton { head_upper: Bone, head_lower: Bone, jaw: Bone, + chest: Bone, tail_front: Bone, tail_rear: Bone, - chest: Bone, foot_fl: Bone, foot_fr: Bone, foot_bl: Bone, @@ -37,7 +37,6 @@ impl Skeleton for QuadrupedLowSkeleton { let head_upper_mat = self.head_upper.compute_base_matrix(); let head_lower_mat = self.head_lower.compute_base_matrix(); let chest_mat = self.chest.compute_base_matrix(); - let chest_mat = self.chest.compute_base_matrix(); ( [ FigureBoneData::new(chest_mat * head_lower_mat * head_upper_mat), @@ -52,14 +51,13 @@ impl Skeleton for QuadrupedLowSkeleton { FigureBoneData::new(chest_mat * self.tail_front.compute_base_matrix()), FigureBoneData::new( chest_mat - * chest_mat * self.tail_front.compute_base_matrix() * self.tail_rear.compute_base_matrix(), ), - FigureBoneData::new(self.foot_fl.compute_base_matrix()), - FigureBoneData::new(self.foot_fr.compute_base_matrix()), - FigureBoneData::new(self.foot_bl.compute_base_matrix()), - FigureBoneData::new(self.foot_br.compute_base_matrix()), + FigureBoneData::new(chest_mat*self.foot_fl.compute_base_matrix()), + FigureBoneData::new(chest_mat*self.foot_fr.compute_base_matrix()), + FigureBoneData::new(chest_mat*self.foot_bl.compute_base_matrix()), + FigureBoneData::new(chest_mat*self.foot_br.compute_base_matrix()), FigureBoneData::default(), FigureBoneData::default(), FigureBoneData::default(), @@ -75,9 +73,9 @@ impl Skeleton for QuadrupedLowSkeleton { self.head_upper.interpolate(&target.head_upper, dt); self.head_lower.interpolate(&target.head_lower, dt); self.jaw.interpolate(&target.jaw, dt); + self.chest.interpolate(&target.chest, dt); self.tail_front.interpolate(&target.tail_front, dt); self.tail_rear.interpolate(&target.tail_rear, dt); - self.chest.interpolate(&target.chest, dt); self.foot_fl.interpolate(&target.foot_fl, dt); self.foot_fr.interpolate(&target.foot_fr, dt); self.foot_bl.interpolate(&target.foot_bl, dt); @@ -89,9 +87,9 @@ pub struct SkeletonAttr { head_upper: (f32, f32), head_lower: (f32, f32), jaw: (f32, f32), + chest: (f32, f32), tail_front: (f32, f32), tail_rear: (f32, f32), - chest: (f32, f32), feet_f: (f32, f32, f32), feet_b: (f32, f32, f32), height: f32, @@ -114,9 +112,9 @@ impl Default for SkeletonAttr { head_upper: (0.0, 0.0), head_lower: (0.0, 0.0), jaw: (0.0, 0.0), + chest: (0.0, 0.0), tail_front: (0.0, 0.0), tail_rear: (0.0, 0.0), - chest: (0.0, 0.0), feet_f: (0.0, 0.0, 0.0), feet_b: (0.0, 0.0, 0.0), height: (0.0), @@ -129,58 +127,58 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { use comp::quadruped_low::Species::*; Self { head_upper: match (body.species, body.body_type) { - (Crocodile, _) => (12.0, 16.0), - (Alligator, _) => (12.0, 16.0), - (Salamander, _) => (12.0, 16.0), - (Monitor, _) => (12.0, 16.0), + (Crocodile, _) => (8.0, 4.0), + (Alligator, _) => (7.0, 4.0), + (Salamander, _) => (3.0, 3.0), + (Monitor, _) => (4.0, 2.0), }, head_lower: match (body.species, body.body_type) { - (Crocodile, _) => (-4.0, -7.0), - (Alligator, _) => (-4.0, -7.0), - (Salamander, _) => (-4.0, -7.0), - (Monitor, _) => (-4.0, -7.0), + (Crocodile, _) => (8.0, 0.0), + (Alligator, _) => (7.0, 0.0), + (Salamander, _) => (10.0, 2.0), + (Monitor, _) => (10.0, 3.0), }, jaw: match (body.species, body.body_type) { - (Crocodile, _) => (3.0, -5.0), - (Alligator, _) => (3.0, -5.0), - (Salamander, _) => (3.0, -5.0), - (Monitor, _) => (3.0, -5.0), - }, - tail_rear: match (body.species, body.body_type) { - (Crocodile, _) => (-6.0, -2.0), - (Alligator, _) => (-6.0, -2.0), - (Salamander, _) => (-6.0, -2.0), - (Monitor, _) => (-6.0, -2.0), - }, - tail_front: match (body.species, body.body_type) { - (Crocodile, _) => (-6.0, -2.0), - (Alligator, _) => (-6.0, -2.0), - (Salamander, _) => (-6.0, -2.0), - (Monitor, _) => (-6.0, -2.0), + (Crocodile, _) => (0.0, -3.0), + (Alligator, _) => (0.0, -2.0), + (Salamander, _) => (2.0, -3.0), + (Monitor, _) => (0.0, -1.0), }, chest: match (body.species, body.body_type) { - (Crocodile, _) => (4.0, 11.0), - (Alligator, _) => (4.0, 11.0), - (Salamander, _) => (4.0, 11.0), - (Monitor, _) => (4.0, 11.0), + (Crocodile, _) => (0.0, 5.0), + (Alligator, _) => (0.0, 5.0), + (Salamander, _) => (0.0, 5.0), + (Monitor, _) => (0.0, 5.0), + }, + tail_rear: match (body.species, body.body_type) { + (Crocodile, _) => (-14.0, -1.0), + (Alligator, _) => (-13.0, -1.0), + (Salamander, _) => (-7.0, 0.0), + (Monitor, _) => (-5.0, 0.0), + }, + tail_front: match (body.species, body.body_type) { + (Crocodile, _) => (-6.0, 0.0), + (Alligator, _) => (-5.0, 0.0), + (Salamander, _) => (-5.0, 0.0), + (Monitor, _) => (-5.0, 0.0), }, feet_f: match (body.species, body.body_type) { - (Crocodile, _) => (5.0, 6.0, 2.0), - (Alligator, _) => (5.0, 6.0, 2.0), - (Salamander, _) => (5.0, 6.0, 2.0), - (Monitor, _) => (5.0, 6.0, 2.0), + (Crocodile, _) => (6.0, 6.0, 0.0), + (Alligator, _) => (6.0, 6.0, 0.0), + (Salamander, _) => (6.0, 6.0, -2.0), + (Monitor, _) => (6.0, 6.0, 0.0), }, feet_b: match (body.species, body.body_type) { - (Crocodile, _) => (5.0, -4.0, 3.0), - (Alligator, _) => (5.0, -4.0, 3.0), - (Salamander, _) => (5.0, -4.0, 3.0), - (Monitor, _) => (5.0, -4.0, 3.0), + (Crocodile, _) => (6.0, -6.0, 0.0), + (Alligator, _) => (6.0, -6.0, 0.0), + (Salamander, _) => (6.0, -6.0, -2.0), + (Monitor, _) => (6.0, -6.0, 0.0), }, height: match (body.species, body.body_type) { - (Crocodile, _) => (1.2), - (Alligator, _) => (1.2), - (Salamander, _) => (1.2), - (Monitor, _) => (1.2), + (Crocodile, _) => (1.0), + (Alligator, _) => (1.0), + (Salamander, _) => (1.0), + (Monitor, _) => (1.0), }, } } diff --git a/voxygen/src/anim/quadruped_low/run.rs b/voxygen/src/anim/quadruped_low/run.rs index bc842b3edf..72aba02ba0 100644 --- a/voxygen/src/anim/quadruped_low/run.rs +++ b/voxygen/src/anim/quadruped_low/run.rs @@ -68,7 +68,7 @@ impl Animation for RunAnimation { skeleton_attr.jaw.1 + wave_slow * 0.2, ); next.jaw.ori = Quaternion::rotation_x(wave_slow * 0.03); - next.jaw.scale = Vec3::one() * 1.05; + next.jaw.scale = Vec3::one(); next.tail_front.offset = Vec3::new( 0.0, @@ -76,7 +76,7 @@ impl Animation for RunAnimation { skeleton_attr.tail_front.1 + centeroffset * 0.6, ); next.tail_front.ori = Quaternion::rotation_x(center * 0.03); - next.tail_front.scale = Vec3::one() * 0.98; + next.tail_front.scale = Vec3::one(); next.tail_rear.offset = Vec3::new( 0.0, @@ -84,12 +84,12 @@ impl Animation for RunAnimation { skeleton_attr.tail_rear.1 + centeroffset * 0.6, ); next.tail_rear.ori = Quaternion::rotation_x(center * 0.03); - next.tail_rear.scale = Vec3::one() * 0.98; + next.tail_rear.scale = Vec3::one(); next.chest.offset = - Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1); + Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1)/6.0; next.chest.ori = Quaternion::rotation_y(horichest * -0.09); - next.chest.scale = Vec3::one(); + next.chest.scale = Vec3::one()/6.0; next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, diff --git a/voxygen/src/scene/figure/cache.rs b/voxygen/src/scene/figure/cache.rs index cf5c55278c..bf96ae1269 100644 --- a/voxygen/src/scene/figure/cache.rs +++ b/voxygen/src/scene/figure/cache.rs @@ -716,6 +716,11 @@ impl FigureModelCache { body.body_type, generate_mesh, )), + Some(quadruped_low_central_spec.mesh_chest( + body.species, + body.body_type, + generate_mesh, + )), Some(quadruped_low_central_spec.mesh_tail_front( body.species, body.body_type, @@ -726,11 +731,6 @@ impl FigureModelCache { body.body_type, generate_mesh, )), - Some(quadruped_low_central_spec.mesh_chest( - body.species, - body.body_type, - generate_mesh, - )), Some(quadruped_low_lateral_spec.mesh_foot_fl( body.species, body.body_type, From 3d936e687263242c26ccca8cc786bd70de44c457 Mon Sep 17 00:00:00 2001 From: jshipsey Date: Fri, 5 Jun 2020 23:23:09 -0400 Subject: [PATCH 06/48] starting run anim --- .../voxel/npc/alligator/female/head_lower.vox | Bin 2136 -> 2136 bytes .../voxel/npc/alligator/female/head_upper.vox | Bin 2376 -> 2376 bytes .../voxel/npc/alligator/male/head_lower.vox | Bin 2136 -> 2136 bytes .../voxel/npc/alligator/male/head_upper.vox | Bin 2376 -> 2376 bytes .../voxel/npc/crocodile/female/head_lower.vox | Bin 1968 -> 1968 bytes .../voxel/npc/crocodile/male/head_lower.vox | Bin 1968 -> 1968 bytes .../voxel/quadruped_low_central_manifest.ron | 8 +- voxygen/src/anim/quadruped_low/idle.rs | 10 +- voxygen/src/anim/quadruped_low/mod.rs | 14 +-- voxygen/src/anim/quadruped_low/run.rs | 106 ++++++++++++++---- 10 files changed, 99 insertions(+), 39 deletions(-) diff --git a/assets/voxygen/voxel/npc/alligator/female/head_lower.vox b/assets/voxygen/voxel/npc/alligator/female/head_lower.vox index d9caa3babb79cfccccd15a85afc13ee6452eed85..968d538976d7b8d4794407b00a0ddd3559feaf58 100644 GIT binary patch delta 1057 zcmW-e$&KAW3`Cnn7W*{7=nD=&QVO~Z@Zkg;lu~dmPG-XK>p7IT6qjP_`}6zr@9(E~ zNAEJoei>`$+xRuSMdqEuFNe1Z>?FpI%3H+MeyQ`F?X3-O?*-D{MBI^g5O={995xFM zKNk1kbdqF7_|h_0={aBYQ{QS~x5#Bu~o*J~Dh)*ijC&$oDuq1tA`iJ|ajQ88G(`iYq* za#HP0U&3{=kG`DsylU3&%rDm>a&L&Bpa%JM30y9o#li*yTe&C0HGEeWPYzfvW++(9 zl8NxSejkU3oOR_j!V8eRF2kjLQ~M@VNgq-tCVyb8%XY07a0T;dDg zVi=f3PUJwsN5@r@;ic1wfR3}4A8|$M5`GO}`mEy-ACqi~bFiGkj5ri=hT}*?MXhEA ziv^0K$(aESFRti{qeh;^D|E)$iqmrmVHSDOCzczVh9tsJ9_a48#Jn zyjYMx73X02l#W0^aJ`o>kO{xQ5ne!Oi9BM2FMfyDFX7;(Z={Zyzfj*e=1S~f=qUaB HQy=voQF}7d delta 1057 zcmW-e$&KAW3`Cnn7W*{7=nD=&QVO~Z@Zkg;lu~dmPG-XK>p7IT6qjP_`}6zr@9$^q zj%Z@c5?^f)_x8R*$1ytA-YYEJEfm~R5AbP|xrTj_|KQr{w z5W=)YXn!=d8ANMqFs!W*GfFRGLo7$Yv|h8|Q+xEfKHuUshP2Iu6GP$6qGGUm^%FBs zR0+)+tv9Q6wR_@7gjkv4DlLMBE844D& zWFma7-^U@MXAqASuYT$iK~WDXc#cB7Su8FY{M!kVg+;86+Y2lkKQFOoQ;Z>&-0qwJvAHE{%5`GO}`dr5&J|@`|=U_R789o#~!#)yGQLCB3 zVu5@#IWwT)#T8vXYUEkGLZ{D`PtPTUS>#2ZSZ-{R)8dFT>p9#sqcX8Vy$xw%AQqVA z#exJXpM&L7bp!%}>%D}5O!x(k@B%_hhbV6vtc}9+j7v3`}Z9c%*!43dShX<1Y delta 18 acmX>hbV6vtc}C%h7v3`pZa%=+!43dSng@*l diff --git a/assets/voxygen/voxel/npc/alligator/male/head_lower.vox b/assets/voxygen/voxel/npc/alligator/male/head_lower.vox index d9caa3babb79cfccccd15a85afc13ee6452eed85..968d538976d7b8d4794407b00a0ddd3559feaf58 100644 GIT binary patch delta 1057 zcmW-e$&KAW3`Cnn7W*{7=nD=&QVO~Z@Zkg;lu~dmPG-XK>p7IT6qjP_`}6zr@9(E~ zNAEJoei>`$+xRuSMdqEuFNe1Z>?FpI%3H+MeyQ`F?X3-O?*-D{MBI^g5O={995xFM zKNk1kbdqF7_|h_0={aBYQ{QS~x5#Bu~o*J~Dh)*ijC&$oDuq1tA`iJ|ajQ88G(`iYq* za#HP0U&3{=kG`DsylU3&%rDm>a&L&Bpa%JM30y9o#li*yTe&C0HGEeWPYzfvW++(9 zl8NxSejkU3oOR_j!V8eRF2kjLQ~M@VNgq-tCVyb8%XY07a0T;dDg zVi=f3PUJwsN5@r@;ic1wfR3}4A8|$M5`GO}`mEy-ACqi~bFiGkj5ri=hT}*?MXhEA ziv^0K$(aESFRti{qeh;^D|E)$iqmrmVHSDOCzczVh9tsJ9_a48#Jn zyjYMx73X02l#W0^aJ`o>kO{xQ5ne!Oi9BM2FMfyDFX7;(Z={Zyzfj*e=1S~f=qUaB HQy=voQF}7d delta 1057 zcmW-e$&KAW3`Cnn7W*{7=nD=&QVO~Z@Zkg;lu~dmPG-XK>p7IT6qjP_`}6zr@9$^q zj%Z@c5?^f)_x8R*$1ytA-YYEJEfm~R5AbP|xrTj_|KQr{w z5W=)YXn!=d8ANMqFs!W*GfFRGLo7$Yv|h8|Q+xEfKHuUshP2Iu6GP$6qGGUm^%FBs zR0+)+tv9Q6wR_@7gjkv4DlLMBE844D& zWFma7-^U@MXAqASuYT$iK~WDXc#cB7Su8FY{M!kVg+;86+Y2lkKQFOoQ;Z>&-0qwJvAHE{%5`GO}`dr5&J|@`|=U_R789o#~!#)yGQLCB3 zVu5@#IWwT)#T8vXYUEkGLZ{D`PtPTUS>#2ZSZ-{R)8dFT>p9#sqcX8Vy$xw%AQqVA z#exJXpM&L7bp!%}>%D}5O!x(k@B%_hhbV6vtc}9+j7v3`}Z9c%*!43dShX<1Y delta 18 acmX>hbV6vtc}C%h7v3`pZa%=+!43dSng@*l diff --git a/assets/voxygen/voxel/npc/crocodile/female/head_lower.vox b/assets/voxygen/voxel/npc/crocodile/female/head_lower.vox index b90f8fe22425383e7f6c98286e436bc3779848e2..b20c51b90bb8640428aa5b8487b8f786084f5b1b 100644 GIT binary patch delta 907 zcmW-fJC58y3`EJ|N8v)!2_#)X!7MN^U?Xmzfs9Z(duG@(_ zbFHM7xdp!PeQGa)4w8se&=9!>R#+cvBcQvLd*PR;m);X7u@h?+)H6X0CJzKh944jr z06u*dn?QT4?ytkJTVKPmkZ+QXU#GbkMHnVO!#SlCktl2#9xtYngh|KG29Nh zoh6!BN<+lYiA`sdt9f(8#VL~0Cwb%QmjTbW6qe^$=G}e1_FR8_|Mu0={{J42$KQ{S Kk6*vzPy7R8+%HZ5 delta 907 zcmW-fJC58y3`Cp7A{8z)a{`U7pkNnR7_bxPKFVXN}J@V#P>%qv&iDq?qFH)8y7ULtnKO`Y%Av3F6gxEo}}F5-^7 zg18-fnVRF4_`;8=JqbEVB2r01#-3PVW9%A%yjpQD{1WxbHv<_vv1Y-1H^{-{f#8V4 zSoxM9rf=yc(4jp-_op`P1){Y#Sf$-8v#eWTLkwqu$~wb7SLz-;r_XnB8%uD@XH}hT zv>0TB)x#%7Pvj)s8(vcDgaa=(J#XH0ugtgd6y~H9Y49RHC!v;8XRxq=V6#*rt`(PC zTsdI4&`>aV7H~b%btDJTEYWpl6Az#MWTEhrEw~N~5`&faT@MeDfhJbRRRe|<0_8eO z>ng8HSYdO^qrzvV52w#)AG!Hxz7vNJRUJLKLc9G?_>t{X&uy;FXP1wVAB{*s6sTzw ziwKgq{;3hyf;h-Jj9`xCd2$v&&l}?Qqh^_j#}D`{CVVfzlO;2s;;%?H&55XK%&0?A zj}lERr6J;b;+2mkSM%nGi&L1>oBZPHw*k+$6_)4N=G|ky_Sk=X|Mqox{r|nbzW)9A K`1tiZ|KvZhR4=dq diff --git a/assets/voxygen/voxel/npc/crocodile/male/head_lower.vox b/assets/voxygen/voxel/npc/crocodile/male/head_lower.vox index b90f8fe22425383e7f6c98286e436bc3779848e2..b20c51b90bb8640428aa5b8487b8f786084f5b1b 100644 GIT binary patch delta 907 zcmW-fJC58y3`EJ|N8v)!2_#)X!7MN^U?Xmzfs9Z(duG@(_ zbFHM7xdp!PeQGa)4w8se&=9!>R#+cvBcQvLd*PR;m);X7u@h?+)H6X0CJzKh944jr z06u*dn?QT4?ytkJTVKPmkZ+QXU#GbkMHnVO!#SlCktl2#9xtYngh|KG29Nh zoh6!BN<+lYiA`sdt9f(8#VL~0Cwb%QmjTbW6qe^$=G}e1_FR8_|Mu0={{J42$KQ{S Kk6*vzPy7R8+%HZ5 delta 907 zcmW-fJC58y3`Cp7A{8z)a{`U7pkNnR7_bxPKFVXN}J@V#P>%qv&iDq?qFH)8y7ULtnKO`Y%Av3F6gxEo}}F5-^7 zg18-fnVRF4_`;8=JqbEVB2r01#-3PVW9%A%yjpQD{1WxbHv<_vv1Y-1H^{-{f#8V4 zSoxM9rf=yc(4jp-_op`P1){Y#Sf$-8v#eWTLkwqu$~wb7SLz-;r_XnB8%uD@XH}hT zv>0TB)x#%7Pvj)s8(vcDgaa=(J#XH0ugtgd6y~H9Y49RHC!v;8XRxq=V6#*rt`(PC zTsdI4&`>aV7H~b%btDJTEYWpl6Az#MWTEhrEw~N~5`&faT@MeDfhJbRRRe|<0_8eO z>ng8HSYdO^qrzvV52w#)AG!Hxz7vNJRUJLKLc9G?_>t{X&uy;FXP1wVAB{*s6sTzw ziwKgq{;3hyf;h-Jj9`xCd2$v&&l}?Qqh^_j#}D`{CVVfzlO;2s;;%?H&55XK%&0?A zj}lERr6J;b;+2mkSM%nGi&L1>oBZPHw*k+$6_)4N=G|ky_Sk=X|Mqox{r|nbzW)9A K`1tiZ|KvZhR4=dq diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index 1c43efdab1..f87de2544b 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -17,7 +17,7 @@ central: ("npc.crocodile.male.chest"), ), tail_rear: ( - offset: (-1.0, -4.5, -1.5), + offset: (-1.0, -9.0, -1.5), central: ("npc.crocodile.male.tail_rear"), ), tail_front: ( @@ -43,7 +43,7 @@ central: ("npc.crocodile.female.chest"), ), tail_rear: ( - offset: (-1.0, -4.5, -1.5), + offset: (-1.0, -9.0, -1.5), central: ("npc.crocodile.female.tail_rear"), ), tail_front: ( @@ -53,7 +53,7 @@ ), (Alligator, Male): ( upper: ( - offset: (-4.0, -8.5, -2.5), + offset: (-4.0, -0.0, -2.5), central: ("npc.alligator.male.head_upper"), ), lower: ( @@ -79,7 +79,7 @@ ), (Alligator, Female): ( upper: ( - offset: (-4.0, -8.5, -2.5), + offset: (-4.0, -0.0, -2.5), central: ("npc.alligator.female.head_upper"), ), lower: ( diff --git a/voxygen/src/anim/quadruped_low/idle.rs b/voxygen/src/anim/quadruped_low/idle.rs index 446ef9fd49..6e1bc30c8a 100644 --- a/voxygen/src/anim/quadruped_low/idle.rs +++ b/voxygen/src/anim/quadruped_low/idle.rs @@ -19,19 +19,19 @@ impl Animation for IdleAnimation { let ultra_slow = 0.0*(anim_time as f32 * 1.0).sin(); let slow = 0.0*(anim_time as f32 * 2.5).sin(); - let slowalt = 0.0*(anim_time as f32 * 2.5 + PI / 2.0).sin(); + let slowalt = (anim_time as f32 * 2.5 + PI / 2.0).sin(); let dragon_look = Vec2::new( ((global_time + anim_time) as f32 / 8.0) .floor() .mul(7331.0) .sin() - * 0.5, + * 0.2, ((global_time + anim_time) as f32 / 8.0) .floor() .mul(1337.0) .sin() - * 0.25, + * 0.1, ); next.head_upper.offset = Vec3::new( @@ -66,12 +66,12 @@ impl Animation for IdleAnimation { next.tail_front.offset = Vec3::new(0.0, skeleton_attr.tail_front.0, skeleton_attr.tail_front.1); - next.tail_front.ori = Quaternion::rotation_z(0.0); + next.tail_front.ori = Quaternion::rotation_x(0.15)*Quaternion::rotation_z(slowalt * 0.12); next.tail_front.scale = Vec3::one()*0.98; next.tail_rear.offset = Vec3::new(0.0, skeleton_attr.tail_rear.0, skeleton_attr.tail_rear.1); - next.tail_rear.ori = Quaternion::rotation_z(slowalt * 0.12); + next.tail_rear.ori = Quaternion::rotation_z(slowalt * 0.12)*Quaternion::rotation_x(-0.12); next.tail_rear.scale = Vec3::one()*0.98; next.foot_fl.offset = Vec3::new( diff --git a/voxygen/src/anim/quadruped_low/mod.rs b/voxygen/src/anim/quadruped_low/mod.rs index 5211dae55f..a05a0c228a 100644 --- a/voxygen/src/anim/quadruped_low/mod.rs +++ b/voxygen/src/anim/quadruped_low/mod.rs @@ -128,19 +128,19 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { Self { head_upper: match (body.species, body.body_type) { (Crocodile, _) => (8.0, 4.0), - (Alligator, _) => (7.0, 4.0), + (Alligator, _) => (-0.5, 3.0), (Salamander, _) => (3.0, 3.0), (Monitor, _) => (4.0, 2.0), }, head_lower: match (body.species, body.body_type) { (Crocodile, _) => (8.0, 0.0), - (Alligator, _) => (7.0, 0.0), + (Alligator, _) => (9.0, 0.0), (Salamander, _) => (10.0, 2.0), (Monitor, _) => (10.0, 3.0), }, jaw: match (body.species, body.body_type) { (Crocodile, _) => (0.0, -3.0), - (Alligator, _) => (0.0, -2.0), + (Alligator, _) => (8.5, -2.0), (Salamander, _) => (2.0, -3.0), (Monitor, _) => (0.0, -1.0), }, @@ -151,16 +151,16 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Monitor, _) => (0.0, 5.0), }, tail_rear: match (body.species, body.body_type) { - (Crocodile, _) => (-14.0, -1.0), + (Crocodile, _) => (-12.5, -1.0), (Alligator, _) => (-13.0, -1.0), (Salamander, _) => (-7.0, 0.0), - (Monitor, _) => (-5.0, 0.0), + (Monitor, _) => (-10.0, 0.0), }, tail_front: match (body.species, body.body_type) { (Crocodile, _) => (-6.0, 0.0), (Alligator, _) => (-5.0, 0.0), - (Salamander, _) => (-5.0, 0.0), - (Monitor, _) => (-5.0, 0.0), + (Salamander, _) => (-6.5, 0.0), + (Monitor, _) => (-6.5, 0.0), }, feet_f: match (body.species, body.body_type) { (Crocodile, _) => (6.0, 6.0, 0.0), diff --git a/voxygen/src/anim/quadruped_low/run.rs b/voxygen/src/anim/quadruped_low/run.rs index 72aba02ba0..e02a1ede1b 100644 --- a/voxygen/src/anim/quadruped_low/run.rs +++ b/voxygen/src/anim/quadruped_low/run.rs @@ -17,7 +17,7 @@ impl Animation for RunAnimation { ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let lab = 14; + let lab = 0.1; let wave_ultra_slow_cos = (anim_time as f32 * 3.0 + PI).cos(); let wave_slow = (anim_time as f32 * 4.5).sin(); @@ -38,6 +38,66 @@ impl Animation for RunAnimation { let center = (anim_time as f32 * lab as f32 + PI / 2.0).sin(); let centeroffset = (anim_time as f32 * lab as f32 + PI * 1.5).sin(); + + let short = (((5.0) + / (2.5 + + 2.5 * ((anim_time as f32 *16.0* lab as f32+ PI * 0.25).sin()).powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 *16.0* lab as f32+ PI * 0.25).sin()); + + + + let foothoril = (anim_time as f32 * 16.0 * lab as f32 + PI * 1.45).sin(); + let foothorir = (anim_time as f32 * 16.0 * lab as f32 + PI * (0.45)).sin(); + + let footvertl = (anim_time as f32 * 16.0 * lab as f32).sin(); + let footvertr = (anim_time as f32 * 16.0 * lab as f32 + PI).sin(); + + let footrotl = (((5.0) + / (2.5 + + (2.5) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()); + + let footrotr = (((5.0) + / (1.0 + + (4.0) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()); +/// + let foothorilb = (anim_time as f32 * 16.0 * lab as f32 + PI * 1.25).sin(); + let foothorirb = (anim_time as f32 * 16.0 * lab as f32 + PI * (0.25)).sin(); + + let footvertlb = (anim_time as f32 * 16.0 * lab as f32).sin(); + let footvertrb = (anim_time as f32 * 16.0 * lab as f32 + PI*1.0).sin(); + + let footrotlb = (((5.0) + / (2.5 + + (2.5) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.6).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.6).sin()); + + let footrotrb = (((5.0) + / (1.0 + + (4.0) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()); + + + + + + + + let dragon_look = Vec2::new( ((global_time + anim_time) as f32 / 4.0) .floor() @@ -54,28 +114,28 @@ impl Animation for RunAnimation { next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); next.head_upper.ori = - Quaternion::rotation_x(dragon_look.y) * Quaternion::rotation_z(dragon_look.x); + Quaternion::rotation_x(0.0) * Quaternion::rotation_z(short*-0.15); next.head_upper.scale = Vec3::one(); next.head_lower.offset = Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); - next.head_lower.ori = Quaternion::rotation_x(wave_slow * 0.05); + next.head_lower.ori = Quaternion::rotation_x(0.0)* Quaternion::rotation_z(short*-0.25); next.head_lower.scale = Vec3::one(); next.jaw.offset = Vec3::new( 0.0, - skeleton_attr.jaw.0 - wave_ultra_slow_cos * 0.12, - skeleton_attr.jaw.1 + wave_slow * 0.2, + skeleton_attr.jaw.0, + skeleton_attr.jaw.1, ); - next.jaw.ori = Quaternion::rotation_x(wave_slow * 0.03); - next.jaw.scale = Vec3::one(); + next.jaw.ori = Quaternion::rotation_x(0.0); + next.jaw.scale = Vec3::one()*0.98; next.tail_front.offset = Vec3::new( 0.0, skeleton_attr.tail_front.0, - skeleton_attr.tail_front.1 + centeroffset * 0.6, + skeleton_attr.tail_front.1, ); - next.tail_front.ori = Quaternion::rotation_x(center * 0.03); + next.tail_front.ori = Quaternion::rotation_z(short*0.2)*Quaternion::rotation_y(short*0.15); next.tail_front.scale = Vec3::one(); next.tail_rear.offset = Vec3::new( @@ -83,44 +143,44 @@ impl Animation for RunAnimation { skeleton_attr.tail_rear.0, skeleton_attr.tail_rear.1 + centeroffset * 0.6, ); - next.tail_rear.ori = Quaternion::rotation_x(center * 0.03); + next.tail_rear.ori = Quaternion::rotation_z(short*0.3)*Quaternion::rotation_y(short*0.1); next.tail_rear.scale = Vec3::one(); next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1)/6.0; - next.chest.ori = Quaternion::rotation_y(horichest * -0.09); + next.chest.ori = Quaternion::rotation_z(short*0.25)*Quaternion::rotation_y(short*0.15); next.chest.scale = Vec3::one()/6.0; next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1 + horilf * 2.5, - skeleton_attr.feet_f.2 + vertlf * 5.0 * skeleton_attr.height - 0.5, + skeleton_attr.feet_f.1 + foothoril * -3.5, + skeleton_attr.feet_f.2 + ((footvertl * -0.6).max(-1.0)), ); - next.foot_fl.ori = Quaternion::rotation_x(horilf * 0.4); + next.foot_fl.ori = Quaternion::rotation_x(-0.2 + footrotl * -0.5); next.foot_fl.scale = Vec3::one(); next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1 + horirfoffset * 2.5, - skeleton_attr.feet_f.2 + vertrfoffset * 5.0 * skeleton_attr.height - 0.5, + skeleton_attr.feet_f.1 + foothorir * -3.5, + skeleton_attr.feet_f.2 + ((footvertr * -0.6).max(-1.0)), ); - next.foot_fr.ori = Quaternion::rotation_x(horirfoffset * 0.4); + next.foot_fr.ori = Quaternion::rotation_x(-0.2 + footrotr * -0.5); next.foot_fr.scale = Vec3::one(); next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1 + horilboffset * 3.0, - skeleton_attr.feet_b.2 + vertlboffset * 5.0 * skeleton_attr.height - 0.5, + skeleton_attr.feet_b.1 + foothorilb * -3.5, + skeleton_attr.feet_b.2 + ((footvertlb * -0.6).max(-1.0)), ); - next.foot_bl.ori = Quaternion::rotation_x(horilboffset * 0.35); + next.foot_bl.ori = Quaternion::rotation_x(-0.2 + footrotlb * -0.5); next.foot_bl.scale = Vec3::one(); next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1 + horirb * 3.0, - skeleton_attr.feet_b.2 + vertrb * 5.0 * skeleton_attr.height - 0.5, + skeleton_attr.feet_b.1 + foothorirb * -3.5, + skeleton_attr.feet_b.2 + ((footvertrb * -0.6).max(-1.0)), ); - next.foot_br.ori = Quaternion::rotation_x(horirb * 0.35); + next.foot_br.ori = Quaternion::rotation_x(-0.2 + footrotrb * -0.5); next.foot_br.scale = Vec3::one(); next From 5e2aa81aba2d5c415312dd3c83b147e2848f522b Mon Sep 17 00:00:00 2001 From: jshipsey Date: Sat, 6 Jun 2020 02:16:24 -0400 Subject: [PATCH 07/48] small placement tweaks --- voxygen/src/anim/quadruped_low/mod.rs | 18 +++++++++--------- voxygen/src/anim/quadruped_low/run.rs | 12 ++++++------ voxygen/src/anim/src/character/idle.rs | 2 +- 3 files changed, 16 insertions(+), 16 deletions(-) diff --git a/voxygen/src/anim/quadruped_low/mod.rs b/voxygen/src/anim/quadruped_low/mod.rs index a05a0c228a..709c626343 100644 --- a/voxygen/src/anim/quadruped_low/mod.rs +++ b/voxygen/src/anim/quadruped_low/mod.rs @@ -127,10 +127,10 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { use comp::quadruped_low::Species::*; Self { head_upper: match (body.species, body.body_type) { - (Crocodile, _) => (8.0, 4.0), - (Alligator, _) => (-0.5, 3.0), - (Salamander, _) => (3.0, 3.0), - (Monitor, _) => (4.0, 2.0), + (Crocodile, _) => (10.0, 2.0), + (Alligator, _) => (0.5, 3.0), + (Salamander, _) => (3.0, 1.0), + (Monitor, _) => (3.5, 2.0), }, head_lower: match (body.species, body.body_type) { (Crocodile, _) => (8.0, 0.0), @@ -153,23 +153,23 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { tail_rear: match (body.species, body.body_type) { (Crocodile, _) => (-12.5, -1.0), (Alligator, _) => (-13.0, -1.0), - (Salamander, _) => (-7.0, 0.0), - (Monitor, _) => (-10.0, 0.0), + (Salamander, _) => (-9.0, 0.0), + (Monitor, _) => (-12.0, 0.0), }, tail_front: match (body.species, body.body_type) { (Crocodile, _) => (-6.0, 0.0), (Alligator, _) => (-5.0, 0.0), - (Salamander, _) => (-6.5, 0.0), + (Salamander, _) => (-7.5, 0.0), (Monitor, _) => (-6.5, 0.0), }, feet_f: match (body.species, body.body_type) { - (Crocodile, _) => (6.0, 6.0, 0.0), + (Crocodile, _) => (6.0, 6.0, -1.0), (Alligator, _) => (6.0, 6.0, 0.0), (Salamander, _) => (6.0, 6.0, -2.0), (Monitor, _) => (6.0, 6.0, 0.0), }, feet_b: match (body.species, body.body_type) { - (Crocodile, _) => (6.0, -6.0, 0.0), + (Crocodile, _) => (6.0, -6.0, -1.0), (Alligator, _) => (6.0, -6.0, 0.0), (Salamander, _) => (6.0, -6.0, -2.0), (Monitor, _) => (6.0, -6.0, 0.0), diff --git a/voxygen/src/anim/quadruped_low/run.rs b/voxygen/src/anim/quadruped_low/run.rs index e02a1ede1b..7ba621cc09 100644 --- a/voxygen/src/anim/quadruped_low/run.rs +++ b/voxygen/src/anim/quadruped_low/run.rs @@ -69,8 +69,8 @@ impl Animation for RunAnimation { .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()); /// - let foothorilb = (anim_time as f32 * 16.0 * lab as f32 + PI * 1.25).sin(); - let foothorirb = (anim_time as f32 * 16.0 * lab as f32 + PI * (0.25)).sin(); + let foothorilb = (anim_time as f32 * 16.0 * lab as f32 + PI * 1.45).sin(); + let foothorirb = (anim_time as f32 * 16.0 * lab as f32 + PI * (0.45)).sin(); let footvertlb = (anim_time as f32 * 16.0 * lab as f32).sin(); let footvertrb = (anim_time as f32 * 16.0 * lab as f32 + PI*1.0).sin(); @@ -78,10 +78,10 @@ impl Animation for RunAnimation { let footrotlb = (((5.0) / (2.5 + (2.5) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.6).sin()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()) .powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.6).sin()); + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()); let footrotrb = (((5.0) / (1.0 @@ -135,7 +135,7 @@ impl Animation for RunAnimation { skeleton_attr.tail_front.0, skeleton_attr.tail_front.1, ); - next.tail_front.ori = Quaternion::rotation_z(short*0.2)*Quaternion::rotation_y(short*0.15); + next.tail_front.ori = Quaternion::rotation_z(short*0.2)*Quaternion::rotation_y(short*0.15)*Quaternion::rotation_x(0.06); next.tail_front.scale = Vec3::one(); next.tail_rear.offset = Vec3::new( @@ -143,7 +143,7 @@ impl Animation for RunAnimation { skeleton_attr.tail_rear.0, skeleton_attr.tail_rear.1 + centeroffset * 0.6, ); - next.tail_rear.ori = Quaternion::rotation_z(short*0.3)*Quaternion::rotation_y(short*0.1); + next.tail_rear.ori = Quaternion::rotation_z(short*0.3)*Quaternion::rotation_y(short*0.1)*Quaternion::rotation_x(-0.04); next.tail_rear.scale = Vec3::one(); next.chest.offset = diff --git a/voxygen/src/anim/src/character/idle.rs b/voxygen/src/anim/src/character/idle.rs index f1b8c7c27c..5b294b84a1 100644 --- a/voxygen/src/anim/src/character/idle.rs +++ b/voxygen/src/anim/src/character/idle.rs @@ -105,7 +105,7 @@ impl Animation for IdleAnimation { next.glider.scale = Vec3::one() * 0.0; - next.main.offset = Vec3::new(-7.0, -5.0, 18.0); + next.main.offset = Vec3::new(-7.0, -5.0, 15.0); next.main.ori = Quaternion::rotation_y(2.5) * Quaternion::rotation_z(1.57); next.main.scale = Vec3::one() + head_abs * -0.05; From 12ca502a1d80d7ed88dd1b0a1f50f4497bac992d Mon Sep 17 00:00:00 2001 From: Snowram Date: Thu, 11 Jun 2020 00:29:16 +0200 Subject: [PATCH 08/48] Add tiger mob --- assets/common/npc_names.json | 4 + .../voxygen/voxel/npc/tiger/female/ears.vox | Bin 0 -> 1152 bytes .../voxel/npc/tiger/female/foot_bl.vox | Bin 0 -> 1328 bytes .../voxel/npc/tiger/female/foot_br.vox | Bin 0 -> 1328 bytes .../voxel/npc/tiger/female/foot_fl.vox | Bin 0 -> 1372 bytes .../voxel/npc/tiger/female/foot_fr.vox | Bin 0 -> 1372 bytes .../voxel/npc/tiger/female/head_lower.vox | Bin 0 -> 2124 bytes .../voxel/npc/tiger/female/head_upper.vox | Bin 0 -> 3152 bytes assets/voxygen/voxel/npc/tiger/female/jaw.vox | Bin 0 -> 1208 bytes .../voxygen/voxel/npc/tiger/female/leg_bl.vox | Bin 0 -> 1640 bytes .../voxygen/voxel/npc/tiger/female/leg_br.vox | Bin 0 -> 1640 bytes .../voxygen/voxel/npc/tiger/female/leg_fl.vox | Bin 0 -> 1636 bytes .../voxygen/voxel/npc/tiger/female/leg_fr.vox | Bin 0 -> 1636 bytes .../voxygen/voxel/npc/tiger/female/tail.vox | Bin 0 -> 1448 bytes .../voxel/npc/tiger/female/torso_back.vox | Bin 0 -> 4660 bytes .../voxel/npc/tiger/female/torso_front.vox | Bin 0 -> 6196 bytes assets/voxygen/voxel/npc/tiger/male/ears.vox | Bin 0 -> 1152 bytes .../voxygen/voxel/npc/tiger/male/foot_bl.vox | Bin 0 -> 1328 bytes .../voxygen/voxel/npc/tiger/male/foot_br.vox | Bin 0 -> 1328 bytes .../voxygen/voxel/npc/tiger/male/foot_fl.vox | Bin 0 -> 1372 bytes .../voxygen/voxel/npc/tiger/male/foot_fr.vox | Bin 0 -> 1372 bytes .../voxel/npc/tiger/male/head_lower.vox | Bin 0 -> 2124 bytes .../voxel/npc/tiger/male/head_upper.vox | Bin 0 -> 3152 bytes assets/voxygen/voxel/npc/tiger/male/jaw.vox | Bin 0 -> 1208 bytes .../voxygen/voxel/npc/tiger/male/leg_bl.vox | Bin 0 -> 1640 bytes .../voxygen/voxel/npc/tiger/male/leg_br.vox | Bin 0 -> 1640 bytes .../voxygen/voxel/npc/tiger/male/leg_fl.vox | Bin 0 -> 1636 bytes .../voxygen/voxel/npc/tiger/male/leg_fr.vox | Bin 0 -> 1636 bytes assets/voxygen/voxel/npc/tiger/male/tail.vox | Bin 0 -> 1448 bytes .../voxel/npc/tiger/male/torso_back.vox | Bin 0 -> 4660 bytes .../voxel/npc/tiger/male/torso_front.vox | Bin 0 -> 6196 bytes .../quadruped_medium_central_manifest.ron | 60 +++++++ .../quadruped_medium_lateral_manifest.ron | 68 +++++++ common/src/comp/body/quadruped_medium.rs | 6 +- voxygen/src/anim/src/quadruped_medium/mod.rs | 66 +++++++ voxygen/src/scene/figure/load.rs | 168 +++++++++--------- voxygen/src/scene/figure/mod.rs | 3 +- 37 files changed, 289 insertions(+), 86 deletions(-) create mode 100644 assets/voxygen/voxel/npc/tiger/female/ears.vox create mode 100644 assets/voxygen/voxel/npc/tiger/female/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/tiger/female/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/tiger/female/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/tiger/female/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/tiger/female/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/tiger/female/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/tiger/female/jaw.vox create mode 100644 assets/voxygen/voxel/npc/tiger/female/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/tiger/female/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/tiger/female/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/tiger/female/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/tiger/female/tail.vox create mode 100644 assets/voxygen/voxel/npc/tiger/female/torso_back.vox create mode 100644 assets/voxygen/voxel/npc/tiger/female/torso_front.vox create mode 100644 assets/voxygen/voxel/npc/tiger/male/ears.vox create mode 100644 assets/voxygen/voxel/npc/tiger/male/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/tiger/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/tiger/male/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/tiger/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/tiger/male/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/tiger/male/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/tiger/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/tiger/male/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/tiger/male/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/tiger/male/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/tiger/male/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/tiger/male/tail.vox create mode 100644 assets/voxygen/voxel/npc/tiger/male/torso_back.vox create mode 100644 assets/voxygen/voxel/npc/tiger/male/torso_front.vox diff --git a/assets/common/npc_names.json b/assets/common/npc_names.json index 9fbc2e649f..fa20fde4a8 100644 --- a/assets/common/npc_names.json +++ b/assets/common/npc_names.json @@ -262,6 +262,10 @@ "tarasque": { "keyword": "tarasque", "generic": "Tarasque" + }, + "tiger": { + "keyword": "tiger", + "generic": "Tiger" } } }, diff --git a/assets/voxygen/voxel/npc/tiger/female/ears.vox b/assets/voxygen/voxel/npc/tiger/female/ears.vox new file mode 100644 index 0000000000000000000000000000000000000000..f3110119b2174c310135c693ff9b0034e93bb550 GIT binary patch literal 1152 zcma)*T}%^J6vt2ZA>Ev{3|eT5r7NIqS;PW^GMFoass({DglScRPBWU0Y1)No)3|6i z95alrYXFluWD6mSktu0OmOY>`#F!Xk(3mBQF=kQU%$6m~;>&NhZf^#+ll=3)=i{D_ zn|pdXw%f);q^;54u1G$3PNd5p@V%5(l)Rwu%)i*aBj9hy8kOi2G$IkvXd*d^wTf3L zR$b7cGnXdY$Y@7CzISmX8a(vnFHv(MofJ+Y)8s*PSzp5=aJBh$kfZo zq7i+YP%t1AC4^Vc3EGgbDlX(H-FQZ*Zd*yqfS$n7JU*XaLvu{%ObL5ug~Qj?-A*&s zpq5g1R`&M#1ASB*5Ftm3y$KNZY z*CPxz3llx6*J?9CpPgu@gR%XU#JX!4>u=)XXYcZ0I!Jkmk%r1*THkcAzo(W^ixA%} zOnxLRj0!bYGk#YoyK2@GZmy%pWh7W_VPta|>D~%_4Q@I%)e(5Rkx*Yd(E|YzpN2@! z46$_S6v+?m#CBRJGUzDG%ca7i$L+LJvwkhFS2{_2QpD_OJ3n7>ar;_1U#ptwY2oTm z!ml@kXwbn#yo$xMP5kyt7vU3nM!wJI{B;wzDJG!av@t=}xrb#4i-*UMc2(JJsK&n^jfe*CAuJL-S^ amtU>m<2_rBv(DvwS^Lv`j}t%rzWfa}RwA1K literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tiger/female/foot_bl.vox b/assets/voxygen/voxel/npc/tiger/female/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..74c360990a7a26368b6b3d4f4236a6fcd3bd3341 GIT binary patch literal 1328 zcma)5ZAhC}6h8OfHyYN}#%ZD^HfB-VB#zps^P{>hPV=Qz=bWxhTd|#GN^mW4NE<>& zo6XJ@tINa>XlvaN8Kth3D2)AZrAR51Qd}8>QA!!x{*19P7^8olow%RHZU-LD$8*lP z=UndXYTIv{B%+r3U@I%i*AaCDL*D084hy@K&PZeIKM)H3$~q-`7*a`}U??Tig_Hp) z*_PU%U`VL~N(zoEzmS4C;gcI2u}z$pf=W|TrfE8w;e%#W8bhOArI=GfPa63sW$P%Q zvDP&5D^2*NBEL}FN27q?e5oU!;2gpAQVE`kb2QeP2q>YYDWMxwLg|%|=~6I9(kF%V z3x*^WkU|B7P;6@)*Er6abc0gpIIbIf!~a@6&$1!a)zyf_VtAY&1TL+iF#B&j`SWKy z`QtaFg^yRZqcKKkpCBAvB%Hd> zwe4nD`|T)-xloz(z!J%Zebfxsd;#3IcOvHyq38_vo+Q+*66j4nKdJ{!WPp~kF|sog z3%iYY@QMX!dJz*uSYdp}_=z!blCbzG;pPJ2&JFfGgt6duOgEWur7aUPa^ zh~cB#aPI9~bXOCG8VS=~JZps+{a!nw?G8*HD?_Za3X^>excSjr_+`EyC50x`l@*}* zRR@lBRUzC&h#w}*zDHOcBUD<=2)c@JsB#w~jWy_Unb2Qh!Kl9&$?j5k>)dGb)gbhG zJ;FV$h#n7N{KGJk3&U8ybqR@g?T8(;Am5mQ+^kHLS`2VI?Wo+f1AEGx82=z2i&yOU z{*DU|@0H*ppP8H|-2IyH)t7$ZikO!2H?@1dyJAzo6C$kG}eMzDNAN{)^{Nxbe?6(hPV=Qz=bWxhTd|#GN^mW4NE<>& zo6XJ@tINa>XlvaN8Kth3D2)AZrAR51Qd}8>QA!!x{*19P7^8olow%RHZU-LD$8*lP z=UndXYTIv{B%+r3U@I%i*AaCDL*D084hy@K&PZeIKM)H3$~q-`7*a`}U??Tig_Hp) z*_PU%U`VL~N(zoEzmS4C;gcI2u}z$pf=W|TrfE8w;e%#W8bhOArI=GfPa63sW$P%Q zvDP&5D^2*NBEL}FN27q?e5oU!;2gpAQVE`kb2QeP2q>YYDWMxwLg|%|=~6I9(kF%V z3x*^WkU|B7P;6@)*Er6abc0gpIIbIf!~a@6&$1!a)zyf_VtAY&1TL+iF#B&j`SWKy z`QtaFg^yRZqcKKkpCBAvB%Hd> zwe4nD`|T)-xloz(z!J%Zebfxsd;#3IcOvHyq38_vo+Q+*66j4nKdJ{!WPp~kF|sog z3%iYY@QMX!dJz*uSYdp}_=z!blCbzG;pPJ2&JFfGgt6duOgEWur7aUPa^ zh~cB#aPI9~bXOCG8VS=~JZps+{a!nw?G8*HD?_Za3X^>excSjr_+`EyC50x`l@*}* zRR@lBRUzC&h#w}*zDHOcBUD<=2)c@JsB#w~jWy_Unb2Qh!Kl9&$?j5k>)dGb)gbhG zJ;FV$h#n7N{KGJk3&U8ybqR@g?T8(;Am5mQ+^kHLS`2VI?Wo+f1AEGx82=z2i&yOU z{*DU|@0H*ppP8H|-2IyH)t7$ZikO!2H?@1dyJAzo6C$kG}eMzDNAN{)^{Nxbe?6(rC(Ndpb2UZM$vamLm_b4Gr1k zSZr4=8&0#sAJB3ZA~9y0oI>=6jUi(&#;_4Vj4`76FNz>y|9pDB_UCZ*z=zNC<9&X; zyl-dgf&3{VYOV{lFp;4XwTHs~XHA2JO-f-TF%BFIhirls7C%EvqFJF)4+m!zvq)xU zNYV#|&<2&z2c^;mr6vPPvaO4tWC&dZWD*4g`!t<`+$12_RtzasP)f<*Gm2Spjx_z6 zA%t#7(in<$Wk}POI@i&IQm|ieu8_lJ z#XXebTEY`xaiTElK}Es`$3P~WW7+U5`&y4sf!qO*%8;gY7*V*k`L}H7sv-*M$g*3#_Ou%|p{GE*$TyL|-Ezc7!nZE@5q)P?4LBkf#ubEB0WZp&FeY zD-X$Iw%ose|E?$Y&$aD<$7z8lFBLWJRCH8r zM~C7SY`yzph z%QrFm?FL>vIf{Mf=Fs%n8rrXIz~}Sf5doCKz+X@sgoj`MJKsZoU;h>7Pq_Kdwqi55 PRm}81Ew)+s>G|{zpYk&? literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tiger/female/foot_fr.vox b/assets/voxygen/voxel/npc/tiger/female/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..8f4b28db0d25d53d62d7323c735ab160d390a033 GIT binary patch literal 1372 zcma)5e@NVA7=PaP{eD$ibDG|H=Q*`gx4SduPR$=_>rC(Ndpb2UZM$vamLm_b4Gr1k zSZr4=8&0#sAJB3ZA~9y0oI>=6jUi(&#;_4Vj4`76FNz>y|9pDB_UCZ*z=zNC<9&X; zyl-dgf&3{VYOV{lFp;4XwTHs~XHA2JO-f-TF%BFIhirls7C%EvqFJF)4+m!zvq)xU zNYV#|&<2&z2c^;mr6vPPvaO4tWC&dZWD*4g`!t<`+$12_RtzasP)f<*Gm2Spjx_z6 zA%t#7(in<$Wk}POI@i&IQm|ieu8_lJ z#XXebTEY`xaiTElK}Es`$3P~WW7+U5`&y4sf!qO*%8;gY7*V*k`L}H7sv-*M$g*3#_Ou%|p{GE*$TyL|-Ezc7!nZE@5q)P?4LBkf#ubEB0WZp&FeY zD-X$Iw%ose|E?$Y&$aD<$7z8lFBLWJRCH8r zM~C7SY`yzph z%QrFm?FL>vIf{Mf=Fs%n8rrXIz~}Sf5doCKz+X@sgoj`MJKsZoU;h>7Pq_Kdwqi55 PRm}81Ew)+s>G|{zpYk&? literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tiger/female/head_lower.vox b/assets/voxygen/voxel/npc/tiger/female/head_lower.vox new file mode 100644 index 0000000000000000000000000000000000000000..cf3f3839f71b80f881f67271c05b0399141020fb GIT binary patch literal 2124 zcma)6ZD^Hc7{1^4`FP)>IcIKjAG)pM*Uk)e&bHaiX1Y9Q^CMd>J$|63f`}}MAVegpe^CSx{<*rI(@)WQ;pTas`{TN=>wcbd zTGy;E9}tmMOH-@4NL?t>l1eu|WifXNsp#H?rEN9BVWR#=jq6J%oUXsPthMnK23ZTd0r5)EB%_jASu3%6fs0h zQrJhaUOW?d!aC8R_$E@!V@s|v)>_6bu`K&IKFm=j=_#KaeD+eI;$A63v!U|2`p)ls zF>-hO9TxM&CqA)#=6Ra^=ySE=^m#nHTJC+1938%4+=OgMo{E0P=?k4k`aN>>$j7I7 zY~s^A>hqj#a-k#g-Aer-^(#;4(@{w6zORX6BHt%}r-5h1edzQPPZ3LTxW3ck`^@9K zsm0?OawZ{X!ZP|}NlGIg?}6Gv&WSMe2V4X8k42VqQ!eIknHO??igmu5IXNiCeVSpR zVUA&M!`_B9mcRk~TlUrDs9C3pp&2urg(V5Yw-Im+xLVHDI=|cVo&%cUThT7Ai0Aga zbIpF5`+zzEhs`|A{+6+TvkG|smZp_E2i!AGZkiazVY)o>*W?=T-DnkKAJ;47TZ}~k zXJFl(v#)kqDBSSQ4DZ8cHCXC14bhBQ&I${OX zVCgfgwR|szIt=v(+*{TMt|#A>%Fe>0pZ)p1EZ>)Ao?)JL_sh5;j&+!Bu1=T3$ntZz zv1E{qnaDC`9T(2R(gNzYZU($Z?cT2I&o>tE?FCLN%}|FX5AAsH4y~KB>*MauovBX~ z_th0IEzSNx@IRrht`3<@1`qlK$y3)cJ@0Qk{PPz){Np#c?|ffHjJFui`tPr$ZaS<(bjU5ADDy0;37z)fwYf@JeqdrB7JZ&J{X;b?f_=-SYWB;xY(w_sloQIy-lQ1+tA9r6U0h*pczX(QY z-_w4k_3sm0_*igtNO1EK&kcg(scAUbRDjcKCgJ$j@i>we^uC#o!`mm~$Qy;&QYYwK zE;!jrt_zFN))+_E+6oNpT!75FS`6%3hO6(tj$hBVVb1gdEM8EC<`*llv$YoOO@i*t zg2A^1SB?v6N{f-IoPkX>bJ4MU5n3w?(6+Dy$5zb5@RoUKTwH}UFE2v+m8EFkx*A=3 z(&&A!9m7M1F?Q_~`re8ov#|tI^K(!*c@pN8cz!_wz3)!Nh0}5TaI+Hk zZqLD|>^Xc^aO)evPu~f;+A46eyBgQeFT?LYwxHu^E{=Vfhf8;ga1Uija~}Jsvv-H! zOs8O3LLRGs_sUt1=r1jth{||AD$8oRa796NMP6WPOMB`hIDr!zat-`C&;x?aG;oPr?eFB%0 w9797x10DzNRP_Ybjg@0{D3Jt zvy{@v8AJ?-6CpLnnv;|PTk8*VjyX5y9J$ukoO7-EuhrUG^Pj8FgZ<~UemmE>->;YN z^}ViV>&81~9u<-Gw+(GzkQG;nY#th3!*Jy{hX0-a${lwO4_#G0+V@^0r&xy+n@VFZ zN>yj6n#8C`U>>qIF~_dv#F)BTwALJJEwM=@>`d98NEK523C*ENmG053-B@DneQtb6 z2=kDeq*X6y?E0W}(%8h9yV1pNN!p7cb(70=jG^mO=thloim@9!`##qthMxM|Rn1Lk z$B?^4b1%8nq*!`M(HXUlUYpd~3b6^A8dYsHp_ez&5sS9^v|D^Ssb1?GT`$CTzu*&R z_*+Cr19!3uz2bDVxHzgVVbAw8p%b4KUwv$`3kY^&>c&KDQSmL+8dIHJKB?>l?qyd_ zW{)^@5VvaS7Kx)-9XfdrMv+*f2Uqk**T%@6R^2M3Uc`P3#1XXX!KULAF=x(vuM-aF;~Q)F_2>=R{T}%CUA}|E}H8A_KIyKFCCwED={Q3U;-}W zplJF|j%jyr#1X1q^5oxDz1ZGk4EPc7E%81kC0<`E`At4G4qj=Dje7hcAF=qI3U53* z13DwzQ8=XS2!~?!I|DXi);%$YJ+UytsTd2kTK%m~?fDQI*T%(}Cyz1to#JyZxKumh z7jSUkA>g8%#S-?U_6}G%F!T5$VCdSnRoLTNeLj!_;+9-HFb@J&0)|4K1^gwzM{VLOiwL!PU74{;BruyXa2@>L^L6qZII9 zbofCWp=gs^$>X{nIa5_`tnHtOVlHA&h9v{$4 zJcatJm{;(j^5`c2S-30IGuRdSO~$uOelvM46ykIw|C;!tV;4D|8mm zeezI&YoS*aNBvXqSzHR@vLYE}o<@~Xo(Vj%mpHE^lp-M|3{=8=qh0fiXu1K6kKL;S<4dL`)PZDDau#KY7xs#i>nYWK`Nz;Hk$A z53HdLlk`Q(jISs5Ba-+qCh%0wBcjYfgSgnIAp;Chf(0L*#K$IrMPQxKt;_+4&t2;e z@5pJuRz#HMmk`B%LL$0i`vwU#X;0ofv3lZ2?RzA0|Et|E-zJc#{ViR()J8@|?1RH% z&B;qPYvRA{!+-w8KK#euto^+-bip>PyV>r$XSt2+U1t{#4B3Ul_t}MGkJ^$8kJz}C zeKzIZnKtu@c{XrrnaP@HvZG^i`ZFe%`fS{Kv1=a|yY7(K=Ux^oJH)QuFE)X7--}|m ztRG`*A0B7JPfoBOT)f^^kBDtLB6j~-vB%%x?WUd~va&Dp>xN*Flxp|Vk`^9NyYd>p8MC>B+ zd*si^k;lZ&{#fj_Gh%PP!g{6H!J+Hz_}V^ue&cvMc<&f{W?1adHz(QC_g`brd}Fe0 zTPn79wb=2k_*iU&Yt__M0@3(DfXVtuwn3cj5rTHAa;7M*s1~f#P}b+{f3XlKYj8wHrPMO24{@5 z6+wucX*_8cL?2Vs`y?d9~i*x7Nz`%e#G;6Qj z-kdYpzt1M^nq(J`;p-Z)C#J%k>C^4obB@@p%MaTF&pvIFw_R&*|7wn19G+r_XU_Z> z{_VY1*PWZ+vRx0EJ$~$r?f=Dj`{B9Q?I*vzY@dJhfZh7kDO>lmS8emlmu=1E#HjHGGVc1M& zT`NphPBk zx>xI16tC@kxlXjdgjH2l5sgN9FfQ!6uu6W$-#q;D7asoc8wtA{T%xskI|mQc5FKb{ zX*kHz_(7H?k5RdFl+=I&XHOn^r;6}RS0jy9r0*$Y<{4zwL28ST*)Qab3C~>-Y<zg%>6>aY0W($)UF8fy4D}GA@LMsA%o$qY0Pc6bN59TG(AgPgk{C|ik}tn6TT4VL2YR+%`bU5(p5=clMp)~Odl6kMuiG@HbH*@`zy8) zX{e^l?;u?6Vq|9_i`~UE)|SxrN;RQZ>*(ugW$DaH~rkZUBo9^b8%L<^^Ne;cfw%U%T%n4)ywt# z{$mG`bE%AcnZeaNPVSLQNblo>&N+5im>Cf2eX{QS{kyk3HorS-6Ml~!e{Kpjz7#sE zHqu%0|K~3&E91k;X^Kl`s2M(kGv?&RXTsfm!X>X4pU+2c{s6moEg-Q$>=8T5liF*e za4K8hj@!*Ug>iP&jC1(h5Lw-s-2SSN<&cx{yu8QmKd~>7Yj4LbBE4{Oa*o*Ni=1D$ z&d1-b@%*u2cAS}}`O_6TuB;IV1b84IHU)oSUK8$r{cnHw^?m)9u3zxcKU>cy#Pzg9 N{7KrQ#7{mi{{TDUACv$9 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tiger/female/leg_bl.vox b/assets/voxygen/voxel/npc/tiger/female/leg_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..3519108d8688f8093ed64b0f8992c25213279d03 GIT binary patch literal 1640 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tiger/female/torso_front.vox b/assets/voxygen/voxel/npc/tiger/female/torso_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..9ed832769a4b4fe9443f5904eca42e2747742891 GIT binary patch literal 6196 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 LZ3+JA>%)Ho`I)5Z literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tiger/male/ears.vox b/assets/voxygen/voxel/npc/tiger/male/ears.vox new file mode 100644 index 0000000000000000000000000000000000000000..f3110119b2174c310135c693ff9b0034e93bb550 GIT binary patch literal 1152 zcma)*T}%^J6vt2ZA>Ev{3|eT5r7NIqS;PW^GMFoass({DglScRPBWU0Y1)No)3|6i z95alrYXFluWD6mSktu0OmOY>`#F!Xk(3mBQF=kQU%$6m~;>&NhZf^#+ll=3)=i{D_ zn|pdXw%f);q^;54u1G$3PNd5p@V%5(l)Rwu%)i*aBj9hy8kOi2G$IkvXd*d^wTf3L zR$b7cGnXdY$Y@7CzISmX8a(vnFHv(MofJ+Y)8s*PSzp5=aJBh$kfZo zq7i+YP%t1AC4^Vc3EGgbDlX(H-FQZ*Zd*yqfS$n7JU*XaLvu{%ObL5ug~Qj?-A*&s zpq5g1R`&M#1ASB*5Ftm3y$KNZY z*CPxz3llx6*J?9CpPgu@gR%XU#JX!4>u=)XXYcZ0I!Jkmk%r1*THkcAzo(W^ixA%} zOnxLRj0!bYGk#YoyK2@GZmy%pWh7W_VPta|>D~%_4Q@I%)e(5Rkx*Yd(E|YzpN2@! z46$_S6v+?m#CBRJGUzDG%ca7i$L+LJvwkhFS2{_2QpD_OJ3n7>ar;_1U#ptwY2oTm z!ml@kXwbn#yo$xMP5kyt7vU3nM!wJI{B;wzDJG!av@t=}xrb#4i-*UMc2(JJsK&n^jfe*CAuJL-S^ amtU>m<2_rBv(DvwS^Lv`j}t%rzWfa}RwA1K literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tiger/male/foot_bl.vox b/assets/voxygen/voxel/npc/tiger/male/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..74c360990a7a26368b6b3d4f4236a6fcd3bd3341 GIT binary patch literal 1328 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 PRm}81Ew)+s>G|{zpYk&? literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tiger/male/foot_fr.vox b/assets/voxygen/voxel/npc/tiger/male/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..8f4b28db0d25d53d62d7323c735ab160d390a033 GIT binary patch literal 1372 zcma)5e@NVA7=PaP{eD$ibDG|H=Q*`gx4SduPR$=_>rC(Ndpb2UZM$vamLm_b4Gr1k zSZr4=8&0#sAJB3ZA~9y0oI>=6jUi(&#;_4Vj4`76FNz>y|9pDB_UCZ*z=zNC<9&X; zyl-dgf&3{VYOV{lFp;4XwTHs~XHA2JO-f-TF%BFIhirls7C%EvqFJF)4+m!zvq)xU zNYV#|&<2&z2c^;mr6vPPvaO4tWC&dZWD*4g`!t<`+$12_RtzasP)f<*Gm2Spjx_z6 zA%t#7(in<$Wk}POI@i&IQm|ieu8_lJ z#XXebTEY`xaiTElK}Es`$3P~WW7+U5`&y4sf!qO*%8;gY7*V*k`L}H7sv-*M$g*3#_Ou%|p{GE*$TyL|-Ezc7!nZE@5q)P?4LBkf#ubEB0WZp&FeY zD-X$Iw%ose|E?$Y&$aD<$7z8lFBLWJRCH8r zM~C7SY`yzph z%QrFm?FL>vIf{Mf=Fs%n8rrXIz~}Sf5doCKz+X@sgoj`MJKsZoU;h>7Pq_Kdwqi55 PRm}81Ew)+s>G|{zpYk&? literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tiger/male/head_lower.vox b/assets/voxygen/voxel/npc/tiger/male/head_lower.vox new file mode 100644 index 0000000000000000000000000000000000000000..cf3f3839f71b80f881f67271c05b0399141020fb GIT binary patch literal 2124 zcma)6ZD^Hc7{1^4`FP)>IcIKjAG)pM*Uk)e&bHaiX1Y9Q^CMd>J$|63f`}}MAVegpe^CSx{<*rI(@)WQ;pTas`{TN=>wcbd zTGy;E9}tmMOH-@4NL?t>l1eu|WifXNsp#H?rEN9BVWR#=jq6J%oUXsPthMnK23ZTd0r5)EB%_jASu3%6fs0h zQrJhaUOW?d!aC8R_$E@!V@s|v)>_6bu`K&IKFm=j=_#KaeD+eI;$A63v!U|2`p)ls zF>-hO9TxM&CqA)#=6Ra^=ySE=^m#nHTJC+1938%4+=OgMo{E0P=?k4k`aN>>$j7I7 zY~s^A>hqj#a-k#g-Aer-^(#;4(@{w6zORX6BHt%}r-5h1edzQPPZ3LTxW3ck`^@9K zsm0?OawZ{X!ZP|}NlGIg?}6Gv&WSMe2V4X8k42VqQ!eIknHO??igmu5IXNiCeVSpR zVUA&M!`_B9mcRk~TlUrDs9C3pp&2urg(V5Yw-Im+xLVHDI=|cVo&%cUThT7Ai0Aga zbIpF5`+zzEhs`|A{+6+TvkG|smZp_E2i!AGZkiazVY)o>*W?=T-DnkKAJ;47TZ}~k zXJFl(v#)kqDBSSQ4DZ8cHCXC14bhBQ&I${OX zVCgfgwR|szIt=v(+*{TMt|#A>%Fe>0pZ)p1EZ>)Ao?)JL_sh5;j&+!Bu1=T3$ntZz zv1E{qnaDC`9T(2R(gNzYZU($Z?cT2I&o>tE?FCLN%}|FX5AAsH4y~KB>*MauovBX~ z_th0IEzSNx@IRrht`3<@1`qlK$y3)cJ@0Qk{PPz){Np#c?|ffHjJFui`tPr$ZaS<(bjU5ADDy0;37z)fwYf@JeqdrB7JZ&J{X;b?f_=-SYWB;xY(w_sloQIy-lQ1+tA9r6U0h*pczX(QY z-_w4k_3sm0_*igtNO1EK&kcg(scAUbRDjcKCgJ$j@i>we^uC#o!`mm~$Qy;&QYYwK zE;!jrt_zFN))+_E+6oNpT!75FS`6%3hO6(tj$hBVVb1gdEM8EC<`*llv$YoOO@i*t zg2A^1SB?v6N{f-IoPkX>bJ4MU5n3w?(6+Dy$5zb5@RoUKTwH}UFE2v+m8EFkx*A=3 z(&&A!9m7M1F?Q_~`re8ov#|tI^K(!*c@pN8cz!_wz3)!Nh0}5TaI+Hk zZqLD|>^Xc^aO)evPu~f;+A46eyBgQeFT?LYwxHu^E{=Vfhf8;ga1Uija~}Jsvv-H! zOs8O3LLRGs_sUt1=r1jth{||AD$8oRa796NMP6WPOMB`hIDr!zat-`C&;x?aG;oPr?eFB%0 w9797x10DzNRP_Ybjg@0{D3Jt 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 N{7KrQ#7{mi{{TDUACv$9 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tiger/male/leg_bl.vox b/assets/voxygen/voxel/npc/tiger/male/leg_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..3519108d8688f8093ed64b0f8992c25213279d03 GIT binary patch literal 1640 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tiger/male/torso_front.vox b/assets/voxygen/voxel/npc/tiger/male/torso_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..9ed832769a4b4fe9443f5904eca42e2747742891 GIT binary patch literal 6196 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 LZ3+JA>%)Ho`I)5Z literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index 3d6a1e91a9..ba4db66d8d 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -300,4 +300,64 @@ central: ("npc.tarasque.male.tail"), ), ), + (Tiger, Male): ( + upper: ( + offset: (-4.0, -5.5, -6.5), + central: ("npc.tiger.male.head_upper"), + ), + lower: ( + offset: (-4.0, -5.5, -4.0), + central: ("npc.tiger.male.head_lower"), + ), + jaw: ( + offset: (-2.0, -2.5, -1.0), + central: ("npc.tiger.male.jaw"), + ), + torso_f: ( + offset: (-6.0, -6.0, -5.5), + central: ("npc.tiger.male.torso_front"), + ), + torso_b: ( + offset: (-6.0, -6.0, -5.0), + central: ("npc.tiger.male.torso_back"), + ), + ears: ( + offset: (-5.0, -0.5, -1.5), + central: ("npc.tiger.male.ears"), + ), + tail: ( + offset: (-1.0, -3.0, -4.0), + central: ("npc.tiger.male.tail"), + ), + ), + (Tiger, Female): ( + upper: ( + offset: (-4.0, -5.5, -6.5), + central: ("npc.tiger.female.head_upper"), + ), + lower: ( + offset: (-4.0, -5.5, -4.0), + central: ("npc.tiger.female.head_lower"), + ), + jaw: ( + offset: (-2.0, -2.5, -1.0), + central: ("npc.tiger.female.jaw"), + ), + torso_f: ( + offset: (-6.0, -6.0, -5.5), + central: ("npc.tiger.female.torso_front"), + ), + torso_b: ( + offset: (-6.0, -6.0, -5.0), + central: ("npc.tiger.female.torso_back"), + ), + ears: ( + offset: (-5.0, -0.5, -1.5), + central: ("npc.tiger.female.ears"), + ), + tail: ( + offset: (-1.0, -3.0, -4.0), + central: ("npc.tiger.female.tail"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index 03dada8111..3cc1b82fd9 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -339,4 +339,72 @@ lateral: ("npc.tarasque.female.foot_rb"), ), ), + (Tiger, Male): ( + leg_lf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.tiger.male.leg_lf"), + ), + leg_rf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.tiger.male.leg_rf"), + ), + leg_lb: ( + offset: (-1.5, -4.0, -3.5), + lateral: ("npc.tiger.male.leg_lb"), + ), + leg_rb: ( + offset: (-1.5, -4.0, -3.5), + lateral: ("npc.tiger.male.leg_rb"), + ), + foot_lf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.tiger.male.foot_lf"), + ), + foot_rf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.tiger.male.foot_rf"), + ), + foot_lb: ( + offset: (-1.5, -4.0, -3.5), + lateral: ("npc.tiger.male.foot_lb"), + ), + foot_rb: ( + offset: (-1.5, -4.0, -3.5), + lateral: ("npc.tiger.male.foot_rb"), + ), + ), + (Tiger, Female): ( + leg_lf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.tiger.female.leg_lf"), + ), + leg_rf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.tiger.female.leg_rf"), + ), + leg_lb: ( + offset: (-1.5, -4.0, -3.5), + lateral: ("npc.tiger.female.leg_lb"), + ), + leg_rb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.tiger.female.leg_rb"), + ), + foot_lf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.tiger.female.foot_lf"), + ), + foot_rf: ( + offset: (-1.5, -1.5, -2.5), + lateral: ("npc.tiger.female.foot_rf"), + ), + foot_lb: ( + offset: (-1.5, -4.0, -3.5), + lateral: ("npc.tiger.female.foot_lb"), + ), + foot_rb: ( + offset: (-1.5, -2.0, -3.5), + lateral: ("npc.tiger.female.foot_rb"), + ), + ), }) diff --git a/common/src/comp/body/quadruped_medium.rs b/common/src/comp/body/quadruped_medium.rs index b9a20dbe1f..8170f8f77e 100644 --- a/common/src/comp/body/quadruped_medium.rs +++ b/common/src/comp/body/quadruped_medium.rs @@ -29,6 +29,7 @@ impl From for super::Body { pub enum Species { Grolgar = 0, Saber = 1, + Tiger = 2, Tuskram = 3, Lion = 6, Tarasque = 7, @@ -41,6 +42,7 @@ pub enum Species { pub struct AllSpecies { pub grolgar: SpeciesMeta, pub saber: SpeciesMeta, + pub tiger: SpeciesMeta, pub tuskram: SpeciesMeta, pub lion: SpeciesMeta, pub tarasque: SpeciesMeta, @@ -54,6 +56,7 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies match index { Species::Grolgar => &self.grolgar, Species::Saber => &self.saber, + Species::Tiger => &self.tiger, Species::Tuskram => &self.tuskram, Species::Lion => &self.lion, Species::Tarasque => &self.tarasque, @@ -61,9 +64,10 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies } } -pub const ALL_SPECIES: [Species; 5] = [ +pub const ALL_SPECIES: [Species; 6] = [ Species::Grolgar, Species::Saber, + Species::Tiger, Species::Tuskram, Species::Lion, Species::Tarasque, diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index 9288b80625..e121115f1c 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -28,6 +28,60 @@ pub struct QuadrupedMediumSkeleton { foot_rb: Bone, } +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const HEAD_UPPER_X: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const HEAD_UPPER_Z: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const HEAD_LOWER_X: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const HEAD_LOWER_Z: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const JAW_X: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const JAW_Z: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const TAIL_X: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const TAIL_Z: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const TORSO_BACK_X: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const TORSO_BACK_Z: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const TORSO_MID_X: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const TORSO_MID_Z: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const EARS_X: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const EARS_Z: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const LEG_FRONT_X: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const LEG_FRONT_Y: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const LEG_FRONT_Z: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const LEG_BACK_X: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const LEG_BACK_Y: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const LEG_BACK_Z: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const FEET_FRONT_X: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const FEET_FRONT_Y: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const FEET_FRONT_Z: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const FEET_BACK_X: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const FEET_BACK_Y: f32 = 0.0; +#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] +const FEET_BACK_Z: f32 = 0.0; + + impl QuadrupedMediumSkeleton { pub fn new() -> Self { Self::default() } } @@ -140,6 +194,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (9.0, 12.0), (Lion, _) => (12.5, 14.0), (Tarasque, _) => (12.0, 19.0), + (Tiger, _) => (*HEAD_UPPER_X, *HEAD_UPPER_Z), }, head_lower: match (body.species, body.body_type) { (Grolgar, _) => (-4.0, -7.0), @@ -147,6 +202,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (-3.0, -1.0), (Lion, _) => (-5.0, -1.0), (Tarasque, _) => (-5.0, -6.0), + (Tiger, _) => (*HEAD_LOWER_X, *HEAD_LOWER_Z), }, jaw: match (body.species, body.body_type) { (Grolgar, _) => (3.0, -5.0), @@ -154,6 +210,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (2.0, -2.0), (Lion, _) => (2.0, -3.0), (Tarasque, _) => (4.0, -9.0), + (Tiger, _) => (*JAW_X, *JAW_Z), }, tail: match (body.species, body.body_type) { (Grolgar, _) => (-6.0, -2.0), @@ -161,6 +218,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (-6.0, -2.0), (Lion, _) => (-8.0, -6.0), (Tarasque, _) => (-7.0, -2.0), + (Tiger, _) => (*TAIL_X, *TAIL_Z), }, torso_back: match (body.species, body.body_type) { (Grolgar, _) => (4.0, 11.0), @@ -168,6 +226,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (4.0, 9.0), (Lion, _) => (4.0, 10.0), (Tarasque, _) => (4.0, 9.0), + (Tiger, _) => (*TORSO_BACK_X, *TORSO_BACK_Z), }, torso_mid: match (body.species, body.body_type) { (Grolgar, _) => (-7.0, 10.5), @@ -175,6 +234,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (-7.0, 9.0), (Lion, _) => (-9.0, 9.0), (Tarasque, _) => (-7.0, 8.0), + (Tiger, _) => (*TORSO_MID_X, *TORSO_MID_Z), }, ears: match (body.species, body.body_type) { (Grolgar, _) => (-1.0, 5.0), @@ -182,6 +242,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (10.0, 2.0), (Lion, _) => (-2.0, 4.0), (Tarasque, _) => (1.5, -2.0), + (Tiger, _) => (*EARS_X, *EARS_Z), }, leg_f: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 6.0, 2.0), @@ -189,6 +250,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (4.0, 6.0, 4.5), (Lion, _) => (5.0, 6.0, 3.0), (Tarasque, _) => (4.0, 6.0, 3.0), + (Tiger, _) => (*LEG_FRONT_X, *LEG_FRONT_Y, *LEG_FRONT_Z), }, leg_b: match (body.species, body.body_type) { (Grolgar, _) => (5.0, -4.0, 3.0), @@ -196,6 +258,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (4.0, -8.0, 5.5), (Lion, _) => (5.5, -8.0, 3.5), (Tarasque, _) => (4.0, -8.0, 3.5), + (Tiger, _) => (*LEG_BACK_X, *LEG_BACK_Y, *LEG_BACK_Z), }, feet_f: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 6.0, 2.0), @@ -203,6 +266,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (4.0, 6.0, 4.5), (Lion, _) => (5.0, 6.0, 3.0), (Tarasque, _) => (4.0, 6.0, 3.0), + (Tiger, _) => (*FEET_FRONT_X, *FEET_FRONT_Y, *FEET_FRONT_Z), }, feet_b: match (body.species, body.body_type) { (Grolgar, _) => (5.0, -4.0, 3.0), @@ -210,6 +274,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (4.0, -8.0, 5.5), (Lion, _) => (5.5, -8.0, 3.5), (Tarasque, _) => (4.0, -8.0, 3.5), + (Tiger, _) => (*FEET_BACK_X, *FEET_BACK_Y, *FEET_BACK_Z), }, height: match (body.species, body.body_type) { (Grolgar, _) => (1.2), @@ -217,6 +282,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (1.0), (Lion, _) => (1.4), (Tarasque, _) => (1.1), + (Tiger, _) => (1.0), }, } } diff --git a/voxygen/src/scene/figure/load.rs b/voxygen/src/scene/figure/load.rs index d0f38faeb9..58347bbbc0 100644 --- a/voxygen/src/scene/figure/load.rs +++ b/voxygen/src/scene/figure/load.rs @@ -1422,90 +1422,6 @@ impl QuadrupedMediumLateralSpec { .unwrap() } - pub fn mesh_foot_lf( - &self, - species: QMSpecies, - body_type: QMBodyType, - generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, - ) -> Mesh { - let spec = match self.0.get(&(species, body_type)) { - Some(spec) => spec, - None => { - error!( - "No foot specification exists for the combination of {:?} and {:?}", - species, body_type - ); - return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); - }, - }; - let lateral = graceful_load_segment(&spec.foot_lf.lateral.0); - - generate_mesh(&lateral, Vec3::from(spec.foot_lf.offset)) - } - - pub fn mesh_foot_rf( - &self, - species: QMSpecies, - body_type: QMBodyType, - generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, - ) -> Mesh { - let spec = match self.0.get(&(species, body_type)) { - Some(spec) => spec, - None => { - error!( - "No foot specification exists for the combination of {:?} and {:?}", - species, body_type - ); - return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); - }, - }; - let lateral = graceful_load_segment(&spec.foot_rf.lateral.0); - - generate_mesh(&lateral, Vec3::from(spec.foot_rf.offset)) - } - - pub fn mesh_foot_lb( - &self, - species: QMSpecies, - body_type: QMBodyType, - generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, - ) -> Mesh { - let spec = match self.0.get(&(species, body_type)) { - Some(spec) => spec, - None => { - error!( - "No foot specification exists for the combination of {:?} and {:?}", - species, body_type - ); - return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); - }, - }; - let lateral = graceful_load_segment(&spec.foot_lb.lateral.0); - - generate_mesh(&lateral, Vec3::from(spec.foot_lb.offset)) - } - - pub fn mesh_foot_rb( - &self, - species: QMSpecies, - body_type: QMBodyType, - generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, - ) -> Mesh { - let spec = match self.0.get(&(species, body_type)) { - Some(spec) => spec, - None => { - error!( - "No foot specification exists for the combination of {:?} and {:?}", - species, body_type - ); - return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); - }, - }; - let lateral = graceful_load_segment(&spec.foot_rb.lateral.0); - - generate_mesh(&lateral, Vec3::from(spec.foot_rb.offset)) - } - pub fn mesh_leg_lf( &self, species: QMSpecies, @@ -1589,6 +1505,90 @@ impl QuadrupedMediumLateralSpec { generate_mesh(&lateral, Vec3::from(spec.leg_rb.offset)) } + + pub fn mesh_foot_lf( + &self, + species: QMSpecies, + body_type: QMBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No foot specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let lateral = graceful_load_segment(&spec.foot_lf.lateral.0); + + generate_mesh(&lateral, Vec3::from(spec.foot_lf.offset)) + } + + pub fn mesh_foot_rf( + &self, + species: QMSpecies, + body_type: QMBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No foot specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let lateral = graceful_load_segment(&spec.foot_rf.lateral.0); + + generate_mesh(&lateral, Vec3::from(spec.foot_rf.offset)) + } + + pub fn mesh_foot_lb( + &self, + species: QMSpecies, + body_type: QMBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No foot specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let lateral = graceful_load_segment(&spec.foot_lb.lateral.0); + + generate_mesh(&lateral, Vec3::from(spec.foot_lb.offset)) + } + + pub fn mesh_foot_rb( + &self, + species: QMSpecies, + body_type: QMBodyType, + generate_mesh: impl FnOnce(&Segment, Vec3) -> Mesh, + ) -> Mesh { + let spec = match self.0.get(&(species, body_type)) { + Some(spec) => spec, + None => { + error!( + "No foot specification exists for the combination of {:?} and {:?}", + species, body_type + ); + return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); + }, + }; + let lateral = graceful_load_segment(&spec.foot_rb.lateral.0); + + generate_mesh(&lateral, Vec3::from(spec.foot_rb.offset)) + } } //// diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs index 712d8648d8..c5fe230aed 100644 --- a/voxygen/src/scene/figure/mod.rs +++ b/voxygen/src/scene/figure/mod.rs @@ -936,7 +936,7 @@ impl FigureMgr { is_player, ); }, - Body::QuadrupedMedium(_) => { + Body::QuadrupedMedium(quadruped_body) => { let skeleton_attr = &self .quadruped_medium_model_cache .get_or_create_model( @@ -948,6 +948,7 @@ impl FigureMgr { None, ) .1; + let ref skeleton_attr = quadruped_body.into(); let state = self .quadruped_medium_states From bcaea3a52fd774b55935b147e9d22a13c3f42e50 Mon Sep 17 00:00:00 2001 From: Snowram Date: Thu, 11 Jun 2020 01:11:06 +0200 Subject: [PATCH 09/48] Homogenizes quadmed bones names --- .../female/{foot_lb.vox => foot_bl.vox} | Bin .../female/{foot_rb.vox => foot_br.vox} | Bin .../female/{foot_lf.vox => foot_fl.vox} | Bin .../female/{foot_rf.vox => foot_fr.vox} | Bin .../grolgar/male/{foot_lb.vox => foot_bl.vox} | Bin .../grolgar/male/{foot_rb.vox => foot_br.vox} | Bin .../grolgar/male/{foot_lf.vox => foot_fl.vox} | Bin .../grolgar/male/{foot_rf.vox => foot_fr.vox} | Bin .../lion/female/{foot_lb.vox => foot_bl.vox} | Bin .../lion/female/{foot_rb.vox => foot_br.vox} | Bin .../lion/female/{foot_lf.vox => foot_fl.vox} | Bin .../lion/female/{foot_rf.vox => foot_fr.vox} | Bin .../lion/male/{foot_lb.vox => foot_bl.vox} | Bin .../lion/male/{foot_rb.vox => foot_br.vox} | Bin .../lion/male/{foot_lf.vox => foot_fl.vox} | Bin .../lion/male/{foot_rf.vox => foot_fr.vox} | Bin .../saber/female/{foot_lb.vox => foot_bl.vox} | Bin .../saber/female/{foot_rb.vox => foot_br.vox} | Bin .../saber/female/{foot_lf.vox => foot_fl.vox} | Bin .../saber/female/{foot_rf.vox => foot_fr.vox} | Bin .../saber/male/{foot_lb.vox => foot_bl.vox} | Bin .../saber/male/{foot_rb.vox => foot_br.vox} | Bin .../saber/male/{foot_lf.vox => foot_fl.vox} | Bin .../saber/male/{foot_rf.vox => foot_fr.vox} | Bin .../female/{foot_lb.vox => foot_bl.vox} | Bin .../female/{foot_rb.vox => foot_br.vox} | Bin .../female/{foot_lf.vox => foot_fl.vox} | Bin .../female/{foot_rf.vox => foot_fr.vox} | Bin .../male/{foot_lb.vox => foot_bl.vox} | Bin .../male/{foot_rb.vox => foot_br.vox} | Bin .../male/{foot_lf.vox => foot_fl.vox} | Bin .../male/{foot_rf.vox => foot_fr.vox} | Bin .../female/{foot_lb.vox => foot_bl.vox} | Bin .../female/{foot_rb.vox => foot_br.vox} | Bin .../female/{foot_lf.vox => foot_fl.vox} | Bin .../female/{foot_rf.vox => foot_fr.vox} | Bin .../tuskram/male/{foot_lb.vox => foot_bl.vox} | Bin .../tuskram/male/{foot_rb.vox => foot_br.vox} | Bin .../tuskram/male/{foot_lf.vox => foot_fl.vox} | Bin .../tuskram/male/{foot_rf.vox => foot_fr.vox} | Bin .../quadruped_medium_central_manifest.ron | 48 +-- .../quadruped_medium_lateral_manifest.ron | 384 +++++++++--------- voxygen/src/anim/src/quadruped_medium/idle.rs | 34 +- voxygen/src/anim/src/quadruped_medium/jump.rs | 32 +- voxygen/src/anim/src/quadruped_medium/mod.rs | 78 ++-- voxygen/src/anim/src/quadruped_medium/run.rs | 34 +- voxygen/src/anim/src/quadruped_small/idle.rs | 24 +- voxygen/src/anim/src/quadruped_small/jump.rs | 24 +- voxygen/src/anim/src/quadruped_small/mod.rs | 24 +- voxygen/src/anim/src/quadruped_small/run.rs | 24 +- voxygen/src/scene/figure/cache.rs | 28 +- voxygen/src/scene/figure/load.rs | 88 ++-- 52 files changed, 411 insertions(+), 411 deletions(-) rename assets/voxygen/voxel/npc/grolgar/female/{foot_lb.vox => foot_bl.vox} (100%) rename assets/voxygen/voxel/npc/grolgar/female/{foot_rb.vox => foot_br.vox} (100%) rename assets/voxygen/voxel/npc/grolgar/female/{foot_lf.vox => foot_fl.vox} (100%) rename assets/voxygen/voxel/npc/grolgar/female/{foot_rf.vox => foot_fr.vox} (100%) rename assets/voxygen/voxel/npc/grolgar/male/{foot_lb.vox => foot_bl.vox} (100%) rename assets/voxygen/voxel/npc/grolgar/male/{foot_rb.vox => foot_br.vox} (100%) rename assets/voxygen/voxel/npc/grolgar/male/{foot_lf.vox => foot_fl.vox} (100%) rename assets/voxygen/voxel/npc/grolgar/male/{foot_rf.vox => foot_fr.vox} (100%) rename assets/voxygen/voxel/npc/lion/female/{foot_lb.vox => foot_bl.vox} (100%) rename assets/voxygen/voxel/npc/lion/female/{foot_rb.vox => foot_br.vox} (100%) rename assets/voxygen/voxel/npc/lion/female/{foot_lf.vox => foot_fl.vox} (100%) rename assets/voxygen/voxel/npc/lion/female/{foot_rf.vox => foot_fr.vox} (100%) rename assets/voxygen/voxel/npc/lion/male/{foot_lb.vox => foot_bl.vox} (100%) rename assets/voxygen/voxel/npc/lion/male/{foot_rb.vox => foot_br.vox} (100%) rename assets/voxygen/voxel/npc/lion/male/{foot_lf.vox => foot_fl.vox} (100%) rename assets/voxygen/voxel/npc/lion/male/{foot_rf.vox => foot_fr.vox} (100%) rename assets/voxygen/voxel/npc/saber/female/{foot_lb.vox => foot_bl.vox} (100%) rename assets/voxygen/voxel/npc/saber/female/{foot_rb.vox => foot_br.vox} (100%) rename assets/voxygen/voxel/npc/saber/female/{foot_lf.vox => foot_fl.vox} (100%) rename assets/voxygen/voxel/npc/saber/female/{foot_rf.vox => foot_fr.vox} (100%) rename assets/voxygen/voxel/npc/saber/male/{foot_lb.vox => foot_bl.vox} (100%) rename assets/voxygen/voxel/npc/saber/male/{foot_rb.vox => foot_br.vox} (100%) rename assets/voxygen/voxel/npc/saber/male/{foot_lf.vox => foot_fl.vox} (100%) rename assets/voxygen/voxel/npc/saber/male/{foot_rf.vox => foot_fr.vox} (100%) rename assets/voxygen/voxel/npc/tarasque/female/{foot_lb.vox => foot_bl.vox} (100%) rename assets/voxygen/voxel/npc/tarasque/female/{foot_rb.vox => foot_br.vox} (100%) rename assets/voxygen/voxel/npc/tarasque/female/{foot_lf.vox => foot_fl.vox} (100%) rename assets/voxygen/voxel/npc/tarasque/female/{foot_rf.vox => foot_fr.vox} (100%) rename assets/voxygen/voxel/npc/tarasque/male/{foot_lb.vox => foot_bl.vox} (100%) rename assets/voxygen/voxel/npc/tarasque/male/{foot_rb.vox => foot_br.vox} (100%) rename assets/voxygen/voxel/npc/tarasque/male/{foot_lf.vox => foot_fl.vox} (100%) rename assets/voxygen/voxel/npc/tarasque/male/{foot_rf.vox => foot_fr.vox} (100%) rename assets/voxygen/voxel/npc/tuskram/female/{foot_lb.vox => foot_bl.vox} (100%) rename assets/voxygen/voxel/npc/tuskram/female/{foot_rb.vox => foot_br.vox} (100%) rename assets/voxygen/voxel/npc/tuskram/female/{foot_lf.vox => foot_fl.vox} (100%) rename assets/voxygen/voxel/npc/tuskram/female/{foot_rf.vox => foot_fr.vox} (100%) rename assets/voxygen/voxel/npc/tuskram/male/{foot_lb.vox => foot_bl.vox} (100%) rename assets/voxygen/voxel/npc/tuskram/male/{foot_rb.vox => foot_br.vox} (100%) rename assets/voxygen/voxel/npc/tuskram/male/{foot_lf.vox => foot_fl.vox} (100%) rename assets/voxygen/voxel/npc/tuskram/male/{foot_rf.vox => foot_fr.vox} (100%) diff --git a/assets/voxygen/voxel/npc/grolgar/female/foot_lb.vox b/assets/voxygen/voxel/npc/grolgar/female/foot_bl.vox similarity index 100% rename from assets/voxygen/voxel/npc/grolgar/female/foot_lb.vox rename to assets/voxygen/voxel/npc/grolgar/female/foot_bl.vox diff --git a/assets/voxygen/voxel/npc/grolgar/female/foot_rb.vox b/assets/voxygen/voxel/npc/grolgar/female/foot_br.vox similarity index 100% rename from assets/voxygen/voxel/npc/grolgar/female/foot_rb.vox rename to assets/voxygen/voxel/npc/grolgar/female/foot_br.vox diff --git a/assets/voxygen/voxel/npc/grolgar/female/foot_lf.vox b/assets/voxygen/voxel/npc/grolgar/female/foot_fl.vox similarity index 100% rename from assets/voxygen/voxel/npc/grolgar/female/foot_lf.vox rename to assets/voxygen/voxel/npc/grolgar/female/foot_fl.vox diff --git a/assets/voxygen/voxel/npc/grolgar/female/foot_rf.vox b/assets/voxygen/voxel/npc/grolgar/female/foot_fr.vox similarity index 100% rename from assets/voxygen/voxel/npc/grolgar/female/foot_rf.vox rename to assets/voxygen/voxel/npc/grolgar/female/foot_fr.vox diff --git a/assets/voxygen/voxel/npc/grolgar/male/foot_lb.vox b/assets/voxygen/voxel/npc/grolgar/male/foot_bl.vox similarity index 100% rename from assets/voxygen/voxel/npc/grolgar/male/foot_lb.vox rename to assets/voxygen/voxel/npc/grolgar/male/foot_bl.vox diff --git a/assets/voxygen/voxel/npc/grolgar/male/foot_rb.vox b/assets/voxygen/voxel/npc/grolgar/male/foot_br.vox similarity index 100% rename from assets/voxygen/voxel/npc/grolgar/male/foot_rb.vox rename to assets/voxygen/voxel/npc/grolgar/male/foot_br.vox diff --git a/assets/voxygen/voxel/npc/grolgar/male/foot_lf.vox b/assets/voxygen/voxel/npc/grolgar/male/foot_fl.vox similarity index 100% rename from assets/voxygen/voxel/npc/grolgar/male/foot_lf.vox rename to assets/voxygen/voxel/npc/grolgar/male/foot_fl.vox diff --git a/assets/voxygen/voxel/npc/grolgar/male/foot_rf.vox b/assets/voxygen/voxel/npc/grolgar/male/foot_fr.vox similarity index 100% rename from assets/voxygen/voxel/npc/grolgar/male/foot_rf.vox rename to assets/voxygen/voxel/npc/grolgar/male/foot_fr.vox diff --git a/assets/voxygen/voxel/npc/lion/female/foot_lb.vox b/assets/voxygen/voxel/npc/lion/female/foot_bl.vox similarity index 100% rename from assets/voxygen/voxel/npc/lion/female/foot_lb.vox rename to assets/voxygen/voxel/npc/lion/female/foot_bl.vox diff --git a/assets/voxygen/voxel/npc/lion/female/foot_rb.vox b/assets/voxygen/voxel/npc/lion/female/foot_br.vox similarity index 100% rename from assets/voxygen/voxel/npc/lion/female/foot_rb.vox rename to assets/voxygen/voxel/npc/lion/female/foot_br.vox diff --git a/assets/voxygen/voxel/npc/lion/female/foot_lf.vox b/assets/voxygen/voxel/npc/lion/female/foot_fl.vox similarity index 100% rename from assets/voxygen/voxel/npc/lion/female/foot_lf.vox rename to assets/voxygen/voxel/npc/lion/female/foot_fl.vox diff --git a/assets/voxygen/voxel/npc/lion/female/foot_rf.vox b/assets/voxygen/voxel/npc/lion/female/foot_fr.vox similarity index 100% rename from assets/voxygen/voxel/npc/lion/female/foot_rf.vox rename to assets/voxygen/voxel/npc/lion/female/foot_fr.vox diff --git a/assets/voxygen/voxel/npc/lion/male/foot_lb.vox b/assets/voxygen/voxel/npc/lion/male/foot_bl.vox similarity index 100% rename from assets/voxygen/voxel/npc/lion/male/foot_lb.vox rename to assets/voxygen/voxel/npc/lion/male/foot_bl.vox diff --git a/assets/voxygen/voxel/npc/lion/male/foot_rb.vox b/assets/voxygen/voxel/npc/lion/male/foot_br.vox similarity index 100% rename from assets/voxygen/voxel/npc/lion/male/foot_rb.vox rename to assets/voxygen/voxel/npc/lion/male/foot_br.vox diff --git a/assets/voxygen/voxel/npc/lion/male/foot_lf.vox b/assets/voxygen/voxel/npc/lion/male/foot_fl.vox similarity index 100% rename from assets/voxygen/voxel/npc/lion/male/foot_lf.vox rename to assets/voxygen/voxel/npc/lion/male/foot_fl.vox diff --git a/assets/voxygen/voxel/npc/lion/male/foot_rf.vox b/assets/voxygen/voxel/npc/lion/male/foot_fr.vox similarity index 100% rename from assets/voxygen/voxel/npc/lion/male/foot_rf.vox rename to assets/voxygen/voxel/npc/lion/male/foot_fr.vox diff --git a/assets/voxygen/voxel/npc/saber/female/foot_lb.vox b/assets/voxygen/voxel/npc/saber/female/foot_bl.vox similarity index 100% rename from assets/voxygen/voxel/npc/saber/female/foot_lb.vox rename to assets/voxygen/voxel/npc/saber/female/foot_bl.vox diff --git a/assets/voxygen/voxel/npc/saber/female/foot_rb.vox b/assets/voxygen/voxel/npc/saber/female/foot_br.vox similarity index 100% rename from assets/voxygen/voxel/npc/saber/female/foot_rb.vox rename to assets/voxygen/voxel/npc/saber/female/foot_br.vox diff --git a/assets/voxygen/voxel/npc/saber/female/foot_lf.vox b/assets/voxygen/voxel/npc/saber/female/foot_fl.vox similarity index 100% rename from assets/voxygen/voxel/npc/saber/female/foot_lf.vox rename to assets/voxygen/voxel/npc/saber/female/foot_fl.vox diff --git a/assets/voxygen/voxel/npc/saber/female/foot_rf.vox b/assets/voxygen/voxel/npc/saber/female/foot_fr.vox similarity index 100% rename from assets/voxygen/voxel/npc/saber/female/foot_rf.vox rename to assets/voxygen/voxel/npc/saber/female/foot_fr.vox diff --git a/assets/voxygen/voxel/npc/saber/male/foot_lb.vox b/assets/voxygen/voxel/npc/saber/male/foot_bl.vox similarity index 100% rename from assets/voxygen/voxel/npc/saber/male/foot_lb.vox rename to assets/voxygen/voxel/npc/saber/male/foot_bl.vox diff --git a/assets/voxygen/voxel/npc/saber/male/foot_rb.vox b/assets/voxygen/voxel/npc/saber/male/foot_br.vox similarity index 100% rename from assets/voxygen/voxel/npc/saber/male/foot_rb.vox rename to assets/voxygen/voxel/npc/saber/male/foot_br.vox diff --git a/assets/voxygen/voxel/npc/saber/male/foot_lf.vox b/assets/voxygen/voxel/npc/saber/male/foot_fl.vox similarity index 100% rename from assets/voxygen/voxel/npc/saber/male/foot_lf.vox rename to assets/voxygen/voxel/npc/saber/male/foot_fl.vox diff --git a/assets/voxygen/voxel/npc/saber/male/foot_rf.vox b/assets/voxygen/voxel/npc/saber/male/foot_fr.vox similarity index 100% rename from assets/voxygen/voxel/npc/saber/male/foot_rf.vox rename to assets/voxygen/voxel/npc/saber/male/foot_fr.vox diff --git a/assets/voxygen/voxel/npc/tarasque/female/foot_lb.vox b/assets/voxygen/voxel/npc/tarasque/female/foot_bl.vox similarity index 100% rename from assets/voxygen/voxel/npc/tarasque/female/foot_lb.vox rename to assets/voxygen/voxel/npc/tarasque/female/foot_bl.vox diff --git a/assets/voxygen/voxel/npc/tarasque/female/foot_rb.vox b/assets/voxygen/voxel/npc/tarasque/female/foot_br.vox similarity index 100% rename from assets/voxygen/voxel/npc/tarasque/female/foot_rb.vox rename to assets/voxygen/voxel/npc/tarasque/female/foot_br.vox diff --git a/assets/voxygen/voxel/npc/tarasque/female/foot_lf.vox b/assets/voxygen/voxel/npc/tarasque/female/foot_fl.vox similarity index 100% rename from assets/voxygen/voxel/npc/tarasque/female/foot_lf.vox rename to assets/voxygen/voxel/npc/tarasque/female/foot_fl.vox diff --git a/assets/voxygen/voxel/npc/tarasque/female/foot_rf.vox b/assets/voxygen/voxel/npc/tarasque/female/foot_fr.vox similarity index 100% rename from assets/voxygen/voxel/npc/tarasque/female/foot_rf.vox rename to assets/voxygen/voxel/npc/tarasque/female/foot_fr.vox diff --git a/assets/voxygen/voxel/npc/tarasque/male/foot_lb.vox b/assets/voxygen/voxel/npc/tarasque/male/foot_bl.vox similarity index 100% rename from assets/voxygen/voxel/npc/tarasque/male/foot_lb.vox rename to assets/voxygen/voxel/npc/tarasque/male/foot_bl.vox diff --git a/assets/voxygen/voxel/npc/tarasque/male/foot_rb.vox b/assets/voxygen/voxel/npc/tarasque/male/foot_br.vox similarity index 100% rename from assets/voxygen/voxel/npc/tarasque/male/foot_rb.vox rename to assets/voxygen/voxel/npc/tarasque/male/foot_br.vox diff --git a/assets/voxygen/voxel/npc/tarasque/male/foot_lf.vox b/assets/voxygen/voxel/npc/tarasque/male/foot_fl.vox similarity index 100% rename from assets/voxygen/voxel/npc/tarasque/male/foot_lf.vox rename to assets/voxygen/voxel/npc/tarasque/male/foot_fl.vox diff --git a/assets/voxygen/voxel/npc/tarasque/male/foot_rf.vox b/assets/voxygen/voxel/npc/tarasque/male/foot_fr.vox similarity index 100% rename from assets/voxygen/voxel/npc/tarasque/male/foot_rf.vox rename to assets/voxygen/voxel/npc/tarasque/male/foot_fr.vox diff --git a/assets/voxygen/voxel/npc/tuskram/female/foot_lb.vox b/assets/voxygen/voxel/npc/tuskram/female/foot_bl.vox similarity index 100% rename from assets/voxygen/voxel/npc/tuskram/female/foot_lb.vox rename to assets/voxygen/voxel/npc/tuskram/female/foot_bl.vox diff --git a/assets/voxygen/voxel/npc/tuskram/female/foot_rb.vox b/assets/voxygen/voxel/npc/tuskram/female/foot_br.vox similarity index 100% rename from assets/voxygen/voxel/npc/tuskram/female/foot_rb.vox rename to assets/voxygen/voxel/npc/tuskram/female/foot_br.vox diff --git a/assets/voxygen/voxel/npc/tuskram/female/foot_lf.vox b/assets/voxygen/voxel/npc/tuskram/female/foot_fl.vox similarity index 100% rename from assets/voxygen/voxel/npc/tuskram/female/foot_lf.vox rename to assets/voxygen/voxel/npc/tuskram/female/foot_fl.vox diff --git a/assets/voxygen/voxel/npc/tuskram/female/foot_rf.vox b/assets/voxygen/voxel/npc/tuskram/female/foot_fr.vox similarity index 100% rename from assets/voxygen/voxel/npc/tuskram/female/foot_rf.vox rename to assets/voxygen/voxel/npc/tuskram/female/foot_fr.vox diff --git a/assets/voxygen/voxel/npc/tuskram/male/foot_lb.vox b/assets/voxygen/voxel/npc/tuskram/male/foot_bl.vox similarity index 100% rename from assets/voxygen/voxel/npc/tuskram/male/foot_lb.vox rename to assets/voxygen/voxel/npc/tuskram/male/foot_bl.vox diff --git a/assets/voxygen/voxel/npc/tuskram/male/foot_rb.vox b/assets/voxygen/voxel/npc/tuskram/male/foot_br.vox similarity index 100% rename from assets/voxygen/voxel/npc/tuskram/male/foot_rb.vox rename to assets/voxygen/voxel/npc/tuskram/male/foot_br.vox diff --git a/assets/voxygen/voxel/npc/tuskram/male/foot_lf.vox b/assets/voxygen/voxel/npc/tuskram/male/foot_fl.vox similarity index 100% rename from assets/voxygen/voxel/npc/tuskram/male/foot_lf.vox rename to assets/voxygen/voxel/npc/tuskram/male/foot_fl.vox diff --git a/assets/voxygen/voxel/npc/tuskram/male/foot_rf.vox b/assets/voxygen/voxel/npc/tuskram/male/foot_fr.vox similarity index 100% rename from assets/voxygen/voxel/npc/tuskram/male/foot_rf.vox rename to assets/voxygen/voxel/npc/tuskram/male/foot_fr.vox diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index ba4db66d8d..84b5308855 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -12,11 +12,11 @@ offset: (-3.0, -3.0, -2.5), central: ("npc.grolgar.male.jaw"), ), - torso_f: ( + torso_front: ( offset: (-8.0, -5.5, -6.0), central: ("npc.grolgar.male.torso_front"), ), - torso_b: ( + torso_back: ( offset: (-7.0, -6.0, -6.0), central: ("npc.grolgar.male.torso_back"), ), @@ -42,11 +42,11 @@ offset: (-3.0, -3.0, -2.5), central: ("npc.grolgar.male.jaw"), ), - torso_f: ( + torso_front: ( offset: (-8.0, -5.5, -6.0), central: ("npc.grolgar.female.torso_front"), ), - torso_b: ( + torso_back: ( offset: (-7.0, -6.0, -6.0), central: ("npc.grolgar.female.torso_back"), ), @@ -73,11 +73,11 @@ offset: (-2.0, -2.5, -1.0), central: ("npc.saber.male.jaw"), ), - torso_f: ( + torso_front: ( offset: (-6.0, -6.0, -5.5), central: ("npc.saber.male.torso_front"), ), - torso_b: ( + torso_back: ( offset: (-6.0, -6.0, -5.0), central: ("npc.saber.male.torso_back"), ), @@ -103,11 +103,11 @@ offset: (-2.0, -2.5, -1.0), central: ("npc.saber.female.jaw"), ), - torso_f: ( + torso_front: ( offset: (-6.0, -6.0, -5.5), central: ("npc.saber.female.torso_front"), ), - torso_b: ( + torso_back: ( offset: (-6.0, -6.0, -5.0), central: ("npc.saber.female.torso_back"), ), @@ -133,11 +133,11 @@ offset: (-2.0, -1.0, -1.0), central: ("npc.tuskram.male.jaw"), ), - torso_f: ( + torso_front: ( offset: (-5.0, -6.0, -4.0), central: ("npc.tuskram.male.torso_front"), ), - torso_b: ( + torso_back: ( offset: (-5.0, -6.0, -4.0), central: ("npc.tuskram.male.torso_back"), ), @@ -163,11 +163,11 @@ offset: (-2.0, -1.0, -1.0), central: ("npc.tuskram.male.jaw"), ), - torso_f: ( + torso_front: ( offset: (-5.0, -6.0, -4.0), central: ("npc.tuskram.female.torso_front"), ), - torso_b: ( + torso_back: ( offset: (-5.0, -6.0, -4.0), central: ("npc.tuskram.female.torso_back"), ), @@ -193,11 +193,11 @@ offset: (-2.5, -2.5, -0.5), central: ("npc.lion.male.jaw"), ), - torso_f: ( + torso_front: ( offset: (-5.5, -7.5, -5.5), central: ("npc.lion.male.torso_front"), ), - torso_b: ( + torso_back: ( offset: (-6.5, -6.0, -5.0), central: ("npc.lion.male.torso_back"), ), @@ -223,11 +223,11 @@ offset: (-2.5, -2.5, -0.5), central: ("npc.lion.male.jaw"), ), - torso_f: ( + torso_front: ( offset: (-5.5, -7.5, -5.5), central: ("npc.lion.female.torso_front"), ), - torso_b: ( + torso_back: ( offset: (-6.5, -6.0, -5.0), central: ("npc.lion.female.torso_back"), ), @@ -253,11 +253,11 @@ offset: (-2.0, -2.5, -1.0), central: ("npc.tarasque.male.jaw"), ), - torso_f: ( + torso_front: ( offset: (-5.0, -7.0, -6.5), central: ("npc.tarasque.male.torso_front"), ), - torso_b: ( + torso_back: ( offset: (-5.0, -6.0, -5.5), central: ("npc.tarasque.male.torso_back"), ), @@ -283,11 +283,11 @@ offset: (-2.0, -2.5, -1.0), central: ("npc.tarasque.male.jaw"), ), - torso_f: ( + torso_front: ( offset: (-5.0, -7.0, -6.5), central: ("npc.tarasque.female.torso_front"), ), - torso_b: ( + torso_back: ( offset: (-5.0, -6.0, -5.5), central: ("npc.tarasque.female.torso_back"), ), @@ -313,11 +313,11 @@ offset: (-2.0, -2.5, -1.0), central: ("npc.tiger.male.jaw"), ), - torso_f: ( + torso_front: ( offset: (-6.0, -6.0, -5.5), central: ("npc.tiger.male.torso_front"), ), - torso_b: ( + torso_back: ( offset: (-6.0, -6.0, -5.0), central: ("npc.tiger.male.torso_back"), ), @@ -343,11 +343,11 @@ offset: (-2.0, -2.5, -1.0), central: ("npc.tiger.female.jaw"), ), - torso_f: ( + torso_front: ( offset: (-6.0, -6.0, -5.5), central: ("npc.tiger.female.torso_front"), ), - torso_b: ( + torso_back: ( offset: (-6.0, -6.0, -5.0), central: ("npc.tiger.female.torso_back"), ), diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index 3cc1b82fd9..cd7222028f 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -1,410 +1,410 @@ ({ (Grolgar, Male): ( - leg_lf: ( + leg_fl: ( offset: (-2.5, -4.0, -1.5), - lateral: ("npc.grolgar.male.leg_lf"), + lateral: ("npc.grolgar.male.leg_fl"), ), - leg_rf: ( + leg_fr: ( offset: (-2.5, -4.0, -1.5), - lateral: ("npc.grolgar.male.leg_rf"), + lateral: ("npc.grolgar.male.leg_fr"), ), - leg_lb: ( + leg_bl: ( offset: (-2.5, -4.0, -3.0), - lateral: ("npc.grolgar.male.leg_lb"), + lateral: ("npc.grolgar.male.leg_bl"), ), - leg_rb: ( + leg_br: ( offset: (-2.5, -4.0, -3.0), - lateral: ("npc.grolgar.male.leg_rb"), + lateral: ("npc.grolgar.male.leg_br"), ), - foot_lf: ( + foot_fl: ( offset: (-2.5, -4.0, -1.5), - lateral: ("npc.grolgar.male.foot_lf"), + lateral: ("npc.grolgar.male.foot_fl"), ), - foot_rf: ( + foot_fr: ( offset: (-2.5, -4.0, -1.5), - lateral: ("npc.grolgar.male.foot_rf"), + lateral: ("npc.grolgar.male.foot_fr"), ), - foot_lb: ( + foot_bl: ( offset: (-2.5, -4.0, -3.0), - lateral: ("npc.grolgar.male.foot_lb"), + lateral: ("npc.grolgar.male.foot_bl"), ), - foot_rb: ( + foot_br: ( offset: (-2.5, -4.0, -3.0), - lateral: ("npc.grolgar.male.foot_rb"), + lateral: ("npc.grolgar.male.foot_br"), ), ), (Grolgar, Female): ( - leg_lf: ( + leg_fl: ( offset: (-2.5, -4.0, -1.5), - lateral: ("npc.grolgar.female.leg_lf"), + lateral: ("npc.grolgar.female.leg_fl"), ), - leg_rf: ( + leg_fr: ( offset: (-2.5, -4.0, -1.5), - lateral: ("npc.grolgar.female.leg_rf"), + lateral: ("npc.grolgar.female.leg_fr"), ), - leg_lb: ( + leg_bl: ( offset: (-2.5, -4.0, -3.0), - lateral: ("npc.grolgar.female.leg_lb"), + lateral: ("npc.grolgar.female.leg_bl"), ), - leg_rb: ( + leg_br: ( offset: (-2.5, -4.0, -3.0), - lateral: ("npc.grolgar.female.leg_rb"), + lateral: ("npc.grolgar.female.leg_br"), ), - foot_lf: ( + foot_fl: ( offset: (-2.5, -4.0, -1.5), - lateral: ("npc.grolgar.female.foot_lf"), + lateral: ("npc.grolgar.female.foot_fl"), ), - foot_rf: ( + foot_fr: ( offset: (-2.5, -4.0, -1.5), - lateral: ("npc.grolgar.female.foot_rf"), + lateral: ("npc.grolgar.female.foot_fr"), ), - foot_lb: ( + foot_bl: ( offset: (-2.5, -4.0, -3.0), - lateral: ("npc.grolgar.female.foot_lb"), + lateral: ("npc.grolgar.female.foot_bl"), ), - foot_rb: ( + foot_br: ( offset: (-2.5, -4.0, -3.0), - lateral: ("npc.grolgar.female.foot_rb"), + lateral: ("npc.grolgar.female.foot_br"), ), ), (Saber, Male): ( - leg_lf: ( + leg_fl: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.saber.male.leg_lf"), + lateral: ("npc.saber.male.leg_fl"), ), - leg_rf: ( + leg_fr: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.saber.male.leg_rf"), + lateral: ("npc.saber.male.leg_fr"), ), - leg_lb: ( + leg_bl: ( offset: (-1.5, -4.0, -3.5), - lateral: ("npc.saber.male.leg_lb"), + lateral: ("npc.saber.male.leg_bl"), ), - leg_rb: ( + leg_br: ( offset: (-1.5, -4.0, -3.5), - lateral: ("npc.saber.male.leg_rb"), + lateral: ("npc.saber.male.leg_br"), ), - foot_lf: ( + foot_fl: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.saber.male.foot_lf"), + lateral: ("npc.saber.male.foot_fl"), ), - foot_rf: ( + foot_fr: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.saber.male.foot_rf"), + lateral: ("npc.saber.male.foot_fr"), ), - foot_lb: ( + foot_bl: ( offset: (-1.5, -4.0, -3.5), - lateral: ("npc.saber.male.foot_lb"), + lateral: ("npc.saber.male.foot_bl"), ), - foot_rb: ( + foot_br: ( offset: (-1.5, -4.0, -3.5), - lateral: ("npc.saber.male.foot_rb"), + lateral: ("npc.saber.male.foot_br"), ), ), (Saber, Female): ( - leg_lf: ( + leg_fl: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.saber.female.leg_lf"), + lateral: ("npc.saber.female.leg_fl"), ), - leg_rf: ( + leg_fr: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.saber.female.leg_rf"), + lateral: ("npc.saber.female.leg_fr"), ), - leg_lb: ( + leg_bl: ( offset: (-1.5, -4.0, -3.5), - lateral: ("npc.saber.female.leg_lb"), + lateral: ("npc.saber.female.leg_bl"), ), - leg_rb: ( + leg_br: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.saber.female.leg_rb"), + lateral: ("npc.saber.female.leg_br"), ), - foot_lf: ( + foot_fl: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.saber.female.foot_lf"), + lateral: ("npc.saber.female.foot_fl"), ), - foot_rf: ( + foot_fr: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.saber.female.foot_rf"), + lateral: ("npc.saber.female.foot_fr"), ), - foot_lb: ( + foot_bl: ( offset: (-1.5, -4.0, -3.5), - lateral: ("npc.saber.female.foot_lb"), + lateral: ("npc.saber.female.foot_bl"), ), - foot_rb: ( + foot_br: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.saber.female.foot_rb"), + lateral: ("npc.saber.female.foot_br"), ), ), (Tuskram, Male): ( - leg_lf: ( + leg_fl: ( offset: (-1.5, -1.5, -4.5), - lateral: ("npc.tuskram.male.leg_lf"), + lateral: ("npc.tuskram.male.leg_fl"), ), - leg_rf: ( + leg_fr: ( offset: (-1.5, -1.5, -4.5), - lateral: ("npc.tuskram.male.leg_rf"), + lateral: ("npc.tuskram.male.leg_fr"), ), - leg_lb: ( + leg_bl: ( offset: (-1.5, -4.0, -5.5), - lateral: ("npc.tuskram.male.leg_lb"), + lateral: ("npc.tuskram.male.leg_bl"), ), - leg_rb: ( + leg_br: ( offset: (-1.5, -4.0, -5.5), - lateral: ("npc.tuskram.male.leg_rb"), + lateral: ("npc.tuskram.male.leg_br"), ), - foot_lf: ( + foot_fl: ( offset: (-1.5, -1.5, -4.5), - lateral: ("npc.tuskram.male.foot_lf"), + lateral: ("npc.tuskram.male.foot_fl"), ), - foot_rf: ( + foot_fr: ( offset: (-1.5, -1.5, -4.5), - lateral: ("npc.tuskram.male.foot_rf"), + lateral: ("npc.tuskram.male.foot_fr"), ), - foot_lb: ( + foot_bl: ( offset: (-1.5, -4.0, -5.5), - lateral: ("npc.tuskram.male.foot_lb"), + lateral: ("npc.tuskram.male.foot_bl"), ), - foot_rb: ( + foot_br: ( offset: (-1.5, -4.0, -5.5), - lateral: ("npc.tuskram.male.foot_rb"), + lateral: ("npc.tuskram.male.foot_br"), ), ), (Tuskram, Female): ( - leg_lf: ( + leg_fl: ( offset: (-1.5, -1.5, -4.5), - lateral: ("npc.tuskram.female.leg_lf"), + lateral: ("npc.tuskram.female.leg_fl"), ), - leg_rf: ( + leg_fr: ( offset: (-1.5, -1.5, -4.5), - lateral: ("npc.tuskram.female.leg_rf"), + lateral: ("npc.tuskram.female.leg_fr"), ), - leg_lb: ( + leg_bl: ( offset: (-1.5, -4.0, -5.5), - lateral: ("npc.tuskram.female.leg_lb"), + lateral: ("npc.tuskram.female.leg_bl"), ), - leg_rb: ( + leg_br: ( offset: (-1.5, -4.0, -5.5), - lateral: ("npc.tuskram.female.leg_rb"), + lateral: ("npc.tuskram.female.leg_br"), ), - foot_lf: ( + foot_fl: ( offset: (-1.5, -1.5, -4.5), - lateral: ("npc.tuskram.female.foot_lf"), + lateral: ("npc.tuskram.female.foot_fl"), ), - foot_rf: ( + foot_fr: ( offset: (-1.5, -1.5, -4.5), - lateral: ("npc.tuskram.female.foot_rf"), + lateral: ("npc.tuskram.female.foot_fr"), ), - foot_lb: ( + foot_bl: ( offset: (-1.5, -4.0, -5.5), - lateral: ("npc.tuskram.female.foot_lb"), + lateral: ("npc.tuskram.female.foot_bl"), ), - foot_rb: ( + foot_br: ( offset: (-1.5, -4.0, -5.5), - lateral: ("npc.tuskram.female.foot_rb"), + lateral: ("npc.tuskram.female.foot_br"), ), ), (Lion, Male): ( - leg_lf: ( + leg_fl: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.lion.male.leg_lf"), + lateral: ("npc.lion.male.leg_fl"), ), - leg_rf: ( + leg_fr: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.lion.male.leg_rf"), + lateral: ("npc.lion.male.leg_fr"), ), - leg_lb: ( + leg_bl: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.lion.male.leg_lb"), + lateral: ("npc.lion.male.leg_bl"), ), - leg_rb: ( + leg_br: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.lion.male.leg_rb"), + lateral: ("npc.lion.male.leg_br"), ), - foot_lf: ( + foot_fl: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.lion.male.foot_lf"), + lateral: ("npc.lion.male.foot_fl"), ), - foot_rf: ( + foot_fr: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.lion.male.foot_rf"), + lateral: ("npc.lion.male.foot_fr"), ), - foot_lb: ( + foot_bl: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.lion.male.foot_lb"), + lateral: ("npc.lion.male.foot_bl"), ), - foot_rb: ( + foot_br: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.lion.male.foot_rb"), + lateral: ("npc.lion.male.foot_br"), ), ), (Lion, Female): ( - leg_lf: ( + leg_fl: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.lion.female.leg_lf"), + lateral: ("npc.lion.female.leg_fl"), ), - leg_rf: ( + leg_fr: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.lion.female.leg_rf"), + lateral: ("npc.lion.female.leg_fr"), ), - leg_lb: ( + leg_bl: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.lion.female.leg_lb"), + lateral: ("npc.lion.female.leg_bl"), ), - leg_rb: ( + leg_br: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.lion.female.leg_rb"), + lateral: ("npc.lion.female.leg_br"), ), - foot_lf: ( + foot_fl: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.lion.female.foot_lf"), + lateral: ("npc.lion.female.foot_fl"), ), - foot_rf: ( + foot_fr: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.lion.female.foot_rf"), + lateral: ("npc.lion.female.foot_fr"), ), - foot_lb: ( + foot_bl: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.lion.female.foot_lb"), + lateral: ("npc.lion.female.foot_bl"), ), - foot_rb: ( + foot_br: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.lion.female.foot_rb"), + lateral: ("npc.lion.female.foot_br"), ), ), (Tarasque, Male): ( - leg_lf: ( + leg_fl: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.tarasque.male.leg_lf"), + lateral: ("npc.tarasque.male.leg_fl"), ), - leg_rf: ( + leg_fr: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.tarasque.male.leg_rf"), + lateral: ("npc.tarasque.male.leg_fr"), ), - leg_lb: ( + leg_bl: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.tarasque.male.leg_lb"), + lateral: ("npc.tarasque.male.leg_bl"), ), - leg_rb: ( + leg_br: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.tarasque.male.leg_rb"), + lateral: ("npc.tarasque.male.leg_br"), ), - foot_lf: ( + foot_fl: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.tarasque.male.foot_lf"), + lateral: ("npc.tarasque.male.foot_fl"), ), - foot_rf: ( + foot_fr: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.tarasque.male.foot_rf"), + lateral: ("npc.tarasque.male.foot_fr"), ), - foot_lb: ( + foot_bl: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.tarasque.male.foot_lb"), + lateral: ("npc.tarasque.male.foot_bl"), ), - foot_rb: ( + foot_br: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.tarasque.male.foot_rb"), + lateral: ("npc.tarasque.male.foot_br"), ), ), (Tarasque, Female): ( - leg_lf: ( + leg_fl: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.tarasque.female.leg_lf"), + lateral: ("npc.tarasque.female.leg_fl"), ), - leg_rf: ( + leg_fr: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.tarasque.female.leg_rf"), + lateral: ("npc.tarasque.female.leg_fr"), ), - leg_lb: ( + leg_bl: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.tarasque.female.leg_lb"), + lateral: ("npc.tarasque.female.leg_bl"), ), - leg_rb: ( + leg_br: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.tarasque.female.leg_rb"), + lateral: ("npc.tarasque.female.leg_br"), ), - foot_lf: ( + foot_fl: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.tarasque.female.foot_lf"), + lateral: ("npc.tarasque.female.foot_fl"), ), - foot_rf: ( + foot_fr: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.tarasque.female.foot_rf"), + lateral: ("npc.tarasque.female.foot_fr"), ), - foot_lb: ( + foot_bl: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.tarasque.female.foot_lb"), + lateral: ("npc.tarasque.female.foot_bl"), ), - foot_rb: ( + foot_br: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.tarasque.female.foot_rb"), + lateral: ("npc.tarasque.female.foot_br"), ), ), (Tiger, Male): ( - leg_lf: ( + leg_fl: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.tiger.male.leg_lf"), + lateral: ("npc.tiger.male.leg_fl"), ), - leg_rf: ( + leg_fr: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.tiger.male.leg_rf"), + lateral: ("npc.tiger.male.leg_fr"), ), - leg_lb: ( + leg_bl: ( offset: (-1.5, -4.0, -3.5), - lateral: ("npc.tiger.male.leg_lb"), + lateral: ("npc.tiger.male.leg_bl"), ), - leg_rb: ( + leg_br: ( offset: (-1.5, -4.0, -3.5), - lateral: ("npc.tiger.male.leg_rb"), + lateral: ("npc.tiger.male.leg_br"), ), - foot_lf: ( + foot_fl: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.tiger.male.foot_lf"), + lateral: ("npc.tiger.male.foot_fl"), ), - foot_rf: ( + foot_fr: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.tiger.male.foot_rf"), + lateral: ("npc.tiger.male.foot_fr"), ), - foot_lb: ( + foot_bl: ( offset: (-1.5, -4.0, -3.5), - lateral: ("npc.tiger.male.foot_lb"), + lateral: ("npc.tiger.male.foot_bl"), ), - foot_rb: ( + foot_br: ( offset: (-1.5, -4.0, -3.5), - lateral: ("npc.tiger.male.foot_rb"), + lateral: ("npc.tiger.male.foot_br"), ), ), (Tiger, Female): ( - leg_lf: ( + leg_fl: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.tiger.female.leg_lf"), + lateral: ("npc.tiger.female.leg_fl"), ), - leg_rf: ( + leg_fr: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.tiger.female.leg_rf"), + lateral: ("npc.tiger.female.leg_fr"), ), - leg_lb: ( + leg_bl: ( offset: (-1.5, -4.0, -3.5), - lateral: ("npc.tiger.female.leg_lb"), + lateral: ("npc.tiger.female.leg_bl"), ), - leg_rb: ( + leg_br: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.tiger.female.leg_rb"), + lateral: ("npc.tiger.female.leg_br"), ), - foot_lf: ( + foot_fl: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.tiger.female.foot_lf"), + lateral: ("npc.tiger.female.foot_fl"), ), - foot_rf: ( + foot_fr: ( offset: (-1.5, -1.5, -2.5), - lateral: ("npc.tiger.female.foot_rf"), + lateral: ("npc.tiger.female.foot_fr"), ), - foot_lb: ( + foot_bl: ( offset: (-1.5, -4.0, -3.5), - lateral: ("npc.tiger.female.foot_lb"), + lateral: ("npc.tiger.female.foot_bl"), ), - foot_rb: ( + foot_br: ( offset: (-1.5, -2.0, -3.5), - lateral: ("npc.tiger.female.foot_rb"), + lateral: ("npc.tiger.female.foot_br"), ), ), }) diff --git a/voxygen/src/anim/src/quadruped_medium/idle.rs b/voxygen/src/anim/src/quadruped_medium/idle.rs index 99815d01a3..a335d436c9 100644 --- a/voxygen/src/anim/src/quadruped_medium/idle.rs +++ b/voxygen/src/anim/src/quadruped_medium/idle.rs @@ -96,49 +96,49 @@ impl Animation for IdleAnimation { * Quaternion::rotation_x(0.2 * look.y); next.torso_back.scale = Vec3::one() / 11.0; - next.torso_mid.offset = Vec3::new( + next.torso_front.offset = Vec3::new( 0.0, - skeleton_attr.torso_mid.0, - skeleton_attr.torso_mid.1 + wave_ultra_slow * 0.5, + skeleton_attr.torso_front.0, + skeleton_attr.torso_front.1 + wave_ultra_slow * 0.5, ) / 11.0; - next.torso_mid.ori = Quaternion::rotation_y(wave_slow * 0.015); - next.torso_mid.scale = Vec3::one() / 10.98; + next.torso_front.ori = Quaternion::rotation_y(wave_slow * 0.015); + next.torso_front.scale = Vec3::one() / 10.98; next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); next.ears.ori = Quaternion::rotation_x(0.0 + wave_ultra_slow * 0.03); next.ears.scale = Vec3::one() / 1.02; - next.foot_lf.offset = Vec3::new( + next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, ) / 11.0; - next.foot_lf.ori = Quaternion::rotation_x(0.0); - next.foot_lf.scale = Vec3::one() / 11.0; + next.foot_fl.ori = Quaternion::rotation_x(0.0); + next.foot_fl.scale = Vec3::one() / 11.0; - next.foot_rf.offset = Vec3::new( + next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, ) / 11.0; - next.foot_rf.ori = Quaternion::rotation_x(0.0); - next.foot_rf.scale = Vec3::one() / 11.0; + next.foot_fr.ori = Quaternion::rotation_x(0.0); + next.foot_fr.scale = Vec3::one() / 11.0; - next.foot_lb.offset = Vec3::new( + next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, ) / 11.0; - next.foot_lb.ori = Quaternion::rotation_x(0.0); - next.foot_lb.scale = Vec3::one() / 11.0; + next.foot_bl.ori = Quaternion::rotation_x(0.0); + next.foot_bl.scale = Vec3::one() / 11.0; - next.foot_rb.offset = Vec3::new( + next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, ) / 11.0; - next.foot_rb.ori = Quaternion::rotation_x(0.0); - next.foot_rb.scale = Vec3::one() / 11.0; + next.foot_br.ori = Quaternion::rotation_x(0.0); + next.foot_br.scale = Vec3::one() / 11.0; next } diff --git a/voxygen/src/anim/src/quadruped_medium/jump.rs b/voxygen/src/anim/src/quadruped_medium/jump.rs index 09be93ca59..e0f7f9e1d1 100644 --- a/voxygen/src/anim/src/quadruped_medium/jump.rs +++ b/voxygen/src/anim/src/quadruped_medium/jump.rs @@ -51,46 +51,46 @@ impl Animation for JumpAnimation { * Quaternion::rotation_x(0.2); next.torso_back.scale = Vec3::one() / 11.0; - next.torso_mid.offset = - Vec3::new(0.0, skeleton_attr.torso_mid.0, skeleton_attr.torso_mid.1) / 11.0; - next.torso_mid.ori = Quaternion::rotation_x(-0.4); - next.torso_mid.scale = Vec3::one() / 10.98; + next.torso_front.offset = + Vec3::new(0.0, skeleton_attr.torso_front.0, skeleton_attr.torso_front.1) / 11.0; + next.torso_front.ori = Quaternion::rotation_x(-0.4); + next.torso_front.scale = Vec3::one() / 10.98; next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); next.ears.ori = Quaternion::rotation_x(0.0); next.ears.scale = Vec3::one() / 1.02; - next.foot_lf.offset = Vec3::new( + next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, ) / 11.0; - next.foot_lf.ori = Quaternion::rotation_x(0.0); - next.foot_lf.scale = Vec3::one() / 11.0; + next.foot_fl.ori = Quaternion::rotation_x(0.0); + next.foot_fl.scale = Vec3::one() / 11.0; - next.foot_rf.offset = Vec3::new( + next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, ) / 11.0; - next.foot_rf.ori = Quaternion::rotation_x(0.0); - next.foot_rf.scale = Vec3::one() / 11.0; + next.foot_fr.ori = Quaternion::rotation_x(0.0); + next.foot_fr.scale = Vec3::one() / 11.0; - next.foot_lb.offset = Vec3::new( + next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, ) / 11.0; - next.foot_lb.ori = Quaternion::rotation_x(0.0); - next.foot_lb.scale = Vec3::one() / 11.0; + next.foot_bl.ori = Quaternion::rotation_x(0.0); + next.foot_bl.scale = Vec3::one() / 11.0; - next.foot_rb.offset = Vec3::new( + next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, ) / 11.0; - next.foot_rb.ori = Quaternion::rotation_x(0.0); - next.foot_rb.scale = Vec3::one() / 11.0; + next.foot_br.ori = Quaternion::rotation_x(0.0); + next.foot_br.scale = Vec3::one() / 11.0; next } diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index e121115f1c..aa84740b8e 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -16,16 +16,16 @@ pub struct QuadrupedMediumSkeleton { jaw: Bone, tail: Bone, torso_back: Bone, - torso_mid: Bone, + torso_front: Bone, ears: Bone, - leg_lf: Bone, - leg_rf: Bone, - leg_lb: Bone, - leg_rb: Bone, - foot_lf: Bone, - foot_rf: Bone, - foot_lb: Bone, - foot_rb: Bone, + leg_fl: Bone, + leg_fr: Bone, + leg_bl: Bone, + leg_br: Bone, + foot_fl: Bone, + foot_fr: Bone, + foot_bl: Bone, + foot_br: Bone, } #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] @@ -96,24 +96,24 @@ impl Skeleton for QuadrupedMediumSkeleton { let ears_mat = self.ears.compute_base_matrix(); let head_upper_mat = self.head_upper.compute_base_matrix(); let head_lower_mat = self.head_lower.compute_base_matrix(); - let torso_mid_mat = self.torso_mid.compute_base_matrix(); + let torso_front_mat = self.torso_front.compute_base_matrix(); ( [ FigureBoneData::new(head_upper_mat), FigureBoneData::new(head_upper_mat * head_lower_mat), FigureBoneData::new(head_upper_mat * self.jaw.compute_base_matrix()), - FigureBoneData::new(torso_mid_mat * self.tail.compute_base_matrix()), + FigureBoneData::new(torso_front_mat * self.tail.compute_base_matrix()), FigureBoneData::new(self.torso_back.compute_base_matrix()), - FigureBoneData::new(torso_mid_mat), + FigureBoneData::new(torso_front_mat), FigureBoneData::new(head_upper_mat * ears_mat), - FigureBoneData::new(self.leg_lf.compute_base_matrix()), - FigureBoneData::new(self.leg_rf.compute_base_matrix()), - FigureBoneData::new(self.leg_lb.compute_base_matrix()), - FigureBoneData::new(self.leg_rb.compute_base_matrix()), - FigureBoneData::new(self.leg_lf.compute_base_matrix() * self.foot_lf.compute_base_matrix()), - FigureBoneData::new(self.leg_rf.compute_base_matrix() * self.foot_rf.compute_base_matrix()), - FigureBoneData::new(self.leg_lb.compute_base_matrix() * self.foot_lb.compute_base_matrix()), - FigureBoneData::new(self.leg_rb.compute_base_matrix() * self.foot_rb.compute_base_matrix()), + FigureBoneData::new(self.leg_fl.compute_base_matrix()), + FigureBoneData::new(self.leg_fr.compute_base_matrix()), + FigureBoneData::new(self.leg_bl.compute_base_matrix()), + FigureBoneData::new(self.leg_br.compute_base_matrix()), + FigureBoneData::new(self.leg_fl.compute_base_matrix() * self.foot_fl.compute_base_matrix()), + FigureBoneData::new(self.leg_fr.compute_base_matrix() * self.foot_fr.compute_base_matrix()), + FigureBoneData::new(self.leg_bl.compute_base_matrix() * self.foot_bl.compute_base_matrix()), + FigureBoneData::new(self.leg_br.compute_base_matrix() * self.foot_br.compute_base_matrix()), FigureBoneData::default(), ], Vec3::default(), @@ -126,16 +126,16 @@ impl Skeleton for QuadrupedMediumSkeleton { self.jaw.interpolate(&target.jaw, dt); self.tail.interpolate(&target.tail, dt); self.torso_back.interpolate(&target.torso_back, dt); - self.torso_mid.interpolate(&target.torso_mid, dt); + self.torso_front.interpolate(&target.torso_front, dt); self.ears.interpolate(&target.ears, dt); - self.leg_lf.interpolate(&target.leg_lf, dt); - self.leg_rf.interpolate(&target.leg_rf, dt); - self.leg_lb.interpolate(&target.leg_lb, dt); - self.leg_rb.interpolate(&target.leg_rb, dt); - self.foot_lf.interpolate(&target.foot_lf, dt); - self.foot_rf.interpolate(&target.foot_rf, dt); - self.foot_lb.interpolate(&target.foot_lb, dt); - self.foot_rb.interpolate(&target.foot_rb, dt); + self.leg_fl.interpolate(&target.leg_fl, dt); + self.leg_fr.interpolate(&target.leg_fr, dt); + self.leg_bl.interpolate(&target.leg_bl, dt); + self.leg_br.interpolate(&target.leg_br, dt); + self.foot_fl.interpolate(&target.foot_fl, dt); + self.foot_fr.interpolate(&target.foot_fr, dt); + self.foot_bl.interpolate(&target.foot_bl, dt); + self.foot_br.interpolate(&target.foot_br, dt); } } @@ -145,7 +145,7 @@ pub struct SkeletonAttr { jaw: (f32, f32), tail: (f32, f32), torso_back: (f32, f32), - torso_mid: (f32, f32), + torso_front: (f32, f32), ears: (f32, f32), leg_f: (f32, f32, f32), leg_b: (f32, f32, f32), @@ -173,7 +173,7 @@ impl Default for SkeletonAttr { jaw: (0.0, 0.0), tail: (0.0, 0.0), torso_back: (0.0, 0.0), - torso_mid: (0.0, 0.0), + torso_front: (0.0, 0.0), ears: (0.0, 0.0), leg_f: (0.0, 0.0, 0.0), leg_b: (0.0, 0.0, 0.0), @@ -220,6 +220,14 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tarasque, _) => (-7.0, -2.0), (Tiger, _) => (*TAIL_X, *TAIL_Z), }, + torso_front: match (body.species, body.body_type) { + (Grolgar, _) => (-7.0, 10.5), + (Saber, _) => (-7.0, 9.5), + (Tuskram, _) => (-7.0, 9.0), + (Lion, _) => (-9.0, 9.0), + (Tarasque, _) => (-7.0, 8.0), + (Tiger, _) => (*TORSO_MID_X, *TORSO_MID_Z), + }, torso_back: match (body.species, body.body_type) { (Grolgar, _) => (4.0, 11.0), (Saber, _) => (4.0, 9.0), @@ -228,14 +236,6 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tarasque, _) => (4.0, 9.0), (Tiger, _) => (*TORSO_BACK_X, *TORSO_BACK_Z), }, - torso_mid: match (body.species, body.body_type) { - (Grolgar, _) => (-7.0, 10.5), - (Saber, _) => (-7.0, 9.5), - (Tuskram, _) => (-7.0, 9.0), - (Lion, _) => (-9.0, 9.0), - (Tarasque, _) => (-7.0, 8.0), - (Tiger, _) => (*TORSO_MID_X, *TORSO_MID_Z), - }, ears: match (body.species, body.body_type) { (Grolgar, _) => (-1.0, 5.0), (Saber, _) => (-1.0, 6.0), diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index 07ca660220..2c814327b4 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -82,49 +82,49 @@ impl Animation for RunAnimation { next.torso_back.ori = Quaternion::rotation_y(horichest * -0.12); next.torso_back.scale = Vec3::one() / 11.0; - next.torso_mid.offset = Vec3::new( + next.torso_front.offset = Vec3::new( 0.0, - skeleton_attr.torso_mid.0 + horichest * 2.5, - skeleton_attr.torso_mid.1 + vertchest * -3.2 + 1.0, + skeleton_attr.torso_front.0 + horichest * 2.5, + skeleton_attr.torso_front.1 + vertchest * -3.2 + 1.0, ) / 11.0; - next.torso_mid.ori = Quaternion::rotation_y(horichest * -0.09); - next.torso_mid.scale = Vec3::one() * 0.98 / 11.0; + next.torso_front.ori = Quaternion::rotation_y(horichest * -0.09); + next.torso_front.scale = Vec3::one() * 0.98 / 11.0; next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); next.ears.ori = Quaternion::rotation_x(0.0); next.ears.scale = Vec3::one() * 1.02; - next.foot_lf.offset = Vec3::new( + next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1 + horilf * 2.5, skeleton_attr.feet_f.2 + vertlf * 5.0 * skeleton_attr.height - 0.5, ) / 11.0; - next.foot_lf.ori = Quaternion::rotation_x(horilf * 0.4); - next.foot_lf.scale = Vec3::one() / 11.0; + next.foot_fl.ori = Quaternion::rotation_x(horilf * 0.4); + next.foot_fl.scale = Vec3::one() / 11.0; - next.foot_rf.offset = Vec3::new( + next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1 + horirfoffset * 2.5, skeleton_attr.feet_f.2 + vertrfoffset * 5.0 * skeleton_attr.height - 0.5, ) / 11.0; - next.foot_rf.ori = Quaternion::rotation_x(horirfoffset * 0.4); - next.foot_rf.scale = Vec3::one() / 11.0; + next.foot_fr.ori = Quaternion::rotation_x(horirfoffset * 0.4); + next.foot_fr.scale = Vec3::one() / 11.0; - next.foot_lb.offset = Vec3::new( + next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1 + horilboffset * 3.0, skeleton_attr.feet_b.2 + vertlboffset * 5.0 * skeleton_attr.height - 0.5, ) / 11.0; - next.foot_lb.ori = Quaternion::rotation_x(horilboffset * 0.35); - next.foot_lb.scale = Vec3::one() / 11.0; + next.foot_bl.ori = Quaternion::rotation_x(horilboffset * 0.35); + next.foot_bl.scale = Vec3::one() / 11.0; - next.foot_rb.offset = Vec3::new( + next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1 + horirb * 3.0, skeleton_attr.feet_b.2 + vertrb * 5.0 * skeleton_attr.height - 0.5, ) / 11.0; - next.foot_rb.ori = Quaternion::rotation_x(horirb * 0.35); - next.foot_rb.scale = Vec3::one() / 11.0; + next.foot_br.ori = Quaternion::rotation_x(horirb * 0.35); + next.foot_br.scale = Vec3::one() / 11.0; next } diff --git a/voxygen/src/anim/src/quadruped_small/idle.rs b/voxygen/src/anim/src/quadruped_small/idle.rs index 1aa53671b4..a9cf8d9926 100644 --- a/voxygen/src/anim/src/quadruped_small/idle.rs +++ b/voxygen/src/anim/src/quadruped_small/idle.rs @@ -53,37 +53,37 @@ impl Animation for IdleAnimation { next.chest.ori = Quaternion::rotation_y(slow * 0.05); next.chest.scale = Vec3::one() / 11.0; - next.leg_lf.offset = Vec3::new( + next.leg_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, ) / 11.0; - next.leg_lf.ori = Quaternion::rotation_x(slow * 0.08); - next.leg_lf.scale = Vec3::one() / 11.0; + next.leg_fl.ori = Quaternion::rotation_x(slow * 0.08); + next.leg_fl.scale = Vec3::one() / 11.0; - next.leg_rf.offset = Vec3::new( + next.leg_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, ) / 11.0; - next.leg_rf.ori = Quaternion::rotation_x(slow_alt * 0.08); - next.leg_rf.scale = Vec3::one() / 11.0; + next.leg_fr.ori = Quaternion::rotation_x(slow_alt * 0.08); + next.leg_fr.scale = Vec3::one() / 11.0; - next.leg_lb.offset = Vec3::new( + next.leg_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, ) / 11.0; - next.leg_lb.ori = Quaternion::rotation_x(slow_alt * 0.08); - next.leg_lb.scale = Vec3::one() / 11.0; + next.leg_bl.ori = Quaternion::rotation_x(slow_alt * 0.08); + next.leg_bl.scale = Vec3::one() / 11.0; - next.leg_rb.offset = Vec3::new( + next.leg_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, ) / 11.0; - next.leg_rb.ori = Quaternion::rotation_x(slow * 0.08); - next.leg_rb.scale = Vec3::one() / 11.0; + next.leg_br.ori = Quaternion::rotation_x(slow * 0.08); + next.leg_br.scale = Vec3::one() / 11.0; next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); next.tail.ori = Quaternion::rotation_z(slow * 0.4); diff --git a/voxygen/src/anim/src/quadruped_small/jump.rs b/voxygen/src/anim/src/quadruped_small/jump.rs index fd52280d8e..8a19a43d32 100644 --- a/voxygen/src/anim/src/quadruped_small/jump.rs +++ b/voxygen/src/anim/src/quadruped_small/jump.rs @@ -28,37 +28,37 @@ impl Animation for JumpAnimation { next.chest.ori = Quaternion::rotation_y(0.0); next.chest.scale = Vec3::one() / 11.0; - next.leg_lf.offset = Vec3::new( + next.leg_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, ) / 11.0; - next.leg_lf.ori = Quaternion::rotation_x(0.0); - next.leg_lf.scale = Vec3::one() / 11.0; + next.leg_fl.ori = Quaternion::rotation_x(0.0); + next.leg_fl.scale = Vec3::one() / 11.0; - next.leg_rf.offset = Vec3::new( + next.leg_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, ) / 11.0; - next.leg_rf.ori = Quaternion::rotation_x(0.0); - next.leg_rf.scale = Vec3::one() / 11.0; + next.leg_fr.ori = Quaternion::rotation_x(0.0); + next.leg_fr.scale = Vec3::one() / 11.0; - next.leg_lb.offset = Vec3::new( + next.leg_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, ) / 11.0; - next.leg_lb.ori = Quaternion::rotation_x(0.0); - next.leg_lb.scale = Vec3::one() / 11.0; + next.leg_bl.ori = Quaternion::rotation_x(0.0); + next.leg_bl.scale = Vec3::one() / 11.0; - next.leg_rb.offset = Vec3::new( + next.leg_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, ) / 11.0; - next.leg_rb.ori = Quaternion::rotation_x(0.0); - next.leg_rb.scale = Vec3::one() / 11.0; + next.leg_br.ori = Quaternion::rotation_x(0.0); + next.leg_br.scale = Vec3::one() / 11.0; next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); next.tail.ori = Quaternion::rotation_x(-0.3); diff --git a/voxygen/src/anim/src/quadruped_small/mod.rs b/voxygen/src/anim/src/quadruped_small/mod.rs index 4031671b40..e3a6aa1ac9 100644 --- a/voxygen/src/anim/src/quadruped_small/mod.rs +++ b/voxygen/src/anim/src/quadruped_small/mod.rs @@ -13,10 +13,10 @@ use vek::Vec3; pub struct QuadrupedSmallSkeleton { head: Bone, chest: Bone, - leg_lf: Bone, - leg_rf: Bone, - leg_lb: Bone, - leg_rb: Bone, + leg_fl: Bone, + leg_fr: Bone, + leg_bl: Bone, + leg_br: Bone, tail: Bone, } @@ -39,10 +39,10 @@ impl Skeleton for QuadrupedSmallSkeleton { [ FigureBoneData::new(self.head.compute_base_matrix()), FigureBoneData::new(chest_mat), - FigureBoneData::new(self.leg_lf.compute_base_matrix()), - FigureBoneData::new(self.leg_rf.compute_base_matrix()), - FigureBoneData::new(self.leg_lb.compute_base_matrix()), - FigureBoneData::new(self.leg_rb.compute_base_matrix()), + FigureBoneData::new(self.leg_fl.compute_base_matrix()), + FigureBoneData::new(self.leg_fr.compute_base_matrix()), + FigureBoneData::new(self.leg_bl.compute_base_matrix()), + FigureBoneData::new(self.leg_br.compute_base_matrix()), FigureBoneData::new(chest_mat * self.tail.compute_base_matrix()), FigureBoneData::default(), FigureBoneData::default(), @@ -61,10 +61,10 @@ impl Skeleton for QuadrupedSmallSkeleton { fn interpolate(&mut self, target: &Self, dt: f32) { self.head.interpolate(&target.head, dt); self.chest.interpolate(&target.chest, dt); - self.leg_lf.interpolate(&target.leg_lf, dt); - self.leg_rf.interpolate(&target.leg_rf, dt); - self.leg_lb.interpolate(&target.leg_lb, dt); - self.leg_rb.interpolate(&target.leg_rb, dt); + self.leg_fl.interpolate(&target.leg_fl, dt); + self.leg_fr.interpolate(&target.leg_fr, dt); + self.leg_bl.interpolate(&target.leg_bl, dt); + self.leg_br.interpolate(&target.leg_br, dt); self.tail.interpolate(&target.tail, dt); } } diff --git a/voxygen/src/anim/src/quadruped_small/run.rs b/voxygen/src/anim/src/quadruped_small/run.rs index a2b26d938c..3c0f27f7d3 100644 --- a/voxygen/src/anim/src/quadruped_small/run.rs +++ b/voxygen/src/anim/src/quadruped_small/run.rs @@ -40,37 +40,37 @@ impl Animation for RunAnimation { next.chest.ori = Quaternion::rotation_x(slow * 0.1); next.chest.scale = Vec3::one() / 11.0; - next.leg_lf.offset = Vec3::new( + next.leg_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1 + fast * 0.8, skeleton_attr.feet_f.2 + fast_alt * 1.5, ) / 11.0; - next.leg_lf.ori = Quaternion::rotation_x(fast * 0.3); - next.leg_lf.scale = Vec3::one() / 11.0; + next.leg_fl.ori = Quaternion::rotation_x(fast * 0.3); + next.leg_fl.scale = Vec3::one() / 11.0; - next.leg_rf.offset = Vec3::new( + next.leg_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1 + fast_alt * -0.8, skeleton_attr.feet_f.2 + fast * 1.5, ) / 11.0; - next.leg_rf.ori = Quaternion::rotation_x(fast_alt * -0.3); - next.leg_rf.scale = Vec3::one() / 11.0; + next.leg_fr.ori = Quaternion::rotation_x(fast_alt * -0.3); + next.leg_fr.scale = Vec3::one() / 11.0; - next.leg_lb.offset = Vec3::new( + next.leg_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1 + fast_alt * -0.8, skeleton_attr.feet_b.2 + fast * 1.5, ) / 11.0; - next.leg_lb.ori = Quaternion::rotation_x(fast_alt * -0.3); - next.leg_lb.scale = Vec3::one() / 11.0; + next.leg_bl.ori = Quaternion::rotation_x(fast_alt * -0.3); + next.leg_bl.scale = Vec3::one() / 11.0; - next.leg_rb.offset = Vec3::new( + next.leg_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1 + fast * 0.8, skeleton_attr.feet_b.2 + fast_alt * 1.5, ) / 11.0; - next.leg_rb.ori = Quaternion::rotation_x(fast * 0.3); - next.leg_rb.scale = Vec3::one() / 11.0; + next.leg_br.ori = Quaternion::rotation_x(fast * 0.3); + next.leg_br.scale = Vec3::one() / 11.0; next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); next.tail.ori = Quaternion::rotation_z(0.0); diff --git a/voxygen/src/scene/figure/cache.rs b/voxygen/src/scene/figure/cache.rs index bf96ae1269..68c2ac550f 100644 --- a/voxygen/src/scene/figure/cache.rs +++ b/voxygen/src/scene/figure/cache.rs @@ -217,22 +217,22 @@ impl FigureModelCache { body.body_type, generate_mesh, )), - Some(quadruped_small_lateral_spec.mesh_foot_lf( + Some(quadruped_small_lateral_spec.mesh_foot_fl( body.species, body.body_type, generate_mesh, )), - Some(quadruped_small_lateral_spec.mesh_foot_rf( + Some(quadruped_small_lateral_spec.mesh_foot_fr( body.species, body.body_type, generate_mesh, )), - Some(quadruped_small_lateral_spec.mesh_foot_lb( + Some(quadruped_small_lateral_spec.mesh_foot_bl( body.species, body.body_type, generate_mesh, )), - Some(quadruped_small_lateral_spec.mesh_foot_rb( + Some(quadruped_small_lateral_spec.mesh_foot_br( body.species, body.body_type, generate_mesh, @@ -280,12 +280,12 @@ impl FigureModelCache { body.body_type, generate_mesh, )), - Some(quadruped_medium_central_spec.mesh_torso_f( + Some(quadruped_medium_central_spec.mesh_torso_front( body.species, body.body_type, generate_mesh, )), - Some(quadruped_medium_central_spec.mesh_torso_b( + Some(quadruped_medium_central_spec.mesh_torso_back( body.species, body.body_type, generate_mesh, @@ -295,42 +295,42 @@ impl FigureModelCache { body.body_type, generate_mesh, )), - Some(quadruped_medium_lateral_spec.mesh_leg_lf( + Some(quadruped_medium_lateral_spec.mesh_leg_fl( body.species, body.body_type, generate_mesh, )), - Some(quadruped_medium_lateral_spec.mesh_leg_rf( + Some(quadruped_medium_lateral_spec.mesh_leg_fr( body.species, body.body_type, generate_mesh, )), - Some(quadruped_medium_lateral_spec.mesh_leg_lb( + Some(quadruped_medium_lateral_spec.mesh_leg_bl( body.species, body.body_type, generate_mesh, )), - Some(quadruped_medium_lateral_spec.mesh_leg_rb( + Some(quadruped_medium_lateral_spec.mesh_leg_br( body.species, body.body_type, generate_mesh, )), - Some(quadruped_medium_lateral_spec.mesh_foot_lf( + Some(quadruped_medium_lateral_spec.mesh_foot_fl( body.species, body.body_type, generate_mesh, )), - Some(quadruped_medium_lateral_spec.mesh_foot_rf( + Some(quadruped_medium_lateral_spec.mesh_foot_fr( body.species, body.body_type, generate_mesh, )), - Some(quadruped_medium_lateral_spec.mesh_foot_lb( + Some(quadruped_medium_lateral_spec.mesh_foot_bl( body.species, body.body_type, generate_mesh, )), - Some(quadruped_medium_lateral_spec.mesh_foot_rb( + Some(quadruped_medium_lateral_spec.mesh_foot_br( body.species, body.body_type, generate_mesh, diff --git a/voxygen/src/scene/figure/load.rs b/voxygen/src/scene/figure/load.rs index 58347bbbc0..80265a6996 100644 --- a/voxygen/src/scene/figure/load.rs +++ b/voxygen/src/scene/figure/load.rs @@ -1122,7 +1122,7 @@ impl QuadrupedSmallLateralSpec { .unwrap() } - pub fn mesh_foot_lf( + pub fn mesh_foot_fl( &self, species: QSSpecies, body_type: QSBodyType, @@ -1143,7 +1143,7 @@ impl QuadrupedSmallLateralSpec { generate_mesh(&lateral, Vec3::from(spec.left_front.offset)) } - pub fn mesh_foot_rf( + pub fn mesh_foot_fr( &self, species: QSSpecies, body_type: QSBodyType, @@ -1164,7 +1164,7 @@ impl QuadrupedSmallLateralSpec { generate_mesh(&lateral, Vec3::from(spec.right_front.offset)) } - pub fn mesh_foot_lb( + pub fn mesh_foot_bl( &self, species: QSSpecies, body_type: QSBodyType, @@ -1185,7 +1185,7 @@ impl QuadrupedSmallLateralSpec { generate_mesh(&lateral, Vec3::from(spec.left_back.offset)) } - pub fn mesh_foot_rb( + pub fn mesh_foot_br( &self, species: QSSpecies, body_type: QSBodyType, @@ -1217,8 +1217,8 @@ struct SidedQMCentralVoxSpec { lower: QuadrupedMediumCentralSubSpec, jaw: QuadrupedMediumCentralSubSpec, ears: QuadrupedMediumCentralSubSpec, - torso_f: QuadrupedMediumCentralSubSpec, - torso_b: QuadrupedMediumCentralSubSpec, + torso_front: QuadrupedMediumCentralSubSpec, + torso_back: QuadrupedMediumCentralSubSpec, tail: QuadrupedMediumCentralSubSpec, } #[derive(Serialize, Deserialize)] @@ -1231,14 +1231,14 @@ struct QuadrupedMediumCentralSubSpec { pub struct QuadrupedMediumLateralSpec(HashMap<(QMSpecies, QMBodyType), SidedQMLateralVoxSpec>); #[derive(Serialize, Deserialize)] struct SidedQMLateralVoxSpec { - leg_lf: QuadrupedMediumLateralSubSpec, - leg_rf: QuadrupedMediumLateralSubSpec, - leg_lb: QuadrupedMediumLateralSubSpec, - leg_rb: QuadrupedMediumLateralSubSpec, - foot_lf: QuadrupedMediumLateralSubSpec, - foot_rf: QuadrupedMediumLateralSubSpec, - foot_lb: QuadrupedMediumLateralSubSpec, - foot_rb: QuadrupedMediumLateralSubSpec, + leg_fl: QuadrupedMediumLateralSubSpec, + leg_fr: QuadrupedMediumLateralSubSpec, + leg_bl: QuadrupedMediumLateralSubSpec, + leg_br: QuadrupedMediumLateralSubSpec, + foot_fl: QuadrupedMediumLateralSubSpec, + foot_fr: QuadrupedMediumLateralSubSpec, + foot_bl: QuadrupedMediumLateralSubSpec, + foot_br: QuadrupedMediumLateralSubSpec, } #[derive(Serialize, Deserialize)] struct QuadrupedMediumLateralSubSpec { @@ -1352,7 +1352,7 @@ impl QuadrupedMediumCentralSpec { generate_mesh(¢ral, Vec3::from(spec.ears.offset)) } - pub fn mesh_torso_f( + pub fn mesh_torso_front( &self, species: QMSpecies, body_type: QMBodyType, @@ -1368,12 +1368,12 @@ impl QuadrupedMediumCentralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); }, }; - let central = graceful_load_segment(&spec.torso_f.central.0); + let central = graceful_load_segment(&spec.torso_front.central.0); - generate_mesh(¢ral, Vec3::from(spec.torso_f.offset)) + generate_mesh(¢ral, Vec3::from(spec.torso_front.offset)) } - pub fn mesh_torso_b( + pub fn mesh_torso_back( &self, species: QMSpecies, body_type: QMBodyType, @@ -1389,9 +1389,9 @@ impl QuadrupedMediumCentralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); }, }; - let central = graceful_load_segment(&spec.torso_b.central.0); + let central = graceful_load_segment(&spec.torso_back.central.0); - generate_mesh(¢ral, Vec3::from(spec.torso_b.offset)) + generate_mesh(¢ral, Vec3::from(spec.torso_back.offset)) } pub fn mesh_tail( @@ -1422,7 +1422,7 @@ impl QuadrupedMediumLateralSpec { .unwrap() } - pub fn mesh_leg_lf( + pub fn mesh_leg_fl( &self, species: QMSpecies, body_type: QMBodyType, @@ -1438,12 +1438,12 @@ impl QuadrupedMediumLateralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); }, }; - let lateral = graceful_load_segment(&spec.leg_lf.lateral.0); + let lateral = graceful_load_segment(&spec.leg_fl.lateral.0); - generate_mesh(&lateral, Vec3::from(spec.leg_lf.offset)) + generate_mesh(&lateral, Vec3::from(spec.leg_fl.offset)) } - pub fn mesh_leg_rf( + pub fn mesh_leg_fr( &self, species: QMSpecies, body_type: QMBodyType, @@ -1459,12 +1459,12 @@ impl QuadrupedMediumLateralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); }, }; - let lateral = graceful_load_segment(&spec.leg_rf.lateral.0); + let lateral = graceful_load_segment(&spec.leg_fr.lateral.0); - generate_mesh(&lateral, Vec3::from(spec.leg_rf.offset)) + generate_mesh(&lateral, Vec3::from(spec.leg_fr.offset)) } - pub fn mesh_leg_lb( + pub fn mesh_leg_bl( &self, species: QMSpecies, body_type: QMBodyType, @@ -1480,12 +1480,12 @@ impl QuadrupedMediumLateralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); }, }; - let lateral = graceful_load_segment(&spec.leg_lb.lateral.0); + let lateral = graceful_load_segment(&spec.leg_bl.lateral.0); - generate_mesh(&lateral, Vec3::from(spec.leg_lb.offset)) + generate_mesh(&lateral, Vec3::from(spec.leg_bl.offset)) } - pub fn mesh_leg_rb( + pub fn mesh_leg_br( &self, species: QMSpecies, body_type: QMBodyType, @@ -1501,12 +1501,12 @@ impl QuadrupedMediumLateralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); }, }; - let lateral = graceful_load_segment(&spec.leg_rb.lateral.0); + let lateral = graceful_load_segment(&spec.leg_br.lateral.0); - generate_mesh(&lateral, Vec3::from(spec.leg_rb.offset)) + generate_mesh(&lateral, Vec3::from(spec.leg_br.offset)) } - pub fn mesh_foot_lf( + pub fn mesh_foot_fl( &self, species: QMSpecies, body_type: QMBodyType, @@ -1522,12 +1522,12 @@ impl QuadrupedMediumLateralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); }, }; - let lateral = graceful_load_segment(&spec.foot_lf.lateral.0); + let lateral = graceful_load_segment(&spec.foot_fl.lateral.0); - generate_mesh(&lateral, Vec3::from(spec.foot_lf.offset)) + generate_mesh(&lateral, Vec3::from(spec.foot_fl.offset)) } - pub fn mesh_foot_rf( + pub fn mesh_foot_fr( &self, species: QMSpecies, body_type: QMBodyType, @@ -1543,12 +1543,12 @@ impl QuadrupedMediumLateralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); }, }; - let lateral = graceful_load_segment(&spec.foot_rf.lateral.0); + let lateral = graceful_load_segment(&spec.foot_fr.lateral.0); - generate_mesh(&lateral, Vec3::from(spec.foot_rf.offset)) + generate_mesh(&lateral, Vec3::from(spec.foot_fr.offset)) } - pub fn mesh_foot_lb( + pub fn mesh_foot_bl( &self, species: QMSpecies, body_type: QMBodyType, @@ -1564,12 +1564,12 @@ impl QuadrupedMediumLateralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); }, }; - let lateral = graceful_load_segment(&spec.foot_lb.lateral.0); + let lateral = graceful_load_segment(&spec.foot_bl.lateral.0); - generate_mesh(&lateral, Vec3::from(spec.foot_lb.offset)) + generate_mesh(&lateral, Vec3::from(spec.foot_bl.offset)) } - pub fn mesh_foot_rb( + pub fn mesh_foot_br( &self, species: QMSpecies, body_type: QMBodyType, @@ -1585,9 +1585,9 @@ impl QuadrupedMediumLateralSpec { return load_mesh("not_found", Vec3::new(-5.0, -5.0, -2.5), generate_mesh); }, }; - let lateral = graceful_load_segment(&spec.foot_rb.lateral.0); + let lateral = graceful_load_segment(&spec.foot_br.lateral.0); - generate_mesh(&lateral, Vec3::from(spec.foot_rb.offset)) + generate_mesh(&lateral, Vec3::from(spec.foot_br.offset)) } } From 657c477eeaeb9300e46e86e83f893acc8c7954c0 Mon Sep 17 00:00:00 2001 From: jshipsey Date: Thu, 11 Jun 2020 01:44:38 -0400 Subject: [PATCH 10/48] finished quadlow run, positioning work on quadmed --- voxygen/src/anim/quadruped_low/mod.rs | 8 +- voxygen/src/anim/quadruped_low/run.rs | 90 ++++++++++++------- voxygen/src/anim/src/quadruped_medium/idle.rs | 80 ++++++++++++----- voxygen/src/anim/src/quadruped_medium/mod.rs | 86 +++++++++--------- 4 files changed, 164 insertions(+), 100 deletions(-) diff --git a/voxygen/src/anim/quadruped_low/mod.rs b/voxygen/src/anim/quadruped_low/mod.rs index 709c626343..e4ef0ff17d 100644 --- a/voxygen/src/anim/quadruped_low/mod.rs +++ b/voxygen/src/anim/quadruped_low/mod.rs @@ -128,13 +128,13 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { Self { head_upper: match (body.species, body.body_type) { (Crocodile, _) => (10.0, 2.0), - (Alligator, _) => (0.5, 3.0), + (Alligator, _) => (0.5, 3.25), (Salamander, _) => (3.0, 1.0), (Monitor, _) => (3.5, 2.0), }, head_lower: match (body.species, body.body_type) { (Crocodile, _) => (8.0, 0.0), - (Alligator, _) => (9.0, 0.0), + (Alligator, _) => (9.0, 0.25), (Salamander, _) => (10.0, 2.0), (Monitor, _) => (10.0, 3.0), }, @@ -164,13 +164,13 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { }, feet_f: match (body.species, body.body_type) { (Crocodile, _) => (6.0, 6.0, -1.0), - (Alligator, _) => (6.0, 6.0, 0.0), + (Alligator, _) => (6.75, 6.25, -1.0), (Salamander, _) => (6.0, 6.0, -2.0), (Monitor, _) => (6.0, 6.0, 0.0), }, feet_b: match (body.species, body.body_type) { (Crocodile, _) => (6.0, -6.0, -1.0), - (Alligator, _) => (6.0, -6.0, 0.0), + (Alligator, _) => (6.5, -4.5, -1.0), (Salamander, _) => (6.0, -6.0, -2.0), (Monitor, _) => (6.0, -6.0, 0.0), }, diff --git a/voxygen/src/anim/quadruped_low/run.rs b/voxygen/src/anim/quadruped_low/run.rs index 7ba621cc09..7a49a16088 100644 --- a/voxygen/src/anim/quadruped_low/run.rs +++ b/voxygen/src/anim/quadruped_low/run.rs @@ -17,7 +17,7 @@ impl Animation for RunAnimation { ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let lab = 0.1; + let lab = 0.5; let wave_ultra_slow_cos = (anim_time as f32 * 3.0 + PI).cos(); let wave_slow = (anim_time as f32 * 4.5).sin(); @@ -40,17 +40,30 @@ impl Animation for RunAnimation { let short = (((5.0) - / (2.5 - + 2.5 * ((anim_time as f32 *16.0* lab as f32+ PI * 0.25).sin()).powf(2.0 as f32))) + / (3.6 + + 1.4 * ((anim_time as f32 *16.0* lab as f32+ PI * 0.25).sin()).powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 *16.0* lab as f32+ PI * 0.25).sin()); + let shortalt = (anim_time as f32 *16.0* lab as f32 + PI * 0.25).sin(); - let foothoril = (anim_time as f32 * 16.0 * lab as f32 + PI * 1.45).sin(); - let foothorir = (anim_time as f32 * 16.0 * lab as f32 + PI * (0.45)).sin(); - let footvertl = (anim_time as f32 * 16.0 * lab as f32).sin(); + let foothoril = (((5.0) + / (1.0 + + (4.0) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.45).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.45).sin()); + let foothorir = (((5.0) + / (1.0 + + (4.0) + * ((anim_time as f32 * 16.0 * lab as f32 + PI *0.45).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.45).sin()); + let footvertl = (anim_time as f32 * 16.0 * lab as f32+PI*0.0).sin(); let footvertr = (anim_time as f32 * 16.0 * lab as f32 + PI).sin(); let footrotl = (((5.0) @@ -64,32 +77,43 @@ impl Animation for RunAnimation { let footrotr = (((5.0) / (1.0 + (4.0) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.3).sin()) .powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()); /// - let foothorilb = (anim_time as f32 * 16.0 * lab as f32 + PI * 1.45).sin(); - let foothorirb = (anim_time as f32 * 16.0 * lab as f32 + PI * (0.45)).sin(); - - let footvertlb = (anim_time as f32 * 16.0 * lab as f32).sin(); - let footvertrb = (anim_time as f32 * 16.0 * lab as f32 + PI*1.0).sin(); + let foothorilb = (((5.0) + / (1.0 + + (4.0) + * ((anim_time as f32 * 16.0 * lab as f32 + PI *1.25).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.25).sin()); + let foothorirb = (((5.0) + / (1.0 + + (4.0) + * ((anim_time as f32 * 16.0 * lab as f32 + PI *0.25).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.25).sin()); + let footvertlb = (anim_time as f32 * 16.0 * lab as f32+PI*(-0.2)).sin(); + let footvertrb = (anim_time as f32 * 16.0 * lab as f32 + PI*0.8).sin(); let footrotlb = (((5.0) / (2.5 + (2.5) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.2).sin()) .powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()); + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.2).sin()); let footrotrb = (((5.0) / (1.0 + (4.0) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.2).sin()) .powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()); + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.2).sin()); @@ -114,12 +138,12 @@ impl Animation for RunAnimation { next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); next.head_upper.ori = - Quaternion::rotation_x(0.0) * Quaternion::rotation_z(short*-0.15); + Quaternion::rotation_x(0.0) * Quaternion::rotation_z(short*-0.06); next.head_upper.scale = Vec3::one(); next.head_lower.offset = Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); - next.head_lower.ori = Quaternion::rotation_x(0.0)* Quaternion::rotation_z(short*-0.25); + next.head_lower.ori = Quaternion::rotation_x(0.0)* Quaternion::rotation_z(short*-0.15); next.head_lower.scale = Vec3::one(); next.jaw.offset = Vec3::new( @@ -135,7 +159,7 @@ impl Animation for RunAnimation { skeleton_attr.tail_front.0, skeleton_attr.tail_front.1, ); - next.tail_front.ori = Quaternion::rotation_z(short*0.2)*Quaternion::rotation_y(short*0.15)*Quaternion::rotation_x(0.06); + next.tail_front.ori = Quaternion::rotation_z(shortalt*0.18)*Quaternion::rotation_y(shortalt*0.1)*Quaternion::rotation_x(0.06); next.tail_front.scale = Vec3::one(); next.tail_rear.offset = Vec3::new( @@ -143,44 +167,44 @@ impl Animation for RunAnimation { skeleton_attr.tail_rear.0, skeleton_attr.tail_rear.1 + centeroffset * 0.6, ); - next.tail_rear.ori = Quaternion::rotation_z(short*0.3)*Quaternion::rotation_y(short*0.1)*Quaternion::rotation_x(-0.04); + next.tail_rear.ori = Quaternion::rotation_z(shortalt*0.25)*Quaternion::rotation_y(shortalt*0.1)*Quaternion::rotation_x(-0.04); next.tail_rear.scale = Vec3::one(); next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1)/6.0; - next.chest.ori = Quaternion::rotation_z(short*0.25)*Quaternion::rotation_y(short*0.15); + next.chest.ori = Quaternion::rotation_z(short*0.12)*Quaternion::rotation_y(shortalt*0.12); next.chest.scale = Vec3::one()/6.0; next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1 + foothoril * -3.5, - skeleton_attr.feet_f.2 + ((footvertl * -0.6).max(-1.0)), + skeleton_attr.feet_f.1 + foothoril * -2.5, + skeleton_attr.feet_f.2 + ((footvertl * -0.8).max(-0.0)), ); - next.foot_fl.ori = Quaternion::rotation_x(-0.2 + footrotl * -0.5); + next.foot_fl.ori = Quaternion::rotation_x(-0.2 + footrotl * -0.4)*Quaternion::rotation_z(footrotl * 0.55); next.foot_fl.scale = Vec3::one(); next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1 + foothorir * -3.5, - skeleton_attr.feet_f.2 + ((footvertr * -0.6).max(-1.0)), + skeleton_attr.feet_f.1 + foothorir * -2.5, + skeleton_attr.feet_f.2 + ((footvertr * -0.8).max(-0.0)), ); - next.foot_fr.ori = Quaternion::rotation_x(-0.2 + footrotr * -0.5); + next.foot_fr.ori = Quaternion::rotation_x(-0.2 + footrotr * -0.4)*Quaternion::rotation_z(footrotr * -0.55); next.foot_fr.scale = Vec3::one(); next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1 + foothorilb * -3.5, - skeleton_attr.feet_b.2 + ((footvertlb * -0.6).max(-1.0)), + skeleton_attr.feet_b.1 + foothorilb * -2.5, + skeleton_attr.feet_b.2 + ((footvertlb * -0.6).max(-0.0)), ); - next.foot_bl.ori = Quaternion::rotation_x(-0.2 + footrotlb * -0.5); + next.foot_bl.ori = Quaternion::rotation_x(-0.2 + footrotlb * -0.4)*Quaternion::rotation_z(footrotlb * 0.55); next.foot_bl.scale = Vec3::one(); next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1 + foothorirb * -3.5, - skeleton_attr.feet_b.2 + ((footvertrb * -0.6).max(-1.0)), + skeleton_attr.feet_b.1 + foothorirb * -2.5, + skeleton_attr.feet_b.2 + ((footvertrb * -0.6).max(-0.0)), ); - next.foot_br.ori = Quaternion::rotation_x(-0.2 + footrotrb * -0.5); + next.foot_br.ori = Quaternion::rotation_x(-0.2 + footrotrb * -0.4)*Quaternion::rotation_z(footrotrb * -0.55); next.foot_br.scale = Vec3::one(); next diff --git a/voxygen/src/anim/src/quadruped_medium/idle.rs b/voxygen/src/anim/src/quadruped_medium/idle.rs index a335d436c9..3d947fc1c5 100644 --- a/voxygen/src/anim/src/quadruped_medium/idle.rs +++ b/voxygen/src/anim/src/quadruped_medium/idle.rs @@ -55,10 +55,10 @@ impl Animation for IdleAnimation { 0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1 + wave_ultra_slow * 0.4, - ) / 11.0; + ); next.head_upper.ori = - Quaternion::rotation_z(0.8 * look.x) * Quaternion::rotation_x(0.8 * look.y); - next.head_upper.scale = Vec3::one() / 10.98; + Quaternion::rotation_z(0.3 * look.x) * Quaternion::rotation_x(0.3 * look.y); + next.head_upper.scale = Vec3::one(); next.head_lower.offset = Vec3::new( 0.0, @@ -66,7 +66,7 @@ impl Animation for IdleAnimation { skeleton_attr.head_lower.1 + wave_ultra_slow * 0.20, ); next.head_lower.ori = - Quaternion::rotation_z(-0.4 * look.x) * Quaternion::rotation_x(-0.4 * look.y); + Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); next.head_lower.scale = Vec3::one() * 1.02; next.jaw.offset = Vec3::new( @@ -83,62 +83,96 @@ impl Animation for IdleAnimation { skeleton_attr.tail.1 + wave_ultra_slow * 0.6, ); next.tail.ori = Quaternion::rotation_z(0.0 + wave_slow * 0.2 + tailmove.x) - * Quaternion::rotation_x(tailmove.y); + * Quaternion::rotation_x(0.0); next.tail.scale = Vec3::one(); - next.torso_back.offset = Vec3::new( - 0.0, - skeleton_attr.torso_back.0, - skeleton_attr.torso_back.1 + wave_ultra_slow * 0.6, - ) / 11.0; - next.torso_back.ori = Quaternion::rotation_y(wave_slow_cos * 0.015) - * Quaternion::rotation_z(0.1 * look.x) - * Quaternion::rotation_x(0.2 * look.y); - next.torso_back.scale = Vec3::one() / 11.0; + next.torso_front.offset = Vec3::new( 0.0, skeleton_attr.torso_front.0, skeleton_attr.torso_front.1 + wave_ultra_slow * 0.5, - ) / 11.0; + )/11.0; next.torso_front.ori = Quaternion::rotation_y(wave_slow * 0.015); next.torso_front.scale = Vec3::one() / 10.98; + next.torso_back.offset = Vec3::new( + 0.0, + skeleton_attr.torso_back.0, + skeleton_attr.torso_back.1 + wave_ultra_slow * 0.2, + ); + next.torso_back.ori = Quaternion::rotation_y(wave_slow_cos * 0.015) + * Quaternion::rotation_z(0.0) + * Quaternion::rotation_x(0.0); + next.torso_back.scale = Vec3::one(); + next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); next.ears.ori = Quaternion::rotation_x(0.0 + wave_ultra_slow * 0.03); next.ears.scale = Vec3::one() / 1.02; + next.leg_fl.offset = Vec3::new( + -skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1, + skeleton_attr.leg_f.2, + ) / 11.0; + next.leg_fl.ori = Quaternion::rotation_x(0.0); + next.leg_fl.scale = Vec3::one() / 11.0; + + next.leg_fr.offset = Vec3::new( + skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1, + skeleton_attr.leg_f.2, + ) / 11.0; + next.leg_fr.ori = Quaternion::rotation_x(0.0); + next.leg_fr.scale = Vec3::one() / 11.0; + + next.leg_bl.offset = Vec3::new( + -skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1, + skeleton_attr.leg_b.2, + ) / 11.0; + next.leg_bl.ori = Quaternion::rotation_x(0.0); + next.leg_bl.scale = Vec3::one() / 11.0; + + next.leg_br.offset = Vec3::new( + skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1, + skeleton_attr.leg_b.2, + ) / 11.0; + next.leg_br.ori = Quaternion::rotation_x(0.0); + next.leg_br.scale = Vec3::one() / 11.0; + next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, - ) / 11.0; + ); next.foot_fl.ori = Quaternion::rotation_x(0.0); - next.foot_fl.scale = Vec3::one() / 11.0; + next.foot_fl.scale = Vec3::one(); next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, - ) / 11.0; + ); next.foot_fr.ori = Quaternion::rotation_x(0.0); - next.foot_fr.scale = Vec3::one() / 11.0; + next.foot_fr.scale = Vec3::one(); next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, - ) / 11.0; + ); next.foot_bl.ori = Quaternion::rotation_x(0.0); - next.foot_bl.scale = Vec3::one() / 11.0; + next.foot_bl.scale = Vec3::one(); next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, - ) / 11.0; + ); next.foot_br.ori = Quaternion::rotation_x(0.0); - next.foot_br.scale = Vec3::one() / 11.0; + next.foot_br.scale = Vec3::one(); next } diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index aa84740b8e..557677f87c 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -15,8 +15,8 @@ pub struct QuadrupedMediumSkeleton { head_lower: Bone, jaw: Bone, tail: Bone, - torso_back: Bone, torso_front: Bone, + torso_back: Bone, ears: Bone, leg_fl: Bone, leg_fr: Bone, @@ -97,23 +97,29 @@ impl Skeleton for QuadrupedMediumSkeleton { let head_upper_mat = self.head_upper.compute_base_matrix(); let head_lower_mat = self.head_lower.compute_base_matrix(); let torso_front_mat = self.torso_front.compute_base_matrix(); + let torso_back_mat = self.torso_back.compute_base_matrix(); + let leg_fl_mat = self.leg_fl.compute_base_matrix(); + let leg_fr_mat = self.leg_fr.compute_base_matrix(); + let leg_bl_mat = self.leg_bl.compute_base_matrix(); + let leg_br_mat = self.leg_br.compute_base_matrix(); + ( [ - FigureBoneData::new(head_upper_mat), - FigureBoneData::new(head_upper_mat * head_lower_mat), - FigureBoneData::new(head_upper_mat * self.jaw.compute_base_matrix()), - FigureBoneData::new(torso_front_mat * self.tail.compute_base_matrix()), - FigureBoneData::new(self.torso_back.compute_base_matrix()), + FigureBoneData::new(torso_front_mat * head_lower_mat * head_upper_mat), + FigureBoneData::new(torso_front_mat * head_lower_mat), + FigureBoneData::new(torso_front_mat *head_lower_mat * head_upper_mat * self.jaw.compute_base_matrix()), + FigureBoneData::new(torso_front_mat * torso_back_mat * self.tail.compute_base_matrix()), FigureBoneData::new(torso_front_mat), - FigureBoneData::new(head_upper_mat * ears_mat), - FigureBoneData::new(self.leg_fl.compute_base_matrix()), - FigureBoneData::new(self.leg_fr.compute_base_matrix()), - FigureBoneData::new(self.leg_bl.compute_base_matrix()), - FigureBoneData::new(self.leg_br.compute_base_matrix()), - FigureBoneData::new(self.leg_fl.compute_base_matrix() * self.foot_fl.compute_base_matrix()), - FigureBoneData::new(self.leg_fr.compute_base_matrix() * self.foot_fr.compute_base_matrix()), - FigureBoneData::new(self.leg_bl.compute_base_matrix() * self.foot_bl.compute_base_matrix()), - FigureBoneData::new(self.leg_br.compute_base_matrix() * self.foot_br.compute_base_matrix()), + FigureBoneData::new(torso_front_mat * torso_back_mat), + FigureBoneData::new(torso_front_mat *head_lower_mat*head_upper_mat * ears_mat), + FigureBoneData::new(leg_fl_mat), + FigureBoneData::new(leg_fr_mat), + FigureBoneData::new(leg_bl_mat), + FigureBoneData::new(leg_br_mat), + FigureBoneData::new(leg_fl_mat * self.foot_fl.compute_base_matrix()), + FigureBoneData::new(leg_fr_mat * self.foot_fr.compute_base_matrix()), + FigureBoneData::new(leg_bl_mat * self.foot_bl.compute_base_matrix()), + FigureBoneData::new(leg_br_mat * self.foot_br.compute_base_matrix()), FigureBoneData::default(), ], Vec3::default(), @@ -189,92 +195,92 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { use comp::quadruped_medium::Species::*; Self { head_upper: match (body.species, body.body_type) { - (Grolgar, _) => (12.0, 16.0), - (Saber, _) => (14.0, 12.0), + (Grolgar, _) => (25.0, 16.0), + (Saber, _) => (-11.0, -3.0), (Tuskram, _) => (9.0, 12.0), (Lion, _) => (12.5, 14.0), (Tarasque, _) => (12.0, 19.0), - (Tiger, _) => (*HEAD_UPPER_X, *HEAD_UPPER_Z), + (Tiger, _) => (12.0, 19.0), }, head_lower: match (body.species, body.body_type) { (Grolgar, _) => (-4.0, -7.0), - (Saber, _) => (-6.0, 0.0), + (Saber, _) => (1.0, 0.0), (Tuskram, _) => (-3.0, -1.0), (Lion, _) => (-5.0, -1.0), (Tarasque, _) => (-5.0, -6.0), - (Tiger, _) => (*HEAD_LOWER_X, *HEAD_LOWER_Z), + (Tiger, _) => (-5.0, -6.0), }, jaw: match (body.species, body.body_type) { (Grolgar, _) => (3.0, -5.0), - (Saber, _) => (2.0, -1.0), + (Saber, _) => (18.0, -1.0), (Tuskram, _) => (2.0, -2.0), (Lion, _) => (2.0, -3.0), (Tarasque, _) => (4.0, -9.0), - (Tiger, _) => (*JAW_X, *JAW_Z), + (Tiger, _) => (4.0, -9.0), }, tail: match (body.species, body.body_type) { (Grolgar, _) => (-6.0, -2.0), - (Saber, _) => (-4.0, -2.0), + (Saber, _) => (-6.0, 1.0), (Tuskram, _) => (-6.0, -2.0), (Lion, _) => (-8.0, -6.0), (Tarasque, _) => (-7.0, -2.0), - (Tiger, _) => (*TAIL_X, *TAIL_Z), + (Tiger, _) => (-7.0, -2.0), }, torso_front: match (body.species, body.body_type) { (Grolgar, _) => (-7.0, 10.5), - (Saber, _) => (-7.0, 9.5), + (Saber, _) => (14.0, 12.0), (Tuskram, _) => (-7.0, 9.0), (Lion, _) => (-9.0, 9.0), (Tarasque, _) => (-7.0, 8.0), - (Tiger, _) => (*TORSO_MID_X, *TORSO_MID_Z), + (Tiger, _) => (-7.0, 8.0), }, torso_back: match (body.species, body.body_type) { (Grolgar, _) => (4.0, 11.0), - (Saber, _) => (4.0, 9.0), + (Saber, _) => (-19.5, 0.5), (Tuskram, _) => (4.0, 9.0), (Lion, _) => (4.0, 10.0), (Tarasque, _) => (4.0, 9.0), - (Tiger, _) => (*TORSO_BACK_X, *TORSO_BACK_Z), + (Tiger, _) => (4.0, 9.0), }, ears: match (body.species, body.body_type) { (Grolgar, _) => (-1.0, 5.0), - (Saber, _) => (-1.0, 6.0), + (Saber, _) => (13.0, 7.0), (Tuskram, _) => (10.0, 2.0), (Lion, _) => (-2.0, 4.0), (Tarasque, _) => (1.5, -2.0), - (Tiger, _) => (*EARS_X, *EARS_Z), + (Tiger, _) => (1.5, -2.0), }, leg_f: match (body.species, body.body_type) { - (Grolgar, _) => (5.0, 6.0, 2.0), - (Saber, _) => (4.0, 6.0, 3.0), + (Grolgar, _) => (20.0, 6.0, 2.0), + (Saber, _) => (6.5, 8.0, 9.0), (Tuskram, _) => (4.0, 6.0, 4.5), (Lion, _) => (5.0, 6.0, 3.0), (Tarasque, _) => (4.0, 6.0, 3.0), - (Tiger, _) => (*LEG_FRONT_X, *LEG_FRONT_Y, *LEG_FRONT_Z), + (Tiger, _) => (4.0, 6.0, 3.0), }, leg_b: match (body.species, body.body_type) { - (Grolgar, _) => (5.0, -4.0, 3.0), - (Saber, _) => (4.0, -6.0, 3.5), + (Grolgar, _) => (20.0, -4.0, 3.0), + (Saber, _) => (7.0, -7.5, 9.5), (Tuskram, _) => (4.0, -8.0, 5.5), (Lion, _) => (5.5, -8.0, 3.5), (Tarasque, _) => (4.0, -8.0, 3.5), - (Tiger, _) => (*LEG_BACK_X, *LEG_BACK_Y, *LEG_BACK_Z), + (Tiger, _) => (4.0, -8.0, 3.5), }, feet_f: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 6.0, 2.0), - (Saber, _) => (4.0, 6.0, 3.0), + (Saber, _) => (1.0, 3.0, -1.0), (Tuskram, _) => (4.0, 6.0, 4.5), (Lion, _) => (5.0, 6.0, 3.0), (Tarasque, _) => (4.0, 6.0, 3.0), - (Tiger, _) => (*FEET_FRONT_X, *FEET_FRONT_Y, *FEET_FRONT_Z), + (Tiger, _) => (4.0, 6.0, 3.0), }, feet_b: match (body.species, body.body_type) { (Grolgar, _) => (5.0, -4.0, 3.0), - (Saber, _) => (4.0, -6.0, 3.5), + (Saber, _) => (1.0, 0.0, 0.0), (Tuskram, _) => (4.0, -8.0, 5.5), (Lion, _) => (5.5, -8.0, 3.5), (Tarasque, _) => (4.0, -8.0, 3.5), - (Tiger, _) => (*FEET_BACK_X, *FEET_BACK_Y, *FEET_BACK_Z), + (Tiger, _) => (4.0, -8.0, 3.5), }, height: match (body.species, body.body_type) { (Grolgar, _) => (1.2), From 1548b3a167ce257e1a2a603a432d9f91c6829fcb Mon Sep 17 00:00:00 2001 From: Snowram Date: Fri, 12 Jun 2020 01:24:14 +0200 Subject: [PATCH 11/48] Tiger offsets, lion new model --- assets/voxygen/voxel/npc/lion/female/ears.vox | Bin 1144 -> 1144 bytes .../voxygen/voxel/npc/lion/female/foot_bl.vox | Bin 1236 -> 1836 bytes .../voxygen/voxel/npc/lion/female/foot_br.vox | Bin 1236 -> 1836 bytes .../voxygen/voxel/npc/lion/female/foot_fl.vox | Bin 1192 -> 1740 bytes .../voxygen/voxel/npc/lion/female/foot_fr.vox | Bin 1192 -> 1740 bytes .../voxel/npc/lion/female/head_lower.vox | Bin 4612 -> 7732 bytes .../voxel/npc/lion/female/head_upper.vox | Bin 2480 -> 2644 bytes assets/voxygen/voxel/npc/lion/female/jaw.vox | Bin 1164 -> 1208 bytes assets/voxygen/voxel/npc/lion/female/tail.vox | Bin 1140 -> 1364 bytes .../voxel/npc/lion/female/torso_back.vox | Bin 4764 -> 4484 bytes .../voxel/npc/lion/female/torso_front.vox | Bin 5880 -> 5896 bytes assets/voxygen/voxel/npc/lion/male/ears.vox | Bin 1144 -> 1144 bytes .../voxygen/voxel/npc/lion/male/foot_bl.vox | Bin 1236 -> 1836 bytes .../voxygen/voxel/npc/lion/male/foot_br.vox | Bin 1236 -> 1836 bytes .../voxygen/voxel/npc/lion/male/foot_fl.vox | Bin 1192 -> 1740 bytes .../voxygen/voxel/npc/lion/male/foot_fr.vox | Bin 1192 -> 1740 bytes .../voxel/npc/lion/male/head_lower.vox | Bin 4612 -> 7732 bytes .../voxel/npc/lion/male/head_upper.vox | Bin 2480 -> 2644 bytes assets/voxygen/voxel/npc/lion/male/jaw.vox | Bin 1164 -> 1208 bytes assets/voxygen/voxel/npc/lion/male/tail.vox | Bin 1140 -> 1364 bytes .../voxel/npc/lion/male/torso_back.vox | Bin 4764 -> 4484 bytes .../voxel/npc/lion/male/torso_front.vox | Bin 5880 -> 5896 bytes .../voxel/npc/tiger/female/foot_br.vox | Bin 1328 -> 55811 bytes .../voxel/npc/tiger/female/foot_fr.vox | Bin 1372 -> 55855 bytes .../voxygen/voxel/npc/tiger/female/leg_br.vox | Bin 1640 -> 56123 bytes .../voxygen/voxel/npc/tiger/female/leg_fr.vox | Bin 1636 -> 56119 bytes .../voxygen/voxel/npc/tiger/male/foot_br.vox | Bin 1328 -> 55811 bytes .../voxygen/voxel/npc/tiger/male/foot_fr.vox | Bin 1372 -> 55855 bytes .../voxygen/voxel/npc/tiger/male/leg_br.vox | Bin 1640 -> 56123 bytes .../voxygen/voxel/npc/tiger/male/leg_fr.vox | Bin 1636 -> 56119 bytes .../quadruped_medium_central_manifest.ron | 30 +++--- .../quadruped_medium_lateral_manifest.ron | 20 ++-- voxygen/src/anim/src/quadruped_medium/mod.rs | 92 +++++++++--------- 33 files changed, 71 insertions(+), 71 deletions(-) diff --git a/assets/voxygen/voxel/npc/lion/female/ears.vox b/assets/voxygen/voxel/npc/lion/female/ears.vox index 30b11a2432da16d88aa72ad107baa6d08441152f..ef0bbc750bc674abd5ec4f64c22cbf40d1402914 100644 GIT binary patch delta 97 zcmeyt@q=T60wd={MQH;@1_oaSMn+$DAk6`!IT#o`*%=r;*%=wVI2ai`85tQp85tOT x7=UaBpqh<2I*h{o3EcnNqZs~ANEiLzmc;+RJy~M%YQ~ey|KHheE@xt70sv`g7Zm^i delta 97 zcmeyt@q=T60weoGMQH;zMg|{NMn)etMn+#&1_mGovKbhB7=V}&$Y%h`GXljJfbxt$ sbsKYZ7=<(48U9yoQaVM09ub0H2?qr diff --git a/assets/voxygen/voxel/npc/lion/female/foot_bl.vox b/assets/voxygen/voxel/npc/lion/female/foot_bl.vox index b17ceb3f956f270f4e617eb100d19adb7f67353c..9f3fada22b2eef4b92d64cfe64be4e31c20df248 100644 GIT binary patch delta 848 zcmW-fJBn685QVEwRp0k$AcCQhky|h@Fz9=4YaobDBr3R!KXXC_L6|+5h><(cSQlaB z7Jk1w4Tr9-KJ_}?f5xx3PA{Ily#K|_+T;3^&F=MP&+FxrLdmDL@d2h$vdk2BL-tTJqpDJP~LnRr~4>^Wc$G&s;Swgz(bG}^a_ zzDa%aQ{aexcgUf>%H}l=LK$o3xTQ}m%YzNkr_OhAp)+%lHanh7Bwxe55^?M1U3U2c8WU9`cM;J+QRvQKf^Ql1ZJLbM0#=@LwdL75r4yZun;(I?h`;V zDn>x8c4)SN- z!pH8Loj3b6{v92+>)rGU;B}rWH{1)b$^GJ?JzQZdVQ6-5`#ih1dNLxa$ckv-Q&g2$ zDJ|)l-a|61@*d4AYZ#cQV5ChJSuB)Fl%!|cL?{WS+Ux+IONKwUU_?U2M;xM9(t)>W fJoB-8LI1Huf9@vz>45&);qqR-{UR%? zR9dKP@=_h`VT*@vE(7B&TrI*@g>6b(l)kEfDOQcQ;S27GKhr4gYse^0Y!IuHFhmXI zB6kGV9_anuuPz}$!CV}Bc&wg|-rreebZS{Wv?|9Y4Rkd?1fBh+=(mU-e@`=Lbr9{a zbu`{Beu{1p;($XKZCWF{7G+p6hb?_vvWyf_OOmAeHGGd5Nib4qqTodGX;bN|3Wdwa zFHB82gPR$}+yX)o1G&c~V&pwRVydS|5|Su10RX6ZiJW0PtbPkTVn0F-T?j1G5@qHW zhMIJnF>K)j@g%3iEc2EW4N|>_OPj!oci5Wsvor0>kFJHj-jXKe9870TLpYL)0PTg1jHrw2}PBCVx0H zN1S}KJ6~u7;gs#OWAT#3j6?nQ^O4{C_W@?CDmSRPzf|$vW zK^YqOEmV@S0u355WQcVTywpVmosYSl fgc(Qm0^M6j)CT>A+2kyZw zJnMR)=sw+js;f`mZ`1GX^z6yi{ZD4r9;L@J_Omy8nyxR`7$yAA{mSOlz~yAMaEGiqeSSe95^XH zHDZ#uslsK&0SyQ}IgSC?E8lBPeFOS@g7?YMOGMv1kiGNj+L4orX@_Ci!_~kP^Ne6) zXpdn9oi%jc&@0zl*3XhnarV|i_d;hXPbx;&aF9K~O7#HzQYs*adYTaV(YVtjor+}9 z6^9xsPjp&ONNhB?el!nF*Xi7~@1Gy|o%b)6^UbxLKfJkne*5y`eDmtw$3Omy=f4ks He1+p5b@EgT delta 200 zcmXYpF$w}f5Cpqt*Fexn5EH=%_z44%SxyavAoMd HFHiXa*a09& diff --git a/assets/voxygen/voxel/npc/lion/female/foot_fr.vox b/assets/voxygen/voxel/npc/lion/female/foot_fr.vox index 14e6f91d88fb08be33602f7455225c211f865bb8..ea3978b0a0e8dc59427818195494d681321af39b 100644 GIT binary patch delta 751 zcmW+!J&IOA5bUn%dH?U*Km z@8A_a>+L|%Gu=Ja)jjil{Ii~(Kf8YT+05FL{8Yw%b!J!jc)9Ectt1S>g>e1inBPMi zt*=6Kc58z7c1ryWd}nV`=V7cKO_=jkZ?W(rB~l9X8_7C_cw& zt_~&mDiH$KLW+cQp^uF!KoJqMF35M6JE@B`1M3D~8*C}CS$3+hQL#m_MX^QGm^WZA z+Dp*T09o|%_u}dsPTpr{pM#^i7^Qxn#NNGdr+kutLBxZE4I&vUFl>%Ng@#J)A!1hy z97Vp19#v?RU%4((m8n6<{DwC_IHBwf8g5spO$tZwdN(D3`%EpEW2}v4H zQc{vXsZ;8`s3%BL9@z!BKAJ~^C%s|HKfXNjdmmoT=bNLQKfb+xe)sC)eDnIjr@#K2 L=YNlXeuLvblK@l^ delta 200 zcmXYpF$%&^5JYG8e+xk?L2LvM;3X_X{wHc7gqX_0CO5FNvlf(qH?YqIY(+bd;6c6< zaN#jK!_L0@_wF%Y7n2&mau!w+Ts^P}<-FG#jr-G)7TYrH+fXwSMvDdtM5C05gv$t@ znK6=19>EMZ(gNEI41{(vfE+7SNkz2i(BSpZ35(6crW{lYq(hE$u7>HfL#iuWl6$)E I2hGdVe%{m|RsaA1 diff --git a/assets/voxygen/voxel/npc/lion/female/head_lower.vox b/assets/voxygen/voxel/npc/lion/female/head_lower.vox index 335efbcbb54d247ba783c4bce4f79abaf1a16a54..c8e412dc9622a910c58aa8275990bda4c2e38d0a 100644 GIT binary patch literal 7732 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 diff --git a/assets/voxygen/voxel/npc/lion/female/head_upper.vox b/assets/voxygen/voxel/npc/lion/female/head_upper.vox index 698b4510aad3b96d8506075951afd9dc31add837..d845411a274e2bc462e511bd6f9b18ac25f3c5c3 100644 GIT binary patch delta 1643 zcmXAqy^3Z<5Qe+{dsI+Z1p@;!Z())JR}eXW3JS7LBpMjc;KoM~+)za@_|BPYP*_86 zz}!19_ZG&d*MXNhT~%E_Z&iQu`=h_#+&};1>ASzS*0v|p$B6d+E3JJt-F*1kIPiA` zP`#8-zqpy+$f0fRdudH1&n5x<4C$u>1JUYqV4!2~*bCpT1Dut!)|uKLpW^XdD3?L; zoe|#}-#Vmq>^51*B(9Tpp8{Q4-_-j0^PlhSiR&c)-yW33J%YCPfBtsl)c6 zq!M?5&$?F-!vIn^gJ^k%)}b2ESNFzQV5gXkfK;DS65qT}6&Mtn5oRjP6Uny?UDGog z{>^~_J$FT+C=`XFaDqGZm+B#)t1@BgKmRv8zX=Pb!_EO&O9}lHH8w? zKq~%>&gn`?=umFLC@dzWKo?(~BE$P+_*k*X&|L=Y%)e-`G*{WpSK%Neabdo|75a1p z)XDf3GcMZFkd4Zl#oCPSj3xD2#EQ8Vv#+VFwvKPduhUeP+$qS?MZu>Zeek6D|NjH7 wudg3o{1NZSqaVL~_2KzVd-&;_w;q1@>h*``U%&m!KlztE{QLODZ~X542UD}vi2wiq delta 1462 zcmW-gy=omt6oBXauYx-V*Xh#a6@9MJ#|&kkIs?5ad-s_k*yZ%Z&g}UVk3ZFNCKT(8 zxKVFsag#`KTP4vojJu0hMprgUPoEiI~XLWB7gezu?u z!9cUK%{IhH>!?!|F^fbTy`z_Y09;HSg%hN>ll@o-6a)$$RFFVwKMoS%p5VuLOirA{ zR~86`VBBOrtfu!s9bUE_|guH59?0h z$9mQzrJY2Ns2?l-g6cyzF7`}NB<(RO@^0;^Vw})+qdLc_cB0+Ru9)f#JHufjt6x8f zl*U70Tlf?9!dgyaA!(s&iUebANZFWQfw|lVsOx=##@G`SUAA7)gBf-prbmIO9R(h8 zU&D4$+0|rEP|-a>#P$LaNBVBVcZYz@Mz9Gs!GWO(#aS$FqA!r>R#X@4;=~y4sj&=9JcY}5Qn2Ml_S6e3C>y}TS`78h{RDKnup;y z+PM^G%$vVdfGT@%5>Apg8%KabLUjj_Ola)k-DVCz`mhgl5S%llcJ*8ky0XxX0SoOM wr?z%`yGq%=z0P0c>E)~O_~Gq%{CxTB@#F8~@$Pc`^{M``|NkA|-YlZu0gjQmB>(^b diff --git a/assets/voxygen/voxel/npc/lion/female/jaw.vox b/assets/voxygen/voxel/npc/lion/female/jaw.vox index 3a7218a08dfbe2ae748df10218932eb65248527a..8c4041c52cbead2a3f9418faf768a5c5d1bcafb5 100644 GIT binary patch delta 199 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 literal 4764 zcma)v(MMD}xKp<_S@dq}95E4R2CC0=wgc##re;DJx6x2`(uoZEWs@J0&vod>E)8|{$np)9SgGgazLr7ji!*|!GTT08#q5{5O^ znLeSR6!r|PNj#J|G`^I5hQrvW#t;9q!Uxb+BWowh#B*YvPzL74!oHNCN|?@#d*nIu z3_8a4T4wqJGDwWauZo@u{~FkPvYNhQ9Kw!Zm@-l~mDB*tNs+Z>-pxy2N32TeoF zqXF6mF#;J5@UhRHn1UFFnK<=Ay{*~iH1FACKrRe~_=UCyYq0(RZw4)=*n2>pRO&r3 z?%+^cZjn!!xw*y3!-3d$%P+pdVjy%X3d3US)J-@+~L&$jwadXJV5h>jgmGWa5*FeI|aHoXEr> z6OWAd*;Ar16SEB0Ode$7pNU&WPbRL}Q=%`UDHDg>d?!x>ZGq=Ndthw9kAS|&o)Ntf zA0u2M+9F;@@*$FoaU9n;itvxs`1jd&XIG{PssE22B1JK}Lfd&J{N{zg2Acoy+H;!otfM6^cEY9u}pew~`3{`(0H-ka9q;igz&)TVG!F0!@Cs-T@C@(_copy? zz%#(t!^g3wV~&H9gNGyU9b6n5Qm-S=`S6?-&zbR@9mg4RoF&JZa-1#4IrE%b&-wM7 zW6yc^+-DwMp8Y+XJmWogr{@m!+^3#<)pNgk?mo}`<=NM>u5W9xrbmlsea~I&xmP`B z&vXBH;_t~7k9S@({h7T$J5%IjA?AhrEyTJI`-0v=49mDbQl||*g>zHLr@}gg^HT7r zz_pMU1^)~C7tTr{eg$s|S_n zZ-KXS=Lx3T_$mApeF{HCpTbe` zLE)xwQ*%p{;L89H2lNl+kspK$FARvQM$zxFXMoys87JmG&>F=rM@i@*w<=bLBmUj>BmG%gfb{Y3^k5$eI=x7h1 z(jI}*CLn`SIZvRYJ%CDE1WKELJnrK?NL!^I$IrYoDSO~S>Cg%k2*{vxXac3f8&GMB zKxq@8vbI{qLrNckaF+PBf@c~rE z#PJ+-Gp?te$K%o7p>aG1{j^uwBT(99+=n+j2T*yApaTK;numSIcP-xZ_}jB*kB6Q% zUqQ!vwt|lLYz55e$Mg9X@5oP3Kn4j2h#-Kj@|{~50}99>0Ra&N`V)Cu$lDB3%U?%K zK?2305hPF?9)kpmBR(LF%ff#>JOX{sH#PtJJf)}X_oy=mt!`j7o<(IPu}a;vr9OT*)Ke)qH; z-#4`52k)`t&pc%7k3VP&H!ZQHcdxQlk6vPvN3JrrC7IjVnS1^$b8jxOgfXobBH1>{;5kUAfHWwoKTbZL96@eOK80E$i*@{ny#a zC%iIe&>=eZ@+f{>o~*Z^wGuIdZo5PG?8H>+JO(Ia{}4nGL5dushaWYP&XH zWjm&p*xZ%NZU6Nb+OfMXvn^Mzv75ejmCb(rTHAT|jkf2(Sv&B9op$W#6L#v2=j`Bj zCT#xp<<|GToqP6~cG>cUwq|m|)?Ip$ed&rxJMjJU?B!oh*k9hBveWNgVn1ikV=p*+ z=MT>Q_9th1=2qLYd)L~VFI{K<{Ofkx_0&S!|C>ej>U&G=w5_yR{21%M7hiTeyKeH6 z^*=Ck(Z}?!IQKI)HL=*HRxYrOlMC#Y4QJRbYyN-zYuB!|AFn@Rm#ul;Htu`emhN3@ zZ~e;I`?ouLarJ7OoSd}#&);n`H@s$U?;cycYq6bp=A#%sx{TaevBJK0;UT+b<3YRk zsVD5*yUww9e|w>wm|bcISFQS(|7~1b>$dIh*slA{9(m@d?fvyJd-}CE>}P*GWnX+~ zpI!6#5u5(S>$d%sQ?_Z-Ci~EtIR*A_i>I7@@cWPWeL#NwuYOM9_?&%G**ZU|ueE<# L-+19qpYQ$)G-Y6y diff --git a/assets/voxygen/voxel/npc/lion/female/torso_front.vox b/assets/voxygen/voxel/npc/lion/female/torso_front.vox index 75a3adc3cdce3d165bd9068c5d2818574d759602..3a8021c75395410a490569fb44d0400a02140555 100644 GIT binary patch literal 5896 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 literal 5880 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 RmA>`<|MqQd;r~8A{1c-X^N9ce diff --git a/assets/voxygen/voxel/npc/lion/male/ears.vox b/assets/voxygen/voxel/npc/lion/male/ears.vox index 30b11a2432da16d88aa72ad107baa6d08441152f..ef0bbc750bc674abd5ec4f64c22cbf40d1402914 100644 GIT binary patch delta 97 zcmeyt@q=T60wd={MQH;@1_oaSMn+$DAk6`!IT#o`*%=r;*%=wVI2ai`85tQp85tOT x7=UaBpqh<2I*h{o3EcnNqZs~ANEiLzmc;+RJy~M%YQ~ey|KHheE@xt70sv`g7Zm^i delta 97 zcmeyt@q=T60weoGMQH;zMg|{NMn)etMn+#&1_mGovKbhB7=V}&$Y%h`GXljJfbxt$ sbsKYZ7=<(48U9yoQaVM09ub0H2?qr diff --git a/assets/voxygen/voxel/npc/lion/male/foot_bl.vox b/assets/voxygen/voxel/npc/lion/male/foot_bl.vox index b17ceb3f956f270f4e617eb100d19adb7f67353c..9f3fada22b2eef4b92d64cfe64be4e31c20df248 100644 GIT binary patch delta 848 zcmW-fJBn685QVEwRp0k$AcCQhky|h@Fz9=4YaobDBr3R!KXXC_L6|+5h><(cSQlaB z7Jk1w4Tr9-KJ_}?f5xx3PA{Ily#K|_+T;3^&F=MP&+FxrLdmDL@d2h$vdk2BL-tTJqpDJP~LnRr~4>^Wc$G&s;Swgz(bG}^a_ zzDa%aQ{aexcgUf>%H}l=LK$o3xTQ}m%YzNkr_OhAp)+%lHanh7Bwxe55^?M1U3U2c8WU9`cM;J+QRvQKf^Ql1ZJLbM0#=@LwdL75r4yZun;(I?h`;V zDn>x8c4)SN- z!pH8Loj3b6{v92+>)rGU;B}rWH{1)b$^GJ?JzQZdVQ6-5`#ih1dNLxa$ckv-Q&g2$ zDJ|)l-a|61@*d4AYZ#cQV5ChJSuB)Fl%!|cL?{WS+Ux+IONKwUU_?U2M;xM9(t)>W fJoB-8LI1Huf9@vz>45&);qqR-{UR%? zR9dKP@=_h`VT*@vE(7B&TrI*@g>6b(l)kEfDOQcQ;S27GKhr4gYse^0Y!IuHFhmXI zB6kGV9_anuuPz}$!CV}Bc&wg|-rreebZS{Wv?|9Y4Rkd?1fBh+=(mU-e@`=Lbr9{a zbu`{Beu{1p;($XKZCWF{7G+p6hb?_vvWyf_OOmAeHGGd5Nib4qqTodGX;bN|3Wdwa zFHB82gPR$}+yX)o1G&c~V&pwRVydS|5|Su10RX6ZiJW0PtbPkTVn0F-T?j1G5@qHW zhMIJnF>K)j@g%3iEc2EW4N|>_OPj!oci5Wsvor0>kFJHj-jXKe9870TLpYL)0PTg1jHrw2}PBCVx0H zN1S}KJ6~u7;gs#OWAT#3j6?nQ^O4{C_W@?CDmSRPzf|$vW zK^YqOEmV@S0u355WQcVTywpVmosYSl fgc(Qm0^M6j)CT>A+2kyZw zJnMR)=sw+js;f`mZ`1GX^z6yi{ZD4r9;L@J_Omy8nyxR`7$yAA{mSOlz~yAMaEGiqeSSe95^XH zHDZ#uslsK&0SyQ}IgSC?E8lBPeFOS@g7?YMOGMv1kiGNj+L4orX@_Ci!_~kP^Ne6) zXpdn9oi%jc&@0zl*3XhnarV|i_d;hXPbx;&aF9K~O7#HzQYs*adYTaV(YVtjor+}9 z6^9xsPjp&ONNhB?el!nF*Xi7~@1Gy|o%b)6^UbxLKfJkne*5y`eDmtw$3Omy=f4ks He1+p5b@EgT delta 200 zcmXYpF$w}f5Cpqt*Fexn5EH=%_z44%SxyavAoMd HFHiXa*a09& diff --git a/assets/voxygen/voxel/npc/lion/male/foot_fr.vox b/assets/voxygen/voxel/npc/lion/male/foot_fr.vox index 14e6f91d88fb08be33602f7455225c211f865bb8..ea3978b0a0e8dc59427818195494d681321af39b 100644 GIT binary patch delta 751 zcmW+!J&IOA5bUn%dH?U*Km z@8A_a>+L|%Gu=Ja)jjil{Ii~(Kf8YT+05FL{8Yw%b!J!jc)9Ectt1S>g>e1inBPMi zt*=6Kc58z7c1ryWd}nV`=V7cKO_=jkZ?W(rB~l9X8_7C_cw& zt_~&mDiH$KLW+cQp^uF!KoJqMF35M6JE@B`1M3D~8*C}CS$3+hQL#m_MX^QGm^WZA z+Dp*T09o|%_u}dsPTpr{pM#^i7^Qxn#NNGdr+kutLBxZE4I&vUFl>%Ng@#J)A!1hy z97Vp19#v?RU%4((m8n6<{DwC_IHBwf8g5spO$tZwdN(D3`%EpEW2}v4H zQc{vXsZ;8`s3%BL9@z!BKAJ~^C%s|HKfXNjdmmoT=bNLQKfb+xe)sC)eDnIjr@#K2 L=YNlXeuLvblK@l^ delta 200 zcmXYpF$%&^5JYG8e+xk?L2LvM;3X_X{wHc7gqX_0CO5FNvlf(qH?YqIY(+bd;6c6< zaN#jK!_L0@_wF%Y7n2&mau!w+Ts^P}<-FG#jr-G)7TYrH+fXwSMvDdtM5C05gv$t@ znK6=19>EMZ(gNEI41{(vfE+7SNkz2i(BSpZ35(6crW{lYq(hE$u7>HfL#iuWl6$)E I2hGdVe%{m|RsaA1 diff --git a/assets/voxygen/voxel/npc/lion/male/head_lower.vox b/assets/voxygen/voxel/npc/lion/male/head_lower.vox index 335efbcbb54d247ba783c4bce4f79abaf1a16a54..c8e412dc9622a910c58aa8275990bda4c2e38d0a 100644 GIT binary patch literal 7732 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 diff --git a/assets/voxygen/voxel/npc/lion/male/head_upper.vox b/assets/voxygen/voxel/npc/lion/male/head_upper.vox index 698b4510aad3b96d8506075951afd9dc31add837..d845411a274e2bc462e511bd6f9b18ac25f3c5c3 100644 GIT binary patch delta 1643 zcmXAqy^3Z<5Qe+{dsI+Z1p@;!Z())JR}eXW3JS7LBpMjc;KoM~+)za@_|BPYP*_86 zz}!19_ZG&d*MXNhT~%E_Z&iQu`=h_#+&};1>ASzS*0v|p$B6d+E3JJt-F*1kIPiA` zP`#8-zqpy+$f0fRdudH1&n5x<4C$u>1JUYqV4!2~*bCpT1Dut!)|uKLpW^XdD3?L; zoe|#}-#Vmq>^51*B(9Tpp8{Q4-_-j0^PlhSiR&c)-yW33J%YCPfBtsl)c6 zq!M?5&$?F-!vIn^gJ^k%)}b2ESNFzQV5gXkfK;DS65qT}6&Mtn5oRjP6Uny?UDGog z{>^~_J$FT+C=`XFaDqGZm+B#)t1@BgKmRv8zX=Pb!_EO&O9}lHH8w? zKq~%>&gn`?=umFLC@dzWKo?(~BE$P+_*k*X&|L=Y%)e-`G*{WpSK%Neabdo|75a1p z)XDf3GcMZFkd4Zl#oCPSj3xD2#EQ8Vv#+VFwvKPduhUeP+$qS?MZu>Zeek6D|NjH7 wudg3o{1NZSqaVL~_2KzVd-&;_w;q1@>h*``U%&m!KlztE{QLODZ~X542UD}vi2wiq delta 1462 zcmW-gy=omt6oBXauYx-V*Xh#a6@9MJ#|&kkIs?5ad-s_k*yZ%Z&g}UVk3ZFNCKT(8 zxKVFsag#`KTP4vojJu0hMprgUPoEiI~XLWB7gezu?u z!9cUK%{IhH>!?!|F^fbTy`z_Y09;HSg%hN>ll@o-6a)$$RFFVwKMoS%p5VuLOirA{ zR~86`VBBOrtfu!s9bUE_|guH59?0h z$9mQzrJY2Ns2?l-g6cyzF7`}NB<(RO@^0;^Vw})+qdLc_cB0+Ru9)f#JHufjt6x8f zl*U70Tlf?9!dgyaA!(s&iUebANZFWQfw|lVsOx=##@G`SUAA7)gBf-prbmIO9R(h8 zU&D4$+0|rEP|-a>#P$LaNBVBVcZYz@Mz9Gs!GWO(#aS$FqA!r>R#X@4;=~y4sj&=9JcY}5Qn2Ml_S6e3C>y}TS`78h{RDKnup;y z+PM^G%$vVdfGT@%5>Apg8%KabLUjj_Ola)k-DVCz`mhgl5S%llcJ*8ky0XxX0SoOM wr?z%`yGq%=z0P0c>E)~O_~Gq%{CxTB@#F8~@$Pc`^{M``|NkA|-YlZu0gjQmB>(^b diff --git a/assets/voxygen/voxel/npc/lion/male/jaw.vox b/assets/voxygen/voxel/npc/lion/male/jaw.vox index 3a7218a08dfbe2ae748df10218932eb65248527a..8c4041c52cbead2a3f9418faf768a5c5d1bcafb5 100644 GIT binary patch delta 199 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 literal 4764 zcma)v(MMD}xKp<_S@dq}95E4R2CC0=wgc##re;DJx6x2`(uoZEWs@J0&vod>E)8|{$np)9SgGgazLr7ji!*|!GTT08#q5{5O^ znLeSR6!r|PNj#J|G`^I5hQrvW#t;9q!Uxb+BWowh#B*YvPzL74!oHNCN|?@#d*nIu z3_8a4T4wqJGDwWauZo@u{~FkPvYNhQ9Kw!Zm@-l~mDB*tNs+Z>-pxy2N32TeoF zqXF6mF#;J5@UhRHn1UFFnK<=Ay{*~iH1FACKrRe~_=UCyYq0(RZw4)=*n2>pRO&r3 z?%+^cZjn!!xw*y3!-3d$%P+pdVjy%X3d3US)J-@+~L&$jwadXJV5h>jgmGWa5*FeI|aHoXEr> z6OWAd*;Ar16SEB0Ode$7pNU&WPbRL}Q=%`UDHDg>d?!x>ZGq=Ndthw9kAS|&o)Ntf zA0u2M+9F;@@*$FoaU9n;itvxs`1jd&XIG{PssE22B1JK}Lfd&J{N{zg2Acoy+H;!otfM6^cEY9u}pew~`3{`(0H-ka9q;igz&)TVG!F0!@Cs-T@C@(_copy? zz%#(t!^g3wV~&H9gNGyU9b6n5Qm-S=`S6?-&zbR@9mg4RoF&JZa-1#4IrE%b&-wM7 zW6yc^+-DwMp8Y+XJmWogr{@m!+^3#<)pNgk?mo}`<=NM>u5W9xrbmlsea~I&xmP`B z&vXBH;_t~7k9S@({h7T$J5%IjA?AhrEyTJI`-0v=49mDbQl||*g>zHLr@}gg^HT7r zz_pMU1^)~C7tTr{eg$s|S_n zZ-KXS=Lx3T_$mApeF{HCpTbe` zLE)xwQ*%p{;L89H2lNl+kspK$FARvQM$zxFXMoys87JmG&>F=rM@i@*w<=bLBmUj>BmG%gfb{Y3^k5$eI=x7h1 z(jI}*CLn`SIZvRYJ%CDE1WKELJnrK?NL!^I$IrYoDSO~S>Cg%k2*{vxXac3f8&GMB zKxq@8vbI{qLrNckaF+PBf@c~rE z#PJ+-Gp?te$K%o7p>aG1{j^uwBT(99+=n+j2T*yApaTK;numSIcP-xZ_}jB*kB6Q% zUqQ!vwt|lLYz55e$Mg9X@5oP3Kn4j2h#-Kj@|{~50}99>0Ra&N`V)Cu$lDB3%U?%K zK?2305hPF?9)kpmBR(LF%ff#>JOX{sH#PtJJf)}X_oy=mt!`j7o<(IPu}a;vr9OT*)Ke)qH; z-#4`52k)`t&pc%7k3VP&H!ZQHcdxQlk6vPvN3JrrC7IjVnS1^$b8jxOgfXobBH1>{;5kUAfHWwoKTbZL96@eOK80E$i*@{ny#a zC%iIe&>=eZ@+f{>o~*Z^wGuIdZo5PG?8H>+JO(Ia{}4nGL5dushaWYP&XH zWjm&p*xZ%NZU6Nb+OfMXvn^Mzv75ejmCb(rTHAT|jkf2(Sv&B9op$W#6L#v2=j`Bj zCT#xp<<|GToqP6~cG>cUwq|m|)?Ip$ed&rxJMjJU?B!oh*k9hBveWNgVn1ikV=p*+ z=MT>Q_9th1=2qLYd)L~VFI{K<{Ofkx_0&S!|C>ej>U&G=w5_yR{21%M7hiTeyKeH6 z^*=Ck(Z}?!IQKI)HL=*HRxYrOlMC#Y4QJRbYyN-zYuB!|AFn@Rm#ul;Htu`emhN3@ zZ~e;I`?ouLarJ7OoSd}#&);n`H@s$U?;cycYq6bp=A#%sx{TaevBJK0;UT+b<3YRk zsVD5*yUww9e|w>wm|bcISFQS(|7~1b>$dIh*slA{9(m@d?fvyJd-}CE>}P*GWnX+~ zpI!6#5u5(S>$d%sQ?_Z-Ci~EtIR*A_i>I7@@cWPWeL#NwuYOM9_?&%G**ZU|ueE<# L-+19qpYQ$)G-Y6y diff --git a/assets/voxygen/voxel/npc/lion/male/torso_front.vox b/assets/voxygen/voxel/npc/lion/male/torso_front.vox index 75a3adc3cdce3d165bd9068c5d2818574d759602..3a8021c75395410a490569fb44d0400a02140555 100644 GIT binary patch literal 5896 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 literal 5880 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 RmA>`<|MqQd;r~8A{1c-X^N9ce diff --git a/assets/voxygen/voxel/npc/tiger/female/foot_br.vox b/assets/voxygen/voxel/npc/tiger/female/foot_br.vox index 74c360990a7a26368b6b3d4f4236a6fcd3bd3341..e2626c1040d76286bdcb1e75c5b492d46c474418 100644 GIT binary patch literal 55811 zcmdtqd3+RS83*upW;P*(aupJ8*oHHqgxw@d!r5@;;JyptST@3Xu9WQRj0EmFVr=?$dE}FMzO9L#fE0cyhGMIWWD?pNikhZlJ!Zk z(7ZV_dMovfUo@Ge#Kn2OLPc|Cb+WVKdL4i2+$P5unrP!PUxrLP1m`*KdaO6jyY6zj zoH?Pn#k0C{ySzA@uj@l|e%km&b9!`@ATUSEIHv8z4Bqk@3sA@}M&s`)=r%|Wrg1S`;>b*(OJ%uj&!AUgFDkcS1Mf^+ly$*-LysCZO3JL zMW#1p+EORz;1hyQ?h|zOuq+n{+E~(uwogf;-7`DW#^vp3ZK>;$(%%+Cq0Qc30jS~4PwqLW6_g3L6sa(mH+qJeaD*>IXX#!WK|M^fpm z@l>^Z2CWR2(x!*2=;*#Rbn(gf&Y(>X z^`?Wn)9KZ-nRNO5P8X_2uLF(F=s@%H+tYma|L@Pq z$)U&dcF}P69vZ!FHT7uhL1&&8bZN1m{X>ROMn(oz_OGRB#YadquB6mxDjnY@*E(6y z13l%v)3+}@IB*M%8@-wQ>(@~CW!>ofa|7vkX%E`$bhg-kj^nWw%{@oaN}~F0`>64m zqx9I3Q?%p7i{y!{qj9Tu(bT6-(A+~8si2^MuF4mfNRf#?BIBZ~OyCUzePivPC zp?c14_sNa7YvcM)YEuJ$a)0?HZ{D<*Ol$lBnTVj@JrD?P889`r>Lh7uR_M zF0LEq%JSGnw;h>pmsZ%NJT*~8u%?dJp?Y|O{-`S4tl_sej)v_x8a`$m4d0MB8h)^G zH2fCA(eMiyM{@_1rY)4F9h8Qj8Jy>)J(Q*cl%^w;hQE=6^W1cX(%c25=>nzU?^fbG zH>psXG$>6sC{1@LO%Esy{|O7uJFOR#hW}s==WO~wY5GEG`ax-&P@21;H0e;9{!p3$ zP?~{Inn6&S!BCnZP?`)VO(v9v|C$}n?+EUJ(hP&rWI<_$Lup)48aI?C8%mP{rOAcT zc%U>Rpfq_d7@Sq!CF0;O3BrCA20@j_{qLuq_anldO&Ih4i^r7@v26;PT0 zl%^6&V?k-|htgC*X@XFiYA8(zN)v|CM4&XEfzm{wG%+Ym97qP@2_HnnoziLr|KBp)_ltG;5(Wk3ebGL1`X^ z(yWKld;v7LTNsP()HJpp{6bZs3KTX$Lml% zyg`3d6{0gIOzAIc`O;--lBl`NP_3${4*Sifa7zUX!Jg*fR;Yr<@LGv^RiUb#tjhLy zoQb5i!50byP44V*IXx~liZ5#Vcv4rE%U-bGid8jDnkQTM;*pzAS`)H9eNtu)Qv^!_`VqZPnRFX&+gv+!wTOe)W9%_yM)=4L)CQyfSLWD#JmwrEZ>MY+{aPx2ozJ zkWYWeucj*x2g6au=ewNhr<%I*`lGG}8k`u2_p@mmcvNp$;Km@_;&RF#Jol(Xmu7R@ z8|Dv~t#ndVD=dFJ@lsN|v@|gacWjziWdc#_ruB1`np&M=EaEG-Lh2ywcbyv6K6zKR z3XzX=B~095b_AfN&gOYQ;*`l1Do2|mqeW_CY+ z{e8DTy}Ul00X!X!&k@|Wul?f(t!`^WX-e^`l|k~fnB0S6I(Gech(~reyjWVQ;ey~L z6yEG~<`#vHn{SvEt-^3|$QX3~6y7IupoY$jmXL$(=m zE`~1KWiG?eWt^6*X^u9UX0+Axq-0I!v!1LOvglfJXx^L|y?JeJIe5t^aU_;cgo@_O z>YRwV(Z*+87S1s=agXbK7_x8*zUH_avEDfEkjv?E=7i=J&+5ka<-y^6+(^yW)5b5F z(~B<>2jAn)-jJ`_tGri>MK|MU?^Yf{pp@FV#5mdbE4E68!5ncb_ZMy#cyBtaf zOODfwsV?#@9Ze0jQ|b8n5<0%cN5{8EDDQZfIv1o;&*e^Xt{O@iyGN2JOd?U$j>O)3 zNSsNf&eH{TuNKsMv!MG93u;>>s6(TmuCktbKv3@V_B5rsGnKCHN{^lBLz5Z=&E6`g z?2w@Pi?Z+RUewo0rvVL_G~!qRrA50@`o>erv~uv(KWT{Zna7c0ZbW{}3`43dgu<=H!u7I%_;tEuTRv!=<$Okt#a2e=S`)y^FSl z(y3u_8ud=;NIklCq2Xzr$(@l-BeDk3sO${d{BUnNv?rZjJC{jUE)1oorp42oBe|J)(V=KA@1m} zo;Ik3zi*FDl$oAFnf*G_=!}juKfeRbcmMzXoSYnbB5yYhckiXq>(@}v#-4Qc89|p9 z3py}l2xVksP-XvGnpS+2MB_?IiKftr?Q*V#f>!mC&raXI^w7YqG;Z`3@^4s6J(hK+ z3(pUv6QwyzCP)`dK<57J(T>b$I3rRfi)833gj2&EYWr5OyR83LurfYM|_Y4|_0 z!}&LY`=B(#pfp)fn&D6y7nH^grOAfU9+V~@N;48lGYU#G8cH(; zN;4KpGY(2~Ka{2bN;4ixGXY975lS-&N>d1>nGB^Vg3=U2X-c3pQ=l|cp)}K=G}ECp z{C`Km`J2L-P?}j#n%PjAIZ&FpP?~vAn)y(g1yGs?pfn4iG>f1#rBIs1P?{xBnx#;h zWl$O~lx8`U#s{S-gVK~kY5Y(c6G~G7r3pZ3DxowMl;%MwO%;?T2&Jip(uANiVJJ-m zO7kfwO%zHKgVMyIG&N9~S}4s5C`}!drXEVO5=!%FC`|*D<}*;5RZyCTpfsO_(yWHk ztbx)rLTMg`(mVpCSqr6E2c>xwO0ynH^B9z71C-`-P@0WUn#Z9uo1iqCp)^lGX|_OV zo`lkDh0=T;O0x}0vmHva14^?KO7jIM%@?6GPeEyRL1~_b((H!P?19qkh0;6&rFj-g z^Cc+FJ}AwXp)~uUG+%+zJO`!uDwO5`l;&$tnuAc9Lr|LMp)`k~G)JH`N1-%dhteE_ z(j144c^J6H@1t`r=pfneuG(UyXT!PZP0;RbOrTH0@ z=2a-o&!IH0L1}&grFk7n^9GdWmr$B3P?}#sX|6(PehsC$2BrB8l;%w+&2OPJZ$W9^ zhSIzPrTHC{=J!yVKR{{z2&MTGl;+P+ns=cze}U4x2c>x*O7mAJ%?D7Lzd>pK4yE}J zO7jmW%|}q0e?n=lLuvj6rTI6M=08xH|3Ya9N+UEO?v|n?S-kQ3h}o7e{8mLpP0UQ@ z>lLOIsEo@n;cmnAXt*X&X~-*AmRt3TMa*)$?ol1M?u{f`9NfhUN9}5ks`}z8or~MN z0T;Iob7gt#s@smtw`(ixTAmuHB3M($^H4p!L4Q-=H`Regse{kvF&b*uHqR zy{o=@uir-JHZ@eWlkvG8r`wgwcGX^Onau;aq16@Q8v%Pg@;z$QaE{ln*5gJ^^>e%I zm36yaJl9EyxpL2@xvHnKA{_AESSveEtJ|X*15NAR>Sn9NK{FIn7m;ZAK^3nSt|DB^ zDRMn`$=|)ch#8I7L`@r#?NKu+3;O(~H>CR9(s1*EoRL6q`X+?BsIY?7>cXsxggJq| zTeX%wV|B|{ZpLoj3izsdW3scdd3hGLmRapgSuh-~R)T7)&fZFU%VOoep#AWx_tVEO zsQqm4{(9q;Q8QK<4yq+}^B7|jV>EkIRo{So`$K*;TzNPcjxs*qMGIT zL?T|#re)x)-m<{WBz(u^l)rfFQHd_i#8%bV4Fs-~D~C%KQ?DSxTXyBC^0glr#x@R6f-g=JabE8GEI9aIwjx2 j1pTP|89R^zv`;)*(2Hn7E`n~vYT`yV$syYBoo@3Vz_J{A diff --git a/assets/voxygen/voxel/npc/tiger/female/leg_br.vox b/assets/voxygen/voxel/npc/tiger/female/leg_br.vox index 3519108d8688f8093ed64b0f8992c25213279d03..94e6867f16303e591cb1f8ad81ca041a0fb65082 100644 GIT binary patch literal 56123 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 Lu8SrT65#s)@L4K8 delta 581 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 diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index 84b5308855..c5a4843299 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -236,7 +236,7 @@ central: ("npc.lion.female.ears"), ), tail: ( - offset: (-0.5, -1.0, -1.0), + offset: (-0.5, -12.0, -1.0), central: ("npc.lion.female.tail"), ), ), @@ -302,61 +302,61 @@ ), (Tiger, Male): ( upper: ( - offset: (-4.0, -5.5, -6.5), + offset: (-5.5, -5.0, -5.0), central: ("npc.tiger.male.head_upper"), ), lower: ( - offset: (-4.0, -5.5, -4.0), + offset: (-4.5, -2.0, -5.0), central: ("npc.tiger.male.head_lower"), ), jaw: ( - offset: (-2.0, -2.5, -1.0), + offset: (-2.5, -3.0, -1.0), central: ("npc.tiger.male.jaw"), ), torso_front: ( - offset: (-6.0, -6.0, -5.5), + offset: (-5.5, -6.5, -6.5), central: ("npc.tiger.male.torso_front"), ), torso_back: ( - offset: (-6.0, -6.0, -5.0), + offset: (-5.5, -6.5, -5.0), central: ("npc.tiger.male.torso_back"), ), ears: ( - offset: (-5.0, -0.5, -1.5), + offset: (-4.5, -1.0, -1.0), central: ("npc.tiger.male.ears"), ), tail: ( - offset: (-1.0, -3.0, -4.0), + offset: (-1.5, -12.0, -1.0), central: ("npc.tiger.male.tail"), ), ), (Tiger, Female): ( upper: ( - offset: (-4.0, -5.5, -6.5), + offset: (-5.5, -5.0, -5.0), central: ("npc.tiger.female.head_upper"), ), lower: ( - offset: (-4.0, -5.5, -4.0), + offset: (-4.5, -2.0, -5.0), central: ("npc.tiger.female.head_lower"), ), jaw: ( - offset: (-2.0, -2.5, -1.0), + offset: (-2.5, -3.0, -1.0), central: ("npc.tiger.female.jaw"), ), torso_front: ( - offset: (-6.0, -6.0, -5.5), + offset: (-5.5, -6.5, -6.5), central: ("npc.tiger.female.torso_front"), ), torso_back: ( - offset: (-6.0, -6.0, -5.0), + offset: (-5.5, -6.5, -5.0), central: ("npc.tiger.female.torso_back"), ), ears: ( - offset: (-5.0, -0.5, -1.5), + offset: (-4.5, -1.0, -1.0), central: ("npc.tiger.female.ears"), ), tail: ( - offset: (-1.0, -3.0, -4.0), + offset: (-1.5, -12.0, -1.0), central: ("npc.tiger.female.tail"), ), ), diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index cd7222028f..ec7737fcd0 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -341,35 +341,35 @@ ), (Tiger, Male): ( leg_fl: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.0, -1.5, -2.5), lateral: ("npc.tiger.male.leg_fl"), ), leg_fr: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.0, -1.5, -2.5), lateral: ("npc.tiger.male.leg_fr"), ), leg_bl: ( - offset: (-1.5, -4.0, -3.5), + offset: (-2.0, -2.0, -3.5), lateral: ("npc.tiger.male.leg_bl"), ), leg_br: ( - offset: (-1.5, -4.0, -3.5), + offset: (-2.0, -2.0, -3.5), lateral: ("npc.tiger.male.leg_br"), ), foot_fl: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.5, -1.5, -2.5), lateral: ("npc.tiger.male.foot_fl"), ), foot_fr: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.5, -1.5, -2.5), lateral: ("npc.tiger.male.foot_fr"), ), foot_bl: ( - offset: (-1.5, -4.0, -3.5), + offset: (-2.5, -2.0, -3.5), lateral: ("npc.tiger.male.foot_bl"), ), foot_br: ( - offset: (-1.5, -4.0, -3.5), + offset: (-2.5, -2.0, -3.5), lateral: ("npc.tiger.male.foot_br"), ), ), @@ -383,7 +383,7 @@ lateral: ("npc.tiger.female.leg_fr"), ), leg_bl: ( - offset: (-1.5, -4.0, -3.5), + offset: (-1.5, -2.0, -3.5), lateral: ("npc.tiger.female.leg_bl"), ), leg_br: ( @@ -399,7 +399,7 @@ lateral: ("npc.tiger.female.foot_fr"), ), foot_bl: ( - offset: (-1.5, -4.0, -3.5), + offset: (-1.5, -2.0, -3.5), lateral: ("npc.tiger.female.foot_bl"), ), foot_br: ( diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index 557677f87c..09611238b5 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -29,57 +29,57 @@ pub struct QuadrupedMediumSkeleton { } #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const HEAD_UPPER_X: f32 = 0.0; +const HEAD_UPPER_X: f32 = 7.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const HEAD_UPPER_Z: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const HEAD_LOWER_X: f32 = 0.0; +const HEAD_LOWER_X: f32 = 5.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const HEAD_LOWER_Z: f32 = 0.0; +const HEAD_LOWER_Z: f32 = 0.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const JAW_X: f32 = 0.0; +const JAW_X: f32 = 2.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const JAW_Z: f32 = 0.0; +const JAW_Z: f32 = -4.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TAIL_X: f32 = 0.0; +const TAIL_X: f32 = -7.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TAIL_Z: f32 = 0.0; +const TAIL_Z: f32 = -7.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TORSO_BACK_X: f32 = 0.0; +const TORSO_BACK_X: f32 = -12.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const TORSO_BACK_Z: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const TORSO_MID_X: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TORSO_MID_Z: f32 = 0.0; +const TORSO_MID_Z: f32 = 12.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const EARS_X: f32 = 0.0; +const EARS_X: f32 = -2.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const EARS_Z: f32 = 0.0; +const EARS_Z: f32 = 5.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_FRONT_X: f32 = 0.0; +const LEG_FRONT_X: f32 = 6.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_FRONT_Y: f32 = 0.0; +const LEG_FRONT_Y: f32 = 1.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_FRONT_Z: f32 = 0.0; +const LEG_FRONT_Z: f32 = 7.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_BACK_X: f32 = 0.0; +const LEG_BACK_X: f32 = 5.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_BACK_Y: f32 = 0.0; +const LEG_BACK_Y: f32 = -14.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_BACK_Z: f32 = 0.0; +const LEG_BACK_Z: f32 = 8.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_FRONT_X: f32 = 0.0; +const FEET_FRONT_X: f32 = 0.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const FEET_FRONT_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_FRONT_Z: f32 = 0.0; +const FEET_FRONT_Z: f32 = -4.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_BACK_X: f32 = 0.0; +const FEET_BACK_X: f32 = 0.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const FEET_BACK_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_BACK_Z: f32 = 0.0; +const FEET_BACK_Z: f32 = -5.0; impl QuadrupedMediumSkeleton { @@ -195,92 +195,92 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { use comp::quadruped_medium::Species::*; Self { head_upper: match (body.species, body.body_type) { - (Grolgar, _) => (25.0, 16.0), - (Saber, _) => (-11.0, -3.0), + (Grolgar, _) => (12.0, 16.0), + (Saber, _) => (14.0, 12.0), (Tuskram, _) => (9.0, 12.0), (Lion, _) => (12.5, 14.0), (Tarasque, _) => (12.0, 19.0), - (Tiger, _) => (12.0, 19.0), + (Tiger, _) => (*HEAD_UPPER_X, *HEAD_UPPER_Z), }, head_lower: match (body.species, body.body_type) { (Grolgar, _) => (-4.0, -7.0), - (Saber, _) => (1.0, 0.0), + (Saber, _) => (-6.0, 0.0), (Tuskram, _) => (-3.0, -1.0), (Lion, _) => (-5.0, -1.0), (Tarasque, _) => (-5.0, -6.0), - (Tiger, _) => (-5.0, -6.0), + (Tiger, _) => (*HEAD_LOWER_X, *HEAD_LOWER_Z), }, jaw: match (body.species, body.body_type) { (Grolgar, _) => (3.0, -5.0), - (Saber, _) => (18.0, -1.0), + (Saber, _) => (2.0, -1.0), (Tuskram, _) => (2.0, -2.0), (Lion, _) => (2.0, -3.0), (Tarasque, _) => (4.0, -9.0), - (Tiger, _) => (4.0, -9.0), + (Tiger, _) => (*JAW_X, *JAW_Z), }, tail: match (body.species, body.body_type) { (Grolgar, _) => (-6.0, -2.0), - (Saber, _) => (-6.0, 1.0), + (Saber, _) => (-4.0, -2.0), (Tuskram, _) => (-6.0, -2.0), (Lion, _) => (-8.0, -6.0), (Tarasque, _) => (-7.0, -2.0), - (Tiger, _) => (-7.0, -2.0), + (Tiger, _) => (*TAIL_X, *TAIL_Z), }, torso_front: match (body.species, body.body_type) { (Grolgar, _) => (-7.0, 10.5), - (Saber, _) => (14.0, 12.0), + (Saber, _) => (-7.0, 9.5), (Tuskram, _) => (-7.0, 9.0), (Lion, _) => (-9.0, 9.0), (Tarasque, _) => (-7.0, 8.0), - (Tiger, _) => (-7.0, 8.0), + (Tiger, _) => (*TORSO_MID_X, *TORSO_MID_Z), }, torso_back: match (body.species, body.body_type) { (Grolgar, _) => (4.0, 11.0), - (Saber, _) => (-19.5, 0.5), + (Saber, _) => (4.0, 9.0), (Tuskram, _) => (4.0, 9.0), (Lion, _) => (4.0, 10.0), (Tarasque, _) => (4.0, 9.0), - (Tiger, _) => (4.0, 9.0), + (Tiger, _) => (*TORSO_BACK_X, *TORSO_BACK_Z), }, ears: match (body.species, body.body_type) { (Grolgar, _) => (-1.0, 5.0), - (Saber, _) => (13.0, 7.0), + (Saber, _) => (-1.0, 6.0), (Tuskram, _) => (10.0, 2.0), (Lion, _) => (-2.0, 4.0), (Tarasque, _) => (1.5, -2.0), - (Tiger, _) => (1.5, -2.0), + (Tiger, _) => (*EARS_X, *EARS_Z), }, leg_f: match (body.species, body.body_type) { - (Grolgar, _) => (20.0, 6.0, 2.0), - (Saber, _) => (6.5, 8.0, 9.0), + (Grolgar, _) => (5.0, 6.0, 2.0), + (Saber, _) => (4.0, 6.0, 3.0), (Tuskram, _) => (4.0, 6.0, 4.5), (Lion, _) => (5.0, 6.0, 3.0), (Tarasque, _) => (4.0, 6.0, 3.0), - (Tiger, _) => (4.0, 6.0, 3.0), + (Tiger, _) => (*LEG_FRONT_X, *LEG_FRONT_Y, *LEG_FRONT_Z), }, leg_b: match (body.species, body.body_type) { - (Grolgar, _) => (20.0, -4.0, 3.0), - (Saber, _) => (7.0, -7.5, 9.5), + (Grolgar, _) => (5.0, -4.0, 3.0), + (Saber, _) => (4.0, -6.0, 3.5), (Tuskram, _) => (4.0, -8.0, 5.5), (Lion, _) => (5.5, -8.0, 3.5), (Tarasque, _) => (4.0, -8.0, 3.5), - (Tiger, _) => (4.0, -8.0, 3.5), + (Tiger, _) => (*LEG_BACK_X, *LEG_BACK_Y, *LEG_BACK_Z), }, feet_f: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 6.0, 2.0), - (Saber, _) => (1.0, 3.0, -1.0), + (Saber, _) => (4.0, 6.0, 3.0), (Tuskram, _) => (4.0, 6.0, 4.5), (Lion, _) => (5.0, 6.0, 3.0), (Tarasque, _) => (4.0, 6.0, 3.0), - (Tiger, _) => (4.0, 6.0, 3.0), + (Tiger, _) => (*FEET_FRONT_X, *FEET_FRONT_Y, *FEET_FRONT_Z), }, feet_b: match (body.species, body.body_type) { (Grolgar, _) => (5.0, -4.0, 3.0), - (Saber, _) => (1.0, 0.0, 0.0), + (Saber, _) => (4.0, -6.0, 3.5), (Tuskram, _) => (4.0, -8.0, 5.5), (Lion, _) => (5.5, -8.0, 3.5), (Tarasque, _) => (4.0, -8.0, 3.5), - (Tiger, _) => (4.0, -8.0, 3.5), + (Tiger, _) => (*FEET_BACK_X, *FEET_BACK_Y, *FEET_BACK_Z), }, height: match (body.species, body.body_type) { (Grolgar, _) => (1.2), From b7b209627c018216c1f5997ff700078bdab07f0a Mon Sep 17 00:00:00 2001 From: Snowram Date: Fri, 12 Jun 2020 03:56:43 +0200 Subject: [PATCH 12/48] Run anim progress --- .../quadruped_medium_lateral_manifest.ron | 32 ++--- voxygen/src/anim/src/quadruped_medium/mod.rs | 12 +- voxygen/src/anim/src/quadruped_medium/run.rs | 122 +++++++++++++----- 3 files changed, 115 insertions(+), 51 deletions(-) diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index ec7737fcd0..7a825e71af 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -341,69 +341,69 @@ ), (Tiger, Male): ( leg_fl: ( - offset: (-2.0, -1.5, -2.5), + offset: (-2.0, -1.5, -9.0), lateral: ("npc.tiger.male.leg_fl"), ), leg_fr: ( - offset: (-2.0, -1.5, -2.5), + offset: (-2.0, -1.5, -9.0), lateral: ("npc.tiger.male.leg_fr"), ), leg_bl: ( - offset: (-2.0, -2.0, -3.5), + offset: (-2.0, -2.0, -9.0), lateral: ("npc.tiger.male.leg_bl"), ), leg_br: ( - offset: (-2.0, -2.0, -3.5), + offset: (-2.0, -2.0, -9.0), lateral: ("npc.tiger.male.leg_br"), ), foot_fl: ( - offset: (-2.5, -1.5, -2.5), + offset: (-2.5, -1.5, -6.0), lateral: ("npc.tiger.male.foot_fl"), ), foot_fr: ( - offset: (-2.5, -1.5, -2.5), + offset: (-2.5, -1.5, -6.0), lateral: ("npc.tiger.male.foot_fr"), ), foot_bl: ( - offset: (-2.5, -2.0, -3.5), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.tiger.male.foot_bl"), ), foot_br: ( - offset: (-2.5, -2.0, -3.5), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.tiger.male.foot_br"), ), ), (Tiger, Female): ( leg_fl: ( - offset: (-1.5, -1.5, -2.5), + offset: (-1.5, -1.5, -9.0), lateral: ("npc.tiger.female.leg_fl"), ), leg_fr: ( - offset: (-1.5, -1.5, -2.5), + offset: (-1.5, -1.5, -9.0), lateral: ("npc.tiger.female.leg_fr"), ), leg_bl: ( - offset: (-1.5, -2.0, -3.5), + offset: (-1.5, -2.0, -9.0), lateral: ("npc.tiger.female.leg_bl"), ), leg_br: ( - offset: (-1.5, -2.0, -3.5), + offset: (-1.5, -2.0, -9.0), lateral: ("npc.tiger.female.leg_br"), ), foot_fl: ( - offset: (-1.5, -1.5, -2.5), + offset: (-1.5, -1.5, -6.0), lateral: ("npc.tiger.female.foot_fl"), ), foot_fr: ( - offset: (-1.5, -1.5, -2.5), + offset: (-1.5, -1.5, -6.0), lateral: ("npc.tiger.female.foot_fr"), ), foot_bl: ( - offset: (-1.5, -2.0, -3.5), + offset: (-1.5, -2.0, -6.0), lateral: ("npc.tiger.female.foot_bl"), ), foot_br: ( - offset: (-1.5, -2.0, -3.5), + offset: (-1.5, -2.0, -6.0), lateral: ("npc.tiger.female.foot_br"), ), ), diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index 09611238b5..6394ac9e42 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -51,7 +51,7 @@ const TORSO_BACK_Z: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const TORSO_MID_X: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TORSO_MID_Z: f32 = 12.5; +const TORSO_MID_Z: f32 = 13.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const EARS_X: f32 = -2.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] @@ -59,27 +59,27 @@ const EARS_Z: f32 = 5.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const LEG_FRONT_X: f32 = 6.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_FRONT_Y: f32 = 1.0; +const LEG_FRONT_Y: f32 = -0.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_FRONT_Z: f32 = 7.0; +const LEG_FRONT_Z: f32 = 14.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const LEG_BACK_X: f32 = 5.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const LEG_BACK_Y: f32 = -14.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_BACK_Z: f32 = 8.5; +const LEG_BACK_Z: f32 = 13.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const FEET_FRONT_X: f32 = 0.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const FEET_FRONT_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_FRONT_Z: f32 = -4.5; +const FEET_FRONT_Z: f32 = -8.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const FEET_BACK_X: f32 = 0.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const FEET_BACK_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_BACK_Z: f32 = -5.0; +const FEET_BACK_Z: f32 = -7.5; impl QuadrupedMediumSkeleton { diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index 2c814327b4..38a0a25ef1 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -49,14 +49,44 @@ impl Animation for RunAnimation { * 0.125, ); + let wave_ultra_slow = (anim_time as f32 * 1.0 + PI).sin(); + let wave_ultra_slow_cos = (anim_time as f32 * 1.0 + PI).cos(); + let wave_slow = (anim_time as f32 * 3.5 + PI).sin(); + let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos(); + + let look = Vec2::new( + ((global_time + anim_time) as f32 / 8.0) + .floor() + .mul(7331.0) + .sin() + * 0.5, + ((global_time + anim_time) as f32 / 8.0) + .floor() + .mul(1337.0) + .sin() + * 0.25, + ); + let tailmove = Vec2::new( + ((global_time + anim_time) as f32 / 2.0) + .floor() + .mul(7331.0) + .sin() + * 0.25, + ((global_time + anim_time) as f32 / 2.0) + .floor() + .mul(1337.0) + .sin() + * 0.125, + ); + next.head_upper.offset = Vec3::new( 0.0, skeleton_attr.head_upper.0 + horichest * 1.8, skeleton_attr.head_upper.1 + verthead * -1.8, - ) / 11.0; + ); next.head_upper.ori = Quaternion::rotation_x(wolf_look.y) * Quaternion::rotation_z(wolf_look.x); - next.head_upper.scale = Vec3::one() / 10.98; + next.head_upper.scale = Vec3::one(); next.head_lower.offset = Vec3::new( 0.0, @@ -74,14 +104,6 @@ impl Animation for RunAnimation { next.tail.ori = Quaternion::rotation_x(0.0); next.tail.scale = Vec3::one(); - next.torso_back.offset = Vec3::new( - 0.0, - skeleton_attr.torso_back.0 + horichest * 2.9, - skeleton_attr.torso_back.1 + vertchest * -3.6 + 1.0, - ) / 11.0; - next.torso_back.ori = Quaternion::rotation_y(horichest * -0.12); - next.torso_back.scale = Vec3::one() / 11.0; - next.torso_front.offset = Vec3::new( 0.0, skeleton_attr.torso_front.0 + horichest * 2.5, @@ -90,41 +112,83 @@ impl Animation for RunAnimation { next.torso_front.ori = Quaternion::rotation_y(horichest * -0.09); next.torso_front.scale = Vec3::one() * 0.98 / 11.0; + next.torso_back.offset = Vec3::new( + 0.0, + skeleton_attr.torso_back.0 + horichest * 2.9, + skeleton_attr.torso_back.1 + vertchest * -3.6 + 1.0, + ); + next.torso_back.ori = Quaternion::rotation_y(horichest * -0.12); + next.torso_back.scale = Vec3::one(); + next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); next.ears.ori = Quaternion::rotation_x(0.0); next.ears.scale = Vec3::one() * 1.02; + + + next.leg_fl.offset = Vec3::new( + -skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1, + skeleton_attr.leg_f.2, + ) / 11.0; + next.leg_fl.ori = Quaternion::rotation_x(horilf * 0.4); + next.leg_fl.scale = Vec3::one() / 11.0; + + next.leg_fr.offset = Vec3::new( + skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1, + skeleton_attr.leg_f.2, + ) / 11.0; + next.leg_fr.ori = Quaternion::rotation_x(horilf * 0.4); + next.leg_fr.scale = Vec3::one() / 11.0; + + next.leg_bl.offset = Vec3::new( + -skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1, + skeleton_attr.leg_b.2, + ) / 11.0; + next.leg_bl.ori = Quaternion::rotation_x(horirb * 0.55); + next.leg_bl.scale = Vec3::one() / 11.0; + + next.leg_br.offset = Vec3::new( + skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1 + horirb * 3.0, + skeleton_attr.leg_b.2, + ) / 11.0; + next.leg_br.ori = Quaternion::rotation_x(horirb * 0.55); + next.leg_br.scale = Vec3::one() / 11.0; + next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1 + horilf * 2.5, - skeleton_attr.feet_f.2 + vertlf * 5.0 * skeleton_attr.height - 0.5, - ) / 11.0; - next.foot_fl.ori = Quaternion::rotation_x(horilf * 0.4); - next.foot_fl.scale = Vec3::one() / 11.0; + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2, + ); + next.foot_fl.ori = Quaternion::rotation_x(horilf * 0.6); + next.foot_fl.scale = Vec3::one(); next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1 + horirfoffset * 2.5, - skeleton_attr.feet_f.2 + vertrfoffset * 5.0 * skeleton_attr.height - 0.5, - ) / 11.0; - next.foot_fr.ori = Quaternion::rotation_x(horirfoffset * 0.4); - next.foot_fr.scale = Vec3::one() / 11.0; + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2, + ); + next.foot_fr.ori = Quaternion::rotation_x(horilf * 0.6); + next.foot_fr.scale = Vec3::one(); next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1 + horilboffset * 3.0, - skeleton_attr.feet_b.2 + vertlboffset * 5.0 * skeleton_attr.height - 0.5, - ) / 11.0; - next.foot_bl.ori = Quaternion::rotation_x(horilboffset * 0.35); - next.foot_bl.scale = Vec3::one() / 11.0; + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2, + ); + next.foot_bl.ori = Quaternion::rotation_x(horirb * 0.35); + next.foot_bl.scale = Vec3::one(); next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1 + horirb * 3.0, - skeleton_attr.feet_b.2 + vertrb * 5.0 * skeleton_attr.height - 0.5, - ) / 11.0; + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2, + ); next.foot_br.ori = Quaternion::rotation_x(horirb * 0.35); - next.foot_br.scale = Vec3::one() / 11.0; + next.foot_br.scale = Vec3::one(); next } From 8c43c958a72a3b826c95351ccfa8baf6ce675760 Mon Sep 17 00:00:00 2001 From: jshipsey Date: Thu, 11 Jun 2020 21:59:51 -0400 Subject: [PATCH 13/48] tarasque work --- voxygen/src/anim/src/quadruped_medium/idle.rs | 24 ++++---- voxygen/src/anim/src/quadruped_medium/mod.rs | 57 ++++++++++--------- voxygen/src/anim/src/quadruped_medium/run.rs | 42 +++++++++----- 3 files changed, 71 insertions(+), 52 deletions(-) diff --git a/voxygen/src/anim/src/quadruped_medium/idle.rs b/voxygen/src/anim/src/quadruped_medium/idle.rs index 3d947fc1c5..5108fbc55a 100644 --- a/voxygen/src/anim/src/quadruped_medium/idle.rs +++ b/voxygen/src/anim/src/quadruped_medium/idle.rs @@ -75,7 +75,7 @@ impl Animation for IdleAnimation { skeleton_attr.jaw.1 + wave_slow * 0.2, ); next.jaw.ori = Quaternion::rotation_x(wave_slow * 0.05); - next.jaw.scale = Vec3::one() * 0.98; + next.jaw.scale = Vec3::one() * 1.02; next.tail.offset = Vec3::new( 0.0, @@ -92,9 +92,9 @@ impl Animation for IdleAnimation { 0.0, skeleton_attr.torso_front.0, skeleton_attr.torso_front.1 + wave_ultra_slow * 0.5, - )/11.0; + )/8.0; next.torso_front.ori = Quaternion::rotation_y(wave_slow * 0.015); - next.torso_front.scale = Vec3::one() / 10.98; + next.torso_front.scale = Vec3::one() / 8.0; next.torso_back.offset = Vec3::new( 0.0, @@ -108,39 +108,39 @@ impl Animation for IdleAnimation { next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); next.ears.ori = Quaternion::rotation_x(0.0 + wave_ultra_slow * 0.03); - next.ears.scale = Vec3::one() / 1.02; + next.ears.scale = Vec3::one() * 1.02; next.leg_fl.offset = Vec3::new( -skeleton_attr.leg_f.0, skeleton_attr.leg_f.1, skeleton_attr.leg_f.2, - ) / 11.0; + ) / 8.0; next.leg_fl.ori = Quaternion::rotation_x(0.0); - next.leg_fl.scale = Vec3::one() / 11.0; + next.leg_fl.scale = Vec3::one() / 8.0; next.leg_fr.offset = Vec3::new( skeleton_attr.leg_f.0, skeleton_attr.leg_f.1, skeleton_attr.leg_f.2, - ) / 11.0; + ) / 8.0; next.leg_fr.ori = Quaternion::rotation_x(0.0); - next.leg_fr.scale = Vec3::one() / 11.0; + next.leg_fr.scale = Vec3::one() / 8.0; next.leg_bl.offset = Vec3::new( -skeleton_attr.leg_b.0, skeleton_attr.leg_b.1, skeleton_attr.leg_b.2, - ) / 11.0; + ) / 8.0; next.leg_bl.ori = Quaternion::rotation_x(0.0); - next.leg_bl.scale = Vec3::one() / 11.0; + next.leg_bl.scale = Vec3::one() / 8.0; next.leg_br.offset = Vec3::new( skeleton_attr.leg_b.0, skeleton_attr.leg_b.1, skeleton_attr.leg_b.2, - ) / 11.0; + ) / 8.0; next.leg_br.ori = Quaternion::rotation_x(0.0); - next.leg_br.scale = Vec3::one() / 11.0; + next.leg_br.scale = Vec3::one() / 8.0; next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index 6394ac9e42..75b4b7f7b4 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -29,31 +29,31 @@ pub struct QuadrupedMediumSkeleton { } #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const HEAD_UPPER_X: f32 = 7.0; +const HEAD_UPPER_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const HEAD_UPPER_Z: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const HEAD_LOWER_X: f32 = 5.5; +const HEAD_LOWER_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const HEAD_LOWER_Z: f32 = 0.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const JAW_X: f32 = 2.0; +const JAW_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const JAW_Z: f32 = -4.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TAIL_X: f32 = -7.5; +const TAIL_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const TAIL_Z: f32 = -7.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TORSO_BACK_X: f32 = -12.5; +const TORSO_BACK_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const TORSO_BACK_Z: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TORSO_MID_X: f32 = 0.0; +const TORSO_FRONT_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TORSO_MID_Z: f32 = 13.0; +const TORSO_FRONT_Z: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const EARS_X: f32 = -2.5; +const EARS_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const EARS_Z: f32 = 5.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] @@ -199,16 +199,17 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (14.0, 12.0), (Tuskram, _) => (9.0, 12.0), (Lion, _) => (12.5, 14.0), - (Tarasque, _) => (12.0, 19.0), - (Tiger, _) => (*HEAD_UPPER_X, *HEAD_UPPER_Z), + (Tarasque, _) => (*HEAD_UPPER_Y+14.0, *HEAD_UPPER_Z+2.5), + (Tiger, _) => (12.0, 19.0), }, head_lower: match (body.species, body.body_type) { (Grolgar, _) => (-4.0, -7.0), (Saber, _) => (-6.0, 0.0), (Tuskram, _) => (-3.0, -1.0), (Lion, _) => (-5.0, -1.0), - (Tarasque, _) => (-5.0, -6.0), (Tiger, _) => (*HEAD_LOWER_X, *HEAD_LOWER_Z), + (Tarasque, _) => (*HEAD_LOWER_Y+0.5, *HEAD_LOWER_Z-3.0), + (Tiger, _) => (-5.0, -6.0), }, jaw: match (body.species, body.body_type) { (Grolgar, _) => (3.0, -5.0), @@ -216,55 +217,56 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (2.0, -2.0), (Lion, _) => (2.0, -3.0), (Tarasque, _) => (4.0, -9.0), - (Tiger, _) => (*JAW_X, *JAW_Z), + (Tarasque, _) => (*JAW_Y+0.5, *JAW_Z-11.0), + (Tiger, _) => (4.0, -9.0), }, tail: match (body.species, body.body_type) { (Grolgar, _) => (-6.0, -2.0), (Saber, _) => (-4.0, -2.0), (Tuskram, _) => (-6.0, -2.0), (Lion, _) => (-8.0, -6.0), - (Tarasque, _) => (-7.0, -2.0), - (Tiger, _) => (*TAIL_X, *TAIL_Z), + (Tarasque, _) => (*TAIL_Y-4.5, *TAIL_Z+0.0), + (Tiger, _) => (-7.0, -2.0), }, torso_front: match (body.species, body.body_type) { (Grolgar, _) => (-7.0, 10.5), (Saber, _) => (-7.0, 9.5), (Tuskram, _) => (-7.0, 9.0), (Lion, _) => (-9.0, 9.0), - (Tarasque, _) => (-7.0, 8.0), - (Tiger, _) => (*TORSO_MID_X, *TORSO_MID_Z), + (Tarasque, _) => (*TORSO_FRONT_Y+11.5, *TORSO_FRONT_Z+18.5), + (Tiger, _) => (-7.0, 8.0), }, torso_back: match (body.species, body.body_type) { (Grolgar, _) => (4.0, 11.0), (Saber, _) => (4.0, 9.0), (Tuskram, _) => (4.0, 9.0), (Lion, _) => (4.0, 10.0), - (Tarasque, _) => (4.0, 9.0), - (Tiger, _) => (*TORSO_BACK_X, *TORSO_BACK_Z), + (Tarasque, _) => (*TORSO_BACK_Y-20.0, *TORSO_BACK_Z-1.0), + (Tiger, _) => (4.0, 9.0), }, ears: match (body.species, body.body_type) { (Grolgar, _) => (-1.0, 5.0), (Saber, _) => (-1.0, 6.0), (Tuskram, _) => (10.0, 2.0), (Lion, _) => (-2.0, 4.0), - (Tarasque, _) => (1.5, -2.0), - (Tiger, _) => (*EARS_X, *EARS_Z), + (Tarasque, _) => (*EARS_Y-5.0, *EARS_Z+0.5), + (Tiger, _) => (1.5, -2.0), }, leg_f: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 6.0, 2.0), (Saber, _) => (4.0, 6.0, 3.0), (Tuskram, _) => (4.0, 6.0, 4.5), (Lion, _) => (5.0, 6.0, 3.0), - (Tarasque, _) => (4.0, 6.0, 3.0), - (Tiger, _) => (*LEG_FRONT_X, *LEG_FRONT_Y, *LEG_FRONT_Z), + (Tarasque, _) => (*LEG_FRONT_X+8.0, *LEG_FRONT_Y+4.5, *LEG_FRONT_Z+12.5), + (Tiger, _) => (4.0, 6.0, 3.0), }, leg_b: match (body.species, body.body_type) { (Grolgar, _) => (5.0, -4.0, 3.0), (Saber, _) => (4.0, -6.0, 3.5), (Tuskram, _) => (4.0, -8.0, 5.5), (Lion, _) => (5.5, -8.0, 3.5), - (Tarasque, _) => (4.0, -8.0, 3.5), - (Tiger, _) => (*LEG_BACK_X, *LEG_BACK_Y, *LEG_BACK_Z), + (Tarasque, _) => (*LEG_BACK_X+6.0, *LEG_BACK_Y-12.0, *LEG_BACK_Z+10.5), + (Tiger, _) => (4.0, -8.0, 3.5), }, feet_f: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 6.0, 2.0), @@ -272,15 +274,16 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (4.0, 6.0, 4.5), (Lion, _) => (5.0, 6.0, 3.0), (Tarasque, _) => (4.0, 6.0, 3.0), - (Tiger, _) => (*FEET_FRONT_X, *FEET_FRONT_Y, *FEET_FRONT_Z), + (Tarasque, _) => (*FEET_FRONT_X+2.0, *FEET_FRONT_Y+3.5, *FEET_FRONT_Z-3.5), + (Tiger, _) => (4.0, 6.0, 3.0), }, feet_b: match (body.species, body.body_type) { (Grolgar, _) => (5.0, -4.0, 3.0), (Saber, _) => (4.0, -6.0, 3.5), (Tuskram, _) => (4.0, -8.0, 5.5), (Lion, _) => (5.5, -8.0, 3.5), - (Tarasque, _) => (4.0, -8.0, 3.5), - (Tiger, _) => (*FEET_BACK_X, *FEET_BACK_Y, *FEET_BACK_Z), + (Tarasque, _) => (*FEET_BACK_X+1.5, *FEET_BACK_Y+1.5, *FEET_BACK_Z-2.5), + (Tiger, _) => (4.0, -8.0, 3.5), }, height: match (body.species, body.body_type) { (Grolgar, _) => (1.2), diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index 38a0a25ef1..0e0ce1b595 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -94,7 +94,7 @@ impl Animation for RunAnimation { skeleton_attr.head_lower.1 + vertchest * -0.8 + verthead * 1.8, ); next.head_lower.ori = Quaternion::rotation_z(0.0); - next.head_lower.scale = Vec3::one() * 0.98; + next.head_lower.scale = Vec3::one() * 1.02; next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); next.jaw.ori = Quaternion::rotation_x(0.0); @@ -108,10 +108,10 @@ impl Animation for RunAnimation { 0.0, skeleton_attr.torso_front.0 + horichest * 2.5, skeleton_attr.torso_front.1 + vertchest * -3.2 + 1.0, - ) / 11.0; + ) / 8.0; next.torso_front.ori = Quaternion::rotation_y(horichest * -0.09); - next.torso_front.scale = Vec3::one() * 0.98 / 11.0; - + next.torso_front.scale = Vec3::one() / 8.0; + next.torso_back.offset = Vec3::new( 0.0, skeleton_attr.torso_back.0 + horichest * 2.9, @@ -124,29 +124,33 @@ impl Animation for RunAnimation { next.ears.ori = Quaternion::rotation_x(0.0); next.ears.scale = Vec3::one() * 1.02; - - next.leg_fl.offset = Vec3::new( -skeleton_attr.leg_f.0, skeleton_attr.leg_f.1, skeleton_attr.leg_f.2, - ) / 11.0; + ) / 8.0; next.leg_fl.ori = Quaternion::rotation_x(horilf * 0.4); - next.leg_fl.scale = Vec3::one() / 11.0; + next.leg_fl.scale = Vec3::one()/8.0; + next.leg_fr.offset = Vec3::new( skeleton_attr.leg_f.0, skeleton_attr.leg_f.1, skeleton_attr.leg_f.2, - ) / 11.0; + ) / 8.0; next.leg_fr.ori = Quaternion::rotation_x(horilf * 0.4); - next.leg_fr.scale = Vec3::one() / 11.0; + next.leg_fr.scale = Vec3::one(); + + ) / 8.0; + next.leg_fr.ori = Quaternion::rotation_x(0.0); + next.leg_fr.scale = Vec3::one() / 8.0; next.leg_bl.offset = Vec3::new( -skeleton_attr.leg_b.0, skeleton_attr.leg_b.1, skeleton_attr.leg_b.2, - ) / 11.0; + + ) / 8.0; next.leg_bl.ori = Quaternion::rotation_x(horirb * 0.55); next.leg_bl.scale = Vec3::one() / 11.0; @@ -154,9 +158,20 @@ impl Animation for RunAnimation { skeleton_attr.leg_b.0, skeleton_attr.leg_b.1 + horirb * 3.0, skeleton_attr.leg_b.2, - ) / 11.0; + ) / 8.0; next.leg_br.ori = Quaternion::rotation_x(horirb * 0.55); - next.leg_br.scale = Vec3::one() / 11.0; + next.leg_br.scale = Vec3::one() / 8.0; + + next.leg_bl.ori = Quaternion::rotation_x(0.0); + next.leg_bl.scale = Vec3::one() / 8.0; + + next.leg_br.offset = Vec3::new( + skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1, + skeleton_attr.leg_b.2, + ) / 8.0; + next.leg_br.ori = Quaternion::rotation_x(0.0); + next.leg_br.scale = Vec3::one() / 8.0; next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, @@ -164,6 +179,7 @@ impl Animation for RunAnimation { skeleton_attr.feet_f.2, ); next.foot_fl.ori = Quaternion::rotation_x(horilf * 0.6); + next.foot_fl.ori = Quaternion::rotation_x(0.0); next.foot_fl.scale = Vec3::one(); next.foot_fr.offset = Vec3::new( From 08368da07bccfba4b801ced7fb74121d64d7c8ec Mon Sep 17 00:00:00 2001 From: jshipsey Date: Thu, 11 Jun 2020 22:00:18 -0400 Subject: [PATCH 14/48] manifest, vox files --- .../voxel/npc/lion/female/Lion (3)-10.vox | Bin 0 -> 1836 bytes .../voxel/npc/lion/female/Lion (3)-6.vox | Bin 0 -> 1740 bytes .../voxel/npc/lion/female/Lion (3)-7.vox | Bin 0 -> 1836 bytes .../voxel/npc/lion/female/Lion (3)-8.vox | Bin 0 -> 1144 bytes .../voxel/npc/lion/female/Lion (3)-9.vox | Bin 0 -> 1740 bytes .../voxel/npc/lion/female/head_lower.vox | Bin 7732 -> 254 bytes .../voxel/npc/lion/female/head_upper.vox | Bin 2644 -> 254 bytes assets/voxygen/voxel/npc/lion/female/jaw.vox | Bin 1208 -> 254 bytes assets/voxygen/voxel/npc/lion/female/tail.vox | Bin 1364 -> 254 bytes .../voxel/npc/lion/female/torso_back.vox | Bin 4484 -> 254 bytes .../voxel/npc/lion/female/torso_front.vox | Bin 5896 -> 254 bytes .../voxel/npc/lion/male/Lion (3)-10.vox | Bin 0 -> 1836 bytes .../voxel/npc/lion/male/Lion (3)-6.vox | Bin 0 -> 1740 bytes .../voxel/npc/lion/male/Lion (3)-7.vox | Bin 0 -> 1836 bytes .../voxel/npc/lion/male/Lion (3)-8.vox | Bin 0 -> 1144 bytes .../voxel/npc/lion/male/Lion (3)-9.vox | Bin 0 -> 1740 bytes .../voxel/npc/lion/male/head_lower.vox | Bin 7732 -> 254 bytes .../voxel/npc/lion/male/head_upper.vox | Bin 2644 -> 254 bytes assets/voxygen/voxel/npc/lion/male/jaw.vox | Bin 1208 -> 254 bytes assets/voxygen/voxel/npc/lion/male/tail.vox | Bin 1364 -> 254 bytes .../voxel/npc/lion/male/torso_back.vox | Bin 4484 -> 254 bytes .../voxel/npc/lion/male/torso_front.vox | Bin 5896 -> 254 bytes .../voxel/npc/saber/female/Saber-10.vox | Bin 0 -> 1836 bytes .../voxel/npc/saber/female/Saber-7.vox | Bin 0 -> 2048 bytes .../voxel/npc/saber/female/Saber-8.vox | Bin 0 -> 2048 bytes .../voxel/npc/saber/female/Saber-9.vox | Bin 0 -> 1836 bytes .../voxygen/voxel/npc/saber/female/ears.vox | Bin 1160 -> 1212 bytes .../voxel/npc/saber/female/foot_bl.vox | Bin 1244 -> 1452 bytes .../voxel/npc/saber/female/foot_br.vox | Bin 1244 -> 1452 bytes .../voxel/npc/saber/female/foot_fl.vox | Bin 1172 -> 1528 bytes .../voxel/npc/saber/female/foot_fr.vox | Bin 1172 -> 1528 bytes .../voxel/npc/saber/female/head_lower.vox | Bin 2408 -> 2456 bytes .../voxel/npc/saber/female/head_upper.vox | Bin 2624 -> 2836 bytes assets/voxygen/voxel/npc/saber/female/jaw.vox | Bin 1208 -> 1248 bytes .../voxygen/voxel/npc/saber/female/leg_bl.vox | Bin 0 -> 1480 bytes .../voxygen/voxel/npc/saber/female/leg_br.vox | Bin 0 -> 1480 bytes .../voxygen/voxel/npc/saber/female/leg_fl.vox | Bin 0 -> 1616 bytes .../voxygen/voxel/npc/saber/female/leg_fr.vox | Bin 0 -> 1616 bytes .../voxygen/voxel/npc/saber/female/tail.vox | Bin 1192 -> 1304 bytes .../voxel/npc/saber/female/torso_back.vox | Bin 4512 -> 4352 bytes .../voxel/npc/saber/female/torso_front.vox | Bin 3968 -> 5956 bytes .../voxygen/voxel/npc/saber/male/Saber-10.vox | Bin 0 -> 1836 bytes .../voxygen/voxel/npc/saber/male/Saber-7.vox | Bin 0 -> 2048 bytes .../voxygen/voxel/npc/saber/male/Saber-8.vox | Bin 0 -> 2048 bytes .../voxygen/voxel/npc/saber/male/Saber-9.vox | Bin 0 -> 1836 bytes assets/voxygen/voxel/npc/saber/male/ears.vox | Bin 1160 -> 1212 bytes .../voxygen/voxel/npc/saber/male/foot_bl.vox | Bin 1244 -> 1452 bytes .../voxygen/voxel/npc/saber/male/foot_br.vox | Bin 1244 -> 1452 bytes .../voxygen/voxel/npc/saber/male/foot_fl.vox | Bin 1172 -> 1528 bytes .../voxygen/voxel/npc/saber/male/foot_fr.vox | Bin 1172 -> 1528 bytes .../voxel/npc/saber/male/head_lower.vox | Bin 2408 -> 2456 bytes .../voxel/npc/saber/male/head_upper.vox | Bin 2624 -> 2836 bytes assets/voxygen/voxel/npc/saber/male/jaw.vox | Bin 1208 -> 1248 bytes .../voxygen/voxel/npc/saber/male/leg_bl.vox | Bin 0 -> 1480 bytes .../voxygen/voxel/npc/saber/male/leg_br.vox | Bin 0 -> 1480 bytes .../voxygen/voxel/npc/saber/male/leg_fl.vox | Bin 0 -> 1616 bytes .../voxygen/voxel/npc/saber/male/leg_fr.vox | Bin 0 -> 1616 bytes assets/voxygen/voxel/npc/saber/male/tail.vox | Bin 1192 -> 1304 bytes .../voxel/npc/saber/male/torso_back.vox | Bin 4512 -> 4352 bytes .../voxel/npc/saber/male/torso_front.vox | Bin 3968 -> 5956 bytes .../voxel/npc/tarasque/female/ears.vox | Bin 1160 -> 1176 bytes .../voxel/npc/tarasque/female/foot_bl.vox | Bin 1300 -> 1508 bytes .../voxel/npc/tarasque/female/foot_br.vox | Bin 1300 -> 1508 bytes .../voxel/npc/tarasque/female/foot_fl.vox | Bin 1344 -> 2180 bytes .../voxel/npc/tarasque/female/foot_fr.vox | Bin 1344 -> 2180 bytes .../voxel/npc/tarasque/female/head_lower.vox | Bin 1796 -> 2408 bytes .../voxel/npc/tarasque/female/head_upper.vox | Bin 3024 -> 5056 bytes .../voxygen/voxel/npc/tarasque/female/jaw.vox | Bin 1208 -> 1760 bytes .../voxel/npc/tarasque/female/leg_bl.vox | Bin 0 -> 1620 bytes .../voxel/npc/tarasque/female/leg_br.vox | Bin 0 -> 1620 bytes .../voxel/npc/tarasque/female/leg_fl.vox | Bin 0 -> 2068 bytes .../voxel/npc/tarasque/female/leg_fr.vox | Bin 0 -> 2068 bytes .../voxel/npc/tarasque/female/tail.vox | Bin 1208 -> 3316 bytes .../voxel/npc/tarasque/female/torso_back.vox | Bin 3800 -> 5280 bytes .../voxel/npc/tarasque/female/torso_front.vox | Bin 4744 -> 10088 bytes .../voxygen/voxel/npc/tarasque/male/ears.vox | Bin 1160 -> 1176 bytes .../voxel/npc/tarasque/male/foot_bl.vox | Bin 1300 -> 1508 bytes .../voxel/npc/tarasque/male/foot_br.vox | Bin 1300 -> 1508 bytes .../voxel/npc/tarasque/male/foot_fl.vox | Bin 1344 -> 2180 bytes .../voxel/npc/tarasque/male/foot_fr.vox | Bin 1344 -> 2180 bytes .../voxel/npc/tarasque/male/head_lower.vox | Bin 1796 -> 2408 bytes .../voxel/npc/tarasque/male/head_upper.vox | Bin 3024 -> 5056 bytes .../voxygen/voxel/npc/tarasque/male/jaw.vox | Bin 1208 -> 1760 bytes .../voxel/npc/tarasque/male/leg_bl.vox | Bin 0 -> 1620 bytes .../voxel/npc/tarasque/male/leg_br.vox | Bin 0 -> 1620 bytes .../voxel/npc/tarasque/male/leg_fl.vox | Bin 0 -> 2068 bytes .../voxel/npc/tarasque/male/leg_fr.vox | Bin 0 -> 2068 bytes .../voxygen/voxel/npc/tarasque/male/tail.vox | Bin 1208 -> 3316 bytes .../voxel/npc/tarasque/male/torso_back.vox | Bin 3800 -> 5280 bytes .../voxel/npc/tarasque/male/torso_front.vox | Bin 4744 -> 10088 bytes .../quadruped_medium_central_manifest.ron | 50 ++++++++-------- .../quadruped_medium_lateral_manifest.ron | 56 +++++++++--------- 92 files changed, 53 insertions(+), 53 deletions(-) create mode 100644 assets/voxygen/voxel/npc/lion/female/Lion (3)-10.vox create mode 100644 assets/voxygen/voxel/npc/lion/female/Lion (3)-6.vox create mode 100644 assets/voxygen/voxel/npc/lion/female/Lion (3)-7.vox create mode 100644 assets/voxygen/voxel/npc/lion/female/Lion (3)-8.vox create mode 100644 assets/voxygen/voxel/npc/lion/female/Lion (3)-9.vox create mode 100644 assets/voxygen/voxel/npc/lion/male/Lion (3)-10.vox create mode 100644 assets/voxygen/voxel/npc/lion/male/Lion (3)-6.vox create mode 100644 assets/voxygen/voxel/npc/lion/male/Lion (3)-7.vox create mode 100644 assets/voxygen/voxel/npc/lion/male/Lion (3)-8.vox create mode 100644 assets/voxygen/voxel/npc/lion/male/Lion (3)-9.vox create mode 100644 assets/voxygen/voxel/npc/saber/female/Saber-10.vox create mode 100644 assets/voxygen/voxel/npc/saber/female/Saber-7.vox create mode 100644 assets/voxygen/voxel/npc/saber/female/Saber-8.vox create mode 100644 assets/voxygen/voxel/npc/saber/female/Saber-9.vox create mode 100644 assets/voxygen/voxel/npc/saber/female/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/saber/female/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/saber/female/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/saber/female/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/saber/male/Saber-10.vox create mode 100644 assets/voxygen/voxel/npc/saber/male/Saber-7.vox create mode 100644 assets/voxygen/voxel/npc/saber/male/Saber-8.vox create mode 100644 assets/voxygen/voxel/npc/saber/male/Saber-9.vox create mode 100644 assets/voxygen/voxel/npc/saber/male/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/saber/male/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/saber/male/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/saber/male/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/tarasque/female/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/tarasque/female/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/tarasque/female/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/tarasque/female/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/tarasque/male/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/tarasque/male/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/tarasque/male/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/tarasque/male/leg_fr.vox diff --git a/assets/voxygen/voxel/npc/lion/female/Lion (3)-10.vox b/assets/voxygen/voxel/npc/lion/female/Lion (3)-10.vox new file mode 100644 index 0000000000000000000000000000000000000000..5e4892342e59444d8b318aeb3ee5943a44f72421 GIT binary patch literal 1836 zcma)5ZD^Kd6h8OIv-f+>+~z)PTk~u040X=7+0{RJM`y!-j|mA~Ga`5b;OUujofa|E{iQ{uHen4(C4K*E#pOTi0!> z7!VPEg}ataib5hSZl*aN2s{pnD#;~n+MIEJ*SzrDAZcyWT8nEP8KmQ&%8@}s(%Mk3 zU9FX?jdqol-P$PE1jM^BIVq!aXd?w&<)qXk54lD;zS7~87RS@t@r`!US~;#FS4L9G zsI<~TALSdRePhJaM$+0!N?YY=hdz$DLRn}tyj$9>71mas(Zbq{HH_7ovT=>JDXkQV zn3W+9kx5985{DA6G>ScNm~_7StrUG+PBPMb=Wg1h>0>j$~rOD zi!paBt(~x|9oBWCoI%XjHcr1d-y!ZB;xQ(|+|iUVQOYr5h;bgw$2>;!Zs@1uDP!Zr z8}ZbnUxNAsv5`BBb7Cpu#5seAYuT$ck+e|}#xpnjvras1S=*>6?ZmF)q!{lB`X=}W z3Eyh^u%2Z-YvZ0Jersdwk1;mN{)k1zeMP;p0Y!bK_zv6wBN5*SeS$d&v8pihN75?b z!kpAumEgYc4TwQAmm*F@EJ_o*%JHm3nLpucVpEDX&R8kVPZ&d+mf+pEbCx^F{oJtn z%@y3G$?t5G-7gwl?DRGun9^~G}3 z+?k8%TLrU@GWURB=}m#W!}?ueNPjNmdOmvQPQ~!T0z6z+3Zz~^zX--iKaqYV^&b*k z`CKqQEVz4(a+Bafv*7y;f=7D=XLiJJA|vSCTY%%crr^YTMcCdT=v*Z@*GjC5OVHL_ ziLUik7}&E2*^TuW*tZhnpS+9TF1BIb%t9<(R1WWrD(q>kM|(=py-hImf#BvDL0wr1 z-0E4_S~njZtCpa(x)5!POL1!TY>aGQfaaw&SohWvWZqtZ_8n`{bs&S@kJ~Xad>j+E z&ZF=BN@TZ`A{L9GXxdaPD9uAnvJ!Rk=iv24N%Vd+16RJP#LsuD@#y|Me8HL{7X|lz z5a5qx=xVFNx$aurzPu8D{?dYulX*DxZ9c9&D8?g{Bg1(dVxPUcIhRhs%A`EE|NZGX z&-7nbGzHa_1*k61MPo7-8ygbXSo8n;udS`cXZ1r^P;&u|J;zYoU5q>LP19X#?C%{!y_f!ow71~IJ+Oq8~d>PjpN{+A&Bj=!7=0BL z&&)sY3vz94xrdH@z~QsQ=>BE|r?20_;Exk{?O+d<9~*-Anq lm>pFNKU#^>1r{flgqiC-Kq{{k3_T&Vy6 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/lion/female/Lion (3)-6.vox b/assets/voxygen/voxel/npc/lion/female/Lion (3)-6.vox new file mode 100644 index 0000000000000000000000000000000000000000..72ecaf16e49c1bdd38ce1c6c497b0498dc7b1503 GIT binary patch literal 1740 zcma)5YiO2b7`~swcRo0Cn>*OH=4syybYJSQz2U`WQ1rc+c5fJLqr4-84^K=_#^rk{fOw_)%DGvqV>SV{XF;Kx)0Cuw65D! zF(4xT3TG{a+zg7eIGN^n?!Xlw!o(C})8>qGQgg#KMA)EQ5JH9If+4gqo;KRiMmgGQ zM+IcJw#qR%@=_$r3 zO*^>^xsA?A`Z2#z5&E$n@)-IVMP06D6?L^qI9d}b;cN10@@k2CS|YwSaZl^Gs~M+F zjQf~xOo(-aU9CgR8KO^!Tp`AXTxCM+E8N(Wg(&{tNc zRX}-)_oIxVj`wFJt*j!yP^Z$`8sAvnp%qsL#Mc4k>mY4GN%Ntkg?bYd-!jhfY-l%z zI-}T|rp&>3hB>rmtk#rtr6Ky7o$B6M*DVR z^xQ$zj~+l?Qz43XRG{L>JfsGfK$-)P_9$fN708`J`vo(41+QNdgxdv)ZoxF3 z3oi>6`!S^V=OJ@+8a^9)6|1s>_5FffR|SV3GIo6l%GxS1D_f1aktURORQH}+xospBZxJ{=FfpN+9hG5RVh zo|}KpFUPgH|y7`~s6^M0LoI&+)*ux-t+y))D~+h)_6>C$uF_h`CY`uc&IqGOmcV(1u# zuCyiQT4OrMmW7NEO=TNNKWvDIAR^zZ6A^QUMXxOndG`@ZhyIW6lp zl@EwWu)$jtnwzP(@_W5Lz4B zwWqc6w9%fjvRfPFnGlqXiDZn9q_v4KhES0}g}RESjdIdT$I@CHUu(xV+R5lio8v1Z zX=RkJG*7Jpqcm$uM$@jXc-ksoJK`xqsEZNLIFhl9u~q^@zhSP?Ds7DB3_38{P`80r zoKn`Nn;1dDtuOt@2tac_KkHj+^$5^Pxg#tOcr z$*;b?9$j5sc-$vgbM6*q<^6-d^71e~9w7WKd81gHUWA?78qn2|#%Pa+(Y~D+J#!Fs zqX&@NSb(A($cU7Twq!A_Ud8jy5jH(M|sJ=Z9 zGqwt5A7$+U!Ll0yd7J$^W03wSkZXD9nKuo?i}LYcc?saZgnki>5kC>X68(n+mp>Pb z4-4*GrQRqw-z4~cgW%y_!RZ|?PGkkWd-HL8*HoN%w-DRw1s$sdXInVyl47(rRiJZy zB?k5^M%TtV4D4Hp@sHoZZx>oIe^vpOEiOa)^-An%sY9DD=-wt6dS7tkw4k=M7+%$E zY^_~@_Ek&KQdNM~B_%kudJaamFGSO_YOH&6DY9>^K--SB=sb``??-JI89t7Qo9EE? zUIn_gl)!ae6i%Opg(bPDPF0|G!Cbt$IECI1XX5f#75Mp16&~K3k1yDB`R~uneTsi+ z;Z#&r|06|C*W_d{#Gvh1KWL&~pq$-9@AY8`) literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/lion/female/Lion (3)-8.vox b/assets/voxygen/voxel/npc/lion/female/Lion (3)-8.vox new file mode 100644 index 0000000000000000000000000000000000000000..ef0bbc750bc674abd5ec4f64c22cbf40d1402914 GIT binary patch literal 1144 zcma)*UrgIo6vxlcKcQO3I%x}SXQ>6YwwSR3LJ>BLP`4jYCPQ%RHo_*$Xd2wo7_v3Z z%vNRMf~&QGnK%&*A!ZqFq$L_3kSt_bvMdW(jEN!39*l3s2V;Euc)R(wFg?jPC+B?6 zIrp4%@9p2S&owC`;a0s{DH(c7q*srGo+}tio>6$>U+mi-(d!FNB?VqnX`*T2BBc#V z8$|RX(exrs>o91dYnrBOqIIc2U4@7D?s~0NRQ-Yk0s)fAB=uT5@lO23-w_m9U~?pXG-{J@detGLQhsWGB2FEqjG!fIHPVV zlRg@9K^$>2?g=}-*>e0hwo-afs63-;PYNwdg1o8DPZ*GFF|uH0eCsCWwp+Nn!vP&H zk`-Z5;U|S(6|yIV`A>!AIpO9tWe0_sknr7JVeOc3VbI9Ah>$*JVeH68&b?j6KtLF6 z7cTazUhC~dLv9j19wv|0lI&|_a=4A<58vXq*(lW&R$6My>3r40(f&qa9YX4mF#WEu zbU|ov+R=TL9BkM|yuFEjpOt96gNa>Lb>|=H+VaT!&a#d8 z+!lQ0#WZ`1=?iS2&;S4DudA!$lg4Rk{4+FILuH6er zDuE?#VR7o=9iFzUx8rp3UR9Qz%^8Nyk5M*I%I$BfSd7@nxLl9yzYtfbwZHck@nJYM zHAm{}93L-S=d&MIdHKXRJI_wj`Na~wS62xJgWOlE6oUeP@#Ly-@B4@S-Ba)Dzj*Zp WAN;fRbb(xtEBGJBJt+M6eEA2EXCFrZ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/lion/female/Lion (3)-9.vox b/assets/voxygen/voxel/npc/lion/female/Lion (3)-9.vox new file mode 100644 index 0000000000000000000000000000000000000000..ea3978b0a0e8dc59427818195494d681321af39b GIT binary patch literal 1740 zcma)5TWC~Q6y4`BlbN|QG1esJVUskzGO?&JHi?beSWWfbxmT;Hsg4iSDjI@SLJ1lM zi>6gmQPVU;h1xVN5{hV5l3?kF4I(0lNRUz}B7T(qm41}cztuJIQ?xy>*yrrM&)RG6 zdv5ExO%($o60C67(#XxQNQ;|pj%N>CAtFLdAvSGJyC*d_TtkEn%LO4+j$AN=HpbUR zyV@vMTkWcl?ABJfCX4Le2xHc_Cgxim^Nl4;%rz$JSxE#|;>>kCYaHL&1QF*x*Rwh| zWfiSqj)|wNW=th$8CTh}<67nLZuWk{Q#u|f6?YYVO2tw}626gmV8mg)+?3I|fgzvL zj;}Q1DnSi|PI$(U!#JK%(ZG=3kjH3;`SeZZ#@Iu`)jE;VDiLUjds-aYn6D+uSe&sq zV{y*HNom$FCWm?=f!4G-hyEOLW;B~guD^zijX7f zYaK}`9buh_Z@AawRg7s9C3jYHly#!?GgncQj(M8%)>-`~%y^i&VQLI}T7`Kh>?srW zmDRoqDeAE)WehpBr>q3ZDxQTO3cbsqi&=Lr5*XG zJY9n7OXaA!I~UWp3T7Q8_kdvOErGnp`dtx7e=g)kK6>U(#qh!cJX%%?c(0*f1Y^X{ z#BW6ZA;Hxz1mnYkd)Ikx5)3s9Zf+1f-YYn}!@-HPpm%Qpj_;a+6CV^|dxM~JmEe3U zwJt6}TXQA4)>mO*&mv?t)?;AbN{pX;AHQE}!@QY=Sh}bjskf@Ir?npKo}hc1VDKZs zt+RrIs&Kx$7I&_!#Gk*mpyN~?PJfq=>ko_Z80AQF9*5Xx?{3beQ?N2A zFYJH6Kj*pr%ZjF;y0QS(<+*4~=3-+*0vl`ofB&_$wfMY#5DRLC(AaYf#ofiY`;Fky z7QyAJDkPIh?3>vMf6Wa@cNYpe3NUu=**82=!nadahL30WV|imAcAq+qqV3c1;QQGa zOBbWBqT;#vXY;aLn_KRqV;^w%+%USo9l@C!w{hX83A}Nz2g{EQBK6fRv|O7&Q&SV3 ra+DGw@Hfna;K>iq^gZGG`mZ>D!pZ;aMK&9JQ7r3!S!|N{<@e=Zg9=pm literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/lion/female/head_lower.vox b/assets/voxygen/voxel/npc/lion/female/head_lower.vox index c8e412dc9622a910c58aa8275990bda4c2e38d0a..07762236fbc03903198d5a872805d2c3e8e13879 100644 GIT binary patch literal 254 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 literal 2644 zcma)7Ta1>~6+LHP&iRmvV;Sxi=m5$LjmV{33fiGS_4_Yaq);7|pw$Q=RGA1-GO^WZ zvD8p0C1B_Or<68?G)AffNSi)TVu&#@#t_pqX^8Qm>08r>rs>=2I`C+){gah__T}4` zwa=N^_Ta;FkB1Q2>*`GuVepm^w$wu#zfctZCJ;1Tmk&QORQIG}4Pi8f5M%0w=!A7W zR$U{M@Q}MkC{fX0(VrPxNda}CF1eee>PGV)IHeJp=j8sp@+?Ja@oTLf>u6G2Wwq0m zv}%i1EvG%xo*82kWS>>CPbcU;C#<02Icw80eOdQuIrDodby+{KpTK^!lD(GVUdwTB zme`3=I$p)Gz&?FK9IK*sJjXFFG0N{Wc9dtOttw~67~#wlgLW!Sbqv;#NFVc975BOX z&KRg$tx4LR2}-3j%9P@8E_El!urnsGrdrhy+Lbot_gO)Dx?r5>G53@+V^SBUR>_m#x2@k33k~<z*N`yNQ&K5aa>{d#hs6=U3_Tl51 zdx+)EaE3@&nTNc4kd6{g&W%vQgL5vgjZz6GFGeVlqj9%IDy4GXGM8{qLhfQmh{*lt zlF#E zGexT?B0%Md_USuNg9@muke=G8+j!cPTrk& zB8fJXb7`_hbiO@v_Lf_TxjcK@Mca|zsg$0b@09n5bGk|$8I#z9CjPCF#64-#3pd7n zkry%Y&U{)p;H=6%jCq8;D!Ep2t%ZMbAVyy{^37dJ;-1+jb1IR9@!XqnCSg4z-x|3G z^;+1UMQd4^&8k`%qnUS@TxTWc+1KgK(#yI*3p2;)Th1~u)IAH zjXgaWdU-N_a`8*pFcPr&SiqBK177@y-)^3X*}M8Me`EkF&JSYNa4-4}&&0s#Iau=E zU6}S*!2Fk)`*^_GO9A2Atbd?FI5r94TrUpYbvw@7GX)>tI}2!h8OK7vMdHuI--u%` z1f2bOz~wUm@4rKRFyPe2fZsn9aP66Z*LO_Bt3v@to|%G!Pu_-CzdIeTZv@ZdLBW9VD!uzSZQ z9C&sJM}D*$=g%C()py5n^m~06d2|*gPMnD8lW)i3Sv^?N--i`<--)j+?Z=TH-hs2f z>cd~&AHcN_7op3V=T8TG@W%lB<6a!twGeNNF2j|#*5jXl-GbrQdT{u+y?E!N8MuZy z7$P4paLyx7k(d1e>-)n^=ik%1^E30$o_-q!`leuD&LphqpMAw*VK1X5i@Dxu4;`#Fbo+Z217gJAoHZoWbaC&f}-& z-o-EebQNEH?hx*KZ;L@Z3 diff --git a/assets/voxygen/voxel/npc/lion/female/jaw.vox b/assets/voxygen/voxel/npc/lion/female/jaw.vox index 8c4041c52cbead2a3f9418faf768a5c5d1bcafb5..cbae9b79744247ab9ab10878ac9f74bf79c24afa 100644 GIT binary patch literal 254 zcmYk!O-ckY5QgD>PLTuXbgC-9g9?Iz*GMWAJ1{dnn6?p5Z$oc+PaCMGgZ_AbeN#)XddwM}KgYzBGe?(lO2NBWD2TOW ztTVo}D&SF4<;*P^GAz*s<`@8oBZ8>s!~Z6eGY+A#&jsE7vwMYOst~A!h(v_Uwjc+r n7#$gMU|kaor8V&C<)E+m)|-s=L2t{CZv7%djs7bd&_wkIgh@!~ literal 1208 zcma)*Urf_i6vt0XS;&}JM_c}`umakaMJzBV16>&~EeH-7Osf)f8X*l+h#}fEF4_&p z4BB-BTr$VlM#y4hN?NjI4~!UMOpGzaEK3$*d|39j>|t5<_SyOAqrvSYpPc)>=l(nA z-rKWhU-6`fv^NGj)X6s%k*;8<;V-byu&QUL_l{7^+8nP&RcfQdmdOpMa zem~J@lt&3+*VPqDZ2$0=&BpR_JBD2krs!zf#^FQtL`T|4jRi?14wITXNp0!`)_{Y& zzG8~cmgAYOLt4_2@bk#bi^z%tYrBv$C=|wpS8fOyVPQi|$X4yRCRDd)(mH4*bS|5Z z7hj?|Ds)Z=N9Khy_jPV(KF$FbrBN?6$p8hzHeBQRcxQ|7-QGgZL80`Vu01IZ=vk}t8EA14>2x!BtdeMVEtCCCEPwP4zt0X( zUgDskvWT|V-5l$wCEO~+4hhqzgr& zA@g6l_~nk5wR`1!u6rhDg}Xlr{IQ+LfSW6^DpsyH@#n8y3}3V|{;iFh_w!hzh>+If zwB{K@{)4+WKb5~TcOzbx9dA(<^`0!c{Tt}^{r~){s;c;;cA5&`4E1B@ z$&2N2`zztW0pXh4jmP7mzhs2nyB3gG1pBa^#i=KEcs5_(j?>BeWfSbEPjK|&D7n2k z-21MK#ZVrJ;^L?3Z;Uh6+TV4T;eI$XHAn30B$pO$@!3zSyn1qs9p|TM`(lZ%8><8Y u0Ul{7B}3tF(pH6sKRh|#Lw#TW71uBL_@Axkjo^AQqyJg4#|uAuzWfVxAt?_4 diff --git a/assets/voxygen/voxel/npc/lion/female/tail.vox b/assets/voxygen/voxel/npc/lion/female/tail.vox index 3f2fd028392d6a2cfe6932f09e0ce84e350d12b2..a96e2c9c34e3773631257f85dae464555aadd21a 100644 GIT binary patch literal 254 zcmYk!L2AP=5QX8rPN4&|u_S9`DYSt?3%$n7Xr>k9_e;?``tk+j6z@ zy59P67{1#2eAa$=biUJpm&?#^!o%jx%g%m&yuF*HRoiC_kd9>vlTI-w^ikNcimRZG zR6`aYhy^$ZCIn85gybe)J!it0sa7e(q{g|Tp1L+=1{{R30 literal 1364 zcma)*T}WJ45Xa}7{kra#o4S6irfOGB+_l8`Q9r6l*Q!nK-o2*AYLiVOCQXR4*aRt( z$dZz5Yifhd){3UEYHblIAvTd+Y3YNNAR!P!kWdOmLLN%rN*_w;+rP8sF_`wikGV5* zX6DS?b9xRPDV`!Cy+!R{K>-s{ml|%jrxjiXCX=x;M~;S7m*5Xxt&AX0KIW0kQ zm{oGHw3~FY8C9|xbW)^F88S!~5t0_6NwWw_MTR8XB6)~bZC2V@XHEz47uSQ&xe1Z z2vzrXBlkF=^fKq3A~dfO=pC*$vCTyN1T<^2tYM2l|n~l*^nYj919(o%H!)=5cJ$%;MdUBb0VLnuU zDUR3e!BATxdi*&Us4c+wfifg}E79Iug+p&OBK&p>B7GegITuF!;|P+Aqu97RgNgUO zh#o6|&1OSh)(%t_xKQQuqHfPFyk6}?{G**%`pS!6?)$O%umTCLnOq<|_>q7=_F-h8 z95-S$SijYZKY#7Q&@~svzjfozBM&xFgfP$J0{0m|&2t$hwEAe<{s%+5p6kCbFB5)m zHvC0SH2Iw9Zg8Nx>i_p&Q&WS_>*r8eHIJsTEAYfTxc4>T@iD^9@^bimKJ=FiBXn>X z6dOVIP&QVkpZ&v2`FwW@3-MvuB=$E=;PkaoRYp)BDo7j&?o3 zP(N^SdJ(a2lK5=-F24L}1FxMQ!~QFC&}LWBb$bJWKmbp9l%z2D8-@+SlOLX)?+M?p a|MK%I+Kf4Bu^ey+}W7JN@8+=IhY!Ov7r`X{WzFKhA1yRrjeth{p`oyP8X|IhRBPVRVSu zq~L@^JVMP`LShINZALLtgC)qOSOmlBZTJ7P#*saR2%H>I^|nfkR0=^9uqHZ-c0?1l o9$<=ri{oOQ6y9pUsNQ$_T5e6aFE4tXf3>s=ch%dIwfD)ZKSeo9K>z>% literal 4484 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 diff --git a/assets/voxygen/voxel/npc/lion/female/torso_front.vox b/assets/voxygen/voxel/npc/lion/female/torso_front.vox index 3a8021c75395410a490569fb44d0400a02140555..18b1cd57acc13447b75b981bfcf9a2842395d498 100644 GIT binary patch literal 254 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 diff --git a/assets/voxygen/voxel/npc/lion/male/Lion (3)-10.vox b/assets/voxygen/voxel/npc/lion/male/Lion (3)-10.vox new file mode 100644 index 0000000000000000000000000000000000000000..5e4892342e59444d8b318aeb3ee5943a44f72421 GIT binary patch literal 1836 zcma)5ZD^Kd6h8OIv-f+>+~z)PTk~u040X=7+0{RJM`y!-j|mA~Ga`5b;OUujofa|E{iQ{uHen4(C4K*E#pOTi0!> z7!VPEg}ataib5hSZl*aN2s{pnD#;~n+MIEJ*SzrDAZcyWT8nEP8KmQ&%8@}s(%Mk3 zU9FX?jdqol-P$PE1jM^BIVq!aXd?w&<)qXk54lD;zS7~87RS@t@r`!US~;#FS4L9G zsI<~TALSdRePhJaM$+0!N?YY=hdz$DLRn}tyj$9>71mas(Zbq{HH_7ovT=>JDXkQV zn3W+9kx5985{DA6G>ScNm~_7StrUG+PBPMb=Wg1h>0>j$~rOD zi!paBt(~x|9oBWCoI%XjHcr1d-y!ZB;xQ(|+|iUVQOYr5h;bgw$2>;!Zs@1uDP!Zr z8}ZbnUxNAsv5`BBb7Cpu#5seAYuT$ck+e|}#xpnjvras1S=*>6?ZmF)q!{lB`X=}W z3Eyh^u%2Z-YvZ0Jersdwk1;mN{)k1zeMP;p0Y!bK_zv6wBN5*SeS$d&v8pihN75?b z!kpAumEgYc4TwQAmm*F@EJ_o*%JHm3nLpucVpEDX&R8kVPZ&d+mf+pEbCx^F{oJtn z%@y3G$?t5G-7gwl?DRGun9^~G}3 z+?k8%TLrU@GWURB=}m#W!}?ueNPjNmdOmvQPQ~!T0z6z+3Zz~^zX--iKaqYV^&b*k z`CKqQEVz4(a+Bafv*7y;f=7D=XLiJJA|vSCTY%%crr^YTMcCdT=v*Z@*GjC5OVHL_ ziLUik7}&E2*^TuW*tZhnpS+9TF1BIb%t9<(R1WWrD(q>kM|(=py-hImf#BvDL0wr1 z-0E4_S~njZtCpa(x)5!POL1!TY>aGQfaaw&SohWvWZqtZ_8n`{bs&S@kJ~Xad>j+E z&ZF=BN@TZ`A{L9GXxdaPD9uAnvJ!Rk=iv24N%Vd+16RJP#LsuD@#y|Me8HL{7X|lz z5a5qx=xVFNx$aurzPu8D{?dYulX*DxZ9c9&D8?g{Bg1(dVxPUcIhRhs%A`EE|NZGX z&-7nbGzHa_1*k61MPo7-8ygbXSo8n;udS`cXZ1r^P;&u|J;zYoU5q>LP19X#?C%{!y_f!ow71~IJ+Oq8~d>PjpN{+A&Bj=!7=0BL z&&)sY3vz94xrdH@z~QsQ=>BE|r?20_;Exk{?O+d<9~*-Anq lm>pFNKU#^>1r{flgqiC-Kq{{k3_T&Vy6 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/lion/male/Lion (3)-6.vox b/assets/voxygen/voxel/npc/lion/male/Lion (3)-6.vox new file mode 100644 index 0000000000000000000000000000000000000000..72ecaf16e49c1bdd38ce1c6c497b0498dc7b1503 GIT binary patch literal 1740 zcma)5YiO2b7`~swcRo0Cn>*OH=4syybYJSQz2U`WQ1rc+c5fJLqr4-84^K=_#^rk{fOw_)%DGvqV>SV{XF;Kx)0Cuw65D! zF(4xT3TG{a+zg7eIGN^n?!Xlw!o(C})8>qGQgg#KMA)EQ5JH9If+4gqo;KRiMmgGQ zM+IcJw#qR%@=_$r3 zO*^>^xsA?A`Z2#z5&E$n@)-IVMP06D6?L^qI9d}b;cN10@@k2CS|YwSaZl^Gs~M+F zjQf~xOo(-aU9CgR8KO^!Tp`AXTxCM+E8N(Wg(&{tNc zRX}-)_oIxVj`wFJt*j!yP^Z$`8sAvnp%qsL#Mc4k>mY4GN%Ntkg?bYd-!jhfY-l%z zI-}T|rp&>3hB>rmtk#rtr6Ky7o$B6M*DVR z^xQ$zj~+l?Qz43XRG{L>JfsGfK$-)P_9$fN708`J`vo(41+QNdgxdv)ZoxF3 z3oi>6`!S^V=OJ@+8a^9)6|1s>_5FffR|SV3GIo6l%GxS1D_f1aktURORQH}+xospBZxJ{=FfpN+9hG5RVh zo|}KpFUPgH|y7`~s6^M0LoI&+)*ux-t+y))D~+h)_6>C$uF_h`CY`uc&IqGOmcV(1u# zuCyiQT4OrMmW7NEO=TNNKWvDIAR^zZ6A^QUMXxOndG`@ZhyIW6lp zl@EwWu)$jtnwzP(@_W5Lz4B zwWqc6w9%fjvRfPFnGlqXiDZn9q_v4KhES0}g}RESjdIdT$I@CHUu(xV+R5lio8v1Z zX=RkJG*7Jpqcm$uM$@jXc-ksoJK`xqsEZNLIFhl9u~q^@zhSP?Ds7DB3_38{P`80r zoKn`Nn;1dDtuOt@2tac_KkHj+^$5^Pxg#tOcr z$*;b?9$j5sc-$vgbM6*q<^6-d^71e~9w7WKd81gHUWA?78qn2|#%Pa+(Y~D+J#!Fs zqX&@NSb(A($cU7Twq!A_Ud8jy5jH(M|sJ=Z9 zGqwt5A7$+U!Ll0yd7J$^W03wSkZXD9nKuo?i}LYcc?saZgnki>5kC>X68(n+mp>Pb z4-4*GrQRqw-z4~cgW%y_!RZ|?PGkkWd-HL8*HoN%w-DRw1s$sdXInVyl47(rRiJZy zB?k5^M%TtV4D4Hp@sHoZZx>oIe^vpOEiOa)^-An%sY9DD=-wt6dS7tkw4k=M7+%$E zY^_~@_Ek&KQdNM~B_%kudJaamFGSO_YOH&6DY9>^K--SB=sb``??-JI89t7Qo9EE? zUIn_gl)!ae6i%Opg(bPDPF0|G!Cbt$IECI1XX5f#75Mp16&~K3k1yDB`R~uneTsi+ z;Z#&r|06|C*W_d{#Gvh1KWL&~pq$-9@AY8`) literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/lion/male/Lion (3)-8.vox b/assets/voxygen/voxel/npc/lion/male/Lion (3)-8.vox new file mode 100644 index 0000000000000000000000000000000000000000..ef0bbc750bc674abd5ec4f64c22cbf40d1402914 GIT binary patch literal 1144 zcma)*UrgIo6vxlcKcQO3I%x}SXQ>6YwwSR3LJ>BLP`4jYCPQ%RHo_*$Xd2wo7_v3Z z%vNRMf~&QGnK%&*A!ZqFq$L_3kSt_bvMdW(jEN!39*l3s2V;Euc)R(wFg?jPC+B?6 zIrp4%@9p2S&owC`;a0s{DH(c7q*srGo+}tio>6$>U+mi-(d!FNB?VqnX`*T2BBc#V z8$|RX(exrs>o91dYnrBOqIIc2U4@7D?s~0NRQ-Yk0s)fAB=uT5@lO23-w_m9U~?pXG-{J@detGLQhsWGB2FEqjG!fIHPVV zlRg@9K^$>2?g=}-*>e0hwo-afs63-;PYNwdg1o8DPZ*GFF|uH0eCsCWwp+Nn!vP&H zk`-Z5;U|S(6|yIV`A>!AIpO9tWe0_sknr7JVeOc3VbI9Ah>$*JVeH68&b?j6KtLF6 z7cTazUhC~dLv9j19wv|0lI&|_a=4A<58vXq*(lW&R$6My>3r40(f&qa9YX4mF#WEu zbU|ov+R=TL9BkM|yuFEjpOt96gNa>Lb>|=H+VaT!&a#d8 z+!lQ0#WZ`1=?iS2&;S4DudA!$lg4Rk{4+FILuH6er zDuE?#VR7o=9iFzUx8rp3UR9Qz%^8Nyk5M*I%I$BfSd7@nxLl9yzYtfbwZHck@nJYM zHAm{}93L-S=d&MIdHKXRJI_wj`Na~wS62xJgWOlE6oUeP@#Ly-@B4@S-Ba)Dzj*Zp WAN;fRbb(xtEBGJBJt+M6eEA2EXCFrZ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/lion/male/Lion (3)-9.vox b/assets/voxygen/voxel/npc/lion/male/Lion (3)-9.vox new file mode 100644 index 0000000000000000000000000000000000000000..ea3978b0a0e8dc59427818195494d681321af39b GIT binary patch literal 1740 zcma)5TWC~Q6y4`BlbN|QG1esJVUskzGO?&JHi?beSWWfbxmT;Hsg4iSDjI@SLJ1lM zi>6gmQPVU;h1xVN5{hV5l3?kF4I(0lNRUz}B7T(qm41}cztuJIQ?xy>*yrrM&)RG6 zdv5ExO%($o60C67(#XxQNQ;|pj%N>CAtFLdAvSGJyC*d_TtkEn%LO4+j$AN=HpbUR zyV@vMTkWcl?ABJfCX4Le2xHc_Cgxim^Nl4;%rz$JSxE#|;>>kCYaHL&1QF*x*Rwh| zWfiSqj)|wNW=th$8CTh}<67nLZuWk{Q#u|f6?YYVO2tw}626gmV8mg)+?3I|fgzvL zj;}Q1DnSi|PI$(U!#JK%(ZG=3kjH3;`SeZZ#@Iu`)jE;VDiLUjds-aYn6D+uSe&sq zV{y*HNom$FCWm?=f!4G-hyEOLW;B~guD^zijX7f zYaK}`9buh_Z@AawRg7s9C3jYHly#!?GgncQj(M8%)>-`~%y^i&VQLI}T7`Kh>?srW zmDRoqDeAE)WehpBr>q3ZDxQTO3cbsqi&=Lr5*XG zJY9n7OXaA!I~UWp3T7Q8_kdvOErGnp`dtx7e=g)kK6>U(#qh!cJX%%?c(0*f1Y^X{ z#BW6ZA;Hxz1mnYkd)Ikx5)3s9Zf+1f-YYn}!@-HPpm%Qpj_;a+6CV^|dxM~JmEe3U zwJt6}TXQA4)>mO*&mv?t)?;AbN{pX;AHQE}!@QY=Sh}bjskf@Ir?npKo}hc1VDKZs zt+RrIs&Kx$7I&_!#Gk*mpyN~?PJfq=>ko_Z80AQF9*5Xx?{3beQ?N2A zFYJH6Kj*pr%ZjF;y0QS(<+*4~=3-+*0vl`ofB&_$wfMY#5DRLC(AaYf#ofiY`;Fky z7QyAJDkPIh?3>vMf6Wa@cNYpe3NUu=**82=!nadahL30WV|imAcAq+qqV3c1;QQGa zOBbWBqT;#vXY;aLn_KRqV;^w%+%USo9l@C!w{hX83A}Nz2g{EQBK6fRv|O7&Q&SV3 ra+DGw@Hfna;K>iq^gZGG`mZ>D!pZ;aMK&9JQ7r3!S!|N{<@e=Zg9=pm literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/lion/male/head_lower.vox b/assets/voxygen/voxel/npc/lion/male/head_lower.vox index c8e412dc9622a910c58aa8275990bda4c2e38d0a..07762236fbc03903198d5a872805d2c3e8e13879 100644 GIT binary patch literal 254 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 literal 2644 zcma)7Ta1>~6+LHP&iRmvV;Sxi=m5$LjmV{33fiGS_4_Yaq);7|pw$Q=RGA1-GO^WZ zvD8p0C1B_Or<68?G)AffNSi)TVu&#@#t_pqX^8Qm>08r>rs>=2I`C+){gah__T}4` zwa=N^_Ta;FkB1Q2>*`GuVepm^w$wu#zfctZCJ;1Tmk&QORQIG}4Pi8f5M%0w=!A7W zR$U{M@Q}MkC{fX0(VrPxNda}CF1eee>PGV)IHeJp=j8sp@+?Ja@oTLf>u6G2Wwq0m zv}%i1EvG%xo*82kWS>>CPbcU;C#<02Icw80eOdQuIrDodby+{KpTK^!lD(GVUdwTB zme`3=I$p)Gz&?FK9IK*sJjXFFG0N{Wc9dtOttw~67~#wlgLW!Sbqv;#NFVc975BOX z&KRg$tx4LR2}-3j%9P@8E_El!urnsGrdrhy+Lbot_gO)Dx?r5>G53@+V^SBUR>_m#x2@k33k~<z*N`yNQ&K5aa>{d#hs6=U3_Tl51 zdx+)EaE3@&nTNc4kd6{g&W%vQgL5vgjZz6GFGeVlqj9%IDy4GXGM8{qLhfQmh{*lt zlF#E zGexT?B0%Md_USuNg9@muke=G8+j!cPTrk& zB8fJXb7`_hbiO@v_Lf_TxjcK@Mca|zsg$0b@09n5bGk|$8I#z9CjPCF#64-#3pd7n zkry%Y&U{)p;H=6%jCq8;D!Ep2t%ZMbAVyy{^37dJ;-1+jb1IR9@!XqnCSg4z-x|3G z^;+1UMQd4^&8k`%qnUS@TxTWc+1KgK(#yI*3p2;)Th1~u)IAH zjXgaWdU-N_a`8*pFcPr&SiqBK177@y-)^3X*}M8Me`EkF&JSYNa4-4}&&0s#Iau=E zU6}S*!2Fk)`*^_GO9A2Atbd?FI5r94TrUpYbvw@7GX)>tI}2!h8OK7vMdHuI--u%` z1f2bOz~wUm@4rKRFyPe2fZsn9aP66Z*LO_Bt3v@to|%G!Pu_-CzdIeTZv@ZdLBW9VD!uzSZQ z9C&sJM}D*$=g%C()py5n^m~06d2|*gPMnD8lW)i3Sv^?N--i`<--)j+?Z=TH-hs2f z>cd~&AHcN_7op3V=T8TG@W%lB<6a!twGeNNF2j|#*5jXl-GbrQdT{u+y?E!N8MuZy z7$P4paLyx7k(d1e>-)n^=ik%1^E30$o_-q!`leuD&LphqpMAw*VK1X5i@Dxu4;`#Fbo+Z217gJAoHZoWbaC&f}-& z-o-EebQNEH?hx*KZ;L@Z3 diff --git a/assets/voxygen/voxel/npc/lion/male/jaw.vox b/assets/voxygen/voxel/npc/lion/male/jaw.vox index 8c4041c52cbead2a3f9418faf768a5c5d1bcafb5..cbae9b79744247ab9ab10878ac9f74bf79c24afa 100644 GIT binary patch literal 254 zcmYk!O-ckY5QgD>PLTuXbgC-9g9?Iz*GMWAJ1{dnn6?p5Z$oc+PaCMGgZ_AbeN#)XddwM}KgYzBGe?(lO2NBWD2TOW ztTVo}D&SF4<;*P^GAz*s<`@8oBZ8>s!~Z6eGY+A#&jsE7vwMYOst~A!h(v_Uwjc+r n7#$gMU|kaor8V&C<)E+m)|-s=L2t{CZv7%djs7bd&_wkIgh@!~ literal 1208 zcma)*Urf_i6vt0XS;&}JM_c}`umakaMJzBV16>&~EeH-7Osf)f8X*l+h#}fEF4_&p z4BB-BTr$VlM#y4hN?NjI4~!UMOpGzaEK3$*d|39j>|t5<_SyOAqrvSYpPc)>=l(nA z-rKWhU-6`fv^NGj)X6s%k*;8<;V-byu&QUL_l{7^+8nP&RcfQdmdOpMa zem~J@lt&3+*VPqDZ2$0=&BpR_JBD2krs!zf#^FQtL`T|4jRi?14wITXNp0!`)_{Y& zzG8~cmgAYOLt4_2@bk#bi^z%tYrBv$C=|wpS8fOyVPQi|$X4yRCRDd)(mH4*bS|5Z z7hj?|Ds)Z=N9Khy_jPV(KF$FbrBN?6$p8hzHeBQRcxQ|7-QGgZL80`Vu01IZ=vk}t8EA14>2x!BtdeMVEtCCCEPwP4zt0X( zUgDskvWT|V-5l$wCEO~+4hhqzgr& zA@g6l_~nk5wR`1!u6rhDg}Xlr{IQ+LfSW6^DpsyH@#n8y3}3V|{;iFh_w!hzh>+If zwB{K@{)4+WKb5~TcOzbx9dA(<^`0!c{Tt}^{r~){s;c;;cA5&`4E1B@ z$&2N2`zztW0pXh4jmP7mzhs2nyB3gG1pBa^#i=KEcs5_(j?>BeWfSbEPjK|&D7n2k z-21MK#ZVrJ;^L?3Z;Uh6+TV4T;eI$XHAn30B$pO$@!3zSyn1qs9p|TM`(lZ%8><8Y u0Ul{7B}3tF(pH6sKRh|#Lw#TW71uBL_@Axkjo^AQqyJg4#|uAuzWfVxAt?_4 diff --git a/assets/voxygen/voxel/npc/lion/male/tail.vox b/assets/voxygen/voxel/npc/lion/male/tail.vox index 3f2fd028392d6a2cfe6932f09e0ce84e350d12b2..a96e2c9c34e3773631257f85dae464555aadd21a 100644 GIT binary patch literal 254 zcmYk!L2AP=5QX8rPN4&|u_S9`DYSt?3%$n7Xr>k9_e;?``tk+j6z@ zy59P67{1#2eAa$=biUJpm&?#^!o%jx%g%m&yuF*HRoiC_kd9>vlTI-w^ikNcimRZG zR6`aYhy^$ZCIn85gybe)J!it0sa7e(q{g|Tp1L+=1{{R30 literal 1364 zcma)*T}WJ45Xa}7{kra#o4S6irfOGB+_l8`Q9r6l*Q!nK-o2*AYLiVOCQXR4*aRt( z$dZz5Yifhd){3UEYHblIAvTd+Y3YNNAR!P!kWdOmLLN%rN*_w;+rP8sF_`wikGV5* zX6DS?b9xRPDV`!Cy+!R{K>-s{ml|%jrxjiXCX=x;M~;S7m*5Xxt&AX0KIW0kQ zm{oGHw3~FY8C9|xbW)^F88S!~5t0_6NwWw_MTR8XB6)~bZC2V@XHEz47uSQ&xe1Z z2vzrXBlkF=^fKq3A~dfO=pC*$vCTyN1T<^2tYM2l|n~l*^nYj919(o%H!)=5cJ$%;MdUBb0VLnuU zDUR3e!BATxdi*&Us4c+wfifg}E79Iug+p&OBK&p>B7GegITuF!;|P+Aqu97RgNgUO zh#o6|&1OSh)(%t_xKQQuqHfPFyk6}?{G**%`pS!6?)$O%umTCLnOq<|_>q7=_F-h8 z95-S$SijYZKY#7Q&@~svzjfozBM&xFgfP$J0{0m|&2t$hwEAe<{s%+5p6kCbFB5)m zHvC0SH2Iw9Zg8Nx>i_p&Q&WS_>*r8eHIJsTEAYfTxc4>T@iD^9@^bimKJ=FiBXn>X z6dOVIP&QVkpZ&v2`FwW@3-MvuB=$E=;PkaoRYp)BDo7j&?o3 zP(N^SdJ(a2lK5=-F24L}1FxMQ!~QFC&}LWBb$bJWKmbp9l%z2D8-@+SlOLX)?+M?p a|MK%I+Kf4Bu^ey+}W7JN@8+=IhY!Ov7r`X{WzFKhA1yRrjeth{p`oyP8X|IhRBPVRVSu zq~L@^JVMP`LShINZALLtgC)qOSOmlBZTJ7P#*saR2%H>I^|nfkR0=^9uqHZ-c0?1l o9$<=ri{oOQ6y9pUsNQ$_T5e6aFE4tXf3>s=ch%dIwfD)ZKSeo9K>z>% literal 4484 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 diff --git a/assets/voxygen/voxel/npc/lion/male/torso_front.vox b/assets/voxygen/voxel/npc/lion/male/torso_front.vox index 3a8021c75395410a490569fb44d0400a02140555..18b1cd57acc13447b75b981bfcf9a2842395d498 100644 GIT binary patch literal 254 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 diff --git a/assets/voxygen/voxel/npc/saber/female/Saber-10.vox b/assets/voxygen/voxel/npc/saber/female/Saber-10.vox new file mode 100644 index 0000000000000000000000000000000000000000..f8f2e5a1a468959aba6eccbf22f5c382f7def914 GIT binary patch literal 1836 zcma)5ZD^Hc7`~s6_w0PGm2>W^Z5^HM9K$td+s^wAo9WOwXUyf&`GJO#hhfU-3>^nU zSK<1vMp20w@3k>nB^H+8lAqN(t^Mi?s@MOa5h891r}GHM8| zZAxp&Xl*F9tF_8#qY0HUvk0V&4y3dpbimUpkWo6|YL$~R%5jwrX0$l;IgE2MS~;Gg zREGVSuUK2Lrcs*p*vAKXXv;nheT2{!o*U|x($Y5c8|E56mwb%&VO*mvIWU*?v@+yD z{whcwnte=4aUP`%`x(yb_w{YYh#^l)PRz4m&KdHw38l29v_V&!V9F4R(3(=`xZ38h zcMf-x<0@YoN*nZyrY;fB_>3+!jUmXVFE+~0sg*8=-cgH;_?uWIMrk}e~ z{)~KQRyeD2CpOBfGf-kw^rEbDlgvEAZ=&9q2ih zhvVn-api6iW>AhU?qhcTo!m>WU`68J=ijq-;otLrvA=D0{<6ZSkc`hovOE`FA{QGP zV%Sjg|L3o*t;NauF;v%_g*R{*Mg2v%`I+Fm&4LS6RY)Wf*gd}&Ygb=|^!H(I&s^yb^h1=%g&X<*#>MFueMa4h%@5lMIHg()a&u-wr=sEO% zK7kLeev8xJ+`~)z2C(e#7+OEQj*iRs(A3m~2Lectz#lO81oy8!%aW`31|Pa b$K{#LTky#CosaY<$tRsXp7Xf=gjo3t5Rh6u literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/saber/female/Saber-7.vox b/assets/voxygen/voxel/npc/saber/female/Saber-7.vox new file mode 100644 index 0000000000000000000000000000000000000000..a03f0701372a305de8e4de78172dcdad50f99f81 GIT binary patch literal 2048 zcma)5ZD^Hc7`~s6_uct+<(%%LZB1u8$8gQrwsYQLGaWkTjJaGoKhRL}FiaVpq2pla zN?c*CH8!P>X)#1hQ`tsQU?W5X5s`=>MEnu`iHL~k-_`XVF@%hI;NpJnkLP~w`?{Z} z>xGRKqaxD2ymcLg{G2D!+1lL_@f9wI2obZ0jhnh#zcSo#{X&?48dE-kLMda0(ohPa z9LX5M`nnFLlmwGXLMc%pPg|4HR(sY_8SUt#wJKv>#=6v9ozd2^@|lFA{hkDw9>T5vKGc!#%cCsA}PiEiuskF--M`#*k3fM8LM?P zrB#Fo6SS)!ebiZ(=KY#^H17~6$T|Yt=Vc5b4)3JYn!4Y+4-@p16C{Uzyx$M+QmkDE zl3E2a$_7$K2bqJC&^Evv^wDoDr47=~SrFO;X=kioD{I!|SZns+#Mpz&{4w&%S!kDM zT+dkY;OLAJN^4n@q4aff$a;+58-3d0Y{j23>(-Y1F~*0sp3UWBPG!lnOU~JkU$@F5 zXL%Xr=jXdn))1CwT=v3vV+fnHd6E$~!rYE0Zj?TUTp8Bu!{I&FGlbTR*EXfK@2B16 zJudll!ztx*UM}b2kPmXH`M$IhCTMp8?33@#s^^#Uj@)W&Y(zGj z#l2y{>JP7Ce!-vky`TUyGwtx#`PM0{YkLMewtC3+wP9+o6;s1IFg3Oh4O4rO-&}~I z?G>mvxCrs_B&5ZG^n@U%ABS8mM1H$q?jAwukl^Wyf54@O7wSBV|3RNWH&Tm zboUC(9DNBtO{B4Cej%Ecl%wsrYV7K2K+hV%z*fQdYl17s1@&dcXiY4@mioo$U718z zq7dn&B{;UK3X|Jv(9%?k_nS&_yqA#yiQc#KaqMgXF5N1^9h9S+eB}DyNnZK{E8_p&|DLrA|L*_O{q4E_%jV5OqH+!r z#r#nEPiB%Tt@T;DPQtAM76`A7y*^%)|Rf#L8dWQ*ZzP literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/saber/female/Saber-8.vox b/assets/voxygen/voxel/npc/saber/female/Saber-8.vox new file mode 100644 index 0000000000000000000000000000000000000000..ab7db834c19a97d2a77b57e350326138e2259a3a GIT binary patch literal 2048 zcma)5ZD^Hc7`~s6_uct+<(%%LZB1u8$8gQrwsYQLGaWkTjJaGoKhRL}FiaVpq2pla zN?c*CH8!P>X)#1hQ`tsQU?W5X5s`=>MEnu`iHL~k-_`XVF@%hI;o^SpkLP~w>w2E2 z>xGRKqaxD2ymcLo{G2D!+1lL_@g05+5h7+08#i^ger5Q>?-xP^)R^%R6j~Wmw2Iae z#*vI7#P@YDWh9t15=vPW^0YN6ZM7$k%4kO?#j1?Btaa(TI-{*kS<6}zN*af-K7yWA z(WF%o#=@Sp;iPq*&azIElZm7Z`y2K*et#39A0oeKQnOa; zXiBRH5hfT{LFVXlF3tTl`)KZAogn83@INo32ejwDly{k3E&8&Mq}4AAfF@ zN6qpw#_!L2VXPr6*SO@udSeKilsw5;H^SbIXWb}s4z)6z*N4M>tfvUAS+8wMYd_Dp z%Y9tx>4sCr<$1Y07l(RKOU?VGoiM?;6Ch9CJC|o7E;V(@C6AVnKt>De6?^)9wafD& zM@4NozakIi^I=XK-eap$hWA<<{~ajmMN41#KJ$jY_Q5xz9p!1>e?=I=GHw|+TxVEs zSZ{OO`A@3|!?$Ac*pF7xTGra!`=RyU6MOLSa({BL)X}jS&2^f!>sLL$ocY|>*w~0{ zHj8`1g4G{h#r%Rl@q0l5W@g&qf9G4Lu&(VH?AYod+t-Gv!B$KS@4(d9J~T}2MSgQ3 zindpv;@~30$CHp22htOQoPHc~wGjF3g1LJHr9*92eA=6{9t=09)!8qjzNz zU5P@ZmzLnzswzxwt3gXsE#7Y`#qoOT;pJoK%^n=s+l`5n{g^&`6vMApBD=W+;cyu9 zWsJ!Hq8kzn!l_f4Ukc2I_G2 z{0jW~LnnIQ&d0H{1-Nvp2zOA9Zt9WazmvN330B1ao&TP-3;*W->HhW{|FU_rkf@x4 zM0pHeJcbR8QEaIF|NQIf>hNyEIBIH7!y7z|qJbh@`&jVpX2H4YYQ*Dl?4I9;wW}{f z2Kq6lcMhh-^R212C?k$INCnCg3gP#(cIjOdjd#+z#lNT1$V!=Ki^&6 jum8&P5$4|6!}iqXEqLJj$p`AyyoHmN7Tw+LH=;A literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/saber/female/Saber-9.vox b/assets/voxygen/voxel/npc/saber/female/Saber-9.vox new file mode 100644 index 0000000000000000000000000000000000000000..f8f2e5a1a468959aba6eccbf22f5c382f7def914 GIT binary patch literal 1836 zcma)5ZD^Hc7`~s6_w0PGm2>W^Z5^HM9K$td+s^wAo9WOwXUyf&`GJO#hhfU-3>^nU zSK<1vMp20w@3k>nB^H+8lAqN(t^Mi?s@MOa5h891r}GHM8| zZAxp&Xl*F9tF_8#qY0HUvk0V&4y3dpbimUpkWo6|YL$~R%5jwrX0$l;IgE2MS~;Gg zREGVSuUK2Lrcs*p*vAKXXv;nheT2{!o*U|x($Y5c8|E56mwb%&VO*mvIWU*?v@+yD z{whcwnte=4aUP`%`x(yb_w{YYh#^l)PRz4m&KdHw38l29v_V&!V9F4R(3(=`xZ38h zcMf-x<0@YoN*nZyrY;fB_>3+!jUmXVFE+~0sg*8=-cgH;_?uWIMrk}e~ z{)~KQRyeD2CpOBfGf-kw^rEbDlgvEAZ=&9q2ih zhvVn-api6iW>AhU?qhcTo!m>WU`68J=ijq-;otLrvA=D0{<6ZSkc`hovOE`FA{QGP zV%Sjg|L3o*t;NauF;v%_g*R{*Mg2v%`I+Fm&4LS6RY)Wf*gd}&Ygb=|^!H(I&s^yb^h1=%g&X<*#>MFueMa4h%@5lMIHg()a&u-wr=sEO% zK7kLeev8xJ+`~)z2C(e#7+OEQj*iRs(A3m~2Lectz#lO81oy8!%aW`31|Pa b$K{#LTky#CosaY<$tRsXp7Xf=gjo3t5Rh6u literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/saber/female/ears.vox b/assets/voxygen/voxel/npc/saber/female/ears.vox index 946181f60f1a2a90ba71871a118994856b499587..d2965b2ac2bbbf6f6db5e6aea5688f1a81e74a5d 100644 GIT binary patch delta 192 zcmW-Zu?hk)5JY!2U@nD4uoDFvzd>@TEU!>IIsFX@SO}Kd$u;69*jQcbM~Oe6lPo-T zc4pYCdpp0~w6nX2td`B1OP-w{ot46ncDHYi+2u?LL{mj9(V~$c;ElwXT9`|6Swm~3 y?{Wr2g+@LIt^jTgmQ=-O#@+y^4KNJKlF0_?P9J+)jDL?f=@0NQ-`Bjq@ZBHD0~{0p delta 139 zcmdnP*}*9o<{zOjje&u|*U{4tNHLU56cmnN1TvU`I3hC2(*-071OgDs5-4ZM0mPg@ z%)r11l%mKsEyd6HuH9D9)6{4#XTl%n1~mxZwl)as$!-S8Sy>FJ}~F OWPW^^Ve@V#MkW9^6c&~M diff --git a/assets/voxygen/voxel/npc/saber/female/foot_bl.vox b/assets/voxygen/voxel/npc/saber/female/foot_bl.vox index bdfb676b3e9506e1dacc98ace7cb4a2d60730c7b..4a8afb34fc56299894bcf973114e079f8f5dd0ed 100644 GIT binary patch delta 500 zcmW+zu}Z{H5Zs;JB=0zTK@=468zc#W78WO{g&=pQVC#LrYizEyQ;B*fTG&_!S_yXk zgOwKg5#kTTc|MqIHal-;hJ1IPy5s%b{^GTWY;W{-SY(=s?DdA5GpXTWD+SRZ`h#Kb zSoy*;Aj~By;h9WGoMcRM4U{%_=yD zl5v)im_=w-E2|m>xj?yGxzrR~NTCE8fm0~sj1cz1@5Xm$b@s-&@vf!2G-Md3hgAlr z30~$xsL==$Xs8sRkd?|rszyO$;v}4Ua>OFUX^K3hQ3*59G!5Jm6I?3Oge5(K6Q6sGnG1Oo9$plO;k@IGPr2vGfj?Q3e9;GO^n!J%rZ zp{c_42l@xgeUsdrJ9l?>c6)cZUA{cd?%x4ShWV7hw*#K@V$`e~mQjq*pl0(T{~+t? zQEDi~kf|b*T7sY^K~>mGrb5;Ny(%*eDkP;Kp-((8UNnXzEC@(-%p5Zkj+x`2r}rH4 zL2;9T3&5rPVF^A6p%)2pE&uK6p_P6Hos`Di^ai8@^$WyGkBxoxnoeJzabW}dJ7c%8 LQsT<@W=q!`-|5ivc1vUVUcMevez4K&g6!Nt$3nC^asP< zvGRpyK&X>s1W6M|SSb@F09OH$0Aoc2G{Hb<(tnhdqO4%$n1r&1mPuWRP+zGQ5spJC zI4ejj611p|)r^8%U|eoostPWoPzH^_QK;aIaO@qwE8m4x*emDCyPEIPkYb!478Q;r zc$o{KMk7q1AsRp-tBi?Eje^F+SvdFPh$V=lDe{y?CD1^qRatW&3zcRtAP|_C9Oo(S z+52eASJ~T*|XKTc3RK3?bcFzDbl_YAEQz8sc-(_=A?an iJZ)~VX1~uXFJHLQ?)|}G%U{&;G)HcsId`tPbL)ROf>H1Q delta 275 zcmWlRp>6^}6h-fQZwJz}wn5ZTfx^_TSg``JO$s3-gz^c)M}X=NOt-0Nf?LtLHg#1P zG!RrBKfoUhcV2RG@0@uvU)TRv%jsy=eFN}RRzn8188E5lgPU~V7@ zsG$~v=TfZ-FNz#Qg`L2}t4b~eL`CS?i6D6$^FqCf=0cDX>iIRjaoOmMjtTS7jC+}f zFp<%v?${l>;iH8$DZ1)bY%Ua~(p)K4 zqaj9f=}z84iD9p!TcJO?4FZ%poI^9OfElL4+yrPHP3qiugcWV-)U(f+ZQj+Rxv%n5 zy1UO6ST;pzk^&yw9k%XPn@1q%ur)848#?xM*I`tIT@ll0X4WOLp0f=hV9bhvhxn+} z6bF=fx?+&BsaYL^g5*X%kYl^tnAi}CbOLuGK~JPGR(iTbZ)D6P6jziUPj_Ht5eGpn z;NzFi_tCgJv)OFAy7~R^^68`LrtM7A!QON>nk-%jNn~e-2+hy`OHsUaU{-ng9Lv R`1{&EsDFO*cKsxl{{i&USOow8 delta 207 zcmXYpJq|%p5QWc~`(6+_5ru{wXm6oVD4xVmA`w*Tw+Sj6xQIrrl@KbG9UwNKRY(+c z*Sy3@zWFkfllf-nnMuDhC@%rD>QP&TX#n)1Q6rZu8uKSq4~CzJK)}OO6@l@ Ze>tz+(bUZ2irvR7=(b^63EV0i{{X#cEXV)= diff --git a/assets/voxygen/voxel/npc/saber/female/foot_fr.vox b/assets/voxygen/voxel/npc/saber/female/foot_fr.vox index bf2addfc7befd02f3926748cd13abef6e96174f6..fe051cfda1d111f379009aa491fb11e3d375afda 100644 GIT binary patch delta 576 zcmW-ey>3%M5QXP&_a;D(gi<606%T-YR}?`)$dN*%M2bS-1uW5SL*q7G6gl9~(NIuO zfzt6B)D%1c72V~VtaN;4=N!-M%)Q?JcYk$ybhi6ZL=N{CuORtTL{1jxFCOHD!&UBq zEpYbweDOmGIPZXO=|&UV0?Wo>hcR!oNOus#7PWb3_sE=f3m+}4MbTBaV)HBMtg8)T`vuNfOP{VYXn*gn&Nu3*yu%gW!J$*)P^X?u^eU(3@ ztNYx6r722_Y~aD&Ve4wOX#@=&wx%U>Ll26p4x`gpm1Y{v%z8xXS=(p?j9M}95FZ`Q z*??2eR}^w4HLIf_L{8)bIi|~riH$~*n_xSVz{7Xx$|^OtgjX`=5zbZ|kLGq@XAlK~ zCh+mg=llHs?#yPh>FVb9!^@|Srkl1iO$U3^wa9b}el3^lOZ_=~`SgCe{d%!Jv1k7G S+vD$R`=I{$&D-^pSpEkGuUGj1 delta 207 zcmXYpJqp555QJyk7WEizp0Q%ivAc2JgjDxsWEs99}aV4W^9E^&is8$#wBZdY+ zlK`fKn52_*3PCJcpb`QEM-xc1Y?)*W_QX`e^2j{t)yO+_d-I#thHaYy_8{B=^X5}& bpD*p@yfH`RtH%|)kIKkw-Ll}AwLAL(;5;oR diff --git a/assets/voxygen/voxel/npc/saber/female/head_lower.vox b/assets/voxygen/voxel/npc/saber/female/head_lower.vox index 4f61dfe8cd643008500bd30c8c23b32528d39dfb..494459a85fab7e2faa7942b86410b7e418ec2ea7 100644 GIT binary patch delta 1383 zcmW-hKh9l648`r^KXc#LeL#hfNE5LHGIuIU3ZO`YC}^mt-rK@$=us3Y$|k6?0hU9F z*Z};7;>hE{Nbk;@6GJHZ@&E=W52z9{_=WLdujH@%_@5-duG`q z%I@0s=8r1&t7mmBbjy|h^1Y4e_SrK0f`e}w9mNhilfCY02&oRjQwsdgHap4tOR_H6sc*Bzy^E0T z=aE2B@lZH**gp45ti@SKsvz>eO}g)jSrkYa$V?XiC6BTfAn^la(soG;23=8*AbV{j zj}y!bG9WMV%##qbqv=19`8Em}?ZqV19)^{t5KvYio^ zk^lk9Ax(yZ%vz8_L2pMDAV||~38Hrykb7J93l(xJwEF-8S5Twm@1Xq{DoAxYC28P0 zbN&oz1T!QyBs7N3D3|x?WFOenKn()tKnVyiQ;jOcuolWSr7MUvid8_K#|?Fq{tFii z`FAsLm_Zc3sSyr|f)KI?!^bQ&^))7C$fwCqBclPF&Tf!5YJH>G4(x$tIAg?m_jCO{ Ze*gOOe?P1*KECc}kAMDn`SI7``VaNId(8j< delta 1335 zcmW-hyR8*55QgXNJtsRnA_54INFieb0x}4I1R-j$wA;c4q$F2Y0y?08+Wo;(?9mu-g(&j?e3pDmk;kgKKddeZ(hEBi^%({%fsVwwkh&TMapeWh?Lz^HfufU zo*8SV&q`kdzq-wGpXrPZw25i>Y|-7Z!*g}d8J5!_)u(|E*$skoz2vf+b2zvrhvdBa zaqrO5>5J@IEHr$egAIJZhpqv}8ngaT5R|V@fB|0k!ONzxCjuKX2|7uR`D9-j{$h;A z=yM5vU@v;?iNncEIasNJbR~=h%sJUwe-N_Q@KM9(fu9O_5>#_LjNn%{Dnp|r(TPmQAp+tk~wSNpvmA13VuSN7MlvA?3hA_wWBk#?PyUq zvIA#6AiP!OrVJ> zTHsb(xuUtn)kTXYgAWuuc?RHxf)5ltSexuc1GVA`gYm{JAbDfhc`!%@zHlJeU|}Cz zYy|hgdl?*v#^8Yts>4_bs1f$wVkiL%=Lk1UD7D0NrIJt{Qz0#R76iciH6H$v%Kc`b z{56!!3N6&gCc%h4I|DLFDEEIgo^HrN)cH1XwK-UIns{jt)q`*r;DazPS*P&XE>*=qpeF^(BAQURH5?Zz~;%f<~@#a zF&cDrO~ZLmFKNzuq$rK@P0KyQvs#KuNnUB4H%$U_RziN#H$%U)H5@aWe@9vF5r$AMe_lzb zb-LSlVT?qjE@ai3U#cgUz-)R)s51SFKZg~$(R_Y z=DlW4$7w%tn|dX$EPKMFz92kpEo~fo(#BXS?`z9gGs}^^V&}9^d(Jb>dQuBca*n=s z;ww$vIO@SlQ5zzdPkQ#$*(PVKefo-FzgwZd+rydBBwsmmu^s(*<_ zC%qr3_A%7Kv7a3|v7xj%dGO@J#Zu?K^o&1P_8p;J!JcZAO7U%@J~GYzHF>3U!Q2@O z=RxPSCqJILam+DT@=ZIh`JLw+&pF298LLY%vqqLZZP$V$@NM^eHw|lU`A&GlcZKlOu+yG)p86v)a>mgczD$$GwF^%JNB>-=|1wF>Jr#{teHz3*hXcTzvp}L*tV}eB<9Y4TVG!vCMG8E z$!WpEKfZw#t^dT|TU&Ac`Vi9Z;^0+0y8TOd`pFs-hqvSE@j+ZY{WPx5JcmtJ$I#N> zh9ysRqVt8-=s8zH1}x-24mtlh$c;9%3<(w;6f8X@_~N^Qa6m9`Qm}yQws!;@h6*$f zwqW?h1^E8#=dpD{uwzQ_%}au#H+gnPJC==fVdX?GHeTsR$9OBcPPC)x+;pL|U(<6d?eS*VV1!uXxV?#Se2D)%; zM>nRQU5ANXn=rk93$DNN4gBT82v)CX!{&9%vHdIEcy{+D9B2wApA?*XUU2QCVB@lO z4ECbhJdmi=im#}1V z3Euyy;P-n3?{s&gr>6(|R~*J84_}5%9>c=%g_xbWQ^Ob9shwrZ@axrEoVthYvbmlEg{_F~VaQSz5{kOO9<>!v$!I#cq z`%kW6=exJi-`|f<1du@BAJDf1AOHGJd>>O^|LZ%uaIVkp9^c%v7oV=v$4}??8t=7t M_nEur_pp_J0qSV9vj6}9 delta 1631 zcmW-hJB}np5Qa13nVH=fh=+s20WfgOKmr3}N?I_G(6UD;i5-V=sY5`|9DxJu1-Jv; zfD3Q{q~(hq>6^$$RAl5Ik^TFpe|~)a`2Fk8pId9MzIpf#)4o`({qXSS+iOku8*qUS z;Pp>$9{zI%{QcTn^K35y+Vb!bZxsY$`c0EDm_ymxuW?{OJRT+DeDrd(cld3arTHu=L08z4|xt$5UebHvHGCrW_N#m2|;qr!(#4H*6W7s=i1$JSA07@ zz2_lVleJp_dtr$(c_`yk_}7`VTF~5uU>zF4RB|`gl#iRPt%K;=6`HNhI%`-l0^_UL z=IiI~YZp-Hv3`k4q7HY|#7eG1NmR!=$#Rk*()PJEr0*ceZaFw)a=_$(+8tbNedafkeJ@#a4yk12it{1Xhsy0QmJ#}excMfEw+R9>mg_TBS@zkje|`tNM2H{ zJ!aLDY->+hcPOa|-u-e2^R8D)awQ-MVtpdDT{lHBmFp3s>W@z(Or1D)iZckJ9IisV^x+u*j25`hwqGLBM?a)F8t zkyw9=>7j^g_}n z0ZyMd4Hq<`SM$*Wz0|04lP4sqF8! vAP_e&q}BQe*|k0-b3;BOf!{{{n}2-y$@{;*`t05N{IKgkf3kQt zd6~aIZ|0f5^J2HH#wQV3ugVRFyxL;WWDG{C{h_?XmTyYT;DuO%8i@vRF>6qVC5Rel zieT)eci1KD`d+=Is5Sa@gc*R>NU9z#-XW&5Ae3PIC_IQzvR$E7*V?=zJF* zGYpS?g5Y6%*L4*WJMx?g?46pO?w_i-UJ4^cef$nLvAHkO%HUIzs diff --git a/assets/voxygen/voxel/npc/saber/female/leg_bl.vox b/assets/voxygen/voxel/npc/saber/female/leg_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..4e7cb872cf92b3b76ef6a7adf2570ab7493bc8ba GIT binary patch literal 1480 zcma)5Z%Cb07=O;6_bS=!me;FZP3@}7dyScYQs4KLb(e~}Iv38g?drtEMqb1=Bt_-2 z*zOv$VVa3L`r|BQjHPX&QuM(jWDLd_5)p)qeTcqBMD*>~^EwtnMjiOQ&w0-Io#%Oe z&pB_~t4DLEh^Xm6_%ItSId$0Feif+sw>oR1<~Dwi!t+fo{q zl-d-eOcI7gLfa&iEriRGBEeFmEn*Hy$0}1WM+nVOmJ$gjNn(!6ROE1EKMC2dgfb=Z zd0vy!#ktsOhSF>`?>SKHGfyjtB(k`}~ zQ?f5z>~o!pArnmH)Mpr`Fj$kpIW+SG$CU>2c}*F%WR1$;e42TjTS(T+wFs_78C);> zl6yc(no23wB{;TIC&x3K+C;zP9HgZ!4b6Szm@a#4t}zMJkOu_-Q&UfdJ~+n5MIII#ustoxQ*CABUVPj zSeZD1mFY96TsaMQ$cv1wT;!fDLSWVe)fu3kCqQ%0fHu5vHxbf$30dQW7j6;~dkA~t zgcSC@HwfiTNoeSGBXTYU@2x(I+8CjElJLeNVdy@eZT2BM>PLPoh>GP9GW$I6kNOat z&q2xU=aJSy$Un!irwG++1bU704<~{qlR--!j1*^LtkQ=WI}2!d4wFP!W&9A0;%By# zgM`Ho3G3GgcW$vCBFxnhzB)qKdXo^XCk(a`#-m>^A>37u7hfm*^0uQ!+b5UulL zxVaEhr%DlPt;AG!4c0Hcj$h`ZD9ZDqx-_Jw_U(mL8o>C4EG%C2*WV zCSHb(g&O?&Qw#boyD@s*gIo7Au!S5%xF6g4PjX)d2sMF!*WY_+@89~r7;M_spPl{` zg8ozlbCO{PlF?eV2dyRlUw>Iy89u0-MRCa-?2+@xh-cvTXN2$D2{#H05eNj(oi~6( z2bVzcVWjq@Vs-k_9iH{^+sV$xI|Y;2Z%^Rl<%>w~OvAk|3$Pl=z(j8DKl<~c^wNOqaOHio^zhxbI$pl z=Y88=J(@d3L`?_6huP4wLDUkC)II4qyfnkbNMsy6771Svyy4ZwP>O7!T(%@_3u#zF zYEzOjl`t$Nw5^1)rEpn7Bv_ouQp{1(vC5RpkwP<+MIymel9=N%i5!mXS3>raP^KWh z&oLogT#Kz{D9u*$nFGZ>^R%*+=G@w_C3B^6SyH4&wVO}Ofbpm&oE4BuqK0RXyysdD-GszOc}Odjbv~=%{;CxCF|v0B=^BGQWqF-lx8SPvVO^P zJW~J4f$az4x2USBLM#@;!wJH{Pd1R}`4hi;JXl|Eg0mLFD>&TvB2FB)5gTa4%19V1 z6DP1TeFl{)r{NBHkZ>0S(V#k_fAeAEHtG%yx2+ zu=pWi{TkuUE%rl%xjMpEM+jSQ5~B5l!8XEp)QgK0cJTIzCbI|y5Ax^bbqNjlnKTeo^o3J)UsL1vq9Lz^Y z#Xj`anrI7p5iQTeXng^eJBv|QU4oCQvoKb{^RV3*f42uirz4oZGK|&hmoV{`AF=jK zBqb#wJ>_W>XSz`m@S|eiURb38j9yc5LMy&`sZTO z^mPM6)7KFHd>QXAeTOUGZsMggBiMg_7LA{-q2=Z#LZJ{I54m|dq!^ivG>~680cXsY~;nH6W?K3g} literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/saber/female/leg_fl.vox b/assets/voxygen/voxel/npc/saber/female/leg_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..78d448acce5987096c6314e57b3f05561e880f3c GIT binary patch literal 1616 zcma)5e@IqW7=F(=_ukLVYHph4kE#3A=Jz>r{+N32mG(6iGqYhXS87qCSRc{~nNsr6 zD7VN(%bcjOAJ&FMG+l|x#{O_JB!Y;DF$P1TKgRwYV~qXx?72omSYx~J@SgWQ?|I+n zdC$3RukOkl5s~K2joWFY#t~_4Y_DGxIQ%RkL_9(4+TGr`N^`;Q6rq*w5oLT?w#pMF zK7&1?#Z_WFCAvp*-)Q4$F|HQNGs^Of;}9WVJBA2++ZW67w5@$*JD##_*U&e{aU3Cp0Yx&Vy@C5 zPbq3rHo>^!TrB$JrPyDwj$#jE8}gujv3xPA$Jp%Y@Qkp3pgn-$yllf62Kj*=_EO}o zwX1js+R~nA!+NxYvNU;dkNaZLT844n1)+>#oVfv4a#ozN($rv6GkF?X#n}sciQ&Ck z-pM1qCNrdqhw(FOb*Rzb^?gyaqCzhJlhSoUh8n zn4b-7eGbDSm?M6O$MG}m@G-&Ehk}JGf?GG}#{`$_1z+tDEWIg+Hwcck2?pcoIK59W z5*O^P7WCE$#u#s@$V9w8jJ}p4j2tXOVrLab4%K4e%MtAg8B1;%A8CzMhnncxe?uUF505$h*xCcTtgvd_LiW&rW7C5WaE4#=i#Sd z@Vzb^Khlngi+z~8dIm#pg^}pULUM94)~7y=lB^VzM#8AvxB*^S1cUEpW9m{EKi-OB z=}s{|X3v=k!R>DZzfBgRFJ6SP{&Fl%*5cQnTG4$r1?R4&;l|wzEFl-|oX4{M1Ds2* zpf>XF`VVj0@VEXijx{gq&sqNzqT#iO=B|MsS%aO`tFg26|LZR=FUN(dag>x^hCgr$ z8T}c!`I+GR4#BmeB19q)9Ln#-wk^|;{ywbjUW>WWhj(})lW!*{2k#UPW0OCG17}ZT z{oZxB^JO9C+A}bem-mnP2YErQ-L1FLeF!){dIkNT&)|dU?{M+kdwA*S05+W(N7JYC zXuW<9u~-Zb1dt>Gf56-m-2eI^zx#Y&|FzFwaQQ!5X)kqj;*lS0K3YG{J}$QM%*yp+ Ga^)|r{+N32mG(6iGqYhXS87qCSRc{~nNsr6 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 literal 3968 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 Dh1D<* diff --git a/assets/voxygen/voxel/npc/saber/male/Saber-10.vox b/assets/voxygen/voxel/npc/saber/male/Saber-10.vox new file mode 100644 index 0000000000000000000000000000000000000000..f8f2e5a1a468959aba6eccbf22f5c382f7def914 GIT binary patch literal 1836 zcma)5ZD^Hc7`~s6_w0PGm2>W^Z5^HM9K$td+s^wAo9WOwXUyf&`GJO#hhfU-3>^nU zSK<1vMp20w@3k>nB^H+8lAqN(t^Mi?s@MOa5h891r}GHM8| zZAxp&Xl*F9tF_8#qY0HUvk0V&4y3dpbimUpkWo6|YL$~R%5jwrX0$l;IgE2MS~;Gg zREGVSuUK2Lrcs*p*vAKXXv;nheT2{!o*U|x($Y5c8|E56mwb%&VO*mvIWU*?v@+yD z{whcwnte=4aUP`%`x(yb_w{YYh#^l)PRz4m&KdHw38l29v_V&!V9F4R(3(=`xZ38h zcMf-x<0@YoN*nZyrY;fB_>3+!jUmXVFE+~0sg*8=-cgH;_?uWIMrk}e~ z{)~KQRyeD2CpOBfGf-kw^rEbDlgvEAZ=&9q2ih zhvVn-api6iW>AhU?qhcTo!m>WU`68J=ijq-;otLrvA=D0{<6ZSkc`hovOE`FA{QGP zV%Sjg|L3o*t;NauF;v%_g*R{*Mg2v%`I+Fm&4LS6RY)Wf*gd}&Ygb=|^!H(I&s^yb^h1=%g&X<*#>MFueMa4h%@5lMIHg()a&u-wr=sEO% zK7kLeev8xJ+`~)z2C(e#7+OEQj*iRs(A3m~2Lectz#lO81oy8!%aW`31|Pa b$K{#LTky#CosaY<$tRsXp7Xf=gjo3t5Rh6u literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/saber/male/Saber-7.vox b/assets/voxygen/voxel/npc/saber/male/Saber-7.vox new file mode 100644 index 0000000000000000000000000000000000000000..a03f0701372a305de8e4de78172dcdad50f99f81 GIT binary patch literal 2048 zcma)5ZD^Hc7`~s6_uct+<(%%LZB1u8$8gQrwsYQLGaWkTjJaGoKhRL}FiaVpq2pla zN?c*CH8!P>X)#1hQ`tsQU?W5X5s`=>MEnu`iHL~k-_`XVF@%hI;NpJnkLP~w`?{Z} z>xGRKqaxD2ymcLg{G2D!+1lL_@f9wI2obZ0jhnh#zcSo#{X&?48dE-kLMda0(ohPa z9LX5M`nnFLlmwGXLMc%pPg|4HR(sY_8SUt#wJKv>#=6v9ozd2^@|lFA{hkDw9>T5vKGc!#%cCsA}PiEiuskF--M`#*k3fM8LM?P zrB#Fo6SS)!ebiZ(=KY#^H17~6$T|Yt=Vc5b4)3JYn!4Y+4-@p16C{Uzyx$M+QmkDE zl3E2a$_7$K2bqJC&^Evv^wDoDr47=~SrFO;X=kioD{I!|SZns+#Mpz&{4w&%S!kDM zT+dkY;OLAJN^4n@q4aff$a;+58-3d0Y{j23>(-Y1F~*0sp3UWBPG!lnOU~JkU$@F5 zXL%Xr=jXdn))1CwT=v3vV+fnHd6E$~!rYE0Zj?TUTp8Bu!{I&FGlbTR*EXfK@2B16 zJudll!ztx*UM}b2kPmXH`M$IhCTMp8?33@#s^^#Uj@)W&Y(zGj z#l2y{>JP7Ce!-vky`TUyGwtx#`PM0{YkLMewtC3+wP9+o6;s1IFg3Oh4O4rO-&}~I z?G>mvxCrs_B&5ZG^n@U%ABS8mM1H$q?jAwukl^Wyf54@O7wSBV|3RNWH&Tm zboUC(9DNBtO{B4Cej%Ecl%wsrYV7K2K+hV%z*fQdYl17s1@&dcXiY4@mioo$U718z zq7dn&B{;UK3X|Jv(9%?k_nS&_yqA#yiQc#KaqMgXF5N1^9h9S+eB}DyNnZK{E8_p&|DLrA|L*_O{q4E_%jV5OqH+!r z#r#nEPiB%Tt@T;DPQtAM76`A7y*^%)|Rf#L8dWQ*ZzP literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/saber/male/Saber-8.vox b/assets/voxygen/voxel/npc/saber/male/Saber-8.vox new file mode 100644 index 0000000000000000000000000000000000000000..ab7db834c19a97d2a77b57e350326138e2259a3a GIT binary patch literal 2048 zcma)5ZD^Hc7`~s6_uct+<(%%LZB1u8$8gQrwsYQLGaWkTjJaGoKhRL}FiaVpq2pla zN?c*CH8!P>X)#1hQ`tsQU?W5X5s`=>MEnu`iHL~k-_`XVF@%hI;o^SpkLP~w>w2E2 z>xGRKqaxD2ymcLo{G2D!+1lL_@g05+5h7+08#i^ger5Q>?-xP^)R^%R6j~Wmw2Iae z#*vI7#P@YDWh9t15=vPW^0YN6ZM7$k%4kO?#j1?Btaa(TI-{*kS<6}zN*af-K7yWA z(WF%o#=@Sp;iPq*&azIElZm7Z`y2K*et#39A0oeKQnOa; zXiBRH5hfT{LFVXlF3tTl`)KZAogn83@INo32ejwDly{k3E&8&Mq}4AAfF@ zN6qpw#_!L2VXPr6*SO@udSeKilsw5;H^SbIXWb}s4z)6z*N4M>tfvUAS+8wMYd_Dp z%Y9tx>4sCr<$1Y07l(RKOU?VGoiM?;6Ch9CJC|o7E;V(@C6AVnKt>De6?^)9wafD& zM@4NozakIi^I=XK-eap$hWA<<{~ajmMN41#KJ$jY_Q5xz9p!1>e?=I=GHw|+TxVEs zSZ{OO`A@3|!?$Ac*pF7xTGra!`=RyU6MOLSa({BL)X}jS&2^f!>sLL$ocY|>*w~0{ zHj8`1g4G{h#r%Rl@q0l5W@g&qf9G4Lu&(VH?AYod+t-Gv!B$KS@4(d9J~T}2MSgQ3 zindpv;@~30$CHp22htOQoPHc~wGjF3g1LJHr9*92eA=6{9t=09)!8qjzNz zU5P@ZmzLnzswzxwt3gXsE#7Y`#qoOT;pJoK%^n=s+l`5n{g^&`6vMApBD=W+;cyu9 zWsJ!Hq8kzn!l_f4Ukc2I_G2 z{0jW~LnnIQ&d0H{1-Nvp2zOA9Zt9WazmvN330B1ao&TP-3;*W->HhW{|FU_rkf@x4 zM0pHeJcbR8QEaIF|NQIf>hNyEIBIH7!y7z|qJbh@`&jVpX2H4YYQ*Dl?4I9;wW}{f z2Kq6lcMhh-^R212C?k$INCnCg3gP#(cIjOdjd#+z#lNT1$V!=Ki^&6 jum8&P5$4|6!}iqXEqLJj$p`AyyoHmN7Tw+LH=;A literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/saber/male/Saber-9.vox b/assets/voxygen/voxel/npc/saber/male/Saber-9.vox new file mode 100644 index 0000000000000000000000000000000000000000..f8f2e5a1a468959aba6eccbf22f5c382f7def914 GIT binary patch literal 1836 zcma)5ZD^Hc7`~s6_w0PGm2>W^Z5^HM9K$td+s^wAo9WOwXUyf&`GJO#hhfU-3>^nU zSK<1vMp20w@3k>nB^H+8lAqN(t^Mi?s@MOa5h891r}GHM8| zZAxp&Xl*F9tF_8#qY0HUvk0V&4y3dpbimUpkWo6|YL$~R%5jwrX0$l;IgE2MS~;Gg zREGVSuUK2Lrcs*p*vAKXXv;nheT2{!o*U|x($Y5c8|E56mwb%&VO*mvIWU*?v@+yD z{whcwnte=4aUP`%`x(yb_w{YYh#^l)PRz4m&KdHw38l29v_V&!V9F4R(3(=`xZ38h zcMf-x<0@YoN*nZyrY;fB_>3+!jUmXVFE+~0sg*8=-cgH;_?uWIMrk}e~ z{)~KQRyeD2CpOBfGf-kw^rEbDlgvEAZ=&9q2ih zhvVn-api6iW>AhU?qhcTo!m>WU`68J=ijq-;otLrvA=D0{<6ZSkc`hovOE`FA{QGP zV%Sjg|L3o*t;NauF;v%_g*R{*Mg2v%`I+Fm&4LS6RY)Wf*gd}&Ygb=|^!H(I&s^yb^h1=%g&X<*#>MFueMa4h%@5lMIHg()a&u-wr=sEO% zK7kLeev8xJ+`~)z2C(e#7+OEQj*iRs(A3m~2Lectz#lO81oy8!%aW`31|Pa b$K{#LTky#CosaY<$tRsXp7Xf=gjo3t5Rh6u literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/saber/male/ears.vox b/assets/voxygen/voxel/npc/saber/male/ears.vox index 946181f60f1a2a90ba71871a118994856b499587..d2965b2ac2bbbf6f6db5e6aea5688f1a81e74a5d 100644 GIT binary patch delta 192 zcmW-Zu?hk)5JY!2U@nD4uoDFvzd>@TEU!>IIsFX@SO}Kd$u;69*jQcbM~Oe6lPo-T zc4pYCdpp0~w6nX2td`B1OP-w{ot46ncDHYi+2u?LL{mj9(V~$c;ElwXT9`|6Swm~3 y?{Wr2g+@LIt^jTgmQ=-O#@+y^4KNJKlF0_?P9J+)jDL?f=@0NQ-`Bjq@ZBHD0~{0p delta 139 zcmdnP*}*9o<{zOjje&u|*U{4tNHLU56cmnN1TvU`I3hC2(*-071OgDs5-4ZM0mPg@ z%)r11l%mKsEyd6HuH9D9)6{4#XTl%n1~mxZwl)as$!-S8Sy>FJ}~F OWPW^^Ve@V#MkW9^6c&~M diff --git a/assets/voxygen/voxel/npc/saber/male/foot_bl.vox b/assets/voxygen/voxel/npc/saber/male/foot_bl.vox index bdfb676b3e9506e1dacc98ace7cb4a2d60730c7b..4a8afb34fc56299894bcf973114e079f8f5dd0ed 100644 GIT binary patch delta 500 zcmW+zu}Z{H5Zs;JB=0zTK@=468zc#W78WO{g&=pQVC#LrYizEyQ;B*fTG&_!S_yXk zgOwKg5#kTTc|MqIHal-;hJ1IPy5s%b{^GTWY;W{-SY(=s?DdA5GpXTWD+SRZ`h#Kb zSoy*;Aj~By;h9WGoMcRM4U{%_=yD zl5v)im_=w-E2|m>xj?yGxzrR~NTCE8fm0~sj1cz1@5Xm$b@s-&@vf!2G-Md3hgAlr z30~$xsL==$Xs8sRkd?|rszyO$;v}4Ua>OFUX^K3hQ3*59G!5Jm6I?3Oge5(K6Q6sGnG1Oo9$plO;k@IGPr2vGfj?Q3e9;GO^n!J%rZ zp{c_42l@xgeUsdrJ9l?>c6)cZUA{cd?%x4ShWV7hw*#K@V$`e~mQjq*pl0(T{~+t? zQEDi~kf|b*T7sY^K~>mGrb5;Ny(%*eDkP;Kp-((8UNnXzEC@(-%p5Zkj+x`2r}rH4 zL2;9T3&5rPVF^A6p%)2pE&uK6p_P6Hos`Di^ai8@^$WyGkBxoxnoeJzabW}dJ7c%8 LQsT<@W=q!`-|5ivc1vUVUcMevez4K&g6!Nt$3nC^asP< zvGRpyK&X>s1W6M|SSb@F09OH$0Aoc2G{Hb<(tnhdqO4%$n1r&1mPuWRP+zGQ5spJC zI4ejj611p|)r^8%U|eoostPWoPzH^_QK;aIaO@qwE8m4x*emDCyPEIPkYb!478Q;r zc$o{KMk7q1AsRp-tBi?Eje^F+SvdFPh$V=lDe{y?CD1^qRatW&3zcRtAP|_C9Oo(S z+52eASJ~T*|XKTc3RK3?bcFzDbl_YAEQz8sc-(_=A?an iJZ)~VX1~uXFJHLQ?)|}G%U{&;G)HcsId`tPbL)ROf>H1Q delta 275 zcmWlRp>6^}6h-fQZwJz}wn5ZTfx^_TSg``JO$s3-gz^c)M}X=NOt-0Nf?LtLHg#1P zG!RrBKfoUhcV2RG@0@uvU)TRv%jsy=eFN}RRzn8188E5lgPU~V7@ zsG$~v=TfZ-FNz#Qg`L2}t4b~eL`CS?i6D6$^FqCf=0cDX>iIRjaoOmMjtTS7jC+}f zFp<%v?${l>;iH8$DZ1)bY%Ua~(p)K4 zqaj9f=}z84iD9p!TcJO?4FZ%poI^9OfElL4+yrPHP3qiugcWV-)U(f+ZQj+Rxv%n5 zy1UO6ST;pzk^&yw9k%XPn@1q%ur)848#?xM*I`tIT@ll0X4WOLp0f=hV9bhvhxn+} z6bF=fx?+&BsaYL^g5*X%kYl^tnAi}CbOLuGK~JPGR(iTbZ)D6P6jziUPj_Ht5eGpn z;NzFi_tCgJv)OFAy7~R^^68`LrtM7A!QON>nk-%jNn~e-2+hy`OHsUaU{-ng9Lv R`1{&EsDFO*cKsxl{{i&USOow8 delta 207 zcmXYpJq|%p5QWc~`(6+_5ru{wXm6oVD4xVmA`w*Tw+Sj6xQIrrl@KbG9UwNKRY(+c z*Sy3@zWFkfllf-nnMuDhC@%rD>QP&TX#n)1Q6rZu8uKSq4~CzJK)}OO6@l@ Ze>tz+(bUZ2irvR7=(b^63EV0i{{X#cEXV)= diff --git a/assets/voxygen/voxel/npc/saber/male/foot_fr.vox b/assets/voxygen/voxel/npc/saber/male/foot_fr.vox index bf2addfc7befd02f3926748cd13abef6e96174f6..fe051cfda1d111f379009aa491fb11e3d375afda 100644 GIT binary patch delta 576 zcmW-ey>3%M5QXP&_a;D(gi<606%T-YR}?`)$dN*%M2bS-1uW5SL*q7G6gl9~(NIuO zfzt6B)D%1c72V~VtaN;4=N!-M%)Q?JcYk$ybhi6ZL=N{CuORtTL{1jxFCOHD!&UBq zEpYbweDOmGIPZXO=|&UV0?Wo>hcR!oNOus#7PWb3_sE=f3m+}4MbTBaV)HBMtg8)T`vuNfOP{VYXn*gn&Nu3*yu%gW!J$*)P^X?u^eU(3@ ztNYx6r722_Y~aD&Ve4wOX#@=&wx%U>Ll26p4x`gpm1Y{v%z8xXS=(p?j9M}95FZ`Q z*??2eR}^w4HLIf_L{8)bIi|~riH$~*n_xSVz{7Xx$|^OtgjX`=5zbZ|kLGq@XAlK~ zCh+mg=llHs?#yPh>FVb9!^@|Srkl1iO$U3^wa9b}el3^lOZ_=~`SgCe{d%!Jv1k7G S+vD$R`=I{$&D-^pSpEkGuUGj1 delta 207 zcmXYpJqp555QJyk7WEizp0Q%ivAc2JgjDxsWEs99}aV4W^9E^&is8$#wBZdY+ zlK`fKn52_*3PCJcpb`QEM-xc1Y?)*W_QX`e^2j{t)yO+_d-I#thHaYy_8{B=^X5}& bpD*p@yfH`RtH%|)kIKkw-Ll}AwLAL(;5;oR diff --git a/assets/voxygen/voxel/npc/saber/male/head_lower.vox b/assets/voxygen/voxel/npc/saber/male/head_lower.vox index 4f61dfe8cd643008500bd30c8c23b32528d39dfb..494459a85fab7e2faa7942b86410b7e418ec2ea7 100644 GIT binary patch delta 1383 zcmW-hKh9l648`r^KXc#LeL#hfNE5LHGIuIU3ZO`YC}^mt-rK@$=us3Y$|k6?0hU9F z*Z};7;>hE{Nbk;@6GJHZ@&E=W52z9{_=WLdujH@%_@5-duG`q z%I@0s=8r1&t7mmBbjy|h^1Y4e_SrK0f`e}w9mNhilfCY02&oRjQwsdgHap4tOR_H6sc*Bzy^E0T z=aE2B@lZH**gp45ti@SKsvz>eO}g)jSrkYa$V?XiC6BTfAn^la(soG;23=8*AbV{j zj}y!bG9WMV%##qbqv=19`8Em}?ZqV19)^{t5KvYio^ zk^lk9Ax(yZ%vz8_L2pMDAV||~38Hrykb7J93l(xJwEF-8S5Twm@1Xq{DoAxYC28P0 zbN&oz1T!QyBs7N3D3|x?WFOenKn()tKnVyiQ;jOcuolWSr7MUvid8_K#|?Fq{tFii z`FAsLm_Zc3sSyr|f)KI?!^bQ&^))7C$fwCqBclPF&Tf!5YJH>G4(x$tIAg?m_jCO{ Ze*gOOe?P1*KECc}kAMDn`SI7``VaNId(8j< delta 1335 zcmW-hyR8*55QgXNJtsRnA_54INFieb0x}4I1R-j$wA;c4q$F2Y0y?08+Wo;(?9mu-g(&j?e3pDmk;kgKKddeZ(hEBi^%({%fsVwwkh&TMapeWh?Lz^HfufU zo*8SV&q`kdzq-wGpXrPZw25i>Y|-7Z!*g}d8J5!_)u(|E*$skoz2vf+b2zvrhvdBa zaqrO5>5J@IEHr$egAIJZhpqv}8ngaT5R|V@fB|0k!ONzxCjuKX2|7uR`D9-j{$h;A z=yM5vU@v;?iNncEIasNJbR~=h%sJUwe-N_Q@KM9(fu9O_5>#_LjNn%{Dnp|r(TPmQAp+tk~wSNpvmA13VuSN7MlvA?3hA_wWBk#?PyUq zvIA#6AiP!OrVJ> zTHsb(xuUtn)kTXYgAWuuc?RHxf)5ltSexuc1GVA`gYm{JAbDfhc`!%@zHlJeU|}Cz zYy|hgdl?*v#^8Yts>4_bs1f$wVkiL%=Lk1UD7D0NrIJt{Qz0#R76iciH6H$v%Kc`b z{56!!3N6&gCc%h4I|DLFDEEIgo^HrN)cH1XwK-UIns{jt)q`*r;DazPS*P&XE>*=qpeF^(BAQURH5?Zz~;%f<~@#a zF&cDrO~ZLmFKNzuq$rK@P0KyQvs#KuNnUB4H%$U_RziN#H$%U)H5@aWe@9vF5r$AMe_lzb zb-LSlVT?qjE@ai3U#cgUz-)R)s51SFKZg~$(R_Y z=DlW4$7w%tn|dX$EPKMFz92kpEo~fo(#BXS?`z9gGs}^^V&}9^d(Jb>dQuBca*n=s z;ww$vIO@SlQ5zzdPkQ#$*(PVKefo-FzgwZd+rydBBwsmmu^s(*<_ zC%qr3_A%7Kv7a3|v7xj%dGO@J#Zu?K^o&1P_8p;J!JcZAO7U%@J~GYzHF>3U!Q2@O z=RxPSCqJILam+DT@=ZIh`JLw+&pF298LLY%vqqLZZP$V$@NM^eHw|lU`A&GlcZKlOu+yG)p86v)a>mgczD$$GwF^%JNB>-=|1wF>Jr#{teHz3*hXcTzvp}L*tV}eB<9Y4TVG!vCMG8E z$!WpEKfZw#t^dT|TU&Ac`Vi9Z;^0+0y8TOd`pFs-hqvSE@j+ZY{WPx5JcmtJ$I#N> zh9ysRqVt8-=s8zH1}x-24mtlh$c;9%3<(w;6f8X@_~N^Qa6m9`Qm}yQws!;@h6*$f zwqW?h1^E8#=dpD{uwzQ_%}au#H+gnPJC==fVdX?GHeTsR$9OBcPPC)x+;pL|U(<6d?eS*VV1!uXxV?#Se2D)%; zM>nRQU5ANXn=rk93$DNN4gBT82v)CX!{&9%vHdIEcy{+D9B2wApA?*XUU2QCVB@lO z4ECbhJdmi=im#}1V z3Euyy;P-n3?{s&gr>6(|R~*J84_}5%9>c=%g_xbWQ^Ob9shwrZ@axrEoVthYvbmlEg{_F~VaQSz5{kOO9<>!v$!I#cq z`%kW6=exJi-`|f<1du@BAJDf1AOHGJd>>O^|LZ%uaIVkp9^c%v7oV=v$4}??8t=7t M_nEur_pp_J0qSV9vj6}9 delta 1631 zcmW-hJB}np5Qa13nVH=fh=+s20WfgOKmr3}N?I_G(6UD;i5-V=sY5`|9DxJu1-Jv; zfD3Q{q~(hq>6^$$RAl5Ik^TFpe|~)a`2Fk8pId9MzIpf#)4o`({qXSS+iOku8*qUS z;Pp>$9{zI%{QcTn^K35y+Vb!bZxsY$`c0EDm_ymxuW?{OJRT+DeDrd(cld3arTHu=L08z4|xt$5UebHvHGCrW_N#m2|;qr!(#4H*6W7s=i1$JSA07@ zz2_lVleJp_dtr$(c_`yk_}7`VTF~5uU>zF4RB|`gl#iRPt%K;=6`HNhI%`-l0^_UL z=IiI~YZp-Hv3`k4q7HY|#7eG1NmR!=$#Rk*()PJEr0*ceZaFw)a=_$(+8tbNedafkeJ@#a4yk12it{1Xhsy0QmJ#}excMfEw+R9>mg_TBS@zkje|`tNM2H{ zJ!aLDY->+hcPOa|-u-e2^R8D)awQ-MVtpdDT{lHBmFp3s>W@z(Or1D)iZckJ9IisV^x+u*j25`hwqGLBM?a)F8t zkyw9=>7j^g_}n z0ZyMd4Hq<`SM$*Wz0|04lP4sqF8! vAP_e&q}BQe*|k0-b3;BOf!{{{n}2-y$@{;*`t05N{IKgkf3kQt zd6~aIZ|0f5^J2HH#wQV3ugVRFyxL;WWDG{C{h_?XmTyYT;DuO%8i@vRF>6qVC5Rel zieT)eci1KD`d+=Is5Sa@gc*R>NU9z#-XW&5Ae3PIC_IQzvR$E7*V?=zJF* zGYpS?g5Y6%*L4*WJMx?g?46pO?w_i-UJ4^cef$nLvAHkO%HUIzs diff --git a/assets/voxygen/voxel/npc/saber/male/leg_bl.vox b/assets/voxygen/voxel/npc/saber/male/leg_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..4e7cb872cf92b3b76ef6a7adf2570ab7493bc8ba GIT binary patch literal 1480 zcma)5Z%Cb07=O;6_bS=!me;FZP3@}7dyScYQs4KLb(e~}Iv38g?drtEMqb1=Bt_-2 z*zOv$VVa3L`r|BQjHPX&QuM(jWDLd_5)p)qeTcqBMD*>~^EwtnMjiOQ&w0-Io#%Oe z&pB_~t4DLEh^Xm6_%ItSId$0Feif+sw>oR1<~Dwi!t+fo{q zl-d-eOcI7gLfa&iEriRGBEeFmEn*Hy$0}1WM+nVOmJ$gjNn(!6ROE1EKMC2dgfb=Z zd0vy!#ktsOhSF>`?>SKHGfyjtB(k`}~ zQ?f5z>~o!pArnmH)Mpr`Fj$kpIW+SG$CU>2c}*F%WR1$;e42TjTS(T+wFs_78C);> zl6yc(no23wB{;TIC&x3K+C;zP9HgZ!4b6Szm@a#4t}zMJkOu_-Q&UfdJ~+n5MIII#ustoxQ*CABUVPj zSeZD1mFY96TsaMQ$cv1wT;!fDLSWVe)fu3kCqQ%0fHu5vHxbf$30dQW7j6;~dkA~t zgcSC@HwfiTNoeSGBXTYU@2x(I+8CjElJLeNVdy@eZT2BM>PLPoh>GP9GW$I6kNOat z&q2xU=aJSy$Un!irwG++1bU704<~{qlR--!j1*^LtkQ=WI}2!d4wFP!W&9A0;%By# zgM`Ho3G3GgcW$vCBFxnhzB)qKdXo^XCk(a`#-m>^A>37u7hfm*^0uQ!+b5UulL zxVaEhr%DlPt;AG!4c0Hcj$h`ZD9ZDqx-_Jw_U(mL8o>C4EG%C2*WV zCSHb(g&O?&Qw#boyD@s*gIo7Au!S5%xF6g4PjX)d2sMF!*WY_+@89~r7;M_spPl{` zg8ozlbCO{PlF?eV2dyRlUw>Iy89u0-MRCa-?2+@xh-cvTXN2$D2{#H05eNj(oi~6( z2bVzcVWjq@Vs-k_9iH{^+sV$xI|Y;2Z%^Rl<%>w~OvAk|3$Pl=z(j8DKl<~c^wNOqaOHio^zhxbI$pl z=Y88=J(@d3L`?_6huP4wLDUkC)II4qyfnkbNMsy6771Svyy4ZwP>O7!T(%@_3u#zF zYEzOjl`t$Nw5^1)rEpn7Bv_ouQp{1(vC5RpkwP<+MIymel9=N%i5!mXS3>raP^KWh z&oLogT#Kz{D9u*$nFGZ>^R%*+=G@w_C3B^6SyH4&wVO}Ofbpm&oE4BuqK0RXyysdD-GszOc}Odjbv~=%{;CxCF|v0B=^BGQWqF-lx8SPvVO^P zJW~J4f$az4x2USBLM#@;!wJH{Pd1R}`4hi;JXl|Eg0mLFD>&TvB2FB)5gTa4%19V1 z6DP1TeFl{)r{NBHkZ>0S(V#k_fAeAEHtG%yx2+ zu=pWi{TkuUE%rl%xjMpEM+jSQ5~B5l!8XEp)QgK0cJTIzCbI|y5Ax^bbqNjlnKTeo^o3J)UsL1vq9Lz^Y z#Xj`anrI7p5iQTeXng^eJBv|QU4oCQvoKb{^RV3*f42uirz4oZGK|&hmoV{`AF=jK zBqb#wJ>_W>XSz`m@S|eiURb38j9yc5LMy&`sZTO z^mPM6)7KFHd>QXAeTOUGZsMggBiMg_7LA{-q2=Z#LZJ{I54m|dq!^ivG>~680cXsY~;nH6W?K3g} literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/saber/male/leg_fl.vox b/assets/voxygen/voxel/npc/saber/male/leg_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..78d448acce5987096c6314e57b3f05561e880f3c GIT binary patch literal 1616 zcma)5e@IqW7=F(=_ukLVYHph4kE#3A=Jz>r{+N32mG(6iGqYhXS87qCSRc{~nNsr6 zD7VN(%bcjOAJ&FMG+l|x#{O_JB!Y;DF$P1TKgRwYV~qXx?72omSYx~J@SgWQ?|I+n zdC$3RukOkl5s~K2joWFY#t~_4Y_DGxIQ%RkL_9(4+TGr`N^`;Q6rq*w5oLT?w#pMF zK7&1?#Z_WFCAvp*-)Q4$F|HQNGs^Of;}9WVJBA2++ZW67w5@$*JD##_*U&e{aU3Cp0Yx&Vy@C5 zPbq3rHo>^!TrB$JrPyDwj$#jE8}gujv3xPA$Jp%Y@Qkp3pgn-$yllf62Kj*=_EO}o zwX1js+R~nA!+NxYvNU;dkNaZLT844n1)+>#oVfv4a#ozN($rv6GkF?X#n}sciQ&Ck z-pM1qCNrdqhw(FOb*Rzb^?gyaqCzhJlhSoUh8n zn4b-7eGbDSm?M6O$MG}m@G-&Ehk}JGf?GG}#{`$_1z+tDEWIg+Hwcck2?pcoIK59W z5*O^P7WCE$#u#s@$V9w8jJ}p4j2tXOVrLab4%K4e%MtAg8B1;%A8CzMhnncxe?uUF505$h*xCcTtgvd_LiW&rW7C5WaE4#=i#Sd z@Vzb^Khlngi+z~8dIm#pg^}pULUM94)~7y=lB^VzM#8AvxB*^S1cUEpW9m{EKi-OB z=}s{|X3v=k!R>DZzfBgRFJ6SP{&Fl%*5cQnTG4$r1?R4&;l|wzEFl-|oX4{M1Ds2* zpf>XF`VVj0@VEXijx{gq&sqNzqT#iO=B|MsS%aO`tFg26|LZR=FUN(dag>x^hCgr$ z8T}c!`I+GR4#BmeB19q)9Ln#-wk^|;{ywbjUW>WWhj(})lW!*{2k#UPW0OCG17}ZT z{oZxB^JO9C+A}bem-mnP2YErQ-L1FLeF!){dIkNT&)|dU?{M+kdwA*S05+W(N7JYC zXuW<9u~-Zb1dt>Gf56-m-2eI^zx#Y&|FzFwaQQ!5X)kqj;*lS0K3YG{J}$QM%*yp+ Ga^)|r{+N32mG(6iGqYhXS87qCSRc{~nNsr6 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 literal 3968 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 Dh1D<* diff --git a/assets/voxygen/voxel/npc/tarasque/female/ears.vox b/assets/voxygen/voxel/npc/tarasque/female/ears.vox index cc6122bba7cb22ad3202bda47357a2404f3e7b2f..9ecce1afd02803107fb3c78c0ddbdd8bec8081e6 100644 GIT binary patch delta 289 zcmWlPy-EX75QS&%TDW_SYs@C`XOR$yAR;Cy6f{l16l+-jA`(-|1_eQI>wp%57D~Vi z5)ga`pFq?iDeQa;AHc%qID26D_~x8DdthH3?Y0X~L=@J89Rb~p5w(I&VCTB0OB5VQ_zmpV0`97e$l`3(#6)CX>eM z{1hrnMO4d+*jQgNr)poPr#_+RG2@P9@a!{qCXsn(X3mj6RTL;qJ=3;dtZn*F~rKkEO|nN|O{ zt?c+eDNpHtO|3H`7!5Z)K!8xtuAG+gTHC=H$yvs(f-1 q{QtF-ME`5a^ZmEhoXp02h~KoJ^S@ow{Qutb_WuvwaB1>&=7RuSNKAnM diff --git a/assets/voxygen/voxel/npc/tarasque/female/foot_bl.vox b/assets/voxygen/voxel/npc/tarasque/female/foot_bl.vox index baefa75417efa850a5dad08214e46294280672ea..caa5390b0c570afdbc9d0bd82b9a5c97eafa5ce9 100644 GIT binary patch delta 655 zcmXX?ziSj>5S?G&UT}?P%w3}1Au$j^L~@CUAXo%UaS7k<>Y>EMN)Gf81-Vu@u@ONL z+#ptx&cfbSuu5SeDEj`ne{9{_?(cC@iS7axcx)Ms2~1$gcr1;?Nu#kPNQg>VsRR}snPky8 zn^XdUAqYX_P^wYIMkRBI%z{R%Lw8I+W!4Y$9?0p?-Kb(;KyiGH|1jU+{&s~gX`Yk-0-#a ztMx!0Tp0GI{n_K8zkG7f-@bU{zxMb2^}|J9S~%r-p8N6H8DH)k^_8=WzS=wEmoJ^K z|H!p`=2*+;=DXgSKUtT$bR@m&&b7VUp7mCRQ5Loq zvNf51K$B!=W9ff5z86`1`kwRs-t)bmekrlPIJ?w#PDInW{0xN1BU;E8C+dF|BK>Po z9dv2An1A{6`<-e!Q<@@%5@Tk}PPLAda=wa)Ripp|QYuyo^A8?;-bcU)7y%;yrY2@n z8#B8S4G-uV;Nh)_ls51HdojD&pos7Zxm%YJKE>>ILI>-ZfMOFXbSQX)PQndQf??nQ zNA_KP1yK}9p-_<5kw9d!T}njq2;PY72M;9A*GN`}NOs0aE*8mV^+x~haHE_YuFLLL zQ6BD&q*}R@)6Igq`r?yENI6>Qlv_6C%_tiAPe-=xW7C;$Ke diff --git a/assets/voxygen/voxel/npc/tarasque/female/foot_br.vox b/assets/voxygen/voxel/npc/tarasque/female/foot_br.vox index 933e9317c4cc93dcbf7d7cf2cb8b203e675c151b..957440783848cff396967b1745aecad641673bfc 100644 GIT binary patch delta 655 zcmXYtziU)M5Xa}o?!Mp|&zQSJy+dLkf{5f25kasBnBo%N+tovfiIp7aAqsM>aAG5Z zBKU$>NjeLATfr)Yg`oHsSc#pT&E&h{gU_4YdGnp`%-cQmvoX0Dw-(+IQMuNy5a_EX z8uYi<59bRWTxse*Ter6Rdz`aGck|2hm;#L*qC=FxV<~dXIT}MeCh;Xx06wvV#2hM- z5Gli9QVNHtf+U5C7{!h%brcn6Wr5I@A_S2}5dmC@3gE;U_RxCN_{iduuulq8RrF9s zZz@%C9eODxL0-^b97pjJn0ZPLrVbz2Q$-3KC3XR5#^f^W4g+ zrNMRUZ*JJy`qg?M4=xOQ)AsD~&|W^dXK!CTvS0iA_WI$XEiIg~Mx$ZJXJ>4=bJSMO zF4}7Ej9tETzWyWE8Z*aQHaFk3*8Isj>e7*1*PUxyw>@jEX8lw@H&5JuWp}>(was^* SZ1~OUfxDr5JGbi(Zgc<6hzDi?d5@RU(=mEzDpLc|;3^;za$=LZp8! zs>NJdE*75u{5&RWswhnsk1EX23>{Cctx~bCEVHr-5MZT3rJ#TC;ByH9BVYuK0GLEb zrY1x?N;Ev66Trh;W0f}W0DB?D+MtN=3B|W@M)(vu-U%J7Lk5aXsL-L{F*+GHOmz$c z2RL%?>MLWdl_-kjbvPq3*)C-wxdU%R?t}Z2)isjUL6V(ulG81-75J3T%_M3XDP>pxA)Yz(5(Gk%cu4o3raIp>wz{9=fEEmLk{W zxt5T*cqX5k<9lR~78jpQR-YB8l(ZBQrR3%%FH!_6OHddk)gTvTG$W=-FtwJ{Ec=|P zw@6h-)6C_>?rAZgo~mFo*0ar#%Nzo9*qCEg{xT4&p+I~I9pDnxW^Od{rs~bO(78}2 znosyvs?pSqi-bo=u4bu;=BmJyVU&lbGH1(GEH7%g8F1qqtY)QI8Wd9C6ad3_C=1{t z7cc@8*zjS=67=PXiKnI`9#fAqnVQQ~b>ab2UNTH3*s&Bmh)Tv2nd8J)Ihs&p>YN>u!6A0I)DOEV&Pk%PKbeKZQ-dY>xeYL5>rpI=)@3d zYI*48f8C%fom#+@t_UKHy^dm3t07P=HDfKYUyT}$YJoXX#yzO8{rWP}le4qk>+;IM^VhET<@P)M zD7n(*I%6WZ@>Jo|M<;k{htR9`uCq)?pH27-8Y*}fBf8GfAOhD z`?cpT_v=@m?XSK1!tNP;dvo~MQNM8UxF217a`(Ajd1TZbUpU{7&!6i@2fJVNkAo*Z d`mTTQ=fC~dPrvokzxr;qclGCc_jiBW*?)d-t3&_* delta 474 zcmXYq&r6#@5Qb-Fe0kMLI z@1t~S=tX<`49Y4dKSiaiwn=r%)Z03$HhMnhFfp9=SM`e(eAuKp~sGBv(sCf ziUW=TnR~W(dY#+&h|`Lfqo3?3AxjAZa-1+Ai)#5bSwWSA3}%DeV;{X>SK^M5Awmog z2|_Z0AmV{bSRfOd5*zH9lmxI%B=(Hl8uZ8sZ{pCqRGf#{r!4Tm$NxPZ9!Z%@DsV9n zL6tf#1IQw<2%-oz0x^?IIer8=M|l*pPp%HEV<8GdSIdt+lD>aVy1z>LYm36f?X3)& z1^xc*lMcT0^!nmNZzgB@<8wt1cgvc~<+L|mBfAUCQJgbHe{#~xoXlS?F zjjk~Ei_;HFd0nc^>eAe_Hml*E|C_IUJ=NCHZ(Tnh>*nQ6m}I)4pS9s7=w}zgt8DuY DpuTLu diff --git a/assets/voxygen/voxel/npc/tarasque/female/foot_fr.vox b/assets/voxygen/voxel/npc/tarasque/female/foot_fr.vox index e814ae83ba7392fdb273a79d636cb9aa45a99bfc..03f2da135ae5219e17481183ce384f6942c5131f 100644 GIT binary patch delta 1309 zcmWlYO^Y2x6o%`3RrSnOCu1gwAA^QK0wQ7(6+t%!%wh~(T^bBAx{_Hqh@#x3Lc0*$ zD1sNnmG}$X_yZJIS-5lIfAA-`DWAIV+*5T%;Zla{uy=DW&<=NhPGu zrj+iUJh=VHnDAqo#&{3zzxUwe4QIgbKvK$kvMojDG7+b=&6C22%=d_c{j?SGLQa?q zb>TT7pNg(EQLsJTI@rE!9c+`f4#q+su-L%az<{^e@@8Ah-aPx9!{*4g2vM`Ol6k2t zt%S6cbx9#La#}QN)hv*jYAmK}G}ox9Bo?x`P%N@UVPVlla;j1iQ5GSe#yo2i>Q3Gy zS}xLz&3$Yt9L_q8R4r0-2*#PH;!UJ1qNR$JCYonijXwdUXrM8R4HRs)@MaN7p#!h_8->tl8S)KPbC1;fzGQN*2&xq_H+t)+qjnKtOGfePRdkVh`%Do%8iayE8q1N`Hjsnc4| zyf`@fpqR?=Oj%qw2k))U0jh1!BlAEd z+BO_L6meQLVO9t{pcDQ`3CtYJqzP+iwn=r%>IUFkIR1^47zW7b7w@f*=oN*p~sG>)9$ZN z!~w^E+&#Ume)~2);;aI3^phQ>Vku=Hj#CC=Q7yj~E2xr+!EBIw?4u{_Qrs~zK!^b% zLMTQML_BaQ3uIz5VS_!Bi2$}K#h#H{gC05IO&ofck@FDyj0GO}_`k=)BN>y)2rdRB zsIr2~0I~=yf+#|bK+NPajvqnJQ69zY)9ZcfSct;FEtk$dlD>aVy0=F9t4m?zc9#yC zlluMJCq4Mm*PF`|9goiS$LFdZZdbHWDCo>oS)W!Wb+J~}l_!t%#j{%Y;NKM*jfN&k z5?x{F7m5#ON?NZ@Ykjt;&06^9|CW}&p6cq+Z{4^UYUgSkM!6*H*Hl4D8?(eg_- zi{?^K&*VzabISMgaq8G}Y2@4lX7G zS4<|QX?QmoIfm`nMTno~<6{tIN~5823&Kz$HVScpm?^n?=_XO{i^gJw$*s;+>r|yK zwbZ$YPw90rrK#Ao5m|~rSY$H%YIRa=xI#=9iI^mO+Ax%a&8Cpo7$sUv@RdcS&Pr|Z znD)X%qA`mg1@_AID6ExRP(ys&fZ14UUM45LVS3l-H;{JCKCmlI5(&;iUP5@ojRp8T zJ+ljF!B?r@h0meB?>jZbdw1*Ab9S@Qtz9R35wPd|(s^Tx(LGtX?A@aG;4Sfc#Mm)) zTCT(bEkXQQ6k-p9ZZ=3^R5=S&?o*08~h<)T>x%SR(^ zZyzibxEd4-@6Fi}bU;GMl~&8KnKB_5#43Y?L98`KD#Ph1DeCTFZDzf|SV>I4HDDQa zHbk*Io~A3YbjmY`%^Ptfmg>ZK&l)jTZmA1ds^(mou9jA#-CV=y5>e4Mcb1D&w{xza z{njlaBQPM6bPv9vcR60 zi5}Mi`F1W0Ai7n2iFUN(5A-kp>RWR5m7BNL@&1SF(Y^Q9+jrkNx#Qc{AKiFr{qE~W z>-5d%>rdZ*x&HI`@%qE=+Is!!3+utb!TQXFbL(r*KfT_3`PzEx#!Ks)Z@hZ)mw#|@ z?)>3;>GGBJ@bYsfZ^!jB4R__z#r4X?3+v(8ldt0Uv(J99te^hz-+J%oU)M)}t|xc$ GxBmf7pxyNV delta 908 zcmW-f%W70X5Qgj4eF7s%RD?i4C7>`_C@P9cKoFG>#4~6}h!L_EnG;t+L>LeS-H8K1 zH@XlBt`r2fULL`P&*0KGXuqC;Z@Q|xx~lrG^Y_TJ>Cxt3>*T(O+`78fvdF(Ivc9%` z<4|?@H82GUw(f4P{V)uEpTS**=F$atqphm72_pNzD%A$d+C?RKYmh_-T2UDdlgiM; z+W=3}83cG>YYYO6<>nh9~95f*}2oh%yif0ff7YIdjEu0t!il(Y+Bb`nZp+=Sw z9|lq~mt1EUb#4S!$#V@xGS&dY4shn@d|ck3SmtHms3IiKpj9b}mbKbX~?Dnp4xq=Vr>{!m+Y= hV!EvK$A6k%GZ!DeELWbsFE`(PFY8}^j}NAP{s#-7h3x8LoC){Ny~<8=1kYFbSe6%%<7%Vvp~ z9J)sY1~s~vg-BFZ;z&auOhPKKkctSxA|jGL^&ukq^7MO;6hcBBc+UH-_wwAI z|NHD4rf=DKPgPaRR~()&RNvZARo5LpdZ;NM{H=#tXe0ENw;nybI%2}#?{rmZ-}J3B zljP&ntJG_k``Rq^A;d`xaT+|Mk2A+!TeW>xb$v8?8mxizG#WdL-cF;{vzXnPWYr`% zI}MI~SI)6->si!#60Mzta>l!9=6rT$me>!`&Bl7vXP^5V+dgtXb2cgie>2Uo>7#P9 z6vJ`|ewq|_oSL@YE+=g#$#6dAJ}B;FzZ~Hovq2Vi6<(p~bI9=3lN?eXd_Bp|PO?vZ z)MlD&Jqg;*k}K==G=wk-tR;)i*wJ`3?TqiE50loL<%rB|*7c23la$cKm+x^OgP#Rc zWU6U4g@56zr^%>Ei@ap?B$%={>Kk~)nf!7n_l=$<_Ot0Yui;z# zsgUQmQ|v@vZDwtNx5vlmovfL(3O}Ml%J{GN#Hwk-T0nlM@FhBQb=xO&%jh2Qe_M_5 zAG*UYme}Hp82v1<9~APu=S+!_n?-!ok_VY{i5LdXwTid}Hw{Ifx+8yx0e3Qc4YG0w z%PIP4%e<{iJjxzx#4`s+tm7i6I8Q1J4f`#6W>XIhV}rkJ9fnp%=H#Ex^N|j{As-vt z^&RsT3andY7V8Xotn8vuvG2mTUuR;UOKzj{SdaUrw(|@nsNq~zc4##7+6}pOiv%^w z&9ibt7e?^F|FvIq9$6k+YCqS;aL%KjAF}fEF)~_X=B=@d*6KxLAZ_4b=CL-50L9u4 z0hzIO^MH)V{Q$)}upiJV42ij;4jgsRDvdrGe`xMR?!=)nYN4$e+FA`YzG$_=XVfP0 za;=cBhR$+FYi!d)rwu#}^MIaV(JK4~IcjQz&H?_pHbeAj2tLhYU<_&Qs3%9=#E9G& z7b(PfCY~vUGrrN!Ci2yJb0AY=k+nA3X_M^KXMe_db-*R}Gw*djHlc5bulK4CoNG$% z`Y^S`rU3&|bkh-MT&d4Q-a#pZX^3HFqkA^5)d@8QZ=1}miM-0pQ$lWL^Z}jxtb>Op zKU&7lLii^8xM=ZtXLH|zGYJf7*XpChKMvlTK9Td8+K!<4d}}G&U&ywPkm#_PxOrbOap!;c(mkH$ady~JzxWVBaTh9vrHZP zXb&_6FPefeV5kbS#^ZxBf)@>S?YP%aV=aDD}tF4V21^-T+y98wB(ipM|{C7^swNS1GmiD9Y1$qRtUC__@pVh z2hYGc&$`8T4%~`Gf6f>%*I>6Xb}-F9v=qoTQJChMV33ARSQ?JN9B1?dGH|)mN+^eu>n1>)nKQ= z&IIOU@FtQo35*HgNd{*!I1|8`v_=YDz;1A(0V^VFk#m-OFyO4g-c)qp%`o&lp5CUT zwl!~rFZD=XI(iz%oA0ULanYsZKJS#L=P>jezSI~sp?McPy@lp&aOAqDU+}z{&ebyy z59`%T^IjPG1lz;yDtWBtHN9BNT(8Bi8nms!L^UYZYrU@5_)|fi8gt;N0|OPlQq;E56>p>FZ5r_g z^Txq1C^b0Vat-!)aC5BJ6Z?8_^k1I49!#{oJhQhjCCRh46!o{ORktg zoHNvyLr04amN(CkXNDRxWlqjI>{1#%@kfok+H62?^ryyaYP?2QP2FqiTNV5$bL+rY zH)um0l{i6;x5PuvfxGNkM(wB<>jvZ8vf-?@mOFN#ORhRkFC6I~>6=}oPmN$D@1Ny; zv1QNGTe+Dxo|w}2Fa}HCwDt{Nn{u|S(`S{@fqlC4T-?)+m^0U94llj|NbWLfRW3#~yYXTSyPT4%q=#+JsH^xEONent-5lmi0ljjZbX}A+Kdh1O8MK4Lb zTGm@fABsORx+G$dkd^R%!j^=-i5MjG%IKT9lh)2Mk^>p)u)nn)KX`h(Kwm}t`R>S> zOztF2kA!a%K27*KIYwfi!I#Wis@8bWue#Fr(3cweTjrU0w&1->^bV!JWezp0b?_Zi zXPpHrshw8ymO-sygff({y`^7iO3wl%n-`hiaE&XNOz#Y}$ZDV#J`L28?@c*_ZjDAB z)FQJ*W{VEvQXA-Niq7!KMb~n-+(ReDx5hsmygT&i(4#Fpu*KsCj~_gK@c6;w2VZIc zS#GVTps(PZhKIv`$J`;;VZSZ=r7wXjYZ{pb{uVOGu#kg1HXCfUkb^unJM6LOYS76- z2L2W@@UVr-J~~+RbdW)YL54x5=AJA1a8A?9Y3^%eYGj#m79B128pwr6-`wy!VqHH1 zcSpo!gil6b;~0z?5w8(AGs1@>{51lDMqp6p-k9Ij9ly6bbh-Ab*IiMW=YEG@dg-OI zy1FWVI9bUXzWk(|z4QVfrAJ-JE7%av@trIPJ;SMu`jRuXQm zq&-o|2EI3avyzLKvs``4SdM;lgM9k27t58am0WYGl6OB`$p@e2?loIw$I31_XLYY! z^5{X?c6>>84O?aJgJ;RUAHPgC-&n~xABFclm0bRKCDogde`k>DR43IVOLEuw+vK4O zHp;JFvrXjcm&mEAlEc-bz-k zs^pFvD!F@QlYHWxm7KTlLYZB6tsFjbwOn!NO1b9Zt+H}xm)v>HZn@_@7s~4O`{kaS zUN294>do@!2Uq00vp31*7oH_Y4(yiq+^}D6zPgeVZ?EM3+bVf{QOPAcw#wnX=g5th zyi$%|`6{_#?*C7KOlek z$xr0u`*z8>J9kLVSzfeZot(dIEc^ECk_#_*sl0msE9CBvZyG6$`-@K7H*J*d8#l<(sFUk2ZRPrX z|G)hgU38IrZvXvq{=Ns~vb#PeTTX0|AAhZqU%jo8Z|>eLd-m*+o6f#n-uQ+`q&jh@ zY&^bE9=rFs7=CCgxwB)3eE8f`^4iNz%CXOULSFQa&GPf_oGXtV-6AJJ zTd#Xcj^8Bm!FwN)6JLK+=8ybHzVO3e$d;QI^6sbpDM!BYxE%YX$iagL8yo#$V8QRNg)vcl zQ@Gxykg91(Psarr_fE!J(%tdFx1E>Td*2poYi9*1bt&DA!8dWn`qTt(Ya5H&~+HwyIxJ~4Y+_4HS5_1uF5#cThbC|9XUb!#cmBb(p zy;+p5>IPQyN9)M7f1LCm(A&$%b`M$BXobj9qkHK*GFBw+a8D^4sgT>K#EAb$ae*&)E0P8 z9I%PE2$bCAG75cyER!58K?uBuAVeex$+u(j@J>!((K%qzIc$RTAfc0rT0p{2DtZE; zg4=2EmR95jWsZ|&KI7pBNI(LKNDx>%5P<~&oy&USyPPNC3v9)`0}pNc;%4J+{V#9W zut6s#CiLS|M(=<1x-OahZ~f=&*?R5TPR+kJMlb6FJ67srk8ae7qdWBSiBY|L>M^~1 z=3Bb{a$9?c`*hyd`?dd>6*_QsNX>|-Ib5kZcbl5)ecHRz=-k@q9Vd-`_D!Slu+i>G zqqErey>4{v&X#Vkdv)yDS^9%3ck0#&qr0Yze&d4CV;^vK*L+=gXt6Gx7}Rx_hIPS_ z*}C|}`8xR8B3<>)-8y%_(WTE4`?S$bSB;v7$$vbmnd(tx@)YxLyf=#LuRGGO$; z2BSx}8hsi4uC?>^(8yvvzH7Ojeqyyw>{+j;4{p(G-~X!q{k227Vo9HFTD?ejd||mh zv3I>5-fndAQKM(SZS?9(M%OKzucL!Yb^p41^vKpB-8eg} z2fs9=V_(^`rhx1j%-}1#}6&nmnYZg^*6TYKmM{? zkG#;UJDz-4-}+#l-qc0^xBg$;woES_xL4P#S))H*e^&2Zbxt>)cuwa{&eL~(Vf4eV z8GU{Eavc~L(1S~k>X+}osAlrG&N(tiubjCx!)NAmcNQ+x?<||r`!=4^$6xrK-hN=N zzW?iGdSz^$KH1mzU;Jmk9Bbe1_w>j?)njMQ>*Oyl>5neHtv~(44ZUmSI=%0?v%2GF zS9SNBH*|P-SU)zZCIbDJ+8ahc`t7ayKH`4;FFRl1^mq12G8;e1mi3=zn-2Wx=gofr DuxSp8 diff --git a/assets/voxygen/voxel/npc/tarasque/female/jaw.vox b/assets/voxygen/voxel/npc/tarasque/female/jaw.vox index 52c152e0807ae9b5f960be05fb6a495d54630c3b..cde41851d331197c932efd54dc06c655466edfb5 100644 GIT binary patch delta 1007 zcmW-dO>9hI6o${w_j5-Tr7hYC)kNbbv?HPjnFuAt+k$Wb zQ@#o6A#kmsI6xf+U7)@c7%>q6#EuWgrX6C9Ly&XWLeQ54P+^a?aO!cS2a166{fJa{aOSR50Sgt>rOH^CIrShQX4FLlzGRLi_aLyO3H&H{1^5CI_z^y{ zj;F$!Mv$=PN|HLlAW0UWN{U>OYZ{8p+ofr zxo~=DU&$WtE86TXvWbCKyLElS?%bHPN4KxqpN}8y{*_+a*t5=BT3T$)sy6HIUSXxp zy|!bZ&-M;(v%5Eo_UdV`egCw@eth0)bF*Y`pHcm_>^a=FvfVmY7p;ADmp#HBCw6vO zb*R^_o!DfTkN4U2kwJSndC*=?SM1lb>f-su&JHVftg`my%WPzKtBsWE+jU0o_w>}? gYiaq~OS5)y{+}It^1&v)Sbaf9^y%4i^~_cO1M9=kP5=M^ delta 397 zcmZXN-z$S*6vxkbo_B9)(^}e+AMHhGicFCSS&U}c)L7fw5~U^Hw zFPIWN|U`arWGYbK00)cz1p=31V3~Z2S3jsDtum#TrE3ewZ$t4c6 zK?@Kq-jgiID-C8Vjkq=9fc#-ReV&c>n*irA}RWSqKEwmn-ZY d-@l;Qvoa;_>Xd$JsGz>CO1ekA=s{K1qrWM&c4q(p diff --git a/assets/voxygen/voxel/npc/tarasque/female/leg_bl.vox b/assets/voxygen/voxel/npc/tarasque/female/leg_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..de83509a0709a0ac6c0c7dc6a9e34c592aba4b39 GIT binary patch literal 1620 zcma)5ZD^Hc7`~s6_arUt=+4gEcG}iHY#-IWWShC_EFJS~zUQ26ZRwn%GHHilA0tG^ z!Lk$9vbD9wT=bz9L&CI_Z4~{m5kmzLQHdZ#BqHcnKO&+(SJyi;1`XS-!ak9XNO#kHUckrF?)lrcZ0(NtwU-r1c`wJh+DJ?*i7GKM zB|0j~#zYxcl#VIo#I^FpwU1u=qM}*ThCR$#8uuHeT_q}J#JEZc>)I8qxVG#krqWTR zeR0JeBObPji({f%shAdrW@+qooTyk67i*(pm{Sh-*toGKY7EVC&AhP=Jxw##4rAha z*xDB}%94*)^SCJXv(I4mvqx4P(voEHyHg zYfFB_VxL;r%e-}n?XX7fR!22?Y3id5@u-pZG_ur?IGS2$HE8@f@J#L5z!FmiApDfuHEd_Y2OvE0{YexOA3rSa70A@MXK;=CguCvtWOhU^EfL z;hlo=s%peL+7W4OL1WWKw5`oXqNxCbZ6%o4Q;lS29VYrVVD61)@bgpx<%K~sROg}f z$r9}8szZN^Ahlg^>?OhZ5kYNkHX>z3=&5}a0~^<&t1O7b+8hiw7h`%y1)3VF@P0!G zBejCw%H?=H*^A*<`Y`#{i}>Z@MT|XHfa3gIq@|@{b^1zF?!x>Yr%*5hp^S6{?q7k<`sL`X z`v3FS)YRaex?`xQI)U{=uOcgzg$o}GZfp~rDk(u}X({>&_hIv^G6pg*d-TpX zJebY9lbef|i^uWA`Z4q#IgHgiGI8beV$61DVJtuYU;2CdJglu9mod->95{LssZXZy z_PKBI-Z$5f)jxvWm;XfTN9WOd9SDcRxGjJzqv3a$Yl2%}-QjnO_v^pv`~?^Ov&H`S XwjSJ#z2e>VQhur2;-1CpCHBf+7A-`- literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tarasque/female/leg_br.vox b/assets/voxygen/voxel/npc/tarasque/female/leg_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..875d1ba12fd6c105125313777e352acabc8d8fe8 GIT binary patch literal 1620 zcma)5ZD^Hc7`~s6_cU6w>CVpFM{{k?_EGIiwwbHW(xGSbea}0WOXn1oNjnVt7$I{U zEIVPDEp3fy^r03q!dyAFQS@Vt5EX`qN(3Py5kbHD5fS~ly55;FNT?Ss?vLmGxbFLX zp3eB@qEQiXn`0h@L_;DSv96Z;0)w9=?)e*=w{*oab>J0A5yr8;G7?uxd@aV+qCKN5 zVO*oMtCiy`6>?RGQioild8Uo041G4_DbcP3aiZAU_?mT$){IlkwVqZcu9c2!=4$4U z4QngUIL1{zgYJ`TCEkJjXBG<8a=d~H-*5yo&H zO{s-`@r-e3b5_H>8QPX-?4iZF;)HzVXz~qq6ZGf42<@;2cV;wmP0)+5mid=1HXmCn4NVId}m`*@Y<@e zbK7bp_qJi`Pz+PUJ27?a1vE@OkIZNUxjTwbw7(MNCssjP97x~2kW)(_=Of5;1vz^J z1xE!Be<4Wg6J(?WS+pZ(1S{QiwC>47*MTg&IsE|ECI#&yf?eZ+eOH*RkpaQ@yMoyZ{f-g4;ZagbUtP>1$3XUcsIJiSlSyKzY zVnT33q6?Nw-Ls=@nB1vpYK=&8=Y z>&YGrz0!;0Z@q|LE?&g&bHykvDnxpEI+kWFMpb?$YRZdITfG90H9Uf&uN7eYWHG+K zRDm0pEAat)PM#LbeJ%L$nqV+dhU2L^oIkq;zy8pH{==CV`ZSDlS8{O!%h1Jr%+KG$ zz3de%UJ^zmrvTxcJRIj<7S6wC!-{|A|7^gWpFiMK5XnYCb{4|-FT$qA3~Z|T|MSY|8>qMIRDNT%9C5WamNl0 S@91}vck?aGS*YJ7R{jEH>qMUb literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tarasque/female/leg_fl.vox b/assets/voxygen/voxel/npc/tarasque/female/leg_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..38835efb4d5f872e8c4854403f7a5f1bedffc815 GIT binary patch literal 2068 zcma)5ZD^Hc7`~sc_dU9_>CVpFM{`YQ`>6IM+ssun9lFi;yk{<#&JR>3?J(?Pgy=X} zwy?~Ww#GF2Pz#YTEoB=;KWv1kAR;Oegos20{R)bR{#;#W!x$vg3m5l&-OqhL&wbs` z^LB>oibg~vSk@A!5s8R&v~)G!H%UZ1+L=>fS+~Bc<(ipV_>IQ;I$?c3G`^ouo(rt! z$BpNQI>NZ~6UO2n3k{(O=g1wo z^AehHmYgt_oYooE62^FOZM?u4o}s;jA)Kej+I>(K^d|%N$xwD8d=m5r)u&GK^`~YQ{A4XszNtid?wnr}dlA z5H4akZxh!_bKWLywGOq`+}E)mu3P5v-W2yx=^mX)DCYvrS?P!kbXuP^p;k69it`cf zp>*hs39T~hgZZ4dc$~k}yf4lB($qrBxbbLxa^abpzTtW4e5d(77&n@4L{qCyh|z)K z+fw9Wbzs=5WxnCvnh1M{n85mm^Q0c%FqfPf452-8Lg-s(I8(-G6(RJkWu0XmwJ7>x zS!tr*5MW7MQ+6(QPCcY1!zQ9O(NX<Sf zgYbUoGf$C=R-Cuuy(wx`ff(*%$Y~8BmfWgP(;7k?xg&Rqx>P8Nv-DJ;J;nFS81F+V zo-Jw1nK7n)#acb0I z5d9OsN28dS2$23xw~Qg)R)wvbmLj#Y4P*OTFgCOmV~1Zr{n+!!Y>FXwOA(6pRG{qW z5=gUy^v;AFp9{GVLuMez*&!%6BzX7>L8MnOYe0}i9y=vi9Auz%M<%-VX5r282e2X~ zXdf1AJ0sYAjkWE0C`=Y(VX7Q;qfN-~i=uci59KH3qx#}Q$k`}ZxR-m62pZ1|{htV*w7<3A(Fh;q_EE24CsHk+)vNFPAQ1=(%E)6cr*PBLnlY=Abe^ z6V+wKsHs|n$Lb%!q1Os<=2$Vlzg&)6S1a%V&m27=xbn5&#~XtFWGRje)Z)VF<@oi7 z4)h(!#NekKe2FsVP? zQ$Z{n1=(4M-ai{_8)ji`_5asjTU(2F>W`wb`Z$*Ee-*g{xw!bT;N}LwsnSxEm6f4q z!A`7Rbq+GnkLp pe>K(LZN9JnTIWwV`JYX<$2M%lU7lXN>)*@XD>l7mx_^&c`5VyZZae@0 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tarasque/female/leg_fr.vox b/assets/voxygen/voxel/npc/tarasque/female/leg_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..3dcbe012b521b75e5597ac3123a5746a5a481d2d GIT binary patch literal 2068 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 delta 349 zcmew&xr4Jl%s)b58Uq7^ucN0QkYZTE!oU#h8Rg0Y;s5~?5HkZYClE(OMtPP1X%LVB zlT7Z63_#4t=*9rVjEqb`nh8iV18HU;%>txZfHW(R24V(~IyN^(FwO1`G(y*nk%P|0m@s{jZ6Z{?E@@V~yaz<)zcrT=DnYX7Z_G$&u?3gmXygqt;4pIenrPJ;ixmXhdyEqT8G)|!)( rxDWB07Igl%YnuPxd*1&4!5c13Hs%SPe1V5$@&+Kjz@t2QGmj$xE51~! diff --git a/assets/voxygen/voxel/npc/tarasque/female/torso_back.vox b/assets/voxygen/voxel/npc/tarasque/female/torso_back.vox index a81b82f38481f5a219303fd7084ae565eca64cfe..da1f32367dfe673a169f0a30b161d7b3f6b4b9da 100644 GIT binary patch literal 5280 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 J{x)abe*w8?JShMG literal 3800 zcma);eW;dq8ON{R`|p09W|q$RmfBI5=NMbQq~4FV&YH5F<6Jn?Hg&SaMmwnI3<*&= zEH-P*hRvC{MK8{3jIm~$s1*HSQZfc(3>y)Ij1kel{SncBSD)({3n8N(_;TI%@AbOA z-|M=bd)t@qTX0fDHr+mQ4@Q1BMP$p!_6;Ai7k(XJ&s}ie{o6-Q*Z{wud680bTXOD| zl-nkzUan2Ac5*LuOIw4CH$mFeDQ#-pc=54UI<;3qY@6iT5@n)B)G*$LAVKf%TGDskTz?`kISZf@O zo_E{l3~n?P_Eq-bceMS)P(y;d*o(x}gxE`++(z>kpAx>t%(Lw&*n-WV@|>_XAF&;o zh;R@?;6CMB{Dus6VKfNO90X&R6pHGAsK z@2Lr!{GL*HF8CHb`RPXr{xreU1DLPORV>d9{#Q`UI^WCGXKi>VKHonZp3vTdY<$rN z9Q{k^M}b`Nz|rS~KIiC(LQkylmEk6mdjSmsv3To|jo;(wU9R#Bzb=P1pj$vkPtFB& zu1#pY*@|V{k?W-fVxgB6EPF~0djcAJP?PmI#>u5(eJ+HaV_fLLl{_n;A@3?EKJ)_m zduq&4v&Ds;P`?4~eL&~nMkKgiKyyzob3i=vXzm;}M@)hEz4?wmfgV^H_ZF9NX8pDa zdmP+4>MfvY;fx9z&hhXb(BGp|K=(jSc(ih87SP87hgO1S0c|{RX3^52Wo_u+_$j6% z99H~o@YkVzrN#pqdf-e?I2UX%9f3pJKpqBs^ai*LdcoXt~b9t7an<3XUN19j*)&w~IQcX$w} zS;yTT1he=PfXBB${d?1$+7I*zkLC{T1Dbo_KtO8`91!v#pt(nLhZPX$NgmAubs4BJ zPrX%qD+cqMcj?!D;r`5>k-M$m@*iUS(&GX(>xnH;=b0WH=!cc>0nh(`pjSHjrUwBy z>!~0B$A7H{fnMmi!-D`EXL~!JUhBBS+dW-+2uL7<3X0tU99&f3OshUO#DPzR|E7X< z`0K2O&2OyZ|Dz$l8n|lkqrnH^U3eGXh4+SBZOEa9+7h0HXW`lR@8)c5;GDqsMaE`q z;9DSrNKcCR744oZ?31>kW*hQVu+q<4{Nn#Nz*p_BCx7^E$(_nLaaH)X*qHOc(JM0l zb*a^RoR@3u1-=C`@YI0Aze21YpEG9% zQ1Gp=&SO2c5U=N3G55dSSi^e;iMze|$GO4Q*_r*b`35B3d++?x?ey9HZ_S!DIypJ1 z9~>9G>qnP$;q-s%-=|O4OP4mO{azb6ulH>HoIdoxTAkd#QO_S4(euY2((}(hrmN3S z=+xmEI_tp&y5RApI(Vv8*^pFrcT`S)Qswdtow`Z%roEzbkBNTvb%h_3 zI`qyqF-7IgcESgos`M ze;6CnzhF-s5Iyrf(MvCjzV!z0!=k4*i2m|k(W_q<9lKNXz&6oiV>9%r2SrbgiSAk> zx_`as3yg1GIa|jz4CtZFOZ4O;%XM<=YCZYr9eU~Muj*f48q=iDTXn;_W%`44 zbM@I(@UeEP9{cugJvgzwZ!f&^v>qQH(8(QhwA=0K%xRy{TjxyGWrG8{>Xw_ew|r2K zeQU0sd2vAh_|}kKeP^lukUP)4B>MKRMgRPJ(L-ZP^o7GK^zv(W=->XdMfW{3Rgb#WM* zLwe)B8}-8TA8PpcY;tGbJpJb46MEa)8d-k{b{oh>C&p&oVZ+r5TZv62@-SYYs9UdOm4@6Ze(0^#S tBKrQXKJ@Q>^6P)iQ-u9GyVkzAW2b)fZj&E9U(a4|?AkroK3`|8{0m%0_;vsQ diff --git a/assets/voxygen/voxel/npc/tarasque/female/torso_front.vox b/assets/voxygen/voxel/npc/tarasque/female/torso_front.vox index ccf949c9e8173be467f2d3996cf126c0b427b8e0..2f7a4891991323ab814883a9fd88efa192b78668 100644 GIT binary patch literal 10088 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 bceEeh_m@Au{z>gmdiK(9UV8l#`VRjMaqj+| literal 4744 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 diff --git a/assets/voxygen/voxel/npc/tarasque/male/ears.vox b/assets/voxygen/voxel/npc/tarasque/male/ears.vox index cc6122bba7cb22ad3202bda47357a2404f3e7b2f..9ecce1afd02803107fb3c78c0ddbdd8bec8081e6 100644 GIT binary patch delta 289 zcmWlPy-EX75QS&%TDW_SYs@C`XOR$yAR;Cy6f{l16l+-jA`(-|1_eQI>wp%57D~Vi z5)ga`pFq?iDeQa;AHc%qID26D_~x8DdthH3?Y0X~L=@J89Rb~p5w(I&VCTB0OB5VQ_zmpV0`97e$l`3(#6)CX>eM z{1hrnMO4d+*jQgNr)poPr#_+RG2@P9@a!{qCXsn(X3mj6RTL;qJ=3;dtZn*F~rKkEO|nN|O{ zt?c+eDNpHtO|3H`7!5Z)K!8xtuAG+gTHC=H$yvs(f-1 q{QtF-ME`5a^ZmEhoXp02h~KoJ^S@ow{Qutb_WuvwaB1>&=7RuSNKAnM diff --git a/assets/voxygen/voxel/npc/tarasque/male/foot_bl.vox b/assets/voxygen/voxel/npc/tarasque/male/foot_bl.vox index baefa75417efa850a5dad08214e46294280672ea..caa5390b0c570afdbc9d0bd82b9a5c97eafa5ce9 100644 GIT binary patch delta 655 zcmXX?ziSj>5S?G&UT}?P%w3}1Au$j^L~@CUAXo%UaS7k<>Y>EMN)Gf81-Vu@u@ONL z+#ptx&cfbSuu5SeDEj`ne{9{_?(cC@iS7axcx)Ms2~1$gcr1;?Nu#kPNQg>VsRR}snPky8 zn^XdUAqYX_P^wYIMkRBI%z{R%Lw8I+W!4Y$9?0p?-Kb(;KyiGH|1jU+{&s~gX`Yk-0-#a ztMx!0Tp0GI{n_K8zkG7f-@bU{zxMb2^}|J9S~%r-p8N6H8DH)k^_8=WzS=wEmoJ^K z|H!p`=2*+;=DXgSKUtT$bR@m&&b7VUp7mCRQ5Loq zvNf51K$B!=W9ff5z86`1`kwRs-t)bmekrlPIJ?w#PDInW{0xN1BU;E8C+dF|BK>Po z9dv2An1A{6`<-e!Q<@@%5@Tk}PPLAda=wa)Ripp|QYuyo^A8?;-bcU)7y%;yrY2@n z8#B8S4G-uV;Nh)_ls51HdojD&pos7Zxm%YJKE>>ILI>-ZfMOFXbSQX)PQndQf??nQ zNA_KP1yK}9p-_<5kw9d!T}njq2;PY72M;9A*GN`}NOs0aE*8mV^+x~haHE_YuFLLL zQ6BD&q*}R@)6Igq`r?yENI6>Qlv_6C%_tiAPe-=xW7C;$Ke diff --git a/assets/voxygen/voxel/npc/tarasque/male/foot_br.vox b/assets/voxygen/voxel/npc/tarasque/male/foot_br.vox index 933e9317c4cc93dcbf7d7cf2cb8b203e675c151b..957440783848cff396967b1745aecad641673bfc 100644 GIT binary patch delta 655 zcmXYtziU)M5Xa}o?!Mp|&zQSJy+dLkf{5f25kasBnBo%N+tovfiIp7aAqsM>aAG5Z zBKU$>NjeLATfr)Yg`oHsSc#pT&E&h{gU_4YdGnp`%-cQmvoX0Dw-(+IQMuNy5a_EX z8uYi<59bRWTxse*Ter6Rdz`aGck|2hm;#L*qC=FxV<~dXIT}MeCh;Xx06wvV#2hM- z5Gli9QVNHtf+U5C7{!h%brcn6Wr5I@A_S2}5dmC@3gE;U_RxCN_{iduuulq8RrF9s zZz@%C9eODxL0-^b97pjJn0ZPLrVbz2Q$-3KC3XR5#^f^W4g+ zrNMRUZ*JJy`qg?M4=xOQ)AsD~&|W^dXK!CTvS0iA_WI$XEiIg~Mx$ZJXJ>4=bJSMO zF4}7Ej9tETzWyWE8Z*aQHaFk3*8Isj>e7*1*PUxyw>@jEX8lw@H&5JuWp}>(was^* SZ1~OUfxDr5JGbi(Zgc<6hzDi?d5@RU(=mEzDpLc|;3^;za$=LZp8! zs>NJdE*75u{5&RWswhnsk1EX23>{Cctx~bCEVHr-5MZT3rJ#TC;ByH9BVYuK0GLEb zrY1x?N;Ev66Trh;W0f}W0DB?D+MtN=3B|W@M)(vu-U%J7Lk5aXsL-L{F*+GHOmz$c z2RL%?>MLWdl_-kjbvPq3*)C-wxdU%R?t}Z2)isjUL6V(ulG81-75J3T%_M3XDP>pxA)Yz(5(Gk%cu4o3raIp>wz{9=fEEmLk{W zxt5T*cqX5k<9lR~78jpQR-YB8l(ZBQrR3%%FH!_6OHddk)gTvTG$W=-FtwJ{Ec=|P zw@6h-)6C_>?rAZgo~mFo*0ar#%Nzo9*qCEg{xT4&p+I~I9pDnxW^Od{rs~bO(78}2 znosyvs?pSqi-bo=u4bu;=BmJyVU&lbGH1(GEH7%g8F1qqtY)QI8Wd9C6ad3_C=1{t z7cc@8*zjS=67=PXiKnI`9#fAqnVQQ~b>ab2UNTH3*s&Bmh)Tv2nd8J)Ihs&p>YN>u!6A0I)DOEV&Pk%PKbeKZQ-dY>xeYL5>rpI=)@3d zYI*48f8C%fom#+@t_UKHy^dm3t07P=HDfKYUyT}$YJoXX#yzO8{rWP}le4qk>+;IM^VhET<@P)M zD7n(*I%6WZ@>Jo|M<;k{htR9`uCq)?pH27-8Y*}fBf8GfAOhD z`?cpT_v=@m?XSK1!tNP;dvo~MQNM8UxF217a`(Ajd1TZbUpU{7&!6i@2fJVNkAo*Z d`mTTQ=fC~dPrvokzxr;qclGCc_jiBW*?)d-t3&_* delta 474 zcmXYq&r6#@5Qb-Fe0kMLI z@1t~S=tX<`49Y4dKSiaiwn=r%)Z03$HhMnhFfp9=SM`e(eAuKp~sGBv(sCf ziUW=TnR~W(dY#+&h|`Lfqo3?3AxjAZa-1+Ai)#5bSwWSA3}%DeV;{X>SK^M5Awmog z2|_Z0AmV{bSRfOd5*zH9lmxI%B=(Hl8uZ8sZ{pCqRGf#{r!4Tm$NxPZ9!Z%@DsV9n zL6tf#1IQw<2%-oz0x^?IIer8=M|l*pPp%HEV<8GdSIdt+lD>aVy1z>LYm36f?X3)& z1^xc*lMcT0^!nmNZzgB@<8wt1cgvc~<+L|mBfAUCQJgbHe{#~xoXlS?F zjjk~Ei_;HFd0nc^>eAe_Hml*E|C_IUJ=NCHZ(Tnh>*nQ6m}I)4pS9s7=w}zgt8DuY DpuTLu diff --git a/assets/voxygen/voxel/npc/tarasque/male/foot_fr.vox b/assets/voxygen/voxel/npc/tarasque/male/foot_fr.vox index e814ae83ba7392fdb273a79d636cb9aa45a99bfc..03f2da135ae5219e17481183ce384f6942c5131f 100644 GIT binary patch delta 1309 zcmWlYO^Y2x6o%`3RrSnOCu1gwAA^QK0wQ7(6+t%!%wh~(T^bBAx{_Hqh@#x3Lc0*$ zD1sNnmG}$X_yZJIS-5lIfAA-`DWAIV+*5T%;Zla{uy=DW&<=NhPGu zrj+iUJh=VHnDAqo#&{3zzxUwe4QIgbKvK$kvMojDG7+b=&6C22%=d_c{j?SGLQa?q zb>TT7pNg(EQLsJTI@rE!9c+`f4#q+su-L%az<{^e@@8Ah-aPx9!{*4g2vM`Ol6k2t zt%S6cbx9#La#}QN)hv*jYAmK}G}ox9Bo?x`P%N@UVPVlla;j1iQ5GSe#yo2i>Q3Gy zS}xLz&3$Yt9L_q8R4r0-2*#PH;!UJ1qNR$JCYonijXwdUXrM8R4HRs)@MaN7p#!h_8->tl8S)KPbC1;fzGQN*2&xq_H+t)+qjnKtOGfePRdkVh`%Do%8iayE8q1N`Hjsnc4| zyf`@fpqR?=Oj%qw2k))U0jh1!BlAEd z+BO_L6meQLVO9t{pcDQ`3CtYJqzP+iwn=r%>IUFkIR1^47zW7b7w@f*=oN*p~sG>)9$ZN z!~w^E+&#Ume)~2);;aI3^phQ>Vku=Hj#CC=Q7yj~E2xr+!EBIw?4u{_Qrs~zK!^b% zLMTQML_BaQ3uIz5VS_!Bi2$}K#h#H{gC05IO&ofck@FDyj0GO}_`k=)BN>y)2rdRB zsIr2~0I~=yf+#|bK+NPajvqnJQ69zY)9ZcfSct;FEtk$dlD>aVy0=F9t4m?zc9#yC zlluMJCq4Mm*PF`|9goiS$LFdZZdbHWDCo>oS)W!Wb+J~}l_!t%#j{%Y;NKM*jfN&k z5?x{F7m5#ON?NZ@Ykjt;&06^9|CW}&p6cq+Z{4^UYUgSkM!6*H*Hl4D8?(eg_- zi{?^K&*VzabISMgaq8G}Y2@4lX7G zS4<|QX?QmoIfm`nMTno~<6{tIN~5823&Kz$HVScpm?^n?=_XO{i^gJw$*s;+>r|yK zwbZ$YPw90rrK#Ao5m|~rSY$H%YIRa=xI#=9iI^mO+Ax%a&8Cpo7$sUv@RdcS&Pr|Z znD)X%qA`mg1@_AID6ExRP(ys&fZ14UUM45LVS3l-H;{JCKCmlI5(&;iUP5@ojRp8T zJ+ljF!B?r@h0meB?>jZbdw1*Ab9S@Qtz9R35wPd|(s^Tx(LGtX?A@aG;4Sfc#Mm)) zTCT(bEkXQQ6k-p9ZZ=3^R5=S&?o*08~h<)T>x%SR(^ zZyzibxEd4-@6Fi}bU;GMl~&8KnKB_5#43Y?L98`KD#Ph1DeCTFZDzf|SV>I4HDDQa zHbk*Io~A3YbjmY`%^Ptfmg>ZK&l)jTZmA1ds^(mou9jA#-CV=y5>e4Mcb1D&w{xza z{njlaBQPM6bPv9vcR60 zi5}Mi`F1W0Ai7n2iFUN(5A-kp>RWR5m7BNL@&1SF(Y^Q9+jrkNx#Qc{AKiFr{qE~W z>-5d%>rdZ*x&HI`@%qE=+Is!!3+utb!TQXFbL(r*KfT_3`PzEx#!Ks)Z@hZ)mw#|@ z?)>3;>GGBJ@bYsfZ^!jB4R__z#r4X?3+v(8ldt0Uv(J99te^hz-+J%oU)M)}t|xc$ GxBmf7pxyNV delta 908 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 DuxSp8 diff --git a/assets/voxygen/voxel/npc/tarasque/male/jaw.vox b/assets/voxygen/voxel/npc/tarasque/male/jaw.vox index 52c152e0807ae9b5f960be05fb6a495d54630c3b..cde41851d331197c932efd54dc06c655466edfb5 100644 GIT binary patch delta 1007 zcmW-dO>9hI6o${w_j5-Tr7hYC)kNbbv?HPjnFuAt+k$Wb zQ@#o6A#kmsI6xf+U7)@c7%>q6#EuWgrX6C9Ly&XWLeQ54P+^a?aO!cS2a166{fJa{aOSR50Sgt>rOH^CIrShQX4FLlzGRLi_aLyO3H&H{1^5CI_z^y{ zj;F$!Mv$=PN|HLlAW0UWN{U>OYZ{8p+ofr zxo~=DU&$WtE86TXvWbCKyLElS?%bHPN4KxqpN}8y{*_+a*t5=BT3T$)sy6HIUSXxp zy|!bZ&-M;(v%5Eo_UdV`egCw@eth0)bF*Y`pHcm_>^a=FvfVmY7p;ADmp#HBCw6vO zb*R^_o!DfTkN4U2kwJSndC*=?SM1lb>f-su&JHVftg`my%WPzKtBsWE+jU0o_w>}? gYiaq~OS5)y{+}It^1&v)Sbaf9^y%4i^~_cO1M9=kP5=M^ delta 397 zcmZXN-z$S*6vxkbo_B9)(^}e+AMHhGicFCSS&U}c)L7fw5~U^Hw zFPIWN|U`arWGYbK00)cz1p=31V3~Z2S3jsDtum#TrE3ewZ$t4c6 zK?@Kq-jgiID-C8Vjkq=9fc#-ReV&c>n*irA}RWSqKEwmn-ZY d-@l;Qvoa;_>Xd$JsGz>CO1ekA=s{K1qrWM&c4q(p diff --git a/assets/voxygen/voxel/npc/tarasque/male/leg_bl.vox b/assets/voxygen/voxel/npc/tarasque/male/leg_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..de83509a0709a0ac6c0c7dc6a9e34c592aba4b39 GIT binary patch literal 1620 zcma)5ZD^Hc7`~s6_arUt=+4gEcG}iHY#-IWWShC_EFJS~zUQ26ZRwn%GHHilA0tG^ z!Lk$9vbD9wT=bz9L&CI_Z4~{m5kmzLQHdZ#BqHcnKO&+(SJyi;1`XS-!ak9XNO#kHUckrF?)lrcZ0(NtwU-r1c`wJh+DJ?*i7GKM zB|0j~#zYxcl#VIo#I^FpwU1u=qM}*ThCR$#8uuHeT_q}J#JEZc>)I8qxVG#krqWTR zeR0JeBObPji({f%shAdrW@+qooTyk67i*(pm{Sh-*toGKY7EVC&AhP=Jxw##4rAha z*xDB}%94*)^SCJXv(I4mvqx4P(voEHyHg zYfFB_VxL;r%e-}n?XX7fR!22?Y3id5@u-pZG_ur?IGS2$HE8@f@J#L5z!FmiApDfuHEd_Y2OvE0{YexOA3rSa70A@MXK;=CguCvtWOhU^EfL z;hlo=s%peL+7W4OL1WWKw5`oXqNxCbZ6%o4Q;lS29VYrVVD61)@bgpx<%K~sROg}f z$r9}8szZN^Ahlg^>?OhZ5kYNkHX>z3=&5}a0~^<&t1O7b+8hiw7h`%y1)3VF@P0!G zBejCw%H?=H*^A*<`Y`#{i}>Z@MT|XHfa3gIq@|@{b^1zF?!x>Yr%*5hp^S6{?q7k<`sL`X z`v3FS)YRaex?`xQI)U{=uOcgzg$o}GZfp~rDk(u}X({>&_hIv^G6pg*d-TpX zJebY9lbef|i^uWA`Z4q#IgHgiGI8beV$61DVJtuYU;2CdJglu9mod->95{LssZXZy z_PKBI-Z$5f)jxvWm;XfTN9WOd9SDcRxGjJzqv3a$Yl2%}-QjnO_v^pv`~?^Ov&H`S XwjSJ#z2e>VQhur2;-1CpCHBf+7A-`- literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tarasque/male/leg_br.vox b/assets/voxygen/voxel/npc/tarasque/male/leg_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..875d1ba12fd6c105125313777e352acabc8d8fe8 GIT binary patch literal 1620 zcma)5ZD^Hc7`~s6_cU6w>CVpFM{{k?_EGIiwwbHW(xGSbea}0WOXn1oNjnVt7$I{U zEIVPDEp3fy^r03q!dyAFQS@Vt5EX`qN(3Py5kbHD5fS~ly55;FNT?Ss?vLmGxbFLX zp3eB@qEQiXn`0h@L_;DSv96Z;0)w9=?)e*=w{*oab>J0A5yr8;G7?uxd@aV+qCKN5 zVO*oMtCiy`6>?RGQioild8Uo041G4_DbcP3aiZAU_?mT$){IlkwVqZcu9c2!=4$4U z4QngUIL1{zgYJ`TCEkJjXBG<8a=d~H-*5yo&H zO{s-`@r-e3b5_H>8QPX-?4iZF;)HzVXz~qq6ZGf42<@;2cV;wmP0)+5mid=1HXmCn4NVId}m`*@Y<@e zbK7bp_qJi`Pz+PUJ27?a1vE@OkIZNUxjTwbw7(MNCssjP97x~2kW)(_=Of5;1vz^J z1xE!Be<4Wg6J(?WS+pZ(1S{QiwC>47*MTg&IsE|ECI#&yf?eZ+eOH*RkpaQ@yMoyZ{f-g4;ZagbUtP>1$3XUcsIJiSlSyKzY zVnT33q6?Nw-Ls=@nB1vpYK=&8=Y z>&YGrz0!;0Z@q|LE?&g&bHykvDnxpEI+kWFMpb?$YRZdITfG90H9Uf&uN7eYWHG+K zRDm0pEAat)PM#LbeJ%L$nqV+dhU2L^oIkq;zy8pH{==CV`ZSDlS8{O!%h1Jr%+KG$ zz3de%UJ^zmrvTxcJRIj<7S6wC!-{|A|7^gWpFiMK5XnYCb{4|-FT$qA3~Z|T|MSY|8>qMIRDNT%9C5WamNl0 S@91}vck?aGS*YJ7R{jEH>qMUb literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tarasque/male/leg_fl.vox b/assets/voxygen/voxel/npc/tarasque/male/leg_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..38835efb4d5f872e8c4854403f7a5f1bedffc815 GIT binary patch literal 2068 zcma)5ZD^Hc7`~sc_dU9_>CVpFM{`YQ`>6IM+ssun9lFi;yk{<#&JR>3?J(?Pgy=X} zwy?~Ww#GF2Pz#YTEoB=;KWv1kAR;Oegos20{R)bR{#;#W!x$vg3m5l&-OqhL&wbs` z^LB>oibg~vSk@A!5s8R&v~)G!H%UZ1+L=>fS+~Bc<(ipV_>IQ;I$?c3G`^ouo(rt! z$BpNQI>NZ~6UO2n3k{(O=g1wo z^AehHmYgt_oYooE62^FOZM?u4o}s;jA)Kej+I>(K^d|%N$xwD8d=m5r)u&GK^`~YQ{A4XszNtid?wnr}dlA z5H4akZxh!_bKWLywGOq`+}E)mu3P5v-W2yx=^mX)DCYvrS?P!kbXuP^p;k69it`cf zp>*hs39T~hgZZ4dc$~k}yf4lB($qrBxbbLxa^abpzTtW4e5d(77&n@4L{qCyh|z)K z+fw9Wbzs=5WxnCvnh1M{n85mm^Q0c%FqfPf452-8Lg-s(I8(-G6(RJkWu0XmwJ7>x zS!tr*5MW7MQ+6(QPCcY1!zQ9O(NX<Sf zgYbUoGf$C=R-Cuuy(wx`ff(*%$Y~8BmfWgP(;7k?xg&Rqx>P8Nv-DJ;J;nFS81F+V zo-Jw1nK7n)#acb0I z5d9OsN28dS2$23xw~Qg)R)wvbmLj#Y4P*OTFgCOmV~1Zr{n+!!Y>FXwOA(6pRG{qW z5=gUy^v;AFp9{GVLuMez*&!%6BzX7>L8MnOYe0}i9y=vi9Auz%M<%-VX5r282e2X~ zXdf1AJ0sYAjkWE0C`=Y(VX7Q;qfN-~i=uci59KH3qx#}Q$k`}ZxR-m62pZ1|{htV*w7<3A(Fh;q_EE24CsHk+)vNFPAQ1=(%E)6cr*PBLnlY=Abe^ z6V+wKsHs|n$Lb%!q1Os<=2$Vlzg&)6S1a%V&m27=xbn5&#~XtFWGRje)Z)VF<@oi7 z4)h(!#NekKe2FsVP? zQ$Z{n1=(4M-ai{_8)ji`_5asjTU(2F>W`wb`Z$*Ee-*g{xw!bT;N}LwsnSxEm6f4q z!A`7Rbq+GnkLp pe>K(LZN9JnTIWwV`JYX<$2M%lU7lXN>)*@XD>l7mx_^&c`5VyZZae@0 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tarasque/male/leg_fr.vox b/assets/voxygen/voxel/npc/tarasque/male/leg_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..3dcbe012b521b75e5597ac3123a5746a5a481d2d GIT binary patch literal 2068 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 delta 349 zcmew&xr4Jl%s)b58Uq7^ucN0QkYZTE!oU#h8Rg0Y;s5~?5HkZYClE(OMtPP1X%LVB zlT7Z63_#4t=*9rVjEqb`nh8iV18HU;%>txZfHW(R24V(~IyN^(FwO1`G(y*nk%P|0m@s{jZ6Z{?E@@V~yaz<)zcrT=DnYX7Z_G$&u?3gmXygqt;4pIenrPJ;ixmXhdyEqT8G)|!)( rxDWB07Igl%YnuPxd*1&4!5c13Hs%SPe1V5$@&+Kjz@t2QGmj$xE51~! diff --git a/assets/voxygen/voxel/npc/tarasque/male/torso_back.vox b/assets/voxygen/voxel/npc/tarasque/male/torso_back.vox index a81b82f38481f5a219303fd7084ae565eca64cfe..da1f32367dfe673a169f0a30b161d7b3f6b4b9da 100644 GIT binary patch literal 5280 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 J{x)abe*w8?JShMG literal 3800 zcma);eW;dq8ON{R`|p09W|q$RmfBI5=NMbQq~4FV&YH5F<6Jn?Hg&SaMmwnI3<*&= zEH-P*hRvC{MK8{3jIm~$s1*HSQZfc(3>y)Ij1kel{SncBSD)({3n8N(_;TI%@AbOA z-|M=bd)t@qTX0fDHr+mQ4@Q1BMP$p!_6;Ai7k(XJ&s}ie{o6-Q*Z{wud680bTXOD| zl-nkzUan2Ac5*LuOIw4CH$mFeDQ#-pc=54UI<;3qY@6iT5@n)B)G*$LAVKf%TGDskTz?`kISZf@O zo_E{l3~n?P_Eq-bceMS)P(y;d*o(x}gxE`++(z>kpAx>t%(Lw&*n-WV@|>_XAF&;o zh;R@?;6CMB{Dus6VKfNO90X&R6pHGAsK z@2Lr!{GL*HF8CHb`RPXr{xreU1DLPORV>d9{#Q`UI^WCGXKi>VKHonZp3vTdY<$rN z9Q{k^M}b`Nz|rS~KIiC(LQkylmEk6mdjSmsv3To|jo;(wU9R#Bzb=P1pj$vkPtFB& zu1#pY*@|V{k?W-fVxgB6EPF~0djcAJP?PmI#>u5(eJ+HaV_fLLl{_n;A@3?EKJ)_m zduq&4v&Ds;P`?4~eL&~nMkKgiKyyzob3i=vXzm;}M@)hEz4?wmfgV^H_ZF9NX8pDa zdmP+4>MfvY;fx9z&hhXb(BGp|K=(jSc(ih87SP87hgO1S0c|{RX3^52Wo_u+_$j6% z99H~o@YkVzrN#pqdf-e?I2UX%9f3pJKpqBs^ai*LdcoXt~b9t7an<3XUN19j*)&w~IQcX$w} zS;yTT1he=PfXBB${d?1$+7I*zkLC{T1Dbo_KtO8`91!v#pt(nLhZPX$NgmAubs4BJ zPrX%qD+cqMcj?!D;r`5>k-M$m@*iUS(&GX(>xnH;=b0WH=!cc>0nh(`pjSHjrUwBy z>!~0B$A7H{fnMmi!-D`EXL~!JUhBBS+dW-+2uL7<3X0tU99&f3OshUO#DPzR|E7X< z`0K2O&2OyZ|Dz$l8n|lkqrnH^U3eGXh4+SBZOEa9+7h0HXW`lR@8)c5;GDqsMaE`q z;9DSrNKcCR744oZ?31>kW*hQVu+q<4{Nn#Nz*p_BCx7^E$(_nLaaH)X*qHOc(JM0l zb*a^RoR@3u1-=C`@YI0Aze21YpEG9% zQ1Gp=&SO2c5U=N3G55dSSi^e;iMze|$GO4Q*_r*b`35B3d++?x?ey9HZ_S!DIypJ1 z9~>9G>qnP$;q-s%-=|O4OP4mO{azb6ulH>HoIdoxTAkd#QO_S4(euY2((}(hrmN3S z=+xmEI_tp&y5RApI(Vv8*^pFrcT`S)Qswdtow`Z%roEzbkBNTvb%h_3 zI`qyqF-7IgcESgos`M ze;6CnzhF-s5Iyrf(MvCjzV!z0!=k4*i2m|k(W_q<9lKNXz&6oiV>9%r2SrbgiSAk> zx_`as3yg1GIa|jz4CtZFOZ4O;%XM<=YCZYr9eU~Muj*f48q=iDTXn;_W%`44 zbM@I(@UeEP9{cugJvgzwZ!f&^v>qQH(8(QhwA=0K%xRy{TjxyGWrG8{>Xw_ew|r2K zeQU0sd2vAh_|}kKeP^lukUP)4B>MKRMgRPJ(L-ZP^o7GK^zv(W=->XdMfW{3Rgb#WM* zLwe)B8}-8TA8PpcY;tGbJpJb46MEa)8d-k{b{oh>C&p&oVZ+r5TZv62@-SYYs9UdOm4@6Ze(0^#S tBKrQXKJ@Q>^6P)iQ-u9GyVkzAW2b)fZj&E9U(a4|?AkroK3`|8{0m%0_;vsQ diff --git a/assets/voxygen/voxel/npc/tarasque/male/torso_front.vox b/assets/voxygen/voxel/npc/tarasque/male/torso_front.vox index ccf949c9e8173be467f2d3996cf126c0b427b8e0..2f7a4891991323ab814883a9fd88efa192b78668 100644 GIT binary patch literal 10088 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 bceEeh_m@Au{z>gmdiK(9UV8l#`VRjMaqj+| literal 4744 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 diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index c5a4843299..ad374eebeb 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -62,7 +62,7 @@ (Saber, Male): ( upper: ( - offset: (-4.0, -5.5, -6.5), + offset: (-5.5, 11.0, -6.5), central: ("npc.saber.male.head_upper"), ), lower: ( @@ -70,29 +70,29 @@ central: ("npc.saber.male.head_lower"), ), jaw: ( - offset: (-2.0, -2.5, -1.0), + offset: (-2.0, -7.0, -1.5), central: ("npc.saber.male.jaw"), ), torso_front: ( - offset: (-6.0, -6.0, -5.5), + offset: (-6.0, -14.0, -6.0), central: ("npc.saber.male.torso_front"), ), torso_back: ( - offset: (-6.0, -6.0, -5.0), + offset: (-5.0, -6.0, -5.0), central: ("npc.saber.male.torso_back"), ), ears: ( - offset: (-5.0, -0.5, -1.5), + offset: (-5.0, -1.0, 3.0), central: ("npc.saber.male.ears"), ), tail: ( - offset: (-1.0, -3.0, -4.0), + offset: (-2.0, -8.0, -5.0), central: ("npc.saber.male.tail"), ), ), (Saber, Female): ( upper: ( - offset: (-4.0, -5.5, -6.5), + offset: (-5.5, 11.0, -6.5), central: ("npc.saber.female.head_upper"), ), lower: ( @@ -100,15 +100,15 @@ central: ("npc.saber.female.head_lower"), ), jaw: ( - offset: (-2.0, -2.5, -1.0), + offset: (-2.0, -7.0, -1.5), central: ("npc.saber.female.jaw"), ), torso_front: ( - offset: (-6.0, -6.0, -5.5), + offset: (-6.0, -14.0, -6.0), central: ("npc.saber.female.torso_front"), ), torso_back: ( - offset: (-6.0, -6.0, -5.0), + offset: (-5.0, -6.0, -5.0), central: ("npc.saber.female.torso_back"), ), ears: ( @@ -116,7 +116,7 @@ central: ("npc.saber.female.ears"), ), tail: ( - offset: (-1.0, -3.0, -4.0), + offset: (-2.0, -8.0, -5.0), central: ("npc.saber.female.tail"), ), ), @@ -242,61 +242,61 @@ ), (Tarasque, Male): ( upper: ( - offset: (-6.0, -6.0, -9.5), + offset: (-9.0, -13.0, -10.5), central: ("npc.tarasque.male.head_upper"), ), lower: ( - offset: (-3.5, -4.0, -2.5), + offset: (-5.0, -3.0, -4.5), central: ("npc.tarasque.male.head_lower"), ), jaw: ( - offset: (-2.0, -2.5, -1.0), + offset: (-5.0, -9.0, -0.0), central: ("npc.tarasque.male.jaw"), ), torso_front: ( - offset: (-5.0, -7.0, -6.5), + offset: (-10.0, -17.0, -9.0), central: ("npc.tarasque.male.torso_front"), ), torso_back: ( - offset: (-5.0, -6.0, -5.5), + offset: (-6.0, -6.5, -6.0), central: ("npc.tarasque.male.torso_back"), ), ears: ( - offset: (-4.5, -1.0, -1.5), + offset: (-6.0, -1.0, -4.0), central: ("npc.tarasque.male.ears"), ), tail: ( - offset: (-1.0, -1.5, -1.0), + offset: (-5.0, -19.0, -10.0), central: ("npc.tarasque.male.tail"), ), ), (Tarasque, Female): ( upper: ( - offset: (-6.0, -6.0, -9.5), + offset: (-9.0, -13.0, -10.5), central: ("npc.tarasque.female.head_upper"), ), lower: ( - offset: (-3.5, -4.0, -2.5), + offset: (-5.0, -3.0, -4.5), central: ("npc.tarasque.female.head_lower"), ), jaw: ( - offset: (-2.0, -2.5, -1.0), + offset: (-5.0, -9.0, -0.0), central: ("npc.tarasque.male.jaw"), ), torso_front: ( - offset: (-5.0, -7.0, -6.5), + offset: (-10.0, -17.0, -9.0), central: ("npc.tarasque.female.torso_front"), ), torso_back: ( - offset: (-5.0, -6.0, -5.5), + offset: (-6.0, -6.5, -6.0), central: ("npc.tarasque.female.torso_back"), ), ears: ( - offset: (-4.5, -1.0, -1.5), + offset: (-6.0, -1.0, -4.0), central: ("npc.tarasque.female.ears"), ), tail: ( - offset: (-1.0, -1.5, -8.0), + offset: (-5.0, -19.0, -10.0), central: ("npc.tarasque.male.tail"), ), ), diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index 7a825e71af..0f2ea9d755 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -69,69 +69,69 @@ ), (Saber, Male): ( leg_fl: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.0, -3.5, -4.5), lateral: ("npc.saber.male.leg_fl"), ), leg_fr: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.0, -3.5, -4.5), lateral: ("npc.saber.male.leg_fr"), ), leg_bl: ( - offset: (-1.5, -4.0, -3.5), + offset: (-2.0, -3.0, -4.0), lateral: ("npc.saber.male.leg_bl"), ), leg_br: ( - offset: (-1.5, -4.0, -3.5), + offset: (-2.0, -3.0, -4.0), lateral: ("npc.saber.male.leg_br"), ), foot_fl: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.5, -5.0, -8.0), lateral: ("npc.saber.male.foot_fl"), ), foot_fr: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.5, -5.0, -8.0), lateral: ("npc.saber.male.foot_fr"), ), foot_bl: ( - offset: (-1.5, -4.0, -3.5), + offset: (-2.5, -3.5, -9.0), lateral: ("npc.saber.male.foot_bl"), ), foot_br: ( - offset: (-1.5, -4.0, -3.5), + offset: (-2.5, -3.5, -9.0), lateral: ("npc.saber.male.foot_br"), ), ), (Saber, Female): ( leg_fl: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.0, -3.5, -4.5), lateral: ("npc.saber.female.leg_fl"), ), leg_fr: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.0, -3.5, -4.5), lateral: ("npc.saber.female.leg_fr"), ), leg_bl: ( - offset: (-1.5, -4.0, -3.5), + offset: (-2.0, -3.0, -4.0), lateral: ("npc.saber.female.leg_bl"), ), leg_br: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.0, -3.0, -4.0), lateral: ("npc.saber.female.leg_br"), ), foot_fl: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.5, -5.0, -8.0), lateral: ("npc.saber.female.foot_fl"), ), foot_fr: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.5, -5.0, -8.0), lateral: ("npc.saber.female.foot_fr"), ), foot_bl: ( - offset: (-1.5, -4.0, -3.5), + offset: (-2.5, -3.5, -9.0), lateral: ("npc.saber.female.foot_bl"), ), foot_br: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.5, -3.5, -9.0), lateral: ("npc.saber.female.foot_br"), ), ), @@ -273,11 +273,11 @@ ), (Tarasque, Male): ( leg_fl: ( - offset: (-1.5, -1.5, -2.5), + offset: (-3.0, -5.0, -4.0), lateral: ("npc.tarasque.male.leg_fl"), ), leg_fr: ( - offset: (-1.5, -1.5, -2.5), + offset: (-3.0, -5.0, -4.0), lateral: ("npc.tarasque.male.leg_fr"), ), leg_bl: ( @@ -289,29 +289,29 @@ lateral: ("npc.tarasque.male.leg_br"), ), foot_fl: ( - offset: (-1.5, -1.5, -2.5), + offset: (-4.0, -6.0, -9.0), lateral: ("npc.tarasque.male.foot_fl"), ), foot_fr: ( - offset: (-1.5, -1.5, -2.5), + offset: (-4.0, -6.0, -9.0), lateral: ("npc.tarasque.male.foot_fr"), ), foot_bl: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.5, -4.0, -8.0), lateral: ("npc.tarasque.male.foot_bl"), ), foot_br: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.5, -4.0, -8.0), lateral: ("npc.tarasque.male.foot_br"), ), ), (Tarasque, Female): ( leg_fl: ( - offset: (-1.5, -1.5, -2.5), + offset: (-3.0, -5.0, -4.0), lateral: ("npc.tarasque.female.leg_fl"), ), leg_fr: ( - offset: (-1.5, -1.5, -2.5), + offset: (-3.0, -5.0, -4.0), lateral: ("npc.tarasque.female.leg_fr"), ), leg_bl: ( @@ -323,19 +323,19 @@ lateral: ("npc.tarasque.female.leg_br"), ), foot_fl: ( - offset: (-1.5, -1.5, -2.5), + offset: (-4.0, -6.0, -9.0), lateral: ("npc.tarasque.female.foot_fl"), ), foot_fr: ( - offset: (-1.5, -1.5, -2.5), + offset: (-4.0, -6.0, -9.0), lateral: ("npc.tarasque.female.foot_fr"), ), foot_bl: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.5, -4.0, -8.0), lateral: ("npc.tarasque.female.foot_bl"), ), foot_br: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.5, -4.0, -8.0), lateral: ("npc.tarasque.female.foot_br"), ), ), From 549793faef762cb3390f8fc1f9aea8cef6515f08 Mon Sep 17 00:00:00 2001 From: jshipsey Date: Fri, 12 Jun 2020 01:07:48 -0400 Subject: [PATCH 15/48] more progress on on quad_med run --- voxygen/src/anim/quadruped_low/run.rs | 18 +- voxygen/src/anim/src/quadruped_medium/mod.rs | 54 +++--- voxygen/src/anim/src/quadruped_medium/run.rs | 192 +++++++++++++------ 3 files changed, 165 insertions(+), 99 deletions(-) diff --git a/voxygen/src/anim/quadruped_low/run.rs b/voxygen/src/anim/quadruped_low/run.rs index 7a49a16088..ea89d71e85 100644 --- a/voxygen/src/anim/quadruped_low/run.rs +++ b/voxygen/src/anim/quadruped_low/run.rs @@ -67,17 +67,17 @@ impl Animation for RunAnimation { let footvertr = (anim_time as f32 * 16.0 * lab as f32 + PI).sin(); let footrotl = (((5.0) - / (2.5 - + (2.5) + / (0.5 + + (4.5) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()) .powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()); let footrotr = (((5.0) - / (1.0 - + (4.0) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.3).sin()) + / (0.5 + + (4.5) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()) .powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()); @@ -100,16 +100,16 @@ impl Animation for RunAnimation { let footvertrb = (anim_time as f32 * 16.0 * lab as f32 + PI*0.8).sin(); let footrotlb = (((5.0) - / (2.5 - + (2.5) + / (0.5 + + (4.5) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.2).sin()) .powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.2).sin()); let footrotrb = (((5.0) - / (1.0 - + (4.0) + / (0.5 + + (4.5) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.2).sin()) .powf(2.0 as f32))) .sqrt()) diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index 75b4b7f7b4..c6bd4568cf 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -35,15 +35,15 @@ const HEAD_UPPER_Z: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const HEAD_LOWER_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const HEAD_LOWER_Z: f32 = 0.5; +const HEAD_LOWER_Z: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const JAW_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const JAW_Z: f32 = -4.0; +const JAW_Z: f32 = -0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const TAIL_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TAIL_Z: f32 = -7.0; +const TAIL_Z: f32 = -0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const TORSO_BACK_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] @@ -55,31 +55,31 @@ const TORSO_FRONT_Z: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const EARS_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const EARS_Z: f32 = 5.0; +const EARS_Z: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_FRONT_X: f32 = 6.0; +const LEG_FRONT_X: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_FRONT_Y: f32 = -0.5; +const LEG_FRONT_Y: f32 = -0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_FRONT_Z: f32 = 14.0; +const LEG_FRONT_Z: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_BACK_X: f32 = 5.5; +const LEG_BACK_X: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_BACK_Y: f32 = -14.0; +const LEG_BACK_Y: f32 = -0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_BACK_Z: f32 = 13.5; +const LEG_BACK_Z: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_FRONT_X: f32 = 0.5; +const FEET_FRONT_X: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const FEET_FRONT_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_FRONT_Z: f32 = -8.0; +const FEET_FRONT_Z: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_BACK_X: f32 = 0.5; +const FEET_BACK_X: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const FEET_BACK_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_BACK_Z: f32 = -7.5; +const FEET_BACK_Z: f32 = 0.0; impl QuadrupedMediumSkeleton { @@ -199,7 +199,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (14.0, 12.0), (Tuskram, _) => (9.0, 12.0), (Lion, _) => (12.5, 14.0), - (Tarasque, _) => (*HEAD_UPPER_Y+14.0, *HEAD_UPPER_Z+2.5), + (Tarasque, _) => (14.0, 3.5), (Tiger, _) => (12.0, 19.0), }, head_lower: match (body.species, body.body_type) { @@ -207,8 +207,8 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (-6.0, 0.0), (Tuskram, _) => (-3.0, -1.0), (Lion, _) => (-5.0, -1.0), - (Tiger, _) => (*HEAD_LOWER_X, *HEAD_LOWER_Z), - (Tarasque, _) => (*HEAD_LOWER_Y+0.5, *HEAD_LOWER_Z-3.0), + (Tiger, _) => (0.0, 0.0), + (Tarasque, _) => (0.5, -2.0), (Tiger, _) => (-5.0, -6.0), }, jaw: match (body.species, body.body_type) { @@ -216,8 +216,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (2.0, -1.0), (Tuskram, _) => (2.0, -2.0), (Lion, _) => (2.0, -3.0), - (Tarasque, _) => (4.0, -9.0), - (Tarasque, _) => (*JAW_Y+0.5, *JAW_Z-11.0), + (Tarasque, _) => (1.5, -10.0), (Tiger, _) => (4.0, -9.0), }, tail: match (body.species, body.body_type) { @@ -225,7 +224,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (-4.0, -2.0), (Tuskram, _) => (-6.0, -2.0), (Lion, _) => (-8.0, -6.0), - (Tarasque, _) => (*TAIL_Y-4.5, *TAIL_Z+0.0), + (Tarasque, _) => (-4.5, 0.0), (Tiger, _) => (-7.0, -2.0), }, torso_front: match (body.species, body.body_type) { @@ -233,7 +232,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (-7.0, 9.5), (Tuskram, _) => (-7.0, 9.0), (Lion, _) => (-9.0, 9.0), - (Tarasque, _) => (*TORSO_FRONT_Y+11.5, *TORSO_FRONT_Z+18.5), + (Tarasque, _) => (11.5, 18.5), (Tiger, _) => (-7.0, 8.0), }, torso_back: match (body.species, body.body_type) { @@ -241,7 +240,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (4.0, 9.0), (Tuskram, _) => (4.0, 9.0), (Lion, _) => (4.0, 10.0), - (Tarasque, _) => (*TORSO_BACK_Y-20.0, *TORSO_BACK_Z-1.0), + (Tarasque, _) => (-20.0, -1.0), (Tiger, _) => (4.0, 9.0), }, ears: match (body.species, body.body_type) { @@ -249,7 +248,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (-1.0, 6.0), (Tuskram, _) => (10.0, 2.0), (Lion, _) => (-2.0, 4.0), - (Tarasque, _) => (*EARS_Y-5.0, *EARS_Z+0.5), + (Tarasque, _) => (-5.0, 1.0), (Tiger, _) => (1.5, -2.0), }, leg_f: match (body.species, body.body_type) { @@ -257,7 +256,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (4.0, 6.0, 3.0), (Tuskram, _) => (4.0, 6.0, 4.5), (Lion, _) => (5.0, 6.0, 3.0), - (Tarasque, _) => (*LEG_FRONT_X+8.0, *LEG_FRONT_Y+4.5, *LEG_FRONT_Z+12.5), + (Tarasque, _) => (7.5, 4.5, 12.5), (Tiger, _) => (4.0, 6.0, 3.0), }, leg_b: match (body.species, body.body_type) { @@ -265,7 +264,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (4.0, -6.0, 3.5), (Tuskram, _) => (4.0, -8.0, 5.5), (Lion, _) => (5.5, -8.0, 3.5), - (Tarasque, _) => (*LEG_BACK_X+6.0, *LEG_BACK_Y-12.0, *LEG_BACK_Z+10.5), + (Tarasque, _) => (6.0, -10.0, 10.5), (Tiger, _) => (4.0, -8.0, 3.5), }, feet_f: match (body.species, body.body_type) { @@ -273,8 +272,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (4.0, 6.0, 3.0), (Tuskram, _) => (4.0, 6.0, 4.5), (Lion, _) => (5.0, 6.0, 3.0), - (Tarasque, _) => (4.0, 6.0, 3.0), - (Tarasque, _) => (*FEET_FRONT_X+2.0, *FEET_FRONT_Y+3.5, *FEET_FRONT_Z-3.5), + (Tarasque, _) => (2.0, -0.5, -3.5), (Tiger, _) => (4.0, 6.0, 3.0), }, feet_b: match (body.species, body.body_type) { @@ -282,7 +280,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (4.0, -6.0, 3.5), (Tuskram, _) => (4.0, -8.0, 5.5), (Lion, _) => (5.5, -8.0, 3.5), - (Tarasque, _) => (*FEET_BACK_X+1.5, *FEET_BACK_Y+1.5, *FEET_BACK_Z-2.5), + (Tarasque, _) => (1.5, -0.5, -2.5), (Tiger, _) => (4.0, -8.0, 3.5), }, height: match (body.species, body.body_type) { diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index 0e0ce1b595..20700a01ec 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -21,7 +21,103 @@ impl Animation for RunAnimation { ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let lab = 14; + let lab = 0.1; + + + + + let short = (((5.0) + / (3.6 + + 1.4 * ((anim_time as f32 *16.0* lab as f32+ PI * 1.0).sin()).powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 *16.0* lab as f32+ PI * 1.0).sin()); + + + + + let foothoril = (((5.0) + / (1.0 + + (4.0) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.45).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.45).sin()); + let foothorir = (((5.0) + / (1.0 + + (4.0) + * ((anim_time as f32 * 16.0 * lab as f32 + PI *0.45).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.45).sin()); + let footvertl = (anim_time as f32 * 16.0 * lab as f32+PI*0.0).sin(); + let footvertr = (anim_time as f32 * 16.0 * lab as f32 + PI).sin(); + + let footrotl = (((5.0) + / (2.5 + + (2.5) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()); + + let footrotr = (((5.0) + / (2.5 + + (2.5) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()); +/// + let foothorilb = (((5.0) + / (1.0 + + (4.0) + * ((anim_time as f32 * 16.0 * lab as f32 + PI *1.05).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.05).sin()); + let foothorirb = (((5.0) + / (1.0 + + (4.0) + * ((anim_time as f32 * 16.0 * lab as f32 + PI *0.05).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.05).sin()); + let footvertlb = (anim_time as f32 * 16.0 * lab as f32+PI*(-0.4)).sin(); + let footvertrb = (anim_time as f32 * 16.0 * lab as f32 + PI*0.6).sin(); + + let footrotlb = (((5.0) + / (2.5 + + (2.5) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.0).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.0).sin()); + + let footrotrb = (((5.0) + / (2.5 + + (2.5) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.0).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.0).sin()); + + + + + + + let shortalt = (anim_time as f32 *16.0* lab as f32 + PI * 0.5).sin(); + + + + + + + + + + + let vertlf = (anim_time as f32 * lab as f32 + PI * 1.8).sin().max(0.15); let vertrfoffset = (anim_time as f32 * lab as f32 + PI * 0.80).sin().max(0.15); let vertlboffset = (anim_time as f32 * lab as f32).sin().max(0.15); @@ -66,23 +162,11 @@ impl Animation for RunAnimation { .sin() * 0.25, ); - let tailmove = Vec2::new( - ((global_time + anim_time) as f32 / 2.0) - .floor() - .mul(7331.0) - .sin() - * 0.25, - ((global_time + anim_time) as f32 / 2.0) - .floor() - .mul(1337.0) - .sin() - * 0.125, - ); next.head_upper.offset = Vec3::new( 0.0, - skeleton_attr.head_upper.0 + horichest * 1.8, - skeleton_attr.head_upper.1 + verthead * -1.8, + skeleton_attr.head_upper.0, + skeleton_attr.head_upper.1, ); next.head_upper.ori = Quaternion::rotation_x(wolf_look.y) * Quaternion::rotation_z(wolf_look.x); @@ -91,7 +175,7 @@ impl Animation for RunAnimation { next.head_lower.offset = Vec3::new( 0.0, skeleton_attr.head_lower.0 + horichest * 0.8, - skeleton_attr.head_lower.1 + vertchest * -0.8 + verthead * 1.8, + skeleton_attr.head_lower.1 + vertchest * -0.8, ); next.head_lower.ori = Quaternion::rotation_z(0.0); next.head_lower.scale = Vec3::one() * 1.02; @@ -106,18 +190,18 @@ impl Animation for RunAnimation { next.torso_front.offset = Vec3::new( 0.0, - skeleton_attr.torso_front.0 + horichest * 2.5, - skeleton_attr.torso_front.1 + vertchest * -3.2 + 1.0, + skeleton_attr.torso_front.0, + skeleton_attr.torso_front.1+shortalt*1.0, ) / 8.0; - next.torso_front.ori = Quaternion::rotation_y(horichest * -0.09); + next.torso_front.ori = Quaternion::rotation_x(short * -0.05); next.torso_front.scale = Vec3::one() / 8.0; next.torso_back.offset = Vec3::new( 0.0, - skeleton_attr.torso_back.0 + horichest * 2.9, - skeleton_attr.torso_back.1 + vertchest * -3.6 + 1.0, + skeleton_attr.torso_back.0, + skeleton_attr.torso_back.1, ); - next.torso_back.ori = Quaternion::rotation_y(horichest * -0.12); + next.torso_back.ori = Quaternion::rotation_y(0.0); next.torso_back.scale = Vec3::one(); next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); @@ -126,85 +210,69 @@ impl Animation for RunAnimation { next.leg_fl.offset = Vec3::new( -skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1, - skeleton_attr.leg_f.2, + skeleton_attr.leg_f.1 + foothoril * -3.5, + skeleton_attr.leg_f.2 +1.0+ ((footvertl * -1.0).max(-1.0)), ) / 8.0; - next.leg_fl.ori = Quaternion::rotation_x(horilf * 0.4); - next.leg_fl.scale = Vec3::one()/8.0; + next.leg_fl.ori = Quaternion::rotation_x(footrotl * -0.4); + next.leg_fl.scale = Vec3::one()/8.0*0.99; next.leg_fr.offset = Vec3::new( skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1, - skeleton_attr.leg_f.2, + skeleton_attr.leg_f.1 + foothorir * -3.5, + skeleton_attr.leg_f.2 +1.0+ ((footvertr * -1.0).max(-1.0)), ) / 8.0; - next.leg_fr.ori = Quaternion::rotation_x(horilf * 0.4); - next.leg_fr.scale = Vec3::one(); - - ) / 8.0; - next.leg_fr.ori = Quaternion::rotation_x(0.0); - next.leg_fr.scale = Vec3::one() / 8.0; + next.leg_fr.ori = Quaternion::rotation_x(footrotr * -0.4); + next.leg_fr.scale = Vec3::one()/8.0*0.99; next.leg_bl.offset = Vec3::new( -skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1, - skeleton_attr.leg_b.2, + skeleton_attr.leg_b.1 + foothorilb * -3.5, + skeleton_attr.leg_b.2 +1.0+ ((footvertlb * -1.2).max(-1.0)), ) / 8.0; - next.leg_bl.ori = Quaternion::rotation_x(horirb * 0.55); - next.leg_bl.scale = Vec3::one() / 11.0; + next.leg_bl.ori = Quaternion::rotation_x(footrotlb * -0.4); + next.leg_bl.scale = Vec3::one() / 8.0*0.99; next.leg_br.offset = Vec3::new( skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1 + horirb * 3.0, - skeleton_attr.leg_b.2, + skeleton_attr.leg_b.1 + foothorirb * -3.5, + skeleton_attr.leg_b.2 +1.0+ ((footvertrb * -1.2).max(-1.0)), ) / 8.0; - next.leg_br.ori = Quaternion::rotation_x(horirb * 0.55); - next.leg_br.scale = Vec3::one() / 8.0; - - next.leg_bl.ori = Quaternion::rotation_x(0.0); - next.leg_bl.scale = Vec3::one() / 8.0; - - next.leg_br.offset = Vec3::new( - skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1, - skeleton_attr.leg_b.2, - ) / 8.0; - next.leg_br.ori = Quaternion::rotation_x(0.0); - next.leg_br.scale = Vec3::one() / 8.0; + next.leg_br.ori = Quaternion::rotation_x(footrotrb * -0.4); + next.leg_br.scale = Vec3::one() / 8.0*0.99; next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, ); - next.foot_fl.ori = Quaternion::rotation_x(horilf * 0.6); - next.foot_fl.ori = Quaternion::rotation_x(0.0); - next.foot_fl.scale = Vec3::one(); + next.foot_fl.ori = Quaternion::rotation_x(footrotl * -0.7); + next.foot_fl.scale = Vec3::one()*0.98; next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, ); - next.foot_fr.ori = Quaternion::rotation_x(horilf * 0.6); - next.foot_fr.scale = Vec3::one(); + next.foot_fr.ori = Quaternion::rotation_x(footrotr * -0.7); + next.foot_fr.scale = Vec3::one()*0.98; next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, ); - next.foot_bl.ori = Quaternion::rotation_x(horirb * 0.35); - next.foot_bl.scale = Vec3::one(); + next.foot_bl.ori = Quaternion::rotation_x(footrotlb * -0.7); + next.foot_bl.scale = Vec3::one()*0.98; next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, ); - next.foot_br.ori = Quaternion::rotation_x(horirb * 0.35); - next.foot_br.scale = Vec3::one(); + next.foot_br.ori = Quaternion::rotation_x(footrotrb * -0.7); + next.foot_br.scale = Vec3::one()*0.98; next } From c0c86a74dc7be828a89930a70676c6bc60f1786e Mon Sep 17 00:00:00 2001 From: jshipsey Date: Fri, 12 Jun 2020 03:32:47 -0400 Subject: [PATCH 16/48] more quadmed run work --- .../quadruped_medium_central_manifest.ron | 16 ++--- .../quadruped_medium_lateral_manifest.ron | 52 +++++++-------- voxygen/src/anim/src/quadruped_medium/idle.rs | 16 ++--- voxygen/src/anim/src/quadruped_medium/mod.rs | 48 +++++++------- voxygen/src/anim/src/quadruped_medium/run.rs | 64 ++++++++++--------- 5 files changed, 99 insertions(+), 97 deletions(-) diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index ad374eebeb..02a2d1cb35 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -258,7 +258,7 @@ central: ("npc.tarasque.male.torso_front"), ), torso_back: ( - offset: (-6.0, -6.5, -6.0), + offset: (-6.0, 0.0, -6.0), central: ("npc.tarasque.male.torso_back"), ), ears: ( @@ -288,7 +288,7 @@ central: ("npc.tarasque.female.torso_front"), ), torso_back: ( - offset: (-6.0, -6.5, -6.0), + offset: (-6.0, 0.0, -6.0), central: ("npc.tarasque.female.torso_back"), ), ears: ( @@ -302,7 +302,7 @@ ), (Tiger, Male): ( upper: ( - offset: (-5.5, -5.0, -5.0), + offset: (-5.5, 0.0, -5.0), central: ("npc.tiger.male.head_upper"), ), lower: ( @@ -314,11 +314,11 @@ central: ("npc.tiger.male.jaw"), ), torso_front: ( - offset: (-5.5, -6.5, -6.5), + offset: (-5.5, -13.0, -6.5), central: ("npc.tiger.male.torso_front"), ), torso_back: ( - offset: (-5.5, -6.5, -5.0), + offset: (-5.5, -6.5, -5.0),///needs adjust central: ("npc.tiger.male.torso_back"), ), ears: ( @@ -332,7 +332,7 @@ ), (Tiger, Female): ( upper: ( - offset: (-5.5, -5.0, -5.0), + offset: (-5.5, 0.0, -5.0), central: ("npc.tiger.female.head_upper"), ), lower: ( @@ -344,11 +344,11 @@ central: ("npc.tiger.female.jaw"), ), torso_front: ( - offset: (-5.5, -6.5, -6.5), + offset: (-5.5, -13.0, -6.5), central: ("npc.tiger.female.torso_front"), ), torso_back: ( - offset: (-5.5, -6.5, -5.0), + offset: (-5.5, -6.5, -5.0),///needs adjust central: ("npc.tiger.female.torso_back"), ), ears: ( diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index 0f2ea9d755..a6c378b8d9 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -281,27 +281,27 @@ lateral: ("npc.tarasque.male.leg_fr"), ), leg_bl: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.0, -3.5, -3.5), lateral: ("npc.tarasque.male.leg_bl"), ), leg_br: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.0, -3.5, -3.5), lateral: ("npc.tarasque.male.leg_br"), ), foot_fl: ( - offset: (-4.0, -6.0, -9.0), + offset: (-4.0, -3.0, -9.0), lateral: ("npc.tarasque.male.foot_fl"), ), foot_fr: ( - offset: (-4.0, -6.0, -9.0), + offset: (-4.0, -3.0, -9.0), lateral: ("npc.tarasque.male.foot_fr"), ), foot_bl: ( - offset: (-2.5, -4.0, -8.0), + offset: (-2.5, -2.0, -8.0), lateral: ("npc.tarasque.male.foot_bl"), ), foot_br: ( - offset: (-2.5, -4.0, -8.0), + offset: (-2.5, -2.0, -8.0), lateral: ("npc.tarasque.male.foot_br"), ), ), @@ -315,53 +315,53 @@ lateral: ("npc.tarasque.female.leg_fr"), ), leg_bl: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.0, -3.5, -3.5), lateral: ("npc.tarasque.female.leg_bl"), ), leg_br: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.0, -3.5, -3.5), lateral: ("npc.tarasque.female.leg_br"), ), foot_fl: ( - offset: (-4.0, -6.0, -9.0), + offset: (-4.0, -3.0, -9.0), //(1/4) Y dimension, (1/1) Z dimension lateral: ("npc.tarasque.female.foot_fl"), ), foot_fr: ( - offset: (-4.0, -6.0, -9.0), + offset: (-4.0, -3.0, -9.0), //(1/4) Y dimension, (1/1) Z dimension lateral: ("npc.tarasque.female.foot_fr"), ), foot_bl: ( - offset: (-2.5, -4.0, -8.0), + offset: (-2.5, -2.0, -8.0), lateral: ("npc.tarasque.female.foot_bl"), ), foot_br: ( - offset: (-2.5, -4.0, -8.0), + offset: (-2.5, -2.0, -8.0), lateral: ("npc.tarasque.female.foot_br"), ), ), (Tiger, Male): ( leg_fl: ( - offset: (-2.0, -1.5, -9.0), + offset: (-2.0, -3.0, -5.0), lateral: ("npc.tiger.male.leg_fl"), ), leg_fr: ( - offset: (-2.0, -1.5, -9.0), + offset: (-2.0, -3.0, -5.0), lateral: ("npc.tiger.male.leg_fr"), ), leg_bl: ( - offset: (-2.0, -2.0, -9.0), + offset: (-2.0, -3.0, -5.0), lateral: ("npc.tiger.male.leg_bl"), ), leg_br: ( - offset: (-2.0, -2.0, -9.0), + offset: (-2.0, -3.0, -5.0), lateral: ("npc.tiger.male.leg_br"), ), foot_fl: ( - offset: (-2.5, -1.5, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.tiger.male.foot_fl"), ), foot_fr: ( - offset: (-2.5, -1.5, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.tiger.male.foot_fr"), ), foot_bl: ( @@ -375,35 +375,35 @@ ), (Tiger, Female): ( leg_fl: ( - offset: (-1.5, -1.5, -9.0), + offset: (-2.0, -3.0, -5.0), lateral: ("npc.tiger.female.leg_fl"), ), leg_fr: ( - offset: (-1.5, -1.5, -9.0), + offset: (-2.0, -3.0, -5.0), lateral: ("npc.tiger.female.leg_fr"), ), leg_bl: ( - offset: (-1.5, -2.0, -9.0), + offset: (-2.0, -3.0, -5.0), lateral: ("npc.tiger.female.leg_bl"), ), leg_br: ( - offset: (-1.5, -2.0, -9.0), + offset: (-2.0, -3.0, -5.0), lateral: ("npc.tiger.female.leg_br"), ), foot_fl: ( - offset: (-1.5, -1.5, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.tiger.female.foot_fl"), ), foot_fr: ( - offset: (-1.5, -1.5, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.tiger.female.foot_fr"), ), foot_bl: ( - offset: (-1.5, -2.0, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.tiger.female.foot_bl"), ), foot_br: ( - offset: (-1.5, -2.0, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.tiger.female.foot_br"), ), ), diff --git a/voxygen/src/anim/src/quadruped_medium/idle.rs b/voxygen/src/anim/src/quadruped_medium/idle.rs index 5108fbc55a..e740c2dfb6 100644 --- a/voxygen/src/anim/src/quadruped_medium/idle.rs +++ b/voxygen/src/anim/src/quadruped_medium/idle.rs @@ -114,33 +114,33 @@ impl Animation for IdleAnimation { -skeleton_attr.leg_f.0, skeleton_attr.leg_f.1, skeleton_attr.leg_f.2, - ) / 8.0; + ); next.leg_fl.ori = Quaternion::rotation_x(0.0); - next.leg_fl.scale = Vec3::one() / 8.0; + next.leg_fl.scale = Vec3::one(); next.leg_fr.offset = Vec3::new( skeleton_attr.leg_f.0, skeleton_attr.leg_f.1, skeleton_attr.leg_f.2, - ) / 8.0; + ); next.leg_fr.ori = Quaternion::rotation_x(0.0); - next.leg_fr.scale = Vec3::one() / 8.0; + next.leg_fr.scale = Vec3::one(); next.leg_bl.offset = Vec3::new( -skeleton_attr.leg_b.0, skeleton_attr.leg_b.1, skeleton_attr.leg_b.2, - ) / 8.0; + ); next.leg_bl.ori = Quaternion::rotation_x(0.0); - next.leg_bl.scale = Vec3::one() / 8.0; + next.leg_bl.scale = Vec3::one(); next.leg_br.offset = Vec3::new( skeleton_attr.leg_b.0, skeleton_attr.leg_b.1, skeleton_attr.leg_b.2, - ) / 8.0; + ); next.leg_br.ori = Quaternion::rotation_x(0.0); - next.leg_br.scale = Vec3::one() / 8.0; + next.leg_br.scale = Vec3::one(); next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index c6bd4568cf..f4187a1912 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -112,14 +112,14 @@ impl Skeleton for QuadrupedMediumSkeleton { FigureBoneData::new(torso_front_mat), FigureBoneData::new(torso_front_mat * torso_back_mat), FigureBoneData::new(torso_front_mat *head_lower_mat*head_upper_mat * ears_mat), - FigureBoneData::new(leg_fl_mat), - FigureBoneData::new(leg_fr_mat), - FigureBoneData::new(leg_bl_mat), - FigureBoneData::new(leg_br_mat), - FigureBoneData::new(leg_fl_mat * self.foot_fl.compute_base_matrix()), - FigureBoneData::new(leg_fr_mat * self.foot_fr.compute_base_matrix()), - FigureBoneData::new(leg_bl_mat * self.foot_bl.compute_base_matrix()), - FigureBoneData::new(leg_br_mat * self.foot_br.compute_base_matrix()), + FigureBoneData::new(torso_front_mat *leg_fl_mat), + FigureBoneData::new(torso_front_mat *leg_fr_mat), + FigureBoneData::new(torso_front_mat *torso_back_mat *leg_bl_mat), + FigureBoneData::new(torso_front_mat *torso_back_mat *leg_br_mat), + FigureBoneData::new(torso_front_mat *leg_fl_mat * self.foot_fl.compute_base_matrix()), + FigureBoneData::new(torso_front_mat *leg_fr_mat * self.foot_fr.compute_base_matrix()), + FigureBoneData::new(torso_front_mat *torso_back_mat *leg_bl_mat * self.foot_bl.compute_base_matrix()), + FigureBoneData::new(torso_front_mat *torso_back_mat *leg_br_mat * self.foot_br.compute_base_matrix()), FigureBoneData::default(), ], Vec3::default(), @@ -200,7 +200,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (9.0, 12.0), (Lion, _) => (12.5, 14.0), (Tarasque, _) => (14.0, 3.5), - (Tiger, _) => (12.0, 19.0), + (Tiger, _) => (2.0, 1.0), }, head_lower: match (body.species, body.body_type) { (Grolgar, _) => (-4.0, -7.0), @@ -217,15 +217,15 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (2.0, -2.0), (Lion, _) => (2.0, -3.0), (Tarasque, _) => (1.5, -10.0), - (Tiger, _) => (4.0, -9.0), + (Tiger, _) => (8.0, -4.0), }, tail: match (body.species, body.body_type) { (Grolgar, _) => (-6.0, -2.0), (Saber, _) => (-4.0, -2.0), (Tuskram, _) => (-6.0, -2.0), (Lion, _) => (-8.0, -6.0), - (Tarasque, _) => (-4.5, 0.0), - (Tiger, _) => (-7.0, -2.0), + (Tarasque, _) => (2.0, 0.0), + (Tiger, _) => (-6.5, -7.0), }, torso_front: match (body.species, body.body_type) { (Grolgar, _) => (-7.0, 10.5), @@ -233,15 +233,15 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (-7.0, 9.0), (Lion, _) => (-9.0, 9.0), (Tarasque, _) => (11.5, 18.5), - (Tiger, _) => (-7.0, 8.0), + (Tiger, _) => (10.0, 12.0), }, torso_back: match (body.species, body.body_type) { (Grolgar, _) => (4.0, 11.0), (Saber, _) => (4.0, 9.0), (Tuskram, _) => (4.0, 9.0), (Lion, _) => (4.0, 10.0), - (Tarasque, _) => (-20.0, -1.0), - (Tiger, _) => (4.0, 9.0), + (Tarasque, _) => (-26.5, -1.0), + (Tiger, _) => (-19.0, 0.0), }, ears: match (body.species, body.body_type) { (Grolgar, _) => (-1.0, 5.0), @@ -249,39 +249,39 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (10.0, 2.0), (Lion, _) => (-2.0, 4.0), (Tarasque, _) => (-5.0, 1.0), - (Tiger, _) => (1.5, -2.0), + (Tiger, _) => (2.5, 5.0), }, leg_f: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 6.0, 2.0), (Saber, _) => (4.0, 6.0, 3.0), (Tuskram, _) => (4.0, 6.0, 4.5), (Lion, _) => (5.0, 6.0, 3.0), - (Tarasque, _) => (7.5, 4.5, 12.5), - (Tiger, _) => (4.0, 6.0, 3.0), + (Tarasque, _) => (7.5, -2.0, -6.0), + (Tiger, _) => (7.0, -2.0, -1.0), }, leg_b: match (body.species, body.body_type) { (Grolgar, _) => (5.0, -4.0, 3.0), (Saber, _) => (4.0, -6.0, 3.5), (Tuskram, _) => (4.0, -8.0, 5.5), (Lion, _) => (5.5, -8.0, 3.5), - (Tarasque, _) => (6.0, -10.0, 10.5), - (Tiger, _) => (4.0, -8.0, 3.5), + (Tarasque, _) => (6.0, 4.5, -6.0), + (Tiger, _) => (7.0, -2.0, -1.0), }, feet_f: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 6.0, 2.0), (Saber, _) => (4.0, 6.0, 3.0), (Tuskram, _) => (4.0, 6.0, 4.5), (Lion, _) => (5.0, 6.0, 3.0), - (Tarasque, _) => (2.0, -0.5, -3.5), - (Tiger, _) => (4.0, 6.0, 3.0), + (Tarasque, _) => (2.0, -0.5, -4.5), + (Tiger, _) => (1.0, 0.0, -5.0), }, feet_b: match (body.species, body.body_type) { (Grolgar, _) => (5.0, -4.0, 3.0), (Saber, _) => (4.0, -6.0, 3.5), (Tuskram, _) => (4.0, -8.0, 5.5), (Lion, _) => (5.5, -8.0, 3.5), - (Tarasque, _) => (1.5, -0.5, -2.5), - (Tiger, _) => (4.0, -8.0, 3.5), + (Tarasque, _) => (1.5, -0.5, -3.5), + (Tiger, _) => (1.0, 0.5, -4.0), }, height: match (body.species, body.body_type) { (Grolgar, _) => (1.2), diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index 20700a01ec..a0844bc2d6 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -185,15 +185,15 @@ impl Animation for RunAnimation { next.jaw.scale = Vec3::one() * 1.02; next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); - next.tail.ori = Quaternion::rotation_x(0.0); + next.tail.ori = Quaternion::rotation_x(shortalt*0.3); next.tail.scale = Vec3::one(); next.torso_front.offset = Vec3::new( 0.0, skeleton_attr.torso_front.0, - skeleton_attr.torso_front.1+shortalt*1.0, + skeleton_attr.torso_front.1+shortalt*2.0, ) / 8.0; - next.torso_front.ori = Quaternion::rotation_x(short * -0.05); + next.torso_front.ori = Quaternion::rotation_x(short * 0.17); next.torso_front.scale = Vec3::one() / 8.0; next.torso_back.offset = Vec3::new( @@ -201,75 +201,77 @@ impl Animation for RunAnimation { skeleton_attr.torso_back.0, skeleton_attr.torso_back.1, ); - next.torso_back.ori = Quaternion::rotation_y(0.0); + next.torso_back.ori = Quaternion::rotation_x(short * -0.1); next.torso_back.scale = Vec3::one(); next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); next.ears.ori = Quaternion::rotation_x(0.0); next.ears.scale = Vec3::one() * 1.02; + +////left and right functions currently swapped on some bones to change gait next.leg_fl.offset = Vec3::new( -skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1 + foothoril * -3.5, - skeleton_attr.leg_f.2 +1.0+ ((footvertl * -1.0).max(-1.0)), - ) / 8.0; - next.leg_fl.ori = Quaternion::rotation_x(footrotl * -0.4); - next.leg_fl.scale = Vec3::one()/8.0*0.99; + skeleton_attr.leg_f.1 + foothoril * -2.5, + skeleton_attr.leg_f.2 +1.0+ footvertl * -1.0, + ); + next.leg_fl.ori = Quaternion::rotation_x(footrotl * -0.6); + next.leg_fl.scale = Vec3::one()*0.99; next.leg_fr.offset = Vec3::new( skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1 + foothorir * -3.5, - skeleton_attr.leg_f.2 +1.0+ ((footvertr * -1.0).max(-1.0)), - ) / 8.0; - next.leg_fr.ori = Quaternion::rotation_x(footrotr * -0.4); - next.leg_fr.scale = Vec3::one()/8.0*0.99; + skeleton_attr.leg_f.1 + foothoril * -2.5, + skeleton_attr.leg_f.2 +1.0+ footvertl * -1.0, + ); + next.leg_fr.ori = Quaternion::rotation_x(footrotl * -0.6); + next.leg_fr.scale = Vec3::one()*0.99; next.leg_bl.offset = Vec3::new( -skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1 + foothorilb * -3.5, - skeleton_attr.leg_b.2 +1.0+ ((footvertlb * -1.2).max(-1.0)), + skeleton_attr.leg_b.1 + foothorirb * -2.5, + skeleton_attr.leg_b.2 +1.0+ footvertrb * -1.2, - ) / 8.0; - next.leg_bl.ori = Quaternion::rotation_x(footrotlb * -0.4); - next.leg_bl.scale = Vec3::one() / 8.0*0.99; + ); + next.leg_bl.ori = Quaternion::rotation_x(footrotrb * -0.6); + next.leg_bl.scale = Vec3::one() *0.99; next.leg_br.offset = Vec3::new( skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1 + foothorirb * -3.5, - skeleton_attr.leg_b.2 +1.0+ ((footvertrb * -1.2).max(-1.0)), - ) / 8.0; - next.leg_br.ori = Quaternion::rotation_x(footrotrb * -0.4); - next.leg_br.scale = Vec3::one() / 8.0*0.99; + skeleton_attr.leg_b.1 + foothorirb * -2.5, + skeleton_attr.leg_b.2 +1.0+ footvertrb * -1.2, + ); + next.leg_br.ori = Quaternion::rotation_x(footrotrb * -0.6); + next.leg_br.scale = Vec3::one() *0.99; next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2, + skeleton_attr.feet_f.2+ ((footvertl * -3.5).max(-1.0)), ); next.foot_fl.ori = Quaternion::rotation_x(footrotl * -0.7); - next.foot_fl.scale = Vec3::one()*0.98; + next.foot_fl.scale = Vec3::one()*0.97; next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2, + skeleton_attr.feet_f.2+ ((footvertl * -3.5).max(-1.0)), ); - next.foot_fr.ori = Quaternion::rotation_x(footrotr * -0.7); + next.foot_fr.ori = Quaternion::rotation_x(footrotl * -0.7); next.foot_fr.scale = Vec3::one()*0.98; next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2, + skeleton_attr.feet_b.2+ ((footvertrb * -3.5).max(-1.0)), ); - next.foot_bl.ori = Quaternion::rotation_x(footrotlb * -0.7); + next.foot_bl.ori = Quaternion::rotation_x(footrotrb * -0.7); next.foot_bl.scale = Vec3::one()*0.98; next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2, + skeleton_attr.feet_b.2 + ((footvertrb * -3.5).max(-1.0)), ); next.foot_br.ori = Quaternion::rotation_x(footrotrb * -0.7); next.foot_br.scale = Vec3::one()*0.98; From 02b6a57063c4825d807d455a5fd9a99b23ac502f Mon Sep 17 00:00:00 2001 From: unknown Date: Sun, 14 Jun 2020 01:08:17 +0200 Subject: [PATCH 17/48] Add asp mob --- assets/common/npc_names.json | 4 ++ assets/voxygen/voxel/npc/asp/female/chest.vox | Bin 0 -> 3556 bytes .../voxygen/voxel/npc/asp/female/foot_bl.vox | Bin 0 -> 1348 bytes .../voxygen/voxel/npc/asp/female/foot_br.vox | Bin 0 -> 1348 bytes .../voxygen/voxel/npc/asp/female/foot_fl.vox | Bin 0 -> 1344 bytes .../voxygen/voxel/npc/asp/female/foot_fr.vox | Bin 0 -> 1344 bytes .../voxel/npc/asp/female/head_lower.vox | Bin 0 -> 2272 bytes .../voxel/npc/asp/female/head_upper.vox | Bin 0 -> 1976 bytes assets/voxygen/voxel/npc/asp/female/jaw.vox | Bin 0 -> 1264 bytes .../voxel/npc/asp/female/tail_front.vox | Bin 0 -> 2288 bytes .../voxel/npc/asp/female/tail_rear.vox | Bin 0 -> 1344 bytes assets/voxygen/voxel/npc/asp/male/chest.vox | Bin 0 -> 3556 bytes assets/voxygen/voxel/npc/asp/male/foot_bl.vox | Bin 0 -> 1348 bytes assets/voxygen/voxel/npc/asp/male/foot_br.vox | Bin 0 -> 1348 bytes assets/voxygen/voxel/npc/asp/male/foot_fl.vox | Bin 0 -> 1344 bytes assets/voxygen/voxel/npc/asp/male/foot_fr.vox | Bin 0 -> 1344 bytes .../voxygen/voxel/npc/asp/male/head_lower.vox | Bin 0 -> 2272 bytes .../voxygen/voxel/npc/asp/male/head_upper.vox | Bin 0 -> 1976 bytes assets/voxygen/voxel/npc/asp/male/jaw.vox | Bin 0 -> 1264 bytes .../voxygen/voxel/npc/asp/male/tail_front.vox | Bin 0 -> 2288 bytes .../voxygen/voxel/npc/asp/male/tail_rear.vox | Bin 0 -> 1344 bytes .../voxel/quadruped_low_central_manifest.ron | 52 ++++++++++++++++++ .../voxel/quadruped_low_lateral_manifest.ron | 36 ++++++++++++ common/src/comp/body/quadruped_low.rs | 6 +- voxygen/src/anim/quadruped_low/mod.rs | 9 +++ 25 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 assets/voxygen/voxel/npc/asp/female/chest.vox create mode 100644 assets/voxygen/voxel/npc/asp/female/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/asp/female/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/asp/female/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/asp/female/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/asp/female/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/asp/female/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/asp/female/jaw.vox create mode 100644 assets/voxygen/voxel/npc/asp/female/tail_front.vox create mode 100644 assets/voxygen/voxel/npc/asp/female/tail_rear.vox create mode 100644 assets/voxygen/voxel/npc/asp/male/chest.vox create mode 100644 assets/voxygen/voxel/npc/asp/male/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/asp/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/asp/male/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/asp/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/asp/male/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/asp/male/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/asp/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/asp/male/tail_front.vox create mode 100644 assets/voxygen/voxel/npc/asp/male/tail_rear.vox diff --git a/assets/common/npc_names.json b/assets/common/npc_names.json index fa20fde4a8..f96b41d228 100644 --- a/assets/common/npc_names.json +++ b/assets/common/npc_names.json @@ -577,6 +577,10 @@ "monitor": { "keyword": "monitor", "generic": "Monitor" + }, + "asp": { + "keyword": "asp", + "generic": "Asp" } } } diff --git a/assets/voxygen/voxel/npc/asp/female/chest.vox b/assets/voxygen/voxel/npc/asp/female/chest.vox new file mode 100644 index 0000000000000000000000000000000000000000..6ed1375ddccd12f67bc3f900097788cd87ff5df3 GIT binary patch literal 3556 zcmai0Ym8l072bP2_TJ~5dux?;pzqoTbOr>b#kSargQbD{D5fA4$|K(Q9STYsQcE+z zK$TbtQk&Z1gA_D`=oL`XHi$ov7(z%0GXgP2LkLmhFB5(l|1G~Wh!WGpo2;z;SkG^* zwa?x2g_~EOaL(~edG0HxktZG~^u$v~oQ}kCmpymb zNsowIlYBwSGNPZ9zb3~p2xg^L3 zC&QR&Phms73>ET$T`g4IT*|a9?CL@?f z;XAHE!^pm$$hQ+>k3{_le}QxuytG2$8tVOQsQ5Zps4fvXA!nZhJJ=MWnlEHX72kBZ z41D40R0ZBCLe9;3`0()ItK4FuW?)};x$i{8sm&rjAy^$Q7tjg@6O@t2&A#Epfi7&{f2)4slee$%scQzDD9_1zf7sQsAJf9RX+d z4X$!etG+2!#0Xzh(10r3p{fkH^c}(|01KZ3mx6n~f*y(`UL}Uyc7=3P;hIu}Q9?Zl zIszLJ{xqdgEd8O5RMx*jO{t)#DwqM}B*;a8w;%_pmVM`te_1bJ27LzR3|U4jLA1xH z7sDPEj2cQmXuu4)MpmHD3+-|N*^2a1xd*Np_EezGc{wZ4MGYeEViob>J`}!@Dl$w3 za8#PhP~WU5=eVp5_XYSw_zdWoFt3X}VvE2a!gkEjx4>M`a|xKGf_f?Uy$tot3g1&; zqR2rJgCcLOpf*+XDf9#ML!kpkT~lcjIY#)8McL!7#=t9~HmO3u*Q2L^32{RT=};Lv z>MccSQ@UEfF4h8E1h@#~sGNf;FoMm1xRkg_nV*g5vxxY(yoX$>BIb&3vqNq;RLq*$B!!Uw}7-1*$ zTt=Dmp;$~|d1UP>a-y7J50u58pnp^5 z`&o|r9GK)%Pi5bOXL$cYu5E?ymz6W^#4)C38FXY_Ryo_JKOZz$y z?4{hZ)HRQzz)~aF<9SAX4k;T2tR-Y4(KHf)j>uiC zvBeVFggGY6x8h!Luec8yI}#wPz)lcPh#l4ddDK6k7tuq4?+D>rm;&&CtU^{HEAS`4 zN=n>OXA#ss#vwzGQFDsu=ZxkwquC%d8wK?**T7J**FobH+VEj!RjAjjXIa*CHrjO(4Zu63;0pfFg)N1QOUxiuW;qBHrzcyD3R8L#|1< z8!=BBxTf%@u(y2oF!wTu2~_Wp}zzgueM@0r>eyS{O` zwQk>LGY1-W=19%X9BbK`llRz`GhelZQ)9N|%d2hm{TJK#sVmLxRCD`sb5DN4+$&?Y zaF?_5?{>EQsIyCc;VkWQRz2+OJnY9t&aT*1SpDvWw)cVa?AvEo*flfGb{}`ve%9H2 zbI{$r)K*Tfv2`;Ow)ymwE!)4y);zM*CZ1YlldoQ6=ilaR-2(m5VMp)TXb;^vVJD`Y-Mhotfoq&Swg<6ZvDBt_uCYVAH`s~Z zMw_{5i=7zmu$RB}CHvb`({}ONG26azl{G%M!FqeP*uJ{6!?!y-b+5CR9(A^C;)t#N z)Iqysa@tm{IA-f6kJv>kzGn;9K5om$XKd&8N&DgU<@V@i;IVC?9sTA$d;P`7?C*bk z&i?Y&&+OP&*4WIg%d990yWqT!+hxlZ+T{2e+kEMT_L+_2cJv#|?b#>R*dJb-uy@|L z*nR|`r=N26`mde+`7LLMrZ?DQhd0?P&+M@G|8%46e|Vui^3z53%ef`?j;*r2z~dnD zJlX{=2b}E~cXr3tbLW3|^TPk+|MP>p=JQ{9!N+W3&0?EawZOKGFR+`oR_&(A|K`7W zdBPxb}cGuY2Cy;X}4~|6)6P@`D=QzZAW*a;1HJ{c*c$+cE1t{E%I6 z$NBcgbL;Kw-X(Ty^=kWH|D{}M>y{f|xBWx2`%XS>hktU~zVrNV?fbuZ(>{IA5xeTa zQ+DsyrtIVo?zE|?DSOYExdgI*7{BT4-CunW-@E9q|96iOoS(Cg@+WS+%|6_hmmjXr Q#m{y2QJs&j&mrsn1@u~Ea{vGU literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/asp/female/foot_bl.vox b/assets/voxygen/voxel/npc/asp/female/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..53ed1cfe4305bd193930d74f0c880ba33e64ed29 GIT binary patch literal 1348 zcmaize@xV69LGP;_s4NX+7)p8IDU12a;GT=1Q?`e$P^J9lBD=!aol-#GSV?e$Zj^J zT;xn*1op$BHRsC2V!+J)FxQ-ObI#PYR&&l(>#sKdYW?@>Ih@5BTc7Q{&*$@gp3n37 z@jOr4OIr#@MWlIk<3_Ed%ob^FY;SlX>1cUOLsOEXv1My}qbO}?S*2kaX4DchVk$Lt>U#QCr!amSOF(4J&FXD`qRJ!%}wGk%VD~Or;{G zp+cr%gl(}x%91^%vLc2uH76QcD>G^+BVrpmMyyVUvZ4;#)Q%@sT+_;*B%x)ofNLc!%;Or6> z3@Ts zZ1a$sno3sMQ!Mwm2>85IEnCF% zAE@BUxq2S_+)B?87e_x!=c}99+@*kaJ&!)!=TKPBrB|r;2|H`%@4tJ)qJR4TqOW3)md^xBsgA92)(_Y_D2I&zcpq`Q5}TJse$I!qm>?R8&;( zUiCO`cN4XPhsYkt=ISTHoo&L|(o%drAF-ldHmsXO2Kve9$zW#e;T;~x(QhX|pEpWI zSXnzv_{d?hc4l(pdt8tg&*tir+qUz_PcA;P=hO3X Mb7SV(^X!$s0f)CZ7ytkO literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/asp/female/foot_br.vox b/assets/voxygen/voxel/npc/asp/female/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..82b0dac80a754afe804a569801b803cdb05e56f7 GIT binary patch literal 1348 zcmaize@xVM7{{N__s2nzb|oCb@v8%rJ54ztz#u&Xrij?kAjKc+;12F&1Y?Yl-E2y^ z$dSY@upbVsF;}FP17`MzxyGCubEdAfnscsNf3^8n>%UhYbe3yueYR)M^Sqzm&*$@L zdTD3Qn26MGtlg%W6xt#?YMX1GSWxtNOp}HrLDSA%&9$Pmpw9+PmSKi1F@vTu+bm^7 zETv_!Bes~Wwlac-*g;#2c84L_&uTH19kvWBWNNb1f^LN^Wrqx9M-0Ob+e$@jL$%q4 z5i-SUO|YcPR#wQNOpQy(Hq4N%%vOiecEfHn#L}@=*ieq3ZAwdmA;APCtqxHU-EWI6 zs@Hd^qN0i}cS9%U5j-Y5T-h@^WIa7X^_F7h28=2d?YbhIF!`9`a&7N~Z(3dy?@Cr{kN< z#(!lcse6RHLpt}EPHQndZC_pKsZ$+T-Yw$ZWp2r`SiE=80jwJ$bKJVQK7d==&KfvH|btW(uvl1 z7-%S9EL=pav5c`u6_?+Bh2JNmtjcv!S(HuPh62J(Wpr#22KNdRy~3qqg4;Jl?z8=@ z_D9Li93{^`#LCR~aps;N!yBWf($7bg85}Fs`>1d-@>U1)7mxGDPv`jc=I4yQ<{`G* zO;S=4%a=XHTDKFw*F))=6+B<$W#r8a&Ytw}<5eHGudU)^U2}R;nEyuj<)$zYE#UZI zF>`0CxcBo8dX737{w$fVuBUOEY?}2x`t_V6A-$JAp~@@lD_?y6&aEr{ng5Ia`up=| zEq@Z9Ck0>jQYySlX)IqtqyOLeOS96c_2sdrbPYY#>uB=1h?ck+-jvVuzO@t=7xP}( z1TI${6+?$f8%*QMC&I1W!c;*4Uayx(ZXa7WpGO7kY0%1`dz!$W<+_)uPqFNQrD K^QgRtulx-%|2PBy literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/asp/female/foot_fl.vox b/assets/voxygen/voxel/npc/asp/female/foot_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..2731fa2b6cc50d3f7e427c4e12a8be4d5aa8222c GIT binary patch literal 1344 zcmah|ZA_b06h8O8@7oq|SOp5SKv{vUEjU)d(pkh#AX{O~Fa$SX#Fl=JAcPQPq?y^O zi`|05rUFwJHVs)6$COYq=a0DT zBo>e)^2?m{F;0HYnUBk?Pv#WhoPu1TK3U>kNw6eSfXU?H67xx%`8i`DE(t#uKAA!? zV;)(O{9KZPGM9vwf?PmmJfsL#Bq^X`vQI^_SH-wb&E$|ma!{dET=po82h>ans7dk4 zB>7ZK38_i;t4Ikc68Ff&gKAQF)l3!AFqKEc6u*WPkA_sfG@;XkP7^v!=yajeg-#bb zUFZXQUffOcdK<{$a3B(i;6a?Q_uL9fvi|@cUIo6@BW0J|N$hXg3D03CBBL!x#@tB8 zJxERup*A@PtxJdeSBp`6tQ?lvU7#if)SnKz@HA*e2W=}McYshZNvQaopy?-Ui4wAe z*3A=YS~Ji*pheg5ESy>{L}P@|mLPZ+2uE*=wQYJ7g-s}pSYcms!7!W+(}W(@IU{U0 zwj;NPPRyMxd8P{&5W`kqKJNMy%3+i#v00?|B2zycG!|EDL-W4&xWWiAW(9 zrp>rMZ^O+itw^{C7n%rH4iMIYgm7CK#=KTc4prgg5i6#`gpmfqXd_{!Q=GL%k8qO- z<85Y4`Ku7=sKr#M0oUJt1;5UPQC^}$U6m0nFPP!)tVMq_A$piFJ3_d2hG4M9Q1Z+e zDr{jG3*#uY#jw5bJ!nhLp}-PBQ=JVT)D_^2UG&4L#pGN4SiL%f-+s7^pYMK(_-iIa zx(&$4$Ut7!Q>Zj(VY8TE-?0tPRar3kW&sw?oACWjE7oq6<3o{iX^yb^72&75gz>N$ zGtp|STx!6>AKNi}T8oKKvhl_3e5}EUF42!MQRk#j^ktOLU?KE6Hm`qR-?o41|7@&v zz5b%SCt)?^z-r8d(~^k}#};(h{;l6$q=(yDiXQt83^(pVr&Wh=jR6yT%COX1iR$WV zyjwd9ovsDW*a_rE^Ks)N!o6<7yx9zk#ez`DDE94L1VzV@Gn|9v=|^{XOfTL}Q4!uK zOQ7Bvhwt=BmQn{%eFwHkA-T7R|qSL=_qPtVmX*VsDScjx(@^PF>@ zbDrmEdT~?!u!z*JtX;2_EV4x!Yny8xOA#$;8m_;wX>)V!pDCl36&h|swYd#xbxhSh z!<06csbVv2+2yiSi(^X6WlGd#OT;nER<|utwX zyRFQ)sqBa;cGMB0)lzngDOS`HTgRGhj+mM|dXEz^loK_S9Wx{ar(J2TG*_A{%|&z3 zTr?NWH>`ePrC9gJAQcrAB$G+*4hn0IU8W%Y54d*$zRe;fXKE){U$>N&ZIvXu>X_)O zWn!>}iILruPwc`I_LBKZKKc6=5*S^M)YwSJOytCq$Yn2{dSUKPA$ver^ts^f5N7oX zb2Rs!7M9hgv3942=KXUxG?~Myq|h)Vw4N3A-q5iPS>z`C6efd|jfe4drsMC=B6u>7 z(3J(u-6|CB*SUv+!16rA?&FZx>gBCoAgWDo3qFLe1A2_)b)jYsB4a&6s~I*=($s#m3OT{g>rtQ5!5|YuREtS1qS0=q0htNB`;~#!|EIKxS_yS3VMMZxK!x7ZV5sh!=FRZp|3d+e1cY29qNX?r>k0eml9jyk0cK zipoJEhYvDu`&_P{D`K)alfnFa{#!q_FO_R^<25?tuy^DXy&sSB_SiSP_w`Ml+1{)PAd*`xaSmaRPGDd)rWbb315 MqcM-Jr`aoi0UFgg1poj5 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/asp/female/head_lower.vox b/assets/voxygen/voxel/npc/asp/female/head_lower.vox new file mode 100644 index 0000000000000000000000000000000000000000..9d035e3c00a64a96c5ef0d661b86e28343aedb6c GIT binary patch literal 2272 zcmai0eQe!T89u-Bo{!(hy`{RXTidNI?KavD8Qo@A?8M^M!0l}@V{Sq>7Vl^8WtlF` zGRJa*fhw_*No{I76f)2(M6V28)&=noBxWHb3#~wm(JX|h@h=npGXD4Y+#$M{CH|5p z@B5x}p7-;dn|tU>4|gppr6%snJV>Fgg-RXBOpc}+2ET@M#BIdGk4$EsH&pm-4Y(eJ zbxSxE)h*#vLYdT!3MyU&d9mq|CcJIRIonjXgt1Ne$fk>-O&45{B0p7k0eOTAV#=73 z{s^bjbxSxQmoTO&FD6|vlFl1R<*lSjMv{t^q#)F_Nf$zs&S^aiqK-ZT}wPUS3Zr&ATHQ~8jwL#~M=Ws$gG zCCV9zm`h9<=e0?dbwiRb5>+(!0?I&QA}ItW#T=rN(Q(1(q^Kn6}-(=mTAF zO0$oeebjjq=%OeoNFY;2N!}Aq3HPNQD#?Wbp$(-ed1a=YGTbxdnw)4;mcZn_7W$Q< z(NZvhl%1Bc)lzcQZ9t!a$vMLEtRWozS#63ouyqsIN+^!~bwx|*#23AGd82*Ki79)Y zGeSQ1LT%Y=OTNunF`Sc|^3=U}`m>C0S-Z=5?KwYR@qsNk?Kvl3c8ul4aUOQcX;%+# za9rI;!>7p$xgqy7*Or0=j2>Zsx+EQjoGsAJBXI{O?+$QdTg zFX3Dh@?+{TbBw7+Ij1Am7Ug1-D#e^<%-KZ}@vcOS5f>uP&gzhMTy&hfm#FM`&NpVS z!-6#CD&dsqguRbTmhpr(-_N*JYRu_i)e=thifzEis%s$7V>ZxPrzy40IFXDM$vR`k ztua||{Fo!G@mXVh#v4bT%UI)RyH#)OiX$vx8hQ|{Si-4*cOl@LOO1J($~eN>RMy+{ zxU=aoYtva{(_9Z%Ea9vlx7KH!b*q+emOdLWX}-Pmm@(v=)VMck=GItCXeVQ0=+iI; zZAUxg8An@ahbCc;an_ocyqNnjIgDqbRYQo0Sqo!R_e4nB(+*9X0@WNH}tof+?A^#cI*i(>ES6_8Sf0;edFcdpFMl1)BQ0qCY8Sem*oMCI_dtzW zsADnIOP_|i+Jfc@h4sf3HqI&B`3r^cm_m9+VGZq;y27rB1Y^gWG5O>geD}&G?5ip4 zUr@+jRCs)q-2H9nsCHv>tsjGzN6V696lNY(IDb;%jb|0w`)ASfnbWv)po-2- z^VmEvi#s;`0L?uwU}Ikmqk9JMqdgn(>>&Fw+>E(zAH%iR&*ATXd=-Cr?`N3*S~qHk z+mR#*Hmvy+wzoH9psyQ)cWuSzcJyKHTN`ol#curJ?S5Q;XB(bp%*z)PuKil!&+jRm zsrKUB%uZZ=WiLMZ(*aCB(~Pq}U5j6?w&FTEG0A?MW}S0I_T`kq-adt+L$|K~`1scU z)c^C-6F2Jb*l-*AyVs$=vkAj}O*lA|#=(LA)<4+MhD`rv92vX|)BEnhq5c+BceUf} z{abMP=yvSfxf9>teI6|>Sq#rUh1Qu?y!B&+_YW)7dwbE>*M~~aDU3gG32NpH)=jU& zm8Fko_(U7;PDcm6xn%+O4$q_b%+uI#bUogAbqlUcwqm}k3;!FxajxO(kptH-T>&0n zdKoi6xs2~!`YoRO&Aa&QiCNtH)Onoz#t4>v_!ve;M)08mR7l_-karb6_|?bxeZc$m j|MvM;;l?|=S-yDq2tKhJo1f^nlDAsBnRBy#i?ixq!%w&# literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/asp/female/head_upper.vox b/assets/voxygen/voxel/npc/asp/female/head_upper.vox new file mode 100644 index 0000000000000000000000000000000000000000..7a5388844fdd6222661d3c8c92b3f7b6f3652040 GIT binary patch literal 1976 zcmah|TWpk75T5^B{{_J+ZK3ztQs^!Sw8c_vrNz>~wiHtkgmQ^{-=*P_+8{I=3{;7g zAhoG2UPwVDL{~rwC5R753?U?hAP{3zLWmllOn5TBea;U-8$;q|Co^--H{V>&{A*rV zTRKcc?TdpeSkWhzXjQPY~tB3CtpDDhVjFmp& z3eN8eH{*EX*f=?EhRBz3$n(8(8y2jEV`I{>3BkS;Hfp7c7@?9@s4#aFavhuGQZhb{ zGQX>$+Nz|n zDk_DE^JF8Mb17w#QksMkD&{JiQ9`sTj!~|PNfzbdt%^%+Bf_Y#&?+gEiVCh-3dKFB zq~d(a>ZCF{CXJ3Nt)r4fDIF7%dsR9l*tSBpD#;kB<3j4N5}LV8*wHrQFh(lFye4EA z=Ln7w%;EE5c}^~KTILfbqO@192}z&HxE$;9E(osAXr7DlYS$s7Ou{kDD^0}Vw|2NU z%XPZUDLJpyCN4d0#z@1qH5n^(Li>1Ul#TK7g^blaXOq<0L^RLXa6aCuj4>u`wT7*tdQ!J8rzU&LeNMe3se%33O zKEIgMgYU1dt`6yR8g~Z?%MM>cdG=qxz4O3#`S5-xf@4_GHV>hV^+@k%!&rY1V}l`# zjcmt)v2Dm|%0=GGr6}D!3;xlCpcW14ngBZbBk2(!N+xLt%veS|6O z=Vl1=+b5!ROBOo!Ou<`ci?Ae3=olh|PZD-r=h%*X6sO8CJsm*pnI;r;XQS*uJ_5%| zP<44Grfwii-^1L)goX0Gb__KUj{voLw1#V) zpN~{a8G1V^F&wK#di4SfC!2Bc&6n`|u@q*N=c1vy1Z|C#h^<+Gu2w?dM#5+h;le>e zL7*SyPw&L+suW6!1~I*=A2W;IMOOJ?6#CO>X{f>n4TU&Z%k!wu!oV9{xO)B&{`m0} ze!ck_2Dg?Wy}kewCr-q)DNkT-K^Cg~WvHDq1J73bG4OgJP97=44_5-XeQg##Z*VHuPx3;Ffbh(YUiMP$wI6N z zT$e-Xb^-lxXpOl-u^2G3Kg>1e+?bHM)+**)wf<`JuhxIBK8LedW9!-8dq2*Rgo4 zWWJI|-mxNF<6Dusc%klrn14GWvT5E8qD^&ufe+15#+tRac|ZVRo) zQ+RhSo7$kz7!?jq2}hSyZljHyfP;ddN%@Qidv7X^AsgmIF76u}NpBYlj;p;#gz9U8 zyrk+6CL+;fWIB~_v7HNB(zyG)9qOMZD#Dz?_kjSvDUJrSnHqI+ebUX%D-A?F!udMk z${u0)RUyz=$iP99;hqvs9x)jS2z@m|f2}aqqIxZ}5vX%8*yv>Ba0$WY3Pw6>xc<(| z{5}z&DBntTNiM$aP7b$J&{Z#l_6y^E!nHGk-3*ie%mAC*0dlh=6u84|%zhtB{#mkI zLF%gAd{mvqnR0a=RThTd?qcEU7=QeDnP2aGPUJNQ!8SWdNl9d+JV~+Lg4^YweDemL zD{(RWRu)s|9Q<(8WcgMRAFG-(6T-sR!Y_A(!GM#oP$~15YIyKd6TPP_41Jc$mrI!} zlS`{Qj{!C3@F8_B{X&gP=%`$K{%-$;L@f3$FaL)qJk4okw=e`AA=j*IHYhvszyxR{jPebTnfC literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/asp/female/tail_front.vox b/assets/voxygen/voxel/npc/asp/female/tail_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..ce1a0256dad0595cabc4b304f36842d588b1d325 GIT binary patch literal 2288 zcmai0ZERdu5uH18-|pM@c7q{_6WdAb+DU6~N>eAnad9XviPie6C=Cg%lSb@%cfH#v z5Lr=3qg7FBsBo)LV;MUIsm$*{zCjaoR?CF zP$X6w-FxTWnK|doJj(~a_+ZDPh>YJed_NcYQz){3cw#7<9QaGoR?+B|2OpXke#vvg zU*3tBSVI$Yu4u}YX6748^XiI0R*M?=hDEOE16LHDjc3QbrGkdiER$*|&7yR}F-Eys zHr-H~cvlEKV^dl(rwvQucsAp^`jY7 ztdka5BZz!aGptL@DoH)!O1qLJ`vhM^?94A2;!iO)^d(Jdq+B(i&qCg3gQ6!kQ=XN% zvsN{}v6OE})=Hi^&4?%RQ$FPio_9XM#k?+O1tkZUyzyGngi|h<(kyk#_(qVkvgU%S zCRjr&Se$COj4!*$s={1q){w|5lJymzvB@Cor<8Ae+9oYcY$4;bJ_;&9 z?1{t568oypcyiOKF_+8wNectk^^9Y!Tu@Z9Kt}5iTc|T58adm{B8oB^l9eFSxKplWgNAW-*}pfxY9J16{ESVj`{1~o?Ee;8+IXm z85z;68}{5QV=PVM-cmARyfbn#l@(9F%eqmYk}*f~85#9C9r4M15@#~vvu;F9#w@AH z{OahZDbL1OWsD|ugf*E@Swk7G%%iN~ayn)rqn6WA$NLBF{lY!+@4s99{r#xd>-b<^ zaNl!R(6#2Dz=y8^zimbGdwF;n_mAF*!ovfopB%;V>@b$+3s_z{j$O-NL(^b0TE5bO zj>op5=iFV8p#X9;g1qo4$dzU^jSJQt6Kt3h-2O8`cvO&^5v=C9xgpp&9%JNK6DA&C zji)Ye#NN7K--4icLGb7bWB0XUQ>_!5>v{BD8bsUl8g!m%MgDv{df&Va>kbPxKhE5X zg59qRq31aE-ZE9jYcot zdUYHNgMt@^1g}0IxHcuI?c0J=#XRPYZ^x65nz4I(J4Qd>jq<@=I65Mjd024ngy8jO1a0|Qbbb01 zZttz3ed9bf_s-(Bjo(94*K^p=Q^(NmUi@J920YV8JqDUE_pPJ2`r29i{SU9;FYo>o z^Iz>m{ZJd?IL7+bpTxGdCiM1nqVJAd@!9P?nEU1iTzI|{zke%_Yj1DG4_WildBN3R z3jX}A;B>7UXJ>Zc%FBE3;UD*7`spT|`Nq@9Xs&dUFXo;Jc@zYC(ts}f;WF8c<+#)(cO)no*q=YPGao7i;$Vq zSUbHImzO^3;bX0wolTqYjV%kfdte@=r=P_7BkSTbE^l2xxfc>I5MYp91Ev?mh6E`nixSwY(VA1V-e2oWR+LD)X5G4P*Yi8q z2BMA9(ozC}0Qbj)-RG9bjQbNFT!rtFG1evT0()z=(R!$iKz|Jj!(JA~T3MLvrDWk% ztR5RlFK3W(JQwHmcBCpC={6%5oWuZL`9$6`fm`Oq$<8R=`E^ya#(<9FCD>Tr=soZ)_pqppbP!*Pal{ zuL<&^K7Y`JjK?5zaSZ3%xwtK!yU*I8`bow`Sk(C5@8?%7#{;R%PUdhu=;r2?TE;!X zg(~67K4JB+;IGSOpv}c-Zvm%{xR~$@M=ON>N@1!|_ga*UzskX2T@Dkz0s;*sOmtOn z{jHbyZN^V-rj7D~bZVZNu z7b{7ul1`JJ$AIQJ+M(ytFH|^%meP&+_w3pH5C6{wYS;LuB|e7B5sxc9hB9Xi4W-dE zxc}u}oR*B&mBqp0t@KrHr_p7@Uu0)wS2pu4`4kow@=nP#Hd_s4!zW1^O5(;x!rf*e zn3IFk>7*;OpFO+hkfA~1`{G%geE1KKC+oYDmd5MZad(U2tsjB10d~^Y+{~y!Z8Op6(rH$H{4qzUE=_{Udlh9_|Z>NrOKK sy)E4P@?n4X^!@rjzkY&i?`*w1-+Yiqw&8rFZzMO`Tc5LD-yl~01{@1ON&o-= literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/asp/male/chest.vox b/assets/voxygen/voxel/npc/asp/male/chest.vox new file mode 100644 index 0000000000000000000000000000000000000000..6ed1375ddccd12f67bc3f900097788cd87ff5df3 GIT binary patch literal 3556 zcmai0Ym8l072bP2_TJ~5dux?;pzqoTbOr>b#kSargQbD{D5fA4$|K(Q9STYsQcE+z zK$TbtQk&Z1gA_D`=oL`XHi$ov7(z%0GXgP2LkLmhFB5(l|1G~Wh!WGpo2;z;SkG^* zwa?x2g_~EOaL(~edG0HxktZG~^u$v~oQ}kCmpymb zNsowIlYBwSGNPZ9zb3~p2xg^L3 zC&QR&Phms73>ET$T`g4IT*|a9?CL@?f z;XAHE!^pm$$hQ+>k3{_le}QxuytG2$8tVOQsQ5Zps4fvXA!nZhJJ=MWnlEHX72kBZ z41D40R0ZBCLe9;3`0()ItK4FuW?)};x$i{8sm&rjAy^$Q7tjg@6O@t2&A#Epfi7&{f2)4slee$%scQzDD9_1zf7sQsAJf9RX+d z4X$!etG+2!#0Xzh(10r3p{fkH^c}(|01KZ3mx6n~f*y(`UL}Uyc7=3P;hIu}Q9?Zl zIszLJ{xqdgEd8O5RMx*jO{t)#DwqM}B*;a8w;%_pmVM`te_1bJ27LzR3|U4jLA1xH z7sDPEj2cQmXuu4)MpmHD3+-|N*^2a1xd*Np_EezGc{wZ4MGYeEViob>J`}!@Dl$w3 za8#PhP~WU5=eVp5_XYSw_zdWoFt3X}VvE2a!gkEjx4>M`a|xKGf_f?Uy$tot3g1&; zqR2rJgCcLOpf*+XDf9#ML!kpkT~lcjIY#)8McL!7#=t9~HmO3u*Q2L^32{RT=};Lv z>MccSQ@UEfF4h8E1h@#~sGNf;FoMm1xRkg_nV*g5vxxY(yoX$>BIb&3vqNq;RLq*$B!!Uw}7-1*$ zTt=Dmp;$~|d1UP>a-y7J50u58pnp^5 z`&o|r9GK)%Pi5bOXL$cYu5E?ymz6W^#4)C38FXY_Ryo_JKOZz$y z?4{hZ)HRQzz)~aF<9SAX4k;T2tR-Y4(KHf)j>uiC zvBeVFggGY6x8h!Luec8yI}#wPz)lcPh#l4ddDK6k7tuq4?+D>rm;&&CtU^{HEAS`4 zN=n>OXA#ss#vwzGQFDsu=ZxkwquC%d8wK?**T7J**FobH+VEj!RjAjjXIa*CHrjO(4Zu63;0pfFg)N1QOUxiuW;qBHrzcyD3R8L#|1< z8!=BBxTf%@u(y2oF!wTu2~_Wp}zzgueM@0r>eyS{O` zwQk>LGY1-W=19%X9BbK`llRz`GhelZQ)9N|%d2hm{TJK#sVmLxRCD`sb5DN4+$&?Y zaF?_5?{>EQsIyCc;VkWQRz2+OJnY9t&aT*1SpDvWw)cVa?AvEo*flfGb{}`ve%9H2 zbI{$r)K*Tfv2`;Ow)ymwE!)4y);zM*CZ1YlldoQ6=ilaR-2(m5VMp)TXb;^vVJD`Y-Mhotfoq&Swg<6ZvDBt_uCYVAH`s~Z zMw_{5i=7zmu$RB}CHvb`({}ONG26azl{G%M!FqeP*uJ{6!?!y-b+5CR9(A^C;)t#N z)Iqysa@tm{IA-f6kJv>kzGn;9K5om$XKd&8N&DgU<@V@i;IVC?9sTA$d;P`7?C*bk z&i?Y&&+OP&*4WIg%d990yWqT!+hxlZ+T{2e+kEMT_L+_2cJv#|?b#>R*dJb-uy@|L z*nR|`r=N26`mde+`7LLMrZ?DQhd0?P&+M@G|8%46e|Vui^3z53%ef`?j;*r2z~dnD zJlX{=2b}E~cXr3tbLW3|^TPk+|MP>p=JQ{9!N+W3&0?EawZOKGFR+`oR_&(A|K`7W zdBPxb}cGuY2Cy;X}4~|6)6P@`D=QzZAW*a;1HJ{c*c$+cE1t{E%I6 z$NBcgbL;Kw-X(Ty^=kWH|D{}M>y{f|xBWx2`%XS>hktU~zVrNV?fbuZ(>{IA5xeTa zQ+DsyrtIVo?zE|?DSOYExdgI*7{BT4-CunW-@E9q|96iOoS(Cg@+WS+%|6_hmmjXr Q#m{y2QJs&j&mrsn1@u~Ea{vGU literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/asp/male/foot_bl.vox b/assets/voxygen/voxel/npc/asp/male/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..53ed1cfe4305bd193930d74f0c880ba33e64ed29 GIT binary patch literal 1348 zcmaize@xV69LGP;_s4NX+7)p8IDU12a;GT=1Q?`e$P^J9lBD=!aol-#GSV?e$Zj^J zT;xn*1op$BHRsC2V!+J)FxQ-ObI#PYR&&l(>#sKdYW?@>Ih@5BTc7Q{&*$@gp3n37 z@jOr4OIr#@MWlIk<3_Ed%ob^FY;SlX>1cUOLsOEXv1My}qbO}?S*2kaX4DchVk$Lt>U#QCr!amSOF(4J&FXD`qRJ!%}wGk%VD~Or;{G zp+cr%gl(}x%91^%vLc2uH76QcD>G^+BVrpmMyyVUvZ4;#)Q%@sT+_;*B%x)ofNLc!%;Or6> z3@Ts zZ1a$sno3sMQ!Mwm2>85IEnCF% zAE@BUxq2S_+)B?87e_x!=c}99+@*kaJ&!)!=TKPBrB|r;2|H`%@4tJ)qJR4TqOW3)md^xBsgA92)(_Y_D2I&zcpq`Q5}TJse$I!qm>?R8&;( zUiCO`cN4XPhsYkt=ISTHoo&L|(o%drAF-ldHmsXO2Kve9$zW#e;T;~x(QhX|pEpWI zSXnzv_{d?hc4l(pdt8tg&*tir+qUz_PcA;P=hO3X Mb7SV(^X!$s0f)CZ7ytkO literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/asp/male/foot_br.vox b/assets/voxygen/voxel/npc/asp/male/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..82b0dac80a754afe804a569801b803cdb05e56f7 GIT binary patch literal 1348 zcmaize@xVM7{{N__s2nzb|oCb@v8%rJ54ztz#u&Xrij?kAjKc+;12F&1Y?Yl-E2y^ z$dSY@upbVsF;}FP17`MzxyGCubEdAfnscsNf3^8n>%UhYbe3yueYR)M^Sqzm&*$@L zdTD3Qn26MGtlg%W6xt#?YMX1GSWxtNOp}HrLDSA%&9$Pmpw9+PmSKi1F@vTu+bm^7 zETv_!Bes~Wwlac-*g;#2c84L_&uTH19kvWBWNNb1f^LN^Wrqx9M-0Ob+e$@jL$%q4 z5i-SUO|YcPR#wQNOpQy(Hq4N%%vOiecEfHn#L}@=*ieq3ZAwdmA;APCtqxHU-EWI6 zs@Hd^qN0i}cS9%U5j-Y5T-h@^WIa7X^_F7h28=2d?YbhIF!`9`a&7N~Z(3dy?@Cr{kN< z#(!lcse6RHLpt}EPHQndZC_pKsZ$+T-Yw$ZWp2r`SiE=80jwJ$bKJVQK7d==&KfvH|btW(uvl1 z7-%S9EL=pav5c`u6_?+Bh2JNmtjcv!S(HuPh62J(Wpr#22KNdRy~3qqg4;Jl?z8=@ z_D9Li93{^`#LCR~aps;N!yBWf($7bg85}Fs`>1d-@>U1)7mxGDPv`jc=I4yQ<{`G* zO;S=4%a=XHTDKFw*F))=6+B<$W#r8a&Ytw}<5eHGudU)^U2}R;nEyuj<)$zYE#UZI zF>`0CxcBo8dX737{w$fVuBUOEY?}2x`t_V6A-$JAp~@@lD_?y6&aEr{ng5Ia`up=| zEq@Z9Ck0>jQYySlX)IqtqyOLeOS96c_2sdrbPYY#>uB=1h?ck+-jvVuzO@t=7xP}( z1TI${6+?$f8%*QMC&I1W!c;*4Uayx(ZXa7WpGO7kY0%1`dz!$W<+_)uPqFNQrD K^QgRtulx-%|2PBy literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/asp/male/foot_fl.vox b/assets/voxygen/voxel/npc/asp/male/foot_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..2731fa2b6cc50d3f7e427c4e12a8be4d5aa8222c GIT binary patch literal 1344 zcmah|ZA_b06h8O8@7oq|SOp5SKv{vUEjU)d(pkh#AX{O~Fa$SX#Fl=JAcPQPq?y^O zi`|05rUFwJHVs)6$COYq=a0DT zBo>e)^2?m{F;0HYnUBk?Pv#WhoPu1TK3U>kNw6eSfXU?H67xx%`8i`DE(t#uKAA!? zV;)(O{9KZPGM9vwf?PmmJfsL#Bq^X`vQI^_SH-wb&E$|ma!{dET=po82h>ans7dk4 zB>7ZK38_i;t4Ikc68Ff&gKAQF)l3!AFqKEc6u*WPkA_sfG@;XkP7^v!=yajeg-#bb zUFZXQUffOcdK<{$a3B(i;6a?Q_uL9fvi|@cUIo6@BW0J|N$hXg3D03CBBL!x#@tB8 zJxERup*A@PtxJdeSBp`6tQ?lvU7#if)SnKz@HA*e2W=}McYshZNvQaopy?-Ui4wAe z*3A=YS~Ji*pheg5ESy>{L}P@|mLPZ+2uE*=wQYJ7g-s}pSYcms!7!W+(}W(@IU{U0 zwj;NPPRyMxd8P{&5W`kqKJNMy%3+i#v00?|B2zycG!|EDL-W4&xWWiAW(9 zrp>rMZ^O+itw^{C7n%rH4iMIYgm7CK#=KTc4prgg5i6#`gpmfqXd_{!Q=GL%k8qO- z<85Y4`Ku7=sKr#M0oUJt1;5UPQC^}$U6m0nFPP!)tVMq_A$piFJ3_d2hG4M9Q1Z+e zDr{jG3*#uY#jw5bJ!nhLp}-PBQ=JVT)D_^2UG&4L#pGN4SiL%f-+s7^pYMK(_-iIa zx(&$4$Ut7!Q>Zj(VY8TE-?0tPRar3kW&sw?oACWjE7oq6<3o{iX^yb^72&75gz>N$ zGtp|STx!6>AKNi}T8oKKvhl_3e5}EUF42!MQRk#j^ktOLU?KE6Hm`qR-?o41|7@&v zz5b%SCt)?^z-r8d(~^k}#};(h{;l6$q=(yDiXQt83^(pVr&Wh=jR6yT%COX1iR$WV zyjwd9ovsDW*a_rE^Ks)N!o6<7yx9zk#ez`DDE94L1VzV@Gn|9v=|^{XOfTL}Q4!uK zOQ7Bvhwt=BmQn{%eFwHkA-T7R|qSL=_qPtVmX*VsDScjx(@^PF>@ zbDrmEdT~?!u!z*JtX;2_EV4x!Yny8xOA#$;8m_;wX>)V!pDCl36&h|swYd#xbxhSh z!<06csbVv2+2yiSi(^X6WlGd#OT;nER<|utwX zyRFQ)sqBa;cGMB0)lzngDOS`HTgRGhj+mM|dXEz^loK_S9Wx{ar(J2TG*_A{%|&z3 zTr?NWH>`ePrC9gJAQcrAB$G+*4hn0IU8W%Y54d*$zRe;fXKE){U$>N&ZIvXu>X_)O zWn!>}iILruPwc`I_LBKZKKc6=5*S^M)YwSJOytCq$Yn2{dSUKPA$ver^ts^f5N7oX zb2Rs!7M9hgv3942=KXUxG?~Myq|h)Vw4N3A-q5iPS>z`C6efd|jfe4drsMC=B6u>7 z(3J(u-6|CB*SUv+!16rA?&FZx>gBCoAgWDo3qFLe1A2_)b)jYsB4a&6s~I*=($s#m3OT{g>rtQ5!5|YuREtS1qS0=q0htNB`;~#!|EIKxS_yS3VMMZxK!x7ZV5sh!=FRZp|3d+e1cY29qNX?r>k0eml9jyk0cK zipoJEhYvDu`&_P{D`K)alfnFa{#!q_FO_R^<25?tuy^DXy&sSB_SiSP_w`Ml+1{)PAd*`xaSmaRPGDd)rWbb315 MqcM-Jr`aoi0UFgg1poj5 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/asp/male/head_lower.vox b/assets/voxygen/voxel/npc/asp/male/head_lower.vox new file mode 100644 index 0000000000000000000000000000000000000000..9d035e3c00a64a96c5ef0d661b86e28343aedb6c GIT binary patch literal 2272 zcmai0eQe!T89u-Bo{!(hy`{RXTidNI?KavD8Qo@A?8M^M!0l}@V{Sq>7Vl^8WtlF` zGRJa*fhw_*No{I76f)2(M6V28)&=noBxWHb3#~wm(JX|h@h=npGXD4Y+#$M{CH|5p z@B5x}p7-;dn|tU>4|gppr6%snJV>Fgg-RXBOpc}+2ET@M#BIdGk4$EsH&pm-4Y(eJ zbxSxE)h*#vLYdT!3MyU&d9mq|CcJIRIonjXgt1Ne$fk>-O&45{B0p7k0eOTAV#=73 z{s^bjbxSxQmoTO&FD6|vlFl1R<*lSjMv{t^q#)F_Nf$zs&S^aiqK-ZT}wPUS3Zr&ATHQ~8jwL#~M=Ws$gG zCCV9zm`h9<=e0?dbwiRb5>+(!0?I&QA}ItW#T=rN(Q(1(q^Kn6}-(=mTAF zO0$oeebjjq=%OeoNFY;2N!}Aq3HPNQD#?Wbp$(-ed1a=YGTbxdnw)4;mcZn_7W$Q< z(NZvhl%1Bc)lzcQZ9t!a$vMLEtRWozS#63ouyqsIN+^!~bwx|*#23AGd82*Ki79)Y zGeSQ1LT%Y=OTNunF`Sc|^3=U}`m>C0S-Z=5?KwYR@qsNk?Kvl3c8ul4aUOQcX;%+# za9rI;!>7p$xgqy7*Or0=j2>Zsx+EQjoGsAJBXI{O?+$QdTg zFX3Dh@?+{TbBw7+Ij1Am7Ug1-D#e^<%-KZ}@vcOS5f>uP&gzhMTy&hfm#FM`&NpVS z!-6#CD&dsqguRbTmhpr(-_N*JYRu_i)e=thifzEis%s$7V>ZxPrzy40IFXDM$vR`k ztua||{Fo!G@mXVh#v4bT%UI)RyH#)OiX$vx8hQ|{Si-4*cOl@LOO1J($~eN>RMy+{ zxU=aoYtva{(_9Z%Ea9vlx7KH!b*q+emOdLWX}-Pmm@(v=)VMck=GItCXeVQ0=+iI; zZAUxg8An@ahbCc;an_ocyqNnjIgDqbRYQo0Sqo!R_e4nB(+*9X0@WNH}tof+?A^#cI*i(>ES6_8Sf0;edFcdpFMl1)BQ0qCY8Sem*oMCI_dtzW zsADnIOP_|i+Jfc@h4sf3HqI&B`3r^cm_m9+VGZq;y27rB1Y^gWG5O>geD}&G?5ip4 zUr@+jRCs)q-2H9nsCHv>tsjGzN6V696lNY(IDb;%jb|0w`)ASfnbWv)po-2- z^VmEvi#s;`0L?uwU}Ikmqk9JMqdgn(>>&Fw+>E(zAH%iR&*ATXd=-Cr?`N3*S~qHk z+mR#*Hmvy+wzoH9psyQ)cWuSzcJyKHTN`ol#curJ?S5Q;XB(bp%*z)PuKil!&+jRm zsrKUB%uZZ=WiLMZ(*aCB(~Pq}U5j6?w&FTEG0A?MW}S0I_T`kq-adt+L$|K~`1scU z)c^C-6F2Jb*l-*AyVs$=vkAj}O*lA|#=(LA)<4+MhD`rv92vX|)BEnhq5c+BceUf} z{abMP=yvSfxf9>teI6|>Sq#rUh1Qu?y!B&+_YW)7dwbE>*M~~aDU3gG32NpH)=jU& zm8Fko_(U7;PDcm6xn%+O4$q_b%+uI#bUogAbqlUcwqm}k3;!FxajxO(kptH-T>&0n zdKoi6xs2~!`YoRO&Aa&QiCNtH)Onoz#t4>v_!ve;M)08mR7l_-karb6_|?bxeZc$m j|MvM;;l?|=S-yDq2tKhJo1f^nlDAsBnRBy#i?ixq!%w&# literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/asp/male/head_upper.vox b/assets/voxygen/voxel/npc/asp/male/head_upper.vox new file mode 100644 index 0000000000000000000000000000000000000000..7a5388844fdd6222661d3c8c92b3f7b6f3652040 GIT binary patch literal 1976 zcmah|TWpk75T5^B{{_J+ZK3ztQs^!Sw8c_vrNz>~wiHtkgmQ^{-=*P_+8{I=3{;7g zAhoG2UPwVDL{~rwC5R753?U?hAP{3zLWmllOn5TBea;U-8$;q|Co^--H{V>&{A*rV zTRKcc?TdpeSkWhzXjQPY~tB3CtpDDhVjFmp& z3eN8eH{*EX*f=?EhRBz3$n(8(8y2jEV`I{>3BkS;Hfp7c7@?9@s4#aFavhuGQZhb{ zGQX>$+Nz|n zDk_DE^JF8Mb17w#QksMkD&{JiQ9`sTj!~|PNfzbdt%^%+Bf_Y#&?+gEiVCh-3dKFB zq~d(a>ZCF{CXJ3Nt)r4fDIF7%dsR9l*tSBpD#;kB<3j4N5}LV8*wHrQFh(lFye4EA z=Ln7w%;EE5c}^~KTILfbqO@192}z&HxE$;9E(osAXr7DlYS$s7Ou{kDD^0}Vw|2NU z%XPZUDLJpyCN4d0#z@1qH5n^(Li>1Ul#TK7g^blaXOq<0L^RLXa6aCuj4>u`wT7*tdQ!J8rzU&LeNMe3se%33O zKEIgMgYU1dt`6yR8g~Z?%MM>cdG=qxz4O3#`S5-xf@4_GHV>hV^+@k%!&rY1V}l`# zjcmt)v2Dm|%0=GGr6}D!3;xlCpcW14ngBZbBk2(!N+xLt%veS|6O z=Vl1=+b5!ROBOo!Ou<`ci?Ae3=olh|PZD-r=h%*X6sO8CJsm*pnI;r;XQS*uJ_5%| zP<44Grfwii-^1L)goX0Gb__KUj{voLw1#V) zpN~{a8G1V^F&wK#di4SfC!2Bc&6n`|u@q*N=c1vy1Z|C#h^<+Gu2w?dM#5+h;le>e zL7*SyPw&L+suW6!1~I*=A2W;IMOOJ?6#CO>X{f>n4TU&Z%k!wu!oV9{xO)B&{`m0} ze!ck_2Dg?Wy}kewCr-q)DNkT-K^Cg~WvHDq1J73bG4OgJP97=44_5-XeQg##Z*VHuPx3;Ffbh(YUiMP$wI6N z zT$e-Xb^-lxXpOl-u^2G3Kg>1e+?bHM)+**)wf<`JuhxIBK8LedW9!-8dq2*Rgo4 zWWJI|-mxNF<6Dusc%klrn14GWvT5E8qD^&ufe+15#+tRac|ZVRo) zQ+RhSo7$kz7!?jq2}hSyZljHyfP;ddN%@Qidv7X^AsgmIF76u}NpBYlj;p;#gz9U8 zyrk+6CL+;fWIB~_v7HNB(zyG)9qOMZD#Dz?_kjSvDUJrSnHqI+ebUX%D-A?F!udMk z${u0)RUyz=$iP99;hqvs9x)jS2z@m|f2}aqqIxZ}5vX%8*yv>Ba0$WY3Pw6>xc<(| z{5}z&DBntTNiM$aP7b$J&{Z#l_6y^E!nHGk-3*ie%mAC*0dlh=6u84|%zhtB{#mkI zLF%gAd{mvqnR0a=RThTd?qcEU7=QeDnP2aGPUJNQ!8SWdNl9d+JV~+Lg4^YweDemL zD{(RWRu)s|9Q<(8WcgMRAFG-(6T-sR!Y_A(!GM#oP$~15YIyKd6TPP_41Jc$mrI!} zlS`{Qj{!C3@F8_B{X&gP=%`$K{%-$;L@f3$FaL)qJk4okw=e`AA=j*IHYhvszyxR{jPebTnfC literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/asp/male/tail_front.vox b/assets/voxygen/voxel/npc/asp/male/tail_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..ce1a0256dad0595cabc4b304f36842d588b1d325 GIT binary patch literal 2288 zcmai0ZERdu5uH18-|pM@c7q{_6WdAb+DU6~N>eAnad9XviPie6C=Cg%lSb@%cfH#v z5Lr=3qg7FBsBo)LV;MUIsm$*{zCjaoR?CF zP$X6w-FxTWnK|doJj(~a_+ZDPh>YJed_NcYQz){3cw#7<9QaGoR?+B|2OpXke#vvg zU*3tBSVI$Yu4u}YX6748^XiI0R*M?=hDEOE16LHDjc3QbrGkdiER$*|&7yR}F-Eys zHr-H~cvlEKV^dl(rwvQucsAp^`jY7 ztdka5BZz!aGptL@DoH)!O1qLJ`vhM^?94A2;!iO)^d(Jdq+B(i&qCg3gQ6!kQ=XN% zvsN{}v6OE})=Hi^&4?%RQ$FPio_9XM#k?+O1tkZUyzyGngi|h<(kyk#_(qVkvgU%S zCRjr&Se$COj4!*$s={1q){w|5lJymzvB@Cor<8Ae+9oYcY$4;bJ_;&9 z?1{t568oypcyiOKF_+8wNectk^^9Y!Tu@Z9Kt}5iTc|T58adm{B8oB^l9eFSxKplWgNAW-*}pfxY9J16{ESVj`{1~o?Ee;8+IXm z85z;68}{5QV=PVM-cmARyfbn#l@(9F%eqmYk}*f~85#9C9r4M15@#~vvu;F9#w@AH z{OahZDbL1OWsD|ugf*E@Swk7G%%iN~ayn)rqn6WA$NLBF{lY!+@4s99{r#xd>-b<^ zaNl!R(6#2Dz=y8^zimbGdwF;n_mAF*!ovfopB%;V>@b$+3s_z{j$O-NL(^b0TE5bO zj>op5=iFV8p#X9;g1qo4$dzU^jSJQt6Kt3h-2O8`cvO&^5v=C9xgpp&9%JNK6DA&C zji)Ye#NN7K--4icLGb7bWB0XUQ>_!5>v{BD8bsUl8g!m%MgDv{df&Va>kbPxKhE5X zg59qRq31aE-ZE9jYcot zdUYHNgMt@^1g}0IxHcuI?c0J=#XRPYZ^x65nz4I(J4Qd>jq<@=I65Mjd024ngy8jO1a0|Qbbb01 zZttz3ed9bf_s-(Bjo(94*K^p=Q^(NmUi@J920YV8JqDUE_pPJ2`r29i{SU9;FYo>o z^Iz>m{ZJd?IL7+bpTxGdCiM1nqVJAd@!9P?nEU1iTzI|{zke%_Yj1DG4_WildBN3R z3jX}A;B>7UXJ>Zc%FBE3;UD*7`spT|`Nq@9Xs&dUFXo;Jc@zYC(ts}f;WF8c<+#)(cO)no*q=YPGao7i;$Vq zSUbHImzO^3;bX0wolTqYjV%kfdte@=r=P_7BkSTbE^l2xxfc>I5MYp91Ev?mh6E`nixSwY(VA1V-e2oWR+LD)X5G4P*Yi8q z2BMA9(ozC}0Qbj)-RG9bjQbNFT!rtFG1evT0()z=(R!$iKz|Jj!(JA~T3MLvrDWk% ztR5RlFK3W(JQwHmcBCpC={6%5oWuZL`9$6`fm`Oq$<8R=`E^ya#(<9FCD>Tr=soZ)_pqppbP!*Pal{ zuL<&^K7Y`JjK?5zaSZ3%xwtK!yU*I8`bow`Sk(C5@8?%7#{;R%PUdhu=;r2?TE;!X zg(~67K4JB+;IGSOpv}c-Zvm%{xR~$@M=ON>N@1!|_ga*UzskX2T@Dkz0s;*sOmtOn z{jHbyZN^V-rj7D~bZVZNu z7b{7ul1`JJ$AIQJ+M(ytFH|^%meP&+_w3pH5C6{wYS;LuB|e7B5sxc9hB9Xi4W-dE zxc}u}oR*B&mBqp0t@KrHr_p7@Uu0)wS2pu4`4kow@=nP#Hd_s4!zW1^O5(;x!rf*e zn3IFk>7*;OpFO+hkfA~1`{G%geE1KKC+oYDmd5MZad(U2tsjB10d~^Y+{~y!Z8Op6(rH$H{4qzUE=_{Udlh9_|Z>NrOKK sy)E4P@?n4X^!@rjzkY&i?`*w1-+Yiqw&8rFZzMO`Tc5LD-yl~01{@1ON&o-= literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index f87de2544b..dd473af981 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -208,4 +208,56 @@ central: ("npc.monitor.female.tail_front"), ), ), + (Asp, Male): ( + upper: ( + offset: (-5.0, -5.0, -5.0), + central: ("npc.asp.male.head_upper"), + ), + lower: ( + offset: (-6.0, -3.0, -7.5), + central: ("npc.asp.male.head_lower"), + ), + jaw: ( + offset: (-2.0, -4.0, -1.0), + central: ("npc.asp.male.jaw"), + ), + chest: ( + offset: (-5.0, -7.5, -5.0), + central: ("npc.asp.male.chest"), + ), + tail_rear: ( + offset: (-1.0, -14.0, -2.0), + central: ("npc.asp.male.tail_rear"), + ), + tail_front: ( + offset: (-3.0, -14.0, -4.0), + central: ("npc.asp.male.tail_front"), + ), + ), + (Asp, Female): ( + upper: ( + offset: (-5.0, -5.0, -5.0), + central: ("npc.asp.female.head_upper"), + ), + lower: ( + offset: (-6.0, -3.0, -7.5), + central: ("npc.asp.female.head_lower"), + ), + jaw: ( + offset: (-2.0, -4.0, -1.0), + central: ("npc.asp.female.jaw"), + ), + chest: ( + offset: (-5.0, -7.5, -5.0), + central: ("npc.asp.female.chest"), + ), + tail_rear: ( + offset: (-1.0, -14.0, -2.0), + central: ("npc.asp.female.tail_rear"), + ), + tail_front: ( + offset: (-3.0, -14.0, -4.0), + central: ("npc.asp.female.tail_front"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron index e4749253f8..9f866a691b 100644 --- a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron @@ -143,4 +143,40 @@ lateral: ("npc.monitor.female.foot_br"), ), ), + (Asp, Male): ( + front_left: ( + offset: (-5.5, -3.5, -7.0), + lateral: ("npc.asp.male.foot_fl"), + ), + front_right: ( + offset: (-5.5, -3.5, -7.0), + lateral: ("npc.asp.male.foot_fr"), + ), + back_left: ( + offset: (-4.5, -2.5, -7.0), + lateral: ("npc.asp.male.foot_bl"), + ), + back_right: ( + offset: (-4.5, -2.5, -7.0), + lateral: ("npc.asp.male.foot_br"), + ), + ), + (Asp, Female): ( + front_left: ( + offset: (-5.5, -3.5, -7.0), + lateral: ("npc.asp.female.foot_fl"), + ), + front_right: ( + offset: (-5.5, -3.5, -7.0), + lateral: ("npc.asp.female.foot_fr"), + ), + back_left: ( + offset: (-4.5, -2.5, -7.0), + lateral: ("npc.asp.female.foot_bl"), + ), + back_right: ( + offset: (-4.5, -2.5, -7.0), + lateral: ("npc.asp.female.foot_br"), + ), + ), }) diff --git a/common/src/comp/body/quadruped_low.rs b/common/src/comp/body/quadruped_low.rs index 0f25697dcd..e745cd5ebc 100644 --- a/common/src/comp/body/quadruped_low.rs +++ b/common/src/comp/body/quadruped_low.rs @@ -31,6 +31,7 @@ pub enum Species { Alligator = 1, Salamander = 2, Monitor = 3, + Asp = 4, } /// Data representing per-species generic data. @@ -42,6 +43,7 @@ pub struct AllSpecies { pub alligator: SpeciesMeta, pub salamander: SpeciesMeta, pub monitor: SpeciesMeta, + pub asp: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -54,15 +56,17 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Alligator => &self.alligator, Species::Salamander => &self.salamander, Species::Monitor => &self.monitor, + Species::Asp => &self.asp, } } } -pub const ALL_SPECIES: [Species; 4] = [ +pub const ALL_SPECIES: [Species; 5] = [ Species::Crocodile, Species::Alligator, Species::Salamander, Species::Monitor, + Species::Asp, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/voxygen/src/anim/quadruped_low/mod.rs b/voxygen/src/anim/quadruped_low/mod.rs index e4ef0ff17d..cf6b403b44 100644 --- a/voxygen/src/anim/quadruped_low/mod.rs +++ b/voxygen/src/anim/quadruped_low/mod.rs @@ -131,54 +131,63 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Alligator, _) => (0.5, 3.25), (Salamander, _) => (3.0, 1.0), (Monitor, _) => (3.5, 2.0), + (Asp, _) => (6.0, 5.5), }, head_lower: match (body.species, body.body_type) { (Crocodile, _) => (8.0, 0.0), (Alligator, _) => (9.0, 0.25), (Salamander, _) => (10.0, 2.0), (Monitor, _) => (10.0, 3.0), + (Asp, _) => (9.0, 2.5), }, jaw: match (body.species, body.body_type) { (Crocodile, _) => (0.0, -3.0), (Alligator, _) => (8.5, -2.0), (Salamander, _) => (2.0, -3.0), (Monitor, _) => (0.0, -1.0), + (Asp, _) => (1.0, -2.0), }, chest: match (body.species, body.body_type) { (Crocodile, _) => (0.0, 5.0), (Alligator, _) => (0.0, 5.0), (Salamander, _) => (0.0, 5.0), (Monitor, _) => (0.0, 5.0), + (Asp, _) => (0.0, 8.0), }, tail_rear: match (body.species, body.body_type) { (Crocodile, _) => (-12.5, -1.0), (Alligator, _) => (-13.0, -1.0), (Salamander, _) => (-9.0, 0.0), (Monitor, _) => (-12.0, 0.0), + (Asp, _) => (-14.0, -2.0), }, tail_front: match (body.species, body.body_type) { (Crocodile, _) => (-6.0, 0.0), (Alligator, _) => (-5.0, 0.0), (Salamander, _) => (-7.5, 0.0), (Monitor, _) => (-6.5, 0.0), + (Asp, _) => (-6.0, -2.0), }, feet_f: match (body.species, body.body_type) { (Crocodile, _) => (6.0, 6.0, -1.0), (Alligator, _) => (6.75, 6.25, -1.0), (Salamander, _) => (6.0, 6.0, -2.0), (Monitor, _) => (6.0, 6.0, 0.0), + (Asp, _) => (6.5, 6.0, -1.0), }, feet_b: match (body.species, body.body_type) { (Crocodile, _) => (6.0, -6.0, -1.0), (Alligator, _) => (6.5, -4.5, -1.0), (Salamander, _) => (6.0, -6.0, -2.0), (Monitor, _) => (6.0, -6.0, 0.0), + (Asp, _) => (6.5, -3.5, -1.0), }, height: match (body.species, body.body_type) { (Crocodile, _) => (1.0), (Alligator, _) => (1.0), (Salamander, _) => (1.0), (Monitor, _) => (1.0), + (Asp, _) => (1.0), }, } } From aec8690cd5d9a107df47947c517c93d167c842b5 Mon Sep 17 00:00:00 2001 From: Snowram Date: Tue, 16 Jun 2020 01:18:25 +0200 Subject: [PATCH 18/48] Set new lion model offsets, fix some jaws --- .../voxel/npc/lion/female/Lion (3)-10.vox | Bin 1836 -> 0 bytes .../voxel/npc/lion/female/Lion (3)-7.vox | Bin 1836 -> 0 bytes .../voxel/npc/lion/female/Lion (3)-9.vox | Bin 1740 -> 0 bytes .../voxygen/voxel/npc/lion/female/foot_bl.vox | Bin 1836 -> 1344 bytes .../voxygen/voxel/npc/lion/female/foot_br.vox | Bin 1836 -> 1344 bytes .../voxygen/voxel/npc/lion/female/foot_fl.vox | Bin 1740 -> 1308 bytes .../voxygen/voxel/npc/lion/female/foot_fr.vox | Bin 1740 -> 1308 bytes .../voxel/npc/lion/female/head_lower.vox | Bin 254 -> 7732 bytes .../voxel/npc/lion/female/head_upper.vox | Bin 254 -> 2644 bytes assets/voxygen/voxel/npc/lion/female/jaw.vox | Bin 254 -> 1208 bytes .../female/{Lion (3)-6.vox => leg_bl.vox} | Bin 1740 -> 1588 bytes .../Lion (3)-6.vox => female/leg_br.vox} | Bin 1740 -> 1588 bytes .../Lion (3)-8.vox => female/leg_fl.vox} | Bin 1144 -> 1528 bytes .../female/{Lion (3)-8.vox => leg_fr.vox} | Bin 1144 -> 1528 bytes assets/voxygen/voxel/npc/lion/female/tail.vox | Bin 254 -> 1364 bytes .../voxel/npc/lion/female/torso_back.vox | Bin 254 -> 4484 bytes .../voxel/npc/lion/female/torso_front.vox | Bin 254 -> 5896 bytes .../voxel/npc/lion/male/Lion (3)-10.vox | Bin 1836 -> 0 bytes .../voxel/npc/lion/male/Lion (3)-7.vox | Bin 1836 -> 0 bytes .../voxel/npc/lion/male/Lion (3)-9.vox | Bin 1740 -> 0 bytes .../voxygen/voxel/npc/lion/male/foot_bl.vox | Bin 1836 -> 1344 bytes .../voxygen/voxel/npc/lion/male/foot_br.vox | Bin 1836 -> 55827 bytes .../voxygen/voxel/npc/lion/male/foot_fl.vox | Bin 1740 -> 1308 bytes .../voxygen/voxel/npc/lion/male/foot_fr.vox | Bin 1740 -> 55791 bytes .../voxel/npc/lion/male/head_lower.vox | Bin 254 -> 7732 bytes .../voxel/npc/lion/male/head_upper.vox | Bin 254 -> 2644 bytes assets/voxygen/voxel/npc/lion/male/jaw.vox | Bin 254 -> 1208 bytes assets/voxygen/voxel/npc/lion/male/leg_bl.vox | Bin 0 -> 1588 bytes assets/voxygen/voxel/npc/lion/male/leg_br.vox | Bin 0 -> 56071 bytes assets/voxygen/voxel/npc/lion/male/leg_fl.vox | Bin 0 -> 1528 bytes assets/voxygen/voxel/npc/lion/male/leg_fr.vox | Bin 0 -> 56011 bytes assets/voxygen/voxel/npc/lion/male/tail.vox | Bin 254 -> 1364 bytes .../voxel/npc/lion/male/torso_back.vox | Bin 254 -> 4484 bytes .../voxel/npc/lion/male/torso_front.vox | Bin 254 -> 5896 bytes .../voxel/npc/saber/female/Saber-10.vox | Bin 1836 -> 0 bytes .../voxel/npc/saber/female/Saber-7.vox | Bin 2048 -> 0 bytes .../voxel/npc/saber/female/Saber-8.vox | Bin 2048 -> 0 bytes .../voxel/npc/saber/female/Saber-9.vox | Bin 1836 -> 0 bytes .../quadruped_medium_central_manifest.ron | 34 +++---- .../quadruped_medium_lateral_manifest.ron | 32 +++---- voxygen/src/anim/src/quadruped_medium/mod.rs | 90 +++++++++--------- 41 files changed, 78 insertions(+), 78 deletions(-) delete mode 100644 assets/voxygen/voxel/npc/lion/female/Lion (3)-10.vox delete mode 100644 assets/voxygen/voxel/npc/lion/female/Lion (3)-7.vox delete mode 100644 assets/voxygen/voxel/npc/lion/female/Lion (3)-9.vox rename assets/voxygen/voxel/npc/lion/female/{Lion (3)-6.vox => leg_bl.vox} (51%) rename assets/voxygen/voxel/npc/lion/{male/Lion (3)-6.vox => female/leg_br.vox} (51%) rename assets/voxygen/voxel/npc/lion/{male/Lion (3)-8.vox => female/leg_fl.vox} (58%) rename assets/voxygen/voxel/npc/lion/female/{Lion (3)-8.vox => leg_fr.vox} (58%) delete mode 100644 assets/voxygen/voxel/npc/lion/male/Lion (3)-10.vox delete mode 100644 assets/voxygen/voxel/npc/lion/male/Lion (3)-7.vox delete mode 100644 assets/voxygen/voxel/npc/lion/male/Lion (3)-9.vox create mode 100644 assets/voxygen/voxel/npc/lion/male/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/lion/male/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/lion/male/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/lion/male/leg_fr.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/Saber-10.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/Saber-7.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/Saber-8.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/Saber-9.vox diff --git a/assets/voxygen/voxel/npc/lion/female/Lion (3)-10.vox b/assets/voxygen/voxel/npc/lion/female/Lion (3)-10.vox deleted file mode 100644 index 5e4892342e59444d8b318aeb3ee5943a44f72421..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1836 zcma)5ZD^Kd6h8OIv-f+>+~z)PTk~u040X=7+0{RJM`y!-j|mA~Ga`5b;OUujofa|E{iQ{uHen4(C4K*E#pOTi0!> z7!VPEg}ataib5hSZl*aN2s{pnD#;~n+MIEJ*SzrDAZcyWT8nEP8KmQ&%8@}s(%Mk3 zU9FX?jdqol-P$PE1jM^BIVq!aXd?w&<)qXk54lD;zS7~87RS@t@r`!US~;#FS4L9G zsI<~TALSdRePhJaM$+0!N?YY=hdz$DLRn}tyj$9>71mas(Zbq{HH_7ovT=>JDXkQV zn3W+9kx5985{DA6G>ScNm~_7StrUG+PBPMb=Wg1h>0>j$~rOD zi!paBt(~x|9oBWCoI%XjHcr1d-y!ZB;xQ(|+|iUVQOYr5h;bgw$2>;!Zs@1uDP!Zr z8}ZbnUxNAsv5`BBb7Cpu#5seAYuT$ck+e|}#xpnjvras1S=*>6?ZmF)q!{lB`X=}W z3Eyh^u%2Z-YvZ0Jersdwk1;mN{)k1zeMP;p0Y!bK_zv6wBN5*SeS$d&v8pihN75?b z!kpAumEgYc4TwQAmm*F@EJ_o*%JHm3nLpucVpEDX&R8kVPZ&d+mf+pEbCx^F{oJtn z%@y3G$?t5G-7gwl?DRGun9^~G}3 z+?k8%TLrU@GWURB=}m#W!}?ueNPjNmdOmvQPQ~!T0z6z+3Zz~^zX--iKaqYV^&b*k z`CKqQEVz4(a+Bafv*7y;f=7D=XLiJJA|vSCTY%%crr^YTMcCdT=v*Z@*GjC5OVHL_ ziLUik7}&E2*^TuW*tZhnpS+9TF1BIb%t9<(R1WWrD(q>kM|(=py-hImf#BvDL0wr1 z-0E4_S~njZtCpa(x)5!POL1!TY>aGQfaaw&SohWvWZqtZ_8n`{bs&S@kJ~Xad>j+E z&ZF=BN@TZ`A{L9GXxdaPD9uAnvJ!Rk=iv24N%Vd+16RJP#LsuD@#y|Me8HL{7X|lz z5a5qx=xVFNx$aurzPu8D{?dYulX*DxZ9c9&D8?g{Bg1(dVxPUcIhRhs%A`EE|NZGX z&-7nbGzHa_1*k61MPo7-8ygbXSo8n;udS`cXZ1r^P;&u|J;zYoU5q>LP19X#?C%{!y_f!ow71~IJ+Oq8~d>PjpN{+A&Bj=!7=0BL z&&)sY3vz94xrdH@z~QsQ=>BE|r?20_;Exk{?O+d<9~*-Anq lm>pFNKU#^>1r{flgqiC-Kq{{k3_T&Vy6 diff --git a/assets/voxygen/voxel/npc/lion/female/Lion (3)-7.vox b/assets/voxygen/voxel/npc/lion/female/Lion (3)-7.vox deleted file mode 100644 index 9f3fada22b2eef4b92d64cfe64be4e31c20df248..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1836 zcma)5ZD>|y7`~s6^M0LoI&+)*ux-t+y))D~+h)_6>C$uF_h`CY`uc&IqGOmcV(1u# zuCyiQT4OrMmW7NEO=TNNKWvDIAR^zZ6A^QUMXxOndG`@ZhyIW6lp zl@EwWu)$jtnwzP(@_W5Lz4B zwWqc6w9%fjvRfPFnGlqXiDZn9q_v4KhES0}g}RESjdIdT$I@CHUu(xV+R5lio8v1Z zX=RkJG*7Jpqcm$uM$@jXc-ksoJK`xqsEZNLIFhl9u~q^@zhSP?Ds7DB3_38{P`80r zoKn`Nn;1dDtuOt@2tac_KkHj+^$5^Pxg#tOcr z$*;b?9$j5sc-$vgbM6*q<^6-d^71e~9w7WKd81gHUWA?78qn2|#%Pa+(Y~D+J#!Fs zqX&@NSb(A($cU7Twq!A_Ud8jy5jH(M|sJ=Z9 zGqwt5A7$+U!Ll0yd7J$^W03wSkZXD9nKuo?i}LYcc?saZgnki>5kC>X68(n+mp>Pb z4-4*GrQRqw-z4~cgW%y_!RZ|?PGkkWd-HL8*HoN%w-DRw1s$sdXInVyl47(rRiJZy zB?k5^M%TtV4D4Hp@sHoZZx>oIe^vpOEiOa)^-An%sY9DD=-wt6dS7tkw4k=M7+%$E zY^_~@_Ek&KQdNM~B_%kudJaamFGSO_YOH&6DY9>^K--SB=sb``??-JI89t7Qo9EE? zUIn_gl)!ae6i%Opg(bPDPF0|G!Cbt$IECI1XX5f#75Mp16&~K3k1yDB`R~uneTsi+ z;Z#&r|06|C*W_d{#Gvh1KWL&~pq$-9@AY8`) diff --git a/assets/voxygen/voxel/npc/lion/female/Lion (3)-9.vox b/assets/voxygen/voxel/npc/lion/female/Lion (3)-9.vox deleted file mode 100644 index ea3978b0a0e8dc59427818195494d681321af39b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1740 zcma)5TWC~Q6y4`BlbN|QG1esJVUskzGO?&JHi?beSWWfbxmT;Hsg4iSDjI@SLJ1lM zi>6gmQPVU;h1xVN5{hV5l3?kF4I(0lNRUz}B7T(qm41}cztuJIQ?xy>*yrrM&)RG6 zdv5ExO%($o60C67(#XxQNQ;|pj%N>CAtFLdAvSGJyC*d_TtkEn%LO4+j$AN=HpbUR zyV@vMTkWcl?ABJfCX4Le2xHc_Cgxim^Nl4;%rz$JSxE#|;>>kCYaHL&1QF*x*Rwh| zWfiSqj)|wNW=th$8CTh}<67nLZuWk{Q#u|f6?YYVO2tw}626gmV8mg)+?3I|fgzvL zj;}Q1DnSi|PI$(U!#JK%(ZG=3kjH3;`SeZZ#@Iu`)jE;VDiLUjds-aYn6D+uSe&sq zV{y*HNom$FCWm?=f!4G-hyEOLW;B~guD^zijX7f zYaK}`9buh_Z@AawRg7s9C3jYHly#!?GgncQj(M8%)>-`~%y^i&VQLI}T7`Kh>?srW zmDRoqDeAE)WehpBr>q3ZDxQTO3cbsqi&=Lr5*XG zJY9n7OXaA!I~UWp3T7Q8_kdvOErGnp`dtx7e=g)kK6>U(#qh!cJX%%?c(0*f1Y^X{ z#BW6ZA;Hxz1mnYkd)Ikx5)3s9Zf+1f-YYn}!@-HPpm%Qpj_;a+6CV^|dxM~JmEe3U zwJt6}TXQA4)>mO*&mv?t)?;AbN{pX;AHQE}!@QY=Sh}bjskf@Ir?npKo}hc1VDKZs zt+RrIs&Kx$7I&_!#Gk*mpyN~?PJfq=>ko_Z80AQF9*5Xx?{3beQ?N2A zFYJH6Kj*pr%ZjF;y0QS(<+*4~=3-+*0vl`ofB&_$wfMY#5DRLC(AaYf#ofiY`;Fky z7QyAJDkPIh?3>vMf6Wa@cNYpe3NUu=**82=!nadahL30WV|imAcAq+qqV3c1;QQGa zOBbWBqT;#vXY;aLn_KRqV;^w%+%USo9l@C!w{hX83A}Nz2g{EQBK6fRv|O7&Q&SV3 ra+DGw@Hfna;K>iq^gZGG`mZ>D!pZ;aMK&9JQ7r3!S!|N{<@e=Zg9=pm diff --git a/assets/voxygen/voxel/npc/lion/female/foot_bl.vox b/assets/voxygen/voxel/npc/lion/female/foot_bl.vox index 9f3fada22b2eef4b92d64cfe64be4e31c20df248..111c15fea52a2b1f51de6b36c1d76e46369a2fb9 100644 GIT binary patch delta 96 zcmZ3(cYw<>%s)b58Uq7^ucN0QkYdnbWnc*QjB@1xaex5GWnc$lHXx3OjPm>gq(Q)L kqNNQJBkRQJjgw^^Xd>9!)nAMAknbm8v0y7T_0PKwpdH?_b delta 590 zcmW-eJB}4G5Jg=dcl-AyCPcFUB9f6v2ngJ6Lx6;aw-LgpS;9+L1sM?;%V7tk9AoLq z^}V-T{#|}NJbn4}{Q7$cVZQGlxx%YGgwOr@p)H3K0io~!p1)rEAI0GOx<9>pwCyzA zhT7IufoxNjFZ(cwLp0sLy_ib6|9x}wa;oO8mJfAqPuQuOr6Js^=@i|E`aaF}sk%=w zeA`c<)^zV0>R~G%b9c|frA&{7xSnolx+a9Fv!zwws)t$~s`b2SOjBbXx*8%0ZzLPS zZJ6i7ET86ufdGw0qj{PJktwz{>_$!N!XpF`^9%JCwg4h^@LD7fpDVCDO)|sh8zkv) zk{&C;(p`bH=~A&T-63)Zh`842)(&^_M&6fS$Ri@Fzp=H7P(6griYSPO1s)Q3K&XI$ z1x;aCxu)&}JwPg#QwgdRQ2DdW>LFRLl%s)b58Uq7^ucN0QkYdnbWnc*QjB@1xaex5GWnc$lHXx3OjPm>gq(Q)L oqNNQpBdhPk84Z(V7n0y%-nYI_CtP^7h46G-KeqG2i5RKyfIWY`9)Fd9^ZWkz{*7I_ z>E%$vPA``(FMc~r;u1~${_VS~q;dcE_U2`&X5hK2<2_BaG|kc>mWC=`x2e97+o0UK z*wz&ju%_ff9p>Azn7ezPE~R@cQ-dyt!!-?)v!+mA=u_!e;jZ(hF&!Fd9LvyHmwE%( zrfOS;AhQg4>1Ks{MMOQ!A%w`3*uZJ)<_*Dl$O~>KzatJGsf)E+Y(wC4hIPx+BvYSn z5T(Oon@)3+0s!^Wuu8lG-lzM%T*1)LY3SaDGl6?$LTbD)A!4L0AuoPfSt2?_;$a~# z3t-Nl3W${if1V;&f&eK=mwhU#6cGxUpi~eeih8*W4}}K%QpAby#y5*pzL^@{G@Pr8 Ntcs1Z{a^2-`F~Y-Jjwt7 diff --git a/assets/voxygen/voxel/npc/lion/female/foot_fl.vox b/assets/voxygen/voxel/npc/lion/female/foot_fl.vox index 72ecaf16e49c1bdd38ce1c6c497b0498dc7b1503..bbb281ac9449df61f35666f0f558292b88c1a6f9 100644 GIT binary patch delta 284 zcmXX=%S{C_5c6ji5PDpwfF>w_1BWCVI3S_NJJZMO0%;|>paBY?0LsBDF_Pnq9Z%-x z=JWde`h2|m05BigQwUcJ@X}6?hrLOq#pORA-%jm!7gP5^E!gs4;{`Scl2=JhVw2Ta zc$e9{W4{aWYNgd#T&X(e@L)nTI?YZY8oTUiCtwT}rixQbyagQ*wbWKg?`?te<4;Pd58fU!IQppf3rl@J@LC_ENt?j=o<)WP3Bg7ki@sa)79y zR|KjjdqsHVjoYUw7bCc}z}6Ytqmx@D%M3ef*rDQm2KO3q_K2eguNt^|_@(&Sf`=|E z=kjsPZ~=P@-v?FCIHxP_epL6pxo?ej4%#8RtJgJ%tJ1IGc&Gp>5E(^I+*XAWKrbqk zAQ4dw=!)H{ee2*^0m07+5kthVZNSO|j{zJVx(Dv^_em}ivUXrm(?vClxR#2CFWtFl zvN8fi>SayS+^_Io`8MdQnyeyOyL)NCD$ye2Dw0(qbXE>5ikC?gi7NvxD-LKt=*e*p zz^r`Mn(_p4d%$ybWQoYr1I?2U*N&W2Ogju~91S!C zIJ3>rz0jG;lZw$b9As~BP(1*Dk_yP7o+dsTM@1 diff --git a/assets/voxygen/voxel/npc/lion/female/foot_fr.vox b/assets/voxygen/voxel/npc/lion/female/foot_fr.vox index ea3978b0a0e8dc59427818195494d681321af39b..b03607ebdc0dd259d75a4a7c911e010d7f59670f 100644 GIT binary patch delta 284 zcmXYr%S{9^5JcLGqB)BsN)% zg?E|FJNsG4T@6};#YWY6r93Hh8k1%`0*CBrqss|ZGyyGWT(F`-`d%<9GgTNab_>&r k=5c4Iv)igJCQGfNqqWM_Nw4Oun^}!P$nR0}>syEV1By``*Z=?k delta 719 zcmW+!OO6#W47979^e_G32wa85Eb@Z|5*lXBJ$lOtkVay|8Q5?L4n_4uDmk&8a@onR z{oi?g{rvplrf)@x+2QAel?FRx_W|1!D~c7xil%XN;4ZpI&^iHGEb=enS|%=Es&lEq zOUU*Z!OTa4PRl-)0Yy()kV^yJbPTROBD77jU0Ca z%!+5_W{J%0f@fXI&6$S>h9{Sx=uV0h&BLaL>uiD#1Si89LT{O5m5*%IvvqxzZt^pm z8n71029v9(O;T2Wg5spO$!LH-Nd+__%0@?ogd~k8DJjXH)G75|)Dt8rkLm(kAI)RJ Mlio1ZKkvQ7f5l`(tpET3 diff --git a/assets/voxygen/voxel/npc/lion/female/head_lower.vox b/assets/voxygen/voxel/npc/lion/female/head_lower.vox index 07762236fbc03903198d5a872805d2c3e8e13879..c8e412dc9622a910c58aa8275990bda4c2e38d0a 100644 GIT binary patch literal 7732 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 literal 254 zcmYk!K~BRk5J1trPvHYV5e^MenvT!((IGHhT@JNxl|elts(Y@dq{@yMDadQtZ3$CyY8AalUX zkbyCwxZ+47gyKAn(-bOJB?=0J9!K-C`~S>!R3v}^?24420$Q+SjDaELQ# nnF6K^H6s-fR*-C7clKItO>1AD?6!PcZI{|jZ$H)gNMwEio&QNH diff --git a/assets/voxygen/voxel/npc/lion/female/jaw.vox b/assets/voxygen/voxel/npc/lion/female/jaw.vox index cbae9b79744247ab9ab10878ac9f74bf79c24afa..8c4041c52cbead2a3f9418faf768a5c5d1bcafb5 100644 GIT binary patch literal 1208 zcma)*Urf_i6vt0XS;&}JM_c}`umakaMJzBV16>&~EeH-7Osf)f8X*l+h#}fEF4_&p z4BB-BTr$VlM#y4hN?NjI4~!UMOpGzaEK3$*d|39j>|t5<_SyOAqrvSYpPc)>=l(nA z-rKWhU-6`fv^NGj)X6s%k*;8<;V-byu&QUL_l{7^+8nP&RcfQdmdOpMa zem~J@lt&3+*VPqDZ2$0=&BpR_JBD2krs!zf#^FQtL`T|4jRi?14wITXNp0!`)_{Y& zzG8~cmgAYOLt4_2@bk#bi^z%tYrBv$C=|wpS8fOyVPQi|$X4yRCRDd)(mH4*bS|5Z z7hj?|Ds)Z=N9Khy_jPV(KF$FbrBN?6$p8hzHeBQRcxQ|7-QGgZL80`Vu01IZ=vk}t8EA14>2x!BtdeMVEtCCCEPwP4zt0X( zUgDskvWT|V-5l$wCEO~+4hhqzgr& zA@g6l_~nk5wR`1!u6rhDg}Xlr{IQ+LfSW6^DpsyH@#n8y3}3V|{;iFh_w!hzh>+If zwB{K@{)4+WKb5~TcOzbx9dA(<^`0!c{Tt}^{r~){s;c;;cA5&`4E1B@ z$&2N2`zztW0pXh4jmP7mzhs2nyB3gG1pBa^#i=KEcs5_(j?>BeWfSbEPjK|&D7n2k z-21MK#ZVrJ;^L?3Z;Uh6+TV4T;eI$XHAn30B$pO$@!3zSyn1qs9p|TM`(lZ%8><8Y u0Ul{7B}3tF(pH6sKRh|#Lw#TW71uBL_@Axkjo^AQqyJg4#|uAuzWfVxAt?_4 literal 254 zcmYk!O-ckY5QgD>PLTuXbgC-9g9?Iz*GMWAJ1{dnn6?p5Z$oc+PaCMGgZ_AbeN#)XddwM}KgYzBGe?(lO2NBWD2TOW ztTVo}D&SF4<;*P^GAz*s<`@8oBZ8>s!~Z6eGY+A#&jsE7vwMYOst~A!h(v_Uwjc+r n7#$gMU|kaor8V&C<)E+m)|-s=L2t{CZv7%djs7bd&_wkIgh@!~ diff --git a/assets/voxygen/voxel/npc/lion/female/Lion (3)-6.vox b/assets/voxygen/voxel/npc/lion/female/leg_bl.vox similarity index 51% rename from assets/voxygen/voxel/npc/lion/female/Lion (3)-6.vox rename to assets/voxygen/voxel/npc/lion/female/leg_bl.vox index 72ecaf16e49c1bdd38ce1c6c497b0498dc7b1503..1f02772c67ee9ec9fa2edb56082769cf5145a955 100644 GIT binary patch delta 566 zcmW-e!EGHe3`99YO6$XS4=x~0x{f2r>ozG-684QG$jGZ6K2kBOEsmO`AO1eMnk|Osac*5 z-cj=<5ILhDE(|0!^<_A+Y9)eMoT+DZGF;~Fd#8azrbr(U0}ue$ki4xL*#NeVQ3Rck z=EzJimmo&2UTaf`%Q?hkDsq{#htn&_vKdTErR~&~wd0-?Qn&_a4Mk%u02(5dD^-Xy zUAv|*qQ(F?CX!h>(<<4V+o|TQ#@fN_(@>|^5oQyY(ah5YS6;sZ9o~I$F(pKiu~l(e TL4)kTSn!xo?BM?UuW$7McGNTo delta 719 zcmW+!JB}4W4797+1^a>#oj1@93U#_ z6@lu>UJ+h-#uy@A(=;U6>ZHApStf=^y!J|f;J)-pBRRdQKzZ5@Pu;{XK zE+1uv3piT%F{paRIbCu0Qr(Z{zBk%AXhrr=uWJxjrC-DGPytjRGK!qItqLW8zNt`x zL_{^9D|V~)y@O{31V1N43=zZj0ox{622eV54?N@_lUyWZ?ZBd@i)t2eEfo)6x^vNF z+X!q@FKe3Seue+a_d#FPWEIKU-M0p;5-l>WB3UIuXXU_6@of^D#BBpED-LKt=*e*p zz^r`Mn(_p4d%$ybWQoYr1I?2U*N&W2Ogju~91S!C zIJ3>rz0jG;lZw$b9As~BP(1*Dk_yP7o+df<~YK3ZNKDK*@~PvHVlCzxUs# z+uO_K{239)V}G`bbBlQG*Qe78e9~qp?rfL$YyX2UJ|F9&=*SodPDFNuMxbUO?bU%c zi0zPbMC`#D!5mZ!(!GjX$GRY#SROqn8wXI1Jro+kHWh6sst4#;llC;msGX5E9g%6P zJ!A~+pl2v^m(sot8CN#P?GT;gtxcsF$_u!4tp>A}SpxJBHz`N-S{BlhW;0`1 Q##Oi(-%M`nUq3wMKk6(q>;M1& delta 719 zcmW+!JB}4W4797+1^a>#oj1@93U#_ z6@lu>UJ+h-#uy@A(=;U6>ZHApStf=^y!J|f;J)-pBRRdQKzZ5@Pu;{XK zE+1uv3piT%F{paRIbCu0Qr(Z{zBk%AXhrr=uWJxjrC-DGPytjRGK!qItqLW8zNt`x zL_{^9D|V~)y@O{31V1N43=zZj0ox{622eV54?N@_lUyWZ?ZBd@i)t2eEfo)6x^vNF z+X!q@FKe3Seue+a_d#FPWEIKU-M0p;5-l>WB3UIuXXU_6@of^D#BBpED-LKt=*e*p zz^r`Mn(_p4d%$ybWQoYr1I?2U*N&W2Ogju~91S!C zIJ3>rz0jG;lZw$b9As~BP(1*Dk_yP7o+dJ{~rHV@v7U$Mvr}0d)MU@dKHIUbEbH>~m#Xh^&Vi8LvmL5DAV1+apO-^p!Knox?wH9O|x&b{A zH`SOLGp|f$TUBiWZ^<(oJa$&Bcln*h2JVsf)?#?ZeY- zTev8nIw3caNz?+#E0sl?Ofrcq!gtr8sUUv?nP0i-z?7(Ce-7(Lk;8NE0d89W&o89f;p7=3^WJ%P%7gWR1Q8Gz=4fQ5y{ O|C*Yb&HovHG6Mkh1`|~P diff --git a/assets/voxygen/voxel/npc/lion/female/Lion (3)-8.vox b/assets/voxygen/voxel/npc/lion/female/leg_fr.vox similarity index 58% rename from assets/voxygen/voxel/npc/lion/female/Lion (3)-8.vox rename to assets/voxygen/voxel/npc/lion/female/leg_fr.vox index ef0bbc750bc674abd5ec4f64c22cbf40d1402914..428e3119cad022d793bd58cd036fdce124fead7f 100644 GIT binary patch delta 520 zcmW+z>uH=Z5Zsy3>*5rVGVZSp#^@D80>N<&F2QhJxDP{0N)i5HNaj1iYNVaj>`3}( zA2*j@k5Av;B4Xe6?}qrBBYyVh`>)5wBRQOkFOH|*&;1X)@OU{UMh9Y$vB8*BOejVu zRtPJI0l=J5=p;6UE#)QV#gs3L%AHC>(YB&?rZS|ml$xV@eH!9v3P!m`b&BTDjOKCd zOBagI9_QN#)*YxloD1a1Xp2!dqqyH`lBZ4U1uw-eU4Uj24z@vAL}d_Z(+y}LviN{= z*V^3STCh!^ZA2Z2V$2JX%vE#MTwPF^;L(&eB)^1_be`7Y#s%ylb}9K5$?lJrIBxH_ zI?pyB3(Ll2k+eX~pxj7{Uc5?ryJt>fbw`&;QsUUv?nP0i-z?7(Ce-7(Lk;8NE0d89W&o89f;p7=3^WJ%P%7gWR1Q8Gz=4fQ5y{ O|C*Yb&HovHG6Mkh1`|~P diff --git a/assets/voxygen/voxel/npc/lion/female/tail.vox b/assets/voxygen/voxel/npc/lion/female/tail.vox index a96e2c9c34e3773631257f85dae464555aadd21a..3f2fd028392d6a2cfe6932f09e0ce84e350d12b2 100644 GIT binary patch literal 1364 zcma)*T}WJ45Xa}7{kra#o4S6irfOGB+_l8`Q9r6l*Q!nK-o2*AYLiVOCQXR4*aRt( z$dZz5Yifhd){3UEYHblIAvTd+Y3YNNAR!P!kWdOmLLN%rN*_w;+rP8sF_`wikGV5* zX6DS?b9xRPDV`!Cy+!R{K>-s{ml|%jrxjiXCX=x;M~;S7m*5Xxt&AX0KIW0kQ zm{oGHw3~FY8C9|xbW)^F88S!~5t0_6NwWw_MTR8XB6)~bZC2V@XHEz47uSQ&xe1Z z2vzrXBlkF=^fKq3A~dfO=pC*$vCTyN1T<^2tYM2l|n~l*^nYj919(o%H!)=5cJ$%;MdUBb0VLnuU zDUR3e!BATxdi*&Us4c+wfifg}E79Iug+p&OBK&p>B7GegITuF!;|P+Aqu97RgNgUO zh#o6|&1OSh)(%t_xKQQuqHfPFyk6}?{G**%`pS!6?)$O%umTCLnOq<|_>q7=_F-h8 z95-S$SijYZKY#7Q&@~svzjfozBM&xFgfP$J0{0m|&2t$hwEAe<{s%+5p6kCbFB5)m zHvC0SH2Iw9Zg8Nx>i_p&Q&WS_>*r8eHIJsTEAYfTxc4>T@iD^9@^bimKJ=FiBXn>X z6dOVIP&QVkpZ&v2`FwW@3-MvuB=$E=;PkaoRYp)BDo7j&?o3 zP(N^SdJ(a2lK5=-F24L}1FxMQ!~QFC&}LWBb$bJWKmbp9l%z2D8-@+SlOLX)?+M?p a|MK%I+k9_e;?``tk+j6z@ zy59P67{1#2eAa$=biUJpm&?#^!o%jx%g%m&yuF*HRoiC_kd9>vlTI-w^ikNcimRZG zR6`aYhy^$ZCIn85gybe)J!it0sa7e(q{g|Tp1L+=1{{R30 diff --git a/assets/voxygen/voxel/npc/lion/female/torso_back.vox b/assets/voxygen/voxel/npc/lion/female/torso_back.vox index 4733b78e79186a1e81618e66f413d82e5a550b50..647960513c9563bcbd35e7ad76082fd572f473c7 100644 GIT binary patch literal 4484 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 literal 254 zcmYk#O=`n15QgEsPN4&|u{8Rz6w*Q=gKf4Bu^ey+}W7JN@8+=IhY!Ov7r`X{WzFKhA1yRrjeth{p`oyP8X|IhRBPVRVSu zq~L@^JVMP`LShINZALLtgC)qOSOmlBZTJ7P#*saR2%H>I^|nfkR0=^9uqHZ-c0?1l o9$<=ri{oOQ6y9pUsNQ$_T5e6aFE4tXf3>s=ch%dIwfD)ZKSeo9K>z>% diff --git a/assets/voxygen/voxel/npc/lion/female/torso_front.vox b/assets/voxygen/voxel/npc/lion/female/torso_front.vox index 18b1cd57acc13447b75b981bfcf9a2842395d498..3a8021c75395410a490569fb44d0400a02140555 100644 GIT binary patch literal 5896 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 literal 254 zcmYk!!Ab)$5P;!(o+1yR-AS^ONs0=Bg0C@|Ox!@*EoNQBr?=3H-{rskyMB$nUhJ}M z*KwSt&%QmL+Bn?0e3yf)=V@G3rrnvRJNxne`exQ%?O51jJc4Fq5?0Jjq!dw~NHKyG zjnxy(A(e`$LG&|4ZmhmI0f`g@fz9*X|ED@GT0+h+~z)PTk~u040X=7+0{RJM`y!-j|mA~Ga`5b;OUujofa|E{iQ{uHen4(C4K*E#pOTi0!> z7!VPEg}ataib5hSZl*aN2s{pnD#;~n+MIEJ*SzrDAZcyWT8nEP8KmQ&%8@}s(%Mk3 zU9FX?jdqol-P$PE1jM^BIVq!aXd?w&<)qXk54lD;zS7~87RS@t@r`!US~;#FS4L9G zsI<~TALSdRePhJaM$+0!N?YY=hdz$DLRn}tyj$9>71mas(Zbq{HH_7ovT=>JDXkQV zn3W+9kx5985{DA6G>ScNm~_7StrUG+PBPMb=Wg1h>0>j$~rOD zi!paBt(~x|9oBWCoI%XjHcr1d-y!ZB;xQ(|+|iUVQOYr5h;bgw$2>;!Zs@1uDP!Zr z8}ZbnUxNAsv5`BBb7Cpu#5seAYuT$ck+e|}#xpnjvras1S=*>6?ZmF)q!{lB`X=}W z3Eyh^u%2Z-YvZ0Jersdwk1;mN{)k1zeMP;p0Y!bK_zv6wBN5*SeS$d&v8pihN75?b z!kpAumEgYc4TwQAmm*F@EJ_o*%JHm3nLpucVpEDX&R8kVPZ&d+mf+pEbCx^F{oJtn z%@y3G$?t5G-7gwl?DRGun9^~G}3 z+?k8%TLrU@GWURB=}m#W!}?ueNPjNmdOmvQPQ~!T0z6z+3Zz~^zX--iKaqYV^&b*k z`CKqQEVz4(a+Bafv*7y;f=7D=XLiJJA|vSCTY%%crr^YTMcCdT=v*Z@*GjC5OVHL_ ziLUik7}&E2*^TuW*tZhnpS+9TF1BIb%t9<(R1WWrD(q>kM|(=py-hImf#BvDL0wr1 z-0E4_S~njZtCpa(x)5!POL1!TY>aGQfaaw&SohWvWZqtZ_8n`{bs&S@kJ~Xad>j+E z&ZF=BN@TZ`A{L9GXxdaPD9uAnvJ!Rk=iv24N%Vd+16RJP#LsuD@#y|Me8HL{7X|lz z5a5qx=xVFNx$aurzPu8D{?dYulX*DxZ9c9&D8?g{Bg1(dVxPUcIhRhs%A`EE|NZGX z&-7nbGzHa_1*k61MPo7-8ygbXSo8n;udS`cXZ1r^P;&u|J;zYoU5q>LP19X#?C%{!y_f!ow71~IJ+Oq8~d>PjpN{+A&Bj=!7=0BL z&&)sY3vz94xrdH@z~QsQ=>BE|r?20_;Exk{?O+d<9~*-Anq lm>pFNKU#^>1r{flgqiC-Kq{{k3_T&Vy6 diff --git a/assets/voxygen/voxel/npc/lion/male/Lion (3)-7.vox b/assets/voxygen/voxel/npc/lion/male/Lion (3)-7.vox deleted file mode 100644 index 9f3fada22b2eef4b92d64cfe64be4e31c20df248..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1836 zcma)5ZD>|y7`~s6^M0LoI&+)*ux-t+y))D~+h)_6>C$uF_h`CY`uc&IqGOmcV(1u# zuCyiQT4OrMmW7NEO=TNNKWvDIAR^zZ6A^QUMXxOndG`@ZhyIW6lp zl@EwWu)$jtnwzP(@_W5Lz4B zwWqc6w9%fjvRfPFnGlqXiDZn9q_v4KhES0}g}RESjdIdT$I@CHUu(xV+R5lio8v1Z zX=RkJG*7Jpqcm$uM$@jXc-ksoJK`xqsEZNLIFhl9u~q^@zhSP?Ds7DB3_38{P`80r zoKn`Nn;1dDtuOt@2tac_KkHj+^$5^Pxg#tOcr z$*;b?9$j5sc-$vgbM6*q<^6-d^71e~9w7WKd81gHUWA?78qn2|#%Pa+(Y~D+J#!Fs zqX&@NSb(A($cU7Twq!A_Ud8jy5jH(M|sJ=Z9 zGqwt5A7$+U!Ll0yd7J$^W03wSkZXD9nKuo?i}LYcc?saZgnki>5kC>X68(n+mp>Pb z4-4*GrQRqw-z4~cgW%y_!RZ|?PGkkWd-HL8*HoN%w-DRw1s$sdXInVyl47(rRiJZy zB?k5^M%TtV4D4Hp@sHoZZx>oIe^vpOEiOa)^-An%sY9DD=-wt6dS7tkw4k=M7+%$E zY^_~@_Ek&KQdNM~B_%kudJaamFGSO_YOH&6DY9>^K--SB=sb``??-JI89t7Qo9EE? zUIn_gl)!ae6i%Opg(bPDPF0|G!Cbt$IECI1XX5f#75Mp16&~K3k1yDB`R~uneTsi+ z;Z#&r|06|C*W_d{#Gvh1KWL&~pq$-9@AY8`) diff --git a/assets/voxygen/voxel/npc/lion/male/Lion (3)-9.vox b/assets/voxygen/voxel/npc/lion/male/Lion (3)-9.vox deleted file mode 100644 index ea3978b0a0e8dc59427818195494d681321af39b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1740 zcma)5TWC~Q6y4`BlbN|QG1esJVUskzGO?&JHi?beSWWfbxmT;Hsg4iSDjI@SLJ1lM zi>6gmQPVU;h1xVN5{hV5l3?kF4I(0lNRUz}B7T(qm41}cztuJIQ?xy>*yrrM&)RG6 zdv5ExO%($o60C67(#XxQNQ;|pj%N>CAtFLdAvSGJyC*d_TtkEn%LO4+j$AN=HpbUR zyV@vMTkWcl?ABJfCX4Le2xHc_Cgxim^Nl4;%rz$JSxE#|;>>kCYaHL&1QF*x*Rwh| zWfiSqj)|wNW=th$8CTh}<67nLZuWk{Q#u|f6?YYVO2tw}626gmV8mg)+?3I|fgzvL zj;}Q1DnSi|PI$(U!#JK%(ZG=3kjH3;`SeZZ#@Iu`)jE;VDiLUjds-aYn6D+uSe&sq zV{y*HNom$FCWm?=f!4G-hyEOLW;B~guD^zijX7f zYaK}`9buh_Z@AawRg7s9C3jYHly#!?GgncQj(M8%)>-`~%y^i&VQLI}T7`Kh>?srW zmDRoqDeAE)WehpBr>q3ZDxQTO3cbsqi&=Lr5*XG zJY9n7OXaA!I~UWp3T7Q8_kdvOErGnp`dtx7e=g)kK6>U(#qh!cJX%%?c(0*f1Y^X{ z#BW6ZA;Hxz1mnYkd)Ikx5)3s9Zf+1f-YYn}!@-HPpm%Qpj_;a+6CV^|dxM~JmEe3U zwJt6}TXQA4)>mO*&mv?t)?;AbN{pX;AHQE}!@QY=Sh}bjskf@Ir?npKo}hc1VDKZs zt+RrIs&Kx$7I&_!#Gk*mpyN~?PJfq=>ko_Z80AQF9*5Xx?{3beQ?N2A zFYJH6Kj*pr%ZjF;y0QS(<+*4~=3-+*0vl`ofB&_$wfMY#5DRLC(AaYf#ofiY`;Fky z7QyAJDkPIh?3>vMf6Wa@cNYpe3NUu=**82=!nadahL30WV|imAcAq+qqV3c1;QQGa zOBbWBqT;#vXY;aLn_KRqV;^w%+%USo9l@C!w{hX83A}Nz2g{EQBK6fRv|O7&Q&SV3 ra+DGw@Hfna;K>iq^gZGG`mZ>D!pZ;aMK&9JQ7r3!S!|N{<@e=Zg9=pm diff --git a/assets/voxygen/voxel/npc/lion/male/foot_bl.vox b/assets/voxygen/voxel/npc/lion/male/foot_bl.vox index 9f3fada22b2eef4b92d64cfe64be4e31c20df248..111c15fea52a2b1f51de6b36c1d76e46369a2fb9 100644 GIT binary patch delta 96 zcmZ3(cYw<>%s)b58Uq7^ucN0QkYdnbWnc*QjB@1xaex5GWnc$lHXx3OjPm>gq(Q)L kqNNQJBkRQJjgw^^Xd>9!)nAMAknbm8v0y7T_0PKwpdH?_b delta 590 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 delta 785 zcmW-fJB}4W3`PB`*Im`!lT1R$RtN~{2aJ%=FcKO2cxxCTA-#~C3=($4F5vXEWZC7u z_Puu1x8MHr?%~t>$JgIQWWK5IaPn#q`BiuHP`B=5xZZS+ohUgr`Jo<7r#{3G}YE-lDb)%ZfTgNs(5v2>N?Z} zj80dZ{`}+qs!6JZG;!%p94;e5Ak*$9kO6kUW}LmcMKe{*Ab0$EUc2&N%^`@UT0HSu8*Ro%KpnP!6W%>u>;(>gMB)J+%wHfb1$4X zL~Lw?hBR^`c5t>gj~&6e>kIB6e;^K@s7qV(w6ld=gK5L_aLv@yn*k&3Bd(CU767Q% z9ovWxzz5fG%rHO@280oN4w_1BWCVI3S_NJJZMO0%;|>paBY?0LsBDF_Pnq9Z%-x z=JWde`h2|m05BigQwUcJ@X}6?hrLOq#pORA-%jm!7gP5^E!gs4;{`Scl2=JhVw2Ta zc$e9{W4{aWYNgd#T&X(e@L)nTI?YZY8oTUiCtwT}rixQbyagQ*wbWKg?`?te<4;Pd58fU!IQppf3rl@J@LC_ENt?j=o<)WP3Bg7ki@sa)79y zR|KjjdqsHVjoYUw7bCc}z}6Ytqmx@D%M3ef*rDQm2KO3q_K2eguNt^|_@(&Sf`=|E z=kjsPZ~=P@-v?FCIHxP_epL6pxo?ej4%#8RtJgJ%tJ1IGc&Gp>5E(^I+*XAWKrbqk zAQ4dw=!)H{ee2*^0m07+5kthVZNSO|j{zJVx(Dv^_em}ivUXrm(?vClxR#2CFWtFl zvN8fi>SayS+^_Io`8MdQnyeyOyL)NCD$ye2Dw0(qbXE>5ikC?gi7NvxD-LKt=*e*p zz^r`Mn(_p4d%$ybWQoYr1I?2U*N&W2Ogju~91S!C zIJ3>rz0jG;lZw$b9As~BP(1*Dk_yP7o+dsTM@1 diff --git a/assets/voxygen/voxel/npc/lion/male/foot_fr.vox b/assets/voxygen/voxel/npc/lion/male/foot_fr.vox index ea3978b0a0e8dc59427818195494d681321af39b..321d845bfdf5329da6a72f5c966389a91d3703ab 100644 GIT binary patch literal 55791 zcmdtqd0-S*9S86?GaE`txk|VxY{QvQ!fui!;cPfk*c{wY2*3%P4Wx?vP+hA7Yt*~TG{GG0#-UL#2qIvjGB^;(iB5;8_OM3Lsu3N&35Yq~tj zzBQRslesnBQJ`zGt)>_1njw#lLfvo_7@AS2$+D(7yoTI$A;&Hp#o_sLXAWT7Et@9K zDY5Z6Z{g{4XLqwt#f>^X>U>S+7@4@nW!?2hX<=gpX%!q?@- z;k?~Q&F4jv7tig-Cy9-(absWDUuAN^#U0!l#g%QM+_y*Z5Zgp$-X6sxY7>=pdz7QS zsO;OLc+_ojd2WyD&|cJ-+oSmAY?CX8qvlSZGFjdlYRk>drG|zEy51yc#?I3;IOPL+ zFC~Reo-F22I^aDBD-sP76VIaiOQv|VFK z_lSEy(CWeqHe{4dRGY=utm@VhXi%36x6v$naWWNDb)%9sJ?P2f z_tCTlL35e~l^zsSe?hjL(~kyPsWhY^oyHu^qyDiJO5N0t()SJ`_nG0;d#RuyYh>=N zf+n00B<9QhS9K)O+=axE6xuMnJMDAzq)QX~6BXP~&GK$LF84R&{+8UE>jWKqM$pN9 zg3cb6iVHfiSgqDuUpxCsrv@pFFS=s$*)AXTqbopq?pWvoh4~?ag*^{Yq#Y|ciDWNToSJKga z>*(UCozxUgrG_Q_DLFZr`t;~dqx*LwcUmfq$rwiCGSg_wV*}{m?o_&bHl41XA4$*3 zK9BAdbnaF8)V(v2R#_uxdt(-zJ}{Nuy)utt8@th_7gOl)g}!u^22qKek2>kx5|Hy! zD`;w(xTC+SXjmKnz&>3mJ+&vL59&hW)4I@t+|IPX{r~&3va;yuoLw~9y@$qcSWA5y z`_h@`1zlPqX#a>2l$Mr86@zQ3XvPr|jjO0<~9OHEE^oB8KB&b4^nIf_*f)o?jMqfK^^zQ*H9=#JAG4f)#O&bMs5c7mL&cEBFQI z%5bYz)lsv|E_+l1F8iX18h+*YtVql*W~rh-uF|=<&KGoX-6&Uv$1b|<$XvU$(k|tw zj>u%w-AnoU&uI`yP-6lpft%) z8h&PQo}124nl4b9u235OMh?z%(;Z54FO;SSl!m`siSyj_gwpha()5PX^nud!h0^d( zSa9BH{h>7cgE^eFxerP+5K1!$O5=pm+z+Kmh0+X$(hPyp429ARgVGF#(u{!8q(N!Y zp)~y0>~Q`>@Box%6qF_dN;4WtD9vmr%^WDrTqw;vD9wB*%>pRRLMY9{P?|+hn#E9>5-80Q zD9utR%`zy>awv@tO0xn=6eLTSpNGyy1$38g8A(gdM26;K)rO7jSmrV>gMg3?q$ zX~IyN2$UuYrTG|?CI+RchSJ2LG&N9~S}4s*C`}!drXEVO3QF^FC`|*D<`Ynw)liy8 zp){X_(yW2ftcB7vLTMg@(mW2OSqG(A52bkmO0xk<^CXmJBb4S-P?}9pnx~*No1rvY zpfpcIX_}xk&p>IKp){X{(rks&Y=hElhtlkT(tHL=^I0g(vrw9yP@3nUG`pZQyP-6D zpft}zXMc$DuS|fzrGTrFjKP^HnI#t5BM+L214YrTGSw<^+`HH7LzVD9!6o znp04kZ$fEKLutMRr8xto`8Jg1ER^OuP@3;TY0g1uz6Yf_52g7&l;#4I<_A!ki%^;$ zLTN5RX?_Hyc>_xGV<^pKD9xKtnx8;vu0Uyi3Z=OUrTH0@<{Fgd=TMsKP?}#rX?_W% z`4yDrEhx>ep)_wpX?_Ex`7M;@cTk$&Luvj1rTHV2<{c=_pP)4FLTUaCrTGh#=C4qi z_nJltySm+#^Lva`(mSqh?1w z30URjHPz-_e7@4Of)#NYCfpsk9E;QhD-3z&%5bYz)lsv|E_+l1F8iX18V5JAA~Cy| zrHcNzO6TG_U(m&Mqg)vtyXdwfbM4YfyOg6kDi77v@i;VU?>dKZ*bL17?ICJYxYr@t?cgoCBDnWZGtkRI3g1d7oc`RbjGB@0v zXvmA(x^I8H%3f7}y)R&+vs)@EJIVNLkJIhSX1l7dvdq?jT+!|f@r9s0AGsdYYb47T zQ1fx4q}sV%_RPB7E*|T|my%UIQ2Ssn@cZp@XPr`_dImBE&IZ+Ed(;*c4xRwvO| zBvrI#^W;CEz_o!v}F(~g({g6cC%C(^p&+L`Bh0V)k<<3w^M$o#${$G!~yRA0g^Tl Ac>n+a delta 720 zcmW+!%WWMo3?yeL?N9sCLR#^`2mO*mfWYzDeY|Tb2;ie@@Fhj0gA|b#GHU??N+dNL zQu_DKKj;1X*Qd|F%xpf?FEaK!n|-U#kL5aOC1Djl2~R(s>rZH-^(I8NR}*}(R|+5p zhzfc|pn9?wgjZg;_B6#}1osix2V=hva0YYK=e~E^IcR0l4%NGL;x;Kh$Nd-%CHN^30?tN?gh!)q zlPW+F5r;0w_mR7+i?ae}ho2Kx8tjnW2W(TUC{`3Jn#R$AtLP#@>jY%6$iIkdnYjB> zol6aF>SB}nYZ6!Y!iVx*0#*^P61IwD8^GEfs|u}y+C#*y7`Tc261}O=CckoBqOdn; z=OJr_$c-E!doOyU)cybAf?xaZ3JZyTn&L;Rka5AhR^p;6h`N&p1Ti0jl zCO@;O0c(+LFu97_BxUs{C{Bu-j0X6lR6rx5Y;;6ONYZ$cl9K#Mol@^bJwcN4s4l?u Q(L5$R=?znT|BDj;0hQ=RcmMzZ diff --git a/assets/voxygen/voxel/npc/lion/male/head_lower.vox b/assets/voxygen/voxel/npc/lion/male/head_lower.vox index 07762236fbc03903198d5a872805d2c3e8e13879..c8e412dc9622a910c58aa8275990bda4c2e38d0a 100644 GIT binary patch literal 7732 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 literal 254 zcmYk!K~BRk5J1trPvHYV5e^MenvT!((IGHhT@JNxl|elts(Y@dq{@yMDadQtZ3$CyY8AalUX zkbyCwxZ+47gyKAn(-bOJB?=0J9!K-C`~S>!R3v}^?24420$Q+SjDaELQ# nnF6K^H6s-fR*-C7clKItO>1AD?6!PcZI{|jZ$H)gNMwEio&QNH diff --git a/assets/voxygen/voxel/npc/lion/male/jaw.vox b/assets/voxygen/voxel/npc/lion/male/jaw.vox index cbae9b79744247ab9ab10878ac9f74bf79c24afa..8c4041c52cbead2a3f9418faf768a5c5d1bcafb5 100644 GIT binary patch literal 1208 zcma)*Urf_i6vt0XS;&}JM_c}`umakaMJzBV16>&~EeH-7Osf)f8X*l+h#}fEF4_&p z4BB-BTr$VlM#y4hN?NjI4~!UMOpGzaEK3$*d|39j>|t5<_SyOAqrvSYpPc)>=l(nA z-rKWhU-6`fv^NGj)X6s%k*;8<;V-byu&QUL_l{7^+8nP&RcfQdmdOpMa zem~J@lt&3+*VPqDZ2$0=&BpR_JBD2krs!zf#^FQtL`T|4jRi?14wITXNp0!`)_{Y& zzG8~cmgAYOLt4_2@bk#bi^z%tYrBv$C=|wpS8fOyVPQi|$X4yRCRDd)(mH4*bS|5Z z7hj?|Ds)Z=N9Khy_jPV(KF$FbrBN?6$p8hzHeBQRcxQ|7-QGgZL80`Vu01IZ=vk}t8EA14>2x!BtdeMVEtCCCEPwP4zt0X( zUgDskvWT|V-5l$wCEO~+4hhqzgr& zA@g6l_~nk5wR`1!u6rhDg}Xlr{IQ+LfSW6^DpsyH@#n8y3}3V|{;iFh_w!hzh>+If zwB{K@{)4+WKb5~TcOzbx9dA(<^`0!c{Tt}^{r~){s;c;;cA5&`4E1B@ z$&2N2`zztW0pXh4jmP7mzhs2nyB3gG1pBa^#i=KEcs5_(j?>BeWfSbEPjK|&D7n2k z-21MK#ZVrJ;^L?3Z;Uh6+TV4T;eI$XHAn30B$pO$@!3zSyn1qs9p|TM`(lZ%8><8Y u0Ul{7B}3tF(pH6sKRh|#Lw#TW71uBL_@Axkjo^AQqyJg4#|uAuzWfVxAt?_4 literal 254 zcmYk!O-ckY5QgD>PLTuXbgC-9g9?Iz*GMWAJ1{dnn6?p5Z$oc+PaCMGgZ_AbeN#)XddwM}KgYzBGe?(lO2NBWD2TOW ztTVo}D&SF4<;*P^GAz*s<`@8oBZ8>s!~Z6eGY+A#&jsE7vwMYOst~A!h(v_Uwjc+r n7#$gMU|kaor8V&C<)E+m)|-s=L2t{CZv7%djs7bd&_wkIgh@!~ diff --git a/assets/voxygen/voxel/npc/lion/male/leg_bl.vox b/assets/voxygen/voxel/npc/lion/male/leg_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..1f02772c67ee9ec9fa2edb56082769cf5145a955 GIT binary patch literal 1588 zcma)5T})J05T5gM7g8!>S^h0-7f^O-M1IOoLAw;F-h20AkwSGtAhPz`B_(v6L7 zi=~E2DFK_*QrZyG7^#w7(xwlT7-CF}F~l@Y8e)8C`quc+G=2Lz7at9_Cz;HdnRC8x zzPaai?mOU{BqFELY-LA24^g`rX?flacxg6HQ8L?sgAwzw;0>?$*`!PgOO+HBBrQSO z7NkrPhDAc#B$O?L$C4r`tVo+uCz&J-o1_kta!pxMdrT=kjNx%4*MtyUS78R`z2OL< zEg_Vp)-gPmB7^azsW>Nvv?TF8&Pf-altr3xHS;UZ36CuqLuqX*=2M#YoLAbzp0Omy z%&j!{#~PGOVqC5Zu1jqSAss2SsSG}6xP3C8RE()ir4*lW`M3|aW*C-WZXuN^SeMZ3 zwdB1trII$W7gDk=VGAuBse~h>a7b~i1ozD6q%Z{;JQJ=P%%PR7gl2BmX1E$8b4upt zbF4>5o;Pb1isvScurQ<}44yfk7wi3axaMJAo`c(`QemkXOS#{IdH9~xtdVg@ks~yP zr6A6;m&AP$-(?fz5XbxXyxzF}82G!_*482#jpETbVei!y6ng)`UtTYkmmRq4x|u+$ zy%R@|)FV1*BQatkF@6+@sne)QoI+YC6FJ>J_|BCgFkJ^~F+hFKfo5I+tz;t2A!PLv zwvG{AzClRtBW#Kh(mBq&MyPU9VD+aVay}iOEWU{5D4}hFaBQA%_CDWj%SC>#A4Sn1 zs^cN#4S3-n%|&pw0Ohy0BkM4s=saUj5*n5W^cM3EC4(kXK?`1tY~O;pof&wrD-W<< z!UPc(*?wXBoo(U_Vg7T%@*LsLO^!o^nHIti`w43&375N5a4|v{JDGvuW1DgDoosZ~ z5(b+IS30@Zs$BH8_%YO0g2@vVh<4OqvZo2lAHR)1W_wXun2Cmp0@$yW;6!H)`Yb~1 z2x0m?!qR0zb$%|)U=a>i@4!HF9Xf-V=&j1b=$>N4yUNhgP>y|X)FJX_Bl@~qF?1?| zv5)!?pBu*Nt*aP+*N^C-Jfx(gAUk~v%JR}s9`K`j$2PoL5y04oTQUE&AHUuSV(nfj zzGTk$EaC1?1pK)RL%k)q605|@^(H+2tsMiG(lGj+7dP+cU=0O`@I212&avY>mq9{P zfHu_MAKvzq{`~CC2>LS+EJ#ItAQc_8o6u4I|Mgc^R^qdoX_S@Epnl{6a$-5S{SD#4 zA;Pti5(EMP^b`&vymtW<8$!lF1{SBDe8Y3O{C4v5@j>wfcGr*N_@!ZFcV*$;_r+L@ z5c@WcPZw_Ci=S8V%IOj8zAz2@t0lDGSVbrl!Xq9f pC9~mgs8zzlAD{I1kl)vT)%h1(|Iaq^ZgHcUn}1eq9r)Sz>0jzML?8eF literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/lion/male/leg_br.vox b/assets/voxygen/voxel/npc/lion/male/leg_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..8e2540f921198fd7cb343e46a67ea17421dd71e0 GIT binary patch literal 56071 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 VdOUh1rH$LkAG&dEBp#Ol_Xn`=CPDxJ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/lion/male/leg_fl.vox b/assets/voxygen/voxel/npc/lion/male/leg_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..1a5d8d51e30a0dc022a6a982fc37c19379c2636c GIT binary patch literal 1528 zcma)5T})I*6h1R^_fIOWWtU$IxPY=tBl1&z3fiSW_3phFixjG>60{m2lxj#rlx%Et zTPzwX-4f8GmePih#z>Vcq)i_vF~pb{V~A;*G{l&+>08r>rs><)bMet&JIQy?%$zgd z`OcZS9s3UCj}wvAptrE0UmZkkdbIfkd%;6v@D^=g95@)&lY%Ea-nBnUSR{oZgwTZ) z5y5LIg(=wz;nan4M1*7r8yd%Grj(klcwb3}AvK0_=u&BxBDb!{rAy6eDdp6a<~Ee( zGL-V@N_q?>JiPCYDCOd_>=QhfE=vi9bVihLnv&zC=4MSUi-b!j;fxUHmgF`ix!5{6 zmxncYbSXS0@i}6BlDQ;vOKDq<g*-GepV4pR!n zITUj!gM`NYRIHh~lwuCW9K2?qP#W)RTsv{^iG9Se#Qi1q5$7Re|DM+y)-IHyR2Y>l|SX#1RkDK~DT8y1IdZZ4q0R!{HI_48cF+Xt{)$^y|4W}ck zD zB7xrG{DW@LSSo1FhvDs;F|*T;N4s)>$X1LIVS(`z<2T0G8N%#mgryn6z1zGF6Q-I8 z-|Z)?o+Mo9O2Ne_Vf3UQL&rAZ;yan>tRW0E5w3Qy*2--3GzT!)T8!}%<%qRcW4yZ& zOCP_D-=}*}Qjm`N@;n%?72`xlHF_h2_z}Y7`-H_SgsR+Z=%GR!uG)eArdo7_($Q0y zgONQ&NOqQ@xxNhh-l#?N%?9*#wP5g66r&&YA~`dJl{?pwcrSq1p&X>7q#!eGGfH#3 zC<_KqwPPDzEe~S!!!4NoGJv1&g|Pad1fO%xb1h;l#9aGj&axi15R#vrX*f1kPSnfh}xHz5@8Bb1klx?n2WYc`_2 z?ElwaQBi?Ut0z%fHif$33&@IR;qF(2M~4VEii;5p2GLzG0CVpgC_V^(zaI+|Pw((t zHou+RTzpV8hTU}u9KSq-%+3rv__hcO(JUnL^PlOz9cObLY`c&CZs6?14B}rW@yXmB zT>Ehaubdvn?hBJJzF0)ttrdjBVLahhlAD3Qp;icwzkjOlF~6_>^7Aja_Mfe1ZRdJE Od;fX9HR9)=r+)!-ct8>W literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/lion/male/leg_fr.vox b/assets/voxygen/voxel/npc/lion/male/leg_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..e394a58ca4fe5bce4e03a03602ae9fc7fb4c3fec GIT binary patch literal 56011 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 a|MK%I+k9_e;?``tk+j6z@ zy59P67{1#2eAa$=biUJpm&?#^!o%jx%g%m&yuF*HRoiC_kd9>vlTI-w^ikNcimRZG zR6`aYhy^$ZCIn85gybe)J!it0sa7e(q{g|Tp1L+=1{{R30 diff --git a/assets/voxygen/voxel/npc/lion/male/torso_back.vox b/assets/voxygen/voxel/npc/lion/male/torso_back.vox index 4733b78e79186a1e81618e66f413d82e5a550b50..647960513c9563bcbd35e7ad76082fd572f473c7 100644 GIT binary patch literal 4484 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 literal 254 zcmYk#O=`n15QgEsPN4&|u{8Rz6w*Q=gKf4Bu^ey+}W7JN@8+=IhY!Ov7r`X{WzFKhA1yRrjeth{p`oyP8X|IhRBPVRVSu zq~L@^JVMP`LShINZALLtgC)qOSOmlBZTJ7P#*saR2%H>I^|nfkR0=^9uqHZ-c0?1l o9$<=ri{oOQ6y9pUsNQ$_T5e6aFE4tXf3>s=ch%dIwfD)ZKSeo9K>z>% diff --git a/assets/voxygen/voxel/npc/lion/male/torso_front.vox b/assets/voxygen/voxel/npc/lion/male/torso_front.vox index 18b1cd57acc13447b75b981bfcf9a2842395d498..3a8021c75395410a490569fb44d0400a02140555 100644 GIT binary patch literal 5896 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 literal 254 zcmYk!!Ab)$5P;!(o+1yR-AS^ONs0=Bg0C@|Ox!@*EoNQBr?=3H-{rskyMB$nUhJ}M z*KwSt&%QmL+Bn?0e3yf)=V@G3rrnvRJNxne`exQ%?O51jJc4Fq5?0Jjq!dw~NHKyG zjnxy(A(e`$LG&|4ZmhmI0f`g@fz9*X|ED@GT0+hW^Z5^HM9K$td+s^wAo9WOwXUyf&`GJO#hhfU-3>^nU zSK<1vMp20w@3k>nB^H+8lAqN(t^Mi?s@MOa5h891r}GHM8| zZAxp&Xl*F9tF_8#qY0HUvk0V&4y3dpbimUpkWo6|YL$~R%5jwrX0$l;IgE2MS~;Gg zREGVSuUK2Lrcs*p*vAKXXv;nheT2{!o*U|x($Y5c8|E56mwb%&VO*mvIWU*?v@+yD z{whcwnte=4aUP`%`x(yb_w{YYh#^l)PRz4m&KdHw38l29v_V&!V9F4R(3(=`xZ38h zcMf-x<0@YoN*nZyrY;fB_>3+!jUmXVFE+~0sg*8=-cgH;_?uWIMrk}e~ z{)~KQRyeD2CpOBfGf-kw^rEbDlgvEAZ=&9q2ih zhvVn-api6iW>AhU?qhcTo!m>WU`68J=ijq-;otLrvA=D0{<6ZSkc`hovOE`FA{QGP zV%Sjg|L3o*t;NauF;v%_g*R{*Mg2v%`I+Fm&4LS6RY)Wf*gd}&Ygb=|^!H(I&s^yb^h1=%g&X<*#>MFueMa4h%@5lMIHg()a&u-wr=sEO% zK7kLeev8xJ+`~)z2C(e#7+OEQj*iRs(A3m~2Lectz#lO81oy8!%aW`31|Pa b$K{#LTky#CosaY<$tRsXp7Xf=gjo3t5Rh6u diff --git a/assets/voxygen/voxel/npc/saber/female/Saber-7.vox b/assets/voxygen/voxel/npc/saber/female/Saber-7.vox deleted file mode 100644 index a03f0701372a305de8e4de78172dcdad50f99f81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2048 zcma)5ZD^Hc7`~s6_uct+<(%%LZB1u8$8gQrwsYQLGaWkTjJaGoKhRL}FiaVpq2pla zN?c*CH8!P>X)#1hQ`tsQU?W5X5s`=>MEnu`iHL~k-_`XVF@%hI;NpJnkLP~w`?{Z} z>xGRKqaxD2ymcLg{G2D!+1lL_@f9wI2obZ0jhnh#zcSo#{X&?48dE-kLMda0(ohPa z9LX5M`nnFLlmwGXLMc%pPg|4HR(sY_8SUt#wJKv>#=6v9ozd2^@|lFA{hkDw9>T5vKGc!#%cCsA}PiEiuskF--M`#*k3fM8LM?P zrB#Fo6SS)!ebiZ(=KY#^H17~6$T|Yt=Vc5b4)3JYn!4Y+4-@p16C{Uzyx$M+QmkDE zl3E2a$_7$K2bqJC&^Evv^wDoDr47=~SrFO;X=kioD{I!|SZns+#Mpz&{4w&%S!kDM zT+dkY;OLAJN^4n@q4aff$a;+58-3d0Y{j23>(-Y1F~*0sp3UWBPG!lnOU~JkU$@F5 zXL%Xr=jXdn))1CwT=v3vV+fnHd6E$~!rYE0Zj?TUTp8Bu!{I&FGlbTR*EXfK@2B16 zJudll!ztx*UM}b2kPmXH`M$IhCTMp8?33@#s^^#Uj@)W&Y(zGj z#l2y{>JP7Ce!-vky`TUyGwtx#`PM0{YkLMewtC3+wP9+o6;s1IFg3Oh4O4rO-&}~I z?G>mvxCrs_B&5ZG^n@U%ABS8mM1H$q?jAwukl^Wyf54@O7wSBV|3RNWH&Tm zboUC(9DNBtO{B4Cej%Ecl%wsrYV7K2K+hV%z*fQdYl17s1@&dcXiY4@mioo$U718z zq7dn&B{;UK3X|Jv(9%?k_nS&_yqA#yiQc#KaqMgXF5N1^9h9S+eB}DyNnZK{E8_p&|DLrA|L*_O{q4E_%jV5OqH+!r z#r#nEPiB%Tt@T;DPQtAM76`A7y*^%)|Rf#L8dWQ*ZzP diff --git a/assets/voxygen/voxel/npc/saber/female/Saber-8.vox b/assets/voxygen/voxel/npc/saber/female/Saber-8.vox deleted file mode 100644 index ab7db834c19a97d2a77b57e350326138e2259a3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2048 zcma)5ZD^Hc7`~s6_uct+<(%%LZB1u8$8gQrwsYQLGaWkTjJaGoKhRL}FiaVpq2pla zN?c*CH8!P>X)#1hQ`tsQU?W5X5s`=>MEnu`iHL~k-_`XVF@%hI;o^SpkLP~w>w2E2 z>xGRKqaxD2ymcLo{G2D!+1lL_@g05+5h7+08#i^ger5Q>?-xP^)R^%R6j~Wmw2Iae z#*vI7#P@YDWh9t15=vPW^0YN6ZM7$k%4kO?#j1?Btaa(TI-{*kS<6}zN*af-K7yWA z(WF%o#=@Sp;iPq*&azIElZm7Z`y2K*et#39A0oeKQnOa; zXiBRH5hfT{LFVXlF3tTl`)KZAogn83@INo32ejwDly{k3E&8&Mq}4AAfF@ zN6qpw#_!L2VXPr6*SO@udSeKilsw5;H^SbIXWb}s4z)6z*N4M>tfvUAS+8wMYd_Dp z%Y9tx>4sCr<$1Y07l(RKOU?VGoiM?;6Ch9CJC|o7E;V(@C6AVnKt>De6?^)9wafD& zM@4NozakIi^I=XK-eap$hWA<<{~ajmMN41#KJ$jY_Q5xz9p!1>e?=I=GHw|+TxVEs zSZ{OO`A@3|!?$Ac*pF7xTGra!`=RyU6MOLSa({BL)X}jS&2^f!>sLL$ocY|>*w~0{ zHj8`1g4G{h#r%Rl@q0l5W@g&qf9G4Lu&(VH?AYod+t-Gv!B$KS@4(d9J~T}2MSgQ3 zindpv;@~30$CHp22htOQoPHc~wGjF3g1LJHr9*92eA=6{9t=09)!8qjzNz zU5P@ZmzLnzswzxwt3gXsE#7Y`#qoOT;pJoK%^n=s+l`5n{g^&`6vMApBD=W+;cyu9 zWsJ!Hq8kzn!l_f4Ukc2I_G2 z{0jW~LnnIQ&d0H{1-Nvp2zOA9Zt9WazmvN330B1ao&TP-3;*W->HhW{|FU_rkf@x4 zM0pHeJcbR8QEaIF|NQIf>hNyEIBIH7!y7z|qJbh@`&jVpX2H4YYQ*Dl?4I9;wW}{f z2Kq6lcMhh-^R212C?k$INCnCg3gP#(cIjOdjd#+z#lNT1$V!=Ki^&6 jum8&P5$4|6!}iqXEqLJj$p`AyyoHmN7Tw+LH=;A diff --git a/assets/voxygen/voxel/npc/saber/female/Saber-9.vox b/assets/voxygen/voxel/npc/saber/female/Saber-9.vox deleted file mode 100644 index f8f2e5a1a468959aba6eccbf22f5c382f7def914..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1836 zcma)5ZD^Hc7`~s6_w0PGm2>W^Z5^HM9K$td+s^wAo9WOwXUyf&`GJO#hhfU-3>^nU zSK<1vMp20w@3k>nB^H+8lAqN(t^Mi?s@MOa5h891r}GHM8| zZAxp&Xl*F9tF_8#qY0HUvk0V&4y3dpbimUpkWo6|YL$~R%5jwrX0$l;IgE2MS~;Gg zREGVSuUK2Lrcs*p*vAKXXv;nheT2{!o*U|x($Y5c8|E56mwb%&VO*mvIWU*?v@+yD z{whcwnte=4aUP`%`x(yb_w{YYh#^l)PRz4m&KdHw38l29v_V&!V9F4R(3(=`xZ38h zcMf-x<0@YoN*nZyrY;fB_>3+!jUmXVFE+~0sg*8=-cgH;_?uWIMrk}e~ z{)~KQRyeD2CpOBfGf-kw^rEbDlgvEAZ=&9q2ih zhvVn-api6iW>AhU?qhcTo!m>WU`68J=ijq-;otLrvA=D0{<6ZSkc`hovOE`FA{QGP zV%Sjg|L3o*t;NauF;v%_g*R{*Mg2v%`I+Fm&4LS6RY)Wf*gd}&Ygb=|^!H(I&s^yb^h1=%g&X<*#>MFueMa4h%@5lMIHg()a&u-wr=sEO% zK7kLeev8xJ+`~)z2C(e#7+OEQj*iRs(A3m~2Lectz#lO81oy8!%aW`31|Pa b$K{#LTky#CosaY<$tRsXp7Xf=gjo3t5Rh6u diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index 02a2d1cb35..d1aad8cfde 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -82,7 +82,7 @@ central: ("npc.saber.male.torso_back"), ), ears: ( - offset: (-5.0, -1.0, 3.0), + offset: (-5.5, -1.0, -1.5), central: ("npc.saber.male.ears"), ), tail: ( @@ -112,7 +112,7 @@ central: ("npc.saber.female.torso_back"), ), ears: ( - offset: (-5.0, -0.5, -1.5), + offset: (-5.5, -1.0, -1.5), central: ("npc.saber.female.ears"), ), tail: ( @@ -182,61 +182,61 @@ ), (Lion, Male): ( upper: ( - offset: (-4.5, -5.0, -4.0), + offset: (-4.5, -10.0, -4.5), central: ("npc.lion.male.head_upper"), ), lower: ( - offset: (-6.5, -5.0, -7.0), + offset: (-7.5, -5.5, -8.5), central: ("npc.lion.male.head_lower"), ), jaw: ( - offset: (-2.5, -2.5, -0.5), + offset: (-2.5, -6.0, -1.0), central: ("npc.lion.male.jaw"), ), torso_front: ( - offset: (-5.5, -7.5, -5.5), + offset: (-5.5, -13.0, -6.0), central: ("npc.lion.male.torso_front"), ), torso_back: ( - offset: (-6.5, -6.0, -5.0), + offset: (-5.5, -6.0, -5.0), central: ("npc.lion.male.torso_back"), ), ears: ( - offset: (-3.5, -1.0, -1.0), + offset: (-4.5, -1.0, -1.0), central: ("npc.lion.male.ears"), ), tail: ( - offset: (-0.5, -1.0, -1.0), + offset: (-1.5, -15.0, -10.0), central: ("npc.lion.male.tail"), ), ), (Lion, Female): ( upper: ( - offset: (-4.5, -5.0, -4.0), + offset: (-4.5, -10.0, -4.5), central: ("npc.lion.female.head_upper"), ), lower: ( - offset: (-6.5, -5.0, -7.0), + offset: (-7.5, -5.5, -8.5), central: ("npc.lion.female.head_lower"), ), jaw: ( - offset: (-2.5, -2.5, -0.5), - central: ("npc.lion.male.jaw"), + offset: (-2.5, -6.0, -1.0), + central: ("npc.lion.female.jaw"), ), torso_front: ( - offset: (-5.5, -7.5, -5.5), + offset: (-5.5, -13.0, -6.0), central: ("npc.lion.female.torso_front"), ), torso_back: ( - offset: (-6.5, -6.0, -5.0), + offset: (-5.5, -6.0, -5.0), central: ("npc.lion.female.torso_back"), ), ears: ( - offset: (-3.5, -1.0, -1.0), + offset: (-4.5, -1.0, -1.0), central: ("npc.lion.female.ears"), ), tail: ( - offset: (-0.5, -12.0, -1.0), + offset: (-1.5, -15.0, -10.0), central: ("npc.lion.female.tail"), ), ), diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index a6c378b8d9..11675deb7b 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -205,69 +205,69 @@ ), (Lion, Male): ( leg_fl: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.0, -2.5, -2.5), lateral: ("npc.lion.male.leg_fl"), ), leg_fr: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.0, -2.5, -2.5), lateral: ("npc.lion.male.leg_fr"), ), leg_bl: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.0, -3.0, -4.0), lateral: ("npc.lion.male.leg_bl"), ), leg_br: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.0, -3.0, -4.0), lateral: ("npc.lion.male.leg_br"), ), foot_fl: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.5, -3.5, -2.5), lateral: ("npc.lion.male.foot_fl"), ), foot_fr: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.5, -3.5, -2.5), lateral: ("npc.lion.male.foot_fr"), ), foot_bl: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.5, -3.5, -6.0), lateral: ("npc.lion.male.foot_bl"), ), foot_br: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.5, -3.5, -6.0), lateral: ("npc.lion.male.foot_br"), ), ), (Lion, Female): ( leg_fl: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.0, -2.5, -2.5), lateral: ("npc.lion.female.leg_fl"), ), leg_fr: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.0, -2.5, -2.5), lateral: ("npc.lion.female.leg_fr"), ), leg_bl: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.0, -3.0, -4.0), lateral: ("npc.lion.female.leg_bl"), ), leg_br: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.0, -3.0, -4.0), lateral: ("npc.lion.female.leg_br"), ), foot_fl: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.5, -3.5, -2.5), lateral: ("npc.lion.female.foot_fl"), ), foot_fr: ( - offset: (-1.5, -1.5, -2.5), + offset: (-2.5, -3.5, -2.5), lateral: ("npc.lion.female.foot_fr"), ), foot_bl: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.5, -3.5, -6.0), lateral: ("npc.lion.female.foot_bl"), ), foot_br: ( - offset: (-1.5, -2.0, -3.5), + offset: (-2.5, -3.5, -6.0), lateral: ("npc.lion.female.foot_br"), ), ), diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index f4187a1912..15a1c432c1 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -29,57 +29,57 @@ pub struct QuadrupedMediumSkeleton { } #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const HEAD_UPPER_Y: f32 = 0.0; +const HEAD_UPPER_Y: f32 = 7.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const HEAD_UPPER_Z: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const HEAD_LOWER_Y: f32 = 0.0; +const HEAD_LOWER_Y: f32 = 5.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const HEAD_LOWER_Z: f32 = 0.0; +const HEAD_LOWER_Z: f32 = 0.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const JAW_Y: f32 = 0.0; +const JAW_Y: f32 = 2.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const JAW_Z: f32 = -0.0; +const JAW_Z: f32 = -4.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TAIL_Y: f32 = 0.0; +const TAIL_Y: f32 = -7.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TAIL_Z: f32 = -0.0; +const TAIL_Z: f32 = -7.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TORSO_BACK_Y: f32 = 0.0; +const TORSO_BACK_Y: f32 = -12.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const TORSO_BACK_Z: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const TORSO_FRONT_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TORSO_FRONT_Z: f32 = 0.0; +const TORSO_FRONT_Z: f32 = 12.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const EARS_Y: f32 = 0.0; +const EARS_Y: f32 = -2.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const EARS_Z: f32 = 0.0; +const EARS_Z: f32 = 5.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_FRONT_X: f32 = 0.0; +const LEG_FRONT_X: f32 = 6.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_FRONT_Y: f32 = -0.0; +const LEG_FRONT_Y: f32 = 1.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_FRONT_Z: f32 = 0.0; +const LEG_FRONT_Z: f32 = 7.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_BACK_X: f32 = 0.0; +const LEG_BACK_X: f32 = 5.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_BACK_Y: f32 = -0.0; +const LEG_BACK_Y: f32 = -14.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_BACK_Z: f32 = 0.0; +const LEG_BACK_Z: f32 = 8.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_FRONT_X: f32 = 0.0; +const FEET_FRONT_X: f32 = 0.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const FEET_FRONT_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_FRONT_Z: f32 = 0.0; +const FEET_FRONT_Z: f32 = -4.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_BACK_X: f32 = 0.0; +const FEET_BACK_X: f32 = 0.5; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const FEET_BACK_Y: f32 = 0.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_BACK_Z: f32 = 0.0; +const FEET_BACK_Z: f32 = -5.0; impl QuadrupedMediumSkeleton { @@ -196,90 +196,90 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { Self { head_upper: match (body.species, body.body_type) { (Grolgar, _) => (12.0, 16.0), - (Saber, _) => (14.0, 12.0), + (Saber, _) => (-11.0, -3.0), (Tuskram, _) => (9.0, 12.0), - (Lion, _) => (12.5, 14.0), + (Lion, _) => (12.0, 2.0), (Tarasque, _) => (14.0, 3.5), (Tiger, _) => (2.0, 1.0), }, head_lower: match (body.species, body.body_type) { (Grolgar, _) => (-4.0, -7.0), - (Saber, _) => (-6.0, 0.0), + (Saber, _) => (1.0, 0.0), (Tuskram, _) => (-3.0, -1.0), - (Lion, _) => (-5.0, -1.0), + (Lion, _) => (0.5, 1.0), (Tiger, _) => (0.0, 0.0), (Tarasque, _) => (0.5, -2.0), (Tiger, _) => (-5.0, -6.0), }, jaw: match (body.species, body.body_type) { (Grolgar, _) => (3.0, -5.0), - (Saber, _) => (2.0, -1.0), + (Saber, _) => (18.0, -1.0), (Tuskram, _) => (2.0, -2.0), - (Lion, _) => (2.0, -3.0), - (Tarasque, _) => (1.5, -10.0), - (Tiger, _) => (8.0, -4.0), + (Lion, _) => (0.0, -4.5), + (Tarasque, _) => (0.0, -10.0), + (Tiger, _) => (7.0, -4.0), }, tail: match (body.species, body.body_type) { (Grolgar, _) => (-6.0, -2.0), - (Saber, _) => (-4.0, -2.0), + (Saber, _) => (-6.0, 1.0), (Tuskram, _) => (-6.0, -2.0), - (Lion, _) => (-8.0, -6.0), + (Lion, _) => (-6.0, 1.0), (Tarasque, _) => (2.0, 0.0), (Tiger, _) => (-6.5, -7.0), }, torso_front: match (body.species, body.body_type) { (Grolgar, _) => (-7.0, 10.5), - (Saber, _) => (-7.0, 9.5), + (Saber, _) => (14.0, 13.0), (Tuskram, _) => (-7.0, 9.0), - (Lion, _) => (-9.0, 9.0), + (Lion, _) => (0.0, 13.0), (Tarasque, _) => (11.5, 18.5), (Tiger, _) => (10.0, 12.0), }, torso_back: match (body.species, body.body_type) { (Grolgar, _) => (4.0, 11.0), - (Saber, _) => (4.0, 9.0), + (Saber, _) => (-19.5, 0.0), (Tuskram, _) => (4.0, 9.0), - (Lion, _) => (4.0, 10.0), + (Lion, _) => (-19.0, -1.0), (Tarasque, _) => (-26.5, -1.0), (Tiger, _) => (-19.0, 0.0), }, ears: match (body.species, body.body_type) { (Grolgar, _) => (-1.0, 5.0), - (Saber, _) => (-1.0, 6.0), + (Saber, _) => (13.0, 7.0), (Tuskram, _) => (10.0, 2.0), - (Lion, _) => (-2.0, 4.0), + (Lion, _) => (-8.0, 4.5), (Tarasque, _) => (-5.0, 1.0), (Tiger, _) => (2.5, 5.0), }, leg_f: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 6.0, 2.0), - (Saber, _) => (4.0, 6.0, 3.0), + (Saber, _) => (7.0, -7.5, -3.5), (Tuskram, _) => (4.0, 6.0, 4.5), - (Lion, _) => (5.0, 6.0, 3.0), + (Lion, _) => (7.5, -4.5, -6.0), (Tarasque, _) => (7.5, -2.0, -6.0), (Tiger, _) => (7.0, -2.0, -1.0), }, leg_b: match (body.species, body.body_type) { (Grolgar, _) => (5.0, -4.0, 3.0), - (Saber, _) => (4.0, -6.0, 3.5), + (Saber, _) => (6.0, -1.0, -4.0), (Tuskram, _) => (4.0, -8.0, 5.5), - (Lion, _) => (5.5, -8.0, 3.5), + (Lion, _) => (6.0, 0.0, -2.0), (Tarasque, _) => (6.0, 4.5, -6.0), (Tiger, _) => (7.0, -2.0, -1.0), }, feet_f: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 6.0, 2.0), - (Saber, _) => (4.0, 6.0, 3.0), + (Saber, _) => (1.0, 3.0, -1.0), (Tuskram, _) => (4.0, 6.0, 4.5), - (Lion, _) => (5.0, 6.0, 3.0), + (Lion, _) => (0.0, 2.0, -4.5), (Tarasque, _) => (2.0, -0.5, -4.5), (Tiger, _) => (1.0, 0.0, -5.0), }, feet_b: match (body.species, body.body_type) { (Grolgar, _) => (5.0, -4.0, 3.0), - (Saber, _) => (4.0, -6.0, 3.5), + (Saber, _) => (1.0, 0.0, 0.0), (Tuskram, _) => (4.0, -8.0, 5.5), - (Lion, _) => (5.5, -8.0, 3.5), + (Lion, _) => (0.5, 0.5, -4.0), (Tarasque, _) => (1.5, -0.5, -3.5), (Tiger, _) => (1.0, 0.5, -4.0), }, From caa90cbe8e704107167378bf0c2ab99bb10d64b2 Mon Sep 17 00:00:00 2001 From: Snowram Date: Tue, 16 Jun 2020 02:42:01 +0200 Subject: [PATCH 19/48] Add new grolgar model --- .../voxygen/voxel/npc/grolgar/female/ears.vox | Bin 1200 -> 1200 bytes .../voxel/npc/grolgar/female/foot_bl.vox | Bin 1484 -> 1316 bytes .../voxel/npc/grolgar/female/foot_br.vox | Bin 1484 -> 1316 bytes .../voxel/npc/grolgar/female/foot_fl.vox | Bin 1344 -> 1564 bytes .../voxel/npc/grolgar/female/foot_fr.vox | Bin 1344 -> 1564 bytes .../voxel/npc/grolgar/female/head_lower.vox | Bin 3584 -> 3048 bytes .../voxel/npc/grolgar/female/head_upper.vox | Bin 4648 -> 4728 bytes .../voxygen/voxel/npc/grolgar/female/jaw.vox | Bin 1280 -> 1248 bytes .../voxel/npc/grolgar/female/leg_bl.vox | Bin 0 -> 1720 bytes .../voxel/npc/grolgar/female/leg_br.vox | Bin 0 -> 1720 bytes .../voxel/npc/grolgar/female/leg_fl.vox | Bin 0 -> 2048 bytes .../voxel/npc/grolgar/female/leg_fr.vox | Bin 0 -> 2048 bytes .../voxygen/voxel/npc/grolgar/female/tail.vox | Bin 1672 -> 1692 bytes .../voxel/npc/grolgar/female/torso_back.vox | Bin 5560 -> 4576 bytes .../voxel/npc/grolgar/female/torso_front.vox | Bin 5756 -> 8560 bytes .../voxygen/voxel/npc/grolgar/male/ears.vox | Bin 1200 -> 1200 bytes .../voxel/npc/grolgar/male/foot_bl.vox | Bin 1484 -> 1316 bytes .../voxel/npc/grolgar/male/foot_br.vox | Bin 1484 -> 1316 bytes .../voxel/npc/grolgar/male/foot_fl.vox | Bin 1344 -> 1564 bytes .../voxel/npc/grolgar/male/foot_fr.vox | Bin 1344 -> 1564 bytes .../voxel/npc/grolgar/male/head_lower.vox | Bin 3584 -> 3048 bytes .../voxel/npc/grolgar/male/head_upper.vox | Bin 4648 -> 4728 bytes assets/voxygen/voxel/npc/grolgar/male/jaw.vox | Bin 1280 -> 1248 bytes .../voxygen/voxel/npc/grolgar/male/leg_bl.vox | Bin 0 -> 1720 bytes .../voxygen/voxel/npc/grolgar/male/leg_br.vox | Bin 0 -> 1720 bytes .../voxygen/voxel/npc/grolgar/male/leg_fl.vox | Bin 0 -> 2048 bytes .../voxygen/voxel/npc/grolgar/male/leg_fr.vox | Bin 0 -> 2048 bytes .../voxygen/voxel/npc/grolgar/male/tail.vox | Bin 1672 -> 1692 bytes .../voxel/npc/grolgar/male/torso_back.vox | Bin 5560 -> 4576 bytes .../voxel/npc/grolgar/male/torso_front.vox | Bin 5756 -> 8560 bytes .../voxygen/voxel/npc/lion/female/foot_br.vox | Bin 1344 -> 1344 bytes .../voxygen/voxel/npc/lion/female/foot_fr.vox | Bin 1308 -> 1308 bytes .../voxygen/voxel/npc/lion/female/leg_br.vox | Bin 1588 -> 1588 bytes .../voxygen/voxel/npc/lion/female/leg_fr.vox | Bin 1528 -> 1528 bytes .../voxygen/voxel/npc/lion/male/foot_br.vox | Bin 55827 -> 1344 bytes .../voxygen/voxel/npc/lion/male/foot_fr.vox | Bin 55791 -> 1308 bytes assets/voxygen/voxel/npc/lion/male/leg_br.vox | Bin 56071 -> 1588 bytes assets/voxygen/voxel/npc/lion/male/leg_fr.vox | Bin 56011 -> 1528 bytes .../quadruped_medium_central_manifest.ron | 31 ++++---- .../quadruped_medium_lateral_manifest.ron | 32 ++++---- voxygen/src/anim/src/quadruped_medium/mod.rs | 70 +++++++++--------- 41 files changed, 66 insertions(+), 67 deletions(-) create mode 100644 assets/voxygen/voxel/npc/grolgar/female/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/grolgar/female/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/grolgar/female/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/grolgar/female/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/grolgar/male/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/grolgar/male/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/grolgar/male/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/grolgar/male/leg_fr.vox diff --git a/assets/voxygen/voxel/npc/grolgar/female/ears.vox b/assets/voxygen/voxel/npc/grolgar/female/ears.vox index 72e772da9d76db86142c94a6742660b16a99f6a5..1261db601ed19af55be662306eeabce16c8ded41 100644 GIT binary patch delta 260 zcmZ|FF-t;W7zN<-eqZ-~xcCR6^cMteSFSg>E;@?+2Nx$dhZ}*LIB0$~wg@7Gl!G`3 z22o=z3at_0?|3`9`@+L}IGlNIo*Q1>A`u`l6i`TxAnYh0M}Wiv;ZEX!LT1Mgk=Rf` zjs&J062z26OcIh~Zd5BNPH?y=iZshI{T)GTckAs%yLqj>o2HH*I=Y(mb@TqHOF+MA zNB14*vxmM-p`TCwRnF~4H}yZJeY&3>;ajF;7ZdoY+1Xk??+5nGj*3P9VlQnWt@}Uw F^$#s-REz)s delta 264 zcmWm5u}eZx7zOa}yEos%u^|UTAshmS&>?t21qN9ZR76YS&?JE`UNjjzY73mou50t# zOd;A5!l|L9qRAz~zvFbg@Z<2E!yTjt>HCcvjeOC_Qxp1>Qe|rB%{t-DRQ5uKy^zj2 zZieZr@Q-j4ZY07@B10+i$fu+2&8p0CquJQQ)%gi7&yHQo fRBW-3bBUSS>ulED*_>@=GVaNi?dnCx{n?Ly+pyD+o$qP?N8>CS+0c3T`oZN2nraZ8`Vz@lS8hA%LSczcXg%s`?aMPe6myh=+<@@L|J^74}Z_|g*^ZBqyKOD^JxGMceI^r@PZY+)X&9z1&-Gw=xWm$R+ Mi(DwSQW@TU0sdc5F8}}l delta 609 zcmW-dy=#;~5Qpbu--~EA3-8SF%c0>4iN=O1mnBG$~0aV3|9Ic zb{2wgogzp`D^`M9h}el$I{%09*%S}Inc12B&F;JX-ww2IEiN5@Eh5)u=NAy!dD%YL z-$&4brRCoIb1h|&`{0#kPnr!iR8d6*QnIWgvZknkLrRj}=>-MZQ_h`pw>r7xL@lXg zQ>|TzThh;|lB_MsY_aCVR&o$Uq6yxlz2NQv2#P>&#E++e53nmxEVjcyotG)saU)`9lh(b@#x+{tlYU8 z8;_Uc$-|q?Uz_$*-J{Kf?{=S!k4LA|iT>mu&Yyi14_<7>*xkeNvwyznw-l(TJ#+&}oDQrAnh% z6{}IIMB-B@p7YdR^2<3hb0?EGn!KK9>}+&f7iP9rwAU3jb=qhS##MrJclX+#%IaGb zhefzWcS}?nwH6oBQV?B?5D%JB2Bp=kgPJ9;X--159kC7hb4-eTHXSuXzm+VTs&n*H8(d3?|- zug>?&$NQ7=eR!FleA-91`NQY>hEXlio}cM|L00 z8VJFg6@rM2GHm4;L0My#p{eIWtee(Qe~x z=M;mIEH1TY-bgM3&xjO~#3dUo02!SJsv6mR}6Xm(_+_Zurfi(z{ zic}(uOLP(nBrB1;#HujXoD(O)OO+V$Y@p1E5htQFBt~4NGSy0zhM5y1_EKF?f&Ium z*&MtFsKh!9xS0{pnu}`OP`P2g#5l;;lA zXJhl#QmnstQ2*62yV|-?58H9;_0Ui>o6YEqbYtSi+jzdS6$4Ms$B$1Vao8S=<^KM< O<)e0eZM%Nt-~R*b2!s{@ diff --git a/assets/voxygen/voxel/npc/grolgar/female/foot_fl.vox b/assets/voxygen/voxel/npc/grolgar/female/foot_fl.vox index de84597099e19a8dcf1f5afe4fc30b5dd275a3e1..9e2b073502df7d4a13883502facadb9af53e3915 100644 GIT binary patch delta 664 zcmZ{gziL!L6vofLx%ciGQrU@SpFj`%+XvGb~xHi8Hu zse*-7L`!W_1YaPXZ(wo#jlBauzV8g*%$zwV(>H6Y`}cNduSMkUe6fj0*NAK{_HM7$ zf|a0pwq^Ih-r|>HSdYO%iY6(RBs&nw+EAkoQ3>zWA+#8HXqKc|!IG|uV*;dMvmpeI z4=^_lS~l>oBFQ*Nos4r<0<@uSsKNd{1MLp3(DvoL-viPbgWvNYR>YYoSho$DJts+&~x6})Fn=t{rl9iUJwUQ0>6(%s! z@?-Fp37`tn5$p(}js_|dS?Yv6@QIYD^;DJ)+A%TkjtO3%hUj!hKqtE6pi?EQOKUBM zr~YC@^ybM7_X13mGHS`*F%7+-0fVY|0R|Oh zV3CxBQ$j;>XolvD%*cW)$bziMntc?RFa(2u0w%{D)Sy5ZmO((>I*JJzC~$;kpn%`@ z3<3(2!+8!hD1;gLDU6n9ZM-^XpPOZ~-6gvt3e!3-Z%?773t`6%s?XzF`*?k{)<)gp z?S>@>O*=pBSpQ_tt}l9ab#@fKw4t?XB^2DZ-jqt=*HyG%EQWGa*R{)0h@R^9?MH-?4Y$<2N(>W@l$lrf=3(_wVh_UW>@x`C=21Hj8X8_HM6@ z2`9lAQcRf@@a)O{@b1;&@a5C<;q=?v;j_qa2IuhdP==!_!`BZo z{PRQ5A~1T^yBwZZ}_?2SzoUkaoJzYX7yHF^NsmdeH1_c0Bn3!E>SYIY9# z1A?Z8mI(R_+WHR)uCE6l?!CMB?%hNBWukx7XfE7~$X=yZXOrbb?{t1K`4lJ+UYDPP^t@*EvUnVW9Ayj0P&hl=mRis?aCWHCdx6MFN9QNkcuTlg6CblJ|e-k5W4T diff --git a/assets/voxygen/voxel/npc/grolgar/female/head_lower.vox b/assets/voxygen/voxel/npc/grolgar/female/head_lower.vox index 6b01be835d5f6047ef8396fead60acac8d42c6e1..5621e57ce141949a063d7db94d58c8fa766b4534 100644 GIT binary patch literal 3048 zcmciDZ){d)8OQPKocsTIlrZVa%4TT_Xj{xCe*$bzGmAh*$C$DzZj}*dwn-(6+8Dw} z)r=Y=5)=_(CY#8VOr66?TH>D<&`h$JEX#t6F)?IWjM10AFvfR3zlXijg!#^sd~(jY zuitZ@`@Z^|KD$5i;J_&}+qrrCeoppA$82JJa@)Jw8;1TyXrYYR9Y5 zx`NfHMqOp2&TO=BUl{jX2So6(QBOS}BDL4C9`!Y6L?q<4&UkQ~!E>3jovUK5in%K0 zsu*vd$2bBa5;9!PI07OPGMr-^0TBrq-ZO@X1jqV40wNMJ>Z<0M)DRGnkWoQVh)BpNs6BOf1Vkic6u3YQ0TBrql{wbzShHizjx{^h>{zoKZBSK?wUdEI zKtw`DL4&F$2M3RUh=h!S29+ZR2akY=gp7g)l_v)WkAR4TjDiMrAOnwph=hy+7pWm2 zA|b<>XV0EJd-m+vvuDqq{d)H6*)MejL?mPsG^lEFaPSC-NXRH?V2&(mICum^BxDpc z=%Dgs;ouPvk&sc)pbF&R;1Lj!kWtW}j%45w5Rs5kP+OoEfnEf95$Hvr7lB>`-o-#a z0{tKZkAR4TjDiMLO%4to0TBrq1r5xRMGXg!fQW>Qf(9L!CyyEq9sv;v83heGr~+9y zcmzZwWE3>0W4OyjG6;xB$SBn6L_JYQKtw`Dp_Wq`^*MAyriR3IOzCoMk$y({8R=)F zpOJn>`WfkGq@R&~l7UA+L_$VE1FK`Vs>#B^BOoFnqo6^DtU2vQ{=*o{andY-5`Gf~L*T zGuM7s=~F;uvD?5W{vRMB!FV@22!Y=+JaEs4Hyb~~?XhXoCe6&u=&ci`?ayA(ik^Sz zA3Z%CbE9{O7cItXF-X8qmO(S8Mpp zow98~w!e{`eUI!)uNLn#Eq%gt+i}weUNYtVrgzVpmT=$uf@%HEj_!S8u_m8dqHkP$ zueQ#ZcAYeR`n>7M*ZJ(OW$K?A)XJF=ZI~O=t&GZNS1t$-h&VR?W@Vx2O zpK?EDI=jvE%Lh!?K4Y5X{@`xY@kdR+J-k_4hE01nnGS36E8GHvKzrty)L z+Oy$yO>ezZyGMF8wf34>TNpzgF*fAcO$y?+G;(+Gw05+*WZ}_{Cm@(sUbZ*yG~bL+@in#X+qOS z7wgzhdi0Ce`*cmq|6~7W57_^G|LfMR)3-OC(H(2fs(a+H`eys|%5$bSK52SkXh_4u z!`ipvfbQFVK{k6xH&5TJi>KfI8*X2;Nd5i&`pT-4y1RQqj~@M+ZrQt3ul;8C8 z1ikw2{AhcVuP sNtU61%3U?R`K!0r_a@)3|5fJ|y#Aiu=-d`>RBOlIsdjzhcmBNn8$J=d6#xJL literal 3584 zcmc(hZD^lY6~OQF-1q1CXLL4Amvn1m+PWl_ZGEvXw$9WxZfR_1*IC!tl})zU*!;~1 zQq~eCTVz;Awbsy1*sN7Xm9e^&q$mn)7-bB`7ww?4N@MDf z+a=T<3EAX!f(QXTIH(HNAVGux9voOGOKd=4!R2-f*+Q1c5?Lc_WQ9(K1Q7ywaA2WA zFGGR|0X#UckP`DLUk%{-t|I!7V!j$7fCtB%g$kb;5=02#!GVQJV}|6}4*@(l<}6g? zCPNCWLjVtsIjd_$z^=o-!;d3IKUq1?wAP2M04=ipoQnmHskY)WmHBBTkQY}+Rfj(X}j)L+6c zI)x<`%NYx5TTt7QdM5H3IWvACpdT6;@x@w*oHKGpY&i71&NJr|wp8j~+jfjS)cC54 z)NYk&GI6#TIJ2G`od6zk;n|}(!&XXHBeE{>0f{&wYcXnmG?p}xgKLKrCt^wL3UiU% z2lRYnhgeIn*e*-r)Vio2t(p3A*u(~Sog?Q7`$=PntdakuHNbZjh?9I&QS;^Kdu%D1 zV{&6Pr>xcJwb);>)W+PnYl;|N#kfFXJ~rQO={YKA~dUkr! z(mPK3hCEo}cJ!K~rvkke`1TDt59oU8=OCctRj-*tV#7lqmmVBBaM%p7WUP{!lV7hg zFxGk^9c1<0jM;;9=vngNks*4<)J^l&*rLucFh_3^n+K;fXGfnnJp^oe_0PPApnXGr z0{L-jn{Njeyv{*z*aHU^f>(Xj1*8KDrT3GiC-{qy)GkbB{3UV`o1CVJz?}^A zfCCSe#)?hPeize3B9E2E$#*1|8A6N`0iPZmSP1y?kXVoGN#wZFw+jOCSfob=&fy_& zN4?%t&Ji`HMhCz2mPa==eNEr8mdJ0$Uevowy)xrSjw3ZnO|J2w{jarTufwi|5(2sK z;J`w`dlEUnC&sL{*k7p)-jA&HPMj@K^TfMBFGTH!W{$Xd3!~oAH%k0v^fPZ>Nskno3-%PML#`b)u~5<@1>*u8=kW)Qx7mZ` z+cpxP9-DlZ`%Et2QVIO|>D9EtrEqMre+&C9_9mT&NRK$iwn1~OXVN=>Z(>0gB9(!b~OdlPU`4b~D zfBG?*Kl_wynxB+KLtWDSXs`4>vqlEaZ4oo<#T==`od1NFYhAKvw~?i7Be$P2^6A%& zq$5T;W{fOm-1VxF4ZCaE)m|iH&n}klU%o?jP8-=fYvk(}jU0QAy?c9P`FNkKnjVym zb3?Lhs#E$-_Q>EXD`f3kcgoU(MpiwG?K4KUT`^)F!vFCkX7&~_mpbLdowv$`dzQ%i zpIauf>yt8Tj9i94!e3$bX(JbZY-Hhrk+jEpgUdcToVk28PN z$c_Ochc+8Iy3@#u%dF*5_V2C=0**rqp#Uw=KR^dV70i?LePw zyz5i)*>wYQ>btkg#h>-bpWYsn8}F`>m+(2b@(y|DcSip52P4PF`{l)%^>XdC9rBMq z?~|z)7Rkw9b;=v>b;}J|@qdf|Y249MY?N99ZRUlKEOT$W5Nk;`Xq*6^7gdT04^`OfNDxp(VndHjXv<+ejh z<=tPemdj(^@?=-nf8}5G)YgH0?~r4WV`neO%rEBT2bbQIpIp5zpLyzp-22=)8U5)M z+4uT&85$ar4~>XPApa73-N*;Oy?MS5=&%2^&Mj>2*+)rT{HQgZ|G2fr@W<~r{{dWs BQ`7(e diff --git a/assets/voxygen/voxel/npc/grolgar/female/head_upper.vox b/assets/voxygen/voxel/npc/grolgar/female/head_upper.vox index a0659b920628cda0ce1ea4992c176e6c9374c437..20211786390ed0d25ac9735229e2126e156f993d 100644 GIT binary patch literal 4728 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 O;_sK6Kk@tbyMF_+o?wpv literal 4648 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 delta 390 zcmXYsu}i{H5XbM`yjW>jD2$5fXmwN0eA;0^RZ`;hd?lRk7vpRWC{8TSc^GdG=6eR;gp;#^KEi+QcD v6?AW>tc~pzJ#sZY*xmFOoR{fL+P`y8j#DXrFKKBclm1h3GP~dMBlh_ZPT*YW diff --git a/assets/voxygen/voxel/npc/grolgar/female/leg_bl.vox b/assets/voxygen/voxel/npc/grolgar/female/leg_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..a3e85d4508e167309a74d07514209101f6a23bcd GIT binary patch literal 1720 zcmchWZ%Ex$7{{M;p5O0!oh2^sbh@P%|CCo_%Ri{QcdTnF^Uk?)mTl&w#kMpVl?-um zE9Q;J#4#11gXhdz;(SX=#Fp5f<^B(jMdI@}gJWhwYg64m6eC2Er+mZ+gO zj6Q!@U4O*7j1HsY4;w~RYGR05YRhp(HGa;cHq=5*)Rz>oMBSvYCB~(8sEHv$ROyK! zqRd;)A%=)$-Y{?IiBPN16GPPJ3tOVDkA3DIuqEmw zb8l)!5yN`JdJ`5yZ4CD|tfwZ{a$F7Tsl6zcb(VFOb(VFOcVSt_aiu0!nRlo~*@LoH z*@K3~Dr=QJP%E`^+=~vQ!zd2dcG$DSwW%$&b-1>}w{jw)4&Q(|qSWHh6YE8nh|7C& zxu?rLsTq}sr6<<9T*u|!^vXP=5^?B>b(r_G%bd#`qx$HD_ba?}B8K-&EKwqso>jY;x-dvH5uKGOmHy2_2cp2i4S7E%f7R#?af!}7jP?Dd4-DSCGe5eS=TdUB$Pmnkw zm^vj`dQ(uDlZ{w$0op5fpr>vZT8lH#Rk01jdkZn&v2(p&ujh@JpKQnSN6#W9B?Vj4 zHzODfqBN9;${qJ1To%H}E88*qeja}Mt{7|AOEAej=Vy4EL`HFJ=v8d($i(%}3bELhg;Czs zzwh6x^VT}tat%G5!0Cw#NPIAlH|DP3-EUTrTk|OP3{0W%y(P3rCQUL$} literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/grolgar/female/leg_br.vox b/assets/voxygen/voxel/npc/grolgar/female/leg_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..c26d7422b3506d8119c700360cf56ac123ad8f6b GIT binary patch literal 1720 zcmchWT})h65Xa}7bMLYgB~-T1r4=@OC<~^Qj{v>f)I}g=OR3UTY*$LGX)8z?l{AEs zRa4d&k)VhOHK8I^QneN<*(H8F;HHwsq-h#7#>9}OF~(OPjPdR7|I#N-sBhlnm-)|` zxpQXDJ-73bLxCv~X>W`ippg$fBGE{!p=%L~Clzb)pruqIRt?PLwAjBt+X8jk|>?i(`mV)QXxYO-&3@ zRwnls&c@kAF<*s@DCScu#eBtH6ldi+tukCE#a z6{t&wv8~^S;;{l$%om~R>ix*?5|o}{?J2?TWq~}#{fE4e$!y4?4=D96(RGQ zkT@ckJtbIvQ&3k}fJj9ty6SeIzj+rrEAr4=yA5M|%aH8ex!$ka^F}0Rx{&_pS!88p zVQcPY1Ofq61&dL)<32dmL5#n$9SiRl11`R4}Yf1kgmrUq}-&thlQ96}?*@F)DZdS39ulY)!o z

6Y=qVY%{?s+W%iI0kvxK+7ryiR@;5%=QS$%* literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/grolgar/female/leg_fl.vox b/assets/voxygen/voxel/npc/grolgar/female/leg_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..c014543d871a220681f59e7ba1b507534b9b5ddf GIT binary patch literal 2048 zcmchWZD^Kd6vxl?df&Q|m2Ucq()e znOM5kG|<)zu`$>i9{^xq> zd}wXikchN3wXCL*Un7x@magX8LcpIRQ^-`Zc3oG?mxd01zlA@m6Vb$|M661z)~T^^ zYOUosV`GRWietjDC>8A!>kNID80Au{4Y8>fn;K*HqmYh*IKTTRB56Nt)?Yf z(K4qIeq#vhGS*^JaY0Ye#TvQ#mbF72l^X3+W1>_mpK5B+hFXndF6PP23v+0~TpZIO zXUOfM)OdaqMa;#X*thnfPn8($_${@w4?}&LJ!$r#gD%5*mUUQHhq^9KHTOrcz6$HK zB+5vGCdSaW^oikKDM#N)Vu6>IBIpD3reRy7#MF;8D>uBAq!nV0)z zHS^M^ZpHo4jy_R7^g*9i1R7-zpH^9q*Uq-k>CFRy@!|KliJzuSYhU z#q|Nf%A*%hQScZ3C@8?hL>t2IRLdAvx88?M8xmxDTQRn`1!Du7Fm~u!)QvrZ{Ki5Q zJyC|T7v~`}yadwhAls)xM(%`MC`5jnVCD|NoCAV;&j{k}g4_EA(-{|@6fADb!>S$m z=-NFUuZ`b@37TV!#CBqdU+m>u;%D-_WFh3r*8#)-Bmc;UxN#$mf`mwJJ7Q)ANxNjz$aIV za22Kh=zpYF{`dZCYHDz>ZWs#|jv(2)2SxowxOhzP-Q$9jRaMAjGT2tpiw9Sph4lAf zM$Zh4AG&ddE2m9ENl6J_nmdT4$pAL*dj+#L&cx-9=VH982m{=!fA4=-7jmuZxP+c< zz^+3l(Er{jUO#&tZ+|t3(x!*8bk8ta-#LelGm~g+Y{Yc|BqsP1W>RqNvm5%Z@qYc+ ZJRf21o!!ia$(zlE@mtO165slJ`5QpbX}|yg literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/grolgar/female/leg_fr.vox b/assets/voxygen/voxel/npc/grolgar/female/leg_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..ccf10306b30600a2504f41321e780c5c5de11a2d GIT binary patch literal 2048 zcmchWZD^Kd6vxl?df&Q|m2-2`wy~GmGegtKHlO>(wsh!Rv*v2)Qpr$r4XH*99Z!W@ zL~B^O)-=%8jA3P($u@ce8zvHn$chMJh(z=yq7M;$`}e=+rvmL;H~cu~T<2Wp`d=@1 z+e4d+hef2hzHuXs{2GX~Hnun1mIVA9nM3B1&0E?Vzch6C{YI?Sk<~g9t0GI3cCpen zwuZ4*k!T$&8*a-%u$NIpD_X_%6I~{a-?`_hq3jOL!kkXDXv6u`ZfJ=zJg;OgmN8Mp^8O6b$vry8-mn*AT19IE z#zY56p8HPjj96o-%d)TK9&FlL#(Wo=D9gL&y_?y)x75da&pgpYdBy=_q7%z^V)!1k zc4=!I`_da+9b?CsRyn>W&w8RgV`2lwL=zjbHe{T(DmTy2DVVa)lP);&k@|3op0UtEIJ$SO#KgLKY?jNS>kn2YRYLEc`$;zNRa&kDj$!R>v5`HXW<305{| zVZ+{Rv>%v{*Cy}6+KixONbuwt!Tzh9+fsnSjuMn*Dp5UNhecgEC^=Yw%CRCWzjP1s zwhGD)u=lVaJ};0*xPDIv8JY(mL3LpP8Y|1N zwR$PK)~-TZWiC2aF2cceXzb_w`P6)nxTyUzQ0;yCAdrG_U;QDir zz8);-T7bzTH|}u#ym=@rEW}IYLs%URV&}jsShzh8S3WMsWP3gac~<{E|D-PIwWakk zy7mD3kDNr`d*gWh+y%V-)ijFgAI9q55j4GX9<67mQCC-o>jFqf@F&c);M!+5^j+io b`ma2H!rA}qW;RLQESHSmDmUBs*7N0WG=^$y literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/grolgar/female/tail.vox b/assets/voxygen/voxel/npc/grolgar/female/tail.vox index 148a4b4cbc0ebea5786a069d9b3302ba4874a654..bd942887554f59c5c7a15134ee46413ee26d2455 100644 GIT binary patch delta 745 zcmZwFzlsz=5XbSVUv*E<4BWwCB%-&kVCW1JEG8QG2L!nXkTVl56I2FFJTcPdF49CW z5ko=HP(w|82Q%Mc{dR8fp?@_~RkJ(0r+aVr4({JM+MJu&t?kX*9CrHp;BY-si)Lr= zWV2w|CWjEPjv7L=ET07npB+NL5;cTqIg??XGw;kh^FCRjhKjFKw8FIrCM_`iEhjR(y1?Ef&F@6DBgGHI^V)Z~;QJoXGGJvtWI& zI9MDk<{XCEhnS3I0k^~h(!wj`A!Gzh)DWWOAj3;yZ<=lG6N?jz6N}Si12u$b*)z*B zOE}>rGnn~6nYqkdW-c>F4Ix@C9eo{r9eo{r9eo{r)DQv>e54WHmszl(&`@Y7G>}KG z!~355J>QxWK61i&6ULkHfu97?a?kG$FZ`cSpX%?0ljD24m(PxO@6R6ZzJ7YO`~Cf0 zeG(V-^J6`aEAiv`wth(`m$=++{ZGA~uEpmMR@d|=ZtU;Zhxu~6*=*{Id^HZYck8$O F>mQj|XORE^ delta 729 zcmW-eJ8P6d6o$`bzAL0y#DEF$LJGmk6czz30vd?HB!zgx!YT+lu855U+)hkoWW+|T z19pP{z(xxZ#J^zYe;A*$#k1$kJ9FOm?C!^f*9((dyLZmM7m*tqTRRka{&sR^cGaR4 zIf{=~vxBvk6-?4p!L*qwh^DE7fktoipdjFG*&E5`q2oanG&RRl@x;H249VJsCbMjY zIT#n#5vq>4WA2zz-KPc$5`Cfv>sm~L#9TvdsELp;*DSFB%V;9lAe`&6%8UaPyC>-FB=Mt$^Pr|#e1t}pW4`t0G& kayza2h1Hc((qDhMv{Vk772jW6EFYRRzx4F5{Azyw2SXHl3;+NC diff --git a/assets/voxygen/voxel/npc/grolgar/female/torso_back.vox b/assets/voxygen/voxel/npc/grolgar/female/torso_back.vox index 5fed24fa9fd80df061f7336411a11fe25df7618f..1f3672ac83c3f0d39032fd5db7947df086b0d3bd 100644 GIT binary patch literal 4576 zcmchaZ_Jlf8OP6k&bj`a`%Z_6AZWl)iwBy9IKbcY%phg@Kv+nTlDcealDUdGrtGPv zw3a!Gh|o5SusJK!%mM4q3uDGyn{$p@YirE8)_U8E)_QmKx$#wP+Pj|Zv+woid!KXv z&h@+RAME(Z&C3p@l(uf1y%9;To|n@0*`1r-H75M^FvbJie9O++!{-q2cXvstc4;DA znyxubOHPxnq)92{AfVvXx|${#N~H%vtYF~eouugu1u6)r&S_2 z!Ke5jD?X?opkUzi+UPMnh6gGLC>S`s&iVXMoIVIB7&UkLjq9N_?iqww!N4K+TniPX zr-vGv2kKA<&I47{Ag4TCQs(?K=bxt)47x5)XDCp+%p5Xv$P)vnmU5nS84nbw84oCR zBX_i+so*R4&;qsK1Epr$$$?tk8-Is;GezcLRMWPzU;;#0CyIl}UjL0-6eQD$J=cCwfr3!kh|oq6ZEs9xu!ZkK+LW1*7IpztL~>8+{N^ zFltV(>*@D=HmD$=)C`=s8@PvoGlB|2uBd?%x1sV(Rc2M0Rb^I{XR0!*I_Wxk9X+VT z0t!a%kTM>~P;%v&!b7a6p$?5WmCCGG3kuZ2KA>RW)Eb&9KFClidx8)vYN(?PlCUpi zC{meKWmc70Rc6I{!g^>@e2|s(6dwpE7Jii6%|xb11D~1D#Ck^wV)7JR8R#2CvT7{ zKFCn2++R_t!p!7;L!G>#N!VBLp+$t52{RLBCd>>UG)Rh1@j+31AfRCM92&i3>}%W~ zS_~fuC>V98-p2lTj?Q|{zG!uPpyWpGVEs5VJPi-jh6j|Ik^9+RV`i*3o_WtYsGy1( z>X65E20R1zgjNt@1p_B<;n}96bu|1{Uodh846SoP%vRVXpj^iWGGOTdjlmlaA@S6 zu_qL$##*3Y@0732M8yx)woH_qO8HjJ~U1_oWB2L)=uk1A@YLsyM=7k#M2 zf+`p|c_;Lt2z^vQ!N8$Y)>ryyMFkWLoLXn}jXqQmP%v=lob{dk(F#JWsG$zI(QEWj zK^2TR_pI5oCkU~E5$6H_fFFcdQG=45@1=7#&iB&!9y(`24HZx@$kqAYQ3t8iQA4v( z7v~J{6Dw+HR_aO}1eDy+VyppT)X?JOjt7*uG_Gm%QAJBnzo!ohWgrIu9hL82t&MwX zoJBuVq;W58MnH*+k}EkVaj`a2txd!l=S}Qf>v$S9s69E<0Ua9uHsW_+aA-5-Ed5Lx zpZlSo5l~2cHxuvh#QQ_>7=A;YYfH~{{pjKMo9}1#Hq*x6ZR(Y}fI=R94d@%O66+W@ z=YH`)CN}ET$-(FsKJ!i2e`sT>Z~Z@Q{rdGWH#Zk=9!PP+lc(a6`TvT4%%2}8Pi~Fz z@44CIapRT`#2vRy$K0MRar}|lIDX)cIR5w-V%_o2$Gi;-V$r9T#j-E2im4-4N7^Kj z?(HKTeRrf&3u4~Z6btW5aq<2X?|&hM-<#r`eJRc-U+`>-tF{iY`M!Cv^P%(O8zs-5SaV*)jJT9GE8EcPih>Ld5kL8aoj+IX@jn%KbFBaaK;?jp$ z`%sFRmr|sUvHxC=bnx6rFV2rI-n~5@`O@9-)OR06SaZ`#jpGmQk{DB=Q_TQP}w-0ZOYo}7&zCOjC>ry;HecM%w zW7nqTv3J{wICR&QG57Ixap<0FdWd%xp7za7U8-x?=> z^w}7OAuc@syjZquS*)H~9&0auZ%nS7iv3@`IG+E(^7zy5R>qmvR>fiVJoYr7_17u> z^7|Bfcddvg_N|Fi&s`gT|MT|P{ph@S?8o!t=dUk{GqLnPKL61@>Hq%u*Q{9+-(Ghl zu2_9ErXP7Y7VTRUuRN9F51&l&?1~jJH8mCYT(T!Ve8Y>8_U(-ec3%)D9)D|wH=KKJ zELpN7zH-^YxMuo5-1+F&;=+jS%yYM?-pZ*QxRW88* literal 5560 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 O>OZM%F#O5m&3^#?w?=~i diff --git a/assets/voxygen/voxel/npc/grolgar/female/torso_front.vox b/assets/voxygen/voxel/npc/grolgar/female/torso_front.vox index 71e7faeb229462a383f58a06d72fdf60a0846e7c..853e818cef3d53adfb96c240c5ac9eb6cfab62a8 100644 GIT binary patch literal 8560 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 BeQN*! literal 5756 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 AJOBUy diff --git a/assets/voxygen/voxel/npc/grolgar/male/ears.vox b/assets/voxygen/voxel/npc/grolgar/male/ears.vox index 72e772da9d76db86142c94a6742660b16a99f6a5..1261db601ed19af55be662306eeabce16c8ded41 100644 GIT binary patch delta 260 zcmZ|FF-t;W7zN<-eqZ-~xcCR6^cMteSFSg>E;@?+2Nx$dhZ}*LIB0$~wg@7Gl!G`3 z22o=z3at_0?|3`9`@+L}IGlNIo*Q1>A`u`l6i`TxAnYh0M}Wiv;ZEX!LT1Mgk=Rf` zjs&J062z26OcIh~Zd5BNPH?y=iZshI{T)GTckAs%yLqj>o2HH*I=Y(mb@TqHOF+MA zNB14*vxmM-p`TCwRnF~4H}yZJeY&3>;ajF;7ZdoY+1Xk??+5nGj*3P9VlQnWt@}Uw F^$#s-REz)s delta 264 zcmWm5u}eZx7zOa}yEos%u^|UTAshmS&>?t21qN9ZR76YS&?JE`UNjjzY73mou50t# zOd;A5!l|L9qRAz~zvFbg@Z<2E!yTjt>HCcvjeOC_Qxp1>Qe|rB%{t-DRQ5uKy^zj2 zZieZr@Q-j4ZY07@B10+i$fu+2&8p0CquJQQ)%gi7&yHQo fRBW-3bBUSS>ulED*_>@=GVaNi?dnCx{n?Ly+pyD+o$qP?N8>CS+0c3T`oZN2nraZ8`Vz@lS8hA%LSczcXg%s`?aMPe6myh=+<@@L|J^74}Z_|g*^ZBqyKOD^JxGMceI^r@PZY+)X&9z1&-Gw=xWm$R+ Mi(DwSQW@TU0sdc5F8}}l delta 609 zcmW-dy=#;~5Qpbu--~EA3-8SF%c0>4iN=O1mnBG$~0aV3|9Ic zb{2wgogzp`D^`M9h}el$I{%09*%S}Inc12B&F;JX-ww2IEiN5@Eh5)u=NAy!dD%YL z-$&4brRCoIb1h|&`{0#kPnr!iR8d6*QnIWgvZknkLrRj}=>-MZQ_h`pw>r7xL@lXg zQ>|TzThh;|lB_MsY_aCVR&o$Uq6yxlz2NQv2#P>&#E++e53nmxEVjcyotG)saU)`9lh(b@#x+{tlYU8 z8;_Uc$-|q?Uz_$*-J{Kf?{=S!k4LA|iT>mu&Yyi14_<7>*xkeNvwyznw-l(TJ#+&}oDQrAnh% z6{}IIMB-B@p7YdR^2<3hb0?EGn!KK9>}+&f7iP9rwAU3jb=qhS##MrJclX+#%IaGb zhefzWcS}?nwH6oBQV?B?5D%JB2Bp=kgPJ9;X--159kC7hb4-eTHXSuXzm+VTs&n*H8(d3?|- zug>?&$NQ7=eR!FleA-91`NQY>hEXlio}cM|L00 z8VJFg6@rM2GHm4;L0My#p{eIWtee(Qe~x z=M;mIEH1TY-bgM3&xjO~#3dUo02!SJsv6mR}6Xm(_+_Zurfi(z{ zic}(uOLP(nBrB1;#HujXoD(O)OO+V$Y@p1E5htQFBt~4NGSy0zhM5y1_EKF?f&Ium z*&MtFsKh!9xS0{pnu}`OP`P2g#5l;;lA zXJhl#QmnstQ2*62yV|-?58H9;_0Ui>o6YEqbYtSi+jzdS6$4Ms$B$1Vao8S=<^KM< O<)e0eZM%Nt-~R*b2!s{@ diff --git a/assets/voxygen/voxel/npc/grolgar/male/foot_fl.vox b/assets/voxygen/voxel/npc/grolgar/male/foot_fl.vox index de84597099e19a8dcf1f5afe4fc30b5dd275a3e1..9e2b073502df7d4a13883502facadb9af53e3915 100644 GIT binary patch delta 664 zcmZ{gziL!L6vofLx%ciGQrU@SpFj`%+XvGb~xHi8Hu zse*-7L`!W_1YaPXZ(wo#jlBauzV8g*%$zwV(>H6Y`}cNduSMkUe6fj0*NAK{_HM7$ zf|a0pwq^Ih-r|>HSdYO%iY6(RBs&nw+EAkoQ3>zWA+#8HXqKc|!IG|uV*;dMvmpeI z4=^_lS~l>oBFQ*Nos4r<0<@uSsKNd{1MLp3(DvoL-viPbgWvNYR>YYoSho$DJts+&~x6})Fn=t{rl9iUJwUQ0>6(%s! z@?-Fp37`tn5$p(}js_|dS?Yv6@QIYD^;DJ)+A%TkjtO3%hUj!hKqtE6pi?EQOKUBM zr~YC@^ybM7_X13mGHS`*F%7+-0fVY|0R|Oh zV3CxBQ$j;>XolvD%*cW)$bziMntc?RFa(2u0w%{D)Sy5ZmO((>I*JJzC~$;kpn%`@ z3<3(2!+8!hD1;gLDU6n9ZM-^XpPOZ~-6gvt3e!3-Z%?773t`6%s?XzF`*?k{)<)gp z?S>@>O*=pBSpQ_tt}l9ab#@fKw4t?XB^2DZ-jqt=*HyG%EQWGa*R{)0h@R^9?MH-?4Y$<2N(>W@l$lrf=3(_wVh_UW>@x`C=21Hj8X8_HM6@ z2`9lAQcRf@@a)O{@b1;&@a5C<;q=?v;j_qa2IuhdP==!_!`BZo z{PRQ5A~1T^yBwZZ}_?2SzoUkaoJzYX7yHF^NsmdeH1_c0Bn3!E>SYIY9# z1A?Z8mI(R_+WHR)uCE6l?!CMB?%hNBWukx7XfE7~$X=yZXOrbb?{t1K`4lJ+UYDPP^t@*EvUnVW9Ayj0P&hl=mRis?aCWHCdx6MFN9QNkcuTlg6CblJ|e-k5W4T diff --git a/assets/voxygen/voxel/npc/grolgar/male/head_lower.vox b/assets/voxygen/voxel/npc/grolgar/male/head_lower.vox index 6b01be835d5f6047ef8396fead60acac8d42c6e1..5621e57ce141949a063d7db94d58c8fa766b4534 100644 GIT binary patch literal 3048 zcmciDZ){d)8OQPKocsTIlrZVa%4TT_Xj{xCe*$bzGmAh*$C$DzZj}*dwn-(6+8Dw} z)r=Y=5)=_(CY#8VOr66?TH>D<&`h$JEX#t6F)?IWjM10AFvfR3zlXijg!#^sd~(jY zuitZ@`@Z^|KD$5i;J_&}+qrrCeoppA$82JJa@)Jw8;1TyXrYYR9Y5 zx`NfHMqOp2&TO=BUl{jX2So6(QBOS}BDL4C9`!Y6L?q<4&UkQ~!E>3jovUK5in%K0 zsu*vd$2bBa5;9!PI07OPGMr-^0TBrq-ZO@X1jqV40wNMJ>Z<0M)DRGnkWoQVh)BpNs6BOf1Vkic6u3YQ0TBrql{wbzShHizjx{^h>{zoKZBSK?wUdEI zKtw`DL4&F$2M3RUh=h!S29+ZR2akY=gp7g)l_v)WkAR4TjDiMrAOnwph=hy+7pWm2 zA|b<>XV0EJd-m+vvuDqq{d)H6*)MejL?mPsG^lEFaPSC-NXRH?V2&(mICum^BxDpc z=%Dgs;ouPvk&sc)pbF&R;1Lj!kWtW}j%45w5Rs5kP+OoEfnEf95$Hvr7lB>`-o-#a z0{tKZkAR4TjDiMLO%4to0TBrq1r5xRMGXg!fQW>Qf(9L!CyyEq9sv;v83heGr~+9y zcmzZwWE3>0W4OyjG6;xB$SBn6L_JYQKtw`Dp_Wq`^*MAyriR3IOzCoMk$y({8R=)F zpOJn>`WfkGq@R&~l7UA+L_$VE1FK`Vs>#B^BOoFnqo6^DtU2vQ{=*o{andY-5`Gf~L*T zGuM7s=~F;uvD?5W{vRMB!FV@22!Y=+JaEs4Hyb~~?XhXoCe6&u=&ci`?ayA(ik^Sz zA3Z%CbE9{O7cItXF-X8qmO(S8Mpp zow98~w!e{`eUI!)uNLn#Eq%gt+i}weUNYtVrgzVpmT=$uf@%HEj_!S8u_m8dqHkP$ zueQ#ZcAYeR`n>7M*ZJ(OW$K?A)XJF=ZI~O=t&GZNS1t$-h&VR?W@Vx2O zpK?EDI=jvE%Lh!?K4Y5X{@`xY@kdR+J-k_4hE01nnGS36E8GHvKzrty)L z+Oy$yO>ezZyGMF8wf34>TNpzgF*fAcO$y?+G;(+Gw05+*WZ}_{Cm@(sUbZ*yG~bL+@in#X+qOS z7wgzhdi0Ce`*cmq|6~7W57_^G|LfMR)3-OC(H(2fs(a+H`eys|%5$bSK52SkXh_4u z!`ipvfbQFVK{k6xH&5TJi>KfI8*X2;Nd5i&`pT-4y1RQqj~@M+ZrQt3ul;8C8 z1ikw2{AhcVuP sNtU61%3U?R`K!0r_a@)3|5fJ|y#Aiu=-d`>RBOlIsdjzhcmBNn8$J=d6#xJL literal 3584 zcmc(hZD^lY6~OQF-1q1CXLL4Amvn1m+PWl_ZGEvXw$9WxZfR_1*IC!tl})zU*!;~1 zQq~eCTVz;Awbsy1*sN7Xm9e^&q$mn)7-bB`7ww?4N@MDf z+a=T<3EAX!f(QXTIH(HNAVGux9voOGOKd=4!R2-f*+Q1c5?Lc_WQ9(K1Q7ywaA2WA zFGGR|0X#UckP`DLUk%{-t|I!7V!j$7fCtB%g$kb;5=02#!GVQJV}|6}4*@(l<}6g? zCPNCWLjVtsIjd_$z^=o-!;d3IKUq1?wAP2M04=ipoQnmHskY)WmHBBTkQY}+Rfj(X}j)L+6c zI)x<`%NYx5TTt7QdM5H3IWvACpdT6;@x@w*oHKGpY&i71&NJr|wp8j~+jfjS)cC54 z)NYk&GI6#TIJ2G`od6zk;n|}(!&XXHBeE{>0f{&wYcXnmG?p}xgKLKrCt^wL3UiU% z2lRYnhgeIn*e*-r)Vio2t(p3A*u(~Sog?Q7`$=PntdakuHNbZjh?9I&QS;^Kdu%D1 zV{&6Pr>xcJwb);>)W+PnYl;|N#kfFXJ~rQO={YKA~dUkr! z(mPK3hCEo}cJ!K~rvkke`1TDt59oU8=OCctRj-*tV#7lqmmVBBaM%p7WUP{!lV7hg zFxGk^9c1<0jM;;9=vngNks*4<)J^l&*rLucFh_3^n+K;fXGfnnJp^oe_0PPApnXGr z0{L-jn{Njeyv{*z*aHU^f>(Xj1*8KDrT3GiC-{qy)GkbB{3UV`o1CVJz?}^A zfCCSe#)?hPeize3B9E2E$#*1|8A6N`0iPZmSP1y?kXVoGN#wZFw+jOCSfob=&fy_& zN4?%t&Ji`HMhCz2mPa==eNEr8mdJ0$Uevowy)xrSjw3ZnO|J2w{jarTufwi|5(2sK z;J`w`dlEUnC&sL{*k7p)-jA&HPMj@K^TfMBFGTH!W{$Xd3!~oAH%k0v^fPZ>Nskno3-%PML#`b)u~5<@1>*u8=kW)Qx7mZ` z+cpxP9-DlZ`%Et2QVIO|>D9EtrEqMre+&C9_9mT&NRK$iwn1~OXVN=>Z(>0gB9(!b~OdlPU`4b~D zfBG?*Kl_wynxB+KLtWDSXs`4>vqlEaZ4oo<#T==`od1NFYhAKvw~?i7Be$P2^6A%& zq$5T;W{fOm-1VxF4ZCaE)m|iH&n}klU%o?jP8-=fYvk(}jU0QAy?c9P`FNkKnjVym zb3?Lhs#E$-_Q>EXD`f3kcgoU(MpiwG?K4KUT`^)F!vFCkX7&~_mpbLdowv$`dzQ%i zpIauf>yt8Tj9i94!e3$bX(JbZY-Hhrk+jEpgUdcToVk28PN z$c_Ochc+8Iy3@#u%dF*5_V2C=0**rqp#Uw=KR^dV70i?LePw zyz5i)*>wYQ>btkg#h>-bpWYsn8}F`>m+(2b@(y|DcSip52P4PF`{l)%^>XdC9rBMq z?~|z)7Rkw9b;=v>b;}J|@qdf|Y249MY?N99ZRUlKEOT$W5Nk;`Xq*6^7gdT04^`OfNDxp(VndHjXv<+ejh z<=tPemdj(^@?=-nf8}5G)YgH0?~r4WV`neO%rEBT2bbQIpIp5zpLyzp-22=)8U5)M z+4uT&85$ar4~>XPApa73-N*;Oy?MS5=&%2^&Mj>2*+)rT{HQgZ|G2fr@W<~r{{dWs BQ`7(e diff --git a/assets/voxygen/voxel/npc/grolgar/male/head_upper.vox b/assets/voxygen/voxel/npc/grolgar/male/head_upper.vox index a0659b920628cda0ce1ea4992c176e6c9374c437..20211786390ed0d25ac9735229e2126e156f993d 100644 GIT binary patch literal 4728 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 O;_sK6Kk@tbyMF_+o?wpv literal 4648 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 delta 390 zcmXYsu}i{H5XbM`yjW>jD2$5fXmwN0eA;0^RZ`;hd?lRk7vpRWC{8TSc^GdG=6eR;gp;#^KEi+QcD v6?AW>tc~pzJ#sZY*xmFOoR{fL+P`y8j#DXrFKKBclm1h3GP~dMBlh_ZPT*YW diff --git a/assets/voxygen/voxel/npc/grolgar/male/leg_bl.vox b/assets/voxygen/voxel/npc/grolgar/male/leg_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..a3e85d4508e167309a74d07514209101f6a23bcd GIT binary patch literal 1720 zcmchWZ%Ex$7{{M;p5O0!oh2^sbh@P%|CCo_%Ri{QcdTnF^Uk?)mTl&w#kMpVl?-um zE9Q;J#4#11gXhdz;(SX=#Fp5f<^B(jMdI@}gJWhwYg64m6eC2Er+mZ+gO zj6Q!@U4O*7j1HsY4;w~RYGR05YRhp(HGa;cHq=5*)Rz>oMBSvYCB~(8sEHv$ROyK! zqRd;)A%=)$-Y{?IiBPN16GPPJ3tOVDkA3DIuqEmw zb8l)!5yN`JdJ`5yZ4CD|tfwZ{a$F7Tsl6zcb(VFOb(VFOcVSt_aiu0!nRlo~*@LoH z*@K3~Dr=QJP%E`^+=~vQ!zd2dcG$DSwW%$&b-1>}w{jw)4&Q(|qSWHh6YE8nh|7C& zxu?rLsTq}sr6<<9T*u|!^vXP=5^?B>b(r_G%bd#`qx$HD_ba?}B8K-&EKwqso>jY;x-dvH5uKGOmHy2_2cp2i4S7E%f7R#?af!}7jP?Dd4-DSCGe5eS=TdUB$Pmnkw zm^vj`dQ(uDlZ{w$0op5fpr>vZT8lH#Rk01jdkZn&v2(p&ujh@JpKQnSN6#W9B?Vj4 zHzODfqBN9;${qJ1To%H}E88*qeja}Mt{7|AOEAej=Vy4EL`HFJ=v8d($i(%}3bELhg;Czs zzwh6x^VT}tat%G5!0Cw#NPIAlH|DP3-EUTrTk|OP3{0W%y(P3rCQUL$} literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/grolgar/male/leg_br.vox b/assets/voxygen/voxel/npc/grolgar/male/leg_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..c26d7422b3506d8119c700360cf56ac123ad8f6b GIT binary patch literal 1720 zcmchWT})h65Xa}7bMLYgB~-T1r4=@OC<~^Qj{v>f)I}g=OR3UTY*$LGX)8z?l{AEs zRa4d&k)VhOHK8I^QneN<*(H8F;HHwsq-h#7#>9}OF~(OPjPdR7|I#N-sBhlnm-)|` zxpQXDJ-73bLxCv~X>W`ippg$fBGE{!p=%L~Clzb)pruqIRt?PLwAjBt+X8jk|>?i(`mV)QXxYO-&3@ zRwnls&c@kAF<*s@DCScu#eBtH6ldi+tukCE#a z6{t&wv8~^S;;{l$%om~R>ix*?5|o}{?J2?TWq~}#{fE4e$!y4?4=D96(RGQ zkT@ckJtbIvQ&3k}fJj9ty6SeIzj+rrEAr4=yA5M|%aH8ex!$ka^F}0Rx{&_pS!88p zVQcPY1Ofq61&dL)<32dmL5#n$9SiRl11`R4}Yf1kgmrUq}-&thlQ96}?*@F)DZdS39ulY)!o z

6Y=qVY%{?s+W%iI0kvxK+7ryiR@;5%=QS$%* literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/grolgar/male/leg_fl.vox b/assets/voxygen/voxel/npc/grolgar/male/leg_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..c014543d871a220681f59e7ba1b507534b9b5ddf GIT binary patch literal 2048 zcmchWZD^Kd6vxl?df&Q|m2Ucq()e znOM5kG|<)zu`$>i9{^xq> zd}wXikchN3wXCL*Un7x@magX8LcpIRQ^-`Zc3oG?mxd01zlA@m6Vb$|M661z)~T^^ zYOUosV`GRWietjDC>8A!>kNID80Au{4Y8>fn;K*HqmYh*IKTTRB56Nt)?Yf z(K4qIeq#vhGS*^JaY0Ye#TvQ#mbF72l^X3+W1>_mpK5B+hFXndF6PP23v+0~TpZIO zXUOfM)OdaqMa;#X*thnfPn8($_${@w4?}&LJ!$r#gD%5*mUUQHhq^9KHTOrcz6$HK zB+5vGCdSaW^oikKDM#N)Vu6>IBIpD3reRy7#MF;8D>uBAq!nV0)z zHS^M^ZpHo4jy_R7^g*9i1R7-zpH^9q*Uq-k>CFRy@!|KliJzuSYhU z#q|Nf%A*%hQScZ3C@8?hL>t2IRLdAvx88?M8xmxDTQRn`1!Du7Fm~u!)QvrZ{Ki5Q zJyC|T7v~`}yadwhAls)xM(%`MC`5jnVCD|NoCAV;&j{k}g4_EA(-{|@6fADb!>S$m z=-NFUuZ`b@37TV!#CBqdU+m>u;%D-_WFh3r*8#)-Bmc;UxN#$mf`mwJJ7Q)ANxNjz$aIV za22Kh=zpYF{`dZCYHDz>ZWs#|jv(2)2SxowxOhzP-Q$9jRaMAjGT2tpiw9Sph4lAf zM$Zh4AG&ddE2m9ENl6J_nmdT4$pAL*dj+#L&cx-9=VH982m{=!fA4=-7jmuZxP+c< zz^+3l(Er{jUO#&tZ+|t3(x!*8bk8ta-#LelGm~g+Y{Yc|BqsP1W>RqNvm5%Z@qYc+ ZJRf21o!!ia$(zlE@mtO165slJ`5QpbX}|yg literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/grolgar/male/leg_fr.vox b/assets/voxygen/voxel/npc/grolgar/male/leg_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..ccf10306b30600a2504f41321e780c5c5de11a2d GIT binary patch literal 2048 zcmchWZD^Kd6vxl?df&Q|m2-2`wy~GmGegtKHlO>(wsh!Rv*v2)Qpr$r4XH*99Z!W@ zL~B^O)-=%8jA3P($u@ce8zvHn$chMJh(z=yq7M;$`}e=+rvmL;H~cu~T<2Wp`d=@1 z+e4d+hef2hzHuXs{2GX~Hnun1mIVA9nM3B1&0E?Vzch6C{YI?Sk<~g9t0GI3cCpen zwuZ4*k!T$&8*a-%u$NIpD_X_%6I~{a-?`_hq3jOL!kkXDXv6u`ZfJ=zJg;OgmN8Mp^8O6b$vry8-mn*AT19IE z#zY56p8HPjj96o-%d)TK9&FlL#(Wo=D9gL&y_?y)x75da&pgpYdBy=_q7%z^V)!1k zc4=!I`_da+9b?CsRyn>W&w8RgV`2lwL=zjbHe{T(DmTy2DVVa)lP);&k@|3op0UtEIJ$SO#KgLKY?jNS>kn2YRYLEc`$;zNRa&kDj$!R>v5`HXW<305{| zVZ+{Rv>%v{*Cy}6+KixONbuwt!Tzh9+fsnSjuMn*Dp5UNhecgEC^=Yw%CRCWzjP1s zwhGD)u=lVaJ};0*xPDIv8JY(mL3LpP8Y|1N zwR$PK)~-TZWiC2aF2cceXzb_w`P6)nxTyUzQ0;yCAdrG_U;QDir zz8);-T7bzTH|}u#ym=@rEW}IYLs%URV&}jsShzh8S3WMsWP3gac~<{E|D-PIwWakk zy7mD3kDNr`d*gWh+y%V-)ijFgAI9q55j4GX9<67mQCC-o>jFqf@F&c);M!+5^j+io b`ma2H!rA}qW;RLQESHSmDmUBs*7N0WG=^$y literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/grolgar/male/tail.vox b/assets/voxygen/voxel/npc/grolgar/male/tail.vox index 148a4b4cbc0ebea5786a069d9b3302ba4874a654..bd942887554f59c5c7a15134ee46413ee26d2455 100644 GIT binary patch delta 745 zcmZwFzlsz=5XbSVUv*E<4BWwCB%-&kVCW1JEG8QG2L!nXkTVl56I2FFJTcPdF49CW z5ko=HP(w|82Q%Mc{dR8fp?@_~RkJ(0r+aVr4({JM+MJu&t?kX*9CrHp;BY-si)Lr= zWV2w|CWjEPjv7L=ET07npB+NL5;cTqIg??XGw;kh^FCRjhKjFKw8FIrCM_`iEhjR(y1?Ef&F@6DBgGHI^V)Z~;QJoXGGJvtWI& zI9MDk<{XCEhnS3I0k^~h(!wj`A!Gzh)DWWOAj3;yZ<=lG6N?jz6N}Si12u$b*)z*B zOE}>rGnn~6nYqkdW-c>F4Ix@C9eo{r9eo{r9eo{r)DQv>e54WHmszl(&`@Y7G>}KG z!~355J>QxWK61i&6ULkHfu97?a?kG$FZ`cSpX%?0ljD24m(PxO@6R6ZzJ7YO`~Cf0 zeG(V-^J6`aEAiv`wth(`m$=++{ZGA~uEpmMR@d|=ZtU;Zhxu~6*=*{Id^HZYck8$O F>mQj|XORE^ delta 729 zcmW-eJ8P6d6o$`bzAL0y#DEF$LJGmk6czz30vd?HB!zgx!YT+lu855U+)hkoWW+|T z19pP{z(xxZ#J^zYe;A*$#k1$kJ9FOm?C!^f*9((dyLZmM7m*tqTRRka{&sR^cGaR4 zIf{=~vxBvk6-?4p!L*qwh^DE7fktoipdjFG*&E5`q2oanG&RRl@x;H249VJsCbMjY zIT#n#5vq>4WA2zz-KPc$5`Cfv>sm~L#9TvdsELp;*DSFB%V;9lAe`&6%8UaPyC>-FB=Mt$^Pr|#e1t}pW4`t0G& kayza2h1Hc((qDhMv{Vk772jW6EFYRRzx4F5{Azyw2SXHl3;+NC diff --git a/assets/voxygen/voxel/npc/grolgar/male/torso_back.vox b/assets/voxygen/voxel/npc/grolgar/male/torso_back.vox index 5fed24fa9fd80df061f7336411a11fe25df7618f..1f3672ac83c3f0d39032fd5db7947df086b0d3bd 100644 GIT binary patch literal 4576 zcmchaZ_Jlf8OP6k&bj`a`%Z_6AZWl)iwBy9IKbcY%phg@Kv+nTlDcealDUdGrtGPv zw3a!Gh|o5SusJK!%mM4q3uDGyn{$p@YirE8)_U8E)_QmKx$#wP+Pj|Zv+woid!KXv z&h@+RAME(Z&C3p@l(uf1y%9;To|n@0*`1r-H75M^FvbJie9O++!{-q2cXvstc4;DA znyxubOHPxnq)92{AfVvXx|${#N~H%vtYF~eouugu1u6)r&S_2 z!Ke5jD?X?opkUzi+UPMnh6gGLC>S`s&iVXMoIVIB7&UkLjq9N_?iqww!N4K+TniPX zr-vGv2kKA<&I47{Ag4TCQs(?K=bxt)47x5)XDCp+%p5Xv$P)vnmU5nS84nbw84oCR zBX_i+so*R4&;qsK1Epr$$$?tk8-Is;GezcLRMWPzU;;#0CyIl}UjL0-6eQD$J=cCwfr3!kh|oq6ZEs9xu!ZkK+LW1*7IpztL~>8+{N^ zFltV(>*@D=HmD$=)C`=s8@PvoGlB|2uBd?%x1sV(Rc2M0Rb^I{XR0!*I_Wxk9X+VT z0t!a%kTM>~P;%v&!b7a6p$?5WmCCGG3kuZ2KA>RW)Eb&9KFClidx8)vYN(?PlCUpi zC{meKWmc70Rc6I{!g^>@e2|s(6dwpE7Jii6%|xb11D~1D#Ck^wV)7JR8R#2CvT7{ zKFCn2++R_t!p!7;L!G>#N!VBLp+$t52{RLBCd>>UG)Rh1@j+31AfRCM92&i3>}%W~ zS_~fuC>V98-p2lTj?Q|{zG!uPpyWpGVEs5VJPi-jh6j|Ik^9+RV`i*3o_WtYsGy1( z>X65E20R1zgjNt@1p_B<;n}96bu|1{Uodh846SoP%vRVXpj^iWGGOTdjlmlaA@S6 zu_qL$##*3Y@0732M8yx)woH_qO8HjJ~U1_oWB2L)=uk1A@YLsyM=7k#M2 zf+`p|c_;Lt2z^vQ!N8$Y)>ryyMFkWLoLXn}jXqQmP%v=lob{dk(F#JWsG$zI(QEWj zK^2TR_pI5oCkU~E5$6H_fFFcdQG=45@1=7#&iB&!9y(`24HZx@$kqAYQ3t8iQA4v( z7v~J{6Dw+HR_aO}1eDy+VyppT)X?JOjt7*uG_Gm%QAJBnzo!ohWgrIu9hL82t&MwX zoJBuVq;W58MnH*+k}EkVaj`a2txd!l=S}Qf>v$S9s69E<0Ua9uHsW_+aA-5-Ed5Lx zpZlSo5l~2cHxuvh#QQ_>7=A;YYfH~{{pjKMo9}1#Hq*x6ZR(Y}fI=R94d@%O66+W@ z=YH`)CN}ET$-(FsKJ!i2e`sT>Z~Z@Q{rdGWH#Zk=9!PP+lc(a6`TvT4%%2}8Pi~Fz z@44CIapRT`#2vRy$K0MRar}|lIDX)cIR5w-V%_o2$Gi;-V$r9T#j-E2im4-4N7^Kj z?(HKTeRrf&3u4~Z6btW5aq<2X?|&hM-<#r`eJRc-U+`>-tF{iY`M!Cv^P%(O8zs-5SaV*)jJT9GE8EcPih>Ld5kL8aoj+IX@jn%KbFBaaK;?jp$ z`%sFRmr|sUvHxC=bnx6rFV2rI-n~5@`O@9-)OR06SaZ`#jpGmQk{DB=Q_TQP}w-0ZOYo}7&zCOjC>ry;HecM%w zW7nqTv3J{wICR&QG57Ixap<0FdWd%xp7za7U8-x?=> z^w}7OAuc@syjZquS*)H~9&0auZ%nS7iv3@`IG+E(^7zy5R>qmvR>fiVJoYr7_17u> z^7|Bfcddvg_N|Fi&s`gT|MT|P{ph@S?8o!t=dUk{GqLnPKL61@>Hq%u*Q{9+-(Ghl zu2_9ErXP7Y7VTRUuRN9F51&l&?1~jJH8mCYT(T!Ve8Y>8_U(-ec3%)D9)D|wH=KKJ zELpN7zH-^YxMuo5-1+F&;=+jS%yYM?-pZ*QxRW88* literal 5560 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 O>OZM%F#O5m&3^#?w?=~i diff --git a/assets/voxygen/voxel/npc/grolgar/male/torso_front.vox b/assets/voxygen/voxel/npc/grolgar/male/torso_front.vox index 71e7faeb229462a383f58a06d72fdf60a0846e7c..853e818cef3d53adfb96c240c5ac9eb6cfab62a8 100644 GIT binary patch literal 8560 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 BeQN*! literal 5756 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 AJOBUy diff --git a/assets/voxygen/voxel/npc/lion/female/foot_br.vox b/assets/voxygen/voxel/npc/lion/female/foot_br.vox index e99e5c03b3a26816194cd316a52c4899c6564070..d0c02b7eb1182a3d791fc623fbfa52dbffcc3794 100644 GIT binary patch delta 221 zcmWkoyA8rn5cB6AMWj?2g_@4${R(zq4^|*$N@idIM&nXgw(l&>&#RyjYv^=^72on)lHjcfb?b!!xQ delta 195 zcmWlS%MHRn3`FPS=vd~TF+gju5y2V>z(vwI?YIa8`t;)aC;Pb diff --git a/assets/voxygen/voxel/npc/lion/female/leg_br.vox b/assets/voxygen/voxel/npc/lion/female/leg_br.vox index 01383480d226074ed38f5925006239dab10c15c8..791de7c1e33ed650db4461e50450dc473731c4be 100644 GIT binary patch delta 523 zcmW-eOK!w43`0dyayE0IEV^kog+JNMg>r@7rE|OjE!_ZuVn&~5=Jj|zzTR#rIx_}? zi;U`Z3*{y0 zC3Z3@7b*?O8Qf62$IjfFGHsJ@Mb=`mv%I)+($vi6!nQ~|u|Z|}-1eu>Wr*rX58S`R jZosa9b~KxTWfyndVf`@N(Vw3m?~(EUoag!beey?tO>r=9 delta 523 zcmW-eOK!w43`0dyayE0IEV^kog+JNMg>r@7rE|OjE!_ZuVn&~5=Jj|zzTWOobYu(! z7a}`CBTy@l&gwuL#Bs^rh?v0|!5mZ!(!INXXN2{g(Sveu0Ohl1LPI!~q76m$0DaaX zcn?}+)MTVXS7bVBhOD7o^bloEDV^(*b!GFpU829SEu{hF1w6WTy`g1DfS%#La$mJY zvXioAAj$Q&NmHHGCaVU#9HxilcjvS#;-c6?obZ4k782Irn`4A9;0V`}*7ju*7t2f1 zOYEd77b^|PDQ>9UV`uJ7nYPKd0&AhzQC?g*VQOS^VOyY`*q}0fZu`^cGDLNz2ku{D jH)vN#JDSbFvWvU!uzncs=+DoO_sIBv&hz~JKKY|RTZS-- diff --git a/assets/voxygen/voxel/npc/lion/female/leg_fr.vox b/assets/voxygen/voxel/npc/lion/female/leg_fr.vox index 428e3119cad022d793bd58cd036fdce124fead7f..6a46112e8c54fa2a87efc955e2ae3c5bd280132d 100644 GIT binary patch delta 444 zcmW+y$#DZQ3?l&Q*zqH+q<}P_t0uSLUQ$&$@H1FHIFJYkg!q2EAFrRM7=wrj#vx-t zv8b3*YzbS$Bw)@c3=jvx36&iz8|hLRP|k>cBHBRK8LB(7yPD6}3|=c>lr?HAXb%19 zg9W%7bp)y(-v)h(?FeniJ)tZ_--vb))dQ~uUI#W5t3#SccL*2zgzTX@fjqE3>;qQo z-TP?Epta<)FQOktn~Z8Kn~^4)$!4x?sxEp6LLVIK7s(tV5JP%K`*@%Im3`47MUDF^@n delta 444 zcmW+y$#DZQ3?l&Q*zqH+q<}P_t0uSLUQ$&$@H1FHIFJYkg!q2EAFrQhFa{8lj047^ zVnH!Ou|wEFOaSJL!XR-d9I0%vY^F}6o_93hF z?tQdnz*_Lx7tjx)O++=8jYyNtWHZ+`R2Mviq65jBFp}=mW;_5#h(k($A|3wT#Ql5M tCwOrH*;fuGd*lYSf*SaiHhqDO!z7e8zf-3NrTZ4cp;)|rjA4MQ)~gQH{*)Ga`a}-apT~yZ1Q9Pq|QQ0>~IXa5UxjBkw-7c5s<|w``+eMANIf`%K zc2T(;RWftx6nX2YBQGzH8XFtw>Q+IscAuu9Deu#}DJgXFWHE=*A#V%KE_9K9`2=dL zE2NeUUTWFury8sNFq_yg~Yx)Nu2IOJ&FbOtrj$B zi=cas2>onzGb5?*GC{-E$lTinO*|n;ERf@`?o47^HxkEEXv4^! zbimb{E=?LpRB$(KlXu&3dA=&oH|4plUeMtu1)V$~=3@)7Ee*H7*@U$;rvouUAhR zGq4A_(^F||<_H>}l}=k89z=)trqXL?GwAa9QS_7?vw6Rub1%uK?(Ipm+DfCHP1$t% z&@_7IjrkPY*n>7bmqJG`^ry=-gi7Ul)Jx}sl6#< zNH?00-i;RKb)|*w|KFdTolQ^V?x8X6eKcXiTI%1_pUylZ=+aU_2h-9hJw2T&ht^Ti ztYajaR#Wd-Z#uri-opn6$a`n-V0viyHkv$PD+M;Lqkb#;()s6y)A7>&wAJZsxBeW* zxt7d7N3lwxh8+i}>Dgv_{Mael_3}mXL^sgnwR@=W=@T^n$VJM}&!?+$DMe>_(tBiF z6m;c9dwy5s{q=F}@*z~u*{wdg@m6hI|50r!@kjTUUji2ty&{wF!EX!x5~$vt@rJ0` zSr&W&tD>T|#^l$DZ zj-%mi#?kN%iKF2M8%M)$Ash|Aka0A(LutA|X_BEd{LJ7yH(jAL-Jmqxp)~v(IXKTv zPbkfuP?}y)8vfl%oad%Dl%@}qrZ1GHAC#s)l!pI=1?QbM5K6;;Fo&}@cR^_eLurOU zX`E1+yP-6xP@17onqg3y;ZT|pP@0iYnlva)I+P{@O2dE64(B_9d!RIc=-DTdPU|A2z?{mmRG&0HwW zJSa^Glx9AZW&xCDA(Unjl;(aY&0;9c5-3e6lx8WEW*L-bIh1Avl*R|8SqY`_LutyO zH04m50F=gr(o{fcf>4@DD2)ZBc>qdN1*Hi=X{w<#VJJ-mN)v_Bd;&@ngVNMMY2r|t zS}08&lx7u_rXEVu0Hs+CrTHY3rV&c>DJac@P@0FJG@pjjtbx+3h0-)ZXsJOZUz z2c=mLrFj%evjIx;7?frsl;$%~noUre$DuTvp)^~dG*3WjwnAy1gwkw-(tH+5vmHva z14^?KO0x?}^EoKZ=bh0^>3O7k9+=ATfS_n|cZg3|mO zO7kBm%?D7L|3Yd02c;n>jnIU+LyD5*>5Df+&CYxguqrBQYs}mDdX;GfE8{XuxI1w< z7O4$Z8uH4O=~lgJqGq{W_NWeA_C*sl4(?(_VsDOU|t5vr}{d8i(~P#~rXu{l!dJK46AoB4Rjq^O$`(F2 zbK5~{!`8P);r6J?VC%YfxY;Uk$PCx0i)bwJfQnZOR}rb>6gi&T<*z<})QrVz zW2Ozs@~D}Vh5P~27gl|4sJMPZ&Q2gWeJes;R9K;Ebz#;=Bb>nAtvbt|v1;;{n>E*) zg8pjWn5@h!UY^ArWmY>=7K%iwm7voRawUs>>a z5^ixh-nvH>jQG>8?!-#Eq>3*~!d!Tqe6=+0>S{PC}(nB~!w# em&$^^@-`*EDk-MgN$%rz${(t8xfu#^fcrxjx)Zkm diff --git a/assets/voxygen/voxel/npc/lion/male/foot_fr.vox b/assets/voxygen/voxel/npc/lion/male/foot_fr.vox index 321d845bfdf5329da6a72f5c966389a91d3703ab..312dde3f5bb83a09e0d438099481319fcec973ae 100644 GIT binary patch delta 32 mcmaFAnRyPEP?&#&!ZZd3246={KOn`x!8%ds-{#v)JS+f~i3o%M literal 55791 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 Ac>n+a diff --git a/assets/voxygen/voxel/npc/lion/male/leg_br.vox b/assets/voxygen/voxel/npc/lion/male/leg_br.vox index 8e2540f921198fd7cb343e46a67ea17421dd71e0..791de7c1e33ed650db4461e50450dc473731c4be 100644 GIT binary patch delta 33 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 VdOUh1rH$LkAG&dEBp#Ol_Xn`=CPDxJ diff --git a/assets/voxygen/voxel/npc/lion/male/leg_fr.vox b/assets/voxygen/voxel/npc/lion/male/leg_fr.vox index e394a58ca4fe5bce4e03a03602ae9fc7fb4c3fec..6a46112e8c54fa2a87efc955e2ae3c5bd280132d 100644 GIT binary patch delta 33 ncmX@TmH7v^P?&#&!ZZd3246={KOn{Mgmt6PEym5;nR!?Mtp5ph literal 56011 zcmdtqdwf*I6$kLS_vWz}MU?PXSOW+N5_Xd;2?81fgnjV_AqvYTyV~1%kkkC{s zQ4}qTNI_c_(Nb!ys5GF~wuqKmTWc+~)@rG>t+h{UTWjAvJ!kF`2#MOie-|!$XXebA z`Oe&X^MUZms>Q3FJC#zwIo?J5p&oxtspa0f`DaRjk32r}`8JxZ zmDerPF;<~pncQYL_>vC{#~b7~%t1ke^I2vA&ym{=2hV{|)8R8L&S4e! z3?naSaDIdH7-j*-bDfUO_nI7Qnhw8dID)1s^qH!FKl1~o%Hy^|ZY$)r!hmTN_)Q+e zuuPth#p}SIrpfgt=Q4w)VR|jg^eQWl4S76wSqHK6spp-~<6E59;(1w|BQIc@mftch z9>)q8d~I@Gi`z^qk8{hM^LU&*uIE^T=Va#d+VdyRKe=MrqVx3bo%}<#lX6FHYgKZ= zvL!=uAt&nO)8tcfOv$xLSq_U&Ng>w~cOo{Fl{?4fbU8iALj8Q|0?sq7c!K0QjN*e|N$^eCB8zo^R7qvTQO7gcq7l+3zc zl;`xQf`Ou@pB_~>P*k-Fyb%=I4`YK7-Vr zb4eW?PD6rHk zT`Q|;XVY9da?=&`_TD&689$t6Rg5G5rIRVTs+yX8in`Y-+MQK&_%=n;$Brg%*#x?3 zdO2n0&7f6f!zo@hhPE!4NImPO(fnC%T73Bos#`LLn%6I)jj1}?c0)7u?AuJop1p^* zCrha7$}v<_R74|(o?u|4oGmH-HviI|BC%M)ve}OVhM4h|#QTGEqbnAg<>8_`bkte-{F4?r3{P!NF z<&Pet+S*!rlb2FC_@wvAI;QB2C++#Y!S~lkweusWpR*78l*SKglll*9(}_R4KY!_7 z5qO4^$RTeY`O>Z5o!QQG)WL;NB;MHA)*6-9NoYef9&5@kgLd9ZOb@)p9;$O{=qGYCo}f62w!n<6NU z>+1Eo0^N;4EnBmY{7^V|%B(hP^vjDXUNgwl+H(#UsM zaNcQSpfvK0Ih?&YA4)S8N;3{hHk zY2?4z;rxx@A}GyNC`~z(W*U^n1*LIAX)2&Jl~9^0D2)e7GaX7(4W+4p(#(L;Tnwd| z38k3@rI`(-xdcjcDU_xbN;3yaa~YIoE|g{-lx9AZ=5i>_0w~QwD2*3N!$181=sO;M zC`|xL!#`^T=uVTL+=BC+!o^UUB~Y5BP?}{>n&nWM6;PU$P?}Xxnk%3*tD!V&pfq(* znk%6+S3zmkLTT1PX+lt%^-!8Hl%^g^(*UK3Kxv{-nnoy13`)}krHMmnu7=VyLunFF znieQc5=xVT(xjm@AA{0lpfs&enk44I7LTNTaX+936>4MUH0!niY zl;&C}%_pHW*FkAEL20_7G}l9EZh+EkhSJ;!rMU@8vjs|XGnD2QD9xv!G+UuGw?b)d zgVJn+(%cTE*$$<-14^?4O7m$b%}yxIE-1~NP@21-G@pUed=^S`H~z6iV|=D9v+Fnr}gAo`=$W8%pyXD9sB{n(snsUWC$o4@&bAl;-KD=dk3xN7C9ty-$C1w@sA!s|K&H(Mu8 zM3b%hBArQHt>g8=HKy7nMU`g|{}~FWqnT`5CTc?}JbEVeiEtzuO6oqRRGhpa7v&I= zz89e{8smu;eG% From<&'a comp::quadruped_medium::Body> for SkeletonAttr { use comp::quadruped_medium::Species::*; Self { head_upper: match (body.species, body.body_type) { - (Grolgar, _) => (12.0, 16.0), + (Grolgar, _) => (*HEAD_UPPER_Y, *HEAD_UPPER_Z), (Saber, _) => (-11.0, -3.0), (Tuskram, _) => (9.0, 12.0), (Lion, _) => (12.0, 2.0), @@ -203,7 +203,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tiger, _) => (2.0, 1.0), }, head_lower: match (body.species, body.body_type) { - (Grolgar, _) => (-4.0, -7.0), + (Grolgar, _) => (*HEAD_LOWER_Y, *HEAD_LOWER_Z), (Saber, _) => (1.0, 0.0), (Tuskram, _) => (-3.0, -1.0), (Lion, _) => (0.5, 1.0), @@ -212,7 +212,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tiger, _) => (-5.0, -6.0), }, jaw: match (body.species, body.body_type) { - (Grolgar, _) => (3.0, -5.0), + (Grolgar, _) => (*JAW_Y, *JAW_Z), (Saber, _) => (18.0, -1.0), (Tuskram, _) => (2.0, -2.0), (Lion, _) => (0.0, -4.5), @@ -220,7 +220,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tiger, _) => (7.0, -4.0), }, tail: match (body.species, body.body_type) { - (Grolgar, _) => (-6.0, -2.0), + (Grolgar, _) => (*TAIL_Y, *TAIL_Z), (Saber, _) => (-6.0, 1.0), (Tuskram, _) => (-6.0, -2.0), (Lion, _) => (-6.0, 1.0), @@ -228,7 +228,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tiger, _) => (-6.5, -7.0), }, torso_front: match (body.species, body.body_type) { - (Grolgar, _) => (-7.0, 10.5), + (Grolgar, _) => (*TORSO_FRONT_Y, *TORSO_FRONT_Z), (Saber, _) => (14.0, 13.0), (Tuskram, _) => (-7.0, 9.0), (Lion, _) => (0.0, 13.0), @@ -236,7 +236,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tiger, _) => (10.0, 12.0), }, torso_back: match (body.species, body.body_type) { - (Grolgar, _) => (4.0, 11.0), + (Grolgar, _) => (*TORSO_BACK_Y, *TORSO_BACK_Z), (Saber, _) => (-19.5, 0.0), (Tuskram, _) => (4.0, 9.0), (Lion, _) => (-19.0, -1.0), @@ -244,7 +244,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tiger, _) => (-19.0, 0.0), }, ears: match (body.species, body.body_type) { - (Grolgar, _) => (-1.0, 5.0), + (Grolgar, _) => (*EARS_Y, *EARS_Z), (Saber, _) => (13.0, 7.0), (Tuskram, _) => (10.0, 2.0), (Lion, _) => (-8.0, 4.5), @@ -252,7 +252,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tiger, _) => (2.5, 5.0), }, leg_f: match (body.species, body.body_type) { - (Grolgar, _) => (5.0, 6.0, 2.0), + (Grolgar, _) => (*LEG_FRONT_X, *LEG_FRONT_Y, *LEG_FRONT_Z), (Saber, _) => (7.0, -7.5, -3.5), (Tuskram, _) => (4.0, 6.0, 4.5), (Lion, _) => (7.5, -4.5, -6.0), @@ -260,7 +260,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tiger, _) => (7.0, -2.0, -1.0), }, leg_b: match (body.species, body.body_type) { - (Grolgar, _) => (5.0, -4.0, 3.0), + (Grolgar, _) => (*LEG_BACK_X, *LEG_BACK_Y, *LEG_BACK_Z), (Saber, _) => (6.0, -1.0, -4.0), (Tuskram, _) => (4.0, -8.0, 5.5), (Lion, _) => (6.0, 0.0, -2.0), @@ -268,7 +268,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tiger, _) => (7.0, -2.0, -1.0), }, feet_f: match (body.species, body.body_type) { - (Grolgar, _) => (5.0, 6.0, 2.0), + (Grolgar, _) => (*FEET_FRONT_X, *FEET_FRONT_Y, *FEET_FRONT_Z), (Saber, _) => (1.0, 3.0, -1.0), (Tuskram, _) => (4.0, 6.0, 4.5), (Lion, _) => (0.0, 2.0, -4.5), @@ -276,7 +276,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tiger, _) => (1.0, 0.0, -5.0), }, feet_b: match (body.species, body.body_type) { - (Grolgar, _) => (5.0, -4.0, 3.0), + (Grolgar, _) => (*FEET_BACK_X, *FEET_BACK_Y, *FEET_BACK_Z), (Saber, _) => (1.0, 0.0, 0.0), (Tuskram, _) => (4.0, -8.0, 5.5), (Lion, _) => (0.5, 0.5, -4.0), From 32ec72cc3a3c861002e3e7a357c380c1b50e0353 Mon Sep 17 00:00:00 2001 From: Snowram Date: Wed, 17 Jun 2020 01:02:00 +0200 Subject: [PATCH 20/48] Add tortoise mob --- assets/common/npc_names.json | 4 ++ .../voxel/npc/tortoise/female/chest.vox | Bin 0 -> 68715 bytes .../voxel/npc/tortoise/female/foot_bl.vox | Bin 0 -> 1580 bytes .../voxel/npc/tortoise/female/foot_br.vox | Bin 0 -> 56063 bytes .../voxel/npc/tortoise/female/foot_fl.vox | Bin 0 -> 1624 bytes .../voxel/npc/tortoise/female/foot_fr.vox | Bin 0 -> 56107 bytes .../voxel/npc/tortoise/female/head_lower.vox | Bin 0 -> 1428 bytes .../voxel/npc/tortoise/female/head_upper.vox | Bin 0 -> 1792 bytes .../voxygen/voxel/npc/tortoise/female/jaw.vox | Bin 0 -> 1220 bytes .../voxel/npc/tortoise/female/tail_front.vox | Bin 0 -> 55719 bytes .../voxel/npc/tortoise/female/tail_rear.vox | Bin 0 -> 1100 bytes .../voxygen/voxel/npc/tortoise/male/chest.vox | Bin 0 -> 68715 bytes .../voxel/npc/tortoise/male/foot_bl.vox | Bin 0 -> 1580 bytes .../voxel/npc/tortoise/male/foot_br.vox | Bin 0 -> 56063 bytes .../voxel/npc/tortoise/male/foot_fl.vox | Bin 0 -> 1624 bytes .../voxel/npc/tortoise/male/foot_fr.vox | Bin 0 -> 56107 bytes .../voxel/npc/tortoise/male/head_lower.vox | Bin 0 -> 1428 bytes .../voxel/npc/tortoise/male/head_upper.vox | Bin 0 -> 1792 bytes .../voxygen/voxel/npc/tortoise/male/jaw.vox | Bin 0 -> 1220 bytes .../voxel/npc/tortoise/male/tail_front.vox | Bin 0 -> 55719 bytes .../voxel/npc/tortoise/male/tail_rear.vox | Bin 0 -> 1100 bytes .../voxel/quadruped_low_central_manifest.ron | 52 ++++++++++++++++++ .../voxel/quadruped_low_lateral_manifest.ron | 36 ++++++++++++ common/src/comp/body/quadruped_low.rs | 6 +- voxygen/src/anim/quadruped_low/mod.rs | 9 +++ 25 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 assets/voxygen/voxel/npc/tortoise/female/chest.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/female/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/female/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/female/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/female/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/female/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/female/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/female/jaw.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/female/tail_front.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/female/tail_rear.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/male/chest.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/male/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/male/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/male/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/male/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/male/tail_front.vox create mode 100644 assets/voxygen/voxel/npc/tortoise/male/tail_rear.vox diff --git a/assets/common/npc_names.json b/assets/common/npc_names.json index f96b41d228..1cddc0f846 100644 --- a/assets/common/npc_names.json +++ b/assets/common/npc_names.json @@ -581,6 +581,10 @@ "asp": { "keyword": "asp", "generic": "Asp" + }, + "tortoise": { + "keyword": "tortoise", + "generic": "Tortoise" } } } diff --git a/assets/voxygen/voxel/npc/tortoise/female/chest.vox b/assets/voxygen/voxel/npc/tortoise/female/chest.vox new file mode 100644 index 0000000000000000000000000000000000000000..a9a63264b53b766a10af374ff0800165e08bab5c GIT binary patch literal 68715 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 N`R@G-7erv^HvmBc<}3gJ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tortoise/female/foot_bl.vox b/assets/voxygen/voxel/npc/tortoise/female/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..b26692414af2a16829a8580224383e4edc540a21 GIT binary patch literal 1580 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tortoise/female/foot_fl.vox b/assets/voxygen/voxel/npc/tortoise/female/foot_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..3a88cca7212daff466fa57b22d59c0a55f138ecb GIT binary patch literal 1624 zcmeHFU29!M6y3A;%-o`q7SU=0VhAxcv?Ao5b8;JFlS*5?gqmP&NN-FEmYa`i5WnCS zYaq7eqHU}X5_5wR`%pp*1qpfa>!FlB6oOAdgb1SOi-=Ex;LCEIAc8+Za9}aBKh|1% z=A5B{;g)$3Id-W0G&eaMMUIy%NAAi4t^%>+Zw#NTl<(0zD{_HwUJ_@Lc^6afLKZY8 zK||twNX=s685`k^b?-B8A@%ArBfPRlL#FCeE_C)l8WS64M|B&P+~lNpyuYx|kVfHE)7~plpG`1 z^0^~5oH1{lwUCH+r9e;F*5rGbD`_x#7=3vsLW8G%em~=^jJMCsnWv_wKVf`N#;V5m zr8fIK`@Bk*1XmI-T`syVA6>~Q_rN%ZN=eycgjaeO9Q&Ay%yIXgFewS)IjfQHE$2IO z*iSt39ZXdouC-U`@u>OhQ>U0YRS{?*W3T}%5 zgU12Z?i;J2{tJ&k0M(CyEV+h<_nwB2HAw77A7xJEtzQ5~PXVout>Q2xW&RlU;|dne z6j9l|8}APbUh5Z(6$Ov9>_GRvJCU~Ef%-@@@CpeZzKr4hf|;2;cwz8vTpGO}6Qdc* z^N*wb++GMgn%-(c(>qPrd8G|9v=cJs@!YiF?8Z2ry-EE|!3lQO*9GTRI?(lfKk(UU ztgQ{;4~+A+?ZD51jq8Hz?7h4~-){xKBL!}r0e&0=Ztz0CjRH%(z=ck{`TTiYdg?uV z{^(b@D!-!90I@+dh;cMJCvfZF0`U5mxY*15t_Et=1};yseqGv{$|u?s78)^1n%;FGA=>*#xX9j|`0j=tGh9Gw_Kxm-rE zSVVJkGe$;g7#OIbx3`9ljvDqf^Sjs>Ha9o1y1KfJrKKgz&CQ`!tD#!0{)=BJj^pCU r8(5fp7oVQJhOH02#@5!>Km4Aa9#kq7OifK;d3l+?g#3^H&Kt;I4$kZ& literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tortoise/female/foot_fr.vox b/assets/voxygen/voxel/npc/tortoise/female/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..7f6969138789fb0d017d58d4693dee83ebef4475 GIT binary patch literal 56107 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tortoise/female/jaw.vox b/assets/voxygen/voxel/npc/tortoise/female/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..4dfd85efded17f4927694f29f52c0cf54ca42c83 GIT binary patch literal 1220 zcmeH_%S%*o6vxlKGg(xq1X&J*A~q%(fs@b7(MW3$8_AS$%n^ziA2mcTxROa`GL)Jv z!W=2gg@}nD;-=R^#Dy@lk_aYXly!EGZpoQ?X};uz3QgjYtJ#I)G(w}3@J0!8)B5{LCOr}^oe6N+OuhE z`vly=Y}TnH0dFb7wo9V=GhsTKjXygJT7`9SKw}fAwkKo}`>Nqb2tS3A z!!sPnJC8HPLQ?9f)-fG+=}V~VfSe=q9M_RD-asK^O!RmNW@PX%AY7{#LLT8@_BJXC zc2MlzPOQxZSG3{rWdemle}5(y8h0_=zL(DS5`5!FarfmRI7z*oO6t8-(#CR;mNX>f zlzym(=jT~k^7E63-qsCYgv5fdptU1&y6-#T2gR`3 z1D_gUMKAQd9j3f+r-+;91{ps2fER~eGcDhU$59eWT!|1b>SV2I0eX6=I7@(nVOnnbaWKU zvIvL6fAt4F5r*1sFwu3N#oif`kKT|>CjazTR#p-W2I=nZW_ET~e+l`|zw-w28-pCv AqW}N^ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tortoise/female/tail_front.vox b/assets/voxygen/voxel/npc/tortoise/female/tail_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..0a751e7ed3b674715280d6cb6303c407d53d2889 GIT binary patch literal 55719 zcmeI*dvp|69S88co6VMj2CSBrXzdDVC<5v1D**}wkXOnhF+2=OlX0^( zQWPl07E;hwO0YGcVx$qRNUMEI5fzQ~6>Dp%wYBw8YkgI#_3`um?kt<8~Zs0A9LJ=SUp=TYnn@Qxf2^!*S(F; z%ZsU&;shjn8psJrRf-T+w)d;ZfW;CdxfJil;ax$}>8OXEY|tJ37iS zUX*Wi6wi80F8}B#=Xg<-qoeqy8k4Jvqv}^JTPklMwVk^{Uj1@Gz4PZ&*YxRhY3T}Bq=B*d3Ej)bS&GL8~e`i|4pGlS%C z=14f#&=Q$O=g^0UR_a94ukEAdGNm}Qj^@w-I=t0OjZ>%69SwrAYXr4;12Bw8GFeOypSf0#C&mH7t*ZIY3lrv>deF^j66T|@LhkWQVdrPnAduS_}7i-P)3 z3OXrc_n(mCJ|*Z?l1p%QE79|HL}w)Em1d%zYNDGxbW`gd+PC^3J$TI{bWFTV-Q6Th zzbxIdgsIyTp>vB56SY4~d#h#ply1ry-LyX{&#%};@pzo%P{hk1UMIR#&X4+K*~ASF zDl03a7h*(HY)44!+(V0xRMCk}dG5R+FL;zXJ3DE~EvG4S_i0+PYZtAIY^Iu;8uEI* zR9ad}O-(tft<6z&b&h7u%F(n^xh_R5G%zqgeSLkZ^z`&lS63J1ayc>#V?_T(ZF$7%4+CuneRu+V?u!iCh>*hr>nQg3fBKgRzrZ=7o&zbtKB`?&QgP;U$V zvZUUf*^ZPkL00sT84kB+41S&H+YK`k&GK8t%`YK6ootUp`30y|xK*!A$_QF@zv{qs zJ(X|aSB`Eb(^l21s)4LZr*WGe(YS4{R^hj*ZYy%0RoiaWs?QY#s#H$7nEi?lx7B$rVL7R6_lnNN;4Bmb2XG^7L?}QP#XScb~t|{m;W-*ke z8cMSSO0yJ7vkXe}9w^OnD9s8e%}OZEDk#lrC`}EN<~k_N8YsC%(rkg!G(u^bpfuM*X_}!lEl?UAO7ngw zO#n*M3Z)4`X+lsM14w4S4k*nBpfoo^X?8$qZi3S6gwlKvO7kHo%`Pa-ZYa$j zD9z1Kn!Qk(4?}4>p)?} zfYN*%N^=NGb0?JMFqEbnN^=BC^9d-;T~M04p){X_()2)SjzVdUL1{h(rTH|J<}*;5 z<4~HD}!%&(>pfry{X&!^pd<{x-21@fdl;$jy=IccXHc4-LusCc()p){{RY5oAE`6HC(Pf(gaLuvj3rFj)f^H(U%-=H+F zL23RDrTGVx=5;8|KcO`Lg3|mOO7kBm4MAyy?T!Awm8NT#T{lCn32$~;ie=HW9Vx@X z2S#F>YKSL8hNKFO!%ca>n^TsN;btPtIdro~e%30gRHbc_ta$u>SH5sJJ&=gR4DRgL zTz*Yu38akx52{sYRjMImX4(paR>?EGapsYOwkOR0Jt)t6u1YXo3bQq4rQqS*N}f(; z3u7P6cbp*iBgYP8lMKttHC@12OC7zesk{1DTW&wC)XFUp*U58<}V_rY@sY^c^6(Ssvu0aa7;Q7g%P+%EZ{ItPtd Ij04>N1>yL$w*UYD literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tortoise/female/tail_rear.vox b/assets/voxygen/voxel/npc/tortoise/female/tail_rear.vox new file mode 100644 index 0000000000000000000000000000000000000000..7a7c35c27ca4b0433c2d19d851a961e32c702dce GIT binary patch literal 1100 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 N`R@G-7erv^HvmBc<}3gJ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tortoise/male/foot_bl.vox b/assets/voxygen/voxel/npc/tortoise/male/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..b26692414af2a16829a8580224383e4edc540a21 GIT binary patch literal 1580 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tortoise/male/foot_fl.vox b/assets/voxygen/voxel/npc/tortoise/male/foot_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..3a88cca7212daff466fa57b22d59c0a55f138ecb GIT binary patch literal 1624 zcmeHFU29!M6y3A;%-o`q7SU=0VhAxcv?Ao5b8;JFlS*5?gqmP&NN-FEmYa`i5WnCS zYaq7eqHU}X5_5wR`%pp*1qpfa>!FlB6oOAdgb1SOi-=Ex;LCEIAc8+Za9}aBKh|1% z=A5B{;g)$3Id-W0G&eaMMUIy%NAAi4t^%>+Zw#NTl<(0zD{_HwUJ_@Lc^6afLKZY8 zK||twNX=s685`k^b?-B8A@%ArBfPRlL#FCeE_C)l8WS64M|B&P+~lNpyuYx|kVfHE)7~plpG`1 z^0^~5oH1{lwUCH+r9e;F*5rGbD`_x#7=3vsLW8G%em~=^jJMCsnWv_wKVf`N#;V5m zr8fIK`@Bk*1XmI-T`syVA6>~Q_rN%ZN=eycgjaeO9Q&Ay%yIXgFewS)IjfQHE$2IO z*iSt39ZXdouC-U`@u>OhQ>U0YRS{?*W3T}%5 zgU12Z?i;J2{tJ&k0M(CyEV+h<_nwB2HAw77A7xJEtzQ5~PXVout>Q2xW&RlU;|dne z6j9l|8}APbUh5Z(6$Ov9>_GRvJCU~Ef%-@@@CpeZzKr4hf|;2;cwz8vTpGO}6Qdc* z^N*wb++GMgn%-(c(>qPrd8G|9v=cJs@!YiF?8Z2ry-EE|!3lQO*9GTRI?(lfKk(UU ztgQ{;4~+A+?ZD51jq8Hz?7h4~-){xKBL!}r0e&0=Ztz0CjRH%(z=ck{`TTiYdg?uV z{^(b@D!-!90I@+dh;cMJCvfZF0`U5mxY*15t_Et=1};yseqGv{$|u?s78)^1n%;FGA=>*#xX9j|`0j=tGh9Gw_Kxm-rE zSVVJkGe$;g7#OIbx3`9ljvDqf^Sjs>Ha9o1y1KfJrKKgz&CQ`!tD#!0{)=BJj^pCU r8(5fp7oVQJhOH02#@5!>Km4Aa9#kq7OifK;d3l+?g#3^H&Kt;I4$kZ& literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tortoise/male/foot_fr.vox b/assets/voxygen/voxel/npc/tortoise/male/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..7f6969138789fb0d017d58d4693dee83ebef4475 GIT binary patch literal 56107 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tortoise/male/jaw.vox b/assets/voxygen/voxel/npc/tortoise/male/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..4dfd85efded17f4927694f29f52c0cf54ca42c83 GIT binary patch literal 1220 zcmeH_%S%*o6vxlKGg(xq1X&J*A~q%(fs@b7(MW3$8_AS$%n^ziA2mcTxROa`GL)Jv z!W=2gg@}nD;-=R^#Dy@lk_aYXly!EGZpoQ?X};uz3QgjYtJ#I)G(w}3@J0!8)B5{LCOr}^oe6N+OuhE z`vly=Y}TnH0dFb7wo9V=GhsTKjXygJT7`9SKw}fAwkKo}`>Nqb2tS3A z!!sPnJC8HPLQ?9f)-fG+=}V~VfSe=q9M_RD-asK^O!RmNW@PX%AY7{#LLT8@_BJXC zc2MlzPOQxZSG3{rWdemle}5(y8h0_=zL(DS5`5!FarfmRI7z*oO6t8-(#CR;mNX>f zlzym(=jT~k^7E63-qsCYgv5fdptU1&y6-#T2gR`3 z1D_gUMKAQd9j3f+r-+;91{ps2fER~eGcDhU$59eWT!|1b>SV2I0eX6=I7@(nVOnnbaWKU zvIvL6fAt4F5r*1sFwu3N#oif`kKT|>CjazTR#p-W2I=nZW_ET~e+l`|zw-w28-pCv AqW}N^ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tortoise/male/tail_front.vox b/assets/voxygen/voxel/npc/tortoise/male/tail_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..0a751e7ed3b674715280d6cb6303c407d53d2889 GIT binary patch literal 55719 zcmeI*dvp|69S88co6VMj2CSBrXzdDVC<5v1D**}wkXOnhF+2=OlX0^( zQWPl07E;hwO0YGcVx$qRNUMEI5fzQ~6>Dp%wYBw8YkgI#_3`um?kt<8~Zs0A9LJ=SUp=TYnn@Qxf2^!*S(F; z%ZsU&;shjn8psJrRf-T+w)d;ZfW;CdxfJil;ax$}>8OXEY|tJ37iS zUX*Wi6wi80F8}B#=Xg<-qoeqy8k4Jvqv}^JTPklMwVk^{Uj1@Gz4PZ&*YxRhY3T}Bq=B*d3Ej)bS&GL8~e`i|4pGlS%C z=14f#&=Q$O=g^0UR_a94ukEAdGNm}Qj^@w-I=t0OjZ>%69SwrAYXr4;12Bw8GFeOypSf0#C&mH7t*ZIY3lrv>deF^j66T|@LhkWQVdrPnAduS_}7i-P)3 z3OXrc_n(mCJ|*Z?l1p%QE79|HL}w)Em1d%zYNDGxbW`gd+PC^3J$TI{bWFTV-Q6Th zzbxIdgsIyTp>vB56SY4~d#h#ply1ry-LyX{&#%};@pzo%P{hk1UMIR#&X4+K*~ASF zDl03a7h*(HY)44!+(V0xRMCk}dG5R+FL;zXJ3DE~EvG4S_i0+PYZtAIY^Iu;8uEI* zR9ad}O-(tft<6z&b&h7u%F(n^xh_R5G%zqgeSLkZ^z`&lS63J1ayc>#V?_T(ZF$7%4+CuneRu+V?u!iCh>*hr>nQg3fBKgRzrZ=7o&zbtKB`?&QgP;U$V zvZUUf*^ZPkL00sT84kB+41S&H+YK`k&GK8t%`YK6ootUp`30y|xK*!A$_QF@zv{qs zJ(X|aSB`Eb(^l21s)4LZr*WGe(YS4{R^hj*ZYy%0RoiaWs?QY#s#H$7nEi?lx7B$rVL7R6_lnNN;4Bmb2XG^7L?}QP#XScb~t|{m;W-*ke z8cMSSO0yJ7vkXe}9w^OnD9s8e%}OZEDk#lrC`}EN<~k_N8YsC%(rkg!G(u^bpfuM*X_}!lEl?UAO7ngw zO#n*M3Z)4`X+lsM14w4S4k*nBpfoo^X?8$qZi3S6gwlKvO7kHo%`Pa-ZYa$j zD9z1Kn!Qk(4?}4>p)?} zfYN*%N^=NGb0?JMFqEbnN^=BC^9d-;T~M04p){X_()2)SjzVdUL1{h(rTH|J<}*;5 z<4~HD}!%&(>pfry{X&!^pd<{x-21@fdl;$jy=IccXHc4-LusCc()p){{RY5oAE`6HC(Pf(gaLuvj3rFj)f^H(U%-=H+F zL23RDrTGVx=5;8|KcO`Lg3|mOO7kBm4MAyy?T!Awm8NT#T{lCn32$~;ie=HW9Vx@X z2S#F>YKSL8hNKFO!%ca>n^TsN;btPtIdro~e%30gRHbc_ta$u>SH5sJJ&=gR4DRgL zTz*Yu38akx52{sYRjMImX4(paR>?EGapsYOwkOR0Jt)t6u1YXo3bQq4rQqS*N}f(; z3u7P6cbp*iBgYP8lMKttHC@12OC7zesk{1DTW&wC)XFUp*U58<}V_rY@sY^c^6(Ssvu0aa7;Q7g%P+%EZ{ItPtd Ij04>N1>yL$w*UYD literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tortoise/male/tail_rear.vox b/assets/voxygen/voxel/npc/tortoise/male/tail_rear.vox new file mode 100644 index 0000000000000000000000000000000000000000..7a7c35c27ca4b0433c2d19d851a961e32c702dce GIT binary patch literal 1100 zcmeH_-AmJ96vvM^L@K5PSq`EhYbF|jOU*K;k=78KWXjxfLbCZ%BYK0MWP+LeC|!0D z=A>9&$gm-Zc+=a3h!?`>YDBOgin@vDDhRsybY>9sCj=e%@|@?K^F8M|=RBQWpM6?H zS{ps5^pHaqk#>*2X4wrAG%DDwIV1vs_cz6k4 zg)lNw%=xzMOmy#}ue%!0^iiC{r3eFq8^&W=->_g$|80 zSA^k(GHTwnz|&rqm%V%^tlc`{laN{z7BzNqLF>K|zEK5hgYcmZR<)t8-4J)ftx9g3 z8)M?+J)RwS$((#47DJIz#1vs-m3^$&&%m`8jJwrd7{ds~nCw@7( { pub salamander: SpeciesMeta, pub monitor: SpeciesMeta, pub asp: SpeciesMeta, + pub tortoise: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -57,16 +59,18 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Salamander => &self.salamander, Species::Monitor => &self.monitor, Species::Asp => &self.asp, + Species::Tortoise => &self.tortoise, } } } -pub const ALL_SPECIES: [Species; 5] = [ +pub const ALL_SPECIES: [Species; 6] = [ Species::Crocodile, Species::Alligator, Species::Salamander, Species::Monitor, Species::Asp, + Species::Tortoise, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/voxygen/src/anim/quadruped_low/mod.rs b/voxygen/src/anim/quadruped_low/mod.rs index cf6b403b44..b66d1cea62 100644 --- a/voxygen/src/anim/quadruped_low/mod.rs +++ b/voxygen/src/anim/quadruped_low/mod.rs @@ -132,6 +132,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (3.0, 1.0), (Monitor, _) => (3.5, 2.0), (Asp, _) => (6.0, 5.5), + (Tortoise, _) => (5.0, 1.0), }, head_lower: match (body.species, body.body_type) { (Crocodile, _) => (8.0, 0.0), @@ -139,6 +140,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (10.0, 2.0), (Monitor, _) => (10.0, 3.0), (Asp, _) => (9.0, 2.5), + (Tortoise, _) => (12.0, -3.5), }, jaw: match (body.species, body.body_type) { (Crocodile, _) => (0.0, -3.0), @@ -146,6 +148,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (2.0, -3.0), (Monitor, _) => (0.0, -1.0), (Asp, _) => (1.0, -2.0), + (Tortoise, _) => (0.5, -2.0), }, chest: match (body.species, body.body_type) { (Crocodile, _) => (0.0, 5.0), @@ -153,6 +156,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (0.0, 5.0), (Monitor, _) => (0.0, 5.0), (Asp, _) => (0.0, 8.0), + (Tortoise, _) => (0.0, 11.0), }, tail_rear: match (body.species, body.body_type) { (Crocodile, _) => (-12.5, -1.0), @@ -160,6 +164,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (-9.0, 0.0), (Monitor, _) => (-12.0, 0.0), (Asp, _) => (-14.0, -2.0), + (Tortoise, _) => (-7.0, -1.5), }, tail_front: match (body.species, body.body_type) { (Crocodile, _) => (-6.0, 0.0), @@ -167,6 +172,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (-7.5, 0.0), (Monitor, _) => (-6.5, 0.0), (Asp, _) => (-6.0, -2.0), + (Tortoise, _) => (-13.5, -3.0), }, feet_f: match (body.species, body.body_type) { (Crocodile, _) => (6.0, 6.0, -1.0), @@ -174,6 +180,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (6.0, 6.0, -2.0), (Monitor, _) => (6.0, 6.0, 0.0), (Asp, _) => (6.5, 6.0, -1.0), + (Tortoise, _) => (8.5, 9.5, -3.0), }, feet_b: match (body.species, body.body_type) { (Crocodile, _) => (6.0, -6.0, -1.0), @@ -181,6 +188,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (6.0, -6.0, -2.0), (Monitor, _) => (6.0, -6.0, 0.0), (Asp, _) => (6.5, -3.5, -1.0), + (Tortoise, _) => (8.0, -8.5, -3.0), }, height: match (body.species, body.body_type) { (Crocodile, _) => (1.0), @@ -188,6 +196,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (1.0), (Monitor, _) => (1.0), (Asp, _) => (1.0), + (Tortoise, _) => (1.0), }, } } From a3a55f5bb288ff8e3777c26e7cc508ec9cc5195f Mon Sep 17 00:00:00 2001 From: Snowram Date: Thu, 18 Jun 2020 01:13:33 +0200 Subject: [PATCH 21/48] Add rock snapper mob --- assets/common/npc_names.json | 4 ++ .../voxel/npc/rocksnapper/female/chest.vox | Bin 0 -> 39944 bytes .../voxel/npc/rocksnapper/female/foot_bl.vox | Bin 0 -> 2124 bytes .../voxel/npc/rocksnapper/female/foot_br.vox | Bin 0 -> 2124 bytes .../voxel/npc/rocksnapper/female/foot_fl.vox | Bin 0 -> 2188 bytes .../voxel/npc/rocksnapper/female/foot_fr.vox | Bin 0 -> 2188 bytes .../npc/rocksnapper/female/head_lower.vox | Bin 0 -> 2360 bytes .../npc/rocksnapper/female/head_upper.vox | Bin 0 -> 1708 bytes .../voxel/npc/rocksnapper/female/jaw.vox | Bin 0 -> 2016 bytes .../npc/rocksnapper/female/tail_front.vox | Bin 0 -> 2052 bytes .../npc/rocksnapper/female/tail_rear.vox | Bin 0 -> 1272 bytes .../voxel/npc/rocksnapper/male/chest.vox | Bin 0 -> 39944 bytes .../voxel/npc/rocksnapper/male/foot_bl.vox | Bin 0 -> 2124 bytes .../voxel/npc/rocksnapper/male/foot_br.vox | Bin 0 -> 2124 bytes .../voxel/npc/rocksnapper/male/foot_fl.vox | Bin 0 -> 2188 bytes .../voxel/npc/rocksnapper/male/foot_fr.vox | Bin 0 -> 2188 bytes .../voxel/npc/rocksnapper/male/head_lower.vox | Bin 0 -> 2360 bytes .../voxel/npc/rocksnapper/male/head_upper.vox | Bin 0 -> 1708 bytes .../voxel/npc/rocksnapper/male/jaw.vox | Bin 0 -> 2016 bytes .../voxel/npc/rocksnapper/male/tail_front.vox | Bin 0 -> 2052 bytes .../voxel/npc/rocksnapper/male/tail_rear.vox | Bin 0 -> 1272 bytes .../voxel/npc/tortoise/female/chest.vox | Bin 68715 -> 14232 bytes .../voxel/npc/tortoise/female/foot_br.vox | Bin 56063 -> 1580 bytes .../voxel/npc/tortoise/female/foot_fr.vox | Bin 56107 -> 1624 bytes .../voxel/npc/tortoise/female/tail_front.vox | Bin 55719 -> 1236 bytes .../voxel/npc/tortoise/female/tail_rear.vox | Bin 1100 -> 1096 bytes .../voxygen/voxel/npc/tortoise/male/chest.vox | Bin 68715 -> 14232 bytes .../voxel/npc/tortoise/male/foot_br.vox | Bin 56063 -> 1580 bytes .../voxel/npc/tortoise/male/foot_fr.vox | Bin 56107 -> 1624 bytes .../voxel/npc/tortoise/male/tail_front.vox | Bin 55719 -> 1236 bytes .../voxel/npc/tortoise/male/tail_rear.vox | Bin 1100 -> 1096 bytes .../voxel/quadruped_low_central_manifest.ron | 52 ++++++++++++++++++ .../voxel/quadruped_low_lateral_manifest.ron | 36 ++++++++++++ common/src/comp/body/quadruped_low.rs | 6 +- voxygen/src/anim/quadruped_low/mod.rs | 9 +++ 35 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/chest.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/jaw.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/tail_front.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/tail_rear.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/male/chest.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/male/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/male/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/male/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/male/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/male/tail_front.vox create mode 100644 assets/voxygen/voxel/npc/rocksnapper/male/tail_rear.vox diff --git a/assets/common/npc_names.json b/assets/common/npc_names.json index 1cddc0f846..270d5179ac 100644 --- a/assets/common/npc_names.json +++ b/assets/common/npc_names.json @@ -585,6 +585,10 @@ "tortoise": { "keyword": "tortoise", "generic": "Tortoise" + }, + "rocksnapper": { + "keyword": "rocksnapper", + "generic": "Rock Snapper" } } } diff --git a/assets/voxygen/voxel/npc/rocksnapper/female/chest.vox b/assets/voxygen/voxel/npc/rocksnapper/female/chest.vox new file mode 100644 index 0000000000000000000000000000000000000000..4527c0dbaa836c95f9f69e9837c0065bd974afb2 GIT binary patch literal 39944 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

`?lY)Ya+9 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%0Ad&l3xn80X_(9ZVeCB#s2VXy=~y*dRwJVIr0M| zS-q+!TyP2pHmt%a4Cb=I#lFhDb$D*Q{a4s~(9789wdimP104uO7m7V|z0tKhoWjmL z2KpD|t+MM+_D{vHvUv?oNP{oakjskv4Y+@ecRP;euf{3tjDNr>?AgH)hh(yLfqe>W zQec~+o}I|=26iaOZ3XtO!^La$cEr+qguBw?6!wKv$hURw8RU(w;^H9p7397$UsvH2 zj^6haN{&+hQWVoizC5s9LoZjZ&u^6bYHqzr*Lqso=@uwr%*p%gHu@J6xOcQ;1pK;TwQ#jaaA~lL0)f?*Nd=7 z)N2>@;q`pLsL!~@`-^bPfKS-l24k*_uOg>coWfcRe$lf~;S|>7x5g>#aS9{cllAuv zxP+s8VehjR)7SKV@^^z%Sh;qCQ#i>b4rHO0FYJ9*IE9hFuUs$cMT~laBR@Fe6b{yP zWKTz&!if#7a0;hYj|6=h$Vty<4LF5O!E5Gtz$t9t!?D;6pRIoR)^B~8XPm-Gk3@@8 z7>%_rIB45nTlOxny)9eU;uN-cJS|RPYb-5JVT)53^zNy2q!yE%D?vg_<%=lBYzu)`_ra0)y95FPpLa0+|(9&EjFRB{f3&jwDda0)AVf(FhV@#{LA z!Wv%c=|cS1E;cJ`FuzS?xh~k2A8E;Yke97-3I}7U?61nToLAu#Ryc)|oNeT5qQ20q zuXQN8Wez9$64eoVoWk_i{yyHDAL(D4_+8xbPaRxrQ2c@ZwO(E;t;@$GubcRVtdFgC z%z#rkut8ZLTjxGmPj7UOkv;A0AACmrtGU#gp2Zn#&`77VI$l1-N1VdMzE}8!wJnxBP0?2z#2TkCd5^$keLK3|;S_e}rEbWttuvm^ znogdpFV`*OF8P0)!Wu@b^?pU1#tNq};>LDt%BY{}ic{F~&x7$seZ9SN2KQ+B>XvWl z*sMtBE1bg2M>c9f5f8IvBO}g7$KLfgg`<0Rbhl$KI(ib}gorQFk?GbpxmIJ0jWI_( z@T2>T?lTtIbbMEIt*kpgH_4}W^sQs>I(pyH{Ik!gNe;*U2|f?qn`DVU2a`x`bS5Lou*%GTP!xT z{irI5=*SXcTVs@<63R;AJ((s!)x5Z3r=B;OK`;%yy6sAIE9t{ zSDeBQr*On69LQUTQ`q4YUdnMeg%_N{;CjJ0gE4nFg*8rLIN%R+8TjQEr|{a?XU?uT zg*8s$6{qlua}wnmE;xl1taVlAxcYp;DUAGA3j;JTN>i`^o=SsLc*Rwz*{0eYH`c!L zS^0Y+7mfS1IE6J%VFz<{Y*AP67mh`TQ`oCvwAMCGWJrD^$}!}^Q_*vq^}%NSo`V|3 z=(sCR;mFTrJ)=Xx!+2m7PGMj674C?>)2ui3inEpVs>WhV=>Fu~;2M#==-HU)9kQY1 z!eRWNW)aj3f?CC-PLaJkVJf*$oV-yV+a&)vvau6R;l!p+uxx-;!@q6p4BM|}5%ebp zwj+||u*g@*RY&%s!}lNMjywGR$ZkaaC>f_Z>M5G|*h$~74HdmdYQ$F$(+s$QR7k4x2; z+JJc)aSBJd`zWT5_;pbYebnzdmii7|2;Nf><+CDNIH}EKwjk4)OouZYG@0|M)FN>A zaNWKz2c>Nb&#L^+{?yt}CH7Tw32H7=$(iE=M(=u< z;D^SujOKVW$D{ci&F5$?$1<0=*khSTyz3D!DdJE!uGh-Hbgt3)-Wk_uED=|Fbl=f6 zNB17xb9Aq+JTsnjXWlw<)Rnoy^X|$V;V)RuAM9Ax9|N(@EcLg~FR_E2&=#izn1LH(e@@2hQ@Oy?rs<&(^3&)AhQ)89z1 zbLk^k9tvA)PLI~wRnX6u7GNnjTywX1ltNpvif zyoh%@WInpbDQt_5@Uw$+2WuDD$f4+g9=2YOdEZ)NJ;p)b(OBw#eDSFNc%%cPHH>;y zCbh2&PXszMS;tAOE68oPl{&FnS5WJ^;uKzR3WIuaF0x5RGkMMA_JUJ*!6~c?r;t3i zxEHN?4C-6q>b-sHTT$IIsBv9!3Onn`26Cji1W&wKs-d?{1I3GSS^kmvhm1 zSU>97$@I7NuKEGDr6ccM@e9idlN#r8d+o@~AXhQq6pnHfBTiu_FMGi$toXwbr!eZf zt8oe&oWfS!WH7fqPGPTid%`K~i%l`llYGRewmZ_3PA~MNjyI{}1@)#H4tb|%oRiQfpuk=d2-*Zz^&+#qM%7yI_F?Jcu0L&+7g%c0n3 zW9Zqnz())vcUW?U+xjv1>`U%&)$`%AFF8auIHmkC^Zh6CPFcj^?E2D6s{JEl3MlU{f=@A4=|AUqz5d4`Rq5 zzdo>2ogVaH|DZR!H{YHAZ(zhF81-#uzA^KQnNQ4oVde`ndoh;2OY4&Pz)2l2sL5r1 zFsK6tx%(iGALR41zKYR(vtG5)^LJ`kqcM->VKfh;c^J*ZXbyV&2ix?|CMLGFlXae~ z`QUplu}#qf*PUE{a-YdFGg~z9)rWE&+feF-{Bd7$u;EFaU(Ys~is9+cvtEkc z--G)<<4-*6jnA-6^8T$1(IY37bvol)djmscEwHQ|WUP5B245*lsYFnM`L`IK#;qrtj?wYMGOD z8qD7n_outoA3<$07c8%@EyLMCoieCXCb_i0KBTBeC&I;QYl)4W=-Z_3II7W&YFSh9 z$vB1mRc;xlu)--!>~Uh76C0h_@QE&6aS9WgKB$>Z^sDure8L6q zWAaXc?Gz&axxuGVUi~tN*%t~HTG;MHDfj-75l+&^>|tXPT`2FHQ*GE z{vL4(NBD1210C^Df;#9k4$QMYo@bn-#0E_`g;UX0>p#)c$@{1}oWdtur-`mceRhex zns8LEIE7c7!ofYlxBX*qkHl`)`rUhTJi5=M&f4M>w&uCTA8c_7TO7MqA71CTi+vaO ze%3b`=yFhN4dytgtv=zs1@+5OoI9GAz{XB$sFOKQ?DupXK1Q{_@t?WW7lc!o_}i}1 zkA(Br;1mXYm!`r|!}GY}6b3qfWs|RLK#ixC^j9SQdWze7uO}n%5#baj7+`Sy0p}#a3ccqT)y5Ny(ctYR*rUN^Y0Pb-@38T_oxeMr!p<|b z_;@YOQH$r23YLMf691O?x5U3S`j-yv*cmJ=BdZoU^&N>X%x;D1jI@CCYb(vdr;E1D{_@cz-r-EVeHiNow zP!A5~cT)SE)O;s%-1|RFMs?U;Ewb?p4X#e(*&E|(a0dq*yWy&)>b@P`P9wkH+256M z;1sqvg{?VjaSB^&-r~QtIE5X#>BvxvQ<(Uf)_V2+Uz97n*cDEpzSPEAHFZng`|npV z#Ngd5S3bG9>bv8Eu54|?mtAoRBYU0rp~Pn-c0IAvb?e$<@~rML(AB61M1>32O zWHpkkR+80BCblE1?Mx*TaQ=U7)h4J4G`^hLf-r^J{Ho7Z4NcdEhymM9e?*n_9M|PSW&+;9K--y<+!YNE_ z|5$9Ayyq3CFzdM-`MCs_UvUbrIE6vYKd7|_wf+RNCKz`rIW~Ev1p6j_l7lLC zTF$3aW1Q66dz`|FPr6#~DednS{Z4W|Ner0yvWosy^rR~5EDx0Ady>4*#GfTTFY$eK zu_y99we_v7ZH-enh}n~PpvEa2a0;8Uo_KH#JdpU#2B&af%SW8T5vQ=R77gB9l0O>7 z(@pUsa$qBS-QW~Xa-p4lEpAzhQ<%iGNj-UjrCL6u#VKryUlCg*F>sP=O8j&xc_j8Z z!Tw3^sl{JQ;^(9$GqJHr{U-jq`WsGRQY%X8N-a)di&L1?n^LJg@#o3&wm5~!Tn*mK zlju^SXB|#qy^#!j&DZ=wD?$ zDxAW~T7-WvpWG)NKv>{2@6?ER0~OyH3-1G_k7Dmw;(PH~6mLawR#W=uVCJZn83#2D z@4$%kxTb%x7g^{F>Fg$=A!i|4YOV3tR3 za0(kb5XEARHED1P)1X%sZj18rX?W6K>;L!|N?u9aU#?ej3%ht3r!eZTZgC1D3?5fpB^HyH{)KyP5jo@chF!=()BoJqfChhN#S{Y_&I{2j_BSJB{P1~PEP z&rJB5SG>)L!<7n;i;l#SGo=@y^y}36bJUwAyw5;Bf*kmS3z{pnUHPU4=1Y|vlE0&v z@`^Wl#UCB;Nb9a)m(*-a{I9FU6<)EW=k0l>3zZ{(t<(Q)!bH3;+!Og7r!sL5Z$-Vd-ysx#vm%WnZEBQBvkx`iZe8R}oLl4bM(5VJ zz4=K$8~0M?8@%BLhqxnyp~N4KZyUXFILEE{ zwe9prke?Pexy4a#@s&F{g{Y1h)iFEqW>gmr{AVY(5ctj>*SW`e4*X`|Cj%dO#f6TS zBsZ=8tv(agYp%G`fzP{o#=y^2g@erQRrIIwY=N(<*siHy0lshI7bkwQV#{jW@4ycR zez0b2R^d)tTo+e#Ka9u)8M3!u06W;=-Q)e2Yxj1 zjSU`qfL9uv_P~b*{r@Uyl6IR5t!|D9=9s(0DFvl_TaZ(oETt_VD3i#JeaEhdjxhkz#qXqg0XgN%;4BwY&jas;IlW^gSa=q z9Ial?RvtYRjNw`Vh6wOND789r7_3kIj~u(E`_yze7(-vy*ZWX{wXEewYVS!Iyf3Ab zy9=IUEMv3Q1AXXi1KkMZAe6QBeV{MF`~-NS_r1G_1B#B8^Wcl#_n|zSXCGjp0sa}} zlt#JYQI2PnBks%ZB|lu^V6o36-kJ2YgpzA;-Y7O0OOApbjiok355_V#Wq$1oWzI{E zqF}%ByI7-hd?Wud$&-c>8{lY$5<3)};=MhcIAs!NjP5a7k4~>Z@0mwyJi!%H={Ym6 zlU&2-IXe9{y>|(X-Yqo3H=}nCRo+81!8>EAIoLPJKLxSSWE^8zbC@TT99_vreckA! z&yr&-IlOOtb%_@p*Ol5p$zRwy_@sjyf_O6gWq!!vWDDNgHIlo4n>Ci)GG11I7lL<0 zPX3-?pph(3MV|3UBTO)o?+6o&bYLoVvTuvr1G%O@Bb^$HuG!*W>MX^+(7%zqOg<-A zYNVG_(M|DfUQZlZy&!jeS*0dIzI%Dwkqmb*N(ZZSFw9u;-#B+8Sslq}gbyN~O~kVq z|Ebl;dwU;MdZ;mZH&ybE)Z~5q$-An1@2g6G$@SqAjq)wYyR6fxj`KepZ=?5GCA^|R zTs?T_Rj+?-z&oED*Be*DwFxEfE8pGe<(^=_-aECr5grk%2QhmPyHBuP@BLd-;YC}+ z-n+Uw7;I8MpNwbpF0T>SJe1yb@Aw)^zoGuUkxmS*7vQ)-Z{k2!27N*UnV5=vsM&UW zQ0JN*8{e_NLB3!z2LaxzypycwyMtW9WNs$&HnLN_<0sf|g5{<%r(&?FArH(0pVrTq1Vh60rc6hzs!GSY84%BC*zPsO5MG%!fd~ zcw(dixR-)XAJOfj&Lec~sQUJCb8iL37c?!CGp#K7W z8tCIpo@V4&)R=Je@W@;i^zZ-{XaEy5fDP)w2#w6o2%SdwSM2d;fG?cE84iqFU>rMa zxS6~OQT-L1(G1TM`nzx}!j&pm)WgboURX=3c6 z@^Z#5==^1@B5{?*s2vYq6LG|ecZiHzg#Sn8MnpD5l_x51R1SfQDqL&8NEP1EfR`%F zTTy!p?=4DWjybLL#TrWJ7mp5?p{Iy!GvsDC)#)@Y5B=97I}N_-fSwkiAp@qX0pm5Q z%ten2V7~^iU=2F1pkD{ZMbN7oFl0q-RGU5eJG`X816WT$-;AQ}AyKvB?2E+(N8f zxUkPbziOKUOQ{DtH(`%X_)~h;twDW2+)tS2qOtv8?h4quLN16fj|E&_K^_Y8Sg5TK zna7cO3lR+Qcm+O({OegC^x*j>>Zw>TelzjYnYxyFy9e_L+5`tPgS(lj#bU6(XXH{^ z@9=Xn{+m6taJb&l|AkzpjEu722WR-8#mAqJK_%n+(R>}Sh6=T&EV-$PTy+cna3W62 zfJK~$$?qIFLikTgp@u=mk4U~@1Q(!aJ}iA4&-^zEc+QbnVvCK}YCH^i@}1i44vabZ z@jckbp1w51)i`wKjsT)YXxor8Yrtss?03vLOKyq<>p4KH7VKxM zd8g2U2NOC#2az1N038&~0YUy-aHG>H`VM28sFTryC!MID(Gv^N>v~Fa4zCac2kvwt z=ds1sm6*>CT{danBHxmjzg~4)p6Ob0?1)8n_&+o8Q;phGE)&NIwspQjEGcWHOiW?R z+A$Mr*n)rEf`i>-_v*2YW%3+b=CMJ}TI8#TrhDvXj(0KS;5hajbm`C^Ji4i)b=b{1 zwVQ+G-4Q2aBmO*azdaZT9$n94`*oUg4OV!MJ$*(w#__p1 z{%_Ua%z8<9o@d+g{*G;81kl{fL6$o)OX9QP0WA2{aGxm)tz1zFWHehj?VzV-_vjL3z%zV!3%SZkS_gYc|t`Mgcs2yI2)e6YlfPF-GMnL9@z61TW zgr5nR{tcKaf(%}Q_b<#}$1{XF0UkYH&|xF}D&)lr^FW~0NPi0Q$FUZR;IuU4i$&y4 z;dn&uI9(q=pAlK(StmG}M{h0M$Ep5G-Iz!&yhoocyhkJlG=WEvh)++@WxB%t5nVuY zkDQI<9D33-1*LyF0WO@%b7s4-&beqH&qjFiDyG67Z6nuw1?jk9%Auj2HwN#`WM@y z)AcjWcHlrTPYv_5rB;ohevL=IdFDh95BJcU2e-x}7aVj_3OTIEhl0!s$cREdYk zd-Pw{sRADqY8*xADneJ0+H(=Qitstd?|q|wOT`3%KJnE%wgJC=18=tE3iOJzggwhr z6DqLoaIDQ8>-0cOUqD6&`mcab7qGtuuqOij<(Ur-yM?8Omgn4F?M=iW3V8^^H(Tbv z@Xey%r@kiYaan3}IoA9ZoTFHfOW+Ljx{ux+!4GioTcdavjE#f;_APpu=Ivwqcf5kwcJ}n^|+v&+rFb#=lK2f~W5?ISwsxVh&qTR=H1pZdx#pp_{ZI=7%-5 zzyrLlt(6xP<_o&9M=$o^lQ?h_0{BV+eiW2elutk_LATTh6!<}aHUd0Hkcomk3>*`9 zL!dcwVgy3ro|m*gB~`bhZpmimdF zZ)m8;=+yQ`pI9)TgnPIKA24-pE$c&}e}(=Q`n^ZjD?Gm>Vo!8jX)SdkMdc1PBQ3Qf zTXZwIpkHGC)sCo*`+L^ejx}$KPHV~MY|&{0cJYAy+dw;>-wZV|d+KAh)XDVfv&6pL zQa`h$j;3Rs8?bYmtbTm;L8)$p9SeJPP@6S=O~IZWXo7t^&|2)aEqYfXZ$zMrNdB22 zt~>Xe>y|p80)0g2Bf`4_wL$}U94-8_C5}H{reCq4JEbM+je7E-JoQICwyK7Dq%FLs zAmhpgeGvX7!rV|Af)7UMCqh33%|;U67xq(eqn zV&oHXio)@ZI=>w?e+~Hvp8JW$fk6YJaRc}^lHFWesxAQCbjYUEZ>eXj{u%sB)E`dB zkOc2btWQ#8y^gF%&}>J2VuLKn;1^|ZeKMFn89gRLubEsngZ}FIF3-C*)JitgPj))? z&`?L+<%Yaf&;OBixq^A1|`GzYJB)Nq!J{DOx1?$X-^+gJfNwkW@3%@>%H zftt~Qc~#(>B_h9+XL8&Vv+Aii?cpUJo>JhSmgdnd0(p9Yn$|)2l;$5PuLQS4$omoM zVhi=Lg)tWRQY0@bp0Qp;2s?mN?8#<3_NVThT3J&pOHyljU@+%sR_)jnF)6FN-`)$T{12Y*^@% z9ekO!OOL(3gSVH2-T?24(4FHs9ki7C4Yp(6#Su5F_!{tQf%XL2^PJOCQ>}%M2XGex z_Xt_nhv-%0NVn7nY<1ppAIlojN5-9Jc(7VLwHsPwNT=&8u#7FXkA{3?8!nLxmC!55 zFHPhYFn%80urP*>?NVhjdTPn=0k$4HgvVE~LzkJ|V@a?J6+r#be$HjbtD!w=q%&;2U?bMBeBXXc*iedzLc!9VmI z&P{qPF|HQ876;CTC8ymXi{wb`EV;2B9+CCl@Qg&Qj7&~mkNzU`Wk9wXwMP@5YnArk zjTZWJs#2sdSpR%NTZ%nBRg-P~Lr~;NwN+ z<4b7KjWXYz`TmTqpVWS}Io{LWiA+QH^2~v7f&0jMo7yy9b-;_hK^J0-i^_x}{??1* z&@VORTfRH;jS0NF#QkLjA6eo1%ESADA1)KFM5r0g4eg;@CEue(ANR`OyGS3JkL{uLRgOqve+{=J|e3%b{E@` zhYxop-rMAeE&=~l8G%$xA_%0(uMa%w-)tr(mK8? zf%_9VS2!oT0ISL1fIns%)W+XL^A(tOzYVRLH7&1pZZx%X~w=aU2Pbu{B?Ow(cK*pI{R5P82i z9kymToLH{oJi~kM_>NsaulHPQ^1N%~ygS%&ceK-Lzn)i3npSO|R$UqPZ5Y-~WIxSo zQ|KQ*?z%XYvoNh2KdzcQt{a)xHqYx*H?L0pP|jpr?Kbne;o6@2_%iQo8aI8OPo*DD zCD7cw=J>|t=~Vn!cAH`2^SlXp+;?`~xBYOiX4*8|bLobYrXRMA8+UC#?~UcX+<532 zS6jxNp`RtrhrsuG`pBDczZaev$5V;ZzK=XZ#)C85*N=P4^^R|D-P|2yZr5h$p@(*p zhkmo3+HIa3+iu5i8#B9;_2{;%p=}nPn<4o!7?mo^XCm$7i%9aeK{)6gGRV}C4jf6P;VWPeq72ky(5n{}D&dNuW{)mWB}`^LH5 z`N^Hy*`4;IVXW=JaGl|}8|)!YhI6`;IJ8?cwkLLK8Q*TF+kQ3&JD8&#LzBk9n1-&5 zp79KAnmn`+*$T%a@8}ypgeDK3@$@#2a&asSnX&PG9)d4}v1xLB9+!;cQUY5yc*fDW zJTHa!^m%k4PaR{}F;=ZLqhs8{(oMGMr@nEM;dp2CcQ>}ZnPutbhVg3y-{EO{nU)fV zxZ6yfi(}fYN7K5gvwTT$D9v)eFpb4+83+YGY>5Nvt&N`!+Izj6Tcdplz4v`dMTqZ zWo($=j=AoS^eN3Thx=HDCfHd{dR{AGh?3^dw5e?pqt-O?)|Bs z_|YF(G>ePB?_6HgdTmkP{P2hCt5>hq*S~d79sln8>fh7{tN#7sg5STfs9$^OuKLtn zch>sX-(SDGSk`*ur)%Z6-E-&l*1z!YKh%2jk8Azl4}87ed;Qb3>CWq-d$K;tZ9b)^ z{&}q*`&6x0f9UP{W88A_)t{^%s9&kCefFXH^vOy6{ZB6HuRgh`4_v#eUcY+zqTPAA ztGAvx*80m_@Q1%tKly=0efi}>{rMZK`lV<0^)t_Yus-qCAFkIvf4wehQ{!*O8hzVppR{U+yr`7NINw~PAk^#^PH_GfGT#~ZbNix2v@XKQ`qky?N2!TK9N z_l5eU$A7Q>*#m!Bzqa_-di!>zy+gZAd%oU&@H6#0AAPOXU;B&t#YZ@vZ`bpix9gW* z;P)SYrM~piOO;1e9frk!*1F~W>N~WL>w%`;efQnO?ed`v# zefK6E{zAQV>sEdAx99pRe>B%eUwNf|>@%OJPdxENedwWw>hXB2&pdNppL*)NKJv(U zz3;yBdN?vJ%jfF5@4j2#e*5i<_Qo4;)K_19wVt1!*PAzQUR;0u`t^(JpML21`o(8{ zy}tIs@76#0+}G=SfAClJz4zYx@9Q6a_~H8W(@)nIUwpB?`R1FD#Nz+d9((Mu`uO9I y*Bdu(RK3^tUa#MA|NZyZ2OfCffBdHB-k)>*i1+nIO7$bO@4f#2_y5=NSo{~B^;NO} literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/rocksnapper/female/foot_bl.vox b/assets/voxygen/voxel/npc/rocksnapper/female/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..c96f36bdcfb6626226359fdf5b3a51f132aaa558 GIT binary patch literal 2124 zcmeHGU1*kN7=E7Te(vXazZu&I(p-pRtSy%`aHVPHG}AW3HZo;xsgP{`)QJAzlT0v^ z?<-w)5ay&n7wldJ3fhz<;b&U@kFexCcj?!V{0 z-#tSk?dOa!JGTrzPGKHQjM+6fy6v{|!fy#t`3oaYjSeQh)EZ+gVWj4))P#sWsfh_S zb+HyCQihthC6pXbjuO7+oYaiiy7h#(x)D=1-qc+}L|YG(N~y8Dn|cVY9!hhq|QRbt31F&32&vPy_~ z5@Q~np$uu_HI2?@i4R4hw1t?(lH+|*QSvpWv7skdlqh{lo-&^>H|<_n590{)HR3tu zRoXmb3;ij5pbU8o)H6nOnnmY}7|OhwC(IRvbt`?n%R{h5P*VhJ(@@?m&q5tJ!MY+a zP6&Z#$piBT>$4z2t|y0J-@(z>IqH=h%>wHPtSdOiQu?x{z;_FdF~pF|7`~L61_?ad zECiDWb*ZopVGT;@tx1*ejkC*@^>{0pSeL04>OJi~bIumdk>^|?&SdIruFj>75Z2~t z_p~c#Ax_Bgnb4*@dne@k%=3-ZX|58e(?SE|@r{)5d<(C(5bBhBAl~Ley?B=icfpIz zJoU<+yf@^t24OCq9d)YgNm#p@%&TU~_fXErD|7Oll>4K6H_zEB;k_1KSd$8ELY=3M zy?W1>o;KD@i02y+!hKNAMmQJOm?^nIQzxvSc~xxgS*v>X%w3kUHumF#$sFr;oQbeD z3G9V%>?v^H0(UaeB(G>vBq2#FA>l43MI|PA6Zf}?_oxZ?IN|(a-o$-xqP;1hOp+{7 zOB?^0VDqH>55yGw=edIf=aR6l#M{jA?#O-Ou}8M>|80CXRv4hmV0Qg_Om%eN!nM0` z<=cDlHP)c~o;S3AWROm_W2k*4@YQ{|X#^PF1<eE>dG zVZshMeu32dg6U}x^TaeUf$22|abweY z;FZsDs-ODSX;jCjapn;1+fHC|auQ61at!7V;11S@d17~|@aXL9#E;Jbt@Z-U@srqe zVI3~jXuCPi2S0>bt%l8SUd2lvT*c-SC$RnC9t;i+qOY$HZEbBB8>?bysEYpnDpswk zVtE_qBKxqguzTdp-vIN5|E!aTZ>i_@!U*}=|1k;s$U;qFB literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/rocksnapper/female/foot_br.vox b/assets/voxygen/voxel/npc/rocksnapper/female/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..0d307e92dd57942e6be016cc2f544e5e7116cafd GIT binary patch literal 2124 zcmeHHUuc(Q6h80!p7(t}HMS9?xe&)#TP|tf%F@hfrfrCAWXjr7A=&&>Bl-tF$pka` zex=JU!kiTA`y<1K5aLb$E=0T#Mpr9>1yR&ZL{~x3&C~P!kS+{@?)$;RdEaxMbI$XA z=kVJ-INWwtM0RW*c!EYANXX=ZTaJIhKNqwPqWreXQi44H{BGl4e5 z%*L2IE4huKwCW3IO<|R1&luyb;;3fEhurwc8kL`M=X2`YLqcYZe`86vsyJhT zes9ZYOcsq~-k35N$vw}3+5)wBA{duPW9fJFDXkWXHDzL@2-Fa1y)~KVIceNY7N{>Y z{8C2i2qlm8s3%xQzA{&N_l2jPKwUnto+roKJUCkhZ;D8tr`A}Z(#r1_9qU(6lY6CB zl`=T$cTz;2x#NZB&P2yLzN*O{+yT!y1W*0dopbZ*S;yy|^9`JB;EaQJj62rincv%U zS0ZN}oGU$dA}aNBCecy5x*~EeiP};F@0@?ao}Su$L!V_|p1I4B`Xb*Gf{<_Wq|)m7 zZ34ejFh%03U5K1Voe1Lb&h3xFoa*xtzIU z4;M^n`TZ^XSbh`BeY2dIr7o-N$KHuI`IC=7x>;`iCtP14K&N14-8xLRx8wZPyK(uu zd+`m{p!&TajDIZ1CfYFAwi5XIKHLxo4DAFMTei1`^cNm~0LDH7*4}>s_jK)th8iSn z$0nB9S5ZF)w(SGjAD+cyEGcJqU^UL*+~Hn~EM1ECh6S%|7xZ+tp{spG11s-ZhIF(Q zc!>!gyolk|f@8;)Raca+c+1(7;t9WKY zaAa;APhDgEdBH9+(<_3b7gyoI@3#Y=?#JcJgZKmEd~GN2vtaI$;1ao~FS75qg5U7~ zaP2Vg;}CF_5BhBnFx>~dxdyL4djhBW-^FJ=Um}xVF*OBZj+i3GF}3CZu5UaCy!r)B z_R-%mh1%E@P9J1^>v2p>On|LWjY0kd?w~%*5xXjfqNAe&KRpk$nDdZhC$RDSgSeP7 zc4Lem{2e#;)-X6&LtkGFt5(&pyp?lt zdoe#hkJ;JT2BxQ{F*!MjTCIk$v9U&eS65dff24ODCr4kyxr6WElOq?f@cvg=SXlTw zf5V0i7#SJCp+ko-Gc&`LkpF}&TehITzaK+GL#S%qnqR%6ySp1bJw5-3Row2D7OY>g T1VhcuSWn!V|Ns48=OKRq0{?vE literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/rocksnapper/female/foot_fl.vox b/assets/voxygen/voxel/npc/rocksnapper/female/foot_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..0aa14f0820f0155a216d04bc8b7b26d421cb9a8f GIT binary patch literal 2188 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/rocksnapper/female/head_upper.vox b/assets/voxygen/voxel/npc/rocksnapper/female/head_upper.vox new file mode 100644 index 0000000000000000000000000000000000000000..4dce04ac0030db48d15f54529083919e70dfca97 GIT binary patch literal 1708 zcmeHFO=w+J5T0|+ockixBnY-PQW`?cGqD&*w52sRsj)SWQ1h@h#21r-<>jXu#6P&j z8i=(#w2gHkF)t|b{*(|yK|(hEElTO45L`tOB8Z|J5m$oX=JUI6;i7`z-V5KobLPy< zH{Z-19vW$05Rv0Y3QzDOi-E|ALh0!3*?~`vxQ(D&MxHJerYsFU)$HXp3^J(RA%t@- zv^AK}IZNAyT0?d=v|XsGsqq^7Koe_yY}LokdfFOW=VP^+IL0`uk@p%oqp>=ldUcTr zeB|m}Bu--!XsUHtuB2)-GU^lWY-GHTjCG0U**Q%#M=s|R^`5*gw$`P_xHPbac_wkR zea$b4HzqQKt7EKXEzS51ZHasqXBjW#HIfQ#HI}_;WV1Nu*)RJiuQlY&G}WbE)8WsXv>vX0AU;xZ_ECl_s{CL8!z9KVKlmh+)rQJ)Iu=yC-4lrfHd zXpZ~J`6Qsmz!TQ7?`)Pf4X8ih?mTr1ZDR?;9dZ`da2JFc>J}3_LJ2FDb~Xb`ze^pV z;%IZfIqsZXPd@(W5z*{t6S=WRfHuL(!GoA@X~EL9d$IoA{rCo5$etI3_a6(QnPv<% z?*+bo05`<}#S;MUc8!Oq{6g~wp!^ZA|G_J`FMk>ugpgnmeJpb-3;i58b_!^Dcny!S zq%0iAK3vA)nQoMJ?!#Cwoo&s?x9q85?>)Ov8EpbyV!{V6Vq~9Sc6K+OE8dBV zV|Qb6Y(EMMkD%>b9s))E8}+DvyB-afTOq>@ka5K`GlH|56L{)6>u(88GP1HEIJer4 z1K$q3i@pfSndVh?858M zp2x+3ckx;0mx$z7RI4C1i7GLHYS$!g99{%o{Q?(y>2IteELU-9iuXt7Ff%g)QXyM| z{0ZE}{;)}$%p8i=)>i!VJkV&CAhYLjc=sZ`MS)&^ewa07jFb2v6R zj6$J+?(S|hH8o*$G{n$Qh~C~1?d>6UH*qg+99vskSX*1GVR?BO^Yilv!w}_ixt5>L z=WF?;?g?BNeGQ9K@8FZOSFrv5SJ>X({yV>?rw64{3DeWlSXo)&FCqU4{r&wI7#KjY rSVUIq*8EIIM@I)bJ3Iezm&JB8Hsa8Z9Vj+5;1F?Z{{QEH-G}@IZU#2? literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/rocksnapper/female/jaw.vox b/assets/voxygen/voxel/npc/rocksnapper/female/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..45012a246773b8e7fd63fd258fe59f7191ca8bec GIT binary patch literal 2016 zcmeH`U1-&19LJyk|9Sq;|K->=f;1Q67;9@w8n{w4bDC*8i0zOm>#Qjxn=dt5Z*U|N z%nparWfx&ijOB$48$yUTyq@BR1u zpR;#(q~okHX4ls869}`A8ne4x-M%aw_}u|PPhjNfYWadi;rBCGYwH=LkUMmT1z99f z-J$0Z_Sn^nI0Eb;zG*{`<9Z$iB5ZLz4SHm=OJ6;pTgFP2-4ebP z`)X?Zg8IEQ{-Lz)!ArWY=YX8A$@rbxLYe&`^fPJ4eyQ`}c|Ar+b9R^3=#0)C8Blfk za=kZV^vX`7{_YO-bgpW$`kobPjJ8WJk#ONfjjS;`ete~#tK6wmV|VM|*gBQZKBDep zJu-4?d80)wZ?~xROqa~wR+)WH&rBK}U6{~QH>kg8w1>#XHKSvfd$s<%ozf=)@cReKCI3oQ}k*>4QZ)4Kzp!DWiz5eV;of>*qpZ0&D zi{@9&%m@}>1|~GK_MmQVJ}15Ux$1-1+h$Z7pV8?<__v?XpI@)b4Scu8x$r}3G#c9S)-}ES!8L6;aY8!|?p3*5*1*7k z+S}VTI$G24a7}}QHTCw^w6dM=V)toraZ&U0^G#-FXEi-Nty-<7@$vCyeos$NGru}8 zq59}+I(O(DeSGwimfrtTOG`_C=Wp7yN!4mqhYugt+}s>b!u%(;ZQG`yp&?Z&6@^;2 m=Z8J|`uf!0-~SI^i0x}@)5cOsmDW~mgxmA~KmY6ZFn<9&!b|i3 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/rocksnapper/female/tail_front.vox b/assets/voxygen/voxel/npc/rocksnapper/female/tail_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..6579ed703dae0822a05a0862cfc2264fc6622303 GIT binary patch literal 2052 zcmeHGTZmO<6kh+o{=Ls-pR;EO(wq>7VVcQF8gNR{%+XAn!(emBl<7<=Br{%Wh;DEs z6U^jLI@v>*BgM2YGT0!5_|gp$@j)1Rnj)AWih7Bt9)h5kukW9S9t?us+pzd=Yklim z-&%Xm$Y|#|5!t!5_9z$mtst_i*4SS02YvyqjaH(KKGCRsuH5kZm1cvWWlOY>R`6>` zE3~XS8qey_#g;AlckUhUt+s4zavN)^RhQX{%dIh)mTaa~o4QDI_3welDUlb6R z*k$5WgIp?_nv$m0uc6OtQz?2s^6>c$_a&RFN~%hJR#M|6H{@ykNLF$%=5x>Q5SB_<#49qTd$Ujy;WCU;H}SMWO6+%cDi#Ho@?V91Mm z)@4|~5$Zt>j_+1^Wk7Y9>|c z7MVl}CNVMJsFN+Y%vEe+$w`dRmv?cHSmJ2WCR(Mx*Sp~Rqlqnf{{CLcm2o9sFZ&zX z%yJ}2m*XZw65~GrdV=vVv5;IolOAMh-HsHJOJ#{qRV&Ylm z5|h|~ycw&UEmL7nD!ePY#6+w&)WmQOl=|5sv3x&@%ul|KJ(q|Y_#Bq_UX#F*pUE7} zmN`o$AMY}ypCNaxXd<#Mp?qW$MMgs^4?go%bV-M#L!@&OPUc zoGs_wR*6|q_Lcucz`pre_O*rVf$v*EGE?O2vrbcFuOs%8+)TuoGwfr9KFnjuL5SfD zH7ZgMuV0xua1I}PgvLUYj@$wH}~KxtcCxc6~2EUNG3Zm z(zy!w@?P8&1?sy1zAfL^MC&JRzXQhK2iDzp5qI|;xSjkkPuuM;9J;%^@xwDfySV^4eiEB6tjDDm-)@dm@Iz>|TG;aXRlM-t zRctwN0y_@wL9JH9z`y`HIyx{m*2Kt26N7_ItX|#3iVpTg_hDgS0dsS6OExnzgQ=-0 zG@DI~kB=|K_xAQK#Ww~faBA#joIms?K0JC6i|>4a#l^+H<2P;Eghr!*!-o%Jc6OE{ zA^*v?ZQF*Sp&``kb$F~><9!`{eSPTf@Bhb}_w8$M$Hpi^y{!!!X}8AzfBx5g$Y0bi Bb)*0Q literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/rocksnapper/female/tail_rear.vox b/assets/voxygen/voxel/npc/rocksnapper/female/tail_rear.vox new file mode 100644 index 0000000000000000000000000000000000000000..00daca59a596bc4ab728e10a1290f689cf991f62 GIT binary patch literal 1272 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

`?lY)Ya+9 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%0Ad&l3xn80X_(9ZVeCB#s2VXy=~y*dRwJVIr0M| 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/rocksnapper/male/foot_bl.vox b/assets/voxygen/voxel/npc/rocksnapper/male/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..c96f36bdcfb6626226359fdf5b3a51f132aaa558 GIT binary patch literal 2124 zcmeHGU1*kN7=E7Te(vXazZu&I(p-pRtSy%`aHVPHG}AW3HZo;xsgP{`)QJAzlT0v^ z?<-w)5ay&n7wldJ3fhz<;b&U@kFexCcj?!V{0 z-#tSk?dOa!JGTrzPGKHQjM+6fy6v{|!fy#t`3oaYjSeQh)EZ+gVWj4))P#sWsfh_S zb+HyCQihthC6pXbjuO7+oYaiiy7h#(x)D=1-qc+}L|YG(N~y8Dn|cVY9!hhq|QRbt31F&32&vPy_~ z5@Q~np$uu_HI2?@i4R4hw1t?(lH+|*QSvpWv7skdlqh{lo-&^>H|<_n590{)HR3tu zRoXmb3;ij5pbU8o)H6nOnnmY}7|OhwC(IRvbt`?n%R{h5P*VhJ(@@?m&q5tJ!MY+a zP6&Z#$piBT>$4z2t|y0J-@(z>IqH=h%>wHPtSdOiQu?x{z;_FdF~pF|7`~L61_?ad zECiDWb*ZopVGT;@tx1*ejkC*@^>{0pSeL04>OJi~bIumdk>^|?&SdIruFj>75Z2~t z_p~c#Ax_Bgnb4*@dne@k%=3-ZX|58e(?SE|@r{)5d<(C(5bBhBAl~Ley?B=icfpIz zJoU<+yf@^t24OCq9d)YgNm#p@%&TU~_fXErD|7Oll>4K6H_zEB;k_1KSd$8ELY=3M zy?W1>o;KD@i02y+!hKNAMmQJOm?^nIQzxvSc~xxgS*v>X%w3kUHumF#$sFr;oQbeD z3G9V%>?v^H0(UaeB(G>vBq2#FA>l43MI|PA6Zf}?_oxZ?IN|(a-o$-xqP;1hOp+{7 zOB?^0VDqH>55yGw=edIf=aR6l#M{jA?#O-Ou}8M>|80CXRv4hmV0Qg_Om%eN!nM0` z<=cDlHP)c~o;S3AWROm_W2k*4@YQ{|X#^PF1<eE>dG zVZshMeu32dg6U}x^TaeUf$22|abweY z;FZsDs-ODSX;jCjapn;1+fHC|auQ61at!7V;11S@d17~|@aXL9#E;Jbt@Z-U@srqe zVI3~jXuCPi2S0>bt%l8SUd2lvT*c-SC$RnC9t;i+qOY$HZEbBB8>?bysEYpnDpswk zVtE_qBKxqguzTdp-vIN5|E!aTZ>i_@!U*}=|1k;s$U;qFB literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/rocksnapper/male/foot_br.vox b/assets/voxygen/voxel/npc/rocksnapper/male/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..0d307e92dd57942e6be016cc2f544e5e7116cafd GIT binary patch literal 2124 zcmeHHUuc(Q6h80!p7(t}HMS9?xe&)#TP|tf%F@hfrfrCAWXjr7A=&&>Bl-tF$pka` zex=JU!kiTA`y<1K5aLb$E=0T#Mpr9>1yR&ZL{~x3&C~P!kS+{@?)$;RdEaxMbI$XA z=kVJ-INWwtM0RW*c!EYANXX=ZTaJIhKNqwPqWreXQi44H{BGl4e5 z%*L2IE4huKwCW3IO<|R1&luyb;;3fEhurwc8kL`M=X2`YLqcYZe`86vsyJhT zes9ZYOcsq~-k35N$vw}3+5)wBA{duPW9fJFDXkWXHDzL@2-Fa1y)~KVIceNY7N{>Y z{8C2i2qlm8s3%xQzA{&N_l2jPKwUnto+roKJUCkhZ;D8tr`A}Z(#r1_9qU(6lY6CB zl`=T$cTz;2x#NZB&P2yLzN*O{+yT!y1W*0dopbZ*S;yy|^9`JB;EaQJj62rincv%U zS0ZN}oGU$dA}aNBCecy5x*~EeiP};F@0@?ao}Su$L!V_|p1I4B`Xb*Gf{<_Wq|)m7 zZ34ejFh%03U5K1Voe1Lb&h3xFoa*xtzIU z4;M^n`TZ^XSbh`BeY2dIr7o-N$KHuI`IC=7x>;`iCtP14K&N14-8xLRx8wZPyK(uu zd+`m{p!&TajDIZ1CfYFAwi5XIKHLxo4DAFMTei1`^cNm~0LDH7*4}>s_jK)th8iSn z$0nB9S5ZF)w(SGjAD+cyEGcJqU^UL*+~Hn~EM1ECh6S%|7xZ+tp{spG11s-ZhIF(Q zc!>!gyolk|f@8;)Raca+c+1(7;t9WKY zaAa;APhDgEdBH9+(<_3b7gyoI@3#Y=?#JcJgZKmEd~GN2vtaI$;1ao~FS75qg5U7~ zaP2Vg;}CF_5BhBnFx>~dxdyL4djhBW-^FJ=Um}xVF*OBZj+i3GF}3CZu5UaCy!r)B z_R-%mh1%E@P9J1^>v2p>On|LWjY0kd?w~%*5xXjfqNAe&KRpk$nDdZhC$RDSgSeP7 zc4Lem{2e#;)-X6&LtkGFt5(&pyp?lt zdoe#hkJ;JT2BxQ{F*!MjTCIk$v9U&eS65dff24ODCr4kyxr6WElOq?f@cvg=SXlTw zf5V0i7#SJCp+ko-Gc&`LkpF}&TehITzaK+GL#S%qnqR%6ySp1bJw5-3Row2D7OY>g T1VhcuSWn!V|Ns48=OKRq0{?vE literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/rocksnapper/male/foot_fl.vox b/assets/voxygen/voxel/npc/rocksnapper/male/foot_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..0aa14f0820f0155a216d04bc8b7b26d421cb9a8f GIT binary patch literal 2188 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/rocksnapper/male/head_upper.vox b/assets/voxygen/voxel/npc/rocksnapper/male/head_upper.vox new file mode 100644 index 0000000000000000000000000000000000000000..4dce04ac0030db48d15f54529083919e70dfca97 GIT binary patch literal 1708 zcmeHFO=w+J5T0|+ockixBnY-PQW`?cGqD&*w52sRsj)SWQ1h@h#21r-<>jXu#6P&j z8i=(#w2gHkF)t|b{*(|yK|(hEElTO45L`tOB8Z|J5m$oX=JUI6;i7`z-V5KobLPy< zH{Z-19vW$05Rv0Y3QzDOi-E|ALh0!3*?~`vxQ(D&MxHJerYsFU)$HXp3^J(RA%t@- zv^AK}IZNAyT0?d=v|XsGsqq^7Koe_yY}LokdfFOW=VP^+IL0`uk@p%oqp>=ldUcTr zeB|m}Bu--!XsUHtuB2)-GU^lWY-GHTjCG0U**Q%#M=s|R^`5*gw$`P_xHPbac_wkR zea$b4HzqQKt7EKXEzS51ZHasqXBjW#HIfQ#HI}_;WV1Nu*)RJiuQlY&G}WbE)8WsXv>vX0AU;xZ_ECl_s{CL8!z9KVKlmh+)rQJ)Iu=yC-4lrfHd zXpZ~J`6Qsmz!TQ7?`)Pf4X8ih?mTr1ZDR?;9dZ`da2JFc>J}3_LJ2FDb~Xb`ze^pV z;%IZfIqsZXPd@(W5z*{t6S=WRfHuL(!GoA@X~EL9d$IoA{rCo5$etI3_a6(QnPv<% z?*+bo05`<}#S;MUc8!Oq{6g~wp!^ZA|G_J`FMk>ugpgnmeJpb-3;i58b_!^Dcny!S zq%0iAK3vA)nQoMJ?!#Cwoo&s?x9q85?>)Ov8EpbyV!{V6Vq~9Sc6K+OE8dBV zV|Qb6Y(EMMkD%>b9s))E8}+DvyB-afTOq>@ka5K`GlH|56L{)6>u(88GP1HEIJer4 z1K$q3i@pfSndVh?858M zp2x+3ckx;0mx$z7RI4C1i7GLHYS$!g99{%o{Q?(y>2IteELU-9iuXt7Ff%g)QXyM| z{0ZE}{;)}$%p8i=)>i!VJkV&CAhYLjc=sZ`MS)&^ewa07jFb2v6R zj6$J+?(S|hH8o*$G{n$Qh~C~1?d>6UH*qg+99vskSX*1GVR?BO^Yilv!w}_ixt5>L z=WF?;?g?BNeGQ9K@8FZOSFrv5SJ>X({yV>?rw64{3DeWlSXo)&FCqU4{r&wI7#KjY rSVUIq*8EIIM@I)bJ3Iezm&JB8Hsa8Z9Vj+5;1F?Z{{QEH-G}@IZU#2? literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/rocksnapper/male/jaw.vox b/assets/voxygen/voxel/npc/rocksnapper/male/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..45012a246773b8e7fd63fd258fe59f7191ca8bec GIT binary patch literal 2016 zcmeH`U1-&19LJyk|9Sq;|K->=f;1Q67;9@w8n{w4bDC*8i0zOm>#Qjxn=dt5Z*U|N z%nparWfx&ijOB$48$yUTyq@BR1u zpR;#(q~okHX4ls869}`A8ne4x-M%aw_}u|PPhjNfYWadi;rBCGYwH=LkUMmT1z99f z-J$0Z_Sn^nI0Eb;zG*{`<9Z$iB5ZLz4SHm=OJ6;pTgFP2-4ebP z`)X?Zg8IEQ{-Lz)!ArWY=YX8A$@rbxLYe&`^fPJ4eyQ`}c|Ar+b9R^3=#0)C8Blfk za=kZV^vX`7{_YO-bgpW$`kobPjJ8WJk#ONfjjS;`ete~#tK6wmV|VM|*gBQZKBDep zJu-4?d80)wZ?~xROqa~wR+)WH&rBK}U6{~QH>kg8w1>#XHKSvfd$s<%ozf=)@cReKCI3oQ}k*>4QZ)4Kzp!DWiz5eV;of>*qpZ0&D zi{@9&%m@}>1|~GK_MmQVJ}15Ux$1-1+h$Z7pV8?<__v?XpI@)b4Scu8x$r}3G#c9S)-}ES!8L6;aY8!|?p3*5*1*7k z+S}VTI$G24a7}}QHTCw^w6dM=V)toraZ&U0^G#-FXEi-Nty-<7@$vCyeos$NGru}8 zq59}+I(O(DeSGwimfrtTOG`_C=Wp7yN!4mqhYugt+}s>b!u%(;ZQG`yp&?Z&6@^;2 m=Z8J|`uf!0-~SI^i0x}@)5cOsmDW~mgxmA~KmY6ZFn<9&!b|i3 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/rocksnapper/male/tail_front.vox b/assets/voxygen/voxel/npc/rocksnapper/male/tail_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..6579ed703dae0822a05a0862cfc2264fc6622303 GIT binary patch literal 2052 zcmeHGTZmO<6kh+o{=Ls-pR;EO(wq>7VVcQF8gNR{%+XAn!(emBl<7<=Br{%Wh;DEs z6U^jLI@v>*BgM2YGT0!5_|gp$@j)1Rnj)AWih7Bt9)h5kukW9S9t?us+pzd=Yklim z-&%Xm$Y|#|5!t!5_9z$mtst_i*4SS02YvyqjaH(KKGCRsuH5kZm1cvWWlOY>R`6>` zE3~XS8qey_#g;AlckUhUt+s4zavN)^RhQX{%dIh)mTaa~o4QDI_3welDUlb6R z*k$5WgIp?_nv$m0uc6OtQz?2s^6>c$_a&RFN~%hJR#M|6H{@ykNLF$%=5x>Q5SB_<#49qTd$Ujy;WCU;H}SMWO6+%cDi#Ho@?V91Mm z)@4|~5$Zt>j_+1^Wk7Y9>|c z7MVl}CNVMJsFN+Y%vEe+$w`dRmv?cHSmJ2WCR(Mx*Sp~Rqlqnf{{CLcm2o9sFZ&zX z%yJ}2m*XZw65~GrdV=vVv5;IolOAMh-HsHJOJ#{qRV&Ylm z5|h|~ycw&UEmL7nD!ePY#6+w&)WmQOl=|5sv3x&@%ul|KJ(q|Y_#Bq_UX#F*pUE7} zmN`o$AMY}ypCNaxXd<#Mp?qW$MMgs^4?go%bV-M#L!@&OPUc zoGs_wR*6|q_Lcucz`pre_O*rVf$v*EGE?O2vrbcFuOs%8+)TuoGwfr9KFnjuL5SfD zH7ZgMuV0xua1I}PgvLUYj@$wH}~KxtcCxc6~2EUNG3Zm z(zy!w@?P8&1?sy1zAfL^MC&JRzXQhK2iDzp5qI|;xSjkkPuuM;9J;%^@xwDfySV^4eiEB6tjDDm-)@dm@Iz>|TG;aXRlM-t zRctwN0y_@wL9JH9z`y`HIyx{m*2Kt26N7_ItX|#3iVpTg_hDgS0dsS6OExnzgQ=-0 zG@DI~kB=|K_xAQK#Ww~faBA#joIms?K0JC6i|>4a#l^+H<2P;Eghr!*!-o%Jc6OE{ zA^*v?ZQF*Sp&``kb$F~><9!`{eSPTf@Bhb}_w8$M$Hpi^y{!!!X}8AzfBx5g$Y0bi Bb)*0Q literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/rocksnapper/male/tail_rear.vox b/assets/voxygen/voxel/npc/rocksnapper/male/tail_rear.vox new file mode 100644 index 0000000000000000000000000000000000000000..00daca59a596bc4ab728e10a1290f689cf991f62 GIT binary patch literal 1272 zcmeH_OGs2<6vxjuFGmfPpobHYh&gG}fKy3jY1zX;Y=$0UV;UsmqZ**cQA13E5I4OR5iJ5~Wf2%eVVj6nLD1&cxh`511nv9a$GPY6Kj)tN-G*pmL9d9^ zZ;WhLBQqY6ossyKIgX>ptz;`+rEyO@GNINvWs32-ZR2y<#$#;bRqOXC8uROOrsJEm zD^t?0EE#lp)%wkl_|34%(74ZutMAwhNgKZm8lM?*`DIxAG9(!??8-E0Hs zS?YUL@726ww8r>kP%@38x-5-rPop!9qt&^_Xq_louJn#=n>LE>=bRUd1&W1{HEZZ8 zETsS0QpVpc=MCjJ=dfu0o{&x!5G_~&uUGI=+z{Idnp@CfVSm=g50JP6t5@D-S+Et4 z&q924RBM}kPU&OVx(^E1jj>rVv`HtUexY<3iIZ`Z})i;N)GVZ@yxBdis~Xva*tRJWgk4CnF;x`b)?^QBzYxZEY>F pSPZAv?|NsC($Z2wq0k>Wr?xaNkG0v^#By_4tNgD2@Bj5aV$QHpxYBrYxG4_{0Izxo^Z)<= literal 68715 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 N`R@G-7erv^HvmBc<}3gJ diff --git a/assets/voxygen/voxel/npc/tortoise/female/foot_br.vox b/assets/voxygen/voxel/npc/tortoise/female/foot_br.vox index f69317413159c12625a1c63987f58ed04006f4ef..ee2432708bbd1c2a514078e70c5499394a21fbd1 100644 GIT binary patch delta 33 ncmeyrm3a-1P?&#&!ZZd3246={KOn^*!M0I|k7@I3W*!y*op1;I literal 56063 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 diff --git a/assets/voxygen/voxel/npc/tortoise/female/foot_fr.vox b/assets/voxygen/voxel/npc/tortoise/female/foot_fr.vox index 7f6969138789fb0d017d58d4693dee83ebef4475..78675fb337bb5032264f796a79e52e5e93532d3a 100644 GIT binary patch delta 33 ncmZ3zjrj(TP?&#&!ZZd3246={KOn{6!nRS!ifOYr3l9qbm#+s} literal 56107 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 Ij04>N1>yL$w*UYD diff --git a/assets/voxygen/voxel/npc/tortoise/female/tail_rear.vox b/assets/voxygen/voxel/npc/tortoise/female/tail_rear.vox index 7a7c35c27ca4b0433c2d19d851a961e32c702dce..ee74a1b9c7edf9124ca1f4776ab69e272e62de4d 100644 GIT binary patch delta 42 ocmX@Zae_lI%s)b58Uq7^ucN0QkYX^IC@9av0%AeIMh6}i0Ju2@lmGw# delta 46 scmX@XafU-M%s)b58Uq7^ucN0QkYccyC@3$$0b&6GBZP|HXv4z-0MSea_y7O^ diff --git a/assets/voxygen/voxel/npc/tortoise/male/chest.vox b/assets/voxygen/voxel/npc/tortoise/male/chest.vox index a9a63264b53b766a10af374ff0800165e08bab5c..6c5f10c5f7d0af12f71fb520faad8991221c1373 100644 GIT binary patch delta 34 ocmaDogJnj(aF~CD!ZZd3246={KOn`>V$QHpxYBrYxG4_{0Izxo^Z)<= literal 68715 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 N`R@G-7erv^HvmBc<}3gJ diff --git a/assets/voxygen/voxel/npc/tortoise/male/foot_br.vox b/assets/voxygen/voxel/npc/tortoise/male/foot_br.vox index f69317413159c12625a1c63987f58ed04006f4ef..ee2432708bbd1c2a514078e70c5499394a21fbd1 100644 GIT binary patch delta 33 ncmeyrm3a-1P?&#&!ZZd3246={KOn^*!M0I|k7@I3W*!y*op1;I literal 56063 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 diff --git a/assets/voxygen/voxel/npc/tortoise/male/foot_fr.vox b/assets/voxygen/voxel/npc/tortoise/male/foot_fr.vox index 7f6969138789fb0d017d58d4693dee83ebef4475..78675fb337bb5032264f796a79e52e5e93532d3a 100644 GIT binary patch delta 33 ncmZ3zjrj(TP?&#&!ZZd3246={KOn{6!nRS!ifOYr3l9qbm#+s} literal 56107 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 Ij04>N1>yL$w*UYD diff --git a/assets/voxygen/voxel/npc/tortoise/male/tail_rear.vox b/assets/voxygen/voxel/npc/tortoise/male/tail_rear.vox index 7a7c35c27ca4b0433c2d19d851a961e32c702dce..ee74a1b9c7edf9124ca1f4776ab69e272e62de4d 100644 GIT binary patch delta 42 ocmX@Zae_lI%s)b58Uq7^ucN0QkYX^IC@9av0%AeIMh6}i0Ju2@lmGw# delta 46 scmX@XafU-M%s)b58Uq7^ucN0QkYccyC@3$$0b&6GBZP|HXv4z-0MSea_y7O^ diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index d615fe1487..fe0b5bae4b 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -312,4 +312,56 @@ central: ("npc.tortoise.female.tail_front"), ), ), + (Rocksnapper, Male): ( + upper: ( + offset: (-3.5, -4.5, -3.0), + central: ("npc.rocksnapper.male.head_upper"), + ), + lower: ( + offset: (-3.5, -5.0, -3.5), + central: ("npc.rocksnapper.male.head_lower"), + ), + jaw: ( + offset: (-6.5, -6.0, -2.5), + central: ("npc.rocksnapper.male.jaw"), + ), + chest: ( + offset: (-15.5, -18.5, -13.5), + central: ("npc.rocksnapper.male.chest"), + ), + tail_rear: ( + offset: (-1.5, -11.0, -2.5), + central: ("npc.rocksnapper.male.tail_rear"), + ), + tail_front: ( + offset: (-2.5, -15.0, -4.5), + central: ("npc.rocksnapper.male.tail_front"), + ), + ), + (Rocksnapper, Female): ( + upper: ( + offset: (-3.5, -4.5, -3.0), + central: ("npc.rocksnapper.female.head_upper"), + ), + lower: ( + offset: (-3.5, -5.0, -3.5), + central: ("npc.rocksnapper.female.head_lower"), + ), + jaw: ( + offset: (-6.5, -6.0, -2.5), + central: ("npc.rocksnapper.female.jaw"), + ), + chest: ( + offset: (-15.5, -18.5, -13.5), + central: ("npc.rocksnapper.female.chest"), + ), + tail_rear: ( + offset: (-1.5, -11.0, -2.5), + central: ("npc.rocksnapper.female.tail_rear"), + ), + tail_front: ( + offset: (-2.5, -15.0, -4.5), + central: ("npc.rocksnapper.female.tail_front"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron index 69b7736283..136af6d1d3 100644 --- a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron @@ -215,4 +215,40 @@ lateral: ("npc.tortoise.female.foot_br"), ), ), + (Rocksnapper, Male): ( + front_left: ( + offset: (-6.0, -6.5, -10.0), + lateral: ("npc.rocksnapper.male.foot_fl"), + ), + front_right: ( + offset: (-6.0, -6.5, -10.0), + lateral: ("npc.rocksnapper.male.foot_fr"), + ), + back_left: ( + offset: (-5.5, -4.5, -9.0), + lateral: ("npc.rocksnapper.male.foot_bl"), + ), + back_right: ( + offset: (-5.5, -4.5, -9.0), + lateral: ("npc.rocksnapper.male.foot_br"), + ), + ), + (Rocksnapper, Female): ( + front_left: ( + offset: (-6.0, -6.5, -10.0), + lateral: ("npc.rocksnapper.female.foot_fl"), + ), + front_right: ( + offset: (-6.0, -6.5, -10.0), + lateral: ("npc.rocksnapper.female.foot_fr"), + ), + back_left: ( + offset: (-5.5, -4.5, -9.0), + lateral: ("npc.rocksnapper.female.foot_bl"), + ), + back_right: ( + offset: (-5.5, -4.5, -9.0), + lateral: ("npc.rocksnapper.female.foot_br"), + ), + ), }) diff --git a/common/src/comp/body/quadruped_low.rs b/common/src/comp/body/quadruped_low.rs index 48e8d62d13..04f5ced441 100644 --- a/common/src/comp/body/quadruped_low.rs +++ b/common/src/comp/body/quadruped_low.rs @@ -33,6 +33,7 @@ pub enum Species { Monitor = 3, Asp = 4, Tortoise = 5, + Rocksnapper = 6, } /// Data representing per-species generic data. @@ -46,6 +47,7 @@ pub struct AllSpecies { pub monitor: SpeciesMeta, pub asp: SpeciesMeta, pub tortoise: SpeciesMeta, + pub rocksnapper: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -60,17 +62,19 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Monitor => &self.monitor, Species::Asp => &self.asp, Species::Tortoise => &self.tortoise, + Species::Rocksnapper => &self.rocksnapper, } } } -pub const ALL_SPECIES: [Species; 6] = [ +pub const ALL_SPECIES: [Species; 7] = [ Species::Crocodile, Species::Alligator, Species::Salamander, Species::Monitor, Species::Asp, Species::Tortoise, + Species::Rocksnapper, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/voxygen/src/anim/quadruped_low/mod.rs b/voxygen/src/anim/quadruped_low/mod.rs index b66d1cea62..d9cf518665 100644 --- a/voxygen/src/anim/quadruped_low/mod.rs +++ b/voxygen/src/anim/quadruped_low/mod.rs @@ -133,6 +133,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Monitor, _) => (3.5, 2.0), (Asp, _) => (6.0, 5.5), (Tortoise, _) => (5.0, 1.0), + (Rocksnapper, _) => (6.0, 0.5), }, head_lower: match (body.species, body.body_type) { (Crocodile, _) => (8.0, 0.0), @@ -141,6 +142,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Monitor, _) => (10.0, 3.0), (Asp, _) => (9.0, 2.5), (Tortoise, _) => (12.0, -3.5), + (Rocksnapper, _) => (12.0, -9.0), }, jaw: match (body.species, body.body_type) { (Crocodile, _) => (0.0, -3.0), @@ -149,6 +151,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Monitor, _) => (0.0, -1.0), (Asp, _) => (1.0, -2.0), (Tortoise, _) => (0.5, -2.0), + (Rocksnapper, _) => (0.5, -1.5), }, chest: match (body.species, body.body_type) { (Crocodile, _) => (0.0, 5.0), @@ -157,6 +160,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Monitor, _) => (0.0, 5.0), (Asp, _) => (0.0, 8.0), (Tortoise, _) => (0.0, 11.0), + (Rocksnapper, _) => (0.0, 16.5), }, tail_rear: match (body.species, body.body_type) { (Crocodile, _) => (-12.5, -1.0), @@ -165,6 +169,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Monitor, _) => (-12.0, 0.0), (Asp, _) => (-14.0, -2.0), (Tortoise, _) => (-7.0, -1.5), + (Rocksnapper, _) => (-14.5, -2.0), }, tail_front: match (body.species, body.body_type) { (Crocodile, _) => (-6.0, 0.0), @@ -173,6 +178,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Monitor, _) => (-6.5, 0.0), (Asp, _) => (-6.0, -2.0), (Tortoise, _) => (-13.5, -3.0), + (Rocksnapper, _) => (-13.5, -6.5), }, feet_f: match (body.species, body.body_type) { (Crocodile, _) => (6.0, 6.0, -1.0), @@ -181,6 +187,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Monitor, _) => (6.0, 6.0, 0.0), (Asp, _) => (6.5, 6.0, -1.0), (Tortoise, _) => (8.5, 9.5, -3.0), + (Rocksnapper, _) => (12.5, 10.0, -6.5), }, feet_b: match (body.species, body.body_type) { (Crocodile, _) => (6.0, -6.0, -1.0), @@ -189,6 +196,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Monitor, _) => (6.0, -6.0, 0.0), (Asp, _) => (6.5, -3.5, -1.0), (Tortoise, _) => (8.0, -8.5, -3.0), + (Rocksnapper, _) => (12.0, -12.0, -7.5), }, height: match (body.species, body.body_type) { (Crocodile, _) => (1.0), @@ -197,6 +205,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Monitor, _) => (1.0), (Asp, _) => (1.0), (Tortoise, _) => (1.0), + (Rocksnapper, _) => (1.0), }, } } From cf55973dbf74f90645450bd5e9e0c9cd1fb13a1b Mon Sep 17 00:00:00 2001 From: Snowram Date: Fri, 19 Jun 2020 00:51:40 +0200 Subject: [PATCH 22/48] Add new tusk ram model --- .../voxel/npc/tortoise/male/tail_rear.vox | Bin 1096 -> 0 bytes .../npc/tortoise/{female => }/tail_rear.vox | Bin .../voxel/npc/tuskram/female/foot_bl.vox | Bin 1344 -> 1288 bytes .../voxel/npc/tuskram/female/foot_br.vox | Bin 1344 -> 1288 bytes .../voxel/npc/tuskram/female/foot_fl.vox | Bin 1196 -> 1348 bytes .../voxel/npc/tuskram/female/foot_fr.vox | Bin 1196 -> 1348 bytes .../voxel/npc/tuskram/female/head_lower.vox | Bin 1600 -> 1904 bytes .../voxel/npc/tuskram/female/head_upper.vox | Bin 2808 -> 4360 bytes .../voxygen/voxel/npc/tuskram/female/jaw.vox | Bin 1208 -> 1248 bytes .../voxel/npc/tuskram/female/leg_bl.vox | Bin 0 -> 1512 bytes .../voxel/npc/tuskram/female/leg_br.vox | Bin 0 -> 1512 bytes .../voxel/npc/tuskram/female/leg_fl.vox | Bin 0 -> 1528 bytes .../voxel/npc/tuskram/female/leg_fr.vox | Bin 0 -> 1528 bytes .../voxygen/voxel/npc/tuskram/female/tail.vox | Bin 1208 -> 1904 bytes .../voxel/npc/tuskram/female/torso_back.vox | Bin 3392 -> 2956 bytes .../voxel/npc/tuskram/female/torso_front.vox | Bin 3272 -> 5452 bytes .../voxel/npc/tuskram/male/foot_bl.vox | Bin 1344 -> 1288 bytes .../voxel/npc/tuskram/male/foot_br.vox | Bin 1344 -> 1288 bytes .../voxel/npc/tuskram/male/foot_fl.vox | Bin 1196 -> 1348 bytes .../voxel/npc/tuskram/male/foot_fr.vox | Bin 1196 -> 1348 bytes .../voxel/npc/tuskram/male/head_lower.vox | Bin 1600 -> 1904 bytes .../voxel/npc/tuskram/male/head_upper.vox | Bin 2808 -> 4360 bytes assets/voxygen/voxel/npc/tuskram/male/jaw.vox | Bin 1208 -> 1248 bytes .../voxygen/voxel/npc/tuskram/male/leg_bl.vox | Bin 0 -> 1512 bytes .../voxygen/voxel/npc/tuskram/male/leg_br.vox | Bin 0 -> 1512 bytes .../voxygen/voxel/npc/tuskram/male/leg_fl.vox | Bin 0 -> 1528 bytes .../voxygen/voxel/npc/tuskram/male/leg_fr.vox | Bin 0 -> 1528 bytes .../voxygen/voxel/npc/tuskram/male/tail.vox | Bin 1208 -> 1904 bytes .../voxel/npc/tuskram/male/torso_back.vox | Bin 3392 -> 2956 bytes .../voxel/npc/tuskram/male/torso_front.vox | Bin 3272 -> 5452 bytes .../voxel/quadruped_low_central_manifest.ron | 8 +-- .../quadruped_medium_central_manifest.ron | 36 ++++++------ .../quadruped_medium_lateral_manifest.ron | 32 +++++------ voxygen/src/anim/quadruped_low/mod.rs | 2 +- voxygen/src/anim/src/quadruped_medium/mod.rs | 52 +++++++++--------- 35 files changed, 65 insertions(+), 65 deletions(-) delete mode 100644 assets/voxygen/voxel/npc/tortoise/male/tail_rear.vox rename assets/voxygen/voxel/npc/tortoise/{female => }/tail_rear.vox (100%) create mode 100644 assets/voxygen/voxel/npc/tuskram/female/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/tuskram/female/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/tuskram/female/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/tuskram/female/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/tuskram/male/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/tuskram/male/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/tuskram/male/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/tuskram/male/leg_fr.vox diff --git a/assets/voxygen/voxel/npc/tortoise/male/tail_rear.vox b/assets/voxygen/voxel/npc/tortoise/male/tail_rear.vox deleted file mode 100644 index ee74a1b9c7edf9124ca1f4776ab69e272e62de4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1096 zcmeH_-AmJ96vvM^Br2u^Sq`EhYbF|j^99SCMp{3_CYds~oRDn3)QH~TCz)U-qjcFt zEGNbCLWT_?#GBqOM7$72S0jQ2QPfRDS3%Itr?UvDKOyMAm*;uT_q;skrQ74R$3&#P z**K|(R9i$k4PVRl+(RYr4|scghSHmI>iE%S`K?&rBj6O0_4PzcOPO2U$MV|>UQhRzq-b!I?tb}tN zJDBR-%|LH0M(haA(J}-J)*Du=x2+V;IFRl_Bw*o8SQtr%IK8IvGeVbIMplH;#d7N2 zwZYSVmX|$zC#2On;ggVF5|-3Tz{;#C8zH_pP<7fiZUUlhj-#+e>ezGa+nIEH;0T(&^TAeVnn%(pf-GvNF+kjtradmT%l=voYsME48y?Xa$&RC@cT_X z9uv3Qq`cgu#HMq}50J@ZNTpK0kVqtmMx&UfNiZ1v%ire;G3md??BE@qj4Y77|B7rj byXoK1(16e9V`ylIWHPBMA^-93^gwk$O0MPOxkbe z9J~22(kV#J79EJN7K2We_YC`7!Ws6&_9B>y+8|G8IJ;e{{IIIU1&&wUt!Yb!wU>dGF)8x!1?r_ZRajf6#|GdH?_b delta 386 zcmW+xyGlbr5S`cFK(q*mRS?8NxFGRSTv%5H3yWJs3qfL9yKT~{O|Ot>KfgGetUnRa__#d<(N-WjZ>J~Ap5Q1@0X<-HIc*nU zKSzEsXI6?L6!{;9SOG@PQ5ftX#3GpiVSy%50?n9Y9$7VuRuIu>E-HqiPy;l}957rh zvLQDxbWzI$1A-|woDutQ*U^s!h!yY9485U>1Tzsst@k7M8u!u$KQI?C5QE7A7`au@ zVW5hiAm)J0(F7A>i;s%~eZOzJ#IL=Voz?PvIP8A;b19`%9vUh)Y0!Ph+DaPLWqUX% XyY)tCMw?}SukL>2R<6fySNhC<;S4xD diff --git a/assets/voxygen/voxel/npc/tuskram/female/foot_br.vox b/assets/voxygen/voxel/npc/tuskram/female/foot_br.vox index b9c14e68f0e8cdf738c54333da815fd50b8b1a55..2988cb31b19c19fd5904f890e1473880f309c65d 100644 GIT binary patch delta 332 zcmW-bJ4?h+5QWc~n<%Unf~8qp0x4ARQN%(`VG$(Y0~BQ4pRk3E;cl?mRxE4+HrDgZcHvc=Qb5?6^6X!*2pyHIsTdCNd{du^`4bljd7K z+O9Ci77)=VXiZQt9a@<3i0T$|K_(rEDJ^>ENt^4T1QYZy#Y{Ueoe^ngicOkn$o~7# z=_F5!q%%l|bZ8!oIFI-Vv@iA{(GJtB^Tx!RbW^XXrt_zlC;dJT+~?D2f5*4Q`e-j4 wZg2Ek_OVnHMac6!WLeh#*l=}oGz>dyE1@jQP*qi^>$+ce_x5=E{^DNw2j4h2kN^Mx delta 386 zcmW+xyGjH>5bW3N!D(J~APH+^cfF3ZpoVE*8 zKSzKtXI6?N6!{;9UI7N@NQ~+r^dgx7Vu2=+0?n9Y9$7V$RuEw{7Zpn}r~#T~4p^=h z*}x4II;mwrfFM+qX2QPQb@=fBVZ}W(gEv%B5JqB{bw9Yzc$PN!fw_Q%SS%J$!L5Rh z09E`1JqNrTCWHuEd|Vvp`+eIbe(k;Ntd{S?VfV|QODU!D&``NagYHAtR??_0+rvTG Xtv5#(r5ky+`>3U diff --git a/assets/voxygen/voxel/npc/tuskram/female/foot_fl.vox b/assets/voxygen/voxel/npc/tuskram/female/foot_fl.vox index 0039834b0902afa01a425145aea1378e48e0b603..85dcd5043d882b2f7a7ac63b89f0cb59fb02cc3d 100644 GIT binary patch delta 389 zcmXYqJ4*vm5QS&X+%@{(~*7E}LMJUO@;8+S=IJ zh?R|%|HGehJtJQD?wPrB=G?c{@3qC%#iaivB4;PnIYkaKk;`gYZg|7PRyzMWxt>;{ z{wgx|D`*UarWl++OrlVQs#FVzW=fR^*6MwxQ3*0xL|dWJQJNeE8pD);H9W+_7@~in z?h7-BHL9TjYz|-sXbnRHQ}$8=p;1Gvt}v?CLfmIWW~xW1A)zs~#yB(%jY~$eamlz0 zrAPURhB=I3?&aI^Wn^EEr^}!BPB}VE$9p^Nvwp4*hr=`&3{tn-ZEw)q+U@t!{`O|d V^E?$rk;<}cA8?2J+mDXD>MxIjKHvZV delta 262 zcmXYqKT88q5X5KqMI^ZtX)NTL7(uuuQH$X7v`ArbLQEk@ynF$MxISlIg!@_jaQ;J|O^%`)u!t9+Fou6q6Y8-Q*nxuD^_1Y9QRS+xk1`)7mRzfO~z zVo7ZiRg6U8Rp5oFN+v4I!Yt=1N-uDk0Hovv;=wM2UFZ&n%fLel$rMVQM^WON-~0SX zPTbE^l8@zk^K*a8R;OX!(%+b}=QeB_*X-qSXwy+@i}{S)+3Rh??gya-L11w+vQ}8L XgQ#Kc=AIoNM)|Ir>7={-a0^)jg+)0E diff --git a/assets/voxygen/voxel/npc/tuskram/female/foot_fr.vox b/assets/voxygen/voxel/npc/tuskram/female/foot_fr.vox index 696dde4269364f3682df4c443c32b61e51b0fdd5..2fc6b34a4bc68724b6902522595ecbca083c3fd2 100644 GIT binary patch delta 389 zcmXYqJ4*vm5QS&X+%@{(~*7E}LMJUO@;8+S=IJ zh?R|%|HGehJtHohJ@feH+_%;5wZ+xNr2ix$XD8J;O%5`V%W7I~c*BpabpCyEJ*`B2 zDl+z8&=@E}F}MO{5``{wrCUHWQ@TX3R_`;7N+FX)v=xFbCFEkDF-$42hKG06s4u@$l7^H5u+uoqJwcGEd{q4<^ V=XolMB9&#?KHv`bw;vsQ)nA7#KGXmJ delta 262 zcmXYpKT88q5X5KqMI>H|G!}A=Mi8z^)FSviEi5cfh!%n*=NAYUFlGKISXo#p9!RWG z1sfX)7WRGwzt1`k9Qf_*EW`e+eN^wSF1nkq06HhxISsQ4aGB+&wGb%x&kDWU%d>ts zQX63?hNAEgcp*?JM1@(HP>*d(pn^TWU~KFRx7}37o#osu`Hld z`C@ykIsSe2KO8R4e|vHHh%H*mCxa1J>NwLt<(!pECMPB)HB?MA)WJ2F6=f%%N#~Go zJ@yNtZ0H0_>`<|&afc}#hnr=y$q6Mk*&xnUF^7?eD|WF{V*^H@iN`MJUe2YN!jf=5 zL+}vtKxXFNhpPoMHgI89vmwSz#v+Tb!8NJaP-O>kfd?XOvurATGuv{Gq-_riPBLoi z18)evtu?aM0}G4<7wucZ6C+}V1tMZWam-+Glj41GZgQ9+ ze0vW>dTX8IoxFNYu#I->;wK6FRX(F>ud0R3NpotVny4rA!K_AVhT~~J5KA?voaJYb zIn@Mnk}TBTUhczOME9a*K~pd$LW^3yeIwqA{Jns&w~+&D_R8#;IjS>vIa0Nk>Oj^} ztUcixgRpN@Xs97G$4d5)22dl=khXJ7sZaY!4GH_q9wEc|aL?H1ps-j}a~;yjj5KNw z*l$8X3uPbXa6UlWIR1p-P59*KTkP7KVPq} zuh+j1m-v!@z5U_v3Lm=dw_mT{JbrL^$aja2I=<8V)6>)SD delta 681 zcmW-eKWh|G6vgkqHxnU9KuoiUA}FlLt`S*$ZY*33vPDcGgcwDb#l|U8SVarBP9YYH zegP3{QG0t^KZqYdc>dlFoH_T;x%Ztn^Y{F(&E?_2(Ungkvj1TI7?PWf$dmc;-eygB zNaY*|aP;(e{!a;b-hpsE3AgO90R`gPhiX=}Y+}9BPo_E5x_fp5>N)7E+cFDcL13a? zB6e6+x^U^dE~tyvVse*7GU>&oSG0jn$fMETR2FU+sX*r@i!kYI%@{KFU`DCAR*hq7 z$#AMJ9XHNF6?F->Vxd*HW_^$=CL=N2dT+p+%4lJ2wF}_Eo@xe;#HErfbUlMEhyz27 zo;b17^JOCo2?o|IS?eIVCXBGafs%XTu!^7tEDR03)^Y%CFuYL>P!Hn7ZGqOyabQq0 z`hm_isupJMuJiI*1Sup(Q=L~6{DMY01>W){KwwT1Cef^3`mX;xo3B3mxAyC;i{;P# z!RlFj9PjP!l<8<#o=-;Q^}}2aZ)}%WcLwGCqif~Ii*cFFW@S2^mJbstZ>C$T%jwdE esvi%w%Fgg=nT)QNd$)(HgY?!;_rL#6U-Unw=3vhN diff --git a/assets/voxygen/voxel/npc/tuskram/female/head_upper.vox b/assets/voxygen/voxel/npc/tuskram/female/head_upper.vox index f8d4e533ba73c74082dc87b9b1871a46683496e0..3f3f3d58f0705e7b2607d250fcc3fb8a46e0d4b6 100644 GIT binary patch literal 4360 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 H`l^2da!kVV literal 2808 zcma)7ZD^I}8NQ$I_v7fo8e@}mF^k&e#G#G4n6tPpRfEm3>99`MMl0=TndiuPdk9f9 z3mt8?GFMz(7Geu)ts5evt!pKbjs0*kq!daiu8hHuQnsIsYH}6 z6=IXRQK9ZqUo)wn)?BR*g-IwUQTEf8vgMtLa^Om6?`t~vnxl?aNug9$7)SjG+Vk2K zCiBx?LSa?(k<_)yDvr=9G#sH-!ZqQV7LKqgub39nx>adCxTN9<=aOn*oStwtsd{Y+ zZzvm{yOcU9byDh3wkdsOd_SXZS~Z688QM2#)l#;Wc@j1-E>o)8BurQxDppgrrHXZg zryTN%m#hdXG`-PHWi4%ly5YHEPAUn!PYY$TiUj&67mE7YWL2AmV>XRQj@c}!Sn{Ch zLs8#q+BK!Z*+3s@)sr{tV@|fAR4AMaH4}BIqjaD>>d|Jfx?x?YdPi=>lj~5`)K%Q8 zxVPNXrYDbzwu}i?%QM4wy|Ij+vDvI@2yq$n%_@qkc8r(0hO79ju6$P2gdtSO8a~Dl zvT5tnsxSthkYmOvf$@dBuAFJQ79YB4cqTrforHE0+DWP|)+2BqxF=LXnf?voGS(#8 zi*-o3vKET`c=o+v?`XzlT3{T^L23GTIr%b$AwN2Dq_et-HIt;!T$RpwSE_4Ws%Y9! z>_bbx*5u@yT#~oobM{rVX9{b1?up1VZ7bes?v*XE9wq7|tX-)RSToJuGvv##FD32` zeXvhWtB=WJ>~WPggs_|mL+Cgg$~7!?6lXd)UN2=DgTe?^B<$r$5Ko9p~4@ zyqJ$?FFWSynX4lYo;*16qBz%vylL_%^x+fE9C_7oHpsbS-j4GVJZCe6nq#brbMILn z7kirZ^PcDYo>=EVJZ|p%A`!5g26nz-_ zaO5ShS54&6hufc;@0+&VLFKO0-RA z<@tZ`{69FZuJOq39S?}T_5T_k9>(nKEIyeRJoxH$tZn}%{@&h>Yu6?apSQ-B@$jDe z@Z{qom_5D+%csV%JpUw?&o;4b`5Cm0cA)c#Ui3b@0p)WQ$e4p1%^>GL3%TBbwh6)N zhTxtvf-k-;NRA3t%n9z|zT*wS)`=X|MjIxdy9+%+H zTZNCl(hXEUj|CB2A%0)0;V)blP6#gjSa9v4;JtUa9~GP*6a4ZK!Od?8YP$s|4hYWF zI`G01g2kHP@UYsT@^tp6F@cyp_fBKzZrq+*_=eFSbTRZW$KkmcSi)}dl^LD)R zVJB{44JOG)EB~j+%W=WZ@_*02@zA~h&i~C56RrGv?*0r0`c`3J%}R`vS7QJ03hW>J z|MTCnWea|^?Ho1@p2x_k=g~RWiFbc0_~@YEjsAX=%Viu{dmIlvco{M`gH=}Vj^YymBq8t*m>YtRe|0OqkJ(@U>z-5C enzP&2*AE`Tr~7#MseGsPPG`5jbGv*8UHKPDvd&BZ diff --git a/assets/voxygen/voxel/npc/tuskram/female/jaw.vox b/assets/voxygen/voxel/npc/tuskram/female/jaw.vox index 393c10b0be027442c3e8e4be7d3cc5956240b6d4..08487a213349ad4140f30d5c3b0d6ceda4b61a51 100644 GIT binary patch delta 301 zcmW-ay-EX75QXRGDuiteDYHUYSV0RV#a788E^HC-r;`{TL5S5YjDnSog}4S3!A{a? zWuuKx;6vE^5aXF#`0mU-XU^Qu)^DqQd^GMo64All=n#c|ns(=U6^(-N$z=56D$a&q zL81Z@i7Xsdz2_(@y9^|tGBoJAoPj3LmO4j*Cq9p=fLHK#m?Nw20fGAnLkJ$gCk_m9 zlMn(z@SQ*iP;B0Y`hBop2JkKr5GE39c?r+ZQ;(TI@=NY)P lhiPV4r(H{u#I}0tw$oj+qA08^ORMX8{v4azyaLA;UA%DH$v_K_2F1+c8JxwjK^3$DwZ>u}nL*2LMML?ihl|i#mHq)WkUX9M diff --git a/assets/voxygen/voxel/npc/tuskram/female/leg_bl.vox b/assets/voxygen/voxel/npc/tuskram/female/leg_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..128e7bd0ebca8b873dacc2d1232ac557d5468143 GIT binary patch literal 1512 zcma)5eMntp7=PaPJ@+cvOqw6_V`^6|?=@!5&!H}-UYuVGXWDjkvc*PT#BE5Nd$h}9 zvqsx+nTc*tIV%~lW}B!KK_($%FvhSELC6>p{o5ZA{rBs4919_%4m{`ie4pR*d){+8 zUpkOIAtJ4N8uwAjeUC_cV<`Bf>+rEC3`s2Iz`;=Cr-}xjUiYOvjutP)V;f^djHVdc z+C%MijHW2s%FBEV<1w^jY<6`F&nP3dDAtRYaVw&Q=Pmk{*VangT8pEVIEq>+u?fw3 zS1W2A5oMS+wiZJyV;f~6VoXF^UW$itv9)EfSB#@|jIB+KBb-x=#}UpdnzhEoA_vZ@ z75TVx7#-2%poBA!kJjvAD8vvUhN3N+d5@#WMH@pdmaRCCVvSn&wXL+~szlUo z#y1yRurPK63zH{NzHkBwHOWXloQ>>L1@KSpf&@K~z9%5lPeWFck-3ZB0q zi0u<>85V4%pL|VF(i(@R{se?hZ^ik=?Wm6m+QtR1&I$(a@oZZfGQ&RPMgu6DuR;1i zB77rh2+U-m=+<*c=@#UkX733>)sjG7CjL+?WIP@+mx$WhS_G?#P`SeoG(CfH5iC-E z2#4_t^|&LLeP6JARdD+z{Tjh^Q1In`!P;wraD%|<6pV(GarUraA}r{s5ZLvCON_Ub zq#+#iVW=%16UTNU+EI>)-a0J5^9p{Q38Nq<8C5&8(EMUPj&+u!uSqa`NHF!fVCh{! zS!Nm<1G(rf+kt`lUFZxXBV3Y>k%m0X_Y|(ro|l&gpU;Pkj0}vv-G{*wAY(h(OIhd}mr6s9Mjw6qk})zt_FgBX1)1G86r`0;iCYj+Fq0Ws%i1b4m`{QSLO zD4dT=!^K#+UWea)YRABZ1dM!^h@1CPv4$*!xQ})IN4XbUQ0M=5{{1b_{>}gM^T*fu zXKs560bddVS@Ed!$D^ZS3p$GaKmX$5V!T&Ag~Fm~RGvG7)ZtXz`dDzkOK>eeAAY|d zy*V~o_Rc|uhmbUogvH56cX%p|-%e&G-pm`v?#eM7y>J%WdQx!ri##lbQZbgD{g3^- zb#AYN?RPNH3k*(P#qcNdxH$J6E`Pg<(v#<~`^*%YKUzZjjaAgt)Zn225=+4!Fsp(G oUp<=d0l%;R%JUao|Iaq+D_z}q?7PXw_GWss*v2y(?M-UsFYm-l)Bpeg literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tuskram/female/leg_br.vox b/assets/voxygen/voxel/npc/tuskram/female/leg_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..de20ec4be45f4003033fa422639c7f55c4b4bc7e GIT binary patch literal 1512 zcma)5e@LBG7=F(=-&M(G()2oiOzo=Wy~fP>bExZ1y*Pg@oN1dn*5o8iF24f5x5rm8p(ZBr>(SJ|Ry<;I{)PaZheb0H{=Y8ID zzOU=01G$qT(zd5*AC261iF7n|2cC=uTo%DCNgxg!>~8v0(c$VRjCMIn;%p_ZkQmDr zO&Iz*8pqMb*`i#Is5nPVydyfEalB)Md92Y!Y!f{vhbW6&mLnExEpjRyQd&YviLEuE zB&0<`Mv0?E(Q3yi!*j#_hTMcQjxmg_xRA1<+JwGEu6T0A+see-##qd8g$%VC&3fuo z)TcC|T=c2KM0-=8&>EMmv_;E(ZEPciVl0|ETm<>qQyVL!*HjJu?OT^RaI3X91i2*xM1&xtH?|F6ThdVU}dEZ(RICP5&K$Rz>!1M z2-_|A=3*-r$B$rf>Le-`PaxUvM*87gmakToWF z{)Ql7K(Hku*vi;_O;FaBh~~j$bf4ae^Gn;&5Eisg2wt5N4BumIdj_(D9^{98s95kL zb0`I#(G2)zb5L^YIi&Rp@=ud{Qc$xjkeAtiBmpv!1es4kU0odlH6^It;RTwX!Gs8w zh#!JM{6ah72|*PJ}xvG1*^_m3Lmjud_iE<+)L_GY2g%7UEb}B?g)Wkwb#%*9FV( z3M#TQ(B#WUZ^aG_HS9u{&y8SNCPo_zu+Uc=(_TI&g)b)w)!rm@R&7CN$^W0fw6qlORZgS0WCqpe&LBOKj$0oK?)M0;6&Awl z^`bw|M(f^rNMr=5L#bGrdh~{;GWhLeXXDL+3GA*O$I%OCv8^u+cfTmWQg=GWb94W3 z|IxfC*TIfE80rUxr>-LM$pS9Ue}~K8uA%(oIqW_&jh2s=(Q#u9e!m|N1&{;+f55B> q9(?sk-vfSM|8>q^F!rBqv{!n1@i>kiKK3`Wo9%6^+30VQD}Mn5YD?h& literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tuskram/female/leg_fl.vox b/assets/voxygen/voxel/npc/tuskram/female/leg_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..63d3fc488bfedfa668e633944e1538a584d277fe GIT binary patch literal 1528 zcma)5e@L8V9REJg^WNR-Y<9HsoIj@5>6LfJ%=vSu>!u#gUkhj2b~@Q&BM);M67TzJ z$6~u0ZNtq>bb~EtAtTmo6O|&!BxDT67#0zPj8W0Q{SncBpT6&ng^*DXeE9zQJl|i> z`*yv&-#0--ZM&QHvY?+GL>*1h$Wyk#M`N&yHZk@eh&Ig&R`|TZ5Ry!($P|h!Qe;R; zh7e?u5*A5e3Ly+(OC>laEXjT$oR&}yOGt)rFkfR`dTiv7xzQn9TJvL%Cr z#`QQxtaB|XlqJbwDB-Y_=Cl+!O{r;y;#^8;+>>OQ9=q??jBMozAk z!gHmVQlv1?$#Zah&Lx#@NzN-3_n^3EVbAYk$&j|qNOE~UN;d^_h0ra*Jqw;ukb`0G z%Ed7k?~x_XAtd*uB==+QOL9%g_a)bo%#r54#=70f2j#b`s;WXf9>=3G!k()u$oKq- z-#s2IFSo%yH=7o)x8+3~K3I*o(Solov|?fGFcv0HpmO0j++i;=5BcCbS%l!!PEf=F z>fZ#Keg?GSg}aTAF+j)}CA@Hpp!X9tCkR{E_TC_rwWXqYz>VmsEjYKh4GnQZ`#9mX zS;Ei*zT2LK+?XE)@enHJ!^j@=z(10O&`cgm?mUl-9zww>&OJe>St8IYTz^;xji-U; zJgBRyL!_nz)!TzW^RpNy!Xo4QSPZ|g9JdIw9}t$W6Ykz-J4~345I)~WSbLoiYb01* zgwdE6XATi2Vuao*g3&;@#QyfOEW{#y47V3z;^+>}r+l}(_a@5w=A`*#U^qm~cUi0IJ zyCJOIFTxeBIX^?V_a)({ZwbS(LR?CeV&!H%e*3WlgXi5C`NV_U4>GZaJVbdP$@!1) zUJOEg@ZaYjXnpSQ`9D2(EIEJf)~6Bjrz4b?hU#D%I;%FLv*iEJUs_s<_baDRTr!R7 zv!{`n$i$tG2;X%RZWI-$3i0IZ$F4>4WK5oP7L-C$sq5$<4*vfpP4r9>bCI zXRx(51NT1*U@@ABF`w@r`?q;^t^*zSFxUqSO%c+b%e zi_IEs!_7=|gUVURh&9_pr3f+!8G|v#iU>l+sOWD$BKmiA9mhh*s0S{t`}?`?`+48a z7x(8(h)C=1#=Ru@*&)*27z{iSQ+O4G2cl!J|a3k zEGnL|i*QmWD?-z+2+ey`?4DS@i@iA`hIT`n;XF!QgfpySy_k6JB;Ho6XLKAvzjCn; z#;~q3P9lzTSkx&i*3`_4)#rW`=hBSTjMdE3;9_s0ITc7`?cH0$VCuF>qp z(5|^p%^1xdGOu<^#tvg)@&qatjw8vRg0w?9$T?XE@6=96zyayo1etycvXX+NRzYgN zAahjk+zo-NPq2Adu!VZcH9=`>0-E}h5InU7=N7l2J}PJ%7rZhn7`(^awsd5LJjjds zP(JTR#(*21k#zWGvQd2NS)_Ig@=me#grIs!ATRO$As1vk5i;jSZEYRV4}AU%kR95UuQxn%uPY{j%+l)P=KSI73gac3?CFs zy)Ia~C@9ZLN24zf-R0XcP`?wMz7&K?GceMSkNKXWwchjd^WpJ$keQi@(YO0Bcsz)i z%R|H)7(3=cv?~J%2?_A!Y(r5-63WWTP*YQbKp=q8w=yw%#e*Mi`>=Yq5byKO`5D2T zF9kn+D;NqD;L>mjR<76Kw;$Uva6SnmpSW@JUK&=BjUe~2HvbXs#TL|g|9$@cmS_H+ z|I>5F*5=RJ`XqdwWcacZQRPiUN9AU86#xJEOG--cZp9Reil^~M4t979L4hDLG!O5!_{&*f2=Dxw@ukWMm#98b*J%#2Em(YIWKKy<^9tt2X u0)N2V7d-glQGXBkef^i8zu?+`ww|wab>p!fb3T?g;*D(UbJoin#L8bHEKZLA literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tuskram/female/tail.vox b/assets/voxygen/voxel/npc/tuskram/female/tail.vox index 9326f5c8473377610b22972040dc5cbad97f30a0..2243b951fcfff42f482a5a2905bbb6e77f67a01d 100644 GIT binary patch delta 949 zcmW-fy=qrM5XI-?%w9ziA*Bg~Kng_^i&Q3s#lHynQ3w))y>NH&0c`%gg%ASz0Agn& zHrn_AzKV@+aQ)p}ILz*0W_He*`}6w0TiaJJ&h|f<*|R67&k6QsGJAP?zPY(x_!@w+ zYvAnl`RV=S!1o74)QD&!uTUeMJID~cxF`3V)45+EdU^~G?-5R(Z)b53NuEAOdQTuw z>B9vlIHKgEVl57u$DBk(bkW!oF5!Sc0as89Cvp^{fJe>|$-~LJIh(fXp4lTI6OwZQ z7m0#XQVhr4LtUZSQVc7G6%WFJ0xtCsoHRr%?v6tOMlVm?0ST0aD?a;HkRVkktT`a% zOrOS3MzWDi48w(n12k>b15_|Lyx~;Q)H1rE(yj!tmTdHHgFSU4*VfwAe%9hH>S}CF zg#(T08|uOO$jTL#7W)F??8RfnE-QzKUZ^e95(T^vQbj&OKon~$)>n<3*27qZ1u=UX z?wW|&4mX-ZM#DCeYi$50IB(c&G%}wJSIk+*s@@IzY!qCfCgGe~V*oW8gJ=xf$PXM` zt;Q*L#}R5l@!v(8v8lCQD6kS%@n`0QbrXq15H+D>;!%|Ns)ThJ3IjeStSp*0e#CXx zt=npCFc1o5Vo1P0aPjRpe}8;>@%Q_*IexS}esK5li~qWDczC!R92_jWyStZfV{hl) g{@(KN&h6#s=x8}PIaxNF&E@BKA0OWR*vYT{9~@$UL;wH) delta 250 zcmeysw}Z1j%s)b58Uq7^ucN0QkYZTE!oU#h8Rg0Y;s5~?5HkZY2M|X@MtPP1X%LVB zlT2BR3_#4tXvqM?jEqcK3_#4t$PA>Jfiw$HoCPS(3Z#LUfia7LiPe%3OatW@7<7RG z>_9^pfHYecBM>t%F**rKttFpC#NvmFmLVjoV=KMBl~g#(f?O$r6)(T z?Buq#w*KF5#_+$=T41s~tE{lKp5}jjX@UQSno9r8^wj=a8EH=TXRTtY@ZEfxbtxkN DqLVBS diff --git a/assets/voxygen/voxel/npc/tuskram/female/torso_back.vox b/assets/voxygen/voxel/npc/tuskram/female/torso_back.vox index 6f6d6b8a474f065b79ca0f6fc79fe5b9d0fce8a4..37083a205bc5f67927e445c7e8450b6c0c15c193 100644 GIT binary patch literal 2956 zcma)7ZH$#i6+ScP%*=bc7KvS!vQStTR@ucADPP;YP`AJaxIhg>uw5u=O&i(07usx^ z_r0u}ns&9ZZD?^N&?YKHLmE?yEdio25s4v9lcuR?jENylV~l_OVT}JCpIK5vB1Ug= zGVh$3IUmn?&bj-({7}zH5!rSB_6N8~yF+Bp_R*0~V_p&b*Y2$c&m6r;6$^o_`SuF%pK+LoG@F8WfUuUzs~;#=Wa^lm67 z>Zyw+Lq7P1PkzXP)Lrl`GpU=oBc>EjaWWJvRleYzTA&|ocJ&d-DxPQI&eEX*&kj@X^tRmce2>Fo(b#T;9{RcaE`GLu#Rtnw3huGQUvsL&_L+ z)|PJs>U~X_PiU+64T-T*$8+Zzj=5=(sAt@aNplW`l|JipPDLmaV^PKua?UZ8mQrOk zU)NeJoiYZ#Nj2jgZ6so(ro2lbzN*@=B9-ci0drT!n$W&8=0^J|#WDp?tYVd%ZwHN~ zIA1zP{6nZBzcu?JrlzTiA(YCTm6!(~+cLY)bqMXGq4LaKSZ_zHEV_DdS_R_oh>=rb z=&TIH)P=}%Pn?Z@Sm#Jg6YcuQw^n(+GZ(8^WS%hY5E{-AN71(Njxt|IJd@E6?MBCX z<(wSrEmk>4Jfd+=EO}47W9-^e`bfdbWb{Ft5^L{>t#dr5s3!8%4N35&d10K|k{l~J z;WHmH#zuZJu0R|jb4lu}P%t-Q;lA7>MUc;HdBG7H<3N%bA04#WUm@I6KFS(FM;^ldJb;yJTS$z9GFV;|Cn zqfUL`Jjp$h+U9Z|T1m1}lxOTANB@$s=Uzz#oBo6#` z#LpzQlwv-Ot4}R+si`he7n&wvT*bH=_sUh98j5kFs1+@Z1^-uyrg2rJE^*J*xN5;~ ziq^QNXe~93;%jL<)KbeAlv->CuAvskeM&7?i>;8-c%se^-qn3|fx$1{R$Ke&peo&Ut&J3DdZ$}Z&JTiY+GFJvS@nzupDdBZ#kQsux@cTwht`BfpvFdV#~eQH_(N#H4AZUYacEg zTsa$iUtb@3dwa2H(IOoGb`wXR9L3q!CMn;*%#mJ9?O%wFjt&g;+=Z13=VI;Jwb;0E zBSuC>aQs_~aPIY9{PDd3T>oGNzE7VQ&I;cDrQpxM6HJaR$E(w;arLdu_}icMVB)2@ zIQElHyz}7#T*nfO5|7#ZA15xQU~~U}&;Rhw&;2|9pT2lxHvh$Uei{S4^DwYv4(k1L zuy^ow>|OQ$=f8UOYJ7M7X{=mz2K5)7!-DArc=tzw-|rW^xqLbL`}=WdX^EZN&O@dr zF>hiXE}gnj!)Ln5oyCjs&At=3uRepvUwR&Q9-NO4e%6OeqYE(8)AJwr=X=@K!+YMx z#3A75sW&kF;|qBC{BQ8uudiY4Q!n7Y=T2kC4=-cS+t)BWJdBS8kb;7LK(7ft`o)d- nJ|e&V*Ezdzw$E-}U*CTKpX~GDC*QYPZ>78W&CTDpxGVnxRvhV7 literal 3392 zcma);Ux-!L6~_1fz0bYX4$U}5P1TN?I%ClIr|RigJMoT~xyBS@waI8CDG7D1ngj`= zc1TI44Yk3<+F?wft+7QyNn=w{Y3YNNBB2mMu%Q%+giuOf`%p?B3ah_$B}J&Ez3{R2 z+57Ch*IM7V*15aB^zg!IW6ZYuMjynOduAB3V{~luC-i||1L(MbhaVXm{ihE2ZFI)u zoH{vym^!7xhE&@|=y;!M-;5oXa~&JG6D!-wF4P5Nk1d&X-fxCFV14%;-YdD|U8-|1 zt(eS6%pigSg2Fx(J#fI9R$;&8Zd+3Ax@UxTwy_RAcU)pU+E&S&8**K&uPum;*opWU ztJsbWkMFi^g6~wI;9Cy(7XtIx7&@VH?a*+oP+U6}_Ef$dGII$;5P)Y*-%%e*Xa~o$ z?z0Npj+uRhefS-8KQUy@SK@qPs<<~cQXTLmH1M(M>yQ}ho{Y`d1PbGb)%D=prHY-> z)ObDjvEO0IMX=bM>Ztio*o2MPh=rpVVjX=VFXX=w;KFwj2;?+m{7)bPavt;@{0s09 z;4fI9+<5L)ejMlMIvhFWzha*I0(X0!t6)1N*g87yw5by`|9Xz*U%4Wuf&7F7BEYwx zXQP?Go}llj-`txUsxjLx4d&2Luo^RGR=GC#V3{w8cw*)r)-)%Y4{{O6Lm&qMp91>K z*|uym;ENea1+Ei5dd3=m71~L20GEk8 zS7d)8Psy-OTuIN=e4(9We4VWCIC380HF8IU=j51&kL1w+dP{H|(OHD^h#rz!G?$8P zMb=VxFY~&W*c10AG?CCvM3;#@5pASG&e2X(ouZM1&JsDd(o_JO|#c)A0gK{ znwD1%@VO*My}1J=Vxv2dGvn;2dxt*VXvUw)Gse$cum#Jw!v6xYTI)JVdqyJ@zeD%r zqT)Wdcl4s9`JxX*L(ZD`fL4de+2&Yj~KWVrEgZmp%R%!nuc0!J2qJh>^% zJK}QaBh%Y*WVAaB< zh09Xu_rX8H19rphPU+maGxEx)id#yOl~#5RcL!^))AXGfwTB804zPy0S_#F(*dvj zT6-$+!1BFyz{f!Bj1zkkW6pNexX+Ba!@-5`{%@eqc59A3)K3BhP7}ILd=m@3!D}6% z#e(0Z+e29A8)CaY>i-VD9lTpb>YO^M@FSx`!?WSp=ri9jM;|fNVg(#~9@?_$J`-;K z4_d!|y-Z9@$VaD)-2a1XvZ(hT^0(ezxq5Y*=d*$&*hh*aLR=IS1R4$!* zTrQn{M%G<=T6%{2WX@v?W#MznWZ+CKW^)v?zai%Ar^H=Rc)u*37?iaa zhh^TOUgJ4-(J z!aR}oXJpD4xeR_kJ}!U8P8~6F{(D9?Z&)cq%Lim?*vQ$-ksDt#GQP#gkzGbk zj`zunj~SUBH?nuVk;5ZKUS)p!nz=H*xnGWLUntuRgORj$VEAp3fBysXV!Bo$PNLnS9j9nP-h$dBw=u`EzA-aIx%JyIc;9)Us=^PsZ2GlM`E( z$i=-YZu&JeB(JO`A45HI@>~1m=+k3z?zLm!>vHO;ewo-kPnykU*Z&psdSvB5zpPz; zw|supfSmm1U2^{Qe)+?12j#|l%jEmqdGVZ)cYkH%ProyAY<#J_I=Nb|z15Px{&9yK zdZ|ZF{G?ZY{{9@fAq!-Te01Y~g1j6y(i-^h@gIEP?tjPs(<9ru@z1~WlQP&pO9mIr zl%au{vUB|m*}3xnkAL;*)$-kSXJp07vodu21(`EBN8b67kq>qod2{Jf85kIleTxpu z1NUDLGkHvA9hxPVPv7M5xw&X({(Skyk}26ZbV{Ch=|#D7?`(PRXG`Sr*c>^vaN&RC zU*FTS9@+7(9NH&x^z<7t`QwZ7@`c~XYrnoOpL^!GY<%I2Z2jRC+41&u86F;%kBo>Z xK>jZNx{(imdDFiS(bxZ4rwY4ucB_4T_a6E9Sr`4>f^;RFBx diff --git a/assets/voxygen/voxel/npc/tuskram/female/torso_front.vox b/assets/voxygen/voxel/npc/tuskram/female/torso_front.vox index 53c6148de25b49f6ea9ffc31a94e1730cacccec2..0381fd4a35ec8c40b6a2e9cf403f56421f7e4705 100644 GIT binary patch literal 5452 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 C1}EPD literal 3272 zcma);ZH$#i701uKoSAtRiyONv1uCoyRCX~SF9P>oQn$Q>?xoaF1lxs@*0hnml!a^z z0o>HITN|;#QrtkBs1yxpOf9wqh{g{{3~8D)O@qdm7}7Mx_|*@_`0e<6mei1l(M^6k zXU_A?oH;Y+KhNFul}Gzdi^#SIh99PpOP>L8>N1yl4dNq5pr&bSBQ;@wxX4k7?T*EIu&+>o$IlZI|@EA*5!smuIsx_&~uWd;xCdA(BHR2Ye7bK2UH0Ux?3y zfDaU0jO2hX;sXWI*m2-BwgW^^kc1z6!VeJ?B;(J_lkr0Y1y}GDd=NpwRrspd3{@P9 zpb)xZGlD`vI}W@L&p02*DYU%{eKUA!pdmA1@*2~ah{dd^KxHshKV^cb7bal*>Qi= z^ZJ7cLRa7{ct-w(HG1x*jBYb~l+kNOn+2U_^jPY91|4Shu%y&UXf6{ov#yM;3i`_R z9mSZ;UT6(_uAD>SzEI956|~A(DEpR(ThL!dYb7XglsMRm4-J*1#L#wzlCjZ8hBDm} zgLx7Z_OMWE!LujzUJ|cR7nyivdOv9+e(I-CQ<<8|XsAF&Hw7|UDb!%577NR zj1~&}S*Xceg9ZwFnyLAM4ia^qp-}&c`p(pQqIMHCtJI28uZg-&bxXY_*5tX{6KhTN zzHoktdpFhJ3C=O2{gka(fqnQ@UAk@+LfBkxAWM&^mk z8>zKa-&N!l$uE*;B=1Q6N)ClORmLdmRpwFVQRYBs8?vJZMFym`8c8 ztg%9e868&Wp`gu#ze2ASI;f`4*0nNoR&{JNozZkbqe_lKZ3ycX>Q$)Kihf1EqF>QZ zd?TIXJ67wGR{54YzW<^AEx=hg^jN^5$ug}=LBHIE%5MsA6|o>Q*25!PHasBl*6)#Z z>(<%C#Dsl(O69^0^CgKb{F!dlA)%-Wx` zDG|E@e;6ILztBz{5xejMv1@OLz4s3NA+d9t#eVsS*v)T3(*w!yE zv8Q*fwf$|e$;ZXcepBq~%VKNh&$Z#fMYd8V|v*yYHJNd%B zcH#AY`{R3qcJqU!_CsP`IxqJAuf_iSJF#PHrPMQ1{ch<*1$~Lx$Z98 zx#IuNf7Pm0_R89`wtU4oYaM^y=1k79cYh-G``u!1E?Hs&0|T~i;bD8|!HXu7$86U4 zEW2{%))_uKm)e;>-@d(g%IS2{m1^-@6~fXw&Q&p z-)DC8%o{fO(@XaKi@&wkesjaVbm+L<|NL3o`s1s%wi5*h0{8_y?uT69{Z$UKm5eLQ+p@h?PG4Y@9?ht3#kXzW&i*H diff --git a/assets/voxygen/voxel/npc/tuskram/male/foot_bl.vox b/assets/voxygen/voxel/npc/tuskram/male/foot_bl.vox index ade449b887c98558f2d7920fe855af8869bcb8da..a0675eabfcaef3145f653239700e2b15a1aeefe4 100644 GIT binary patch delta 332 zcmW-bKT8BL5XIk25{1)3uyhZPg)LO@Pq7y278XGk`~wPd-bc8?#wB~$Tq_nf0UK*S zfLPgxh2O`k$O0MPOxkbe z9J~22(kV#J79EJN7K2We_YC`7!Ws6&_9B>y+8|G8IJ;e{{IIIU1&&wUt!Yb!wU>dGF)8x!1?r_ZRajf6#|GdH?_b delta 386 zcmW+xyGlbr5S`cFK(q*mRS?8NxFGRSTv%5H3yWJs3qfL9yKT~{O|Ot>KfgGetUnRa__#d<(N-WjZ>J~Ap5Q1@0X<-HIc*nU zKSzEsXI6?L6!{;9SOG@PQ5ftX#3GpiVSy%50?n9Y9$7VuRuIu>E-HqiPy;l}957rh zvLQDxbWzI$1A-|woDutQ*U^s!h!yY9485U>1Tzsst@k7M8u!u$KQI?C5QE7A7`au@ zVW5hiAm)J0(F7A>i;s%~eZOzJ#IL=Voz?PvIP8A;b19`%9vUh)Y0!Ph+DaPLWqUX% XyY)tCMw?}SukL>2R<6fySNhC<;S4xD diff --git a/assets/voxygen/voxel/npc/tuskram/male/foot_br.vox b/assets/voxygen/voxel/npc/tuskram/male/foot_br.vox index b9c14e68f0e8cdf738c54333da815fd50b8b1a55..2988cb31b19c19fd5904f890e1473880f309c65d 100644 GIT binary patch delta 332 zcmW-bJ4?h+5QWc~n<%Unf~8qp0x4ARQN%(`VG$(Y0~BQ4pRk3E;cl?mRxE4+HrDgZcHvc=Qb5?6^6X!*2pyHIsTdCNd{du^`4bljd7K z+O9Ci77)=VXiZQt9a@<3i0T$|K_(rEDJ^>ENt^4T1QYZy#Y{Ueoe^ngicOkn$o~7# z=_F5!q%%l|bZ8!oIFI-Vv@iA{(GJtB^Tx!RbW^XXrt_zlC;dJT+~?D2f5*4Q`e-j4 wZg2Ek_OVnHMac6!WLeh#*l=}oGz>dyE1@jQP*qi^>$+ce_x5=E{^DNw2j4h2kN^Mx delta 386 zcmW+xyGjH>5bW3N!D(J~APH+^cfF3ZpoVE*8 zKSzKtXI6?N6!{;9UI7N@NQ~+r^dgx7Vu2=+0?n9Y9$7V$RuEw{7Zpn}r~#T~4p^=h z*}x4II;mwrfFM+qX2QPQb@=fBVZ}W(gEv%B5JqB{bw9Yzc$PN!fw_Q%SS%J$!L5Rh z09E`1JqNrTCWHuEd|Vvp`+eIbe(k;Ntd{S?VfV|QODU!D&``NagYHAtR??_0+rvTG Xtv5#(r5ky+`>3U diff --git a/assets/voxygen/voxel/npc/tuskram/male/foot_fl.vox b/assets/voxygen/voxel/npc/tuskram/male/foot_fl.vox index 0039834b0902afa01a425145aea1378e48e0b603..85dcd5043d882b2f7a7ac63b89f0cb59fb02cc3d 100644 GIT binary patch delta 389 zcmXYqJ4*vm5QS&X+%@{(~*7E}LMJUO@;8+S=IJ zh?R|%|HGehJtJQD?wPrB=G?c{@3qC%#iaivB4;PnIYkaKk;`gYZg|7PRyzMWxt>;{ z{wgx|D`*UarWl++OrlVQs#FVzW=fR^*6MwxQ3*0xL|dWJQJNeE8pD);H9W+_7@~in z?h7-BHL9TjYz|-sXbnRHQ}$8=p;1Gvt}v?CLfmIWW~xW1A)zs~#yB(%jY~$eamlz0 zrAPURhB=I3?&aI^Wn^EEr^}!BPB}VE$9p^Nvwp4*hr=`&3{tn-ZEw)q+U@t!{`O|d V^E?$rk;<}cA8?2J+mDXD>MxIjKHvZV delta 262 zcmXYqKT88q5X5KqMI^ZtX)NTL7(uuuQH$X7v`ArbLQEk@ynF$MxISlIg!@_jaQ;J|O^%`)u!t9+Fou6q6Y8-Q*nxuD^_1Y9QRS+xk1`)7mRzfO~z zVo7ZiRg6U8Rp5oFN+v4I!Yt=1N-uDk0Hovv;=wM2UFZ&n%fLel$rMVQM^WON-~0SX zPTbE^l8@zk^K*a8R;OX!(%+b}=QeB_*X-qSXwy+@i}{S)+3Rh??gya-L11w+vQ}8L XgQ#Kc=AIoNM)|Ir>7={-a0^)jg+)0E diff --git a/assets/voxygen/voxel/npc/tuskram/male/foot_fr.vox b/assets/voxygen/voxel/npc/tuskram/male/foot_fr.vox index 696dde4269364f3682df4c443c32b61e51b0fdd5..2fc6b34a4bc68724b6902522595ecbca083c3fd2 100644 GIT binary patch delta 389 zcmXYqJ4*vm5QS&X+%@{(~*7E}LMJUO@;8+S=IJ zh?R|%|HGehJtHohJ@feH+_%;5wZ+xNr2ix$XD8J;O%5`V%W7I~c*BpabpCyEJ*`B2 zDl+z8&=@E}F}MO{5``{wrCUHWQ@TX3R_`;7N+FX)v=xFbCFEkDF-$42hKG06s4u@$l7^H5u+uoqJwcGEd{q4<^ V=XolMB9&#?KHv`bw;vsQ)nA7#KGXmJ delta 262 zcmXYpKT88q5X5KqMI>H|G!}A=Mi8z^)FSviEi5cfh!%n*=NAYUFlGKISXo#p9!RWG z1sfX)7WRGwzt1`k9Qf_*EW`e+eN^wSF1nkq06HhxISsQ4aGB+&wGb%x&kDWU%d>ts zQX63?hNAEgcp*?JM1@(HP>*d(pn^TWU~KFRx7}37o#osu`Hld z`C@ykIsSe2KO8R4e|vHHh%H*mCxa1J>NwLt<(!pECMPB)HB?MA)WJ2F6=f%%N#~Go zJ@yNtZ0H0_>`<|&afc}#hnr=y$q6Mk*&xnUF^7?eD|WF{V*^H@iN`MJUe2YN!jf=5 zL+}vtKxXFNhpPoMHgI89vmwSz#v+Tb!8NJaP-O>kfd?XOvurATGuv{Gq-_riPBLoi z18)evtu?aM0}G4<7wucZ6C+}V1tMZWam-+Glj41GZgQ9+ ze0vW>dTX8IoxFNYu#I->;wK6FRX(F>ud0R3NpotVny4rA!K_AVhT~~J5KA?voaJYb zIn@Mnk}TBTUhczOME9a*K~pd$LW^3yeIwqA{Jns&w~+&D_R8#;IjS>vIa0Nk>Oj^} ztUcixgRpN@Xs97G$4d5)22dl=khXJ7sZaY!4GH_q9wEc|aL?H1ps-j}a~;yjj5KNw z*l$8X3uPbXa6UlWIR1p-P59*KTkP7KVPq} zuh+j1m-v!@z5U_v3Lm=dw_mT{JbrL^$aja2I=<8V)6>)SD delta 681 zcmW-eKWh|G6vgkqHxnU9KuoiUA}FlLt`S*$ZY*33vPDcGgcwDb#l|U8SVarBP9YYH zegP3{QG0t^KZqYdc>dlFoH_T;x%Ztn^Y{F(&E?_2(Ungkvj1TI7?PWf$dmc;-eygB zNaY*|aP;(e{!a;b-hpsE3AgO90R`gPhiX=}Y+}9BPo_E5x_fp5>N)7E+cFDcL13a? zB6e6+x^U^dE~tyvVse*7GU>&oSG0jn$fMETR2FU+sX*r@i!kYI%@{KFU`DCAR*hq7 z$#AMJ9XHNF6?F->Vxd*HW_^$=CL=N2dT+p+%4lJ2wF}_Eo@xe;#HErfbUlMEhyz27 zo;b17^JOCo2?o|IS?eIVCXBGafs%XTu!^7tEDR03)^Y%CFuYL>P!Hn7ZGqOyabQq0 z`hm_isupJMuJiI*1Sup(Q=L~6{DMY01>W){KwwT1Cef^3`mX;xo3B3mxAyC;i{;P# z!RlFj9PjP!l<8<#o=-;Q^}}2aZ)}%WcLwGCqif~Ii*cFFW@S2^mJbstZ>C$T%jwdE esvi%w%Fgg=nT)QNd$)(HgY?!;_rL#6U-Unw=3vhN diff --git a/assets/voxygen/voxel/npc/tuskram/male/head_upper.vox b/assets/voxygen/voxel/npc/tuskram/male/head_upper.vox index f8d4e533ba73c74082dc87b9b1871a46683496e0..3f3f3d58f0705e7b2607d250fcc3fb8a46e0d4b6 100644 GIT binary patch literal 4360 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 H`l^2da!kVV literal 2808 zcma)7ZD^I}8NQ$I_v7fo8e@}mF^k&e#G#G4n6tPpRfEm3>99`MMl0=TndiuPdk9f9 z3mt8?GFMz(7Geu)ts5evt!pKbjs0*kq!daiu8hHuQnsIsYH}6 z6=IXRQK9ZqUo)wn)?BR*g-IwUQTEf8vgMtLa^Om6?`t~vnxl?aNug9$7)SjG+Vk2K zCiBx?LSa?(k<_)yDvr=9G#sH-!ZqQV7LKqgub39nx>adCxTN9<=aOn*oStwtsd{Y+ zZzvm{yOcU9byDh3wkdsOd_SXZS~Z688QM2#)l#;Wc@j1-E>o)8BurQxDppgrrHXZg zryTN%m#hdXG`-PHWi4%ly5YHEPAUn!PYY$TiUj&67mE7YWL2AmV>XRQj@c}!Sn{Ch zLs8#q+BK!Z*+3s@)sr{tV@|fAR4AMaH4}BIqjaD>>d|Jfx?x?YdPi=>lj~5`)K%Q8 zxVPNXrYDbzwu}i?%QM4wy|Ij+vDvI@2yq$n%_@qkc8r(0hO79ju6$P2gdtSO8a~Dl zvT5tnsxSthkYmOvf$@dBuAFJQ79YB4cqTrforHE0+DWP|)+2BqxF=LXnf?voGS(#8 zi*-o3vKET`c=o+v?`XzlT3{T^L23GTIr%b$AwN2Dq_et-HIt;!T$RpwSE_4Ws%Y9! z>_bbx*5u@yT#~oobM{rVX9{b1?up1VZ7bes?v*XE9wq7|tX-)RSToJuGvv##FD32` zeXvhWtB=WJ>~WPggs_|mL+Cgg$~7!?6lXd)UN2=DgTe?^B<$r$5Ko9p~4@ zyqJ$?FFWSynX4lYo;*16qBz%vylL_%^x+fE9C_7oHpsbS-j4GVJZCe6nq#brbMILn z7kirZ^PcDYo>=EVJZ|p%A`!5g26nz-_ zaO5ShS54&6hufc;@0+&VLFKO0-RA z<@tZ`{69FZuJOq39S?}T_5T_k9>(nKEIyeRJoxH$tZn}%{@&h>Yu6?apSQ-B@$jDe z@Z{qom_5D+%csV%JpUw?&o;4b`5Cm0cA)c#Ui3b@0p)WQ$e4p1%^>GL3%TBbwh6)N zhTxtvf-k-;NRA3t%n9z|zT*wS)`=X|MjIxdy9+%+H zTZNCl(hXEUj|CB2A%0)0;V)blP6#gjSa9v4;JtUa9~GP*6a4ZK!Od?8YP$s|4hYWF zI`G01g2kHP@UYsT@^tp6F@cyp_fBKzZrq+*_=eFSbTRZW$KkmcSi)}dl^LD)R zVJB{44JOG)EB~j+%W=WZ@_*02@zA~h&i~C56RrGv?*0r0`c`3J%}R`vS7QJ03hW>J z|MTCnWea|^?Ho1@p2x_k=g~RWiFbc0_~@YEjsAX=%Viu{dmIlvco{M`gH=}Vj^YymBq8t*m>YtRe|0OqkJ(@U>z-5C enzP&2*AE`Tr~7#MseGsPPG`5jbGv*8UHKPDvd&BZ diff --git a/assets/voxygen/voxel/npc/tuskram/male/jaw.vox b/assets/voxygen/voxel/npc/tuskram/male/jaw.vox index 393c10b0be027442c3e8e4be7d3cc5956240b6d4..08487a213349ad4140f30d5c3b0d6ceda4b61a51 100644 GIT binary patch delta 301 zcmW-ay-EX75QXRGDuiteDYHUYSV0RV#a788E^HC-r;`{TL5S5YjDnSog}4S3!A{a? zWuuKx;6vE^5aXF#`0mU-XU^Qu)^DqQd^GMo64All=n#c|ns(=U6^(-N$z=56D$a&q zL81Z@i7Xsdz2_(@y9^|tGBoJAoPj3LmO4j*Cq9p=fLHK#m?Nw20fGAnLkJ$gCk_m9 zlMn(z@SQ*iP;B0Y`hBop2JkKr5GE39c?r+ZQ;(TI@=NY)P lhiPV4r(H{u#I}0tw$oj+qA08^ORMX8{v4azyaLA;UA%DH$v_K_2F1+c8JxwjK^3$DwZ>u}nL*2LMML?ihl|i#mHq)WkUX9M diff --git a/assets/voxygen/voxel/npc/tuskram/male/leg_bl.vox b/assets/voxygen/voxel/npc/tuskram/male/leg_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..128e7bd0ebca8b873dacc2d1232ac557d5468143 GIT binary patch literal 1512 zcma)5eMntp7=PaPJ@+cvOqw6_V`^6|?=@!5&!H}-UYuVGXWDjkvc*PT#BE5Nd$h}9 zvqsx+nTc*tIV%~lW}B!KK_($%FvhSELC6>p{o5ZA{rBs4919_%4m{`ie4pR*d){+8 zUpkOIAtJ4N8uwAjeUC_cV<`Bf>+rEC3`s2Iz`;=Cr-}xjUiYOvjutP)V;f^djHVdc z+C%MijHW2s%FBEV<1w^jY<6`F&nP3dDAtRYaVw&Q=Pmk{*VangT8pEVIEq>+u?fw3 zS1W2A5oMS+wiZJyV;f~6VoXF^UW$itv9)EfSB#@|jIB+KBb-x=#}UpdnzhEoA_vZ@ z75TVx7#-2%poBA!kJjvAD8vvUhN3N+d5@#WMH@pdmaRCCVvSn&wXL+~szlUo z#y1yRurPK63zH{NzHkBwHOWXloQ>>L1@KSpf&@K~z9%5lPeWFck-3ZB0q zi0u<>85V4%pL|VF(i(@R{se?hZ^ik=?Wm6m+QtR1&I$(a@oZZfGQ&RPMgu6DuR;1i zB77rh2+U-m=+<*c=@#UkX733>)sjG7CjL+?WIP@+mx$WhS_G?#P`SeoG(CfH5iC-E z2#4_t^|&LLeP6JARdD+z{Tjh^Q1In`!P;wraD%|<6pV(GarUraA}r{s5ZLvCON_Ub zq#+#iVW=%16UTNU+EI>)-a0J5^9p{Q38Nq<8C5&8(EMUPj&+u!uSqa`NHF!fVCh{! zS!Nm<1G(rf+kt`lUFZxXBV3Y>k%m0X_Y|(ro|l&gpU;Pkj0}vv-G{*wAY(h(OIhd}mr6s9Mjw6qk})zt_FgBX1)1G86r`0;iCYj+Fq0Ws%i1b4m`{QSLO zD4dT=!^K#+UWea)YRABZ1dM!^h@1CPv4$*!xQ})IN4XbUQ0M=5{{1b_{>}gM^T*fu zXKs560bddVS@Ed!$D^ZS3p$GaKmX$5V!T&Ag~Fm~RGvG7)ZtXz`dDzkOK>eeAAY|d zy*V~o_Rc|uhmbUogvH56cX%p|-%e&G-pm`v?#eM7y>J%WdQx!ri##lbQZbgD{g3^- zb#AYN?RPNH3k*(P#qcNdxH$J6E`Pg<(v#<~`^*%YKUzZjjaAgt)Zn225=+4!Fsp(G oUp<=d0l%;R%JUao|Iaq+D_z}q?7PXw_GWss*v2y(?M-UsFYm-l)Bpeg literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tuskram/male/leg_br.vox b/assets/voxygen/voxel/npc/tuskram/male/leg_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..de20ec4be45f4003033fa422639c7f55c4b4bc7e GIT binary patch literal 1512 zcma)5e@LBG7=F(=-&M(G()2oiOzo=Wy~fP>bExZ1y*Pg@oN1dn*5o8iF24f5x5rm8p(ZBr>(SJ|Ry<;I{)PaZheb0H{=Y8ID zzOU=01G$qT(zd5*AC261iF7n|2cC=uTo%DCNgxg!>~8v0(c$VRjCMIn;%p_ZkQmDr zO&Iz*8pqMb*`i#Is5nPVydyfEalB)Md92Y!Y!f{vhbW6&mLnExEpjRyQd&YviLEuE zB&0<`Mv0?E(Q3yi!*j#_hTMcQjxmg_xRA1<+JwGEu6T0A+see-##qd8g$%VC&3fuo z)TcC|T=c2KM0-=8&>EMmv_;E(ZEPciVl0|ETm<>qQyVL!*HjJu?OT^RaI3X91i2*xM1&xtH?|F6ThdVU}dEZ(RICP5&K$Rz>!1M z2-_|A=3*-r$B$rf>Le-`PaxUvM*87gmakToWF z{)Ql7K(Hku*vi;_O;FaBh~~j$bf4ae^Gn;&5Eisg2wt5N4BumIdj_(D9^{98s95kL zb0`I#(G2)zb5L^YIi&Rp@=ud{Qc$xjkeAtiBmpv!1es4kU0odlH6^It;RTwX!Gs8w zh#!JM{6ah72|*PJ}xvG1*^_m3Lmjud_iE<+)L_GY2g%7UEb}B?g)Wkwb#%*9FV( z3M#TQ(B#WUZ^aG_HS9u{&y8SNCPo_zu+Uc=(_TI&g)b)w)!rm@R&7CN$^W0fw6qlORZgS0WCqpe&LBOKj$0oK?)M0;6&Awl z^`bw|M(f^rNMr=5L#bGrdh~{;GWhLeXXDL+3GA*O$I%OCv8^u+cfTmWQg=GWb94W3 z|IxfC*TIfE80rUxr>-LM$pS9Ue}~K8uA%(oIqW_&jh2s=(Q#u9e!m|N1&{;+f55B> q9(?sk-vfSM|8>q^F!rBqv{!n1@i>kiKK3`Wo9%6^+30VQD}Mn5YD?h& literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tuskram/male/leg_fl.vox b/assets/voxygen/voxel/npc/tuskram/male/leg_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..63d3fc488bfedfa668e633944e1538a584d277fe GIT binary patch literal 1528 zcma)5e@L8V9REJg^WNR-Y<9HsoIj@5>6LfJ%=vSu>!u#gUkhj2b~@Q&BM);M67TzJ z$6~u0ZNtq>bb~EtAtTmo6O|&!BxDT67#0zPj8W0Q{SncBpT6&ng^*DXeE9zQJl|i> z`*yv&-#0--ZM&QHvY?+GL>*1h$Wyk#M`N&yHZk@eh&Ig&R`|TZ5Ry!($P|h!Qe;R; zh7e?u5*A5e3Ly+(OC>laEXjT$oR&}yOGt)rFkfR`dTiv7xzQn9TJvL%Cr z#`QQxtaB|XlqJbwDB-Y_=Cl+!O{r;y;#^8;+>>OQ9=q??jBMozAk z!gHmVQlv1?$#Zah&Lx#@NzN-3_n^3EVbAYk$&j|qNOE~UN;d^_h0ra*Jqw;ukb`0G z%Ed7k?~x_XAtd*uB==+QOL9%g_a)bo%#r54#=70f2j#b`s;WXf9>=3G!k()u$oKq- z-#s2IFSo%yH=7o)x8+3~K3I*o(Solov|?fGFcv0HpmO0j++i;=5BcCbS%l!!PEf=F z>fZ#Keg?GSg}aTAF+j)}CA@Hpp!X9tCkR{E_TC_rwWXqYz>VmsEjYKh4GnQZ`#9mX zS;Ei*zT2LK+?XE)@enHJ!^j@=z(10O&`cgm?mUl-9zww>&OJe>St8IYTz^;xji-U; zJgBRyL!_nz)!TzW^RpNy!Xo4QSPZ|g9JdIw9}t$W6Ykz-J4~345I)~WSbLoiYb01* zgwdE6XATi2Vuao*g3&;@#QyfOEW{#y47V3z;^+>}r+l}(_a@5w=A`*#U^qm~cUi0IJ zyCJOIFTxeBIX^?V_a)({ZwbS(LR?CeV&!H%e*3WlgXi5C`NV_U4>GZaJVbdP$@!1) zUJOEg@ZaYjXnpSQ`9D2(EIEJf)~6Bjrz4b?hU#D%I;%FLv*iEJUs_s<_baDRTr!R7 zv!{`n$i$tG2;X%RZWI-$3i0IZ$F4>4WK5oP7L-C$sq5$<4*vfpP4r9>bCI zXRx(51NT1*U@@ABF`w@r`?q;^t^*zSFxUqSO%c+b%e zi_IEs!_7=|gUVURh&9_pr3f+!8G|v#iU>l+sOWD$BKmiA9mhh*s0S{t`}?`?`+48a z7x(8(h)C=1#=Ru@*&)*27z{iSQ+O4G2cl!J|a3k zEGnL|i*QmWD?-z+2+ey`?4DS@i@iA`hIT`n;XF!QgfpySy_k6JB;Ho6XLKAvzjCn; z#;~q3P9lzTSkx&i*3`_4)#rW`=hBSTjMdE3;9_s0ITc7`?cH0$VCuF>qp z(5|^p%^1xdGOu<^#tvg)@&qatjw8vRg0w?9$T?XE@6=96zyayo1etycvXX+NRzYgN zAahjk+zo-NPq2Adu!VZcH9=`>0-E}h5InU7=N7l2J}PJ%7rZhn7`(^awsd5LJjjds zP(JTR#(*21k#zWGvQd2NS)_Ig@=me#grIs!ATRO$As1vk5i;jSZEYRV4}AU%kR95UuQxn%uPY{j%+l)P=KSI73gac3?CFs zy)Ia~C@9ZLN24zf-R0XcP`?wMz7&K?GceMSkNKXWwchjd^WpJ$keQi@(YO0Bcsz)i z%R|H)7(3=cv?~J%2?_A!Y(r5-63WWTP*YQbKp=q8w=yw%#e*Mi`>=Yq5byKO`5D2T zF9kn+D;NqD;L>mjR<76Kw;$Uva6SnmpSW@JUK&=BjUe~2HvbXs#TL|g|9$@cmS_H+ z|I>5F*5=RJ`XqdwWcacZQRPiUN9AU86#xJEOG--cZp9Reil^~M4t979L4hDLG!O5!_{&*f2=Dxw@ukWMm#98b*J%#2Em(YIWKKy<^9tt2X u0)N2V7d-glQGXBkef^i8zu?+`ww|wab>p!fb3T?g;*D(UbJoin#L8bHEKZLA literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/tuskram/male/tail.vox b/assets/voxygen/voxel/npc/tuskram/male/tail.vox index 9326f5c8473377610b22972040dc5cbad97f30a0..2243b951fcfff42f482a5a2905bbb6e77f67a01d 100644 GIT binary patch delta 949 zcmW-fy=qrM5XI-?%w9ziA*Bg~Kng_^i&Q3s#lHynQ3w))y>NH&0c`%gg%ASz0Agn& zHrn_AzKV@+aQ)p}ILz*0W_He*`}6w0TiaJJ&h|f<*|R67&k6QsGJAP?zPY(x_!@w+ zYvAnl`RV=S!1o74)QD&!uTUeMJID~cxF`3V)45+EdU^~G?-5R(Z)b53NuEAOdQTuw z>B9vlIHKgEVl57u$DBk(bkW!oF5!Sc0as89Cvp^{fJe>|$-~LJIh(fXp4lTI6OwZQ z7m0#XQVhr4LtUZSQVc7G6%WFJ0xtCsoHRr%?v6tOMlVm?0ST0aD?a;HkRVkktT`a% zOrOS3MzWDi48w(n12k>b15_|Lyx~;Q)H1rE(yj!tmTdHHgFSU4*VfwAe%9hH>S}CF zg#(T08|uOO$jTL#7W)F??8RfnE-QzKUZ^e95(T^vQbj&OKon~$)>n<3*27qZ1u=UX z?wW|&4mX-ZM#DCeYi$50IB(c&G%}wJSIk+*s@@IzY!qCfCgGe~V*oW8gJ=xf$PXM` zt;Q*L#}R5l@!v(8v8lCQD6kS%@n`0QbrXq15H+D>;!%|Ns)ThJ3IjeStSp*0e#CXx zt=npCFc1o5Vo1P0aPjRpe}8;>@%Q_*IexS}esK5li~qWDczC!R92_jWyStZfV{hl) g{@(KN&h6#s=x8}PIaxNF&E@BKA0OWR*vYT{9~@$UL;wH) delta 250 zcmeysw}Z1j%s)b58Uq7^ucN0QkYZTE!oU#h8Rg0Y;s5~?5HkZY2M|X@MtPP1X%LVB zlT2BR3_#4tXvqM?jEqcK3_#4t$PA>Jfiw$HoCPS(3Z#LUfia7LiPe%3OatW@7<7RG z>_9^pfHYecBM>t%F**rKttFpC#NvmFmLVjoV=KMBl~g#(f?O$r6)(T z?Buq#w*KF5#_+$=T41s~tE{lKp5}jjX@UQSno9r8^wj=a8EH=TXRTtY@ZEfxbtxkN DqLVBS diff --git a/assets/voxygen/voxel/npc/tuskram/male/torso_back.vox b/assets/voxygen/voxel/npc/tuskram/male/torso_back.vox index 6f6d6b8a474f065b79ca0f6fc79fe5b9d0fce8a4..37083a205bc5f67927e445c7e8450b6c0c15c193 100644 GIT binary patch literal 2956 zcma)7ZH$#i6+ScP%*=bc7KvS!vQStTR@ucADPP;YP`AJaxIhg>uw5u=O&i(07usx^ z_r0u}ns&9ZZD?^N&?YKHLmE?yEdio25s4v9lcuR?jENylV~l_OVT}JCpIK5vB1Ug= zGVh$3IUmn?&bj-({7}zH5!rSB_6N8~yF+Bp_R*0~V_p&b*Y2$c&m6r;6$^o_`SuF%pK+LoG@F8WfUuUzs~;#=Wa^lm67 z>Zyw+Lq7P1PkzXP)Lrl`GpU=oBc>EjaWWJvRleYzTA&|ocJ&d-DxPQI&eEX*&kj@X^tRmce2>Fo(b#T;9{RcaE`GLu#Rtnw3huGQUvsL&_L+ z)|PJs>U~X_PiU+64T-T*$8+Zzj=5=(sAt@aNplW`l|JipPDLmaV^PKua?UZ8mQrOk zU)NeJoiYZ#Nj2jgZ6so(ro2lbzN*@=B9-ci0drT!n$W&8=0^J|#WDp?tYVd%ZwHN~ zIA1zP{6nZBzcu?JrlzTiA(YCTm6!(~+cLY)bqMXGq4LaKSZ_zHEV_DdS_R_oh>=rb z=&TIH)P=}%Pn?Z@Sm#Jg6YcuQw^n(+GZ(8^WS%hY5E{-AN71(Njxt|IJd@E6?MBCX z<(wSrEmk>4Jfd+=EO}47W9-^e`bfdbWb{Ft5^L{>t#dr5s3!8%4N35&d10K|k{l~J z;WHmH#zuZJu0R|jb4lu}P%t-Q;lA7>MUc;HdBG7H<3N%bA04#WUm@I6KFS(FM;^ldJb;yJTS$z9GFV;|Cn zqfUL`Jjp$h+U9Z|T1m1}lxOTANB@$s=Uzz#oBo6#` z#LpzQlwv-Ot4}R+si`he7n&wvT*bH=_sUh98j5kFs1+@Z1^-uyrg2rJE^*J*xN5;~ ziq^QNXe~93;%jL<)KbeAlv->CuAvskeM&7?i>;8-c%se^-qn3|fx$1{R$Ke&peo&Ut&J3DdZ$}Z&JTiY+GFJvS@nzupDdBZ#kQsux@cTwht`BfpvFdV#~eQH_(N#H4AZUYacEg zTsa$iUtb@3dwa2H(IOoGb`wXR9L3q!CMn;*%#mJ9?O%wFjt&g;+=Z13=VI;Jwb;0E zBSuC>aQs_~aPIY9{PDd3T>oGNzE7VQ&I;cDrQpxM6HJaR$E(w;arLdu_}icMVB)2@ zIQElHyz}7#T*nfO5|7#ZA15xQU~~U}&;Rhw&;2|9pT2lxHvh$Uei{S4^DwYv4(k1L zuy^ow>|OQ$=f8UOYJ7M7X{=mz2K5)7!-DArc=tzw-|rW^xqLbL`}=WdX^EZN&O@dr zF>hiXE}gnj!)Ln5oyCjs&At=3uRepvUwR&Q9-NO4e%6OeqYE(8)AJwr=X=@K!+YMx z#3A75sW&kF;|qBC{BQ8uudiY4Q!n7Y=T2kC4=-cS+t)BWJdBS8kb;7LK(7ft`o)d- nJ|e&V*Ezdzw$E-}U*CTKpX~GDC*QYPZ>78W&CTDpxGVnxRvhV7 literal 3392 zcma);Ux-!L6~_1fz0bYX4$U}5P1TN?I%ClIr|RigJMoT~xyBS@waI8CDG7D1ngj`= zc1TI44Yk3<+F?wft+7QyNn=w{Y3YNNBB2mMu%Q%+giuOf`%p?B3ah_$B}J&Ez3{R2 z+57Ch*IM7V*15aB^zg!IW6ZYuMjynOduAB3V{~luC-i||1L(MbhaVXm{ihE2ZFI)u zoH{vym^!7xhE&@|=y;!M-;5oXa~&JG6D!-wF4P5Nk1d&X-fxCFV14%;-YdD|U8-|1 zt(eS6%pigSg2Fx(J#fI9R$;&8Zd+3Ax@UxTwy_RAcU)pU+E&S&8**K&uPum;*opWU ztJsbWkMFi^g6~wI;9Cy(7XtIx7&@VH?a*+oP+U6}_Ef$dGII$;5P)Y*-%%e*Xa~o$ z?z0Npj+uRhefS-8KQUy@SK@qPs<<~cQXTLmH1M(M>yQ}ho{Y`d1PbGb)%D=prHY-> z)ObDjvEO0IMX=bM>Ztio*o2MPh=rpVVjX=VFXX=w;KFwj2;?+m{7)bPavt;@{0s09 z;4fI9+<5L)ejMlMIvhFWzha*I0(X0!t6)1N*g87yw5by`|9Xz*U%4Wuf&7F7BEYwx zXQP?Go}llj-`txUsxjLx4d&2Luo^RGR=GC#V3{w8cw*)r)-)%Y4{{O6Lm&qMp91>K z*|uym;ENea1+Ei5dd3=m71~L20GEk8 zS7d)8Psy-OTuIN=e4(9We4VWCIC380HF8IU=j51&kL1w+dP{H|(OHD^h#rz!G?$8P zMb=VxFY~&W*c10AG?CCvM3;#@5pASG&e2X(ouZM1&JsDd(o_JO|#c)A0gK{ znwD1%@VO*My}1J=Vxv2dGvn;2dxt*VXvUw)Gse$cum#Jw!v6xYTI)JVdqyJ@zeD%r zqT)Wdcl4s9`JxX*L(ZD`fL4de+2&Yj~KWVrEgZmp%R%!nuc0!J2qJh>^% zJK}QaBh%Y*WVAaB< zh09Xu_rX8H19rphPU+maGxEx)id#yOl~#5RcL!^))AXGfwTB804zPy0S_#F(*dvj zT6-$+!1BFyz{f!Bj1zkkW6pNexX+Ba!@-5`{%@eqc59A3)K3BhP7}ILd=m@3!D}6% z#e(0Z+e29A8)CaY>i-VD9lTpb>YO^M@FSx`!?WSp=ri9jM;|fNVg(#~9@?_$J`-;K z4_d!|y-Z9@$VaD)-2a1XvZ(hT^0(ezxq5Y*=d*$&*hh*aLR=IS1R4$!* zTrQn{M%G<=T6%{2WX@v?W#MznWZ+CKW^)v?zai%Ar^H=Rc)u*37?iaa zhh^TOUgJ4-(J z!aR}oXJpD4xeR_kJ}!U8P8~6F{(D9?Z&)cq%Lim?*vQ$-ksDt#GQP#gkzGbk zj`zunj~SUBH?nuVk;5ZKUS)p!nz=H*xnGWLUntuRgORj$VEAp3fBysXV!Bo$PNLnS9j9nP-h$dBw=u`EzA-aIx%JyIc;9)Us=^PsZ2GlM`E( z$i=-YZu&JeB(JO`A45HI@>~1m=+k3z?zLm!>vHO;ewo-kPnykU*Z&psdSvB5zpPz; zw|supfSmm1U2^{Qe)+?12j#|l%jEmqdGVZ)cYkH%ProyAY<#J_I=Nb|z15Px{&9yK zdZ|ZF{G?ZY{{9@fAq!-Te01Y~g1j6y(i-^h@gIEP?tjPs(<9ru@z1~WlQP&pO9mIr zl%au{vUB|m*}3xnkAL;*)$-kSXJp07vodu21(`EBN8b67kq>qod2{Jf85kIleTxpu z1NUDLGkHvA9hxPVPv7M5xw&X({(Skyk}26ZbV{Ch=|#D7?`(PRXG`Sr*c>^vaN&RC zU*FTS9@+7(9NH&x^z<7t`QwZ7@`c~XYrnoOpL^!GY<%I2Z2jRC+41&u86F;%kBo>Z xK>jZNx{(imdDFiS(bxZ4rwY4ucB_4T_a6E9Sr`4>f^;RFBx diff --git a/assets/voxygen/voxel/npc/tuskram/male/torso_front.vox b/assets/voxygen/voxel/npc/tuskram/male/torso_front.vox index 53c6148de25b49f6ea9ffc31a94e1730cacccec2..0381fd4a35ec8c40b6a2e9cf403f56421f7e4705 100644 GIT binary patch literal 5452 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 C1}EPD literal 3272 zcma);ZH$#i701uKoSAtRiyONv1uCoyRCX~SF9P>oQn$Q>?xoaF1lxs@*0hnml!a^z z0o>HITN|;#QrtkBs1yxpOf9wqh{g{{3~8D)O@qdm7}7Mx_|*@_`0e<6mei1l(M^6k zXU_A?oH;Y+KhNFul}Gzdi^#SIh99PpOP>L8>N1yl4dNq5pr&bSBQ;@wxX4k7?T*EIu&+>o$IlZI|@EA*5!smuIsx_&~uWd;xCdA(BHR2Ye7bK2UH0Ux?3y zfDaU0jO2hX;sXWI*m2-BwgW^^kc1z6!VeJ?B;(J_lkr0Y1y}GDd=NpwRrspd3{@P9 zpb)xZGlD`vI}W@L&p02*DYU%{eKUA!pdmA1@*2~ah{dd^KxHshKV^cb7bal*>Qi= z^ZJ7cLRa7{ct-w(HG1x*jBYb~l+kNOn+2U_^jPY91|4Shu%y&UXf6{ov#yM;3i`_R z9mSZ;UT6(_uAD>SzEI956|~A(DEpR(ThL!dYb7XglsMRm4-J*1#L#wzlCjZ8hBDm} zgLx7Z_OMWE!LujzUJ|cR7nyivdOv9+e(I-CQ<<8|XsAF&Hw7|UDb!%577NR zj1~&}S*Xceg9ZwFnyLAM4ia^qp-}&c`p(pQqIMHCtJI28uZg-&bxXY_*5tX{6KhTN zzHoktdpFhJ3C=O2{gka(fqnQ@UAk@+LfBkxAWM&^mk z8>zKa-&N!l$uE*;B=1Q6N)ClORmLdmRpwFVQRYBs8?vJZMFym`8c8 ztg%9e868&Wp`gu#ze2ASI;f`4*0nNoR&{JNozZkbqe_lKZ3ycX>Q$)Kihf1EqF>QZ zd?TIXJ67wGR{54YzW<^AEx=hg^jN^5$ug}=LBHIE%5MsA6|o>Q*25!PHasBl*6)#Z z>(<%C#Dsl(O69^0^CgKb{F!dlA)%-Wx` zDG|E@e;6ILztBz{5xejMv1@OLz4s3NA+d9t#eVsS*v)T3(*w!yE zv8Q*fwf$|e$;ZXcepBq~%VKNh&$Z#fMYd8V|v*yYHJNd%B zcH#AY`{R3qcJqU!_CsP`IxqJAuf_iSJF#PHrPMQ1{ch<*1$~Lx$Z98 zx#IuNf7Pm0_R89`wtU4oYaM^y=1k79cYh-G``u!1E?Hs&0|T~i;bD8|!HXu7$86U4 zEW2{%))_uKm)e;>-@d(g%IS2{m1^-@6~fXw&Q&p z-)DC8%o{fO(@XaKi@&wkesjaVbm+L<|NL3o`s1s%wi5*h0{8_y?uT69{Z$UKm5eLQ+p@h?PG4Y@9?ht3#kXzW&i*H diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index fe0b5bae4b..bb74fa8f02 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -278,8 +278,8 @@ central: ("npc.tortoise.male.chest"), ), tail_rear: ( - offset: (-0.5, -0.5, -0.5), - central: ("npc.tortoise.male.tail_rear"), + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), ), tail_front: ( offset: (-1.5, -3.5, -1.5), @@ -304,8 +304,8 @@ central: ("npc.tortoise.female.chest"), ), tail_rear: ( - offset: (-0.5, -0.5, -0.5), - central: ("npc.tortoise.female.tail_rear"), + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), ), tail_front: ( offset: (-1.5, -7.0, -1.5), diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index ad717751ab..33e977b3a2 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -121,62 +121,62 @@ ), (Tuskram, Male): ( upper: ( - offset: (-4.0, -2.5, -7.0), - central: ("npc.tuskram.female.head_upper"), + offset: (-10.0, -11.0, -6.5), + central: ("npc.tuskram.male.head_upper"), ), lower: ( - offset: (-3.0, -4.5, -2.0), - central: ("npc.tuskram.female.head_lower"), + offset: (-4.0, -4.0, -3.5), + central: ("npc.tuskram.male.head_lower"), ), jaw: ( - offset: (-2.0, -1.0, -1.0), + offset: (-2.0, -3.0, -1.5), central: ("npc.tuskram.male.jaw"), ), torso_front: ( - offset: (-5.0, -6.0, -4.0), + offset: (-6.0, -15.0, -6.5), central: ("npc.tuskram.male.torso_front"), ), torso_back: ( - offset: (-5.0, -6.0, -4.0), + offset: (-4.0, -5.0, -4.5), central: ("npc.tuskram.male.torso_back"), ), ears: ( - offset: (-2.0, -1.0, -1.0), + offset: (-0.5, -0.5, -0.5), central: ("armor.empty"), ), tail: ( - offset: (-1.0, -2.5, -4.0), + offset: (-3.0, -7.0, -8.0), central: ("npc.tuskram.male.tail"), ), ), (Tuskram, Female): ( upper: ( - offset: (-4.0, -2.5, -7.0), + offset: (-10.0, -11.0, -6.5), central: ("npc.tuskram.female.head_upper"), ), lower: ( - offset: (-3.0, -4.5, -2.0), + offset: (-4.0, -4.0, -3.5), central: ("npc.tuskram.female.head_lower"), ), jaw: ( - offset: (-2.0, -1.0, -1.0), - central: ("npc.tuskram.male.jaw"), + offset: (-2.0, -3.0, -1.5), + central: ("npc.tuskram.female.jaw"), ), torso_front: ( - offset: (-5.0, -6.0, -4.0), + offset: (-6.0, -15.0, -6.5), central: ("npc.tuskram.female.torso_front"), ), torso_back: ( - offset: (-5.0, -6.0, -4.0), + offset: (-4.0, -5.0, -4.5), central: ("npc.tuskram.female.torso_back"), ), ears: ( - offset: (-2.0, -1.0, -1.0), + offset: (-0.5, -0.5, -0.5), central: ("armor.empty"), ), tail: ( - offset: (-1.0, -2.5, -4.0), - central: ("npc.tuskram.male.tail"), + offset: (-3.0, -7.0, -8.0), + central: ("npc.tuskram.female.tail"), ), ), (Lion, Male): ( diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index 47ba21d156..206e9519d0 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -137,69 +137,69 @@ ), (Tuskram, Male): ( leg_fl: ( - offset: (-1.5, -1.5, -4.5), + offset: (-2.0, -2.5, -5.0), lateral: ("npc.tuskram.male.leg_fl"), ), leg_fr: ( - offset: (-1.5, -1.5, -4.5), + offset: (-2.0, -2.5, -5.0), lateral: ("npc.tuskram.male.leg_fr"), ), leg_bl: ( - offset: (-1.5, -4.0, -5.5), + offset: (-2.0, -2.5, -4.0), lateral: ("npc.tuskram.male.leg_bl"), ), leg_br: ( - offset: (-1.5, -4.0, -5.5), + offset: (-2.0, -2.5, -4.0), lateral: ("npc.tuskram.male.leg_br"), ), foot_fl: ( - offset: (-1.5, -1.5, -4.5), + offset: (-2.5, -3.5, -5.0), lateral: ("npc.tuskram.male.foot_fl"), ), foot_fr: ( - offset: (-1.5, -1.5, -4.5), + offset: (-2.5, -3.5, -5.0), lateral: ("npc.tuskram.male.foot_fr"), ), foot_bl: ( - offset: (-1.5, -4.0, -5.5), + offset: (-1.5, -2.5, -6.0), lateral: ("npc.tuskram.male.foot_bl"), ), foot_br: ( - offset: (-1.5, -4.0, -5.5), + offset: (-1.5, -2.5, -6.0), lateral: ("npc.tuskram.male.foot_br"), ), ), (Tuskram, Female): ( leg_fl: ( - offset: (-1.5, -1.5, -4.5), + offset: (-2.0, -2.5, -5.0), lateral: ("npc.tuskram.female.leg_fl"), ), leg_fr: ( - offset: (-1.5, -1.5, -4.5), + offset: (-2.0, -2.5, -5.0), lateral: ("npc.tuskram.female.leg_fr"), ), leg_bl: ( - offset: (-1.5, -4.0, -5.5), + offset: (-2.0, -2.5, -4.0), lateral: ("npc.tuskram.female.leg_bl"), ), leg_br: ( - offset: (-1.5, -4.0, -5.5), + offset: (-2.0, -2.5, -4.0), lateral: ("npc.tuskram.female.leg_br"), ), foot_fl: ( - offset: (-1.5, -1.5, -4.5), + offset: (-2.5, -3.5, -5.0), lateral: ("npc.tuskram.female.foot_fl"), ), foot_fr: ( - offset: (-1.5, -1.5, -4.5), + offset: (-2.5, -3.5, -5.0), lateral: ("npc.tuskram.female.foot_fr"), ), foot_bl: ( - offset: (-1.5, -4.0, -5.5), + offset: (-1.5, -2.5, -6.0), lateral: ("npc.tuskram.female.foot_bl"), ), foot_br: ( - offset: (-1.5, -4.0, -5.5), + offset: (-1.5, -2.5, -6.0), lateral: ("npc.tuskram.female.foot_br"), ), ), diff --git a/voxygen/src/anim/quadruped_low/mod.rs b/voxygen/src/anim/quadruped_low/mod.rs index d9cf518665..670f904f17 100644 --- a/voxygen/src/anim/quadruped_low/mod.rs +++ b/voxygen/src/anim/quadruped_low/mod.rs @@ -177,7 +177,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (-7.5, 0.0), (Monitor, _) => (-6.5, 0.0), (Asp, _) => (-6.0, -2.0), - (Tortoise, _) => (-13.5, -3.0), + (Tortoise, _) => (-10.0, -3.5), (Rocksnapper, _) => (-13.5, -6.5), }, feet_f: match (body.species, body.body_type) { diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index 2cb0b706f6..287c94a634 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -29,11 +29,11 @@ pub struct QuadrupedMediumSkeleton { } #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const HEAD_UPPER_Y: f32 = -8.0; +const HEAD_UPPER_Y: f32 = 6.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const HEAD_UPPER_Z: f32 = 1.5; +const HEAD_UPPER_Z: f32 = 1.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const HEAD_LOWER_Y: f32 = 3.5; +const HEAD_LOWER_Y: f32 = 1.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] const HEAD_LOWER_Z: f32 = -3.0; #[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] @@ -195,90 +195,90 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { use comp::quadruped_medium::Species::*; Self { head_upper: match (body.species, body.body_type) { - (Grolgar, _) => (*HEAD_UPPER_Y, *HEAD_UPPER_Z), + (Grolgar, _) => (-8.0, 1.5), (Saber, _) => (-11.0, -3.0), - (Tuskram, _) => (9.0, 12.0), + (Tuskram, _) => (6.0, 1.0), (Lion, _) => (12.0, 2.0), (Tarasque, _) => (14.0, 3.5), (Tiger, _) => (2.0, 1.0), }, head_lower: match (body.species, body.body_type) { - (Grolgar, _) => (*HEAD_LOWER_Y, *HEAD_LOWER_Z), + (Grolgar, _) => (3.5, -3.0), (Saber, _) => (1.0, 0.0), - (Tuskram, _) => (-3.0, -1.0), + (Tuskram, _) => (1.0, 1.0), (Lion, _) => (0.5, 1.0), (Tiger, _) => (0.0, 0.0), (Tarasque, _) => (0.5, -2.0), (Tiger, _) => (-5.0, -6.0), }, jaw: match (body.species, body.body_type) { - (Grolgar, _) => (*JAW_Y, *JAW_Z), + (Grolgar, _) => (-2.5, 0.5), (Saber, _) => (18.0, -1.0), - (Tuskram, _) => (2.0, -2.0), + (Tuskram, _) => (4.0, -4.0), (Lion, _) => (0.0, -4.5), (Tarasque, _) => (0.0, -10.0), (Tiger, _) => (7.0, -4.0), }, tail: match (body.species, body.body_type) { - (Grolgar, _) => (*TAIL_Y, *TAIL_Z), + (Grolgar, _) => (-5.5, -0.5), (Saber, _) => (-6.0, 1.0), - (Tuskram, _) => (-6.0, -2.0), + (Tuskram, _) => (-4.0, 2.0), (Lion, _) => (-6.0, 1.0), (Tarasque, _) => (2.0, 0.0), (Tiger, _) => (-6.5, -7.0), }, torso_front: match (body.species, body.body_type) { - (Grolgar, _) => (*TORSO_FRONT_Y, *TORSO_FRONT_Z), + (Grolgar, _) => (10.0, 11.0), (Saber, _) => (14.0, 13.0), - (Tuskram, _) => (-7.0, 9.0), - (Lion, _) => (0.0, 13.0), + (Tuskram, _) => (10.0, 15.5), + (Lion, _) => (10.0, 13.0), (Tarasque, _) => (11.5, 18.5), (Tiger, _) => (10.0, 12.0), }, torso_back: match (body.species, body.body_type) { - (Grolgar, _) => (*TORSO_BACK_Y, *TORSO_BACK_Z), + (Grolgar, _) => (-20.0, 1.5), (Saber, _) => (-19.5, 0.0), - (Tuskram, _) => (4.0, 9.0), + (Tuskram, _) => (-18.0, -2.0), (Lion, _) => (-19.0, -1.0), (Tarasque, _) => (-26.5, -1.0), (Tiger, _) => (-19.0, 0.0), }, ears: match (body.species, body.body_type) { - (Grolgar, _) => (*EARS_Y, *EARS_Z), + (Grolgar, _) => (5.0, 9.5), (Saber, _) => (13.0, 7.0), - (Tuskram, _) => (10.0, 2.0), + (Tuskram, _) => (1.5, 9.5), (Lion, _) => (-8.0, 4.5), (Tarasque, _) => (-5.0, 1.0), (Tiger, _) => (2.5, 5.0), }, leg_f: match (body.species, body.body_type) { - (Grolgar, _) => (*LEG_FRONT_X, *LEG_FRONT_Y, *LEG_FRONT_Z), + (Grolgar, _) => (-7.0, -5.0, -2.0), (Saber, _) => (7.0, -7.5, -3.5), - (Tuskram, _) => (4.0, 6.0, 4.5), + (Tuskram, _) => (6.0, -6.5, -5.5), (Lion, _) => (7.5, -4.5, -6.0), (Tarasque, _) => (7.5, -2.0, -6.0), (Tiger, _) => (7.0, -2.0, -1.0), }, leg_b: match (body.species, body.body_type) { - (Grolgar, _) => (*LEG_BACK_X, *LEG_BACK_Y, *LEG_BACK_Z), + (Grolgar, _) => (6.0, -0.5, -5.5), (Saber, _) => (6.0, -1.0, -4.0), - (Tuskram, _) => (4.0, -8.0, 5.5), + (Tuskram, _) => (5.0, 0.5, -3.5), (Lion, _) => (6.0, 0.0, -2.0), (Tarasque, _) => (6.0, 4.5, -6.0), (Tiger, _) => (7.0, -2.0, -1.0), }, feet_f: match (body.species, body.body_type) { - (Grolgar, _) => (*FEET_FRONT_X, *FEET_FRONT_Y, *FEET_FRONT_Z), + (Grolgar, _) => (0.0, 1.0, -6.0), (Saber, _) => (1.0, 3.0, -1.0), - (Tuskram, _) => (4.0, 6.0, 4.5), + (Tuskram, _) => (0.5, 2.0, -5.0), (Lion, _) => (0.0, 2.0, -4.5), (Tarasque, _) => (2.0, -0.5, -4.5), (Tiger, _) => (1.0, 0.0, -5.0), }, feet_b: match (body.species, body.body_type) { - (Grolgar, _) => (*FEET_BACK_X, *FEET_BACK_Y, *FEET_BACK_Z), + (Grolgar, _) => (0.0, 0.0, -5.0), (Saber, _) => (1.0, 0.0, 0.0), - (Tuskram, _) => (4.0, -8.0, 5.5), + (Tuskram, _) => (0.5, 0.0, -4.0), (Lion, _) => (0.5, 0.5, -4.0), (Tarasque, _) => (1.5, -0.5, -3.5), (Tiger, _) => (1.0, 0.5, -4.0), From 8b2b6aa06ac81965443f1adac39cedec78d40c75 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 20 Jun 2020 01:34:56 +0200 Subject: [PATCH 23/48] Makes anim hotload work for quadlow --- voxygen/src/anim/Cargo.toml | 2 +- voxygen/src/anim/src/lib.rs | 1 + .../src/anim/{ => src}/quadruped_low/idle.rs | 6 +- .../src/anim/{ => src}/quadruped_low/jump.rs | 6 +- .../src/anim/{ => src}/quadruped_low/mod.rs | 9 ++- .../src/anim/{ => src}/quadruped_low/run.rs | 6 +- voxygen/src/anim/src/quadruped_medium/mod.rs | 58 +------------------ voxygen/src/scene/figure/mod.rs | 12 +--- 8 files changed, 29 insertions(+), 71 deletions(-) rename voxygen/src/anim/{ => src}/quadruped_low/idle.rs (94%) rename voxygen/src/anim/{ => src}/quadruped_low/jump.rs (95%) rename voxygen/src/anim/{ => src}/quadruped_low/mod.rs (96%) rename voxygen/src/anim/{ => src}/quadruped_low/run.rs (97%) diff --git a/voxygen/src/anim/Cargo.toml b/voxygen/src/anim/Cargo.toml index ab4d0e2bfe..92ce71acb0 100644 --- a/voxygen/src/anim/Cargo.toml +++ b/voxygen/src/anim/Cargo.toml @@ -8,7 +8,7 @@ edition = "2018" name = "voxygen_anim" # Uncomment to use animation hot reloading # Note: this breaks `cargo test` -# crate-type = ["lib", "cdylib"] +crate-type = ["lib", "cdylib"] [features] use-dyn-lib = ["libloading", "notify", "lazy_static", "tracing", "find_folder"] diff --git a/voxygen/src/anim/src/lib.rs b/voxygen/src/anim/src/lib.rs index 0afdbbbae5..59bb019061 100644 --- a/voxygen/src/anim/src/lib.rs +++ b/voxygen/src/anim/src/lib.rs @@ -15,6 +15,7 @@ pub mod golem; pub mod object; pub mod quadruped_medium; pub mod quadruped_small; +pub mod quadruped_low; #[cfg(feature = "use-dyn-lib")] pub use dyn_lib::init; diff --git a/voxygen/src/anim/quadruped_low/idle.rs b/voxygen/src/anim/src/quadruped_low/idle.rs similarity index 94% rename from voxygen/src/anim/quadruped_low/idle.rs rename to voxygen/src/anim/src/quadruped_low/idle.rs index 6e1bc30c8a..63698cdbd4 100644 --- a/voxygen/src/anim/quadruped_low/idle.rs +++ b/voxygen/src/anim/src/quadruped_low/idle.rs @@ -8,7 +8,11 @@ impl Animation for IdleAnimation { type Dependency = f64; type Skeleton = QuadrupedLowSkeleton; - fn update_skeleton( + #[cfg(feature = "use-dyn-lib")] + const UPDATE_FN: &'static [u8] = b"quadruped_low_idle\0"; + + #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_low_idle")] + fn update_skeleton_inner( skeleton: &Self::Skeleton, global_time: Self::Dependency, anim_time: f64, diff --git a/voxygen/src/anim/quadruped_low/jump.rs b/voxygen/src/anim/src/quadruped_low/jump.rs similarity index 95% rename from voxygen/src/anim/quadruped_low/jump.rs rename to voxygen/src/anim/src/quadruped_low/jump.rs index c02adef7f6..25cf993482 100644 --- a/voxygen/src/anim/quadruped_low/jump.rs +++ b/voxygen/src/anim/src/quadruped_low/jump.rs @@ -8,7 +8,11 @@ impl Animation for JumpAnimation { type Dependency = (f32, f64); type Skeleton = QuadrupedLowSkeleton; - fn update_skeleton( + #[cfg(feature = "use-dyn-lib")] + const UPDATE_FN: &'static [u8] = b"quadruped_low_jump\0"; + + #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_low_jump")] + fn update_skeleton_inner( skeleton: &Self::Skeleton, _global_time: Self::Dependency, anim_time: f64, diff --git a/voxygen/src/anim/quadruped_low/mod.rs b/voxygen/src/anim/src/quadruped_low/mod.rs similarity index 96% rename from voxygen/src/anim/quadruped_low/mod.rs rename to voxygen/src/anim/src/quadruped_low/mod.rs index 670f904f17..777879b092 100644 --- a/voxygen/src/anim/quadruped_low/mod.rs +++ b/voxygen/src/anim/src/quadruped_low/mod.rs @@ -5,8 +5,7 @@ pub mod run; // Reexports pub use self::{idle::IdleAnimation, jump::JumpAnimation, run::RunAnimation}; -use super::{Bone, Skeleton}; -use crate::render::FigureBoneData; +use super::{Bone, FigureBoneData, Skeleton}; use common::comp::{self}; use vek::Vec3; @@ -31,9 +30,13 @@ impl QuadrupedLowSkeleton { impl Skeleton for QuadrupedLowSkeleton { type Attr = SkeletonAttr; + #[cfg(feature = "use-dyn-lib")] + const COMPUTE_FN: &'static [u8] = b"quadruped_low_compute_mats\0"; + fn bone_count(&self) -> usize { 10 } - fn compute_matrices(&self) -> ([FigureBoneData; 16], Vec3) { + #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_low_compute_mats")] + fn compute_matrices_inner(&self) -> ([FigureBoneData; 16], Vec3) { let head_upper_mat = self.head_upper.compute_base_matrix(); let head_lower_mat = self.head_lower.compute_base_matrix(); let chest_mat = self.chest.compute_base_matrix(); diff --git a/voxygen/src/anim/quadruped_low/run.rs b/voxygen/src/anim/src/quadruped_low/run.rs similarity index 97% rename from voxygen/src/anim/quadruped_low/run.rs rename to voxygen/src/anim/src/quadruped_low/run.rs index ea89d71e85..f96e6ad83a 100644 --- a/voxygen/src/anim/quadruped_low/run.rs +++ b/voxygen/src/anim/src/quadruped_low/run.rs @@ -8,7 +8,11 @@ impl Animation for RunAnimation { type Dependency = (f32, f64); type Skeleton = QuadrupedLowSkeleton; - fn update_skeleton( + #[cfg(feature = "use-dyn-lib")] + const UPDATE_FN: &'static [u8] = b"quadruped_low_run\0"; + + #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_low_run")] + fn update_skeleton_inner( skeleton: &Self::Skeleton, (_velocity, global_time): Self::Dependency, anim_time: f64, diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index 287c94a634..2a98e566b4 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -28,60 +28,6 @@ pub struct QuadrupedMediumSkeleton { foot_br: Bone, } -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const HEAD_UPPER_Y: f32 = 6.0; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const HEAD_UPPER_Z: f32 = 1.0; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const HEAD_LOWER_Y: f32 = 1.0; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const HEAD_LOWER_Z: f32 = -3.0; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const JAW_Y: f32 = -2.5; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const JAW_Z: f32 = 0.5; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TAIL_Y: f32 = -5.5; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TAIL_Z: f32 = -0.5; -#[const_tweaker::tweak(min = -25.0, max = 20.0, step = 0.5)] -const TORSO_BACK_Y: f32 = -20.0; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TORSO_BACK_Z: f32 = 1.5; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TORSO_FRONT_Y: f32 = 0.0; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const TORSO_FRONT_Z: f32 = 11.0; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const EARS_Y: f32 = 5.0; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const EARS_Z: f32 = 9.5; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_FRONT_X: f32 = -7.0; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_FRONT_Y: f32 = -5.0; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_FRONT_Z: f32 = -2.0; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_BACK_X: f32 = 6.0; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_BACK_Y: f32 = -0.5; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const LEG_BACK_Z: f32 = -5.5; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_FRONT_X: f32 = 0.0; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_FRONT_Y: f32 = 1.0; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_FRONT_Z: f32 = -6.0; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_BACK_X: f32 = 0.0; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_BACK_Y: f32 = 0.0; -#[const_tweaker::tweak(min = -20.0, max = 20.0, step = 0.5)] -const FEET_BACK_Z: f32 = -5.0; - - impl QuadrupedMediumSkeleton { pub fn new() -> Self { Self::default() } } @@ -89,6 +35,9 @@ impl QuadrupedMediumSkeleton { impl Skeleton for QuadrupedMediumSkeleton { type Attr = SkeletonAttr; + #[cfg(feature = "use-dyn-lib")] + const COMPUTE_FN: &'static [u8] = b"quadruped_medium_compute_mats\0"; + fn bone_count(&self) -> usize { 15 } #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_medium_compute_mats")] @@ -207,7 +156,6 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (1.0, 0.0), (Tuskram, _) => (1.0, 1.0), (Lion, _) => (0.5, 1.0), - (Tiger, _) => (0.0, 0.0), (Tarasque, _) => (0.5, -2.0), (Tiger, _) => (-5.0, -6.0), }, diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs index c5fe230aed..471406bdf7 100644 --- a/voxygen/src/scene/figure/mod.rs +++ b/voxygen/src/scene/figure/mod.rs @@ -5,13 +5,6 @@ pub use cache::FigureModelCache; pub use load::load_mesh; // TODO: Don't make this public. use crate::{ - anim::{ - self, biped_large::BipedLargeSkeleton, bird_medium::BirdMediumSkeleton, - bird_small::BirdSmallSkeleton, character::CharacterSkeleton, critter::CritterSkeleton, - dragon::DragonSkeleton, fish_medium::FishMediumSkeleton, fish_small::FishSmallSkeleton, - golem::GolemSkeleton, object::ObjectSkeleton, quadruped_medium::QuadrupedMediumSkeleton, - quadruped_small::QuadrupedSmallSkeleton, quadruped_low::QuadrupedLowSkeleton, Animation, Skeleton, - }, ecs::comp::Interpolated, render::{Consts, FigureBoneData, FigureLocals, Globals, Light, Renderer, Shadow}, scene::{ @@ -24,7 +17,7 @@ use anim::{ bird_small::BirdSmallSkeleton, character::CharacterSkeleton, critter::CritterSkeleton, dragon::DragonSkeleton, fish_medium::FishMediumSkeleton, fish_small::FishSmallSkeleton, golem::GolemSkeleton, object::ObjectSkeleton, quadruped_medium::QuadrupedMediumSkeleton, - quadruped_small::QuadrupedSmallSkeleton, Animation, Skeleton, + quadruped_small::QuadrupedSmallSkeleton, quadruped_low::QuadrupedLowSkeleton, Animation, Skeleton, }; use common::{ comp::{ @@ -1020,7 +1013,7 @@ impl FigureMgr { is_player, ); }, - Body::QuadrupedLow(_) => { + Body::QuadrupedLow(quadruped_body) => { let skeleton_attr = &self .quadruped_low_model_cache .get_or_create_model( @@ -1032,6 +1025,7 @@ impl FigureMgr { None, ) .1; + let ref skeleton_attr = quadruped_body.into(); let state = self .quadruped_low_states From 6416a4cf2fc015782098a5e8a17e7e5779750b08 Mon Sep 17 00:00:00 2001 From: Snowram Date: Tue, 23 Jun 2020 23:07:13 +0200 Subject: [PATCH 24/48] Add tarasque and grolgar improvements --- .../voxel/npc/grolgar/female/foot_bl.vox | Bin 1316 -> 1316 bytes .../voxel/npc/grolgar/female/foot_br.vox | Bin 1316 -> 1316 bytes .../voxel/npc/grolgar/female/foot_fl.vox | Bin 1564 -> 1564 bytes .../voxel/npc/grolgar/female/foot_fr.vox | Bin 1564 -> 1564 bytes .../voxel/npc/grolgar/female/head_upper.vox | Bin 4728 -> 4728 bytes .../voxel/npc/grolgar/male/foot_bl.vox | Bin 1316 -> 1316 bytes .../voxel/npc/grolgar/male/foot_br.vox | Bin 1316 -> 1316 bytes .../voxel/npc/grolgar/male/foot_fl.vox | Bin 1564 -> 1564 bytes .../voxel/npc/grolgar/male/foot_fr.vox | Bin 1564 -> 1564 bytes .../voxel/npc/grolgar/male/head_upper.vox | Bin 4728 -> 4728 bytes .../voxel/npc/tarasque/female/head_upper.vox | Bin 5056 -> 5512 bytes .../voxygen/voxel/npc/tarasque/male/ears.vox | Bin 1176 -> 1176 bytes .../voxel/npc/tarasque/male/foot_bl.vox | Bin 1508 -> 1508 bytes .../voxel/npc/tarasque/male/foot_br.vox | Bin 1508 -> 1508 bytes .../voxel/npc/tarasque/male/foot_fl.vox | Bin 2180 -> 2180 bytes .../voxel/npc/tarasque/male/foot_fr.vox | Bin 2180 -> 2180 bytes .../voxel/npc/tarasque/male/head_lower.vox | Bin 2408 -> 2408 bytes .../voxel/npc/tarasque/male/head_upper.vox | Bin 5056 -> 5512 bytes .../voxygen/voxel/npc/tarasque/male/jaw.vox | Bin 1760 -> 1760 bytes .../voxel/npc/tarasque/male/leg_bl.vox | Bin 1620 -> 1620 bytes .../voxel/npc/tarasque/male/leg_br.vox | Bin 1620 -> 1620 bytes .../voxel/npc/tarasque/male/leg_fl.vox | Bin 2068 -> 2068 bytes .../voxel/npc/tarasque/male/leg_fr.vox | Bin 2068 -> 2068 bytes .../voxygen/voxel/npc/tarasque/male/tail.vox | Bin 3316 -> 3316 bytes .../voxel/npc/tarasque/male/torso_back.vox | Bin 5280 -> 5280 bytes .../voxel/npc/tarasque/male/torso_front.vox | Bin 10088 -> 10088 bytes .../quadruped_medium_central_manifest.ron | 8 ++++---- voxygen/src/anim/src/quadruped_medium/mod.rs | 18 +++++++++--------- voxygen/src/scene/figure/mod.rs | 6 ++---- 29 files changed, 15 insertions(+), 17 deletions(-) diff --git a/assets/voxygen/voxel/npc/grolgar/female/foot_bl.vox b/assets/voxygen/voxel/npc/grolgar/female/foot_bl.vox index cc8d76b20d6767d1d6f38e5e07ba4cedc3048ecb..0d73b9b1b754254458e1732a742fd18b6530db8e 100644 GIT binary patch delta 16 YcmZ3&wS;R!02A}>X~mm^nJzK`05ezy0RR91 delta 16 XcmZ3&wS;R!02A|(CdbXeOc$8|G3W)v diff --git a/assets/voxygen/voxel/npc/grolgar/female/foot_br.vox b/assets/voxygen/voxel/npc/grolgar/female/foot_br.vox index a1d6c4974af524af29fff144fa98e2c7a8f77add..950b33e69bb6d54b2ff557f6c3edc68f09998b2f 100644 GIT binary patch delta 16 YcmZ3&wS;R!02A}>X~mm^nJzK`05ezy0RR91 delta 16 XcmZ3&wS;R!02A|(CdbXeOc$8|G3W)v diff --git a/assets/voxygen/voxel/npc/grolgar/female/foot_fl.vox b/assets/voxygen/voxel/npc/grolgar/female/foot_fl.vox index 9e2b073502df7d4a13883502facadb9af53e3915..c68529471f5f1938013af4aea251a289d6f9c0e9 100644 GIT binary patch delta 24 gcmbQkGlyq`2Q%~TX~mPhnPr)0RYh&iX5PpI0BNWQRsaA1 delta 20 ccmbQkGlyq`2Q%}LCdbL%EQOo*Fefkp082y${Qv*} diff --git a/assets/voxygen/voxel/npc/grolgar/female/foot_fr.vox b/assets/voxygen/voxel/npc/grolgar/female/foot_fr.vox index d1c66f00fdf7b8b190b391bdd1457831472d1dbc..b438522f4a2b4300971aeb9502d9c2bbd7c237a3 100644 GIT binary patch delta 24 gcmbQkGlyq`2Q%~TX~mPhnPr)0RYh&iX5PpI0BNWQRsaA1 delta 20 ccmbQkGlyq`2Q%}LCdbL%EQOo*Fefkp082y${Qv*} diff --git a/assets/voxygen/voxel/npc/grolgar/female/head_upper.vox b/assets/voxygen/voxel/npc/grolgar/female/head_upper.vox index 20211786390ed0d25ac9735229e2126e156f993d..a9ba5344bea99aa6263c8eee4a1c525f06294078 100644 GIT binary patch delta 48 zcmV-00MGyUB={t-qz@yzmUI6@DFFXoH~{~4L;(MoRsjD|G#dY5P(uHDVoU#;dRnu` G53vF(-WG@e delta 20 ccmeyN@X~mm^nJzK`05ezy0RR91 delta 16 XcmZ3&wS;R!02A|(CdbXeOc$8|G3W)v diff --git a/assets/voxygen/voxel/npc/grolgar/male/foot_br.vox b/assets/voxygen/voxel/npc/grolgar/male/foot_br.vox index a1d6c4974af524af29fff144fa98e2c7a8f77add..950b33e69bb6d54b2ff557f6c3edc68f09998b2f 100644 GIT binary patch delta 16 YcmZ3&wS;R!02A}>X~mm^nJzK`05ezy0RR91 delta 16 XcmZ3&wS;R!02A|(CdbXeOc$8|G3W)v diff --git a/assets/voxygen/voxel/npc/grolgar/male/foot_fl.vox b/assets/voxygen/voxel/npc/grolgar/male/foot_fl.vox index 9e2b073502df7d4a13883502facadb9af53e3915..c68529471f5f1938013af4aea251a289d6f9c0e9 100644 GIT binary patch delta 24 gcmbQkGlyq`2Q%~TX~mPhnPr)0RYh&iX5PpI0BNWQRsaA1 delta 20 ccmbQkGlyq`2Q%}LCdbL%EQOo*Fefkp082y${Qv*} diff --git a/assets/voxygen/voxel/npc/grolgar/male/foot_fr.vox b/assets/voxygen/voxel/npc/grolgar/male/foot_fr.vox index d1c66f00fdf7b8b190b391bdd1457831472d1dbc..b438522f4a2b4300971aeb9502d9c2bbd7c237a3 100644 GIT binary patch delta 24 gcmbQkGlyq`2Q%~TX~mPhnPr)0RYh&iX5PpI0BNWQRsaA1 delta 20 ccmbQkGlyq`2Q%}LCdbL%EQOo*Fefkp082y${Qv*} diff --git a/assets/voxygen/voxel/npc/grolgar/male/head_upper.vox b/assets/voxygen/voxel/npc/grolgar/male/head_upper.vox index 20211786390ed0d25ac9735229e2126e156f993d..a9ba5344bea99aa6263c8eee4a1c525f06294078 100644 GIT binary patch delta 48 zcmV-00MGyUB={t-qz@yzmUI6@DFFXoH~{~4L;(MoRsjD|G#dY5P(uHDVoU#;dRnu` G53vF(-WG@e delta 20 ccmeyN@oieswnjERF8C*L_ojW(H>kc0{G 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 E0x5WG8LoC){Ny~<8=1kYFbSe6%%<7%Vvp~ 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 diff --git a/assets/voxygen/voxel/npc/tarasque/male/foot_br.vox b/assets/voxygen/voxel/npc/tarasque/male/foot_br.vox index 957440783848cff396967b1745aecad641673bfc..85ebfc089c0d41092d8ebba0b7498619f0f45d84 100644 GIT binary patch delta 22 ecmaFD{e*kN8fGR=uF30|)0p@KHjA;GV*~(LvHjA;GV*~(L{szGS diff --git a/assets/voxygen/voxel/npc/tarasque/male/foot_fl.vox b/assets/voxygen/voxel/npc/tarasque/male/foot_fl.vox index c02dd99a61103921e54332834e4b1d70cb30f7b9..552d81b8e914db61ac785805a623e2fc49789a7c 100644 GIT binary patch delta 22 dcmZn>Y!Tex!^XtPHQA3XjfqcS^ES3~i~vG71?>O; delta 22 dcmZn>Y!Tex!^XtTJ=u>fjY&{w^ES3~i~vG{1@!;` diff --git a/assets/voxygen/voxel/npc/tarasque/male/foot_fr.vox b/assets/voxygen/voxel/npc/tarasque/male/foot_fr.vox index 03f2da135ae5219e17481183ce384f6942c5131f..150b7bbb4f3f49fcf28f368cde6b43c8c84d5aee 100644 GIT binary patch delta 22 dcmZn>Y!Tex!^XtPHQA3XjfqcS^ES3~i~vG71?>O; delta 22 dcmZn>Y!Tex!^XtTJ=u>fjY&{w^ES3~i~vG{1@!;` diff --git a/assets/voxygen/voxel/npc/tarasque/male/head_lower.vox b/assets/voxygen/voxel/npc/tarasque/male/head_lower.vox index c498fb81eb4b9b76a08fbb2cfe8ad9755f3769ab..55062ab9a854365345941eefcf9b626db0aa6dc7 100644 GIT binary patch delta 22 ecmaDM^g?KZ0Xq{X*JLC1G$uZQ&9m6gF#-TjWd>#d delta 22 ecmaDM^g?KZ0Xq{n_hcjXG$uiz&9m6gF#-TjuLf=a diff --git a/assets/voxygen/voxel/npc/tarasque/male/head_upper.vox b/assets/voxygen/voxel/npc/tarasque/male/head_upper.vox index 89e4fd10cc5ae55fb532ccd18c8452b010edd015..0bbe6fe2009e13fcaa27552d45592ff3ba7f07cc 100644 GIT binary patch literal 5512 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 E0x5WG8LoC){Ny~<8=1kYFbSe6%%<7%Vvp~ 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 delta 22 dcmcb@bA@Mv3=0!C_hdPiG$uiz&222_7y(G21@!;` diff --git a/assets/voxygen/voxel/npc/tarasque/male/leg_br.vox b/assets/voxygen/voxel/npc/tarasque/male/leg_br.vox index 875d1ba12fd6c105125313777e352acabc8d8fe8..881feae056b60dd0aa50c964dfc603d4c9206012 100644 GIT binary patch delta 22 dcmcb@bA@Mv3=0z{*JL@CG$uZQ&222_7y(FD1?>O; delta 22 dcmcb@bA@Mv3=0!C_hdPiG$uiz&222_7y(G21@!;` diff --git a/assets/voxygen/voxel/npc/tarasque/male/leg_fl.vox b/assets/voxygen/voxel/npc/tarasque/male/leg_fl.vox index 38835efb4d5f872e8c4854403f7a5f1bedffc815..b518f3912151aca04d4d1031ddb96132ad273ddd 100644 GIT binary patch delta 22 ecmbOtFhyX)9abhzuF3aU)0p@KHoLK%V*~(FmIk>1 delta 22 ecmbOtFhyX)9abi8?#cI9)0hN>HoLK%V*~(F;0D0} diff --git a/assets/voxygen/voxel/npc/tarasque/male/leg_fr.vox b/assets/voxygen/voxel/npc/tarasque/male/leg_fr.vox index 3dcbe012b521b75e5597ac3123a5746a5a481d2d..9704d4d62b1682b68235a5219e8fcec72f2213fb 100644 GIT binary patch delta 22 ecmbOtFhyX)9abhzuF3aU)0p@KHoLK%V*~(FmIk>1 delta 22 ecmbOtFhyX)9abi8?#cI9)0hN>HoLK%V*~(F;0D0} diff --git a/assets/voxygen/voxel/npc/tarasque/male/tail.vox b/assets/voxygen/voxel/npc/tarasque/male/tail.vox index c603af7695ca34d0afae1a331add9da78db50c82..07295e5a486a344131b97e02255db8f26a8bab01 100644 GIT binary patch delta 22 ecmew&`9*TW9xf(MuF3nj(wO)JHmh-;V*~(TPX{^x delta 22 ecmew&`9*TW9xf(s?#cVO(wGE=Hmh-;V*~(TnFm4u diff --git a/assets/voxygen/voxel/npc/tarasque/male/torso_back.vox b/assets/voxygen/voxel/npc/tarasque/male/torso_back.vox index da1f32367dfe673a169f0a30b161d7b3f6b4b9da..62d86e675041b41b9cddc6864ff389270f15bdd7 100644 GIT binary patch delta 22 ecmZ3Wxj=J6h7c1c*W@grG$uZQ&6kAEF#-TjYzEB$ delta 22 ecmZ3Wxj=J6h7c1s_v9?0G$uiz&6kAEF#-Tjwg%Mz diff --git a/assets/voxygen/voxel/npc/tarasque/male/torso_front.vox b/assets/voxygen/voxel/npc/tarasque/male/torso_front.vox index 2f7a4891991323ab814883a9fd88efa192b78668..b62a9f01c050abaec7335e73b1e986898bf014de 100644 GIT binary patch delta 22 ecmaFi_rh<3fhrRx*JLBrG$uZQ&9hX`F#-TwD+f3L delta 22 ecmaFi_rh<3fhrR>_hcj0G$uiz&9hX`F#-Twbq7EI diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index 33e977b3a2..d42e0f47c4 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -2,7 +2,7 @@ (Grolgar, Male): ( upper: ( offset: (-7.0, 0.0, -9.0), - central: ("npc.grolgar.female.head_upper"), + central: ("npc.grolgar.male.head_upper"), ), lower: ( offset: (-6.0, -4.5, -4.0), @@ -241,7 +241,7 @@ ), (Tarasque, Male): ( upper: ( - offset: (-9.0, -13.0, -10.5), + offset: (-10.0, -9.0, -10.0), central: ("npc.tarasque.male.head_upper"), ), lower: ( @@ -271,7 +271,7 @@ ), (Tarasque, Female): ( upper: ( - offset: (-9.0, -13.0, -10.5), + offset: (-10.0, -9.0, -10.0), central: ("npc.tarasque.female.head_upper"), ), lower: ( @@ -296,7 +296,7 @@ ), tail: ( offset: (-5.0, -19.0, -10.0), - central: ("npc.tarasque.male.tail"), + central: ("npc.tarasque.female.tail"), ), ), (Tiger, Male): ( diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index 2a98e566b4..40c9e8aa2c 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -148,7 +148,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (-11.0, -3.0), (Tuskram, _) => (6.0, 1.0), (Lion, _) => (12.0, 2.0), - (Tarasque, _) => (14.0, 3.5), + (Tarasque, _) => (5.5, 3.5), (Tiger, _) => (2.0, 1.0), }, head_lower: match (body.species, body.body_type) { @@ -156,7 +156,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (1.0, 0.0), (Tuskram, _) => (1.0, 1.0), (Lion, _) => (0.5, 1.0), - (Tarasque, _) => (0.5, -2.0), + (Tarasque, _) => (0.5, -4.0), (Tiger, _) => (-5.0, -6.0), }, jaw: match (body.species, body.body_type) { @@ -164,7 +164,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (18.0, -1.0), (Tuskram, _) => (4.0, -4.0), (Lion, _) => (0.0, -4.5), - (Tarasque, _) => (0.0, -10.0), + (Tarasque, _) => (9.0, -10.0), (Tiger, _) => (7.0, -4.0), }, tail: match (body.species, body.body_type) { @@ -188,7 +188,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (-19.5, 0.0), (Tuskram, _) => (-18.0, -2.0), (Lion, _) => (-19.0, -1.0), - (Tarasque, _) => (-26.5, -1.0), + (Tarasque, _) => (-26.0, -1.0), (Tiger, _) => (-19.0, 0.0), }, ears: match (body.species, body.body_type) { @@ -196,7 +196,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (13.0, 7.0), (Tuskram, _) => (1.5, 9.5), (Lion, _) => (-8.0, 4.5), - (Tarasque, _) => (-5.0, 1.0), + (Tarasque, _) => (3.0, 1.0), (Tiger, _) => (2.5, 5.0), }, leg_f: match (body.species, body.body_type) { @@ -204,7 +204,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (7.0, -7.5, -3.5), (Tuskram, _) => (6.0, -6.5, -5.5), (Lion, _) => (7.5, -4.5, -6.0), - (Tarasque, _) => (7.5, -2.0, -6.0), + (Tarasque, _) => (7.0, -8.0, -6.0), (Tiger, _) => (7.0, -2.0, -1.0), }, leg_b: match (body.species, body.body_type) { @@ -212,7 +212,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (6.0, -1.0, -4.0), (Tuskram, _) => (5.0, 0.5, -3.5), (Lion, _) => (6.0, 0.0, -2.0), - (Tarasque, _) => (6.0, 4.5, -6.0), + (Tarasque, _) => (6.0, 7.5, -6.5), (Tiger, _) => (7.0, -2.0, -1.0), }, feet_f: match (body.species, body.body_type) { @@ -220,7 +220,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (1.0, 3.0, -1.0), (Tuskram, _) => (0.5, 2.0, -5.0), (Lion, _) => (0.0, 2.0, -4.5), - (Tarasque, _) => (2.0, -0.5, -4.5), + (Tarasque, _) => (1.0, 0.0, -3.0), (Tiger, _) => (1.0, 0.0, -5.0), }, feet_b: match (body.species, body.body_type) { @@ -228,7 +228,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (1.0, 0.0, 0.0), (Tuskram, _) => (0.5, 0.0, -4.0), (Lion, _) => (0.5, 0.5, -4.0), - (Tarasque, _) => (1.5, -0.5, -3.5), + (Tarasque, _) => (1.5, -2.5, -2.5), (Tiger, _) => (1.0, 0.5, -4.0), }, height: match (body.species, body.body_type) { diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs index 471406bdf7..afc3ff526c 100644 --- a/voxygen/src/scene/figure/mod.rs +++ b/voxygen/src/scene/figure/mod.rs @@ -929,7 +929,7 @@ impl FigureMgr { is_player, ); }, - Body::QuadrupedMedium(quadruped_body) => { + Body::QuadrupedMedium(_) => { let skeleton_attr = &self .quadruped_medium_model_cache .get_or_create_model( @@ -941,7 +941,6 @@ impl FigureMgr { None, ) .1; - let ref skeleton_attr = quadruped_body.into(); let state = self .quadruped_medium_states @@ -1013,7 +1012,7 @@ impl FigureMgr { is_player, ); }, - Body::QuadrupedLow(quadruped_body) => { + Body::QuadrupedLow(_) => { let skeleton_attr = &self .quadruped_low_model_cache .get_or_create_model( @@ -1025,7 +1024,6 @@ impl FigureMgr { None, ) .1; - let ref skeleton_attr = quadruped_body.into(); let state = self .quadruped_low_states From 7ea7629d2cf73b0a10fbfaee40d2779e6fe34301 Mon Sep 17 00:00:00 2001 From: Snowram Date: Wed, 24 Jun 2020 02:06:42 +0200 Subject: [PATCH 25/48] Add wolf, frostfang and mouflon npcs --- assets/common/npc_names.json | 12 ++ .../voxel/npc/frostfang/female/ears.vox | Bin 0 -> 1160 bytes .../voxel/npc/frostfang/female/foot_bl.vox | Bin 0 -> 1328 bytes .../voxel/npc/frostfang/female/foot_br.vox | Bin 0 -> 1328 bytes .../voxel/npc/frostfang/female/foot_fl.vox | Bin 0 -> 1328 bytes .../voxel/npc/frostfang/female/foot_fr.vox | Bin 0 -> 1328 bytes .../voxel/npc/frostfang/female/head_lower.vox | Bin 0 -> 1568 bytes .../voxel/npc/frostfang/female/head_upper.vox | Bin 0 -> 2048 bytes .../voxel/npc/frostfang/female/jaw.vox | Bin 0 -> 1256 bytes .../voxel/npc/frostfang/female/leg_bl.vox | Bin 0 -> 1384 bytes .../voxel/npc/frostfang/female/leg_br.vox | Bin 0 -> 1384 bytes .../voxel/npc/frostfang/female/leg_fl.vox | Bin 0 -> 1404 bytes .../voxel/npc/frostfang/female/leg_fr.vox | Bin 0 -> 1404 bytes .../voxel/npc/frostfang/female/tail.vox | Bin 0 -> 1892 bytes .../voxel/npc/frostfang/female/torso_back.vox | Bin 0 -> 2224 bytes .../npc/frostfang/female/torso_front.vox | Bin 0 -> 4316 bytes .../voxygen/voxel/npc/frostfang/male/ears.vox | Bin 0 -> 1160 bytes .../voxel/npc/frostfang/male/foot_bl.vox | Bin 0 -> 1328 bytes .../voxel/npc/frostfang/male/foot_br.vox | Bin 0 -> 1328 bytes .../voxel/npc/frostfang/male/foot_fl.vox | Bin 0 -> 1328 bytes .../voxel/npc/frostfang/male/foot_fr.vox | Bin 0 -> 1328 bytes .../voxel/npc/frostfang/male/head_lower.vox | Bin 0 -> 1568 bytes .../voxel/npc/frostfang/male/head_upper.vox | Bin 0 -> 2048 bytes .../voxygen/voxel/npc/frostfang/male/jaw.vox | Bin 0 -> 1256 bytes .../voxel/npc/frostfang/male/leg_bl.vox | Bin 0 -> 1384 bytes .../voxel/npc/frostfang/male/leg_br.vox | Bin 0 -> 1384 bytes .../voxel/npc/frostfang/male/leg_fl.vox | Bin 0 -> 1404 bytes .../voxel/npc/frostfang/male/leg_fr.vox | Bin 0 -> 1404 bytes .../voxygen/voxel/npc/frostfang/male/tail.vox | Bin 0 -> 1892 bytes .../voxel/npc/frostfang/male/torso_back.vox | Bin 0 -> 2224 bytes .../voxel/npc/frostfang/male/torso_front.vox | Bin 0 -> 4316 bytes .../voxel/npc/mouflon/female/foot_bl.vox | Bin 0 -> 1192 bytes .../voxel/npc/mouflon/female/foot_br.vox | Bin 0 -> 1192 bytes .../voxel/npc/mouflon/female/foot_fl.vox | Bin 0 -> 1224 bytes .../voxel/npc/mouflon/female/foot_fr.vox | Bin 0 -> 1224 bytes .../voxel/npc/mouflon/female/head_lower.vox | Bin 0 -> 1944 bytes .../voxel/npc/mouflon/female/head_upper.vox | Bin 0 -> 2704 bytes .../voxygen/voxel/npc/mouflon/female/jaw.vox | Bin 0 -> 1144 bytes .../voxel/npc/mouflon/female/leg_bl.vox | Bin 0 -> 1560 bytes .../voxel/npc/mouflon/female/leg_br.vox | Bin 0 -> 1560 bytes .../voxel/npc/mouflon/female/leg_fl.vox | Bin 0 -> 1436 bytes .../voxel/npc/mouflon/female/leg_fr.vox | Bin 0 -> 1436 bytes .../voxygen/voxel/npc/mouflon/female/tail.vox | Bin 0 -> 1192 bytes .../voxel/npc/mouflon/female/torso_back.vox | Bin 0 -> 3584 bytes .../voxel/npc/mouflon/female/torso_front.vox | Bin 0 -> 2864 bytes .../voxel/npc/mouflon/male/foot_bl.vox | Bin 0 -> 1192 bytes .../voxel/npc/mouflon/male/foot_br.vox | Bin 0 -> 1192 bytes .../voxel/npc/mouflon/male/foot_fl.vox | Bin 0 -> 1224 bytes .../voxel/npc/mouflon/male/foot_fr.vox | Bin 0 -> 1224 bytes .../voxel/npc/mouflon/male/head_lower.vox | Bin 0 -> 1944 bytes .../voxel/npc/mouflon/male/head_upper.vox | Bin 0 -> 2704 bytes assets/voxygen/voxel/npc/mouflon/male/jaw.vox | Bin 0 -> 1144 bytes .../voxygen/voxel/npc/mouflon/male/leg_bl.vox | Bin 0 -> 1560 bytes .../voxygen/voxel/npc/mouflon/male/leg_br.vox | Bin 0 -> 1560 bytes .../voxygen/voxel/npc/mouflon/male/leg_fl.vox | Bin 0 -> 1436 bytes .../voxygen/voxel/npc/mouflon/male/leg_fr.vox | Bin 0 -> 1436 bytes .../voxygen/voxel/npc/mouflon/male/tail.vox | Bin 0 -> 1192 bytes .../voxel/npc/mouflon/male/torso_back.vox | Bin 0 -> 3584 bytes .../voxel/npc/mouflon/male/torso_front.vox | Bin 0 -> 2864 bytes assets/voxygen/voxel/npc/wolf/female/ears.vox | Bin 0 -> 1264 bytes .../voxygen/voxel/npc/wolf/female/foot_bl.vox | Bin 0 -> 1456 bytes .../voxygen/voxel/npc/wolf/female/foot_br.vox | Bin 0 -> 1456 bytes .../voxygen/voxel/npc/wolf/female/foot_fl.vox | Bin 0 -> 1456 bytes .../voxygen/voxel/npc/wolf/female/foot_fr.vox | Bin 0 -> 1456 bytes .../voxel/npc/wolf/female/head_lower.vox | Bin 0 -> 2728 bytes .../voxel/npc/wolf/female/head_upper.vox | Bin 0 -> 2844 bytes assets/voxygen/voxel/npc/wolf/female/jaw.vox | Bin 0 -> 1208 bytes .../voxygen/voxel/npc/wolf/female/leg_bl.vox | Bin 0 -> 1512 bytes .../voxygen/voxel/npc/wolf/female/leg_br.vox | Bin 0 -> 1512 bytes .../voxygen/voxel/npc/wolf/female/leg_fl.vox | Bin 0 -> 1652 bytes .../voxygen/voxel/npc/wolf/female/leg_fr.vox | Bin 0 -> 1652 bytes assets/voxygen/voxel/npc/wolf/female/tail.vox | Bin 0 -> 1840 bytes .../voxel/npc/wolf/female/torso_back.vox | Bin 0 -> 3168 bytes .../voxel/npc/wolf/female/torso_front.vox | Bin 0 -> 4704 bytes assets/voxygen/voxel/npc/wolf/male/ears.vox | Bin 0 -> 1264 bytes .../voxygen/voxel/npc/wolf/male/foot_bl.vox | Bin 0 -> 1456 bytes .../voxygen/voxel/npc/wolf/male/foot_br.vox | Bin 0 -> 1456 bytes .../voxygen/voxel/npc/wolf/male/foot_fl.vox | Bin 0 -> 1456 bytes .../voxygen/voxel/npc/wolf/male/foot_fr.vox | Bin 0 -> 1456 bytes .../voxel/npc/wolf/male/head_lower.vox | Bin 0 -> 2728 bytes .../voxel/npc/wolf/male/head_upper.vox | Bin 0 -> 2844 bytes assets/voxygen/voxel/npc/wolf/male/jaw.vox | Bin 0 -> 1208 bytes assets/voxygen/voxel/npc/wolf/male/leg_bl.vox | Bin 0 -> 1512 bytes assets/voxygen/voxel/npc/wolf/male/leg_br.vox | Bin 0 -> 1512 bytes assets/voxygen/voxel/npc/wolf/male/leg_fl.vox | Bin 0 -> 1652 bytes assets/voxygen/voxel/npc/wolf/male/leg_fr.vox | Bin 0 -> 1652 bytes assets/voxygen/voxel/npc/wolf/male/tail.vox | Bin 0 -> 1840 bytes .../voxel/npc/wolf/male/torso_back.vox | Bin 0 -> 3168 bytes .../voxel/npc/wolf/male/torso_front.vox | Bin 0 -> 4704 bytes .../quadruped_medium_central_manifest.ron | 180 ++++++++++++++++ .../quadruped_medium_lateral_manifest.ron | 204 ++++++++++++++++++ common/src/comp/body/quadruped_medium.rs | 14 +- voxygen/src/anim/src/quadruped_medium/mod.rs | 36 ++++ 93 files changed, 445 insertions(+), 1 deletion(-) create mode 100644 assets/voxygen/voxel/npc/frostfang/female/ears.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/female/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/female/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/female/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/female/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/female/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/female/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/female/jaw.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/female/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/female/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/female/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/female/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/female/tail.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/female/torso_back.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/female/torso_front.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/male/ears.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/male/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/male/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/male/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/male/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/male/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/male/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/male/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/male/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/male/tail.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/male/torso_back.vox create mode 100644 assets/voxygen/voxel/npc/frostfang/male/torso_front.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/female/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/female/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/female/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/female/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/female/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/female/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/female/jaw.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/female/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/female/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/female/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/female/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/female/tail.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/female/torso_back.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/female/torso_front.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/male/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/male/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/male/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/male/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/male/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/male/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/male/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/male/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/male/tail.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/male/torso_back.vox create mode 100644 assets/voxygen/voxel/npc/mouflon/male/torso_front.vox create mode 100644 assets/voxygen/voxel/npc/wolf/female/ears.vox create mode 100644 assets/voxygen/voxel/npc/wolf/female/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/wolf/female/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/wolf/female/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/wolf/female/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/wolf/female/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/wolf/female/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/wolf/female/jaw.vox create mode 100644 assets/voxygen/voxel/npc/wolf/female/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/wolf/female/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/wolf/female/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/wolf/female/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/wolf/female/tail.vox create mode 100644 assets/voxygen/voxel/npc/wolf/female/torso_back.vox create mode 100644 assets/voxygen/voxel/npc/wolf/female/torso_front.vox create mode 100644 assets/voxygen/voxel/npc/wolf/male/ears.vox create mode 100644 assets/voxygen/voxel/npc/wolf/male/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/wolf/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/wolf/male/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/wolf/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/wolf/male/head_lower.vox create mode 100644 assets/voxygen/voxel/npc/wolf/male/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/wolf/male/jaw.vox create mode 100644 assets/voxygen/voxel/npc/wolf/male/leg_bl.vox create mode 100644 assets/voxygen/voxel/npc/wolf/male/leg_br.vox create mode 100644 assets/voxygen/voxel/npc/wolf/male/leg_fl.vox create mode 100644 assets/voxygen/voxel/npc/wolf/male/leg_fr.vox create mode 100644 assets/voxygen/voxel/npc/wolf/male/tail.vox create mode 100644 assets/voxygen/voxel/npc/wolf/male/torso_back.vox create mode 100644 assets/voxygen/voxel/npc/wolf/male/torso_front.vox diff --git a/assets/common/npc_names.json b/assets/common/npc_names.json index 270d5179ac..5c59168cb5 100644 --- a/assets/common/npc_names.json +++ b/assets/common/npc_names.json @@ -266,6 +266,18 @@ "tiger": { "keyword": "tiger", "generic": "Tiger" + }, + "wolf": { + "keyword": "wolf", + "generic": "Wolf" + }, + "frostfang": { + "keyword": "frostfang", + "generic": "Frost Fang" + }, + "mouflon": { + "keyword": "mouflon", + "generic": "Mouflon" } } }, diff --git a/assets/voxygen/voxel/npc/frostfang/female/ears.vox b/assets/voxygen/voxel/npc/frostfang/female/ears.vox new file mode 100644 index 0000000000000000000000000000000000000000..f70d4c7ec4bb3201cb7be7dbe3c6c00ed045f050 GIT binary patch literal 1160 zcmW;Lv5FHx90%b4M!mDJ@Wcm@yuuU~YH<>gD^yS-=RLr*HbNf36gC!@W55TH!zVCc zFAVqu3tHKwwi~~hO@5o?m))H&Gn==s&L8X|;>GFNOE2-^X2hGbi)VNG2it8~$PGDv zcX77z+PAxM6w~FcY1$o4i``L#_i?$HVmF0Mi>rn2rkHle5m%v)X}UU|LZ&|C)$8X^ zPs4b9Yh$bSMY1GO_o~`eebrZe)%U}SzIapgMPKy&)U40?>_gUPeZO4NCwUu^c>^CqrZdW)~kz_g_sJY(5-GEe5oJej92W#-8|nJ4pPp6`8m$13%i$?fBx);`Vu+GcL;^WVRgUeA+w z63@5|coI+INj!W=(t^Yk`oh8QY0Qv(eosp#FKc`{chwqCE>YPD+1<+9zo|HQEo{{h5wbiM!p literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/female/foot_bl.vox b/assets/voxygen/voxel/npc/frostfang/female/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..fce0504bd77f058510abb6b1c573fca9acad4aee GIT binary patch literal 1328 zcmXZay^hmB6o%n*W*jP-MU)gMw=e|~KgFUTv;`o6f|k92(^BRVNI^qkCr6@Qp%qs^ zBzmMHaRrv3+GdrSZg^)P$>-Q#?3pKHzkPLne-e=wr)Mwul6wo0H)j{mZnpzo9LlZ# zIe&L?cGF5;4@nlil%)Hli+xIYFN0j_LM}5I*v~r9r+p?#7Q5V{i!sT-{xBvT#w>Zt zl6Fb?PDJyVwH+t+bsVzphAg|BbQ%)-iTy16CSy)~4?5|dkSM9H0>%>SQQfsS% zP0$B@&^L6B<9PZ~;c+~U$MHCxzI=EbkK=JXj;AfD z<8eHW$MHCxzRZ1Pnx?%Ap>Io%$M6^)!(({*?Z9Jr41_VEF?hd4Tx6VJ92g$M({CFd z!((_1kKt*z((o7_!((_1&$o7a`(0`)WA(%DT0hQz>SnI>)AcpCo*qxZQ}Fc108hbF z@Dw}+&x6n3>!U9}>f^6Jc}(bm6ejJD3!cJ-1y7+Uc=!-{JOxj|Q}9r?r={JYwko6$ z-tAFieFTr-5j=v2%LzRm!6SGC4?_}q)<^IN9>K#jgdUIJ5j+BhsR=y;3Kt6}9w}#X zAXj8dHe^j!WJykl9LY=$*LAg8)#Y+o@7#UDxgvi7S9p&s literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/female/foot_br.vox b/assets/voxygen/voxel/npc/frostfang/female/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..d4c87997ccf39c5a7e6a375d99bfa95e84634cdb GIT binary patch literal 1328 zcmXZayNVP+6vpv$s%nf(RtybfUZDcPORzE`8>pa+tor~bHJnFq0uzI|957yF@d+F- z7Y_IY4H|8-Ol(&Et8{k1zI@YN^_%K``|AAuRzzN$p1ouz_huq*&Muza?k9XWm0SOF z{_f)Jrk8vk5*58HN%u)-`;_v&6uHbZxl|$?s}}mSSCVA5(;l5|k`#{1CTZEKWRBA| zDf>kFUehiSRozI|tz_Xl-AUp+ahzqNDqBtLi|(|r&$>%|pZGpy_FR*SFfP5yE~m7~ zjF}lf7v1L4JK1Kg%SxE1aBtzfaGV({Gk=o2dHww9DZgiY+V})pCq^of)_N6efpPVXEzz0*5=zt!lC-Z(LOqwm92`buBvD@CQ}zX`q23%$^b{F|0-Fi|jQFhFqe zps)!%fhX_;p25Qtcmhx02|R<0C-4NGz!P}J&%hIS0#D!xJpHEyp1>1$0#D#UHzdy1 z@i-pGGnN3418^pD26hG+%fgq=f#Y#Jj%O?t9>?Q&9FOA}%ZJDDI3CC2c>0n$9>?Q& z9FOA}%RE-5Yx-X$^nK~^7#_o8cnr^Y9C!?mfiNaC1|N@zn~V#L6T@S8#$&@{cnpu> zF+BZI8Xm)Acnpu>`PLurcuIX`tbO?1+Q;cnTTQKfy1wSo)8nalDxUEg;Hh{jo{Fd9 zdGPsrd-UZ;d;Ik$uL(Vn%B16U!Be@h;;9rB5C4Q7PsLO5R6NxEZRt;_uL`Mzzy7MR zK7vQ^2p+-1?SvkW;1N86ham|)>mzsskKkb%LXSuA2p$2$)P$Y^g`0&7kCYQRkSnq# zE3zaDGAAcQj$|SSaz)l;MV4ei=H!IPkxb-3uE?6K$dW9`oSd}d@z|zmYKOz2y>GwT adcAI|)v7I*%eGi7+I&85ckVvnT9LmLOphP{ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/female/foot_fl.vox b/assets/voxygen/voxel/npc/frostfang/female/foot_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..8df57cb15591c9e50cda1df2cd88cc3eb94c5744 GIT binary patch literal 1328 zcmXZay^hmB6o%n*W*jP-MU)gMw=e|~KgFUTv;`o6f|k92(^BRVNI^ppJ4d2kp%qs^ zBzmMHaRrv3+GdrSZg^)P$>+qM?U^TIzkPLne-x1yr)Mwul6wo0H)j{mZnqs??8>eG zIe&L?cGF5;58Ec`UIw{Ly4a_b_qveF+#-58&}SX!(>{|Viz&-u%(~bm8TdU+NrzpQ zOwulC9&^f5R`xZGNfX~X4q10Y7LM_qbQ+TEa+WD4x1$0#D#U z*Co!@@i-pG)0Y5`18^pD26hJN%fdnDhvRWPj;Ajb9>?Q&9FODa%ZJDDI3CC2c-oRW z9>?Q&9FODa%iLF{Y1+FG`nL3V43FV4Jcg&=4m^g(Ko}DmgZEp+MaBunj^Qyp{kGvT zJch^c7@l@34Uge5Jch^cd~3J2-=(%PRzLi%_2c}fZsuA)U0-wS>G2di1y6qr@Dw}+ zPr+00Jox;*KKk;bKK}ZX$Alh8VbcD%;3-^K@Dz%IhYz90Q}7f#1rK$5TG}0It3nFl z-5xd8NAL(9!6SIMoY3PDJc38?FeIU8eFTr-5j;#o=kuE>^b$eOIklAI7Zl9?RH71@#vS(6o6l9PHo9_u{M^>8@U e_w`rZZnt%_+0^xVU017BT`rgP&fO=REAkgenU5&| literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/female/foot_fr.vox b/assets/voxygen/voxel/npc/frostfang/female/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..0f30f5cff4eb3f82af64fc031035925e0e3d2042 GIT binary patch literal 1328 zcmXZay^hmB6o%n*W*jP-MU)gMw=e|~KgFUTv;`o6f|k92(^BRVNI^s4I7gyhp%qs^ zBzmMHaRrv3+GdrSZg^)P$>-Q#?3pKHzkPLneR7UdW{qVPAEiPkSXv7CV*2q`H`r43o+*CT-uD zKCz!CO?g!1Sksg=v9FV49VN@CiT$KINwU*SR5+jSK}Q{0r(;SjGN!Ck$}**aD4oif zQyR0TU1pvDXXeZ8TFKMv=TA@hKmAqvE7&?QQi#;rs$diJ zK_B!%-%fLSXUFNC-s#(=MsM`Sfzca%8?Mk7`a)kQ3O%1H^g=K6LND@fTDHMN!Jxqa z!O5M%Ch!EFz!P{n4^Q9;Jb@?hbTXd66L($MHCxzEpS|kK=JXj;Ajl9>?Q&9FOB^OX_$W zkK=JXj;AkkUzw(9??UL?(&I5ahR5(2o_;&<7#;&*OlS<=ZxI(6Cm08Y$ME#qhR5(2 z9>ZgJ+O0G^hR5(29>epk-QIqe+R9k{@VnNJ^PjqzYyEV6&8?@$Q}7f#{V~8(@Dw}+ zPr>ux^Y{Ab%a8i_>rWmNdLV^K`{RPAaACnyC<-1vgdR`9Q}7f#)a_|$cc`rjDTH@> z)L0+EBX|Ul;NfyYk4Nwb9>K$qgr4;gJc38?Fb$!{BX|UlfMIGv&w#?k!ih)9nHhXB2^E}tX;ZWb# cUv<0P*3D*9*Xwm%tyXopT-G~xpKz|oUj*Hc9RL6T literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/female/head_lower.vox b/assets/voxygen/voxel/npc/frostfang/female/head_lower.vox new file mode 100644 index 0000000000000000000000000000000000000000..59f940234dbbf826966476e45d1f250a82960c2b GIT binary patch literal 1568 zcmW-fJ&sc`6h`llouQx^!~#&Z;DQ1uKtX5vB| zBUxetM1qPgHJv$jl9LyI&%QpnelMQByful)cn?Ueh%SUY{J zf}hR8e8bt@W^$u+jQy$49<+L*_d6Bks$5ws)PNwyeVZkPk8&0;;i_ABCOc(RBM-T3gL+6a!cvZd&WJo~V zqsmt$ujG}ylJ{wayzrxt7xF^hmuB)zo*88FOy0{S@A`9 zQ}8MH6nqLky`=@8f=|Jx;8XA!Z62NJHvOG|oc?5dGCmofj8DdA90xubpNvFi!%XpU zL@dfo$P6+*8J}@%_+)%CJ{g~kPe00xPsS(Xlkv&;eCx+MPN{b$w|9S9dw=}bHpkXJ z{Qb+(ljD={N%)M%0H1_U!YARA@VWi*d%N@HN4xv=Cyxm^B8g4Mg#=f@l*o5doR`YsKgwLCE;0@w{g!;()jK@TT-zOU&AUf)N`IwJcj-R;)WP88(Nh;# zS6NflJw~rw`!m0b#YHr2&ZbQ*ZYpu}cplH=d7Tz-X>l4?hp(1a@25qPPjOY3R@ddb zPpxB~qnkhc8eFyp?t|$TMvp)SfedVOYMY;6 z9b@Kuo^^&WZQ`kQ?43TIv8R{bvF89!j7v~m)s*$&rnk}Ci@}fN*fuqAR1tQU3KLYS67HW7xv8Afu6;I+sP_!i!)Wjtd$5r$Yf^9Q-Pp6S*5@C8_)Kj48A}_V%6CB- z%?P_&m9L6l@hg7C@6!r?VNmc3e!=gh89(D^ZZdwx@9k#%8Gpu~F=l*zo8Sw+;0wOU z|I6}SS*X&q(x5VVpzu}Usqj>IDm()Zo(fNer@~X=8OZQdcq%*3QvWn z!qc}_;i>Rccq%*<9_R*1;k&?7;3@Eo2;eCI6c#HqE;Jdj@USo_@Dz9oJR>T23Oog# z0#AWw#0O7-r@&L-De&}23p@p$0#AXbz%ybV$#k0jGb8*SJvHAjyR&kWBD&v*^sncAF2KeFA>6}>_ibVet1L-J~6TrTZ=KDX29)Q-nvI~)$} Kt+zj5uE>9eqXYl| literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/female/jaw.vox b/assets/voxygen/voxel/npc/frostfang/female/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..61a50187f830070e370a725bad430a097b8d1e5b GIT binary patch literal 1256 zcmW;Ky^hmB6o%n5V|!_6g17+Wihc?Tpjc#tQUDStXxR%mEu}937c?n0$&n~2P{b8r zi5}@lG_;nW+RioI@XjRp{PX$m$&BBGL*EzK!%JaQ~HoI|3tM+x0c z46I{!(}eCQ4QnY~cMNTJjO@pj#O@HKI|Shz5<+_jk##x0q31qL*^lip#`f^$#k0%$ z2e9V)ah67uBtl&(XW{ft@AOVzPBVIA!|09P=*y)_uk^}}(kp$rU7}C)i9S&zdVX2x zgY_I0FMDM9%kIwxJexr4jLPV$M6`QI#hTJkKr*qhNli6 z9>ZgJ43FU{Luz;okKr*qhNlj59hssj-$dvcAH}116p!LjJaszoC>{l&JW#oLogyw$ zPEd9fkK(D*hDY%z9>t@0%2X;I#iMu>kK*}Wrnk;g85zwV|K|K@`IpBf=l$(1Q%{d4 z;YoPvYk()=Nq7>Tgy+%cANldupZUqRU%V#tKoSqFuM3{Ug$YlhNO<@WdOQhF!jte& zm$#+NP#G1H2;cImF+PGv@CY8k!{vk?kKhqJf`?lYdd5fa2p+-1V+cJS!6SGC438%C z+)%h!IB}(1$V|>;A|u(6f%IfUWF-rk$(c-KBs(&Yo@|J$WFa#-lZlLEM+VZ9O+27cDp8;zDz?C!~xKX8%#j~6hVt11t1X?g&bg7N*{qOXeeywl{f&3H~}ls zBfSzQumn}Qt?7pU3?zB{@x(L!dF;2ZF7C}D^5XRDB|CYOM9$AHpWbdK`~-6Ae=go# zp51q?6?sma4_7X_D;LPXaT+*|bnL}VF8SHTu=pXdkCTh+y_@_HW|!jZLYkcSiyPwN zf?s^%*vG{?KlwJ^$?QcIZaMkj7|XdAt_zd*f&Yiu2NFHKo4q5E@gdUF#l*P8eqhYN zzKv-v`pA4KERL}*FrRDlGIqe}7@HCf=JtMa_`Q#l@GQa@;aMcL^Tc_YBzO`?>p1pY z!*jiU_T*GzUoNTr$Ji<O5cVS`a)kgDfETDO_%92 zeWuS8nV!EY^g=K6LND^~wrq_X8Iu|l7#DX68^dFG43FXIJUoWS@E9J$)5&-YkKr*q zhNnLU9>ZgJ43FVyk7jrbkKr*qh6i1jC|kv&coa`x0z3*pxtTJtGD%++{;3=&9>t@0 z`cmOhJc>v0D4xE2codJ~Q9O#LEve#BJc>v0D4xE|ePx=a{boYnmL5;RQ}7f#1y6q+ zcnY2ZqHx2)la+t7al2Bav;}aPe!sMTe2Z1M2=)72XamJWF$MXB^z== zAlGD1MzSMYvLPq+cs$m1UF+d+sPF5qy5H~XIF5C<+tuxMTQ{3cy>s_5*NXfF D4KbHr literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/female/leg_br.vox b/assets/voxygen/voxel/npc/frostfang/female/leg_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..1d5acb7f478bf8f1f9404eaecbdb9b3d4c72af84 GIT binary patch literal 1384 zcmXZaKaSHt6vy#5e;gW`AP#^cZZHJ}P%H|9EdU7!TJ`|1rOXjXK|^7CpTq&siW3lt z9_dM(z!Fs3rKTIcGh(y9*!g8<{K?qwUR~UqMC8TU`AZJ+b`W`Ue);rv`@ml!xBlni z{pI=n&{~n_B*b(Ta<~eKtT-Q5oM$?Y5~eW3DdaTCYT%d&#~4Ogr8x|F3~87{jB{AE z^EgTyAM?z@keDB2<}x#v93_P@M42RVKBQ4%;(LyX^)usRU|!%n)3wA|@-Pe6ki42? zSaD2a2&^*%O zOq^omJjUtuvnOYg+ir=}{^z_KQBnwXtDHBdcY3FH`ZmnyjT56cdZTYsm0szU4@$4} zZMi~U=nH+JDD?bSp%;3g7kW4}q`izNDTJOcoHxhgcpQ)8={!7+$MHBG$J5Dp9FOC1 zJdUUT3_Om<@i-pG(|(%caXgO4@i-oIU1Gc&9>ZgJ`WE0Z0LI0Pg^fk}w(zBKVt5RX z;ptn2$M6^)!(({*_Te!+hR5(2p0=fi$M6^)!(({*Hus%rn)WJ$p8ZigibwG%9>vpd z2Oht@06i>UAibwG%9>t@0zPH=k?^4?ttsno? z`f2%F_e-sxZ*I8t^mq!Mf~P+QcnY3^r{F1g9(?&xAAbE=AAS49V?qz4aMAv_;3-Tj zcnU?q!#|PU!In9>F7cSd!4QKY~Z_ z2p%p&=V>kH=&EP=D9M;ZXPceckPLb-Ufx&1O^Y+Vt<6vpv4Z)TT?wgmV_qHPP{P^SrZ}M&sd3|#B^maSp70Ipt zIemL}@*uR9@$H~`6+|yWh?gPouEKk`5DiyB!=()ATw;q7IhPdAgT^_GX$oVUb<{be zuvN|_4s#gdRyYqy<`88HI&4+PSt4BwvvMAyZo?25tCKKJaLkn{z=4o>diR%)d z3FDOU%Jr&kEyd68<2ULMxCVa=)2nAsj&b)_?JwtOq>xOc)>b(Or+0d%cltKW=#39X zZ}djrE-mzhzHn0L3w@g|(`WijpD8ju|5fOPUg(8h?Q&9FODaKLd~BaXgO4@wA`jcpQ)8aXgL(U6&X~!((_1Pu~JO z2EbU%nAn)4Zwp@<9}JJ-F+6>%@E9J$V|WZt-#$Es$M6^)!_&6Z@E9J$V|WZt-{!tE zP1F7|p>JD{r{F1g3Z8> literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/female/leg_fr.vox b/assets/voxygen/voxel/npc/frostfang/female/leg_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..09080665159fad1c0c652c449b008213d0f025e3 GIT binary patch literal 1404 zcmXYvKZ+DV6o+5^YZH?d40ed7`nsy$yga=(i^%iilNU7dE{VK8IeU7$-S7!;>p!P& z&rTk=mNFi^_ZLpUg-hrBrSn4TF1&YNoTp9k+=qq-IrlM~J0E5@#GM<$EQ8;<=qBOb zhqQAk%sx6Y*|`8dP2z{i2RFOGIG<>llekZQ=c7y#26E~}&)n80vx{W(ix1RJ%nv(> ze)5TS2$PRwG0xIz`8c`WKTw-G%_HI%TTRwWX>uvjH_Vb6c+)R!4!QI?v?;MhA_tEf z>pNOEc={ZDjy^ZNdiLa4V&6ik{bO7e3S=N|k#R9{BR6s*Z^M*a`J?1YuH)~Vg7(RxN z;nS7zF?fTooV1NAc-ffR7@eET$Az ziu7%vQ~9I#C_ai$-zt0*AH_%UQGELL;iLE{K8lax)3#LcQG661#Yge!+uV1i*|cv4 z^0xK(6nqLk1)qXXKMs5fJ_U)wf`#J!h?rCuP`D}h6ny%z;ZyJ__!N8!KJ6$AJ_VnG zPr;|)^SvE!Kc%)arGB`s_2crVj!UhdZf-bwa(psA8K3?d;FIym_+)%CKKDQWs1LvX ztdG9^;x!>hB(rFLUGT|F%=l!2j1NB`$0y^H@yYlQx3{I8P}>#Az_-0>?2q6h_y|6N z57U7hAHhfP5qu~K^FvMhDK-`Dr`cinEcbsWdK*=*{1 Qy{@a(s@}Q#n6V;%0oUo97ytkO literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/female/tail.vox b/assets/voxygen/voxel/npc/frostfang/female/tail.vox new file mode 100644 index 0000000000000000000000000000000000000000..815bb1c37d02c8899c20ac883c7f019abe295a87 GIT binary patch literal 1892 zcmW-gz0NB&5Qb;$wY|Fu#fP|nquhcE3ZOVB2z>=V0tFq;1-PZmC6Iz9#U`;tmqbFJ zxB?>49wAxc3L-&uy3};$@g{k9y|2gPXU3Z!zIpTNAR=GAe*T)9d>cf*e}4PLvOVzW z&T50YhaxZjENn?Rfce}t~-hKSKIlM?HCXKY@H)t zxQO#-)4}2GNgTQR;i_G@8Yl3<)uVvapJnVXCcxyw*@XUVobFA}eSjSnLq6k)CAaC& zh!3k-5M!IqTJ|@#gPjy^cUKFwns8b>%wtHHH-axPfAM5d|5S#lxzrra&O*7}R} zF!te~#A~aGHMXbz5zT$WrzWK)r6#2&+xDR*3#+9LZTZLHY&Zww`?G{VZ-{OEq9$Rz zc#k+2YEo)aYEo*_=D}o_{%9BeU>D(Fmtm46;~^aF;3pfxWP9cZcd&tb?+2$AreDW%JwL{iV0-FSP5V(aL!rsy`cHJc86Bxxh zyzU^4g_=}3H>BcE2C269e7LCPe}KOG^7Gg8pNIcRoj-+ZMhQiP-K@f;;1~RYU+`O4 z#?K5ge#X!EZE3bDQVRG@AB}2%r8WcoIAbo&-;VXFd*i5y3p|m95uS(<;o*ny;fe4>cp^O5 z?QLl%)VhKq;@e&|`XlfNJOYov!*YZVkH91F2t1@j`1D8M5qJb1wn6yt2s{Fh0K?V@ zpM=6q6>c4&(>XpL6r3CRQ9(G9(z9onJ|TB8+uLh?X&bVDy_hqh>g)@X&E p>f`aK_xruxZnyeV{ip7BySm+O>t?g5>-D;>R;&8qN1qWZ@;@qL?k@lU literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/female/torso_back.vox b/assets/voxygen/voxel/npc/frostfang/female/torso_back.vox new file mode 100644 index 0000000000000000000000000000000000000000..eb0a8304206f2579edcfc0a3d9d11c4766e347e7 GIT binary patch literal 2224 zcmXYxv5q7)5QfWDH+Nnc@>3S<0M^`r+eX2(J*H$?TiVwk3_T3*3=I zIY0A>oOtN;Bn_stI(u@|!4Fe>r%#FVI`f9IWnwVF>%qc#a@0-q1CMg_jP*tyBX5p# z)31y_I?Lv)ci6J$%_sUs9c5neM#-z3O=sQA67Rk$434Kt|1=ozMKv+cdib51hKEkv zso{(jUlbn{2E|XM4?3})x*Fb2`K)j#y;ts;$9j68+%px{ad%WBf8LZcDm_rnrJP4I zaXeFJkFh?JgZrw%n|TkuU<(fCJrVa%>>-XfnXwypox5-03Fk0!IXRtNjt`Ef&iQSO zIb(PNzY%l#XR!xQGE7Dt3s0!y+*{}G#HeA^^SDFNKYVcRo5#HwW8!$?^R!ub68k3h z;faMOu^&$iPYh2CPYh2SADo^#9@rR@2Tv^C2S4la#PQ5yKc0B}EyA4R&Tvl*Pdu3D zeX{v%c6Zi{()3z&rZ@9zb(9%T^P|p;C7*4+dvu>4oq1!eDNmapjkU&FW3A0d^5ZvO zeD+NK|G(46r}14;K?{=JBh>h6#2fKOyb+IOm3U=PiC5y4cx)}i3-Q8BAzp|_x`p^c zd?CINScvo6g}4wG;zC^HZCSn>g&Ij42^xzB3SSML22X>h!87pSY49|78axf2fecTB zr@_IhE?!Xcq%*%GUCuh)LLT>20F?|wR+`tf+| Vhr^-o_xrxv?fQG~f67{s{{Tk>9$Nqa literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/female/torso_front.vox b/assets/voxygen/voxel/npc/frostfang/female/torso_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..80537e8e66b3ae1ad7d323ff5b4c284230797ec4 GIT binary patch literal 4316 zcmXY#y^bYG5ry+7eln|W&+H%`0JX#uTmu6z77apU01{}>vJX%$W3x_+5O$GzxlzEQu^iBAAZFn{o|{Y ze*59upPypDp8*@Oci1<-|MtV>{~vx>Q__BS)#2`wrtzwcr(<^atjcqci`m`Pc(-awljM5Q_U5Yg=985CB&A%`-m-^r;+wx=@0({C7>EC3eSXqbo>X{N)(fWTNtOKr zzBya`?pcg;wOmBwoo@|4agOrzH_z4s<6G>jXVH3*a$?`xtH|ARjd5jP_{6^uQ<4G9 z#8&SH1u@OAK5=36zaGwv79il5Fo_(^h6 z_AC1Yzk*+7pRz|fW4O`IyAhuU@8wd#BDG#>m!%H6)ZW%Qw7GVlGw;^>Y(t;h(E09s zH=efEu1k(JLt{LyrMJ28UOH=r(_Ff)h4l?zrQ4cge?Ki{7+8Z1ojsj%#@QR^F<<+@ z*?rMCqxYo?KKi)o5Lkvagig+A{D-E)`NlsrXE$OMwqbMl75o3U>T7bk*R!IcrbXT+!mdnceXZ*Km~!`Oo;}oLV`rkgqbV zrINd1#5}B0D&I%+K|V5j1#MMy=;Wi32ZslAPz_F#!odK~O8?z z;ygve75@=0I0|Qo$ePh)1$%LH;E~gacbFZmXU=vsoXprquB3vM7{Fc{wddp>eiPhf zZA;<|gOd!;*2!gKor5uz%pA}3;CF0qzaq$=2h zPdGx4r8UN(hu}48H{uOHoQFOHT^DfI7H0-8p>* z{byp!Il@$D?UYF(wW;RkWpOK?^+&u9ZG2$~rWq zSn_P76qlP98Ju28Ob1$P=BNrV_cJ8t+ zz9`yOFj;~N;_Bqy4y|?ih~uZ@lXrS*tE}g)HSSo)uXS`t?u`0V?&t=d#(mtWQz!Qg zybXRkxmW7U%W&;z#i}spYoj-G?gOKzH28CTbhOhs%jsvGy0sGjUOcUh8ZdaUh^1EU z6m-U&W8|z++e+Us`dTCYMz3{h(dcE$9oqy$*NuDLsYyo{#u~NCdg9<52djhC!Pd}{ z2M_f0Mh`UVzM+4McQ|cu;@rIs_lDN2I61yy%h9jV zD-G=$z0>I<9Su1eHFVvGU882X8=d=IkK9Hc;a^Wnr+%D%;>4?9bg(tfR5aD7??!J? zI5m1}RI_WkaFLdF5182YkmISnzFL*%umC_@M6S zGe*BLda#ihs9A>ci*{}&aW6bkm=hqIN9XvaDcJLhVz_WvA z2hR?k9XtnQ@a*8(!Lx&B2hR}(cy{pY;Mu{mgC|1U!Lx&B2hR?k9Xy~rkZk)2@J!&Dz%zj-QaOQV0?!1V2|N>c{ub#yvJ}irw?F>pcKg%oe{T=3x7*Wq z-;sLe!E*-B89av!z;g!A89Zn3oWb*>KmYyq>hh}`|{<>?e+Eb_VV&_`@`+ux5vlF d+rz`d?c>LfxA*Vg-|p}4Z{Pd=Pg$GN{{Ye`elh?6 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/male/ears.vox b/assets/voxygen/voxel/npc/frostfang/male/ears.vox new file mode 100644 index 0000000000000000000000000000000000000000..f70d4c7ec4bb3201cb7be7dbe3c6c00ed045f050 GIT binary patch literal 1160 zcmW;Lv5FHx90%b4M!mDJ@Wcm@yuuU~YH<>gD^yS-=RLr*HbNf36gC!@W55TH!zVCc zFAVqu3tHKwwi~~hO@5o?m))H&Gn==s&L8X|;>GFNOE2-^X2hGbi)VNG2it8~$PGDv zcX77z+PAxM6w~FcY1$o4i``L#_i?$HVmF0Mi>rn2rkHle5m%v)X}UU|LZ&|C)$8X^ zPs4b9Yh$bSMY1GO_o~`eebrZe)%U}SzIapgMPKy&)U40?>_gUPeZO4NCwUu^c>^CqrZdW)~kz_g_sJY(5-GEe5oJej92W#-8|nJ4pPp6`8m$13%i$?fBx);`Vu+GcL;^WVRgUeA+w z63@5|coI+INj!W=(t^Yk`oh8QY0Qv(eosp#FKc`{chwqCE>YPD+1<+9zo|HQEo{{h5wbiM!p literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/male/foot_bl.vox b/assets/voxygen/voxel/npc/frostfang/male/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..fce0504bd77f058510abb6b1c573fca9acad4aee GIT binary patch literal 1328 zcmXZay^hmB6o%n*W*jP-MU)gMw=e|~KgFUTv;`o6f|k92(^BRVNI^qkCr6@Qp%qs^ zBzmMHaRrv3+GdrSZg^)P$>-Q#?3pKHzkPLne-e=wr)Mwul6wo0H)j{mZnpzo9LlZ# zIe&L?cGF5;4@nlil%)Hli+xIYFN0j_LM}5I*v~r9r+p?#7Q5V{i!sT-{xBvT#w>Zt zl6Fb?PDJyVwH+t+bsVzphAg|BbQ%)-iTy16CSy)~4?5|dkSM9H0>%>SQQfsS% zP0$B@&^L6B<9PZ~;c+~U$MHCxzI=EbkK=JXj;AfD z<8eHW$MHCxzRZ1Pnx?%Ap>Io%$M6^)!(({*?Z9Jr41_VEF?hd4Tx6VJ92g$M({CFd z!((_1kKt*z((o7_!((_1&$o7a`(0`)WA(%DT0hQz>SnI>)AcpCo*qxZQ}Fc108hbF z@Dw}+&x6n3>!U9}>f^6Jc}(bm6ejJD3!cJ-1y7+Uc=!-{JOxj|Q}9r?r={JYwko6$ z-tAFieFTr-5j=v2%LzRm!6SGC4?_}q)<^IN9>K#jgdUIJ5j+BhsR=y;3Kt6}9w}#X zAXj8dHe^j!WJykl9LY=$*LAg8)#Y+o@7#UDxgvi7S9p&s literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/male/foot_br.vox b/assets/voxygen/voxel/npc/frostfang/male/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..d4c87997ccf39c5a7e6a375d99bfa95e84634cdb GIT binary patch literal 1328 zcmXZayNVP+6vpv$s%nf(RtybfUZDcPORzE`8>pa+tor~bHJnFq0uzI|957yF@d+F- z7Y_IY4H|8-Ol(&Et8{k1zI@YN^_%K``|AAuRzzN$p1ouz_huq*&Muza?k9XWm0SOF z{_f)Jrk8vk5*58HN%u)-`;_v&6uHbZxl|$?s}}mSSCVA5(;l5|k`#{1CTZEKWRBA| zDf>kFUehiSRozI|tz_Xl-AUp+ahzqNDqBtLi|(|r&$>%|pZGpy_FR*SFfP5yE~m7~ zjF}lf7v1L4JK1Kg%SxE1aBtzfaGV({Gk=o2dHww9DZgiY+V})pCq^of)_N6efpPVXEzz0*5=zt!lC-Z(LOqwm92`buBvD@CQ}zX`q23%$^b{F|0-Fi|jQFhFqe zps)!%fhX_;p25Qtcmhx02|R<0C-4NGz!P}J&%hIS0#D!xJpHEyp1>1$0#D#UHzdy1 z@i-pGGnN3418^pD26hG+%fgq=f#Y#Jj%O?t9>?Q&9FOA}%ZJDDI3CC2c>0n$9>?Q& z9FOA}%RE-5Yx-X$^nK~^7#_o8cnr^Y9C!?mfiNaC1|N@zn~V#L6T@S8#$&@{cnpu> zF+BZI8Xm)Acnpu>`PLurcuIX`tbO?1+Q;cnTTQKfy1wSo)8nalDxUEg;Hh{jo{Fd9 zdGPsrd-UZ;d;Ik$uL(Vn%B16U!Be@h;;9rB5C4Q7PsLO5R6NxEZRt;_uL`Mzzy7MR zK7vQ^2p+-1?SvkW;1N86ham|)>mzsskKkb%LXSuA2p$2$)P$Y^g`0&7kCYQRkSnq# zE3zaDGAAcQj$|SSaz)l;MV4ei=H!IPkxb-3uE?6K$dW9`oSd}d@z|zmYKOz2y>GwT adcAI|)v7I*%eGi7+I&85ckVvnT9LmLOphP{ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/male/foot_fl.vox b/assets/voxygen/voxel/npc/frostfang/male/foot_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..8df57cb15591c9e50cda1df2cd88cc3eb94c5744 GIT binary patch literal 1328 zcmXZay^hmB6o%n*W*jP-MU)gMw=e|~KgFUTv;`o6f|k92(^BRVNI^ppJ4d2kp%qs^ zBzmMHaRrv3+GdrSZg^)P$>+qM?U^TIzkPLne-x1yr)Mwul6wo0H)j{mZnqs??8>eG zIe&L?cGF5;58Ec`UIw{Ly4a_b_qveF+#-58&}SX!(>{|Viz&-u%(~bm8TdU+NrzpQ zOwulC9&^f5R`xZGNfX~X4q10Y7LM_qbQ+TEa+WD4x1$0#D#U z*Co!@@i-pG)0Y5`18^pD26hJN%fdnDhvRWPj;Ajb9>?Q&9FODa%ZJDDI3CC2c-oRW z9>?Q&9FODa%iLF{Y1+FG`nL3V43FV4Jcg&=4m^g(Ko}DmgZEp+MaBunj^Qyp{kGvT zJch^c7@l@34Uge5Jch^cd~3J2-=(%PRzLi%_2c}fZsuA)U0-wS>G2di1y6qr@Dw}+ zPr+00Jox;*KKk;bKK}ZX$Alh8VbcD%;3-^K@Dz%IhYz90Q}7f#1rK$5TG}0It3nFl z-5xd8NAL(9!6SIMoY3PDJc38?FeIU8eFTr-5j;#o=kuE>^b$eOIklAI7Zl9?RH71@#vS(6o6l9PHo9_u{M^>8@U e_w`rZZnt%_+0^xVU017BT`rgP&fO=REAkgenU5&| literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/male/foot_fr.vox b/assets/voxygen/voxel/npc/frostfang/male/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..0f30f5cff4eb3f82af64fc031035925e0e3d2042 GIT binary patch literal 1328 zcmXZay^hmB6o%n*W*jP-MU)gMw=e|~KgFUTv;`o6f|k92(^BRVNI^s4I7gyhp%qs^ zBzmMHaRrv3+GdrSZg^)P$>-Q#?3pKHzkPLneR7UdW{qVPAEiPkSXv7CV*2q`H`r43o+*CT-uD zKCz!CO?g!1Sksg=v9FV49VN@CiT$KINwU*SR5+jSK}Q{0r(;SjGN!Ck$}**aD4oif zQyR0TU1pvDXXeZ8TFKMv=TA@hKmAqvE7&?QQi#;rs$diJ zK_B!%-%fLSXUFNC-s#(=MsM`Sfzca%8?Mk7`a)kQ3O%1H^g=K6LND@fTDHMN!Jxqa z!O5M%Ch!EFz!P{n4^Q9;Jb@?hbTXd66L($MHCxzEpS|kK=JXj;Ajl9>?Q&9FOB^OX_$W zkK=JXj;AkkUzw(9??UL?(&I5ahR5(2o_;&<7#;&*OlS<=ZxI(6Cm08Y$ME#qhR5(2 z9>ZgJ+O0G^hR5(29>epk-QIqe+R9k{@VnNJ^PjqzYyEV6&8?@$Q}7f#{V~8(@Dw}+ zPr>ux^Y{Ab%a8i_>rWmNdLV^K`{RPAaACnyC<-1vgdR`9Q}7f#)a_|$cc`rjDTH@> z)L0+EBX|Ul;NfyYk4Nwb9>K$qgr4;gJc38?Fb$!{BX|UlfMIGv&w#?k!ih)9nHhXB2^E}tX;ZWb# cUv<0P*3D*9*Xwm%tyXopT-G~xpKz|oUj*Hc9RL6T literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/male/head_lower.vox b/assets/voxygen/voxel/npc/frostfang/male/head_lower.vox new file mode 100644 index 0000000000000000000000000000000000000000..59f940234dbbf826966476e45d1f250a82960c2b GIT binary patch literal 1568 zcmW-fJ&sc`6h`llouQx^!~#&Z;DQ1uKtX5vB| zBUxetM1qPgHJv$jl9LyI&%QpnelMQByful)cn?Ueh%SUY{J zf}hR8e8bt@W^$u+jQy$49<+L*_d6Bks$5ws)PNwyeVZkPk8&0;;i_ABCOc(RBM-T3gL+6a!cvZd&WJo~V zqsmt$ujG}ylJ{wayzrxt7xF^hmuB)zo*88FOy0{S@A`9 zQ}8MH6nqLky`=@8f=|Jx;8XA!Z62NJHvOG|oc?5dGCmofj8DdA90xubpNvFi!%XpU zL@dfo$P6+*8J}@%_+)%CJ{g~kPe00xPsS(Xlkv&;eCx+MPN{b$w|9S9dw=}bHpkXJ z{Qb+(ljD={N%)M%0H1_U!YARA@VWi*d%N@HN4xv=Cyxm^B8g4Mg#=f@l*o5doR`YsKgwLCE;0@w{g!;()jK@TT-zOU&AUf)N`IwJcj-R;)WP88(Nh;# zS6NflJw~rw`!m0b#YHr2&ZbQ*ZYpu}cplH=d7Tz-X>l4?hp(1a@25qPPjOY3R@ddb zPpxB~qnkhc8eFyp?t|$TMvp)SfedVOYMY;6 z9b@Kuo^^&WZQ`kQ?43TIv8R{bvF89!j7v~m)s*$&rnk}Ci@}fN*fuqAR1tQU3KLYS67HW7xv8Afu6;I+sP_!i!)Wjtd$5r$Yf^9Q-Pp6S*5@C8_)Kj48A}_V%6CB- z%?P_&m9L6l@hg7C@6!r?VNmc3e!=gh89(D^ZZdwx@9k#%8Gpu~F=l*zo8Sw+;0wOU z|I6}SS*X&q(x5VVpzu}Usqj>IDm()Zo(fNer@~X=8OZQdcq%*3QvWn z!qc}_;i>Rccq%*<9_R*1;k&?7;3@Eo2;eCI6c#HqE;Jdj@USo_@Dz9oJR>T23Oog# z0#AWw#0O7-r@&L-De&}23p@p$0#AXbz%ybV$#k0jGb8*SJvHAjyR&kWBD&v*^sncAF2KeFA>6}>_ibVet1L-J~6TrTZ=KDX29)Q-nvI~)$} Kt+zj5uE>9eqXYl| literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/male/jaw.vox b/assets/voxygen/voxel/npc/frostfang/male/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..61a50187f830070e370a725bad430a097b8d1e5b GIT binary patch literal 1256 zcmW;Ky^hmB6o%n5V|!_6g17+Wihc?Tpjc#tQUDStXxR%mEu}937c?n0$&n~2P{b8r zi5}@lG_;nW+RioI@XjRp{PX$m$&BBGL*EzK!%JaQ~HoI|3tM+x0c z46I{!(}eCQ4QnY~cMNTJjO@pj#O@HKI|Shz5<+_jk##x0q31qL*^lip#`f^$#k0%$ z2e9V)ah67uBtl&(XW{ft@AOVzPBVIA!|09P=*y)_uk^}}(kp$rU7}C)i9S&zdVX2x zgY_I0FMDM9%kIwxJexr4jLPV$M6`QI#hTJkKr*qhNli6 z9>ZgJ43FU{Luz;okKr*qhNlj59hssj-$dvcAH}116p!LjJaszoC>{l&JW#oLogyw$ zPEd9fkK(D*hDY%z9>t@0%2X;I#iMu>kK*}Wrnk;g85zwV|K|K@`IpBf=l$(1Q%{d4 z;YoPvYk()=Nq7>Tgy+%cANldupZUqRU%V#tKoSqFuM3{Ug$YlhNO<@WdOQhF!jte& zm$#+NP#G1H2;cImF+PGv@CY8k!{vk?kKhqJf`?lYdd5fa2p+-1V+cJS!6SGC438%C z+)%h!IB}(1$V|>;A|u(6f%IfUWF-rk$(c-KBs(&Yo@|J$WFa#-lZlLEM+VZ9O+27cDp8;zDz?C!~xKX8%#j~6hVt11t1X?g&bg7N*{qOXeeywl{f&3H~}ls zBfSzQumn}Qt?7pU3?zB{@x(L!dF;2ZF7C}D^5XRDB|CYOM9$AHpWbdK`~-6Ae=go# zp51q?6?sma4_7X_D;LPXaT+*|bnL}VF8SHTu=pXdkCTh+y_@_HW|!jZLYkcSiyPwN zf?s^%*vG{?KlwJ^$?QcIZaMkj7|XdAt_zd*f&Yiu2NFHKo4q5E@gdUF#l*P8eqhYN zzKv-v`pA4KERL}*FrRDlGIqe}7@HCf=JtMa_`Q#l@GQa@;aMcL^Tc_YBzO`?>p1pY z!*jiU_T*GzUoNTr$Ji<O5cVS`a)kgDfETDO_%92 zeWuS8nV!EY^g=K6LND^~wrq_X8Iu|l7#DX68^dFG43FXIJUoWS@E9J$)5&-YkKr*q zhNnLU9>ZgJ43FVyk7jrbkKr*qh6i1jC|kv&coa`x0z3*pxtTJtGD%++{;3=&9>t@0 z`cmOhJc>v0D4xE2codJ~Q9O#LEve#BJc>v0D4xE|ePx=a{boYnmL5;RQ}7f#1y6q+ zcnY2ZqHx2)la+t7al2Bav;}aPe!sMTe2Z1M2=)72XamJWF$MXB^z== zAlGD1MzSMYvLPq+cs$m1UF+d+sPF5qy5H~XIF5C<+tuxMTQ{3cy>s_5*NXfF D4KbHr literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/male/leg_br.vox b/assets/voxygen/voxel/npc/frostfang/male/leg_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..1d5acb7f478bf8f1f9404eaecbdb9b3d4c72af84 GIT binary patch literal 1384 zcmXZaKaSHt6vy#5e;gW`AP#^cZZHJ}P%H|9EdU7!TJ`|1rOXjXK|^7CpTq&siW3lt z9_dM(z!Fs3rKTIcGh(y9*!g8<{K?qwUR~UqMC8TU`AZJ+b`W`Ue);rv`@ml!xBlni z{pI=n&{~n_B*b(Ta<~eKtT-Q5oM$?Y5~eW3DdaTCYT%d&#~4Ogr8x|F3~87{jB{AE z^EgTyAM?z@keDB2<}x#v93_P@M42RVKBQ4%;(LyX^)usRU|!%n)3wA|@-Pe6ki42? zSaD2a2&^*%O zOq^omJjUtuvnOYg+ir=}{^z_KQBnwXtDHBdcY3FH`ZmnyjT56cdZTYsm0szU4@$4} zZMi~U=nH+JDD?bSp%;3g7kW4}q`izNDTJOcoHxhgcpQ)8={!7+$MHBG$J5Dp9FOC1 zJdUUT3_Om<@i-pG(|(%caXgO4@i-oIU1Gc&9>ZgJ`WE0Z0LI0Pg^fk}w(zBKVt5RX z;ptn2$M6^)!(({*_Te!+hR5(2p0=fi$M6^)!(({*Hus%rn)WJ$p8ZigibwG%9>vpd z2Oht@06i>UAibwG%9>t@0zPH=k?^4?ttsno? z`f2%F_e-sxZ*I8t^mq!Mf~P+QcnY3^r{F1g9(?&xAAbE=AAS49V?qz4aMAv_;3-Tj zcnU?q!#|PU!In9>F7cSd!4QKY~Z_ z2p%p&=V>kH=&EP=D9M;ZXPceckPLb-Ufx&1O^Y+Vt<6vpv4Z)TT?wgmV_qHPP{P^SrZ}M&sd3|#B^maSp70Ipt zIemL}@*uR9@$H~`6+|yWh?gPouEKk`5DiyB!=()ATw;q7IhPdAgT^_GX$oVUb<{be zuvN|_4s#gdRyYqy<`88HI&4+PSt4BwvvMAyZo?25tCKKJaLkn{z=4o>diR%)d z3FDOU%Jr&kEyd68<2ULMxCVa=)2nAsj&b)_?JwtOq>xOc)>b(Or+0d%cltKW=#39X zZ}djrE-mzhzHn0L3w@g|(`WijpD8ju|5fOPUg(8h?Q&9FODaKLd~BaXgO4@wA`jcpQ)8aXgL(U6&X~!((_1Pu~JO z2EbU%nAn)4Zwp@<9}JJ-F+6>%@E9J$V|WZt-#$Es$M6^)!_&6Z@E9J$V|WZt-{!tE zP1F7|p>JD{r{F1g3Z8> literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/male/leg_fr.vox b/assets/voxygen/voxel/npc/frostfang/male/leg_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..09080665159fad1c0c652c449b008213d0f025e3 GIT binary patch literal 1404 zcmXYvKZ+DV6o+5^YZH?d40ed7`nsy$yga=(i^%iilNU7dE{VK8IeU7$-S7!;>p!P& z&rTk=mNFi^_ZLpUg-hrBrSn4TF1&YNoTp9k+=qq-IrlM~J0E5@#GM<$EQ8;<=qBOb zhqQAk%sx6Y*|`8dP2z{i2RFOGIG<>llekZQ=c7y#26E~}&)n80vx{W(ix1RJ%nv(> ze)5TS2$PRwG0xIz`8c`WKTw-G%_HI%TTRwWX>uvjH_Vb6c+)R!4!QI?v?;MhA_tEf z>pNOEc={ZDjy^ZNdiLa4V&6ik{bO7e3S=N|k#R9{BR6s*Z^M*a`J?1YuH)~Vg7(RxN z;nS7zF?fTooV1NAc-ffR7@eET$Az ziu7%vQ~9I#C_ai$-zt0*AH_%UQGELL;iLE{K8lax)3#LcQG661#Yge!+uV1i*|cv4 z^0xK(6nqLk1)qXXKMs5fJ_U)wf`#J!h?rCuP`D}h6ny%z;ZyJ__!N8!KJ6$AJ_VnG zPr;|)^SvE!Kc%)arGB`s_2crVj!UhdZf-bwa(psA8K3?d;FIym_+)%CKKDQWs1LvX ztdG9^;x!>hB(rFLUGT|F%=l!2j1NB`$0y^H@yYlQx3{I8P}>#Az_-0>?2q6h_y|6N z57U7hAHhfP5qu~K^FvMhDK-`Dr`cinEcbsWdK*=*{1 Qy{@a(s@}Q#n6V;%0oUo97ytkO literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/male/tail.vox b/assets/voxygen/voxel/npc/frostfang/male/tail.vox new file mode 100644 index 0000000000000000000000000000000000000000..815bb1c37d02c8899c20ac883c7f019abe295a87 GIT binary patch literal 1892 zcmW-gz0NB&5Qb;$wY|Fu#fP|nquhcE3ZOVB2z>=V0tFq;1-PZmC6Iz9#U`;tmqbFJ zxB?>49wAxc3L-&uy3};$@g{k9y|2gPXU3Z!zIpTNAR=GAe*T)9d>cf*e}4PLvOVzW z&T50YhaxZjENn?Rfce}t~-hKSKIlM?HCXKY@H)t zxQO#-)4}2GNgTQR;i_G@8Yl3<)uVvapJnVXCcxyw*@XUVobFA}eSjSnLq6k)CAaC& zh!3k-5M!IqTJ|@#gPjy^cUKFwns8b>%wtHHH-axPfAM5d|5S#lxzrra&O*7}R} zF!te~#A~aGHMXbz5zT$WrzWK)r6#2&+xDR*3#+9LZTZLHY&Zww`?G{VZ-{OEq9$Rz zc#k+2YEo)aYEo*_=D}o_{%9BeU>D(Fmtm46;~^aF;3pfxWP9cZcd&tb?+2$AreDW%JwL{iV0-FSP5V(aL!rsy`cHJc86Bxxh zyzU^4g_=}3H>BcE2C269e7LCPe}KOG^7Gg8pNIcRoj-+ZMhQiP-K@f;;1~RYU+`O4 z#?K5ge#X!EZE3bDQVRG@AB}2%r8WcoIAbo&-;VXFd*i5y3p|m95uS(<;o*ny;fe4>cp^O5 z?QLl%)VhKq;@e&|`XlfNJOYov!*YZVkH91F2t1@j`1D8M5qJb1wn6yt2s{Fh0K?V@ zpM=6q6>c4&(>XpL6r3CRQ9(G9(z9onJ|TB8+uLh?X&bVDy_hqh>g)@X&E p>f`aK_xruxZnyeV{ip7BySm+O>t?g5>-D;>R;&8qN1qWZ@;@qL?k@lU literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/male/torso_back.vox b/assets/voxygen/voxel/npc/frostfang/male/torso_back.vox new file mode 100644 index 0000000000000000000000000000000000000000..eb0a8304206f2579edcfc0a3d9d11c4766e347e7 GIT binary patch literal 2224 zcmXYxv5q7)5QfWDH+Nnc@>3S<0M^`r+eX2(J*H$?TiVwk3_T3*3=I zIY0A>oOtN;Bn_stI(u@|!4Fe>r%#FVI`f9IWnwVF>%qc#a@0-q1CMg_jP*tyBX5p# z)31y_I?Lv)ci6J$%_sUs9c5neM#-z3O=sQA67Rk$434Kt|1=ozMKv+cdib51hKEkv zso{(jUlbn{2E|XM4?3})x*Fb2`K)j#y;ts;$9j68+%px{ad%WBf8LZcDm_rnrJP4I zaXeFJkFh?JgZrw%n|TkuU<(fCJrVa%>>-XfnXwypox5-03Fk0!IXRtNjt`Ef&iQSO zIb(PNzY%l#XR!xQGE7Dt3s0!y+*{}G#HeA^^SDFNKYVcRo5#HwW8!$?^R!ub68k3h z;faMOu^&$iPYh2CPYh2SADo^#9@rR@2Tv^C2S4la#PQ5yKc0B}EyA4R&Tvl*Pdu3D zeX{v%c6Zi{()3z&rZ@9zb(9%T^P|p;C7*4+dvu>4oq1!eDNmapjkU&FW3A0d^5ZvO zeD+NK|G(46r}14;K?{=JBh>h6#2fKOyb+IOm3U=PiC5y4cx)}i3-Q8BAzp|_x`p^c zd?CINScvo6g}4wG;zC^HZCSn>g&Ij42^xzB3SSML22X>h!87pSY49|78axf2fecTB zr@_IhE?!Xcq%*%GUCuh)LLT>20F?|wR+`tf+| Vhr^-o_xrxv?fQG~f67{s{{Tk>9$Nqa literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/frostfang/male/torso_front.vox b/assets/voxygen/voxel/npc/frostfang/male/torso_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..80537e8e66b3ae1ad7d323ff5b4c284230797ec4 GIT binary patch literal 4316 zcmXY#y^bYG5ry+7eln|W&+H%`0JX#uTmu6z77apU01{}>vJX%$W3x_+5O$GzxlzEQu^iBAAZFn{o|{Y ze*59upPypDp8*@Oci1<-|MtV>{~vx>Q__BS)#2`wrtzwcr(<^atjcqci`m`Pc(-awljM5Q_U5Yg=985CB&A%`-m-^r;+wx=@0({C7>EC3eSXqbo>X{N)(fWTNtOKr zzBya`?pcg;wOmBwoo@|4agOrzH_z4s<6G>jXVH3*a$?`xtH|ARjd5jP_{6^uQ<4G9 z#8&SH1u@OAK5=36zaGwv79il5Fo_(^h6 z_AC1Yzk*+7pRz|fW4O`IyAhuU@8wd#BDG#>m!%H6)ZW%Qw7GVlGw;^>Y(t;h(E09s zH=efEu1k(JLt{LyrMJ28UOH=r(_Ff)h4l?zrQ4cge?Ki{7+8Z1ojsj%#@QR^F<<+@ z*?rMCqxYo?KKi)o5Lkvagig+A{D-E)`NlsrXE$OMwqbMl75o3U>T7bk*R!IcrbXT+!mdnceXZ*Km~!`Oo;}oLV`rkgqbV zrINd1#5}B0D&I%+K|V5j1#MMy=;Wi32ZslAPz_F#!odK~O8?z z;ygve75@=0I0|Qo$ePh)1$%LH;E~gacbFZmXU=vsoXprquB3vM7{Fc{wddp>eiPhf zZA;<|gOd!;*2!gKor5uz%pA}3;CF0qzaq$=2h zPdGx4r8UN(hu}48H{uOHoQFOHT^DfI7H0-8p>* z{byp!Il@$D?UYF(wW;RkWpOK?^+&u9ZG2$~rWq zSn_P76qlP98Ju28Ob1$P=BNrV_cJ8t+ zz9`yOFj;~N;_Bqy4y|?ih~uZ@lXrS*tE}g)HSSo)uXS`t?u`0V?&t=d#(mtWQz!Qg zybXRkxmW7U%W&;z#i}spYoj-G?gOKzH28CTbhOhs%jsvGy0sGjUOcUh8ZdaUh^1EU z6m-U&W8|z++e+Us`dTCYMz3{h(dcE$9oqy$*NuDLsYyo{#u~NCdg9<52djhC!Pd}{ z2M_f0Mh`UVzM+4McQ|cu;@rIs_lDN2I61yy%h9jV zD-G=$z0>I<9Su1eHFVvGU882X8=d=IkK9Hc;a^Wnr+%D%;>4?9bg(tfR5aD7??!J? zI5m1}RI_WkaFLdF5182YkmISnzFL*%umC_@M6S zGe*BLda#ihs9A>ci*{}&aW6bkm=hqIN9XvaDcJLhVz_WvA z2hR?k9XtnQ@a*8(!Lx&B2hR}(cy{pY;Mu{mgC|1U!Lx&B2hR?k9Xy~rkZk)2@J!&Dz%zj-QaOQV0?!1V2|N>c{ub#yvJ}irw?F>pcKg%oe{T=3x7*Wq z-;sLe!E*-B89av!z;g!A89Zn3oWb*>KmYyq>hh}`|{<>?e+Eb_VV&_`@`+ux5vlF d+rz`d?c>LfxA*Vg-|p}4Z{Pd=Pg$GN{{Ye`elh?6 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/female/foot_bl.vox b/assets/voxygen/voxel/npc/mouflon/female/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..d587cc76bf38c90a15c090b4e3104e7b61e96e0f GIT binary patch literal 1192 zcmWIZk5HJ#z`)?^=;;Tf7^bi=Fa&!>x$=NGK)?jWY(P39GRiXrBnSi&K+MR}ew z49rT5j7-XmK$-zaGcYm(*-T16-9T|5n~@PH#t0N+bOCD91?qHRWMt4~1hZLz>R6N* zftZ1j1*nzgDF<9x$=NGK)?jWY(P39GRiXrBnSi&K+MR}ew z49rT5j7-XmK$-zaGcYm(*-T16-9T|5n~@PH#t0N+bOCD91?qHRWMt4~1hZLz>R6N* zftZ1j1*nzgDF<93nN5nd5wWofvjl`#SXlUjkVr(9#RL)vNnXKH5PO4-or*rezJc#| zJ)171iU~*{10R<&bMEB~%#8Zu#utG5PTo_&PXLDb^meZjT25#Sbupey^ORRglm*nm`gMz(hSs2Gm*t&?Td-ZV|OHv6h~-TD9aXD?gF3vWb!3BM+}?J)oV literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/female/foot_fr.vox b/assets/voxygen/voxel/npc/mouflon/female/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..82bb02c9eea9fe853a3f97b8a4e0b97cce11e168 GIT binary patch literal 1224 zcmeH`y-EW?6ot>3nN5nd5wWofvjl`#SXlUjkVr(9#RL)vNnXKH5PO4-or*rezJc#| zJ)171iU~*{10R<&bMEB~%#8Zu#utG5PTo_&PXLDb^meZjT25#Sbupey^ORRglm*nm`gMz(hSs2Gm*t&?Td-ZV|OHv6h~-TD9aXD?gF3vWb!3BM+}?J)oV literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/female/head_lower.vox b/assets/voxygen/voxel/npc/mouflon/female/head_lower.vox new file mode 100644 index 0000000000000000000000000000000000000000..fdfc0d12345be0bb7e84725d6171de72117f71a3 GIT binary patch literal 1944 zcmeH{%W70X5Qe+zuj(F&8xc3IJPZwTbm78<7lcF*83q$DB1vAsy|_2Hai^kBFmL4J z3>?1`+(=e2f(QqINspoF@G=vDNp9+07BMO%tNOB~K-|;(sY)1_OpTIp?=a5E>5o5$)7bSV-{p=09 zVuz6vJH%ORx1=66xV2H%dZ5|p6V#ZiF=w6oj;+A4GnrAuL4ee_&qlpQzwASRoP98F zLvTir)F|Svz(L{;A-Ru=^6w!g8m>N!IL!vBzRQ(6+ia`l^C1jDsd2y;Ego| zBzSTT0unqLd6*v(yyAy|gi5VC=g+yn+HKakzAu<_!MqFR#!lWhsBq7q!uL{YfBF3B zUWv1xS6Q#u(_iJ`{pr((_tWmZyVK3<*QUeW$LIRlfAV13eETwO4sJ|zedgbMelu-8 t9-oW7%q*wx-u}^im+9rAXLojX{@LCyI_v-V-}}uzx^w%NH!}YN`~dv47@`0G literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/female/head_upper.vox b/assets/voxygen/voxel/npc/mouflon/female/head_upper.vox new file mode 100644 index 0000000000000000000000000000000000000000..ab4d003b34b93e9ef5d7467f016e232e5b94ee19 GIT binary patch literal 2704 zcmeH{%gP=_5Qe+Ej@>h#AmYZAlVm_93EwPSctA)5k)LP+1|-QXxEB}h6gTdo=oS3e z`T0z6BU!}=A~^6+)o<7Ip}M=ie)Qzs-%2T8-oJW?Dc_G$9$!8CY(5%%Z~RHeK6(1= z>I*;AQl8gRTJ?Q`0RkSjN!U6UJG(*R4a2vc@QzkHUCm(_r5)+|M1<{4C~s;u}ordjrLnqb+`J zFo@~IPK|#d@eR7=K0v|Un3H^xze#ONwWX3*CC7$7$Y-EC7=6)oF>=|I{5NB4&YG|vM%CC2Ai)`PrtbvB z%3eWOuNpZs`XL~#Y#lAw&rHnei1l(-_NC4|&bUr2HlgE>Bld_1`h$LKU^B|vLGxJO zu?GIbPizP6=$&{7{Dj`iItlv*fd*3}{~*u~--B}v))bsyuwPq*^J*}2hj{>;rL7%K z_(keorJhad=2F*?x+MOLcA~FnC2w_Ct>mqeH)61T1RqR+oUp?`Z1$ z=XG^#c-<1)X=|VdIs_!`9(B`1Pjm=K=%5|FGd=`z|*# s6#F`R`SH7N|IzVYXDzS#?=(&S*|opwUjL8(dvErm+wcA5jvNKx5BkwR8UO$Q literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/female/jaw.vox b/assets/voxygen/voxel/npc/mouflon/female/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..396c2b99491348b4f3c04d4f5ae5a5165a3bc658 GIT binary patch literal 1144 zcmWIZk5HJ#z`)?^=;;Tf7*bdm7=k^cTzNnoAOLb1n1PrHh$AASJWYT!2!Q07m>5+U zftZOANCPo51EUfX1EUrr1EV4Xh|S2L%?QLmz1oaG9OUlg2sRL?*W26s|A1mklmC<2 zn*Tc(==_%w7W^OVV2$A(KU<6cOQ%oyztms!KhViw`K6Py|1a&1#869#Us@{4sA?W1 fZXs1KH#hf?bvvnk9aT?Wp0(1}KuIIOyu<(iAFJo~ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/female/leg_bl.vox b/assets/voxygen/voxel/npc/mouflon/female/leg_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..c966f94287ecf2a4b2ed494490d448481f4589f3 GIT binary patch literal 1560 zcmeHG%W73Y5bUn%nK|LQ5pmMkde!=}C z|L0hfon#dwh>(GzAJg4aHRsIhqtpA}&Fo-*eJEp*%}&z^)1 z>#YE{5yZ$CDk(&n$kG@gKR1FC1V*X|jzCNh&&;N2^^YJR&yM(K4`Z3tj|f6NDc52;^$E+C@Y>u`6%is;w0ad_fpM^ z_!RN!IoH{2*0o5JN3Oc0M&<@)&B>E>UtAp8L)P4A@GK76bM^F?(rn5}lXYDP@t|tB zL`NjePLl~_k|xDW)nwWGrNN;XNgDe7DHcrn5FyUuXUdso$ijRD!^)}qmrr+D$U=9* zB|Vl@Eu|S|jb`=u)rj~FP}cldygK@_wL-DPxhW);&ZtBWZwSx zHgAva&Z2y=zy11V-hMv2RC^sQAK$MkdKEb?^ z?{ob+JIN|W5W$8+{d8B|bEA zR}SQ*N`+ctAkUMfak3bj2bMnWSR3h0oqC_4%7QZ2CXjKKFoO@R}>k+)LA z3VaHDdd~QEwCGyU9}|K(ol9DY`CC@CeSt z(mK*W?_mm{7|=uA2A5@8S@Tc02!7JbEyH{`h|0zkhGOee=eAy#M3^pToU}^X~iC zd3SVchVuFT?#t_W_v!S)*{f*z@b2v&?ROO}m#tka7XK{w%WD09{`cPO}bTvGsE{hi+V91a6Ry3mC#bfLpd=xU#z9v>;ru2{WZFa0WZ zx6{-8Z93fAOsmUFX?VE*X`lYVPMW^Gr0HNKvGq)!K3}EjnVcg}KmbN!?JzO&1` bwXIg`&+b0&S^x9D_Ra3KH$J>0`48|8O6T?G literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/female/leg_fr.vox b/assets/voxygen/voxel/npc/mouflon/female/leg_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..6643bd1745c94b73a9ceb1db11da23a3407d9488 GIT binary patch literal 1436 zcmeH`y-EZ@5QM9HX4l|ML`;laWI=Wf3=I51@Z>~}!xI$c^cBp-ToJ)cMW0}wbNt3k zjPwK%TqwG_tN&)$IXjvxy+}Ij562kY7t+b_Vt+O}d;t*B449l>3?~NRI|b%t?OrxA z5R2Mk(U4u+yC3j#JR??)<}o&wxs~`?5Ad8{)B+yRfrp|}h_zJ0%UVvpa_?AKC>m32 z6v$U(eo=V{m7%*w>dMMI)`nHKVn-uRo*BO9S=5X9z!lgZZh05D!+`_kzCgjT&K#%C z2WH;76N7UJ)SzL_vu*PP!cv&&a& ad%fPD-TkX){m=j2o84+xKKvv3{l5Vn$MxL+ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/female/tail.vox b/assets/voxygen/voxel/npc/mouflon/female/tail.vox new file mode 100644 index 0000000000000000000000000000000000000000..630390e7a201bf2b0be819d1445b0d854c1c2c65 GIT binary patch literal 1192 zcmeHGO$z~06us|bSd5LNWTjat78VvhQs_z3WE3T4ZD%igvaw_07tHUx&dg3$gOYOV zbieOAx87Y$mz66KO$M$HMWH5|yTK?II}o^}fGn_F1@0O;mJ%QY84190Bncx)8b#6( ziH>6mzH%su#d!^1Bd^h;5m&GkW>`iE%OOC(mNH`mFdGjC2?4z2c^-ci?Ixd(d+s;t zTrT8!-tRu~@p~tDOs MPObXzM{rAY2boms`~Uy| literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/female/torso_back.vox b/assets/voxygen/voxel/npc/mouflon/female/torso_back.vox new file mode 100644 index 0000000000000000000000000000000000000000..177647d304473d87871807d6fcf51b4e5dea72c9 GIT binary patch literal 3584 zcmeH}y~evea6nEhEG+y$NJNnkOu&F7xdp*e>=he36}^J@F1#e~ z;qkYxm86OhMDT$>|J|LP+1c5dInNglAHVU7hhF^^=ewqniU-gE0SZg?EAjor6#TF%`; zB>Q12>=yIFF0gGJzV%_~sTMkd4cR3Nd&Rg;=M1}np5Ev-z6^L^v*ZZiC8w33ubi!C zZi-)eBP2gW!Je~p*`4c$qky*Mk`ugQIdcsTKPa%PM@L5zXz zf$f1WfLy4_9VX{b?f@ICH*@yR!JPd@?trktx#KLLj?9rw{GGA~oD=_83y{bQXs{=+ z1p*}V0-D$v#r?^>QHR4eYFD_sjsn@pnp}kqC}R^lyO0;UMZADBH=wLZ<=Kfmk%M6D zz{qnm?6@Dz`&M8-(1(2inX+!=WjnRz$U!hxA(weS3EoeAZ}yfU2eE9TC*jl*Anrwd zrPl4Z0XfcFi;_S1A^0g4yi4E{wF`n+B&-{LPyC+Pg?-{Ptjuf4i&z3L-lEWf3uv?6 z#25tQ1O=3L?vccK=n2R zU68~)fERM0i=B5&&IU>T2XMwlZaTTEvEBiF>Lft~a**@_33AugJD~5ZQNO|1;nLMR zIG-A7YOxGC9KaciA!DylOHF+h`w|Z2uGm)WIyGqYoyJaq6!c+Teo-$%ok|9|vT70? za=^51^;mr=h-FYq^eM(Rf}Rw+z}@uh4q_SfCgi|?GM5hW7X3mW1aRgCYas{CnUz5= z!aiePJ}?(z>EvPu_5*$56TnxTgj}LFB$b*c_nkB7Q%QaW>~K*tZc2U;uSq;6@tDL5 z7-NNlJLl?8il2s#aSsrToqR3y+c?9?jho)ZK61K1q7#bW)JZrw!=8eheT{!5ONKu{ z@jq5Q(X%3yx+1>#o{WpN9;;u`zlRfJ`Z;rh6$tCyPK=!x)8`rMH1ZXDAV5w#3+QIV z-|3a;0%6>RZlMdJ$OG6|Qy|PcIhz_zIDiAom8bOTq{kM$hrBJ2!5-ki$Vo>YAd?s- z`<#AEuSpQVK_P4QI5}m-K4RPCW6`_Q*ati8g)NZmDd5Dg={p6IybU<`cJ{K-N^e|m zyS^*LkK8Vhg1t4Kj3+v`7yW~dz$|Y z#rG`vE(c>@%$@|g{x3{&3=~BR7qD zadO$nMdO`y#h;if_p{}n;v0GK`KKSl^v?PhVcHe|YlD-WR#cci(*dkJ@_?U!GU@>gwu0 Y>-+QG_5b~UuV&xB{pMeCWOaZ)02EVVC;$Ke literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/female/torso_front.vox b/assets/voxygen/voxel/npc/mouflon/female/torso_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..03174c9bda3fb8a02e4e3f77897d18da458071dc GIT binary patch literal 2864 zcmeH{%Zgq_5P<7mN5+kao8ZD`Xpq*03m0Ax5D8aLXGQ){5w~N89mD+?0UEUo+-%k1BM-lg!!I3apog#Qm;nxEHVxV7Lt^i-m4{u% zVYd#(SP#RFVn>N2|`@90zms&Rz(7mc~Zo*FMXzZ@CmHNJHlkTaQ1k%pn!O zg>j-wArFEMOxTNT{10mC-kjH~dgqV2S&w2(RN!wc1FayASj`&GCRXZCZX7IwSn+X7 z>R{BvlDa4L3-siet4qDe4TK2(Pzw+h{6q&1!GD75fqydFeTlKgWEu5y2*#lY_r9^; z)Y7RzOmX2($uMvTP;@5Fxz4#xo$-^qsewK4U>!2i7c^@`eU%e$vM#ZgtlMMeO&#B` z13ektZVLD?Xw(Pjt=R_*fQA%n#x@vM@jDs{=tGXA)t3oci8{Nqy7z8zfgdMtn)^2eBu;D(F9ny~59Q*pl~^)GUjhos9Q6yopR~R?OUYF_}xw zq8Fz(bJ!!#x$~f`-My9mUi6`+M>X%f&hY-IU7gwI(x>Q)&A#G}^v)sni+k6+`y!U2 zj~Dhj>6x5c#8Jf8#L(oWpwI7X=bwM-U*xlhv+0QiP5=Aq%g^uePS4-<_4VmL<>L=e zKmYjs>Fx*bpYFW*#_7@BPoMMW!DkzY?{sQV*Kpy}A literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/male/foot_bl.vox b/assets/voxygen/voxel/npc/mouflon/male/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..d587cc76bf38c90a15c090b4e3104e7b61e96e0f GIT binary patch literal 1192 zcmWIZk5HJ#z`)?^=;;Tf7^bi=Fa&!>x$=NGK)?jWY(P39GRiXrBnSi&K+MR}ew z49rT5j7-XmK$-zaGcYm(*-T16-9T|5n~@PH#t0N+bOCD91?qHRWMt4~1hZLz>R6N* zftZ1j1*nzgDF<9x$=NGK)?jWY(P39GRiXrBnSi&K+MR}ew z49rT5j7-XmK$-zaGcYm(*-T16-9T|5n~@PH#t0N+bOCD91?qHRWMt4~1hZLz>R6N* zftZ1j1*nzgDF<93nN5nd5wWofvjl`#SXlUjkVr(9#RL)vNnXKH5PO4-or*rezJc#| zJ)171iU~*{10R<&bMEB~%#8Zu#utG5PTo_&PXLDb^meZjT25#Sbupey^ORRglm*nm`gMz(hSs2Gm*t&?Td-ZV|OHv6h~-TD9aXD?gF3vWb!3BM+}?J)oV literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/male/foot_fr.vox b/assets/voxygen/voxel/npc/mouflon/male/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..82bb02c9eea9fe853a3f97b8a4e0b97cce11e168 GIT binary patch literal 1224 zcmeH`y-EW?6ot>3nN5nd5wWofvjl`#SXlUjkVr(9#RL)vNnXKH5PO4-or*rezJc#| zJ)171iU~*{10R<&bMEB~%#8Zu#utG5PTo_&PXLDb^meZjT25#Sbupey^ORRglm*nm`gMz(hSs2Gm*t&?Td-ZV|OHv6h~-TD9aXD?gF3vWb!3BM+}?J)oV literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/male/head_lower.vox b/assets/voxygen/voxel/npc/mouflon/male/head_lower.vox new file mode 100644 index 0000000000000000000000000000000000000000..fdfc0d12345be0bb7e84725d6171de72117f71a3 GIT binary patch literal 1944 zcmeH{%W70X5Qe+zuj(F&8xc3IJPZwTbm78<7lcF*83q$DB1vAsy|_2Hai^kBFmL4J z3>?1`+(=e2f(QqINspoF@G=vDNp9+07BMO%tNOB~K-|;(sY)1_OpTIp?=a5E>5o5$)7bSV-{p=09 zVuz6vJH%ORx1=66xV2H%dZ5|p6V#ZiF=w6oj;+A4GnrAuL4ee_&qlpQzwASRoP98F zLvTir)F|Svz(L{;A-Ru=^6w!g8m>N!IL!vBzRQ(6+ia`l^C1jDsd2y;Ego| zBzSTT0unqLd6*v(yyAy|gi5VC=g+yn+HKakzAu<_!MqFR#!lWhsBq7q!uL{YfBF3B zUWv1xS6Q#u(_iJ`{pr((_tWmZyVK3<*QUeW$LIRlfAV13eETwO4sJ|zedgbMelu-8 t9-oW7%q*wx-u}^im+9rAXLojX{@LCyI_v-V-}}uzx^w%NH!}YN`~dv47@`0G literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/male/head_upper.vox b/assets/voxygen/voxel/npc/mouflon/male/head_upper.vox new file mode 100644 index 0000000000000000000000000000000000000000..ab4d003b34b93e9ef5d7467f016e232e5b94ee19 GIT binary patch literal 2704 zcmeH{%gP=_5Qe+Ej@>h#AmYZAlVm_93EwPSctA)5k)LP+1|-QXxEB}h6gTdo=oS3e z`T0z6BU!}=A~^6+)o<7Ip}M=ie)Qzs-%2T8-oJW?Dc_G$9$!8CY(5%%Z~RHeK6(1= z>I*;AQl8gRTJ?Q`0RkSjN!U6UJG(*R4a2vc@QzkHUCm(_r5)+|M1<{4C~s;u}ordjrLnqb+`J zFo@~IPK|#d@eR7=K0v|Un3H^xze#ONwWX3*CC7$7$Y-EC7=6)oF>=|I{5NB4&YG|vM%CC2Ai)`PrtbvB z%3eWOuNpZs`XL~#Y#lAw&rHnei1l(-_NC4|&bUr2HlgE>Bld_1`h$LKU^B|vLGxJO zu?GIbPizP6=$&{7{Dj`iItlv*fd*3}{~*u~--B}v))bsyuwPq*^J*}2hj{>;rL7%K z_(keorJhad=2F*?x+MOLcA~FnC2w_Ct>mqeH)61T1RqR+oUp?`Z1$ z=XG^#c-<1)X=|VdIs_!`9(B`1Pjm=K=%5|FGd=`z|*# s6#F`R`SH7N|IzVYXDzS#?=(&S*|opwUjL8(dvErm+wcA5jvNKx5BkwR8UO$Q literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/male/jaw.vox b/assets/voxygen/voxel/npc/mouflon/male/jaw.vox new file mode 100644 index 0000000000000000000000000000000000000000..396c2b99491348b4f3c04d4f5ae5a5165a3bc658 GIT binary patch literal 1144 zcmWIZk5HJ#z`)?^=;;Tf7*bdm7=k^cTzNnoAOLb1n1PrHh$AASJWYT!2!Q07m>5+U zftZOANCPo51EUfX1EUrr1EV4Xh|S2L%?QLmz1oaG9OUlg2sRL?*W26s|A1mklmC<2 zn*Tc(==_%w7W^OVV2$A(KU<6cOQ%oyztms!KhViw`K6Py|1a&1#869#Us@{4sA?W1 fZXs1KH#hf?bvvnk9aT?Wp0(1}KuIIOyu<(iAFJo~ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/male/leg_bl.vox b/assets/voxygen/voxel/npc/mouflon/male/leg_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..c966f94287ecf2a4b2ed494490d448481f4589f3 GIT binary patch literal 1560 zcmeHG%W73Y5bUn%nK|LQ5pmMkde!=}C z|L0hfon#dwh>(GzAJg4aHRsIhqtpA}&Fo-*eJEp*%}&z^)1 z>#YE{5yZ$CDk(&n$kG@gKR1FC1V*X|jzCNh&&;N2^^YJR&yM(K4`Z3tj|f6NDc52;^$E+C@Y>u`6%is;w0ad_fpM^ z_!RN!IoH{2*0o5JN3Oc0M&<@)&B>E>UtAp8L)P4A@GK76bM^F?(rn5}lXYDP@t|tB zL`NjePLl~_k|xDW)nwWGrNN;XNgDe7DHcrn5FyUuXUdso$ijRD!^)}qmrr+D$U=9* zB|Vl@Eu|S|jb`=u)rj~FP}cldygK@_wL-DPxhW);&ZtBWZwSx zHgAva&Z2y=zy11V-hMv2RC^sQAK$MkdKEb?^ z?{ob+JIN|W5W$8+{d8B|bEA zR}SQ*N`+ctAkUMfak3bj2bMnWSR3h0oqC_4%7QZ2CXjKKFoO@R}>k+)LA z3VaHDdd~QEwCGyU9}|K(ol9DY`CC@CeSt z(mK*W?_mm{7|=uA2A5@8S@Tc02!7JbEyH{`h|0zkhGOee=eAy#M3^pToU}^X~iC zd3SVchVuFT?#t_W_v!S)*{f*z@b2v&?ROO}m#tka7XK{w%WD09{`cPO}bTvGsE{hi+V91a6Ry3mC#bfLpd=xU#z9v>;ru2{WZFa0WZ zx6{-8Z93fAOsmUFX?VE*X`lYVPMW^Gr0HNKvGq)!K3}EjnVcg}KmbN!?JzO&1` bwXIg`&+b0&S^x9D_Ra3KH$J>0`48|8O6T?G literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/male/leg_fr.vox b/assets/voxygen/voxel/npc/mouflon/male/leg_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..6643bd1745c94b73a9ceb1db11da23a3407d9488 GIT binary patch literal 1436 zcmeH`y-EZ@5QM9HX4l|ML`;laWI=Wf3=I51@Z>~}!xI$c^cBp-ToJ)cMW0}wbNt3k zjPwK%TqwG_tN&)$IXjvxy+}Ij562kY7t+b_Vt+O}d;t*B449l>3?~NRI|b%t?OrxA z5R2Mk(U4u+yC3j#JR??)<}o&wxs~`?5Ad8{)B+yRfrp|}h_zJ0%UVvpa_?AKC>m32 z6v$U(eo=V{m7%*w>dMMI)`nHKVn-uRo*BO9S=5X9z!lgZZh05D!+`_kzCgjT&K#%C z2WH;76N7UJ)SzL_vu*PP!cv&&a& ad%fPD-TkX){m=j2o84+xKKvv3{l5Vn$MxL+ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/male/tail.vox b/assets/voxygen/voxel/npc/mouflon/male/tail.vox new file mode 100644 index 0000000000000000000000000000000000000000..630390e7a201bf2b0be819d1445b0d854c1c2c65 GIT binary patch literal 1192 zcmeHGO$z~06us|bSd5LNWTjat78VvhQs_z3WE3T4ZD%igvaw_07tHUx&dg3$gOYOV zbieOAx87Y$mz66KO$M$HMWH5|yTK?II}o^}fGn_F1@0O;mJ%QY84190Bncx)8b#6( ziH>6mzH%su#d!^1Bd^h;5m&GkW>`iE%OOC(mNH`mFdGjC2?4z2c^-ci?Ixd(d+s;t zTrT8!-tRu~@p~tDOs MPObXzM{rAY2boms`~Uy| literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/male/torso_back.vox b/assets/voxygen/voxel/npc/mouflon/male/torso_back.vox new file mode 100644 index 0000000000000000000000000000000000000000..177647d304473d87871807d6fcf51b4e5dea72c9 GIT binary patch literal 3584 zcmeH}y~evea6nEhEG+y$NJNnkOu&F7xdp*e>=he36}^J@F1#e~ z;qkYxm86OhMDT$>|J|LP+1c5dInNglAHVU7hhF^^=ewqniU-gE0SZg?EAjor6#TF%`; zB>Q12>=yIFF0gGJzV%_~sTMkd4cR3Nd&Rg;=M1}np5Ev-z6^L^v*ZZiC8w33ubi!C zZi-)eBP2gW!Je~p*`4c$qky*Mk`ugQIdcsTKPa%PM@L5zXz zf$f1WfLy4_9VX{b?f@ICH*@yR!JPd@?trktx#KLLj?9rw{GGA~oD=_83y{bQXs{=+ z1p*}V0-D$v#r?^>QHR4eYFD_sjsn@pnp}kqC}R^lyO0;UMZADBH=wLZ<=Kfmk%M6D zz{qnm?6@Dz`&M8-(1(2inX+!=WjnRz$U!hxA(weS3EoeAZ}yfU2eE9TC*jl*Anrwd zrPl4Z0XfcFi;_S1A^0g4yi4E{wF`n+B&-{LPyC+Pg?-{Ptjuf4i&z3L-lEWf3uv?6 z#25tQ1O=3L?vccK=n2R zU68~)fERM0i=B5&&IU>T2XMwlZaTTEvEBiF>Lft~a**@_33AugJD~5ZQNO|1;nLMR zIG-A7YOxGC9KaciA!DylOHF+h`w|Z2uGm)WIyGqYoyJaq6!c+Teo-$%ok|9|vT70? za=^51^;mr=h-FYq^eM(Rf}Rw+z}@uh4q_SfCgi|?GM5hW7X3mW1aRgCYas{CnUz5= z!aiePJ}?(z>EvPu_5*$56TnxTgj}LFB$b*c_nkB7Q%QaW>~K*tZc2U;uSq;6@tDL5 z7-NNlJLl?8il2s#aSsrToqR3y+c?9?jho)ZK61K1q7#bW)JZrw!=8eheT{!5ONKu{ z@jq5Q(X%3yx+1>#o{WpN9;;u`zlRfJ`Z;rh6$tCyPK=!x)8`rMH1ZXDAV5w#3+QIV z-|3a;0%6>RZlMdJ$OG6|Qy|PcIhz_zIDiAom8bOTq{kM$hrBJ2!5-ki$Vo>YAd?s- z`<#AEuSpQVK_P4QI5}m-K4RPCW6`_Q*ati8g)NZmDd5Dg={p6IybU<`cJ{K-N^e|m zyS^*LkK8Vhg1t4Kj3+v`7yW~dz$|Y z#rG`vE(c>@%$@|g{x3{&3=~BR7qD zadO$nMdO`y#h;if_p{}n;v0GK`KKSl^v?PhVcHe|YlD-WR#cci(*dkJ@_?U!GU@>gwu0 Y>-+QG_5b~UuV&xB{pMeCWOaZ)02EVVC;$Ke literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/mouflon/male/torso_front.vox b/assets/voxygen/voxel/npc/mouflon/male/torso_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..03174c9bda3fb8a02e4e3f77897d18da458071dc GIT binary patch literal 2864 zcmeH{%Zgq_5P<7mN5+kao8ZD`Xpq*03m0Ax5D8aLXGQ){5w~N89mD+?0UEUo+-%k1BM-lg!!I3apog#Qm;nxEHVxV7Lt^i-m4{u% zVYd#(SP#RFVn>N2|`@90zms&Rz(7mc~Zo*FMXzZ@CmHNJHlkTaQ1k%pn!O zg>j-wArFEMOxTNT{10mC-kjH~dgqV2S&w2(RN!wc1FayASj`&GCRXZCZX7IwSn+X7 z>R{BvlDa4L3-siet4qDe4TK2(Pzw+h{6q&1!GD75fqydFeTlKgWEu5y2*#lY_r9^; z)Y7RzOmX2($uMvTP;@5Fxz4#xo$-^qsewK4U>!2i7c^@`eU%e$vM#ZgtlMMeO&#B` z13ektZVLD?Xw(Pjt=R_*fQA%n#x@vM@jDs{=tGXA)t3oci8{Nqy7z8zfgdMtn)^2eBu;D(F9ny~59Q*pl~^)GUjhos9Q6yopR~R?OUYF_}xw zq8Fz(bJ!!#x$~f`-My9mUi6`+M>X%f&hY-IU7gwI(x>Q)&A#G}^v)sni+k6+`y!U2 zj~Dhj>6x5c#8Jf8#L(oWpwI7X=bwM-U*xlhv+0QiP5=Aq%g^uePS4-<_4VmL<>L=e zKmYjs>Fx*bpYFW*#_7@BPoMMW!DkzY?{sQV*Kpy}A literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/wolf/female/ears.vox b/assets/voxygen/voxel/npc/wolf/female/ears.vox new file mode 100644 index 0000000000000000000000000000000000000000..f75ce276ce688e6c916629735df27bf7add024f3 GIT binary patch literal 1264 zcmchWeN5G56vxl=yXd`2HH-@g7~FWtdoNApC0>H;5|Ca94KdOyvUEBjxR*QTn6NvW zUe_Xr5izjMLTZefNy@maw~bh1jLkVmuG)$@*IIwlAFcJ@r*r4}qc-!u&i38+e9w8# z^E~HyY1w7CHvp-PxP+X{OR9K32iUS7&{!f(S=2d7sXjd4KkX@`U zhgczp*py9|7zr7Zpjtv3)VIV09VVg6W=xl5Y{3o2>RPX`iwTKpqijIosB`c#WBbWG#DLXAggD;Iieg^L<*D#@UuE{FamH>1akh`dzBXnPF{Z@kQ}lN}V~ zrczauO~bQpj<=N2SuaEn3*#q+`L~49tPK3#JX%Y)(NkMNi#L^yl1v77NBMr~GRt3#GJC0&g^yk(F)@+N$(wMwToih8DBbo1PZxO@ zI=6-C%Q^h8>}B<40he^m*-7EXm%`8A3jG~!E=G%4yjsI=KQ_~IK8eAPom{__&MMje z=zs02s{g(J;^Jc7E*oci;RKZfXGxEyv-E**`;c(O?Z)Hr(4O1N3%h5KXg?`EDa?)C zyTj8N`gXFicrAZ~ot48JJO4VH+tRrCX+Cp-bcXe;{(b)Oaq+nhHs7G99s0(mh<-TB zg_&=7_v;m&3J^KeY&(nNu1)tByT>)_@_ygODaOd-T`@5s>>p^+_g2e59{9n0v N&Hd{Bjz6GY{sL@+GI#(0 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/wolf/female/foot_bl.vox b/assets/voxygen/voxel/npc/wolf/female/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..f547d166be1290e946d5e075bbb3c26e38d0d907 GIT binary patch literal 1456 zcmcgrZA@Eb6n@_KwzP^GCZ&urp%!p0m~DK>hu|y%ZUxz7Ox!v~+_GgjjmJ!BDCh9FJwfZ)KvaOgE9j;yftu%TBO&evf$ zqRNh5Xh#&v8HIL6wd5c<4O>hrXG{q+3{%-)Y6CGP(Ax4s{J;f@!?6*tYE_v})n(#E?Y0_U{`Pv~| zU`Rg;S|D5-qQwy1hMa>~I7Oe-(w4Oemwpf(P$pzQq!y$mq&BRcHY;uy-zHWdIw3kC z`XTxu^FZc<%r2KKJ!Bq8%uu35=7y!+>aSz_c0E@wcYSA7S64HUNbvRuxch@;7P$W8 z?=BZpsa9@mZ18eufqPnZ@W|m>Ci+^qFc{*($Pq4#o2*)hF(c?^&MRJePn9q*Swl40 ziJk|EsYi)rH#1tn>?pWp7<}>y=PJ)@j-Iu_M)^s*UGZ;Rd$+s6DV`Bnr8wHQf zg8et-Y@3I95g!W^#jKnUGB@s`Z^*;q>3o*1Y-M&QSa@1$kAZbdAoffD0Vgr~2r=j4 z;MPr?*^$MY&*YNLk8>2@qTqYMFM`pN;Ou)~Y6e`rDm(~IHG!Y+1J_T0Vc{n`z~N&O z?*khGU{^KR*9cyacw2>sktQDp+WZ_lUdF^rRUGSXVCt=x`RjCqB?WHQmF2VLSwD|= zRI#TSOdbX&d%>l5z{)%iL&b&ctlY+UV+}is-HcS^a%fi(=exGEsjifJpRZx~#d`Lh z*w2J{h-dqc@`sg+T>Wy4^Anv+eex>P)6=;*a}&K@FG~YHR&INOPnQKae0B?GFZ%f7 zYBATZmvBOQ&QF8az5;*#4jhR1c_CTO<;xBH?WcCe&t-7vQx~t^$l*Hk|1tl@*LDB< z{N?54e79F_x)S@tXc=#uQA?D_K(jn`SCo@&wb1H zzggo`<{)>TnPkg{OKiWg#$YhW+aTc-@DCbm;H@w2>boW1*ZuPH6Vh7uvj3H{&fM$V J-|_pL$6phnNTL7$ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/wolf/female/foot_br.vox b/assets/voxygen/voxel/npc/wolf/female/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..8e0c3212f99bfc75a74f702fcb66d699f26a2de1 GIT binary patch literal 1456 zcmchWe@NVA9LGP;^S$$~tZ;ei?p%7E+U_*A`6GX%tuwuCr@7@^w%wexu`w^ZzK4iR zITqWE$cD>Ibb-rRh{c#~qS7xg2@zq8VWWbOF(UfY{)p(mcki#GKML0V>wy=a=kq+D zAMej|-)r4>&^sa`O|{{@G%{uvX$eO{k5~?uK~l&=GMv+78m7=E5d4~vWdx}rXr#xE{2LLTBV4jnC!+lhpC8Y#a!!N znMx^Bl#Ywm+!I<+27QCMWW(BMZOkLe>TBoT&UivAiuH90WoUE%?iXtLz8kBuvJ#0z0(XZ5doC>@&-EvMce${* z*o5`LDCI{}wj4XW`~&1(=VxF~qm}_xoFMR;@!VH_+7q^o~v;`SC0+%zTRv zzFEaH@qX+)JC4Q=7tnHT6~SN-cLfk9!5=VI1$Vx&;Hk)m2(8W*Z;!AvlYGTR}D%6Ss~Lw`>`RwKokRgETW+ z7b7lAL;^EG85)9S8E&K{ekDi@AtcMP;G!mmEQ>Mz#2?1^@A17`{GrL*KTq=9_q-qH zdEWQjdpq_X@Qed!tq<)HgGoEk9tt--WI3`7L7LzJ!GVL}&}&LIvclHGhCXFDUWbt$ zQFin}r$?Y15okw5OAeCLutl|Um`b2wn97EzHV{<;tzl|InM#YVU@D|ZjfM265@@YV ztyENLfmp4y#I$e;#A;=jS_`LGr46aENv-Hw@cnGzHsX_sZSGqfwkA7 zr36O0^dis#W$mTba7bJ@ApPHg#UnA9Nm;W%i&arbJ%kIw3E_sNX;UUd7t#-;7f63l z0_hvlKa}KUF39Y1$x#iN$Ko<%R)L1}t3}t)=DuCe)yrMqS=H6mjK|}=JqqsrV3~!^ zKl!`U$)%-MZftDuawx?;EjxJRa4qBgEldrCm>NC8)P%{ZRFs*)9J*fd&~vJU{;3+G z$xie>NK8LUEaxz@70iu*TSmYquYitT@ZkiQC4SB&u%b1C&5=xoPiOJ%g~!+!2iwNL zqjTWE4LRH9W`2*CMezVDlR@Uiob(R68JHB?5-c7jExg?k*VTLiIR^amZp*dxTe zlS5lKadt;GZ$6VpHb2fWfD3}}1-}T!PJ(mqflIUC>Q(WB;B*uC`95&{1Q-_oWCu8M zOyd1ugCFdw2KyVq3leXuaI>e$%fU7u$B&mW{!$gkyBoOl*30~LriUekIjk!yV9T>U z9`C4PZ!?%U3{Lfdi|>Gy`EG^+MeMBH##mzwI|4cEsmSB-u3{#;wzH|OlzX4AVfe** z_MO(@&-DVoU{@Y+}4&)ukaG;4>>(3Nm;mc zzMcGhzEM2JowcJpcJ57X?#ku$&x*Mac5zhh>fiTo)mdBz+pjU!O%6=VGVyVe=jXrW z``@hbDRYQB&rGr9!$r1VSz|C51t$HSpFKcl)~~-`D-}@)Ocp_p<+$v(DV> K+~4v0oX1}ylt`rj literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/wolf/female/foot_fr.vox b/assets/voxygen/voxel/npc/wolf/female/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..b2dcc437b0008bac072ec6360fe9d1aa385f7486 GIT binary patch literal 1456 zcmcgrZ%Eu_9REJg@6Nlj!sU7H&ZXC>?M`ExfAUY-I@4=A%`NA$?dGJ7jd|I1hlor$ z7Tb-;hRaOO1(vfAi!s~8lm3B8hzMg08x@3%5z$L~5z)I(pWj9=3fA8Bz=!Yu&-eR% ze$TIC?*UIrL|Pj{dnjbWD$*Vb2OlyG9)rjr9v}`J42ND*RCvOKwn(2c?5}IX78UAR z+oD?8qgvae%1WCt5ldW@J*JdBPPUk`NQ|U$MTjM zxS|xL>C?<5v}Vj82RSL#9ciJT{Y)qmR_0q7C$yC|xpfA)2!qfW^xGIG3|m}G&=zIt zoWH1@RYz>&jsNc6WLJrqKE^a#@9aa5;c$O<^&dc_0JsZ#hSYau}^q~}4%)T5AP zC$d@vxlzHE5y6vJ1oj@m!%0ClZRaIHWossyqge=_&c@pdkD)0cXd4q8ofQn+U~QWl z`4KOQ5+$gb4o@PPv zuwb%Ju=tLkD&LJzNfA1$wxPGF79Ax{L@M(zysH@VUE2|?FT>vFYY~320evU-BN0D@ zvja!*!^%ahewo7jL?@O$c@>$Nnb@4Y2_BCJWqvQJwmpHT%l#NRy9Kisz4&pp1nbvJ zF~Oem(}HVX34Z=gFc|USLb3wOmmBfhPwnVEmxbX^9k_bKg>@ACWB-k>>;L!tD=I4R zZuKO#mrbE==nPy*7gjzJ+&m<>?m->tOpe^mYRS<1t( z2s_VAqUFOyv|m|6AP~T90mM$=4;X8LTVLFr?-t+J{o?!yVV--*|B9J4_p1Bbf1i5! E3$gr2kN^Mx literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/wolf/female/head_lower.vox b/assets/voxygen/voxel/npc/wolf/female/head_lower.vox new file mode 100644 index 0000000000000000000000000000000000000000..0745d1e414664c9be5a87ec1ebe9b15e4a0ef036 GIT binary patch literal 2728 zcmcgtTa1-g6<&Lk7X^JhGA>I<47(z&zrol!{3~3r;e8dN1eEa-1=z}J;Z=U4K zx_|5P@5$_V@R7dbBC>V;@Ba%!yUwgoea^#pmqp)V&FjV2vudiA>&1o^0&LS+eFPm6<35{ek{iVziY# za;YUpA|iDo64B!9E#_q{vv?z=E|QxFg^RTncc~~tignP~j;sk$o0ckd-ppFuuhl4L zsw_4_E?4FlVdL&Wp4#TQ_LOQ>&PC~( z+ljh+sx2n=D!u7XB~C=AkGH12IpWw=D-Z9j<%;LOZ4DCd_#d`_i^yOIIQ>-i|7 z&AUc8k<2^lwB0*SBtnySEHO?b>Yl8VvUQ?sHyZ1ccGZnJ5)$b6lmHs?wMJ$eS~JWzJIikUKGMne$oc&6o*$ zXeZN-S|q{QGWoMpSM6rbl8TQr<}$0X2X!x!a8vH!-IycyEIS1HO7FHL*YW!BBp%puH=cNWEk+M)!Q|m#OdfjzlP9`ZHQB-Rp5oG$^_1p65}GcK>UvQGco?G;N15FQ)dNN-lRPw zIK4^mvxfxNo)(PIes+i8=x+KC2sR7|cC8j1*eEzj|F#u#uy@k}9NN~8<4-Na=$BXF z_?``z`sP>gmos~@WMMDXEt`)mpYO+0J62)eX2ICwf>X~3E`CR_a^4&a4=%#am3LzQ z#x>Y6*o(a@=HkeGi!rh5E^J!26c66J1|wfuk7u5K7^B_C@Z!NI@%ziK;>s_MW8#&a znELV8Fm2j2+&1G@^!4>&>A(W4yz^7|?6LtIeergjdvyW+aAgqJ-d=)N*mL5H;H_T@ z{`6bHp}qY$Ikp^^Uf+Pf{&73@zcd|3e$seS^nFj^>tg*>>injg9&8{9iDU zDTl>&Mr501Cc0qdEW~2WHt~qPfJul5V+wOOn9utvGYew$nB6YvWmXXo*A1McZeYCQ#Xb(O#I`U5DhTlXIQI#f{H14^R zl5{GucJkcRv}CzcC2w4F6PnwVT2rOmRGQkAXyYljy`>j|rbdi;lX+*{E7we%5oalP z>cV5WU8@qG+mf^+nmV3?aZ@8kBfpq3j_@uzwMJ8?XvB$0M*nDwc_%7wB(zrVd6yNdbcbRjC%lsYO)j9+RJ^r4mfgSFPw)S3ODmb%o98f(^}W<8uaX8LIH ziPY9odvZECD@pYCwu(^~_rV&oU&i>Et20JarO!&dvTj07>ZfL==8{CVr_vFpl zzpjyY8CPT7HTw&7@gbH2O!FoDQntd z4lUNN=3R??%DpnjI%_+zXTf?nXQSe*R7D^8E5@&=r~227a6YI(OW!#MRnbyrn%s&1 zNh{b7YBA>AVt-nU+u~eQ<;9PAyIjH}Y!qDq}yWC&*I~Uol4ItbL1`IUg0d zs$lJ?ts+M_^D^cTtc^!k`L3>Ar9LCKk=v-xsL#mj!DN6GtA!#PJ@MPjoS9 zcq*oUZ4iS`FT~J^m5}uT+1&>@`EkhQshG4$Fs&`P<*?w>uL-OIJf-{tY5td_kD3CM!&oUd!Kv&W4(v* z-2TV#hbu4R>MxJs+)LYV>8HEU-`|g$C*Op@!9gqym=stGLM`ChVz%)|{s_(@)U6#E@k%#*g^H7{C2Ib@78HbKgA4ljnWT zea=1i-uK>~y$2i#5$SC4?@^MEvqZZ60pCLzp`lV9P?(AX2Lt{=V&U zbMFf2Sz+~>YOgTu6BhRg>nDVO>QgT4GYp!DN^Nj>vY+>-kexl(+oEtvM_bZoJ{USl~VlU}WUL_|dhb?)V zaX1`Qxt-K)dxEE{-He|rX6}-cA67lA->BrG_Ds$Q*S{2g`c@bTy0{RlVfjiczy8=w zjh@98v$67_aO;q8+2z9RcGF)r z#0$IUk=O|Nk$e^=@BYKncD*|#CA?M0vr}|@utfLOHN0LgcLXF`!S7hsgxjCrUEgiJ ZU-ui=CrBpl#s4*yskv9(-}(F0%b&72EkXbQ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/wolf/female/leg_bl.vox b/assets/voxygen/voxel/npc/wolf/female/leg_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..3157b6bb88d7eae1c0a3cdb20d3d7cbe7b3df22a GIT binary patch literal 1512 zcmcgrTTEP46y4|Cdq*N_s0>h`!pOtUfN9G^9)ficXgeUSl#1njDO2@Tm8_a_RpKF?7R2b zYn{FJ+-cvl-!mp6Ep>t246<`RgLvRC>^~3;e59PJNEe~CE2IpUtu4zI zF+)mOwlbBiEFID!AyHy0LOW3t2Hy$gGHmTK83}4=i#iTmR!A%>q)j8Fl_rl-v)AOi zHmRvYif77TWUiQNYKdj?E^Q0@Ih8GjX$v`=J}inntwW-zs}(g>NDOKkDy$9XE|ZZO zPOj-gF)G#^F8gURtT>afS4`?!tecKci*?Q-20fZ#MIEJCW1n(32G6t#D@Tug+GL$~ zh^7WTDeg-Z{~vuFC??zN+7 zx;UGQo?Q0cozK;YdFSVns;VkPqfy)*5$w9Shthc#Id`18x9|; zLA0+K@xcJ%BZmO*o>Rr}O;ke~ElAIUkjY0Oi|I&d5oFkcO~ZmG zuL_cS1P{jqsm#+a3(8xP(PXC}csdnt&Oe5RsGxOJaAZc%f0NwSEaY_Op&(j>ia9^B zBW~mkWua&)7bQ!Zk9DNM!{!$1#8CzLFOmh1;a;K?-SJf1f5laz6Qa0)?3T7 z(A}7afmScZj+G+%VkO49>XCTkCHykgjpF=t)RyL=`B^WHwO692Nf0|Em^dL=cw11B zlZ8N00XizSAkt8c_M&ujmuF*WXCdY~x1zDO1bcQ=BltocP8{EdXzxLs?LUI=mo8!X zi!sby=s@D*SCE{XjE$)q;PH4+;>$zDmM8FZsSm?vH(};d9)4IZ!rF~uT;QE^Q-bSX z3V!-lFwpJA`B)hiuhiq$AKMT)mx7^B+_-i#6Klx*hyV4jYX5itWo2b}r*Z;YOD0h> zcm|oVOe}pMSUo7X?DfLu^Pwxh56|zKg~SGs7D>bW_}$;|R2ILToE*GXIEw8xBRG2Q zb!_a+z>QA}F(1st2zT}G{X2b*)`7O`h;#w{4V&3T7i@D@Vlif$c%^?}mk<%g7$y~jj1kdC`w-E$r{}c#P_Xu`1JC)L_j%vv z{ddl3-@VT>CL%3$fn7Xg)e>n71REc63|Ijl&RbJIF3T7^Xsh6;&c zg~T-ZY>>CYREL#mg_PEW3Ms`H+G3HXUnw)B#0Y6}nw+Lq8&+5|Rx?&Jr)Dm#=~whI zpJ|-Gd~10Y zx*NS1Y%Rpt(NaWSs>E1VJrZxejGw2vQJj~K+R|J!KU;{S?Um?h5=0LQCXNdh&Iu}V zvJfcBM@PjL^fgqYy(k^s<=GhCQGmJ5t!S(*!S3g)5qz-@$B*qrr1t>M3>?OHOP8_y z`55LdbRhB3t4K~x#>UhQ@OV5Z@p)0PchyHO_;gt#rMlaSi4z_3#>UeCAjg0 z;Ky$SgWZKVA1%Y;)q4E$LmT?ereOGEH?H5x#2Rw{G5`9Pwg3D4Wo2b}r*Z;YOD0h> zbQ+n_Of0=GSUn)PQdkI|&xfwOe!Q@A77`sqT3;IG$M3$wlUe+Ba&qu`K@8h#Mseiq z8`#*Hft#NcU_O|MQSR#B`*-4;T>IN@psx!U7@tP;gE_oC`!(MCY6VaA4q^N02{d0? xK-;wy`2Bv|5kQg%{03u1aQm~n{oUsGbw59UK{(gF&j0c`ntSQ~=I^7IKL8SoPJ{pe literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/wolf/female/leg_fl.vox b/assets/voxygen/voxel/npc/wolf/female/leg_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..388e5bea2f9849e0080a4cc32fbb4fb1e355f02a GIT binary patch literal 1652 zcmcgrZAhL~7{1Rr&+{l*;qq(hQuCwvYHWVxN7~ZVHZ`}L%Qoj^8ynMno;Q&pQ(hL^ zJ0cUyOmxA@S%}4$ZKBc_n1qNh#;{RA$QTj*v>y@uySg4nKML0V^}x+J=f3ajzOVZ_ z=V{q@Fl|gk8msE|a*?BsNON6l?Zf_opGAwHMbZu)YOTxD-0&NuDN9_jwX3zbntQFp zRWt^IN-S5235wFLa+sqO_r^6w2aUE|&A7I#ptc-WJ2r95v+bZ5;7X!2IfnT@hB5Y6nrFk+GQ`--Q^d0_ea5m~VGqUC*#6$nA&*TA`>~H$ejVTZ zI?N>pZG0~5Z;UI3HHp=XiDd`1pT{1Ceqmhc2+rWoM(##DMLk4|Cq_6k`HJo7O*5V$ zKclFNrXHM2X~jIBukwsvOF5oantLax$W!~gEb_1wd+4BMFQGn0lZSRZWeodKZ|b8s zhhnaBY)|MDOM6-yYHU31P-{&dmXGIZGiEW*W_(jC6;zsl!6oP~Fz{5!XVF>&|re!gn+G4b7$mX;zE3gPaE zV9y83$cX(DzsJU6X{iw#8ymPJ76aS2U^*`jx1UW0>Yu=<2o`AH(|)0io)OHvCs>*mtX}82QZQL7 z_2vO+`uQtW8IMQ#Qs<79jL;3C23AvGnFE z_;soixf$`OC`d)abJ;lAQi85}LHLMZ;h zXJM{=Cu%G5vG0X4w7yh@)29v~)O{Ei`i|p=mCIQDatw2q+OYJ=tB8tG*Lq2kSR;afv68!v~puaO47sG{EzFLjneriU~ zU^Iq4jm7m_iC9PKKjz=~y5fJIzp$_n@0LtpXZ|G02hJlgoQRc=1h)?hu4HE;5D1_n zqZcpknT3S=5!Vxkh4FiLcs7Y|CnW{1XN_W4`3O!7zJaan3Ap)L78Y6)F+#2Wt-qh= z*E-aE13eu;-}p4bAJ5_K*>CawH*0vhdjPx6PoUw$MKoVqLuF+p?g}80H2eXxCb;v( dJ$`riz8)0kF9`p;-}+xMA9Fw4-~I>SyC^6J4-!7Gg1Go2c{#CLtn>F>F*2GDbun?L$Q0o}P0@9}3pK^@r!4^Lu;F@A;i` z+x8vI7#ES|nufhxHOL=+KC96S_gDA3&S8?rx+&r{0vjO%*J(Vp^Y z&p2*S9QqhD#tkavaP}-du3Oi zp&8Rg2eszvbI9-Ww2yn%Yu0ORbCf5>^(5kBOh?hrepq8zE95nn%S6#<`{S9Bvs6&K zK7xAe89tX>E^Y3qM^le>qIf=Ys7DzURLoa4Un}ajbD*F3%Ff2>XTD;-isVNzkAC)} zs9(9PVXumPEB30WLs?A`{dNYNsqKsN5|{mQmcn|?nTxS=)U<8fN3Gl&YZDIh?Yziu z$Zw3Iey)re+oz&!Yb~$kB%c!I6H3TOD4}-3*t@cK$Q*6&H_`{WSZ^F5H=%|6gc5QS z^eftmF>OJ6|L*5&B9DpBro6lyp->2SM+JL6SV30&pZGmK9?Q$k*xcO2)rJM^Z7RUA zBb5mCHDO_}0SlwYurSesvW3?WTb+pHqZ!CJn-BkF1*G1EbUy@{dJM9Xh}dR9k|)?U zB6#YWAi7)dNLUa@JMoI3q&WtSUMvFV;_%kuTE+y&X9fMYSlg0cw`QzAa6Pyg{#|<)Go+ANA7V!)sjFC@ce;j$k?Nhxp)k2--4Nf1l)c$6=-|{ zVJ(r7LcMj$|cA~zj5c^)JK;WesoIZ5`p`OFI(0?31 ztX{_2m*bef)Q;s(UPVky47SE?K}JRf3jLWV-SH%zDe`0F!Zyra&cu&vdDys_k4rpr zep+zjE5Xm-2?n}yaWPzsm8-S*?Wb1s4#i^l(|BCJm5dFf|3m-g*H!AB zm7_Q@^ai$eB;n>~IamxNW0bS{_xx?1+!8{vbus@A}=F3>i8u zhEAdtmaQ=jtZ5+@qN!}7EU*zGf{2(@5F!%MKf(GVqW_+rGwF{4^S?fLc+YvybDrlt z?>S%F>UE|4BGSC1aTSA1jfu22wl^f*gr7%@Bbb(T>)RWDH5~A}MA(FeDmHBr5^A1= zHm(^XHc%^RLx@HKo98$tFfrkpNo!m}Q7=%528K{&BqXXCi4o*m;|11wfiMcAibt-C zkw7CJbr`8_2sIAm8`k00+}sjTFBH#Y)M{F+NgI!~F>jr>=Y^Iz>uFl8ml4lqta86K zq2Zb)IgfBHX_$9=Shp(usHG+lx6k7llP0u;IFBf!(@>9G!lwrFhCKC6s1foBYuF3p zv`nDBm$AOd7+*t^u&mF^Xp}q$YN_LRHZ<0T;_6|KjPcSEr!S#u0~4{K8ba75MHoWIJQzLRX~e;1 zHIF(GlQkX@XRUe6#i^OltVB6an5<>g1iccBKJVBk*Y^l&`}AV345LYMEy;P(WF_Ks zHDi<9^4+jT)?(Q&jgz0p{*QTTD6Bz~QV#^5>R}{Rn*XwY9a#<#M>!D_HTt6-+Pq6TcS} zU}U5jqoboZ+c<<(P4lp2(<0Dmz{EzuNRzb5PZHyaA$|0 zo%6kIf+O3Q?-VRe2{zXXI+qEKG2gPF7(qiBx?0N7zkNP(FV&!b=TeNk@iKln6=3%C zLe$NlhNfrBvAwMZyH*OiHwgyz2rj=Ps4gi+W5onQa=WdZ^XzaY52a6$rHw-w6qkJsWMd0 zc>+(*PvOX+sW^9{3_o0}z?~bjah#rmrv%r(6#Vq9percHvF<8dIlC0U{n(0*xAJlL z(*j($S%f>7_K)+AepUCspTDZA3h&koU~c6}Eb2LkqV6JG{YY?ogWybgIZ~++b3H$+jOK|s# e`}N)B`+C?qe?hqKLGi!V+@1&R`#b-T{qh%d#dL50 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/wolf/female/torso_back.vox b/assets/voxygen/voxel/npc/wolf/female/torso_back.vox new file mode 100644 index 0000000000000000000000000000000000000000..18748caa4eab35624355cd17895e759e0ef9dbaa GIT binary patch literal 3168 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/wolf/male/ears.vox b/assets/voxygen/voxel/npc/wolf/male/ears.vox new file mode 100644 index 0000000000000000000000000000000000000000..f75ce276ce688e6c916629735df27bf7add024f3 GIT binary patch literal 1264 zcmchWeN5G56vxl=yXd`2HH-@g7~FWtdoNApC0>H;5|Ca94KdOyvUEBjxR*QTn6NvW zUe_Xr5izjMLTZefNy@maw~bh1jLkVmuG)$@*IIwlAFcJ@r*r4}qc-!u&i38+e9w8# z^E~HyY1w7CHvp-PxP+X{OR9K32iUS7&{!f(S=2d7sXjd4KkX@`U zhgczp*py9|7zr7Zpjtv3)VIV09VVg6W=xl5Y{3o2>RPX`iwTKpqijIosB`c#WBbWG#DLXAggD;Iieg^L<*D#@UuE{FamH>1akh`dzBXnPF{Z@kQ}lN}V~ zrczauO~bQpj<=N2SuaEn3*#q+`L~49tPK3#JX%Y)(NkMNi#L^yl1v77NBMr~GRt3#GJC0&g^yk(F)@+N$(wMwToih8DBbo1PZxO@ zI=6-C%Q^h8>}B<40he^m*-7EXm%`8A3jG~!E=G%4yjsI=KQ_~IK8eAPom{__&MMje z=zs02s{g(J;^Jc7E*oci;RKZfXGxEyv-E**`;c(O?Z)Hr(4O1N3%h5KXg?`EDa?)C zyTj8N`gXFicrAZ~ot48JJO4VH+tRrCX+Cp-bcXe;{(b)Oaq+nhHs7G99s0(mh<-TB zg_&=7_v;m&3J^KeY&(nNu1)tByT>)_@_ygODaOd-T`@5s>>p^+_g2e59{9n0v N&Hd{Bjz6GY{sL@+GI#(0 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/wolf/male/foot_bl.vox b/assets/voxygen/voxel/npc/wolf/male/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..f547d166be1290e946d5e075bbb3c26e38d0d907 GIT binary patch literal 1456 zcmcgrZA@Eb6n@_KwzP^GCZ&urp%!p0m~DK>hu|y%ZUxz7Ox!v~+_GgjjmJ!BDCh9FJwfZ)KvaOgE9j;yftu%TBO&evf$ zqRNh5Xh#&v8HIL6wd5c<4O>hrXG{q+3{%-)Y6CGP(Ax4s{J;f@!?6*tYE_v})n(#E?Y0_U{`Pv~| zU`Rg;S|D5-qQwy1hMa>~I7Oe-(w4Oemwpf(P$pzQq!y$mq&BRcHY;uy-zHWdIw3kC z`XTxu^FZc<%r2KKJ!Bq8%uu35=7y!+>aSz_c0E@wcYSA7S64HUNbvRuxch@;7P$W8 z?=BZpsa9@mZ18eufqPnZ@W|m>Ci+^qFc{*($Pq4#o2*)hF(c?^&MRJePn9q*Swl40 ziJk|EsYi)rH#1tn>?pWp7<}>y=PJ)@j-Iu_M)^s*UGZ;Rd$+s6DV`Bnr8wHQf zg8et-Y@3I95g!W^#jKnUGB@s`Z^*;q>3o*1Y-M&QSa@1$kAZbdAoffD0Vgr~2r=j4 z;MPr?*^$MY&*YNLk8>2@qTqYMFM`pN;Ou)~Y6e`rDm(~IHG!Y+1J_T0Vc{n`z~N&O z?*khGU{^KR*9cyacw2>sktQDp+WZ_lUdF^rRUGSXVCt=x`RjCqB?WHQmF2VLSwD|= zRI#TSOdbX&d%>l5z{)%iL&b&ctlY+UV+}is-HcS^a%fi(=exGEsjifJpRZx~#d`Lh z*w2J{h-dqc@`sg+T>Wy4^Anv+eex>P)6=;*a}&K@FG~YHR&INOPnQKae0B?GFZ%f7 zYBATZmvBOQ&QF8az5;*#4jhR1c_CTO<;xBH?WcCe&t-7vQx~t^$l*Hk|1tl@*LDB< z{N?54e79F_x)S@tXc=#uQA?D_K(jn`SCo@&wb1H zzggo`<{)>TnPkg{OKiWg#$YhW+aTc-@DCbm;H@w2>boW1*ZuPH6Vh7uvj3H{&fM$V J-|_pL$6phnNTL7$ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/wolf/male/foot_br.vox b/assets/voxygen/voxel/npc/wolf/male/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..8e0c3212f99bfc75a74f702fcb66d699f26a2de1 GIT binary patch literal 1456 zcmchWe@NVA9LGP;^S$$~tZ;ei?p%7E+U_*A`6GX%tuwuCr@7@^w%wexu`w^ZzK4iR zITqWE$cD>Ibb-rRh{c#~qS7xg2@zq8VWWbOF(UfY{)p(mcki#GKML0V>wy=a=kq+D zAMej|-)r4>&^sa`O|{{@G%{uvX$eO{k5~?uK~l&=GMv+78m7=E5d4~vWdx}rXr#xE{2LLTBV4jnC!+lhpC8Y#a!!N znMx^Bl#Ywm+!I<+27QCMWW(BMZOkLe>TBoT&UivAiuH90WoUE%?iXtLz8kBuvJ#0z0(XZ5doC>@&-EvMce${* z*o5`LDCI{}wj4XW`~&1(=VxF~qm}_xoFMR;@!VH_+7q^o~v;`SC0+%zTRv zzFEaH@qX+)JC4Q=7tnHT6~SN-cLfk9!5=VI1$Vx&;Hk)m2(8W*Z;!AvlYGTR}D%6Ss~Lw`>`RwKokRgETW+ z7b7lAL;^EG85)9S8E&K{ekDi@AtcMP;G!mmEQ>Mz#2?1^@A17`{GrL*KTq=9_q-qH zdEWQjdpq_X@Qed!tq<)HgGoEk9tt--WI3`7L7LzJ!GVL}&}&LIvclHGhCXFDUWbt$ zQFin}r$?Y15okw5OAeCLutl|Um`b2wn97EzHV{<;tzl|InM#YVU@D|ZjfM265@@YV ztyENLfmp4y#I$e;#A;=jS_`LGr46aENv-Hw@cnGzHsX_sZSGqfwkA7 zr36O0^dis#W$mTba7bJ@ApPHg#UnA9Nm;W%i&arbJ%kIw3E_sNX;UUd7t#-;7f63l z0_hvlKa}KUF39Y1$x#iN$Ko<%R)L1}t3}t)=DuCe)yrMqS=H6mjK|}=JqqsrV3~!^ zKl!`U$)%-MZftDuawx?;EjxJRa4qBgEldrCm>NC8)P%{ZRFs*)9J*fd&~vJU{;3+G z$xie>NK8LUEaxz@70iu*TSmYquYitT@ZkiQC4SB&u%b1C&5=xoPiOJ%g~!+!2iwNL zqjTWE4LRH9W`2*CMezVDlR@Uiob(R68JHB?5-c7jExg?k*VTLiIR^amZp*dxTe zlS5lKadt;GZ$6VpHb2fWfD3}}1-}T!PJ(mqflIUC>Q(WB;B*uC`95&{1Q-_oWCu8M zOyd1ugCFdw2KyVq3leXuaI>e$%fU7u$B&mW{!$gkyBoOl*30~LriUekIjk!yV9T>U z9`C4PZ!?%U3{Lfdi|>Gy`EG^+MeMBH##mzwI|4cEsmSB-u3{#;wzH|OlzX4AVfe** z_MO(@&-DVoU{@Y+}4&)ukaG;4>>(3Nm;mc zzMcGhzEM2JowcJpcJ57X?#ku$&x*Mac5zhh>fiTo)mdBz+pjU!O%6=VGVyVe=jXrW z``@hbDRYQB&rGr9!$r1VSz|C51t$HSpFKcl)~~-`D-}@)Ocp_p<+$v(DV> K+~4v0oX1}ylt`rj literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/wolf/male/foot_fr.vox b/assets/voxygen/voxel/npc/wolf/male/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..b2dcc437b0008bac072ec6360fe9d1aa385f7486 GIT binary patch literal 1456 zcmcgrZ%Eu_9REJg@6Nlj!sU7H&ZXC>?M`ExfAUY-I@4=A%`NA$?dGJ7jd|I1hlor$ z7Tb-;hRaOO1(vfAi!s~8lm3B8hzMg08x@3%5z$L~5z)I(pWj9=3fA8Bz=!Yu&-eR% ze$TIC?*UIrL|Pj{dnjbWD$*Vb2OlyG9)rjr9v}`J42ND*RCvOKwn(2c?5}IX78UAR z+oD?8qgvae%1WCt5ldW@J*JdBPPUk`NQ|U$MTjM zxS|xL>C?<5v}Vj82RSL#9ciJT{Y)qmR_0q7C$yC|xpfA)2!qfW^xGIG3|m}G&=zIt zoWH1@RYz>&jsNc6WLJrqKE^a#@9aa5;c$O<^&dc_0JsZ#hSYau}^q~}4%)T5AP zC$d@vxlzHE5y6vJ1oj@m!%0ClZRaIHWossyqge=_&c@pdkD)0cXd4q8ofQn+U~QWl z`4KOQ5+$gb4o@PPv zuwb%Ju=tLkD&LJzNfA1$wxPGF79Ax{L@M(zysH@VUE2|?FT>vFYY~320evU-BN0D@ zvja!*!^%ahewo7jL?@O$c@>$Nnb@4Y2_BCJWqvQJwmpHT%l#NRy9Kisz4&pp1nbvJ zF~Oem(}HVX34Z=gFc|USLb3wOmmBfhPwnVEmxbX^9k_bKg>@ACWB-k>>;L!tD=I4R zZuKO#mrbE==nPy*7gjzJ+&m<>?m->tOpe^mYRS<1t( z2s_VAqUFOyv|m|6AP~T90mM$=4;X8LTVLFr?-t+J{o?!yVV--*|B9J4_p1Bbf1i5! E3$gr2kN^Mx literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/wolf/male/head_lower.vox b/assets/voxygen/voxel/npc/wolf/male/head_lower.vox new file mode 100644 index 0000000000000000000000000000000000000000..0745d1e414664c9be5a87ec1ebe9b15e4a0ef036 GIT binary patch literal 2728 zcmcgtTa1-g6<&Lk7X^JhGA>I<47(z&zrol!{3~3r;e8dN1eEa-1=z}J;Z=U4K zx_|5P@5$_V@R7dbBC>V;@Ba%!yUwgoea^#pmqp)V&FjV2vudiA>&1o^0&LS+eFPm6<35{ek{iVziY# za;YUpA|iDo64B!9E#_q{vv?z=E|QxFg^RTncc~~tignP~j;sk$o0ckd-ppFuuhl4L zsw_4_E?4FlVdL&Wp4#TQ_LOQ>&PC~( z+ljh+sx2n=D!u7XB~C=AkGH12IpWw=D-Z9j<%;LOZ4DCd_#d`_i^yOIIQ>-i|7 z&AUc8k<2^lwB0*SBtnySEHO?b>Yl8VvUQ?sHyZ1ccGZnJ5)$b6lmHs?wMJ$eS~JWzJIikUKGMne$oc&6o*$ zXeZN-S|q{QGWoMpSM6rbl8TQr<}$0X2X!x!a8vH!-IycyEIS1HO7FHL*YW!BBp%puH=cNWEk+M)!Q|m#OdfjzlP9`ZHQB-Rp5oG$^_1p65}GcK>UvQGco?G;N15FQ)dNN-lRPw zIK4^mvxfxNo)(PIes+i8=x+KC2sR7|cC8j1*eEzj|F#u#uy@k}9NN~8<4-Na=$BXF z_?``z`sP>gmos~@WMMDXEt`)mpYO+0J62)eX2ICwf>X~3E`CR_a^4&a4=%#am3LzQ z#x>Y6*o(a@=HkeGi!rh5E^J!26c66J1|wfuk7u5K7^B_C@Z!NI@%ziK;>s_MW8#&a znELV8Fm2j2+&1G@^!4>&>A(W4yz^7|?6LtIeergjdvyW+aAgqJ-d=)N*mL5H;H_T@ z{`6bHp}qY$Ikp^^Uf+Pf{&73@zcd|3e$seS^nFj^>tg*>>injg9&8{9iDU zDTl>&Mr501Cc0qdEW~2WHt~qPfJul5V+wOOn9utvGYew$nB6YvWmXXo*A1McZeYCQ#Xb(O#I`U5DhTlXIQI#f{H14^R zl5{GucJkcRv}CzcC2w4F6PnwVT2rOmRGQkAXyYljy`>j|rbdi;lX+*{E7we%5oalP z>cV5WU8@qG+mf^+nmV3?aZ@8kBfpq3j_@uzwMJ8?XvB$0M*nDwc_%7wB(zrVd6yNdbcbRjC%lsYO)j9+RJ^r4mfgSFPw)S3ODmb%o98f(^}W<8uaX8LIH ziPY9odvZECD@pYCwu(^~_rV&oU&i>Et20JarO!&dvTj07>ZfL==8{CVr_vFpl zzpjyY8CPT7HTw&7@gbH2O!FoDQntd z4lUNN=3R??%DpnjI%_+zXTf?nXQSe*R7D^8E5@&=r~227a6YI(OW!#MRnbyrn%s&1 zNh{b7YBA>AVt-nU+u~eQ<;9PAyIjH}Y!qDq}yWC&*I~Uol4ItbL1`IUg0d zs$lJ?ts+M_^D^cTtc^!k`L3>Ar9LCKk=v-xsL#mj!DN6GtA!#PJ@MPjoS9 zcq*oUZ4iS`FT~J^m5}uT+1&>@`EkhQshG4$Fs&`P<*?w>uL-OIJf-{tY5td_kD3CM!&oUd!Kv&W4(v* z-2TV#hbu4R>MxJs+)LYV>8HEU-`|g$C*Op@!9gqym=stGLM`ChVz%)|{s_(@)U6#E@k%#*g^H7{C2Ib@78HbKgA4ljnWT zea=1i-uK>~y$2i#5$SC4?@^MEvqZZ60pCLzp`lV9P?(AX2Lt{=V&U zbMFf2Sz+~>YOgTu6BhRg>nDVO>QgT4GYp!DN^Nj>vY+>-kexl(+oEtvM_bZoJ{USl~VlU}WUL_|dhb?)V zaX1`Qxt-K)dxEE{-He|rX6}-cA67lA->BrG_Ds$Q*S{2g`c@bTy0{RlVfjiczy8=w zjh@98v$67_aO;q8+2z9RcGF)r z#0$IUk=O|Nk$e^=@BYKncD*|#CA?M0vr}|@utfLOHN0LgcLXF`!S7hsgxjCrUEgiJ ZU-ui=CrBpl#s4*yskv9(-}(F0%b&72EkXbQ literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/wolf/male/leg_bl.vox b/assets/voxygen/voxel/npc/wolf/male/leg_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..3157b6bb88d7eae1c0a3cdb20d3d7cbe7b3df22a GIT binary patch literal 1512 zcmcgrTTEP46y4|Cdq*N_s0>h`!pOtUfN9G^9)ficXgeUSl#1njDO2@Tm8_a_RpKF?7R2b zYn{FJ+-cvl-!mp6Ep>t246<`RgLvRC>^~3;e59PJNEe~CE2IpUtu4zI zF+)mOwlbBiEFID!AyHy0LOW3t2Hy$gGHmTK83}4=i#iTmR!A%>q)j8Fl_rl-v)AOi zHmRvYif77TWUiQNYKdj?E^Q0@Ih8GjX$v`=J}inntwW-zs}(g>NDOKkDy$9XE|ZZO zPOj-gF)G#^F8gURtT>afS4`?!tecKci*?Q-20fZ#MIEJCW1n(32G6t#D@Tug+GL$~ zh^7WTDeg-Z{~vuFC??zN+7 zx;UGQo?Q0cozK;YdFSVns;VkPqfy)*5$w9Shthc#Id`18x9|; zLA0+K@xcJ%BZmO*o>Rr}O;ke~ElAIUkjY0Oi|I&d5oFkcO~ZmG zuL_cS1P{jqsm#+a3(8xP(PXC}csdnt&Oe5RsGxOJaAZc%f0NwSEaY_Op&(j>ia9^B zBW~mkWua&)7bQ!Zk9DNM!{!$1#8CzLFOmh1;a;K?-SJf1f5laz6Qa0)?3T7 z(A}7afmScZj+G+%VkO49>XCTkCHykgjpF=t)RyL=`B^WHwO692Nf0|Em^dL=cw11B zlZ8N00XizSAkt8c_M&ujmuF*WXCdY~x1zDO1bcQ=BltocP8{EdXzxLs?LUI=mo8!X zi!sby=s@D*SCE{XjE$)q;PH4+;>$zDmM8FZsSm?vH(};d9)4IZ!rF~uT;QE^Q-bSX z3V!-lFwpJA`B)hiuhiq$AKMT)mx7^B+_-i#6Klx*hyV4jYX5itWo2b}r*Z;YOD0h> zcm|oVOe}pMSUo7X?DfLu^Pwxh56|zKg~SGs7D>bW_}$;|R2ILToE*GXIEw8xBRG2Q zb!_a+z>QA}F(1st2zT}G{X2b*)`7O`h;#w{4V&3T7i@D@Vlif$c%^?}mk<%g7$y~jj1kdC`w-E$r{}c#P_Xu`1JC)L_j%vv z{ddl3-@VT>CL%3$fn7Xg)e>n71REc63|Ijl&RbJIF3T7^Xsh6;&c zg~T-ZY>>CYREL#mg_PEW3Ms`H+G3HXUnw)B#0Y6}nw+Lq8&+5|Rx?&Jr)Dm#=~whI zpJ|-Gd~10Y zx*NS1Y%Rpt(NaWSs>E1VJrZxejGw2vQJj~K+R|J!KU;{S?Um?h5=0LQCXNdh&Iu}V zvJfcBM@PjL^fgqYy(k^s<=GhCQGmJ5t!S(*!S3g)5qz-@$B*qrr1t>M3>?OHOP8_y z`55LdbRhB3t4K~x#>UhQ@OV5Z@p)0PchyHO_;gt#rMlaSi4z_3#>UeCAjg0 z;Ky$SgWZKVA1%Y;)q4E$LmT?ereOGEH?H5x#2Rw{G5`9Pwg3D4Wo2b}r*Z;YOD0h> zbQ+n_Of0=GSUn)PQdkI|&xfwOe!Q@A77`sqT3;IG$M3$wlUe+Ba&qu`K@8h#Mseiq z8`#*Hft#NcU_O|MQSR#B`*-4;T>IN@psx!U7@tP;gE_oC`!(MCY6VaA4q^N02{d0? xK-;wy`2Bv|5kQg%{03u1aQm~n{oUsGbw59UK{(gF&j0c`ntSQ~=I^7IKL8SoPJ{pe literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/wolf/male/leg_fl.vox b/assets/voxygen/voxel/npc/wolf/male/leg_fl.vox new file mode 100644 index 0000000000000000000000000000000000000000..388e5bea2f9849e0080a4cc32fbb4fb1e355f02a GIT binary patch literal 1652 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 literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/wolf/male/torso_back.vox b/assets/voxygen/voxel/npc/wolf/male/torso_back.vox new file mode 100644 index 0000000000000000000000000000000000000000..18748caa4eab35624355cd17895e759e0ef9dbaa GIT binary patch literal 3168 zcmchZTdbBx6^7T$teN@#A2n1qP!7VDgJpwh%Rvr;bt7QAp|nyew!4(rrcFV<|NFm? zh7__>)9%KIO%;(qO{x?PLDLjl0>o2-#1KN#Gz~UtVo1{%<0W1gfd>l)3u2`M)o+z>PIt{1wT zyKt^j?KQ(A)SfpDxrx*X;v03T32+Kh_JkIA1nQwHk|RNzfNsgevd5xXi$<-ZXfG*m z(Q`&$VntSfkLR9U&@3Ii@x=JhIA3_-UCwn%sZsbj=g~p!s_ezHP^YpJt1r7vGL@@n0tZPfG?i=42K}-??&Fh=(xsFKNqh%sdkwa zST5F~lWT`(5`3+i>fm$FSGm?M=klF$9YXF!mX}zob9HjQ4&+A8+528#kKlM}=HzRk zzusvblsqkSLmm3BU^y3hIryIP=BOw1$#uc(lm%W;c!ypp{O}^c#i1i7t(ET_LLFV1 zM_1=ey^5Sl>x8BpVl7E~Is2ZJZw0e>3g1YsXsmrG^AvjG=_!0Pa_`|Az$RXl`oe;5 zM5CyuexgU^E#OPxS5~egE8$b>miy92G!q-yl{d#O75R}nW*~I&kL8FBye0435Pd&r zXhYC81=kNgwn?S0*|nN@3%=DDT2*aBimis&`mXE8?E5i=Hb(M%=xf)tQDf_pv@SZZ zeCw1ILhHQteU`pYuJzG_PaQD4hJIvEQCd%Z_0$QW?_=yIU(VY4!Uv3yi32YbPVfn; za1eM$xca^pF2saPK03UE(*!2(DfPW42CfRn6p3?SIdnQ9kKCmFkkAEJMSns^3QElY zKaWoG;Gd|ed;8x^U_*41T)3XRpObMURLH$_a z1)PK8N5x*eK&#h+0WMxRusyv<^gF@F7ymiC;x)0Fi7hpYS9qZ4_Vn9p;V6BF*8yIk z^oPDU-a^sMdqhhFFID7IQ|XuDy@Ka+>L>U+@D*MO9g+G84XG;g#yvg+d6 zBYBS5iRg$Py}YR}Iq-u=#A78VGM`!{I29b?N(`~F^diHVS#fygm=|9(bkN=bvuFg@ z!P_x2O5e4D=L8m96Ws7Gpg%Hm9!yVPJartupIBy{*>dzWme>v)m?=fU*;07%Dsn|^6!P?{(-x{uwL}$|0k?o zz1qgc#_atgV)y*uvdtg(r~Q3kz%E_dYBz4&u-8Y<+kIQ^w8tJ@Yh(Mj*!e>vcK*m? zcKtIqdr^6)g9@zp^ae0GTqomgYCDVprnJ_d8^p;p4jZeVxN9PtlBH~ z(Q&aUoTt4ewqolf+uWOMqt8vTZ(aC=Z5$KZc2w-~GhzqcA$QwMo3m%0Ef`yDE6)wv ztbGGE@1>cx_|#lmdgV5ozEf<$b6_76TX#`R9;E)k%H-(BOwJD2q1$e;(|1m_cRx4F zZ1X4WsEA!){hsv~*3oCg&U{bo(rK})Z*m?MJGn{h=MRWoe@bkW^D{fd4nM*Dez6Th zV!Kw0?cXT&GWXk7%(Ok5=Gnn*i|p8w%WUk+tL)hB4R-09U$MWQ+G9)RPqTH)=GvCe zFR~|htg^kE#l{~MJMpyG#qWr%oHNr#7B8@!D{r@b8`s#5#nWuhidpv3-3#s9t~+eg zx}|pi7uVS6m)6_UPd#X3?IZTWfyeC+S6;QNzdUB=UfF4ve)2V&G-;CEI^`A{92~Tz zL-TCq?VqyGE*rALFU+6gzhSrT znr?6ZY@uBkonc4t>c9OjaRuw)?Qhw>-DU@lpSJNIpR;eD{jGifH`nYl?IFAC`4hI~ zhZk-88`o@jc-Y<-GpShi4-41C-uuN(e(y0~ANJ0#(8}Kj?f>ho88y!HMbe+oaxMEGhI68v^iTkA4pMj`Fmo>&@l|1 zNJ}hRV;We~LM%j6*+x%bBSZudF{vO#B%+t=MMUpTpEK)4f%&dKT-^8XzOUu!&qZ-Pj1onnHuDow0k6I^=q*1GJ zqOp&=rb(~Fl|n2T)zn8_b<%Slb$&O^BWZo4wU1j(qh1PU^F(SN3GrjEqd2HzRo*up z*N{i*&j*}sGU=Qzyz5a%C3NaYlhDcM??al@;&I6x%P2>WDU&F191Hte9j8D&5=SxW zBvh|8jUv}5+(+N5{LbSDwkTy3QkjID$GK6j-={WC6>c0utGv@uZ+Q}nj*{@a$S80w z!fPW(i^R#qh3ih9R5~2CaRpnW_Bbf;1NV|An)*a|*IFDmE!^`Q{9SaSff|F3)t|LA zX~e2Q;6TSEpl4-Kg9dOmbfJ#oXJeW4R^Xv?4@U{kJN)Fx)%AvtLOyV`p-cq+dgVSv zG)of!XGuJxc15?2KYHdpdKT9kjXFN)_@|;_A5bTHbo^D78d*YJy`pJ$FSK#b72V;R z`^f%6+*aXAEARa3{$UTR@xBe}sKRX*I2~55aMsdT6fQmI5g(x^_4Fp-mq{2<8{Ucd zAW~29+&t?EZSib(-E$fReAIFocRbuPwIvF8!G;jvBG0;E=nCKu>$q=iZ1@#{gQ}@H-h(ufCs(1(r?MV8b_t{QB3T2 z?`NK&TR^{v7eiC-%Q(PkMC(j1W_lsuqX4JLJ>L@8>Ldo`olXk;1@|`3MEW>7_h5=} z9>EX={pjn6ry^LQd+>-x{B~~@VhOp~7x8VtYYA@zycnwY7M#O-rr#Sp2FH%>joMnS z<518m)0^~5kTeeLNz@h+xik5^ci=nH-@$t!$T-t0(RqO5MBIeWqhrFqk$Dr9oahh> zxQQ3hAb1S=GLk!r5U0Tzyf702ddEtC!oAQp(XmihhOg`z;p@OG3O?6j<~e=JzCfJF z?~u?NzeP!4R~8&LIFa6;+m}g0KT56i*rqf*VtZ1H=EYnmQzvEOiOeKd|&g5_8Z<%*xR-{Zz;!Klii49z= z$~h5Y7BJOWj$l&-qsJq5;o871oQr zSg}lNO4FPQ`PwYiIxC5s)pJshc(H>q$94+7Q#{-T`EVXEj>QiLO~SI~p~!!k`#W~F*A?o$Q_dI=gOv_Y$k7TL9^ zylcc5I-g)kUZYaC>&02c2Nhl1OO-QdoQw0t)j39&+^7pq64wNd1fGPhdBATtP4JVB zoKfmxc}>E(2;Z&?y5>S`Ar2nP;_5_r5W_)FBD&@iE8%IuABow$#ln|fW_ zmS=)bN`&VDoWOG)az!8U{-9RD>oUY!tXjd&K6NcRS9(R^y!cso&I5eb(a>X1Q^9`~ z&ubHUg}rF51M<=@iEBcCrDvqG@JtyfJ&2Y^V&F~sr^00w{6h~_bSU_=RQ5*qb7ygu z*mpH7os_30Md5Bjk zTEK3n`oZCiz&Vs9uPlzdKEPfU))$!ARN{mY0O8)G7 z90wc;^$PEltHNJ(-n};J$;2o}xN6i_r}crFP4EW78_l921HP1SGS=Bwn+$hwl%p*aUig(oen|>(GeL!sQYvxwztO0Wr&ntcu z&MLiHnLC2V3w$d5taxAPpMrl?@Gkl&eId+{iq8u(tI!LDo-cT`_*`V36baPFKH@39 zQ#_~4U8VQ6N9G}z>BUO#S9-tF`;}g-%>PR7E7*mZDfGP3%R=8Pcr$h70pAnui_b>l z7yMJ;uuw;#7YqF$sd0u{{4BFa$S-(N@R^WbnLWzvQD%XXUzr6;eq|OY`2{~${|+$! zD&L?=&DDFI{;c>?nR&|WQG8MYIho^?zEL=-@SlDDf}wz+6#uq3hw$Xz9-n_;5I7Jx z5HJYb%K)5wTPky=!mF|>b4&Q<2(w?9`5BKW9;w6>pGV9O!3WCxujHzp6YeUrr0_kc zECs)M9r(R^e7I6(i{gO_{)*m0J(ZqOxU23R{G#MmzEg^4)qlGNe8UUhYegGnHW$7v z1?&~^? zZn@ZYY+GjscCEDoyKl1tPt5GX15=x`dY;Yy>LOe8z*)9*-$fSIh=qFw7M?lI!fW$v z&iY^{j)R@@c(6~u6s+A7?C71rj_3Eh=YyTUerQ*X=h)^4kGF3g{DfV;BiM#L!ES#s z*!^#FcEbW&xMi`OzGInPuz$6kymhWEer$m)d-haY{`#4A;?2QMe~{RFgROcsSh$}2 z+na?w$5?n}uI)PWSbOf=6YSm3oosg1Cv8s%c98Wu)}L8>?hE$fcY_^zF4!9{^Lur$ zXVwJ!*>%C*yDQjce&4q#*yDHbd|R-~mIk|ZWw33R2YZs|8_r)~Th=VL?HiWZ-aF5; z9bdlC_TGJ&9s0&s>@Ux5v9nH_XRFRT)z*D}iQT#BLc8axU^{OKw(s6xuYNn&1q&D0 z+GVHP%@>?)TQ9%JHZ7ZHTh2e(9=qZU+kfjhwr16GyY`D0+2$`@YWLoCz3rIYWDnne zyZ!$4r|pej?6v(*-E4<`{52a6hj!BO$J(Mri){JQ#dg8jpR&)Mx6~eg_!N8b>BaVk zHf#X0p3}-(7t}g9=qh?-FC;LkJw4Ko@j6V^b9+=dA{w2tN-TT z_j#-vH@<0G?>4*tiRWzRkM`TQUipoE@7M3xXJ)(Xl85%$x*xo18((_IRz$wZsB`~*{xRpnKLLnf*HHif literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index d42e0f47c4..6b30fda0cb 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -359,4 +359,184 @@ central: ("npc.tiger.female.tail"), ), ), + (Wolf, Male): ( + upper: ( + offset: (-5.0, 0.0, -3.5), + central: ("npc.wolf.male.head_upper"), + ), + lower: ( + offset: (-5.0, -4.5, -5.0), + central: ("npc.wolf.male.head_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.wolf.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -13.0, -5.0), + central: ("npc.wolf.male.torso_front"), + ), + torso_back: ( + offset: (-4.0, -5.5, -5.0), + central: ("npc.wolf.male.torso_back"), + ), + ears: ( + offset: (-5.0, -1.0, -2.5), + central: ("npc.wolf.male.ears"), + ), + tail: ( + offset: (-2.0, -13.0, -3.5), + central: ("npc.wolf.male.tail"), + ), + ), + (Wolf, Female): ( + upper: ( + offset: (-5.0, 0.0, -3.5), + central: ("npc.wolf.female.head_upper"), + ), + lower: ( + offset: (-5.0, -4.5, -5.0), + central: ("npc.wolf.female.head_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.wolf.female.jaw"), + ), + torso_front: ( + offset: (-5.0, -13.0, -5.0), + central: ("npc.wolf.female.torso_front"), + ), + torso_back: ( + offset: (-4.0, -5.5, -5.0), + central: ("npc.wolf.female.torso_back"), + ), + ears: ( + offset: (-5.0, -1.0, -2.5), + central: ("npc.wolf.female.ears"), + ), + tail: ( + offset: (-2.0, -13.0, -3.5), + central: ("npc.wolf.female.tail"), + ), + ), + (Frostfang, Male): ( + upper: ( + offset: (-4.0, 0.0, -4.5), + central: ("npc.frostfang.male.head_upper"), + ), + lower: ( + offset: (-3.0, -2.0, -4.0), + central: ("npc.frostfang.male.head_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -3.5), + central: ("npc.frostfang.male.jaw"), + ), + torso_front: ( + offset: (-5.0, -11.0, -8.5), + central: ("npc.frostfang.male.torso_front"), + ), + torso_back: ( + offset: (-3.0, -4.0, -4.5), + central: ("npc.frostfang.male.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, -1.5), + central: ("npc.frostfang.male.ears"), + ), + tail: ( + offset: (-2.0, -13.0, -5.0), + central: ("npc.frostfang.male.tail"), + ), + ), + (Frostfang, Female): ( + upper: ( + offset: (-4.0, 0.0, -4.5), + central: ("npc.frostfang.female.head_upper"), + ), + lower: ( + offset: (-3.0, -2.0, -4.0), + central: ("npc.frostfang.female.head_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -3.5), + central: ("npc.frostfang.female.jaw"), + ), + torso_front: ( + offset: (-5.0, -11.0, -8.5), + central: ("npc.frostfang.female.torso_front"), + ), + torso_back: ( + offset: (-3.0, -4.0, -4.5), + central: ("npc.frostfang.female.torso_back"), + ), + ears: ( + offset: (-4.0, -1.0, -1.5), + central: ("npc.frostfang.female.ears"), + ), + tail: ( + offset: (-2.0, -13.0, -5.0), + central: ("npc.frostfang.female.tail"), + ), + ), + (Mouflon, Male): ( + upper: ( + offset: (-7.5, 0.0, -4.5), + central: ("npc.mouflon.male.head_upper"), + ), + lower: ( + offset: (-4.0, -4.0, -4.5), + central: ("npc.mouflon.male.head_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.mouflon.male.jaw"), + ), + torso_front: ( + offset: (-4.0, -9.0, -4.5), + central: ("npc.mouflon.male.torso_front"), + ), + torso_back: ( + offset: (-4.0, -5.5, -5.0), + central: ("npc.mouflon.male.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -1.5, 0.0), + central: ("npc.mouflon.male.tail"), + ), + ), + (Mouflon, Female): ( + upper: ( + offset: (-7.5, 0.0, -4.5), + central: ("npc.mouflon.female.head_upper"), + ), + lower: ( + offset: (-4.0, -4.0, -4.5), + central: ("npc.mouflon.female.head_lower"), + ), + jaw: ( + offset: (-2.0, 0.0, -1.0), + central: ("npc.mouflon.female.jaw"), + ), + torso_front: ( + offset: (-4.0, -9.0, -4.5), + central: ("npc.mouflon.female.torso_front"), + ), + torso_back: ( + offset: (-4.0, -5.5, -5.0), + central: ("npc.mouflon.female.torso_back"), + ), + ears: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + tail: ( + offset: (-2.0, -1.5, 0.0), + central: ("npc.mouflon.female.tail"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index 206e9519d0..7e04615de4 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -407,4 +407,208 @@ lateral: ("npc.tiger.female.foot_br"), ), ), + (Wolf, Male): ( + leg_fl: ( + offset: (-2.0, -3.5, -4.0), + lateral: ("npc.wolf.male.leg_fl"), + ), + leg_fr: ( + offset: (-2.0, -3.5, -4.0), + lateral: ("npc.wolf.male.leg_fr"), + ), + leg_bl: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.wolf.male.leg_bl"), + ), + leg_br: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.wolf.male.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -3.0, -9.0), + lateral: ("npc.wolf.male.foot_fl"), + ), + foot_fr: ( + offset: (-1.5, -3.0, -9.0), + lateral: ("npc.wolf.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -3.0, -9.0), + lateral: ("npc.wolf.male.foot_bl"), + ), + foot_br: ( + offset: (-1.5, -3.0, -9.0), + lateral: ("npc.wolf.male.foot_br"), + ), + ), + (Wolf, Female): ( + leg_fl: ( + offset: (-2.0, -3.5, -4.0), + lateral: ("npc.wolf.female.leg_fl"), + ), + leg_fr: ( + offset: (-2.0, -3.5, -4.0), + lateral: ("npc.wolf.female.leg_fr"), + ), + leg_bl: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.wolf.female.leg_bl"), + ), + leg_br: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.wolf.female.leg_br"), + ), + foot_fl: ( + offset: (-1.5, -3.0, -9.0), + lateral: ("npc.wolf.female.foot_fl"), + ), + foot_fr: ( + offset: (-1.5, -3.0, -9.0), + lateral: ("npc.wolf.female.foot_fr"), + ), + foot_bl: ( + offset: (-1.5, -3.0, -9.0), + lateral: ("npc.wolf.female.foot_bl"), + ), + foot_br: ( + offset: (-1.5, -3.0, -9.0), + lateral: ("npc.wolf.female.foot_br"), + ), + ), + (Frostfang, Male): ( + leg_fl: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.frostfang.male.leg_fl"), + ), + leg_fr: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.frostfang.male.leg_fr"), + ), + leg_bl: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.frostfang.male.leg_bl"), + ), + leg_br: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.frostfang.male.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -3.0, -6.0), + lateral: ("npc.frostfang.male.foot_fl"), + ), + foot_fr: ( + offset: (-2.5, -3.0, -6.0), + lateral: ("npc.frostfang.male.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.0, -6.0), + lateral: ("npc.frostfang.male.foot_bl"), + ), + foot_br: ( + offset: (-2.5, -3.0, -6.0), + lateral: ("npc.frostfang.male.foot_br"), + ), + ), + (Frostfang, Female): ( + leg_fl: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.frostfang.female.leg_fl"), + ), + leg_fr: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.frostfang.female.leg_fr"), + ), + leg_bl: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.frostfang.female.leg_bl"), + ), + leg_br: ( + offset: (-1.5, -3.5, -3.5), + lateral: ("npc.frostfang.female.leg_br"), + ), + foot_fl: ( + offset: (-2.5, -3.0, -6.0), + lateral: ("npc.frostfang.female.foot_fl"), + ), + foot_fr: ( + offset: (-2.5, -3.0, -6.0), + lateral: ("npc.frostfang.female.foot_fr"), + ), + foot_bl: ( + offset: (-2.5, -3.0, -6.0), + lateral: ("npc.frostfang.female.foot_bl"), + ), + foot_br: ( + offset: (-2.5, -3.0, -6.0), + lateral: ("npc.frostfang.female.foot_br"), + ), + ), + (Mouflon, Male): ( + leg_fl: ( + offset: (-1.5, -2.5, -2.5), + lateral: ("npc.mouflon.male.leg_fl"), + ), + leg_fr: ( + offset: (-1.5, -2.5, -2.5), + lateral: ("npc.mouflon.male.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -2.5, -3.5), + lateral: ("npc.mouflon.male.leg_bl"), + ), + leg_br: ( + offset: (-2.0, -2.5, -3.5), + lateral: ("npc.mouflon.male.leg_br"), + ), + foot_fl: ( + offset: (-1.0, -2.0, -7.0), + lateral: ("npc.mouflon.male.foot_fl"), + ), + foot_fr: ( + offset: (-1.0, -2.0, -7.0), + lateral: ("npc.mouflon.male.foot_fr"), + ), + foot_bl: ( + offset: (-1.0, -1.0, -6.0), + lateral: ("npc.mouflon.male.foot_bl"), + ), + foot_br: ( + offset: (-1.0, -1.0, -6.0), + lateral: ("npc.mouflon.male.foot_br"), + ), + ), + (Mouflon, Female): ( + leg_fl: ( + offset: (-1.5, -2.5, -2.5), + lateral: ("npc.mouflon.female.leg_fl"), + ), + leg_fr: ( + offset: (-1.5, -2.5, -2.5), + lateral: ("npc.mouflon.female.leg_fr"), + ), + leg_bl: ( + offset: (-2.0, -2.5, -3.5), + lateral: ("npc.mouflon.female.leg_bl"), + ), + leg_br: ( + offset: (-2.0, -2.5, -3.5), + lateral: ("npc.mouflon.female.leg_br"), + ), + foot_fl: ( + offset: (-1.0, -2.0, -7.0), + lateral: ("npc.mouflon.female.foot_fl"), + ), + foot_fr: ( + offset: (-1.0, -2.0, -7.0), + lateral: ("npc.mouflon.female.foot_fr"), + ), + foot_bl: ( + offset: (-1.0, -1.0, -6.0), + lateral: ("npc.mouflon.female.foot_bl"), + ), + foot_br: ( + offset: (-1.0, -1.0, -6.0), + lateral: ("npc.mouflon.female.foot_br"), + ), + ), }) diff --git a/common/src/comp/body/quadruped_medium.rs b/common/src/comp/body/quadruped_medium.rs index 8170f8f77e..7d19091065 100644 --- a/common/src/comp/body/quadruped_medium.rs +++ b/common/src/comp/body/quadruped_medium.rs @@ -33,6 +33,9 @@ pub enum Species { Tuskram = 3, Lion = 6, Tarasque = 7, + Wolf = 8, + Frostfang = 9, + Mouflon = 10, } /// Data representing per-species generic data. @@ -46,6 +49,9 @@ pub struct AllSpecies { pub tuskram: SpeciesMeta, pub lion: SpeciesMeta, pub tarasque: SpeciesMeta, + pub wolf: SpeciesMeta, + pub frostfang: SpeciesMeta, + pub mouflon: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -60,17 +66,23 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Tuskram => &self.tuskram, Species::Lion => &self.lion, Species::Tarasque => &self.tarasque, + Species::Wolf => &self.wolf, + Species::Frostfang => &self.frostfang, + Species::Mouflon => &self.mouflon, } } } -pub const ALL_SPECIES: [Species; 6] = [ +pub const ALL_SPECIES: [Species; 9] = [ Species::Grolgar, Species::Saber, Species::Tiger, Species::Tuskram, Species::Lion, Species::Tarasque, + Species::Wolf, + Species::Frostfang, + Species::Mouflon, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index 40c9e8aa2c..8b771dfacf 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -150,6 +150,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Lion, _) => (12.0, 2.0), (Tarasque, _) => (5.5, 3.5), (Tiger, _) => (2.0, 1.0), + (Wolf, _) => (-0.5, 3.0), + (Frostfang, _) => (1.0, -2.0), + (Mouflon, _) => (-5.5, 6.0), }, head_lower: match (body.species, body.body_type) { (Grolgar, _) => (3.5, -3.0), @@ -158,6 +161,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Lion, _) => (0.5, 1.0), (Tarasque, _) => (0.5, -4.0), (Tiger, _) => (-5.0, -6.0), + (Wolf, _) => (-4.5, 2.0), + (Frostfang, _) => (2.0, 1.5), + (Mouflon, _) => (-1.0, 0.5), }, jaw: match (body.species, body.body_type) { (Grolgar, _) => (-2.5, 0.5), @@ -166,6 +172,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Lion, _) => (0.0, -4.5), (Tarasque, _) => (9.0, -10.0), (Tiger, _) => (7.0, -4.0), + (Wolf, _) => (5.0, -3.0), + (Frostfang, _) => (5.0, -3.0), + (Mouflon, _) => (10.5, -4.0), }, tail: match (body.species, body.body_type) { (Grolgar, _) => (-5.5, -0.5), @@ -174,6 +183,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Lion, _) => (-6.0, 1.0), (Tarasque, _) => (2.0, 0.0), (Tiger, _) => (-6.5, -7.0), + (Wolf, _) => (-5.0, 0.0), + (Frostfang, _) => (-4.0, -3.5), + (Mouflon, _) => (-5.0, -3.5), }, torso_front: match (body.species, body.body_type) { (Grolgar, _) => (10.0, 11.0), @@ -182,6 +194,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Lion, _) => (10.0, 13.0), (Tarasque, _) => (11.5, 18.5), (Tiger, _) => (10.0, 12.0), + (Wolf, _) => (12.0, 13.0), + (Frostfang, _) => (9.0, 11.5), + (Mouflon, _) => (11.0, 13.5), }, torso_back: match (body.species, body.body_type) { (Grolgar, _) => (-20.0, 1.5), @@ -190,6 +205,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Lion, _) => (-19.0, -1.0), (Tarasque, _) => (-26.0, -1.0), (Tiger, _) => (-19.0, 0.0), + (Wolf, _) => (-18.5, 1.0), + (Frostfang, _) => (-15.0, 0.0), + (Mouflon, _) => (-14.5, -0.5), }, ears: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 9.5), @@ -198,6 +216,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Lion, _) => (-8.0, 4.5), (Tarasque, _) => (3.0, 1.0), (Tiger, _) => (2.5, 5.0), + (Wolf, _) => (3.0, 5.0), + (Frostfang, _) => (2.0, 5.0), + (Mouflon, _) => (2.5, 5.0), }, leg_f: match (body.species, body.body_type) { (Grolgar, _) => (-7.0, -5.0, -2.0), @@ -206,6 +227,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Lion, _) => (7.5, -4.5, -6.0), (Tarasque, _) => (7.0, -8.0, -6.0), (Tiger, _) => (7.0, -2.0, -1.0), + (Wolf, _) => (4.0, -6.5, -1.0), + (Frostfang, _) => (5.5, -5.5, -2.0), + (Mouflon, _) => (3.5, -5.5, -5.0), }, leg_b: match (body.species, body.body_type) { (Grolgar, _) => (6.0, -0.5, -5.5), @@ -214,6 +238,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Lion, _) => (6.0, 0.0, -2.0), (Tarasque, _) => (6.0, 7.5, -6.5), (Tiger, _) => (7.0, -2.0, -1.0), + (Wolf, _) => (4.5, 0.0, -2.5), + (Frostfang, _) => (3.5, -0.5, -2.0), + (Mouflon, _) => (3.5, -2.0, -4.5), }, feet_f: match (body.species, body.body_type) { (Grolgar, _) => (0.0, 1.0, -6.0), @@ -222,6 +249,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Lion, _) => (0.0, 2.0, -4.5), (Tarasque, _) => (1.0, 0.0, -3.0), (Tiger, _) => (1.0, 0.0, -5.0), + (Wolf, _) => (0.5, 0.5, -3.0), + (Frostfang, _) => (0.5, 2.5, -3.5), + (Mouflon, _) => (-0.5, 0.5, -1.5), }, feet_b: match (body.species, body.body_type) { (Grolgar, _) => (0.0, 0.0, -5.0), @@ -230,6 +260,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Lion, _) => (0.5, 0.5, -4.0), (Tarasque, _) => (1.5, -2.5, -2.5), (Tiger, _) => (1.0, 0.5, -4.0), + (Wolf, _) => (0.0, -0.5, -2.5), + (Frostfang, _) => (0.0, -0.5, -3.5), + (Mouflon, _) => (-1.0, -2.5, -2.5), }, height: match (body.species, body.body_type) { (Grolgar, _) => (1.2), @@ -238,6 +271,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Lion, _) => (1.4), (Tarasque, _) => (1.1), (Tiger, _) => (1.0), + (Wolf, _) => (1.0), + (Frostfang, _) => (1.0), + (Mouflon, _) => (1.0), }, } } From 3616d115c92f3e053485469474a02f6652a497fd Mon Sep 17 00:00:00 2001 From: jshipsey Date: Fri, 26 Jun 2020 00:57:59 -0400 Subject: [PATCH 26/48] starting on trot, removing some warnings --- .../quadruped_medium_lateral_manifest.ron | 32 +-- voxygen/src/anim/src/quadruped_low/mod.rs | 11 - voxygen/src/anim/src/quadruped_low/run.rs | 32 +-- voxygen/src/anim/src/quadruped_medium/mod.rs | 19 +- voxygen/src/anim/src/quadruped_medium/run.rs | 224 ++++++++++++------ 5 files changed, 171 insertions(+), 147 deletions(-) diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index 7e04615de4..70193a70e3 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -17,19 +17,19 @@ lateral: ("npc.grolgar.male.leg_br"), ), foot_fl: ( - offset: (-2.5, -6.0, -3.0), + offset: (-2.5, -3.0, -6.0),//y pivot should be -3/4 of the y dimension of the model lateral: ("npc.grolgar.male.foot_fl"), ), foot_fr: ( - offset: (-2.5, -6.0, -3.0), + offset: (-2.5, -3.0, -6.0),//y pivot should be -3/4 of the y dimension of the model lateral: ("npc.grolgar.male.foot_fr"), ), foot_bl: ( - offset: (-2.5, -3.5, -2.0), + offset: (-2.5, -2.0, -4.0),//y pivot should be -3/4 of the y dimension of the model lateral: ("npc.grolgar.male.foot_bl"), ), foot_br: ( - offset: (-2.5, -3.5, -2.0), + offset: (-2.5, -2.0, -4.0),//y pivot should be -3/4 of the y dimension of the model lateral: ("npc.grolgar.male.foot_br"), ), ), @@ -51,19 +51,19 @@ lateral: ("npc.grolgar.female.leg_br"), ), foot_fl: ( - offset: (-2.5, -6.0, -3.0), + offset: (-2.5, -3.0, -6.0), lateral: ("npc.grolgar.female.foot_fl"), ), foot_fr: ( - offset: (-2.5, -6.0, -3.0), + offset: (-2.5, -3.0, -6.0), lateral: ("npc.grolgar.female.foot_fr"), ), foot_bl: ( - offset: (-2.5, -3.5, -2.0), + offset: (-2.5, -2.0, -4.0), lateral: ("npc.grolgar.female.foot_bl"), ), foot_br: ( - offset: (-2.5, -3.5, -2.0), + offset: (-2.5, -2.0, -4.0), lateral: ("npc.grolgar.female.foot_br"), ), ), @@ -221,19 +221,19 @@ lateral: ("npc.lion.male.leg_br"), ), foot_fl: ( - offset: (-2.5, -3.5, -2.5), + offset: (-2.5, -2.0, -2.5), lateral: ("npc.lion.male.foot_fl"), ), foot_fr: ( - offset: (-2.5, -3.5, -2.5), + offset: (-2.5, -2.0, -2.5), lateral: ("npc.lion.male.foot_fr"), ), foot_bl: ( - offset: (-2.5, -3.5, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.lion.male.foot_bl"), ), foot_br: ( - offset: (-2.5, -3.5, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.lion.male.foot_br"), ), ), @@ -255,19 +255,19 @@ lateral: ("npc.lion.female.leg_br"), ), foot_fl: ( - offset: (-2.5, -3.5, -2.5), + offset: (-2.5, -2.0, -2.5), lateral: ("npc.lion.female.foot_fl"), ), foot_fr: ( - offset: (-2.5, -3.5, -2.5), + offset: (-2.5, -2.0, -2.5), lateral: ("npc.lion.female.foot_fr"), ), foot_bl: ( - offset: (-2.5, -3.5, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.lion.female.foot_bl"), ), foot_br: ( - offset: (-2.5, -3.5, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.lion.female.foot_br"), ), ), diff --git a/voxygen/src/anim/src/quadruped_low/mod.rs b/voxygen/src/anim/src/quadruped_low/mod.rs index 777879b092..27d7e7cd50 100644 --- a/voxygen/src/anim/src/quadruped_low/mod.rs +++ b/voxygen/src/anim/src/quadruped_low/mod.rs @@ -95,7 +95,6 @@ pub struct SkeletonAttr { tail_rear: (f32, f32), feet_f: (f32, f32, f32), feet_b: (f32, f32, f32), - height: f32, } impl<'a> std::convert::TryFrom<&'a comp::Body> for SkeletonAttr { @@ -120,7 +119,6 @@ impl Default for SkeletonAttr { tail_rear: (0.0, 0.0), feet_f: (0.0, 0.0, 0.0), feet_b: (0.0, 0.0, 0.0), - height: (0.0), } } } @@ -201,15 +199,6 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Tortoise, _) => (8.0, -8.5, -3.0), (Rocksnapper, _) => (12.0, -12.0, -7.5), }, - height: match (body.species, body.body_type) { - (Crocodile, _) => (1.0), - (Alligator, _) => (1.0), - (Salamander, _) => (1.0), - (Monitor, _) => (1.0), - (Asp, _) => (1.0), - (Tortoise, _) => (1.0), - (Rocksnapper, _) => (1.0), - }, } } } diff --git a/voxygen/src/anim/src/quadruped_low/run.rs b/voxygen/src/anim/src/quadruped_low/run.rs index f96e6ad83a..992f8c0e15 100644 --- a/voxygen/src/anim/src/quadruped_low/run.rs +++ b/voxygen/src/anim/src/quadruped_low/run.rs @@ -14,7 +14,7 @@ impl Animation for RunAnimation { #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_low_run")] fn update_skeleton_inner( skeleton: &Self::Skeleton, - (_velocity, global_time): Self::Dependency, + (_velocity, _global_time): Self::Dependency, anim_time: f64, _rate: &mut f32, skeleton_attr: &SkeletonAttr, @@ -23,21 +23,7 @@ impl Animation for RunAnimation { let lab = 0.5; - let wave_ultra_slow_cos = (anim_time as f32 * 3.0 + PI).cos(); - let wave_slow = (anim_time as f32 * 4.5).sin(); - let vertlf = (anim_time as f32 * lab as f32 + PI * 1.8).sin().max(0.15); - let vertrfoffset = (anim_time as f32 * lab as f32 + PI * 0.80).sin().max(0.15); - let vertlboffset = (anim_time as f32 * lab as f32).sin().max(0.15); - let vertrb = (anim_time as f32 * lab as f32 + PI).sin().max(0.15); - - let horilf = (anim_time as f32 * lab as f32 + PI * 1.2).sin(); - let horirfoffset = (anim_time as f32 * lab as f32 + PI * 0.20).sin(); - let horilboffset = (anim_time as f32 * lab as f32 + PI * 1.4).sin(); - let horirb = (anim_time as f32 * lab as f32 + PI * 0.4).sin(); - - let vertchest = (anim_time as f32 * lab as f32 + PI * 0.3).sin().max(0.2); - let horichest = (anim_time as f32 * lab as f32 + PI * 0.8).sin(); let center = (anim_time as f32 * lab as f32 + PI / 2.0).sin(); let centeroffset = (anim_time as f32 * lab as f32 + PI * 1.5).sin(); @@ -85,7 +71,7 @@ impl Animation for RunAnimation { .powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()); -/// +// let foothorilb = (((5.0) / (1.0 + (4.0) @@ -125,20 +111,6 @@ impl Animation for RunAnimation { - - let dragon_look = Vec2::new( - ((global_time + anim_time) as f32 / 4.0) - .floor() - .mul(7331.0) - .sin() - * 0.25, - ((global_time + anim_time) as f32 / 4.0) - .floor() - .mul(1337.0) - .sin() - * 0.125, - ); - next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); next.head_upper.ori = diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index 8b771dfacf..a4cc6f0652 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -106,7 +106,6 @@ pub struct SkeletonAttr { leg_b: (f32, f32, f32), feet_f: (f32, f32, f32), feet_b: (f32, f32, f32), - height: f32, } impl<'a> std::convert::TryFrom<&'a comp::Body> for SkeletonAttr { @@ -134,7 +133,6 @@ impl Default for SkeletonAttr { leg_b: (0.0, 0.0, 0.0), feet_f: (0.0, 0.0, 0.0), feet_b: (0.0, 0.0, 0.0), - height: (0.0), } } } @@ -232,7 +230,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Mouflon, _) => (3.5, -5.5, -5.0), }, leg_b: match (body.species, body.body_type) { - (Grolgar, _) => (6.0, -0.5, -5.5), + (Grolgar, _) => (6.0, -0.5, -3.5), (Saber, _) => (6.0, -1.0, -4.0), (Tuskram, _) => (5.0, 0.5, -3.5), (Lion, _) => (6.0, 0.0, -2.0), @@ -243,7 +241,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Mouflon, _) => (3.5, -2.0, -4.5), }, feet_f: match (body.species, body.body_type) { - (Grolgar, _) => (0.0, 1.0, -6.0), + (Grolgar, _) => (0.0, -2.0, -4.0), (Saber, _) => (1.0, 3.0, -1.0), (Tuskram, _) => (0.5, 2.0, -5.0), (Lion, _) => (0.0, 2.0, -4.5), @@ -258,23 +256,12 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Saber, _) => (1.0, 0.0, 0.0), (Tuskram, _) => (0.5, 0.0, -4.0), (Lion, _) => (0.5, 0.5, -4.0), - (Tarasque, _) => (1.5, -2.5, -2.5), + (Tarasque, _) => (1.5, -1.0, -2.5), (Tiger, _) => (1.0, 0.5, -4.0), (Wolf, _) => (0.0, -0.5, -2.5), (Frostfang, _) => (0.0, -0.5, -3.5), (Mouflon, _) => (-1.0, -2.5, -2.5), }, - height: match (body.species, body.body_type) { - (Grolgar, _) => (1.2), - (Saber, _) => (1.0), - (Tuskram, _) => (1.0), - (Lion, _) => (1.4), - (Tarasque, _) => (1.1), - (Tiger, _) => (1.0), - (Wolf, _) => (1.0), - (Frostfang, _) => (1.0), - (Mouflon, _) => (1.0), - }, } } } diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index a0844bc2d6..c6d5676668 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -14,37 +14,38 @@ impl Animation for RunAnimation { #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_medium_run")] fn update_skeleton_inner( skeleton: &Self::Skeleton, - (_velocity, global_time): Self::Dependency, + (velocity, _global_time): Self::Dependency, anim_time: f64, - _rate: &mut f32, + rate: &mut f32, skeleton_attr: &SkeletonAttr, ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - - let lab = 0.1; + let speed = Vec2::::from(velocity).magnitude(); + *rate = 1.0; + let lab = 0.6; - let short = (((5.0) - / (3.6 - + 1.4 * ((anim_time as f32 *16.0* lab as f32+ PI * 1.0).sin()).powf(2.0 as f32))) + let short = (((1.0) + / (0.72 + + 0.28 * ((anim_time as f32 *16.0* lab as f32+ PI * 1.0).sin()).powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 *16.0* lab as f32+ PI * 1.0).sin()); - let foothoril = (((5.0) - / (1.0 - + (4.0) + let foothoril = (((1.0) + / (0.2 + + (0.8) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.45).sin()) .powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.45).sin()); - let foothorir = (((5.0) - / (1.0 - + (4.0) + let foothorir = (((1.0) + / (0.2 + + (0.8) * ((anim_time as f32 * 16.0 * lab as f32 + PI *0.45).sin()) .powf(2.0 as f32))) .sqrt()) @@ -52,22 +53,22 @@ impl Animation for RunAnimation { let footvertl = (anim_time as f32 * 16.0 * lab as f32+PI*0.0).sin(); let footvertr = (anim_time as f32 * 16.0 * lab as f32 + PI).sin(); - let footrotl = (((5.0) - / (2.5 - + (2.5) + let footrotl = (((1.0) + / (0.5 + + (0.5) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()) .powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()); - let footrotr = (((5.0) - / (2.5 - + (2.5) + let footrotr = (((1.0) + / (0.5 + + (0.5) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()) .powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()); -/// +// let foothorilb = (((5.0) / (1.0 + (4.0) @@ -75,9 +76,9 @@ impl Animation for RunAnimation { .powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.05).sin()); - let foothorirb = (((5.0) - / (1.0 - + (4.0) + let foothorirb = (((1.0) + / (0.2 + + (0.8) * ((anim_time as f32 * 16.0 * lab as f32 + PI *0.05).sin()) .powf(2.0 as f32))) .sqrt()) @@ -85,17 +86,17 @@ impl Animation for RunAnimation { let footvertlb = (anim_time as f32 * 16.0 * lab as f32+PI*(-0.4)).sin(); let footvertrb = (anim_time as f32 * 16.0 * lab as f32 + PI*0.6).sin(); - let footrotlb = (((5.0) - / (2.5 - + (2.5) + let footrotlb = (((1.0) + / (0.5 + + (0.5) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.0).sin()) .powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.0).sin()); - let footrotrb = (((5.0) - / (2.5 - + (2.5) + let footrotrb = (((1.0) + / (0.5 + + (0.5) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.0).sin()) .powf(2.0 as f32))) .sqrt()) @@ -116,60 +117,131 @@ impl Animation for RunAnimation { - - - let vertlf = (anim_time as f32 * lab as f32 + PI * 1.8).sin().max(0.15); - let vertrfoffset = (anim_time as f32 * lab as f32 + PI * 0.80).sin().max(0.15); - let vertlboffset = (anim_time as f32 * lab as f32).sin().max(0.15); - let vertrb = (anim_time as f32 * lab as f32 + PI).sin().max(0.15); - - let horilf = (anim_time as f32 * lab as f32 + PI * 1.2).sin(); - let horirfoffset = (anim_time as f32 * lab as f32 + PI * 0.20).sin(); - let horilboffset = (anim_time as f32 * lab as f32 + PI * 1.4).sin(); - let horirb = (anim_time as f32 * lab as f32 + PI * 0.4).sin(); - let vertchest = (anim_time as f32 * lab as f32 + PI * 0.3).sin().max(0.2); let horichest = (anim_time as f32 * lab as f32 + PI * 0.8).sin(); - let verthead = (anim_time as f32 * lab as f32 + PI * 0.3).sin(); - - let wolf_look = Vec2::new( - ((global_time + anim_time) as f32 / 4.0) - .floor() - .mul(7331.0) - .sin() - * 0.25, - ((global_time + anim_time) as f32 / 4.0) - .floor() - .mul(1337.0) - .sin() - * 0.125, - ); - - let wave_ultra_slow = (anim_time as f32 * 1.0 + PI).sin(); - let wave_ultra_slow_cos = (anim_time as f32 * 1.0 + PI).cos(); - let wave_slow = (anim_time as f32 * 3.5 + PI).sin(); - let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos(); - - let look = Vec2::new( - ((global_time + anim_time) as f32 / 8.0) - .floor() - .mul(7331.0) - .sin() - * 0.5, - ((global_time + anim_time) as f32 / 8.0) - .floor() - .mul(1337.0) - .sin() - * 0.25, - ); +if speed < 8.0{ next.head_upper.offset = Vec3::new( 0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1, ); next.head_upper.ori = - Quaternion::rotation_x(wolf_look.y) * Quaternion::rotation_z(wolf_look.x); + Quaternion::rotation_x(0.0) * Quaternion::rotation_z(0.0); + next.head_upper.scale = Vec3::one(); + + next.head_lower.offset = Vec3::new( + 0.0, + skeleton_attr.head_lower.0 + horichest * 0.8, + skeleton_attr.head_lower.1 + vertchest * -0.8, + ); + next.head_lower.ori = Quaternion::rotation_z(0.0); + next.head_lower.scale = Vec3::one() * 1.02; + + next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); + next.jaw.ori = Quaternion::rotation_x(0.0); + next.jaw.scale = Vec3::one() * 1.02; + + next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); + next.tail.ori = Quaternion::rotation_x(shortalt*0.08); + next.tail.scale = Vec3::one(); + + next.torso_front.offset = Vec3::new( + 0.0, + skeleton_attr.torso_front.0, + skeleton_attr.torso_front.1+shortalt*0.8, + ) / 8.0; + next.torso_front.ori = Quaternion::rotation_x(short * 0.06); + next.torso_front.scale = Vec3::one() / 8.0; + + next.torso_back.offset = Vec3::new( + 0.0, + skeleton_attr.torso_back.0, + skeleton_attr.torso_back.1, + ); + next.torso_back.ori = Quaternion::rotation_x(short * -0.05); + next.torso_back.scale = Vec3::one(); + + next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); + next.ears.ori = Quaternion::rotation_x(0.0); + next.ears.scale = Vec3::one() * 1.02; + + +////left and right functions currently swapped on some bones to change gait + next.leg_fl.offset = Vec3::new( + -skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1 + foothoril * -1.0, + skeleton_attr.leg_f.2 +1.0+ footvertl * -0.06, + ); + next.leg_fl.ori = Quaternion::rotation_x(footrotl * -0.15); + next.leg_fl.scale = Vec3::one()*0.99; + + + next.leg_fr.offset = Vec3::new( + skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1 + foothorir * -1.0, + skeleton_attr.leg_f.2 +1.0+ footvertr * -0.6, + ); + next.leg_fr.ori = Quaternion::rotation_x(footrotr * -0.15); + next.leg_fr.scale = Vec3::one()*0.99; + + next.leg_bl.offset = Vec3::new( + -skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1 + foothorilb * -1.0, + skeleton_attr.leg_b.2 +1.0+ footvertlb * -0.8, + + ); + next.leg_bl.ori = Quaternion::rotation_x(footrotlb * -0.15); + next.leg_bl.scale = Vec3::one() *0.99; + + next.leg_br.offset = Vec3::new( + skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1 + foothorirb * -1.0, + skeleton_attr.leg_b.2 +1.0+ footvertrb * -0.8, + ); + next.leg_br.ori = Quaternion::rotation_x(footrotrb * -0.15); + next.leg_br.scale = Vec3::one() *0.99; + + next.foot_fl.offset = Vec3::new( + -skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2+ ((footvertl * -1.5).max(-1.0)), + ); + next.foot_fl.ori = Quaternion::rotation_x(footrotl * -0.3); + next.foot_fl.scale = Vec3::one()*0.97; + + next.foot_fr.offset = Vec3::new( + skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2+ ((footvertr * -1.5).max(-1.0)), + ); + next.foot_fr.ori = Quaternion::rotation_x(footrotr * -0.3); + next.foot_fr.scale = Vec3::one()*0.98; + + next.foot_bl.offset = Vec3::new( + -skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2+ ((footvertlb * -1.5).max(-1.0)), + ); + next.foot_bl.ori = Quaternion::rotation_x(footrotlb * -0.3); + next.foot_bl.scale = Vec3::one()*0.98; + + next.foot_br.offset = Vec3::new( + skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2 + ((footvertrb * -1.5).max(-1.0)), + ); + next.foot_br.ori = Quaternion::rotation_x(footrotrb * -0.3); + next.foot_br.scale = Vec3::one()*0.98; +} + else { + next.head_upper.offset = Vec3::new( + 0.0, + skeleton_attr.head_upper.0, + skeleton_attr.head_upper.1, + ); + next.head_upper.ori = + Quaternion::rotation_x(0.0) * Quaternion::rotation_z(0.0); next.head_upper.scale = Vec3::one(); next.head_lower.offset = Vec3::new( @@ -276,6 +348,10 @@ impl Animation for RunAnimation { next.foot_br.ori = Quaternion::rotation_x(footrotrb * -0.7); next.foot_br.scale = Vec3::one()*0.98; + + } next + } + } From 0780bcf16049ccff96be06c485feb904d2ab9b2b Mon Sep 17 00:00:00 2001 From: jshipsey Date: Fri, 26 Jun 2020 18:32:41 -0400 Subject: [PATCH 27/48] animation tweaks, fix some idle --- .../quadruped_medium_central_manifest.ron | 38 ++++---- .../quadruped_medium_lateral_manifest.ron | 86 +++++++++---------- voxygen/src/anim/src/critter/idle.rs | 2 +- voxygen/src/anim/src/quadruped_medium/idle.rs | 48 +++++------ voxygen/src/anim/src/quadruped_medium/mod.rs | 60 ++++++------- voxygen/src/anim/src/quadruped_medium/run.rs | 20 ++--- 6 files changed, 127 insertions(+), 127 deletions(-) diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index 6b30fda0cb..63cedc3424 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -13,11 +13,11 @@ central: ("npc.grolgar.male.jaw"), ), torso_front: ( - offset: (-7.0, -14.0, -8.0), + offset: (-7.0, -14.0, -8.0),//value in y dimension is full length of model central: ("npc.grolgar.male.torso_front"), ), torso_back: ( - offset: (-5.0, -6.0, -5.5), + offset: (-5.0, -12.0, -5.5),//value in y dimension is full length of model central: ("npc.grolgar.male.torso_back"), ), ears: ( @@ -47,7 +47,7 @@ central: ("npc.grolgar.female.torso_front"), ), torso_back: ( - offset: (-5.0, -6.0, -5.5), + offset: (-5.0, -12.0, -5.5), central: ("npc.grolgar.female.torso_back"), ), ears: ( @@ -77,7 +77,7 @@ central: ("npc.saber.male.torso_front"), ), torso_back: ( - offset: (-5.0, -6.0, -5.0), + offset: (-5.0, -12.0, -5.0), central: ("npc.saber.male.torso_back"), ), ears: ( @@ -107,7 +107,7 @@ central: ("npc.saber.female.torso_front"), ), torso_back: ( - offset: (-5.0, -6.0, -5.0), + offset: (-5.0, -12.0, -5.0), central: ("npc.saber.female.torso_back"), ), ears: ( @@ -137,7 +137,7 @@ central: ("npc.tuskram.male.torso_front"), ), torso_back: ( - offset: (-4.0, -5.0, -4.5), + offset: (-4.0, -10.0, -4.5), central: ("npc.tuskram.male.torso_back"), ), ears: ( @@ -167,7 +167,7 @@ central: ("npc.tuskram.female.torso_front"), ), torso_back: ( - offset: (-4.0, -5.0, -4.5), + offset: (-4.0, -10.0, -4.5), central: ("npc.tuskram.female.torso_back"), ), ears: ( @@ -197,7 +197,7 @@ central: ("npc.lion.male.torso_front"), ), torso_back: ( - offset: (-5.5, -6.0, -5.0), + offset: (-5.5, -12.0, -5.0), central: ("npc.lion.male.torso_back"), ), ears: ( @@ -227,7 +227,7 @@ central: ("npc.lion.female.torso_front"), ), torso_back: ( - offset: (-5.5, -6.0, -5.0), + offset: (-5.5, -12.0, -5.0), central: ("npc.lion.female.torso_back"), ), ears: ( @@ -257,7 +257,7 @@ central: ("npc.tarasque.male.torso_front"), ), torso_back: ( - offset: (-6.0, 0.0, -6.0), + offset: (-6.0, -13.0, -6.0), central: ("npc.tarasque.male.torso_back"), ), ears: ( @@ -287,7 +287,7 @@ central: ("npc.tarasque.female.torso_front"), ), torso_back: ( - offset: (-6.0, 0.0, -6.0), + offset: (-6.0, -13.0, -6.0), central: ("npc.tarasque.female.torso_back"), ), ears: ( @@ -317,7 +317,7 @@ central: ("npc.tiger.male.torso_front"), ), torso_back: ( - offset: (-5.5, -6.5, -5.0),///needs adjust + offset: (-5.5, -13.0, -5.0), central: ("npc.tiger.male.torso_back"), ), ears: ( @@ -347,7 +347,7 @@ central: ("npc.tiger.female.torso_front"), ), torso_back: ( - offset: (-5.5, -6.5, -5.0),///needs adjust + offset: (-5.5, -13.0, -5.0), central: ("npc.tiger.female.torso_back"), ), ears: ( @@ -377,7 +377,7 @@ central: ("npc.wolf.male.torso_front"), ), torso_back: ( - offset: (-4.0, -5.5, -5.0), + offset: (-4.0, -11.0, -5.0), central: ("npc.wolf.male.torso_back"), ), ears: ( @@ -407,7 +407,7 @@ central: ("npc.wolf.female.torso_front"), ), torso_back: ( - offset: (-4.0, -5.5, -5.0), + offset: (-4.0, -11.0, -5.0), central: ("npc.wolf.female.torso_back"), ), ears: ( @@ -497,7 +497,7 @@ central: ("npc.mouflon.male.torso_front"), ), torso_back: ( - offset: (-4.0, -5.5, -5.0), + offset: (-4.0, -11.0, -5.0), central: ("npc.mouflon.male.torso_back"), ), ears: ( @@ -505,7 +505,7 @@ central: ("armor.empty"), ), tail: ( - offset: (-2.0, -1.5, 0.0), + offset: (-2.0, -1.5, -7.0), central: ("npc.mouflon.male.tail"), ), ), @@ -527,7 +527,7 @@ central: ("npc.mouflon.female.torso_front"), ), torso_back: ( - offset: (-4.0, -5.5, -5.0), + offset: (-4.0, -11.0, -5.0), central: ("npc.mouflon.female.torso_back"), ), ears: ( @@ -535,7 +535,7 @@ central: ("armor.empty"), ), tail: ( - offset: (-2.0, -1.5, 0.0), + offset: (-2.0, -1.5, -7.0), central: ("npc.mouflon.female.tail"), ), ), diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index 70193a70e3..144a4864e4 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -17,11 +17,11 @@ lateral: ("npc.grolgar.male.leg_br"), ), foot_fl: ( - offset: (-2.5, -3.0, -6.0),//y pivot should be -3/4 of the y dimension of the model + offset: (-2.5, -9.0, -6.0),//y pivot should be -3/4 of the y dimension of the model lateral: ("npc.grolgar.male.foot_fl"), ), foot_fr: ( - offset: (-2.5, -3.0, -6.0),//y pivot should be -3/4 of the y dimension of the model + offset: (-2.5, -9.0, -6.0),//y pivot should be -3/4 of the y dimension of the model lateral: ("npc.grolgar.male.foot_fr"), ), foot_bl: ( @@ -51,7 +51,7 @@ lateral: ("npc.grolgar.female.leg_br"), ), foot_fl: ( - offset: (-2.5, -3.0, -6.0), + offset: (-2.5, -9.0, -6.0), lateral: ("npc.grolgar.female.foot_fl"), ), foot_fr: ( @@ -289,19 +289,19 @@ lateral: ("npc.tarasque.male.leg_br"), ), foot_fl: ( - offset: (-4.0, -3.0, -9.0), + offset: (-4.0, -9.0, -9.0), lateral: ("npc.tarasque.male.foot_fl"), ), foot_fr: ( - offset: (-4.0, -3.0, -9.0), + offset: (-4.0, -9.0, -9.0), lateral: ("npc.tarasque.male.foot_fr"), ), foot_bl: ( - offset: (-2.5, -2.0, -8.0), + offset: (-2.5, -6.0, -8.0), lateral: ("npc.tarasque.male.foot_bl"), ), foot_br: ( - offset: (-2.5, -2.0, -8.0), + offset: (-2.5, -6.0, -8.0), lateral: ("npc.tarasque.male.foot_br"), ), ), @@ -323,19 +323,19 @@ lateral: ("npc.tarasque.female.leg_br"), ), foot_fl: ( - offset: (-4.0, -3.0, -9.0), //(1/4) Y dimension, (1/1) Z dimension + offset: (-4.0, -9.0, -9.0), //(1/4) Y dimension, (1/1) Z dimension lateral: ("npc.tarasque.female.foot_fl"), ), foot_fr: ( - offset: (-4.0, -3.0, -9.0), //(1/4) Y dimension, (1/1) Z dimension + offset: (-4.0, -9.0, -9.0), //(1/4) Y dimension, (1/1) Z dimension lateral: ("npc.tarasque.female.foot_fr"), ), foot_bl: ( - offset: (-2.5, -2.0, -8.0), + offset: (-2.5, -6.0, -8.0), lateral: ("npc.tarasque.female.foot_bl"), ), foot_br: ( - offset: (-2.5, -2.0, -8.0), + offset: (-2.5, -6.0, -8.0), lateral: ("npc.tarasque.female.foot_br"), ), ), @@ -357,19 +357,19 @@ lateral: ("npc.tiger.male.leg_br"), ), foot_fl: ( - offset: (-2.5, -2.0, -6.0), + offset: (-2.5, -6.0, -6.0), lateral: ("npc.tiger.male.foot_fl"), ), foot_fr: ( - offset: (-2.5, -2.0, -6.0), + offset: (-2.5, -6.0, -6.0), lateral: ("npc.tiger.male.foot_fr"), ), foot_bl: ( - offset: (-2.5, -2.0, -6.0), + offset: (-2.5, -5.0, -6.0), lateral: ("npc.tiger.male.foot_bl"), ), foot_br: ( - offset: (-2.5, -2.0, -6.0), + offset: (-2.5, -5.0, -6.0), lateral: ("npc.tiger.male.foot_br"), ), ), @@ -391,19 +391,19 @@ lateral: ("npc.tiger.female.leg_br"), ), foot_fl: ( - offset: (-2.5, -2.0, -6.0), + offset: (-2.5, -6.0, -6.0), lateral: ("npc.tiger.female.foot_fl"), ), foot_fr: ( - offset: (-2.5, -2.0, -6.0), + offset: (-2.5, -6.0, -6.0), lateral: ("npc.tiger.female.foot_fr"), ), foot_bl: ( - offset: (-2.5, -2.0, -6.0), + offset: (-2.5, -5.0, -6.0), lateral: ("npc.tiger.female.foot_bl"), ), foot_br: ( - offset: (-2.5, -2.0, -6.0), + offset: (-2.5, -5.0, -6.0), lateral: ("npc.tiger.female.foot_br"), ), ), @@ -425,19 +425,19 @@ lateral: ("npc.wolf.male.leg_br"), ), foot_fl: ( - offset: (-1.5, -3.0, -9.0), + offset: (-1.5, -4.0, -9.0), lateral: ("npc.wolf.male.foot_fl"), ), foot_fr: ( - offset: (-1.5, -3.0, -9.0), + offset: (-1.5, -4.0, -9.0), lateral: ("npc.wolf.male.foot_fr"), ), foot_bl: ( - offset: (-1.5, -3.0, -9.0), + offset: (-1.5, -4.0, -9.0), lateral: ("npc.wolf.male.foot_bl"), ), foot_br: ( - offset: (-1.5, -3.0, -9.0), + offset: (-1.5, -4.0, -9.0), lateral: ("npc.wolf.male.foot_br"), ), ), @@ -459,19 +459,19 @@ lateral: ("npc.wolf.female.leg_br"), ), foot_fl: ( - offset: (-1.5, -3.0, -9.0), + offset: (-1.5, -4.0, -9.0), lateral: ("npc.wolf.female.foot_fl"), ), foot_fr: ( - offset: (-1.5, -3.0, -9.0), + offset: (-1.5, -4.0, -9.0), lateral: ("npc.wolf.female.foot_fr"), ), foot_bl: ( - offset: (-1.5, -3.0, -9.0), + offset: (-1.5, -4.0, -9.0), lateral: ("npc.wolf.female.foot_bl"), ), foot_br: ( - offset: (-1.5, -3.0, -9.0), + offset: (-1.5, -4.0, -9.0), lateral: ("npc.wolf.female.foot_br"), ), ), @@ -493,19 +493,19 @@ lateral: ("npc.frostfang.male.leg_br"), ), foot_fl: ( - offset: (-2.5, -3.0, -6.0), + offset: (-2.5, -4.0, -6.0), lateral: ("npc.frostfang.male.foot_fl"), ), foot_fr: ( - offset: (-2.5, -3.0, -6.0), + offset: (-2.5, -4.0, -6.0), lateral: ("npc.frostfang.male.foot_fr"), ), foot_bl: ( - offset: (-2.5, -3.0, -6.0), + offset: (-2.5, -4.0, -6.0), lateral: ("npc.frostfang.male.foot_bl"), ), foot_br: ( - offset: (-2.5, -3.0, -6.0), + offset: (-2.5, -4.0, -6.0), lateral: ("npc.frostfang.male.foot_br"), ), ), @@ -527,19 +527,19 @@ lateral: ("npc.frostfang.female.leg_br"), ), foot_fl: ( - offset: (-2.5, -3.0, -6.0), + offset: (-2.5, -4.0, -6.0), lateral: ("npc.frostfang.female.foot_fl"), ), foot_fr: ( - offset: (-2.5, -3.0, -6.0), + offset: (-2.5, -4.0, -6.0), lateral: ("npc.frostfang.female.foot_fr"), ), foot_bl: ( - offset: (-2.5, -3.0, -6.0), + offset: (-2.5, -4.0, -6.0), lateral: ("npc.frostfang.female.foot_bl"), ), foot_br: ( - offset: (-2.5, -3.0, -6.0), + offset: (-2.5, -4.0, -6.0), lateral: ("npc.frostfang.female.foot_br"), ), ), @@ -561,19 +561,19 @@ lateral: ("npc.mouflon.male.leg_br"), ), foot_fl: ( - offset: (-1.0, -2.0, -7.0), + offset: (-1.0, -3.0, -7.0), lateral: ("npc.mouflon.male.foot_fl"), ), foot_fr: ( - offset: (-1.0, -2.0, -7.0), + offset: (-1.0, -3.0, -7.0), lateral: ("npc.mouflon.male.foot_fr"), ), foot_bl: ( - offset: (-1.0, -1.0, -6.0), + offset: (-1.0, -2.0, -6.0), lateral: ("npc.mouflon.male.foot_bl"), ), foot_br: ( - offset: (-1.0, -1.0, -6.0), + offset: (-1.0, -2.0, -6.0), lateral: ("npc.mouflon.male.foot_br"), ), ), @@ -595,19 +595,19 @@ lateral: ("npc.mouflon.female.leg_br"), ), foot_fl: ( - offset: (-1.0, -2.0, -7.0), + offset: (-1.0, -3.0, -7.0), lateral: ("npc.mouflon.female.foot_fl"), ), foot_fr: ( - offset: (-1.0, -2.0, -7.0), + offset: (-1.0, -3.0, -7.0), lateral: ("npc.mouflon.female.foot_fr"), ), foot_bl: ( - offset: (-1.0, -1.0, -6.0), + offset: (-1.0, -2.0, -6.0), lateral: ("npc.mouflon.female.foot_bl"), ), foot_br: ( - offset: (-1.0, -1.0, -6.0), + offset: (-1.0, -2.0, -6.0), lateral: ("npc.mouflon.female.foot_br"), ), ), diff --git a/voxygen/src/anim/src/critter/idle.rs b/voxygen/src/anim/src/critter/idle.rs index 68f864ea2d..b4adcdb537 100644 --- a/voxygen/src/anim/src/critter/idle.rs +++ b/voxygen/src/anim/src/critter/idle.rs @@ -59,7 +59,7 @@ impl Animation for IdleAnimation { next.feet_b.scale = Vec3::one() / 18.0; next.tail.offset = - Vec3::new(0.0, skeleton_attr.tail.0 + wave * 1.0, skeleton_attr.tail.1) / 18.0; + Vec3::new(0.0, skeleton_attr.tail.0 + wave * 0.2, skeleton_attr.tail.1) / 18.0; next.tail.ori = Quaternion::rotation_y(wave_slow * 0.05); next.tail.scale = Vec3::one() / 18.0; diff --git a/voxygen/src/anim/src/quadruped_medium/idle.rs b/voxygen/src/anim/src/quadruped_medium/idle.rs index e740c2dfb6..ddc5e1f034 100644 --- a/voxygen/src/anim/src/quadruped_medium/idle.rs +++ b/voxygen/src/anim/src/quadruped_medium/idle.rs @@ -21,9 +21,9 @@ impl Animation for IdleAnimation { ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let wave_ultra_slow = (anim_time as f32 * 1.0 + PI).sin(); + let slower = (anim_time as f32 * 1.0 + PI).sin(); let wave_ultra_slow_cos = (anim_time as f32 * 1.0 + PI).cos(); - let wave_slow = (anim_time as f32 * 3.5 + PI).sin(); + let slow = (anim_time as f32 * 3.5 + PI).sin(); let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos(); let look = Vec2::new( @@ -54,7 +54,7 @@ impl Animation for IdleAnimation { next.head_upper.offset = Vec3::new( 0.0, skeleton_attr.head_upper.0, - skeleton_attr.head_upper.1 + wave_ultra_slow * 0.4, + skeleton_attr.head_upper.1 + slower * 0.2, ); next.head_upper.ori = Quaternion::rotation_z(0.3 * look.x) * Quaternion::rotation_x(0.3 * look.y); @@ -63,7 +63,7 @@ impl Animation for IdleAnimation { next.head_lower.offset = Vec3::new( 0.0, skeleton_attr.head_lower.0, - skeleton_attr.head_lower.1 + wave_ultra_slow * 0.20, + skeleton_attr.head_lower.1 + slower * 0.1, ); next.head_lower.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); @@ -72,17 +72,17 @@ impl Animation for IdleAnimation { next.jaw.offset = Vec3::new( 0.0, skeleton_attr.jaw.0 - wave_ultra_slow_cos * 0.12, - skeleton_attr.jaw.1 + wave_slow * 0.2, + skeleton_attr.jaw.1 + slow * 0.2, ); - next.jaw.ori = Quaternion::rotation_x(wave_slow * 0.05); + next.jaw.ori = Quaternion::rotation_x(slow * 0.05); next.jaw.scale = Vec3::one() * 1.02; next.tail.offset = Vec3::new( 0.0, skeleton_attr.tail.0, - skeleton_attr.tail.1 + wave_ultra_slow * 0.6, + skeleton_attr.tail.1 + slower * 0.6, ); - next.tail.ori = Quaternion::rotation_z(0.0 + wave_slow * 0.2 + tailmove.x) + next.tail.ori = Quaternion::rotation_z(0.0 + slow * 0.2 + tailmove.x) * Quaternion::rotation_x(0.0); next.tail.scale = Vec3::one(); @@ -91,15 +91,15 @@ impl Animation for IdleAnimation { next.torso_front.offset = Vec3::new( 0.0, skeleton_attr.torso_front.0, - skeleton_attr.torso_front.1 + wave_ultra_slow * 0.5, + skeleton_attr.torso_front.1 + slower * 0.5, )/8.0; - next.torso_front.ori = Quaternion::rotation_y(wave_slow * 0.015); + next.torso_front.ori = Quaternion::rotation_y(slow * 0.015); next.torso_front.scale = Vec3::one() / 8.0; next.torso_back.offset = Vec3::new( 0.0, skeleton_attr.torso_back.0, - skeleton_attr.torso_back.1 + wave_ultra_slow * 0.2, + skeleton_attr.torso_back.1 + slower * 0.2, ); next.torso_back.ori = Quaternion::rotation_y(wave_slow_cos * 0.015) * Quaternion::rotation_z(0.0) @@ -107,45 +107,45 @@ impl Animation for IdleAnimation { next.torso_back.scale = Vec3::one(); next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); - next.ears.ori = Quaternion::rotation_x(0.0 + wave_ultra_slow * 0.03); + next.ears.ori = Quaternion::rotation_x(0.0 + slower * 0.03); next.ears.scale = Vec3::one() * 1.02; next.leg_fl.offset = Vec3::new( -skeleton_attr.leg_f.0, skeleton_attr.leg_f.1, - skeleton_attr.leg_f.2, + skeleton_attr.leg_f.2 + slower * -0.2, ); - next.leg_fl.ori = Quaternion::rotation_x(0.0); + next.leg_fl.ori = Quaternion::rotation_y(slow * -0.015); next.leg_fl.scale = Vec3::one(); next.leg_fr.offset = Vec3::new( skeleton_attr.leg_f.0, skeleton_attr.leg_f.1, - skeleton_attr.leg_f.2, + skeleton_attr.leg_f.2 + slower * -0.2, ); - next.leg_fr.ori = Quaternion::rotation_x(0.0); + next.leg_fr.ori = Quaternion::rotation_y(slow * -0.015); next.leg_fr.scale = Vec3::one(); next.leg_bl.offset = Vec3::new( -skeleton_attr.leg_b.0, skeleton_attr.leg_b.1, - skeleton_attr.leg_b.2, + skeleton_attr.leg_b.2 + slower * -0.2, ); - next.leg_bl.ori = Quaternion::rotation_x(0.0); + next.leg_bl.ori = Quaternion::rotation_y(slow * -0.015+wave_slow_cos * -0.015); next.leg_bl.scale = Vec3::one(); next.leg_br.offset = Vec3::new( skeleton_attr.leg_b.0, skeleton_attr.leg_b.1, - skeleton_attr.leg_b.2, + skeleton_attr.leg_b.2 + slower * -0.2, ); - next.leg_br.ori = Quaternion::rotation_x(0.0); + next.leg_br.ori = Quaternion::rotation_y(slow * -0.015+wave_slow_cos * -0.015); next.leg_br.scale = Vec3::one(); next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2, + skeleton_attr.feet_f.2+ slower * -0.2, ); next.foot_fl.ori = Quaternion::rotation_x(0.0); next.foot_fl.scale = Vec3::one(); @@ -153,7 +153,7 @@ impl Animation for IdleAnimation { next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2, + skeleton_attr.feet_f.2+ slower * -0.2, ); next.foot_fr.ori = Quaternion::rotation_x(0.0); next.foot_fr.scale = Vec3::one(); @@ -161,7 +161,7 @@ impl Animation for IdleAnimation { next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2, + skeleton_attr.feet_b.2+ slower * -0.2, ); next.foot_bl.ori = Quaternion::rotation_x(0.0); next.foot_bl.scale = Vec3::one(); @@ -169,7 +169,7 @@ impl Animation for IdleAnimation { next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2, + skeleton_attr.feet_b.2+ slower * -0.2, ); next.foot_br.ori = Quaternion::rotation_x(0.0); next.foot_br.scale = Vec3::one(); diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index a4cc6f0652..e47f73426f 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -175,15 +175,15 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Mouflon, _) => (10.5, -4.0), }, tail: match (body.species, body.body_type) { - (Grolgar, _) => (-5.5, -0.5), - (Saber, _) => (-6.0, 1.0), - (Tuskram, _) => (-4.0, 2.0), - (Lion, _) => (-6.0, 1.0), - (Tarasque, _) => (2.0, 0.0), - (Tiger, _) => (-6.5, -7.0), - (Wolf, _) => (-5.0, 0.0), - (Frostfang, _) => (-4.0, -3.5), - (Mouflon, _) => (-5.0, -3.5), + (Grolgar, _) => (-11.5, -0.5), + (Saber, _) => (-11.0, 1.0), + (Tuskram, _) => (-10.0, 2.0), + (Lion, _) => (-11.0, 1.0), + (Tarasque, _) => (-11.0, 0.0), + (Tiger, _) => (-12.5, -7.0), + (Wolf, _) => (-11.0, 0.0), + (Frostfang, _) => (-10.0, -3.5), + (Mouflon, _) => (-12.0, 1.5), }, torso_front: match (body.species, body.body_type) { (Grolgar, _) => (10.0, 11.0), @@ -197,15 +197,15 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Mouflon, _) => (11.0, 13.5), }, torso_back: match (body.species, body.body_type) { - (Grolgar, _) => (-20.0, 1.5), - (Saber, _) => (-19.5, 0.0), - (Tuskram, _) => (-18.0, -2.0), - (Lion, _) => (-19.0, -1.0), - (Tarasque, _) => (-26.0, -1.0), - (Tiger, _) => (-19.0, 0.0), - (Wolf, _) => (-18.5, 1.0), - (Frostfang, _) => (-15.0, 0.0), - (Mouflon, _) => (-14.5, -0.5), + (Grolgar, _) => (-14.0, 1.5), + (Saber, _) => (-13.5, 0.0), + (Tuskram, _) => (-12.0, -2.0), + (Lion, _) => (-13.0, -1.0), + (Tarasque, _) => (-14.0, -1.0), + (Tiger, _) => (-13.0, 0.0), + (Wolf, _) => (-12.5, 1.0), + (Frostfang, _) => (-9.0, 0.0), + (Mouflon, _) => (-8.5, -0.5), }, ears: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 9.5), @@ -225,20 +225,20 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Lion, _) => (7.5, -4.5, -6.0), (Tarasque, _) => (7.0, -8.0, -6.0), (Tiger, _) => (7.0, -2.0, -1.0), - (Wolf, _) => (4.0, -6.5, -1.0), + (Wolf, _) => (4.5, -6.5, -1.0), (Frostfang, _) => (5.5, -5.5, -2.0), - (Mouflon, _) => (3.5, -5.5, -5.0), + (Mouflon, _) => (5.0, -5.5, -5.0), }, leg_b: match (body.species, body.body_type) { - (Grolgar, _) => (6.0, -0.5, -3.5), - (Saber, _) => (6.0, -1.0, -4.0), - (Tuskram, _) => (5.0, 0.5, -3.5), - (Lion, _) => (6.0, 0.0, -2.0), - (Tarasque, _) => (6.0, 7.5, -6.5), - (Tiger, _) => (7.0, -2.0, -1.0), - (Wolf, _) => (4.5, 0.0, -2.5), - (Frostfang, _) => (3.5, -0.5, -2.0), - (Mouflon, _) => (3.5, -2.0, -4.5), + (Grolgar, _) => (6.0, -6.5, -3.5), + (Saber, _) => (6.0, -7.0, -4.0), + (Tuskram, _) => (5.0, -5.5, -3.5), + (Lion, _) => (6.0, -6.0, -2.0), + (Tarasque, _) => (6.0, -6.5, -6.5), + (Tiger, _) => (7.0, -8.0, -1.0), + (Wolf, _) => (5.0, -6.5, -2.5), + (Frostfang, _) => (3.5, -6.5, -2.0), + (Mouflon, _) => (3.5, -5.0, -4.5), }, feet_f: match (body.species, body.body_type) { (Grolgar, _) => (0.0, -2.0, -4.0), @@ -260,7 +260,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tiger, _) => (1.0, 0.5, -4.0), (Wolf, _) => (0.0, -0.5, -2.5), (Frostfang, _) => (0.0, -0.5, -3.5), - (Mouflon, _) => (-1.0, -2.5, -2.5), + (Mouflon, _) => (-1.0, -0.5, -2.5), }, } } diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index c6d5676668..1eb1c13dbb 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -120,7 +120,7 @@ impl Animation for RunAnimation { let vertchest = (anim_time as f32 * lab as f32 + PI * 0.3).sin().max(0.2); let horichest = (anim_time as f32 * lab as f32 + PI * 0.8).sin(); -if speed < 8.0{ +if speed < 8.0{//Trot next.head_upper.offset = Vec3::new( 0.0, skeleton_attr.head_upper.0, @@ -173,7 +173,7 @@ if speed < 8.0{ skeleton_attr.leg_f.1 + foothoril * -1.0, skeleton_attr.leg_f.2 +1.0+ footvertl * -0.06, ); - next.leg_fl.ori = Quaternion::rotation_x(footrotl * -0.15); + next.leg_fl.ori = Quaternion::rotation_x(footrotl * -0.09); next.leg_fl.scale = Vec3::one()*0.99; @@ -182,7 +182,7 @@ if speed < 8.0{ skeleton_attr.leg_f.1 + foothorir * -1.0, skeleton_attr.leg_f.2 +1.0+ footvertr * -0.6, ); - next.leg_fr.ori = Quaternion::rotation_x(footrotr * -0.15); + next.leg_fr.ori = Quaternion::rotation_x(footrotr * -0.09); next.leg_fr.scale = Vec3::one()*0.99; next.leg_bl.offset = Vec3::new( @@ -191,7 +191,7 @@ if speed < 8.0{ skeleton_attr.leg_b.2 +1.0+ footvertlb * -0.8, ); - next.leg_bl.ori = Quaternion::rotation_x(footrotlb * -0.15); + next.leg_bl.ori = Quaternion::rotation_x(footrotlb * -0.09); next.leg_bl.scale = Vec3::one() *0.99; next.leg_br.offset = Vec3::new( @@ -199,7 +199,7 @@ if speed < 8.0{ skeleton_attr.leg_b.1 + foothorirb * -1.0, skeleton_attr.leg_b.2 +1.0+ footvertrb * -0.8, ); - next.leg_br.ori = Quaternion::rotation_x(footrotrb * -0.15); + next.leg_br.ori = Quaternion::rotation_x(footrotrb * -0.09); next.leg_br.scale = Vec3::one() *0.99; next.foot_fl.offset = Vec3::new( @@ -207,7 +207,7 @@ if speed < 8.0{ skeleton_attr.feet_f.1, skeleton_attr.feet_f.2+ ((footvertl * -1.5).max(-1.0)), ); - next.foot_fl.ori = Quaternion::rotation_x(footrotl * -0.3); + next.foot_fl.ori = Quaternion::rotation_x(footrotl * -0.6); next.foot_fl.scale = Vec3::one()*0.97; next.foot_fr.offset = Vec3::new( @@ -215,7 +215,7 @@ if speed < 8.0{ skeleton_attr.feet_f.1, skeleton_attr.feet_f.2+ ((footvertr * -1.5).max(-1.0)), ); - next.foot_fr.ori = Quaternion::rotation_x(footrotr * -0.3); + next.foot_fr.ori = Quaternion::rotation_x(footrotr * -0.6); next.foot_fr.scale = Vec3::one()*0.98; next.foot_bl.offset = Vec3::new( @@ -223,7 +223,7 @@ if speed < 8.0{ skeleton_attr.feet_b.1, skeleton_attr.feet_b.2+ ((footvertlb * -1.5).max(-1.0)), ); - next.foot_bl.ori = Quaternion::rotation_x(footrotlb * -0.3); + next.foot_bl.ori = Quaternion::rotation_x(footrotlb * -0.6); next.foot_bl.scale = Vec3::one()*0.98; next.foot_br.offset = Vec3::new( @@ -231,10 +231,10 @@ if speed < 8.0{ skeleton_attr.feet_b.1, skeleton_attr.feet_b.2 + ((footvertrb * -1.5).max(-1.0)), ); - next.foot_br.ori = Quaternion::rotation_x(footrotrb * -0.3); + next.foot_br.ori = Quaternion::rotation_x(footrotrb * -0.6); next.foot_br.scale = Vec3::one()*0.98; } - else { + else {//Gallop next.head_upper.offset = Vec3::new( 0.0, skeleton_attr.head_upper.0, From fc34209243ad04bc781fe988107a5586955a1a0d Mon Sep 17 00:00:00 2001 From: jshipsey Date: Fri, 26 Jun 2020 23:42:06 -0400 Subject: [PATCH 28/48] more run animation work, adjusting pivots --- .../voxel/quadruped_low_lateral_manifest.ron | 112 ++--- .../quadruped_medium_central_manifest.ron | 4 +- .../quadruped_medium_lateral_manifest.ron | 130 ++--- common/src/comp/body.rs | 2 +- common/src/comp/mod.rs | 2 +- voxygen/src/anim/src/lib.rs | 2 +- voxygen/src/anim/src/quadruped_low/idle.rs | 26 +- voxygen/src/anim/src/quadruped_low/jump.rs | 6 +- voxygen/src/anim/src/quadruped_low/mod.rs | 43 +- voxygen/src/anim/src/quadruped_low/run.rs | 160 +++--- voxygen/src/anim/src/quadruped_medium/idle.rs | 47 +- voxygen/src/anim/src/quadruped_medium/jump.rs | 7 +- voxygen/src/anim/src/quadruped_medium/mod.rs | 73 ++- voxygen/src/anim/src/quadruped_medium/run.rs | 468 ++++++++---------- voxygen/src/scene/figure/load.rs | 4 +- voxygen/src/scene/figure/mod.rs | 43 +- 16 files changed, 540 insertions(+), 589 deletions(-) diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron index 136af6d1d3..30b5fc6199 100644 --- a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron @@ -1,253 +1,253 @@ ({ (Crocodile, Male): ( front_left: ( - offset: (-3.5, -3.5, -4.0), + offset: (-7.0, -0.0, -4.0),//full x dimension, 0 y dimension, full z dimension lateral: ("npc.crocodile.male.foot_fl"), ), front_right: ( - offset: (-3.5, -3.5, -4.0), + offset: (0.0, -0.0, -4.0),//0 x dimension, 0 y dimension, full z dimension lateral: ("npc.crocodile.male.foot_fr"), ), back_left: ( - offset: (-4.0, -2.5, -4.0), + offset: (-8.0, -0.0, -4.0),//full x dimension, 0 y dimension, full z dimension lateral: ("npc.crocodile.male.foot_bl"), ), back_right: ( - offset: (-4.0, -2.5, -4.0), + offset: (0.0, -0.0, -4.0),//0 x dimension, 0 y dimension, full z dimension lateral: ("npc.crocodile.male.foot_br"), ), ), (Crocodile, Female): ( front_left: ( - offset: (-3.5, -3.5, -4.0), + offset: (-7.0, -0.0, -4.0), lateral: ("npc.crocodile.female.foot_fl"), ), front_right: ( - offset: (-3.5, -3.5, -4.0), + offset: (0.0, -0.0, -4.0), lateral: ("npc.crocodile.female.foot_fr"), ), back_left: ( - offset: (-4.0, -2.5, -4.0), + offset: (-8.0, -0.0, -4.0), lateral: ("npc.crocodile.female.foot_bl"), ), back_right: ( - offset: (-4.0, -2.5, -4.0), + offset: (0.0, -0.0, -4.0), lateral: ("npc.crocodile.female.foot_br"), ), ), (Alligator, Male): ( front_left: ( - offset: (-3.5, -3.5, -4.0), + offset: (-7.0, 0.0, -4.0), lateral: ("npc.alligator.male.foot_fl"), ), front_right: ( - offset: (-3.5, -3.5, -4.0), + offset: (-0.0, 0.0, -4.0), lateral: ("npc.alligator.male.foot_fr"), ), back_left: ( - offset: (-4.0, -2.5, -4.0), + offset: (-8.0, 0.0, -4.0), lateral: ("npc.alligator.male.foot_bl"), ), back_right: ( - offset: (-4.0, -2.5, -4.0), + offset: (-0.0, 0.0, -4.0), lateral: ("npc.alligator.male.foot_br"), ), ), (Alligator, Female): ( front_left: ( - offset: (-3.5, -3.5, -4.0), + offset: (-7.0, 0.0, -4.0), lateral: ("npc.alligator.female.foot_fl"), ), front_right: ( - offset: (-3.5, -3.5, -4.0), + offset: (0.0, 0.0, -4.0), lateral: ("npc.alligator.female.foot_fr"), ), back_left: ( - offset: (-4.0, -2.5, -4.0), + offset: (-8.0, 0.0, -4.0), lateral: ("npc.alligator.female.foot_bl"), ), back_right: ( - offset: (-4.0, -2.5, -4.0), + offset: (0.0, 0.0, -4.0), lateral: ("npc.alligator.female.foot_br"), ), ), (Salamander, Male): ( front_left: ( - offset: (-3.0, -3.5, -3.0), + offset: (-6.0, 0.0, -3.0), lateral: ("npc.salamander.male.foot_fl"), ), front_right: ( - offset: (-3.0, -3.5, -3.0), + offset: (0.0, 0.0, -3.0), lateral: ("npc.salamander.male.foot_fr"), ), back_left: ( - offset: (-3.5, -2.5, -3.0), + offset: (-7.0, 0.0, -3.0), lateral: ("npc.salamander.male.foot_bl"), ), back_right: ( - offset: (-3.5, -2.5, -3.0), + offset: (-0.0, 0.0, -3.0), lateral: ("npc.salamander.male.foot_br"), ), ), (Salamander, Female): ( front_left: ( - offset: (-3.0, -3.5, -3.0), + offset: (-6.0, 0.0, -3.0), lateral: ("npc.salamander.female.foot_fl"), ), front_right: ( - offset: (-3.0, -3.5, -3.0), + offset: (0.0, 0.0, -3.0), lateral: ("npc.salamander.female.foot_fr"), ), back_left: ( - offset: (-3.5, -2.5, -3.0), + offset: (-7.0, 0.0, -3.0), lateral: ("npc.salamander.female.foot_bl"), ), back_right: ( - offset: (-3.5, -2.5, -3.0), + offset: (0.0, 0.0, -3.0), lateral: ("npc.salamander.female.foot_br"), ), ), (Monitor, Male): ( front_left: ( - offset: (-4.0, -3.5, -5.0), + offset: (-8.0, 0.0, -5.0), lateral: ("npc.monitor.male.foot_fl"), ), front_right: ( - offset: (-4.0, -3.5, -5.0), + offset: (0.0, 0.0, -5.0), lateral: ("npc.monitor.male.foot_fr"), ), back_left: ( - offset: (-3.5, -2.5, -5.0), + offset: (-7.0, 0.0, -5.0), lateral: ("npc.monitor.male.foot_bl"), ), back_right: ( - offset: (-3.5, -2.5, -5.0), + offset: (0.0, 0.0, -5.0), lateral: ("npc.monitor.male.foot_br"), ), ), (Monitor, Female): ( front_left: ( - offset: (-4.0, -3.5, -5.0), + offset: (-8.0, 0.0, -5.0), lateral: ("npc.monitor.female.foot_fl"), ), front_right: ( - offset: (-4.0, -3.5, -5.0), + offset: (0.0, 0.0, -5.0), lateral: ("npc.monitor.female.foot_fr"), ), back_left: ( - offset: (-3.5, -2.5, -5.0), + offset: (-7.0, 0.0, -5.0), lateral: ("npc.monitor.female.foot_bl"), ), back_right: ( - offset: (-3.5, -2.5, -5.0), + offset: (0.0, 0.0, -5.0), lateral: ("npc.monitor.female.foot_br"), ), ), (Asp, Male): ( front_left: ( - offset: (-5.5, -3.5, -7.0), + offset: (-11.0, 0.0, -7.0), lateral: ("npc.asp.male.foot_fl"), ), front_right: ( - offset: (-5.5, -3.5, -7.0), + offset: (0.0, 0.0, -7.0), lateral: ("npc.asp.male.foot_fr"), ), back_left: ( - offset: (-4.5, -2.5, -7.0), + offset: (-9.0, 0.0, -7.0), lateral: ("npc.asp.male.foot_bl"), ), back_right: ( - offset: (-4.5, -2.5, -7.0), + offset: (0.0, 0.0, -7.0), lateral: ("npc.asp.male.foot_br"), ), ), (Asp, Female): ( front_left: ( - offset: (-5.5, -3.5, -7.0), + offset: (-11.0, 0.0, -7.0), lateral: ("npc.asp.female.foot_fl"), ), front_right: ( - offset: (-5.5, -3.5, -7.0), + offset: (0.0, 0.0, -7.0), lateral: ("npc.asp.female.foot_fr"), ), back_left: ( - offset: (-4.5, -2.5, -7.0), + offset: (-9.0, 0.0, -7.0), lateral: ("npc.asp.female.foot_bl"), ), back_right: ( - offset: (-4.5, -2.5, -7.0), + offset: (0.0, 0.0, -7.0), lateral: ("npc.asp.female.foot_br"), ), ), (Tortoise, Male): ( front_left: ( - offset: (-3.5, -4.0, -8.0), + offset: (-7.0, 0.0, -8.0), lateral: ("npc.tortoise.male.foot_fl"), ), front_right: ( - offset: (-3.5, -4.0, -8.0), + offset: (0.0, 0.0, -8.0), lateral: ("npc.tortoise.male.foot_fr"), ), back_left: ( - offset: (-3.5, -3.0, -8.0), + offset: (-7.0, 0.0, -8.0), lateral: ("npc.tortoise.male.foot_bl"), ), back_right: ( - offset: (-3.5, -3.0, -8.0), + offset: (0.0, 0.0, -8.0), lateral: ("npc.tortoise.male.foot_br"), ), ), (Tortoise, Female): ( front_left: ( - offset: (-3.5, -4.0, -8.0), + offset: (-7.0, 0.0, -8.0), lateral: ("npc.tortoise.female.foot_fl"), ), front_right: ( - offset: (-3.5, -4.0, -8.0), + offset: (0.0, 0.0, -8.0), lateral: ("npc.tortoise.female.foot_fr"), ), back_left: ( - offset: (-3.5, -3.0, -8.0), + offset: (-7.0, 0.0, -8.0), lateral: ("npc.tortoise.female.foot_bl"), ), back_right: ( - offset: (-3.5, -3.0, -8.0), + offset: (0.0, 0.0, -8.0), lateral: ("npc.tortoise.female.foot_br"), ), ), (Rocksnapper, Male): ( front_left: ( - offset: (-6.0, -6.5, -10.0), + offset: (-12.0, 0.0, -10.0), lateral: ("npc.rocksnapper.male.foot_fl"), ), front_right: ( - offset: (-6.0, -6.5, -10.0), + offset: (0.0, 0.0, -10.0), lateral: ("npc.rocksnapper.male.foot_fr"), ), back_left: ( - offset: (-5.5, -4.5, -9.0), + offset: (-11.0, 0.0, -9.0), lateral: ("npc.rocksnapper.male.foot_bl"), ), back_right: ( - offset: (-5.5, -4.5, -9.0), + offset: (0.0, 0.0, -9.0), lateral: ("npc.rocksnapper.male.foot_br"), ), ), (Rocksnapper, Female): ( front_left: ( - offset: (-6.0, -6.5, -10.0), + offset: (-12.0, 0.0, -10.0), lateral: ("npc.rocksnapper.female.foot_fl"), ), front_right: ( - offset: (-6.0, -6.5, -10.0), + offset: (0.0, 0.0, -10.0), lateral: ("npc.rocksnapper.female.foot_fr"), ), back_left: ( - offset: (-5.5, -4.5, -9.0), + offset: (-11.0, -6.0, -9.0),//special case lateral: ("npc.rocksnapper.female.foot_bl"), ), back_right: ( - offset: (-5.5, -4.5, -9.0), + offset: (0.0, -6.0, -9.0), lateral: ("npc.rocksnapper.female.foot_br"), ), ), diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index 63cedc3424..8d6067c089 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -437,7 +437,7 @@ central: ("npc.frostfang.male.torso_front"), ), torso_back: ( - offset: (-3.0, -4.0, -4.5), + offset: (-3.0, -8.0, -4.5), central: ("npc.frostfang.male.torso_back"), ), ears: ( @@ -467,7 +467,7 @@ central: ("npc.frostfang.female.torso_front"), ), torso_back: ( - offset: (-3.0, -4.0, -4.5), + offset: (-3.0, -8.0, -4.5), central: ("npc.frostfang.female.torso_back"), ), ears: ( diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index 144a4864e4..a9202d6758 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -17,19 +17,19 @@ lateral: ("npc.grolgar.male.leg_br"), ), foot_fl: ( - offset: (-2.5, -9.0, -6.0),//y pivot should be -3/4 of the y dimension of the model + offset: (-2.5, -3.0, -6.0),//y pivot should be -1/4 of the y dimension of the model lateral: ("npc.grolgar.male.foot_fl"), ), foot_fr: ( - offset: (-2.5, -9.0, -6.0),//y pivot should be -3/4 of the y dimension of the model + offset: (-2.5, -3.0, -6.0),//y pivot should be -1/4 of the y dimension of the model lateral: ("npc.grolgar.male.foot_fr"), ), foot_bl: ( - offset: (-2.5, -2.0, -4.0),//y pivot should be -3/4 of the y dimension of the model + offset: (-2.5, -2.0, -4.0),//y pivot should be -1/4 of the y dimension of the model lateral: ("npc.grolgar.male.foot_bl"), ), foot_br: ( - offset: (-2.5, -2.0, -4.0),//y pivot should be -3/4 of the y dimension of the model + offset: (-2.5, -2.0, -4.0),//y pivot should be -1/4 of the y dimension of the model lateral: ("npc.grolgar.male.foot_br"), ), ), @@ -51,7 +51,7 @@ lateral: ("npc.grolgar.female.leg_br"), ), foot_fl: ( - offset: (-2.5, -9.0, -6.0), + offset: (-2.5, -3.0, -6.0), lateral: ("npc.grolgar.female.foot_fl"), ), foot_fr: ( @@ -85,19 +85,19 @@ lateral: ("npc.saber.male.leg_br"), ), foot_fl: ( - offset: (-2.5, -5.0, -8.0), + offset: (-2.5, -2.5, -8.0), lateral: ("npc.saber.male.foot_fl"), ), foot_fr: ( - offset: (-2.5, -5.0, -8.0), + offset: (-2.5, -2.5, -8.0), lateral: ("npc.saber.male.foot_fr"), ), foot_bl: ( - offset: (-2.5, -3.5, -9.0), + offset: (-2.5, -2.0, -9.0), lateral: ("npc.saber.male.foot_bl"), ), foot_br: ( - offset: (-2.5, -3.5, -9.0), + offset: (-2.5, -2.0, -9.0), lateral: ("npc.saber.male.foot_br"), ), ), @@ -119,19 +119,19 @@ lateral: ("npc.saber.female.leg_br"), ), foot_fl: ( - offset: (-2.5, -5.0, -8.0), + offset: (-2.5, -2.5, -8.0), lateral: ("npc.saber.female.foot_fl"), ), foot_fr: ( - offset: (-2.5, -5.0, -8.0), + offset: (-2.5, -2.5, -8.0), lateral: ("npc.saber.female.foot_fr"), ), foot_bl: ( - offset: (-2.5, -3.5, -9.0), + offset: (-2.5, -2.0, -9.0), lateral: ("npc.saber.female.foot_bl"), ), foot_br: ( - offset: (-2.5, -3.5, -9.0), + offset: (-2.5, -2.0, -9.0), lateral: ("npc.saber.female.foot_br"), ), ), @@ -153,19 +153,19 @@ lateral: ("npc.tuskram.male.leg_br"), ), foot_fl: ( - offset: (-2.5, -3.5, -5.0), + offset: (-2.5, -2.0, -5.0), lateral: ("npc.tuskram.male.foot_fl"), ), foot_fr: ( - offset: (-2.5, -3.5, -5.0), + offset: (-2.5, -2.0, -5.0), lateral: ("npc.tuskram.male.foot_fr"), ), foot_bl: ( - offset: (-1.5, -2.5, -6.0), + offset: (-1.5, -1.5, -6.0), lateral: ("npc.tuskram.male.foot_bl"), ), foot_br: ( - offset: (-1.5, -2.5, -6.0), + offset: (-1.5, -1.5, -6.0), lateral: ("npc.tuskram.male.foot_br"), ), ), @@ -187,19 +187,19 @@ lateral: ("npc.tuskram.female.leg_br"), ), foot_fl: ( - offset: (-2.5, -3.5, -5.0), + offset: (-2.5, -2.0, -5.0), lateral: ("npc.tuskram.female.foot_fl"), ), foot_fr: ( - offset: (-2.5, -3.5, -5.0), + offset: (-2.5, -2.0, -5.0), lateral: ("npc.tuskram.female.foot_fr"), ), foot_bl: ( - offset: (-1.5, -2.5, -6.0), + offset: (-1.5, -1.5, -6.0), lateral: ("npc.tuskram.female.foot_bl"), ), foot_br: ( - offset: (-1.5, -2.5, -6.0), + offset: (-1.5, -1.5, -6.0), lateral: ("npc.tuskram.female.foot_br"), ), ), @@ -221,11 +221,11 @@ lateral: ("npc.lion.male.leg_br"), ), foot_fl: ( - offset: (-2.5, -2.0, -2.5), + offset: (-2.5, -2.0, -5.0), lateral: ("npc.lion.male.foot_fl"), ), foot_fr: ( - offset: (-2.5, -2.0, -2.5), + offset: (-2.5, -2.0, -5.0), lateral: ("npc.lion.male.foot_fr"), ), foot_bl: ( @@ -255,11 +255,11 @@ lateral: ("npc.lion.female.leg_br"), ), foot_fl: ( - offset: (-2.5, -2.0, -2.5), + offset: (-2.5, -2.0, -5.0), lateral: ("npc.lion.female.foot_fl"), ), foot_fr: ( - offset: (-2.5, -2.0, -2.5), + offset: (-2.5, -2.0, -5.0), lateral: ("npc.lion.female.foot_fr"), ), foot_bl: ( @@ -289,19 +289,19 @@ lateral: ("npc.tarasque.male.leg_br"), ), foot_fl: ( - offset: (-4.0, -9.0, -9.0), + offset: (-4.0, -3.0, -9.0), lateral: ("npc.tarasque.male.foot_fl"), ), foot_fr: ( - offset: (-4.0, -9.0, -9.0), + offset: (-4.0, -3.0, -9.0), lateral: ("npc.tarasque.male.foot_fr"), ), foot_bl: ( - offset: (-2.5, -6.0, -8.0), + offset: (-2.5, -2.0, -8.0), lateral: ("npc.tarasque.male.foot_bl"), ), foot_br: ( - offset: (-2.5, -6.0, -8.0), + offset: (-2.5, -2.0, -8.0), lateral: ("npc.tarasque.male.foot_br"), ), ), @@ -323,19 +323,19 @@ lateral: ("npc.tarasque.female.leg_br"), ), foot_fl: ( - offset: (-4.0, -9.0, -9.0), //(1/4) Y dimension, (1/1) Z dimension + offset: (-4.0, -3.0, -9.0), //(1/4) Y dimension, (1/1) Z dimension lateral: ("npc.tarasque.female.foot_fl"), ), foot_fr: ( - offset: (-4.0, -9.0, -9.0), //(1/4) Y dimension, (1/1) Z dimension + offset: (-4.0, -3.0, -9.0), //(1/4) Y dimension, (1/1) Z dimension lateral: ("npc.tarasque.female.foot_fr"), ), foot_bl: ( - offset: (-2.5, -6.0, -8.0), + offset: (-2.5, -2.0, -8.0), lateral: ("npc.tarasque.female.foot_bl"), ), foot_br: ( - offset: (-2.5, -6.0, -8.0), + offset: (-2.5, -2.0, -8.0), lateral: ("npc.tarasque.female.foot_br"), ), ), @@ -357,19 +357,19 @@ lateral: ("npc.tiger.male.leg_br"), ), foot_fl: ( - offset: (-2.5, -6.0, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.tiger.male.foot_fl"), ), foot_fr: ( - offset: (-2.5, -6.0, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.tiger.male.foot_fr"), ), foot_bl: ( - offset: (-2.5, -5.0, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.tiger.male.foot_bl"), ), foot_br: ( - offset: (-2.5, -5.0, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.tiger.male.foot_br"), ), ), @@ -391,19 +391,19 @@ lateral: ("npc.tiger.female.leg_br"), ), foot_fl: ( - offset: (-2.5, -6.0, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.tiger.female.foot_fl"), ), foot_fr: ( - offset: (-2.5, -6.0, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.tiger.female.foot_fr"), ), foot_bl: ( - offset: (-2.5, -5.0, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.tiger.female.foot_bl"), ), foot_br: ( - offset: (-2.5, -5.0, -6.0), + offset: (-2.5, -2.0, -6.0), lateral: ("npc.tiger.female.foot_br"), ), ), @@ -425,19 +425,19 @@ lateral: ("npc.wolf.male.leg_br"), ), foot_fl: ( - offset: (-1.5, -4.0, -9.0), + offset: (-1.5, -1.5, -9.0), lateral: ("npc.wolf.male.foot_fl"), ), foot_fr: ( - offset: (-1.5, -4.0, -9.0), + offset: (-1.5, -1.5, -9.0), lateral: ("npc.wolf.male.foot_fr"), ), foot_bl: ( - offset: (-1.5, -4.0, -9.0), + offset: (-1.5, -1.5, -9.0), lateral: ("npc.wolf.male.foot_bl"), ), foot_br: ( - offset: (-1.5, -4.0, -9.0), + offset: (-1.5, -1.5, -9.0), lateral: ("npc.wolf.male.foot_br"), ), ), @@ -459,19 +459,19 @@ lateral: ("npc.wolf.female.leg_br"), ), foot_fl: ( - offset: (-1.5, -4.0, -9.0), + offset: (-1.5, -1.5, -9.0), lateral: ("npc.wolf.female.foot_fl"), ), foot_fr: ( - offset: (-1.5, -4.0, -9.0), + offset: (-1.5, -1.5, -9.0), lateral: ("npc.wolf.female.foot_fr"), ), foot_bl: ( - offset: (-1.5, -4.0, -9.0), + offset: (-1.5, -1.5, -9.0), lateral: ("npc.wolf.female.foot_bl"), ), foot_br: ( - offset: (-1.5, -4.0, -9.0), + offset: (-1.5, -1.5, -9.0), lateral: ("npc.wolf.female.foot_br"), ), ), @@ -493,19 +493,19 @@ lateral: ("npc.frostfang.male.leg_br"), ), foot_fl: ( - offset: (-2.5, -4.0, -6.0), + offset: (-2.5, -1.5, -6.0), lateral: ("npc.frostfang.male.foot_fl"), ), foot_fr: ( - offset: (-2.5, -4.0, -6.0), + offset: (-2.5, -1.5, -6.0), lateral: ("npc.frostfang.male.foot_fr"), ), foot_bl: ( - offset: (-2.5, -4.0, -6.0), + offset: (-2.5, -1.5, -6.0), lateral: ("npc.frostfang.male.foot_bl"), ), foot_br: ( - offset: (-2.5, -4.0, -6.0), + offset: (-2.5, -1.5, -6.0), lateral: ("npc.frostfang.male.foot_br"), ), ), @@ -527,19 +527,19 @@ lateral: ("npc.frostfang.female.leg_br"), ), foot_fl: ( - offset: (-2.5, -4.0, -6.0), + offset: (-2.5, -1.5, -6.0), lateral: ("npc.frostfang.female.foot_fl"), ), foot_fr: ( - offset: (-2.5, -4.0, -6.0), + offset: (-2.5, -1.5, -6.0), lateral: ("npc.frostfang.female.foot_fr"), ), foot_bl: ( - offset: (-2.5, -4.0, -6.0), + offset: (-2.5, -1.5, -6.0), lateral: ("npc.frostfang.female.foot_bl"), ), foot_br: ( - offset: (-2.5, -4.0, -6.0), + offset: (-2.5, -1.5, -6.0), lateral: ("npc.frostfang.female.foot_br"), ), ), @@ -561,19 +561,19 @@ lateral: ("npc.mouflon.male.leg_br"), ), foot_fl: ( - offset: (-1.0, -3.0, -7.0), + offset: (-1.0, -1.0, -7.0), lateral: ("npc.mouflon.male.foot_fl"), ), foot_fr: ( - offset: (-1.0, -3.0, -7.0), + offset: (-1.0, -1.0, -7.0), lateral: ("npc.mouflon.male.foot_fr"), ), foot_bl: ( - offset: (-1.0, -2.0, -6.0), + offset: (-1.0, -0.5, -6.0), lateral: ("npc.mouflon.male.foot_bl"), ), foot_br: ( - offset: (-1.0, -2.0, -6.0), + offset: (-1.0, -0.5, -6.0), lateral: ("npc.mouflon.male.foot_br"), ), ), @@ -595,19 +595,19 @@ lateral: ("npc.mouflon.female.leg_br"), ), foot_fl: ( - offset: (-1.0, -3.0, -7.0), + offset: (-1.0, -1.0, -7.0), lateral: ("npc.mouflon.female.foot_fl"), ), foot_fr: ( - offset: (-1.0, -3.0, -7.0), + offset: (-1.0, -1.0, -7.0), lateral: ("npc.mouflon.female.foot_fr"), ), foot_bl: ( - offset: (-1.0, -2.0, -6.0), + offset: (-1.0, -0.5, -6.0), lateral: ("npc.mouflon.female.foot_bl"), ), foot_br: ( - offset: (-1.0, -2.0, -6.0), + offset: (-1.0, -0.5, -6.0), lateral: ("npc.mouflon.female.foot_br"), ), ), diff --git a/common/src/comp/body.rs b/common/src/comp/body.rs index 4019f7d0a0..c8af418f7a 100644 --- a/common/src/comp/body.rs +++ b/common/src/comp/body.rs @@ -8,9 +8,9 @@ pub mod fish_small; pub mod golem; pub mod humanoid; pub mod object; +pub mod quadruped_low; pub mod quadruped_medium; pub mod quadruped_small; -pub mod quadruped_low; use crate::{ assets::{self, Asset}, diff --git a/common/src/comp/mod.rs b/common/src/comp/mod.rs index 6a10583e7a..809cfcd17d 100644 --- a/common/src/comp/mod.rs +++ b/common/src/comp/mod.rs @@ -23,7 +23,7 @@ pub use admin::{Admin, AdminList}; pub use agent::{Agent, Alignment}; pub use body::{ biped_large, bird_medium, bird_small, critter, dragon, fish_medium, fish_small, golem, - humanoid, object, quadruped_medium, quadruped_small, quadruped_low, AllBodies, Body, BodyData, + humanoid, object, quadruped_low, quadruped_medium, quadruped_small, AllBodies, Body, BodyData, }; pub use character_state::{Attacking, CharacterState, StateUpdate}; pub use chat::{ChatMode, ChatMsg, ChatType, Faction, Group, SpeechBubble, SpeechBubbleType}; diff --git a/voxygen/src/anim/src/lib.rs b/voxygen/src/anim/src/lib.rs index 59bb019061..b697eb89f4 100644 --- a/voxygen/src/anim/src/lib.rs +++ b/voxygen/src/anim/src/lib.rs @@ -13,9 +13,9 @@ pub mod fish_small; pub mod fixture; pub mod golem; pub mod object; +pub mod quadruped_low; pub mod quadruped_medium; pub mod quadruped_small; -pub mod quadruped_low; #[cfg(feature = "use-dyn-lib")] pub use dyn_lib::init; diff --git a/voxygen/src/anim/src/quadruped_low/idle.rs b/voxygen/src/anim/src/quadruped_low/idle.rs index 63698cdbd4..5b01dec9aa 100644 --- a/voxygen/src/anim/src/quadruped_low/idle.rs +++ b/voxygen/src/anim/src/quadruped_low/idle.rs @@ -21,8 +21,8 @@ impl Animation for IdleAnimation { ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let ultra_slow = 0.0*(anim_time as f32 * 1.0).sin(); - let slow = 0.0*(anim_time as f32 * 2.5).sin(); + let ultra_slow = 0.0 * (anim_time as f32 * 1.0).sin(); + let slow = 0.0 * (anim_time as f32 * 2.5).sin(); let slowalt = (anim_time as f32 * 2.5 + PI / 2.0).sin(); let dragon_look = Vec2::new( @@ -53,37 +53,33 @@ impl Animation for IdleAnimation { skeleton_attr.head_lower.1 + ultra_slow * 0.20, ); next.head_lower.ori = Quaternion::rotation_z(0.8 * dragon_look.x) - * Quaternion::rotation_x( 0.8 * dragon_look.y); + * Quaternion::rotation_x(0.8 * dragon_look.y); next.head_lower.scale = Vec3::one(); next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); next.jaw.ori = Quaternion::rotation_x(slow * 0.04); - next.jaw.scale = Vec3::one()*0.98; + next.jaw.scale = Vec3::one() * 0.98; - next.chest.offset = Vec3::new( - 0.0, - skeleton_attr.chest.0, - skeleton_attr.chest.1, - )/6.0; + next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) / 6.0; next.chest.ori = Quaternion::rotation_y(slow * 0.01); - next.chest.scale = Vec3::one() /6.0; + next.chest.scale = Vec3::one() / 6.0; next.tail_front.offset = Vec3::new(0.0, skeleton_attr.tail_front.0, skeleton_attr.tail_front.1); - next.tail_front.ori = Quaternion::rotation_x(0.15)*Quaternion::rotation_z(slowalt * 0.12); - next.tail_front.scale = Vec3::one()*0.98; + next.tail_front.ori = Quaternion::rotation_x(0.15) * Quaternion::rotation_z(slowalt * 0.12); + next.tail_front.scale = Vec3::one() * 0.98; next.tail_rear.offset = Vec3::new(0.0, skeleton_attr.tail_rear.0, skeleton_attr.tail_rear.1); - next.tail_rear.ori = Quaternion::rotation_z(slowalt * 0.12)*Quaternion::rotation_x(-0.12); - next.tail_rear.scale = Vec3::one()*0.98; + next.tail_rear.ori = Quaternion::rotation_z(slowalt * 0.12) * Quaternion::rotation_x(-0.12); + next.tail_rear.scale = Vec3::one() * 0.98; next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, ); - next.foot_fl.ori = Quaternion::rotation_x(0.0); + next.foot_fl.ori = Quaternion::rotation_z(0.0); next.foot_fl.scale = Vec3::one(); next.foot_fr.offset = Vec3::new( diff --git a/voxygen/src/anim/src/quadruped_low/jump.rs b/voxygen/src/anim/src/quadruped_low/jump.rs index 25cf993482..828659c951 100644 --- a/voxygen/src/anim/src/quadruped_low/jump.rs +++ b/voxygen/src/anim/src/quadruped_low/jump.rs @@ -75,11 +75,7 @@ impl Animation for JumpAnimation { next.tail_rear.ori = Quaternion::rotation_x(center * 0.03); next.tail_rear.scale = Vec3::one() * 0.98; - next.chest.offset = Vec3::new( - 0.0, - skeleton_attr.chest.0, - skeleton_attr.chest.1, - ); + next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1); next.chest.ori = Quaternion::rotation_y(center * 0.05); next.chest.scale = Vec3::one(); diff --git a/voxygen/src/anim/src/quadruped_low/mod.rs b/voxygen/src/anim/src/quadruped_low/mod.rs index 27d7e7cd50..a01e1f1775 100644 --- a/voxygen/src/anim/src/quadruped_low/mod.rs +++ b/voxygen/src/anim/src/quadruped_low/mod.rs @@ -45,10 +45,7 @@ impl Skeleton for QuadrupedLowSkeleton { FigureBoneData::new(chest_mat * head_lower_mat * head_upper_mat), FigureBoneData::new(chest_mat * head_lower_mat), FigureBoneData::new( - chest_mat - * head_lower_mat - * head_upper_mat - * self.jaw.compute_base_matrix(), + chest_mat * head_lower_mat * head_upper_mat * self.jaw.compute_base_matrix(), ), FigureBoneData::new(chest_mat), FigureBoneData::new(chest_mat * self.tail_front.compute_base_matrix()), @@ -57,10 +54,10 @@ impl Skeleton for QuadrupedLowSkeleton { * self.tail_front.compute_base_matrix() * self.tail_rear.compute_base_matrix(), ), - FigureBoneData::new(chest_mat*self.foot_fl.compute_base_matrix()), - FigureBoneData::new(chest_mat*self.foot_fr.compute_base_matrix()), - FigureBoneData::new(chest_mat*self.foot_bl.compute_base_matrix()), - FigureBoneData::new(chest_mat*self.foot_br.compute_base_matrix()), + FigureBoneData::new(chest_mat * self.foot_fl.compute_base_matrix()), + FigureBoneData::new(chest_mat * self.foot_fr.compute_base_matrix()), + FigureBoneData::new(chest_mat * self.foot_bl.compute_base_matrix()), + FigureBoneData::new(chest_mat * self.foot_br.compute_base_matrix()), FigureBoneData::default(), FigureBoneData::default(), FigureBoneData::default(), @@ -161,7 +158,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Monitor, _) => (0.0, 5.0), (Asp, _) => (0.0, 8.0), (Tortoise, _) => (0.0, 11.0), - (Rocksnapper, _) => (0.0, 16.5), + (Rocksnapper, _) => (0.0, 18.5), }, tail_rear: match (body.species, body.body_type) { (Crocodile, _) => (-12.5, -1.0), @@ -182,22 +179,22 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Rocksnapper, _) => (-13.5, -6.5), }, feet_f: match (body.species, body.body_type) { - (Crocodile, _) => (6.0, 6.0, -1.0), - (Alligator, _) => (6.75, 6.25, -1.0), - (Salamander, _) => (6.0, 6.0, -2.0), - (Monitor, _) => (6.0, 6.0, 0.0), - (Asp, _) => (6.5, 6.0, -1.0), - (Tortoise, _) => (8.5, 9.5, -3.0), - (Rocksnapper, _) => (12.5, 10.0, -6.5), + (Crocodile, _) => (3.5, 6.0, -1.0), + (Alligator, _) => (5.5, 4.25, -1.0), + (Salamander, _) => (5.0, 5.0, -2.0), + (Monitor, _) => (4.0, 5.0, 0.0), + (Asp, _) => (1.5, 4.0, -1.0), + (Tortoise, _) => (5.5, 9.5, -3.0), + (Rocksnapper, _) => (7.5, 5.0, -8.5), }, feet_b: match (body.species, body.body_type) { - (Crocodile, _) => (6.0, -6.0, -1.0), - (Alligator, _) => (6.5, -4.5, -1.0), - (Salamander, _) => (6.0, -6.0, -2.0), - (Monitor, _) => (6.0, -6.0, 0.0), - (Asp, _) => (6.5, -3.5, -1.0), - (Tortoise, _) => (8.0, -8.5, -3.0), - (Rocksnapper, _) => (12.0, -12.0, -7.5), + (Crocodile, _) => (3.5, -6.0, -1.0), + (Alligator, _) => (5.5, -5.5, -1.0), + (Salamander, _) => (4.0, -6.0, -2.0), + (Monitor, _) => (4.0, -6.0, 0.0), + (Asp, _) => (2.5, -5.5, -1.0), + (Tortoise, _) => (7.0, -9.5, -3.0), + (Rocksnapper, _) => (9.0, -14.0, -9.5), }, } } diff --git a/voxygen/src/anim/src/quadruped_low/run.rs b/voxygen/src/anim/src/quadruped_low/run.rs index 992f8c0e15..0feebc87e1 100644 --- a/voxygen/src/anim/src/quadruped_low/run.rs +++ b/voxygen/src/anim/src/quadruped_low/run.rs @@ -21,121 +21,101 @@ impl Animation for RunAnimation { ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let lab = 0.5; - - + let lab = 0.7; let center = (anim_time as f32 * lab as f32 + PI / 2.0).sin(); let centeroffset = (anim_time as f32 * lab as f32 + PI * 1.5).sin(); - - let short = (((5.0) - / (3.6 - + 1.4 * ((anim_time as f32 *16.0* lab as f32+ PI * 0.25).sin()).powf(2.0 as f32))) + let short = (((0.0) + / (0.72 + + 0.28 + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.25).sin()) + .powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 *16.0* lab as f32+ PI * 0.25).sin()); - let shortalt = (anim_time as f32 *16.0* lab as f32 + PI * 0.25).sin(); + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.25).sin()); + let shortalt = (anim_time as f32 * 16.0 * lab as f32 + PI * 0.25).sin(); - - - - let foothoril = (((5.0) - / (1.0 - + (4.0) + let foothoril = (((1.0) + / (0.4 + + (0.6) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.45).sin()) .powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.45).sin()); - let foothorir = (((5.0) - / (1.0 - + (4.0) - * ((anim_time as f32 * 16.0 * lab as f32 + PI *0.45).sin()) + let foothorir = (((1.0) + / (0.4 + + (0.6) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.45).sin()) .powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.45).sin()); - let footvertl = (anim_time as f32 * 16.0 * lab as f32+PI*0.0).sin(); + let footvertl = (anim_time as f32 * 16.0 * lab as f32 + PI * 0.0).sin(); let footvertr = (anim_time as f32 * 16.0 * lab as f32 + PI).sin(); - let footrotl = (((5.0) - / (0.5 - + (4.5) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()) - .powf(2.0 as f32))) + let footrotl = (((1.0) + / (0.4 + + (0.6) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()).powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()); - let footrotr = (((5.0) - / (0.5 - + (4.5) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()) - .powf(2.0 as f32))) + let footrotr = (((1.0) + / (0.4 + + (0.6) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()).powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()); -// - let foothorilb = (((5.0) - / (1.0 - + (4.0) - * ((anim_time as f32 * 16.0 * lab as f32 + PI *1.25).sin()) + // + let foothorilb = (((1.0) + / (0.4 + + (0.6) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.25).sin()) .powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.25).sin()); - let foothorirb = (((5.0) - / (1.0 - + (4.0) - * ((anim_time as f32 * 16.0 * lab as f32 + PI *0.25).sin()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.25).sin()); + let foothorirb = (((1.0) + / (0.4 + + (0.6) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.25).sin()) .powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.25).sin()); - let footvertlb = (anim_time as f32 * 16.0 * lab as f32+PI*(-0.2)).sin(); - let footvertrb = (anim_time as f32 * 16.0 * lab as f32 + PI*0.8).sin(); + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.25).sin()); + let footvertlb = (anim_time as f32 * 16.0 * lab as f32 + PI * (-0.2)).sin(); + let footvertrb = (anim_time as f32 * 16.0 * lab as f32 + PI * 0.8).sin(); - let footrotlb = (((5.0) - / (0.5 - + (4.5) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.2).sin()) - .powf(2.0 as f32))) + let footrotlb = (((1.0) + / (0.4 + + (0.6) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.2).sin()).powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.2).sin()); - let footrotrb = (((5.0) - / (0.5 - + (4.5) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.2).sin()) - .powf(2.0 as f32))) + let footrotrb = (((1.0) + / (0.4 + + (0.6) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.2).sin()).powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.2).sin()); - - - - - - next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); - next.head_upper.ori = - Quaternion::rotation_x(0.0) * Quaternion::rotation_z(short*-0.06); + next.head_upper.ori = Quaternion::rotation_x(0.0) * Quaternion::rotation_z(short * -0.06); next.head_upper.scale = Vec3::one(); next.head_lower.offset = Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); - next.head_lower.ori = Quaternion::rotation_x(0.0)* Quaternion::rotation_z(short*-0.15); + next.head_lower.ori = Quaternion::rotation_x(0.0) * Quaternion::rotation_z(short * -0.15); next.head_lower.scale = Vec3::one(); - next.jaw.offset = Vec3::new( - 0.0, - skeleton_attr.jaw.0, - skeleton_attr.jaw.1, - ); + next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); next.jaw.ori = Quaternion::rotation_x(0.0); - next.jaw.scale = Vec3::one()*0.98; + next.jaw.scale = Vec3::one() * 0.98; - next.tail_front.offset = Vec3::new( - 0.0, - skeleton_attr.tail_front.0, - skeleton_attr.tail_front.1, - ); - next.tail_front.ori = Quaternion::rotation_z(shortalt*0.18)*Quaternion::rotation_y(shortalt*0.1)*Quaternion::rotation_x(0.06); + next.tail_front.offset = + Vec3::new(0.0, skeleton_attr.tail_front.0, skeleton_attr.tail_front.1); + next.tail_front.ori = Quaternion::rotation_z(shortalt * 0.18) + * Quaternion::rotation_y(shortalt * 0.1) + * Quaternion::rotation_x(0.06); next.tail_front.scale = Vec3::one(); next.tail_rear.offset = Vec3::new( @@ -143,44 +123,50 @@ impl Animation for RunAnimation { skeleton_attr.tail_rear.0, skeleton_attr.tail_rear.1 + centeroffset * 0.6, ); - next.tail_rear.ori = Quaternion::rotation_z(shortalt*0.25)*Quaternion::rotation_y(shortalt*0.1)*Quaternion::rotation_x(-0.04); + next.tail_rear.ori = Quaternion::rotation_z(shortalt * 0.25) + * Quaternion::rotation_y(shortalt * 0.1) + * Quaternion::rotation_x(-0.04); next.tail_rear.scale = Vec3::one(); - next.chest.offset = - Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1)/6.0; - next.chest.ori = Quaternion::rotation_z(short*0.12)*Quaternion::rotation_y(shortalt*0.12); - next.chest.scale = Vec3::one()/6.0; + next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) / 6.0; + next.chest.ori = + Quaternion::rotation_z(short * 0.12) * Quaternion::rotation_y(shortalt * 0.12); + next.chest.scale = Vec3::one() / 6.0; next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1 + foothoril * -2.5, + skeleton_attr.feet_f.1 + foothoril * -1.0, skeleton_attr.feet_f.2 + ((footvertl * -0.8).max(-0.0)), ); - next.foot_fl.ori = Quaternion::rotation_x(-0.2 + footrotl * -0.4)*Quaternion::rotation_z(footrotl * 0.55); + next.foot_fl.ori = + Quaternion::rotation_x(footrotl * -0.25) * Quaternion::rotation_z(footrotl * 0.35); next.foot_fl.scale = Vec3::one(); next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1 + foothorir * -2.5, + skeleton_attr.feet_f.1 + foothorir * -1.0, skeleton_attr.feet_f.2 + ((footvertr * -0.8).max(-0.0)), ); - next.foot_fr.ori = Quaternion::rotation_x(-0.2 + footrotr * -0.4)*Quaternion::rotation_z(footrotr * -0.55); + next.foot_fr.ori = + Quaternion::rotation_x(footrotr * -0.25) * Quaternion::rotation_z(footrotr * -0.35); next.foot_fr.scale = Vec3::one(); next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1 + foothorilb * -2.5, + skeleton_attr.feet_b.1 + foothorilb * -1.0, skeleton_attr.feet_b.2 + ((footvertlb * -0.6).max(-0.0)), ); - next.foot_bl.ori = Quaternion::rotation_x(-0.2 + footrotlb * -0.4)*Quaternion::rotation_z(footrotlb * 0.55); + next.foot_bl.ori = + Quaternion::rotation_x(footrotlb * -0.25) * Quaternion::rotation_z(footrotlb * 0.35); next.foot_bl.scale = Vec3::one(); next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1 + foothorirb * -2.5, + skeleton_attr.feet_b.1 + foothorirb * -1.0, skeleton_attr.feet_b.2 + ((footvertrb * -0.6).max(-0.0)), ); - next.foot_br.ori = Quaternion::rotation_x(-0.2 + footrotrb * -0.4)*Quaternion::rotation_z(footrotrb * -0.55); + next.foot_br.ori = + Quaternion::rotation_x(footrotrb * -0.25) * Quaternion::rotation_z(footrotrb * -0.35); next.foot_br.scale = Vec3::one(); next diff --git a/voxygen/src/anim/src/quadruped_medium/idle.rs b/voxygen/src/anim/src/quadruped_medium/idle.rs index ddc5e1f034..fc8923709b 100644 --- a/voxygen/src/anim/src/quadruped_medium/idle.rs +++ b/voxygen/src/anim/src/quadruped_medium/idle.rs @@ -65,8 +65,7 @@ impl Animation for IdleAnimation { skeleton_attr.head_lower.0, skeleton_attr.head_lower.1 + slower * 0.1, ); - next.head_lower.ori = - Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); + next.head_lower.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); next.head_lower.scale = Vec3::one() * 1.02; next.jaw.offset = Vec3::new( @@ -77,23 +76,17 @@ impl Animation for IdleAnimation { next.jaw.ori = Quaternion::rotation_x(slow * 0.05); next.jaw.scale = Vec3::one() * 1.02; - next.tail.offset = Vec3::new( - 0.0, - skeleton_attr.tail.0, - skeleton_attr.tail.1 + slower * 0.6, - ); - next.tail.ori = Quaternion::rotation_z(0.0 + slow * 0.2 + tailmove.x) - * Quaternion::rotation_x(0.0); + next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); + next.tail.ori = + Quaternion::rotation_z(0.0 + slow * 0.2 + tailmove.x) * Quaternion::rotation_x(0.0); next.tail.scale = Vec3::one(); - - next.torso_front.offset = Vec3::new( 0.0, skeleton_attr.torso_front.0, - skeleton_attr.torso_front.1 + slower * 0.5, - )/8.0; - next.torso_front.ori = Quaternion::rotation_y(slow * 0.015); + skeleton_attr.torso_front.1 + slower * 0.3, + ) / 8.0; + next.torso_front.ori = Quaternion::rotation_y(slow * 0.02); next.torso_front.scale = Vec3::one() / 8.0; next.torso_back.offset = Vec3::new( @@ -101,7 +94,7 @@ impl Animation for IdleAnimation { skeleton_attr.torso_back.0, skeleton_attr.torso_back.1 + slower * 0.2, ); - next.torso_back.ori = Quaternion::rotation_y(wave_slow_cos * 0.015) + next.torso_back.ori = Quaternion::rotation_y(-slow * 0.005) * Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); next.torso_back.scale = Vec3::one(); @@ -113,39 +106,39 @@ impl Animation for IdleAnimation { next.leg_fl.offset = Vec3::new( -skeleton_attr.leg_f.0, skeleton_attr.leg_f.1, - skeleton_attr.leg_f.2 + slower * -0.2, + skeleton_attr.leg_f.2 + slow * -0.15 + slower * -0.15, ); - next.leg_fl.ori = Quaternion::rotation_y(slow * -0.015); + next.leg_fl.ori = Quaternion::rotation_y(slow * -0.02); next.leg_fl.scale = Vec3::one(); next.leg_fr.offset = Vec3::new( skeleton_attr.leg_f.0, skeleton_attr.leg_f.1, - skeleton_attr.leg_f.2 + slower * -0.2, + skeleton_attr.leg_f.2 + slow * 0.15 + slower * -0.15, ); - next.leg_fr.ori = Quaternion::rotation_y(slow * -0.015); + next.leg_fr.ori = Quaternion::rotation_y(slow * -0.02); next.leg_fr.scale = Vec3::one(); next.leg_bl.offset = Vec3::new( -skeleton_attr.leg_b.0, skeleton_attr.leg_b.1, - skeleton_attr.leg_b.2 + slower * -0.2, + skeleton_attr.leg_b.2 + slower * -0.3, ); - next.leg_bl.ori = Quaternion::rotation_y(slow * -0.015+wave_slow_cos * -0.015); + next.leg_bl.ori = Quaternion::rotation_y(slow * -0.02); next.leg_bl.scale = Vec3::one(); next.leg_br.offset = Vec3::new( skeleton_attr.leg_b.0, skeleton_attr.leg_b.1, - skeleton_attr.leg_b.2 + slower * -0.2, + skeleton_attr.leg_b.2 + slower * -0.5, ); - next.leg_br.ori = Quaternion::rotation_y(slow * -0.015+wave_slow_cos * -0.015); + next.leg_br.ori = Quaternion::rotation_y(slow * -0.02); next.leg_br.scale = Vec3::one(); next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2+ slower * -0.2, + skeleton_attr.feet_f.2 + slower * -0.2, ); next.foot_fl.ori = Quaternion::rotation_x(0.0); next.foot_fl.scale = Vec3::one(); @@ -153,7 +146,7 @@ impl Animation for IdleAnimation { next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2+ slower * -0.2, + skeleton_attr.feet_f.2 + slower * -0.2, ); next.foot_fr.ori = Quaternion::rotation_x(0.0); next.foot_fr.scale = Vec3::one(); @@ -161,7 +154,7 @@ impl Animation for IdleAnimation { next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2+ slower * -0.2, + skeleton_attr.feet_b.2 + slower * -0.2, ); next.foot_bl.ori = Quaternion::rotation_x(0.0); next.foot_bl.scale = Vec3::one(); @@ -169,7 +162,7 @@ impl Animation for IdleAnimation { next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2+ slower * -0.2, + skeleton_attr.feet_b.2 + slower * -0.2, ); next.foot_br.ori = Quaternion::rotation_x(0.0); next.foot_br.scale = Vec3::one(); diff --git a/voxygen/src/anim/src/quadruped_medium/jump.rs b/voxygen/src/anim/src/quadruped_medium/jump.rs index e0f7f9e1d1..ddf7c7516b 100644 --- a/voxygen/src/anim/src/quadruped_medium/jump.rs +++ b/voxygen/src/anim/src/quadruped_medium/jump.rs @@ -51,8 +51,11 @@ impl Animation for JumpAnimation { * Quaternion::rotation_x(0.2); next.torso_back.scale = Vec3::one() / 11.0; - next.torso_front.offset = - Vec3::new(0.0, skeleton_attr.torso_front.0, skeleton_attr.torso_front.1) / 11.0; + next.torso_front.offset = Vec3::new( + 0.0, + skeleton_attr.torso_front.0, + skeleton_attr.torso_front.1, + ) / 11.0; next.torso_front.ori = Quaternion::rotation_x(-0.4); next.torso_front.scale = Vec3::one() / 10.98; diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index e47f73426f..dd0215d048 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -46,7 +46,7 @@ impl Skeleton for QuadrupedMediumSkeleton { let head_upper_mat = self.head_upper.compute_base_matrix(); let head_lower_mat = self.head_lower.compute_base_matrix(); let torso_front_mat = self.torso_front.compute_base_matrix(); - let torso_back_mat = self.torso_back.compute_base_matrix(); + let torso_back_mat = self.torso_back.compute_base_matrix(); let leg_fl_mat = self.leg_fl.compute_base_matrix(); let leg_fr_mat = self.leg_fr.compute_base_matrix(); let leg_bl_mat = self.leg_bl.compute_base_matrix(); @@ -56,19 +56,40 @@ impl Skeleton for QuadrupedMediumSkeleton { [ FigureBoneData::new(torso_front_mat * head_lower_mat * head_upper_mat), FigureBoneData::new(torso_front_mat * head_lower_mat), - FigureBoneData::new(torso_front_mat *head_lower_mat * head_upper_mat * self.jaw.compute_base_matrix()), - FigureBoneData::new(torso_front_mat * torso_back_mat * self.tail.compute_base_matrix()), + FigureBoneData::new( + torso_front_mat + * head_lower_mat + * head_upper_mat + * self.jaw.compute_base_matrix(), + ), + FigureBoneData::new( + torso_front_mat * torso_back_mat * self.tail.compute_base_matrix(), + ), FigureBoneData::new(torso_front_mat), FigureBoneData::new(torso_front_mat * torso_back_mat), - FigureBoneData::new(torso_front_mat *head_lower_mat*head_upper_mat * ears_mat), - FigureBoneData::new(torso_front_mat *leg_fl_mat), - FigureBoneData::new(torso_front_mat *leg_fr_mat), - FigureBoneData::new(torso_front_mat *torso_back_mat *leg_bl_mat), - FigureBoneData::new(torso_front_mat *torso_back_mat *leg_br_mat), - FigureBoneData::new(torso_front_mat *leg_fl_mat * self.foot_fl.compute_base_matrix()), - FigureBoneData::new(torso_front_mat *leg_fr_mat * self.foot_fr.compute_base_matrix()), - FigureBoneData::new(torso_front_mat *torso_back_mat *leg_bl_mat * self.foot_bl.compute_base_matrix()), - FigureBoneData::new(torso_front_mat *torso_back_mat *leg_br_mat * self.foot_br.compute_base_matrix()), + FigureBoneData::new(torso_front_mat * head_lower_mat * head_upper_mat * ears_mat), + FigureBoneData::new(torso_front_mat * leg_fl_mat), + FigureBoneData::new(torso_front_mat * leg_fr_mat), + FigureBoneData::new(torso_front_mat * torso_back_mat * leg_bl_mat), + FigureBoneData::new(torso_front_mat * torso_back_mat * leg_br_mat), + FigureBoneData::new( + torso_front_mat * leg_fl_mat * self.foot_fl.compute_base_matrix(), + ), + FigureBoneData::new( + torso_front_mat * leg_fr_mat * self.foot_fr.compute_base_matrix(), + ), + FigureBoneData::new( + torso_front_mat + * torso_back_mat + * leg_bl_mat + * self.foot_bl.compute_base_matrix(), + ), + FigureBoneData::new( + torso_front_mat + * torso_back_mat + * leg_br_mat + * self.foot_br.compute_base_matrix(), + ), FigureBoneData::default(), ], Vec3::default(), @@ -177,12 +198,12 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { tail: match (body.species, body.body_type) { (Grolgar, _) => (-11.5, -0.5), (Saber, _) => (-11.0, 1.0), - (Tuskram, _) => (-10.0, 2.0), + (Tuskram, _) => (-9.0, 2.0), (Lion, _) => (-11.0, 1.0), (Tarasque, _) => (-11.0, 0.0), (Tiger, _) => (-12.5, -7.0), (Wolf, _) => (-11.0, 0.0), - (Frostfang, _) => (-10.0, -3.5), + (Frostfang, _) => (-7.0, -3.5), (Mouflon, _) => (-12.0, 1.5), }, torso_front: match (body.species, body.body_type) { @@ -241,26 +262,26 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Mouflon, _) => (3.5, -5.0, -4.5), }, feet_f: match (body.species, body.body_type) { - (Grolgar, _) => (0.0, -2.0, -4.0), - (Saber, _) => (1.0, 3.0, -1.0), - (Tuskram, _) => (0.5, 2.0, -5.0), - (Lion, _) => (0.0, 2.0, -4.5), + (Grolgar, _) => (0.0, -3.0, -3.0), + (Saber, _) => (1.0, 0.0, -1.0), + (Tuskram, _) => (0.5, 0.5, -5.0), + (Lion, _) => (0.0, 0.0, -1.5), (Tarasque, _) => (1.0, 0.0, -3.0), - (Tiger, _) => (1.0, 0.0, -5.0), - (Wolf, _) => (0.5, 0.5, -3.0), - (Frostfang, _) => (0.5, 2.5, -3.5), - (Mouflon, _) => (-0.5, 0.5, -1.5), + (Tiger, _) => (0.5, 0.0, -5.0), + (Wolf, _) => (0.5, 1.5, -3.5), + (Frostfang, _) => (0.5, 1.5, -3.5), + (Mouflon, _) => (-0.5, -0.5, -1.5), }, feet_b: match (body.species, body.body_type) { (Grolgar, _) => (0.0, 0.0, -5.0), - (Saber, _) => (1.0, 0.0, 0.0), + (Saber, _) => (1.0, -2.0, 0.0), (Tuskram, _) => (0.5, 0.0, -4.0), (Lion, _) => (0.5, 0.5, -4.0), (Tarasque, _) => (1.5, -1.0, -2.5), (Tiger, _) => (1.0, 0.5, -4.0), - (Wolf, _) => (0.0, -0.5, -2.5), - (Frostfang, _) => (0.0, -0.5, -3.5), - (Mouflon, _) => (-1.0, -0.5, -2.5), + (Wolf, _) => (0.0, -1.5, -3.0), + (Frostfang, _) => (0.0, -1.5, -3.5), + (Mouflon, _) => (-1.0, -1.5, -2.5), }, } } diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index 1eb1c13dbb..e7a062a32e 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -24,334 +24,298 @@ impl Animation for RunAnimation { *rate = 1.0; let lab = 0.6; - - + let speedmult = if speed > 8.0 { 1.0 } else { 0.8 }; let short = (((1.0) / (0.72 - + 0.28 * ((anim_time as f32 *16.0* lab as f32+ PI * 1.0).sin()).powf(2.0 as f32))) - .sqrt()) - * ((anim_time as f32 *16.0* lab as f32+ PI * 1.0).sin()); - - - - - let foothoril = (((1.0) - / (0.2 - + (0.8) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.45).sin()) + + 0.28 + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.0).sin()) .powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.45).sin()); + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.0).sin()); + + let foothoril = (((1.0) + / (0.5 + + (0.5) + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.45).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.45).sin()); let foothorir = (((1.0) / (0.2 + (0.8) - * ((anim_time as f32 * 16.0 * lab as f32 + PI *0.45).sin()) + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.45).sin()) .powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.45).sin()); - let footvertl = (anim_time as f32 * 16.0 * lab as f32+PI*0.0).sin(); - let footvertr = (anim_time as f32 * 16.0 * lab as f32 + PI).sin(); + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.45).sin()); + let footvertl = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.0).sin(); + let footvertr = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI).sin(); let footrotl = (((1.0) / (0.5 + (0.5) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()) + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.4).sin()) .powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()); + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.4).sin()); let footrotr = (((1.0) / (0.5 + (0.5) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()) + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.4).sin()) .powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()); -// + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.4).sin()); + // let foothorilb = (((5.0) / (1.0 + (4.0) - * ((anim_time as f32 * 16.0 * lab as f32 + PI *1.05).sin()) + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.05).sin()) .powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.05).sin()); + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.05).sin()); let foothorirb = (((1.0) / (0.2 + (0.8) - * ((anim_time as f32 * 16.0 * lab as f32 + PI *0.05).sin()) + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.05).sin()) .powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.05).sin()); - let footvertlb = (anim_time as f32 * 16.0 * lab as f32+PI*(-0.4)).sin(); - let footvertrb = (anim_time as f32 * 16.0 * lab as f32 + PI*0.6).sin(); + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.05).sin()); + let footvertlb = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * (-0.4)).sin(); + let footvertrb = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.6).sin(); let footrotlb = (((1.0) / (0.5 + (0.5) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.0).sin()) + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.0).sin()) .powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.0).sin()); + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.0).sin()); let footrotrb = (((1.0) / (0.5 + (0.5) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.0).sin()) + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.0).sin()) .powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.0).sin()); + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.0).sin()); + let shortalt = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.5).sin(); + let vertchest = (anim_time as f32 * lab as f32 * speedmult + PI * 0.3) + .sin() + .max(0.2); + let horichest = (anim_time as f32 * lab as f32 * speedmult + PI * 0.8).sin(); + if speed < 8.0 { + //Trot + next.head_upper.offset = + Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); + next.head_upper.ori = Quaternion::rotation_x(0.0) * Quaternion::rotation_z(0.0); + next.head_upper.scale = Vec3::one(); + next.head_lower.offset = Vec3::new( + 0.0, + skeleton_attr.head_lower.0 + horichest * 0.8, + skeleton_attr.head_lower.1 + vertchest * -0.8, + ); + next.head_lower.ori = Quaternion::rotation_z(0.0); + next.head_lower.scale = Vec3::one() * 1.02; + next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); + next.jaw.ori = Quaternion::rotation_x(0.0); + next.jaw.scale = Vec3::one() * 1.02; - let shortalt = (anim_time as f32 *16.0* lab as f32 + PI * 0.5).sin(); + next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); + next.tail.ori = Quaternion::rotation_x(shortalt * 0.08); + next.tail.scale = Vec3::one(); + next.torso_front.offset = Vec3::new( + 0.0, + skeleton_attr.torso_front.0, + skeleton_attr.torso_front.1 + shortalt * 0.8, + ) / 8.0; + next.torso_front.ori = Quaternion::rotation_x(short * 0.03); + next.torso_front.scale = Vec3::one() / 8.0; + next.torso_back.offset = + Vec3::new(0.0, skeleton_attr.torso_back.0, skeleton_attr.torso_back.1); + next.torso_back.ori = Quaternion::rotation_x(short * -0.03); + next.torso_back.scale = Vec3::one(); + next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); + next.ears.ori = Quaternion::rotation_x(0.0); + next.ears.scale = Vec3::one() * 1.02; + ////left and right functions currently swapped on some bones to change gait + next.leg_fl.offset = Vec3::new( + -skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1 + foothoril * -1.0, + skeleton_attr.leg_f.2 + footvertl * -0.4, + ); + next.leg_fl.ori = Quaternion::rotation_x(footrotl * -0.3); + next.leg_fl.scale = Vec3::one() * 0.99; + next.leg_fr.offset = Vec3::new( + skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1 + foothorir * -1.0, + skeleton_attr.leg_f.2 + footvertr * -0.4, + ); + next.leg_fr.ori = Quaternion::rotation_x(footrotr * -0.3); + next.leg_fr.scale = Vec3::one() * 0.99; + next.leg_bl.offset = Vec3::new( + -skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1 + foothorilb * -1.0, + skeleton_attr.leg_b.2 + footvertlb * -0.4, + ); + next.leg_bl.ori = Quaternion::rotation_x(footrotlb * -0.3); + next.leg_bl.scale = Vec3::one() * 0.99; + next.leg_br.offset = Vec3::new( + skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1 + foothorirb * -1.0, + skeleton_attr.leg_b.2 + footvertrb * -0.4, + ); + next.leg_br.ori = Quaternion::rotation_x(footrotrb * -0.3); + next.leg_br.scale = Vec3::one() * 0.99; + next.foot_fl.offset = Vec3::new( + -skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2 + 1.0 + ((footvertl * -1.0).max(-1.0)), + ); + next.foot_fl.ori = Quaternion::rotation_x(footrotl * -0.3); + next.foot_fl.scale = Vec3::one() * 0.97; - let vertchest = (anim_time as f32 * lab as f32 + PI * 0.3).sin().max(0.2); - let horichest = (anim_time as f32 * lab as f32 + PI * 0.8).sin(); + next.foot_fr.offset = Vec3::new( + skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2 + 1.0 + ((footvertr * -1.0).max(-1.0)), + ); + next.foot_fr.ori = Quaternion::rotation_x(footrotr * -0.3); + next.foot_fr.scale = Vec3::one() * 0.98; -if speed < 8.0{//Trot - next.head_upper.offset = Vec3::new( - 0.0, - skeleton_attr.head_upper.0, - skeleton_attr.head_upper.1, - ); - next.head_upper.ori = - Quaternion::rotation_x(0.0) * Quaternion::rotation_z(0.0); - next.head_upper.scale = Vec3::one(); + next.foot_bl.offset = Vec3::new( + -skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2 + 1.0 + ((footvertlb * -1.0).max(-1.0)), + ); + next.foot_bl.ori = Quaternion::rotation_x(footrotlb * -0.3); + next.foot_bl.scale = Vec3::one() * 0.98; - next.head_lower.offset = Vec3::new( - 0.0, - skeleton_attr.head_lower.0 + horichest * 0.8, - skeleton_attr.head_lower.1 + vertchest * -0.8, - ); - next.head_lower.ori = Quaternion::rotation_z(0.0); - next.head_lower.scale = Vec3::one() * 1.02; + next.foot_br.offset = Vec3::new( + skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2 + 1.0 + ((footvertrb * -1.0).max(-1.0)), + ); + next.foot_br.ori = Quaternion::rotation_x(footrotrb * -0.3); + next.foot_br.scale = Vec3::one() * 0.98; + } else { + //Gallop + next.head_upper.offset = + Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); + next.head_upper.ori = Quaternion::rotation_x(0.0) * Quaternion::rotation_z(0.0); + next.head_upper.scale = Vec3::one(); - next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); - next.jaw.ori = Quaternion::rotation_x(0.0); - next.jaw.scale = Vec3::one() * 1.02; + next.head_lower.offset = Vec3::new( + 0.0, + skeleton_attr.head_lower.0 + horichest * 0.8, + skeleton_attr.head_lower.1 + vertchest * -0.8, + ); + next.head_lower.ori = Quaternion::rotation_z(0.0); + next.head_lower.scale = Vec3::one() * 1.02; - next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); - next.tail.ori = Quaternion::rotation_x(shortalt*0.08); - next.tail.scale = Vec3::one(); + next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); + next.jaw.ori = Quaternion::rotation_x(0.0); + next.jaw.scale = Vec3::one() * 1.02; - next.torso_front.offset = Vec3::new( - 0.0, - skeleton_attr.torso_front.0, - skeleton_attr.torso_front.1+shortalt*0.8, - ) / 8.0; - next.torso_front.ori = Quaternion::rotation_x(short * 0.06); - next.torso_front.scale = Vec3::one() / 8.0; - - next.torso_back.offset = Vec3::new( - 0.0, - skeleton_attr.torso_back.0, - skeleton_attr.torso_back.1, - ); - next.torso_back.ori = Quaternion::rotation_x(short * -0.05); - next.torso_back.scale = Vec3::one(); + next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); + next.tail.ori = Quaternion::rotation_x(shortalt * 0.3); + next.tail.scale = Vec3::one(); - next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); - next.ears.ori = Quaternion::rotation_x(0.0); - next.ears.scale = Vec3::one() * 1.02; + next.torso_front.offset = Vec3::new( + 0.0, + skeleton_attr.torso_front.0, + skeleton_attr.torso_front.1 + shortalt * 2.0, + ) / 8.0; + next.torso_front.ori = Quaternion::rotation_x(short * 0.13); + next.torso_front.scale = Vec3::one() / 8.0; + next.torso_back.offset = + Vec3::new(0.0, skeleton_attr.torso_back.0, skeleton_attr.torso_back.1); + next.torso_back.ori = Quaternion::rotation_x(short * 0.1); + next.torso_back.scale = Vec3::one(); -////left and right functions currently swapped on some bones to change gait - next.leg_fl.offset = Vec3::new( - -skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1 + foothoril * -1.0, - skeleton_attr.leg_f.2 +1.0+ footvertl * -0.06, - ); - next.leg_fl.ori = Quaternion::rotation_x(footrotl * -0.09); - next.leg_fl.scale = Vec3::one()*0.99; + next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); + next.ears.ori = Quaternion::rotation_x(0.0); + next.ears.scale = Vec3::one() * 1.02; + ////left and right functions currently swapped on some bones to change gait + next.leg_fl.offset = Vec3::new( + -skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1 + foothoril * -2.5, + skeleton_attr.leg_f.2 + 1.0 + footvertl * -1.0, + ); + next.leg_fl.ori = Quaternion::rotation_x(footrotl * -0.6); + next.leg_fl.scale = Vec3::one() * 0.99; - next.leg_fr.offset = Vec3::new( - skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1 + foothorir * -1.0, - skeleton_attr.leg_f.2 +1.0+ footvertr * -0.6, - ); - next.leg_fr.ori = Quaternion::rotation_x(footrotr * -0.09); - next.leg_fr.scale = Vec3::one()*0.99; + next.leg_fr.offset = Vec3::new( + skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1 + foothoril * -2.5, + skeleton_attr.leg_f.2 + 1.0 + footvertl * -1.0, + ); + next.leg_fr.ori = Quaternion::rotation_x(footrotl * -0.6); + next.leg_fr.scale = Vec3::one() * 0.99; - next.leg_bl.offset = Vec3::new( - -skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1 + foothorilb * -1.0, - skeleton_attr.leg_b.2 +1.0+ footvertlb * -0.8, + next.leg_bl.offset = Vec3::new( + -skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1 + foothorirb * -2.5, + skeleton_attr.leg_b.2 + 1.0 + footvertrb * -1.2, + ); + next.leg_bl.ori = Quaternion::rotation_x(footrotrb * -0.6); + next.leg_bl.scale = Vec3::one() * 0.99; - ); - next.leg_bl.ori = Quaternion::rotation_x(footrotlb * -0.09); - next.leg_bl.scale = Vec3::one() *0.99; + next.leg_br.offset = Vec3::new( + skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1 + foothorirb * -2.5, + skeleton_attr.leg_b.2 + 1.0 + footvertrb * -1.2, + ); + next.leg_br.ori = Quaternion::rotation_x(footrotrb * -0.6); + next.leg_br.scale = Vec3::one() * 0.99; - next.leg_br.offset = Vec3::new( - skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1 + foothorirb * -1.0, - skeleton_attr.leg_b.2 +1.0+ footvertrb * -0.8, - ); - next.leg_br.ori = Quaternion::rotation_x(footrotrb * -0.09); - next.leg_br.scale = Vec3::one() *0.99; + next.foot_fl.offset = Vec3::new( + -skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2 + 2.0 + ((footvertl * -2.0).max(-1.0)), + ); + next.foot_fl.ori = Quaternion::rotation_x(footrotl * -0.7); + next.foot_fl.scale = Vec3::one() * 0.97; - next.foot_fl.offset = Vec3::new( - -skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2+ ((footvertl * -1.5).max(-1.0)), - ); - next.foot_fl.ori = Quaternion::rotation_x(footrotl * -0.6); - next.foot_fl.scale = Vec3::one()*0.97; - - next.foot_fr.offset = Vec3::new( - skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2+ ((footvertr * -1.5).max(-1.0)), - ); - next.foot_fr.ori = Quaternion::rotation_x(footrotr * -0.6); - next.foot_fr.scale = Vec3::one()*0.98; - - next.foot_bl.offset = Vec3::new( - -skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2+ ((footvertlb * -1.5).max(-1.0)), - ); - next.foot_bl.ori = Quaternion::rotation_x(footrotlb * -0.6); - next.foot_bl.scale = Vec3::one()*0.98; - - next.foot_br.offset = Vec3::new( - skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2 + ((footvertrb * -1.5).max(-1.0)), - ); - next.foot_br.ori = Quaternion::rotation_x(footrotrb * -0.6); - next.foot_br.scale = Vec3::one()*0.98; -} - else {//Gallop - next.head_upper.offset = Vec3::new( - 0.0, - skeleton_attr.head_upper.0, - skeleton_attr.head_upper.1, - ); - next.head_upper.ori = - Quaternion::rotation_x(0.0) * Quaternion::rotation_z(0.0); - next.head_upper.scale = Vec3::one(); - - next.head_lower.offset = Vec3::new( - 0.0, - skeleton_attr.head_lower.0 + horichest * 0.8, - skeleton_attr.head_lower.1 + vertchest * -0.8, - ); - next.head_lower.ori = Quaternion::rotation_z(0.0); - next.head_lower.scale = Vec3::one() * 1.02; - - next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); - next.jaw.ori = Quaternion::rotation_x(0.0); - next.jaw.scale = Vec3::one() * 1.02; - - next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); - next.tail.ori = Quaternion::rotation_x(shortalt*0.3); - next.tail.scale = Vec3::one(); - - next.torso_front.offset = Vec3::new( - 0.0, - skeleton_attr.torso_front.0, - skeleton_attr.torso_front.1+shortalt*2.0, - ) / 8.0; - next.torso_front.ori = Quaternion::rotation_x(short * 0.17); - next.torso_front.scale = Vec3::one() / 8.0; - - next.torso_back.offset = Vec3::new( - 0.0, - skeleton_attr.torso_back.0, - skeleton_attr.torso_back.1, - ); - next.torso_back.ori = Quaternion::rotation_x(short * -0.1); - next.torso_back.scale = Vec3::one(); - - next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); - next.ears.ori = Quaternion::rotation_x(0.0); - next.ears.scale = Vec3::one() * 1.02; - - -////left and right functions currently swapped on some bones to change gait - next.leg_fl.offset = Vec3::new( - -skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1 + foothoril * -2.5, - skeleton_attr.leg_f.2 +1.0+ footvertl * -1.0, - ); - next.leg_fl.ori = Quaternion::rotation_x(footrotl * -0.6); - next.leg_fl.scale = Vec3::one()*0.99; - - - next.leg_fr.offset = Vec3::new( - skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1 + foothoril * -2.5, - skeleton_attr.leg_f.2 +1.0+ footvertl * -1.0, - ); - next.leg_fr.ori = Quaternion::rotation_x(footrotl * -0.6); - next.leg_fr.scale = Vec3::one()*0.99; - - next.leg_bl.offset = Vec3::new( - -skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1 + foothorirb * -2.5, - skeleton_attr.leg_b.2 +1.0+ footvertrb * -1.2, - - ); - next.leg_bl.ori = Quaternion::rotation_x(footrotrb * -0.6); - next.leg_bl.scale = Vec3::one() *0.99; - - next.leg_br.offset = Vec3::new( - skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1 + foothorirb * -2.5, - skeleton_attr.leg_b.2 +1.0+ footvertrb * -1.2, - ); - next.leg_br.ori = Quaternion::rotation_x(footrotrb * -0.6); - next.leg_br.scale = Vec3::one() *0.99; - - next.foot_fl.offset = Vec3::new( - -skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2+ ((footvertl * -3.5).max(-1.0)), - ); - next.foot_fl.ori = Quaternion::rotation_x(footrotl * -0.7); - next.foot_fl.scale = Vec3::one()*0.97; - - next.foot_fr.offset = Vec3::new( - skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2+ ((footvertl * -3.5).max(-1.0)), - ); - next.foot_fr.ori = Quaternion::rotation_x(footrotl * -0.7); - next.foot_fr.scale = Vec3::one()*0.98; - - next.foot_bl.offset = Vec3::new( - -skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2+ ((footvertrb * -3.5).max(-1.0)), - ); - next.foot_bl.ori = Quaternion::rotation_x(footrotrb * -0.7); - next.foot_bl.scale = Vec3::one()*0.98; - - next.foot_br.offset = Vec3::new( - skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2 + ((footvertrb * -3.5).max(-1.0)), - ); - next.foot_br.ori = Quaternion::rotation_x(footrotrb * -0.7); - next.foot_br.scale = Vec3::one()*0.98; + next.foot_fr.offset = Vec3::new( + skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2 + 2.0 + ((footvertl * -2.0).max(-1.0)), + ); + next.foot_fr.ori = Quaternion::rotation_x(footrotl * -0.7); + next.foot_fr.scale = Vec3::one() * 0.98; + next.foot_bl.offset = Vec3::new( + -skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2 + 2.0 + ((footvertrb * -2.0).max(-1.0)), + ); + next.foot_bl.ori = Quaternion::rotation_x(footrotrb * -0.7); + next.foot_bl.scale = Vec3::one() * 0.98; + next.foot_br.offset = Vec3::new( + skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2 + 2.0 + ((footvertrb * -2.0).max(-1.0)), + ); + next.foot_br.ori = Quaternion::rotation_x(footrotrb * -0.7); + next.foot_br.scale = Vec3::one() * 0.98; } next - } - } diff --git a/voxygen/src/scene/figure/load.rs b/voxygen/src/scene/figure/load.rs index 80265a6996..cf1f324a1d 100644 --- a/voxygen/src/scene/figure/load.rs +++ b/voxygen/src/scene/figure/load.rs @@ -16,9 +16,9 @@ use common::{ ItemKind, Lantern, LanternKind, }, object, + quadruped_low::{BodyType as QLBodyType, Species as QLSpecies}, quadruped_medium::{BodyType as QMBodyType, Species as QMSpecies}, quadruped_small::{BodyType as QSBodyType, Species as QSSpecies}, - quadruped_low::{BodyType as QLBodyType, Species as QLSpecies}, Loadout, }, figure::{DynaUnionizer, MatSegment, Material, Segment}, @@ -3316,7 +3316,7 @@ impl QuadrupedLowLateralSpec { } } -/// +/// pub fn mesh_object( obj: object::Body, diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs index afc3ff526c..3d506e93c2 100644 --- a/voxygen/src/scene/figure/mod.rs +++ b/voxygen/src/scene/figure/mod.rs @@ -16,8 +16,9 @@ use anim::{ biped_large::BipedLargeSkeleton, bird_medium::BirdMediumSkeleton, bird_small::BirdSmallSkeleton, character::CharacterSkeleton, critter::CritterSkeleton, dragon::DragonSkeleton, fish_medium::FishMediumSkeleton, fish_small::FishSmallSkeleton, - golem::GolemSkeleton, object::ObjectSkeleton, quadruped_medium::QuadrupedMediumSkeleton, - quadruped_small::QuadrupedSmallSkeleton, quadruped_low::QuadrupedLowSkeleton, Animation, Skeleton, + golem::GolemSkeleton, object::ObjectSkeleton, quadruped_low::QuadrupedLowSkeleton, + quadruped_medium::QuadrupedMediumSkeleton, quadruped_small::QuadrupedSmallSkeleton, Animation, + Skeleton, }; use common::{ comp::{ @@ -1028,9 +1029,7 @@ impl FigureMgr { let state = self .quadruped_low_states .entry(entity) - .or_insert_with(|| { - FigureState::new(renderer, QuadrupedLowSkeleton::new()) - }); + .or_insert_with(|| FigureState::new(renderer, QuadrupedLowSkeleton::new())); let (character, last_character) = match (character, last_character) { (Some(c), Some(l)) => (c, l), @@ -1057,25 +1056,21 @@ impl FigureMgr { ) }, // Running - (true, true, false) => { - anim::quadruped_low::RunAnimation::update_skeleton( - &QuadrupedLowSkeleton::new(), - (vel.0.magnitude(), time), - state.state_time, - &mut state_animation_rate, - skeleton_attr, - ) - }, + (true, true, false) => anim::quadruped_low::RunAnimation::update_skeleton( + &QuadrupedLowSkeleton::new(), + (vel.0.magnitude(), time), + state.state_time, + &mut state_animation_rate, + skeleton_attr, + ), // In air - (false, _, false) => { - anim::quadruped_low::JumpAnimation::update_skeleton( - &QuadrupedLowSkeleton::new(), - (vel.0.magnitude(), time), - state.state_time, - &mut state_animation_rate, - skeleton_attr, - ) - }, + (false, _, false) => anim::quadruped_low::JumpAnimation::update_skeleton( + &QuadrupedLowSkeleton::new(), + (vel.0.magnitude(), time), + state.state_time, + &mut state_animation_rate, + skeleton_attr, + ), // TODO! _ => state.skeleton_mut().clone(), @@ -2175,7 +2170,7 @@ impl FigureMgr { .iter() .filter(|(_, c)| c.visible) .count() - + self + + self .quadruped_low_states .iter() .filter(|(_, c)| c.visible) From c16d491a38f1fb3a97a91736731dc9db91c3c8ae Mon Sep 17 00:00:00 2001 From: jshipsey Date: Sat, 27 Jun 2020 04:37:33 -0400 Subject: [PATCH 29/48] quadlow spawn in world, continued adjustments --- .../quadruped_medium_central_manifest.ron | 4 +-- voxygen/src/anim/src/quadruped_low/mod.rs | 14 +++++----- voxygen/src/anim/src/quadruped_low/run.rs | 18 ++++++------- voxygen/src/anim/src/quadruped_medium/mod.rs | 26 +++++++++---------- voxygen/src/anim/src/quadruped_medium/run.rs | 4 +-- world/src/lib.rs | 3 ++- 6 files changed, 35 insertions(+), 34 deletions(-) diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index 8d6067c089..152f6a89e1 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -481,7 +481,7 @@ ), (Mouflon, Male): ( upper: ( - offset: (-7.5, 0.0, -4.5), + offset: (-7.0, 0.0, -4.5), central: ("npc.mouflon.male.head_upper"), ), lower: ( @@ -511,7 +511,7 @@ ), (Mouflon, Female): ( upper: ( - offset: (-7.5, 0.0, -4.5), + offset: (-7.0, 0.0, -4.5), central: ("npc.mouflon.female.head_upper"), ), lower: ( diff --git a/voxygen/src/anim/src/quadruped_low/mod.rs b/voxygen/src/anim/src/quadruped_low/mod.rs index a01e1f1775..1c8b034eef 100644 --- a/voxygen/src/anim/src/quadruped_low/mod.rs +++ b/voxygen/src/anim/src/quadruped_low/mod.rs @@ -180,21 +180,21 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { }, feet_f: match (body.species, body.body_type) { (Crocodile, _) => (3.5, 6.0, -1.0), - (Alligator, _) => (5.5, 4.25, -1.0), + (Alligator, _) => (4.5, 4.25, -1.0), (Salamander, _) => (5.0, 5.0, -2.0), - (Monitor, _) => (4.0, 5.0, 0.0), + (Monitor, _) => (3.0, 5.0, 0.0), (Asp, _) => (1.5, 4.0, -1.0), - (Tortoise, _) => (5.5, 9.5, -3.0), + (Tortoise, _) => (5.5, 6.5, -3.0), (Rocksnapper, _) => (7.5, 5.0, -8.5), }, feet_b: match (body.species, body.body_type) { (Crocodile, _) => (3.5, -6.0, -1.0), - (Alligator, _) => (5.5, -5.5, -1.0), + (Alligator, _) => (4.5, -5.5, -1.0), (Salamander, _) => (4.0, -6.0, -2.0), - (Monitor, _) => (4.0, -6.0, 0.0), + (Monitor, _) => (3.0, -6.0, 0.0), (Asp, _) => (2.5, -5.5, -1.0), - (Tortoise, _) => (7.0, -9.5, -3.0), - (Rocksnapper, _) => (9.0, -14.0, -9.5), + (Tortoise, _) => (7.0, -11.5, -3.0), + (Rocksnapper, _) => (8.0, -16.0, -9.5), }, } } diff --git a/voxygen/src/anim/src/quadruped_low/run.rs b/voxygen/src/anim/src/quadruped_low/run.rs index 0feebc87e1..df61dbdaa6 100644 --- a/voxygen/src/anim/src/quadruped_low/run.rs +++ b/voxygen/src/anim/src/quadruped_low/run.rs @@ -21,7 +21,7 @@ impl Animation for RunAnimation { ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let lab = 0.7; + let lab = 0.5; let center = (anim_time as f32 * lab as f32 + PI / 2.0).sin(); let centeroffset = (anim_time as f32 * lab as f32 + PI * 1.5).sin(); @@ -136,37 +136,37 @@ impl Animation for RunAnimation { next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1 + foothoril * -1.0, - skeleton_attr.feet_f.2 + ((footvertl * -0.8).max(-0.0)), + skeleton_attr.feet_f.2 + 1.0 + ((footvertl * -0.8).max(-0.0)), ); next.foot_fl.ori = - Quaternion::rotation_x(footrotl * -0.25) * Quaternion::rotation_z(footrotl * 0.35); + Quaternion::rotation_x(footrotl * -0.25) * Quaternion::rotation_z(footrotl * 0.4); next.foot_fl.scale = Vec3::one(); next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1 + foothorir * -1.0, - skeleton_attr.feet_f.2 + ((footvertr * -0.8).max(-0.0)), + skeleton_attr.feet_f.2 + 1.0 + ((footvertr * -0.8).max(-0.0)), ); next.foot_fr.ori = - Quaternion::rotation_x(footrotr * -0.25) * Quaternion::rotation_z(footrotr * -0.35); + Quaternion::rotation_x(footrotr * -0.25) * Quaternion::rotation_z(footrotr * -0.4); next.foot_fr.scale = Vec3::one(); next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1 + foothorilb * -1.0, - skeleton_attr.feet_b.2 + ((footvertlb * -0.6).max(-0.0)), + skeleton_attr.feet_b.2 + 1.0 + ((footvertlb * -0.6).max(-0.0)), ); next.foot_bl.ori = - Quaternion::rotation_x(footrotlb * -0.25) * Quaternion::rotation_z(footrotlb * 0.35); + Quaternion::rotation_x(footrotlb * -0.25) * Quaternion::rotation_z(footrotlb * 0.4); next.foot_bl.scale = Vec3::one(); next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1 + foothorirb * -1.0, - skeleton_attr.feet_b.2 + ((footvertrb * -0.6).max(-0.0)), + skeleton_attr.feet_b.2 + 1.0 + ((footvertrb * -0.6).max(-0.0)), ); next.foot_br.ori = - Quaternion::rotation_x(footrotrb * -0.25) * Quaternion::rotation_z(footrotrb * -0.35); + Quaternion::rotation_x(footrotrb * -0.25) * Quaternion::rotation_z(footrotrb * -0.4); next.foot_br.scale = Vec3::one(); next diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index dd0215d048..2bcfc6ae17 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -179,7 +179,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (1.0, 1.0), (Lion, _) => (0.5, 1.0), (Tarasque, _) => (0.5, -4.0), - (Tiger, _) => (-5.0, -6.0), + (Tiger, _) => (0.0, 0.0), (Wolf, _) => (-4.5, 2.0), (Frostfang, _) => (2.0, 1.5), (Mouflon, _) => (-1.0, 0.5), @@ -212,20 +212,20 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (10.0, 15.5), (Lion, _) => (10.0, 13.0), (Tarasque, _) => (11.5, 18.5), - (Tiger, _) => (10.0, 12.0), - (Wolf, _) => (12.0, 13.0), + (Tiger, _) => (10.0, 14.0), + (Wolf, _) => (12.0, 14.0), (Frostfang, _) => (9.0, 11.5), (Mouflon, _) => (11.0, 13.5), }, torso_back: match (body.species, body.body_type) { (Grolgar, _) => (-14.0, 1.5), (Saber, _) => (-13.5, 0.0), - (Tuskram, _) => (-12.0, -2.0), - (Lion, _) => (-13.0, -1.0), + (Tuskram, _) => (-13.0, -2.0), + (Lion, _) => (-13.0, -0.5), (Tarasque, _) => (-14.0, -1.0), (Tiger, _) => (-13.0, 0.0), (Wolf, _) => (-12.5, 1.0), - (Frostfang, _) => (-9.0, 0.0), + (Frostfang, _) => (-10.5, 0.0), (Mouflon, _) => (-8.5, -0.5), }, ears: match (body.species, body.body_type) { @@ -243,9 +243,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Grolgar, _) => (-7.0, -5.0, -2.0), (Saber, _) => (7.0, -7.5, -3.5), (Tuskram, _) => (6.0, -6.5, -5.5), - (Lion, _) => (7.5, -4.5, -6.0), + (Lion, _) => (6.5, -9.0, -6.0), (Tarasque, _) => (7.0, -8.0, -6.0), - (Tiger, _) => (7.0, -2.0, -1.0), + (Tiger, _) => (7.0, -5.0, -3.0), (Wolf, _) => (4.5, -6.5, -1.0), (Frostfang, _) => (5.5, -5.5, -2.0), (Mouflon, _) => (5.0, -5.5, -5.0), @@ -254,11 +254,11 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Grolgar, _) => (6.0, -6.5, -3.5), (Saber, _) => (6.0, -7.0, -4.0), (Tuskram, _) => (5.0, -5.5, -3.5), - (Lion, _) => (6.0, -6.0, -2.0), + (Lion, _) => (6.0, -6.0, -2.5), (Tarasque, _) => (6.0, -6.5, -6.5), - (Tiger, _) => (7.0, -8.0, -1.0), + (Tiger, _) => (7.0, -8.0, -3.0), (Wolf, _) => (5.0, -6.5, -2.5), - (Frostfang, _) => (3.5, -6.5, -2.0), + (Frostfang, _) => (3.5, -4.5, -2.0), (Mouflon, _) => (3.5, -5.0, -4.5), }, feet_f: match (body.species, body.body_type) { @@ -268,7 +268,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Lion, _) => (0.0, 0.0, -1.5), (Tarasque, _) => (1.0, 0.0, -3.0), (Tiger, _) => (0.5, 0.0, -5.0), - (Wolf, _) => (0.5, 1.5, -3.5), + (Wolf, _) => (0.5, -1.0, -3.5), (Frostfang, _) => (0.5, 1.5, -3.5), (Mouflon, _) => (-0.5, -0.5, -1.5), }, @@ -279,7 +279,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Lion, _) => (0.5, 0.5, -4.0), (Tarasque, _) => (1.5, -1.0, -2.5), (Tiger, _) => (1.0, 0.5, -4.0), - (Wolf, _) => (0.0, -1.5, -3.0), + (Wolf, _) => (0.0, -2.0, -3.0), (Frostfang, _) => (0.0, -1.5, -3.5), (Mouflon, _) => (-1.0, -1.5, -2.5), }, diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index e7a062a32e..efd1e62f8a 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -116,7 +116,7 @@ impl Animation for RunAnimation { next.head_lower.offset = Vec3::new( 0.0, - skeleton_attr.head_lower.0 + horichest * 0.8, + skeleton_attr.head_lower.0 + horichest * 0.4, skeleton_attr.head_lower.1 + vertchest * -0.8, ); next.head_lower.ori = Quaternion::rotation_z(0.0); @@ -220,7 +220,7 @@ impl Animation for RunAnimation { next.head_lower.offset = Vec3::new( 0.0, - skeleton_attr.head_lower.0 + horichest * 0.8, + skeleton_attr.head_lower.0 + horichest * 0.4, skeleton_attr.head_lower.1 + vertchest * -0.8, ); next.head_lower.ori = Quaternion::rotation_z(0.0); diff --git a/world/src/lib.rs b/world/src/lib.rs index dc94f436b8..f8740db902 100644 --- a/world/src/lib.rs +++ b/world/src/lib.rs @@ -22,7 +22,7 @@ use crate::{ util::{Grid, Sampler}, }; use common::{ - comp::{self, bird_medium, critter, quadruped_medium, quadruped_small}, + comp::{self, bird_medium, critter, quadruped_low, quadruped_medium, quadruped_small}, generation::{ChunkSupplement, EntityInfo}, terrain::{Block, BlockKind, TerrainChunk, TerrainChunkMeta, TerrainChunkSize}, vol::{ReadVol, RectVolSize, Vox, WriteVol}, @@ -201,6 +201,7 @@ impl World { 0 => comp::Body::QuadrupedMedium(quadruped_medium::Body::random()), 1 => comp::Body::BirdMedium(bird_medium::Body::random()), 2 => comp::Body::Critter(critter::Body::random()), + 3 => comp::Body::QuadrupedLow(quadruped_low::Body::random()), _ => comp::Body::QuadrupedSmall(quadruped_small::Body::random()), }) .with_automatic_name(); From 29181be2684e7a7549cba81b9da939b8e9249ad7 Mon Sep 17 00:00:00 2001 From: jshipsey Date: Sat, 27 Jun 2020 16:29:01 -0400 Subject: [PATCH 30/48] pangolin and special pangolin variable --- assets/common/npc_names.json | 4 ++ .../voxel/npc/pangolin/female/chest.vox | Bin 0 -> 5760 bytes .../voxel/npc/pangolin/female/foot_bl.vox | Bin 0 -> 1304 bytes .../voxel/npc/pangolin/female/foot_br.vox | Bin 0 -> 1304 bytes .../voxel/npc/pangolin/female/foot_fl.vox | Bin 0 -> 1252 bytes .../voxel/npc/pangolin/female/foot_fr.vox | Bin 0 -> 1252 bytes .../voxel/npc/pangolin/female/head_upper.vox | Bin 0 -> 1468 bytes .../voxel/npc/pangolin/female/tail_front.vox | Bin 0 -> 1776 bytes .../voxel/npc/pangolin/female/tail_rear.vox | Bin 0 -> 1620 bytes .../voxygen/voxel/npc/pangolin/male/chest.vox | Bin 0 -> 5760 bytes .../voxel/npc/pangolin/male/foot_bl.vox | Bin 0 -> 1304 bytes .../voxel/npc/pangolin/male/foot_br.vox | Bin 0 -> 1304 bytes .../voxel/npc/pangolin/male/foot_fl.vox | Bin 0 -> 1252 bytes .../voxel/npc/pangolin/male/foot_fr.vox | Bin 0 -> 1252 bytes .../voxel/npc/pangolin/male/head_upper.vox | Bin 0 -> 1468 bytes .../voxel/npc/pangolin/male/tail_front.vox | Bin 0 -> 1776 bytes .../voxel/npc/pangolin/male/tail_rear.vox | Bin 0 -> 1620 bytes .../voxel/quadruped_low_central_manifest.ron | 56 +++++++++++++++++- .../voxel/quadruped_low_lateral_manifest.ron | 36 +++++++++++ common/src/comp/body/quadruped_low.rs | 6 +- voxygen/src/anim/src/quadruped_low/mod.rs | 14 +++++ voxygen/src/anim/src/quadruped_low/run.rs | 33 +++++++---- 22 files changed, 133 insertions(+), 16 deletions(-) create mode 100644 assets/voxygen/voxel/npc/pangolin/female/chest.vox create mode 100644 assets/voxygen/voxel/npc/pangolin/female/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/pangolin/female/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/pangolin/female/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/pangolin/female/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/pangolin/female/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/pangolin/female/tail_front.vox create mode 100644 assets/voxygen/voxel/npc/pangolin/female/tail_rear.vox create mode 100644 assets/voxygen/voxel/npc/pangolin/male/chest.vox create mode 100644 assets/voxygen/voxel/npc/pangolin/male/foot_bl.vox create mode 100644 assets/voxygen/voxel/npc/pangolin/male/foot_br.vox create mode 100644 assets/voxygen/voxel/npc/pangolin/male/foot_fl.vox create mode 100644 assets/voxygen/voxel/npc/pangolin/male/foot_fr.vox create mode 100644 assets/voxygen/voxel/npc/pangolin/male/head_upper.vox create mode 100644 assets/voxygen/voxel/npc/pangolin/male/tail_front.vox create mode 100644 assets/voxygen/voxel/npc/pangolin/male/tail_rear.vox diff --git a/assets/common/npc_names.json b/assets/common/npc_names.json index 5c59168cb5..fe241ac5f3 100644 --- a/assets/common/npc_names.json +++ b/assets/common/npc_names.json @@ -601,6 +601,10 @@ "rocksnapper": { "keyword": "rocksnapper", "generic": "Rock Snapper" + }, + "pangolin": { + "keyword": "pangolin", + "generic": "Pangolin" } } } diff --git a/assets/voxygen/voxel/npc/pangolin/female/chest.vox b/assets/voxygen/voxel/npc/pangolin/female/chest.vox new file mode 100644 index 0000000000000000000000000000000000000000..87776d111f150c9ac1b35ff710832d94e7272a05 GIT binary patch literal 5760 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 QGHu#4x%lFXMf3mv0ohA(<^TWy literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/pangolin/female/foot_bl.vox b/assets/voxygen/voxel/npc/pangolin/female/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..404e6b168b62be4aad8fa42181ffa0723d4359f7 GIT binary patch literal 1304 zcmW-he@xVM7{@=~?;XviOa}sYzo(Y45s!_{TRbv;D6^&$7u`5Eg zDT=mSs9L+CdX+1RSGkyhDt#ff(8{_hwMP0f*GOO0+Ei65&nnW>*cC78*H6u?wxJ7OE&0(o+;6=L@?kJyjKYMHL2BBcUpKMY1AURTQaJnX58agB4X{ zP!&zEDkK!GUKLuYy@J=qo1$g!{{tDfyFJ{qzfWs$5`SI3%J0XASRWF`AMSnz6LWb` z>*89DgYQx*`S z3IEsT6Rz{4Al|^O6DI!r!VKfH_;q9vlcx&VTkVghXFI#zt6+D%nd-6#j=UdAMbRRf zYJw@r4&dR{WS-ti=GpypZe4Y8>adBa>nrIwl+MMmNGfbPI^1dOXwfm?*+Oyga#pYL zC$}V!l=KzsZnxv|tfu|cMg}JjvEG)&)+3QLjao^{4#!laBi#{AyQhO~ZFTrGM38^7 zfe=d=zV&i1-wt8hQH8E@HLK)K7j-yjI<^n7yMh;s6IfW3%3Qhk)T#+)<(gTRW1(hjoKSluJ$HV@={|sU|6v*?ZlFJQfjJ2#Ua}O+p2yLbRkJuF zn+46iSSmJ=S=U0=+1o5B+>Ej9Jb`%*M9EI-hwhNxJ4ImMU1raFnYoLjnDwd-k$0Ne z1_xVR*KutA7{3Macn3AICUqaLFEF#G;W8W7AK;*Cj28PvY{?(e<{Ts=JeRX=U(;22 z7N==1VN0V)^3BH@R7Z9|DeveT$V|?}(=bBhk`OZeBPj?^qpH+F$y@8F49sOTsFmKt zS}cK~d>__AQD_9u|M^Y6(r0}3`7rHW-PF`?Wn*168_G72k)1(mY65Fx!U+vqjxorO n>FH^vrluGf8KJ+wpXTOfoK7cZvzge~SbTkb@%Hv+<^%W-H{5;T literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/pangolin/female/foot_br.vox b/assets/voxygen/voxel/npc/pangolin/female/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..3c55b6196482e58e41f7410da3c6f3cbd1b921af GIT binary patch literal 1304 zcmW-heN2^A9LLY|+)J}*Q`Y*U;mk-`As5|+3wq`C0`ejVc)geRcfG{Da5KbRL|CGN zhzXZLSJW21gaYam0~II@q_HrYIX82OrnRNBNLyv4>(im%_I zuFCa7BVB0ZIf_HoiYiqVWvXO~BINnPAtV#3Fes|LnnoCesu&cF2v$@jNGMXO8lkxWX=xYi)wT5>PL+IUm6tn+^$<962o_Z;ujVo2hz%UAjR_z>$u!uZ3}$6#U( z4{F?8%XaczN(KMky~js2HC&sQOqapP6`we!dwaQ5YNIhel73G+k7`_ekQ7I6Ng-FF zOq^J0$lWPq~#dm3chQpU*GVNlaFo z`6M?KYh)llv^i1w-JCjXV(R)zx(}suaV(N@yN-5G8atYG^bc&IsAxH> z*Z7lD97sy~3U;?Sa1X4e?bJpFCl9gSp2^lDku;9lNXiPwRH!4}8BN z?_@n8)-ZhQWM94=!oH&tUBzlv$(}B1chY!lA7XboFBT=RurQUmvhS&t<%m8vWoJ&} z7Z;9g_&k2Q8i>lVuq@k3_1HL}jtaW({D{kQ0Neh<)KA8C#bZF z#pWy)H1%LD-$X`jGnr>^v!q}%#@6!$<~k9@JEt2#vP zX=VpI+3LQIbMwdeEr`ck-@uyGeZ0QF!k+reY+QeUgYGe!9T%}De@Lrq5Oa7AXIsCf zv*Ii+(_X@sMw8^5hfQBgRzL~w1l5y~oWVf-2$4%d$ncLOKRk`f5+}uPt)n6^hf#eC zJ&83~14H>fteL{l2%i7*oBT?j@!99Yv~_k-UAL8uwN-2=-GDjEOloQZYh%I*4O@;; p@5l7?G*eSkjEs!X*Vji=Qxh(i3yZ}5c0oZDlw4Mjgla)hIYmLG^htJ6B|1fw(j&@t$(M<;lKJqni=t8| zDw!;3MOh4!WKk!{QkW!3I!W}otd&GrCkYCoN^u3zPb&$2+I8{fXhHdlPbj+GJ;Xid zK3c+(`1{H={x~th2ECC#y#ov<=JBAWjqABCzE7>>zq|MNsHTSN3sUF~GjKH^j@kZx zE|=SAj5jgp?ch<3n-7xW=r1egYLuCis}0!Qb&L0^THvsDE=E?mg3o+PF{nS7ETj@1;(kL@m6bB#RiZ=^cS#JFAQJ7}Y`rjlc2 zdVcOKrYkA7^&f&MQB}|_#Vt;io zL%loL{eA^|>MT^3M{;yuI2FZ9X!L|pniImqYbiXvmBO?88Qi+o#_1zwW^Syew>}*yuIJA|Ll9eQ{4JNNNl+=t>>}hw>Hk3^J=}inz_prf{&9Iu&06- zOA=UIoW^`*?rBvO2m@`{&z>SEE&|)=1%h@r5S3?PMXnXk#3bR)N_y}7gxh-v+rcB$ zPkoE__(kR=n0d)sqP%$mZFx0IGjmwf)Q7cVGg-CGWS_guvZ5^*S}zcq??NcuMcv39 zGWuo+?Z3<11urvyX%ur_RU_n|VXn@_wzeC%wtP&`qImo@4XjN&!0U@F?5)4TrVWQU z+%`e8^Ae7f4{3D|lNpi6xz?}gsyv6=ydUH8Xp#a8uxV<^2`S@UZ9Q2jSq#;WVOpjq zE7(L~L^@SvE=u2CPi1Hx7PuEd}TVs>_xnVA{J#>N;J7@(=C3Afvg#bO~gHkQD^K>Ypv H@$LWrpX+&c literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/pangolin/female/foot_fr.vox b/assets/voxygen/voxel/npc/pangolin/female/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..4b44a016c46cedb59c947d7cf564848a82a545cf GIT binary patch literal 1252 zcmWlYe@xVM7{|Zg??JO^Q`Y*U;mk;>kUJfBfSv~j2gt8OK)mDkZ#}v@xD0WJ2uoBD zQQ;VLqP9Q{1=J}9Do`3oV_`OPZRQe9YfER5w#rJ^s}Jw(wdeEf`8?0(`Rv(aP0d>D zl_V)8I&rNq(sdt6%1F$Kn>XtSsRX`)7X(?^If>oE&gxBpqLLkoQ?Y9C55hwH$_Y0FSA1E zcGn>Hocm}AP2%q>*ZAYaFdM=Q{ORpyC^44@H6E_#xcEM$g8%N`7 zbnIj(R>yEt9Zzb@Xfo@0u;LYNuD39hZ>Aw3jAI4ye6?OrWkLu~^Ooa?dW%D8IwneD zI8$ignb$?PEuG$SD`zY7d0eoNU#pXts?Ok(yl|{W4L`QIXw5P3xUZ3_R3l?{k$2EW zM@6W)s|(Pb%)`tOyqvYY9_aSkxRsH%5FVV5=jphKpw|`>p$?=VUdOGICjR=u0uyuiZFC7! zrwiF%6~tiA4tBp^&Yn68Rb`PJ-4{-I(GnV~Ln+A)=HWFnPj8udc0Zk4*F2m)Vq*Hn zYI?fUxioI1+@Yr3o5s#&H3NfNDK1_~^4cJBOEjdUuVPP|6VG5WZKpReG}X-pM;6QsYp$_E1I^!cDA?H;$I(0{;7JxtOf$=#9Y1`#<8;!bwx63#7vj8yJ$Rq z0BKJ-FBT`TxG0tRV(zJx}O9A7#D$U!e?Lu4O}O1|EEWr~v9SaM M1mNfA$L#+951$`-bN~PV literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/pangolin/female/head_upper.vox b/assets/voxygen/voxel/npc/pangolin/female/head_upper.vox new file mode 100644 index 0000000000000000000000000000000000000000..b267753ce12bf70a6d709771ea3f5219e4bfccfb GIT binary patch literal 1468 zcmXYxeN2^Q7{;IHd0$Yc%~;J}L`xrGQ$E5XO<|S38hxb2@M@;8 zC||E9ZPE}nIZW6Ltr*7`ZIMmD1ut@%F?V=|+m-|)CT+4Cu{p>RSy>pk3 zs;ap5aw_e%2(FAtV5qZ`^F>bT6Jt2hx{Zfb9zIA(ptCTaE3tMCPmkcnKp)LXv8oh+t<+(Z>6`PhR4-KG^9pwf6A-enCGA;FO|BaF!nD>}-O51042~_1iPfcbJm+I1KTO7#UgR7{^4dr?JY&g4~2b%(U zu>T!SRL0X<7{cYMAZA#{@XMJ-DjkzJ?g^u{Jehmjr*mmdFuUDv;&x2tVfTC7=-tX% zX9TCVI{38R!v?2?3ylGAVhrE31u%FZm@nHb{Cz%wTW3~rwk4GNrxJPEZzu5eu|x$2 zuqe^W&BJz{eBpqB;r!M&fy+l1v!x=C?gMMt@O~*9YaCP*MYC^nIHma$sIRn9kR8N> ztEoJ_naZ7p?7WnwYr%+x#~5jK zv%2{@?v)=CFfI|l&^qR%?cj}Z4mQ~8L-vE&@C)DLO$^pF{q%gLs%X)8O4 z$G(Ng$#JCk=iv;kCOfE*cP+KdPn}P9Z67g{!k8Zz!=k8k$_w2TygiSykX$Z=Zlxo+ zimZ@ueu!)&KRlY}|NO4M(r0}3`B_@p+NrEr&GPCBmK7}{Gdq*Cv?S)vh$1|4DiNUp n3=Iu2I5s$K&tskDs3(-ao*9ah8pl literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/pangolin/female/tail_front.vox b/assets/voxygen/voxel/npc/pangolin/female/tail_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..b0bde66c1ae67e30fcc38b100a5698b809b74103 GIT binary patch literal 1776 zcmW+$eN2^A96s+k=Y3yXwQ{XLn$3!o6?)OZ1r$N>3i2U{gcs#Y5cJZ$FWii17ZH}I zAfgFOBD5BkX+kH5QW(#8Fz*Qu1Q1$VG=8fOR^72I$T49WlO(F*tX%&G$`Bo=}7&CzTPn&v+#_t}X_|_; zkq__FSBkk3CUdk1lfK3KrluuK)@Tu?MN8PM(_$}-FvnUWSfkd;AHg~!SWiT_4(b}F z3>eyQ4C+bh*o>&!5j0EaPiDIy0g;o^ujqfJ3k3t zPXcx=nu}k0H(?~*jnR%4{L);5j@%?%pM4)LF7slfJQr2LVZ>&Zk5eK zAnj4?Uh2k~s)aaQk&N4YLG1Ar;6QB=j?|aq=amoO$Hp9-Yb?Z@Wr-+CjlnlPL3EWQ z!b_`s%asb?-c!-QdED!AB7E&cgS@PvPR| z4s7%#;jJBByfYBO7GE4rc18h5r{L56C`{~g;luto{BZN!#mYq7P(i-wx{cy)UsYAdIq zy)hnD#WQi^d@gQX%Ej%k3vlUtHx9kx!Nh0tuy0QR-aD0w+JFl?`<7x;rwd1i*J0JF zIas_T8l_b+$SatOtvwF9hZm#g&{~X~+k@4C6hX5X*+{x-~R%{)>=$jm4$~Y^Km!lo?l-J zG1LwJk%NfJNP%zcZA5KpLt3d9vrCH5c^_A~ z=RE{+UqV-C1cfQ3IM($E`s!{;osod$ z(WzLOvJ~~zK~z1q40SQ3I2pSG2eO+`6qAUrk~>kEI3NG~{VRW^xAE@#W9aE0Kx4~# ztZi<FMc+ OjEuzO$&(TO1NaX?v$1pl literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/pangolin/female/tail_rear.vox b/assets/voxygen/voxel/npc/pangolin/female/tail_rear.vox new file mode 100644 index 0000000000000000000000000000000000000000..bd583c11cbfbd9d7b0b0d3b2b2251d35ea65d295 GIT binary patch literal 1620 zcmW+$drVVT7{BM-+wy3kkY#@?80VNH8&Wj11+6>_$U_hiTi$OiYYUx2Oc5ay5kyoT zfmPIH_!tVPQ5>kirUO~Xa4ya)ab}{^Et$rR>9Wmjn*H|Oo#e~;&OP7n@tt$;wPfTj zaSMWw9+$F?CLvZS2-zw5iE4R4!-K+)LZrye%TMv+l+b9V;41DAHB2Y^aEIi>blivA zL>1FXzJg9tb30cvy`*Lare-$o%k-j}+azCR;2J^CX(Ws@$1H4#GpcTFK)i_=ej-Pr<(U={A*_KT7l?3DdiEU^p z2*Zp1bYNl^9_)9j4lYfRO-v-4}%U0WH4h)8X$ciMVrV8z#EL z@bE$so=uw&{OTe^X@gLlq{r=3Cj9xi8JO|JuaiqLccujUYlAU5uoJuAtHPc}GiocN zaco}%s!Erlwa$R@ybwIPo`z?))A0O37H(hf!kMEc%->v%fg@SCJRO57yB0m}Of9q1Zei|#X@<4bCHU z=pIylFG2H0EIeP)LMS{7mEMW%T{q#}`VoQ_C&53g1?w^n;I+kO>}|S=%^MHlaMv{2 z9hYHG`v9G;F=R&-;C$y-=&L>tmuWvDm&YMBun5+$2IPfQ;2m8Pa?)}z+BAunW#PyP zjzMu$CTc32D1U1MszVDf71n{llzLb~Bk+A>J4z#>@#3G~=qr7WPd}SLcV9p18n!=P@}siQ(a4w6(Rt<#NGnHX|V+0fB*m L@b~wJ{0I0Cssf*# literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/pangolin/male/chest.vox b/assets/voxygen/voxel/npc/pangolin/male/chest.vox new file mode 100644 index 0000000000000000000000000000000000000000..87776d111f150c9ac1b35ff710832d94e7272a05 GIT binary patch literal 5760 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 QGHu#4x%lFXMf3mv0ohA(<^TWy literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/pangolin/male/foot_bl.vox b/assets/voxygen/voxel/npc/pangolin/male/foot_bl.vox new file mode 100644 index 0000000000000000000000000000000000000000..404e6b168b62be4aad8fa42181ffa0723d4359f7 GIT binary patch literal 1304 zcmW-he@xVM7{@=~?;XviOa}sYzo(Y45s!_{TRbv;D6^&$7u`5Eg zDT=mSs9L+CdX+1RSGkyhDt#ff(8{_hwMP0f*GOO0+Ei65&nnW>*cC78*H6u?wxJ7OE&0(o+;6=L@?kJyjKYMHL2BBcUpKMY1AURTQaJnX58agB4X{ zP!&zEDkK!GUKLuYy@J=qo1$g!{{tDfyFJ{qzfWs$5`SI3%J0XASRWF`AMSnz6LWb` z>*89DgYQx*`S z3IEsT6Rz{4Al|^O6DI!r!VKfH_;q9vlcx&VTkVghXFI#zt6+D%nd-6#j=UdAMbRRf zYJw@r4&dR{WS-ti=GpypZe4Y8>adBa>nrIwl+MMmNGfbPI^1dOXwfm?*+Oyga#pYL zC$}V!l=KzsZnxv|tfu|cMg}JjvEG)&)+3QLjao^{4#!laBi#{AyQhO~ZFTrGM38^7 zfe=d=zV&i1-wt8hQH8E@HLK)K7j-yjI<^n7yMh;s6IfW3%3Qhk)T#+)<(gTRW1(hjoKSluJ$HV@={|sU|6v*?ZlFJQfjJ2#Ua}O+p2yLbRkJuF zn+46iSSmJ=S=U0=+1o5B+>Ej9Jb`%*M9EI-hwhNxJ4ImMU1raFnYoLjnDwd-k$0Ne z1_xVR*KutA7{3Macn3AICUqaLFEF#G;W8W7AK;*Cj28PvY{?(e<{Ts=JeRX=U(;22 z7N==1VN0V)^3BH@R7Z9|DeveT$V|?}(=bBhk`OZeBPj?^qpH+F$y@8F49sOTsFmKt zS}cK~d>__AQD_9u|M^Y6(r0}3`7rHW-PF`?Wn*168_G72k)1(mY65Fx!U+vqjxorO n>FH^vrluGf8KJ+wpXTOfoK7cZvzge~SbTkb@%Hv+<^%W-H{5;T literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/pangolin/male/foot_br.vox b/assets/voxygen/voxel/npc/pangolin/male/foot_br.vox new file mode 100644 index 0000000000000000000000000000000000000000..3c55b6196482e58e41f7410da3c6f3cbd1b921af GIT binary patch literal 1304 zcmW-heN2^A9LLY|+)J}*Q`Y*U;mk-`As5|+3wq`C0`ejVc)geRcfG{Da5KbRL|CGN zhzXZLSJW21gaYam0~II@q_HrYIX82OrnRNBNLyv4>(im%_I zuFCa7BVB0ZIf_HoiYiqVWvXO~BINnPAtV#3Fes|LnnoCesu&cF2v$@jNGMXO8lkxWX=xYi)wT5>PL+IUm6tn+^$<962o_Z;ujVo2hz%UAjR_z>$u!uZ3}$6#U( z4{F?8%XaczN(KMky~js2HC&sQOqapP6`we!dwaQ5YNIhel73G+k7`_ekQ7I6Ng-FF zOq^J0$lWPq~#dm3chQpU*GVNlaFo z`6M?KYh)llv^i1w-JCjXV(R)zx(}suaV(N@yN-5G8atYG^bc&IsAxH> z*Z7lD97sy~3U;?Sa1X4e?bJpFCl9gSp2^lDku;9lNXiPwRH!4}8BN z?_@n8)-ZhQWM94=!oH&tUBzlv$(}B1chY!lA7XboFBT=RurQUmvhS&t<%m8vWoJ&} z7Z;9g_&k2Q8i>lVuq@k3_1HL}jtaW({D{kQ0Neh<)KA8C#bZF z#pWy)H1%LD-$X`jGnr>^v!q}%#@6!$<~k9@JEt2#vP zX=VpI+3LQIbMwdeEr`ck-@uyGeZ0QF!k+reY+QeUgYGe!9T%}De@Lrq5Oa7AXIsCf zv*Ii+(_X@sMw8^5hfQBgRzL~w1l5y~oWVf-2$4%d$ncLOKRk`f5+}uPt)n6^hf#eC zJ&83~14H>fteL{l2%i7*oBT?j@!99Yv~_k-UAL8uwN-2=-GDjEOloQZYh%I*4O@;; p@5l7?G*eSkjEs!X*Vji=Qxh(i3yZ}5c0oZDlw4Mjgla)hIYmLG^htJ6B|1fw(j&@t$(M<;lKJqni=t8| zDw!;3MOh4!WKk!{QkW!3I!W}otd&GrCkYCoN^u3zPb&$2+I8{fXhHdlPbj+GJ;Xid zK3c+(`1{H={x~th2ECC#y#ov<=JBAWjqABCzE7>>zq|MNsHTSN3sUF~GjKH^j@kZx zE|=SAj5jgp?ch<3n-7xW=r1egYLuCis}0!Qb&L0^THvsDE=E?mg3o+PF{nS7ETj@1;(kL@m6bB#RiZ=^cS#JFAQJ7}Y`rjlc2 zdVcOKrYkA7^&f&MQB}|_#Vt;io zL%loL{eA^|>MT^3M{;yuI2FZ9X!L|pniImqYbiXvmBO?88Qi+o#_1zwW^Syew>}*yuIJA|Ll9eQ{4JNNNl+=t>>}hw>Hk3^J=}inz_prf{&9Iu&06- zOA=UIoW^`*?rBvO2m@`{&z>SEE&|)=1%h@r5S3?PMXnXk#3bR)N_y}7gxh-v+rcB$ zPkoE__(kR=n0d)sqP%$mZFx0IGjmwf)Q7cVGg-CGWS_guvZ5^*S}zcq??NcuMcv39 zGWuo+?Z3<11urvyX%ur_RU_n|VXn@_wzeC%wtP&`qImo@4XjN&!0U@F?5)4TrVWQU z+%`e8^Ae7f4{3D|lNpi6xz?}gsyv6=ydUH8Xp#a8uxV<^2`S@UZ9Q2jSq#;WVOpjq zE7(L~L^@SvE=u2CPi1Hx7PuEd}TVs>_xnVA{J#>N;J7@(=C3Afvg#bO~gHkQD^K>Ypv H@$LWrpX+&c literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/pangolin/male/foot_fr.vox b/assets/voxygen/voxel/npc/pangolin/male/foot_fr.vox new file mode 100644 index 0000000000000000000000000000000000000000..4b44a016c46cedb59c947d7cf564848a82a545cf GIT binary patch literal 1252 zcmWlYe@xVM7{|Zg??JO^Q`Y*U;mk;>kUJfBfSv~j2gt8OK)mDkZ#}v@xD0WJ2uoBD zQQ;VLqP9Q{1=J}9Do`3oV_`OPZRQe9YfER5w#rJ^s}Jw(wdeEf`8?0(`Rv(aP0d>D zl_V)8I&rNq(sdt6%1F$Kn>XtSsRX`)7X(?^If>oE&gxBpqLLkoQ?Y9C55hwH$_Y0FSA1E zcGn>Hocm}AP2%q>*ZAYaFdM=Q{ORpyC^44@H6E_#xcEM$g8%N`7 zbnIj(R>yEt9Zzb@Xfo@0u;LYNuD39hZ>Aw3jAI4ye6?OrWkLu~^Ooa?dW%D8IwneD zI8$ignb$?PEuG$SD`zY7d0eoNU#pXts?Ok(yl|{W4L`QIXw5P3xUZ3_R3l?{k$2EW zM@6W)s|(Pb%)`tOyqvYY9_aSkxRsH%5FVV5=jphKpw|`>p$?=VUdOGICjR=u0uyuiZFC7! zrwiF%6~tiA4tBp^&Yn68Rb`PJ-4{-I(GnV~Ln+A)=HWFnPj8udc0Zk4*F2m)Vq*Hn zYI?fUxioI1+@Yr3o5s#&H3NfNDK1_~^4cJBOEjdUuVPP|6VG5WZKpReG}X-pM;6QsYp$_E1I^!cDA?H;$I(0{;7JxtOf$=#9Y1`#<8;!bwx63#7vj8yJ$Rq z0BKJ-FBT`TxG0tRV(zJx}O9A7#D$U!e?Lu4O}O1|EEWr~v9SaM M1mNfA$L#+951$`-bN~PV literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/pangolin/male/head_upper.vox b/assets/voxygen/voxel/npc/pangolin/male/head_upper.vox new file mode 100644 index 0000000000000000000000000000000000000000..b267753ce12bf70a6d709771ea3f5219e4bfccfb GIT binary patch literal 1468 zcmXYxeN2^Q7{;IHd0$Yc%~;J}L`xrGQ$E5XO<|S38hxb2@M@;8 zC||E9ZPE}nIZW6Ltr*7`ZIMmD1ut@%F?V=|+m-|)CT+4Cu{p>RSy>pk3 zs;ap5aw_e%2(FAtV5qZ`^F>bT6Jt2hx{Zfb9zIA(ptCTaE3tMCPmkcnKp)LXv8oh+t<+(Z>6`PhR4-KG^9pwf6A-enCGA;FO|BaF!nD>}-O51042~_1iPfcbJm+I1KTO7#UgR7{^4dr?JY&g4~2b%(U zu>T!SRL0X<7{cYMAZA#{@XMJ-DjkzJ?g^u{Jehmjr*mmdFuUDv;&x2tVfTC7=-tX% zX9TCVI{38R!v?2?3ylGAVhrE31u%FZm@nHb{Cz%wTW3~rwk4GNrxJPEZzu5eu|x$2 zuqe^W&BJz{eBpqB;r!M&fy+l1v!x=C?gMMt@O~*9YaCP*MYC^nIHma$sIRn9kR8N> ztEoJ_naZ7p?7WnwYr%+x#~5jK zv%2{@?v)=CFfI|l&^qR%?cj}Z4mQ~8L-vE&@C)DLO$^pF{q%gLs%X)8O4 z$G(Ng$#JCk=iv;kCOfE*cP+KdPn}P9Z67g{!k8Zz!=k8k$_w2TygiSykX$Z=Zlxo+ zimZ@ueu!)&KRlY}|NO4M(r0}3`B_@p+NrEr&GPCBmK7}{Gdq*Cv?S)vh$1|4DiNUp n3=Iu2I5s$K&tskDs3(-ao*9ah8pl literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/pangolin/male/tail_front.vox b/assets/voxygen/voxel/npc/pangolin/male/tail_front.vox new file mode 100644 index 0000000000000000000000000000000000000000..b0bde66c1ae67e30fcc38b100a5698b809b74103 GIT binary patch literal 1776 zcmW+$eN2^A96s+k=Y3yXwQ{XLn$3!o6?)OZ1r$N>3i2U{gcs#Y5cJZ$FWii17ZH}I zAfgFOBD5BkX+kH5QW(#8Fz*Qu1Q1$VG=8fOR^72I$T49WlO(F*tX%&G$`Bo=}7&CzTPn&v+#_t}X_|_; zkq__FSBkk3CUdk1lfK3KrluuK)@Tu?MN8PM(_$}-FvnUWSfkd;AHg~!SWiT_4(b}F z3>eyQ4C+bh*o>&!5j0EaPiDIy0g;o^ujqfJ3k3t zPXcx=nu}k0H(?~*jnR%4{L);5j@%?%pM4)LF7slfJQr2LVZ>&Zk5eK zAnj4?Uh2k~s)aaQk&N4YLG1Ar;6QB=j?|aq=amoO$Hp9-Yb?Z@Wr-+CjlnlPL3EWQ z!b_`s%asb?-c!-QdED!AB7E&cgS@PvPR| z4s7%#;jJBByfYBO7GE4rc18h5r{L56C`{~g;luto{BZN!#mYq7P(i-wx{cy)UsYAdIq zy)hnD#WQi^d@gQX%Ej%k3vlUtHx9kx!Nh0tuy0QR-aD0w+JFl?`<7x;rwd1i*J0JF zIas_T8l_b+$SatOtvwF9hZm#g&{~X~+k@4C6hX5X*+{x-~R%{)>=$jm4$~Y^Km!lo?l-J zG1LwJk%NfJNP%zcZA5KpLt3d9vrCH5c^_A~ z=RE{+UqV-C1cfQ3IM($E`s!{;osod$ z(WzLOvJ~~zK~z1q40SQ3I2pSG2eO+`6qAUrk~>kEI3NG~{VRW^xAE@#W9aE0Kx4~# ztZi<FMc+ OjEuzO$&(TO1NaX?v$1pl literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/npc/pangolin/male/tail_rear.vox b/assets/voxygen/voxel/npc/pangolin/male/tail_rear.vox new file mode 100644 index 0000000000000000000000000000000000000000..bd583c11cbfbd9d7b0b0d3b2b2251d35ea65d295 GIT binary patch literal 1620 zcmW+$drVVT7{BM-+wy3kkY#@?80VNH8&Wj11+6>_$U_hiTi$OiYYUx2Oc5ay5kyoT zfmPIH_!tVPQ5>kirUO~Xa4ya)ab}{^Et$rR>9Wmjn*H|Oo#e~;&OP7n@tt$;wPfTj zaSMWw9+$F?CLvZS2-zw5iE4R4!-K+)LZrye%TMv+l+b9V;41DAHB2Y^aEIi>blivA zL>1FXzJg9tb30cvy`*Lare-$o%k-j}+azCR;2J^CX(Ws@$1H4#GpcTFK)i_=ej-Pr<(U={A*_KT7l?3DdiEU^p z2*Zp1bYNl^9_)9j4lYfRO-v-4}%U0WH4h)8X$ciMVrV8z#EL z@bE$so=uw&{OTe^X@gLlq{r=3Cj9xi8JO|JuaiqLccujUYlAU5uoJuAtHPc}GiocN zaco}%s!Erlwa$R@ybwIPo`z?))A0O37H(hf!kMEc%->v%fg@SCJRO57yB0m}Of9q1Zei|#X@<4bCHU z=pIylFG2H0EIeP)LMS{7mEMW%T{q#}`VoQ_C&53g1?w^n;I+kO>}|S=%^MHlaMv{2 z9hYHG`v9G;F=R&-;C$y-=&L>tmuWvDm&YMBun5+$2IPfQ;2m8Pa?)}z+BAunW#PyP zjzMu$CTc32D1U1MszVDf71n{llzLb~Bk+A>J4z#>@#3G~=qr7WPd}SLcV9p18n!=P@}siQ(a4w6(Rt<#NGnHX|V+0fB*m L@b~wJ{0I0Cssf*# literal 0 HcmV?d00001 diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index bb74fa8f02..1799bc1456 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -17,11 +17,11 @@ central: ("npc.crocodile.male.chest"), ), tail_rear: ( - offset: (-1.0, -9.0, -1.5), + offset: (-1.0, -9.0, -1.5),//full length of y dimension central: ("npc.crocodile.male.tail_rear"), ), tail_front: ( - offset: (-3.0, -13.0, -2.5), + offset: (-3.0, -13.0, -2.5),//full length of y dimension central: ("npc.crocodile.male.tail_front"), ), ), @@ -364,4 +364,56 @@ central: ("npc.rocksnapper.female.tail_front"), ), ), + (Pangolin, Male): ( + upper: ( + offset: (-2.5, 0.0, -3.0), + central: ("npc.pangolin.male.head_upper"), + ), + lower: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + chest: ( + offset: (-6.5, -8.0, -4.5), + central: ("npc.pangolin.male.chest"), + ), + tail_rear: ( + offset: (-3.5, -16.0, -1.5), + central: ("npc.pangolin.male.tail_rear"), + ), + tail_front: ( + offset: (-4.5, -8.0, -4.0), + central: ("npc.pangolin.male.tail_front"), + ), + ), + (Pangolin, Female): ( + upper: ( + offset: (-2.5, 0.0, -3.0), + central: ("npc.pangolin.female.head_upper"), + ), + lower: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + jaw: ( + offset: (0.0, 0.0, 0.0), + central: ("armor.empty"), + ), + chest: ( + offset: (-6.5, -8.0, -4.5), + central: ("npc.pangolin.female.chest"), + ), + tail_rear: ( + offset: (-3.5, -16.0, -1.5), + central: ("npc.pangolin.female.tail_rear"), + ), + tail_front: ( + offset: (-4.5, -8.0, -4.0), + central: ("npc.pangolin.female.tail_front"), + ), + ), }) diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron index 30b5fc6199..9b0f104843 100644 --- a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron @@ -251,4 +251,40 @@ lateral: ("npc.rocksnapper.female.foot_br"), ), ), + (Pangolin, Male): ( + front_left: ( + offset: (-1.5, 0.0, -6.0),//unique + lateral: ("npc.pangolin.male.foot_fl"), + ), + front_right: ( + offset: (-1.5, 0.0, -6.0), + lateral: ("npc.pangolin.male.foot_fr"), + ), + back_left: ( + offset: (-1.5, 0.0, -6.0), + lateral: ("npc.pangolin.male.foot_bl"), + ), + back_right: ( + offset: (-1.5, 0.0, -6.0), + lateral: ("npc.pangolin.male.foot_br"), + ), + ), + (Pangolin, Female): ( + front_left: ( + offset: (-1.5, 0.0, -6.0), + lateral: ("npc.pangolin.female.foot_fl"), + ), + front_right: ( + offset: (-1.5, 0.0, -6.0), + lateral: ("npc.pangolin.female.foot_fr"), + ), + back_left: ( + offset: (-1.5, 0.0, -6.0),//special case + lateral: ("npc.pangolin.female.foot_bl"), + ), + back_right: ( + offset: (-1.5, 0.0, -6.0), + lateral: ("npc.pangolin.female.foot_br"), + ), + ), }) diff --git a/common/src/comp/body/quadruped_low.rs b/common/src/comp/body/quadruped_low.rs index 04f5ced441..9cd2999152 100644 --- a/common/src/comp/body/quadruped_low.rs +++ b/common/src/comp/body/quadruped_low.rs @@ -34,6 +34,7 @@ pub enum Species { Asp = 4, Tortoise = 5, Rocksnapper = 6, + Pangolin = 7, } /// Data representing per-species generic data. @@ -48,6 +49,7 @@ pub struct AllSpecies { pub asp: SpeciesMeta, pub tortoise: SpeciesMeta, pub rocksnapper: SpeciesMeta, + pub pangolin: SpeciesMeta, } impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies { @@ -63,11 +65,12 @@ impl<'a, SpeciesMeta> core::ops::Index<&'a Species> for AllSpecies Species::Asp => &self.asp, Species::Tortoise => &self.tortoise, Species::Rocksnapper => &self.rocksnapper, + Species::Pangolin => &self.pangolin, } } } -pub const ALL_SPECIES: [Species; 7] = [ +pub const ALL_SPECIES: [Species; 8] = [ Species::Crocodile, Species::Alligator, Species::Salamander, @@ -75,6 +78,7 @@ pub const ALL_SPECIES: [Species; 7] = [ Species::Asp, Species::Tortoise, Species::Rocksnapper, + Species::Pangolin, ]; impl<'a, SpeciesMeta: 'a> IntoIterator for &'a AllSpecies { diff --git a/voxygen/src/anim/src/quadruped_low/mod.rs b/voxygen/src/anim/src/quadruped_low/mod.rs index 1c8b034eef..1e0e3a1bd6 100644 --- a/voxygen/src/anim/src/quadruped_low/mod.rs +++ b/voxygen/src/anim/src/quadruped_low/mod.rs @@ -92,6 +92,7 @@ pub struct SkeletonAttr { tail_rear: (f32, f32), feet_f: (f32, f32, f32), feet_b: (f32, f32, f32), + lean: (f32, f32), } impl<'a> std::convert::TryFrom<&'a comp::Body> for SkeletonAttr { @@ -116,6 +117,7 @@ impl Default for SkeletonAttr { tail_rear: (0.0, 0.0), feet_f: (0.0, 0.0, 0.0), feet_b: (0.0, 0.0, 0.0), + lean: (0.0, 0.0), } } } @@ -132,6 +134,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Asp, _) => (6.0, 5.5), (Tortoise, _) => (5.0, 1.0), (Rocksnapper, _) => (6.0, 0.5), + (Pangolin, _) => (-0.5, 8.0), }, head_lower: match (body.species, body.body_type) { (Crocodile, _) => (8.0, 0.0), @@ -141,6 +144,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Asp, _) => (9.0, 2.5), (Tortoise, _) => (12.0, -3.5), (Rocksnapper, _) => (12.0, -9.0), + (Pangolin, _) => (8.0, -9.0), }, jaw: match (body.species, body.body_type) { (Crocodile, _) => (0.0, -3.0), @@ -150,6 +154,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Asp, _) => (1.0, -2.0), (Tortoise, _) => (0.5, -2.0), (Rocksnapper, _) => (0.5, -1.5), + (Pangolin, _) => (0.5, -1.5), }, chest: match (body.species, body.body_type) { (Crocodile, _) => (0.0, 5.0), @@ -159,6 +164,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Asp, _) => (0.0, 8.0), (Tortoise, _) => (0.0, 11.0), (Rocksnapper, _) => (0.0, 18.5), + (Pangolin, _) => (0.0, 7.0), }, tail_rear: match (body.species, body.body_type) { (Crocodile, _) => (-12.5, -1.0), @@ -168,6 +174,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Asp, _) => (-14.0, -2.0), (Tortoise, _) => (-7.0, -1.5), (Rocksnapper, _) => (-14.5, -2.0), + (Pangolin, _) => (-7.0, -3.0), }, tail_front: match (body.species, body.body_type) { (Crocodile, _) => (-6.0, 0.0), @@ -177,6 +184,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Asp, _) => (-6.0, -2.0), (Tortoise, _) => (-10.0, -3.5), (Rocksnapper, _) => (-13.5, -6.5), + (Pangolin, _) => (-7.5, -0.5), }, feet_f: match (body.species, body.body_type) { (Crocodile, _) => (3.5, 6.0, -1.0), @@ -186,6 +194,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Asp, _) => (1.5, 4.0, -1.0), (Tortoise, _) => (5.5, 6.5, -3.0), (Rocksnapper, _) => (7.5, 5.0, -8.5), + (Pangolin, _) => (5.0, 5.0, -1.0), }, feet_b: match (body.species, body.body_type) { (Crocodile, _) => (3.5, -6.0, -1.0), @@ -195,6 +204,11 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Asp, _) => (2.5, -5.5, -1.0), (Tortoise, _) => (7.0, -11.5, -3.0), (Rocksnapper, _) => (8.0, -16.0, -9.5), + (Pangolin, _) => (6.0, -4.0, -1.0), + }, + lean: match (body.species, body.body_type) { + (Pangolin, _) => (0.4, 0.0), + _ => (0.0, 1.0), }, } } diff --git a/voxygen/src/anim/src/quadruped_low/run.rs b/voxygen/src/anim/src/quadruped_low/run.rs index df61dbdaa6..f8c3283008 100644 --- a/voxygen/src/anim/src/quadruped_low/run.rs +++ b/voxygen/src/anim/src/quadruped_low/run.rs @@ -21,7 +21,7 @@ impl Animation for RunAnimation { ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let lab = 0.5; + let lab = 0.5 * (skeleton_attr.lean.0 + 1.0); let center = (anim_time as f32 * lab as f32 + PI / 2.0).sin(); let centeroffset = (anim_time as f32 * lab as f32 + PI * 1.5).sin(); @@ -99,7 +99,8 @@ impl Animation for RunAnimation { next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); - next.head_upper.ori = Quaternion::rotation_x(0.0) * Quaternion::rotation_z(short * -0.06); + next.head_upper.ori = + Quaternion::rotation_x(-skeleton_attr.lean.0) * Quaternion::rotation_z(short * -0.06); next.head_upper.scale = Vec3::one(); next.head_lower.offset = @@ -111,11 +112,14 @@ impl Animation for RunAnimation { next.jaw.ori = Quaternion::rotation_x(0.0); next.jaw.scale = Vec3::one() * 0.98; - next.tail_front.offset = - Vec3::new(0.0, skeleton_attr.tail_front.0, skeleton_attr.tail_front.1); + next.tail_front.offset = Vec3::new( + 0.0, + skeleton_attr.tail_front.0 + skeleton_attr.lean.0 * 2.0, + skeleton_attr.tail_front.1 + skeleton_attr.lean.0 * 2.0, + ); next.tail_front.ori = Quaternion::rotation_z(shortalt * 0.18) * Quaternion::rotation_y(shortalt * 0.1) - * Quaternion::rotation_x(0.06); + * Quaternion::rotation_x(0.06 - skeleton_attr.lean.0 * 1.2); next.tail_front.scale = Vec3::one(); next.tail_rear.offset = Vec3::new( @@ -129,8 +133,9 @@ impl Animation for RunAnimation { next.tail_rear.scale = Vec3::one(); next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) / 6.0; - next.chest.ori = - Quaternion::rotation_z(short * 0.12) * Quaternion::rotation_y(shortalt * 0.12); + next.chest.ori = Quaternion::rotation_z(short * 0.12) + * Quaternion::rotation_y(shortalt * 0.12) + * Quaternion::rotation_x(skeleton_attr.lean.0); next.chest.scale = Vec3::one() / 6.0; next.foot_fl.offset = Vec3::new( @@ -139,7 +144,8 @@ impl Animation for RunAnimation { skeleton_attr.feet_f.2 + 1.0 + ((footvertl * -0.8).max(-0.0)), ); next.foot_fl.ori = - Quaternion::rotation_x(footrotl * -0.25) * Quaternion::rotation_z(footrotl * 0.4); + Quaternion::rotation_x(footrotl * -0.25 * skeleton_attr.lean.1 - skeleton_attr.lean.0) + * Quaternion::rotation_z(footrotl * 0.4 * skeleton_attr.lean.1); next.foot_fl.scale = Vec3::one(); next.foot_fr.offset = Vec3::new( @@ -148,7 +154,8 @@ impl Animation for RunAnimation { skeleton_attr.feet_f.2 + 1.0 + ((footvertr * -0.8).max(-0.0)), ); next.foot_fr.ori = - Quaternion::rotation_x(footrotr * -0.25) * Quaternion::rotation_z(footrotr * -0.4); + Quaternion::rotation_x(footrotr * -0.25 * skeleton_attr.lean.1 - skeleton_attr.lean.0) + * Quaternion::rotation_z(footrotr * -0.4 * skeleton_attr.lean.1); next.foot_fr.scale = Vec3::one(); next.foot_bl.offset = Vec3::new( @@ -156,8 +163,8 @@ impl Animation for RunAnimation { skeleton_attr.feet_b.1 + foothorilb * -1.0, skeleton_attr.feet_b.2 + 1.0 + ((footvertlb * -0.6).max(-0.0)), ); - next.foot_bl.ori = - Quaternion::rotation_x(footrotlb * -0.25) * Quaternion::rotation_z(footrotlb * 0.4); + next.foot_bl.ori = Quaternion::rotation_x(footrotlb * -0.25 - skeleton_attr.lean.0) + * Quaternion::rotation_z(footrotlb * 0.4); next.foot_bl.scale = Vec3::one(); next.foot_br.offset = Vec3::new( @@ -165,8 +172,8 @@ impl Animation for RunAnimation { skeleton_attr.feet_b.1 + foothorirb * -1.0, skeleton_attr.feet_b.2 + 1.0 + ((footvertrb * -0.6).max(-0.0)), ); - next.foot_br.ori = - Quaternion::rotation_x(footrotrb * -0.25) * Quaternion::rotation_z(footrotrb * -0.4); + next.foot_br.ori = Quaternion::rotation_x(footrotrb * -0.25 - skeleton_attr.lean.0) + * Quaternion::rotation_z(footrotrb * -0.4); next.foot_br.scale = Vec3::one(); next From 9147af165dc3d3a6d07bfae753202dfbd4fc26c0 Mon Sep 17 00:00:00 2001 From: jshipsey Date: Sun, 28 Jun 2020 16:56:30 -0400 Subject: [PATCH 31/48] custom scaling by species --- voxygen/src/anim/src/quadruped_low/idle.rs | 4 ++-- voxygen/src/anim/src/quadruped_low/mod.rs | 12 ++++++++++++ voxygen/src/anim/src/quadruped_low/run.rs | 4 ++-- voxygen/src/anim/src/quadruped_medium/idle.rs | 4 ++-- voxygen/src/anim/src/quadruped_medium/mod.rs | 13 +++++++++++++ voxygen/src/anim/src/quadruped_medium/run.rs | 8 ++++---- 6 files changed, 35 insertions(+), 10 deletions(-) diff --git a/voxygen/src/anim/src/quadruped_low/idle.rs b/voxygen/src/anim/src/quadruped_low/idle.rs index 5b01dec9aa..806ed63b32 100644 --- a/voxygen/src/anim/src/quadruped_low/idle.rs +++ b/voxygen/src/anim/src/quadruped_low/idle.rs @@ -60,9 +60,9 @@ impl Animation for IdleAnimation { next.jaw.ori = Quaternion::rotation_x(slow * 0.04); next.jaw.scale = Vec3::one() * 0.98; - next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) / 6.0; + next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) *skeleton_attr.scaler/11.0; next.chest.ori = Quaternion::rotation_y(slow * 0.01); - next.chest.scale = Vec3::one() / 6.0; + next.chest.scale = Vec3::one() *skeleton_attr.scaler/11.0; next.tail_front.offset = Vec3::new(0.0, skeleton_attr.tail_front.0, skeleton_attr.tail_front.1); diff --git a/voxygen/src/anim/src/quadruped_low/mod.rs b/voxygen/src/anim/src/quadruped_low/mod.rs index 1e0e3a1bd6..dde2eb5903 100644 --- a/voxygen/src/anim/src/quadruped_low/mod.rs +++ b/voxygen/src/anim/src/quadruped_low/mod.rs @@ -93,6 +93,7 @@ pub struct SkeletonAttr { feet_f: (f32, f32, f32), feet_b: (f32, f32, f32), lean: (f32, f32), + scaler: f32, } impl<'a> std::convert::TryFrom<&'a comp::Body> for SkeletonAttr { @@ -118,6 +119,7 @@ impl Default for SkeletonAttr { feet_f: (0.0, 0.0, 0.0), feet_b: (0.0, 0.0, 0.0), lean: (0.0, 0.0), + scaler: 0.0, } } } @@ -210,6 +212,16 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Pangolin, _) => (0.4, 0.0), _ => (0.0, 1.0), }, + scaler: match (body.species, body.body_type) { + (Crocodile, _) => (1.3), + (Alligator, _) => (1.5), + (Salamander, _) => (1.4), + (Monitor, _) => (1.1), + (Asp, _) => (1.2), + (Tortoise, _) => (1.0), + (Rocksnapper, _) => (1.2), + (Pangolin, _) => (1.3), + }, } } } diff --git a/voxygen/src/anim/src/quadruped_low/run.rs b/voxygen/src/anim/src/quadruped_low/run.rs index f8c3283008..f4ef483e03 100644 --- a/voxygen/src/anim/src/quadruped_low/run.rs +++ b/voxygen/src/anim/src/quadruped_low/run.rs @@ -132,11 +132,11 @@ impl Animation for RunAnimation { * Quaternion::rotation_x(-0.04); next.tail_rear.scale = Vec3::one(); - next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) / 6.0; + next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) *skeleton_attr.scaler/11.0; next.chest.ori = Quaternion::rotation_z(short * 0.12) * Quaternion::rotation_y(shortalt * 0.12) * Quaternion::rotation_x(skeleton_attr.lean.0); - next.chest.scale = Vec3::one() / 6.0; + next.chest.scale = Vec3::one() *skeleton_attr.scaler/11.0; next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, diff --git a/voxygen/src/anim/src/quadruped_medium/idle.rs b/voxygen/src/anim/src/quadruped_medium/idle.rs index fc8923709b..acfa57698e 100644 --- a/voxygen/src/anim/src/quadruped_medium/idle.rs +++ b/voxygen/src/anim/src/quadruped_medium/idle.rs @@ -85,9 +85,9 @@ impl Animation for IdleAnimation { 0.0, skeleton_attr.torso_front.0, skeleton_attr.torso_front.1 + slower * 0.3, - ) / 8.0; + ) *skeleton_attr.scaler/11.0; next.torso_front.ori = Quaternion::rotation_y(slow * 0.02); - next.torso_front.scale = Vec3::one() / 8.0; + next.torso_front.scale = Vec3::one() *skeleton_attr.scaler/11.0; next.torso_back.offset = Vec3::new( 0.0, diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index 2bcfc6ae17..624f8bad8f 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -127,6 +127,7 @@ pub struct SkeletonAttr { leg_b: (f32, f32, f32), feet_f: (f32, f32, f32), feet_b: (f32, f32, f32), + scaler: f32, } impl<'a> std::convert::TryFrom<&'a comp::Body> for SkeletonAttr { @@ -154,6 +155,7 @@ impl Default for SkeletonAttr { leg_b: (0.0, 0.0, 0.0), feet_f: (0.0, 0.0, 0.0), feet_b: (0.0, 0.0, 0.0), + scaler: 0.0, } } } @@ -283,6 +285,17 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Frostfang, _) => (0.0, -1.5, -3.5), (Mouflon, _) => (-1.0, -1.5, -2.5), }, + scaler: match (body.species, body.body_type) { + (Grolgar, _) => (1.3), + (Saber, _) => (1.1), + (Tuskram, _) => (1.2), + (Lion, _) => (1.3), + (Tarasque, _) => (1.3), + (Tiger, _) => (1.2), + (Wolf, _) => (1.0), + (Frostfang, _) => (1.0), + (Mouflon, _) => (1.0), + }, } } } diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index efd1e62f8a..ec309d1589 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -134,9 +134,9 @@ impl Animation for RunAnimation { 0.0, skeleton_attr.torso_front.0, skeleton_attr.torso_front.1 + shortalt * 0.8, - ) / 8.0; + ) *skeleton_attr.scaler/11.0; next.torso_front.ori = Quaternion::rotation_x(short * 0.03); - next.torso_front.scale = Vec3::one() / 8.0; + next.torso_front.scale = Vec3::one() *skeleton_attr.scaler/11.0; next.torso_back.offset = Vec3::new(0.0, skeleton_attr.torso_back.0, skeleton_attr.torso_back.1); @@ -238,9 +238,9 @@ impl Animation for RunAnimation { 0.0, skeleton_attr.torso_front.0, skeleton_attr.torso_front.1 + shortalt * 2.0, - ) / 8.0; + ) *skeleton_attr.scaler/11.0; next.torso_front.ori = Quaternion::rotation_x(short * 0.13); - next.torso_front.scale = Vec3::one() / 8.0; + next.torso_front.scale = Vec3::one() *skeleton_attr.scaler/11.0; next.torso_back.offset = Vec3::new(0.0, skeleton_attr.torso_back.0, skeleton_attr.torso_back.1); From 843a7cef4c285c1e5782953611fbfa6936a482bf Mon Sep 17 00:00:00 2001 From: jshipsey Date: Mon, 29 Jun 2020 21:42:13 -0400 Subject: [PATCH 32/48] orientation tilt, make run frequency proportional to species size --- voxygen/src/anim/src/quadruped_low/run.rs | 35 +++++++++---- voxygen/src/anim/src/quadruped_medium/run.rs | 55 +++++++++++++------- voxygen/src/scene/figure/mod.rs | 4 +- 3 files changed, 61 insertions(+), 33 deletions(-) diff --git a/voxygen/src/anim/src/quadruped_low/run.rs b/voxygen/src/anim/src/quadruped_low/run.rs index f4ef483e03..8e7fb0f118 100644 --- a/voxygen/src/anim/src/quadruped_low/run.rs +++ b/voxygen/src/anim/src/quadruped_low/run.rs @@ -5,7 +5,7 @@ use vek::*; pub struct RunAnimation; impl Animation for RunAnimation { - type Dependency = (f32, f64); + type Dependency = (f32, Vec3, Vec3, f64); type Skeleton = QuadrupedLowSkeleton; #[cfg(feature = "use-dyn-lib")] @@ -14,19 +14,19 @@ impl Animation for RunAnimation { #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_low_run")] fn update_skeleton_inner( skeleton: &Self::Skeleton, - (_velocity, _global_time): Self::Dependency, + (_velocity, orientation, last_ori, _global_time): Self::Dependency, anim_time: f64, _rate: &mut f32, skeleton_attr: &SkeletonAttr, ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let lab = 0.5 * (skeleton_attr.lean.0 + 1.0); + let lab = 0.7 * (skeleton_attr.lean.0 + 1.0)*(1.0/skeleton_attr.scaler); let center = (anim_time as f32 * lab as f32 + PI / 2.0).sin(); let centeroffset = (anim_time as f32 * lab as f32 + PI * 1.5).sin(); - let short = (((0.0) + let short = (((1.0) / (0.72 + 0.28 * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.25).sin()) @@ -96,16 +96,29 @@ impl Animation for RunAnimation { * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.2).sin()).powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.2).sin()); - + let ori = Vec2::from(orientation); + let last_ori = Vec2::from(last_ori); + let tilt = if Vec2::new(ori, last_ori) + .map(|o| Vec2::::from(o).magnitude_squared()) + .map(|m| m > 0.001 && m.is_finite()) + .reduce_and() + && ori.angle_between(last_ori).is_finite() + { + ori.angle_between(last_ori).min(0.2) + * last_ori.determine_side(Vec2::zero(), ori).signum() + } else { + 0.0 + } * 1.3; +//let tilt = 0.0; next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); next.head_upper.ori = - Quaternion::rotation_x(-skeleton_attr.lean.0) * Quaternion::rotation_z(short * -0.06); + Quaternion::rotation_x(-skeleton_attr.lean.0) * Quaternion::rotation_z(short * -0.06 + tilt * -1.5); next.head_upper.scale = Vec3::one(); next.head_lower.offset = Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); - next.head_lower.ori = Quaternion::rotation_x(0.0) * Quaternion::rotation_z(short * -0.15); + next.head_lower.ori = Quaternion::rotation_x(0.0) * Quaternion::rotation_z(short * -0.15 + tilt * -0.8); next.head_lower.scale = Vec3::one(); next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); @@ -117,7 +130,7 @@ impl Animation for RunAnimation { skeleton_attr.tail_front.0 + skeleton_attr.lean.0 * 2.0, skeleton_attr.tail_front.1 + skeleton_attr.lean.0 * 2.0, ); - next.tail_front.ori = Quaternion::rotation_z(shortalt * 0.18) + next.tail_front.ori = Quaternion::rotation_z(shortalt * 0.18 + tilt * 1.8) * Quaternion::rotation_y(shortalt * 0.1) * Quaternion::rotation_x(0.06 - skeleton_attr.lean.0 * 1.2); next.tail_front.scale = Vec3::one(); @@ -127,13 +140,13 @@ impl Animation for RunAnimation { skeleton_attr.tail_rear.0, skeleton_attr.tail_rear.1 + centeroffset * 0.6, ); - next.tail_rear.ori = Quaternion::rotation_z(shortalt * 0.25) + next.tail_rear.ori = Quaternion::rotation_z(shortalt * 0.25 + tilt * 1.6) * Quaternion::rotation_y(shortalt * 0.1) * Quaternion::rotation_x(-0.04); next.tail_rear.scale = Vec3::one(); next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) *skeleton_attr.scaler/11.0; - next.chest.ori = Quaternion::rotation_z(short * 0.12) + next.chest.ori = Quaternion::rotation_z(short * 0.13 + tilt * -1.9) * Quaternion::rotation_y(shortalt * 0.12) * Quaternion::rotation_x(skeleton_attr.lean.0); next.chest.scale = Vec3::one() *skeleton_attr.scaler/11.0; @@ -155,7 +168,7 @@ impl Animation for RunAnimation { ); next.foot_fr.ori = Quaternion::rotation_x(footrotr * -0.25 * skeleton_attr.lean.1 - skeleton_attr.lean.0) - * Quaternion::rotation_z(footrotr * -0.4 * skeleton_attr.lean.1); + * Quaternion::rotation_z(footrotr * -0.4 * skeleton_attr.lean.1 + tilt * 3.5); next.foot_fr.scale = Vec3::one(); next.foot_bl.offset = Vec3::new( diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index ec309d1589..c844e14a73 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -5,7 +5,7 @@ use vek::*; pub struct RunAnimation; impl Animation for RunAnimation { - type Dependency = (f32, f64); + type Dependency = (f32, Vec3, Vec3, f64); type Skeleton = QuadrupedMediumSkeleton; #[cfg(feature = "use-dyn-lib")] @@ -14,7 +14,7 @@ impl Animation for RunAnimation { #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_medium_run")] fn update_skeleton_inner( skeleton: &Self::Skeleton, - (velocity, _global_time): Self::Dependency, + (velocity, orientation, last_ori, _global_time): Self::Dependency, anim_time: f64, rate: &mut f32, skeleton_attr: &SkeletonAttr, @@ -24,7 +24,7 @@ impl Animation for RunAnimation { *rate = 1.0; let lab = 0.6; - let speedmult = if speed > 8.0 { 1.0 } else { 0.8 }; + let speedmult = if speed > 8.0 { 1.2* (1.0/skeleton_attr.scaler) } else { 1.0*(1.0/skeleton_attr.scaler) }; let short = (((1.0) / (0.72 @@ -107,11 +107,26 @@ impl Animation for RunAnimation { .max(0.2); let horichest = (anim_time as f32 * lab as f32 * speedmult + PI * 0.8).sin(); +// + let ori = Vec2::from(orientation); + let last_ori = Vec2::from(last_ori); + let tilt = if Vec2::new(ori, last_ori) + .map(|o| Vec2::::from(o).magnitude_squared()) + .map(|m| m > 0.001 && m.is_finite()) + .reduce_and() + && ori.angle_between(last_ori).is_finite() + { + ori.angle_between(last_ori).min(0.2) + * last_ori.determine_side(Vec2::zero(), ori).signum() + } else { + 0.0 + } * 1.3; +//let tilt = 0.0; if speed < 8.0 { //Trot next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); - next.head_upper.ori = Quaternion::rotation_x(0.0) * Quaternion::rotation_z(0.0); + next.head_upper.ori = Quaternion::rotation_x(0.0) * Quaternion::rotation_z(tilt *-1.2); next.head_upper.scale = Vec3::one(); next.head_lower.offset = Vec3::new( @@ -119,7 +134,7 @@ impl Animation for RunAnimation { skeleton_attr.head_lower.0 + horichest * 0.4, skeleton_attr.head_lower.1 + vertchest * -0.8, ); - next.head_lower.ori = Quaternion::rotation_z(0.0); + next.head_lower.ori = Quaternion::rotation_z(tilt *-0.8); next.head_lower.scale = Vec3::one() * 1.02; next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); @@ -127,7 +142,7 @@ impl Animation for RunAnimation { next.jaw.scale = Vec3::one() * 1.02; next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); - next.tail.ori = Quaternion::rotation_x(shortalt * 0.08); + next.tail.ori = Quaternion::rotation_x(shortalt * 0.08)* Quaternion::rotation_z(tilt *1.5); next.tail.scale = Vec3::one(); next.torso_front.offset = Vec3::new( @@ -140,7 +155,7 @@ impl Animation for RunAnimation { next.torso_back.offset = Vec3::new(0.0, skeleton_attr.torso_back.0, skeleton_attr.torso_back.1); - next.torso_back.ori = Quaternion::rotation_x(short * -0.03); + next.torso_back.ori = Quaternion::rotation_x(short * -0.03)*Quaternion::rotation_z(tilt*1.8); next.torso_back.scale = Vec3::one(); next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); @@ -153,7 +168,7 @@ impl Animation for RunAnimation { skeleton_attr.leg_f.1 + foothoril * -1.0, skeleton_attr.leg_f.2 + footvertl * -0.4, ); - next.leg_fl.ori = Quaternion::rotation_x(footrotl * -0.3); + next.leg_fl.ori = Quaternion::rotation_x(footrotl * -0.3)*Quaternion::rotation_z(tilt * -1.5); next.leg_fl.scale = Vec3::one() * 0.99; next.leg_fr.offset = Vec3::new( @@ -161,7 +176,7 @@ impl Animation for RunAnimation { skeleton_attr.leg_f.1 + foothorir * -1.0, skeleton_attr.leg_f.2 + footvertr * -0.4, ); - next.leg_fr.ori = Quaternion::rotation_x(footrotr * -0.3); + next.leg_fr.ori = Quaternion::rotation_x(footrotr * -0.3)*Quaternion::rotation_z(tilt * -1.5); next.leg_fr.scale = Vec3::one() * 0.99; next.leg_bl.offset = Vec3::new( @@ -169,7 +184,7 @@ impl Animation for RunAnimation { skeleton_attr.leg_b.1 + foothorilb * -1.0, skeleton_attr.leg_b.2 + footvertlb * -0.4, ); - next.leg_bl.ori = Quaternion::rotation_x(footrotlb * -0.3); + next.leg_bl.ori = Quaternion::rotation_x(footrotlb * -0.3)*Quaternion::rotation_z(tilt * -1.5); next.leg_bl.scale = Vec3::one() * 0.99; next.leg_br.offset = Vec3::new( @@ -177,7 +192,7 @@ impl Animation for RunAnimation { skeleton_attr.leg_b.1 + foothorirb * -1.0, skeleton_attr.leg_b.2 + footvertrb * -0.4, ); - next.leg_br.ori = Quaternion::rotation_x(footrotrb * -0.3); + next.leg_br.ori = Quaternion::rotation_x(footrotrb * -0.3)*Quaternion::rotation_z(tilt * -1.5); next.leg_br.scale = Vec3::one() * 0.99; next.foot_fl.offset = Vec3::new( @@ -215,7 +230,7 @@ impl Animation for RunAnimation { //Gallop next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); - next.head_upper.ori = Quaternion::rotation_x(0.0) * Quaternion::rotation_z(0.0); + next.head_upper.ori = Quaternion::rotation_x(0.0) * Quaternion::rotation_z(tilt *-1.2); next.head_upper.scale = Vec3::one(); next.head_lower.offset = Vec3::new( @@ -223,7 +238,7 @@ impl Animation for RunAnimation { skeleton_attr.head_lower.0 + horichest * 0.4, skeleton_attr.head_lower.1 + vertchest * -0.8, ); - next.head_lower.ori = Quaternion::rotation_z(0.0); + next.head_lower.ori = Quaternion::rotation_z(tilt *-0.8); next.head_lower.scale = Vec3::one() * 1.02; next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); @@ -231,7 +246,7 @@ impl Animation for RunAnimation { next.jaw.scale = Vec3::one() * 1.02; next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); - next.tail.ori = Quaternion::rotation_x(shortalt * 0.3); + next.tail.ori = Quaternion::rotation_x(shortalt * 0.3)*Quaternion::rotation_z(tilt * 1.5); next.tail.scale = Vec3::one(); next.torso_front.offset = Vec3::new( @@ -239,12 +254,12 @@ impl Animation for RunAnimation { skeleton_attr.torso_front.0, skeleton_attr.torso_front.1 + shortalt * 2.0, ) *skeleton_attr.scaler/11.0; - next.torso_front.ori = Quaternion::rotation_x(short * 0.13); + next.torso_front.ori = Quaternion::rotation_x(short * 0.13)*Quaternion::rotation_z(tilt * -1.5); next.torso_front.scale = Vec3::one() *skeleton_attr.scaler/11.0; next.torso_back.offset = Vec3::new(0.0, skeleton_attr.torso_back.0, skeleton_attr.torso_back.1); - next.torso_back.ori = Quaternion::rotation_x(short * 0.1); + next.torso_back.ori = Quaternion::rotation_x(short * 0.1)*Quaternion::rotation_z(tilt*1.8); next.torso_back.scale = Vec3::one(); next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); @@ -257,7 +272,7 @@ impl Animation for RunAnimation { skeleton_attr.leg_f.1 + foothoril * -2.5, skeleton_attr.leg_f.2 + 1.0 + footvertl * -1.0, ); - next.leg_fl.ori = Quaternion::rotation_x(footrotl * -0.6); + next.leg_fl.ori = Quaternion::rotation_x(footrotl * -0.6)*Quaternion::rotation_z(tilt * -0.5); next.leg_fl.scale = Vec3::one() * 0.99; next.leg_fr.offset = Vec3::new( @@ -265,7 +280,7 @@ impl Animation for RunAnimation { skeleton_attr.leg_f.1 + foothoril * -2.5, skeleton_attr.leg_f.2 + 1.0 + footvertl * -1.0, ); - next.leg_fr.ori = Quaternion::rotation_x(footrotl * -0.6); + next.leg_fr.ori = Quaternion::rotation_x(footrotl * -0.6)*Quaternion::rotation_z(tilt * -0.5); next.leg_fr.scale = Vec3::one() * 0.99; next.leg_bl.offset = Vec3::new( @@ -273,7 +288,7 @@ impl Animation for RunAnimation { skeleton_attr.leg_b.1 + foothorirb * -2.5, skeleton_attr.leg_b.2 + 1.0 + footvertrb * -1.2, ); - next.leg_bl.ori = Quaternion::rotation_x(footrotrb * -0.6); + next.leg_bl.ori = Quaternion::rotation_x(footrotrb * -0.6)*Quaternion::rotation_z(tilt * -1.5); next.leg_bl.scale = Vec3::one() * 0.99; next.leg_br.offset = Vec3::new( @@ -281,7 +296,7 @@ impl Animation for RunAnimation { skeleton_attr.leg_b.1 + foothorirb * -2.5, skeleton_attr.leg_b.2 + 1.0 + footvertrb * -1.2, ); - next.leg_br.ori = Quaternion::rotation_x(footrotrb * -0.6); + next.leg_br.ori = Quaternion::rotation_x(footrotrb * -0.6)*Quaternion::rotation_z(tilt * -1.5); next.leg_br.scale = Vec3::one() * 0.99; next.foot_fl.offset = Vec3::new( diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs index 3d506e93c2..4cc3ae951f 100644 --- a/voxygen/src/scene/figure/mod.rs +++ b/voxygen/src/scene/figure/mod.rs @@ -978,7 +978,7 @@ impl FigureMgr { (true, true, false) => { anim::quadruped_medium::RunAnimation::update_skeleton( &QuadrupedMediumSkeleton::new(), - (vel.0.magnitude(), time), + (vel.0.magnitude(), ori, state.last_ori, time), state.state_time, &mut state_animation_rate, skeleton_attr, @@ -1058,7 +1058,7 @@ impl FigureMgr { // Running (true, true, false) => anim::quadruped_low::RunAnimation::update_skeleton( &QuadrupedLowSkeleton::new(), - (vel.0.magnitude(), time), + (vel.0.magnitude(), ori, state.last_ori, time), state.state_time, &mut state_animation_rate, skeleton_attr, From 03a9d08f8e4a7ef9573644c128106529cbf88130 Mon Sep 17 00:00:00 2001 From: jshipsey Date: Tue, 30 Jun 2020 00:28:09 -0400 Subject: [PATCH 33/48] placeholder attack anim --- voxygen/src/anim/src/quadruped_low/idle.rs | 6 +- voxygen/src/anim/src/quadruped_low/run.rs | 17 +- .../src/anim/src/quadruped_medium/alpha.rs | 260 ++++++++++++++++++ voxygen/src/anim/src/quadruped_medium/idle.rs | 5 +- voxygen/src/anim/src/quadruped_medium/mod.rs | 29 +- voxygen/src/anim/src/quadruped_medium/run.rs | 68 +++-- voxygen/src/scene/figure/mod.rs | 40 ++- 7 files changed, 364 insertions(+), 61 deletions(-) create mode 100644 voxygen/src/anim/src/quadruped_medium/alpha.rs diff --git a/voxygen/src/anim/src/quadruped_low/idle.rs b/voxygen/src/anim/src/quadruped_low/idle.rs index 806ed63b32..164ed1ea82 100644 --- a/voxygen/src/anim/src/quadruped_low/idle.rs +++ b/voxygen/src/anim/src/quadruped_low/idle.rs @@ -60,9 +60,11 @@ impl Animation for IdleAnimation { next.jaw.ori = Quaternion::rotation_x(slow * 0.04); next.jaw.scale = Vec3::one() * 0.98; - next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) *skeleton_attr.scaler/11.0; + next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) + * skeleton_attr.scaler + / 11.0; next.chest.ori = Quaternion::rotation_y(slow * 0.01); - next.chest.scale = Vec3::one() *skeleton_attr.scaler/11.0; + next.chest.scale = Vec3::one() * skeleton_attr.scaler / 11.0; next.tail_front.offset = Vec3::new(0.0, skeleton_attr.tail_front.0, skeleton_attr.tail_front.1); diff --git a/voxygen/src/anim/src/quadruped_low/run.rs b/voxygen/src/anim/src/quadruped_low/run.rs index 8e7fb0f118..9bf9ce7015 100644 --- a/voxygen/src/anim/src/quadruped_low/run.rs +++ b/voxygen/src/anim/src/quadruped_low/run.rs @@ -21,7 +21,7 @@ impl Animation for RunAnimation { ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let lab = 0.7 * (skeleton_attr.lean.0 + 1.0)*(1.0/skeleton_attr.scaler); + let lab = 0.7 * (skeleton_attr.lean.0 + 1.0) * (1.0 / skeleton_attr.scaler); let center = (anim_time as f32 * lab as f32 + PI / 2.0).sin(); let centeroffset = (anim_time as f32 * lab as f32 + PI * 1.5).sin(); @@ -109,16 +109,17 @@ impl Animation for RunAnimation { } else { 0.0 } * 1.3; -//let tilt = 0.0; + //let tilt = 0.0; next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); - next.head_upper.ori = - Quaternion::rotation_x(-skeleton_attr.lean.0) * Quaternion::rotation_z(short * -0.06 + tilt * -1.5); + next.head_upper.ori = Quaternion::rotation_x(-skeleton_attr.lean.0) + * Quaternion::rotation_z(short * -0.06 + tilt * -1.5); next.head_upper.scale = Vec3::one(); next.head_lower.offset = Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); - next.head_lower.ori = Quaternion::rotation_x(0.0) * Quaternion::rotation_z(short * -0.15 + tilt * -0.8); + next.head_lower.ori = + Quaternion::rotation_x(0.0) * Quaternion::rotation_z(short * -0.15 + tilt * -0.8); next.head_lower.scale = Vec3::one(); next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); @@ -145,11 +146,13 @@ impl Animation for RunAnimation { * Quaternion::rotation_x(-0.04); next.tail_rear.scale = Vec3::one(); - next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) *skeleton_attr.scaler/11.0; + next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) + * skeleton_attr.scaler + / 11.0; next.chest.ori = Quaternion::rotation_z(short * 0.13 + tilt * -1.9) * Quaternion::rotation_y(shortalt * 0.12) * Quaternion::rotation_x(skeleton_attr.lean.0); - next.chest.scale = Vec3::one() *skeleton_attr.scaler/11.0; + next.chest.scale = Vec3::one() * skeleton_attr.scaler / 11.0; next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, diff --git a/voxygen/src/anim/src/quadruped_medium/alpha.rs b/voxygen/src/anim/src/quadruped_medium/alpha.rs new file mode 100644 index 0000000000..843a03dd7d --- /dev/null +++ b/voxygen/src/anim/src/quadruped_medium/alpha.rs @@ -0,0 +1,260 @@ +use super::{super::Animation, QuadrupedMediumSkeleton, SkeletonAttr}; +use std::{f32::consts::PI, ops::Mul}; +use vek::*; + +pub struct AlphaAnimation; + +impl Animation for AlphaAnimation { + type Dependency = f64; + type Skeleton = QuadrupedMediumSkeleton; + + #[cfg(feature = "use-dyn-lib")] + const UPDATE_FN: &'static [u8] = b"quadruped_medium_alpha\0"; + + #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_medium_alpha")] + fn update_skeleton_inner( + skeleton: &Self::Skeleton, + global_time: Self::Dependency, + anim_time: f64, + _rate: &mut f32, + skeleton_attr: &SkeletonAttr, + ) -> Self::Skeleton { + let mut next = (*skeleton).clone(); + + let slower = (anim_time as f32 * 1.0 + PI).sin(); + let wave_ultra_slow_cos = (anim_time as f32 * 1.0 + PI).cos(); + let slow = (anim_time as f32 * 3.5 + PI).sin(); + let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos(); + + let short = (((1.0) + / (0.5 + 0.5 * ((anim_time as f32 * 2.0 + PI * 1.0).sin()).powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 2.0 + PI * 1.0).sin()); + + let look = Vec2::new( + ((global_time + anim_time) as f32 / 8.0) + .floor() + .mul(7331.0) + .sin() + * 0.5, + ((global_time + anim_time) as f32 / 8.0) + .floor() + .mul(1337.0) + .sin() + * 0.25, + ); + let tailmove = Vec2::new( + ((global_time + anim_time) as f32 / 2.0) + .floor() + .mul(7331.0) + .sin() + * 0.25, + ((global_time + anim_time) as f32 / 2.0) + .floor() + .mul(1337.0) + .sin() + * 0.125, + ); + let random = ((((2.0 + * ((global_time as f32 - anim_time as f32) + - ((global_time as f32 - anim_time as f32).round()))) + .abs()) + * 10.0) + .round()) + / 10.0; + + let switch = if random > 0.5 { 1.0 } else { -1.0 }; + next.head_upper.offset = Vec3::new( + 0.0, + skeleton_attr.head_upper.0 + 1.0 + short * 3.0, + skeleton_attr.head_upper.1, + ); + next.head_upper.ori = Quaternion::rotation_y(short * -0.2 * switch) + * Quaternion::rotation_x(0.2 + short * 0.6); + next.head_upper.scale = Vec3::one(); + + next.head_lower.offset = Vec3::new( + 0.0, + skeleton_attr.head_lower.0 + 2.0 + short * 3.0, + skeleton_attr.head_lower.1, + ); + next.head_lower.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); + next.head_lower.scale = Vec3::one() * 1.02; + + next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); + next.jaw.ori = Quaternion::rotation_x(0.5 + short * 1.0); + next.jaw.scale = Vec3::one() * 1.02; + + next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); + next.tail.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); + next.tail.scale = Vec3::one(); + + next.torso_front.offset = Vec3::new( + 0.0, + skeleton_attr.torso_front.0 + short * 2.8, + skeleton_attr.torso_front.1 + short * 1.0, + ) * skeleton_attr.scaler + / 11.0; + next.torso_front.ori = Quaternion::rotation_y(short * -0.1 * switch); + next.torso_front.scale = Vec3::one() * skeleton_attr.scaler / 11.0; + + next.torso_back.offset = + Vec3::new(0.0, skeleton_attr.torso_back.0, skeleton_attr.torso_back.1); + next.torso_back.ori = Quaternion::rotation_y(short * -0.1 * switch) + * Quaternion::rotation_z(0.0) + * Quaternion::rotation_x(0.0); + next.torso_back.scale = Vec3::one(); + + next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); + next.ears.ori = Quaternion::rotation_x(0.0); + next.ears.scale = Vec3::one() * 1.02; + + if random > 0.5 { + next.leg_fl.offset = Vec3::new( + -skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1, + skeleton_attr.leg_f.2, + ); + + next.leg_fl.ori = + Quaternion::rotation_x(short * -0.2) * Quaternion::rotation_y(short * 0.15); + next.leg_fl.scale = Vec3::one(); + + next.leg_fr.offset = Vec3::new( + skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1, + skeleton_attr.leg_f.2 + 1.5, + ); + next.leg_fr.ori = Quaternion::rotation_x(-0.1 + short * -0.2) + * Quaternion::rotation_y(0.2 + short * 0.2); + next.leg_fr.scale = Vec3::one(); + + next.leg_bl.offset = Vec3::new( + -skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1, + skeleton_attr.leg_b.2 - 1.5, + ); + next.leg_bl.ori = + Quaternion::rotation_x(-0.1 + short * -0.2) * Quaternion::rotation_y(short * 0.2); + next.leg_bl.scale = Vec3::one(); + + next.leg_br.offset = Vec3::new( + skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1, + skeleton_attr.leg_b.2 + 1.0, + ); + next.leg_br.ori = Quaternion::rotation_x(-0.1 + short * -0.2) + * Quaternion::rotation_y(0.1 + short * 0.2); + next.leg_br.scale = Vec3::one(); + + next.foot_fl.offset = Vec3::new( + -skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2 + short * -1.5, + ); + next.foot_fl.ori = Quaternion::rotation_x(-0.5 + short * -0.1); + next.foot_fl.scale = Vec3::one(); + + next.foot_fr.offset = Vec3::new( + skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2 + short * -1.5, + ); + next.foot_fr.ori = + Quaternion::rotation_x(-0.2 + short * 0.2) * Quaternion::rotation_y(short * 0.15); + next.foot_fr.scale = Vec3::one(); + + next.foot_bl.offset = Vec3::new( + -skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2 + short * -1.5, + ); + next.foot_bl.ori = + Quaternion::rotation_x(-0.2 + short * 0.2) * Quaternion::rotation_y(short * 0.15); + next.foot_bl.scale = Vec3::one(); + + next.foot_br.offset = Vec3::new( + skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2 + short * -1.5, + ); + next.foot_br.ori = + Quaternion::rotation_x(-0.2 + short * 0.2) * Quaternion::rotation_y(short * 0.15); + next.foot_br.scale = Vec3::one(); + } else { + next.leg_fl.offset = Vec3::new( + -skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1, + skeleton_attr.leg_f.2 + 1.5, + ); + + next.leg_fl.ori = Quaternion::rotation_x(-0.1 + short * -0.2) + * Quaternion::rotation_y(0.2 + short * 0.2); + next.leg_fl.scale = Vec3::one(); + + next.leg_fr.offset = Vec3::new( + skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1, + skeleton_attr.leg_f.2, + ); + next.leg_fr.ori = + Quaternion::rotation_x(short * -0.2) * Quaternion::rotation_y(short * -0.15); + + next.leg_fr.scale = Vec3::one(); + + next.leg_bl.offset = Vec3::new( + -skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1, + skeleton_attr.leg_b.2 + 1.0, + ); + next.leg_bl.ori = Quaternion::rotation_x(-0.1 + short * -0.2) + * Quaternion::rotation_y(0.1 + short * 0.2); + next.leg_bl.scale = Vec3::one(); + + next.leg_br.offset = Vec3::new( + skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1, + skeleton_attr.leg_b.2 - 1.5, + ); + next.leg_br.ori = + Quaternion::rotation_x(-0.1 + short * -0.2) * Quaternion::rotation_y(short * -0.2); + next.leg_br.scale = Vec3::one(); + + next.foot_fl.offset = Vec3::new( + -skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2 + short * -1.5, + ); + next.foot_fl.ori = + Quaternion::rotation_x(-0.2 + short * 0.2) * Quaternion::rotation_y(short * 0.15); + next.foot_fl.scale = Vec3::one(); + + next.foot_fr.offset = Vec3::new( + skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2 + short * -1.5, + ); + next.foot_fr.ori = Quaternion::rotation_x(-0.5 + short * -0.1); + next.foot_fr.scale = Vec3::one(); + + next.foot_bl.offset = Vec3::new( + -skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2 + short * -1.5, + ); + next.foot_bl.ori = + Quaternion::rotation_x(-0.2 + short * 0.2) * Quaternion::rotation_y(short * 0.15); + next.foot_bl.scale = Vec3::one(); + + next.foot_br.offset = Vec3::new( + skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2 + short * -1.5, + ); + next.foot_br.ori = + Quaternion::rotation_x(-0.2 + short * 0.2) * Quaternion::rotation_y(short * 0.15); + next.foot_br.scale = Vec3::one(); + } + next + } +} diff --git a/voxygen/src/anim/src/quadruped_medium/idle.rs b/voxygen/src/anim/src/quadruped_medium/idle.rs index acfa57698e..01f8e467a2 100644 --- a/voxygen/src/anim/src/quadruped_medium/idle.rs +++ b/voxygen/src/anim/src/quadruped_medium/idle.rs @@ -85,9 +85,10 @@ impl Animation for IdleAnimation { 0.0, skeleton_attr.torso_front.0, skeleton_attr.torso_front.1 + slower * 0.3, - ) *skeleton_attr.scaler/11.0; + ) * skeleton_attr.scaler + / 11.0; next.torso_front.ori = Quaternion::rotation_y(slow * 0.02); - next.torso_front.scale = Vec3::one() *skeleton_attr.scaler/11.0; + next.torso_front.scale = Vec3::one() * skeleton_attr.scaler / 11.0; next.torso_back.offset = Vec3::new( 0.0, diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index 624f8bad8f..f89710fcd2 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -1,9 +1,12 @@ +pub mod alpha; pub mod idle; pub mod jump; pub mod run; // Reexports -pub use self::{idle::IdleAnimation, jump::JumpAnimation, run::RunAnimation}; +pub use self::{ + alpha::AlphaAnimation, idle::IdleAnimation, jump::JumpAnimation, run::RunAnimation, +}; use super::{Bone, FigureBoneData, Skeleton}; use common::comp::{self}; @@ -166,10 +169,10 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { Self { head_upper: match (body.species, body.body_type) { (Grolgar, _) => (-8.0, 1.5), - (Saber, _) => (-11.0, -3.0), - (Tuskram, _) => (6.0, 1.0), - (Lion, _) => (12.0, 2.0), - (Tarasque, _) => (5.5, 3.5), + (Saber, _) => (0.0, -3.0), + (Tuskram, _) => (2.0, 1.0), + (Lion, _) => (2.5, 2.0), + (Tarasque, _) => (-5.5, 3.5), (Tiger, _) => (2.0, 1.0), (Wolf, _) => (-0.5, 3.0), (Frostfang, _) => (1.0, -2.0), @@ -188,10 +191,10 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { }, jaw: match (body.species, body.body_type) { (Grolgar, _) => (-2.5, 0.5), - (Saber, _) => (18.0, -1.0), - (Tuskram, _) => (4.0, -4.0), - (Lion, _) => (0.0, -4.5), - (Tarasque, _) => (9.0, -10.0), + (Saber, _) => (12.0, -2.0), + (Tuskram, _) => (10.0, -4.0), + (Lion, _) => (9.0, -4.5), + (Tarasque, _) => (17.5, -10.0), (Tiger, _) => (7.0, -4.0), (Wolf, _) => (5.0, -3.0), (Frostfang, _) => (5.0, -3.0), @@ -232,10 +235,10 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { }, ears: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 9.5), - (Saber, _) => (13.0, 7.0), - (Tuskram, _) => (1.5, 9.5), - (Lion, _) => (-8.0, 4.5), - (Tarasque, _) => (3.0, 1.0), + (Saber, _) => (12.0, 7.0), + (Tuskram, _) => (5.5, 12.5), + (Lion, _) => (2.0, 4.5), + (Tarasque, _) => (11.0, 1.0), (Tiger, _) => (2.5, 5.0), (Wolf, _) => (3.0, 5.0), (Frostfang, _) => (2.0, 5.0), diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index c844e14a73..788bbca79b 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -24,7 +24,11 @@ impl Animation for RunAnimation { *rate = 1.0; let lab = 0.6; - let speedmult = if speed > 8.0 { 1.2* (1.0/skeleton_attr.scaler) } else { 1.0*(1.0/skeleton_attr.scaler) }; + let speedmult = if speed > 8.0 { + 1.2 * (1.0 / skeleton_attr.scaler) + } else { + 1.0 * (1.0 / skeleton_attr.scaler) + }; let short = (((1.0) / (0.72 @@ -107,7 +111,7 @@ impl Animation for RunAnimation { .max(0.2); let horichest = (anim_time as f32 * lab as f32 * speedmult + PI * 0.8).sin(); -// + // let ori = Vec2::from(orientation); let last_ori = Vec2::from(last_ori); let tilt = if Vec2::new(ori, last_ori) @@ -121,12 +125,12 @@ impl Animation for RunAnimation { } else { 0.0 } * 1.3; -//let tilt = 0.0; + //let tilt = 0.0; if speed < 8.0 { //Trot next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); - next.head_upper.ori = Quaternion::rotation_x(0.0) * Quaternion::rotation_z(tilt *-1.2); + next.head_upper.ori = Quaternion::rotation_x(0.0) * Quaternion::rotation_z(tilt * -1.2); next.head_upper.scale = Vec3::one(); next.head_lower.offset = Vec3::new( @@ -134,7 +138,7 @@ impl Animation for RunAnimation { skeleton_attr.head_lower.0 + horichest * 0.4, skeleton_attr.head_lower.1 + vertchest * -0.8, ); - next.head_lower.ori = Quaternion::rotation_z(tilt *-0.8); + next.head_lower.ori = Quaternion::rotation_z(tilt * -0.8); next.head_lower.scale = Vec3::one() * 1.02; next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); @@ -142,20 +146,23 @@ impl Animation for RunAnimation { next.jaw.scale = Vec3::one() * 1.02; next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); - next.tail.ori = Quaternion::rotation_x(shortalt * 0.08)* Quaternion::rotation_z(tilt *1.5); + next.tail.ori = + Quaternion::rotation_x(shortalt * 0.08) * Quaternion::rotation_z(tilt * 1.5); next.tail.scale = Vec3::one(); next.torso_front.offset = Vec3::new( 0.0, skeleton_attr.torso_front.0, skeleton_attr.torso_front.1 + shortalt * 0.8, - ) *skeleton_attr.scaler/11.0; + ) * skeleton_attr.scaler + / 11.0; next.torso_front.ori = Quaternion::rotation_x(short * 0.03); - next.torso_front.scale = Vec3::one() *skeleton_attr.scaler/11.0; + next.torso_front.scale = Vec3::one() * skeleton_attr.scaler / 11.0; next.torso_back.offset = Vec3::new(0.0, skeleton_attr.torso_back.0, skeleton_attr.torso_back.1); - next.torso_back.ori = Quaternion::rotation_x(short * -0.03)*Quaternion::rotation_z(tilt*1.8); + next.torso_back.ori = + Quaternion::rotation_x(short * -0.03) * Quaternion::rotation_z(tilt * 1.8); next.torso_back.scale = Vec3::one(); next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); @@ -168,7 +175,8 @@ impl Animation for RunAnimation { skeleton_attr.leg_f.1 + foothoril * -1.0, skeleton_attr.leg_f.2 + footvertl * -0.4, ); - next.leg_fl.ori = Quaternion::rotation_x(footrotl * -0.3)*Quaternion::rotation_z(tilt * -1.5); + next.leg_fl.ori = + Quaternion::rotation_x(footrotl * -0.3) * Quaternion::rotation_z(tilt * -1.5); next.leg_fl.scale = Vec3::one() * 0.99; next.leg_fr.offset = Vec3::new( @@ -176,7 +184,8 @@ impl Animation for RunAnimation { skeleton_attr.leg_f.1 + foothorir * -1.0, skeleton_attr.leg_f.2 + footvertr * -0.4, ); - next.leg_fr.ori = Quaternion::rotation_x(footrotr * -0.3)*Quaternion::rotation_z(tilt * -1.5); + next.leg_fr.ori = + Quaternion::rotation_x(footrotr * -0.3) * Quaternion::rotation_z(tilt * -1.5); next.leg_fr.scale = Vec3::one() * 0.99; next.leg_bl.offset = Vec3::new( @@ -184,7 +193,8 @@ impl Animation for RunAnimation { skeleton_attr.leg_b.1 + foothorilb * -1.0, skeleton_attr.leg_b.2 + footvertlb * -0.4, ); - next.leg_bl.ori = Quaternion::rotation_x(footrotlb * -0.3)*Quaternion::rotation_z(tilt * -1.5); + next.leg_bl.ori = + Quaternion::rotation_x(footrotlb * -0.3) * Quaternion::rotation_z(tilt * -1.5); next.leg_bl.scale = Vec3::one() * 0.99; next.leg_br.offset = Vec3::new( @@ -192,7 +202,8 @@ impl Animation for RunAnimation { skeleton_attr.leg_b.1 + foothorirb * -1.0, skeleton_attr.leg_b.2 + footvertrb * -0.4, ); - next.leg_br.ori = Quaternion::rotation_x(footrotrb * -0.3)*Quaternion::rotation_z(tilt * -1.5); + next.leg_br.ori = + Quaternion::rotation_x(footrotrb * -0.3) * Quaternion::rotation_z(tilt * -1.5); next.leg_br.scale = Vec3::one() * 0.99; next.foot_fl.offset = Vec3::new( @@ -230,7 +241,8 @@ impl Animation for RunAnimation { //Gallop next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); - next.head_upper.ori = Quaternion::rotation_x(0.0) * Quaternion::rotation_z(tilt *-1.2); + next.head_upper.ori = + Quaternion::rotation_x(short * -0.18) * Quaternion::rotation_z(tilt * -1.2); next.head_upper.scale = Vec3::one(); next.head_lower.offset = Vec3::new( @@ -238,7 +250,7 @@ impl Animation for RunAnimation { skeleton_attr.head_lower.0 + horichest * 0.4, skeleton_attr.head_lower.1 + vertchest * -0.8, ); - next.head_lower.ori = Quaternion::rotation_z(tilt *-0.8); + next.head_lower.ori = Quaternion::rotation_z(tilt * -0.8); next.head_lower.scale = Vec3::one() * 1.02; next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); @@ -246,20 +258,24 @@ impl Animation for RunAnimation { next.jaw.scale = Vec3::one() * 1.02; next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); - next.tail.ori = Quaternion::rotation_x(shortalt * 0.3)*Quaternion::rotation_z(tilt * 1.5); + next.tail.ori = + Quaternion::rotation_x(shortalt * 0.3) * Quaternion::rotation_z(tilt * 1.5); next.tail.scale = Vec3::one(); next.torso_front.offset = Vec3::new( 0.0, skeleton_attr.torso_front.0, skeleton_attr.torso_front.1 + shortalt * 2.0, - ) *skeleton_attr.scaler/11.0; - next.torso_front.ori = Quaternion::rotation_x(short * 0.13)*Quaternion::rotation_z(tilt * -1.5); - next.torso_front.scale = Vec3::one() *skeleton_attr.scaler/11.0; + ) * skeleton_attr.scaler + / 11.0; + next.torso_front.ori = + Quaternion::rotation_x(short * 0.13) * Quaternion::rotation_z(tilt * -1.5); + next.torso_front.scale = Vec3::one() * skeleton_attr.scaler / 11.0; next.torso_back.offset = Vec3::new(0.0, skeleton_attr.torso_back.0, skeleton_attr.torso_back.1); - next.torso_back.ori = Quaternion::rotation_x(short * 0.1)*Quaternion::rotation_z(tilt*1.8); + next.torso_back.ori = + Quaternion::rotation_x(short * 0.1) * Quaternion::rotation_z(tilt * 1.8); next.torso_back.scale = Vec3::one(); next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); @@ -272,7 +288,8 @@ impl Animation for RunAnimation { skeleton_attr.leg_f.1 + foothoril * -2.5, skeleton_attr.leg_f.2 + 1.0 + footvertl * -1.0, ); - next.leg_fl.ori = Quaternion::rotation_x(footrotl * -0.6)*Quaternion::rotation_z(tilt * -0.5); + next.leg_fl.ori = + Quaternion::rotation_x(footrotl * -0.6) * Quaternion::rotation_z(tilt * -0.5); next.leg_fl.scale = Vec3::one() * 0.99; next.leg_fr.offset = Vec3::new( @@ -280,7 +297,8 @@ impl Animation for RunAnimation { skeleton_attr.leg_f.1 + foothoril * -2.5, skeleton_attr.leg_f.2 + 1.0 + footvertl * -1.0, ); - next.leg_fr.ori = Quaternion::rotation_x(footrotl * -0.6)*Quaternion::rotation_z(tilt * -0.5); + next.leg_fr.ori = + Quaternion::rotation_x(footrotl * -0.6) * Quaternion::rotation_z(tilt * -0.5); next.leg_fr.scale = Vec3::one() * 0.99; next.leg_bl.offset = Vec3::new( @@ -288,7 +306,8 @@ impl Animation for RunAnimation { skeleton_attr.leg_b.1 + foothorirb * -2.5, skeleton_attr.leg_b.2 + 1.0 + footvertrb * -1.2, ); - next.leg_bl.ori = Quaternion::rotation_x(footrotrb * -0.6)*Quaternion::rotation_z(tilt * -1.5); + next.leg_bl.ori = + Quaternion::rotation_x(footrotrb * -0.6) * Quaternion::rotation_z(tilt * -1.5); next.leg_bl.scale = Vec3::one() * 0.99; next.leg_br.offset = Vec3::new( @@ -296,7 +315,8 @@ impl Animation for RunAnimation { skeleton_attr.leg_b.1 + foothorirb * -2.5, skeleton_attr.leg_b.2 + 1.0 + footvertrb * -1.2, ); - next.leg_br.ori = Quaternion::rotation_x(footrotrb * -0.6)*Quaternion::rotation_z(tilt * -1.5); + next.leg_br.ori = + Quaternion::rotation_x(footrotrb * -0.6) * Quaternion::rotation_z(tilt * -1.5); next.leg_br.scale = Vec3::one() * 0.99; next.foot_fl.offset = Vec3::new( diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs index 4cc3ae951f..3b0a79c3e2 100644 --- a/voxygen/src/scene/figure/mod.rs +++ b/voxygen/src/scene/figure/mod.rs @@ -911,7 +911,6 @@ impl FigureMgr { &mut state_animation_rate, skeleton_attr, ), - // TODO! _ => state.skeleton_mut().clone(), }; @@ -975,15 +974,13 @@ impl FigureMgr { ) }, // Running - (true, true, false) => { - anim::quadruped_medium::RunAnimation::update_skeleton( - &QuadrupedMediumSkeleton::new(), - (vel.0.magnitude(), ori, state.last_ori, time), - state.state_time, - &mut state_animation_rate, - skeleton_attr, - ) - }, + (true, true, _) => anim::quadruped_medium::RunAnimation::update_skeleton( + &QuadrupedMediumSkeleton::new(), + (vel.0.magnitude(), ori, state.last_ori, time), + state.state_time, + &mut state_animation_rate, + skeleton_attr, + ), // In air (false, _, false) => { anim::quadruped_medium::JumpAnimation::update_skeleton( @@ -994,12 +991,29 @@ impl FigureMgr { skeleton_attr, ) }, - + _ => anim::quadruped_medium::IdleAnimation::update_skeleton( + &QuadrupedMediumSkeleton::new(), + time, + state.state_time, + &mut state_animation_rate, + skeleton_attr, + ), + }; + let target_bones = match &character { + CharacterState::BasicMelee(_) => { + anim::quadruped_medium::AlphaAnimation::update_skeleton( + &target_base, + time, + state.state_time, + &mut state_animation_rate, + skeleton_attr, + ) + }, // TODO! - _ => state.skeleton_mut().clone(), + _ => target_base, }; - state.skeleton.interpolate(&target_base, dt); + state.skeleton.interpolate(&target_bones, dt); state.update( renderer, pos.0, From bd87b13db014e7fc2667bbcb3968d5432d742d14 Mon Sep 17 00:00:00 2001 From: Snowram Date: Wed, 1 Jul 2020 02:38:03 +0200 Subject: [PATCH 34/48] Add offset to quadmed legs + various fixes and improvements --- .../voxygen/voxel/npc/mouflon/female/tail.vox | Bin 1192 -> 1344 bytes .../voxygen/voxel/npc/mouflon/male/tail.vox | Bin 1192 -> 1344 bytes .../quadruped_medium_central_manifest.ron | 36 +++++++++--------- voxygen/src/anim/src/quadruped_medium/mod.rs | 32 ++++++++-------- voxygen/src/anim/src/quadruped_medium/run.rs | 36 +++++++++--------- 5 files changed, 52 insertions(+), 52 deletions(-) diff --git a/assets/voxygen/voxel/npc/mouflon/female/tail.vox b/assets/voxygen/voxel/npc/mouflon/female/tail.vox index 630390e7a201bf2b0be819d1445b0d854c1c2c65..fabd112e563d286677b1551ec2ce118a4f82a4b4 100644 GIT binary patch delta 237 zcmWlTI|>3Z6h+^=FF};qfSsgv4Z=WVm_jW?8D}%D!N$r3*t!E3X5q<$lgmB%koWSt z8m^~l^E9(VKOPC&X0!7+@4Hr*1OW?}Zu9sf+w8#Is=$;V!{sjJ>L5?mK^|m~B1Jms zRpOdj;>5l_8k58ReM*q(MLe Wh#46fT$q3u$eQRLy4i%0hXnv6FAEC* diff --git a/assets/voxygen/voxel/npc/mouflon/male/tail.vox b/assets/voxygen/voxel/npc/mouflon/male/tail.vox index 630390e7a201bf2b0be819d1445b0d854c1c2c65..fabd112e563d286677b1551ec2ce118a4f82a4b4 100644 GIT binary patch delta 237 zcmWlTI|>3Z6h+^=FF};qfSsgv4Z=WVm_jW?8D}%D!N$r3*t!E3X5q<$lgmB%koWSt z8m^~l^E9(VKOPC&X0!7+@4Hr*1OW?}Zu9sf+w8#Is=$;V!{sjJ>L5?mK^|m~B1Jms zRpOdj;>5l_8k58ReM*q(MLe Wh#46fT$q3u$eQRLy4i%0hXnv6FAEC* diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index 152f6a89e1..31fb33e58d 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -21,7 +21,7 @@ central: ("npc.grolgar.male.torso_back"), ), ears: ( - offset: (-4.0, -1.0, -1.5), + offset: (-4.0, -1.0, 0.0), central: ("npc.grolgar.male.ears"), ), tail: ( @@ -51,7 +51,7 @@ central: ("npc.grolgar.female.torso_back"), ), ears: ( - offset: (-4.0, -1.0, -1.5), + offset: (-4.0, -1.0, 0.0), central: ("npc.grolgar.female.ears"), ), tail: ( @@ -69,7 +69,7 @@ central: ("npc.saber.male.head_lower"), ), jaw: ( - offset: (-2.0, -7.0, -1.5), + offset: (-2.5, -7.0, -1.5), central: ("npc.saber.male.jaw"), ), torso_front: ( @@ -81,7 +81,7 @@ central: ("npc.saber.male.torso_back"), ), ears: ( - offset: (-5.5, -1.0, -1.5), + offset: (-5.5, -1.0, 0.0), central: ("npc.saber.male.ears"), ), tail: ( @@ -99,7 +99,7 @@ central: ("npc.saber.female.head_lower"), ), jaw: ( - offset: (-2.0, -7.0, -1.5), + offset: (-2.5, -7.0, -1.5), central: ("npc.saber.female.jaw"), ), torso_front: ( @@ -111,7 +111,7 @@ central: ("npc.saber.female.torso_back"), ), ears: ( - offset: (-5.5, -1.0, -1.5), + offset: (-5.5, -1.0, 0.0), central: ("npc.saber.female.ears"), ), tail: ( @@ -141,7 +141,7 @@ central: ("npc.tuskram.male.torso_back"), ), ears: ( - offset: (-0.5, -0.5, -0.5), + offset: (-0.5, -0.5, 0.0), central: ("armor.empty"), ), tail: ( @@ -171,7 +171,7 @@ central: ("npc.tuskram.female.torso_back"), ), ears: ( - offset: (-0.5, -0.5, -0.5), + offset: (-0.5, -0.5, -0.0), central: ("armor.empty"), ), tail: ( @@ -201,7 +201,7 @@ central: ("npc.lion.male.torso_back"), ), ears: ( - offset: (-4.5, -1.0, -1.0), + offset: (-4.5, -1.0, 0.0), central: ("npc.lion.male.ears"), ), tail: ( @@ -231,7 +231,7 @@ central: ("npc.lion.female.torso_back"), ), ears: ( - offset: (-4.5, -1.0, -1.0), + offset: (-4.5, -1.0, 0.0), central: ("npc.lion.female.ears"), ), tail: ( @@ -261,7 +261,7 @@ central: ("npc.tarasque.male.torso_back"), ), ears: ( - offset: (-6.0, -1.0, -4.0), + offset: (-6.0, -1.0, 0.0), central: ("npc.tarasque.male.ears"), ), tail: ( @@ -291,7 +291,7 @@ central: ("npc.tarasque.female.torso_back"), ), ears: ( - offset: (-6.0, -1.0, -4.0), + offset: (-6.0, -1.0, 0.0), central: ("npc.tarasque.female.ears"), ), tail: ( @@ -321,7 +321,7 @@ central: ("npc.tiger.male.torso_back"), ), ears: ( - offset: (-4.5, -1.0, -1.0), + offset: (-4.5, -1.0, 0.0), central: ("npc.tiger.male.ears"), ), tail: ( @@ -351,7 +351,7 @@ central: ("npc.tiger.female.torso_back"), ), ears: ( - offset: (-4.5, -1.0, -1.0), + offset: (-4.5, -1.0, 0.0), central: ("npc.tiger.female.ears"), ), tail: ( @@ -381,7 +381,7 @@ central: ("npc.wolf.male.torso_back"), ), ears: ( - offset: (-5.0, -1.0, -2.5), + offset: (-5.0, -1.0, 0.0), central: ("npc.wolf.male.ears"), ), tail: ( @@ -411,7 +411,7 @@ central: ("npc.wolf.female.torso_back"), ), ears: ( - offset: (-5.0, -1.0, -2.5), + offset: (-5.0, -1.0, 0.0), central: ("npc.wolf.female.ears"), ), tail: ( @@ -441,7 +441,7 @@ central: ("npc.frostfang.male.torso_back"), ), ears: ( - offset: (-4.0, -1.0, -1.5), + offset: (-4.0, -1.0, 0.0), central: ("npc.frostfang.male.ears"), ), tail: ( @@ -471,7 +471,7 @@ central: ("npc.frostfang.female.torso_back"), ), ears: ( - offset: (-4.0, -1.0, -1.5), + offset: (-4.0, -1.0, 0.0), central: ("npc.frostfang.female.ears"), ), tail: ( diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index f89710fcd2..0acb680f60 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -169,10 +169,10 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { Self { head_upper: match (body.species, body.body_type) { (Grolgar, _) => (-8.0, 1.5), - (Saber, _) => (0.0, -3.0), + (Saber, _) => (-10.0, -3.0), (Tuskram, _) => (2.0, 1.0), - (Lion, _) => (2.5, 2.0), - (Tarasque, _) => (-5.5, 3.5), + (Lion, _) => (12.5, 2.0), + (Tarasque, _) => (5.5, 3.5), (Tiger, _) => (2.0, 1.0), (Wolf, _) => (-0.5, 3.0), (Frostfang, _) => (1.0, -2.0), @@ -191,10 +191,10 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { }, jaw: match (body.species, body.body_type) { (Grolgar, _) => (-2.5, 0.5), - (Saber, _) => (12.0, -2.0), - (Tuskram, _) => (10.0, -4.0), - (Lion, _) => (9.0, -4.5), - (Tarasque, _) => (17.5, -10.0), + (Saber, _) => (21.0, -2.0), + (Tuskram, _) => (1.5, -4.0), + (Lion, _) => (0.0, -4.5), + (Tarasque, _) => (9.0, -10.0), (Tiger, _) => (7.0, -4.0), (Wolf, _) => (5.0, -3.0), (Frostfang, _) => (5.0, -3.0), @@ -209,7 +209,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tiger, _) => (-12.5, -7.0), (Wolf, _) => (-11.0, 0.0), (Frostfang, _) => (-7.0, -3.5), - (Mouflon, _) => (-12.0, 1.5), + (Mouflon, _) => (-10.5, 3.0), }, torso_front: match (body.species, body.body_type) { (Grolgar, _) => (10.0, 11.0), @@ -234,14 +234,14 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Mouflon, _) => (-8.5, -0.5), }, ears: match (body.species, body.body_type) { - (Grolgar, _) => (5.0, 9.5), - (Saber, _) => (12.0, 7.0), - (Tuskram, _) => (5.5, 12.5), - (Lion, _) => (2.0, 4.5), - (Tarasque, _) => (11.0, 1.0), - (Tiger, _) => (2.5, 5.0), - (Wolf, _) => (3.0, 5.0), - (Frostfang, _) => (2.0, 5.0), + (Grolgar, _) => (5.0, 8.0), + (Saber, _) => (12.0, 5.5), + (Tuskram, _) => (5.5, 12.0), + (Lion, _) => (-7.0, 3.5), + (Tarasque, _) => (2.0, -3.0), + (Tiger, _) => (2.5, 4.0), + (Wolf, _) => (3.0, 2.5), + (Frostfang, _) => (2.0, 3.5), (Mouflon, _) => (2.5, 5.0), }, leg_f: match (body.species, body.body_type) { diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index 788bbca79b..a215431cef 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -66,10 +66,10 @@ impl Animation for RunAnimation { let footrotr = (((1.0) / (0.5 + (0.5) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.4).sin()) + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.8).sin()) .powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.4).sin()); + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.8).sin()); // let foothorilb = (((5.0) / (1.0 @@ -89,14 +89,6 @@ impl Animation for RunAnimation { let footvertrb = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.6).sin(); let footrotlb = (((1.0) - / (0.5 - + (0.5) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.0).sin()) - .powf(2.0 as f32))) - .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.0).sin()); - - let footrotrb = (((1.0) / (0.5 + (0.5) * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.0).sin()) @@ -104,6 +96,14 @@ impl Animation for RunAnimation { .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.0).sin()); + let footrotrb = (((1.0) + / (0.5 + + (0.5) + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.4).sin()) + .powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.4).sin()); + let shortalt = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.5).sin(); let vertchest = (anim_time as f32 * lab as f32 * speedmult + PI * 0.3) @@ -160,13 +160,13 @@ impl Animation for RunAnimation { next.torso_front.scale = Vec3::one() * skeleton_attr.scaler / 11.0; next.torso_back.offset = - Vec3::new(0.0, skeleton_attr.torso_back.0, skeleton_attr.torso_back.1); + Vec3::new(0.0, skeleton_attr.torso_back.0, skeleton_attr.torso_back.1 + shortalt * 0.2 - 0.2); next.torso_back.ori = Quaternion::rotation_x(short * -0.03) * Quaternion::rotation_z(tilt * 1.8); next.torso_back.scale = Vec3::one(); next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); - next.ears.ori = Quaternion::rotation_x(0.0); + next.ears.ori = Quaternion::rotation_x(shortalt * 0.2 + 0.2); next.ears.scale = Vec3::one() * 1.02; ////left and right functions currently swapped on some bones to change gait @@ -273,13 +273,13 @@ impl Animation for RunAnimation { next.torso_front.scale = Vec3::one() * skeleton_attr.scaler / 11.0; next.torso_back.offset = - Vec3::new(0.0, skeleton_attr.torso_back.0, skeleton_attr.torso_back.1); + Vec3::new(0.0, skeleton_attr.torso_back.0, skeleton_attr.torso_back.1 + shortalt * 0.2 - 0.2); next.torso_back.ori = Quaternion::rotation_x(short * 0.1) * Quaternion::rotation_z(tilt * 1.8); next.torso_back.scale = Vec3::one(); next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); - next.ears.ori = Quaternion::rotation_x(0.0); + next.ears.ori = Quaternion::rotation_x(shortalt * 0.2 + 0.2); next.ears.scale = Vec3::one() * 1.02; ////left and right functions currently swapped on some bones to change gait @@ -298,7 +298,7 @@ impl Animation for RunAnimation { skeleton_attr.leg_f.2 + 1.0 + footvertl * -1.0, ); next.leg_fr.ori = - Quaternion::rotation_x(footrotl * -0.6) * Quaternion::rotation_z(tilt * -0.5); + Quaternion::rotation_x(footrotr * -0.6) * Quaternion::rotation_z(tilt * -0.5); next.leg_fr.scale = Vec3::one() * 0.99; next.leg_bl.offset = Vec3::new( @@ -307,7 +307,7 @@ impl Animation for RunAnimation { skeleton_attr.leg_b.2 + 1.0 + footvertrb * -1.2, ); next.leg_bl.ori = - Quaternion::rotation_x(footrotrb * -0.6) * Quaternion::rotation_z(tilt * -1.5); + Quaternion::rotation_x(footrotlb * -0.6) * Quaternion::rotation_z(tilt * -1.5); next.leg_bl.scale = Vec3::one() * 0.99; next.leg_br.offset = Vec3::new( @@ -332,7 +332,7 @@ impl Animation for RunAnimation { skeleton_attr.feet_f.1, skeleton_attr.feet_f.2 + 2.0 + ((footvertl * -2.0).max(-1.0)), ); - next.foot_fr.ori = Quaternion::rotation_x(footrotl * -0.7); + next.foot_fr.ori = Quaternion::rotation_x(footrotr * -0.7); next.foot_fr.scale = Vec3::one() * 0.98; next.foot_bl.offset = Vec3::new( @@ -340,7 +340,7 @@ impl Animation for RunAnimation { skeleton_attr.feet_b.1, skeleton_attr.feet_b.2 + 2.0 + ((footvertrb * -2.0).max(-1.0)), ); - next.foot_bl.ori = Quaternion::rotation_x(footrotrb * -0.7); + next.foot_bl.ori = Quaternion::rotation_x(footrotlb * -0.7); next.foot_bl.scale = Vec3::one() * 0.98; next.foot_br.offset = Vec3::new( From 21b6b3affb9a06fe8ff1f7e8e751b66191f81132 Mon Sep 17 00:00:00 2001 From: jshipsey Date: Wed, 1 Jul 2020 01:26:59 -0400 Subject: [PATCH 35/48] simplify quadmed run, integrate dampener variable --- .../voxygen/voxel/npc/wolf/male/foot_bl.vox | Bin 1456 -> 1500 bytes .../voxygen/voxel/npc/wolf/male/foot_br.vox | Bin 1456 -> 1496 bytes .../voxygen/voxel/npc/wolf/male/foot_fl.vox | Bin 1456 -> 1500 bytes .../voxygen/voxel/npc/wolf/male/foot_fr.vox | Bin 1456 -> 1500 bytes .../quadruped_medium_central_manifest.ron | 40 +++--- .../quadruped_medium_lateral_manifest.ron | 16 +-- voxygen/src/anim/src/quadruped_medium/mod.rs | 51 ++++--- voxygen/src/anim/src/quadruped_medium/run.rs | 126 +++++------------- 8 files changed, 94 insertions(+), 139 deletions(-) diff --git a/assets/voxygen/voxel/npc/wolf/male/foot_bl.vox b/assets/voxygen/voxel/npc/wolf/male/foot_bl.vox index f547d166be1290e946d5e075bbb3c26e38d0d907..c965e251ebb6872dc3f69dc11cad3bf5460cfed7 100644 GIT binary patch delta 97 zcmdnMeTQ2x%s)b58Uq7^ucN0QkYYG7QBYiv3&@CwjPjhp2ohpoNZn|e&8Wl3#96?^ q2*gaB`Ap25`HYM}nt`)`5r`R>IP(~oIrA8Sn1PWqZ}SpH9u@$F!w{+f delta 52 zcmcb^y@6XW%s)b58Uq7^ucN0QkYboKQBYiv6Uc~&jPlH31PL)PL~XRpX54&%k%t8U DF)|AP diff --git a/assets/voxygen/voxel/npc/wolf/male/foot_br.vox b/assets/voxygen/voxel/npc/wolf/male/foot_br.vox index 8e0c3212f99bfc75a74f702fcb66d699f26a2de1..9d006d34f2354bd3dee5b40917720147c69bda68 100644 GIT binary patch delta 92 zcmdnMeS=#t%s)b58Uq7^ucN0QkYYG8QBYiv3&@CwjPjhq2ohpoNZDwa&8W`E%$di; m1jNjoxr|Jl1q{rb`3xYMfwO>-0mx?L%x7fe+`O2PmjwVZtPiUI delta 52 zcmcb?y@6XW%s)b58Uq7^ucN0QkYboKQBYiv6Uc~&jPlH31PL)PL~XRpX54&+k%t8U DFj5Nm diff --git a/assets/voxygen/voxel/npc/wolf/male/foot_fl.vox b/assets/voxygen/voxel/npc/wolf/male/foot_fl.vox index a31452a6d847c0967e04dfeb5e636f5999dd8611..33ad5e79d74c83b43f935c3db33ac900e8745d89 100644 GIT binary patch delta 97 zcmdnMeTQ2x%s)b58Uq7^ucN0QkYYG7QBYiv3&@CwjPjhp2ohpoNZn|e&8Wl3#F@{; n48$Osk+Xmigc&#sn1Gmpi8GIZku#TpnKPFWh&L}` std::convert::TryFrom<&'a comp::Body> for SkeletonAttr { @@ -159,6 +160,7 @@ impl Default for SkeletonAttr { feet_f: (0.0, 0.0, 0.0), feet_b: (0.0, 0.0, 0.0), scaler: 0.0, + dampen: 0.0, } } } @@ -169,14 +171,14 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { Self { head_upper: match (body.species, body.body_type) { (Grolgar, _) => (-8.0, 1.5), - (Saber, _) => (-10.0, -3.0), - (Tuskram, _) => (2.0, 1.0), - (Lion, _) => (12.5, 2.0), - (Tarasque, _) => (5.5, 3.5), + (Saber, _) => (0.0, -3.0), + (Tuskram, _) => (0.0, 1.0), + (Lion, _) => (2.5, 2.0), + (Tarasque, _) => (-4.0, 3.5), (Tiger, _) => (2.0, 1.0), (Wolf, _) => (-0.5, 3.0), (Frostfang, _) => (1.0, -2.0), - (Mouflon, _) => (-5.5, 6.0), + (Mouflon, _) => (-2.5, 6.0), }, head_lower: match (body.species, body.body_type) { (Grolgar, _) => (3.5, -3.0), @@ -190,12 +192,12 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Mouflon, _) => (-1.0, 0.5), }, jaw: match (body.species, body.body_type) { - (Grolgar, _) => (-2.5, 0.5), - (Saber, _) => (21.0, -2.0), - (Tuskram, _) => (1.5, -4.0), - (Lion, _) => (0.0, -4.5), + (Grolgar, _) => (8.5, 4.5), + (Saber, _) => (3.5, -2.0), + (Tuskram, _) => (5.5, -4.0), + (Lion, _) => (3.5, -4.5), (Tarasque, _) => (9.0, -10.0), - (Tiger, _) => (7.0, -4.0), + (Tiger, _) => (3.5, -4.0), (Wolf, _) => (5.0, -3.0), (Frostfang, _) => (5.0, -3.0), (Mouflon, _) => (10.5, -4.0), @@ -214,11 +216,11 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { torso_front: match (body.species, body.body_type) { (Grolgar, _) => (10.0, 11.0), (Saber, _) => (14.0, 13.0), - (Tuskram, _) => (10.0, 15.5), + (Tuskram, _) => (10.0, 14.5), (Lion, _) => (10.0, 13.0), (Tarasque, _) => (11.5, 18.5), (Tiger, _) => (10.0, 14.0), - (Wolf, _) => (12.0, 14.0), + (Wolf, _) => (12.0, 13.0), (Frostfang, _) => (9.0, 11.5), (Mouflon, _) => (11.0, 13.5), }, @@ -235,10 +237,10 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { }, ears: match (body.species, body.body_type) { (Grolgar, _) => (5.0, 8.0), - (Saber, _) => (12.0, 5.5), + (Saber, _) => (3.0, 5.5), (Tuskram, _) => (5.5, 12.0), - (Lion, _) => (-7.0, 3.5), - (Tarasque, _) => (2.0, -3.0), + (Lion, _) => (2.0, 3.5), + (Tarasque, _) => (11.0, -3.0), (Tiger, _) => (2.5, 4.0), (Wolf, _) => (3.0, 2.5), (Frostfang, _) => (2.0, 3.5), @@ -269,22 +271,22 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { feet_f: match (body.species, body.body_type) { (Grolgar, _) => (0.0, -3.0, -3.0), (Saber, _) => (1.0, 0.0, -1.0), - (Tuskram, _) => (0.5, 0.5, -5.0), + (Tuskram, _) => (0.5, 0.5, -4.0), (Lion, _) => (0.0, 0.0, -1.5), (Tarasque, _) => (1.0, 0.0, -3.0), (Tiger, _) => (0.5, 0.0, -5.0), - (Wolf, _) => (0.5, -1.0, -3.5), + (Wolf, _) => (0.5, 0.0, -2.0), (Frostfang, _) => (0.5, 1.5, -3.5), (Mouflon, _) => (-0.5, -0.5, -1.5), }, feet_b: match (body.species, body.body_type) { (Grolgar, _) => (0.0, 0.0, -5.0), (Saber, _) => (1.0, -2.0, 0.0), - (Tuskram, _) => (0.5, 0.0, -4.0), + (Tuskram, _) => (0.5, 0.0, -3.0), (Lion, _) => (0.5, 0.5, -4.0), (Tarasque, _) => (1.5, -1.0, -2.5), (Tiger, _) => (1.0, 0.5, -4.0), - (Wolf, _) => (0.0, -2.0, -3.0), + (Wolf, _) => (0.0, -1.0, -1.5), (Frostfang, _) => (0.0, -1.5, -3.5), (Mouflon, _) => (-1.0, -1.5, -2.5), }, @@ -299,6 +301,17 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Frostfang, _) => (1.0), (Mouflon, _) => (1.0), }, + dampen: match (body.species, body.body_type) { + (Grolgar, _) => (0.5), + (Saber, _) => (0.7), + (Tuskram, _) => (0.9), + (Lion, _) => (0.7), + (Tarasque, _) => (0.7), + (Tiger, _) => (0.6), + (Wolf, _) => (1.0), + (Frostfang, _) => (1.0), + (Mouflon, _) => (1.0), + }, } } } diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index a215431cef..b978c82579 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -22,7 +22,7 @@ impl Animation for RunAnimation { let mut next = (*skeleton).clone(); let speed = Vec2::::from(velocity).magnitude(); *rate = 1.0; - let lab = 0.6; + let lab = 0.6; //6 let speedmult = if speed > 8.0 { 1.2 * (1.0 / skeleton_attr.scaler) @@ -38,71 +38,7 @@ impl Animation for RunAnimation { .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.0).sin()); - let foothoril = (((1.0) - / (0.5 - + (0.5) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.45).sin()) - .powf(2.0 as f32))) - .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.45).sin()); - let foothorir = (((1.0) - / (0.2 - + (0.8) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.45).sin()) - .powf(2.0 as f32))) - .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.45).sin()); - let footvertl = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.0).sin(); - let footvertr = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI).sin(); - - let footrotl = (((1.0) - / (0.5 - + (0.5) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.4).sin()) - .powf(2.0 as f32))) - .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.4).sin()); - - let footrotr = (((1.0) - / (0.5 - + (0.5) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.8).sin()) - .powf(2.0 as f32))) - .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.8).sin()); // - let foothorilb = (((5.0) - / (1.0 - + (4.0) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.05).sin()) - .powf(2.0 as f32))) - .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.05).sin()); - let foothorirb = (((1.0) - / (0.2 - + (0.8) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.05).sin()) - .powf(2.0 as f32))) - .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.05).sin()); - let footvertlb = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * (-0.4)).sin(); - let footvertrb = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.6).sin(); - - let footrotlb = (((1.0) - / (0.5 - + (0.5) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.0).sin()) - .powf(2.0 as f32))) - .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.0).sin()); - - let footrotrb = (((1.0) - / (0.5 - + (0.5) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.4).sin()) - .powf(2.0 as f32))) - .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.4).sin()); let shortalt = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.5).sin(); @@ -127,7 +63,7 @@ impl Animation for RunAnimation { } * 1.3; //let tilt = 0.0; if speed < 8.0 { - //Trot + /* //Trot next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); next.head_upper.ori = Quaternion::rotation_x(0.0) * Quaternion::rotation_z(tilt * -1.2); @@ -236,7 +172,7 @@ impl Animation for RunAnimation { skeleton_attr.feet_b.2 + 1.0 + ((footvertrb * -1.0).max(-1.0)), ); next.foot_br.ori = Quaternion::rotation_x(footrotrb * -0.3); - next.foot_br.scale = Vec3::one() * 0.98; + next.foot_br.scale = Vec3::one() * 0.98;*/ } else { //Gallop next.head_upper.offset = @@ -272,8 +208,11 @@ impl Animation for RunAnimation { Quaternion::rotation_x(short * 0.13) * Quaternion::rotation_z(tilt * -1.5); next.torso_front.scale = Vec3::one() * skeleton_attr.scaler / 11.0; - next.torso_back.offset = - Vec3::new(0.0, skeleton_attr.torso_back.0, skeleton_attr.torso_back.1 + shortalt * 0.2 - 0.2); + next.torso_back.offset = Vec3::new( + 0.0, + skeleton_attr.torso_back.0, + skeleton_attr.torso_back.1 + shortalt * 0.2 - 0.2, + ); next.torso_back.ori = Quaternion::rotation_x(short * 0.1) * Quaternion::rotation_z(tilt * 1.8); next.torso_back.scale = Vec3::one(); @@ -281,74 +220,77 @@ impl Animation for RunAnimation { next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); next.ears.ori = Quaternion::rotation_x(shortalt * 0.2 + 0.2); next.ears.scale = Vec3::one() * 1.02; - + let footvertl = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.0).sin(); + let footvertlt = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.4).sin(); + let footvertlalt = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.2).sin(); + let footvertltalt = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.6).sin(); ////left and right functions currently swapped on some bones to change gait next.leg_fl.offset = Vec3::new( -skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1 + foothoril * -2.5, - skeleton_attr.leg_f.2 + 1.0 + footvertl * -1.0, + skeleton_attr.leg_f.1 + footvertlalt * -2.0, + skeleton_attr.leg_f.2 + 1.0 + footvertltalt * -1.9, ); next.leg_fl.ori = - Quaternion::rotation_x(footrotl * -0.6) * Quaternion::rotation_z(tilt * -0.5); + Quaternion::rotation_x(footvertltalt * -0.4) * Quaternion::rotation_z(tilt * -0.5); next.leg_fl.scale = Vec3::one() * 0.99; next.leg_fr.offset = Vec3::new( skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1 + foothoril * -2.5, - skeleton_attr.leg_f.2 + 1.0 + footvertl * -1.0, + skeleton_attr.leg_f.1 + footvertlalt * -2.0, + skeleton_attr.leg_f.2 + 1.0 + footvertltalt * -1.9, ); next.leg_fr.ori = - Quaternion::rotation_x(footrotr * -0.6) * Quaternion::rotation_z(tilt * -0.5); + Quaternion::rotation_x(footvertltalt * -0.4) * Quaternion::rotation_z(tilt * -0.5); next.leg_fr.scale = Vec3::one() * 0.99; next.leg_bl.offset = Vec3::new( -skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1 + foothorirb * -2.5, - skeleton_attr.leg_b.2 + 1.0 + footvertrb * -1.2, + skeleton_attr.leg_b.1 + footvertl * -1.7, + skeleton_attr.leg_b.2 + 1.0 + footvertlt * -1.5, ); - next.leg_bl.ori = - Quaternion::rotation_x(footrotlb * -0.6) * Quaternion::rotation_z(tilt * -1.5); + next.leg_bl.ori = Quaternion::rotation_x(footvertlt * -0.4 - 0.2) + * Quaternion::rotation_z(tilt * -1.5); next.leg_bl.scale = Vec3::one() * 0.99; next.leg_br.offset = Vec3::new( skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1 + foothorirb * -2.5, - skeleton_attr.leg_b.2 + 1.0 + footvertrb * -1.2, + skeleton_attr.leg_b.1 + footvertl * -1.7, + skeleton_attr.leg_b.2 + 1.0 + footvertlt * -1.5, ); - next.leg_br.ori = - Quaternion::rotation_x(footrotrb * -0.6) * Quaternion::rotation_z(tilt * -1.5); + next.leg_br.ori = Quaternion::rotation_x(footvertlt * -0.4 - 0.2) + * Quaternion::rotation_z(tilt * -1.5); next.leg_br.scale = Vec3::one() * 0.99; next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2 + 2.0 + ((footvertl * -2.0).max(-1.0)), + skeleton_attr.feet_f.2 + ((footvertl * -2.7).max(0.0)), ); - next.foot_fl.ori = Quaternion::rotation_x(footrotl * -0.7); + next.foot_fl.ori = Quaternion::rotation_x(footvertlt * 0.9 * skeleton_attr.dampen); next.foot_fl.scale = Vec3::one() * 0.97; next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2 + 2.0 + ((footvertl * -2.0).max(-1.0)), + skeleton_attr.feet_f.2 + ((footvertl * -2.7).max(0.0)), ); - next.foot_fr.ori = Quaternion::rotation_x(footrotr * -0.7); + next.foot_fr.ori = Quaternion::rotation_x(footvertlt * 0.9 * skeleton_attr.dampen); next.foot_fr.scale = Vec3::one() * 0.98; next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2 + 2.0 + ((footvertrb * -2.0).max(-1.0)), + skeleton_attr.feet_b.2 + ((footvertl * 2.4).max(0.0)), ); - next.foot_bl.ori = Quaternion::rotation_x(footrotlb * -0.7); + next.foot_bl.ori = Quaternion::rotation_x(footvertlt * -0.9 - 0.2); next.foot_bl.scale = Vec3::one() * 0.98; next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2 + 2.0 + ((footvertrb * -2.0).max(-1.0)), + skeleton_attr.feet_b.2 + ((footvertl * 2.4).max(-0.0)), ); - next.foot_br.ori = Quaternion::rotation_x(footrotrb * -0.7); + next.foot_br.ori = Quaternion::rotation_x(footvertlt * -0.9 - 0.2); next.foot_br.scale = Vec3::one() * 0.98; } next From b915d8c6616e80ad06376d20fdbb528fbb12f375 Mon Sep 17 00:00:00 2001 From: Snowram Date: Fri, 3 Jul 2020 01:47:45 +0200 Subject: [PATCH 36/48] Salamander model fixes --- .../npc/salamander/female/head_lower.vox | Bin 1700 -> 1616 bytes .../voxel/npc/salamander/female/jaw.vox | Bin 1612 -> 2092 bytes .../voxel/npc/salamander/male/head_lower.vox | Bin 1700 -> 1616 bytes .../voxygen/voxel/npc/salamander/male/jaw.vox | Bin 1612 -> 2092 bytes .../voxel/quadruped_low_central_manifest.ron | 8 ++++---- voxygen/src/anim/src/quadruped_low/mod.rs | 6 +++--- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/assets/voxygen/voxel/npc/salamander/female/head_lower.vox b/assets/voxygen/voxel/npc/salamander/female/head_lower.vox index 25033c66915c36bd89aeabd3e54e5c6ceda075ed..8f806473eef173217d68adc0aa9b2288245db700 100644 GIT binary patch delta 594 zcmW-eL2lbH5Jmr=8Bz-1+#v_)ri%jhBJCnT;N%Woky;zbA&MTLH^@b@@_F(s0Z&7I z{t-XL|BqjX>+7HM(_cx?KTp3Y`q8DA)BCT(eZunq3CKFXy`K)jfal}>irgGIBHEVG zWBnRL;a`X^3XC7R*CMW3f@8 S2kZABoCrTZVf*|Shx!IzbVq9d delta 679 zcmW-fJ8sob6h+V3=l<;s0Vz{K3etN8P#~d@iV39hb?xR2fGSLYJ_Qq@%6M3grRBZP z=YH*f>z}*h``5?&7c=|(@%ja^U&ZX(_36`k20V9AA;II1r|VB)czy$|Z`2|~GrQ1p zX>OP57RBu?qv?!gmm>O5nf4TZbJw#;$G%GYLNF+lB-O)!`%P|?TCc*h^Sq%EYG*ht0~sKgCAxpCH9TXr_+nib#h zfp_W_+7`yFXvnt&S-uzftk9s76YAs#EO>>@IKsFN+cH#qLpz0m7mExQ31?FGnVm_| z3Jp4W51$K+WZRN_u1TAc?T)v^SbU<^lFg3KXn_irH4iJ=Ju@(CUyJ6FeeayG^EsMv zTH{6_;}f}f*B}n^u~%po)Ht>IEKs3AH%`k&#YTgAh|NF~heX5e!`9ulK_KYHm4M9o LAN=|6gVyvPMk7<* diff --git a/assets/voxygen/voxel/npc/salamander/female/jaw.vox b/assets/voxygen/voxel/npc/salamander/female/jaw.vox index a3e7bee59bc7fdaca6cfdeff274cc93b6f86d02c..10663a321dbc67b727ed9ef55c3f74577ef6c2ec 100644 GIT binary patch delta 1074 zcmW-gJ&qJH5Jv0AWtZKJL`X=;F(5#i4S)a%0e9HQ?YNUY1E)ZmfNKzQ2ChKH>mBLM z_qpt@YP;OO_n$A%FQ2}?{vjeC-aULoWOYs!t8FsW-^fdjsn>t^2a!Q`66t!9u7IP%h7d0R<`#2NZA;SCRx2 za0(lRox(<8O`F<$X|tu(mJgf0`7wsCj?ZC7g9^d8$0;*IW(zrL$ObOmz;`<4l!XQ{e>V zPoU)*o7}322ilc{u1~7=C}wMi4Zj7uE3^p;r15fv*08ohgS?cvjt=JzTx%)5x!ql5 z?$yp?4_npcrolxbDD=%(G)Okk4s`eKBr%eh89Oi%*;7D;1_>Po^M#iVC9l$NeBvFi zW_NK;3*Aw-Q)e-qVeH1}2PAZ2hAQy^8{VA0JAHNf4h^4ZCqD2-kwFpXXbVRhN=~#v zLMN`S#|ERw+=?FiS@;|ZJ7ge*hw+8UEL^O99 zuCEF$6ct+PUZELzD3GSxR}%>+kPt^qVM0KmI3d7kTxgOI;0zXnoxx&o(9}7UI8-qk z++{Y*1=fbS#0uaJL%8c^qlt~OS!64L>g5Mc>=fbRHY;wJKQKM`7JLippb|ISk9^w9 z#6_zRSK^i&f_P(=n3YAdK)vy5Z0sP0nQNIe{8)$9mVkHiP7@t#_U+Q#BgP&+c883$ zr?0K}h!!|jwwR^GsL;rD9Mxx59|c!r##X&4f)-+d*A)1N-o|>J5 N?51g^_4k~o{12D+NfiJ9 diff --git a/assets/voxygen/voxel/npc/salamander/male/head_lower.vox b/assets/voxygen/voxel/npc/salamander/male/head_lower.vox index 25033c66915c36bd89aeabd3e54e5c6ceda075ed..8f806473eef173217d68adc0aa9b2288245db700 100644 GIT binary patch delta 594 zcmW-eL2lbH5Jmr=8Bz-1+#v_)ri%jhBJCnT;N%Woky;zbA&MTLH^@b@@_F(s0Z&7I z{t-XL|BqjX>+7HM(_cx?KTp3Y`q8DA)BCT(eZunq3CKFXy`K)jfal}>irgGIBHEVG zWBnRL;a`X^3XC7R*CMW3f@8 S2kZABoCrTZVf*|Shx!IzbVq9d delta 679 zcmW-fJ8sob6h+V3=l<;s0Vz{K3etN8P#~d@iV39hb?xR2fGSLYJ_Qq@%6M3grRBZP z=YH*f>z}*h``5?&7c=|(@%ja^U&ZX(_36`k20V9AA;II1r|VB)czy$|Z`2|~GrQ1p zX>OP57RBu?qv?!gmm>O5nf4TZbJw#;$G%GYLNF+lB-O)!`%P|?TCc*h^Sq%EYG*ht0~sKgCAxpCH9TXr_+nib#h zfp_W_+7`yFXvnt&S-uzftk9s76YAs#EO>>@IKsFN+cH#qLpz0m7mExQ31?FGnVm_| z3Jp4W51$K+WZRN_u1TAc?T)v^SbU<^lFg3KXn_irH4iJ=Ju@(CUyJ6FeeayG^EsMv zTH{6_;}f}f*B}n^u~%po)Ht>IEKs3AH%`k&#YTgAh|NF~heX5e!`9ulK_KYHm4M9o LAN=|6gVyvPMk7<* diff --git a/assets/voxygen/voxel/npc/salamander/male/jaw.vox b/assets/voxygen/voxel/npc/salamander/male/jaw.vox index a3e7bee59bc7fdaca6cfdeff274cc93b6f86d02c..10663a321dbc67b727ed9ef55c3f74577ef6c2ec 100644 GIT binary patch delta 1074 zcmW-gJ&qJH5Jv0AWtZKJL`X=;F(5#i4S)a%0e9HQ?YNUY1E)ZmfNKzQ2ChKH>mBLM z_qpt@YP;OO_n$A%FQ2}?{vjeC-aULoWOYs!t8FsW-^fdjsn>t^2a!Q`66t!9u7IP%h7d0R<`#2NZA;SCRx2 za0(lRox(<8O`F<$X|tu(mJgf0`7wsCj?ZC7g9^d8$0;*IW(zrL$ObOmz;`<4l!XQ{e>V zPoU)*o7}322ilc{u1~7=C}wMi4Zj7uE3^p;r15fv*08ohgS?cvjt=JzTx%)5x!ql5 z?$yp?4_npcrolxbDD=%(G)Okk4s`eKBr%eh89Oi%*;7D;1_>Po^M#iVC9l$NeBvFi zW_NK;3*Aw-Q)e-qVeH1}2PAZ2hAQy^8{VA0JAHNf4h^4ZCqD2-kwFpXXbVRhN=~#v zLMN`S#|ERw+=?FiS@;|ZJ7ge*hw+8UEL^O99 zuCEF$6ct+PUZELzD3GSxR}%>+kPt^qVM0KmI3d7kTxgOI;0zXnoxx&o(9}7UI8-qk z++{Y*1=fbS#0uaJL%8c^qlt~OS!64L>g5Mc>=fbRHY;wJKQKM`7JLippb|ISk9^w9 z#6_zRSK^i&f_P(=n3YAdK)vy5Z0sP0nQNIe{8)$9mVkHiP7@t#_U+Q#BgP&+c883$ zr?0K}h!!|jwwR^GsL;rD9Mxx59|c!r##X&4f)-+d*A)1N-o|>J5 N?51g^_4k~o{12D+NfiJ9 diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index 1799bc1456..ca025afedb 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -109,11 +109,11 @@ central: ("npc.salamander.male.head_upper"), ), lower: ( - offset: (-6.5, -3.5, -2.0), + offset: (-4.5, -1.5, -3.0), central: ("npc.salamander.male.head_lower"), ), jaw: ( - offset: (-5.5, -4.0, -2.0), + offset: (-6.5, -6.0, -3.0), central: ("npc.salamander.male.jaw"), ), chest: ( @@ -135,11 +135,11 @@ central: ("npc.salamander.female.head_upper"), ), lower: ( - offset: (-6.5, -3.5, -2.0), + offset: (-4.5, -1.5, -3.0), central: ("npc.salamander.female.head_lower"), ), jaw: ( - offset: (-5.5, -4.0, -2.0), + offset: (-6.5, -6.0, -3.0), central: ("npc.salamander.female.jaw"), ), chest: ( diff --git a/voxygen/src/anim/src/quadruped_low/mod.rs b/voxygen/src/anim/src/quadruped_low/mod.rs index dde2eb5903..9920f05c18 100644 --- a/voxygen/src/anim/src/quadruped_low/mod.rs +++ b/voxygen/src/anim/src/quadruped_low/mod.rs @@ -131,7 +131,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { head_upper: match (body.species, body.body_type) { (Crocodile, _) => (10.0, 2.0), (Alligator, _) => (0.5, 3.25), - (Salamander, _) => (3.0, 1.0), + (Salamander, _) => (6.5, 2.0), (Monitor, _) => (3.5, 2.0), (Asp, _) => (6.0, 5.5), (Tortoise, _) => (5.0, 1.0), @@ -141,7 +141,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { head_lower: match (body.species, body.body_type) { (Crocodile, _) => (8.0, 0.0), (Alligator, _) => (9.0, 0.25), - (Salamander, _) => (10.0, 2.0), + (Salamander, _) => (9.0, 0.0), (Monitor, _) => (10.0, 3.0), (Asp, _) => (9.0, 2.5), (Tortoise, _) => (12.0, -3.5), @@ -151,7 +151,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { jaw: match (body.species, body.body_type) { (Crocodile, _) => (0.0, -3.0), (Alligator, _) => (8.5, -2.0), - (Salamander, _) => (2.0, -3.0), + (Salamander, _) => (0.0, -2.0), (Monitor, _) => (0.0, -1.0), (Asp, _) => (1.0, -2.0), (Tortoise, _) => (0.5, -2.0), From 43eac6f89885d12514f87fde68319c0c41537168 Mon Sep 17 00:00:00 2001 From: jshipsey Date: Fri, 3 Jul 2020 05:00:35 -0400 Subject: [PATCH 37/48] better everything --- .../voxel/npc/grolgar/female/head_lower.vox | Bin 3048 -> 3480 bytes .../voxel/npc/grolgar/female/head_upper.vox | Bin 4728 -> 5936 bytes .../voxygen/voxel/npc/grolgar/female/jaw.vox | Bin 1248 -> 1336 bytes .../voxel/npc/grolgar/female/torso_front.vox | Bin 8560 -> 7728 bytes .../voxel/npc/grolgar/male/head_lower.vox | Bin 3048 -> 3480 bytes .../voxel/npc/grolgar/male/head_upper.vox | Bin 4728 -> 5936 bytes assets/voxygen/voxel/npc/grolgar/male/jaw.vox | Bin 1248 -> 1336 bytes .../voxel/npc/grolgar/male/torso_front.vox | Bin 8560 -> 7728 bytes .../voxel/quadruped_low_central_manifest.ron | 28 +- .../quadruped_medium_central_manifest.ron | 8 +- .../quadruped_medium_lateral_manifest.ron | 40 +-- voxygen/src/anim/src/quadruped_low/idle.rs | 18 +- voxygen/src/anim/src/quadruped_low/jump.rs | 82 ++--- voxygen/src/anim/src/quadruped_low/mod.rs | 40 ++- voxygen/src/anim/src/quadruped_low/run.rs | 70 ++-- .../src/anim/src/quadruped_medium/alpha.rs | 31 +- voxygen/src/anim/src/quadruped_medium/idle.rs | 20 +- voxygen/src/anim/src/quadruped_medium/jump.rs | 101 ++++-- voxygen/src/anim/src/quadruped_medium/mod.rs | 80 +++-- voxygen/src/anim/src/quadruped_medium/run.rs | 333 +++++++++--------- voxygen/src/scene/figure/mod.rs | 2 +- 21 files changed, 423 insertions(+), 430 deletions(-) diff --git a/assets/voxygen/voxel/npc/grolgar/female/head_lower.vox b/assets/voxygen/voxel/npc/grolgar/female/head_lower.vox index 5621e57ce141949a063d7db94d58c8fa766b4534..983084c14e3351c025de8368688df355c23bdfd7 100644 GIT binary patch literal 3480 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 diff --git a/assets/voxygen/voxel/npc/grolgar/female/head_upper.vox b/assets/voxygen/voxel/npc/grolgar/female/head_upper.vox index a9ba5344bea99aa6263c8eee4a1c525f06294078..257215a5b4534e3afe82d6eae2e761b720e36cb9 100644 GIT binary patch literal 5936 zcmb{0U928O8Nl(`oq6VYW@h(22dIT2mZpHV#fW?e^qdCES7<39v=y}?5dumjL@lJj zrfRgthy+E%f(FEDh#v?dX$iswHii%rLkt>YVhAC|c;kf^#(4Mm-`6WO;EgBwW#@Zm zXP=#Sa;|;P`_~){AzXRk)~mRLla3Ez$JSk!4pWA|85VFX-v5DJTmLd8_eYuvx_P8;vE@lG4> zwDC^c@_bH5?HNNMof`Q@9)+|Gb-N91 zyNqqSL3oA?ov+>EMm4@~2#PLlH04{5$1Ka#hrU8g2{9$aln_%wOj+x%upuJtG{z~Y zXo$jh3qgj$P$sN-AjnV{3Mx{e4jBqVL8_D^*Wnq3 zkuI?LK0U)yOFpXiMx@w z8<$6fL_hS1NDyQw3W<(P#rfhQd%#ZCpx)I%FseWxDd4B$aX~Y%>3?8kcgT4A#aa8ORUh zVWedwKaP79Hl=6d?TX0rWnxLDctS+w%u-;SVH9zSGvdk8F-wXJL8ZLFpvXv!C)1cv z7z!#HdMT_uXA%f96o!I|Hnqw8erDPrLt!YW)QM6Kg`u+ck#kmp4hzc}+7^hf8SynE zzGlSNjQE-nUo+-9W6m??KI0i?#Mg}Ynh{?!;)_0sK8Q#VWGD;;6%7M=p)C>w845!| zMUxrpJKLBtZIGcb6jbV>Qm@n_Lt!YWQ=QHD?V0f#L>-KDK`OH)K`xZTNSCRsQdTL0 zk(S1|P#9z&4~0$Xadw9y&$vQZPn*^hdBU1%U0}?GB`pgZGt{`E=)xtY3%9GX{t(iM zvXU1zTBaW|1c|aL3rj^7SR?9?AxMbS)wIAmQx8RkAfb=6L4qJdVJN6*h_oGg&SO0> z#kEI=#yNZ7Og?ayZm38-znSRK&6VZ8CmuOZS4hu!rswR6hy+1~!cb7rFibd4ThI4_ z3_(JiU-|uK%-FNO=t(!un{|HX&pG7%Ga_-DM=Sw6+Wacc0%sHWF z%!IDzT!n}PL59LmP|+|z=sR*=ROVBeXXYx?nlY9!4@HJ?Po3YNJ-&~mBju5{k$#Je zr>r|?k7*6(V{xY8YG{mCq0|{d&p84;A`%1{3PV9f!+>$ZIi%3PqA=GozweZu<}{7Z z?+qIBttj&=>&Lt+b2HkP`IXQG? zkXIP;ypD5O;F~}}onQG*0^dvE`$0nv^n;-gUW{cGU6gF#WLYlyJGw~va30hu-f z_h{3-=--e6`v)=XD9?n>_C+B0-R$ zFcefYMAoe1x%&CD@f*gq>&PP_L6D&^6jU?}=oqJCFX*~LTuv(cQd=JRzDB-*Kst~P zq_Nwqk`JJ$j{2e~)iH;#X~Zr{D0Q zW#7Mdn;*Grs~@@V20!w^C;Yr4ANR%0D}B|6*Z7*xobKx%+34X?@o;PPaOhYMFRb*% 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 SKi(YY$CHASb7vE z3y+=o{C$mn!_#I}XLmDOl+{wpKEZ5VHS=*_G^#cbmwMY&5AA*?0wPl2XekzygR;1? zC1@cO?{ljE0x(jHyk4@IZuq2l&|AU-5_NH9ri>7G6ee&h=-m`K{CzHOdp~wx?)V3h C86JHA diff --git a/assets/voxygen/voxel/npc/grolgar/female/torso_front.vox b/assets/voxygen/voxel/npc/grolgar/female/torso_front.vox index 853e818cef3d53adfb96c240c5ac9eb6cfab62a8..3c5ba4e941f19053e74130505723dd8ad4ac6d67 100644 GIT binary patch delta 3765 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 diff --git a/assets/voxygen/voxel/npc/grolgar/male/head_lower.vox b/assets/voxygen/voxel/npc/grolgar/male/head_lower.vox index 5621e57ce141949a063d7db94d58c8fa766b4534..983084c14e3351c025de8368688df355c23bdfd7 100644 GIT binary patch literal 3480 zcmb`}U2Io(8Nl)9ob!7_Cd;y*F(!sAi!t7MVT^Z=-{-$8HOw2EeDXWL z_qXSqfA@dN`fhW8hqLX!J`epiM*2FUkR5pK+=oi=vYlEu_=Bk-1FlM4H z^{lrlt(<;swiZWUTU$jr>$SOQQ&LvidJD>U7S>u?fA%A`20Py>w4}22GET*La5hz8 z=gB!jPziYymRdcyeaZ^zn1^+gc7}{mwVx?3&>o+?m7R=B8&oLRtE+Bey>>P>x1E!n zVFzvOZaH^jWhhu**m5kDv(#@Z2^ zB`WF*_FtkhC2dilqP`)<8e+MzXU?!8wjA;55fG7(QKPXuahp+F%2_nTK*MuGEIY>Y z2#83?s4dTZCS=silaUY+;Nj44jtzHF6Bmw{^$3Va$fzw(OeAE~+iRH|>IOg(*lqE#sIKjaq7^}B65w{)z5eeB+>ax`nw;llz2^qE3 z6Tcn_5y4VoGa;jfBVIiMA`&ucG{)Kyn;DLn^$3Va$f)g^`iKB;Z4L465fG7(QN!^L zc?3i_ixmV!BxKa^YdixJ*0kAR4Tj2aE+6Weh_ z8{#D(BB5b#4d2+r`xX)4;gIe7!MC{Po1Bpl5#ZsFXcOVN*I@V0Z-+KJX||ZyLNlxu^r2_<%|*{0z4ct_wP9yhnjb_wv^xU zjD&~)57%bxZJ+k-C03D<5E0f5J9cRzPk zS9kwY|K8oLOG|sy{$3he)O*K2q=z1A>Fm*QT|7Rfi>D9i;@QvZmc`F$*JzLSe!5@# zzp_q;&fTf9%c~rzRnEUx z`Q&o_#^v|v&RNmDXG9;qDEh>k^xeBs`=$nT&FrvlUKrI|r@M9Fe|AEzz51M97STW8FF12d z^x}6!mtGKk{iozdMbGaN{pJ0l*FPgVN&eV=(Nm9zzB2zs-7zG3aI5IioubcBzI)q; z_0WBH>CD69`u&+no&CfXoj<%om%jc<{p*D(UAMYNM>ed|@sAGbqx-k$k$Xhv9uhtG zCDAM265ZUlQpbkZ=z-0*>-5e$b^maWPHnnXPu{&&7Y^RhUazhBMi!nupi4jgtTs)f zw=92;_V@Se`k?{ceEa+LBO8YF)YG@=#UBpnAAdWn*WXyD&obx21@`)i=%0TlIx{t> z&&+Mqt1s=)zx`=Kr%!b0$)9xVFW&6c>$>XS_J97U{MY{XZd$2Ry9RV-@1V{bJL?(>vCm*Vgf;w0EvoUwdBk_n#7dad1$FhKBU;>ZAIx-IrA6X7uLioAvV9 zckXa^XQ%e{_32mFp3!Zs)B4DXujwrZSLho*U#piVd-XJD^`GZ&?QEUi5 zeL?4bw4mR-^s0XEH`jF4_WN|(Q|EO22Um3BD<&`h$JEX#t6F)?IWjM10AFvfR3zlXijg!#^sd~(jY zuitZ@`@Z^|KD$5i;J_&}+qrrCeoppA$82JJa@)Jw8;1TyXrYYR9Y5 zx`NfHMqOp2&TO=BUl{jX2So6(QBOS}BDL4C9`!Y6L?q<4&UkQ~!E>3jovUK5in%K0 zsu*vd$2bBa5;9!PI07OPGMr-^0TBrq-ZO@X1jqV40wNMJ>Z<0M)DRGnkWoQVh)BpNs6BOf1Vkic6u3YQ0TBrql{wbzShHizjx{^h>{zoKZBSK?wUdEI zKtw`DL4&F$2M3RUh=h!S29+ZR2akY=gp7g)l_v)WkAR4TjDiMrAOnwph=hy+7pWm2 zA|b<>XV0EJd-m+vvuDqq{d)H6*)MejL?mPsG^lEFaPSC-NXRH?V2&(mICum^BxDpc z=%Dgs;ouPvk&sc)pbF&R;1Lj!kWtW}j%45w5Rs5kP+OoEfnEf95$Hvr7lB>`-o-#a z0{tKZkAR4TjDiMLO%4to0TBrq1r5xRMGXg!fQW>Qf(9L!CyyEq9sv;v83heGr~+9y zcmzZwWE3>0W4OyjG6;xB$SBn6L_JYQKtw`Dp_Wq`^*MAyriR3IOzCoMk$y({8R=)F zpOJn>`WfkGq@R&~l7UA+L_$VE1FK`Vs>#B^BOoFnqo6^DtU2vQ{=*o{andY-5`Gf~L*T zGuM7s=~F;uvD?5W{vRMB!FV@22!Y=+JaEs4Hyb~~?XhXoCe6&u=&ci`?ayA(ik^Sz zA3Z%CbE9{O7cItXF-X8qmO(S8Mpp zow98~w!e{`eUI!)uNLn#Eq%gt+i}weUNYtVrgzVpmT=$uf@%HEj_!S8u_m8dqHkP$ zueQ#ZcAYeR`n>7M*ZJ(OW$K?A)XJF=ZI~O=t&GZNS1t$-h&VR?W@Vx2O zpK?EDI=jvE%Lh!?K4Y5X{@`xY@kdR+J-k_4hE01nnGS36E8GHvKzrty)L z+Oy$yO>ezZyGMF8wf34>TNpzgF*fAcO$y?+G;(+Gw05+*WZ}_{Cm@(sUbZ*yG~bL+@in#X+qOS z7wgzhdi0Ce`*cmq|6~7W57_^G|LfMR)3-OC(H(2fs(a+H`eys|%5$bSK52SkXh_4u z!`ipvfbQFVK{k6xH&5TJi>KfI8*X2;Nd5i&`pT-4y1RQqj~@M+ZrQt3ul;8C8 z1ikw2{AhcVuP sNtU61%3U?R`K!0r_a@)3|5fJ|y#Aiu=-d`>RBOlIsdjzhcmBNn8$J=d6#xJL diff --git a/assets/voxygen/voxel/npc/grolgar/male/head_upper.vox b/assets/voxygen/voxel/npc/grolgar/male/head_upper.vox index a9ba5344bea99aa6263c8eee4a1c525f06294078..257215a5b4534e3afe82d6eae2e761b720e36cb9 100644 GIT binary patch literal 5936 zcmb{0U928O8Nl(`oq6VYW@h(22dIT2mZpHV#fW?e^qdCES7<39v=y}?5dumjL@lJj zrfRgthy+E%f(FEDh#v?dX$iswHii%rLkt>YVhAC|c;kf^#(4Mm-`6WO;EgBwW#@Zm zXP=#Sa;|;P`_~){AzXRk)~mRLla3Ez$JSk!4pWA|85VFX-v5DJTmLd8_eYuvx_P8;vE@lG4> zwDC^c@_bH5?HNNMof`Q@9)+|Gb-N91 zyNqqSL3oA?ov+>EMm4@~2#PLlH04{5$1Ka#hrU8g2{9$aln_%wOj+x%upuJtG{z~Y zXo$jh3qgj$P$sN-AjnV{3Mx{e4jBqVL8_D^*Wnq3 zkuI?LK0U)yOFpXiMx@w z8<$6fL_hS1NDyQw3W<(P#rfhQd%#ZCpx)I%FseWxDd4B$aX~Y%>3?8kcgT4A#aa8ORUh zVWedwKaP79Hl=6d?TX0rWnxLDctS+w%u-;SVH9zSGvdk8F-wXJL8ZLFpvXv!C)1cv z7z!#HdMT_uXA%f96o!I|Hnqw8erDPrLt!YW)QM6Kg`u+ck#kmp4hzc}+7^hf8SynE zzGlSNjQE-nUo+-9W6m??KI0i?#Mg}Ynh{?!;)_0sK8Q#VWGD;;6%7M=p)C>w845!| zMUxrpJKLBtZIGcb6jbV>Qm@n_Lt!YWQ=QHD?V0f#L>-KDK`OH)K`xZTNSCRsQdTL0 zk(S1|P#9z&4~0$Xadw9y&$vQZPn*^hdBU1%U0}?GB`pgZGt{`E=)xtY3%9GX{t(iM zvXU1zTBaW|1c|aL3rj^7SR?9?AxMbS)wIAmQx8RkAfb=6L4qJdVJN6*h_oGg&SO0> z#kEI=#yNZ7Og?ayZm38-znSRK&6VZ8CmuOZS4hu!rswR6hy+1~!cb7rFibd4ThI4_ z3_(JiU-|uK%-FNO=t(!un{|HX&pG7%Ga_-DM=Sw6+Wacc0%sHWF z%!IDzT!n}PL59LmP|+|z=sR*=ROVBeXXYx?nlY9!4@HJ?Po3YNJ-&~mBju5{k$#Je zr>r|?k7*6(V{xY8YG{mCq0|{d&p84;A`%1{3PV9f!+>$ZIi%3PqA=GozweZu<}{7Z z?+qIBttj&=>&Lt+b2HkP`IXQG? zkXIP;ypD5O;F~}}onQG*0^dvE`$0nv^n;-gUW{cGU6gF#WLYlyJGw~va30hu-f z_h{3-=--e6`v)=XD9?n>_C+B0-R$ zFcefYMAoe1x%&CD@f*gq>&PP_L6D&^6jU?}=oqJCFX*~LTuv(cQd=JRzDB-*Kst~P zq_Nwqk`JJ$j{2e~)iH;#X~Zr{D0Q zW#7Mdn;*Grs~@@V20!w^C;Yr4ANR%0D}B|6*Z7*xobKx%+34X?@o;PPaOhYMFRb*% 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 SKi(YY$CHASb7vE z3y+=o{C$mn!_#I}XLmDOl+{wpKEZ5VHS=*_G^#cbmwMY&5AA*?0wPl2XekzygR;1? zC1@cO?{ljE0x(jHyk4@IZuq2l&|AU-5_NH9ri>7G6ee&h=-m`K{CzHOdp~wx?)V3h C86JHA diff --git a/assets/voxygen/voxel/npc/grolgar/male/torso_front.vox b/assets/voxygen/voxel/npc/grolgar/male/torso_front.vox index 853e818cef3d53adfb96c240c5ac9eb6cfab62a8..3c5ba4e941f19053e74130505723dd8ad4ac6d67 100644 GIT binary patch delta 3765 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 diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index ca025afedb..76eb8cd58d 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -9,7 +9,7 @@ central: ("npc.crocodile.male.head_lower"), ), jaw: ( - offset: (-4.0, -7.0, -1.5), + offset: (-4.0, 0.0, -1.5), central: ("npc.crocodile.male.jaw"), ), chest: ( @@ -35,7 +35,7 @@ central: ("npc.crocodile.female.head_lower"), ), jaw: ( - offset: (-4.0, -7.0, -1.5), + offset: (-4.0, 0.0, -1.5), central: ("npc.crocodile.female.jaw"), ), chest: ( @@ -61,7 +61,7 @@ central: ("npc.alligator.male.head_lower"), ), jaw: ( - offset: (-4.0, -7.5, -2.5), + offset: (-4.0, 0.0, -2.5), central: ("npc.alligator.male.jaw"), ), chest: ( @@ -87,7 +87,7 @@ central: ("npc.alligator.female.head_lower"), ), jaw: ( - offset: (-4.0, -7.5, -2.5), + offset: (-4.0, 0.0, -2.5), central: ("npc.alligator.female.jaw"), ), chest: ( @@ -113,7 +113,7 @@ central: ("npc.salamander.male.head_lower"), ), jaw: ( - offset: (-6.5, -6.0, -3.0), + offset: (-6.5, 0.0, -3.0), central: ("npc.salamander.male.jaw"), ), chest: ( @@ -139,7 +139,7 @@ central: ("npc.salamander.female.head_lower"), ), jaw: ( - offset: (-6.5, -6.0, -3.0), + offset: (-6.5, 0.0, -3.0), central: ("npc.salamander.female.jaw"), ), chest: ( @@ -165,7 +165,7 @@ central: ("npc.monitor.male.head_lower"), ), jaw: ( - offset: (-3.0, -3.5, -1.0), + offset: (-3.0, 0.0, -1.0), central: ("npc.monitor.male.jaw"), ), chest: ( @@ -192,7 +192,7 @@ central: ("npc.monitor.female.head_lower"), ), jaw: ( - offset: (-3.0, -3.5, -1.0), + offset: (-3.0, 0.0, -1.0), central: ("npc.monitor.female.jaw"), ), chest: ( @@ -218,7 +218,7 @@ central: ("npc.asp.male.head_lower"), ), jaw: ( - offset: (-2.0, -4.0, -1.0), + offset: (-2.0, 0.0, -1.0), central: ("npc.asp.male.jaw"), ), chest: ( @@ -244,7 +244,7 @@ central: ("npc.asp.female.head_lower"), ), jaw: ( - offset: (-2.0, -4.0, -1.0), + offset: (-2.0, 0.0, -1.0), central: ("npc.asp.female.jaw"), ), chest: ( @@ -270,7 +270,7 @@ central: ("npc.tortoise.male.head_lower"), ), jaw: ( - offset: (-1.5, -3.5, -1.0), + offset: (-1.5, 0.0, -1.0), central: ("npc.tortoise.male.jaw"), ), chest: ( @@ -296,7 +296,7 @@ central: ("npc.tortoise.female.head_lower"), ), jaw: ( - offset: (-1.5, -3.5, -1.0), + offset: (-1.5, 0.0, -1.0), central: ("npc.tortoise.female.jaw"), ), chest: ( @@ -322,7 +322,7 @@ central: ("npc.rocksnapper.male.head_lower"), ), jaw: ( - offset: (-6.5, -6.0, -2.5), + offset: (-6.5, 0.0, -2.5), central: ("npc.rocksnapper.male.jaw"), ), chest: ( @@ -348,7 +348,7 @@ central: ("npc.rocksnapper.female.head_lower"), ), jaw: ( - offset: (-6.5, -6.0, -2.5), + offset: (-6.5, 0.0, -2.5), central: ("npc.rocksnapper.female.jaw"), ), chest: ( diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index 55b6676d7a..9da1996d96 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -5,7 +5,7 @@ central: ("npc.grolgar.male.head_upper"), ), lower: ( - offset: (-6.0, -4.5, -4.0), + offset: (-6.0, -2.0, -8.0), central: ("npc.grolgar.male.head_lower"), ), jaw: ( @@ -13,7 +13,7 @@ central: ("npc.grolgar.male.jaw"), ), torso_front: ( - offset: (-7.0, -14.0, -8.0),//value in y dimension is full length of model + offset: (-7.0, -11.0, -8.0),//value in y dimension is full length of model central: ("npc.grolgar.male.torso_front"), ), torso_back: ( @@ -35,7 +35,7 @@ central: ("npc.grolgar.female.head_upper"), ), lower: ( - offset: (-6.0, -4.5, -4.0), + offset: (-6.0, -2.0, -8.0), central: ("npc.grolgar.female.head_lower"), ), jaw: ( @@ -43,7 +43,7 @@ central: ("npc.grolgar.female.jaw"), ), torso_front: ( - offset: (-7.0, -14.0, -8.0), + offset: (-7.0, -11.0, -8.0), central: ("npc.grolgar.female.torso_front"), ), torso_back: ( diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index 193c94ab05..052be53942 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -1,11 +1,11 @@ ({ (Grolgar, Male): ( leg_fl: ( - offset: (-2.5, -6.0, -3.0), + offset: (-2.5, -12.0, -7.5),//these are done very case by case lateral: ("npc.grolgar.male.leg_fl"), ), leg_fr: ( - offset: (-2.5, -6.0, -3.0), + offset: (-2.5, -12.0, -7.5), lateral: ("npc.grolgar.male.leg_fr"), ), leg_bl: ( @@ -35,11 +35,11 @@ ), (Grolgar, Female): ( leg_fl: ( - offset: (-2.5, -6.0, -3.0), + offset: (-2.5, -12.0, -7.5), lateral: ("npc.grolgar.female.leg_fl"), ), leg_fr: ( - offset: (-2.5, -6.0, -3.0), + offset: (-2.5, -12.0, -7.5), lateral: ("npc.grolgar.female.leg_fr"), ), leg_bl: ( @@ -69,11 +69,11 @@ ), (Saber, Male): ( leg_fl: ( - offset: (-2.0, -3.5, -4.5), + offset: (-2.0, -6.0, -4.5), lateral: ("npc.saber.male.leg_fl"), ), leg_fr: ( - offset: (-2.0, -3.5, -4.5), + offset: (-2.0, -6.0, -4.5), lateral: ("npc.saber.male.leg_fr"), ), leg_bl: ( @@ -103,11 +103,11 @@ ), (Saber, Female): ( leg_fl: ( - offset: (-2.0, -3.5, -4.5), + offset: (-2.0, -6.0, -4.5), lateral: ("npc.saber.female.leg_fl"), ), leg_fr: ( - offset: (-2.0, -3.5, -4.5), + offset: (-2.0, -6.0, -4.5), lateral: ("npc.saber.female.leg_fr"), ), leg_bl: ( @@ -137,11 +137,11 @@ ), (Tuskram, Male): ( leg_fl: ( - offset: (-2.0, -2.5, -5.0), + offset: (-2.0, -2.5, -10.0), lateral: ("npc.tuskram.male.leg_fl"), ), leg_fr: ( - offset: (-2.0, -2.5, -5.0), + offset: (-2.0, -2.5, -10.0), lateral: ("npc.tuskram.male.leg_fr"), ), leg_bl: ( @@ -171,11 +171,11 @@ ), (Tuskram, Female): ( leg_fl: ( - offset: (-2.0, -2.5, -5.0), + offset: (-2.0, -2.5, -10.0), lateral: ("npc.tuskram.female.leg_fl"), ), leg_fr: ( - offset: (-2.0, -2.5, -5.0), + offset: (-2.0, -2.5, -10.0), lateral: ("npc.tuskram.female.leg_fr"), ), leg_bl: ( @@ -205,19 +205,19 @@ ), (Lion, Male): ( leg_fl: ( - offset: (-2.0, -2.5, -2.5), + offset: (-2.0, -2.5, -7.5), lateral: ("npc.lion.male.leg_fl"), ), leg_fr: ( - offset: (-2.0, -2.5, -2.5), + offset: (-2.0, -2.5, -7.5), lateral: ("npc.lion.male.leg_fr"), ), leg_bl: ( - offset: (-2.0, -3.0, -4.0), + offset: (-2.0, -3.0, -6.0), lateral: ("npc.lion.male.leg_bl"), ), leg_br: ( - offset: (-2.0, -3.0, -4.0), + offset: (-2.0, -3.0, -6.0), lateral: ("npc.lion.male.leg_br"), ), foot_fl: ( @@ -239,19 +239,19 @@ ), (Lion, Female): ( leg_fl: ( - offset: (-2.0, -2.5, -2.5), + offset: (-2.0, -2.5, -7.5), lateral: ("npc.lion.female.leg_fl"), ), leg_fr: ( - offset: (-2.0, -2.5, -2.5), + offset: (-2.0, -2.5, -7.5), lateral: ("npc.lion.female.leg_fr"), ), leg_bl: ( - offset: (-2.0, -3.0, -4.0), + offset: (-2.0, -3.0, -6.0), lateral: ("npc.lion.female.leg_bl"), ), leg_br: ( - offset: (-2.0, -3.0, -4.0), + offset: (-2.0, -3.0, -6.0), lateral: ("npc.lion.female.leg_br"), ), foot_fl: ( diff --git a/voxygen/src/anim/src/quadruped_low/idle.rs b/voxygen/src/anim/src/quadruped_low/idle.rs index 164ed1ea82..1a7ef52347 100644 --- a/voxygen/src/anim/src/quadruped_low/idle.rs +++ b/voxygen/src/anim/src/quadruped_low/idle.rs @@ -21,8 +21,8 @@ impl Animation for IdleAnimation { ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let ultra_slow = 0.0 * (anim_time as f32 * 1.0).sin(); - let slow = 0.0 * (anim_time as f32 * 2.5).sin(); + let slower = (anim_time as f32 * 1.25).sin(); + let slow = (anim_time as f32 * 2.5).sin(); let slowalt = (anim_time as f32 * 2.5 + PI / 2.0).sin(); let dragon_look = Vec2::new( @@ -41,7 +41,7 @@ impl Animation for IdleAnimation { next.head_upper.offset = Vec3::new( 0.0, skeleton_attr.head_upper.0, - skeleton_attr.head_upper.1 + ultra_slow * 0.20, + skeleton_attr.head_upper.1 + slower * 0.20, ); next.head_upper.ori = Quaternion::rotation_z(0.8 * dragon_look.x) * Quaternion::rotation_x(0.8 * dragon_look.y); @@ -50,7 +50,7 @@ impl Animation for IdleAnimation { next.head_lower.offset = Vec3::new( 0.0, skeleton_attr.head_lower.0, - skeleton_attr.head_lower.1 + ultra_slow * 0.20, + skeleton_attr.head_lower.1 + slower * 0.20, ); next.head_lower.ori = Quaternion::rotation_z(0.8 * dragon_look.x) * Quaternion::rotation_x(0.8 * dragon_look.y); @@ -63,7 +63,7 @@ impl Animation for IdleAnimation { next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) * skeleton_attr.scaler / 11.0; - next.chest.ori = Quaternion::rotation_y(slow * 0.01); + next.chest.ori = Quaternion::rotation_y(slow * 0.03); next.chest.scale = Vec3::one() * skeleton_attr.scaler / 11.0; next.tail_front.offset = @@ -81,7 +81,7 @@ impl Animation for IdleAnimation { skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, ); - next.foot_fl.ori = Quaternion::rotation_z(0.0); + next.foot_fl.ori = Quaternion::rotation_y(slow * -0.05); next.foot_fl.scale = Vec3::one(); next.foot_fr.offset = Vec3::new( @@ -89,7 +89,7 @@ impl Animation for IdleAnimation { skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, ); - next.foot_fr.ori = Quaternion::rotation_x(0.0); + next.foot_fr.ori = Quaternion::rotation_y(slow * -0.05); next.foot_fr.scale = Vec3::one(); next.foot_bl.offset = Vec3::new( @@ -97,7 +97,7 @@ impl Animation for IdleAnimation { skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, ); - next.foot_bl.ori = Quaternion::rotation_x(0.0); + next.foot_bl.ori = Quaternion::rotation_y(slow * -0.05); next.foot_bl.scale = Vec3::one(); next.foot_br.offset = Vec3::new( @@ -105,7 +105,7 @@ impl Animation for IdleAnimation { skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, ); - next.foot_br.ori = Quaternion::rotation_x(0.0); + next.foot_br.ori = Quaternion::rotation_y(slow * -0.05); next.foot_br.scale = Vec3::one(); next diff --git a/voxygen/src/anim/src/quadruped_low/jump.rs b/voxygen/src/anim/src/quadruped_low/jump.rs index 828659c951..06cf23abc9 100644 --- a/voxygen/src/anim/src/quadruped_low/jump.rs +++ b/voxygen/src/anim/src/quadruped_low/jump.rs @@ -15,76 +15,48 @@ impl Animation for JumpAnimation { fn update_skeleton_inner( skeleton: &Self::Skeleton, _global_time: Self::Dependency, - anim_time: f64, + _anim_time: f64, _rate: &mut f32, skeleton_attr: &SkeletonAttr, ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let lab = 12.0; + next.head_upper.offset = + Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); + next.head_upper.ori = Quaternion::rotation_z(0.4) * Quaternion::rotation_x(0.0); + next.head_upper.scale = Vec3::one(); - let wave_ultra_slow = (anim_time as f32 * 1.0 + PI).sin(); - let wave_ultra_slow_cos = (anim_time as f32 * 3.0 + PI).cos(); - let wave_slow = (anim_time as f32 * 3.5 + PI).sin(); + next.head_lower.offset = + Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); + next.head_lower.ori = Quaternion::rotation_z(0.2); + next.head_lower.scale = Vec3::one(); - let footl = (anim_time as f32 * lab as f32 + PI).sin(); - let footr = (anim_time as f32 * lab as f32).sin(); + next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); + next.jaw.ori = Quaternion::rotation_x(-0.3); + next.jaw.scale = Vec3::one() * 0.98; - let center = (anim_time as f32 * lab as f32 + PI / 2.0).sin(); - let centeroffset = (anim_time as f32 * lab as f32 + PI * 1.5).sin(); + next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) + * skeleton_attr.scaler + / 11.0; + next.chest.ori = Quaternion::rotation_y(0.0); + next.chest.scale = Vec3::one() * skeleton_attr.scaler / 11.0; - next.head_upper.offset = Vec3::new( - 0.0, - skeleton_attr.head_upper.0, - skeleton_attr.head_upper.1 + wave_ultra_slow * 0.20, - ); - next.head_upper.ori = - Quaternion::rotation_z(0.0) * Quaternion::rotation_x(wave_ultra_slow * -0.10); - next.head_upper.scale = Vec3::one() * 1.05; - - next.head_lower.offset = Vec3::new( - 0.0, - skeleton_attr.head_lower.0, - skeleton_attr.head_lower.1 + wave_ultra_slow * 0.20, - ); - next.head_lower.ori = - Quaternion::rotation_z(0.0) * Quaternion::rotation_x(wave_ultra_slow * -0.10); - next.head_lower.scale = Vec3::one() * 1.05; - - next.jaw.offset = Vec3::new( - 0.0, - skeleton_attr.jaw.0 - wave_ultra_slow_cos * 0.12, - skeleton_attr.jaw.1 + wave_slow * 0.2, - ); - next.jaw.ori = Quaternion::rotation_x(wave_slow * 0.03); - next.jaw.scale = Vec3::one() * 1.05; - - next.tail_front.offset = Vec3::new( - 0.0, - skeleton_attr.tail_front.0, - skeleton_attr.tail_front.1 + centeroffset * 0.6, - ); - next.tail_front.ori = Quaternion::rotation_x(center * 0.03); + next.tail_front.offset = + Vec3::new(0.0, skeleton_attr.tail_front.0, skeleton_attr.tail_front.1); + next.tail_front.ori = Quaternion::rotation_x(0.15) * Quaternion::rotation_z(-0.2); next.tail_front.scale = Vec3::one() * 0.98; - next.tail_rear.offset = Vec3::new( - 0.0, - skeleton_attr.tail_rear.0, - skeleton_attr.tail_rear.1 + centeroffset * 0.6, - ); - next.tail_rear.ori = Quaternion::rotation_x(center * 0.03); + next.tail_rear.offset = + Vec3::new(0.0, skeleton_attr.tail_rear.0, skeleton_attr.tail_rear.1); + next.tail_rear.ori = Quaternion::rotation_z(-0.4) * Quaternion::rotation_x(-0.12); next.tail_rear.scale = Vec3::one() * 0.98; - next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1); - next.chest.ori = Quaternion::rotation_y(center * 0.05); - next.chest.scale = Vec3::one(); - next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, ); - next.foot_fl.ori = Quaternion::rotation_x(-1.3 + footl * 0.06); + next.foot_fl.ori = Quaternion::rotation_z(0.3); next.foot_fl.scale = Vec3::one(); next.foot_fr.offset = Vec3::new( @@ -92,7 +64,7 @@ impl Animation for JumpAnimation { skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, ); - next.foot_fr.ori = Quaternion::rotation_x(-1.3 + footr * 0.06); + next.foot_fr.ori = Quaternion::rotation_z(0.3); next.foot_fr.scale = Vec3::one(); next.foot_bl.offset = Vec3::new( @@ -100,7 +72,7 @@ impl Animation for JumpAnimation { skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, ); - next.foot_bl.ori = Quaternion::rotation_x(-1.3 + footl * 0.06); + next.foot_bl.ori = Quaternion::rotation_y(0.0); next.foot_bl.scale = Vec3::one(); next.foot_br.offset = Vec3::new( @@ -108,7 +80,7 @@ impl Animation for JumpAnimation { skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, ); - next.foot_br.ori = Quaternion::rotation_x(-1.3 + footr * 0.06); + next.foot_br.ori = Quaternion::rotation_y(0.0); next.foot_br.scale = Vec3::one(); next diff --git a/voxygen/src/anim/src/quadruped_low/mod.rs b/voxygen/src/anim/src/quadruped_low/mod.rs index 9920f05c18..a052da5177 100644 --- a/voxygen/src/anim/src/quadruped_low/mod.rs +++ b/voxygen/src/anim/src/quadruped_low/mod.rs @@ -94,6 +94,7 @@ pub struct SkeletonAttr { feet_b: (f32, f32, f32), lean: (f32, f32), scaler: f32, + tempo: f32, } impl<'a> std::convert::TryFrom<&'a comp::Body> for SkeletonAttr { @@ -120,6 +121,7 @@ impl Default for SkeletonAttr { feet_b: (0.0, 0.0, 0.0), lean: (0.0, 0.0), scaler: 0.0, + tempo: 0.0, } } } @@ -149,14 +151,14 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Pangolin, _) => (8.0, -9.0), }, jaw: match (body.species, body.body_type) { - (Crocodile, _) => (0.0, -3.0), - (Alligator, _) => (8.5, -2.0), - (Salamander, _) => (0.0, -2.0), - (Monitor, _) => (0.0, -1.0), - (Asp, _) => (1.0, -2.0), - (Tortoise, _) => (0.5, -2.0), - (Rocksnapper, _) => (0.5, -1.5), - (Pangolin, _) => (0.5, -1.5), + (Crocodile, _) => (-6.0, -3.0), + (Alligator, _) => (2.5, -2.0), + (Salamander, _) => (-6.0, -2.0), + (Monitor, _) => (-2.0, -1.0), + (Asp, _) => (-3.0, -2.0), + (Tortoise, _) => (-3.5, -2.0), + (Rocksnapper, _) => (-5.0, -1.5), + (Pangolin, _) => (0.0, 0.0), }, chest: match (body.species, body.body_type) { (Crocodile, _) => (0.0, 5.0), @@ -174,7 +176,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (-9.0, 0.0), (Monitor, _) => (-12.0, 0.0), (Asp, _) => (-14.0, -2.0), - (Tortoise, _) => (-7.0, -1.5), + (Tortoise, _) => (-10.0, -1.5), (Rocksnapper, _) => (-14.5, -2.0), (Pangolin, _) => (-7.0, -3.0), }, @@ -184,7 +186,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (-7.5, 0.0), (Monitor, _) => (-6.5, 0.0), (Asp, _) => (-6.0, -2.0), - (Tortoise, _) => (-10.0, -3.5), + (Tortoise, _) => (-13.0, -3.5), (Rocksnapper, _) => (-13.5, -6.5), (Pangolin, _) => (-7.5, -0.5), }, @@ -202,9 +204,9 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Crocodile, _) => (3.5, -6.0, -1.0), (Alligator, _) => (4.5, -5.5, -1.0), (Salamander, _) => (4.0, -6.0, -2.0), - (Monitor, _) => (3.0, -6.0, 0.0), + (Monitor, _) => (2.5, -6.5, 0.0), (Asp, _) => (2.5, -5.5, -1.0), - (Tortoise, _) => (7.0, -11.5, -3.0), + (Tortoise, _) => (6.0, -11.5, -3.0), (Rocksnapper, _) => (8.0, -16.0, -9.5), (Pangolin, _) => (6.0, -4.0, -1.0), }, @@ -217,11 +219,21 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Alligator, _) => (1.5), (Salamander, _) => (1.4), (Monitor, _) => (1.1), - (Asp, _) => (1.2), + (Asp, _) => (1.4), (Tortoise, _) => (1.0), - (Rocksnapper, _) => (1.2), + (Rocksnapper, _) => (1.4), (Pangolin, _) => (1.3), }, + tempo: match (body.species, body.body_type) { + (Crocodile, _) => (0.8), + (Alligator, _) => (0.8), + (Salamander, _) => (1.0), + (Monitor, _) => (1.3), + (Asp, _) => (1.0), + (Tortoise, _) => (0.7), + (Rocksnapper, _) => (0.9), + (Pangolin, _) => (1.15), + }, } } } diff --git a/voxygen/src/anim/src/quadruped_low/run.rs b/voxygen/src/anim/src/quadruped_low/run.rs index 9bf9ce7015..4300b24285 100644 --- a/voxygen/src/anim/src/quadruped_low/run.rs +++ b/voxygen/src/anim/src/quadruped_low/run.rs @@ -21,10 +21,7 @@ impl Animation for RunAnimation { ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let lab = 0.7 * (skeleton_attr.lean.0 + 1.0) * (1.0 / skeleton_attr.scaler); - - let center = (anim_time as f32 * lab as f32 + PI / 2.0).sin(); - let centeroffset = (anim_time as f32 * lab as f32 + PI * 1.5).sin(); + let lab = 0.7 * skeleton_attr.tempo; let short = (((1.0) / (0.72 @@ -42,6 +39,8 @@ impl Animation for RunAnimation { .powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.45).sin()); + let footvertl = (anim_time as f32 * 16.0 * lab as f32 + PI * 0.0).sin(); + let foothorir = (((1.0) / (0.4 + (0.6) @@ -49,53 +48,27 @@ impl Animation for RunAnimation { .powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.45).sin()); - let footvertl = (anim_time as f32 * 16.0 * lab as f32 + PI * 0.0).sin(); let footvertr = (anim_time as f32 * 16.0 * lab as f32 + PI).sin(); - let footrotl = (((1.0) - / (0.4 - + (0.6) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()).powf(2.0 as f32))) - .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.4).sin()); - - let footrotr = (((1.0) - / (0.4 - + (0.6) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()).powf(2.0 as f32))) - .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.4).sin()); // let foothorilb = (((1.0) / (0.4 + (0.6) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.25).sin()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.05).sin()) .powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.25).sin()); + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.05).sin()); + let footvertlb = (anim_time as f32 * 16.0 * lab as f32 + PI * (-0.4)).sin(); + let foothorirb = (((1.0) / (0.4 + (0.6) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.25).sin()) + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.05).sin()) .powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.25).sin()); - let footvertlb = (anim_time as f32 * 16.0 * lab as f32 + PI * (-0.2)).sin(); - let footvertrb = (anim_time as f32 * 16.0 * lab as f32 + PI * 0.8).sin(); + * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.05).sin()); + let footvertrb = (anim_time as f32 * 16.0 * lab as f32 + PI * 0.6).sin(); - let footrotlb = (((1.0) - / (0.4 - + (0.6) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.2).sin()).powf(2.0 as f32))) - .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 1.2).sin()); - - let footrotrb = (((1.0) - / (0.4 - + (0.6) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.2).sin()).powf(2.0 as f32))) - .sqrt()) - * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.2).sin()); let ori = Vec2::from(orientation); let last_ori = Vec2::from(last_ori); let tilt = if Vec2::new(ori, last_ori) @@ -139,7 +112,7 @@ impl Animation for RunAnimation { next.tail_rear.offset = Vec3::new( 0.0, skeleton_attr.tail_rear.0, - skeleton_attr.tail_rear.1 + centeroffset * 0.6, + skeleton_attr.tail_rear.1 + shortalt * 0.6, ); next.tail_rear.ori = Quaternion::rotation_z(shortalt * 0.25 + tilt * 1.6) * Quaternion::rotation_y(shortalt * 0.1) @@ -150,7 +123,7 @@ impl Animation for RunAnimation { * skeleton_attr.scaler / 11.0; next.chest.ori = Quaternion::rotation_z(short * 0.13 + tilt * -1.9) - * Quaternion::rotation_y(shortalt * 0.12) + * Quaternion::rotation_y(short * 0.12) * Quaternion::rotation_x(skeleton_attr.lean.0); next.chest.scale = Vec3::one() * skeleton_attr.scaler / 11.0; @@ -159,9 +132,9 @@ impl Animation for RunAnimation { skeleton_attr.feet_f.1 + foothoril * -1.0, skeleton_attr.feet_f.2 + 1.0 + ((footvertl * -0.8).max(-0.0)), ); - next.foot_fl.ori = - Quaternion::rotation_x(footrotl * -0.25 * skeleton_attr.lean.1 - skeleton_attr.lean.0) - * Quaternion::rotation_z(footrotl * 0.4 * skeleton_attr.lean.1); + next.foot_fl.ori = Quaternion::rotation_x( + -0.2 + footvertl * -0.35 * skeleton_attr.lean.1 - skeleton_attr.lean.0, + ) * Quaternion::rotation_z(footvertl * 0.4 * skeleton_attr.lean.1); next.foot_fl.scale = Vec3::one(); next.foot_fr.offset = Vec3::new( @@ -170,8 +143,9 @@ impl Animation for RunAnimation { skeleton_attr.feet_f.2 + 1.0 + ((footvertr * -0.8).max(-0.0)), ); next.foot_fr.ori = - Quaternion::rotation_x(footrotr * -0.25 * skeleton_attr.lean.1 - skeleton_attr.lean.0) - * Quaternion::rotation_z(footrotr * -0.4 * skeleton_attr.lean.1 + tilt * 3.5); + Quaternion::rotation_x( + -0.2 + footvertr * -0.25 * skeleton_attr.lean.1 - skeleton_attr.lean.0, + ) * Quaternion::rotation_z(footvertr * -0.4 * skeleton_attr.lean.1 + tilt * 3.5); next.foot_fr.scale = Vec3::one(); next.foot_bl.offset = Vec3::new( @@ -179,8 +153,8 @@ impl Animation for RunAnimation { skeleton_attr.feet_b.1 + foothorilb * -1.0, skeleton_attr.feet_b.2 + 1.0 + ((footvertlb * -0.6).max(-0.0)), ); - next.foot_bl.ori = Quaternion::rotation_x(footrotlb * -0.25 - skeleton_attr.lean.0) - * Quaternion::rotation_z(footrotlb * 0.4); + next.foot_bl.ori = Quaternion::rotation_x(-0.2 + footvertlb * -0.3 - skeleton_attr.lean.0) + * Quaternion::rotation_z(footvertlb * 0.4); next.foot_bl.scale = Vec3::one(); next.foot_br.offset = Vec3::new( @@ -188,8 +162,8 @@ impl Animation for RunAnimation { skeleton_attr.feet_b.1 + foothorirb * -1.0, skeleton_attr.feet_b.2 + 1.0 + ((footvertrb * -0.6).max(-0.0)), ); - next.foot_br.ori = Quaternion::rotation_x(footrotrb * -0.25 - skeleton_attr.lean.0) - * Quaternion::rotation_z(footrotrb * -0.4); + next.foot_br.ori = Quaternion::rotation_x(-0.2 + footvertrb * -0.3 - skeleton_attr.lean.0) + * Quaternion::rotation_z(footvertrb * -0.4); next.foot_br.scale = Vec3::one(); next diff --git a/voxygen/src/anim/src/quadruped_medium/alpha.rs b/voxygen/src/anim/src/quadruped_medium/alpha.rs index 843a03dd7d..f9e2a71bb7 100644 --- a/voxygen/src/anim/src/quadruped_medium/alpha.rs +++ b/voxygen/src/anim/src/quadruped_medium/alpha.rs @@ -1,5 +1,5 @@ use super::{super::Animation, QuadrupedMediumSkeleton, SkeletonAttr}; -use std::{f32::consts::PI, ops::Mul}; +use std::f32::consts::PI; use vek::*; pub struct AlphaAnimation; @@ -21,40 +21,11 @@ impl Animation for AlphaAnimation { ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - let slower = (anim_time as f32 * 1.0 + PI).sin(); - let wave_ultra_slow_cos = (anim_time as f32 * 1.0 + PI).cos(); - let slow = (anim_time as f32 * 3.5 + PI).sin(); - let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos(); - let short = (((1.0) / (0.5 + 0.5 * ((anim_time as f32 * 2.0 + PI * 1.0).sin()).powf(2.0 as f32))) .sqrt()) * ((anim_time as f32 * 2.0 + PI * 1.0).sin()); - let look = Vec2::new( - ((global_time + anim_time) as f32 / 8.0) - .floor() - .mul(7331.0) - .sin() - * 0.5, - ((global_time + anim_time) as f32 / 8.0) - .floor() - .mul(1337.0) - .sin() - * 0.25, - ); - let tailmove = Vec2::new( - ((global_time + anim_time) as f32 / 2.0) - .floor() - .mul(7331.0) - .sin() - * 0.25, - ((global_time + anim_time) as f32 / 2.0) - .floor() - .mul(1337.0) - .sin() - * 0.125, - ); let random = ((((2.0 * ((global_time as f32 - anim_time as f32) - ((global_time as f32 - anim_time as f32).round()))) diff --git a/voxygen/src/anim/src/quadruped_medium/idle.rs b/voxygen/src/anim/src/quadruped_medium/idle.rs index 01f8e467a2..f54dc50e77 100644 --- a/voxygen/src/anim/src/quadruped_medium/idle.rs +++ b/voxygen/src/anim/src/quadruped_medium/idle.rs @@ -22,9 +22,7 @@ impl Animation for IdleAnimation { let mut next = (*skeleton).clone(); let slower = (anim_time as f32 * 1.0 + PI).sin(); - let wave_ultra_slow_cos = (anim_time as f32 * 1.0 + PI).cos(); let slow = (anim_time as f32 * 3.5 + PI).sin(); - let wave_slow_cos = (anim_time as f32 * 3.5 + PI).cos(); let look = Vec2::new( ((global_time + anim_time) as f32 / 8.0) @@ -70,7 +68,7 @@ impl Animation for IdleAnimation { next.jaw.offset = Vec3::new( 0.0, - skeleton_attr.jaw.0 - wave_ultra_slow_cos * 0.12, + skeleton_attr.jaw.0 - slower * 0.12, skeleton_attr.jaw.1 + slow * 0.2, ); next.jaw.ori = Quaternion::rotation_x(slow * 0.05); @@ -110,7 +108,7 @@ impl Animation for IdleAnimation { skeleton_attr.leg_f.2 + slow * -0.15 + slower * -0.15, ); next.leg_fl.ori = Quaternion::rotation_y(slow * -0.02); - next.leg_fl.scale = Vec3::one(); + next.leg_fl.scale = Vec3::one() * 1.02; next.leg_fr.offset = Vec3::new( skeleton_attr.leg_f.0, @@ -118,7 +116,7 @@ impl Animation for IdleAnimation { skeleton_attr.leg_f.2 + slow * 0.15 + slower * -0.15, ); next.leg_fr.ori = Quaternion::rotation_y(slow * -0.02); - next.leg_fr.scale = Vec3::one(); + next.leg_fr.scale = Vec3::one() * 1.02; next.leg_bl.offset = Vec3::new( -skeleton_attr.leg_b.0, @@ -126,15 +124,15 @@ impl Animation for IdleAnimation { skeleton_attr.leg_b.2 + slower * -0.3, ); next.leg_bl.ori = Quaternion::rotation_y(slow * -0.02); - next.leg_bl.scale = Vec3::one(); + next.leg_bl.scale = Vec3::one() * 1.02; next.leg_br.offset = Vec3::new( skeleton_attr.leg_b.0, skeleton_attr.leg_b.1, - skeleton_attr.leg_b.2 + slower * -0.5, + skeleton_attr.leg_b.2 + slower * -0.3, ); next.leg_br.ori = Quaternion::rotation_y(slow * -0.02); - next.leg_br.scale = Vec3::one(); + next.leg_br.scale = Vec3::one() * 1.02; next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, @@ -142,7 +140,7 @@ impl Animation for IdleAnimation { skeleton_attr.feet_f.2 + slower * -0.2, ); next.foot_fl.ori = Quaternion::rotation_x(0.0); - next.foot_fl.scale = Vec3::one(); + next.foot_fl.scale = Vec3::one() * 0.96; next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, @@ -158,7 +156,7 @@ impl Animation for IdleAnimation { skeleton_attr.feet_b.2 + slower * -0.2, ); next.foot_bl.ori = Quaternion::rotation_x(0.0); - next.foot_bl.scale = Vec3::one(); + next.foot_bl.scale = Vec3::one() * 0.96; next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, @@ -166,7 +164,7 @@ impl Animation for IdleAnimation { skeleton_attr.feet_b.2 + slower * -0.2, ); next.foot_br.ori = Quaternion::rotation_x(0.0); - next.foot_br.scale = Vec3::one(); + next.foot_br.scale = Vec3::one() * 0.96; next } diff --git a/voxygen/src/anim/src/quadruped_medium/jump.rs b/voxygen/src/anim/src/quadruped_medium/jump.rs index ddf7c7516b..eb8647aecc 100644 --- a/voxygen/src/anim/src/quadruped_medium/jump.rs +++ b/voxygen/src/anim/src/quadruped_medium/jump.rs @@ -4,7 +4,7 @@ use vek::*; pub struct JumpAnimation; impl Animation for JumpAnimation { - type Dependency = (f32, f64); + type Dependency = f64; type Skeleton = QuadrupedMediumSkeleton; #[cfg(feature = "use-dyn-lib")] @@ -20,80 +20,107 @@ impl Animation for JumpAnimation { ) -> Self::Skeleton { let mut next = (*skeleton).clone(); - next.head_upper.offset = Vec3::new( - 0.0, - skeleton_attr.head_upper.0, - skeleton_attr.head_upper.1 + 3.0, - ) / 11.0; - next.head_upper.ori = Quaternion::rotation_z(0.8) * Quaternion::rotation_x(0.5); - next.head_upper.scale = Vec3::one() / 10.98; + next.head_upper.offset = + Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); + next.head_upper.ori = Quaternion::rotation_z(0.4) * Quaternion::rotation_x(0.3); + next.head_upper.scale = Vec3::one(); next.head_lower.offset = Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); - next.head_lower.ori = Quaternion::rotation_x(-0.4); + next.head_lower.ori = Quaternion::rotation_z(0.2) * Quaternion::rotation_x(0.3); next.head_lower.scale = Vec3::one() * 1.02; next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); - next.jaw.ori = Quaternion::rotation_x(0.0); - next.jaw.scale = Vec3::one() * 0.98; + next.jaw.ori = Quaternion::rotation_x(-0.4); + next.jaw.scale = Vec3::one() * 1.02; next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); - next.tail.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); + next.tail.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(-0.3); next.tail.scale = Vec3::one(); - next.torso_back.offset = Vec3::new( - 0.0, - skeleton_attr.torso_back.0, - skeleton_attr.torso_back.1 + 2.0, - ) / 11.0; - next.torso_back.ori = Quaternion::rotation_z(-0.8) - * Quaternion::rotation_z(0.0) - * Quaternion::rotation_x(0.2); - next.torso_back.scale = Vec3::one() / 11.0; - next.torso_front.offset = Vec3::new( 0.0, skeleton_attr.torso_front.0, skeleton_attr.torso_front.1, - ) / 11.0; - next.torso_front.ori = Quaternion::rotation_x(-0.4); - next.torso_front.scale = Vec3::one() / 10.98; + ) * skeleton_attr.scaler + / 11.0; + next.torso_front.ori = Quaternion::rotation_y(0.0); + next.torso_front.scale = Vec3::one() * skeleton_attr.scaler / 11.0; + + next.torso_back.offset = + Vec3::new(0.0, skeleton_attr.torso_back.0, skeleton_attr.torso_back.1); + next.torso_back.ori = Quaternion::rotation_z(-0.3) + * Quaternion::rotation_z(0.0) + * Quaternion::rotation_x(0.0); + next.torso_back.scale = Vec3::one(); next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); - next.ears.ori = Quaternion::rotation_x(0.0); - next.ears.scale = Vec3::one() / 1.02; + next.ears.ori = Quaternion::rotation_x(0.6); + next.ears.scale = Vec3::one() * 1.02; + + next.leg_fl.offset = Vec3::new( + -skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1, + skeleton_attr.leg_f.2, + ); + next.leg_fl.ori = Quaternion::rotation_x(-0.4); + next.leg_fl.scale = Vec3::one(); + + next.leg_fr.offset = Vec3::new( + skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1, + skeleton_attr.leg_f.2, + ); + next.leg_fr.ori = Quaternion::rotation_x(0.4); + next.leg_fr.scale = Vec3::one(); + + next.leg_bl.offset = Vec3::new( + -skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1, + skeleton_attr.leg_b.2, + ); + next.leg_bl.ori = Quaternion::rotation_y(0.0); + next.leg_bl.scale = Vec3::one(); + + next.leg_br.offset = Vec3::new( + skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1, + skeleton_attr.leg_b.2, + ); + next.leg_br.ori = Quaternion::rotation_y(0.0); + next.leg_br.scale = Vec3::one(); next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, - ) / 11.0; - next.foot_fl.ori = Quaternion::rotation_x(0.0); - next.foot_fl.scale = Vec3::one() / 11.0; + ); + next.foot_fl.ori = Quaternion::rotation_x(-0.3); + next.foot_fl.scale = Vec3::one(); next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, skeleton_attr.feet_f.2, - ) / 11.0; - next.foot_fr.ori = Quaternion::rotation_x(0.0); - next.foot_fr.scale = Vec3::one() / 11.0; + ); + next.foot_fr.ori = Quaternion::rotation_x(0.2); + next.foot_fr.scale = Vec3::one(); next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, - ) / 11.0; + ); next.foot_bl.ori = Quaternion::rotation_x(0.0); - next.foot_bl.scale = Vec3::one() / 11.0; + next.foot_bl.scale = Vec3::one(); next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, skeleton_attr.feet_b.2, - ) / 11.0; + ); next.foot_br.ori = Quaternion::rotation_x(0.0); - next.foot_br.scale = Vec3::one() / 11.0; + next.foot_br.scale = Vec3::one(); next } diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index 3ffa2c0035..aef1904e54 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -132,6 +132,8 @@ pub struct SkeletonAttr { feet_b: (f32, f32, f32), scaler: f32, dampen: f32, + maximize: f32, + tempo: f32, } impl<'a> std::convert::TryFrom<&'a comp::Body> for SkeletonAttr { @@ -161,6 +163,8 @@ impl Default for SkeletonAttr { feet_b: (0.0, 0.0, 0.0), scaler: 0.0, dampen: 0.0, + maximize: 0.0, + tempo: 0.0, } } } @@ -170,7 +174,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { use comp::quadruped_medium::Species::*; Self { head_upper: match (body.species, body.body_type) { - (Grolgar, _) => (-8.0, 1.5), + (Grolgar, _) => (0.0, -1.0), (Saber, _) => (0.0, -3.0), (Tuskram, _) => (0.0, 1.0), (Lion, _) => (2.5, 2.0), @@ -181,7 +185,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Mouflon, _) => (-2.5, 6.0), }, head_lower: match (body.species, body.body_type) { - (Grolgar, _) => (3.5, -3.0), + (Grolgar, _) => (1.0, -1.0), (Saber, _) => (1.0, 0.0), (Tuskram, _) => (1.0, 1.0), (Lion, _) => (0.5, 1.0), @@ -192,7 +196,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Mouflon, _) => (-1.0, 0.5), }, jaw: match (body.species, body.body_type) { - (Grolgar, _) => (8.5, 4.5), + (Grolgar, _) => (8.5, 1.5), (Saber, _) => (3.5, -2.0), (Tuskram, _) => (5.5, -4.0), (Lion, _) => (3.5, -4.5), @@ -214,10 +218,10 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Mouflon, _) => (-10.5, 3.0), }, torso_front: match (body.species, body.body_type) { - (Grolgar, _) => (10.0, 11.0), - (Saber, _) => (14.0, 13.0), + (Grolgar, _) => (10.0, 13.0), + (Saber, _) => (14.0, 14.0), (Tuskram, _) => (10.0, 14.5), - (Lion, _) => (10.0, 13.0), + (Lion, _) => (10.0, 14.0), (Tarasque, _) => (11.5, 18.5), (Tiger, _) => (10.0, 14.0), (Wolf, _) => (12.0, 13.0), @@ -225,7 +229,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Mouflon, _) => (11.0, 13.5), }, torso_back: match (body.species, body.body_type) { - (Grolgar, _) => (-14.0, 1.5), + (Grolgar, _) => (-10.0, 1.5), (Saber, _) => (-13.5, 0.0), (Tuskram, _) => (-13.0, -2.0), (Lion, _) => (-13.0, -0.5), @@ -247,32 +251,32 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Mouflon, _) => (2.5, 5.0), }, leg_f: match (body.species, body.body_type) { - (Grolgar, _) => (-7.0, -5.0, -2.0), - (Saber, _) => (7.0, -7.5, -3.5), - (Tuskram, _) => (6.0, -6.5, -5.5), - (Lion, _) => (6.5, -9.0, -6.0), + (Grolgar, _) => (-7.0, 4.0, 0.0), + (Saber, _) => (7.0, -4.0, -3.5), + (Tuskram, _) => (6.0, -6.5, -0.5), + (Lion, _) => (6.5, -8.0, -2.0), (Tarasque, _) => (7.0, -8.0, -6.0), (Tiger, _) => (7.0, -5.0, -3.0), (Wolf, _) => (4.5, -6.5, -1.0), (Frostfang, _) => (5.5, -5.5, -2.0), - (Mouflon, _) => (5.0, -5.5, -5.0), + (Mouflon, _) => (5.0, -5.0, -5.0), }, leg_b: match (body.species, body.body_type) { - (Grolgar, _) => (6.0, -6.5, -3.5), - (Saber, _) => (6.0, -7.0, -4.0), + (Grolgar, _) => (6.0, -6.5, -5.5), + (Saber, _) => (6.0, -7.0, -3.5), (Tuskram, _) => (5.0, -5.5, -3.5), - (Lion, _) => (6.0, -6.0, -2.5), + (Lion, _) => (6.0, -6.0, -2.0), (Tarasque, _) => (6.0, -6.5, -6.5), (Tiger, _) => (7.0, -8.0, -3.0), (Wolf, _) => (5.0, -6.5, -2.5), (Frostfang, _) => (3.5, -4.5, -2.0), - (Mouflon, _) => (3.5, -5.0, -4.5), + (Mouflon, _) => (3.5, -6.0, -4.5), }, feet_f: match (body.species, body.body_type) { - (Grolgar, _) => (0.0, -3.0, -3.0), - (Saber, _) => (1.0, 0.0, -1.0), - (Tuskram, _) => (0.5, 0.5, -4.0), - (Lion, _) => (0.0, 0.0, -1.5), + (Grolgar, _) => (0.0, -9.0, -7.0), + (Saber, _) => (1.0, -3.5, -2.5), + (Tuskram, _) => (0.5, 0.5, -9.0), + (Lion, _) => (0.0, 0.0, -7.0), (Tarasque, _) => (1.0, 0.0, -3.0), (Tiger, _) => (0.5, 0.0, -5.0), (Wolf, _) => (0.5, 0.0, -2.0), @@ -281,9 +285,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { }, feet_b: match (body.species, body.body_type) { (Grolgar, _) => (0.0, 0.0, -5.0), - (Saber, _) => (1.0, -2.0, 0.0), + (Saber, _) => (1.0, -1.0, -1.0), (Tuskram, _) => (0.5, 0.0, -3.0), - (Lion, _) => (0.5, 0.5, -4.0), + (Lion, _) => (0.5, 0.5, -5.5), (Tarasque, _) => (1.5, -1.0, -2.5), (Tiger, _) => (1.0, 0.5, -4.0), (Wolf, _) => (0.0, -1.0, -1.5), @@ -292,7 +296,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { }, scaler: match (body.species, body.body_type) { (Grolgar, _) => (1.3), - (Saber, _) => (1.1), + (Saber, _) => (0.9), (Tuskram, _) => (1.2), (Lion, _) => (1.3), (Tarasque, _) => (1.3), @@ -303,15 +307,37 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { }, dampen: match (body.species, body.body_type) { (Grolgar, _) => (0.5), - (Saber, _) => (0.7), - (Tuskram, _) => (0.9), - (Lion, _) => (0.7), - (Tarasque, _) => (0.7), + (Saber, _) => (0.5), + (Tuskram, _) => (0.6), + (Lion, _) => (0.8), + (Tarasque, _) => (0.6), (Tiger, _) => (0.6), (Wolf, _) => (1.0), (Frostfang, _) => (1.0), (Mouflon, _) => (1.0), }, + maximize: match (body.species, body.body_type) { + (Grolgar, _) => (2.0), + (Saber, _) => (1.5), + (Tuskram, _) => (1.0), + (Lion, _) => (1.1), + (Tarasque, _) => (1.8), + (Tiger, _) => (1.8), + (Wolf, _) => (1.0), + (Frostfang, _) => (1.2), + (Mouflon, _) => (1.1), + }, + tempo: match (body.species, body.body_type) { + (Grolgar, _) => (0.95), + (Saber, _) => (1.1), + (Tuskram, _) => (0.9), + (Lion, _) => (0.85), + (Tarasque, _) => (0.95), + (Tiger, _) => (0.9), + (Wolf, _) => (1.0), + (Frostfang, _) => (1.0), + (Mouflon, _) => (0.85), + }, } } } diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index b978c82579..fb0ad9e79f 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -1,5 +1,5 @@ use super::{super::Animation, QuadrupedMediumSkeleton, SkeletonAttr}; -use std::{f32::consts::PI, ops::Mul}; +use std::f32::consts::PI; use vek::*; pub struct RunAnimation; @@ -25,9 +25,9 @@ impl Animation for RunAnimation { let lab = 0.6; //6 let speedmult = if speed > 8.0 { - 1.2 * (1.0 / skeleton_attr.scaler) + 1.2 * (1.0 * skeleton_attr.tempo) } else { - 1.0 * (1.0 / skeleton_attr.scaler) + 0.9 * (1.0 * skeleton_attr.tempo) }; let short = (((1.0) @@ -41,12 +41,25 @@ impl Animation for RunAnimation { // let shortalt = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.5).sin(); + let footvert = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.0).sin(); + let footvertt = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.4).sin(); + let footvertalt = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.2).sin(); + let footverttalt = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.6).sin(); - let vertchest = (anim_time as f32 * lab as f32 * speedmult + PI * 0.3) - .sin() - .max(0.2); - let horichest = (anim_time as f32 * lab as f32 * speedmult + PI * 0.8).sin(); + let footvertf = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.3).sin(); + let footverttf = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.7).sin(); + let footvertaltf = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.5).sin(); + let footverttaltf = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.9).sin(); + let footvertslow = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.0).sin(); + let footverttslow = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.4).sin(); + let footvertaltslow = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.2).sin(); + let footverttaltslow = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.6).sin(); + + let footvertfslow = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.6).sin(); + let footverttfslow = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.0).sin(); + let footvertaltfslow = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.8).sin(); + let footverttaltfslow = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 2.2).sin(); // let ori = Vec2::from(orientation); let last_ori = Vec2::from(last_ori); @@ -63,130 +76,17 @@ impl Animation for RunAnimation { } * 1.3; //let tilt = 0.0; if speed < 8.0 { - /* //Trot - next.head_upper.offset = - Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); - next.head_upper.ori = Quaternion::rotation_x(0.0) * Quaternion::rotation_z(tilt * -1.2); - next.head_upper.scale = Vec3::one(); - - next.head_lower.offset = Vec3::new( - 0.0, - skeleton_attr.head_lower.0 + horichest * 0.4, - skeleton_attr.head_lower.1 + vertchest * -0.8, - ); - next.head_lower.ori = Quaternion::rotation_z(tilt * -0.8); - next.head_lower.scale = Vec3::one() * 1.02; - - next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); - next.jaw.ori = Quaternion::rotation_x(0.0); - next.jaw.scale = Vec3::one() * 1.02; - - next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); - next.tail.ori = - Quaternion::rotation_x(shortalt * 0.08) * Quaternion::rotation_z(tilt * 1.5); - next.tail.scale = Vec3::one(); - - next.torso_front.offset = Vec3::new( - 0.0, - skeleton_attr.torso_front.0, - skeleton_attr.torso_front.1 + shortalt * 0.8, - ) * skeleton_attr.scaler - / 11.0; - next.torso_front.ori = Quaternion::rotation_x(short * 0.03); - next.torso_front.scale = Vec3::one() * skeleton_attr.scaler / 11.0; - - next.torso_back.offset = - Vec3::new(0.0, skeleton_attr.torso_back.0, skeleton_attr.torso_back.1 + shortalt * 0.2 - 0.2); - next.torso_back.ori = - Quaternion::rotation_x(short * -0.03) * Quaternion::rotation_z(tilt * 1.8); - next.torso_back.scale = Vec3::one(); - - next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); - next.ears.ori = Quaternion::rotation_x(shortalt * 0.2 + 0.2); - next.ears.scale = Vec3::one() * 1.02; - - ////left and right functions currently swapped on some bones to change gait - next.leg_fl.offset = Vec3::new( - -skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1 + foothoril * -1.0, - skeleton_attr.leg_f.2 + footvertl * -0.4, - ); - next.leg_fl.ori = - Quaternion::rotation_x(footrotl * -0.3) * Quaternion::rotation_z(tilt * -1.5); - next.leg_fl.scale = Vec3::one() * 0.99; - - next.leg_fr.offset = Vec3::new( - skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1 + foothorir * -1.0, - skeleton_attr.leg_f.2 + footvertr * -0.4, - ); - next.leg_fr.ori = - Quaternion::rotation_x(footrotr * -0.3) * Quaternion::rotation_z(tilt * -1.5); - next.leg_fr.scale = Vec3::one() * 0.99; - - next.leg_bl.offset = Vec3::new( - -skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1 + foothorilb * -1.0, - skeleton_attr.leg_b.2 + footvertlb * -0.4, - ); - next.leg_bl.ori = - Quaternion::rotation_x(footrotlb * -0.3) * Quaternion::rotation_z(tilt * -1.5); - next.leg_bl.scale = Vec3::one() * 0.99; - - next.leg_br.offset = Vec3::new( - skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1 + foothorirb * -1.0, - skeleton_attr.leg_b.2 + footvertrb * -0.4, - ); - next.leg_br.ori = - Quaternion::rotation_x(footrotrb * -0.3) * Quaternion::rotation_z(tilt * -1.5); - next.leg_br.scale = Vec3::one() * 0.99; - - next.foot_fl.offset = Vec3::new( - -skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2 + 1.0 + ((footvertl * -1.0).max(-1.0)), - ); - next.foot_fl.ori = Quaternion::rotation_x(footrotl * -0.3); - next.foot_fl.scale = Vec3::one() * 0.97; - - next.foot_fr.offset = Vec3::new( - skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2 + 1.0 + ((footvertr * -1.0).max(-1.0)), - ); - next.foot_fr.ori = Quaternion::rotation_x(footrotr * -0.3); - next.foot_fr.scale = Vec3::one() * 0.98; - - next.foot_bl.offset = Vec3::new( - -skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2 + 1.0 + ((footvertlb * -1.0).max(-1.0)), - ); - next.foot_bl.ori = Quaternion::rotation_x(footrotlb * -0.3); - next.foot_bl.scale = Vec3::one() * 0.98; - - next.foot_br.offset = Vec3::new( - skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2 + 1.0 + ((footvertrb * -1.0).max(-1.0)), - ); - next.foot_br.ori = Quaternion::rotation_x(footrotrb * -0.3); - next.foot_br.scale = Vec3::one() * 0.98;*/ - } else { - //Gallop + //Trot next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); next.head_upper.ori = - Quaternion::rotation_x(short * -0.18) * Quaternion::rotation_z(tilt * -1.2); + Quaternion::rotation_x(short * -0.03 - 0.1) * Quaternion::rotation_z(tilt * -1.2); next.head_upper.scale = Vec3::one(); - next.head_lower.offset = Vec3::new( - 0.0, - skeleton_attr.head_lower.0 + horichest * 0.4, - skeleton_attr.head_lower.1 + vertchest * -0.8, - ); - next.head_lower.ori = Quaternion::rotation_z(tilt * -0.8); + next.head_lower.offset = + Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); + next.head_lower.ori = + Quaternion::rotation_z(tilt * -0.8) * Quaternion::rotation_x(short * -0.05); next.head_lower.scale = Vec3::one() * 1.02; next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); @@ -201,7 +101,122 @@ impl Animation for RunAnimation { next.torso_front.offset = Vec3::new( 0.0, skeleton_attr.torso_front.0, - skeleton_attr.torso_front.1 + shortalt * 2.0, + skeleton_attr.torso_front.1 + shortalt * 1.0, + ) * skeleton_attr.scaler + / 11.0; + next.torso_front.ori = + Quaternion::rotation_x(short * 0.03) * Quaternion::rotation_z(tilt * -1.5); + next.torso_front.scale = Vec3::one() * skeleton_attr.scaler / 11.0; + + next.torso_back.offset = Vec3::new( + 0.0, + skeleton_attr.torso_back.0, + skeleton_attr.torso_back.1 + shortalt * 0.04 - 0.2, + ); + next.torso_back.ori = + Quaternion::rotation_x(short * 0.06) * Quaternion::rotation_z(tilt * 1.8); + next.torso_back.scale = Vec3::one(); + + next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); + next.ears.ori = Quaternion::rotation_x(shortalt * 0.04 + 0.2); + next.ears.scale = Vec3::one() * 1.02; + + next.leg_fl.offset = Vec3::new( + -skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1 + footvertaltfslow * -1.4, + skeleton_attr.leg_f.2 + 1.0 + footverttaltfslow * -0.3, + ); + next.leg_fl.ori = Quaternion::rotation_x(footverttaltfslow * -0.35) + * Quaternion::rotation_z(tilt * -0.5); + next.leg_fl.scale = Vec3::one() * 1.02; + + next.leg_fr.offset = Vec3::new( + skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1 + footvertaltslow * -1.4, + skeleton_attr.leg_f.2 + 1.0 + footverttaltslow * -0.3, + ); + next.leg_fr.ori = Quaternion::rotation_x(footverttaltslow * -0.35) + * Quaternion::rotation_z(tilt * -0.5); + next.leg_fr.scale = Vec3::one() * 1.02; + + next.leg_bl.offset = Vec3::new( + -skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1 + footvertaltslow * -1.0, + skeleton_attr.leg_b.2 + 1.0 + footverttaltslow * -0.3, + ); + next.leg_bl.ori = Quaternion::rotation_x(footverttaltslow * -0.2) + * Quaternion::rotation_z(tilt * -1.5); + next.leg_bl.scale = Vec3::one() * 1.02; + + next.leg_br.offset = Vec3::new( + skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1 + footvertaltfslow * -1.0, + skeleton_attr.leg_b.2 + 1.0 + footverttaltfslow * -0.3, + ); + next.leg_br.ori = Quaternion::rotation_x(footverttaltfslow * -0.2) + * Quaternion::rotation_z(tilt * -1.5); + next.leg_br.scale = Vec3::one() * 1.02; + + next.foot_fl.offset = Vec3::new( + -skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2 + ((footvertfslow * -1.0 * skeleton_attr.maximize).max(0.0)), + ); + next.foot_fl.ori = + Quaternion::rotation_x((1.0 - skeleton_attr.dampen) * -1.0 + footverttfslow * 0.5); + next.foot_fl.scale = Vec3::one() * 0.96; + + next.foot_fr.offset = Vec3::new( + skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2 + ((footvertslow * -1.0 * skeleton_attr.maximize).max(0.0)), + ); + next.foot_fr.ori = + Quaternion::rotation_x((1.0 - skeleton_attr.dampen) * -1.0 + footverttslow * 0.5); + next.foot_fr.scale = Vec3::one() * 0.96; + + next.foot_bl.offset = Vec3::new( + -skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2 + ((footvertslow * -1.8).max(0.0)), + ); + next.foot_bl.ori = Quaternion::rotation_x(footverttslow * 0.5 - 0.2); + next.foot_bl.scale = Vec3::one() * 0.96; + + next.foot_br.offset = Vec3::new( + skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2 + ((footvertfslow * -0.8).max(-0.0)), + ); + next.foot_br.ori = Quaternion::rotation_x(footverttfslow * 0.5 - 0.2); + next.foot_br.scale = Vec3::one() * 0.96; + } else { + //Gallop + next.head_upper.offset = + Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); + next.head_upper.ori = + Quaternion::rotation_x(short * -0.03 - 0.1) * Quaternion::rotation_z(tilt * -1.2); + next.head_upper.scale = Vec3::one(); + + next.head_lower.offset = + Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); + next.head_lower.ori = + Quaternion::rotation_z(tilt * -0.8) * Quaternion::rotation_x(short * -0.05); + next.head_lower.scale = Vec3::one() * 1.02; + + next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); + next.jaw.ori = Quaternion::rotation_x(0.0); + next.jaw.scale = Vec3::one() * 1.02; + + next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); + next.tail.ori = + Quaternion::rotation_x(shortalt * 0.3) * Quaternion::rotation_z(tilt * 1.5); + next.tail.scale = Vec3::one(); + + next.torso_front.offset = Vec3::new( + 0.0, + skeleton_attr.torso_front.0, + skeleton_attr.torso_front.1 + shortalt * 2.5, ) * skeleton_attr.scaler / 11.0; next.torso_front.ori = @@ -220,78 +235,76 @@ impl Animation for RunAnimation { next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); next.ears.ori = Quaternion::rotation_x(shortalt * 0.2 + 0.2); next.ears.scale = Vec3::one() * 1.02; - let footvertl = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.0).sin(); - let footvertlt = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.4).sin(); - let footvertlalt = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.2).sin(); - let footvertltalt = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.6).sin(); - ////left and right functions currently swapped on some bones to change gait + next.leg_fl.offset = Vec3::new( -skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1 + footvertlalt * -2.0, - skeleton_attr.leg_f.2 + 1.0 + footvertltalt * -1.9, + skeleton_attr.leg_f.1 + footvertaltf * -1.3, + skeleton_attr.leg_f.2 + 1.0 + footverttaltf * -1.9, ); next.leg_fl.ori = - Quaternion::rotation_x(footvertltalt * -0.4) * Quaternion::rotation_z(tilt * -0.5); - next.leg_fl.scale = Vec3::one() * 0.99; + Quaternion::rotation_x(footverttaltf * -0.65) * Quaternion::rotation_z(tilt * -0.5); + next.leg_fl.scale = Vec3::one() * 1.02; next.leg_fr.offset = Vec3::new( skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1 + footvertlalt * -2.0, - skeleton_attr.leg_f.2 + 1.0 + footvertltalt * -1.9, + skeleton_attr.leg_f.1 + footvertalt * -1.3, + skeleton_attr.leg_f.2 + 1.0 + footverttalt * -1.9, ); next.leg_fr.ori = - Quaternion::rotation_x(footvertltalt * -0.4) * Quaternion::rotation_z(tilt * -0.5); - next.leg_fr.scale = Vec3::one() * 0.99; + Quaternion::rotation_x(footverttalt * -0.65) * Quaternion::rotation_z(tilt * -0.5); + next.leg_fr.scale = Vec3::one() * 1.02; next.leg_bl.offset = Vec3::new( -skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1 + footvertl * -1.7, - skeleton_attr.leg_b.2 + 1.0 + footvertlt * -1.5, + skeleton_attr.leg_b.1 + footvert * -1.7, + skeleton_attr.leg_b.2 + 1.0 + footvertt * -1.5, ); - next.leg_bl.ori = Quaternion::rotation_x(footvertlt * -0.4 - 0.2) + next.leg_bl.ori = Quaternion::rotation_x(footvertt * -0.4 - 0.2) * Quaternion::rotation_z(tilt * -1.5); - next.leg_bl.scale = Vec3::one() * 0.99; + next.leg_bl.scale = Vec3::one() * 1.02; next.leg_br.offset = Vec3::new( skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1 + footvertl * -1.7, - skeleton_attr.leg_b.2 + 1.0 + footvertlt * -1.5, + skeleton_attr.leg_b.1 + footvertf * -1.7, + skeleton_attr.leg_b.2 + 1.0 + footverttf * -1.5, ); - next.leg_br.ori = Quaternion::rotation_x(footvertlt * -0.4 - 0.2) + next.leg_br.ori = Quaternion::rotation_x(footverttf * -0.4 - 0.2) * Quaternion::rotation_z(tilt * -1.5); - next.leg_br.scale = Vec3::one() * 0.99; + next.leg_br.scale = Vec3::one() * 1.02; next.foot_fl.offset = Vec3::new( -skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2 + ((footvertl * -2.7).max(0.0)), + skeleton_attr.feet_f.2 + ((footvertf * -2.7 * skeleton_attr.maximize).max(0.0)), ); - next.foot_fl.ori = Quaternion::rotation_x(footvertlt * 0.9 * skeleton_attr.dampen); - next.foot_fl.scale = Vec3::one() * 0.97; + next.foot_fl.ori = + Quaternion::rotation_x((1.0 - skeleton_attr.dampen) * -1.0 + footverttf * 0.9); + next.foot_fl.scale = Vec3::one() * 0.96; next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2 + ((footvertl * -2.7).max(0.0)), + skeleton_attr.feet_f.2 + ((footvert * -2.7 * skeleton_attr.maximize).max(0.0)), ); - next.foot_fr.ori = Quaternion::rotation_x(footvertlt * 0.9 * skeleton_attr.dampen); - next.foot_fr.scale = Vec3::one() * 0.98; + next.foot_fr.ori = + Quaternion::rotation_x((1.0 - skeleton_attr.dampen) * -1.0 + footvertt * 0.9); + next.foot_fr.scale = Vec3::one() * 0.96; next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2 + ((footvertl * 2.4).max(0.0)), + skeleton_attr.feet_b.2 + ((footvert * 2.4).max(0.0)), ); - next.foot_bl.ori = Quaternion::rotation_x(footvertlt * -0.9 - 0.2); - next.foot_bl.scale = Vec3::one() * 0.98; + next.foot_bl.ori = Quaternion::rotation_x(footvertt * -0.9 - 0.2); + next.foot_bl.scale = Vec3::one() * 0.96; next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2 + ((footvertl * 2.4).max(-0.0)), + skeleton_attr.feet_b.2 + ((footvertf * 2.4).max(-0.0)), ); - next.foot_br.ori = Quaternion::rotation_x(footvertlt * -0.9 - 0.2); - next.foot_br.scale = Vec3::one() * 0.98; + next.foot_br.ori = Quaternion::rotation_x(footverttf * -0.9 - 0.2); + next.foot_br.scale = Vec3::one() * 0.96; } next } diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs index 3b0a79c3e2..54fbce398a 100644 --- a/voxygen/src/scene/figure/mod.rs +++ b/voxygen/src/scene/figure/mod.rs @@ -985,7 +985,7 @@ impl FigureMgr { (false, _, false) => { anim::quadruped_medium::JumpAnimation::update_skeleton( &QuadrupedMediumSkeleton::new(), - (vel.0.magnitude(), time), + (time), state.state_time, &mut state_animation_rate, skeleton_attr, From 79d52c0662e875603e34b3bdb14d3b9d9f91764f Mon Sep 17 00:00:00 2001 From: Joshua Barretto Date: Fri, 3 Jul 2020 19:30:41 +0100 Subject: [PATCH 38/48] Run tilting, per-species running speed --- common/src/states/utils.rs | 39 +++++++++++++------- voxygen/src/anim/src/quadruped_medium/run.rs | 8 ++-- voxygen/src/scene/figure/mod.rs | 13 ++++++- 3 files changed, 42 insertions(+), 18 deletions(-) diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs index ea99d4213c..a4899e5e3a 100644 --- a/common/src/states/utils.rs +++ b/common/src/states/utils.rs @@ -2,6 +2,7 @@ use crate::{ comp::{ item::{Hands, ItemKind, Tool}, CharacterState, StateUpdate, + Body, }, event::LocalEvent, states::*, @@ -11,10 +12,7 @@ use crate::{ use vek::vec::Vec2; pub const MOVEMENT_THRESHOLD_VEL: f32 = 3.0; -const BASE_HUMANOID_ACCEL: f32 = 100.0; -const BASE_HUMANOID_SPEED: f32 = 170.0; const BASE_HUMANOID_AIR_ACCEL: f32 = 15.0; -const BASE_HUMANOID_AIR_SPEED: f32 = 8.0; const BASE_HUMANOID_WATER_ACCEL: f32 = 150.0; const BASE_HUMANOID_WATER_SPEED: f32 = 180.0; // const BASE_HUMANOID_CLIMB_ACCEL: f32 = 10.0; @@ -30,6 +28,26 @@ const BASE_HUMANOID_WATER_SPEED: f32 = 180.0; // const CLIMB_SPEED: f32 = 5.0; // const CLIMB_COST: i32 = 5; +impl Body { + pub fn base_accel(&self) -> f32 { + match self { + Body::Humanoid(_) => 100.0, + Body::QuadrupedSmall(_) => 80.0, + Body::QuadrupedMedium(_) => 180.0, + Body::BirdMedium(_) => 70.0, + Body::FishMedium(_) => 50.0, + Body::Dragon(_) => 250.0, + Body::BirdSmall(_) => 75.0, + Body::FishSmall(_) => 40.0, + Body::BipedLarge(_) => 120.0, + Body::Object(_) => 40.0, + Body::Golem(_) => 130.0, + Body::Critter(_) => 65.0, + Body::QuadrupedLow(_) => 120.0, + } + } +} + /// Handles updating `Components` to move player based on state of `JoinData` pub fn handle_move(data: &JoinData, update: &mut StateUpdate, efficiency: f32) { if data.physics.in_fluid { @@ -42,21 +60,14 @@ pub fn handle_move(data: &JoinData, update: &mut StateUpdate, efficiency: f32) { /// Updates components to move player as if theyre on ground or in air #[allow(clippy::assign_op_pattern)] // TODO: Pending review in #587 fn basic_move(data: &JoinData, update: &mut StateUpdate, efficiency: f32) { - let (accel, speed): (f32, f32) = if data.physics.on_ground { - (BASE_HUMANOID_ACCEL, BASE_HUMANOID_SPEED) + let accel = if data.physics.on_ground { + data.body.base_accel() } else { - (BASE_HUMANOID_AIR_ACCEL, BASE_HUMANOID_AIR_SPEED) + BASE_HUMANOID_AIR_ACCEL }; - // Move player according to move_dir - if update.vel.0.magnitude_squared() < speed.powf(2.0) { - update.vel.0 = + update.vel.0 = update.vel.0 + Vec2::broadcast(data.dt.0) * data.inputs.move_dir * accel * efficiency; - let mag2 = update.vel.0.magnitude_squared(); - if mag2 > speed.powf(2.0) { - update.vel.0 = update.vel.0.normalized() * speed; - } - } handle_orientation(data, update, 20.0); } diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index fb0ad9e79f..6ee1b6b113 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -5,7 +5,7 @@ use vek::*; pub struct RunAnimation; impl Animation for RunAnimation { - type Dependency = (f32, Vec3, Vec3, f64); + type Dependency = (f32, Vec3, Vec3, f64, Vec3); type Skeleton = QuadrupedMediumSkeleton; #[cfg(feature = "use-dyn-lib")] @@ -14,7 +14,7 @@ impl Animation for RunAnimation { #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_medium_run")] fn update_skeleton_inner( skeleton: &Self::Skeleton, - (velocity, orientation, last_ori, _global_time): Self::Dependency, + (velocity, orientation, last_ori, _global_time, avg_vel): Self::Dependency, anim_time: f64, rate: &mut f32, skeleton_attr: &SkeletonAttr, @@ -191,6 +191,8 @@ impl Animation for RunAnimation { next.foot_br.ori = Quaternion::rotation_x(footverttfslow * 0.5 - 0.2); next.foot_br.scale = Vec3::one() * 0.96; } else { + let x_tilt = avg_vel.z.atan2(avg_vel.xy().magnitude()); + //Gallop next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); @@ -219,7 +221,7 @@ impl Animation for RunAnimation { skeleton_attr.torso_front.1 + shortalt * 2.5, ) * skeleton_attr.scaler / 11.0; - next.torso_front.ori = + next.torso_front.ori = Quaternion::rotation_x(x_tilt) * Quaternion::rotation_x(short * 0.13) * Quaternion::rotation_z(tilt * -1.5); next.torso_front.scale = Vec3::one() * skeleton_attr.scaler / 11.0; diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs index 54fbce398a..7958359527 100644 --- a/voxygen/src/scene/figure/mod.rs +++ b/voxygen/src/scene/figure/mod.rs @@ -976,7 +976,7 @@ impl FigureMgr { // Running (true, true, _) => anim::quadruped_medium::RunAnimation::update_skeleton( &QuadrupedMediumSkeleton::new(), - (vel.0.magnitude(), ori, state.last_ori, time), + (vel.0.magnitude(), ori, state.last_ori, time, state.avg_vel), state.state_time, &mut state_animation_rate, skeleton_attr, @@ -2234,6 +2234,8 @@ pub struct FigureState { last_ori: Vec3, lpindex: u8, visible: bool, + last_pos: Option>, + avg_vel: Vec3, } impl FigureState { @@ -2249,6 +2251,9 @@ impl FigureState { last_ori: Vec3::zero(), lpindex: 0, visible: false, + last_pos: None, + avg_vel: Vec3::zero(), + } } @@ -2293,6 +2298,12 @@ impl FigureState { ) .unwrap(); self.lantern_offset = lantern_offset; + + let smoothing = (5.0 * dt).min(1.0); + if let Some(last_pos) = self.last_pos { + self.avg_vel = (1.0 - smoothing) * self.avg_vel + smoothing * (pos - last_pos) * dt; + } + self.last_pos = Some(pos); } pub fn locals(&self) -> &Consts { &self.locals } From f55843c167bbd2d00ce2d4ffbcfdd305b9cc8619 Mon Sep 17 00:00:00 2001 From: Joshua Barretto Date: Fri, 3 Jul 2020 20:30:21 +0100 Subject: [PATCH 39/48] More tolerant pathfinding --- common/src/path.rs | 5 ++++- common/src/states/utils.rs | 2 +- common/src/sys/agent.rs | 6 +++++- voxygen/src/anim/src/quadruped_medium/run.rs | 5 +++-- voxygen/src/scene/figure/mod.rs | 1 - 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/common/src/path.rs b/common/src/path.rs index 0a81a95708..274df33510 100644 --- a/common/src/path.rs +++ b/common/src/path.rs @@ -266,7 +266,10 @@ where .map(move |(dir, _)| pos + *dir), ) }; - let transition = |_: &Vec3, _: &Vec3| 1.0; + let transition = |a: &Vec3, b: &Vec3| { + ((*a - *b) * Vec3::new(1, 1, 3)).map(|e| e.abs()).reduce_max() as f32 + + endf.distance((*b).map(|e| e as f32)) * 0.01 + }; let satisfied = |pos: &Vec3| pos == &end; let mut new_astar = match astar.take() { diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs index a4899e5e3a..f42a9e1b87 100644 --- a/common/src/states/utils.rs +++ b/common/src/states/utils.rs @@ -67,7 +67,7 @@ fn basic_move(data: &JoinData, update: &mut StateUpdate, efficiency: f32) { }; update.vel.0 = - update.vel.0 + Vec2::broadcast(data.dt.0) * data.inputs.move_dir * accel * efficiency; + update.vel.0 + Vec2::broadcast(data.dt.0) * data.inputs.move_dir * accel * efficiency; handle_orientation(data, update, 20.0); } diff --git a/common/src/sys/agent.rs b/common/src/sys/agent.rs index cd71b22135..545833a1db 100644 --- a/common/src/sys/agent.rs +++ b/common/src/sys/agent.rs @@ -32,6 +32,7 @@ impl<'a> System<'a> for Sys { Write<'a, EventBus>, Entities<'a>, ReadStorage<'a, Pos>, + ReadStorage<'a, Vel>, ReadStorage<'a, Ori>, ReadStorage<'a, Scale>, ReadStorage<'a, Stats>, @@ -55,6 +56,7 @@ impl<'a> System<'a> for Sys { event_bus, entities, positions, + velocities, orientations, scales, stats, @@ -71,6 +73,7 @@ impl<'a> System<'a> for Sys { for ( entity, pos, + vel, ori, alignment, loadout, @@ -82,6 +85,7 @@ impl<'a> System<'a> for Sys { ) in ( &entities, &positions, + &velocities, &orientations, alignments.maybe(), &loadouts, @@ -122,7 +126,7 @@ impl<'a> System<'a> for Sys { // and so can afford to be less precise when trying to move around // the world (especially since they would otherwise get stuck on // obstacles that smaller entities would not). - let traversal_tolerance = scale; + let traversal_tolerance = scale + vel.0.magnitude() * 0.35; let mut do_idle = false; let mut choose_target = false; diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index 6ee1b6b113..237a30d37a 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -221,8 +221,9 @@ impl Animation for RunAnimation { skeleton_attr.torso_front.1 + shortalt * 2.5, ) * skeleton_attr.scaler / 11.0; - next.torso_front.ori = Quaternion::rotation_x(x_tilt) * - Quaternion::rotation_x(short * 0.13) * Quaternion::rotation_z(tilt * -1.5); + next.torso_front.ori = Quaternion::rotation_x(x_tilt) + * Quaternion::rotation_x(short * 0.13) + * Quaternion::rotation_z(tilt * -1.5); next.torso_front.scale = Vec3::one() * skeleton_attr.scaler / 11.0; next.torso_back.offset = Vec3::new( diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs index 7958359527..0ebb95556d 100644 --- a/voxygen/src/scene/figure/mod.rs +++ b/voxygen/src/scene/figure/mod.rs @@ -2253,7 +2253,6 @@ impl FigureState { visible: false, last_pos: None, avg_vel: Vec3::zero(), - } } From b793d969c8aa0272ed8394543d5f922b848acc43 Mon Sep 17 00:00:00 2001 From: jshipsey Date: Fri, 3 Jul 2020 15:42:48 -0400 Subject: [PATCH 40/48] minor changes to account for movement speeds --- voxygen/src/anim/src/quadruped_low/mod.rs | 4 ++-- voxygen/src/anim/src/quadruped_medium/mod.rs | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/voxygen/src/anim/src/quadruped_low/mod.rs b/voxygen/src/anim/src/quadruped_low/mod.rs index a052da5177..29fa9638f2 100644 --- a/voxygen/src/anim/src/quadruped_low/mod.rs +++ b/voxygen/src/anim/src/quadruped_low/mod.rs @@ -207,7 +207,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Monitor, _) => (2.5, -6.5, 0.0), (Asp, _) => (2.5, -5.5, -1.0), (Tortoise, _) => (6.0, -11.5, -3.0), - (Rocksnapper, _) => (8.0, -16.0, -9.5), + (Rocksnapper, _) => (8.0, -12.0, -9.5), (Pangolin, _) => (6.0, -4.0, -1.0), }, lean: match (body.species, body.body_type) { @@ -230,7 +230,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (1.0), (Monitor, _) => (1.3), (Asp, _) => (1.0), - (Tortoise, _) => (0.7), + (Tortoise, _) => (0.9), (Rocksnapper, _) => (0.9), (Pangolin, _) => (1.15), }, diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index aef1904e54..f7e2213825 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -267,7 +267,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (5.0, -5.5, -3.5), (Lion, _) => (6.0, -6.0, -2.0), (Tarasque, _) => (6.0, -6.5, -6.5), - (Tiger, _) => (7.0, -8.0, -3.0), + (Tiger, _) => (6.0, -8.0, -3.0), (Wolf, _) => (5.0, -6.5, -2.5), (Frostfang, _) => (3.5, -4.5, -2.0), (Mouflon, _) => (3.5, -6.0, -4.5), @@ -331,10 +331,10 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Grolgar, _) => (0.95), (Saber, _) => (1.1), (Tuskram, _) => (0.9), - (Lion, _) => (0.85), + (Lion, _) => (0.95), (Tarasque, _) => (0.95), - (Tiger, _) => (0.9), - (Wolf, _) => (1.0), + (Tiger, _) => (1.0), + (Wolf, _) => (1.1), (Frostfang, _) => (1.0), (Mouflon, _) => (0.85), }, From efad6124975a973904ecb537b40b12d590e75bc5 Mon Sep 17 00:00:00 2001 From: jshipsey Date: Fri, 3 Jul 2020 16:03:45 -0400 Subject: [PATCH 41/48] remove warnings, rebase fix --- common/src/sys/agent.rs | 2 +- voxygen/src/anim/src/quadruped_low/jump.rs | 1 - voxygen/src/anim/src/quadruped_low/run.rs | 2 +- voxygen/src/scene/figure/mod.rs | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/common/src/sys/agent.rs b/common/src/sys/agent.rs index 545833a1db..6be9618582 100644 --- a/common/src/sys/agent.rs +++ b/common/src/sys/agent.rs @@ -4,7 +4,7 @@ use crate::{ agent::Activity, item::{tool::ToolKind, ItemKind}, Agent, Alignment, CharacterState, ChatMsg, ControlAction, Controller, Loadout, MountState, - Ori, Pos, Scale, Stats, + Ori, Pos, Scale, Stats, Vel, }, event::{EventBus, ServerEvent}, path::Chaser, diff --git a/voxygen/src/anim/src/quadruped_low/jump.rs b/voxygen/src/anim/src/quadruped_low/jump.rs index 06cf23abc9..ba851f9a52 100644 --- a/voxygen/src/anim/src/quadruped_low/jump.rs +++ b/voxygen/src/anim/src/quadruped_low/jump.rs @@ -1,5 +1,4 @@ use super::{super::Animation, QuadrupedLowSkeleton, SkeletonAttr}; -use std::f32::consts::PI; use vek::*; pub struct JumpAnimation; diff --git a/voxygen/src/anim/src/quadruped_low/run.rs b/voxygen/src/anim/src/quadruped_low/run.rs index 4300b24285..e3f0dddb1c 100644 --- a/voxygen/src/anim/src/quadruped_low/run.rs +++ b/voxygen/src/anim/src/quadruped_low/run.rs @@ -1,5 +1,5 @@ use super::{super::Animation, QuadrupedLowSkeleton, SkeletonAttr}; -use std::{f32::consts::PI, ops::Mul}; +use std::f32::consts::PI; use vek::*; pub struct RunAnimation; diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs index 0ebb95556d..51ddec5910 100644 --- a/voxygen/src/scene/figure/mod.rs +++ b/voxygen/src/scene/figure/mod.rs @@ -985,7 +985,7 @@ impl FigureMgr { (false, _, false) => { anim::quadruped_medium::JumpAnimation::update_skeleton( &QuadrupedMediumSkeleton::new(), - (time), + time, state.state_time, &mut state_animation_rate, skeleton_attr, From fb8ab18346e2338ced76fb53e3b285d953dfa6d0 Mon Sep 17 00:00:00 2001 From: Joshua Barretto Date: Sat, 4 Jul 2020 01:17:51 +0100 Subject: [PATCH 42/48] Smoother pathfinding for fast animals --- common/src/comp/agent.rs | 8 ++++-- common/src/path.rs | 58 ++++++++++++++++++++++---------------- common/src/states/utils.rs | 3 +- common/src/sys/agent.rs | 29 +++++++++++++------ 4 files changed, 60 insertions(+), 38 deletions(-) diff --git a/common/src/comp/agent.rs b/common/src/comp/agent.rs index 49c183c34c..cda306333d 100644 --- a/common/src/comp/agent.rs +++ b/common/src/comp/agent.rs @@ -78,7 +78,11 @@ impl Component for Agent { #[derive(Clone, Debug)] pub enum Activity { Idle(Vec2), - Follow(EcsEntity, Chaser), + Follow { + target: EcsEntity, + chaser: Chaser, + move_dir: Vec2, + }, Attack { target: EcsEntity, chaser: Chaser, @@ -91,7 +95,7 @@ pub enum Activity { impl Activity { pub fn is_follow(&self) -> bool { match self { - Activity::Follow(_, _) => true, + Activity::Follow { .. } => true, _ => false, } } diff --git a/common/src/path.rs b/common/src/path.rs index 274df33510..0179e8f332 100644 --- a/common/src/path.rs +++ b/common/src/path.rs @@ -77,9 +77,9 @@ impl Route { None } else { let next_tgt = next.map(|e| e as f32) + Vec3::new(0.5, 0.5, 0.0); - if ((pos - (next_tgt + Vec3::unit_z() * 0.5)) * Vec3::new(1.0, 1.0, 0.3)) - .magnitude_squared() - < (traversal_tolerance * 2.0).powf(2.0) + if pos.xy().distance_squared(next_tgt.xy()) < traversal_tolerance.powf(2.0) + && next_tgt.z - pos.z < 0.2 + && next_tgt.z - pos.z > -2.2 { self.next_idx += 1; } @@ -93,7 +93,7 @@ impl Route { #[derive(Default, Clone, Debug)] pub struct Chaser { last_search_tgt: Option>, - route: Route, + route: Option, /// We use this hasher (AAHasher) because: /// (1) we care about DDOS attacks (ruling out FxHash); /// (2) we don't care about determinism across computers (we can use @@ -115,21 +115,25 @@ impl Chaser { { let pos_to_tgt = pos.distance(tgt); - if ((pos - tgt) * Vec3::new(1.0, 1.0, 0.15)).magnitude_squared() < min_dist.powf(2.0) { + if ((pos - tgt) * Vec3::new(1.0, 1.0, 2.0)).magnitude_squared() < min_dist.powf(2.0) { return None; } - let bearing = if let Some(end) = self.route.path().end().copied() { + let bearing = if let Some(end) = self.route.as_ref().and_then(|r| r.path().end().copied()) { let end_to_tgt = end.map(|e| e as f32).distance(tgt); if end_to_tgt > pos_to_tgt * 0.3 + 5.0 { None } else { if thread_rng().gen::() < 0.005 { - // TODO: Only re-calculate route when we're stuck - self.route = Route::default(); + None + } else { + self.route + .as_mut() + .and_then(|r| r.traverse(vol, pos, traversal_tolerance)) + .filter(|b| { + b.xy().magnitude_squared() < (traversal_tolerance + 1.0).powf(2.0) + }) } - - self.route.traverse(vol, pos, traversal_tolerance) } } else { None @@ -144,7 +148,12 @@ impl Chaser { .map(|last_tgt| last_tgt.distance(tgt) > pos_to_tgt * 0.15 + 5.0) .unwrap_or(true) { - self.route = find_path(&mut self.astar, vol, pos, tgt).into(); + let (start_pos, path) = find_path(&mut self.astar, vol, pos, tgt); + if start_pos.distance_squared(pos) < 4.0f32.powf(2.0) { + self.route = path.map(Route::from); + } else { + self.route = None; + } } Some((tgt - pos) * Vec3::new(1.0, 1.0, 0.0)) @@ -158,7 +167,7 @@ fn find_path( vol: &V, startf: Vec3, endf: Vec3, -) -> Path> +) -> (Vec3, Option>>) where V: BaseVol + ReadVol, { @@ -192,7 +201,7 @@ where get_walkable_z(endf.map(|e| e.floor() as i32)), ) { (Some(start), Some(end)) => (start, end), - _ => return Path::default(), + _ => return (startf, None), }; let heuristic = |pos: &Vec3| (pos.distance_squared(end) as f32).sqrt(); @@ -240,6 +249,7 @@ where .map(move |dir| (pos, dir)) .filter(move |(pos, dir)| { is_walkable(pos) + && is_walkable(&(*pos + **dir)) && ((dir.z < 1 || vol .get(pos + Vec3::unit_z() * 2) @@ -266,34 +276,32 @@ where .map(move |(dir, _)| pos + *dir), ) }; - let transition = |a: &Vec3, b: &Vec3| { - ((*a - *b) * Vec3::new(1, 1, 3)).map(|e| e.abs()).reduce_max() as f32 - + endf.distance((*b).map(|e| e as f32)) * 0.01 - }; + let transition = + |a: &Vec3, b: &Vec3| 1.0 + endf.distance((*b).map(|e| e as f32 + 0.5)) * 0.02; let satisfied = |pos: &Vec3| pos == &end; let mut new_astar = match astar.take() { - None => Astar::new(20_000, start, heuristic, DefaultHashBuilder::default()), + None => Astar::new(25_000, start, heuristic, DefaultHashBuilder::default()), Some(astar) => astar, }; - let path_result = new_astar.poll(60, heuristic, neighbors, transition, satisfied); + let path_result = new_astar.poll(100, heuristic, neighbors, transition, satisfied); *astar = Some(new_astar); - match path_result { + (startf, match path_result { PathResult::Path(path) => { *astar = None; - path + Some(path) }, PathResult::None(path) => { *astar = None; - path + Some(path) }, PathResult::Exhausted(path) => { *astar = None; - path + Some(path) }, - PathResult::Pending => Path::default(), - } + PathResult::Pending => None, + }) } diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs index f42a9e1b87..229f08f60d 100644 --- a/common/src/states/utils.rs +++ b/common/src/states/utils.rs @@ -1,8 +1,7 @@ use crate::{ comp::{ item::{Hands, ItemKind, Tool}, - CharacterState, StateUpdate, - Body, + Body, CharacterState, StateUpdate, }, event::LocalEvent, states::*, diff --git a/common/src/sys/agent.rs b/common/src/sys/agent.rs index 6be9618582..9d9922d057 100644 --- a/common/src/sys/agent.rs +++ b/common/src/sys/agent.rs @@ -4,7 +4,7 @@ use crate::{ agent::Activity, item::{tool::ToolKind, ItemKind}, Agent, Alignment, CharacterState, ChatMsg, ControlAction, Controller, Loadout, MountState, - Ori, Pos, Scale, Stats, Vel, + Ori, Pos, Scale, SpeechBubble, Stats, Vel, }, event::{EventBus, ServerEvent}, path::Chaser, @@ -126,7 +126,7 @@ impl<'a> System<'a> for Sys { // and so can afford to be less precise when trying to move around // the world (especially since they would otherwise get stuck on // obstacles that smaller entities would not). - let traversal_tolerance = scale + vel.0.magnitude() * 0.35; + let traversal_tolerance = scale + vel.0.magnitude() * 0.25; let mut do_idle = false; let mut choose_target = false; @@ -187,7 +187,11 @@ impl<'a> System<'a> for Sys { choose_target = true; } }, - Activity::Follow(target, chaser) => { + Activity::Follow { + target, + chaser, + move_dir, + } => { if let (Some(tgt_pos), _tgt_stats) = (positions.get(*target), stats.get(*target)) { @@ -201,10 +205,13 @@ impl<'a> System<'a> for Sys { AVG_FOLLOW_DIST, traversal_tolerance, ) { - inputs.move_dir = Vec2::from(bearing) - .try_normalized() - .unwrap_or(Vec2::zero()); - inputs.jump.set_state(bearing.z > 1.0); + *move_dir = 0.9f32 * *move_dir + + 0.1f32 + * Vec2::from(bearing) + .try_normalized() + .unwrap_or(Vec2::zero()); + inputs.move_dir = *move_dir; + inputs.jump.set_state(bearing.z > 1.5); } } else { do_idle = true; @@ -317,7 +324,7 @@ impl<'a> System<'a> for Sys { inputs.move_dir = Vec2::from(bearing) .try_normalized() .unwrap_or(Vec2::zero()); - inputs.jump.set_state(bearing.z > 1.0); + inputs.jump.set_state(bearing.z > 1.5); } if dist_sqrd < 16.0f32.powf(2.0) @@ -419,7 +426,11 @@ impl<'a> System<'a> for Sys { if let Some(owner_pos) = positions.get(owner) { let dist_sqrd = pos.0.distance_squared(owner_pos.0); if dist_sqrd > MAX_FOLLOW_DIST.powf(2.0) && !agent.activity.is_follow() { - agent.activity = Activity::Follow(owner, Chaser::default()); + agent.activity = Activity::Follow { + target: owner, + chaser: Chaser::default(), + move_dir: Vec2::zero(), + }; } // Attack owner's attacker From b4acd76435de0f71c15b3e447159ea2b1fd46856 Mon Sep 17 00:00:00 2001 From: jshipsey Date: Sat, 4 Jul 2020 05:02:54 -0400 Subject: [PATCH 43/48] more latitude tilt, better attack anims, addressed aesthetic concerns, deleted dead assets --- assets/common/npc_names.json | 2 +- .../voxel/biped_large_center_manifest.ron | 12 +- .../voxel/biped_large_lateral_manifest.ron | 30 +-- .../voxel/bird_medium_center_manifest.ron | 30 +-- .../voxel/bird_medium_lateral_manifest.ron | 48 ++-- .../voxygen/voxel/critter_center_manifest.ron | 60 ++--- .../voxygen/voxel/dragon_center_manifest.ron | 14 +- .../voxygen/voxel/dragon_lateral_manifest.ron | 16 +- .../voxygen/voxel/golem_center_manifest.ron | 4 +- .../voxygen/voxel/golem_lateral_manifest.ron | 14 +- .../voxel/npc/alligator/female/chest.vox | Bin 4448 -> 0 bytes .../voxel/npc/alligator/female/foot_bl.vox | Bin 1340 -> 0 bytes .../voxel/npc/alligator/female/foot_br.vox | Bin 1340 -> 0 bytes .../voxel/npc/alligator/female/foot_fl.vox | Bin 1300 -> 0 bytes .../voxel/npc/alligator/female/foot_fr.vox | Bin 1304 -> 0 bytes .../voxel/npc/alligator/female/head_lower.vox | Bin 2136 -> 0 bytes .../voxel/npc/alligator/female/head_upper.vox | Bin 2376 -> 0 bytes .../voxel/npc/alligator/female/jaw.vox | Bin 1744 -> 0 bytes .../voxel/npc/alligator/female/tail_front.vox | Bin 2288 -> 0 bytes .../voxel/npc/alligator/female/tail_rear.vox | Bin 1320 -> 0 bytes assets/voxygen/voxel/npc/asp/female/chest.vox | Bin 3556 -> 0 bytes .../voxygen/voxel/npc/asp/female/foot_bl.vox | Bin 1348 -> 0 bytes .../voxygen/voxel/npc/asp/female/foot_br.vox | Bin 1348 -> 0 bytes .../voxygen/voxel/npc/asp/female/foot_fl.vox | Bin 1344 -> 0 bytes .../voxygen/voxel/npc/asp/female/foot_fr.vox | Bin 1344 -> 0 bytes .../voxel/npc/asp/female/head_lower.vox | Bin 2272 -> 0 bytes .../voxel/npc/asp/female/head_upper.vox | Bin 1976 -> 0 bytes assets/voxygen/voxel/npc/asp/female/jaw.vox | Bin 1264 -> 0 bytes .../voxel/npc/asp/female/tail_front.vox | Bin 2288 -> 0 bytes .../voxel/npc/asp/female/tail_rear.vox | Bin 1344 -> 0 bytes .../voxel/npc/axolotl/female/chest.vox | Bin 1352 -> 0 bytes .../voxel/npc/axolotl/female/feet_b.vox | Bin 1128 -> 0 bytes .../voxel/npc/axolotl/female/feet_f.vox | Bin 1128 -> 0 bytes .../voxygen/voxel/npc/axolotl/female/head.vox | Bin 1420 -> 0 bytes .../voxygen/voxel/npc/axolotl/female/tail.vox | Bin 1168 -> 0 bytes .../voxygen/voxel/npc/batfox/female/chest.vox | Bin 1620 -> 0 bytes .../voxel/npc/batfox/female/foot_bl.vox | Bin 1196 -> 0 bytes .../voxel/npc/batfox/female/foot_br.vox | Bin 1196 -> 0 bytes .../voxel/npc/batfox/female/foot_fl.vox | Bin 1164 -> 0 bytes .../voxel/npc/batfox/female/foot_fr.vox | Bin 1164 -> 0 bytes .../voxygen/voxel/npc/batfox/female/head.vox | Bin 2024 -> 0 bytes .../voxel/npc/cockatrice/female/head.vox | Bin 1952 -> 0 bytes .../voxel/npc/cockatrice/female/leg_l.vox | Bin 1364 -> 0 bytes .../voxel/npc/cockatrice/female/leg_r.vox | Bin 1364 -> 0 bytes .../voxel/npc/cockatrice/female/tail.vox | Bin 1216 -> 0 bytes .../voxel/npc/cockatrice/female/torso.vox | Bin 3048 -> 0 bytes .../voxel/npc/cockatrice/female/wing_l.vox | Bin 1212 -> 0 bytes .../voxel/npc/cockatrice/female/wing_r.vox | Bin 1212 -> 0 bytes .../voxel/npc/crocodile/female/chest.vox | Bin 4168 -> 0 bytes .../voxel/npc/crocodile/female/foot_bl.vox | Bin 1340 -> 0 bytes .../voxel/npc/crocodile/female/foot_br.vox | Bin 1340 -> 0 bytes .../voxel/npc/crocodile/female/foot_fl.vox | Bin 1300 -> 0 bytes .../voxel/npc/crocodile/female/foot_fr.vox | Bin 1304 -> 0 bytes .../voxel/npc/crocodile/female/head_lower.vox | Bin 1968 -> 0 bytes .../voxel/npc/crocodile/female/head_upper.vox | Bin 2328 -> 0 bytes .../voxel/npc/crocodile/female/jaw.vox | Bin 1472 -> 0 bytes .../voxel/npc/crocodile/female/tail_front.vox | Bin 2096 -> 0 bytes .../voxel/npc/crocodile/female/tail_rear.vox | Bin 1256 -> 0 bytes .../voxel/npc/cyclops/female/foot_l.vox | Bin 2196 -> 0 bytes .../voxel/npc/cyclops/female/foot_r.vox | Bin 2196 -> 0 bytes .../voxel/npc/cyclops/female/hammer.vox | Bin 2952 -> 0 bytes .../voxel/npc/cyclops/female/hand_l.vox | Bin 2112 -> 0 bytes .../voxel/npc/cyclops/female/hand_r.vox | Bin 2112 -> 0 bytes .../voxygen/voxel/npc/cyclops/female/head.vox | Bin 4812 -> 0 bytes .../voxel/npc/cyclops/female/leg_l.vox | Bin 1932 -> 0 bytes .../voxel/npc/cyclops/female/leg_r.vox | Bin 1932 -> 0 bytes .../voxel/npc/cyclops/female/shoulder_l.vox | Bin 2024 -> 0 bytes .../voxel/npc/cyclops/female/shoulder_r.vox | Bin 2024 -> 0 bytes .../voxel/npc/cyclops/female/torso_lower.vox | Bin 2996 -> 0 bytes .../voxel/npc/cyclops/female/torso_upper.vox | Bin 6272 -> 0 bytes .../voxel/npc/dodarock/female/chest.vox | Bin 3868 -> 0 bytes .../voxel/npc/dodarock/female/foot_bl.vox | Bin 1232 -> 0 bytes .../voxel/npc/dodarock/female/foot_br.vox | Bin 1232 -> 0 bytes .../voxel/npc/dodarock/female/foot_fl.vox | Bin 1548 -> 0 bytes .../voxel/npc/dodarock/female/foot_fr.vox | Bin 1548 -> 0 bytes .../voxel/npc/dodarock/female/head.vox | Bin 3236 -> 0 bytes .../voxygen/voxel/npc/eagle/female/head.vox | Bin 1608 -> 0 bytes .../voxygen/voxel/npc/eagle/female/leg_l.vox | Bin 1184 -> 0 bytes .../voxygen/voxel/npc/eagle/female/leg_r.vox | Bin 1184 -> 0 bytes .../voxygen/voxel/npc/eagle/female/tail.vox | Bin 1208 -> 0 bytes .../voxygen/voxel/npc/eagle/female/torso.vox | Bin 2160 -> 0 bytes .../voxygen/voxel/npc/eagle/female/wing_l.vox | Bin 1532 -> 0 bytes .../voxygen/voxel/npc/eagle/female/wing_r.vox | Bin 1532 -> 0 bytes .../voxel/npc/frostfang/female/ears.vox | Bin 1160 -> 0 bytes .../voxel/npc/frostfang/female/foot_bl.vox | Bin 1328 -> 0 bytes .../voxel/npc/frostfang/female/foot_br.vox | Bin 1328 -> 0 bytes .../voxel/npc/frostfang/female/foot_fl.vox | Bin 1328 -> 0 bytes .../voxel/npc/frostfang/female/foot_fr.vox | Bin 1328 -> 0 bytes .../voxel/npc/frostfang/female/head_lower.vox | Bin 1568 -> 0 bytes .../voxel/npc/frostfang/female/head_upper.vox | Bin 2048 -> 0 bytes .../voxel/npc/frostfang/female/jaw.vox | Bin 1256 -> 0 bytes .../voxel/npc/frostfang/female/leg_bl.vox | Bin 1384 -> 0 bytes .../voxel/npc/frostfang/female/leg_br.vox | Bin 1384 -> 0 bytes .../voxel/npc/frostfang/female/leg_fl.vox | Bin 1404 -> 0 bytes .../voxel/npc/frostfang/female/leg_fr.vox | Bin 1404 -> 0 bytes .../voxel/npc/frostfang/female/tail.vox | Bin 1892 -> 0 bytes .../voxel/npc/frostfang/female/torso_back.vox | Bin 2224 -> 0 bytes .../npc/frostfang/female/torso_front.vox | Bin 4316 -> 0 bytes .../voxel/npc/fungome/female/chest.vox | Bin 2840 -> 0 bytes .../voxel/npc/fungome/female/feet_b.vox | Bin 1128 -> 0 bytes .../voxel/npc/fungome/female/feet_f.vox | Bin 1128 -> 0 bytes .../voxygen/voxel/npc/fungome/female/head.vox | Bin 1300 -> 0 bytes .../voxygen/voxel/npc/fungome/female/tail.vox | Bin 1108 -> 0 bytes .../voxygen/voxel/npc/gecko/female/chest.vox | Bin 1268 -> 0 bytes .../voxygen/voxel/npc/gecko/female/feet_b.vox | Bin 1112 -> 0 bytes .../voxygen/voxel/npc/gecko/female/feet_f.vox | Bin 1112 -> 0 bytes .../voxygen/voxel/npc/gecko/female/head.vox | Bin 1372 -> 0 bytes .../voxygen/voxel/npc/gecko/female/tail.vox | Bin 1124 -> 0 bytes .../voxygen/voxel/npc/goose/female/head.vox | Bin 1376 -> 0 bytes .../voxygen/voxel/npc/goose/female/leg_l.vox | Bin 1132 -> 0 bytes .../voxygen/voxel/npc/goose/female/leg_r.vox | Bin 1132 -> 0 bytes .../voxygen/voxel/npc/goose/female/tail.vox | Bin 1248 -> 0 bytes .../voxygen/voxel/npc/goose/female/torso.vox | Bin 2460 -> 0 bytes .../voxygen/voxel/npc/goose/female/wing.vox | Bin 1172 -> 0 bytes .../voxygen/voxel/npc/grolgar/female/ears.vox | Bin 1200 -> 0 bytes .../voxel/npc/grolgar/female/foot_bl.vox | Bin 1316 -> 0 bytes .../voxel/npc/grolgar/female/foot_br.vox | Bin 1316 -> 0 bytes .../voxel/npc/grolgar/female/foot_fl.vox | Bin 1564 -> 0 bytes .../voxel/npc/grolgar/female/foot_fr.vox | Bin 1564 -> 0 bytes .../voxel/npc/grolgar/female/head_lower.vox | Bin 3480 -> 0 bytes .../voxel/npc/grolgar/female/head_upper.vox | Bin 5936 -> 0 bytes .../voxygen/voxel/npc/grolgar/female/jaw.vox | Bin 1336 -> 0 bytes .../voxel/npc/grolgar/female/leg_bl.vox | Bin 1720 -> 0 bytes .../voxel/npc/grolgar/female/leg_br.vox | Bin 1720 -> 0 bytes .../voxel/npc/grolgar/female/leg_fl.vox | Bin 2048 -> 0 bytes .../voxel/npc/grolgar/female/leg_fr.vox | Bin 2048 -> 0 bytes .../voxygen/voxel/npc/grolgar/female/tail.vox | Bin 1692 -> 0 bytes .../voxel/npc/grolgar/female/torso_back.vox | Bin 4576 -> 0 bytes .../voxel/npc/grolgar/female/torso_front.vox | Bin 7728 -> 0 bytes .../voxel/npc/holladon/female/chest.vox | Bin 2320 -> 0 bytes .../voxel/npc/holladon/female/foot_bl.vox | Bin 1196 -> 0 bytes .../voxel/npc/holladon/female/foot_br.vox | Bin 1196 -> 0 bytes .../voxel/npc/holladon/female/foot_fl.vox | Bin 1184 -> 0 bytes .../voxel/npc/holladon/female/foot_fr.vox | Bin 1184 -> 0 bytes .../voxel/npc/holladon/female/head.vox | Bin 1676 -> 0 bytes .../voxygen/voxel/npc/hyena/female/chest.vox | Bin 2704 -> 0 bytes .../voxel/npc/hyena/female/foot_bl.vox | Bin 1244 -> 0 bytes .../voxel/npc/hyena/female/foot_br.vox | Bin 1244 -> 0 bytes .../voxel/npc/hyena/female/foot_fl.vox | Bin 1272 -> 0 bytes .../voxel/npc/hyena/female/foot_fr.vox | Bin 1272 -> 0 bytes .../voxygen/voxel/npc/hyena/female/head.vox | Bin 1528 -> 0 bytes .../voxygen/voxel/npc/hyena/female/tail.vox | Bin 1176 -> 0 bytes .../voxel/npc/jackalope/female/chest.vox | Bin 1748 -> 0 bytes .../voxel/npc/jackalope/female/foot_bl.vox | Bin 1296 -> 0 bytes .../voxel/npc/jackalope/female/foot_br.vox | Bin 1296 -> 0 bytes .../voxel/npc/jackalope/female/foot_fl.vox | Bin 1164 -> 0 bytes .../voxel/npc/jackalope/female/foot_fr.vox | Bin 1164 -> 0 bytes .../voxel/npc/jackalope/female/head.vox | Bin 1628 -> 0 bytes assets/voxygen/voxel/npc/lion/female/ears.vox | Bin 1144 -> 0 bytes .../voxygen/voxel/npc/lion/female/foot_bl.vox | Bin 1344 -> 0 bytes .../voxygen/voxel/npc/lion/female/foot_br.vox | Bin 1344 -> 0 bytes .../voxygen/voxel/npc/lion/female/foot_fl.vox | Bin 1308 -> 0 bytes .../voxygen/voxel/npc/lion/female/foot_fr.vox | Bin 1308 -> 0 bytes .../voxel/npc/lion/female/head_lower.vox | Bin 7732 -> 0 bytes .../voxel/npc/lion/female/head_upper.vox | Bin 2644 -> 0 bytes assets/voxygen/voxel/npc/lion/female/jaw.vox | Bin 1208 -> 0 bytes .../voxygen/voxel/npc/lion/female/leg_bl.vox | Bin 1588 -> 0 bytes .../voxygen/voxel/npc/lion/female/leg_br.vox | Bin 1588 -> 0 bytes .../voxygen/voxel/npc/lion/female/leg_fl.vox | Bin 1528 -> 0 bytes .../voxygen/voxel/npc/lion/female/leg_fr.vox | Bin 1528 -> 0 bytes assets/voxygen/voxel/npc/lion/female/tail.vox | Bin 1364 -> 0 bytes .../voxel/npc/lion/female/torso_back.vox | Bin 4484 -> 0 bytes .../voxel/npc/lion/female/torso_front.vox | Bin 5896 -> 0 bytes .../voxel/npc/monitor/female/chest.vox | Bin 3144 -> 0 bytes .../voxel/npc/monitor/female/foot_bl.vox | Bin 1260 -> 0 bytes .../voxel/npc/monitor/female/foot_br.vox | Bin 1260 -> 0 bytes .../voxel/npc/monitor/female/foot_fl.vox | Bin 1292 -> 0 bytes .../voxel/npc/monitor/female/foot_fr.vox | Bin 1292 -> 0 bytes .../voxel/npc/monitor/female/head_lower.vox | Bin 1656 -> 0 bytes .../voxel/npc/monitor/female/head_upper.vox | Bin 1896 -> 0 bytes .../voxygen/voxel/npc/monitor/female/jaw.vox | Bin 44387 -> 0 bytes .../voxel/npc/monitor/female/tail_front.vox | Bin 1592 -> 0 bytes .../voxel/npc/monitor/female/tail_rear.vox | Bin 1224 -> 0 bytes .../voxel/npc/monitor/male/head_upper.vox | Bin 1896 -> 1880 bytes .../voxel/npc/mouflon/female/foot_bl.vox | Bin 1192 -> 0 bytes .../voxel/npc/mouflon/female/foot_br.vox | Bin 1192 -> 0 bytes .../voxel/npc/mouflon/female/foot_fl.vox | Bin 1224 -> 0 bytes .../voxel/npc/mouflon/female/foot_fr.vox | Bin 1224 -> 0 bytes .../voxel/npc/mouflon/female/head_lower.vox | Bin 1944 -> 0 bytes .../voxel/npc/mouflon/female/head_upper.vox | Bin 2704 -> 0 bytes .../voxygen/voxel/npc/mouflon/female/jaw.vox | Bin 1144 -> 0 bytes .../voxel/npc/mouflon/female/leg_bl.vox | Bin 1560 -> 0 bytes .../voxel/npc/mouflon/female/leg_br.vox | Bin 1560 -> 0 bytes .../voxel/npc/mouflon/female/leg_fl.vox | Bin 1436 -> 0 bytes .../voxel/npc/mouflon/female/leg_fr.vox | Bin 1436 -> 0 bytes .../voxygen/voxel/npc/mouflon/female/tail.vox | Bin 1344 -> 0 bytes .../voxel/npc/mouflon/female/torso_back.vox | Bin 3584 -> 0 bytes .../voxel/npc/mouflon/female/torso_front.vox | Bin 2864 -> 0 bytes .../voxygen/voxel/npc/ogre/female/club_l.vox | Bin 1784 -> 0 bytes .../voxygen/voxel/npc/ogre/female/club_r.vox | Bin 1784 -> 0 bytes .../voxygen/voxel/npc/ogre/female/foot_l.vox | Bin 1896 -> 0 bytes .../voxygen/voxel/npc/ogre/female/foot_r.vox | Bin 1896 -> 0 bytes .../voxygen/voxel/npc/ogre/female/hand_l.vox | Bin 1576 -> 0 bytes .../voxygen/voxel/npc/ogre/female/hand_r.vox | Bin 1576 -> 0 bytes assets/voxygen/voxel/npc/ogre/female/head.vox | Bin 4472 -> 0 bytes .../voxygen/voxel/npc/ogre/female/leg_l.vox | Bin 1704 -> 0 bytes .../voxygen/voxel/npc/ogre/female/leg_r.vox | Bin 1704 -> 0 bytes .../voxel/npc/ogre/female/shoulder_l.vox | Bin 1880 -> 0 bytes .../voxel/npc/ogre/female/shoulder_r.vox | Bin 1880 -> 0 bytes .../voxel/npc/ogre/female/torso_lower.vox | Bin 2172 -> 0 bytes .../voxel/npc/ogre/female/torso_upper.vox | Bin 5108 -> 0 bytes .../voxel/npc/pangolin/female/chest.vox | Bin 5760 -> 0 bytes .../voxel/npc/pangolin/female/foot_bl.vox | Bin 1304 -> 0 bytes .../voxel/npc/pangolin/female/foot_br.vox | Bin 1304 -> 0 bytes .../voxel/npc/pangolin/female/foot_fl.vox | Bin 1252 -> 0 bytes .../voxel/npc/pangolin/female/foot_fr.vox | Bin 1252 -> 0 bytes .../voxel/npc/pangolin/female/head_upper.vox | Bin 1468 -> 0 bytes .../voxel/npc/pangolin/female/tail_front.vox | Bin 1776 -> 0 bytes .../voxel/npc/pangolin/female/tail_rear.vox | Bin 1620 -> 0 bytes .../voxygen/voxel/npc/parrot/female/head.vox | Bin 1344 -> 0 bytes .../voxygen/voxel/npc/parrot/female/leg_l.vox | Bin 1116 -> 0 bytes .../voxygen/voxel/npc/parrot/female/leg_r.vox | Bin 1116 -> 0 bytes .../voxygen/voxel/npc/parrot/female/tail.vox | Bin 1228 -> 0 bytes .../voxygen/voxel/npc/parrot/female/torso.vox | Bin 1404 -> 0 bytes .../voxygen/voxel/npc/parrot/female/wing.vox | Bin 1224 -> 0 bytes .../voxygen/voxel/npc/quokka/female/chest.vox | Bin 3928 -> 0 bytes .../voxel/npc/quokka/female/foot_bl.vox | Bin 1188 -> 0 bytes .../voxel/npc/quokka/female/foot_br.vox | Bin 1188 -> 0 bytes .../voxel/npc/quokka/female/foot_fl.vox | Bin 1164 -> 0 bytes .../voxel/npc/quokka/female/foot_fr.vox | Bin 1164 -> 0 bytes .../voxygen/voxel/npc/quokka/female/head.vox | Bin 1668 -> 0 bytes .../voxel/npc/raccoon/female/chest.vox | Bin 2000 -> 0 bytes .../voxel/npc/raccoon/female/foot_bl.vox | Bin 1156 -> 0 bytes .../voxel/npc/raccoon/female/foot_br.vox | Bin 1156 -> 0 bytes .../voxel/npc/raccoon/female/foot_fl.vox | Bin 1128 -> 0 bytes .../voxel/npc/raccoon/female/foot_fr.vox | Bin 1128 -> 0 bytes .../voxygen/voxel/npc/raccoon/female/head.vox | Bin 1584 -> 0 bytes .../voxygen/voxel/npc/raccoon/female/tail.vox | Bin 1176 -> 0 bytes assets/voxygen/voxel/npc/rat/female/chest.vox | Bin 3636 -> 0 bytes .../voxygen/voxel/npc/rat/female/feet_b.vox | Bin 1168 -> 0 bytes .../voxygen/voxel/npc/rat/female/feet_f.vox | Bin 1168 -> 0 bytes assets/voxygen/voxel/npc/rat/female/head.vox | Bin 1656 -> 0 bytes assets/voxygen/voxel/npc/rat/female/tail.vox | Bin 1136 -> 0 bytes .../npc/reddragon/female/chest_front.vox | Bin 5492 -> 0 bytes .../voxel/npc/reddragon/female/chest_rear.vox | Bin 5984 -> 0 bytes .../voxel/npc/reddragon/female/foot_bl.vox | Bin 1996 -> 0 bytes .../voxel/npc/reddragon/female/foot_br.vox | Bin 1996 -> 0 bytes .../voxel/npc/reddragon/female/foot_fl.vox | Bin 1932 -> 0 bytes .../voxel/npc/reddragon/female/foot_fr.vox | Bin 1932 -> 0 bytes .../voxel/npc/reddragon/female/head_lower.vox | Bin 1820 -> 0 bytes .../voxel/npc/reddragon/female/head_upper.vox | Bin 2584 -> 0 bytes .../voxel/npc/reddragon/female/jaw.vox | Bin 1456 -> 0 bytes .../voxel/npc/reddragon/female/tail_front.vox | Bin 1892 -> 0 bytes .../voxel/npc/reddragon/female/tail_rear.vox | Bin 1484 -> 0 bytes .../voxel/npc/reddragon/female/wing_in_l.vox | Bin 2368 -> 0 bytes .../voxel/npc/reddragon/female/wing_in_r.vox | Bin 2368 -> 0 bytes .../voxel/npc/reddragon/female/wing_out_l.vox | Bin 3580 -> 0 bytes .../voxel/npc/reddragon/female/wing_out_r.vox | Bin 3580 -> 0 bytes .../voxel/npc/rocksnapper/female/chest.vox | Bin 39944 -> 0 bytes .../voxel/npc/rocksnapper/female/foot_bl.vox | Bin 2124 -> 0 bytes .../voxel/npc/rocksnapper/female/foot_br.vox | Bin 2124 -> 0 bytes .../voxel/npc/rocksnapper/female/foot_fl.vox | Bin 2188 -> 0 bytes .../voxel/npc/rocksnapper/female/foot_fr.vox | Bin 2188 -> 0 bytes .../npc/rocksnapper/female/head_lower.vox | Bin 2360 -> 0 bytes .../npc/rocksnapper/female/head_upper.vox | Bin 1708 -> 0 bytes .../voxel/npc/rocksnapper/female/jaw.vox | Bin 2016 -> 0 bytes .../npc/rocksnapper/female/tail_front.vox | Bin 2052 -> 0 bytes .../npc/rocksnapper/female/tail_rear.vox | Bin 1272 -> 0 bytes .../voxygen/voxel/npc/saber/female/ears.vox | Bin 1212 -> 0 bytes .../voxel/npc/saber/female/foot_bl.vox | Bin 1452 -> 0 bytes .../voxel/npc/saber/female/foot_br.vox | Bin 1452 -> 0 bytes .../voxel/npc/saber/female/foot_fl.vox | Bin 1528 -> 0 bytes .../voxel/npc/saber/female/foot_fr.vox | Bin 1528 -> 0 bytes .../voxel/npc/saber/female/head_lower.vox | Bin 2456 -> 0 bytes .../voxel/npc/saber/female/head_upper.vox | Bin 2836 -> 0 bytes assets/voxygen/voxel/npc/saber/female/jaw.vox | Bin 1248 -> 0 bytes .../voxygen/voxel/npc/saber/female/leg_bl.vox | Bin 1480 -> 0 bytes .../voxygen/voxel/npc/saber/female/leg_br.vox | Bin 1480 -> 0 bytes .../voxygen/voxel/npc/saber/female/leg_fl.vox | Bin 1616 -> 0 bytes .../voxygen/voxel/npc/saber/female/leg_fr.vox | Bin 1616 -> 0 bytes .../voxygen/voxel/npc/saber/female/tail.vox | Bin 1304 -> 0 bytes .../voxel/npc/saber/female/torso_back.vox | Bin 4352 -> 0 bytes .../voxel/npc/saber/female/torso_front.vox | Bin 5956 -> 0 bytes .../voxel/npc/salamander/female/chest.vox | Bin 4252 -> 0 bytes .../voxel/npc/salamander/female/foot_bl.vox | Bin 1244 -> 0 bytes .../voxel/npc/salamander/female/foot_br.vox | Bin 1244 -> 0 bytes .../voxel/npc/salamander/female/foot_fl.vox | Bin 1268 -> 0 bytes .../voxel/npc/salamander/female/foot_fr.vox | Bin 1268 -> 0 bytes .../npc/salamander/female/head_lower.vox | Bin 1616 -> 0 bytes .../npc/salamander/female/head_upper.vox | Bin 2588 -> 0 bytes .../voxel/npc/salamander/female/jaw.vox | Bin 2092 -> 0 bytes .../npc/salamander/female/tail_front.vox | Bin 2244 -> 0 bytes .../voxel/npc/salamander/female/tail_rear.vox | Bin 1872 -> 0 bytes .../voxygen/voxel/npc/skunk/female/chest.vox | Bin 2280 -> 0 bytes .../voxel/npc/skunk/female/foot_bl.vox | Bin 1152 -> 0 bytes .../voxel/npc/skunk/female/foot_br.vox | Bin 1152 -> 0 bytes .../voxel/npc/skunk/female/foot_fl.vox | Bin 1140 -> 0 bytes .../voxel/npc/skunk/female/foot_fr.vox | Bin 1140 -> 0 bytes .../voxygen/voxel/npc/skunk/female/head.vox | Bin 1232 -> 0 bytes .../voxygen/voxel/npc/skunk/female/tail.vox | Bin 1808 -> 0 bytes .../voxel/npc/snowyowl/female/head.vox | Bin 2172 -> 0 bytes .../voxel/npc/snowyowl/female/leg_l.vox | Bin 1196 -> 0 bytes .../voxel/npc/snowyowl/female/leg_r.vox | Bin 1196 -> 0 bytes .../voxel/npc/snowyowl/female/tail.vox | Bin 1304 -> 0 bytes .../voxel/npc/snowyowl/female/torso.vox | Bin 2128 -> 0 bytes .../voxel/npc/snowyowl/female/wing_l.vox | Bin 1360 -> 0 bytes .../voxel/npc/snowyowl/female/wing_r.vox | Bin 1360 -> 0 bytes .../voxel/npc/squirrel/female/chest.vox | Bin 1212 -> 0 bytes .../voxel/npc/squirrel/female/feet_b.vox | Bin 1112 -> 0 bytes .../voxel/npc/squirrel/female/feet_f.vox | Bin 1112 -> 0 bytes .../voxel/npc/squirrel/female/head.vox | Bin 1264 -> 0 bytes .../voxel/npc/squirrel/female/tail.vox | Bin 1208 -> 0 bytes .../voxel/npc/stonegolem/female/foot_l.vox | Bin 2404 -> 0 bytes .../voxel/npc/stonegolem/female/foot_r.vox | Bin 2404 -> 0 bytes .../voxel/npc/stonegolem/female/hand_l.vox | Bin 2452 -> 0 bytes .../voxel/npc/stonegolem/female/hand_r.vox | Bin 2452 -> 0 bytes .../voxel/npc/stonegolem/female/head.vox | Bin 4360 -> 0 bytes .../voxel/npc/stonegolem/female/leg_l.vox | Bin 1680 -> 0 bytes .../voxel/npc/stonegolem/female/leg_r.vox | Bin 1680 -> 0 bytes .../npc/stonegolem/female/shoulder_l.vox | Bin 2344 -> 0 bytes .../npc/stonegolem/female/shoulder_r.vox | Bin 2344 -> 0 bytes .../npc/stonegolem/female/torso_upper.vox | Bin 4832 -> 0 bytes .../voxel/npc/tarasque/female/ears.vox | Bin 1176 -> 0 bytes .../voxel/npc/tarasque/female/foot_bl.vox | Bin 1508 -> 0 bytes .../voxel/npc/tarasque/female/foot_br.vox | Bin 1508 -> 0 bytes .../voxel/npc/tarasque/female/foot_fl.vox | Bin 2180 -> 0 bytes .../voxel/npc/tarasque/female/foot_fr.vox | Bin 2180 -> 0 bytes .../voxel/npc/tarasque/female/head_lower.vox | Bin 2408 -> 0 bytes .../voxel/npc/tarasque/female/head_upper.vox | Bin 5512 -> 0 bytes .../voxygen/voxel/npc/tarasque/female/jaw.vox | Bin 1760 -> 0 bytes .../voxel/npc/tarasque/female/leg_bl.vox | Bin 1620 -> 0 bytes .../voxel/npc/tarasque/female/leg_br.vox | Bin 1620 -> 0 bytes .../voxel/npc/tarasque/female/leg_fl.vox | Bin 2068 -> 0 bytes .../voxel/npc/tarasque/female/leg_fr.vox | Bin 2068 -> 0 bytes .../voxel/npc/tarasque/female/tail.vox | Bin 3316 -> 0 bytes .../voxel/npc/tarasque/female/torso_back.vox | Bin 5280 -> 0 bytes .../voxel/npc/tarasque/female/torso_front.vox | Bin 10088 -> 0 bytes .../voxygen/voxel/npc/tiger/female/ears.vox | Bin 1152 -> 0 bytes .../voxel/npc/tiger/female/foot_bl.vox | Bin 1328 -> 0 bytes .../voxel/npc/tiger/female/foot_br.vox | Bin 55811 -> 0 bytes .../voxel/npc/tiger/female/foot_fl.vox | Bin 1372 -> 0 bytes .../voxel/npc/tiger/female/foot_fr.vox | Bin 55855 -> 0 bytes .../voxel/npc/tiger/female/head_lower.vox | Bin 2124 -> 0 bytes .../voxel/npc/tiger/female/head_upper.vox | Bin 3152 -> 0 bytes assets/voxygen/voxel/npc/tiger/female/jaw.vox | Bin 1208 -> 0 bytes .../voxygen/voxel/npc/tiger/female/leg_bl.vox | Bin 1640 -> 0 bytes .../voxygen/voxel/npc/tiger/female/leg_br.vox | Bin 56123 -> 0 bytes .../voxygen/voxel/npc/tiger/female/leg_fl.vox | Bin 1636 -> 0 bytes .../voxygen/voxel/npc/tiger/female/leg_fr.vox | Bin 56119 -> 0 bytes .../voxygen/voxel/npc/tiger/female/tail.vox | Bin 1448 -> 0 bytes .../voxel/npc/tiger/female/torso_back.vox | Bin 4660 -> 0 bytes .../voxel/npc/tiger/female/torso_front.vox | Bin 6196 -> 0 bytes .../voxel/npc/tortoise/female/chest.vox | Bin 14232 -> 0 bytes .../voxel/npc/tortoise/female/foot_bl.vox | Bin 1580 -> 0 bytes .../voxel/npc/tortoise/female/foot_br.vox | Bin 1580 -> 0 bytes .../voxel/npc/tortoise/female/foot_fl.vox | Bin 1624 -> 0 bytes .../voxel/npc/tortoise/female/foot_fr.vox | Bin 1624 -> 0 bytes .../voxel/npc/tortoise/female/head_lower.vox | Bin 1428 -> 0 bytes .../voxel/npc/tortoise/female/head_upper.vox | Bin 1792 -> 0 bytes .../voxygen/voxel/npc/tortoise/female/jaw.vox | Bin 1220 -> 0 bytes .../voxel/npc/tortoise/female/tail_front.vox | Bin 1236 -> 0 bytes .../voxygen/voxel/npc/tortoise/tail_rear.vox | Bin 1096 -> 0 bytes .../voxygen/voxel/npc/turtle/female/chest.vox | Bin 3736 -> 0 bytes .../voxel/npc/turtle/female/feet_b.vox | Bin 1128 -> 0 bytes .../voxel/npc/turtle/female/feet_f.vox | Bin 1128 -> 0 bytes .../voxygen/voxel/npc/turtle/female/head.vox | Bin 1376 -> 0 bytes .../voxygen/voxel/npc/turtle/female/tail.vox | Bin 1116 -> 0 bytes .../voxel/npc/tuskram/female/foot_bl.vox | Bin 1288 -> 0 bytes .../voxel/npc/tuskram/female/foot_br.vox | Bin 1288 -> 0 bytes .../voxel/npc/tuskram/female/foot_fl.vox | Bin 1348 -> 0 bytes .../voxel/npc/tuskram/female/foot_fr.vox | Bin 1348 -> 0 bytes .../voxel/npc/tuskram/female/head_lower.vox | Bin 1904 -> 0 bytes .../voxel/npc/tuskram/female/head_upper.vox | Bin 4360 -> 0 bytes .../voxygen/voxel/npc/tuskram/female/jaw.vox | Bin 1248 -> 0 bytes .../voxel/npc/tuskram/female/leg_bl.vox | Bin 1512 -> 0 bytes .../voxel/npc/tuskram/female/leg_br.vox | Bin 1512 -> 0 bytes .../voxel/npc/tuskram/female/leg_fl.vox | Bin 1528 -> 0 bytes .../voxel/npc/tuskram/female/leg_fr.vox | Bin 1528 -> 0 bytes .../voxygen/voxel/npc/tuskram/female/tail.vox | Bin 1904 -> 0 bytes .../voxel/npc/tuskram/female/torso_back.vox | Bin 2956 -> 0 bytes .../voxel/npc/tuskram/female/torso_front.vox | Bin 5452 -> 0 bytes assets/voxygen/voxel/npc/wolf/female/ears.vox | Bin 1264 -> 0 bytes .../voxygen/voxel/npc/wolf/female/foot_bl.vox | Bin 1456 -> 0 bytes .../voxygen/voxel/npc/wolf/female/foot_br.vox | Bin 1456 -> 0 bytes .../voxygen/voxel/npc/wolf/female/foot_fl.vox | Bin 1456 -> 0 bytes .../voxygen/voxel/npc/wolf/female/foot_fr.vox | Bin 1456 -> 0 bytes .../voxel/npc/wolf/female/head_lower.vox | Bin 2728 -> 0 bytes .../voxel/npc/wolf/female/head_upper.vox | Bin 2844 -> 0 bytes assets/voxygen/voxel/npc/wolf/female/jaw.vox | Bin 1208 -> 0 bytes .../voxygen/voxel/npc/wolf/female/leg_bl.vox | Bin 1512 -> 0 bytes .../voxygen/voxel/npc/wolf/female/leg_br.vox | Bin 1512 -> 0 bytes .../voxygen/voxel/npc/wolf/female/leg_fl.vox | Bin 1652 -> 0 bytes .../voxygen/voxel/npc/wolf/female/leg_fr.vox | Bin 1652 -> 0 bytes assets/voxygen/voxel/npc/wolf/female/tail.vox | Bin 1840 -> 0 bytes .../voxel/npc/wolf/female/torso_back.vox | Bin 3168 -> 0 bytes .../voxel/npc/wolf/female/torso_front.vox | Bin 4704 -> 0 bytes .../voxel/quadruped_low_central_manifest.ron | 90 +++---- .../voxel/quadruped_low_lateral_manifest.ron | 64 ++--- .../quadruped_medium_central_manifest.ron | 122 ++++----- .../quadruped_medium_lateral_manifest.ron | 144 +++++------ .../quadruped_small_central_manifest.ron | 38 +-- common/src/path.rs | 2 +- common/src/sys/agent.rs | 2 +- voxygen/src/anim/Cargo.toml | 2 +- voxygen/src/anim/src/character/run.rs | 8 +- voxygen/src/anim/src/character/stand.rs | 51 ++-- voxygen/src/anim/src/quadruped_low/alpha.rs | 101 ++++++++ voxygen/src/anim/src/quadruped_low/mod.rs | 15 +- voxygen/src/anim/src/quadruped_low/run.rs | 9 +- .../src/anim/src/quadruped_medium/alpha.rs | 244 ++++++------------ voxygen/src/anim/src/quadruped_medium/idle.rs | 8 +- voxygen/src/anim/src/quadruped_medium/mod.rs | 16 +- voxygen/src/anim/src/quadruped_medium/run.rs | 83 +++--- voxygen/src/scene/figure/mod.rs | 32 ++- 404 files changed, 662 insertions(+), 599 deletions(-) delete mode 100644 assets/voxygen/voxel/npc/alligator/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/tail_front.vox delete mode 100644 assets/voxygen/voxel/npc/alligator/female/tail_rear.vox delete mode 100644 assets/voxygen/voxel/npc/asp/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/asp/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/asp/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/asp/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/asp/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/asp/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/asp/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/asp/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/asp/female/tail_front.vox delete mode 100644 assets/voxygen/voxel/npc/asp/female/tail_rear.vox delete mode 100644 assets/voxygen/voxel/npc/axolotl/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/axolotl/female/feet_b.vox delete mode 100644 assets/voxygen/voxel/npc/axolotl/female/feet_f.vox delete mode 100644 assets/voxygen/voxel/npc/axolotl/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/axolotl/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/batfox/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/batfox/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/batfox/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/batfox/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/batfox/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/batfox/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/cockatrice/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/cockatrice/female/leg_l.vox delete mode 100644 assets/voxygen/voxel/npc/cockatrice/female/leg_r.vox delete mode 100644 assets/voxygen/voxel/npc/cockatrice/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/cockatrice/female/torso.vox delete mode 100644 assets/voxygen/voxel/npc/cockatrice/female/wing_l.vox delete mode 100644 assets/voxygen/voxel/npc/cockatrice/female/wing_r.vox delete mode 100644 assets/voxygen/voxel/npc/crocodile/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/crocodile/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/crocodile/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/crocodile/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/crocodile/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/crocodile/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/crocodile/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/crocodile/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/crocodile/female/tail_front.vox delete mode 100644 assets/voxygen/voxel/npc/crocodile/female/tail_rear.vox delete mode 100644 assets/voxygen/voxel/npc/cyclops/female/foot_l.vox delete mode 100644 assets/voxygen/voxel/npc/cyclops/female/foot_r.vox delete mode 100644 assets/voxygen/voxel/npc/cyclops/female/hammer.vox delete mode 100644 assets/voxygen/voxel/npc/cyclops/female/hand_l.vox delete mode 100644 assets/voxygen/voxel/npc/cyclops/female/hand_r.vox delete mode 100644 assets/voxygen/voxel/npc/cyclops/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/cyclops/female/leg_l.vox delete mode 100644 assets/voxygen/voxel/npc/cyclops/female/leg_r.vox delete mode 100644 assets/voxygen/voxel/npc/cyclops/female/shoulder_l.vox delete mode 100644 assets/voxygen/voxel/npc/cyclops/female/shoulder_r.vox delete mode 100644 assets/voxygen/voxel/npc/cyclops/female/torso_lower.vox delete mode 100644 assets/voxygen/voxel/npc/cyclops/female/torso_upper.vox delete mode 100644 assets/voxygen/voxel/npc/dodarock/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/dodarock/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/dodarock/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/dodarock/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/dodarock/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/dodarock/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/eagle/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/eagle/female/leg_l.vox delete mode 100644 assets/voxygen/voxel/npc/eagle/female/leg_r.vox delete mode 100644 assets/voxygen/voxel/npc/eagle/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/eagle/female/torso.vox delete mode 100644 assets/voxygen/voxel/npc/eagle/female/wing_l.vox delete mode 100644 assets/voxygen/voxel/npc/eagle/female/wing_r.vox delete mode 100644 assets/voxygen/voxel/npc/frostfang/female/ears.vox delete mode 100644 assets/voxygen/voxel/npc/frostfang/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/frostfang/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/frostfang/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/frostfang/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/frostfang/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/frostfang/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/frostfang/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/frostfang/female/leg_bl.vox delete mode 100644 assets/voxygen/voxel/npc/frostfang/female/leg_br.vox delete mode 100644 assets/voxygen/voxel/npc/frostfang/female/leg_fl.vox delete mode 100644 assets/voxygen/voxel/npc/frostfang/female/leg_fr.vox delete mode 100644 assets/voxygen/voxel/npc/frostfang/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/frostfang/female/torso_back.vox delete mode 100644 assets/voxygen/voxel/npc/frostfang/female/torso_front.vox delete mode 100644 assets/voxygen/voxel/npc/fungome/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/fungome/female/feet_b.vox delete mode 100644 assets/voxygen/voxel/npc/fungome/female/feet_f.vox delete mode 100644 assets/voxygen/voxel/npc/fungome/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/fungome/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/gecko/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/gecko/female/feet_b.vox delete mode 100644 assets/voxygen/voxel/npc/gecko/female/feet_f.vox delete mode 100644 assets/voxygen/voxel/npc/gecko/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/gecko/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/goose/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/goose/female/leg_l.vox delete mode 100644 assets/voxygen/voxel/npc/goose/female/leg_r.vox delete mode 100644 assets/voxygen/voxel/npc/goose/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/goose/female/torso.vox delete mode 100644 assets/voxygen/voxel/npc/goose/female/wing.vox delete mode 100644 assets/voxygen/voxel/npc/grolgar/female/ears.vox delete mode 100644 assets/voxygen/voxel/npc/grolgar/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/grolgar/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/grolgar/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/grolgar/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/grolgar/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/grolgar/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/grolgar/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/grolgar/female/leg_bl.vox delete mode 100644 assets/voxygen/voxel/npc/grolgar/female/leg_br.vox delete mode 100644 assets/voxygen/voxel/npc/grolgar/female/leg_fl.vox delete mode 100644 assets/voxygen/voxel/npc/grolgar/female/leg_fr.vox delete mode 100644 assets/voxygen/voxel/npc/grolgar/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/grolgar/female/torso_back.vox delete mode 100644 assets/voxygen/voxel/npc/grolgar/female/torso_front.vox delete mode 100644 assets/voxygen/voxel/npc/holladon/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/holladon/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/holladon/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/holladon/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/holladon/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/holladon/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/hyena/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/hyena/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/hyena/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/hyena/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/hyena/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/hyena/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/hyena/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/jackalope/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/jackalope/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/jackalope/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/jackalope/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/jackalope/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/jackalope/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/lion/female/ears.vox delete mode 100644 assets/voxygen/voxel/npc/lion/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/lion/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/lion/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/lion/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/lion/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/lion/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/lion/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/lion/female/leg_bl.vox delete mode 100644 assets/voxygen/voxel/npc/lion/female/leg_br.vox delete mode 100644 assets/voxygen/voxel/npc/lion/female/leg_fl.vox delete mode 100644 assets/voxygen/voxel/npc/lion/female/leg_fr.vox delete mode 100644 assets/voxygen/voxel/npc/lion/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/lion/female/torso_back.vox delete mode 100644 assets/voxygen/voxel/npc/lion/female/torso_front.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/tail_front.vox delete mode 100644 assets/voxygen/voxel/npc/monitor/female/tail_rear.vox delete mode 100644 assets/voxygen/voxel/npc/mouflon/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/mouflon/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/mouflon/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/mouflon/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/mouflon/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/mouflon/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/mouflon/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/mouflon/female/leg_bl.vox delete mode 100644 assets/voxygen/voxel/npc/mouflon/female/leg_br.vox delete mode 100644 assets/voxygen/voxel/npc/mouflon/female/leg_fl.vox delete mode 100644 assets/voxygen/voxel/npc/mouflon/female/leg_fr.vox delete mode 100644 assets/voxygen/voxel/npc/mouflon/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/mouflon/female/torso_back.vox delete mode 100644 assets/voxygen/voxel/npc/mouflon/female/torso_front.vox delete mode 100644 assets/voxygen/voxel/npc/ogre/female/club_l.vox delete mode 100644 assets/voxygen/voxel/npc/ogre/female/club_r.vox delete mode 100644 assets/voxygen/voxel/npc/ogre/female/foot_l.vox delete mode 100644 assets/voxygen/voxel/npc/ogre/female/foot_r.vox delete mode 100644 assets/voxygen/voxel/npc/ogre/female/hand_l.vox delete mode 100644 assets/voxygen/voxel/npc/ogre/female/hand_r.vox delete mode 100644 assets/voxygen/voxel/npc/ogre/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/ogre/female/leg_l.vox delete mode 100644 assets/voxygen/voxel/npc/ogre/female/leg_r.vox delete mode 100644 assets/voxygen/voxel/npc/ogre/female/shoulder_l.vox delete mode 100644 assets/voxygen/voxel/npc/ogre/female/shoulder_r.vox delete mode 100644 assets/voxygen/voxel/npc/ogre/female/torso_lower.vox delete mode 100644 assets/voxygen/voxel/npc/ogre/female/torso_upper.vox delete mode 100644 assets/voxygen/voxel/npc/pangolin/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/pangolin/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/pangolin/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/pangolin/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/pangolin/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/pangolin/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/pangolin/female/tail_front.vox delete mode 100644 assets/voxygen/voxel/npc/pangolin/female/tail_rear.vox delete mode 100644 assets/voxygen/voxel/npc/parrot/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/parrot/female/leg_l.vox delete mode 100644 assets/voxygen/voxel/npc/parrot/female/leg_r.vox delete mode 100644 assets/voxygen/voxel/npc/parrot/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/parrot/female/torso.vox delete mode 100644 assets/voxygen/voxel/npc/parrot/female/wing.vox delete mode 100644 assets/voxygen/voxel/npc/quokka/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/quokka/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/quokka/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/quokka/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/quokka/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/quokka/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/raccoon/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/raccoon/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/raccoon/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/raccoon/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/raccoon/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/raccoon/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/raccoon/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/rat/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/rat/female/feet_b.vox delete mode 100644 assets/voxygen/voxel/npc/rat/female/feet_f.vox delete mode 100644 assets/voxygen/voxel/npc/rat/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/rat/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/reddragon/female/chest_front.vox delete mode 100644 assets/voxygen/voxel/npc/reddragon/female/chest_rear.vox delete mode 100644 assets/voxygen/voxel/npc/reddragon/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/reddragon/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/reddragon/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/reddragon/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/reddragon/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/reddragon/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/reddragon/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/reddragon/female/tail_front.vox delete mode 100644 assets/voxygen/voxel/npc/reddragon/female/tail_rear.vox delete mode 100644 assets/voxygen/voxel/npc/reddragon/female/wing_in_l.vox delete mode 100644 assets/voxygen/voxel/npc/reddragon/female/wing_in_r.vox delete mode 100644 assets/voxygen/voxel/npc/reddragon/female/wing_out_l.vox delete mode 100644 assets/voxygen/voxel/npc/reddragon/female/wing_out_r.vox delete mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/tail_front.vox delete mode 100644 assets/voxygen/voxel/npc/rocksnapper/female/tail_rear.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/ears.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/leg_bl.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/leg_br.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/leg_fl.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/leg_fr.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/torso_back.vox delete mode 100644 assets/voxygen/voxel/npc/saber/female/torso_front.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/tail_front.vox delete mode 100644 assets/voxygen/voxel/npc/salamander/female/tail_rear.vox delete mode 100644 assets/voxygen/voxel/npc/skunk/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/skunk/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/skunk/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/skunk/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/skunk/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/skunk/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/skunk/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/snowyowl/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/snowyowl/female/leg_l.vox delete mode 100644 assets/voxygen/voxel/npc/snowyowl/female/leg_r.vox delete mode 100644 assets/voxygen/voxel/npc/snowyowl/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/snowyowl/female/torso.vox delete mode 100644 assets/voxygen/voxel/npc/snowyowl/female/wing_l.vox delete mode 100644 assets/voxygen/voxel/npc/snowyowl/female/wing_r.vox delete mode 100644 assets/voxygen/voxel/npc/squirrel/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/squirrel/female/feet_b.vox delete mode 100644 assets/voxygen/voxel/npc/squirrel/female/feet_f.vox delete mode 100644 assets/voxygen/voxel/npc/squirrel/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/squirrel/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/stonegolem/female/foot_l.vox delete mode 100644 assets/voxygen/voxel/npc/stonegolem/female/foot_r.vox delete mode 100644 assets/voxygen/voxel/npc/stonegolem/female/hand_l.vox delete mode 100644 assets/voxygen/voxel/npc/stonegolem/female/hand_r.vox delete mode 100644 assets/voxygen/voxel/npc/stonegolem/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/stonegolem/female/leg_l.vox delete mode 100644 assets/voxygen/voxel/npc/stonegolem/female/leg_r.vox delete mode 100644 assets/voxygen/voxel/npc/stonegolem/female/shoulder_l.vox delete mode 100644 assets/voxygen/voxel/npc/stonegolem/female/shoulder_r.vox delete mode 100644 assets/voxygen/voxel/npc/stonegolem/female/torso_upper.vox delete mode 100644 assets/voxygen/voxel/npc/tarasque/female/ears.vox delete mode 100644 assets/voxygen/voxel/npc/tarasque/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/tarasque/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/tarasque/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/tarasque/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/tarasque/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/tarasque/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/tarasque/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/tarasque/female/leg_bl.vox delete mode 100644 assets/voxygen/voxel/npc/tarasque/female/leg_br.vox delete mode 100644 assets/voxygen/voxel/npc/tarasque/female/leg_fl.vox delete mode 100644 assets/voxygen/voxel/npc/tarasque/female/leg_fr.vox delete mode 100644 assets/voxygen/voxel/npc/tarasque/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/tarasque/female/torso_back.vox delete mode 100644 assets/voxygen/voxel/npc/tarasque/female/torso_front.vox delete mode 100644 assets/voxygen/voxel/npc/tiger/female/ears.vox delete mode 100644 assets/voxygen/voxel/npc/tiger/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/tiger/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/tiger/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/tiger/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/tiger/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/tiger/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/tiger/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/tiger/female/leg_bl.vox delete mode 100644 assets/voxygen/voxel/npc/tiger/female/leg_br.vox delete mode 100644 assets/voxygen/voxel/npc/tiger/female/leg_fl.vox delete mode 100644 assets/voxygen/voxel/npc/tiger/female/leg_fr.vox delete mode 100644 assets/voxygen/voxel/npc/tiger/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/tiger/female/torso_back.vox delete mode 100644 assets/voxygen/voxel/npc/tiger/female/torso_front.vox delete mode 100644 assets/voxygen/voxel/npc/tortoise/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/tortoise/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/tortoise/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/tortoise/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/tortoise/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/tortoise/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/tortoise/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/tortoise/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/tortoise/female/tail_front.vox delete mode 100644 assets/voxygen/voxel/npc/tortoise/tail_rear.vox delete mode 100644 assets/voxygen/voxel/npc/turtle/female/chest.vox delete mode 100644 assets/voxygen/voxel/npc/turtle/female/feet_b.vox delete mode 100644 assets/voxygen/voxel/npc/turtle/female/feet_f.vox delete mode 100644 assets/voxygen/voxel/npc/turtle/female/head.vox delete mode 100644 assets/voxygen/voxel/npc/turtle/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/tuskram/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/tuskram/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/tuskram/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/tuskram/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/tuskram/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/tuskram/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/tuskram/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/tuskram/female/leg_bl.vox delete mode 100644 assets/voxygen/voxel/npc/tuskram/female/leg_br.vox delete mode 100644 assets/voxygen/voxel/npc/tuskram/female/leg_fl.vox delete mode 100644 assets/voxygen/voxel/npc/tuskram/female/leg_fr.vox delete mode 100644 assets/voxygen/voxel/npc/tuskram/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/tuskram/female/torso_back.vox delete mode 100644 assets/voxygen/voxel/npc/tuskram/female/torso_front.vox delete mode 100644 assets/voxygen/voxel/npc/wolf/female/ears.vox delete mode 100644 assets/voxygen/voxel/npc/wolf/female/foot_bl.vox delete mode 100644 assets/voxygen/voxel/npc/wolf/female/foot_br.vox delete mode 100644 assets/voxygen/voxel/npc/wolf/female/foot_fl.vox delete mode 100644 assets/voxygen/voxel/npc/wolf/female/foot_fr.vox delete mode 100644 assets/voxygen/voxel/npc/wolf/female/head_lower.vox delete mode 100644 assets/voxygen/voxel/npc/wolf/female/head_upper.vox delete mode 100644 assets/voxygen/voxel/npc/wolf/female/jaw.vox delete mode 100644 assets/voxygen/voxel/npc/wolf/female/leg_bl.vox delete mode 100644 assets/voxygen/voxel/npc/wolf/female/leg_br.vox delete mode 100644 assets/voxygen/voxel/npc/wolf/female/leg_fl.vox delete mode 100644 assets/voxygen/voxel/npc/wolf/female/leg_fr.vox delete mode 100644 assets/voxygen/voxel/npc/wolf/female/tail.vox delete mode 100644 assets/voxygen/voxel/npc/wolf/female/torso_back.vox delete mode 100644 assets/voxygen/voxel/npc/wolf/female/torso_front.vox create mode 100644 voxygen/src/anim/src/quadruped_low/alpha.rs diff --git a/assets/common/npc_names.json b/assets/common/npc_names.json index fe241ac5f3..ebfc47948a 100644 --- a/assets/common/npc_names.json +++ b/assets/common/npc_names.json @@ -273,7 +273,7 @@ }, "frostfang": { "keyword": "frostfang", - "generic": "Frost Fang" + "generic": "Frostfang" }, "mouflon": { "keyword": "mouflon", diff --git a/assets/voxygen/voxel/biped_large_center_manifest.ron b/assets/voxygen/voxel/biped_large_center_manifest.ron index 9a799a37c2..bd6ec60904 100644 --- a/assets/voxygen/voxel/biped_large_center_manifest.ron +++ b/assets/voxygen/voxel/biped_large_center_manifest.ron @@ -16,15 +16,15 @@ (Ogre, Female): ( head: ( offset: (-8.0, -5.0, -6.0), - center: ("npc.ogre.female.head"), + center: ("npc.ogre.male.head"), ), torso_upper: ( offset: (-8.0, -4.5, -5.0), - center: ("npc.ogre.female.torso_upper"), + center: ("npc.ogre.male.torso_upper"), ), torso_lower: ( offset: (-5.0, -4.5, -4.5), - center: ("npc.ogre.female.torso_lower"), + center: ("npc.ogre.male.torso_lower"), ) ), (Cyclops, Male): ( @@ -44,15 +44,15 @@ (Cyclops, Female): ( head: ( offset: (-7.0, -7.0, -6.5), - center: ("npc.cyclops.female.head"), + center: ("npc.cyclops.male.head"), ), torso_upper: ( offset: (-8.0, -6.0, -6.0), - center: ("npc.cyclops.female.torso_upper"), + center: ("npc.cyclops.male.torso_upper"), ), torso_lower: ( offset: (-6.0, -5.5, -6.0), - center: ("npc.cyclops.female.torso_lower"), + center: ("npc.cyclops.male.torso_lower"), ) ), }) diff --git a/assets/voxygen/voxel/biped_large_lateral_manifest.ron b/assets/voxygen/voxel/biped_large_lateral_manifest.ron index a74c9306b1..32a3a55245 100644 --- a/assets/voxygen/voxel/biped_large_lateral_manifest.ron +++ b/assets/voxygen/voxel/biped_large_lateral_manifest.ron @@ -40,31 +40,31 @@ ), shoulder_r: ( offset: (-4.0, -5.5, -4.0), - lateral: ("npc.ogre.female.shoulder_r"), + lateral: ("npc.ogre.male.shoulder_r"), ), hand_l: ( offset: (-2.5, -2.5, -11.0), - lateral: ("npc.ogre.female.hand_l"), + lateral: ("npc.ogre.male.hand_l"), ), hand_r: ( offset: (-2.5, -2.5, -11.0), - lateral: ("npc.ogre.female.hand_r"), + lateral: ("npc.ogre.male.hand_r"), ), leg_l: ( offset: (-6.0, -3.5, -7.0), - lateral: ("npc.ogre.female.leg_l"), + lateral: ("npc.ogre.male.leg_l"), ), leg_r: ( offset: (0.0, -3.5, -7.0), - lateral: ("npc.ogre.female.leg_r"), + lateral: ("npc.ogre.male.leg_r"), ), foot_l: ( offset: (-3.0, -5.0, -2.5), - lateral: ("npc.ogre.female.foot_l"), + lateral: ("npc.ogre.male.foot_l"), ), foot_r: ( offset: (-3.0, -5.0, -2.5), - lateral: ("npc.ogre.female.foot_r"), + lateral: ("npc.ogre.male.foot_r"), ) ), (Cyclops, Male): ( @@ -104,35 +104,35 @@ (Cyclops, Female): ( shoulder_l: ( offset: (-3.0, -4.0, -5.0), - lateral: ("npc.cyclops.female.shoulder_l"), + lateral: ("npc.cyclops.male.shoulder_l"), ), shoulder_r: ( offset: (-3.0, -4.0, -5.0), - lateral: ("npc.cyclops.female.shoulder_r"), + lateral: ("npc.cyclops.male.shoulder_r"), ), hand_l: ( offset: (-3.5, -3.5, -14.0), - lateral: ("npc.cyclops.female.hand_l"), + lateral: ("npc.cyclops.male.hand_l"), ), hand_r: ( offset: (-3.5, -3.5, -14.0), - lateral: ("npc.cyclops.female.hand_r"), + lateral: ("npc.cyclops.male.hand_r"), ), leg_l: ( offset: (-6.0, -3.5, -7.0), - lateral: ("npc.cyclops.female.leg_l"), + lateral: ("npc.cyclops.male.leg_l"), ), leg_r: ( offset: (0.0, -3.5, -7.0), - lateral: ("npc.cyclops.female.leg_r"), + lateral: ("npc.cyclops.male.leg_r"), ), foot_l: ( offset: (-3.0, -5.0, -5.0), - lateral: ("npc.cyclops.female.foot_l"), + lateral: ("npc.cyclops.male.foot_l"), ), foot_r: ( offset: (-3.0, -5.0, -5.0), - lateral: ("npc.cyclops.female.foot_r"), + lateral: ("npc.cyclops.male.foot_r"), ) ), }) diff --git a/assets/voxygen/voxel/bird_medium_center_manifest.ron b/assets/voxygen/voxel/bird_medium_center_manifest.ron index 3669a810e7..7f79179c51 100644 --- a/assets/voxygen/voxel/bird_medium_center_manifest.ron +++ b/assets/voxygen/voxel/bird_medium_center_manifest.ron @@ -72,15 +72,15 @@ (Goose, Female): ( head: ( offset: (-2.0, -3.5, -2.5), - center: ("npc.goose.female.head"), + center: ("npc.goose.male.head"), ), torso: ( offset: (-3.5, -4.5, -3.0), - center: ("npc.goose.female.torso"), + center: ("npc.goose.male.torso"), ), tail: ( offset: (-2.0, -1.0, -3.5), - center: ("npc.goose.female.tail"), + center: ("npc.goose.male.tail"), ) ), (Peacock, Male): ( @@ -128,15 +128,15 @@ (Eagle, Female): ( head: ( offset: (-2.0, -2.0, -3.5), - center: ("npc.eagle.female.head"), + center: ("npc.eagle.male.head"), ), torso: ( offset: (-3.0, -4.5, -4.5), - center: ("npc.eagle.female.torso"), + center: ("npc.eagle.male.torso"), ), tail: ( offset: (-2.0, -3.5, -3.5), - center: ("npc.eagle.female.tail"), + center: ("npc.eagle.male.tail"), ) ), (Snowyowl, Male): ( @@ -156,15 +156,15 @@ (Snowyowl, Female): ( head: ( offset: (-3.5, -4.5, -4.0), - center: ("npc.snowyowl.female.head"), + center: ("npc.snowyowl.male.head"), ), torso: ( offset: (-3.5, -5.0, -3.0), - center: ("npc.snowyowl.female.torso"), + center: ("npc.snowyowl.male.torso"), ), tail: ( offset: (-2.5, -3.0, -2.0), - center: ("npc.snowyowl.female.tail"), + center: ("npc.snowyowl.male.tail"), ) ), (Parrot, Male): ( @@ -184,15 +184,15 @@ (Parrot, Female): ( head: ( offset: (-1.5, -1.5, -2.5), - center: ("npc.parrot.female.head"), + center: ("npc.parrot.male.head"), ), torso: ( offset: (-1.5, -3.5, -3.5), - center: ("npc.parrot.female.torso"), + center: ("npc.parrot.male.torso"), ), tail: ( offset: (-1.5, -4.5, -1.5), - center: ("npc.parrot.female.tail"), + center: ("npc.parrot.male.tail"), ) ), (Cockatrice, Male): ( @@ -212,15 +212,15 @@ (Cockatrice, Female): ( head: ( offset: (-2.5, -3.5, -8.0), - center: ("npc.cockatrice.female.head"), + center: ("npc.cockatrice.male.head"), ), torso: ( offset: (-3.5, -6.5, -7.5), - center: ("npc.cockatrice.female.torso"), + center: ("npc.cockatrice.male.torso"), ), tail: ( offset: (-1.5, -3.5, -4.0), - center: ("npc.cockatrice.female.tail"), + center: ("npc.cockatrice.male.tail"), ) ), }) \ No newline at end of file diff --git a/assets/voxygen/voxel/bird_medium_lateral_manifest.ron b/assets/voxygen/voxel/bird_medium_lateral_manifest.ron index a2ae6f8b6d..35116121e2 100644 --- a/assets/voxygen/voxel/bird_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/bird_medium_lateral_manifest.ron @@ -92,19 +92,19 @@ (Goose, Female): ( wing_l: ( offset: (-0.5, -2.5, -4.0), - lateral: ("npc.goose.female.wing"), + lateral: ("npc.goose.male.wing"), ), wing_r: ( offset: (-0.5, -2.5, -4.0), - lateral: ("npc.goose.female.wing"), + lateral: ("npc.goose.male.wing"), ), foot_l: ( offset: (-1.0, 0.0, -6.5), - lateral: ("npc.goose.female.leg_l"), + lateral: ("npc.goose.male.leg_l"), ), foot_r: ( offset: (-1.0, 0.0, -6.5), - lateral: ("npc.goose.female.leg_r"), + lateral: ("npc.goose.male.leg_r"), ) ), (Peacock, Male): ( @@ -164,19 +164,19 @@ (Eagle, Female): ( wing_l: ( offset: (-1.0, -3.5, -12.0), - lateral: ("npc.eagle.female.wing_l"), + lateral: ("npc.eagle.male.wing_l"), ), wing_r: ( offset: (-1.0, -3.5, -12.0), - lateral: ("npc.eagle.female.wing_r"), + lateral: ("npc.eagle.male.wing_r"), ), foot_l: ( offset: (-1.5, 0.0, -8.0), - lateral: ("npc.eagle.female.leg_l"), + lateral: ("npc.eagle.male.leg_l"), ), foot_r: ( offset: (-1.5, 0.0, -8.0), - lateral: ("npc.eagle.female.leg_r"), + lateral: ("npc.eagle.male.leg_r"), ) ), (Snowyowl, Male): ( @@ -200,55 +200,55 @@ (Snowyowl, Female): ( wing_l: ( offset: (-1.0, -2.5, -8.0), - lateral: ("npc.snowyowl.female.wing_l"), + lateral: ("npc.snowyowl.male.wing_l"), ), wing_r: ( offset: (-1.0, -2.5, -8.0), - lateral: ("npc.snowyowl.female.wing_r"), + lateral: ("npc.snowyowl.male.wing_r"), ), foot_l: ( offset: (-1.0, 0.0, -6.5), - lateral: ("npc.snowyowl.female.leg_l"), + lateral: ("npc.snowyowl.male.leg_l"), ), foot_r: ( offset: (-1.0, 0.0, -6.5), - lateral: ("npc.snowyowl.female.leg_r"), + lateral: ("npc.snowyowl.male.leg_r"), ) ), (Parrot, Male): ( wing_l: ( offset: (-0.5, -2.5, -8.0), - lateral: ("npc.parrot.female.wing"), + lateral: ("npc.parrot.male.wing"), ), wing_r: ( offset: (-0.5, -2.5, -8.0), - lateral: ("npc.parrot.female.wing"), + lateral: ("npc.parrot.male.wing"), ), foot_l: ( offset: (-1.0, 0.0, -3.0), - lateral: ("npc.parrot.female.leg_l"), + lateral: ("npc.parrot.male.leg_l"), ), foot_r: ( offset: (-1.0, 0.0, -3.0), - lateral: ("npc.parrot.female.leg_r"), + lateral: ("npc.parrot.male.leg_r"), ) ), (Parrot, Female): ( wing_l: ( offset: (-0.5, -2.5, -8.0), - lateral: ("npc.parrot.female.wing"), + lateral: ("npc.parrot.male.wing"), ), wing_r: ( offset: (-0.5, -2.5, -8.0), - lateral: ("npc.parrot.female.wing"), + lateral: ("npc.parrot.male.wing"), ), foot_l: ( offset: (-1.0, 0.0, -3.0), - lateral: ("npc.parrot.female.leg_l"), + lateral: ("npc.parrot.male.leg_l"), ), foot_r: ( offset: (-1.0, 0.0, -3.0), - lateral: ("npc.parrot.female.leg_r"), + lateral: ("npc.parrot.male.leg_r"), ) ), (Cockatrice, Male): ( @@ -272,19 +272,19 @@ (Cockatrice, Female): ( wing_l: ( offset: (-2.0, -3.0, -9.0), - lateral: ("npc.cockatrice.female.wing_l"), + lateral: ("npc.cockatrice.male.wing_l"), ), wing_r: ( offset: (-2.0, -3.0, -9.0), - lateral: ("npc.cockatrice.female.wing_r"), + lateral: ("npc.cockatrice.male.wing_r"), ), foot_l: ( offset: (-2.5, 0.0, -12.0), - lateral: ("npc.cockatrice.female.leg_l"), + lateral: ("npc.cockatrice.male.leg_l"), ), foot_r: ( offset: (-2.5, 0.0, -12.0), - lateral: ("npc.cockatrice.female.leg_r"), + lateral: ("npc.cockatrice.male.leg_r"), ) ), }) \ No newline at end of file diff --git a/assets/voxygen/voxel/critter_center_manifest.ron b/assets/voxygen/voxel/critter_center_manifest.ron index 6c2ee8a5b7..038fcfc611 100644 --- a/assets/voxygen/voxel/critter_center_manifest.ron +++ b/assets/voxygen/voxel/critter_center_manifest.ron @@ -24,23 +24,23 @@ (Rat, Female): ( head: ( offset: (-4.5, -4.0, -4.0), - center: ("npc.rat.female.head"), + center: ("npc.rat.male.head"), ), chest: ( offset: (-4.5, -6.0, -4.0), - center: ("npc.rat.female.chest"), + center: ("npc.rat.male.chest"), ), feet_f: ( offset: (-4.0, -1.5, -1.0), - center: ("npc.rat.female.feet_f"), + center: ("npc.rat.male.feet_f"), ), feet_b: ( offset: (-4.0, -1.5, -1.0), - center: ("npc.rat.female.feet_b"), + center: ("npc.rat.male.feet_b"), ), tail: ( offset: (-0.5, -4.0, -1.5), - center: ("npc.rat.female.tail"), + center: ("npc.rat.male.tail"), ), ), (Axolotl, Male): ( @@ -68,23 +68,23 @@ (Axolotl, Female): ( head: ( offset: (-3.5, -4.0, -2.0), - center: ("npc.axolotl.female.head"), + center: ("npc.axolotl.male.head"), ), chest: ( offset: (-2.5, -4.0, -1.5), - center: ("npc.axolotl.female.chest"), + center: ("npc.axolotl.male.chest"), ), feet_f: ( offset: (-3.0, -0.5, -1.0), - center: ("npc.axolotl.female.feet_f"), + center: ("npc.axolotl.male.feet_f"), ), feet_b: ( offset: (-3.0, -0.5, -1.0), - center: ("npc.axolotl.female.feet_b"), + center: ("npc.axolotl.male.feet_b"), ), tail: ( offset: (-1.5, -2.5, -1.5), - center: ("npc.axolotl.female.tail"), + center: ("npc.axolotl.male.tail"), ), ), (Gecko, Male): ( @@ -112,23 +112,23 @@ (Gecko, Female): ( head: ( offset: (-2.5, -3.0, -2.0), - center: ("npc.gecko.female.head"), + center: ("npc.gecko.male.head"), ), chest: ( offset: (-1.5, -4.0, -1.5), - center: ("npc.gecko.female.chest"), + center: ("npc.gecko.male.chest"), ), feet_f: ( offset: (-2.0, -0.5, -1.0), - center: ("npc.gecko.female.feet_f"), + center: ("npc.gecko.male.feet_f"), ), feet_b: ( offset: (-2.0, -0.5, -1.0), - center: ("npc.gecko.female.feet_b"), + center: ("npc.gecko.male.feet_b"), ), tail: ( offset: (-0.5, -2.5, -1.0), - center: ("npc.gecko.female.tail"), + center: ("npc.gecko.male.tail"), ), ), (Turtle, Male): ( @@ -156,23 +156,23 @@ (Turtle, Female): ( head: ( offset: (-2.5, -2.5, -2.5), - center: ("npc.turtle.female.head"), + center: ("npc.turtle.male.head"), ), chest: ( offset: (-6.0, -6.0, -4.0), - center: ("npc.turtle.female.chest"), + center: ("npc.turtle.male.chest"), ), feet_f: ( offset: (-5.0, -0.5, -1.0), - center: ("npc.turtle.female.feet_f"), + center: ("npc.turtle.male.feet_f"), ), feet_b: ( offset: (-5.0, -0.5, -1.0), - center: ("npc.turtle.female.feet_b"), + center: ("npc.turtle.male.feet_b"), ), tail: ( offset: (-0.5, -2.0, -1.0), - center: ("npc.turtle.female.tail"), + center: ("npc.turtle.male.tail"), ), ), (Squirrel, Male): ( @@ -200,23 +200,23 @@ (Squirrel, Female): ( head: ( offset: (-1.5, -2.0, -2.0), - center: ("npc.squirrel.female.head"), + center: ("npc.squirrel.male.head"), ), chest: ( offset: (-1.5, -3.0, -1.5), - center: ("npc.squirrel.female.chest"), + center: ("npc.squirrel.male.chest"), ), feet_f: ( offset: (-2.0, -0.5, -1.0), - center: ("npc.squirrel.female.feet_f"), + center: ("npc.squirrel.male.feet_f"), ), feet_b: ( offset: (-2.0, -0.5, -1.0), - center: ("npc.squirrel.female.feet_b"), + center: ("npc.squirrel.male.feet_b"), ), tail: ( offset: (-1.5, -1.5, -3.0), - center: ("npc.squirrel.female.tail"), + center: ("npc.squirrel.male.tail"), ), ), (Fungome, Male): ( @@ -244,23 +244,23 @@ (Fungome, Female): ( head: ( offset: (-2.5, -1.5, -2.0), - center: ("npc.fungome.female.head"), + center: ("npc.fungome.male.head"), ), chest: ( offset: (-6.0, -6.0, -4.0), - center: ("npc.fungome.female.chest"), + center: ("npc.fungome.male.chest"), ), feet_f: ( offset: (-3.0, -0.5, -1.0), - center: ("npc.fungome.female.feet_f"), + center: ("npc.fungome.male.feet_f"), ), feet_b: ( offset: (-3.0, -0.5, -1.0), - center: ("npc.fungome.female.feet_b"), + center: ("npc.fungome.male.feet_b"), ), tail: ( offset: (-1.0, -0.5, -1.0), - center: ("npc.fungome.female.tail"), + center: ("npc.fungome.male.tail"), ), ), }) diff --git a/assets/voxygen/voxel/dragon_center_manifest.ron b/assets/voxygen/voxel/dragon_center_manifest.ron index 3414c90782..953e6bf35a 100644 --- a/assets/voxygen/voxel/dragon_center_manifest.ron +++ b/assets/voxygen/voxel/dragon_center_manifest.ron @@ -32,31 +32,31 @@ (Reddragon, Female): ( upper: ( offset: (-6.5, -2.0, -6.0), - center: ("npc.reddragon.female.head_upper"), + center: ("npc.reddragon.male.head_upper"), ), lower: ( offset: (-2.5, -2.0, -5.0), - center: ("npc.reddragon.female.head_lower"), + center: ("npc.reddragon.male.head_lower"), ), jaw: ( offset: (-3.5, -2.0, -1.5), - center: ("npc.reddragon.female.jaw"), + center: ("npc.reddragon.male.jaw"), ), chest_front: ( offset: (-6.5, -6.0, -7.5), - center: ("npc.reddragon.female.chest_front"), + center: ("npc.reddragon.male.chest_front"), ), chest_rear: ( offset: (-6.5, -7.0, -7.0), - center: ("npc.reddragon.female.chest_rear"), + center: ("npc.reddragon.male.chest_rear"), ), tail_front: ( offset: (-2.5, -12.0, -3.5), - center: ("npc.reddragon.female.tail_front"), + center: ("npc.reddragon.male.tail_front"), ), tail_rear: ( offset: (-3.5, -16.0, -3.0), - center: ("npc.reddragon.female.tail_rear"), + center: ("npc.reddragon.male.tail_rear"), ) ), }) diff --git a/assets/voxygen/voxel/dragon_lateral_manifest.ron b/assets/voxygen/voxel/dragon_lateral_manifest.ron index 26a48652e1..d7d7319368 100644 --- a/assets/voxygen/voxel/dragon_lateral_manifest.ron +++ b/assets/voxygen/voxel/dragon_lateral_manifest.ron @@ -36,35 +36,35 @@ (Reddragon, Female): ( wing_in_l: ( offset: (-24.0, -3.0, 0.0), - lateral: ("npc.reddragon.female.wing_in_l"), + lateral: ("npc.reddragon.male.wing_in_l"), ), wing_in_r: ( offset: (0.0, -3.0, 0.0), - lateral: ("npc.reddragon.female.wing_in_r"), + lateral: ("npc.reddragon.male.wing_in_r"), ), wing_out_l: ( offset: (-29.0, -3.0, -4.0), - lateral: ("npc.reddragon.female.wing_out_l"), + lateral: ("npc.reddragon.male.wing_out_l"), ), wing_out_r: ( offset: (0.0, -3.0, -4.0), - lateral: ("npc.reddragon.female.wing_out_r"), + lateral: ("npc.reddragon.male.wing_out_r"), ), foot_fl: ( offset: (-5.5, -4.0, -1.5), - lateral: ("npc.reddragon.female.foot_fl"), + lateral: ("npc.reddragon.male.foot_fl"), ), foot_fr: ( offset: (-5.5, -4.0, -1.5), - lateral: ("npc.reddragon.female.foot_fr"), + lateral: ("npc.reddragon.male.foot_fr"), ), foot_bl: ( offset: (-5.5, -4.0, -3.0), - lateral: ("npc.reddragon.female.foot_bl"), + lateral: ("npc.reddragon.male.foot_bl"), ), foot_br: ( offset: (-5.5, -4.0, -3.0), - lateral: ("npc.reddragon.female.foot_br"), + lateral: ("npc.reddragon.male.foot_br"), ) ), }) \ No newline at end of file diff --git a/assets/voxygen/voxel/golem_center_manifest.ron b/assets/voxygen/voxel/golem_center_manifest.ron index 1a810d86d2..2fe084ca44 100644 --- a/assets/voxygen/voxel/golem_center_manifest.ron +++ b/assets/voxygen/voxel/golem_center_manifest.ron @@ -12,11 +12,11 @@ (StoneGolem, Female): ( head: ( offset: (-5.0, -5.5, -7.5), - center: ("npc.stonegolem.female.head"), + center: ("npc.stonegolem.male.head"), ), torso_upper: ( offset: (-6.0, -3.5, -10.0), - center: ("npc.stonegolem.female.torso_upper"), + center: ("npc.stonegolem.male.torso_upper"), ), ), }) diff --git a/assets/voxygen/voxel/golem_lateral_manifest.ron b/assets/voxygen/voxel/golem_lateral_manifest.ron index f0204e2d68..5945b66c37 100644 --- a/assets/voxygen/voxel/golem_lateral_manifest.ron +++ b/assets/voxygen/voxel/golem_lateral_manifest.ron @@ -40,31 +40,31 @@ ), shoulder_r: ( offset: (-4.5, -4.0, -5.0), - lateral: ("npc.stonegolem.female.shoulder_r"), + lateral: ("npc.stonegolem.male.shoulder_r"), ), hand_l: ( offset: (-3.0, -3.5, -14.0), - lateral: ("npc.stonegolem.female.hand_l"), + lateral: ("npc.stonegolem.male.hand_l"), ), hand_r: ( offset: (-3.0, -3.5, -14.0), - lateral: ("npc.stonegolem.female.hand_r"), + lateral: ("npc.stonegolem.male.hand_r"), ), leg_l: ( offset: (-2.5, -2.5, -6.0), - lateral: ("npc.stonegolem.female.leg_l"), + lateral: ("npc.stonegolem.male.leg_l"), ), leg_r: ( offset: (-2.5, -2.5, -6.0), - lateral: ("npc.stonegolem.female.leg_r"), + lateral: ("npc.stonegolem.male.leg_r"), ), foot_l: ( offset: (-3.0, -3.5, -10.5), - lateral: ("npc.stonegolem.female.foot_l"), + lateral: ("npc.stonegolem.male.foot_l"), ), foot_r: ( offset: (-3.0, -3.5, -10.5), - lateral: ("npc.stonegolem.female.foot_r"), + lateral: ("npc.stonegolem.male.foot_r"), ) ), }) diff --git a/assets/voxygen/voxel/npc/alligator/female/chest.vox b/assets/voxygen/voxel/npc/alligator/female/chest.vox deleted file mode 100644 index 98149f48cc6007b371eeebbd700bc4e603e9ebc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4448 zcma)W{!!uH1W)M$vNH{Gfkoq8*9=SlUQP!RO5wOlzK>QZ74y* zp`{)xreaOg5G}SwTY`vaRg%!s2OElrAR@L8g(4!Q^tBJA^lkOGM+Bjk_Q0RD_u6Z( z^bdgywrHDO>IJ+ehlyKd;au5Vq(_frE(g&yjPMo*iLo{rrxh+RL3 z9p9R+p0-`q&=>aG;_>AN1>1rycl0Q+o|@2RY;)10(D4J$-hiD4fju7NMh_i43^s=S z4t^2X4tijFNbDRk7Ts(DxV{0ln7;2gdg%s^8ra5BGsdN^VN<9}v4g}oGfs_xo9(OW zcT%&eBi|l-dW^f+kzelB`ncBg>>#k7JIEfsLBM|?Zt9tF=(sje%LKQG@7TeA31dec zEcFWP^B|#5#4P0I$sw`dF*fKO^NhV`Zo9VcI$<0^V(jrzI0p%zq3g#UXyzGTy4DG} z#*bsor}i2dnTLk>a0)#;Rvp70H*S!gxkK-%iK#Zk_Q=9|DQ@gokHC^!(}2QWe7agU zdTyw%VSlNx?g3do|&0T7_SQUrX+#YsQ9kjnu@~ znY)nmFemO6W0N==nY)J6=xpY_K&H%nOBLM9#F+;H*u)!3F?8^`R&4kXqSJd*Z( zt9jEj@4OCeF!agzK?2rL_elSJXj7!_0eIFN`U=K2fXKUQ1MqF~VUS|zM_b|hA<}== z1ABd-|DHJrjyXPD1wLYhow8%2 zxsw{7z&qZSK>s8C4*-;Oc134R%* zz#JqvJK|<|1f&Ng(tpGIsCl12AeVq$tT7C4A+RBgjWPXfI9I;%6~(lU>_=8WER*BBe>P{?1iC#qUk?yTWk#(Bx~yx`mG+H1ZEoEOVD*Ba3W!yZSU z3^5(Zf%vBO6Tg)&=f}axS9|sbSAEkL^a1V#K7~AV;Euy5;VV>bDFe z+#E3Qv)mB}4EM!yo*ie_BP}^Q`sRpdsilRxtDp~dQg><$XG`rI=fZH0EO68(N4^1( z-z$;ddmsljZ35p3uZG5}>Fkh>xy8;hH>?}J9qhC0OYHHQZyHGKv+Q^1TmYVL8sixF z-Ne{3PF{@)vIKsAF%FjBZTPp2-*tTRlI3?7aS|~sv62SpEmAvt_-fDZJW!m$Ki{qi zf4*6aW8n89JUnn9l1CtpM>-IR6>2Q!|zrafZ^qCp2d@jY=IT)ZVF9HJ#J z5H#z+0sfB|2E`mWkZNw^9~E}M;oDX2_zE?SGT8E)oi#(GWZNNMj#>_qIZ~ek`isb6wh7B8Jetup)JgVe|pT8lasej2orl#cV z*_~4VUfOnAZrc7?x$BONGJkNpoIbowP9MEXPCt3StUvuNS+rt_beFW!T{2< z^Ge=&mH8$m&uvli>zkFl|8*sETa`SpSILpN#q!8kl^mZ_a_0sm2RAEu3jMC}GMU>l zlta5#%kg`zl=(gD<@mkV%h^Z2B7ZwMCzp&C%QaW7lI@>gE%)qQFZ*v)vT%oz6W>wt z`V&gltz0JCW-pN2*Ih0LHeV%sXBW%dc)2{j^+Gvy=M}Q$nl-ZGny2N7b<|_yB02Jd z{c_XRtL2Wpo8`<4kIK<+4rTtf<G5FB`>aCEi*GSa_{J%?6~1IQ45FU z+ym#znI}K$;dhsDc2=&G?_GFIuHAT4?tbhMIq%LT^3Ja=lr#I5%F*-B|Bw1tyXx!K z-EYf*dqp06@_AYKKBd50!{YK>jKA uJtZIf<|BR|aK8T6I#+OV&ps)iz3q1ScwQGj9)FtrG~Flnd~*CLw(8$KQ=t+7 diff --git a/assets/voxygen/voxel/npc/alligator/female/foot_bl.vox b/assets/voxygen/voxel/npc/alligator/female/foot_bl.vox deleted file mode 100644 index 5a4bf21425bc0cdbeb3a64f42e48f66558deb48a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1340 zcma)5ZA_b06h8Ofw=EGt+P4%6Sl}&eZTEqN32fkG0%08=rbFt+SDYD<2B#AYVWiQx z&Si`+ur>uV9iSo0vJ5u@jm9677_ux`mIeJ`V#u-><6nOmvwx4LEK5kl=uMvYIbZjj zd(L}r=+$FI2_kAe6lh~2kBO)~(AoHGO5v5pU=wMKW5+uKkC{{JrPN2zkVPq*&}c|8 zEK=DlLg^MIt)ys3BWY74b+eMX6w;=#&&)9WvMH9O z6uM$aBC90H;20rnnpC>toQn4<61pZO=S}IUyi(VMw3;~Hq?FaHI99Ta&t*~^$2Bcd z8Wtf9lN5$Yh+;F#X0~Zk6iZ2NDacUFipbD}a4SJ>jYRR$rdJMa4ujjTuC7KT62YSw z;qVu0aN8f_PrDtftF1__8-W$HHNSupJvE37H)CZifR)$@tW2Lq)ylibD#$@bjujbB zJG`^|L5(KRz%!tE8)(getX4wKDMG;%VfRf!+5jOVO3+z%Tqj(dY(ab`h|6;wxR`t% z4G}^xPIz;XaOMH;4d%fWHc%4rp>nwn`Ga;C6M6706vBUJCvv(8B_DC_1lQQ(2EE4h zN7F#@Owf`Y`Mxpi_J`r#GXfkbMw|#q#@nqf{Kgy~AuN7MSiMTPdyDlt!h9p)o1=t{ zw+P`T!bpfP6?WkK8-zrd&|6IyZXnFCJ-9Cq;YI_aK@Spr<%o1tA<_^DwKzLt1CYnmI+*^jm zT0aVEFJrQj=TVb|sgDQH)^q?pp#~(cT|n#|1Cg$Lq^GANSGS^UryG8+fy%u*aG>0a zsdEKboHOwAT^}~?@51L?b9sSq?>oY;KN3d69?V25uy&&!fBe#p!SO6iT(jfW11C06 zh)$lzX8$L7F2jU+@4xqds$~bF@AV;ZZWs$!#y9(ShyVZg zUr|wkPpW27=ATE+*jYHEPTcvD@KYDzy2k^r*NcAlFj@{Tfuf_x9?V8^`pG~1Adl~k z%Y_e1<2YCo!^!dU$nDL+{jW=r>~tblRP>Mer{Yq%j5kP4S`~|g6c=+v;^F8GI^j+ctHxJFH~zLG}CwMgO` zrF4>z4k?9G3gHk!+6DU*bDbo+PLN$=%YECG5O$5ZBH=jF^xDCVVQ~MowY7-FVtAY& z9J;a!r|Aj)G?}on(u&Nw8BC+C`6V3h^&=K-MtU@ebmBPDQ>RdqejoWI7UWv=$SpF# zJ+lwgr~?f?2bwd0R?Wz7C0I@pN+t=rZV|Ev3Au5Ck-7N>;le}~@0QVEvJ7 zP%;m+XhN}P6uZ1(ICl>NhwVrbVVUu6s|~-gO%4+lJ}0bPBiy^qJV2OhBz$v(u>KAq z+(a1eBus|QIQJGI6(;o65~2-+Y4(TqS`lt^U?k*1s=o@cjvAx}>alYEP5eF|#!jah zbycNke$|Ek&Ke9JCd7LQGanM}Ob~oFD}tVK^!WB5(y$Mm9y7vwi!t6*fu+7mG}d`h zQg;axKAwj^ACsRBqOEB^dOI7ieEmEU?>P|bE=EpH4hoHWRPJ!X>vq7mXFK*+xiNXR z1Pikc{Cv-Y^#?m~nKhT@3HQGv{Q4tdB<#X;yc(-F>+#1g?TC!!WBj@aw;vW^9i`~v zd2IB5g69$?)Vu$^|C24-5&xhcsk2ecUme@%-&XhnJdOf*O7q}%=b@uE7aiXJ-+y&= zH9o7EL8W&N{?RiiiWlMTmxQ0X2{&9WxZQ3HIHPDevbDUoGL{;t%-Z`!&3L zY7_^~%%J(|9kkzCLm&{qV*)6ffxn>E2#>yfTHhnSU;p);pWwzj+iYjMd+>~BK0e!T PWw-KeKC^khMJ)XdD={G8 diff --git a/assets/voxygen/voxel/npc/alligator/female/foot_fl.vox b/assets/voxygen/voxel/npc/alligator/female/foot_fl.vox deleted file mode 100644 index 2477f25a7485f18bcbe238e212f9be1620e82598..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1300 zcma)*ZAhJE7{{;YzMo@~X`Yw)-cird&2#pay3|cst|{)!mvE+SPDhK4JlJY!h?7In z&Kh&#G?SyTnzN8G#%voZMIV;L7=tmy`VfSS5z*H^MD*>~eOv<}qaOJ4zpt13f8E#h z+;`i{2lHYg(zqwoWJtsz(h_Q~eP-1VdCG7cw!y(e?V+W={iSi%(wksumz5yB+8{x+ zTUnM{TiR)KdX-X6r44M$t+eG-DjriVEy`sp?Q~e$t+lb0aydjhEt6v@aaqdbI>c?+ z23lO&Auii!+S)R?+U+p9w%KEgc4=)ijedfqd_7L?S#I6ZU;}2fyb}e)o7-Tx=x%T@TIE zRR26jJ1dFw)iXaBVt(u>^Ajg2pMRUwoOF`Yog`;^2u$rnY8^=T)5x?7xsyg}qmX_= z$Qc#3+z=AGh2*H$AeCC9}6V3vbv*K_p1o zTs7G}9(==D1ZQ$7zPpL^4x!)!qa8Cfw)&A*O#OjGWIP4A_NP%*l1u%IMI3J{r+dE;?G&co6>g6R zW!@}8!2&wUw$W3wleS z41|lAjFxie`d)tfsfC`QREDp5xVe@v*cK*AVrTl8 zxiqxezc=Gqg1!v|b5p1cq|jQCOl$G~@4vLPl#j}%*j_wM<=|;DqnX_OT=?OzaIL6_ zKp;SuzmJA}w~*)n8+tadF!A^wzL#b0j@Qfkh2!k59OKx~Su&2K^We)u7TPlz%gg)6 z{Ns6XtwSyM>FI(~6IY0SF~@~l-|@+}%e-)Mklm-JsK0cZmK)1dS6A~$KoSl31HCLf p{QB|v9-900UvcvUSKrxMzI?cYCw4seWW64*=UcmH?RuSD`3qFgAISg! diff --git a/assets/voxygen/voxel/npc/alligator/female/foot_fr.vox b/assets/voxygen/voxel/npc/alligator/female/foot_fr.vox deleted file mode 100644 index 2b83989fe8901ad23949f0c6055eebdc69e95078..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1304 zcma)*eMsG96vxl+`Ted*rg>j{H(&16&3pG^S54iNdnUnzRzjCejjUuYD#;v^@1UEUk|oYY#k#I<=H&#F%ng4AW_gk<+Gz zi0Kri?3Q6TVr<%Hm<~%Rr)6rNWjHKTLm76{P)<{nT`ALH=or(~T*ui=!)a5ZVL0_U zoHk3t6uW5?yV7-(sdJ+_x`tB9p>#bn>eG80Vmic7ZV}}%G?XZ}p}A#Au4#$eGz^br zYFim@OKGm548yH7SBA_cj8NZ-@QoC8@)Cb3aS zIVoh03%hR!v3){(Sa52dd`-AG)<9&snM<>+TwHmMnvl>O5nf*q&fM3z&FN$X-QDt%Ad44+0y-lqA1t>)y>;M1& diff --git a/assets/voxygen/voxel/npc/alligator/female/head_lower.vox b/assets/voxygen/voxel/npc/alligator/female/head_lower.vox deleted file mode 100644 index 968d538976d7b8d4794407b00a0ddd3559feaf58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2136 zcma)7ZD^Hc7`~tT`FJJMJUer9(>Bk0)V7t{^fWg&YUPH`uUNLF^Mec}56iLL)+n{9pLkc2IP%tIO^CbO7Uf-tx=dop zDSMLl)N!$Ii1m!wPnlD7*}ytWE?DZZ&L*zJB`)i&ZSpSWZ8k7($U9*^?m^B*p1MkF z*e|HfTJ~1)1s5Feo1nI`hZ^cqBjMahd^_%;tP#c%<5?4G*HJ%sO? z5SDt5u?Ao85!90Ldx&ok3f_f+(kiV@Y|b0a`yhE2B()KV=7O_%XEdjby(i}-bwN`# z$}^g`jMYodJINWHCpRrXht3(R@e2lC1t zf-^ZMHg&v%U`-m-q&|sruov^nI;FO!wajVc7+Y%kz*^2|X_d2kPtG$Yl>I%m9s65C zok@k-iE7SJ-*9&y=OU~nAHf}b1m|?hJZDk*%D3?GJ-BaRolraB3?a~Z?no=_DZGm( zmOl2V{QdW#v9S>Y0|WSRNU-dq%gC4hf!|6?ap}@3#LwxDQLJ9^AU1Do#z6lHjPB{c z=+I`29^8RNqc32}jB-pW&tOtTDQb^2LE1f}_b$k>63FE;Oj#u;-!7POK=8m>!GvDH zq(MQJaoH)s+xu5y_)sT4INF7`$L>YjfS_|&@XQ&(uIsGrtVC5Y#jJrkG+b!K^uAK0 z`zld)yc+di--q%If?2P!_XsuS<{?i~fA<8)@MOsOQcSPgg9qx1$j{vgEYD$B1Y^W= ztE%ub?eI>)nfC;jP6)1?W85k@)-L$$3Bk>01;wR;o!x>1#WKA4v|ywt*wiTKZxbA1 zzOzt?Vtb0+oi!NQx&Q-Ri!icn2`;_$6n;5g#Qpg)v@EE`ibra&wR;hImkS0r3XZ%a zxVT@?P*sVJx>?xJFb{ogP3W#GL$NR&`l0UxU8AQ?T!3Db8K5z)e)6hxakQ{}$d$zhFu2 zzwf_&_v85Cz2o~=O}htm=~UEJPeya?WOOx7LRbC&-+$r4g?M+-5zMbY zhUPu5p<=KCUw+KO$};mYq2fgkCn^LLk4$aYTs0h9sKJJU#{eLr>Y9C%pS(W z%|qC-_f1UORE}$(&c;|z1%_tM{Kx&rbFtUDHCNHM4cK+?1O`93fOpP+h4;U_frobN z!Nac|!HUBdvF7Xzw6?b5M*(C4f!|?o2!8ndulau9_v^oS{)-;}o!xGauHS%LaU^f~ Qcd~cN-ClFMe}}X3CvcEM00000 diff --git a/assets/voxygen/voxel/npc/alligator/female/head_upper.vox b/assets/voxygen/voxel/npc/alligator/female/head_upper.vox deleted file mode 100644 index 6362ebce90cb93a3f4422d2e3ef8afc2d62a4bc3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2376 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 V*uL}0`C0rd?dhDS&(DaJzX8P&H}wDj diff --git a/assets/voxygen/voxel/npc/alligator/female/tail_front.vox b/assets/voxygen/voxel/npc/alligator/female/tail_front.vox deleted file mode 100644 index 38226f9fc9c4f50fb8a03c1f665082013dd1d899..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2288 zcma)8YlxI(6h7~HFW=03v*ygV?z*e3&WzUXbg|WG-CC(NU2O9bo4J)YDv})Ry2N6# z6txwZn6@pe(M2sJ!n6{1Df&?o5-#tM<}QI6O%?3LA`(DvlO$Bbi* zDB_)GKjL!492gTKEhuwC%-O9bF72H)Mej^vi7${#39PTIV@)AqEpN1_c`XQMu%d}o zQ&gjg<~g%y(Ga7OgFrrnJ*_c`BW6`o2pP`Ko>qw?Lm>~=61!&}@kQ(v*vmR%=NwA@ zY>t|Ige>bAVhilWSpu~uXX@zVypDAp_w3csPYjVJfxP)F<2-Hd$Z=Mm)*_G2GbflN z;=Ln}J`j73KJphL#%3tQ5Xgy%xf^0PG5I5Q&wFc`OI}TS&z%@@>o}Lq+oCewq;oUJ zat51Axkz`SiD7-q-i9+;?q2z3ly5;&_Jn6xhUVIxy8jy1A8XIYmV_zZWG3i&a- zmvoP5FUELJ&6ImPD_3@ zGW>3^COK5jVabhhe}>vdoQq=khHao7=p)Bgq@;PNSc=P=iqB9xsdy(Pmy@!_QZliW zO^&|2l)RU+r|q(|vr-9JDZ5z9AkDZ>;l&obO=dxnTCN^cu`8CB6r`Sx{ zrTxW}RGDXqiSrxQG^}HZ!Lyc0YsXqr;&9V*nbIw*ZdfjV{cd%4cVlE^1V4-kZhZ9& zDviJ6*TzPiKD`#{=Xn1l)~&t@cWvpx$na`R?(WCr*j<=B@DP?xK8Trfo6*o*KtoF- zIu2a}>GO~sImnSB6qZTeQPj&Z~!kK-hk(( zF2>3c!N9oS?h}GXzhv$}E86O1EEuVx>r^l13^k&>w-wc+^U(R}rD)zPSnvdEPq4=o z709jZzbgY7p8+}9h&k2WxV*ED$`w0-n@SiL!4&1bwQcx`dVHtg#EXK{ZwfwpkLO;& zkv_ruw+PPNE2ys$>>L#AuQ%bDI|UPU!PaiU@Jhi!`Uh&QsP~nzYoHwy+ZJPF!%|Fa zUxCxl-iDu#)^S;-3CkAG!|LnXv2AcEcHATw-6A;jh~T4rg08k!^j8;PbJvv^T6qly zt4*la=3wutg*df!5&D*OV(zk+v9F7K^vuNmr*~l8s%x=ja3!YRdKP03lrget4&pe* z?4*E2msZf(QAXF5m*CpP9oYZWT%0&u#y6i;aqf%D@CtjLIx6`5L&1+<33k=nad31A z&KzHXU%p+Bp*=IP_pL^}_hk#tVIDS;k7@k(ke6Y>ijIHBfB%|GF#7N|OguG=qp$6m z#@{ykB2>$>P@OjeJsmT!p}PSaI{!cZB}W6mYx+f1|^=ltt{kvz;+uMsD z1dt2`zrmgreE-3p^L@|v^oEO2J6|8(v>AV&)62i@3+W5_&d)jDzCf(}0aL3+ A!2kdN diff --git a/assets/voxygen/voxel/npc/alligator/female/tail_rear.vox b/assets/voxygen/voxel/npc/alligator/female/tail_rear.vox deleted file mode 100644 index 66a171e4ef7c227f9cd22f35e1528615cb2c2756..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1320 zcma)*ZAhJE7{{;Yc|3Z`G+&PIc68_H<~e(@qbGG!mP^GsU&5KT`9_OL9&EKF#L1y( zXN@^=n#s{vO)X@MG229?=);nbF&JZ5AA*oED*D=oh`#;0j$NKUxZ7Ejl81yhwR8?JhJE@%R9^-UjX;sK{&F5 zNfB0*HyfS&syaC+EPO1iUKQ@%QoB-^s}a6BDr~$V1ZsuBHeo!F%K6uXa6srT69%e< zY4tbzGYQnV7-}vc+*3rbwUlsg6{{Cs<+u3&yWOc&6y;F=VgWsErSu&ULS4elyTa`; zp~RU6nPjwm(9Ygiy!ZL*|@)(Pc`S#ym0Ru;pgv# zp+EuCp<>ouE34O7|rN!^~bt)?>c_biqg+H;@g@<21 n{=SELzy51opWx;@+p4o2ojkE4i%;g;>2|)Yd$!KEiIu+rh diff --git a/assets/voxygen/voxel/npc/asp/female/chest.vox b/assets/voxygen/voxel/npc/asp/female/chest.vox deleted file mode 100644 index 6ed1375ddccd12f67bc3f900097788cd87ff5df3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3556 zcmai0Ym8l072bP2_TJ~5dux?;pzqoTbOr>b#kSargQbD{D5fA4$|K(Q9STYsQcE+z zK$TbtQk&Z1gA_D`=oL`XHi$ov7(z%0GXgP2LkLmhFB5(l|1G~Wh!WGpo2;z;SkG^* zwa?x2g_~EOaL(~edG0HxktZG~^u$v~oQ}kCmpymb zNsowIlYBwSGNPZ9zb3~p2xg^L3 zC&QR&Phms73>ET$T`g4IT*|a9?CL@?f z;XAHE!^pm$$hQ+>k3{_le}QxuytG2$8tVOQsQ5Zps4fvXA!nZhJJ=MWnlEHX72kBZ z41D40R0ZBCLe9;3`0()ItK4FuW?)};x$i{8sm&rjAy^$Q7tjg@6O@t2&A#Epfi7&{f2)4slee$%scQzDD9_1zf7sQsAJf9RX+d z4X$!etG+2!#0Xzh(10r3p{fkH^c}(|01KZ3mx6n~f*y(`UL}Uyc7=3P;hIu}Q9?Zl zIszLJ{xqdgEd8O5RMx*jO{t)#DwqM}B*;a8w;%_pmVM`te_1bJ27LzR3|U4jLA1xH z7sDPEj2cQmXuu4)MpmHD3+-|N*^2a1xd*Np_EezGc{wZ4MGYeEViob>J`}!@Dl$w3 za8#PhP~WU5=eVp5_XYSw_zdWoFt3X}VvE2a!gkEjx4>M`a|xKGf_f?Uy$tot3g1&; zqR2rJgCcLOpf*+XDf9#ML!kpkT~lcjIY#)8McL!7#=t9~HmO3u*Q2L^32{RT=};Lv z>MccSQ@UEfF4h8E1h@#~sGNf;FoMm1xRkg_nV*g5vxxY(yoX$>BIb&3vqNq;RLq*$B!!Uw}7-1*$ zTt=Dmp;$~|d1UP>a-y7J50u58pnp^5 z`&o|r9GK)%Pi5bOXL$cYu5E?ymz6W^#4)C38FXY_Ryo_JKOZz$y z?4{hZ)HRQzz)~aF<9SAX4k;T2tR-Y4(KHf)j>uiC zvBeVFggGY6x8h!Luec8yI}#wPz)lcPh#l4ddDK6k7tuq4?+D>rm;&&CtU^{HEAS`4 zN=n>OXA#ss#vwzGQFDsu=ZxkwquC%d8wK?**T7J**FobH+VEj!RjAjjXIa*CHrjO(4Zu63;0pfFg)N1QOUxiuW;qBHrzcyD3R8L#|1< z8!=BBxTf%@u(y2oF!wTu2~_Wp}zzgueM@0r>eyS{O` zwQk>LGY1-W=19%X9BbK`llRz`GhelZQ)9N|%d2hm{TJK#sVmLxRCD`sb5DN4+$&?Y zaF?_5?{>EQsIyCc;VkWQRz2+OJnY9t&aT*1SpDvWw)cVa?AvEo*flfGb{}`ve%9H2 zbI{$r)K*Tfv2`;Ow)ymwE!)4y);zM*CZ1YlldoQ6=ilaR-2(m5VMp)TXb;^vVJD`Y-Mhotfoq&Swg<6ZvDBt_uCYVAH`s~Z zMw_{5i=7zmu$RB}CHvb`({}ONG26azl{G%M!FqeP*uJ{6!?!y-b+5CR9(A^C;)t#N z)Iqysa@tm{IA-f6kJv>kzGn;9K5om$XKd&8N&DgU<@V@i;IVC?9sTA$d;P`7?C*bk z&i?Y&&+OP&*4WIg%d990yWqT!+hxlZ+T{2e+kEMT_L+_2cJv#|?b#>R*dJb-uy@|L z*nR|`r=N26`mde+`7LLMrZ?DQhd0?P&+M@G|8%46e|Vui^3z53%ef`?j;*r2z~dnD zJlX{=2b}E~cXr3tbLW3|^TPk+|MP>p=JQ{9!N+W3&0?EawZOKGFR+`oR_&(A|K`7W zdBPxb}cGuY2Cy;X}4~|6)6P@`D=QzZAW*a;1HJ{c*c$+cE1t{E%I6 z$NBcgbL;Kw-X(Ty^=kWH|D{}M>y{f|xBWx2`%XS>hktU~zVrNV?fbuZ(>{IA5xeTa zQ+DsyrtIVo?zE|?DSOYExdgI*7{BT4-CunW-@E9q|96iOoS(Cg@+WS+%|6_hmmjXr Q#m{y2QJs&j&mrsn1@u~Ea{vGU diff --git a/assets/voxygen/voxel/npc/asp/female/foot_bl.vox b/assets/voxygen/voxel/npc/asp/female/foot_bl.vox deleted file mode 100644 index 53ed1cfe4305bd193930d74f0c880ba33e64ed29..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1348 zcmaize@xV69LGP;_s4NX+7)p8IDU12a;GT=1Q?`e$P^J9lBD=!aol-#GSV?e$Zj^J zT;xn*1op$BHRsC2V!+J)FxQ-ObI#PYR&&l(>#sKdYW?@>Ih@5BTc7Q{&*$@gp3n37 z@jOr4OIr#@MWlIk<3_Ed%ob^FY;SlX>1cUOLsOEXv1My}qbO}?S*2kaX4DchVk$Lt>U#QCr!amSOF(4J&FXD`qRJ!%}wGk%VD~Or;{G zp+cr%gl(}x%91^%vLc2uH76QcD>G^+BVrpmMyyVUvZ4;#)Q%@sT+_;*B%x)ofNLc!%;Or6> z3@Ts zZ1a$sno3sMQ!Mwm2>85IEnCF% zAE@BUxq2S_+)B?87e_x!=c}99+@*kaJ&!)!=TKPBrB|r;2|H`%@4tJ)qJR4TqOW3)md^xBsgA92)(_Y_D2I&zcpq`Q5}TJse$I!qm>?R8&;( zUiCO`cN4XPhsYkt=ISTHoo&L|(o%drAF-ldHmsXO2Kve9$zW#e;T;~x(QhX|pEpWI zSXnzv_{d?hc4l(pdt8tg&*tir+qUz_PcA;P=hO3X Mb7SV(^X!$s0f)CZ7ytkO diff --git a/assets/voxygen/voxel/npc/asp/female/foot_br.vox b/assets/voxygen/voxel/npc/asp/female/foot_br.vox deleted file mode 100644 index 82b0dac80a754afe804a569801b803cdb05e56f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1348 zcmaize@xVM7{{N__s2nzb|oCb@v8%rJ54ztz#u&Xrij?kAjKc+;12F&1Y?Yl-E2y^ z$dSY@upbVsF;}FP17`MzxyGCubEdAfnscsNf3^8n>%UhYbe3yueYR)M^Sqzm&*$@L zdTD3Qn26MGtlg%W6xt#?YMX1GSWxtNOp}HrLDSA%&9$Pmpw9+PmSKi1F@vTu+bm^7 zETv_!Bes~Wwlac-*g;#2c84L_&uTH19kvWBWNNb1f^LN^Wrqx9M-0Ob+e$@jL$%q4 z5i-SUO|YcPR#wQNOpQy(Hq4N%%vOiecEfHn#L}@=*ieq3ZAwdmA;APCtqxHU-EWI6 zs@Hd^qN0i}cS9%U5j-Y5T-h@^WIa7X^_F7h28=2d?YbhIF!`9`a&7N~Z(3dy?@Cr{kN< z#(!lcse6RHLpt}EPHQndZC_pKsZ$+T-Yw$ZWp2r`SiE=80jwJ$bKJVQK7d==&KfvH|btW(uvl1 z7-%S9EL=pav5c`u6_?+Bh2JNmtjcv!S(HuPh62J(Wpr#22KNdRy~3qqg4;Jl?z8=@ z_D9Li93{^`#LCR~aps;N!yBWf($7bg85}Fs`>1d-@>U1)7mxGDPv`jc=I4yQ<{`G* zO;S=4%a=XHTDKFw*F))=6+B<$W#r8a&Ytw}<5eHGudU)^U2}R;nEyuj<)$zYE#UZI zF>`0CxcBo8dX737{w$fVuBUOEY?}2x`t_V6A-$JAp~@@lD_?y6&aEr{ng5Ia`up=| zEq@Z9Ck0>jQYySlX)IqtqyOLeOS96c_2sdrbPYY#>uB=1h?ck+-jvVuzO@t=7xP}( z1TI${6+?$f8%*QMC&I1W!c;*4Uayx(ZXa7WpGO7kY0%1`dz!$W<+_)uPqFNQrD K^QgRtulx-%|2PBy diff --git a/assets/voxygen/voxel/npc/asp/female/foot_fl.vox b/assets/voxygen/voxel/npc/asp/female/foot_fl.vox deleted file mode 100644 index 2731fa2b6cc50d3f7e427c4e12a8be4d5aa8222c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1344 zcmah|ZA_b06h8O8@7oq|SOp5SKv{vUEjU)d(pkh#AX{O~Fa$SX#Fl=JAcPQPq?y^O zi`|05rUFwJHVs)6$COYq=a0DT zBo>e)^2?m{F;0HYnUBk?Pv#WhoPu1TK3U>kNw6eSfXU?H67xx%`8i`DE(t#uKAA!? zV;)(O{9KZPGM9vwf?PmmJfsL#Bq^X`vQI^_SH-wb&E$|ma!{dET=po82h>ans7dk4 zB>7ZK38_i;t4Ikc68Ff&gKAQF)l3!AFqKEc6u*WPkA_sfG@;XkP7^v!=yajeg-#bb zUFZXQUffOcdK<{$a3B(i;6a?Q_uL9fvi|@cUIo6@BW0J|N$hXg3D03CBBL!x#@tB8 zJxERup*A@PtxJdeSBp`6tQ?lvU7#if)SnKz@HA*e2W=}McYshZNvQaopy?-Ui4wAe z*3A=YS~Ji*pheg5ESy>{L}P@|mLPZ+2uE*=wQYJ7g-s}pSYcms!7!W+(}W(@IU{U0 zwj;NPPRyMxd8P{&5W`kqKJNMy%3+i#v00?|B2zycG!|EDL-W4&xWWiAW(9 zrp>rMZ^O+itw^{C7n%rH4iMIYgm7CK#=KTc4prgg5i6#`gpmfqXd_{!Q=GL%k8qO- z<85Y4`Ku7=sKr#M0oUJt1;5UPQC^}$U6m0nFPP!)tVMq_A$piFJ3_d2hG4M9Q1Z+e zDr{jG3*#uY#jw5bJ!nhLp}-PBQ=JVT)D_^2UG&4L#pGN4SiL%f-+s7^pYMK(_-iIa zx(&$4$Ut7!Q>Zj(VY8TE-?0tPRar3kW&sw?oACWjE7oq6<3o{iX^yb^72&75gz>N$ zGtp|STx!6>AKNi}T8oKKvhl_3e5}EUF42!MQRk#j^ktOLU?KE6Hm`qR-?o41|7@&v zz5b%SCt)?^z-r8d(~^k}#};(h{;l6$q=(yDiXQt83^(pVr&Wh=jR6yT%COX1iR$WV zyjwd9ovsDW*a_rE^Ks)N!o6<7yx9zk#ez`DDE94L1VzV@Gn|9v=|^{XOfTL}Q4!uK zOQ7Bvhwt=BmQn{%eFwHkA-T7R|qSL=_qPtVmX*VsDScjx(@^PF>@ zbDrmEdT~?!u!z*JtX;2_EV4x!Yny8xOA#$;8m_;wX>)V!pDCl36&h|swYd#xbxhSh z!<06csbVv2+2yiSi(^X6WlGd#OT;nER<|utwX zyRFQ)sqBa;cGMB0)lzngDOS`HTgRGhj+mM|dXEz^loK_S9Wx{ar(J2TG*_A{%|&z3 zTr?NWH>`ePrC9gJAQcrAB$G+*4hn0IU8W%Y54d*$zRe;fXKE){U$>N&ZIvXu>X_)O zWn!>}iILruPwc`I_LBKZKKc6=5*S^M)YwSJOytCq$Yn2{dSUKPA$ver^ts^f5N7oX zb2Rs!7M9hgv3942=KXUxG?~Myq|h)Vw4N3A-q5iPS>z`C6efd|jfe4drsMC=B6u>7 z(3J(u-6|CB*SUv+!16rA?&FZx>gBCoAgWDo3qFLe1A2_)b)jYsB4a&6s~I*=($s#m3OT{g>rtQ5!5|YuREtS1qS0=q0htNB`;~#!|EIKxS_yS3VMMZxK!x7ZV5sh!=FRZp|3d+e1cY29qNX?r>k0eml9jyk0cK zipoJEhYvDu`&_P{D`K)alfnFa{#!q_FO_R^<25?tuy^DXy&sSB_SiSP_w`Ml+1{)PAd*`xaSmaRPGDd)rWbb315 MqcM-Jr`aoi0UFgg1poj5 diff --git a/assets/voxygen/voxel/npc/asp/female/head_lower.vox b/assets/voxygen/voxel/npc/asp/female/head_lower.vox deleted file mode 100644 index 9d035e3c00a64a96c5ef0d661b86e28343aedb6c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2272 zcmai0eQe!T89u-Bo{!(hy`{RXTidNI?KavD8Qo@A?8M^M!0l}@V{Sq>7Vl^8WtlF` zGRJa*fhw_*No{I76f)2(M6V28)&=noBxWHb3#~wm(JX|h@h=npGXD4Y+#$M{CH|5p z@B5x}p7-;dn|tU>4|gppr6%snJV>Fgg-RXBOpc}+2ET@M#BIdGk4$EsH&pm-4Y(eJ zbxSxE)h*#vLYdT!3MyU&d9mq|CcJIRIonjXgt1Ne$fk>-O&45{B0p7k0eOTAV#=73 z{s^bjbxSxQmoTO&FD6|vlFl1R<*lSjMv{t^q#)F_Nf$zs&S^aiqK-ZT}wPUS3Zr&ATHQ~8jwL#~M=Ws$gG zCCV9zm`h9<=e0?dbwiRb5>+(!0?I&QA}ItW#T=rN(Q(1(q^Kn6}-(=mTAF zO0$oeebjjq=%OeoNFY;2N!}Aq3HPNQD#?Wbp$(-ed1a=YGTbxdnw)4;mcZn_7W$Q< z(NZvhl%1Bc)lzcQZ9t!a$vMLEtRWozS#63ouyqsIN+^!~bwx|*#23AGd82*Ki79)Y zGeSQ1LT%Y=OTNunF`Sc|^3=U}`m>C0S-Z=5?KwYR@qsNk?Kvl3c8ul4aUOQcX;%+# za9rI;!>7p$xgqy7*Or0=j2>Zsx+EQjoGsAJBXI{O?+$QdTg zFX3Dh@?+{TbBw7+Ij1Am7Ug1-D#e^<%-KZ}@vcOS5f>uP&gzhMTy&hfm#FM`&NpVS z!-6#CD&dsqguRbTmhpr(-_N*JYRu_i)e=thifzEis%s$7V>ZxPrzy40IFXDM$vR`k ztua||{Fo!G@mXVh#v4bT%UI)RyH#)OiX$vx8hQ|{Si-4*cOl@LOO1J($~eN>RMy+{ zxU=aoYtva{(_9Z%Ea9vlx7KH!b*q+emOdLWX}-Pmm@(v=)VMck=GItCXeVQ0=+iI; zZAUxg8An@ahbCc;an_ocyqNnjIgDqbRYQo0Sqo!R_e4nB(+*9X0@WNH}tof+?A^#cI*i(>ES6_8Sf0;edFcdpFMl1)BQ0qCY8Sem*oMCI_dtzW zsADnIOP_|i+Jfc@h4sf3HqI&B`3r^cm_m9+VGZq;y27rB1Y^gWG5O>geD}&G?5ip4 zUr@+jRCs)q-2H9nsCHv>tsjGzN6V696lNY(IDb;%jb|0w`)ASfnbWv)po-2- z^VmEvi#s;`0L?uwU}Ikmqk9JMqdgn(>>&Fw+>E(zAH%iR&*ATXd=-Cr?`N3*S~qHk z+mR#*Hmvy+wzoH9psyQ)cWuSzcJyKHTN`ol#curJ?S5Q;XB(bp%*z)PuKil!&+jRm zsrKUB%uZZ=WiLMZ(*aCB(~Pq}U5j6?w&FTEG0A?MW}S0I_T`kq-adt+L$|K~`1scU z)c^C-6F2Jb*l-*AyVs$=vkAj}O*lA|#=(LA)<4+MhD`rv92vX|)BEnhq5c+BceUf} z{abMP=yvSfxf9>teI6|>Sq#rUh1Qu?y!B&+_YW)7dwbE>*M~~aDU3gG32NpH)=jU& zm8Fko_(U7;PDcm6xn%+O4$q_b%+uI#bUogAbqlUcwqm}k3;!FxajxO(kptH-T>&0n zdKoi6xs2~!`YoRO&Aa&QiCNtH)Onoz#t4>v_!ve;M)08mR7l_-karb6_|?bxeZc$m j|MvM;;l?|=S-yDq2tKhJo1f^nlDAsBnRBy#i?ixq!%w&# diff --git a/assets/voxygen/voxel/npc/asp/female/head_upper.vox b/assets/voxygen/voxel/npc/asp/female/head_upper.vox deleted file mode 100644 index 7a5388844fdd6222661d3c8c92b3f7b6f3652040..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1976 zcmah|TWpk75T5^B{{_J+ZK3ztQs^!Sw8c_vrNz>~wiHtkgmQ^{-=*P_+8{I=3{;7g zAhoG2UPwVDL{~rwC5R753?U?hAP{3zLWmllOn5TBea;U-8$;q|Co^--H{V>&{A*rV zTRKcc?TdpeSkWhzXjQPY~tB3CtpDDhVjFmp& z3eN8eH{*EX*f=?EhRBz3$n(8(8y2jEV`I{>3BkS;Hfp7c7@?9@s4#aFavhuGQZhb{ zGQX>$+Nz|n zDk_DE^JF8Mb17w#QksMkD&{JiQ9`sTj!~|PNfzbdt%^%+Bf_Y#&?+gEiVCh-3dKFB zq~d(a>ZCF{CXJ3Nt)r4fDIF7%dsR9l*tSBpD#;kB<3j4N5}LV8*wHrQFh(lFye4EA z=Ln7w%;EE5c}^~KTILfbqO@192}z&HxE$;9E(osAXr7DlYS$s7Ou{kDD^0}Vw|2NU z%XPZUDLJpyCN4d0#z@1qH5n^(Li>1Ul#TK7g^blaXOq<0L^RLXa6aCuj4>u`wT7*tdQ!J8rzU&LeNMe3se%33O zKEIgMgYU1dt`6yR8g~Z?%MM>cdG=qxz4O3#`S5-xf@4_GHV>hV^+@k%!&rY1V}l`# zjcmt)v2Dm|%0=GGr6}D!3;xlCpcW14ngBZbBk2(!N+xLt%veS|6O z=Vl1=+b5!ROBOo!Ou<`ci?Ae3=olh|PZD-r=h%*X6sO8CJsm*pnI;r;XQS*uJ_5%| zP<44Grfwii-^1L)goX0Gb__KUj{voLw1#V) zpN~{a8G1V^F&wK#di4SfC!2Bc&6n`|u@q*N=c1vy1Z|C#h^<+Gu2w?dM#5+h;le>e zL7*SyPw&L+suW6!1~I*=A2W;IMOOJ?6#CO>X{f>n4TU&Z%k!wu!oV9{xO)B&{`m0} ze!ck_2Dg?Wy}kewCr-q)DNkT-K^Cg~WvHDq1J73bG4OgJP97=44_5-XeQg##Z*VHuPx3;Ffbh(YUiMP$wI6N z zT$e-Xb^-lxXpOl-u^2G3Kg>1e+?bHM)+**)wf<`JuhxIBK8LedW9!-8dq2*Rgo4 zWWJI|-mxNF<6Dusc%klrn14GWvT5E8qD^&ufe+15#+tRac|ZVRo) zQ+RhSo7$kz7!?jq2}hSyZljHyfP;ddN%@Qidv7X^AsgmIF76u}NpBYlj;p;#gz9U8 zyrk+6CL+;fWIB~_v7HNB(zyG)9qOMZD#Dz?_kjSvDUJrSnHqI+ebUX%D-A?F!udMk z${u0)RUyz=$iP99;hqvs9x)jS2z@m|f2}aqqIxZ}5vX%8*yv>Ba0$WY3Pw6>xc<(| z{5}z&DBntTNiM$aP7b$J&{Z#l_6y^E!nHGk-3*ie%mAC*0dlh=6u84|%zhtB{#mkI zLF%gAd{mvqnR0a=RThTd?qcEU7=QeDnP2aGPUJNQ!8SWdNl9d+JV~+Lg4^YweDemL zD{(RWRu)s|9Q<(8WcgMRAFG-(6T-sR!Y_A(!GM#oP$~15YIyKd6TPP_41Jc$mrI!} zlS`{Qj{!C3@F8_B{X&gP=%`$K{%-$;L@f3$FaL)qJk4okw=e`AA=j*IHYhvszyxR{jPebTnfC diff --git a/assets/voxygen/voxel/npc/asp/female/tail_front.vox b/assets/voxygen/voxel/npc/asp/female/tail_front.vox deleted file mode 100644 index ce1a0256dad0595cabc4b304f36842d588b1d325..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2288 zcmai0ZERdu5uH18-|pM@c7q{_6WdAb+DU6~N>eAnad9XviPie6C=Cg%lSb@%cfH#v z5Lr=3qg7FBsBo)LV;MUIsm$*{zCjaoR?CF zP$X6w-FxTWnK|doJj(~a_+ZDPh>YJed_NcYQz){3cw#7<9QaGoR?+B|2OpXke#vvg zU*3tBSVI$Yu4u}YX6748^XiI0R*M?=hDEOE16LHDjc3QbrGkdiER$*|&7yR}F-Eys zHr-H~cvlEKV^dl(rwvQucsAp^`jY7 ztdka5BZz!aGptL@DoH)!O1qLJ`vhM^?94A2;!iO)^d(Jdq+B(i&qCg3gQ6!kQ=XN% zvsN{}v6OE})=Hi^&4?%RQ$FPio_9XM#k?+O1tkZUyzyGngi|h<(kyk#_(qVkvgU%S zCRjr&Se$COj4!*$s={1q){w|5lJymzvB@Cor<8Ae+9oYcY$4;bJ_;&9 z?1{t568oypcyiOKF_+8wNectk^^9Y!Tu@Z9Kt}5iTc|T58adm{B8oB^l9eFSxKplWgNAW-*}pfxY9J16{ESVj`{1~o?Ee;8+IXm z85z;68}{5QV=PVM-cmARyfbn#l@(9F%eqmYk}*f~85#9C9r4M15@#~vvu;F9#w@AH z{OahZDbL1OWsD|ugf*E@Swk7G%%iN~ayn)rqn6WA$NLBF{lY!+@4s99{r#xd>-b<^ zaNl!R(6#2Dz=y8^zimbGdwF;n_mAF*!ovfopB%;V>@b$+3s_z{j$O-NL(^b0TE5bO zj>op5=iFV8p#X9;g1qo4$dzU^jSJQt6Kt3h-2O8`cvO&^5v=C9xgpp&9%JNK6DA&C zji)Ye#NN7K--4icLGb7bWB0XUQ>_!5>v{BD8bsUl8g!m%MgDv{df&Va>kbPxKhE5X zg59qRq31aE-ZE9jYcot zdUYHNgMt@^1g}0IxHcuI?c0J=#XRPYZ^x65nz4I(J4Qd>jq<@=I65Mjd024ngy8jO1a0|Qbbb01 zZttz3ed9bf_s-(Bjo(94*K^p=Q^(NmUi@J920YV8JqDUE_pPJ2`r29i{SU9;FYo>o z^Iz>m{ZJd?IL7+bpTxGdCiM1nqVJAd@!9P?nEU1iTzI|{zke%_Yj1DG4_WildBN3R z3jX}A;B>7UXJ>Zc%FBE3;UD*7`spT|`Nq@9Xs&dUFXo;Jc@zYC(ts}f;WF8c<+#)(cO)no*q=YPGao7i;$Vq zSUbHImzO^3;bX0wolTqYjV%kfdte@=r=P_7BkSTbE^l2xxfc>I5MYp91Ev?mh6E`nixSwY(VA1V-e2oWR+LD)X5G4P*Yi8q z2BMA9(ozC}0Qbj)-RG9bjQbNFT!rtFG1evT0()z=(R!$iKz|Jj!(JA~T3MLvrDWk% ztR5RlFK3W(JQwHmcBCpC={6%5oWuZL`9$6`fm`Oq$<8R=`E^ya#(<9FCD>Tr=soZ)_pqppbP!*Pal{ zuL<&^K7Y`JjK?5zaSZ3%xwtK!yU*I8`bow`Sk(C5@8?%7#{;R%PUdhu=;r2?TE;!X zg(~67K4JB+;IGSOpv}c-Zvm%{xR~$@M=ON>N@1!|_ga*UzskX2T@Dkz0s;*sOmtOn z{jHbyZN^V-rj7D~bZVZNu z7b{7ul1`JJ$AIQJ+M(ytFH|^%meP&+_w3pH5C6{wYS;LuB|e7B5sxc9hB9Xi4W-dE zxc}u}oR*B&mBqp0t@KrHr_p7@Uu0)wS2pu4`4kow@=nP#Hd_s4!zW1^O5(;x!rf*e zn3IFk>7*;OpFO+hkfA~1`{G%geE1KKC+oYDmd5MZad(U2tsjB10d~^Y+{~y!Z8Op6(rH$H{4qzUE=_{Udlh9_|Z>NrOKK sy)E4P@?n4X^!@rjzkY&i?`*w1-+Yiqw&8rFZzMO`Tc5LD-yl~01{@1ON&o-= diff --git a/assets/voxygen/voxel/npc/axolotl/female/chest.vox b/assets/voxygen/voxel/npc/axolotl/female/chest.vox deleted file mode 100644 index 2e0b0fe9bcab36b433a54a68e5fab099ffae493b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1352 zcmW;K(Ty506h`4|JnZIy7dnV&!6_gc5k>ouL`p=o*#g`GEl@!uw?GTD;1+0s7ABv~ zaAvN5#&-_({Q3Fz@n1xIe|i1k5}&pazhB?K?#95!Fg_sT?eF{Rk`z9lk)P9UgM|E~ zMnc}Ik&qWP5^`1}A#c=3$VrWa9BQO-ectGaEf!>KkPw^QqW_}rqTixV7>99;dOm04 zxf?zhSM#&^$vC;@ZRj1wAy*?IFKQ&@tVSBwXFMSxV)yIYmzP+^YDBE_)14bC3dAGo zPF>#RUEby6wkB_iCU5d4A5*Km%Bw+@SNUjHpq<1#&-h zr_QJI>3lk$smG`D>3lk$&Sxs~>3lk$&ZqO4e}hlw)A@8hozM7dolob}`E)*=54&m7 zoEx9Ur}3Ffz^4&t9@aE&n#^VKV^cIfjZfnWs*%yVUi%{U6=)~E8Rd@7&Hr}CNG!Kd=6B&r8i&F2=GRNYVwDxb<{ZX2J< zr}C+MDxa~Hl~3hU`BXlY&)nX*OJik*%{b(I3ZKHK@F{!>pZOZ_DSQf_!l&?=uLhsO zr|>C6iighEMYCdJaZ?c#KE9CiDSQf_!bgnp#*AGWD>G~ye1cE#2|mFm_?QkkpWqXG zf{&Jv^9eq|C-`^_O+N=1uh;8(xm?!s`MjP^r}cO|u7|^6-S7AAjrb39 Ck!pVc diff --git a/assets/voxygen/voxel/npc/axolotl/female/feet_b.vox b/assets/voxygen/voxel/npc/axolotl/female/feet_b.vox deleted file mode 100644 index c84f6a90749dc3e4b7aad4c04ab9882ecf5b192a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1128 zcmW;K-Hp>g6b8_{XczIYFX;e9bZ{#G1)+TaBp_&^fZIY^NCil@g|v_sriHYS7R;Hk z^Evhx|D4SD_xIQL|03e+$Cq!u;@4xu&zHZSpXY()tvtvZdHwVE<%93JypyMRcz%=z zan`)Ve(2))Nq&6!^f4UFWn0UzZ7E4n&uZ8V{m>8n(9hFa-*#Hx`qs}&OJDkOQ2Nr( z+oeABsZT}feYVhtKJ=l-(a2m|N>cQG7&e1v@C=^8vv@p%XYdT3!L!IbgJbW$pk$4B%$$&)vp+Zw)6SCold9icsy>0!(rR+ L_uFo_b8f_c3kPOa diff --git a/assets/voxygen/voxel/npc/axolotl/female/feet_f.vox b/assets/voxygen/voxel/npc/axolotl/female/feet_f.vox deleted file mode 100644 index c84f6a90749dc3e4b7aad4c04ab9882ecf5b192a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1128 zcmW;K-Hp>g6b8_{XczIYFX;e9bZ{#G1)+TaBp_&^fZIY^NCil@g|v_sriHYS7R;Hk z^Evhx|D4SD_xIQL|03e+$Cq!u;@4xu&zHZSpXY()tvtvZdHwVE<%93JypyMRcz%=z zan`)Ve(2))Nq&6!^f4UFWn0UzZ7E4n&uZ8V{m>8n(9hFa-*#Hx`qs}&OJDkOQ2Nr( z+oeABsZT}feYVhtKJ=l-(a2m|N>cQG7&e1v@C=^8vv@p%XYdT3!L!IbgJbW$pk$4B%$$&)vp+Zw)6SCold9icsy>0!(rR+ L_uFo_b8f_c3kPOa diff --git a/assets/voxygen/voxel/npc/axolotl/female/head.vox b/assets/voxygen/voxel/npc/axolotl/female/head.vox deleted file mode 100644 index 1ea36d69364aa49607351fd0d098bfd8ab846b41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1420 zcmW;K(aqyT6o%nrkL^WD6qF87T9^v{RS^6_fB=n{VbIn~SAr&A^3uz&gFfF8o zv|yfboHt{CK4<35*q?s={N2A1@$=jJFNXMMj`-vK%lG?!;qw9CV8Z7=zr6oAIPv)n zDUG`^jr*xHjr%mYHclz+(wy8&yD1I(gb~x^93!ULIY!K`=iWD^{XCEBY`(!b^l_Uv z?S`!{=?}funyqCVUC-ti^iH$;)*Ow~Vt$O67WIpI<1~lfFn{;a+wXrEb|Z$~V@ylv zvkvCO$=ri+)VD-BEJJ5JEMt7Tq&O^Ta6UTkq=TI~gqlzjYC=t@2{oa{#vSH44Fi7v z;p5x3x%PA2KFx1ML58?T%}K<-P2$uj~5Ln{#$-DrLqpT?&(IiF3h%B!4DWs|r}623t?_Am8lT3e@#%k8f_@Za$oW)0l|Z#vHE}fw4al8TK9x`9vuzch%BS+F zd@7%9`}kBol~3hU`SdNVd@7&Hr}C+M{H<+QB*uPZ$oUjLg-_vA_!K_dH6cWXP z#pK%~(o_@_7llvZvpqIGg-_vA_!K_R!xa~tal&zZyLW*tI diff --git a/assets/voxygen/voxel/npc/axolotl/female/tail.vox b/assets/voxygen/voxel/npc/axolotl/female/tail.vox deleted file mode 100644 index c5905e954a3a178af37ef3d2b7f0a3a1d0cfe058..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1168 zcmXZa+l|^l6b9gfck{*zsUV_-sbC|b2q_mS5z%G~I4$s!0;nL;X@M4KVOpRCT5!G@ z#pbuok1roH{`LL!!{3Pb`f~hc7k{23ejeXGZO0eOlf3)CfBpS-{4z?*d)Yj1wwvdW zWxF^IS)OzfbH6x_?Xu`3=3ckBW}}O-kL{1oA78?A$Fk0)+m@s>QID$IbbZ%%ebSDXnLPD^q~)Z=y5bM){>MadOviV&eM51Pv@CD zp3c*GI#1`BWS-8`c{)$$nSX<)^K_oh(|N{U>pY#O^K_ohLpLR5TRg>6JaY(m3ZOi! z+_>Ci4vQblLGct%@ywy(DW2jfp5mFq$5TATQ#{2phO~H!r+A8|c;+zAkr|q?HqjfO zONuK0Mp5&R+J7;N( z%+QQg&(nAsPvdDkjc2|FJdLOEG@iyYUk#qd(|8(4^U(RaxLI>yb5c_@9v{*3G@i!O zc+@i9m@!LZWQNAd6Fk8aJi!w@E*Cvd@B~lrxTWZMf+u)_$74j#6Fk8aFdi*>Hw+ht z6CcXE+~g`3Im<~7vX`C2L+)~ut6bzPCppMob`lS{%T2Cwk+YoSAbZ)ZkH=%Z-|y?~ gc3ZF4>w39d*7Nzio=&Ira5${{{eIo;cFv9X2ZG0EV*mgE diff --git a/assets/voxygen/voxel/npc/batfox/female/chest.vox b/assets/voxygen/voxel/npc/batfox/female/chest.vox deleted file mode 100644 index 145317c485c3efc70874f304b102b72610ff4ef2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1620 zcmbtTeMsF^7=F*W-}idW%V2oiSf{-yH`nNwK`tRvEj=?CYKRWPm-uF4@ecq4X z`E|w*_@_i9+8Bv(laO7cJ(38g8HdY4JVMxr0|yh43{8V8MJSt!3!yy{Qyz&chs3p2 z#g&0w;zC}#$rEBY7td|zbtlCEQtZi$JDzL!38iYG?QV;qEs z`f2371{T_chjB)8qXtV{d8|>f^PD|to+*dvl{K+`#hNvHP^@3E4{bnO8{YI{VGK1j zwKe%VXQ(+t%^7OO zYcoG5wH(%H+n(ne8MCqK>gr(Dy$QkIi>oN|{fXawKCG-nH~7nuFY#~42xTL;+YkS6 zIfB#mkgyHX>xRrc3R%rYMpTed>9wVw^rvN84h5uwG>lFD>2&_!RG_}@olODbKL=y z7iFWNvJm^8E5*^yTJ*LEQm+W6-w-UH6Vw#sAyQV1!!DK4a{uzI-(zx~vX{?QDKedfc} z+qqar;XnFs3JSXF1Ov^oY5zkVwV3K@!phl~@#}2zfA?QiRfYFzr?InQ2D?U1BR7?c z>z@ej91>hAEk!UGL{HHG_U~PQqy~}IpM|CK_rKwA9^Xzu0p2W`#O_@aI5K($Tf1^_ z>x&XBC2}#rnf-nK=AO|y*nSiJJ;2HHb4Y!zqH~#(!pZ^X?w_=DV6VXx0O6vwbt};h2Z*P43EH DCJsyV diff --git a/assets/voxygen/voxel/npc/batfox/female/foot_bl.vox b/assets/voxygen/voxel/npc/batfox/female/foot_bl.vox deleted file mode 100644 index 5be01ac394abdf431bd6b44d13e998ace9b41d68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1196 zcmb`Ge@N7K7{{OQoq^0PY@TO#Hocv??#`(EF@G%A&grery1S{<@+y&0bA&fa8Mn=T2Sahr< zq{#`xutp5Ah7GeX8DX(Xhhf5^x*-Z9A{ImAhUS^ju@*~2R5uLunkS|gYe)=hxMkPd z^(za|ay2zIOaz3-Bf{>Bixk=Z;;GHX!a@kst_Q#QS7iI`IJ#W8`b+VS*CK&+Nc;t4 z;$>vfPIgGhJ0@%z7Pj0JGULKaDIrI>{i;wI%A)C5Hqlc#d^-0EjeSCMT6lk2IQc-w zHajVZxhd}RQ8nu)KVic?PwCvFLfyO|?`i#HCX!x{%-9&%yn(6h zxjcL`ADUhzEyA4QXT|S|^a)}5oUkw@+`XmTFDvKqZHuscRER1+(Jl-hR=rnf`yfSA z%UJ@Ee#TU9u5=O$xJfp97(G(XWKWQ5y?gl~)y5x_F-nW<)Rh;q=PeIM+N+5-38_QE z_;F$WbD^rhNzhl!!K$q!8f$6y*@;!=GqkIO+0Jc5->oO!6{fG}0E7KUNq!h*_>(xZ zQ)gJZeUYrJEH>tBz~ypL=5laP#g7)w>Kc)fuqzqXPX%x36o8@C=fSf=nF`)}|Hoi##lqda&2eQni@b~mta zcHjT9|B8wVzNj8&TiFCV22SHhIkha+9dg(6eW$*48B$XsLk;~lqXLs1| z)VEVmz(*x%cJ3JA@ZcFXcII*aMhSCK2P1lBYtP@zGw14Py+@)OPM)74_0=q&&D`e8 zAD4K&XMmlj$Jujfp4OX7`2Bt!3rMDdKd~+ekG^}hzDN4L{wuCuaOIzw-u#EF`AR^W Swc2XFx^L#M<j-IYPEW zjO}X7#4>j{gKf@*NNjVPm=qBvL&ji?VIzW&F(Uf6KO*|?)$?`#h>iNE54^w6_x*mJ z=kt7iJ)P10?r{+bH-;i=WFkwXJroN*X%QW!LM7Rx*xwZk^{TaoQ(+ic5izo&Vww>{ z%&=ifQVd&E#1_%Sq-I78n{?b6JWKO{(3%n6nH7%T z)7(}UMR5@ z+rs4g!s4ewO_7U`zm$VD+etRp)9H5*uP$U{cNz2DJBYo}NTMggK;Hp|2ak|?FUIIc z3Fc=`v2yb~IXO9O$=i(E?WV%#p=SH@yj+{)}l4?o@ZvwF9jb6PXr zBi#8`_~i#7756fcu44IW6Tko5PI5SxkuUAsxaVY*;(zSF$tQHz3H{CT*!>T5)H2@N z#M0@v{+In%RaNm>?Ib%Yrr0@j5@*`UtxLlF1Hxsm7oX2ZZ%IG<_RJya6#2<~7S2Ap z!$Ft6ouVQ>D9f;G=NN~EPqC%DfV^eEg-V2MgUtb{*2=GuqvK9P^ZAEzS&7<`_(D(IUer>_EKC`UVhwJ&8 VLq8j}^?d!m6~B=`PFoive*?5aCfxu4 diff --git a/assets/voxygen/voxel/npc/batfox/female/foot_fl.vox b/assets/voxygen/voxel/npc/batfox/female/foot_fl.vox deleted file mode 100644 index 91c9bc7a317107279f6ac82cb43c2f663d8c4824..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1164 zcmb`Ge@N7K7{{NlXCSkN&hzZfrnghq-8pLhm_L?l=k&_6yqmgQUL_Jm9!E@$A$EwP zZi}3_Id@otm2)8yEmz`XV+v^SuZpWcz0iyuZ)qd4JxY z&+~mgpXbvR+V7kck+#M_P@N2BigX6T{*7j!mZ7jHHYoOYhXXC@P0LjnhQ#y}R8hAW z86i~%#pJ{iGK|cSk>)MRXDY9;dc!buE+c59HI`7v?spnRbDCCHSBGi$Cxn*sE0kCt z^N-ca@^V|6zY_R?e?yMXhP~H`bGRJOR6XL~fJ9$Fre8uRg=UN_!jB!o>M2sl`$U(qc%E6j##G32r z^4f@07c#cHjD?=+8bo3{{W-I$B2IrX8e;V3$v$5T|ZBDb~c;ya&bDHRCrv} zY=~-+y)z z8_i+tl9g+B?5t9}Zv8!V!a%dETmR6$S|CEWYz>Hpo+{`#+ZeS+zCX8KermF_*0c*d_CKjYT=wd3`)>v3z=$P;dEC%OOt diff --git a/assets/voxygen/voxel/npc/batfox/female/foot_fr.vox b/assets/voxygen/voxel/npc/batfox/female/foot_fr.vox deleted file mode 100644 index d88a433c451ac0c24821d6f65a569a6e80e3bf21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1164 zcmb`Ge@N7K7{{OQoq@~>o#*MDrMFYp-5HiY=8t9VoZj?Iy{XIeY$8$QaYS;2*ddO( zEi!R)?yv@PW+4)ml{ndma1s(hNZe!uArUe9cYloNzgM5H5lBe=vj^Uv=kvTj&+~ac z&*$@eT70dxQ4y)H@HQwVy>TMVUcYCvZYVJ*7!@`tw6^)ZHA?G}qz{^eG)-&J4AQ1) z2A?K|22JP0=o2l@r-Bu4RD7J`m94aBnp!icT)L0Z*Hry^g{Yjml$MsF%hM5|W^9Qp z(@Xv{nOIz`U*oTPf8$+9bepks+OYNK;v6qSJe!c<2gt;S$dZ}FdLi|=ux(h_c~giF z3R@yVva-$7LQ#DJwZ{|jpHAld{C2APgvO|Fct$w&P{lS{$q3lV?sHK*=O#U5!aiih zHJM5Ny&a?;60%RLy+?)e1wp=2`NQ!@bSpAzVqixSQ@c}G*_#fv9}yK{Ug2+re-xs< z!pu*?;*@azma^T#gh%+jNmxB5_?6w;A`BlKx`ecH#fBf?#I@eckO0_8%jB!q4z`LFT5;61zJ_LP7#*$w}C3Hu9Zz zit|3^(*h@+@_c+>lrjA6HfAo_d34{!>T)i>sGNaL;lXX;* z&|o4%S54e{XknGi4eReH6?&>O<#|4aRag@ycBGS0623HA(}!4k1> z@3OGcE=)TdIGs+qvU;einMERDQbH-rUwHk7{Z`dG85w+&6J_6?5snO=C9NZs7bw7Qtw&n+fy5Q7>DI!c`6|B x3cSD=6Q2C>`g~7Rf4y&AeZjSVrt4TNw$^((@rGYNf5WZU>*pK!Zp5vNkymp@C%XUu diff --git a/assets/voxygen/voxel/npc/batfox/female/head.vox b/assets/voxygen/voxel/npc/batfox/female/head.vox deleted file mode 100644 index bac4ba0bd146058118526ce090aa3e7be7e18bd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2024 zcmb`Ge`r-@7{{OU>peg3-JP4$O`B_KZZotwn={R3x^%P6=I%MuX~RO%H6$4!I>th8 zi6+{zF%7btm5dNgWsM@jhKL9vvLu2Ku_*hqKO*|?+xJ{EMhOvg;KTF0&-?uNzURCr zTD!h%NJN^KH@48oOsf9lCy%^^BmPTJ|@mS|uI(?ni2z{l64t<-x zP2c98&svAMc3h)`zAzs5(L;y5ea?3{%jeps28Z(<&bR5?jCrQXd}^>+W3y+jpV8vP z+T#3Jx4~Z2<-~h&U)DIxcbM+PLSl)@97pj4(-D*7~^`YGa3 z<7`*gBZt=0HToKTEmTTND}JwpSe$324bI9ViW&mqvzJYL&5Udk@QjKiG$U;hUo#kw zb@6)2R(qi7tm8W%776%{ly0YWYD^Jd>EGML=UuRg;(b-TKZ<@p zjRF0Dv4C0w#&q3|Qbe(jrrXr2(u!F06U5|Rk{I;!NIuatMLoT<&gl@E3n%S;+PK)QXxDH4n7c&@--$8sDy1F`Kvsv6ZDp-BuGG-S3j$aE4F*eqW_&L+~=|AXf zeBrNHs=f%to6AtvKNpqR#gGOI((OS`PJ&!6LaJFXWrtw;fZ)+{0;gM$$OsC!E;=n( z*zBWeM+zN#3-HG1Ls;1-XdM*1cvi6I25VbOP})_FS$$Qg9jV8(opPBsWWTPL`+P0+#h?np4Oh4Ed26_tX{I>D}$g5!+0E-XP;Lpgd|E6}v= z02Qq4(tu47}crk>ULqzjOk=?_+8~ zKFZ3&n(8kYtwP|{c?PJwF zDsVhggUe@D;Fs^(&~qq-!ygyo{EcGV!i@iP{-Lc4&=)Sk(DoG=JJ9~WoWG`~25&9O zVt(~WEIGIj#hGGU`9N@Uqu_K!1u82mv3=$)JiGb=B-4w@J(Dqd?A|x*FX7!OEyb&| z2eE9)QEWN1A5%N0;QA-CG1^g#qkLz7fB$h_+-pPIHS}x;_8c2V=ED&jxo`>Zd^L{8 zcOJyDeOat|?;_gHjibK49(M!~hu}9D{l6o=Pqzvi5K4TKbPrih+G8^OjxgqcfD2y(e3f(a6%V4cQ7tZY*VAtDF~ zX>6GD6QDJ7kC!Y%JVF!@Fh2}DSWD;fA$kG=Q$t=W&yKfV6;JrTKl;qVGZ?i7)$ zhc_;*mw+$99-M*eU)(tS%5nIffJNR|eQUC`KSiWIJZ&t+Xk~x03bDr+tQOXjbqlM> z){J%JbUlToAvA3*6K5SQ8Tja0H!h_&DI1kCxPqVu3ZZ%9ntRtooCcHBJ6NHPqZ5$U zqh%;iiJdw0D3*Ff*DP%uU(i=&Ew!vFebJ+KqiGwAK2$5V^a>t%YiKLlg0)6nW4=SI zMo(DKgrD&t*eA^^`T);^JN-NBEpOFwZ{U`PAhuR^n#;~XQaMntRH$2qz?Udnjk2*| zKOl(3$vHW22x74^sIh-W4r1|J-C3w%mFv@wV~B6T4`vti;~+Pn%PtE-1^AvH%aZ8riNBStD)5% zOEk1vZ{QHb;_V&v#y^t7#u6K~jCEkOo3wP3frIAmz;d^7tS0=_^^VoR4}7e8M?HKn z>jrC_SLN)MGcMf23?=WZ*<{Tbi%B>?t3G)wcXqk!!nxyDY)YdnZz88jxoei4d&kX=(4T^>+-PS`yZiGm@1L2kp8Hqx{`WHfdP`nOV|(_+c|UzC z^FQk!+>!aw-51ASx4$=K{=+}_=D+6iue2v`O3$a!$IV+m&)05#H-B^c{(N$B^1toJ S@$vDze5dhGOHE$?f;Y5S@9mcY84^0kOzkp=Y6uU}GVI;0GchoN~ESq88RR7Gh;Xr>jlK0@pQvd{R#8>7 zclR1K)mEBp}gQQ?Nu@tJIlo%*eVl)~B=>Urwf|RrgEIg8I^y2k#IN3DP&D^L$KlzHD-TcH(Z#*% WcDw)f9-U6ddF#iW{7(J+9`p_$k^DRW diff --git a/assets/voxygen/voxel/npc/cockatrice/female/leg_r.vox b/assets/voxygen/voxel/npc/cockatrice/female/leg_r.vox deleted file mode 100644 index 22e834e26761d0f6fd1dd2bc1906e87e91161bae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1364 zcmd5*Jxc>Y5S@9mcY84^0ZEa&LeD}Q!Nx)a!9+wth;q48q88RR7Gh;mNv&Kd{aUB7%Yz5eMGQ=gxb#u-lv6saqmy*P9#aXeA)Zo4aeHK2g(@tfH*w z?(8-ztby99{{++~LpeAojK-iafp7){8MDa*Q38}=NSH7M2}pF-hSzR2R&Q*LN$Xyl0u-e%r4%xf0tzmrEH-6QumU#itT*a< z7jM>TwcIeV&@Q{hV$?0~jeW`E`}>#GFMD3sz|7HI1dCa}I$sgUxf6+V)9S5h^t~fY$hvz*v W7!3aGKKlK>^EQls@;mkMd(bP>I{YdC diff --git a/assets/voxygen/voxel/npc/cockatrice/female/tail.vox b/assets/voxygen/voxel/npc/cockatrice/female/tail.vox deleted file mode 100644 index 1a61e7fa5edbde718139e9242eb5c9f9a8711d85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1216 zcmd6mu}T9$5QgX9-P;pPM35A@1EW`HBiLAo;6VhD9{%`M*Wf{9D;!duoe0>Lf1IhjJ^#A|> diff --git a/assets/voxygen/voxel/npc/cockatrice/female/torso.vox b/assets/voxygen/voxel/npc/cockatrice/female/torso.vox deleted file mode 100644 index 3255cdd817ada63dbe1f9d8ba344cbc88e0c160e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3048 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 ta-2+I#RBzSN$D*TC%M+yIT-%LL7!fTsFG{(WRW zvJVn`h8AeUp3=L%_HSaJ{z)Li7uFi6O1*139fY?Vnm}ev9q$MTj{kU0>0jO;r^CVw zP-Rbfzd(df%1neW+*|d$g`T$v8bN~3(83*SfCl!t7Xd{06nNL5g?rcljqFFx<(@>4 z;4>(ZeW11PK>(3=@s`bBxK0=p^|x-_I-8%Lw-1kq-SD$FY-Z|T_K&G4J9B26)!$27 zPT9>{KWlg2wch6UZ?#j0w%Dm7ciX9_?zgq4zG+jJPT8U>m)PQKN4E0#RVJIF$=;U9 za|4q%7TSVsVvFt*JLj<2C9jB;y<**iVneKm8foI4`#S zsMuFu7JKMjbhj_H<#QuDe}2~1oZMi`_D$L7iKRAs;#^zx=0&#XPOwf+3X>^WYwI_T>7Bdjnj5i#7={+Z(DAEg&uuS?ByScoq1mDtylTp zAokoQv0vRH_Wswz<~EBxxKr%#+(LWwD`Lmy#CER}+rLrlY1X%om)hK>ksa8+!j9d0 zh0Wi(){gDD-p)MsW&7KSIlFjfpraZUS-#Y^ z%${#|uDQ(iZM@2M&MvgM@iKd2^9A%--!L?_hJX;R@l=ASKAveU2lK?^A6kh_yT+4g(-XW-6eL?4%ja8F^T^k z^0Hs-`j!7Z{`+pa&<=j4emn8Z)NfW{=fK7 z?!MesuU>6GTzlLuU-g`=KlHFIIk?2${JGd4?ht!%#R^-wa;5E=*>5-9@S4fN19tYl zv+eX#AJy>NOX;2E%k4WC9JSA_KVtVh{-`b9y~y7A$c;S_iV$44fdg!Ndfjx^Y4j$ r@avEK`+)xXU;A9a$vyidefEw!?c?vd`7!@#^wZWpsq;zxQ)K1e=Gc_! diff --git a/assets/voxygen/voxel/npc/crocodile/female/foot_bl.vox b/assets/voxygen/voxel/npc/crocodile/female/foot_bl.vox deleted file mode 100644 index beb8ae93adca376b68f7f7aa685dfa82cdc66842..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1340 zcma)5ZAhC}6h8OfH;K&EnY{7aMSY`flG?iX5z|IHI~ALzI;_*RezA_q46d8g60C%c zHC?F_t8)?^?W%4_DW$Fzm5u%AWJoELQruvJQA!zOfA?dI{(E*}DF}0H7oPVy=iKL> zd(V0AZF}`tew>IJ4+fi<$YmmG3AWcipKy32F*rmTK1fBi#>xAC%3iQuZ_1K)BDat7=$#e#=l>%C_BgZp>Vs9AEJww3Z0!$HMmGO3?1HUm(4G|VUC9GW~+`Ywq4Pm~X@byu` z!?y_G2EtGqVIrK4^KTI1VM4c`5UC@~aJ;!Z8{v8b!_6+ldrA>)twg-H7Hbz?$L|Ya z>~^N3sx%LwmtE*-t3=;nLad80dzx^2oZxe0Bj_nar*AI?>h__{la6qC4#paa@KZE| z`YJDSt1e;O$NdPTV&bDdG&Sr;S6dxcuU)|8I|ia1IY>@UMy75>$u1|nZUer(JF&mi zjfr!)Se!HP^IZ=f-rtSOyyx-);oi4|UwMg~U;j1FPjK^{ZRNR+ WPCWAylh5q!c)QrvHCyd%wDdQTP9eAe diff --git a/assets/voxygen/voxel/npc/crocodile/female/foot_br.vox b/assets/voxygen/voxel/npc/crocodile/female/foot_br.vox deleted file mode 100644 index 54608b91777aecee4b11d7a9bcbfc0b986c1f590..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1340 zcma)5ZAhC}6h8OfH&*8A%!eOQ7tI@OlhoG5?>5@mX|QRk!#Z8-7wf3Z;JP_2Vnf(i z)0H~0x=f;DTh$FIrPQ@z!p44dGNcqrDQ>XAD5Z?Czxy#p|2;cNDF}0H7aq=i&U@~8 z&N=VBT`wOmjuBDoA%7biavF#_{N281lZ00~gI%OCj-TlEKW3X;4U8RvMoB4Snnt4< zgQPN%P)1VHv_sLTB5Br0ngnx$kR~ORSx9A+lC4lC$+3!*DNP7t8WBU742sNYlGsNk zO_9+cg-K&@4GhkcjNy32S{mongkTL}R#I|a*5jNqrNx}%rD83vQIo8%q*-z;lDI}G z9VDbKrEo|gbRnc&uum~JNU|FQ*)_J@w_OQg*O)63`mvUm4yA^{{nypiAsi0lQIv4_ z^9?vGkMXC)g7x)QB-eF+9BqLYaI(*f@K^xx2|wb|lZej^qc;9FEPE};t+pbsL5FK$ zKgeeQ4Lt)|GJ!U7kkv}aJxwT_A(Y)9qz@5xMhIr+IoAk-)72QBZ@`&FFFs5>kLEC; zeU|Y03gPU1KHHuTTTn+y*o~UCMih)#pikw)y<7y(?cK=jC6v6+xnqQ?{xZ-jtRG4T z&1QmDEhunLpv)75WA8X{#Ew}aBp7eD+VC6O*>S?k$AtAOggZBxHxib7gs+bg9=t&a zwh+d<2s6PPTzHKT3ljS42xHBJdG@zgMm_*YG^NS(y1?2yHC~(AU+B#MO(4zNI7FQ-F+&4CI-ODBtaX$EBlY-!2@eaAD?r zAyyW3{Cvla2lw{iGuB*NCfxm&@aqqRP|%6_NF_F|H{p+8IxsSsg{i9++`Mna8bavi zd8GP3#d8@WG`ar0|I7PfWYNj=(w?o#>PfGB7o8v_zP;2@bH@_^*!YK^EyK S@#%g$yPa?AnXUV6V(D+&1|g0B diff --git a/assets/voxygen/voxel/npc/crocodile/female/foot_fl.vox b/assets/voxygen/voxel/npc/crocodile/female/foot_fl.vox deleted file mode 100644 index 552169ea08e99a7e9013de7b180715fa4f430622..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1300 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 diff --git a/assets/voxygen/voxel/npc/crocodile/female/head_upper.vox b/assets/voxygen/voxel/npc/crocodile/female/head_upper.vox deleted file mode 100644 index 723c1707ff2b0b9d634b8f5a5375644d383e9503..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2328 zcma)6ZD^L~6+ZVl_kBNazTV_{-xy7F(Y&v=Nown&k1=g*lTL$8QytcswSKXV$_%cX zizV3bvazNsIPo3s#^5y74 zZl{?~+>m%ngJ&F1pC&it$jx~xd&fB57@IK~+)yBYFPszFpyfbaELbV<-ViN~W|=nU zym<#XYM@?()@d4O=Yy6^Txtd8lrU~|nVDo7X-6ozSPpVf)zq3fimUqEhWQ$yb@XB0 zk(_)Uhxr?|jmuhTSxr;*yocO9{e^c1);2WcdN2p_3*;2ZQG=E(*O#NGMn=5?c|`IO zV_xJEy<~y+ig#UscROkw7~AEw%{k|_%5#k5OK75{$a-7CIb&E}2ik@PO+Dw1@qAvt zdSzd*Zq!`sU0I8{*35si9mK@>po~3T;tP~?TH&a(--3yi`tWzjhS*dek zu3{}(PSjPkk$juAq)pU@w$6Mx24B)h(BH_z3Ph1Qu}6Yu+&aeMy9kYrJ;S;+^1RN< z;yv?WFA94@cy830v3>5#dO30u_NOL{O}`}g(?W!Vak-9a<&f)2uF-tS*U`T**UYGu zq{<%m1x=H{Sl*Wd_XBN$5Znuq_D$5Wh4Wlz+F0IOc`lr5WZcBDFI_1*_9wLq)XLMx zk+)asAbA~lN50PcM46ir%DlKvyjB9W3MT9cYQcMa-n+C{$6jO(s!~b#{*yqMR!pSJ zRCq>k?)m=^*1)rO#k4A3tBGnQ39g!WR}J}ja9!g0zX?(e{MQ)&AF8e^^8LpAZAO1G zE+dp(4CTZJ>JnIkkP64dd@9uN$z5N1lyR27fq?8o#w)kzd-rtIqTidbf;R<>#KL{BKkmL1` zt0l;-Hni*(tb9(e=7M13TY|!ILDP(&%yruvf@9~m;>4wg@%)uR{BY?D*jW?oofCZh zy5NNm>ASZBof8$Tul1sTVHm3?TTwaJf!=Ft(f97XSb0dW{`-tQFUXE;gnWhfPZuC_ zMaYd-tnNL7jeQfS-hT>sybE(8SR%f;yAyxqICn~L{l|ivuL<6Jo9ki0)e*t3pA>xj z4Z*}N!Krb<52$tnB4gw#(Uc^k*&tL zT^sPn+89Q*_hHTUpW=K!^%!iyg&!Qpo?Q>&@c2$Fy?z?A->RT?a5Wkl8nCLIV$;1< z^z~HG|G+(XXmbxPytD?_uT=1-_j>X12lwG;ymR52;QikU{_+RG^h7r<&1}J~H+SIg zf8K}5vn@FHdMn=kupJAS#sTWFod2`bWlFH4=fCIw+!Oa;<~v6*|I!q$y?S;z|ISs- z=&h_k@7f{;dy3dU(1iVc|6l$KM>b*0mM!?vw#(SmcNK$YUPSv$JKp_;;G=_rH@dsg z)6;`v)hRsj*bT_cG*(Qmz|zIfYWUp__D*LfzPDixj||S@*|RTW)sdC>;8z>4bf6ux z>(>2;{<&Qq>*;;(WAYgA!o}Ax^UDRia^v^-$?tAs>xnaXqsxctuU9IqTagwNOc;pg+ajd$C-)923lU2Nswckfd6 diff --git a/assets/voxygen/voxel/npc/crocodile/female/jaw.vox b/assets/voxygen/voxel/npc/crocodile/female/jaw.vox deleted file mode 100644 index 61c4076bbf6933729dd2f9416f9441f0dcb4f37a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1472 zcma)5eMnt(7=F(=_gt@DHEY*zyL!*j&3or&*YEAR(H~1f#$b$LK|zc$BKo&KBKq&?IgWvlQ9pQizn}N_zUOz^ zUp$@{6OpDv!Db5iLKkTbcGM?Y29JYCCN$#siH=}cp~BNc*lnsqA#`2wsBx-8wNu8c z4$ZEZHoIbIaf)HHDIVSO>(q6{)R=3FqwQp!6=R)7sS-Aa;?W$6p_4#SF(Yf0Qg6759Z zkQ2QYR{wbVg?A8(kG$kkIhShjtJKAcvyU*BQYH7Xh8GSA3#?OBRfTXk zj7L*~!=J9hbp3@tTrRAwHNiU9gDYrmd=4kO0|*Z_Vr4Xlm8p|hnI1sp%A0WQaUs1t z6B!2#cxU%P>UBte0%ZOf$a)%5ngr>m1v!&~q8kE7zaS|h*g-q(nxJo@90M~4aAq!m z_g9}qU0Bc(6}-AAID4P9Em?4f4CIG>s93H+_Mi*KcouvMx$xiKh4d~#{=4Lk3Cenk zATP21hyxN$hAg>|?HfgrKLm5nFmS|!s0dbx*PGnJ5yv6e8AJf^b_UVtut(yZADG zTL@vdnTG0;Tr@skh~D-}^dAvKx&^am1h*yx749qqefj9B*o(oseQ5WkAyk%)@rDBY z7;Z#;wI4avA7i3|`v|09^1XgEH|$4udmUD?)dQF-fn!tp34h@yWa?Y`Cc#*D#T2r6zkV(@%zuM7#vH%_*EBf z-p|A`M$o~1Y|ej*dl?ecdjEa?(?@qA@>VZm=ZCOxd2Dljcg9oj8L9B)CL`cYMq5=9 z+Wh}-{^g!xl$Ms_gUVSH`{xlDJ%`LlCT@Qw_@Ps9t*{VYuNQsh5RM*Rf<#7;I+%*p z>Bryj?JT|>w;S&iL~$@Mg;Qe}kkONldtVk{wIdT#d3pcXzm;ckooKy_!9L*Z^c6%t zU&f`S@9@#L8z>(b#lds4XuNz2tv5DMQ&WRS0*HgapU^f055InVzlVHZ{}tyixcQ%L Zm2;h4cw$?@C;E1BJKxrtt@<{(@;74aD7*jw diff --git a/assets/voxygen/voxel/npc/crocodile/female/tail_front.vox b/assets/voxygen/voxel/npc/crocodile/female/tail_front.vox deleted file mode 100644 index 5afafad6fa01e2f2e532c7f58b7c9edb2efb1eca..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2096 zcma)5ZD^Hc7`~s6_k6ua^PG3?yXiT{k8OT6cig5^o4GOPoH3V6r;ZGz9hPN7hK@s# zGttCcYfPhZS_~1(UOQJdCEr&YwJm18{>qIYe~a^Hwbi>uO>XHJyfKMUKK3i8~w zo{8$T4O`C!ZQO)S%v$Z)h>AH8N!qaStd@ke#1YbQ8&q-QGA63yIwVOG_0M(OXdQC` zDs6(sGXdi%M^Y*xDdU)!=-gR7JH`+7IX~HUQtx9Y1)8s(06UH!) zQPh$-_^+bG#I+XfX-%BOprR&bM90PFs2CHHgbp)C5szUV#yKH!4EnifA#$M(hBb`C zJ5iO??3p2ELyatPDC(yp^u8Wp=J9g{w5N#0p|`$f#A>Ya47nIZU3@$NatLbAp>8(J zIEQQY$Y}2Sxu~OYcqgDd?XVvEV*}(K;a*5l7siHY?5RUd#HHrcR$TVW=gxCY44PVq zf6ks*m)aT?(^2+{@e-k4)Ls*Vj%ZKFTgXe;AMJ3q*moUJF~yltoCU=^inugQ*e_)z zrGw08eI0d7!u|{>&xVNEH|itozl0^>__Y{gnO8BVP%G`{;OuF?$3bGG*8#4{Q|L7{ zSHAA-jkbP0Usrm=dYnt4Zi@Ld^;JQ|x1r*i8Y<$@)JCy?La&3wMH9}j4sadd9yQjS zGZiHVnu)5E4bhX6B_G3CR4%n+uZ8n&qkJpugY{>hd@N_(;p`Y!CmsJD--W|?!Y5k)uE^- z2g&1wC?B1LiW~Ehw_PyjZRQ>pq&pWvUSR#c5M*dNjG(hd&|5D! z#r@WFAu^yog^$Ggy$y#mc3#(EMyEcDGlfd%d84hhSu% z;Mxg6RY@V5%I9Ev)nfG2FGqWME;8vN9B-V9@3YNlSXqJMl^@|m74@i{fq{3rv9WOl zcC^=H;`|W|zLrFGTM=B>MZOoqlKClAlqFHMcpg?PEyKW}Vq7|t#1A*iaqsp5e9W3- zqk>ys34Z!k(3dI2ss2h_zql5^{n&<{V>594d=9SMDZm)|&_O+>`0t`Fy@Iu6|IUBU zhI#0JV>gBm^`QMOj%Hx>CK^uh9I;-a9wDdVSfhTP_uM=QNyYn{Tw3L<|}8?8BFWxJSltcn<|87B^j(;6`f(=_fQ$&+>49<%tt4PxVp0{1&#|HquKo$=L6} zJ+l|7jX`>!M&^={wKNhNg!EHF&bUx`U9k2F+rmPM+G$sXp0QH;ruTDt*3Snk&ruT+ znkI$U7KAhRG`1-Vd(c6C$V1su71{kZ9HUuy=5z7h+DUqckpG_MjtIW4LgZzwKV(HF z6Oct4*`8qvy+NG22jTE`CPi3LywPCiSJjh)!oo+w>Sf{f4YjL;xmw}tqr!vNgVXC5D5xh6~aJ`Fs*!(FN&q4sRzN(#S^t_KauoI8yQCCg67`&{DCD7VrP-f2pg8l9CcWET5ss zJBNSxEScd~<~rVdhyEToGj*Bp7fW1R{GN}$Tc@;dm;+~LsK0cR z=IiTJRaNmwK&%S>Bx+rF_|4=0d#Ly8zxMSJZoIS2dbYiTC$_oyWWAN%irXBsdA)_N F{0-B8AejIF diff --git a/assets/voxygen/voxel/npc/cyclops/female/foot_l.vox b/assets/voxygen/voxel/npc/cyclops/female/foot_l.vox deleted file mode 100644 index ee30f101960a7f82b8f7f2cf6f139e9fb0db6f36..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2196 zcmah|TWnQT5S_he_POW!O0nfq+RFRY7K^-!Sj6(ESP-?KL<-&##RuZK_oNykq#B_< zf&_U;0239_G{hJXNo`a$AHR$-#`v>br}`)2NmgcN&FtATd*-aV z`~ETeMP&Jc_PZ$LxmaXnduQ7M|E~sYHyAx}1xOLSB4SbQUq5e4yXO-JWnt__$k* zHes}F$j;Hu4LHrwpBqq@8}Keie{R4$eLj?fTG@$DoQAR&DXU1yiKb$jnxoH2>YXI& zq-;c>EnX7mrR)hM%u5;wQAwSWSH@E}l~N$Yr0k4&j67jPAS5t8NXZB0p)?`{@)7e# zk#~;$x+IVj@5;`T_bydR^W-T-c}`v8DU~pFX`n5}cq30JVMd;u z1edtrQcq}L{@~az^GCclV*bdLmAVlj(=B4Zb-rZIr-8b7^4=$&Q0hh*2vN`8$Wtn%5rGinu9z=* zV{XETKwARy1kc_WPZ;fxampSd-b-jiK4N^HyTRS_E+WVI5RN@K&dYq1s*4g0mUyQn zb;>y~#w&M?I^mVNDr+Lo*(+hDoEvA%oi*cpy_J;jVBBxdc`ISGJ>Nx*Qmo{hrp_yO zfO)v{s)6$&=<|8*7~wUPEYDrji1mfCF-BOIu#Uj9A=9&3vh&=nknN(&_A5#p&k6T2 zWP54(vbQ{UFJE##&-(MJS4vMwsH5NIc~74EmFJtstUKmRV*2BB#gc^!_#X{@;MddB zgYWkW?s(%2##jA;->Rx``tGFb)%X8qnO|irVffjN4g*hQ865es(fOtQAbyDww)oFz=K=?&bYkV#vPhASbG@ zeey6IxoJ4Qy0sQqIuRMF6VYFshR%ByVB@;G z(37sg59g2IrOgjv*S5#8YwHFa-0>uCZJvti%3-K0RAPGlI5am+!YwoE(Kc^7?!J94 zc0XT-V{eVaH|H8~@ry>hzDv;GCpdpn@Z*<)EgPobVDC(vIl2hHe76$aJ1VgA-70)= zVI(eM^kw@m-Yi%@e;5w(T^?w;0go&ki!B{fu>av1`1$jG{5tpv{`~edaOn&h#}_bf z#%L_NZ3-S*-UkGSo)Vm5EzP59uGs&~nKQ9x&LK>jei$v=w_#-ONSu9J@YNat z`uc|6e$%E+xbuz^klrmA-aQ-x2mYSnvo+kEQKPWug?*UcvKQ-jyol=J2z>GWL=1F} z#NIJu{&jyAm*rZ$@;tg912!Kxg5G!f@ydzM@Y<(?n4NCN{B4J@?9EeHd3+G9t*!W; zrASQRcj%zt(#L<-cZvJ;e}4XiL;u-j<;lMP_R*7_x$L=reA(f;g$b(XcA<9KvCGBE EUnvlxt^fc4 diff --git a/assets/voxygen/voxel/npc/cyclops/female/foot_r.vox b/assets/voxygen/voxel/npc/cyclops/female/foot_r.vox deleted file mode 100644 index 0f18c3bc0bde543c8dcaaebf2125084eb04b2383..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2196 zcmah|S!`8h5T5y$bI-*kV9TYnrR+;vEV31$1V+cXxi%-TFV|@AiPT@_&lYE((Z|2ND%m1%m zycN@s9D7>Le$W-b>aI)-&Eq zq@Fx=A21JL1D+c&KfysqKEZPnj3-P&a!Okgac-M;A^DK`38n6=&53c$Ya{C|&v02| zeBP>$oOP^)x+weANJZJRX1!|G5mq%agc72f_eR+-d82tlD0MNK^H$lfvR~#Qln|?t zcZ_%B2}4~SdBS`0ge452o;=|Lo*ytjVFJx*z;h{$3$iZ3JPF1pm_MO8q3+|InIN(u z`H+0bn%JlF?AhAL8~UA#teD7%$*CCjX4sp_StUnZDTVNcydh6%2sPv>y(Mo=WUa{= zLa7U-cZRtQ=V#a(c|xdr&pSj|&v-(;VQ+@B4k8yYKH#~5;V#K1<2&P7OTd0@-Uc@3 z*n=~U=LdNc^Pcsq%^5@{#$uH17>5b16{zm1LrF^^#vLj~Mb~Idzcd*mHVY=~6HM(8)b>xQm*C0;!O!0c_U@R16Kykb@$_Q+_TxIV92|;6 z9~a`>wUM}i(Rb~?`BA~v1;cQHbJayZ{_CIsxOdOfhiD}bMq2|DTjBFc;OCJiZ zZxW!ZYjF0vcJ0Cw%g#gE_F{O;aP%I(y~9_Ed3VanaOCx4SWt5mTMxd0qUI5}`sqaU zHjTv5F=PI9ejFF)+PLltTAl;;9PdWkM?HA^{MUH*s{zc84q(ClPOSK#59`hjpsubC zw^)jV1pb5_5ZwIYc6~Q_zy8n9M>zP-?kX>I{kM;v_@BG}cgGk1T)HTWqPc05OgnS8 GSosGw`J$)* diff --git a/assets/voxygen/voxel/npc/cyclops/female/hammer.vox b/assets/voxygen/voxel/npc/cyclops/female/hammer.vox deleted file mode 100644 index 92a065b5c76de9e35de9ce7a39ed98d3d0159b14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2952 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 ut07lEiSqhmq^8b8%1|1z0bX= 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 CM2A{5u`yRM#v@LTwLKMRQIQh%R4UX;1xl$% zl=2O+YOO*=Em}p!@a*C|Y9+q%IH#3BY4%f`gR^MbI*y}gV$y~-`xuWs6}gD#rWkUd zDN1W{pg0qIQG~W3XF|S|Re@ORThDS9OUx8&>9?HE28OnYZD&KLY-ly_J>!e9%(aoT zCUVAbJ{wtMh{Xm@o4{&APE4qsAfk*7xBUX>^?QsS#G9J&d&9|}6kq3`lIo~Dj*5Z6iZG?51Yw5Q<8)CJ@?KEq} zcQGErJ&$`E$G3OnAg;mvbrNn}zh*V}KJ$TJI-SPNV}cFuPGD}%pZGl|2jk<7u?wdg zKDn)A)hAH1b2(Da*C9Dr4M{mj$DNQ<_dzBS$Z8bK^aW+9g;;z>Fs(yyPp=^Rh#>Ki zU|Hi`*yv}WwI>^IoS%htX+cxJ;HeS8{;SMw%12Rq3Ff6sQ8ikRg3cV29L`7SP%$bl zF2u~8f_XiH#RG!cF@ZeB{@v3c{r5u7<>27L=@@=s2Cl6t05;A+jR+bj-%@_2^zRdl zyd@YP7F;?@yIycACHQo!;QBLyR@(bo1V?uBzDuw+DLC17KgN2RF!@p~nwI4wnM|Ur ztPJJlM-+99};kqisvj`siwOJh>U^Xa|10JdD@(KaIWv&!MlU9VZUGfK^qCk()go zg^6rbBuh|Lz5pwiCXuSGz?O%rapaXkjGQdNcb7_W{Yn|$=@X0&2`*m{{Pc~WyL}N( z^j2cx^jiG-Lo+%LW#RCLIXHVY57$vV<@{|A3U=2`#|iSXt7aDVu9<`GrbQUovlPF4 zHHzORKgVC+j{`R*P&PM#+NH(V^w1*gX<3n(zjv2l@I}EGu~Zf1-**1W%1RtvF^DA< zr%-e70P=eCaPfV?wH*Qs4Q06R>gvKH8_q#`yD_742F@S9^@cC!b9ai0aP-xF)YTlr z?nAF3w{0e_d^{iLTk~*i_UwQ4kK^K6+nX<=^I2g3@nQ6SFp4+NeTlcfn8fnvAnFbb zV$*wLXg)KE`ucj@BovuO!5=V_f*YUR!gquF^?!c;2{Zq*DfNY+|Mt-n=S-RRk1tLx RT;n6R`Uw;)8JQ|p{s!4*gl_-< diff --git a/assets/voxygen/voxel/npc/cyclops/female/leg_r.vox b/assets/voxygen/voxel/npc/cyclops/female/leg_r.vox deleted file mode 100644 index 54334f674e8e97f77c1a0f4de965e2acd2cec1ea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1932 zcmah|ZA_O{6hHUed!Jly!@$4135u_PVTfW1626e4p&`W-m0GD~_B{V*)R;PILwcDx zLye(r6sk%krZ8z^M&9U@KjEp>M%3crA$X&jrkwA8P)iB;rl!W$b}2|_16?Mx6Fr;)K5 zy1=E4GihT@Y?M+pHbx__5_>C=^R#=7#09bE*?JQyrFRlptFhG}a+dx)8z02#G*l;P zOX-}_kGe`)tuRj0)=Ox;#?EW#nb&!VRA?t0p@unwAa;R);1<|#zdY_ zHIY>lJ2jyvl>D7%e}Rdd5lZ$+9*%ujBe7$BoA9#CL0_xXE%iWSO==m|Cp@8?fmQNX z>ei&yu@-0KRU@^uIp(0vI~N+x&w0l@gmbZ4O79}2u8#076hl9C?8|aa^ru~%jl?Ez z!ueavS<Ib|&4l(2@m4Ru0|jjhoD8}B2d0cYhS@r-c+^Lp0ykxRHzTILb;+(jQc?>Pt0Irvx% zbw}O#NS)^#lHAlS&z5hkj8*y)miz4tbwi!7+KX2@m-MDJD_4jc|D^={IyyRV^O#`myQ7$y^(TJM%EHJ2=3_;WF8TuJ`yZy zxC`sT477A+;*Imuu)0Ig*dusqP_XYRV;gf(u)7GeI!aJERExZ}EEFBiMM-}l$}i5v z)NO)Uor3wjg6d&`JjVL_Cqa7dg`CU6!MT$$@W2#YTb>83n}I43)DzzlKNCHB1%q!1 zMg|0z&Qh-xoT?Lix=C>T89@v6z0HCnJ7{kgtST0qY`q`DosAfKsTz%oa#37djMCCl zl$DjCauc7(7{o?=F?#`jt|=(=8b47hJv|_~{$L{@wF% zqN@UmQnjoy|+e`|sK==zCExOfHoLxwq}VqM`yvm-Jyl z`6*N#Jb;|899(=~aBVABx4(aU_U-NMcx3H4NY{Q$X`6!c$8Wvi%ema0f&v_UwFfm- z$FSqjYshY$iYp(_#`%^U9GgDKR*mryYT^|hL&2wMk?Jvf#I6jD) z1ASQk-Y}ZZjG?x+7B@*nCK31pc1&>Nvs?UbaKHZVo`2!^e>S1K(Es0eyh&mvjQi&< T3C>>`B75l*$XhTtk+1v>1vrGc diff --git a/assets/voxygen/voxel/npc/cyclops/female/shoulder_l.vox b/assets/voxygen/voxel/npc/cyclops/female/shoulder_l.vox deleted file mode 100644 index d496380b24309604b5324e953ba024bbc08bcda0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2024 zcmah|eQ1|e6h8N!d*9#a3(fg+Uv7TuHk-|l+1y<7W9hVMb2W78ic-tg`~F^53>_=b z^?`}`(U=C6T8$CmQdv^@#~Lw25|JfQgos5D{S^@r{qyv^v;Q)C;o;nK&%Nh7=eg%? zUcYfluZT1(t6xVWS5qQQ^(}RGB@VxU;Fe?&8#lGof1q6O`2 zYMIxWSd9;jVZDGpp@EAXt*7-a6*``A){}>iteTJ{Gol3V3HLqkT06lk^-gSKvdXb%alB!ol-AVG~Q=YAWL$ z^&Dd1V&BYd(J8;b^!(I8`$Ih8S5&pl_Tjbn_kE(n#@5#I5vbJW7b#xv%b zhj4`VLF}l9CL9Ci3z#pld}Gh|62d5ZpzfA$=>v@oVFQhn))C@0bjI*)Y01w}6XOzH z_{P>y55qc2T`l#stV3|N#JI?FhP-j?jaF&N!&4XUSjX7do8;YSm2funo<85z8|A)+ zUde&8Dvr81<&1F6v!Yz9i^W>%$a>atE-ZDVuStD!A)H$3MW0aSceKXa(0WU~EH$!x z3uO*v4h_|^UgEQ^B~;lLt#OQ#vyy`&jHgds)bl*8wZa(@{u{y^!kMOZk};N0AqOE} zlM&9ZP_6SRm+!&8~a@a{JOfjaN~$z^*bY&p8Y3&&(6m1a6=NpsrpZD zi*dDSRBc&=y60+8e7q7;=OJx(Ku+EZ8A)SYgJ4o9D6N}~xu*qLZGyYI1rrVl(jN&H zHr$Cd;W)JHnSj^NO~%SDL1T~L$pOLcE4RvD?<5& z*_gCNFk_EkZm*zvNFa~0erFb>=N`z}Z0wso9{u-E#MPzwz?!M35S6zAc{_uLYeu z=ipfP0*stmfnUFGLi_%4IPhUM&RogGH5A>l|JDZt+iJ$+75*OH4PQ>Of@esV6!wW;Y6+MfY-AMHo?`-6Dn?3Z}!i%~3! z_n~I*ajboJ2u-I)QCnM!8>Avx1pa`I3a)>4lizjD*Z;-&7modBx3uT`{yWAfBF>{6* zL)$8}Vyrbu9l6RM#2Rxh=N!3KYtC6~YyE1iwbq}j>%sm-_H5VA{oLn1=f2K$&fTlXwYwwDG_<4d`l16OX-dy*A;ey}KgmN~ejEY2D%8CuFv4JKG z|CP3paw<~Rg-)5!T9wkyrHt6n(ptu8>jEn#vRVbkCIY1rfwhU0<-T*w<5Xyz3zfJ? zYyMltC>L7AIB!Gac^|FvHYG7^B2-p|N;~p!kufT8)}@>w80WN0k#t}beVTc7A~b~3 z2)Yh9w5zf(4Vr zbkprQbQ_)&WKjSr_Ed7rB2<%oMM7s3`NnguI2T;Ae#>{`$YtyLHLJx=K34(1uC6ZJJSN!i&N${~{E6Q)GB7q) zAG>h6?vvYMT1^s_JC~#OxoQ*+R6uGSr0ovKse2*gNldF3%nSs@wF|NMj3BK|aCeU& z{fHp>kziT$(IDeS#;41^cfuwjmpNtp%9ZRfO`98sxNRpx|&e ziU#vhdT}9U?i9@H7A)=;RE-McQQqH~2I;#8axMc07f#2}{WEZFRSvLm4k|@ZM|?y4 zMD*_lF206HZndE^zId$A@AA+b5K__ z4?D|C(7vt$O+`txF3Z8;_46^(vINbKtVY`to6!~Rzz>&)@Y?>T(0kxn^me!6#G&W0 zs(djr)2AahnU2!J0+g35z{;hCsI4l+mWL{E`U6Vzo_?;18Gy!Hv&u@w>tK`aeHk;p97;(q0(+Zy!Bz Y%#?Be_~PK)H32d!9!JiS;i=Bb-(bj)ng9R* diff --git a/assets/voxygen/voxel/npc/cyclops/female/torso_lower.vox b/assets/voxygen/voxel/npc/cyclops/female/torso_lower.vox deleted file mode 100644 index 148c1aea31402a148c76ded5a9954ef940a1afb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2996 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 jz4a<&vh@o7q9tmM@HT8 diff --git a/assets/voxygen/voxel/npc/dodarock/female/chest.vox b/assets/voxygen/voxel/npc/dodarock/female/chest.vox deleted file mode 100644 index 1bf8d8c1d5f44bd8a7f78e51f696b98301a367bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3868 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 TlgThMGow#JXYe2Y%0H05c~8@4 diff --git a/assets/voxygen/voxel/npc/dodarock/female/foot_br.vox b/assets/voxygen/voxel/npc/dodarock/female/foot_br.vox deleted file mode 100644 index 1abbfcc40f532df0cbe36e4b0e8cb8e86c86796f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1232 zcmeH_-%FEW6vxl=Zgo=^VNf=(WSAuefis6?IwP$iHOVHn<%;5c=d2O^f>$a*N=B#^ z66T~Z5g8^ygg5=V2=PLYu0{mAh@x&Hx(b3IKAr8q2s-fP{Qf@YdCt=v>8YF$kt40) zqpIY!SEMT(Yg=D*R6Gg|$r?q^iCB14by55Z%Xl2iSdL{CVQkBilx2)9#_L!fNg4Hx zWgM-vl_+J2gU+G<1F5_F0!_RkkXtgmcD}aQ{dmXz(J*yi6iXdE|dKMVw*N`zel*z zAtVAqw_n&>yN&}oTPE&nvlWx13~e1L2ANRA1kL;6+vhnX`~g z1#)^L(y)e;X<=a1;rNpB=Y^9A zEgIjD#kI4H_G!Lth;%xQjzw_|@*6^-5YcE9qQ!uhs;Vl!oQDl&3K_gf^Hh-ejL=+P zTS6w2A#{6@%a0Zb4Gqzr>?RxzQ(j(9?e?w2<1UeiOG}GOO^wSIpYFwzAel@uK0eOE z!UEIN(~OOc;kquiZI}83fdD?Ak66HAIDU=EzB@b{n4|FE9fd-Hd_G_5ZE9*F7K@Qe SrO4%S`XzJ+|M9Q9f&2whztdd+ diff --git a/assets/voxygen/voxel/npc/dodarock/female/foot_fl.vox b/assets/voxygen/voxel/npc/dodarock/female/foot_fl.vox deleted file mode 100644 index 5e5b2a8e71b55091aeb6b7df9efb76b2b482d5e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1548 zcmeH_-)me&6vxlZ+`AF%{f|R_d^+8I(LhvbwkOxupMZ_mT5#;0d=D!fU@Yy-vnKS3d zoEc7m1v>M@*comcDT^^qtFoLP#z6)S?WR$a%&> zwgwR;PTEB-b&;1HM3lN99i)SFuo*AyGas*2`(CkpEOhR5$HyW>@`+?eiNzsx!eYe| z7R8DiOUKf&?g?q1X|Ft9d3=^vcHJgUTD_BU=R3h-eo-2cP~d&TXQlGuj;}_=a|@U%+BuNrLlG{Pjyh68lbfJ z1U(n_VMN$n!&W@j+>5<%KQ<8aeBC&|neyCi#osb2@@#Gx7uI?i{9zP6Kh4dXW&R{p zw>|KSv3bL|e%-jTro7)9fAA>WJ_|pM!Pjc&_bFH&fw%j4>&1&)e)@gBIPewM>^E91 z#HMJ8lvaO@JHt!x#w{+5Xn$9WM$+QS8J!=Uqh7D0vdG3@e?zfYq*AFsCEJMT?(XL2 zmtmK?ip^eR`05~QO=I|A-ww@Ylj1uYy!P=1#ko0-)y656N_2E|(D(3zOinf^mm7?X zH0bSZuqUs%glTHE8Vd^xtgo-Lyu8f({5*|DgCt3I?iUIL^7%Z~LdvDdH(5IKE}xxW nVf({x+1}n}Yin!g?$FQ>)oPWQnHg4BSM`_B4F2c8@&@)V7v=V+ diff --git a/assets/voxygen/voxel/npc/dodarock/female/foot_fr.vox b/assets/voxygen/voxel/npc/dodarock/female/foot_fr.vox deleted file mode 100644 index 21b22524285aafb653d78d7d0c0988c793311bea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1548 zcmeH_-D_M$7>D1PIcFp2MTt<;g=z>fHKb6;)`V(Iw#8PLP&Zf;(v3;Qa?Uo@AoT-I zu?9jdi?mS*60=2#rGyYeK}v4adLgA?A$S!;$b~3+BjS~y2=e$l`7Zc|T{) zSarO8(aeq?t~{f~{)){`RBA`>%Z0v36vRDZ{A8{2jgz78oCqPLA^0>zIW7s2O^1-L zK}3m{_K{0{TFETmQ6`AD%jLBxq^E|b6QWR(JkEaJW9e*( z+V0(aFmAj)Y)qAmu@2+0o_jf>-Wn4{cvS%(onw5zF+015mquE-JlRHlvX9E*6LekJ zhY?|S4O{V8V=wl?{a9bj^E1Zz&6MYEEB}@;D$mA-abc~S{vU?n^V8hCS>;bsP1^;( z7@IeY>(`AdYpVOb@duB>?X&RH2z;%9exHQpA$Yr&w_d!+<)`20ivwSA&3>cVL~M$t zNNM)gxih!~Z`|V2koI>q$&w~l&glH;95XXBs4enmu)m>PE;Bkh3ZwZ(L}zCwKfesS z+*NG$B7;}^S!)=B2YYsCG#ZrO+2FO0Hz?1|ajZT@rBb1-t&N_CA7o-8qgu@v8p`PI z&e&7byM!s~^*Rd+3#_lNv%I{_{QNvwmXRdMPJF3UqF5|aE2UhTc$1|w@ABFC6}CV8 kmhJ6rwzjr*Vh08WsMTsrPfxSDx~gA7Z}30=l{>J10Wqoepa1{> diff --git a/assets/voxygen/voxel/npc/dodarock/female/head.vox b/assets/voxygen/voxel/npc/dodarock/female/head.vox deleted file mode 100644 index 3efb0cc31a4774f01af1ef6a51f1c8a849e11f0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3236 zcmeH}-;3Q>5x~!xIcLuI?!D3yu}uTj5MpXbLCCg=)tGFHsV<@4Z?JCIZfsgCn>5ws zA}ZWs4TM@2X=6)}m@P^yC4?9RDS7cnA4=&%A@~$T$b%^QB0dU&AmeAQe}&+}XV3Yb znKNh3%$(UhF|6*qlu~-)(dC{Yy)jAY$>p`94D+86zk`p!>QigW&vx_Wbg!hODno^A zbtsV4h6Y;lP@&X1sFhx<3|hy7)G}DWcV%6RqNnI3@0m9>fvHs`WDmBJoS>{Srf z4WtMoJ_!3j0&EzFVgs_)X#-_{g%VhqR;zspKU?h$N=e9MXf|R#K_9!2vkj8i!#xXr zNy0AQ$~`KSTBcdLp>}Ps@B>={iTgI}r(#0~%6Y<_q%Pp!!jSR5#r>2$+`ob-_k;op zbv_a!4L$CQ4+g?nVq;>(K2YviLC~?#tBm+5oNtkbgbh%MSaAU(5cFEq2?%H z5R-TtnL3986%2$LHxTMrp+E%#iJFHB27+CM0u>B|`c$Z3AoK)<0u>B|d|2c-Q)5t| zf`O1Dg$f3esWT{0!9d81LWy1i7T;ykYo;G%>V>h!cl08t(Ss6wi+5fbH5qgKVbs)^ zw`pb6M7~nTJaRE%KAP5U+zYxIeSx(ceT8qMFEnDBh2EAJ*ptrPb|o+RW^7vwxe zEie|7X=N=F%bc~h962CQppE*EST^#HEaS5@{Dac)mC-;N@qq#r3^MWtIqH^LQYhqE z+KBzc1S(j3b5@BnJM7XMGw&gR&Hv`ayIJ6^j(My2gMNdIEZIWe!hXkDDk z-9d#G{RrAT$B}R99BRi1g8v3z{^Dbgrt;taH9ojMx$jAS?U6_P!meF@YTGvd_rZhy zd*AQzGfl{Up8Tzioj&aRg!@y;KTPU={7H9Y_nw;h=HHn9$$kB2?gt*a>YsYxIWIQz zWXF67GtY$TZ`>b$#(mf4Zul24nJzuy5BlqV`GrMayXPMN(Q5KSyk9|H(If^}*!l&fVubMt2Mm#**igMU2c{;TKwop%QRr=RAwd))t; z{MIj$zx{Ud*RJE}ACmvWA9jEL1@}K6cYklcudJ;2($bRq_xJnvzV@=e`lUDg*PnjZ z-%5Y?tu2RJumz`mYyTPl;P7Sl@BG$ZIl}tgTRvOg^4Fe6e)PO=Y-~7gd88rz%l%{c z=eJ-b7K-oQz1#ot4fnhAo1V_S?1$ex=+`%s&sL85;fMD5=H{j^{otm5>!&w;>HK+r z{LBeoUS9U?+qe6^Pk!7_o}BqG%>2laneW{@^ZRy?7d_=?NXo^F7yZVK8-C@=6~A!d zg3o3%UteFJ?_XS8^c_2P_}b!Wf92$N{qpla^k2Ss)$jcHcYf#29lw41_I&T5Lx+5A XZOzY~J?q!5U85w(!T`AEmHvVdi zee>Oio#pZVdZuTKp6_4pK0KP)=d0Zp$Udgox842CWf`sp-h&Oe`*FW(LU26*T`0Bb zX)Q8<}!+?96raq$Hqvvp-209(=uo~zMPX;S0Ya>ec+N0L8N3Fq&=ZXD-Os#r4w4=ql z#OiZK13jljp9Tl)#{Xa*E;6;Lpl3ERz}!qRgN|WxA8YA@c{#I;)z`X44|-n=+1-$_Ns|qJoOV;3d39V(qECMDAd}z71B1orNHI@bPwr znJs32PP=k;2e8SCEe$sd9Exf^i2-Fu`ldWr#U&=GDN%z|ECE^(x|l{(iK$`HDv<<1 zjHIF@)+@K`JgF6ywYE`kElHzdYa#o5m9f8*_dfJ_KCXjYzh;bwbNkns9P>r+%lUXG TKD?E0&)fk&nX7Xy#1G&FVfpVU diff --git a/assets/voxygen/voxel/npc/eagle/female/leg_r.vox b/assets/voxygen/voxel/npc/eagle/female/leg_r.vox deleted file mode 100644 index cd3c13826869123b889bc4c973f77f335f269079..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1184 zcmeH{O$x#=5QX0)X;yBsaqTh0l@+9vpn{6j;w8LB1K8x{mI*fl9Ljn=ip ziWV!1B)x)FUCtW7P-_Cfy<`Dm8X@~)m2{Q>`b)$NP-|9!+MUp_p^SsZQC_X^VPrqe_mwv{GR{- diff --git a/assets/voxygen/voxel/npc/eagle/female/torso.vox b/assets/voxygen/voxel/npc/eagle/female/torso.vox deleted file mode 100644 index 63ce50a1cc0500fd3745a6c8c3b3157bcaef7e7a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2160 zcmeH}J#G|15QXcvdq5n518@LDgb~QHR$vJuWDF7s5jmHbam;0W7M}rU-fa1v<g~7vE~e_<{zuvy2xYZ7T7r4EkCvO;O$+0zIx?qyl>=z|KOgW zC$_}R3UcCbo}bDd;Rk8{p{`IuKXw8%delG4?n)1 VJ~)r->+8eS)zyP~&0GIB`~^7@kgWg! diff --git a/assets/voxygen/voxel/npc/eagle/female/wing_l.vox b/assets/voxygen/voxel/npc/eagle/female/wing_l.vox deleted file mode 100644 index 31a595b3e68815eeb8b7a98232eb663e7f47f016..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1532 zcmeH{-A%(V6ov2gzhft51jax-Q3R^03Xmv5r7ujtB5|IXg^}2zd}aU!K(%z@`+Iz@ zmE`s5aQP`B59{qCn|ynb{q}fYyTdZz0(AfIcHDj`2J53ghTKH8$uu;nc@`U*SOIR4 zLd=o#K>F^RB;f2UBRNk^a805GewK)z+$<@~66_+Lx)`bNT;!`?WQ9M5MFwIMcBX#9 z&*U?GL!>S)GJ;CHCSv4D&!MdlFA0uBKl`eK878zRdZTF)s8480*clzc(92#p)A>a+ zabuc}@KxpraC__+nil5C=<)^)@D7|`@~jiN>YEPmTHweVY84oI9kB3fKNCdmD*z`= z(V@((%&X{C^lI&Abw1ZLTWtKX-%UXi$jp^M1flBz4y=auyt!S&`@43#-RX?;9sKnU Yylk#dyPK=i`~L3yuKc6#rT+ka0MMc+EdT%j diff --git a/assets/voxygen/voxel/npc/eagle/female/wing_r.vox b/assets/voxygen/voxel/npc/eagle/female/wing_r.vox deleted file mode 100644 index 7caf51920f7a78e07be773fed7a08e5786d6783b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1532 zcmeH{+fBnT6o$|7-LaE00%IVaC<0Yg1xOU3(ibLRkvPxH!bogUJ~IFVpho&+pR51l zCVhQ6Tz-nk!+QJ3BHvzQzdhd9ZtxhmfNme&j@vI~!}9?;_;Owj;F;7l#O``=rYs5}&))Zz9c2Q4WjO6!T#H(L)g*}Ev2YeIzO#XzO ziD&ADNM2lYgo?i=e8ftRp{?LAi5`i1)>VfYCbTDNqiGt*PiRW)GdhBymbGxE^NVEs z#xxn}SD7Qw+p~|MNnxIhE^p94-+}W>o@F9deUpK{794Ryu7aV~fu*nZGa+(c0h}~J zhcLG=ub@}ZE4821`?)6Bvd13#-4rxIX08MgLe~QhRzrK<+^)s_{)DpI?M`RTcktIc Y@Upo+?QX74@B6#+yYi2|m;Mj%15scocmMzZ diff --git a/assets/voxygen/voxel/npc/frostfang/female/ears.vox b/assets/voxygen/voxel/npc/frostfang/female/ears.vox deleted file mode 100644 index f70d4c7ec4bb3201cb7be7dbe3c6c00ed045f050..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1160 zcmW;Lv5FHx90%b4M!mDJ@Wcm@yuuU~YH<>gD^yS-=RLr*HbNf36gC!@W55TH!zVCc zFAVqu3tHKwwi~~hO@5o?m))H&Gn==s&L8X|;>GFNOE2-^X2hGbi)VNG2it8~$PGDv zcX77z+PAxM6w~FcY1$o4i``L#_i?$HVmF0Mi>rn2rkHle5m%v)X}UU|LZ&|C)$8X^ zPs4b9Yh$bSMY1GO_o~`eebrZe)%U}SzIapgMPKy&)U40?>_gUPeZO4NCwUu^c>^CqrZdW)~kz_g_sJY(5-GEe5oJej92W#-8|nJ4pPp6`8m$13%i$?fBx);`Vu+GcL;^WVRgUeA+w z63@5|coI+INj!W=(t^Yk`oh8QY0Qv(eosp#FKc`{chwqCE>YPD+1<+9zo|HQEo{{h5wbiM!p diff --git a/assets/voxygen/voxel/npc/frostfang/female/foot_bl.vox b/assets/voxygen/voxel/npc/frostfang/female/foot_bl.vox deleted file mode 100644 index fce0504bd77f058510abb6b1c573fca9acad4aee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1328 zcmXZay^hmB6o%n*W*jP-MU)gMw=e|~KgFUTv;`o6f|k92(^BRVNI^qkCr6@Qp%qs^ zBzmMHaRrv3+GdrSZg^)P$>-Q#?3pKHzkPLne-e=wr)Mwul6wo0H)j{mZnpzo9LlZ# zIe&L?cGF5;4@nlil%)Hli+xIYFN0j_LM}5I*v~r9r+p?#7Q5V{i!sT-{xBvT#w>Zt zl6Fb?PDJyVwH+t+bsVzphAg|BbQ%)-iTy16CSy)~4?5|dkSM9H0>%>SQQfsS% zP0$B@&^L6B<9PZ~;c+~U$MHCxzI=EbkK=JXj;AfD z<8eHW$MHCxzRZ1Pnx?%Ap>Io%$M6^)!(({*?Z9Jr41_VEF?hd4Tx6VJ92g$M({CFd z!((_1kKt*z((o7_!((_1&$o7a`(0`)WA(%DT0hQz>SnI>)AcpCo*qxZQ}Fc108hbF z@Dw}+&x6n3>!U9}>f^6Jc}(bm6ejJD3!cJ-1y7+Uc=!-{JOxj|Q}9r?r={JYwko6$ z-tAFieFTr-5j=v2%LzRm!6SGC4?_}q)<^IN9>K#jgdUIJ5j+BhsR=y;3Kt6}9w}#X zAXj8dHe^j!WJykl9LY=$*LAg8)#Y+o@7#UDxgvi7S9p&s diff --git a/assets/voxygen/voxel/npc/frostfang/female/foot_br.vox b/assets/voxygen/voxel/npc/frostfang/female/foot_br.vox deleted file mode 100644 index d4c87997ccf39c5a7e6a375d99bfa95e84634cdb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1328 zcmXZayNVP+6vpv$s%nf(RtybfUZDcPORzE`8>pa+tor~bHJnFq0uzI|957yF@d+F- z7Y_IY4H|8-Ol(&Et8{k1zI@YN^_%K``|AAuRzzN$p1ouz_huq*&Muza?k9XWm0SOF z{_f)Jrk8vk5*58HN%u)-`;_v&6uHbZxl|$?s}}mSSCVA5(;l5|k`#{1CTZEKWRBA| zDf>kFUehiSRozI|tz_Xl-AUp+ahzqNDqBtLi|(|r&$>%|pZGpy_FR*SFfP5yE~m7~ zjF}lf7v1L4JK1Kg%SxE1aBtzfaGV({Gk=o2dHww9DZgiY+V})pCq^of)_N6efpPVXEzz0*5=zt!lC-Z(LOqwm92`buBvD@CQ}zX`q23%$^b{F|0-Fi|jQFhFqe zps)!%fhX_;p25Qtcmhx02|R<0C-4NGz!P}J&%hIS0#D!xJpHEyp1>1$0#D#UHzdy1 z@i-pGGnN3418^pD26hG+%fgq=f#Y#Jj%O?t9>?Q&9FOA}%ZJDDI3CC2c>0n$9>?Q& z9FOA}%RE-5Yx-X$^nK~^7#_o8cnr^Y9C!?mfiNaC1|N@zn~V#L6T@S8#$&@{cnpu> zF+BZI8Xm)Acnpu>`PLurcuIX`tbO?1+Q;cnTTQKfy1wSo)8nalDxUEg;Hh{jo{Fd9 zdGPsrd-UZ;d;Ik$uL(Vn%B16U!Be@h;;9rB5C4Q7PsLO5R6NxEZRt;_uL`Mzzy7MR zK7vQ^2p+-1?SvkW;1N86ham|)>mzsskKkb%LXSuA2p$2$)P$Y^g`0&7kCYQRkSnq# zE3zaDGAAcQj$|SSaz)l;MV4ei=H!IPkxb-3uE?6K$dW9`oSd}d@z|zmYKOz2y>GwT adcAI|)v7I*%eGi7+I&85ckVvnT9LmLOphP{ diff --git a/assets/voxygen/voxel/npc/frostfang/female/foot_fl.vox b/assets/voxygen/voxel/npc/frostfang/female/foot_fl.vox deleted file mode 100644 index 8df57cb15591c9e50cda1df2cd88cc3eb94c5744..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1328 zcmXZay^hmB6o%n*W*jP-MU)gMw=e|~KgFUTv;`o6f|k92(^BRVNI^ppJ4d2kp%qs^ zBzmMHaRrv3+GdrSZg^)P$>+qM?U^TIzkPLne-x1yr)Mwul6wo0H)j{mZnqs??8>eG zIe&L?cGF5;58Ec`UIw{Ly4a_b_qveF+#-58&}SX!(>{|Viz&-u%(~bm8TdU+NrzpQ zOwulC9&^f5R`xZGNfX~X4q10Y7LM_qbQ+TEa+WD4x1$0#D#U z*Co!@@i-pG)0Y5`18^pD26hJN%fdnDhvRWPj;Ajb9>?Q&9FODa%ZJDDI3CC2c-oRW z9>?Q&9FODa%iLF{Y1+FG`nL3V43FV4Jcg&=4m^g(Ko}DmgZEp+MaBunj^Qyp{kGvT zJch^c7@l@34Uge5Jch^cd~3J2-=(%PRzLi%_2c}fZsuA)U0-wS>G2di1y6qr@Dw}+ zPr+00Jox;*KKk;bKK}ZX$Alh8VbcD%;3-^K@Dz%IhYz90Q}7f#1rK$5TG}0It3nFl z-5xd8NAL(9!6SIMoY3PDJc38?FeIU8eFTr-5j;#o=kuE>^b$eOIklAI7Zl9?RH71@#vS(6o6l9PHo9_u{M^>8@U e_w`rZZnt%_+0^xVU017BT`rgP&fO=REAkgenU5&| diff --git a/assets/voxygen/voxel/npc/frostfang/female/foot_fr.vox b/assets/voxygen/voxel/npc/frostfang/female/foot_fr.vox deleted file mode 100644 index 0f30f5cff4eb3f82af64fc031035925e0e3d2042..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1328 zcmXZay^hmB6o%n*W*jP-MU)gMw=e|~KgFUTv;`o6f|k92(^BRVNI^s4I7gyhp%qs^ zBzmMHaRrv3+GdrSZg^)P$>-Q#?3pKHzkPLneR7UdW{qVPAEiPkSXv7CV*2q`H`r43o+*CT-uD zKCz!CO?g!1Sksg=v9FV49VN@CiT$KINwU*SR5+jSK}Q{0r(;SjGN!Ck$}**aD4oif zQyR0TU1pvDXXeZ8TFKMv=TA@hKmAqvE7&?QQi#;rs$diJ zK_B!%-%fLSXUFNC-s#(=MsM`Sfzca%8?Mk7`a)kQ3O%1H^g=K6LND@fTDHMN!Jxqa z!O5M%Ch!EFz!P{n4^Q9;Jb@?hbTXd66L($MHCxzEpS|kK=JXj;Ajl9>?Q&9FOB^OX_$W zkK=JXj;AkkUzw(9??UL?(&I5ahR5(2o_;&<7#;&*OlS<=ZxI(6Cm08Y$ME#qhR5(2 z9>ZgJ+O0G^hR5(29>epk-QIqe+R9k{@VnNJ^PjqzYyEV6&8?@$Q}7f#{V~8(@Dw}+ zPr>ux^Y{Ab%a8i_>rWmNdLV^K`{RPAaACnyC<-1vgdR`9Q}7f#)a_|$cc`rjDTH@> z)L0+EBX|Ul;NfyYk4Nwb9>K$qgr4;gJc38?Fb$!{BX|UlfMIGv&w#?k!ih)9nHhXB2^E}tX;ZWb# cUv<0P*3D*9*Xwm%tyXopT-G~xpKz|oUj*Hc9RL6T diff --git a/assets/voxygen/voxel/npc/frostfang/female/head_lower.vox b/assets/voxygen/voxel/npc/frostfang/female/head_lower.vox deleted file mode 100644 index 59f940234dbbf826966476e45d1f250a82960c2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1568 zcmW-fJ&sc`6h`llouQx^!~#&Z;DQ1uKtX5vB| zBUxetM1qPgHJv$jl9LyI&%QpnelMQByful)cn?Ueh%SUY{J zf}hR8e8bt@W^$u+jQy$49<+L*_d6Bks$5ws)PNwyeVZkPk8&0;;i_ABCOc(RBM-T3gL+6a!cvZd&WJo~V zqsmt$ujG}ylJ{wayzrxt7xF^hmuB)zo*88FOy0{S@A`9 zQ}8MH6nqLky`=@8f=|Jx;8XA!Z62NJHvOG|oc?5dGCmofj8DdA90xubpNvFi!%XpU zL@dfo$P6+*8J}@%_+)%CJ{g~kPe00xPsS(Xlkv&;eCx+MPN{b$w|9S9dw=}bHpkXJ z{Qb+(ljD={N%)M%0H1_U!YARA@VWi*d%N@HN4xv=Cyxm^B8g4Mg#=f@l*o5doR`YsKgwLCE;0@w{g!;()jK@TT-zOU&AUf)N`IwJcj-R;)WP88(Nh;# zS6NflJw~rw`!m0b#YHr2&ZbQ*ZYpu}cplH=d7Tz-X>l4?hp(1a@25qPPjOY3R@ddb zPpxB~qnkhc8eFyp?t|$TMvp)SfedVOYMY;6 z9b@Kuo^^&WZQ`kQ?43TIv8R{bvF89!j7v~m)s*$&rnk}Ci@}fN*fuqAR1tQU3KLYS67HW7xv8Afu6;I+sP_!i!)Wjtd$5r$Yf^9Q-Pp6S*5@C8_)Kj48A}_V%6CB- z%?P_&m9L6l@hg7C@6!r?VNmc3e!=gh89(D^ZZdwx@9k#%8Gpu~F=l*zo8Sw+;0wOU z|I6}SS*X&q(x5VVpzu}Usqj>IDm()Zo(fNer@~X=8OZQdcq%*3QvWn z!qc}_;i>Rccq%*<9_R*1;k&?7;3@Eo2;eCI6c#HqE;Jdj@USo_@Dz9oJR>T23Oog# z0#AWw#0O7-r@&L-De&}23p@p$0#AXbz%ybV$#k0jGb8*SJvHAjyR&kWBD&v*^sncAF2KeFA>6}>_ibVet1L-J~6TrTZ=KDX29)Q-nvI~)$} Kt+zj5uE>9eqXYl| diff --git a/assets/voxygen/voxel/npc/frostfang/female/jaw.vox b/assets/voxygen/voxel/npc/frostfang/female/jaw.vox deleted file mode 100644 index 61a50187f830070e370a725bad430a097b8d1e5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1256 zcmW;Ky^hmB6o%n5V|!_6g17+Wihc?Tpjc#tQUDStXxR%mEu}937c?n0$&n~2P{b8r zi5}@lG_;nW+RioI@XjRp{PX$m$&BBGL*EzK!%JaQ~HoI|3tM+x0c z46I{!(}eCQ4QnY~cMNTJjO@pj#O@HKI|Shz5<+_jk##x0q31qL*^lip#`f^$#k0%$ z2e9V)ah67uBtl&(XW{ft@AOVzPBVIA!|09P=*y)_uk^}}(kp$rU7}C)i9S&zdVX2x zgY_I0FMDM9%kIwxJexr4jLPV$M6`QI#hTJkKr*qhNli6 z9>ZgJ43FU{Luz;okKr*qhNlj59hssj-$dvcAH}116p!LjJaszoC>{l&JW#oLogyw$ zPEd9fkK(D*hDY%z9>t@0%2X;I#iMu>kK*}Wrnk;g85zwV|K|K@`IpBf=l$(1Q%{d4 z;YoPvYk()=Nq7>Tgy+%cANldupZUqRU%V#tKoSqFuM3{Ug$YlhNO<@WdOQhF!jte& zm$#+NP#G1H2;cImF+PGv@CY8k!{vk?kKhqJf`?lYdd5fa2p+-1V+cJS!6SGC438%C z+)%h!IB}(1$V|>;A|u(6f%IfUWF-rk$(c-KBs(&Yo@|J$WFa#-lZlLEM+VZ9O+27cDp8;zDz?C!~xKX8%#j~6hVt11t1X?g&bg7N*{qOXeeywl{f&3H~}ls zBfSzQumn}Qt?7pU3?zB{@x(L!dF;2ZF7C}D^5XRDB|CYOM9$AHpWbdK`~-6Ae=go# zp51q?6?sma4_7X_D;LPXaT+*|bnL}VF8SHTu=pXdkCTh+y_@_HW|!jZLYkcSiyPwN zf?s^%*vG{?KlwJ^$?QcIZaMkj7|XdAt_zd*f&Yiu2NFHKo4q5E@gdUF#l*P8eqhYN zzKv-v`pA4KERL}*FrRDlGIqe}7@HCf=JtMa_`Q#l@GQa@;aMcL^Tc_YBzO`?>p1pY z!*jiU_T*GzUoNTr$Ji<O5cVS`a)kgDfETDO_%92 zeWuS8nV!EY^g=K6LND^~wrq_X8Iu|l7#DX68^dFG43FXIJUoWS@E9J$)5&-YkKr*q zhNnLU9>ZgJ43FVyk7jrbkKr*qh6i1jC|kv&coa`x0z3*pxtTJtGD%++{;3=&9>t@0 z`cmOhJc>v0D4xE2codJ~Q9O#LEve#BJc>v0D4xE|ePx=a{boYnmL5;RQ}7f#1y6q+ zcnY2ZqHx2)la+t7al2Bav;}aPe!sMTe2Z1M2=)72XamJWF$MXB^z== zAlGD1MzSMYvLPq+cs$m1UF+d+sPF5qy5H~XIF5C<+tuxMTQ{3cy>s_5*NXfF D4KbHr diff --git a/assets/voxygen/voxel/npc/frostfang/female/leg_br.vox b/assets/voxygen/voxel/npc/frostfang/female/leg_br.vox deleted file mode 100644 index 1d5acb7f478bf8f1f9404eaecbdb9b3d4c72af84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1384 zcmXZaKaSHt6vy#5e;gW`AP#^cZZHJ}P%H|9EdU7!TJ`|1rOXjXK|^7CpTq&siW3lt z9_dM(z!Fs3rKTIcGh(y9*!g8<{K?qwUR~UqMC8TU`AZJ+b`W`Ue);rv`@ml!xBlni z{pI=n&{~n_B*b(Ta<~eKtT-Q5oM$?Y5~eW3DdaTCYT%d&#~4Ogr8x|F3~87{jB{AE z^EgTyAM?z@keDB2<}x#v93_P@M42RVKBQ4%;(LyX^)usRU|!%n)3wA|@-Pe6ki42? zSaD2a2&^*%O zOq^omJjUtuvnOYg+ir=}{^z_KQBnwXtDHBdcY3FH`ZmnyjT56cdZTYsm0szU4@$4} zZMi~U=nH+JDD?bSp%;3g7kW4}q`izNDTJOcoHxhgcpQ)8={!7+$MHBG$J5Dp9FOC1 zJdUUT3_Om<@i-pG(|(%caXgO4@i-oIU1Gc&9>ZgJ`WE0Z0LI0Pg^fk}w(zBKVt5RX z;ptn2$M6^)!(({*_Te!+hR5(2p0=fi$M6^)!(({*Hus%rn)WJ$p8ZigibwG%9>vpd z2Oht@06i>UAibwG%9>t@0zPH=k?^4?ttsno? z`f2%F_e-sxZ*I8t^mq!Mf~P+QcnY3^r{F1g9(?&xAAbE=AAS49V?qz4aMAv_;3-Tj zcnU?q!#|PU!In9>F7cSd!4QKY~Z_ z2p%p&=V>kH=&EP=D9M;ZXPceckPLb-Ufx&1O^Y+Vt<6vpv4Z)TT?wgmV_qHPP{P^SrZ}M&sd3|#B^maSp70Ipt zIemL}@*uR9@$H~`6+|yWh?gPouEKk`5DiyB!=()ATw;q7IhPdAgT^_GX$oVUb<{be zuvN|_4s#gdRyYqy<`88HI&4+PSt4BwvvMAyZo?25tCKKJaLkn{z=4o>diR%)d z3FDOU%Jr&kEyd68<2ULMxCVa=)2nAsj&b)_?JwtOq>xOc)>b(Or+0d%cltKW=#39X zZ}djrE-mzhzHn0L3w@g|(`WijpD8ju|5fOPUg(8h?Q&9FODaKLd~BaXgO4@wA`jcpQ)8aXgL(U6&X~!((_1Pu~JO z2EbU%nAn)4Zwp@<9}JJ-F+6>%@E9J$V|WZt-#$Es$M6^)!_&6Z@E9J$V|WZt-{!tE zP1F7|p>JD{r{F1g3Z8> diff --git a/assets/voxygen/voxel/npc/frostfang/female/leg_fr.vox b/assets/voxygen/voxel/npc/frostfang/female/leg_fr.vox deleted file mode 100644 index 09080665159fad1c0c652c449b008213d0f025e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1404 zcmXYvKZ+DV6o+5^YZH?d40ed7`nsy$yga=(i^%iilNU7dE{VK8IeU7$-S7!;>p!P& z&rTk=mNFi^_ZLpUg-hrBrSn4TF1&YNoTp9k+=qq-IrlM~J0E5@#GM<$EQ8;<=qBOb zhqQAk%sx6Y*|`8dP2z{i2RFOGIG<>llekZQ=c7y#26E~}&)n80vx{W(ix1RJ%nv(> ze)5TS2$PRwG0xIz`8c`WKTw-G%_HI%TTRwWX>uvjH_Vb6c+)R!4!QI?v?;MhA_tEf z>pNOEc={ZDjy^ZNdiLa4V&6ik{bO7e3S=N|k#R9{BR6s*Z^M*a`J?1YuH)~Vg7(RxN z;nS7zF?fTooV1NAc-ffR7@eET$Az ziu7%vQ~9I#C_ai$-zt0*AH_%UQGELL;iLE{K8lax)3#LcQG661#Yge!+uV1i*|cv4 z^0xK(6nqLk1)qXXKMs5fJ_U)wf`#J!h?rCuP`D}h6ny%z;ZyJ__!N8!KJ6$AJ_VnG zPr;|)^SvE!Kc%)arGB`s_2crVj!UhdZf-bwa(psA8K3?d;FIym_+)%CKKDQWs1LvX ztdG9^;x!>hB(rFLUGT|F%=l!2j1NB`$0y^H@yYlQx3{I8P}>#Az_-0>?2q6h_y|6N z57U7hAHhfP5qu~K^FvMhDK-`Dr`cinEcbsWdK*=*{1 Qy{@a(s@}Q#n6V;%0oUo97ytkO diff --git a/assets/voxygen/voxel/npc/frostfang/female/tail.vox b/assets/voxygen/voxel/npc/frostfang/female/tail.vox deleted file mode 100644 index 815bb1c37d02c8899c20ac883c7f019abe295a87..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1892 zcmW-gz0NB&5Qb;$wY|Fu#fP|nquhcE3ZOVB2z>=V0tFq;1-PZmC6Iz9#U`;tmqbFJ zxB?>49wAxc3L-&uy3};$@g{k9y|2gPXU3Z!zIpTNAR=GAe*T)9d>cf*e}4PLvOVzW z&T50YhaxZjENn?Rfce}t~-hKSKIlM?HCXKY@H)t zxQO#-)4}2GNgTQR;i_G@8Yl3<)uVvapJnVXCcxyw*@XUVobFA}eSjSnLq6k)CAaC& zh!3k-5M!IqTJ|@#gPjy^cUKFwns8b>%wtHHH-axPfAM5d|5S#lxzrra&O*7}R} zF!te~#A~aGHMXbz5zT$WrzWK)r6#2&+xDR*3#+9LZTZLHY&Zww`?G{VZ-{OEq9$Rz zc#k+2YEo)aYEo*_=D}o_{%9BeU>D(Fmtm46;~^aF;3pfxWP9cZcd&tb?+2$AreDW%JwL{iV0-FSP5V(aL!rsy`cHJc86Bxxh zyzU^4g_=}3H>BcE2C269e7LCPe}KOG^7Gg8pNIcRoj-+ZMhQiP-K@f;;1~RYU+`O4 z#?K5ge#X!EZE3bDQVRG@AB}2%r8WcoIAbo&-;VXFd*i5y3p|m95uS(<;o*ny;fe4>cp^O5 z?QLl%)VhKq;@e&|`XlfNJOYov!*YZVkH91F2t1@j`1D8M5qJb1wn6yt2s{Fh0K?V@ zpM=6q6>c4&(>XpL6r3CRQ9(G9(z9onJ|TB8+uLh?X&bVDy_hqh>g)@X&E p>f`aK_xruxZnyeV{ip7BySm+O>t?g5>-D;>R;&8qN1qWZ@;@qL?k@lU diff --git a/assets/voxygen/voxel/npc/frostfang/female/torso_back.vox b/assets/voxygen/voxel/npc/frostfang/female/torso_back.vox deleted file mode 100644 index eb0a8304206f2579edcfc0a3d9d11c4766e347e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2224 zcmXYxv5q7)5QfWDH+Nnc@>3S<0M^`r+eX2(J*H$?TiVwk3_T3*3=I zIY0A>oOtN;Bn_stI(u@|!4Fe>r%#FVI`f9IWnwVF>%qc#a@0-q1CMg_jP*tyBX5p# z)31y_I?Lv)ci6J$%_sUs9c5neM#-z3O=sQA67Rk$434Kt|1=ozMKv+cdib51hKEkv zso{(jUlbn{2E|XM4?3})x*Fb2`K)j#y;ts;$9j68+%px{ad%WBf8LZcDm_rnrJP4I zaXeFJkFh?JgZrw%n|TkuU<(fCJrVa%>>-XfnXwypox5-03Fk0!IXRtNjt`Ef&iQSO zIb(PNzY%l#XR!xQGE7Dt3s0!y+*{}G#HeA^^SDFNKYVcRo5#HwW8!$?^R!ub68k3h z;faMOu^&$iPYh2CPYh2SADo^#9@rR@2Tv^C2S4la#PQ5yKc0B}EyA4R&Tvl*Pdu3D zeX{v%c6Zi{()3z&rZ@9zb(9%T^P|p;C7*4+dvu>4oq1!eDNmapjkU&FW3A0d^5ZvO zeD+NK|G(46r}14;K?{=JBh>h6#2fKOyb+IOm3U=PiC5y4cx)}i3-Q8BAzp|_x`p^c zd?CINScvo6g}4wG;zC^HZCSn>g&Ij42^xzB3SSML22X>h!87pSY49|78axf2fecTB zr@_IhE?!Xcq%*%GUCuh)LLT>20F?|wR+`tf+| Vhr^-o_xrxv?fQG~f67{s{{Tk>9$Nqa diff --git a/assets/voxygen/voxel/npc/frostfang/female/torso_front.vox b/assets/voxygen/voxel/npc/frostfang/female/torso_front.vox deleted file mode 100644 index 80537e8e66b3ae1ad7d323ff5b4c284230797ec4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4316 zcmXY#y^bYG5ry+7eln|W&+H%`0JX#uTmu6z77apU01{}>vJX%$W3x_+5O$GzxlzEQu^iBAAZFn{o|{Y ze*59upPypDp8*@Oci1<-|MtV>{~vx>Q__BS)#2`wrtzwcr(<^atjcqci`m`Pc(-awljM5Q_U5Yg=985CB&A%`-m-^r;+wx=@0({C7>EC3eSXqbo>X{N)(fWTNtOKr zzBya`?pcg;wOmBwoo@|4agOrzH_z4s<6G>jXVH3*a$?`xtH|ARjd5jP_{6^uQ<4G9 z#8&SH1u@OAK5=36zaGwv79il5Fo_(^h6 z_AC1Yzk*+7pRz|fW4O`IyAhuU@8wd#BDG#>m!%H6)ZW%Qw7GVlGw;^>Y(t;h(E09s zH=efEu1k(JLt{LyrMJ28UOH=r(_Ff)h4l?zrQ4cge?Ki{7+8Z1ojsj%#@QR^F<<+@ z*?rMCqxYo?KKi)o5Lkvagig+A{D-E)`NlsrXE$OMwqbMl75o3U>T7bk*R!IcrbXT+!mdnceXZ*Km~!`Oo;}oLV`rkgqbV zrINd1#5}B0D&I%+K|V5j1#MMy=;Wi32ZslAPz_F#!odK~O8?z z;ygve75@=0I0|Qo$ePh)1$%LH;E~gacbFZmXU=vsoXprquB3vM7{Fc{wddp>eiPhf zZA;<|gOd!;*2!gKor5uz%pA}3;CF0qzaq$=2h zPdGx4r8UN(hu}48H{uOHoQFOHT^DfI7H0-8p>* z{byp!Il@$D?UYF(wW;RkWpOK?^+&u9ZG2$~rWq zSn_P76qlP98Ju28Ob1$P=BNrV_cJ8t+ zz9`yOFj;~N;_Bqy4y|?ih~uZ@lXrS*tE}g)HSSo)uXS`t?u`0V?&t=d#(mtWQz!Qg zybXRkxmW7U%W&;z#i}spYoj-G?gOKzH28CTbhOhs%jsvGy0sGjUOcUh8ZdaUh^1EU z6m-U&W8|z++e+Us`dTCYMz3{h(dcE$9oqy$*NuDLsYyo{#u~NCdg9<52djhC!Pd}{ z2M_f0Mh`UVzM+4McQ|cu;@rIs_lDN2I61yy%h9jV zD-G=$z0>I<9Su1eHFVvGU882X8=d=IkK9Hc;a^Wnr+%D%;>4?9bg(tfR5aD7??!J? zI5m1}RI_WkaFLdF5182YkmISnzFL*%umC_@M6S zGe*BLda#ihs9A>ci*{}&aW6bkm=hqIN9XvaDcJLhVz_WvA z2hR?k9XtnQ@a*8(!Lx&B2hR}(cy{pY;Mu{mgC|1U!Lx&B2hR?k9Xy~rkZk)2@J!&Dz%zj-QaOQV0?!1V2|N>c{ub#yvJ}irw?F>pcKg%oe{T=3x7*Wq z-;sLe!E*-B89av!z;g!A89Zn3oWb*>KmYyq>hh}`|{<>?e+Eb_VV&_`@`+ux5vlF d+rz`d?c>LfxA*Vg-|p}4Z{Pd=Pg$GN{{Ye`elh?6 diff --git a/assets/voxygen/voxel/npc/fungome/female/chest.vox b/assets/voxygen/voxel/npc/fungome/female/chest.vox deleted file mode 100644 index 7aabed08420f52aab6c708eba59747d38f9acb6d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2840 zcmXBVJ8nE#702;g_gN2wQY#p_F=IzvZc1nzc>kK81K`nSF`3DV9sE^^*CeQZ9wxG^b0A<(_;O zO1^|K-&(4d==-s>`)IA*&z{C_7>3&{#*)f?PWe6$`H~yo5brVOd+u>dyUc^QbG|I@ zQ>*v7q}v#VOUc;8T3Ql+xGt4nYW&h=$z4%wiV;`6Pf6^txF2p+++`RpWA_(piQ%>k zB-bhA%UttiTGC~5#*&8H)SRD(TkHGFa9diuEtN`?L%GcIjYGOm7-t%Wc$u@B$$wUl z*z=+$w|TTD=X;6u642r_OsygVkTEw6R zl&DgsLW}*?_ajYuIwgG8TEn%7F^Z8eg_>^JebAq%|4IHuUy7bK*Hs>iT28&c{aoBh z%w~QvzoGkBt6HSKo-@+V9j;NXg@5B;dwqN#O1edBGKl9_7a59TcLPyDOg z7xl>cHO+c7vN>-u?{l9Kb(*Jm8}wv0C-Y=J^s@QB*gxvuIOqFhc4qTY)ND34lNhPj zz4))Mr-jx%YY~W})26l5exz zbI%*!gnc^aE9nz1y$F4##cO6LsD0&EsP&oE`=VFP^U$0->eZB;GkUhf4W5DExoK)N zn#HV+%`-WvM|I!K*y!wRHjA^8UR27xCltl6qu&B`DAwHNSuQ>ASwHk==+DhL8)gt! zb;i=U`s~MityGegO14rdR!aImrr}y*;+ObYsbnjaVx`1q(C@)~CVhxzAmS}4@{jzj zREo7LnP1A(qU*>;*?EPs=crIUzvE|Z-CvAsf6n$$#@;AnZ5a|ocY(G|1O#-&&x=` zEM+kg{pokV`7Y$2|Gz!X*Wq)gjaCYeM>icl4)%lnU_aQq+s?kb*x7gXoxN|}*f;jg z&Bng5_i!uw%D%F%3@f|8M_>=^fjzK?@bj@g4+kBB9s(SkPZS>qo&(Q;=fHE~;W_Xe zc#gla<2jM>9C!{q2c84ZnFgK%&w=N_bKvQz9e55r2c84Zfd}15visce?09xOX9@7^ z0CtD%0`G$S^wU3-h8@q2XIGyc&si!wJDwfSj%UYnmJiR4XUDVS+41y}?s#@QJDwfS zj^`}%S(#4L-z%~A(&O3iYKLX+3;+5Haus0&o1@KbejHV?=8o(;#u*mcvd{;7~om)taw&DE1q*S@T_=N zJS&jZq35^=w%WLIS{YV6{)ipVif6^M;$fyfF}+K@GM&b|j~bqUC*TQq0v_9m9Z$d$ z@B}=&^x`+D_!Y@p6Q9g z7k$zPz0(`LhR3h3;ql8C*U$7s;fp@$gWl)L*X!fu<>m4G{QP)&dg2?x{{i|+A8Y^s diff --git a/assets/voxygen/voxel/npc/fungome/female/feet_b.vox b/assets/voxygen/voxel/npc/fungome/female/feet_b.vox deleted file mode 100644 index 5ce88d2a1330afad11589a81d3b34c5fb0e91945..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1128 zcmXBTF^?tTkH3t)Uq0Nu_#P4OZf@V(#pmmYPq+7Po{a;`6S$|?|yMCNj`tqUlr7!)s zH1(-Z2dPi}7_RA?zUiBy>HV#t4}IuEkE4;XmZUV%`=Z-)p3c*GI?v?sbe_)Bzv+1< znWyt~p3c*G=Fi~iJe{ZWbe{3kI#1{6Je{ZW&`n9%7EkdM&zu6D0w^~t1D8P_9)6k{ zJx}qJ`6-?`RXoL0JjGKybNYCSr+A8|c*c|#Pw^B_@f6RT<~cJ%Gu9@0^OHQulRU|j zJo9nzBu_%58>YeMBXUtXAsr-7^32D^lRU|jJjpX2W%49X@+434%*Q*Q(wLc{8LOVB z@id;s(|8)sd<}RSPvdDkjc2|ZJdLOEG?3<|^K~&;b76B*Q#2lbqUUKmji>RbWxO%t zDUF#K8Y@rm1W)h;Pw=>0^gO{6Ji%i~(engP@C47_Kfl)g`-j(6&l5ZWlA|1CAM2|n*5^B)x3ZDA$XQNul!NSLk)3R1vtBNj l^?W|Br_*UY9*^tca9H>I{kkm6y4&s6?RL9vHXG+g`~x_~YGwcc diff --git a/assets/voxygen/voxel/npc/fungome/female/feet_f.vox b/assets/voxygen/voxel/npc/fungome/female/feet_f.vox deleted file mode 100644 index 5ce88d2a1330afad11589a81d3b34c5fb0e91945..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1128 zcmXBTF^?tTkH3t)Uq0Nu_#P4OZf@V(#pmmYPq+7Po{a;`6S$|?|yMCNj`tqUlr7!)s zH1(-Z2dPi}7_RA?zUiBy>HV#t4}IuEkE4;XmZUV%`=Z-)p3c*GI?v?sbe_)Bzv+1< znWyt~p3c*G=Fi~iJe{ZWbe{3kI#1{6Je{ZW&`n9%7EkdM&zu6D0w^~t1D8P_9)6k{ zJx}qJ`6-?`RXoL0JjGKybNYCSr+A8|c*c|#Pw^B_@f6RT<~cJ%Gu9@0^OHQulRU|j zJo9nzBu_%58>YeMBXUtXAsr-7^32D^lRU|jJjpX2W%49X@+434%*Q*Q(wLc{8LOVB z@id;s(|8)sd<}RSPvdDkjc2|ZJdLOEG?3<|^K~&;b76B*Q#2lbqUUKmji>RbWxO%t zDUF#K8Y@rm1W)h;Pw=>0^gO{6Ji%i~(engP@C47_Kfl)g`-j(6&l5ZWlA|1CAM2|n*5^B)x3ZDA$XQNul!NSLk)3R1vtBNj l^?W|Br_*UY9*^tca9H>I{kkm6y4&s6?RL9vHXG+g`~x_~YGwcc diff --git a/assets/voxygen/voxel/npc/fungome/female/head.vox b/assets/voxygen/voxel/npc/fungome/female/head.vox deleted file mode 100644 index a594f85e5a546aae6e04896e0bf34e0ad2a821f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1300 zcmXZbF^&^47zWUPJfTBKxdBQ^>k}*rLR$b5Xwb4PlCO|<%bWnoEfP&y3X0qSx!?jR zxIj9#9i9!Fd`bMR$MfQue0+EJ{7Xc61X-N@|R8=0-KvDWPT8+rfw<<0n#zSlbb zn%62tvZ#C2yfl5&H+|FhX;oi+sQRj}`hIB97kx1(`l9d4WqsCXeO6?>=NkIZhd%T; z8tIQJMY8Dqqj_mOji>Q6p26d3JdLM)*7FQ9PvdDkji>R9uffxJ8c*YCJpHRRp2pL7 z8c*Y)8HJ6Gq!-I0#qlf7Ooa~c=%>(^gNZP+MmiZwu-0nRG!LHdB*nfRG!LH zc`8re(#lhLDo^F9JY$>3&U8(GWYOE7!c%w(PvI#%<8ts6o&r&vuvmOtA_o-{ib3Hi zJma$Q6rRFUcnVLyl!d486rRFUc*f-&SE=tz*Yt;;C-Y>U%#(RC&$tbEGEe5oJegO0dl9z4MlJi!w@!Q*hz z^8`=u1dk;}&l5bs6Fk3veqY;x(7UXM3M_vX!{XMb2`Pqa0+Bz3gPWUa!~na=EPM^Lag;PV4b_Tn~rC Ux-84O-|yGmZnti?TXQ4+0?6Hd_W%F@ diff --git a/assets/voxygen/voxel/npc/fungome/female/tail.vox b/assets/voxygen/voxel/npc/fungome/female/tail.vox deleted file mode 100644 index 6941b0f8806fab7f480261a5eb95632afef48902..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1108 zcmXZaF^&I!OFCR)@`qGa}Q=j_uCH1Kv!!>== zH+@qyz1JH0(1$+sI2svyNlFvFAG$;5={%jM^GqI3=jlBCtDa|)c{)$$={%ih{tcea z(|I~i=NW&k^K_oh(|I}%-ISDL@f1(-%qie0fO4}ka2e#`;fJZw^At~+pW>NQ#Zx@R zQ#{2pr;n$2il=yrXH04F6i@LKPw~uYo-;EvV{f82Kgp9k$&)HDT?_ZwY{)&iC509Vi;?Fwb+vCpd=&#Smj^YlEg;~G;uPm^Q&nDt@IZ0!AP z&e>eDo}Z`HZ2WW$-8>SmXI#&{V{^^p{63#~Ryx-S=Y0M6{=x6#wTxG@O{r2OmZewC zrs6^X}OMN;>ed<%+Pp$f@uf9}$)%WR&zUYg-D2m=^34Q28ANq)Ym$hv!)J)n; z&A5Q+X;+ zzm=7z@>HJ6Q+dYi9e1g(OxN_czTa}5!c%w(PvIGl0Z-v6JcXz5j7Ni~@D!c`Qe1RA zE+#8ZECv-t;qehYPvI#%g-0#@iRpK#uT0l?_eYH&^gO{6JOSgZ50 diff --git a/assets/voxygen/voxel/npc/gecko/female/feet_b.vox b/assets/voxygen/voxel/npc/gecko/female/feet_b.vox deleted file mode 100644 index 64048592f9ff7be790be82e13b04846e6a4fb063..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1112 zcmXZa!Hp9^5CzbJ<;cYn0U)Q)5iBx7djKSm(Xs(l3QoZhAXN%Z!6{S{m>7^ z(EDtm4}IuEAMx+Dw(Ul3&^ACjc~NYdr+J#Ec@~eSd77trnrD%Dnx}c1r+L=j;Ax)b zX`bepf310%r+J#EdFYm;Y>TIOif2s$PXUyhm4VA3Yg+tRz7$XK6wjI}p5iH<;whdr zeLTfeJjGKyb4rV+c#5ZZif2vpnwhDY?;-j*^*qUwJjs(hYdLt5Cn3@e)8K1~T$D~o z2g#E>YuR{`CwY=5dFE0kPx2&B@+8k%-nB||W~OGo^>fL22G8IbJcDOF20Vjj@C=^8 zvmOne!83RU$Z*s3xEO4>a5!lw29J;Ec?Qqm89Zv4Pt07UIWtq^Js&lm;0d1K2_Bb= zo+o&MCwL4gdY<43p5SpC(engP@C1xoi{60Y;&9?!d6TPLXL_Ey=g-fV&;KIg`_uCeA8~je@%#Dp>&JQE^+6uwoxJ>geg5QgzMK}1@$mK- z@#d>My#4z20BDMR#rXuIZVp5|$u#p7w7=4qbhS!AB(X`be3p7l3)nx}c1 zr+MaIYo6w5p5|#Dx+N+5;whfuSyRAM0Oe+7;4;XX7C)9R#Zx@Rv!;rtc#5ZZif2t9 zPw^B_@f6RT(&8ze;whfuS<}2`W@_d(L~nkQCwY=5d6H)>2T$@OM7m)bd@YfS(h2Dx zd6H)>8&C2iPx2(sT*~B0p5#fMcm~LD)AhI*Y`AbZX($Gdx9E8W&)^w6YMD>WT%|cPQ)A-^p5O_d;0Yd=i=HQV zf+u(kDSDpZ37+6_8`1LwPw)hcTZ`U+;o@-OU3rtMT;wb#Im$uyvXi*WO|Ej0vz+88 z2ieO`;x0G2%041Wq$X7wcPSUX0#7i32gxAV4UoXWWU2)gV4coa@CgF&3ciAK1YW`I zxO2Ou@=%svQToK6d`0T7-`_s{8xfzMU%zPL*Qba-U*BJToHu@M;|DBw`}_U%r{u!# z1v%x9gfhwbo{>;e`N*Z*leVOE&qyfQH4;j3jfBPhGV5}=M~?fF@;yr2bL5ZM#x2@e zSJa2vyyjvqZJPa!5uO!uW^*QOS&WZ_m<|iSr&()UgqkvIJugrCA!dy>FQHD~NlZ6h zoRYfaKF4%R-c5^yrR48{KYsc7d0Q;&vu?lP+|f`Wp3!g`@*)54AFX_L`}%ENe|vT< z@A`N7EN%KX9h#daZ}K@@l~;L{S3#BguOSb4$U{y?f_Zc_RLDITPJ_?jGlrbcrq|_N z&S&r$e5Uf?Gx!WXgU{fj401k$&)_ro%vT$H2A{!a@ELsO>q;<>h6*{K&ZiUTChG?7 z2B87Di_WL>>3p`O;?wzbKAlhJvn?N=&ZqO~d^(@Gq@7Ra)A@8hosZYrRz;$nM}?eE z%8lP?3_%uF^Pvg`0%&lyE8lT3e@o9Xv z?cH{1uFSNVhn!F4Q~6Xrl~3ifeFl6gpUS85seHCigHPpC`BWm+q}%6Wu&S`?R0Wlf zKjeHWpUS855o3NabC>4IOdAKE;1hg;Pw)vo$|2_ye1cE#F(l-Cf=}=XKBj@3Pw)vo zLB`aO8!!}yjt}7tS6pz$2}c~T#}4tp4Od)n#tBCpu*VMZzztViaK;Ho9I(f3eLNoP k?RHzQ*Xw$@T-NjXyq->{^>{q4hr?mr@AvC&x6?P`e+7)B`Tzg` diff --git a/assets/voxygen/voxel/npc/gecko/female/tail.vox b/assets/voxygen/voxel/npc/gecko/female/tail.vox deleted file mode 100644 index e6be1ce75d02d668c7e4348fe07df4521d12e92c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1124 zcmXBS&5c?y6b8^c$wb*?LkA;Ta0L?)MJ)28L`0J*z%9@M6^wLSpaojEEwE%u3(m0v zd=L2W^E=q@&ySaRd;=Hd41>*r^`t;bl8a!l#cB*vIkIh4Nir7!&)miqJ|^{G$&Jhkh)zWdVk zT|cL5`lfICrf7Pv5&F=FKJ*d)FY8z?R32D@+434tmWfLp5#fMxJe{XQ zbQkOfR48c*YC zJdJ1F20V?Y@id;svu+KZ#?yEjNORG3yO^vwu^H49jmJy$JdLOEG#<6gJ7(_ET$!oy zoVOZJ@B~lr1dr22&l5bs6FjCAJx}liPw=>m=y`%Ccml?yMQ_4zau|45UgaWZImuBD zvXiZBB<^yRi=5>oM>)t&wz849%T+FNmXjRiAUoO0X58=halKy0<#HM4^Ld<3r*S+U U$Kh}oyWMVVx7)GVY>bWg2h&z;DgXcg diff --git a/assets/voxygen/voxel/npc/goose/female/head.vox b/assets/voxygen/voxel/npc/goose/female/head.vox deleted file mode 100644 index 0783df653f2b253e63d01d2d6a67e618eed6aab9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1376 zcmb7@eMsG96vxl~{q8NvWv=;>*QM_Iu47KG^ZK?;)4QqH*I90}O;Q}qY;0KAluI#{ zl?|7fsDEskg}9K}CRb_nhlt1+ge)5ogp3vGzabI*_v!o`(R!iife+{To^zh(Jm>lS zo`#xZaU&v9Ra{=JMk*a5_2rG;ZI;ksR~}c?Eys>GmhZIbM8_e;u-n&didfb(*Ttb& z)==%RFv|?nifN8wY{g8q#=7k>qs(*|>xSKY&1N^xirw5W)Mw}#QNPWKDPrX+Vpppe zimBS%vZh*d!_>V^J%g$B4Xdu9d5Xhlf4V5|B&g_2aE zDOcz$6~@$Gm+hp@>!Q0Zg^^QP_+Riaa=L`YcaE|#*+zPN1ch0#_ztFUs=-5hh0uFa z7=K+@cu&ZQaZ;X^z;X9(nmidaq(#t{9nHYuM20Gp@D^rLb109-+G5&Ys^-;}TKc+L z2uxjMb?GXBD<@dI_6otl!NkSIZIPMkB4p#ohw>1Fe!Zb zh491ILU&sVW4&&cub1%CclC5!3T5EaFmB$BVvX3p^`GzhfBic{w*6=S`LWTo7G%*; zn)j#v15FvY-EQ9ZjFXW$K|y~HQN2;z{#dy8qA;D3LTYL%r{g=RESp7oy9w_IXMXhI zH+<8n|4vK{ZzT?MpkRpBOBZ>jDUy}X5}9v|Vo2}n_xmqPiKli?G7au@-ahK3uepZl zku!9SPSN{GfXlN>Y;JC{?_56zddBg6xIq1lRf>v=cpxA_3cp~k3ioe4JYUb!_x~Ed zum9gzRvy>DWH}?C#3>Kwu+sSK`^spW`-{B}KtkeTAJjjDv3!hS90 zF+H{!BNf-Sl7C1jKB>-*3w29^ysqva%0gl}$byzpvoO0Ok2|{xp?M225f&A96+bIt zCxrPggw(8X{fg3VVcH{nyI)v)TL>zBA|Qvfz&4l_+=(US&@!9yAj_W3r7M@`kIBvVPWchVd*oW%Am(W4AIs@-p)m%-p+fW9>#6XVsmF8R7fygr9B;Lm>;35eF-m8u;~x4*E~$ zGWNBWD>n;R!}zcIYg9k~PyPCwP5)Vcjj@p4T08xXt|#hGbd}?9IQZN-MR~Va{T~YPE8-Xn=i93rJ*$y#72ECm#L75B2Kp7z}(=5@UC5l-|>)c&RI& z8{d?$7%U*F`t^7Jn=D26w{IojDC6S;9!9#`n2R4{aAKCoR|(E6EVI78&d%eb>>i%N zcYcYE%d5EEZXO6omV)2OTovwLee`|9%RfGK{l0pClXe#uoqM>t%fl^CD{3Sk&fR10 ebEugrNBldHn$joNRPN)vfA0HBr#Cz$NB#t(H5j7+ diff --git a/assets/voxygen/voxel/npc/goose/female/leg_r.vox b/assets/voxygen/voxel/npc/goose/female/leg_r.vox deleted file mode 100644 index 464f4543cab43d00f8a7f3d698cb408a40efd2a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1132 zcmb7@Z%mt26o(J8B`6col_EvkuKZbBmN8mJDX^^wucLH88QQVB5g{zD;^IOK4$^2w z$rKk9Yg72JiMSB9kl{vJvSlAgL&&nkEE5-FV#qR$@v9-m`0ep_=#ptN<4K;Jd+z<+ zd*5^3djf5p=D3Ko)O%Z%lg>>d9p0d}B^@YxLXoN1tmr%(^jeiq+mjp4trUt)?hFyP z61ycsAsLEHcZM1t-2YO&s58@6U0qE$9OiyhXga?_k?s$E)9Fa1T1eYvZ<1EuF1nA_ z5+3l89QBfnc9Wbqi7WXwxgI^wYWbML+c3UsMzqaH-&4r+bI6LG+!o;(pOE7hc3cs% z`h=$=!q#y?KPObSWYc^im*DBGe6;u?jbWiZCiKh;gLj1db_2$ch2pTCs)UEaejS!E z1NIpc6*sq&e?%xgt*dQXd}TmzfY{MSAKSCVcy>91FPUYZf9$g{gOhrB8$^qXDnIn8VH;bh*k2 z*!6@e3mMyALi9i>T3rQgFS`l)>*;&FmA88Qj12aWm_5Vl@_7>Hj*z+kwES&Q)R+)lt*#s`NqM!MUWi=SX{VwT8-1RpOfv%bF0?vtbJ9iGDX z`4SyhR`GZ|+!v561;3NID%`ui@qNR~KR$N-o_c?i4mTHF`?$VG;~T9N)sheT?xFWN cRZo>8{@qAT>7#2(`%w4KeSgL24Uf^tpN@SPo&W#< diff --git a/assets/voxygen/voxel/npc/goose/female/tail.vox b/assets/voxygen/voxel/npc/goose/female/tail.vox deleted file mode 100644 index 6b724d7d2efdb5e007612a85d59f95b9cdbe0506..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1248 zcma)*e@NVQ7{{Nx(@k=jYp3Q}>ds$xI_C78=dW#Ndd>5ur?cF4ZIa?>W}_itQ;uSu ztZcZ<4)qV0vk(_D+vJo+e~5^T!H{Jmf{?Ky`Zpw^|6V<(HCVyw18?5n_w(cPe4fwu z^ECU8r;mt8U8Sd9N$y68G$xem8~!u3_g>>U@-cO3X{UH zsYSJ@j<8AD%G;E;sXa<_HC8l6w3f0-*&vbq zA~~XnXsy2qt*83v;TJ1653Xk{DJdZk2=H)NsJXI2hWQVEGn-jjsw1+ld*-S4?xXco zIe~63^8+5{hg+E+J%@AtE#h5?>~trQ7T8VdJL!l!8tHrrnS2&mNhH2bc*ZNlH3)ld z2r-?)(?Ma^kdQbd6xGF2do~{bgXy)S|L2U4JRHz5%g6yGU+ zR)o$Av!4h{)54vbs$IgQTlngzu>QK>SAD)&7;0C0w@_slT1te~)m6sS-dJRz!)>Lv z(ZLISTi897tM(g(-*WvYX`j6^C5)9@a$ak|+_XRQ!CB}}|6EPf;ur&{pjW^%%@ zhZbi(&AEwm6s0hDIE&#U*|;kT@V!)uzoC-O*Xnt*t%3fYHp0^vSzEqBc>E+w*WMsD zHkS1C^i34ltrYLgrmWD;Q2+DHUbXW5om|#e^BC8f;VI$n*TPTV3cVdR#)1x3u2=Ev z4^4Dkif8Z(GdJ%gvrgK-`Y*F?_1|4B|EqsX+>Zb3zbq|<_VPlys!Jd1Kira!!{Oj# z=LGo$lavqiksM6s_GiNVSA`jy4ZGdWnT&3Z)XX8lUJ|+zSQy>M z<-@dJy2x`aNvwXE#ezSXVZE=v@4v>DLBrl0njLw(f6PsPtB;wHv-FHk6Z|~P<+)`x zHa6IQZh(V*6L>#er0K>QE|-gk0urO(cT8)-gIinY>s$WuiT(%r{>BPRx#m2?tpjep mao3|GxjA=_*z3@l%10XZBW2l-`!x1Z+&}aF(vgHG#K@m(eX4{Iq7G@iR)IQGlRVGJ0UiMn zDWevNJQH~)@=Vkru_w-04?F@QQbt~hH7C}bSaTw$l=sqDH#`C&5*+;ykuvf~75ecq>y1^qLBEeOVA3Opg5*&FZIC4!n-wM_PkAR2- zXOa3u>JzC?q&~51?6qU91v~;Gj6QG$ad-qoBsfnT9sv;vj+_d31VkjbNE{vk5eY64 zhetp}f~z17kAMiHAB|o!dd=uHqt}dHGkVSFHKT4uZyCL1^p??EMsFFtW%QO&Kckn7 z9x{5!=pp{lxDNWps3ZSyTn9a1?6j!Ef0z?+^NrUpBe(J2!i5Xf*Vm_S223koIi=}Uzv!o`Dvge= zR{p)!F`_k{S83B-OVqc$QzLsiG%~PBBl{m#+sH$j)LyL%OH)+Wce!dGt(TReZ0otQ zLl?QTiCv~E-Z52fHJ#sYx_FIqu);3V}td9j{7ewkMEnbr-O zHkVC1J~2&MSEJhA2F>Ve)`H=7P1{zbhP^dvK3u1HAI{d4J54j5@}r6){w3-8}q zDI1(9J65GVvoF+*QlX;TGV%In}+UNuF+?1(+`Jx zHD`LYmbTQX^SVae)7_@6t4#fOnGQZ;I`M*OL2ZpXnrG)mVgz~(OP-mzK3N1oE@ldov_&MM& zYS4l!XK8UullJYtROQzi^yNp*Ix{v$FZ0gf!={fvFn#x#X=iVv4)nL`)LYB-<5%mo z?YT+X`(~Bi{bZ`nsO}&6FK+mM`PWQ5??3ZjTsKWymb7Twiba3Pe|Y0uwYIkE#kPZ* zJMWN|?AfKM{ZlnIHm1+-Fdc1dR8v!v?wh_{H?2G->))x#+a~My{@?cS@fv!kwpLHf z9MrW-2DIh5r*z52DH?lwrjGYa)d2PSqy8%!r>pDA+3Iecqo;2xY4@hJIy&^AcI-c* z{?~`~{IQcdd-klZet3_r-E~l%ub$BQcTTIlyw(?EQm33V$TRiKp*O>d~yuaV~`+2_MU*_1a Dm8%SX diff --git a/assets/voxygen/voxel/npc/goose/female/wing.vox b/assets/voxygen/voxel/npc/goose/female/wing.vox deleted file mode 100644 index 6b22e84eb1b8e8e716137c32951c271ac468fffb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1172 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 EZw%Nrq5uE@ diff --git a/assets/voxygen/voxel/npc/grolgar/female/foot_br.vox b/assets/voxygen/voxel/npc/grolgar/female/foot_br.vox deleted file mode 100644 index 950b33e69bb6d54b2ff557f6c3edc68f09998b2f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1316 zcmchWZ%Eu_9KgTN?>S4d#O6(>TY8*YcN$y%!E^T;>r7?d)Rnuk&78E@mY0mmLY!R1 zb`hCaW~K|aoC{gCW=l?~_QGVy2*wx|5rnJ}(c4}`^zPI5+^YiDyB_%P{r`QQ@ALaT z9gptwO^8TaeRPis$;l9jMLV1BP8+(^lsgrVvTuK9^koy+G;Yybuu(h@uclLq}3`$OxPF`c8qbYVjSZ-jtN`ESoJGb zF&@7(zhWKLt?G)ks*4RfVqL2kqqlwXzc0b%w%Vd!2vaW$i|+`vMTJDmOX;fJN?+r4I?D5i z*KB5FR~f19ZENREpLsn}r@C1B_&Kt&ve=Y+FFv1-%AlXxt@jhI3Nrfo7G}@*`SIIw zR}-mPig>MT zoSp6%hlbx^Q+GbsJ}+aTvw$(ZtAF2rIxpR8f9xuKJ#cLD9LbMTyghfB558HUxc)JA zo|vNL!$o2jSBOL++!T;Zg+H+?!i}$Po$rSJU;h=?C%E>`)|2Vrda<zpnef?)!Rq zo~Pr{1O5pSX{n9wqlnid(iV+1+~qoa9OBwsmIDW4(VL0}pO=ZY5>k$Yv?D=77!*_< z`cy-#i#1_oh*cp?j8#E#R8SG^(5G4=9*(;-Wg zhrWkC(d&5(;|=o|#v0aUSR2(tv}G-paW-fSZA+UNq8!@9xazS%t(}lE4r_2ihN`T? zSlX^SPEg#MloK|*(=e~N@$|KexXN|ygvHIF**|T?SV`i{k|e09hH9yj#D0lMV*gY{ z#LGA@)VUNPO2De&SFsnKapR__<&&cJ;CyM!L`rnM+DOig0J@r)}9f>=nr%VMvn+CPrQh_ zfS{{J&|fb&&GpvG9P~8gW3aUt9}dP4f4mwK-E~-g^9lSm(}U82OoYqx(DZOIj&@X| zcdsCENHF!1VCfw}Rc;QVC57m$+JV0MUFayuL{H^5jO;1GeAmwPdfl2gV*X4gmOp(K zsi~>hnsE>Oem}|r`Ka1)KZ4}}jK01dvmfW<=JzF7yIzVj%sD^9UM~xN`9Uz)Q;gGz z3anhL!|y-0p>H@HBcJ*3)s1YdA@3jkPxs5F{ZAY%|KIzssHniZ)l=A6HjU8GDP$+I zarK*3TfvsIx zxc+4k7Gv2Mcv(>tNe8^mPL#CeI`B$vobkyMhnCTSZ>&W7vIa3QZp^q3zNt vB9RDg3m{&CKVen{x4yYk-z|P$|FzG*aQ#2qNZrki_T2T&_SP@n{Ji`P(gsN* diff --git a/assets/voxygen/voxel/npc/grolgar/female/foot_fr.vox b/assets/voxygen/voxel/npc/grolgar/female/foot_fr.vox deleted file mode 100644 index b438522f4a2b4300971aeb9502d9c2bbd7c237a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1564 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%0D}B|6*Z7*xobKx%+34X?@o;PPaOhYMFRb*% zD}x_@TkwgO2yVDL@P2M;^B z|333@|IEWvEBuom+2MD6`Xm0`Z`|q6{`hWx`4(7|acbfC-IsDLde)I<)^VXW5 zaNIGzX3ZKubNyOB_Z@HbrL)%iy5cQ5)qKV0EI{q-t;#ZUgX=RdSJ{MYkebIysr`_i?(@0xXf z@aD7r@6Uhs*=PIL&U?hqIP;J%-}QN4bzqgh_}$>Y{b2CN)~)mP>(~1&r|k7BwmjwG zz&?M|o;Uf^5B%#LZkf$|_3G9B+0*X#3zqNmo9_OipK$&0{?boQ^QU*M^7~k;|6Kp6 z-89w*cKpis+~WSJ2fptIzIWKa^3*TnA+**9s0xAbyN8p)y)Tf zb|NydoSCk%&0NT;H8WAE_Q7Px2*wx|5rm8p(bqnV=-aRBaeb+9ed&fD*Z+TA_uF-! z^Rzs<*E=R6jn&~@8YDkaq&Xa^yT>&;5|q3CihK7(!nfR{j!MNC)9on6F+GkVR<%{F zSk;nXdW_;I*42qRUoqlzJBk>m+ZboYQLJil)H~`Gt6Hpjt6s6HCBb>oB&b)cY9~?a zigip-6yr$HQLIsIR4aPPpb-;v6e~_p6eCu>)j3wrwtBYJyV!24IdSu%YhA38AVH(i zXxy`7d-d9bXzvvj6~tmOZjK1`XO_wH{J|}choz-P+;K5H&#s0?Xx|?s*4M!NK$!WF zcIL->D4*{pHIz=~b6&i!72==RhSVh@U3Vjs_an>cq&5l}M}*D8!oxE{QkQUVTu4)& zenBX0OlIeiR3gXHczfXiYGXpvsBmCfIC@>zHf53BnM-~wK-pY~O}!p+hq4Gv<`9XIK#72jv%Kv|pHh zPgpuHT>VsiNSLe>zT6|MJ}*Sn_qPbc2Zc*xFH_?e+A4&;TH&PT>#H86efM^v2O2mP zjSzdfoUx7?mfm`XU#B`L%uA=TIERMEeH>~jr)#GW-!DwOA}qculx1fT4&>8XwuRo> zZL|c^=`7vE(2fG;+P1FU*S+(4%$;s!>EjnjPEKZH+I@JvUW)v=lx=yC$BO+7zpwmIO z{?&g|X%?MzxkQ_Mj2$Ze-}^5qDd9x<1Y3(H2@V`5GoHznbHew}3Kx7n{C+h}F^=>O}# Z>iP+;eP`=Mx42%-&EKiEw(*_U%b(cpLcjn3 diff --git a/assets/voxygen/voxel/npc/grolgar/female/leg_bl.vox b/assets/voxygen/voxel/npc/grolgar/female/leg_bl.vox deleted file mode 100644 index a3e85d4508e167309a74d07514209101f6a23bcd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1720 zcmchWZ%Ex$7{{M;p5O0!oh2^sbh@P%|CCo_%Ri{QcdTnF^Uk?)mTl&w#kMpVl?-um zE9Q;J#4#11gXhdz;(SX=#Fp5f<^B(jMdI@}gJWhwYg64m6eC2Er+mZ+gO zj6Q!@U4O*7j1HsY4;w~RYGR05YRhp(HGa;cHq=5*)Rz>oMBSvYCB~(8sEHv$ROyK! zqRd;)A%=)$-Y{?IiBPN16GPPJ3tOVDkA3DIuqEmw zb8l)!5yN`JdJ`5yZ4CD|tfwZ{a$F7Tsl6zcb(VFOb(VFOcVSt_aiu0!nRlo~*@LoH z*@K3~Dr=QJP%E`^+=~vQ!zd2dcG$DSwW%$&b-1>}w{jw)4&Q(|qSWHh6YE8nh|7C& zxu?rLsTq}sr6<<9T*u|!^vXP=5^?B>b(r_G%bd#`qx$HD_ba?}B8K-&EKwqso>jY;x-dvH5uKGOmHy2_2cp2i4S7E%f7R#?af!}7jP?Dd4-DSCGe5eS=TdUB$Pmnkw zm^vj`dQ(uDlZ{w$0op5fpr>vZT8lH#Rk01jdkZn&v2(p&ujh@JpKQnSN6#W9B?Vj4 zHzODfqBN9;${qJ1To%H}E88*qeja}Mt{7|AOEAej=Vy4EL`HFJ=v8d($i(%}3bELhg;Czs zzwh6x^VT}tat%G5!0Cw#NPIAlH|DP3-EUTrTk|OP3{0W%y(P3rCQUL$} diff --git a/assets/voxygen/voxel/npc/grolgar/female/leg_br.vox b/assets/voxygen/voxel/npc/grolgar/female/leg_br.vox deleted file mode 100644 index c26d7422b3506d8119c700360cf56ac123ad8f6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1720 zcmchWT})h65Xa}7bMLYgB~-T1r4=@OC<~^Qj{v>f)I}g=OR3UTY*$LGX)8z?l{AEs zRa4d&k)VhOHK8I^QneN<*(H8F;HHwsq-h#7#>9}OF~(OPjPdR7|I#N-sBhlnm-)|` zxpQXDJ-73bLxCv~X>W`ippg$fBGE{!p=%L~Clzb)pruqIRt?PLwAjBt+X8jk|>?i(`mV)QXxYO-&3@ zRwnls&c@kAF<*s@DCScu#eBtH6ldi+tukCE#a z6{t&wv8~^S;;{l$%om~R>ix*?5|o}{?J2?TWq~}#{fE4e$!y4?4=D96(RGQ zkT@ckJtbIvQ&3k}fJj9ty6SeIzj+rrEAr4=yA5M|%aH8ex!$ka^F}0Rx{&_pS!88p zVQcPY1Ofq61&dL)<32dmL5#n$9SiRl11`R4}Yf1kgmrUq}-&thlQ96}?*@F)DZdS39ulY)!o z

6Y=qVY%{?s+W%iI0kvxK+7ryiR@;5%=QS$%* diff --git a/assets/voxygen/voxel/npc/grolgar/female/leg_fl.vox b/assets/voxygen/voxel/npc/grolgar/female/leg_fl.vox deleted file mode 100644 index c014543d871a220681f59e7ba1b507534b9b5ddf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2048 zcmchWZD^Kd6vxl?df&Q|m2Ucq()e znOM5kG|<)zu`$>i9{^xq> zd}wXikchN3wXCL*Un7x@magX8LcpIRQ^-`Zc3oG?mxd01zlA@m6Vb$|M661z)~T^^ zYOUosV`GRWietjDC>8A!>kNID80Au{4Y8>fn;K*HqmYh*IKTTRB56Nt)?Yf z(K4qIeq#vhGS*^JaY0Ye#TvQ#mbF72l^X3+W1>_mpK5B+hFXndF6PP23v+0~TpZIO zXUOfM)OdaqMa;#X*thnfPn8($_${@w4?}&LJ!$r#gD%5*mUUQHhq^9KHTOrcz6$HK zB+5vGCdSaW^oikKDM#N)Vu6>IBIpD3reRy7#MF;8D>uBAq!nV0)z zHS^M^ZpHo4jy_R7^g*9i1R7-zpH^9q*Uq-k>CFRy@!|KliJzuSYhU z#q|Nf%A*%hQScZ3C@8?hL>t2IRLdAvx88?M8xmxDTQRn`1!Du7Fm~u!)QvrZ{Ki5Q zJyC|T7v~`}yadwhAls)xM(%`MC`5jnVCD|NoCAV;&j{k}g4_EA(-{|@6fADb!>S$m z=-NFUuZ`b@37TV!#CBqdU+m>u;%D-_WFh3r*8#)-Bmc;UxN#$mf`mwJJ7Q)ANxNjz$aIV za22Kh=zpYF{`dZCYHDz>ZWs#|jv(2)2SxowxOhzP-Q$9jRaMAjGT2tpiw9Sph4lAf zM$Zh4AG&ddE2m9ENl6J_nmdT4$pAL*dj+#L&cx-9=VH982m{=!fA4=-7jmuZxP+c< zz^+3l(Er{jUO#&tZ+|t3(x!*8bk8ta-#LelGm~g+Y{Yc|BqsP1W>RqNvm5%Z@qYc+ ZJRf21o!!ia$(zlE@mtO165slJ`5QpbX}|yg diff --git a/assets/voxygen/voxel/npc/grolgar/female/leg_fr.vox b/assets/voxygen/voxel/npc/grolgar/female/leg_fr.vox deleted file mode 100644 index ccf10306b30600a2504f41321e780c5c5de11a2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2048 zcmchWZD^Kd6vxl?df&Q|m2-2`wy~GmGegtKHlO>(wsh!Rv*v2)Qpr$r4XH*99Z!W@ zL~B^O)-=%8jA3P($u@ce8zvHn$chMJh(z=yq7M;$`}e=+rvmL;H~cu~T<2Wp`d=@1 z+e4d+hef2hzHuXs{2GX~Hnun1mIVA9nM3B1&0E?Vzch6C{YI?Sk<~g9t0GI3cCpen zwuZ4*k!T$&8*a-%u$NIpD_X_%6I~{a-?`_hq3jOL!kkXDXv6u`ZfJ=zJg;OgmN8Mp^8O6b$vry8-mn*AT19IE z#zY56p8HPjj96o-%d)TK9&FlL#(Wo=D9gL&y_?y)x75da&pgpYdBy=_q7%z^V)!1k zc4=!I`_da+9b?CsRyn>W&w8RgV`2lwL=zjbHe{T(DmTy2DVVa)lP);&k@|3op0UtEIJ$SO#KgLKY?jNS>kn2YRYLEc`$;zNRa&kDj$!R>v5`HXW<305{| zVZ+{Rv>%v{*Cy}6+KixONbuwt!Tzh9+fsnSjuMn*Dp5UNhecgEC^=Yw%CRCWzjP1s zwhGD)u=lVaJ};0*xPDIv8JY(mL3LpP8Y|1N zwR$PK)~-TZWiC2aF2cceXzb_w`P6)nxTyUzQ0;yCAdrG_U;QDir zz8);-T7bzTH|}u#ym=@rEW}IYLs%URV&}jsShzh8S3WMsWP3gac~<{E|D-PIwWakk zy7mD3kDNr`d*gWh+y%V-)ijFgAI9q55j4GX9<67mQCC-o>jFqf@F&c);M!+5^j+io b`ma2H!rA}qW;RLQESHSmDmUBs*7N0WG=^$y diff --git a/assets/voxygen/voxel/npc/grolgar/female/tail.vox b/assets/voxygen/voxel/npc/grolgar/female/tail.vox deleted file mode 100644 index bd942887554f59c5c7a15134ee46413ee26d2455..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1692 zcmchWT}&KR6vxlKcV=gI(FSD;g;v<`p)8nIJ_2;7)I}g=i&QC!6e+Q$tsto%#1KkW zO<7}#1dB+aCap*fsalJb0P*7iNhOU*(==#|i6Kp6jITZzd`JXxG z{Acc+JFSnkg(pO$sV2UUK~DNaTH@{XcXbsX*85YNC9ML>x^YO&?7k9Th)wqKWZzFyQK7-~}b7S`(!hiD+t~i6LT`6HSb# zEo!11<7y&)LtjH*Ltn-~z*PYg6?z$>#G=1d%?;!;sEHw>nG;QnrwuhxjzwRKz7~Bg z`dak0q7qf2iZrI-*GjOfWx}Oy2CnkkoSr5`&svM&5T3^8HwUP2=_q+_&td6w4dLcD2Hc> z?BDZ9&HAC^`Kqd_LL!mCtuaBvxfSGv{=y%j5SEvl;9ZyE3)t8A5Dp!5k?3p0!cZIw zV~4OX`4TD@UPNjv9huLB5q_;0k*S@KdK=OcgiPNHSxHA~lOW@mVB4tR!OH@FkKpd4 zAdPwYML~H}3icjLMf-^~ytQ~A>JozHalx~*g5x(h+nj~$?p)+2icm2h!`9vqa!0aI zG?Rmps}CTfLy&)h-V=gdO9FX<&mZtZ#y3IcLU{RT3x-}jiu0%Y@ztlpSiN!%iz4`u z{7T0A1+(u8mM;jdeZo8@n64Lmv0t$EoS>a~f2&~hu;AOl8q`JvomGOqI>8y2bki{+C~;kTJ?6z8R5S7{C!A1=g^)=Kp36(kP|rd|;&of1@J zXCYpckB*A%=&jp{)}nNDmv6<$o&wBw?pS|c@0~Yd{%i-9KYAW1DJj^Jb`QegFiIl1 zsMvl#qNNdxzOfCnALQbv?~1T?y%=Zt%=sCv^=rW|-wOu13vnh{hLuaT`2FV=^bV(D z_lRCS+%4~_a+c=%0h>CC|O&kC^Eo{2H;)xY=O>+`%0 zv|K}P7jS&?0+Juj-D{fTt?%%1lZhYr?`5PA}QG@^h diff --git a/assets/voxygen/voxel/npc/grolgar/female/torso_back.vox b/assets/voxygen/voxel/npc/grolgar/female/torso_back.vox deleted file mode 100644 index 1f3672ac83c3f0d39032fd5db7947df086b0d3bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4576 zcmchaZ_Jlf8OP6k&bj`a`%Z_6AZWl)iwBy9IKbcY%phg@Kv+nTlDcealDUdGrtGPv zw3a!Gh|o5SusJK!%mM4q3uDGyn{$p@YirE8)_U8E)_QmKx$#wP+Pj|Zv+woid!KXv z&h@+RAME(Z&C3p@l(uf1y%9;To|n@0*`1r-H75M^FvbJie9O++!{-q2cXvstc4;DA znyxubOHPxnq)92{AfVvXx|${#N~H%vtYF~eouugu1u6)r&S_2 z!Ke5jD?X?opkUzi+UPMnh6gGLC>S`s&iVXMoIVIB7&UkLjq9N_?iqww!N4K+TniPX zr-vGv2kKA<&I47{Ag4TCQs(?K=bxt)47x5)XDCp+%p5Xv$P)vnmU5nS84nbw84oCR zBX_i+so*R4&;qsK1Epr$$$?tk8-Is;GezcLRMWPzU;;#0CyIl}UjL0-6eQD$J=cCwfr3!kh|oq6ZEs9xu!ZkK+LW1*7IpztL~>8+{N^ zFltV(>*@D=HmD$=)C`=s8@PvoGlB|2uBd?%x1sV(Rc2M0Rb^I{XR0!*I_Wxk9X+VT z0t!a%kTM>~P;%v&!b7a6p$?5WmCCGG3kuZ2KA>RW)Eb&9KFClidx8)vYN(?PlCUpi zC{meKWmc70Rc6I{!g^>@e2|s(6dwpE7Jii6%|xb11D~1D#Ck^wV)7JR8R#2CvT7{ zKFCn2++R_t!p!7;L!G>#N!VBLp+$t52{RLBCd>>UG)Rh1@j+31AfRCM92&i3>}%W~ zS_~fuC>V98-p2lTj?Q|{zG!uPpyWpGVEs5VJPi-jh6j|Ik^9+RV`i*3o_WtYsGy1( z>X65E20R1zgjNt@1p_B<;n}96bu|1{Uodh846SoP%vRVXpj^iWGGOTdjlmlaA@S6 zu_qL$##*3Y@0732M8yx)woH_qO8HjJ~U1_oWB2L)=uk1A@YLsyM=7k#M2 zf+`p|c_;Lt2z^vQ!N8$Y)>ryyMFkWLoLXn}jXqQmP%v=lob{dk(F#JWsG$zI(QEWj zK^2TR_pI5oCkU~E5$6H_fFFcdQG=45@1=7#&iB&!9y(`24HZx@$kqAYQ3t8iQA4v( z7v~J{6Dw+HR_aO}1eDy+VyppT)X?JOjt7*uG_Gm%QAJBnzo!ohWgrIu9hL82t&MwX zoJBuVq;W58MnH*+k}EkVaj`a2txd!l=S}Qf>v$S9s69E<0Ua9uHsW_+aA-5-Ed5Lx zpZlSo5l~2cHxuvh#QQ_>7=A;YYfH~{{pjKMo9}1#Hq*x6ZR(Y}fI=R94d@%O66+W@ z=YH`)CN}ET$-(FsKJ!i2e`sT>Z~Z@Q{rdGWH#Zk=9!PP+lc(a6`TvT4%%2}8Pi~Fz z@44CIapRT`#2vRy$K0MRar}|lIDX)cIR5w-V%_o2$Gi;-V$r9T#j-E2im4-4N7^Kj z?(HKTeRrf&3u4~Z6btW5aq<2X?|&hM-<#r`eJRc-U+`>-tF{iY`M!Cv^P%(O8zs-5SaV*)jJT9GE8EcPih>Ld5kL8aoj+IX@jn%KbFBaaK;?jp$ z`%sFRmr|sUvHxC=bnx6rFV2rI-n~5@`O@9-)OR06SaZ`#jpGmQk{DB=Q_TQP}w-0ZOYo}7&zCOjC>ry;HecM%w zW7nqTv3J{wICR&QG57Ixap<0FdWd%xp7za7U8-x?=> z^w}7OAuc@syjZquS*)H~9&0auZ%nS7iv3@`IG+E(^7zy5R>qmvR>fiVJoYr7_17u> z^7|Bfcddvg_N|Fi&s`gT|MT|P{ph@S?8o!t=dUk{GqLnPKL61@>Hq%u*Q{9+-(Ghl zu2_9ErXP7Y7VTRUuRN9F51&l&?1~jJH8mCYT(T!Ve8Y>8_U(-ec3%)D9)D|wH=KKJ zELpN7zH-^YxMuo5-1+F&;=+jS%yYM?-pZ*QxRW88* diff --git a/assets/voxygen/voxel/npc/grolgar/female/torso_front.vox b/assets/voxygen/voxel/npc/grolgar/female/torso_front.vox deleted file mode 100644 index 3c5ba4e941f19053e74130505723dd8ad4ac6d67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7728 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 diff --git a/assets/voxygen/voxel/npc/holladon/female/chest.vox b/assets/voxygen/voxel/npc/holladon/female/chest.vox deleted file mode 100644 index d76935171716148615a24ca934daf652d46b12f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2320 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 diff --git a/assets/voxygen/voxel/npc/holladon/female/head.vox b/assets/voxygen/voxel/npc/holladon/female/head.vox deleted file mode 100644 index cd03898bcc28076fe2796d2895b90fc081829b68..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1676 zcmeHF-)o#j6umQZXCml+Ux{o@1Jw{>YDhrH+Q!D1Y>SCqLQQMCVcpnNtVx<`5K-YP z)fI%4Ck$oqt~Hc`SFmx%K@5kh@x zok^5%>Jt_v!8YWq+Qg_Xcp@0aViOlaYJFgxFwdR{#@4zdNJHYBW6mU2-P_83OFktG z?>%9h;*QKL7xU^VBQFpgTusg@qd z8~Ld-7@NB2mAu9p=BZJYT9lm18lKeb`TyQ2J=32jcZ^N!cZ@j;@&utK)(UlmsD*r% z{*^F0^9p(8z0ilygOW!$FXuVGsEu&s@)EtUFM@n7G$bM}4L0PBx&>~I^D(K9VBS!d zr4}U|A)i%rL~!ROdgR^%c^voT z;>`FS4Cff)4mcli@jLo=so@;ebH>EePaZxby7Q#u&Rzl91*-=SV!pK%HtbhkE8vw+t56#9eU59|kSp96kA z27J?va=DCRu?W1?jW?gah|5Rb!xs;Kjcf8d>U9vCM4gyKy?Y9G`j>&%zrv*f-tVd- zo2cW;S>^}lFf%g)%0gU&`~~Ex51T|eUMSky+VIOuz%FwYGJ6sIS9`El6J+H<^gq&x zTCIlSI~#cQ;|&z&<}frhic+bBrluxzK6pRI#xjhIWEdF8(9w}$Pc!%8#xcdEEG{l$ zeSIA(D=V0vpGTHun3$N@=`R!tXl`yswJ?cGV{c&j?7R5<{0(e>_#L*lx3RUgwbR?j Zw@|HCF+Dwv)zwu#3GU#3{8wfm{{Yh#(PjVu diff --git a/assets/voxygen/voxel/npc/hyena/female/chest.vox b/assets/voxygen/voxel/npc/hyena/female/chest.vox deleted file mode 100644 index 9c061b66cbab067331fae16e1af2e045f48e16f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2704 zcmajgZD`il8OQPKJl)TEu*PU&7o87l5=U*-YSgZa)6B-F&bqobt-(8KnIX8A5TwmQ zN1INT6*rfK*g~swLu8b?R-$a|g_9zsP)c!S42G04#@_D57<>2I_eAz)#V+vS{LjO6 z&UMax{{I|)98ZXWdx*%|F7xDw zkT^RScQ@txo^wYi(2h`~gk!CUP@=vdKhwtA4k40j#yc1Cd&gd4Mw>&(dqITD&-4X2 z_8JkG!)N&!KIfKmjBeZ^afc0oyY2HG=NsXW%3<7)igDbKA|;$-&+v)60Phm_CJnht zVK~A{X*j`^sl(M0??>Vt%kLT@ad6ebc!X6M4~Ga}r60aVnU#sjiaf)Y3$*bKs8GU} zXoppp2d>CG@WsN}07qYhuQDDkac^Mcl;F#Gjl3THaFKX8+G6gju{KU_?eLLy#0qBvkC4j-ejE7wt<3Lq1LNTv z=!a_{2EKuHVDzPh{^HrtK<gU5LZCMPHL*^KGoH*aWl%fI!{mKI&VzF+z8?fxq|u=hUIk8IcEiM_fq z-LES%bzM30oVHwfR?WSwYCF18D_>lvu5(*ueMvT2k)6LwcB56z`%O!ao9;es`szET z(x|Cn%Cwkz>szKx`>Wb>yjcS;E!K~(eo4C~O$TR9Lzhf1d`#@Yc6E%b(wfO`ZJzJd z^05}JI@PZ33oCU0`}b(+Q>Ha9G54J5!D}Y_HtSE6WV4O3%PpF|XOS-6w?vOFuVVzi9g4UFyB2^L?h@K5Dx4UDL>J)ANT-r$<_K@~CNU#5CAr zId3sQnzQ0$m9NDU6ix=r|cdJG=E!U~tYc)T(UW*!PdgPm1HSnz+ z8a;YI6VDFl^bbchfAOSlzW1hPzPCz~PcB!rTGh7Icd74zdo{SNL+h6}Yukn{oqpwR zUHZi;{rQ7#-TG*q-eAr73#Jc$Z~E&WO%o%XdTnZ>ZoIuy|M<%xjlJ5eQ@?J}yC1jd zmR4wh^H|vb)11o*)6T9t@BjF|uY7L*9m|^3zNDt^6^+{7)u_jM8W!^V@BTM;w5z{+ zjh@6g_u)u#7gwv!vDGKE@8Qd` zsR=C^TcWFHZvTcawsUtnI`o6JvwCRzjGlh=q?QdX)knWstE&TTnpwG0|GR!3m*;xo z(1#j3CcSXxqNaW|ub*6gPp|*srXF~1S`WQ^PJ7Q@)1h~6s<*dSpP6JO=wAvqO`rbm hc7C67zy4o8Z{fmwcBe9T-l;FQe^KAU#9th5{{cv7);0hD diff --git a/assets/voxygen/voxel/npc/hyena/female/foot_bl.vox b/assets/voxygen/voxel/npc/hyena/female/foot_bl.vox deleted file mode 100644 index 8693abaf044d2fac2483a78de434fe836ab4bf4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1244 zcmaize@xV69LGP;_l_UM4?&It4m-{Rk~^9xAV1BHfbclMkR&~YaiEJEBOSXjrJGI9 zSmZDw2DD{Fjj`q=Wx#6vLCi68bIy@#ZH+nCTL1P(YyJ1?Ib8qbuxESi{rx6&06FKvq-DgU!NE?^e}1klsu<7cHHls(i$E48fB88VQ7@ta*$7905Yis0M z{^n1Mh1Jz2qT_~liDus(0`1j=2Yf6Ids!L_urzs=@})DRc&ub~I&fSl#5G-s)W;yb z&m%M2ku@tRO+rSWuwzts>823hD1?Pwj_iPS(@9ZMuq>y(}$DR=OuL$yn&OaEBj3*-t7KV4F zGPft4hc9PC<4(p!Sl0Zc`Asu^PMH5#Se+B@-qN;5n5h@OIU;PlB?KFUb8W(C(8^G! zFcB0wDujVLVM@=pl-dZ^I~i;#VB&N!;iKhD^whHY{+s+h8>BGT%KqXUe6JL6x~-hv zMj_HJOoxP(4~2!{4(8wSak;&c%(PV6+*X36*^D&gv)EBYYEmMHU#rCbdJVmu%?zIL zGx}aHi*rM)-@eA!+fKqKvPnotpelDe_4{_yQDvtnJB6xZ7o(SVF#oxepYOWaxL?Sp zI_Ki7aPK?e*B^z!U;$H+64q|i^2aZ&^j}F~5GIhAll2cTO_Zu4Il@ByHCBZ~tX>8(w!FC(CxzUsw55|0N|Qd{jP7(cT%V zhcA&8$>Poz!ow57^@0LiE*Cwy0~|WIfJ6pK?@woW^2tBEVAFTUZs*j72mj3wmbTwS=$C*QBL@9Z!KE=}Y6Y=zdF w>v%jK9t%jkhQBba3y;2iQr{zezy8m!pWx;@+e)L(t$fk>XZbb*KYPFY19k^2=Kufz diff --git a/assets/voxygen/voxel/npc/hyena/female/foot_br.vox b/assets/voxygen/voxel/npc/hyena/female/foot_br.vox deleted file mode 100644 index bac562c25ea05043b29ffee674bf1733198e74ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1244 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 I_}TmAAC5{eE&u=k diff --git a/assets/voxygen/voxel/npc/hyena/female/head.vox b/assets/voxygen/voxel/npc/hyena/female/head.vox deleted file mode 100644 index 9f22a35ed39327c33d069ddbfec4d1193230dfe1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1528 zcmaizeMnt(7{{OA%TdXfbY8D|U03s^d9N`yb-u23P0d}ME@!jtZi@FFM_$ZrNXTZF z#deou!(}GApk1>Ni80&cDn);o3>kwlhK&e9#;EAu{)p(mZ_l}_e;Td>AD;8P{hpWe zJ6#8l?TCz_nzm#k@bWj>>Q$|EfOC`7tqqO!*Mrp$@6-!2Pe~J+?DNSkh%7_?TgJXq`H#MV# zjtK5eNga`~cM(v+h$w@5;5w3}=DrN8H$$0%XB0f6GPEfDcF^>gsBQLLoewB<#Psjsn|X_`_zy+FBc|=el

aiocHxGH|O5mEU0W}$*foDK-+d%7fq_z<< z2MOCJ2ru3sBn%Le!-RC!?biquZHZ_ZOoi`!IzCu=4vir~#}py3NH}|+b2}Vx2J=xE za-%ZpLC%m3`Qr|_=X0_9_6}qoClsFNv!@ArR|)hw*B?m$O{IXAY#7^-hJ{@jc<@pV z(DFQ{h_J%^!2HTgogplKOjuhW+_}lRhcMSf`1%lG^G!mqnQ*3yFcGw4w3jd)B=l4h zh8qc2*xpg$K(HwvBOS$4kH}Knh5G4h6>@CYh>&wMB(N%?k7DBk2 zF#9%P^+UqaSPvH8X~o6v8f2xXq04PYup$TJ%|(dzlp-xT2?t-Tf$z0?4D_~R_#Qc+vx!oKi+X;^Ii!) z<(koX!rgBPKYvdc2^Ql@xE$-(8}R#2ofx{5it#UPxOqPto5+Qa_Ys@FkM}Z6XmD*k z|KNcao|xa6^(-72NpR<;pw5+o!_~>L{{Ef6(&>QLU5MkAJ2BK)^Thn+<>mOOY8Iut z=TJ9x0ombf-2R;K;27araWPyj7y1i^abW)vC_I9Up$x3dJpP8~9DH}2PP|(*g?)9C z=({wEte#BV`>F^lzHCh9<>9~etvKtfqn&p#)DN7USwQ%UC@wGE!YAKtV9)6>?7J|F z*2pS4Z*0Kh@!$~wl)&Ims13ryZyxveknh+3`S~x5{byTA%ej@$vOmoiJNW7O^fy)0 BP#ypP diff --git a/assets/voxygen/voxel/npc/hyena/female/tail.vox b/assets/voxygen/voxel/npc/hyena/female/tail.vox deleted file mode 100644 index db934266b5f96f855cb8cfe2b15f934b05eb0432..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1176 zcmaizUr3u*6u?i^4w-)zYm6r8Vit8x;;5}!joNi_n%S6YXKh`Z)?i1<48gU8A#D~q z+BjKOTwNyGL0jjB$S8HKB(kvwCq+u3l;X-53@K%dz3yR*z5RB-l)bFj9r%6c-h2Mt zbH95B4ji#fi%3tquU9D<%M zYMiUaxk~Gl)`fJUYzm#Ib&VWRF`~5cRY;EV(a`0E4tBlXE~>sJZnv9wJkH~ku)GOcf(b29n!L zSlC&{!&fcP{Ss3mEGvFe{HB;XBP@OhOQnDYwX9uzj-5yD-$-M#7C2Cc0`!2kR&)D&)W$Ed<_dCo{Nis z4Ro$6co@}wH5E~9Rypg)LHbj);pOT+s5J-c7DF=V&i@-S5(dP zym0S(;nyF9SlGekL<4I#I{4$4exeukOnhzN)&mn8R1#3fc)N0_L(pT$RPNIg2^$F3Rrj-~OAdW_+${jyLTf+S&3{{|yZdeA+xq-L5&>k{2)~ zOx*cWcz8^>?r`9AIvK7SW&ge}^XCx;Rcnu$=qf z)UX^dk+RwNZ+*>A%XPH>9?@YqJF`IIt2Cc1-RAQj*4ceJ$=(aI_^++de{&s=$HQX* p$ye|fx$DBC@1E@Mk-A_1XID=!`_4AgnsGCmw*D+zHu1CLAtDj|+aD4A_w<~JATf&Qz{C5#&-cC0 z_rCA<9e2mB@-Y!LrnU}qPEpox)3PVcb2ZP`tV0K>so0NA9oDT3Y8lk$d~}dHHv6~8Ge=QN zg=qss*d#|p={w{@gw2>UR(a&ur?P0HGQ%~^AnnsXH2=Nz?TdYZbL z`I@z8n;i2s^R<7bMXeBLVzEz)HCntolQS?`tI0bIkPFZ!B*=aUO-P77p$R@R-YL(c zl`wsizC+mb1Hu{!n+WoqIO2&do(ge2OdBR|NqXm|7n{VKf11+J&;b9tKO)$C`WlwU z{>1OG7-nZ%=lOG~ukcUEPZpr4qa5Y^tB@FPgtP=8ongqtgy{}xK~hdjM`&@^_K`F%lM zX)#h&71&$18r>Tk;Z_wOTU&ymO)D_HZw)dpH=(m*JNmlzV6gundSB0A`0Y+iPo2Qr z)zfes2TK<(LV0;PsuOY4t$qs6txce1eKmHx)QI7?mf`%Tar}6r3U_aEYH1-;oyoXXYU+PP-@_ES5$2lFxXc?=hC7vV0-{&W9*>3WPEYR2q49)6w7{_p;4 zYHIL7{W#WCPhj1^aTMi>aQ!pEojroHm6b>&5;(NH2irDZg5-L!qv5>r8DsH@BSK-MlT4*qDcm!v1Xf?6cHvv#z4lf5kbfp5&hdA5&aRodcN)-ktl*5cz>Ut@8|h^ zKHtwLdhoD+LPS~{!Ut5zpDvO1aJ=~;$5F8rZp8zN!yWPPifTtH6qZSgiRFq}R$A0p zu86TEX)If{9Z_OZj4Nhb(jg9PJ1UlFz0tgh8k45l9Tj86jBP33XwHg=F&cAfwU6ai zSP{#C#*DGmwqusjSqjT?MJ>@8qS|t6AIG*duls(uB*(PR; zJ9cQ#^9{Pjb*ZhbWvW@YHzw@8v`mrb4}SA_SXyeukt^XZ{t=lWFTO56{=qVWlXXb5 z8|irvnR*mi_LA8uQyW$7mW5+Qx-f zW`)zYmD`p}exi`#fl{jHL*ykr6prLlI$c2djqT(d6^hSj?+KxPQIMB(et$YL{s=PX zVQBjnW}eFC&a-*Y@;KunEGWKL{Hz#1CCr`|mS%*T*VGTm`gweLNLV`|#MM6)6-JL~ zyiaHh3Z1n=Uz2cA<84*BB$^B9ZwoMSyn^Z8FrW49=bKc7U#1h36?v(zC}7`n0ggv& z=xGsBFAI~e35)Lv)%m%EON%*Ly@O;^9nn%RiK;wC_LMN+xs&*d4fJ#!V4(L1!-FU2 ze>KkNn?20WoMZL+B{DKH*qXHkzu!-Ju#oBz8^>FRBk2MPZ^Zo}SHB59jvh-H$ zf7yR!WhL*`OtQ0lid{oz@uhs+_*l4eM7SIX5DW(CF6v|d-Z>=IPj)h!g$wup;b5-b zo&0=WFBxa|t}%`cpJQuh4!1rpVIl5gOwVld`8#z^ua5Q=lHG9n!VIZT=6PrCI`4nG z%G13=>^?imz7H2^zq(2&6ylzMq$~IxdsVpm)&2F|)%*2td3}WI@66H8JKX56C-k#9 Sw$a~cJN29Wzl&|Ck-q@tk1x&u diff --git a/assets/voxygen/voxel/npc/jackalope/female/foot_br.vox b/assets/voxygen/voxel/npc/jackalope/female/foot_br.vox deleted file mode 100644 index d4cb724b7a91f0406066c10e55f9c666589e01cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1296 zcmb`Ge@LBW6vxl|y!V=9h0E)8UYFkd(YzX4{>UHA)-|>5y1C`--aGG>NNmi@Wh9r7 zO~lx4jZ7?a;uf^bLL}B~6O$ssWXKrE7&amZ86%>9`y--1f=}ml|A<5pbm04(bH3-i z=XuWaJ|}YUuzx~C+8RR#RLP$%k&aNTsc1^Oe^wH0F+qZEM`E=Q9dR z>$szb_B`Jx+P5Qhb#+X&2=~T>y_c3L^8CSX9uG@PZ8&lz^u<3SGw3C^+mC;+oWNu~ z(&9!E4Qx{V})c7oW3wa>XUiinY+&W z->&j>?-0AsPO|UAMLMpo5)1~pCm`txe#c%F?tXRue0TMI{aai|aDC1k?abjue?6ef TW^SXu(RT7T`+vu6$dSJQ@5(RF diff --git a/assets/voxygen/voxel/npc/jackalope/female/foot_fl.vox b/assets/voxygen/voxel/npc/jackalope/female/foot_fl.vox deleted file mode 100644 index c1209ceb395077f3825bbd1450083641138079f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1164 zcmb`GeMr+=7{{MqGmxy%oU_f+-Kn+BsC>D;+^lB0a+a0ZX08&6BFBhigxC--wTeu< z*KAlpWfme)S&2yzVGRuGDr~Fwdn%RJElEMsB%~Uj64i?~!>iOj(K#{H zXS#S#};ttx*w9*NFHhK+PAPGWF*3NKcsLDe5bMHp3hsqkJQ+A0j462=FG z$G24M68hc3oh`!TUcs;8R-e$lTk$PIxkG3u7FsHVGm5V%un=(D2-n!@-IK>avxjRf z8@M0w@?juAPNs>{ybRW_wzJ1qM6gPT>=gPA2xI>Wh3OVN&MbBmE+te^g3oCpP>@E~ zx@<-omf_!AMzC=sZOz;1Y~M?Gzn|`-K}H6T5qo%^goFgl=`S`k)P-h}tSB%_x zW@eI%-#&kvw}{@Ra>kF>{V(Uw&(G&%Q6I~4`&rR(7<0tTqf5ez?ZQ>N9f!j~Q)UYr zDuUVY@}uPI@|jXGdAJqKDm`$C%%c%F`R!jQY*=s5|@d{&k(cR(Ws>6M(zc5Da%@{71i?;$2ufS&vG2zYKZ~J?r>g&J8 i)fb%lXS$EYVpFxJ6W{si{qNj#KfV7m?a#PrbL1;=NhdJ? diff --git a/assets/voxygen/voxel/npc/jackalope/female/foot_fr.vox b/assets/voxygen/voxel/npc/jackalope/female/foot_fr.vox deleted file mode 100644 index ae67fea977944f728a41fb97476569a2a54da577..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1164 zcmb`Ge@N7K7{{OQoq^06I?vNPo8C@ccV}4s$REqqIlb~MYi4)mRU%R3aYS;2*ddO( zikVo>9cGYoZitMQD{-i$%(z>MRgC=23(|npinl;VP zq=~_=>6{q-q9rt`WW^i(nk4u%Ex|9MI89SAgR+f2QL%kHzp4^dQtPYCP#g^f3b z#E`HqDx@mkd|fE1PonNbGJ!LxT%7)tnl7OsCLEa%PTy0x4OX&(c5=I1luo(H44bg` zS#gbJQ+Rs=>4${eGivQYp>jr${i=Q>5s7__Oq%G~kiz)pG#-4J33Z(uXw199; z1%8*AU`Zx@JM)-o*+k&$DnhM$=xRSmZ})K`Cj<1K4>2`zVk`&Z7kvi+A(6rfLRTg*$%4TiVxVV__%0}2!ILg+Zvsj`QZvP}aI4E3q zIB+_hwB>ZLyLJ+ZMo0^%F@5FD8+Kb&?__21OBA^=kWlbKl3U%8}QCkS8?& diff --git a/assets/voxygen/voxel/npc/jackalope/female/head.vox b/assets/voxygen/voxel/npc/jackalope/female/head.vox deleted file mode 100644 index d37dabe9a27c8a1466c7f50035a14b4e1b896c08..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1628 zcmb_beMnwq6hF_`y|=7z`K?RMkLIhf@!BVl4C`XV-x#{`Jj$;rLDQH_9gc+CWuv@lBEBXWXpvZ%u=|@2;$%tB#KKLEcay z$`@*o(VvK%v2+y9WTE)V7Ni^?lj2OZGlBcS<2jBMG2*{70l^Vtlb z`Eg7VVUh72<0r=CQNrANgymVn)r)M`5T+XlU+yKW9VUd?KI#$14>CVMs0$G~D+vSj zgfq;ym8GMnAqRtP1(-Tif|P@b8NroucNDBp_y`YL#Z$>=G|z}U`wEOc%|_{Ca8x>_;Rw;!X!hcWnS7~>}+ zSeQM9)yroQ7Z-=rgiXlK&PH)42jyFzz%wNwG*lO3&kI!;e`7P|KFY!OR|~Ory$Bz0 z&z>&AwXX<2eoGkaDZrU%DOS$c;nyG9(LWlGu}>3m@kScfkoBMMKjc6YwwSR3LJ>BLP`4jYCPQ%RHo_*$Xd2wo7_v3Z z%vNRMf~&QGnK%&*A!ZqFq$L_3kSt_bvMdW(jEN!39*l3s2V;Euc)R(wFg?jPC+B?6 zIrp4%@9p2S&owC`;a0s{DH(c7q*srGo+}tio>6$>U+mi-(d!FNB?VqnX`*T2BBc#V z8$|RX(exrs>o91dYnrBOqIIc2U4@7D?s~0NRQ-Yk0s)fAB=uT5@lO23-w_m9U~?pXG-{J@detGLQhsWGB2FEqjG!fIHPVV zlRg@9K^$>2?g=}-*>e0hwo-afs63-;PYNwdg1o8DPZ*GFF|uH0eCsCWwp+Nn!vP&H zk`-Z5;U|S(6|yIV`A>!AIpO9tWe0_sknr7JVeOc3VbI9Ah>$*JVeH68&b?j6KtLF6 z7cTazUhC~dLv9j19wv|0lI&|_a=4A<58vXq*(lW&R$6My>3r40(f&qa9YX4mF#WEu zbU|ov+R=TL9BkM|yuFEjpOt96gNa>Lb>|=H+VaT!&a#d8 z+!lQ0#WZ`1=?iS2&;S4DudA!$lg4Rk{4+FILuH6er zDuE?#VR7o=9iFzUx8rp3UR9Qz%^8Nyk5M*I%I$BfSd7@nxLl9yzYtfbwZHck@nJYM zHAm{}93L-S=d&MIdHKXRJI_wj`Na~wS62xJgWOlE6oUeP@#Ly-@B4@S-Ba)Dzj*Zp WAN;fRbb(xtEBGJBJt+M6eEA2EXCFrZ diff --git a/assets/voxygen/voxel/npc/lion/female/foot_bl.vox b/assets/voxygen/voxel/npc/lion/female/foot_bl.vox deleted file mode 100644 index 111c15fea52a2b1f51de6b36c1d76e46369a2fb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1344 zcma)5T}+c#7=F(=UmaN|*3lMPT{0wAe!1U`64jD|V5_A|L4bwCWQPQ|* zHyks}juDVVWo#j2F)}4B*|G~p3^69g7-E(s3o%|SyIXd#EW23p?EUc4;Pxg@-t(OI z|NYL_wf~@df{3C`dK)X+X(H;-W34Y4goP=+z}Un%cqpd-!`hHWhLl=FO42nGO|j#Y z*hEu`A*JGbsY@wzsiZD6>Xl09$^f60Foh+VLQVx?AS46Cr_g$dkU7I9gZG1+~>;Ro2~=3 znn3XvK{GFdR_w4u3HbwrZE3>JTZEiAVRMR*$J~B{P!%;JG+;sOd>%esd<88@Li;%3 z_&nk4Lym2C!qx9VNz#w%Ob~?$D?Fo4_-Bg{xVr=SM+hb7IrjviVTnNRaQ&ei(0DFr z!HSU`TQRrWhDUn}fzYcMC&D7*C&sUg@iT<^F9^$XgnPG{2MIH+gzpXz)=m;G_n2`p zMo6EuVfgqKTzszp-L-_l7Q&S-?zPH^{#Fl$+P#=KQGsM<4JP`UvHZ!q_-(cyWyN+h zR1_inh8HKgY7h?*Qb!5X9}t!<6RKTK=>8HMsosS|OC7rWcJx;jVsvjQGTr59Z3tlh zTXl%N-Gq2g8-`BBkp4K1%-k?m?_9&!`yM0@7s6~dqabf9$_p(B_&liIwH>cl_>lf+ z8|J_C;OBdOtUV~hRj!$tCEWjkfZz9EsNah#sY}}b@vg~2WZ|B2DgWE}dIrrS( zIp>~p?!Ddn50;J-QMg5KXGJ?LM4fsh@RDh;ut_g4HZcw!is=8aHl>*%r52KsbatB5 z7-|zu3Wk)5_oXhS(4~^P(x^`=p$ikd7QzyiWHF?)goU((q_F6UwNeyRN`#c8u#zGy zgbWKshEx=i8U>{$3~6B>3+Wo$8gqiz#5`%lxrHGl1%(-_I95uwl`fV}(gbVM)^thS18KTa(vT#>O0YlIDU~I3VDFnPeBQeFd_KhEaXd*8 z_FY>+ne}h{X|-Z`ISf;7>KU{fyK(GjBjUpbGNU>&sbk1YoJM`-6mtD`6!w;)^jsy} zQw^Yi1vKy?X!>Q)iXFLOLjE9OTavKz79neZusK1YTjf@h`#-n%=He}qteo^y{AnwALk4xb;( z0;O|6^Hz-R*oxWRHayzn0D`X~O@u|pPmEs~=`)16F9^%CgnPHy_7kQ9gzpXz)=m;G z_h#c_gpfRG!^rV1xcFWHdVGZ8Ho}!|uC=xZ(SQ@N4j0BxR3qM1kMaIiEPwJYew&G+ zvdoUA>Jk`lxNxGo9s@x_;wWM21H#f}LS1nYbWb^s)a}AhTLZd1c0_9(7~5Ncg`O$| zn!MQmRs$k$w_u>R9kEjpBtIU&!t4lE?_5LbeJA3F9mvkkMnT?IR5^0tbvseFYdc=A zb|d-GHq3qL#LxFUSbI>3t9<6d4B`F{1pK}Sv8W4I5;a)4*@{1Y>BP{bT#S8V#qEcM zSVIXSJdZQnXR?pyGE8W7(}w*IhPFS`e{sPUc$_wPN^;QX&Ow)NGrGM0zyF$=8hldnFj0uRUlAT1Cfsnj;C8#wUp9=;zIjk02HTJgixW@p@LUnUo#JAASdm6^ zV+wtjMo`d`j|bmYU@=mNRB7om^Eds>T!%XEW2hfEJ28vI*9-V;{thO8T*YgrN6~y? z3dZ#%blzHp-|xp09wlWl@E6o7;qmuR>wC=a>%VyZgzNuoBW;o!apwN>xb?)(kEeeD DzhW_8 diff --git a/assets/voxygen/voxel/npc/lion/female/foot_fl.vox b/assets/voxygen/voxel/npc/lion/female/foot_fl.vox deleted file mode 100644 index bbb281ac9449df61f35666f0f558292b88c1a6f9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1308 zcma)5Urdu%6hHUguNzq>*3klO9k2r0mPITel!2}cn120(Lk82T1RX}2hH1z`v}s(l z8;%)f*EJx?9AgV1i;*cQWXm2HF~pb{V~ANy7Giu@_O|R{S@!nZ`EYLrx0C#G?m54E z&bjB@dwcdDEE^}HNQ>UVit5v6#) zqL9=mA~g|_Cgw~OB#ps-Wul12aT?o-c_rB=MMx>h+JFixt|0}-3dvf9q|i7w*A<+f zZ6!2a2rVLs&rX_tVDB3(oPS;Xem|1QBpzo7`>w8_-1;~Ev|6#e9DyO%^#ycv?1#A~yBh*FA2o72hJzs!N7GFkNlF*qY9G@ecz0a|o4wS@Ps7QKIp9{b_ zWQA+Y0q;yHe7Cow=m??WJm(%KG%pe8ZLXil17-6;^Hz**--6klHaytv1cI+1ON2$n z&x~Ig*)xQ>&k4)3ggZCc4iKi>3Ev+eteqrW?la?Jl#o7Y!^rW?xcF`{di{jqHo}!2 zK5Lx=v33^{ooU@8!h^$vYi>6@9uEe} zhY{X44@xCq8?s?>;>jJJbMV_KDZvMoS?p=bp#RbcihGN2@4HGYM(xOyl|40oW1o@h zP}f}y4FG2+W|8_Phfn8kVe+R{>^eP)Jr|}B`f>?fH&zh{1n`(gNqG$X1+_|e^uv?$ dJ>vKEUp#-p^?$aJHpq=Q!~ZO9J@K>S=^y-^E;s-H diff --git a/assets/voxygen/voxel/npc/lion/female/foot_fr.vox b/assets/voxygen/voxel/npc/lion/female/foot_fr.vox deleted file mode 100644 index 312dde3f5bb83a09e0d438099481319fcec973ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1308 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 diff --git a/assets/voxygen/voxel/npc/lion/female/jaw.vox b/assets/voxygen/voxel/npc/lion/female/jaw.vox deleted file mode 100644 index 8c4041c52cbead2a3f9418faf768a5c5d1bcafb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1208 zcma)*Urf_i6vt0XS;&}JM_c}`umakaMJzBV16>&~EeH-7Osf)f8X*l+h#}fEF4_&p z4BB-BTr$VlM#y4hN?NjI4~!UMOpGzaEK3$*d|39j>|t5<_SyOAqrvSYpPc)>=l(nA z-rKWhU-6`fv^NGj)X6s%k*;8<;V-byu&QUL_l{7^+8nP&RcfQdmdOpMa zem~J@lt&3+*VPqDZ2$0=&BpR_JBD2krs!zf#^FQtL`T|4jRi?14wITXNp0!`)_{Y& zzG8~cmgAYOLt4_2@bk#bi^z%tYrBv$C=|wpS8fOyVPQi|$X4yRCRDd)(mH4*bS|5Z z7hj?|Ds)Z=N9Khy_jPV(KF$FbrBN?6$p8hzHeBQRcxQ|7-QGgZL80`Vu01IZ=vk}t8EA14>2x!BtdeMVEtCCCEPwP4zt0X( zUgDskvWT|V-5l$wCEO~+4hhqzgr& zA@g6l_~nk5wR`1!u6rhDg}Xlr{IQ+LfSW6^DpsyH@#n8y3}3V|{;iFh_w!hzh>+If zwB{K@{)4+WKb5~TcOzbx9dA(<^`0!c{Tt}^{r~){s;c;;cA5&`4E1B@ z$&2N2`zztW0pXh4jmP7mzhs2nyB3gG1pBa^#i=KEcs5_(j?>BeWfSbEPjK|&D7n2k z-21MK#ZVrJ;^L?3Z;Uh6+TV4T;eI$XHAn30B$pO$@!3zSyn1qs9p|TM`(lZ%8><8Y u0Ul{7B}3tF(pH6sKRh|#Lw#TW71uBL_@Axkjo^AQqyJg4#|uAuzWfVxAt?_4 diff --git a/assets/voxygen/voxel/npc/lion/female/leg_bl.vox b/assets/voxygen/voxel/npc/lion/female/leg_bl.vox deleted file mode 100644 index 1f02772c67ee9ec9fa2edb56082769cf5145a955..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1588 zcma)5T})J05T5gM7g8!>S^h0-7f^O-M1IOoLAw;F-h20AkwSGtAhPz`B_(v6L7 zi=~E2DFK_*QrZyG7^#w7(xwlT7-CF}F~l@Y8e)8C`quc+G=2Lz7at9_Cz;HdnRC8x zzPaai?mOU{BqFELY-LA24^g`rX?flacxg6HQ8L?sgAwzw;0>?$*`!PgOO+HBBrQSO z7NkrPhDAc#B$O?L$C4r`tVo+uCz&J-o1_kta!pxMdrT=kjNx%4*MtyUS78R`z2OL< zEg_Vp)-gPmB7^azsW>Nvv?TF8&Pf-altr3xHS;UZ36CuqLuqX*=2M#YoLAbzp0Omy z%&j!{#~PGOVqC5Zu1jqSAss2SsSG}6xP3C8RE()ir4*lW`M3|aW*C-WZXuN^SeMZ3 zwdB1trII$W7gDk=VGAuBse~h>a7b~i1ozD6q%Z{;JQJ=P%%PR7gl2BmX1E$8b4upt zbF4>5o;Pb1isvScurQ<}44yfk7wi3axaMJAo`c(`QemkXOS#{IdH9~xtdVg@ks~yP zr6A6;m&AP$-(?fz5XbxXyxzF}82G!_*482#jpETbVei!y6ng)`UtTYkmmRq4x|u+$ zy%R@|)FV1*BQatkF@6+@sne)QoI+YC6FJ>J_|BCgFkJ^~F+hFKfo5I+tz;t2A!PLv zwvG{AzClRtBW#Kh(mBq&MyPU9VD+aVay}iOEWU{5D4}hFaBQA%_CDWj%SC>#A4Sn1 zs^cN#4S3-n%|&pw0Ohy0BkM4s=saUj5*n5W^cM3EC4(kXK?`1tY~O;pof&wrD-W<< z!UPc(*?wXBoo(U_Vg7T%@*LsLO^!o^nHIti`w43&375N5a4|v{JDGvuW1DgDoosZ~ z5(b+IS30@Zs$BH8_%YO0g2@vVh<4OqvZo2lAHR)1W_wXun2Cmp0@$yW;6!H)`Yb~1 z2x0m?!qR0zb$%|)U=a>i@4!HF9Xf-V=&j1b=$>N4yUNhgP>y|X)FJX_Bl@~qF?1?| zv5)!?pBu*Nt*aP+*N^C-Jfx(gAUk~v%JR}s9`K`j$2PoL5y04oTQUE&AHUuSV(nfj zzGTk$EaC1?1pK)RL%k)q605|@^(H+2tsMiG(lGj+7dP+cU=0O`@I212&avY>mq9{P zfHu_MAKvzq{`~CC2>LS+EJ#ItAQc_8o6u4I|Mgc^R^qdoX_S@Epnl{6a$-5S{SD#4 zA;Pti5(EMP^b`&vymtW<8$!lF1{SBDe8Y3O{C4v5@j>wfcGr*N_@!ZFcV*$;_r+L@ z5c@WcPZw_Ci=S8V%IOj8zAz2@t0lDGSVbrl!Xq9f pC9~mgs8zzlAD{I1kl)vT)%h1(|Iaq^ZgHcUn}1eq9r)Sz>0jzML?8eF diff --git a/assets/voxygen/voxel/npc/lion/female/leg_br.vox b/assets/voxygen/voxel/npc/lion/female/leg_br.vox deleted file mode 100644 index 791de7c1e33ed650db4461e50450dc473731c4be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1588 zcma)5ZA_JA7`~s6_Z$|97>92=oDQIzLlgOkk3c&Fr0>VUkRUxOL(>Ukq+^XKo!Rsh zMvf$6U|UAi7;8>a2CUW(VvadC=Nxmbtug11*1zVD*7|pKzxdN(J=?wey}z&fdY-p^ z-+{n55k>3GW>ysN5Ve}IrsrLQk7i*PC9xbh7&9LW{^0XIi&A7tO_n6-NYbVxWhr4e zN@&)~l)_^P;f-<^QwXw^G%O{xB@|gga;;nMYC-IGwJ?=bEYgy~V4HgiWs&eYjKU%^ zOeG}S$`Pyu`ve)bAkCtpN^2IwR*HSX6BXQpw6;lU)<%@rPujz_CrXlI(&Lb3e2V)^ zuSsq`Vanu2)hxQVaG8-dk8o2}`ml&J~hY7n57Vyto)O zbHqDIX*kl5rZjl2p>4^SrS@>1$B~kGaB(Weu3hdm+XiDWOrg1-dmqe&U`~W&KDCGO zD(2A5^RnN|*u3WcJ+IfVKL)<{>gsC5<8eG1CG5Srf_&dU_{-7@^4;P?G`bc@8x70%#=zsZl~^FJbEl z;pH2Iq#nYi1R;&>jBA97XfmwcRK(7w;giJ|(HJMRj1i8_63*V|+Lj#nyMri*hfz5n zL2jQ9!QmW)r}I#Hdpj}@6AI3A?{Pxi5`o_0`2$Iyu@ump4@29xU}k4J9_-2mtd}rG zghiHLSbk?2J42ZLoUlAYxO0>32w|#;@WXz>+DXFY&SYGS5k^j?WANB!Tzn@B9o2;X zM#7bL##)hs?xr9HT8c1!q73o2DvWnEVEN;>@yB#Git{s2SC$9+wIZBouR@PSNE{(d zzDHQPOsMqdzzi4QaODp4HP)a#oPq9&Tnz6i#C%5yn(9ii?~NM7-mFJYXEO#)#W3*Y z?%(Tdduo4w)@Fo*=?Legpf;3(w(3o2EB*ibmzS60v#Lpylun^`=mN46*|_};;lUxo zwW1<~LLqeJ_ruvc2TBYey)PY$6Ho5&Tn@h-zaJkIj$wE0D2`tmL{>*8?tNc~#aK2* z1A(Xbck|p{2V3u=uM0RkF@wan^Z0b`7QXm-6|bBg!tM)`u)kVD>y1@JA`v`dDk+Ht ne?zSj9{%_Q-$Q<1{}tz7aQ#2qNV~y}Vy^#LvGvB!uBU$ibo4{% diff --git a/assets/voxygen/voxel/npc/lion/female/leg_fl.vox b/assets/voxygen/voxel/npc/lion/female/leg_fl.vox deleted file mode 100644 index 1a5d8d51e30a0dc022a6a982fc37c19379c2636c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1528 zcma)5T})I*6h1R^_fIOWWtU$IxPY=tBl1&z3fiSW_3phFixjG>60{m2lxj#rlx%Et zTPzwX-4f8GmePih#z>Vcq)i_vF~pb{V~A;*G{l&+>08r>rs><)bMet&JIQy?%$zgd z`OcZS9s3UCj}wvAptrE0UmZkkdbIfkd%;6v@D^=g95@)&lY%Ea-nBnUSR{oZgwTZ) z5y5LIg(=wz;nan4M1*7r8yd%Grj(klcwb3}AvK0_=u&BxBDb!{rAy6eDdp6a<~Ee( zGL-V@N_q?>JiPCYDCOd_>=QhfE=vi9bVihLnv&zC=4MSUi-b!j;fxUHmgF`ix!5{6 zmxncYbSXS0@i}6BlDQ;vOKDq<g*-GepV4pR!n zITUj!gM`NYRIHh~lwuCW9K2?qP#W)RTsv{^iG9Se#Qi1q5$7Re|DM+y)-IHyR2Y>l|SX#1RkDK~DT8y1IdZZ4q0R!{HI_48cF+Xt{)$^y|4W}ck zD zB7xrG{DW@LSSo1FhvDs;F|*T;N4s)>$X1LIVS(`z<2T0G8N%#mgryn6z1zGF6Q-I8 z-|Z)?o+Mo9O2Ne_Vf3UQL&rAZ;yan>tRW0E5w3Qy*2--3GzT!)T8!}%<%qRcW4yZ& zOCP_D-=}*}Qjm`N@;n%?72`xlHF_h2_z}Y7`-H_SgsR+Z=%GR!uG)eArdo7_($Q0y zgONQ&NOqQ@xxNhh-l#?N%?9*#wP5g66r&&YA~`dJl{?pwcrSq1p&X>7q#!eGGfH#3 zC<_KqwPPDzEe~S!!!4NoGJv1&g|Pad1fO%xb1h;l#9aGj&axi15R#vrX*f1kPSnfh}xHz5@8Bb1klx?n2WYc`_2 z?ElwaQBi?Ut0z%fHif$33&@IR;qF(2M~4VEii;5p2GLzG0CVpgC_V^(zaI+|Pw((t zHou+RTzpV8hTU}u9KSq-%+3rv__hcO(JUnL^PlOz9cObLY`c&CZs6?14B}rW@yXmB zT>Ehaubdvn?hBJJzF0)ttrdjBVLahhlAD3Qp;icwzkjOlF~6_>^7Aja_Mfe1ZRdJE Od;fX9HR9)=r+)!-ct8>W diff --git a/assets/voxygen/voxel/npc/lion/female/leg_fr.vox b/assets/voxygen/voxel/npc/lion/female/leg_fr.vox deleted file mode 100644 index 6a46112e8c54fa2a87efc955e2ae3c5bd280132d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1528 zcma)5ZAg`87`~t9dCxhoxyj=P2Pb6#JC$Sb}t0kk1k1<$MX2kO_`p zJte(dBlAM%8W>VHg<=imHHFX|!TN%Ag!FPe`_^JThU8c&bxR7}k>oQadD(hwNg8uL z=6uZgY^l7K2e>=4p>30p=8FW(~QJ%o)hLJFVLZV)P*M3}wFh@4NsrG=N! z7$vlf5su9g&OYS3Em_Fv4xk_!LS;OR>^?sN!&wMT=c4rPcBCIB6r5-6aYEf9f!^Z$ z13G9d2{h-&(Du!k*_nz*yRrduE5?Yh!1#&r8)NJYVfHh^(hT9=Z9azyQ%!{L_7hf5 z60US6;$nm_axxWz$2Q^OI~nMxCiFKFuC{Zn6EPG#EhT zj%|3gEQpa0w_x_m0Dis~!s>%!e9k%J(}ep!5b(z?40IRaYOEZ~HyiNhFRkdioQ&ab z{J8xv6RXHYgy(UF`y4sWbLl5E1Zmy=d+lw{^q-Tl386qLLb*w(4JM(jdL!CO|9}7G z<>mOaY7!--Q>Y!ffXrAX?tVphbck@Hs0hJe5MBBGu=mb^VgpF+OU1&((>FYq#ota& z4n8Ox!|vKq9KSq>jE;0X__h!WkxY!{wg}% JCj9*S^e;zDKo|f3 diff --git a/assets/voxygen/voxel/npc/lion/female/tail.vox b/assets/voxygen/voxel/npc/lion/female/tail.vox deleted file mode 100644 index 3f2fd028392d6a2cfe6932f09e0ce84e350d12b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1364 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 diff --git a/assets/voxygen/voxel/npc/lion/female/torso_front.vox b/assets/voxygen/voxel/npc/lion/female/torso_front.vox deleted file mode 100644 index 3a8021c75395410a490569fb44d0400a02140555..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5896 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 diff --git a/assets/voxygen/voxel/npc/monitor/female/chest.vox b/assets/voxygen/voxel/npc/monitor/female/chest.vox deleted file mode 100644 index b5e2ca846de576c9d711deed837cb565e8f5bd5a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3144 zcmai#Ta1-g701`Uto@xUMHvQ|LBIhj47HStKmm0SkWMKmrC>W;Y)zZ?gw!^~5FnG9 zI@%N)EI|Tov}vm$q^YHz?*P&GP>CT;ljh7xZH$Q_O=FCY`e2N2%io@+l^BdCS+mw& z_w`?Uf3x>%_b)grB0DyX?u5zehRE*Gv8}MFUxmNZpak9jz}RTaiv05;8nox3RF9Jm ziXz?Rkw+K|aYLr;S57Ldz&A9}7T zlObwXqU*YfOr|xl925Xm2@t<;5kcz|LiY~IDLLJZVX{39gE z^;D!+z(XQF5yx2zNXVPd$f3YL6F$CB>|lbuaK0Ct#6m@dymkB`$9#gVsJcn5k*k7^ z8MKNW*~3FadJ*#2Lro_I-%zIpGWd4`6sr(AA$P2y%Y-huTmvjU*o2HJT+wlMoE>M! zIVJQ3GTgzn;lRzYN8~0lq%|$2=}T#ZwlrMZHC-n*W7}7CvS_%{SF{Xu?IiR?BXp$d z+fwnJSl4#Z^yp(JHDX(v^xe?O0BJ)@B_=ktE!EJ8l~{(Rc0wiZE|gMn9gn|KBh*6a z8`}1DEq#?d)mZwP(nsusW++`P;2S!r7CV~H^ywP0EGn)HRdO~$89Dn(Y$x%P1@!{w zKuuT0)(maWJX(qLpj``jPn5Kwo3tnk$RCYim8nhEj8# z27T0X4`2gV`tji6s`%AhJJzY4{fQ4#=iCpy*1-XuDqu`6S|JB=q^8te>2e)%c<>Nn z9s0n`o*8_N{yp>LoXisPjKuql0a%7Az0kj>M^Ej7{YZ`8vY+JmoS**j7r4u_)N-Hf zI@d;y%#gq^QZrH8PtA=z=b@)aomkbfVE<79eS;4(71&dzdcF&A>?!A>@6_;R;%=py zFN+$xsrz=(z)labn(rLiB=N`9YfP*^9Bmv4F&Tj?r)*(0Hp$a zlJXs6uO956z&Sef>?OL;4vw8Bc2~G|QLq=sy(Nz(^u%kEwGv*-aS4=_7nEt!IPf6fUkn7f&sEB?>WRWan{J& zM3)>jA&<>R-npY6M{RN>NF%uw%%Bv(0b797GlOdB&_z#g%09>)1MetkTZO)ni@@C3 z?s-?r{sR4noR1pFUcm{w7uODvHx_eT&Id=9Y(sYHN+nmsPXqgfJNy$A@mK6I_Y!%- z_(%Hn%6{o7FoVYyh}X#bq^3G{>F5KTiU{85og+4I=DXtp^W!JjRQc9r9>FQ#o9Dz9 zBe|Kwqt`rJ#$CZYazDUb$>9QZBi{*f2k=Oo9sY@Yky=W8q>mVLJ?z|6 z$*Z3>xz=yfcZkh;Tx{+svDH%wQ9kS!Qme|=xR@(TU zwRZNg&35(KZ`fbYw`|$Me%rWmzHR^V5_@FtT03;N*u(*`m%k(S*7IV6!zXOv=a1TL zD_VA7?-tv+ZT%;;&Hq3+Ou~0+e0?K zZ_w)Xy3L;PDO)}`-Bv6evNgBgYU@`nwNu}pYZqS`vOm5vY}dQX?5EVcbYAS;--!MB z_hQFeOYDV-Rd(%-&Gz>{?Y6_uO}CS;^;x?&$FAFa8v~E2`5y+CBVwDE{_pu8zvtFZ z=Ksaf9aHnqn|+H756!gU`O|E}(rLD5UDNig_|N=n<_*~B@FLs4=5{;0+;6Sb zgLZP;V$1WdTD8i??i;Z~kABrQocNy2nV4g5|4i)tePXXKSzNS zZRX*bcIDhhJA7(@yEAW|eRuI0`_hKf_V9Dh*zAL|to!C-yD~P%PA^zs|6M=(-E&uI z5A1%|4nJmg?A!&L`1vLKQTaQ2@we~U7oI#})871>)i>?4!EcV+$jFF&$WxIDWdF4A tp4bP!{;0nXxL^Oz&J&z^XE*X!_U*Ti&)N8~d^3JC-HkCf$~WJwHCr^Lf7S z=lgj&U)_^CDIzU({#K>rt|`*)4>UeuIZ7T=u>FladjtN@t)LQ*f-YKI7m1mo#WYP~ z31Y^@ka&V-#1q7b*~E+)%C{-o6eDia%($jY+)#C*NnF=771Nb3Dp!vg3Z?~Jj~b># z4P7FdDRa6e5mT3_t}EM+IaAl7h85GS9Lv_CHqDqbG(Bo++MKznjYxuKMs_v5TqlZ? zB~?{bghC|npqg}voOA&g{fmyE*vGr z=OA-mF1g2x@Lbr2G}@59$B|1i?Le`kD`AZ?OPuLI^QkCzxB9ylzQT^IR z0w+@WVDV`hLPFbw@aC*A6j!xvPO^h;@^$i&GE&;c=&WJK5R1Q!v4cHRBvOeUgmcbYj;ESPWz`o}0_R`&)TCw@2CAevAIY zFf=to__KLFjDE+tZ*TMbu@RE5{Yp|@7p^x#_y*T7O2tf_Yw9zUGIX4wV~nU7hfN}; zA>jngZA#`0L*{I8m=ZAz6*1#B4bxC_rcz<0%&@5pZBr3L8DT@25mC0t&Zd{^L|-ya zRaI34gF)_%3){{ulV|^v-|cqJEeUbD;$NV(c?I6{ig zLFV3Ea*q|^IlmQYOhEb`M=m~vEIUYP5z-F}S!2ScFNMTDVSPwQ)w<)dP~MV6^=lgl z98cwg#iwZq3T+d@o3p}DOy{;a$+q0&2fb9x`*8K!agRFjPUlc^{aMnxh5Y0C>`9^a znjpJ${ozDpA{mL;87X!#vn7q&FSua)GfarEsPThk@w4U=gTm}b!qSXzBdm3waIsPN zYNxPrP_UYW!A@b!a&Tg=Flh&cs=ds%V zem$1~q2BY~{U6@3@nQd847RNHpPjJ*uR9HIPBJx~WIC$W(^2wI{}tIz{N8-JD>l>L zu$4})1FPJ{Xj1|4{>#eB2<-CFckmTzM&2bel*#o^h1*@i<-$TzGn{1Q6_B1&fP{ug z>rZ2G>i!!ZbLzj7oy|K16TDb6&i+#;$mmTcdbNPXKqlk4x%|6+JZ{If2z%OZ(tiks zre+9zHqVEV?>PJIEuKF*Lh{vLNvi9@^+ph%&&NHzDw3$dADFj(Bb5HUE3{Ih@8Ct!I1h`T2RC@B8!p zJe{xY$(<6BmO5XnQu4qQY4`aXpNu(55)|SUYzlk!`hDLk9TSg&P0UD~7|}S*h?trd zHFYgw)AWdLXpwjoH*|>_tG+~aWyh;J!;pw>6H5#UsRm&qPQsdkP1h|`(=9{OEW^-4 zx~Xys@nTx>ni)2YSX>L4DrcCQrJGvV)b+5TD__?vO&7})J*?|mNHbJVQ$mKCW7CYV zsTr0{S6acQnIW4PR-BmOIL)+nHN8?NigQe=s;USEgWR7Gwx3@n&;Ecv?RL&D2{F0q zTcEXhEBkwD2o5x}FzRDrVm}Mh$EaL5O0w5M#=cx~j~7#PVH?tDL;9XTEcECk` z&`rg>7iYg6*H|X*nH)Sfo+GVW$UmWaPYJcx1=+3U4<{g#Nl3`fXo-{At*P97(Fr@A zWm1Gig&zX}epPyMP?-BzSeg}XTFUndml}nyb_pwogg}!p*eQ$$9Gu)IOa+AADq)~O zIIH4q<(UK;T@1GsGIg+&U`HiWhwE87^#;Gq1SrmPP+OWq^UH-C?5w13hcMD3TzE&g zenxP*N6CABkjYa%=sDN);Gd0KM2Et zLe7qqv3#|jKYnhf|8z2Am+e^53|7d&ukK@&{{eL`144b#fAc@GbJJt~UktXa^3P7+ zh})HlJ12>nq9i)1Hqhbuhkr$OCO&sQ-4$EtZ`eks+d-h*$yieXG5%#`W%ze{={xi) zHKXs5F_OWJ&xE^O!j-~8QqnWY$}1o(rvMolCbd76#p#Ft@OY+rJK5R1TQJE>H4_{- zeUkLvG;UujV9}q!L~btso*%2*xjn?*_FMEHhN0Vz7h}Y}ozFHMYP~b0&JHoxMAAa9G^}hZuuU2q%&(`XTUEMtLW64MMdV0Os+B0kI Hb!z2rAG17; diff --git a/assets/voxygen/voxel/npc/monitor/female/foot_fr.vox b/assets/voxygen/voxel/npc/monitor/female/foot_fr.vox deleted file mode 100644 index 39b89c8fbb105558e4c9a6fbbb9d72c97b5a9787..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1292 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 diff --git a/assets/voxygen/voxel/npc/monitor/female/head_upper.vox b/assets/voxygen/voxel/npc/monitor/female/head_upper.vox deleted file mode 100644 index 90948f46a84e3c43848696610019f73c95025e5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1896 zcmah|YiN~q9RB@p=bUXhSG(`5-Dlg;)H$2et(>_vr_P#}rJI_DqK9G13Yp_z*h*Yt zjy0xIq83BM)XsahQS`wi!~}7}B!Uo;h(6Ybh`v2N?@W_0dg0-Bdw$pVecNANUo1ITdv>G(Nbo7ugJHA(K4wC3D`G{qE0wp7wUuwn8jM@ zV(m*&liKRViZIp|8($h-Y@DHOimg!-nzkY=W8!SkFh?mhVF^cDGf$JR$roiNtYwa7 z4yDp+!myX6)K*OzLTgGNiaKG*)rL0VjGYidv9I%M`Mnu8gbUe(Q`$44JtaD>r(hCF zOu`u#SK4}7Y(i-l*UEX8Jfmz}DIFJW<3`(r6%#jv(#F%|8|4zB4f)iWtF`kS{g%@D ze5DEBZ#-w1qfFcy_M|l0B@Crvu4o;1+Mk1bU(&Y9c!s)=FNS@L_Js3`V-M#N&atL- z2^(;p1dJyk8y82eb)I65_VX-zS>st}J>|paPsO<_brodY0QWUE?gES%%N!fGN!-Em zUcOF_WgW*lhIevSCnQMQQCb~0A=XK z*Yqi0r%wggpL=TZwJ(#H%N{zJyCt)B67&6Ck|~q9yK`|vXx?1;;H_3Szqmx~)bAp- zwY7-FVz@UbSa$L%N;Ce%?-?05c}3tq7h1-!YQ)hwj73bJ9n)X3+A_` zV9_hn(QzOh?~gx?#+aaONbvea!M;i6w&kH9T7t4z1T~`#2zO_o>ZKM&ES67;rJV0imH z#MUjq@Xn>Ua_Ck3G7`ni(k#@^E5wS$71-Xs0A0%keVYWQ-V$6sDhNmVQTl8TW>rP8 zsl5@anioBcjc%TUrur&;RG*KdHM~b%8V26$!oJ-d7&+04@pFeT_(ln0onfS;q#!5# zNz4hSp{lY3HM3`6(Y#6wyqk}Ur%Uj|^$70VoQaRwb96*-<14{W-wAr76*%5kjjI=y z;hzP>2rRV`~3xyvts}(#rqdf7i+x5BLA9r*&%of}H7ylw=}O zn2Nf}RIIC=hILi{>|axmhn7egHrC8WcjH2|N3sx|AI6d9a`^jKS68EBZ3DV?yo9>` zcaYnci))_H8^pH5 z2a&Tm8#gbNW4t35gGEL7cYmL^a+!w>Yi^)>C$R6>S@eB6iVwVRaN_G*cy3QWQZN0A zlqH=AzZOG7Lj&&dSCJ5bKVWVN?tXcHzPtRs{x8nIaOyvMRG#kKhzGVGe4sy0KF;@O K&ZGKcxbhd23!iKN diff --git a/assets/voxygen/voxel/npc/monitor/female/jaw.vox b/assets/voxygen/voxel/npc/monitor/female/jaw.vox deleted file mode 100644 index 3188b076db8c40fab19eedb29b9c61ebe1caf32a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 44387 zcmd7adt8&(83*u_3)ae1S`h^-q$mn#F#!T7TJS;<@1j!0OAI80cZ4KM0s^CUmextF z)l!DK)~W5Bb5^ZRSi5$!u5-@KDYLHY);Z_8uDiF}x~{uEJNv9WA zjGTn7$Eep`G03w)uPfBcvyPKaw#gJF+oE*3D?*<2vR%l$K`(j?I?w5I^te0gY z*Xy{NEq9iI*2icTg&lLeLV0kRJ%Y(b~(HENYi|4E@OW;iJ!EHR)=CRi~xnSlA2KM60A-yb- zy_h(pS5{;%77gi@9ofrxt6n*gy;waYmNl{$-(Ev{JSBTCo2-O^p4J-j9u?{pUhg_IPO*EnQ?L`-TE)X;?&EZKc%JZl|t2KFaIz zQcO`C#cwi^Y0FefKQMztaTJN#5hM=XN#cAQ#Viptu1?T|-GZh)FKBqJppmVD#>jHq zF+n*?qG{&x(NwW@3_aR?7tL=Gw4y^$`b7H z!^vd1Fonjg7c^%Pfm7KqMIEju?Bu>Xt+w?>_VjfG^W+xIYyqh}Y-PSGB z>zYPy%X3Ggpc79DI(J0S#Z$6eBb+X%IDM4l9}PQGaIK<@hl5HHEROx%9Z<35JS5ksih`w z1s&ekOx;JfQ@baHTGk~}baXV0A9DvyPmCc;dJ5%cPNtbz>9qUd33TFM3cYbLgRWnm zN>9r<&m0zX=_NsLy(XwxOQXH5*>wK+JbLfVmE_+MLpzVg(y5+!x=zVdA@@VA-y!#< zLD0PP|GoaY#goJ9f39(fT7S~`(Ug%gmNJq@Q9=4BTAe?VR$KblpPQ6Gr5TfGeQqZC z=g*+>j5yMA5@}~iD)IWWv$LsURT0&??xTXXhbX=^o-RBi=-N6#$I{Yh%=iSFFfo7Me(tw; z!D(8%@)G%Lh?@2sq1I>5(Br3HrG2klC9AKEMxA_@qUWrmL|Y3L6&2A<`BD+XWugzr za8=Na7el@q^8Wg`cKH(Imn1*_!smnQ)`!cHZIR`H<09KsK>6+e^pS62s}}QHS>JKH z%&2E)u*v5fE(J*fkLjp7V>)rwve|UTgaCm zTgbO7wvb&Xhb?3swr~WzFdAOSKUQL2<&p5hQSidi@IwBv9{WDL173J1 zyl@P>kUtB;z7NO33*+F0m!Uy1mTi}Hc!V5nGFWd?*d;Dyh?3!jA-ei2@H7+&}#c;OLv;g{isN8yEE zffpWw7d{6sJPt2B0WUlWFMJ+ecnV&48eaHSc;Oj%VHdox8(#P|c;O51!WZF%UxydI z1TTCUUib}o;Wy!hXW@mfzzfg83%>;~d=*~!ZFu2%c;R>8g%{w3--Q=mgcp7fUif`@ z;U#$C58#ED;e}V=g+1`XAHoZ-!V6!67hZ!G{s><9I=t}5@WMCXg+GB8{uEyLCcN-x z@WSix!k@znZ@>$G0WZ7>FZ?CE@GW@Zui%Am!wY{6FMJ1H_#1fPZ{dZ%gBSiDUib%i z;UD3Je}Wgj3om>RUifEt;a}i|e}xym4=?;1yzm2f;osqfAHoa&0WbU~yzpP}!hgdH z{{t`lFT9W-h5lu87iv<*$1s_qWU>XDd`=^0G*7i&oelE4IWtccYNKT#%W5_CCLU(9 zdt7cO54M_3R zA?(3ArSjXGY>tpUCtOiGLiW$Gnk?oVUV^Hx)0~4la>Xqd$_=j2vhuBJR&Tb=p_bKG zQsXS<&<0s7YPmBQDvv?SWw@={>$3GNITYuXyUYuIK!u1{u$tBF^aRuutM)eV@Eofu zIlR>&YF3EqZ1j1VYEi8XnoGIaWDA7yid5;gJDfI;Y8+7ER}~Cd(+lCb)%<+NsEw?2 zd%blkdY#r7+WF892deCDrwVWzPiGJKoK-=n-B#)955g^Gll9zUCN!~H!G_)_+$%h> z%DDX60Dm}&x>Nz5y-M?_i)rZ(%j=S_!z|TBz7BnEdsFyo^8c^K$L%tOCkh2~27@x# tfNkSJ7Pb1o=Kj3huJU1=3av`K;Qmsj%T_h0q{f+*Q{5mu#$u9R9|4`h!E*or diff --git a/assets/voxygen/voxel/npc/monitor/female/tail_front.vox b/assets/voxygen/voxel/npc/monitor/female/tail_front.vox deleted file mode 100644 index 989985b73036c32d35bf85a483702e396c765a9d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1592 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 MS3iD@m+f=>2TZS(kN^Mx delta 883 zcmXYu&5cw+41{f$-S5qSHU>r_3l1v|90myx0-@bKkplsY#Ek^Vqq}cJz-{(O2!z4c zD@Lj*ce~0z{r=qiy}5k(aQEV;nZ0{`eh=B_&Fs_p;mz}P;Mc&j|9p4@k3~{3a&`wPGU%YPt=NQ!F-rjEq|c$~ zrkiG|x<`(%oF3J~Ya}{(cK7HO*%dj{)CD{=0=>MZh0qh@ji^x<5=oHD-~m=bqlC%T zQ#6GYH3d6ni|7?=5cG>Vr)!AV(3@za7{&rtG^v_Z)XbXMYFN{-J-e0W#j=KDie*fi zrAAf`Us#5xJlhicM&ZWB%3h6}5>NI#utf4=D@K#lDe8!qs*GtH=Yli3cIq6G8t6)w z?xk)U+lxut8h|9t#XzEwo(8BH7{$F+j9LXZ20ZXWY~%Q1WAFpm@$TI53AORuI~w!} zI~w1q%aCd-|CK+4+1P-BK^zR@E9TA{1F&geh{XrYG>IeI9VvdmzqUETN4Br(0>QKU RLYr^(EA;Be_qnx?{tpvKm<<2` diff --git a/assets/voxygen/voxel/npc/mouflon/female/foot_bl.vox b/assets/voxygen/voxel/npc/mouflon/female/foot_bl.vox deleted file mode 100644 index d587cc76bf38c90a15c090b4e3104e7b61e96e0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1192 zcmWIZk5HJ#z`)?^=;;Tf7^bi=Fa&!>x$=NGK)?jWY(P39GRiXrBnSi&K+MR}ew z49rT5j7-XmK$-zaGcYm(*-T16-9T|5n~@PH#t0N+bOCD91?qHRWMt4~1hZLz>R6N* zftZ1j1*nzgDF<9x$=NGK)?jWY(P39GRiXrBnSi&K+MR}ew z49rT5j7-XmK$-zaGcYm(*-T16-9T|5n~@PH#t0N+bOCD91?qHRWMt4~1hZLz>R6N* zftZ1j1*nzgDF<93nN5nd5wWofvjl`#SXlUjkVr(9#RL)vNnXKH5PO4-or*rezJc#| zJ)171iU~*{10R<&bMEB~%#8Zu#utG5PTo_&PXLDb^meZjT25#Sbupey^ORRglm*nm`gMz(hSs2Gm*t&?Td-ZV|OHv6h~-TD9aXD?gF3vWb!3BM+}?J)oV diff --git a/assets/voxygen/voxel/npc/mouflon/female/foot_fr.vox b/assets/voxygen/voxel/npc/mouflon/female/foot_fr.vox deleted file mode 100644 index 82bb02c9eea9fe853a3f97b8a4e0b97cce11e168..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1224 zcmeH`y-EW?6ot>3nN5nd5wWofvjl`#SXlUjkVr(9#RL)vNnXKH5PO4-or*rezJc#| zJ)171iU~*{10R<&bMEB~%#8Zu#utG5PTo_&PXLDb^meZjT25#Sbupey^ORRglm*nm`gMz(hSs2Gm*t&?Td-ZV|OHv6h~-TD9aXD?gF3vWb!3BM+}?J)oV diff --git a/assets/voxygen/voxel/npc/mouflon/female/head_lower.vox b/assets/voxygen/voxel/npc/mouflon/female/head_lower.vox deleted file mode 100644 index fdfc0d12345be0bb7e84725d6171de72117f71a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1944 zcmeH{%W70X5Qe+zuj(F&8xc3IJPZwTbm78<7lcF*83q$DB1vAsy|_2Hai^kBFmL4J z3>?1`+(=e2f(QqINspoF@G=vDNp9+07BMO%tNOB~K-|;(sY)1_OpTIp?=a5E>5o5$)7bSV-{p=09 zVuz6vJH%ORx1=66xV2H%dZ5|p6V#ZiF=w6oj;+A4GnrAuL4ee_&qlpQzwASRoP98F zLvTir)F|Svz(L{;A-Ru=^6w!g8m>N!IL!vBzRQ(6+ia`l^C1jDsd2y;Ego| zBzSTT0unqLd6*v(yyAy|gi5VC=g+yn+HKakzAu<_!MqFR#!lWhsBq7q!uL{YfBF3B zUWv1xS6Q#u(_iJ`{pr((_tWmZyVK3<*QUeW$LIRlfAV13eETwO4sJ|zedgbMelu-8 t9-oW7%q*wx-u}^im+9rAXLojX{@LCyI_v-V-}}uzx^w%NH!}YN`~dv47@`0G diff --git a/assets/voxygen/voxel/npc/mouflon/female/head_upper.vox b/assets/voxygen/voxel/npc/mouflon/female/head_upper.vox deleted file mode 100644 index ab4d003b34b93e9ef5d7467f016e232e5b94ee19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2704 zcmeH{%gP=_5Qe+Ej@>h#AmYZAlVm_93EwPSctA)5k)LP+1|-QXxEB}h6gTdo=oS3e z`T0z6BU!}=A~^6+)o<7Ip}M=ie)Qzs-%2T8-oJW?Dc_G$9$!8CY(5%%Z~RHeK6(1= z>I*;AQl8gRTJ?Q`0RkSjN!U6UJG(*R4a2vc@QzkHUCm(_r5)+|M1<{4C~s;u}ordjrLnqb+`J zFo@~IPK|#d@eR7=K0v|Un3H^xze#ONwWX3*CC7$7$Y-EC7=6)oF>=|I{5NB4&YG|vM%CC2Ai)`PrtbvB z%3eWOuNpZs`XL~#Y#lAw&rHnei1l(-_NC4|&bUr2HlgE>Bld_1`h$LKU^B|vLGxJO zu?GIbPizP6=$&{7{Dj`iItlv*fd*3}{~*u~--B}v))bsyuwPq*^J*}2hj{>;rL7%K z_(keorJhad=2F*?x+MOLcA~FnC2w_Ct>mqeH)61T1RqR+oUp?`Z1$ z=XG^#c-<1)X=|VdIs_!`9(B`1Pjm=K=%5|FGd=`z|*# s6#F`R`SH7N|IzVYXDzS#?=(&S*|opwUjL8(dvErm+wcA5jvNKx5BkwR8UO$Q diff --git a/assets/voxygen/voxel/npc/mouflon/female/jaw.vox b/assets/voxygen/voxel/npc/mouflon/female/jaw.vox deleted file mode 100644 index 396c2b99491348b4f3c04d4f5ae5a5165a3bc658..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1144 zcmWIZk5HJ#z`)?^=;;Tf7*bdm7=k^cTzNnoAOLb1n1PrHh$AASJWYT!2!Q07m>5+U zftZOANCPo51EUfX1EUrr1EV4Xh|S2L%?QLmz1oaG9OUlg2sRL?*W26s|A1mklmC<2 zn*Tc(==_%w7W^OVV2$A(KU<6cOQ%oyztms!KhViw`K6Py|1a&1#869#Us@{4sA?W1 fZXs1KH#hf?bvvnk9aT?Wp0(1}KuIIOyu<(iAFJo~ diff --git a/assets/voxygen/voxel/npc/mouflon/female/leg_bl.vox b/assets/voxygen/voxel/npc/mouflon/female/leg_bl.vox deleted file mode 100644 index c966f94287ecf2a4b2ed494490d448481f4589f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1560 zcmeHG%W73Y5bUn%nK|LQ5pmMkde!=}C z|L0hfon#dwh>(GzAJg4aHRsIhqtpA}&Fo-*eJEp*%}&z^)1 z>#YE{5yZ$CDk(&n$kG@gKR1FC1V*X|jzCNh&&;N2^^YJR&yM(K4`Z3tj|f6NDc52;^$E+C@Y>u`6%is;w0ad_fpM^ z_!RN!IoH{2*0o5JN3Oc0M&<@)&B>E>UtAp8L)P4A@GK76bM^F?(rn5}lXYDP@t|tB zL`NjePLl~_k|xDW)nwWGrNN;XNgDe7DHcrn5FyUuXUdso$ijRD!^)}qmrr+D$U=9* zB|Vl@Eu|S|jb`=u)rj~FP}cldygK@_wL-DPxhW);&ZtBWZwSx zHgAva&Z2y=zy11V-hMv2RC^sQAK$MkdKEb?^ z?{ob+JIN|W5W$8+{d8B|bEA zR}SQ*N`+ctAkUMfak3bj2bMnWSR3h0oqC_4%7QZ2CXjKKFoO@R}>k+)LA z3VaHDdd~QEwCGyU9}|K(ol9DY`CC@CeSt z(mK*W?_mm{7|=uA2A5@8S@Tc02!7JbEyH{`h|0zkhGOee=eAy#M3^pToU}^X~iC zd3SVchVuFT?#t_W_v!S)*{f*z@b2v&?ROO}m#tka7XK{w%WD09{`cPO}bTvGsE{hi+V91a6Ry3mC#bfLpd=xU#z9v>;ru2{WZFa0WZ zx6{-8Z93fAOsmUFX?VE*X`lYVPMW^Gr0HNKvGq)!K3}EjnVcg}KmbN!?JzO&1` bwXIg`&+b0&S^x9D_Ra3KH$J>0`48|8O6T?G diff --git a/assets/voxygen/voxel/npc/mouflon/female/leg_fr.vox b/assets/voxygen/voxel/npc/mouflon/female/leg_fr.vox deleted file mode 100644 index 6643bd1745c94b73a9ceb1db11da23a3407d9488..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1436 zcmeH`y-EZ@5QM9HX4l|ML`;laWI=Wf3=I51@Z>~}!xI$c^cBp-ToJ)cMW0}wbNt3k zjPwK%TqwG_tN&)$IXjvxy+}Ij562kY7t+b_Vt+O}d;t*B449l>3?~NRI|b%t?OrxA z5R2Mk(U4u+yC3j#JR??)<}o&wxs~`?5Ad8{)B+yRfrp|}h_zJ0%UVvpa_?AKC>m32 z6v$U(eo=V{m7%*w>dMMI)`nHKVn-uRo*BO9S=5X9z!lgZZh05D!+`_kzCgjT&K#%C z2WH;76N7UJ)SzL_vu*PP!cv&&a& ad%fPD-TkX){m=j2o84+xKKvv3{l5Vn$MxL+ diff --git a/assets/voxygen/voxel/npc/mouflon/female/tail.vox b/assets/voxygen/voxel/npc/mouflon/female/tail.vox deleted file mode 100644 index fabd112e563d286677b1551ec2ce118a4f82a4b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1344 zcmeH`y-EW?6ov24tQKn{Vq+y+38t{H@CPN45m^=!Fd#`@!CveY8#@(!f_+P2{AN2z z6(fk?!r{z0_wL;@!_M_+vi&9^mxFo;Nv{wY*R%7rEO-KNunH#AS^WX$=M<<)G$2+~ zCK^pFx>%(hE1sjhlFrNZfDY6{WHP?9c4idOwWtIrYqOQ8z^s7L8lnPIhjYKd1}n^5 zBZpevea6nEhEG+y$NJNnkOu&F7xdp*e>=he36}^J@F1#e~ z;qkYxm86OhMDT$>|J|LP+1c5dInNglAHVU7hhF^^=ewqniU-gE0SZg?EAjor6#TF%`; zB>Q12>=yIFF0gGJzV%_~sTMkd4cR3Nd&Rg;=M1}np5Ev-z6^L^v*ZZiC8w33ubi!C zZi-)eBP2gW!Je~p*`4c$qky*Mk`ugQIdcsTKPa%PM@L5zXz zf$f1WfLy4_9VX{b?f@ICH*@yR!JPd@?trktx#KLLj?9rw{GGA~oD=_83y{bQXs{=+ z1p*}V0-D$v#r?^>QHR4eYFD_sjsn@pnp}kqC}R^lyO0;UMZADBH=wLZ<=Kfmk%M6D zz{qnm?6@Dz`&M8-(1(2inX+!=WjnRz$U!hxA(weS3EoeAZ}yfU2eE9TC*jl*Anrwd zrPl4Z0XfcFi;_S1A^0g4yi4E{wF`n+B&-{LPyC+Pg?-{Ptjuf4i&z3L-lEWf3uv?6 z#25tQ1O=3L?vccK=n2R zU68~)fERM0i=B5&&IU>T2XMwlZaTTEvEBiF>Lft~a**@_33AugJD~5ZQNO|1;nLMR zIG-A7YOxGC9KaciA!DylOHF+h`w|Z2uGm)WIyGqYoyJaq6!c+Teo-$%ok|9|vT70? za=^51^;mr=h-FYq^eM(Rf}Rw+z}@uh4q_SfCgi|?GM5hW7X3mW1aRgCYas{CnUz5= z!aiePJ}?(z>EvPu_5*$56TnxTgj}LFB$b*c_nkB7Q%QaW>~K*tZc2U;uSq;6@tDL5 z7-NNlJLl?8il2s#aSsrToqR3y+c?9?jho)ZK61K1q7#bW)JZrw!=8eheT{!5ONKu{ z@jq5Q(X%3yx+1>#o{WpN9;;u`zlRfJ`Z;rh6$tCyPK=!x)8`rMH1ZXDAV5w#3+QIV z-|3a;0%6>RZlMdJ$OG6|Qy|PcIhz_zIDiAom8bOTq{kM$hrBJ2!5-ki$Vo>YAd?s- z`<#AEuSpQVK_P4QI5}m-K4RPCW6`_Q*ati8g)NZmDd5Dg={p6IybU<`cJ{K-N^e|m zyS^*LkK8Vhg1t4Kj3+v`7yW~dz$|Y z#rG`vE(c>@%$@|g{x3{&3=~BR7qD zadO$nMdO`y#h;if_p{}n;v0GK`KKSl^v?PhVcHe|YlD-WR#cci(*dkJ@_?U!GU@>gwu0 Y>-+QG_5b~UuV&xB{pMeCWOaZ)02EVVC;$Ke diff --git a/assets/voxygen/voxel/npc/mouflon/female/torso_front.vox b/assets/voxygen/voxel/npc/mouflon/female/torso_front.vox deleted file mode 100644 index 03174c9bda3fb8a02e4e3f77897d18da458071dc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2864 zcmeH{%Zgq_5P<7mN5+kao8ZD`Xpq*03m0Ax5D8aLXGQ){5w~N89mD+?0UEUo+-%k1BM-lg!!I3apog#Qm;nxEHVxV7Lt^i-m4{u% zVYd#(SP#RFVn>N2|`@90zms&Rz(7mc~Zo*FMXzZ@CmHNJHlkTaQ1k%pn!O zg>j-wArFEMOxTNT{10mC-kjH~dgqV2S&w2(RN!wc1FayASj`&GCRXZCZX7IwSn+X7 z>R{BvlDa4L3-siet4qDe4TK2(Pzw+h{6q&1!GD75fqydFeTlKgWEu5y2*#lY_r9^; z)Y7RzOmX2($uMvTP;@5Fxz4#xo$-^qsewK4U>!2i7c^@`eU%e$vM#ZgtlMMeO&#B` z13ektZVLD?Xw(Pjt=R_*fQA%n#x@vM@jDs{=tGXA)t3oci8{Nqy7z8zfgdMtn)^2eBu;D(F9ny~59Q*pl~^)GUjhos9Q6yopR~R?OUYF_}xw zq8Fz(bJ!!#x$~f`-My9mUi6`+M>X%f&hY-IU7gwI(x>Q)&A#G}^v)sni+k6+`y!U2 zj~Dhj>6x5c#8Jf8#L(oWpwI7X=bwM-U*xlhv+0QiP5=Aq%g^uePS4-<_4VmL<>L=e zKmYjs>Fx*bpYFW*#_7@BPoMMW!DkzY?{sQV*Kpy}A diff --git a/assets/voxygen/voxel/npc/ogre/female/club_l.vox b/assets/voxygen/voxel/npc/ogre/female/club_l.vox deleted file mode 100644 index 88cfd64d355ffd20c7ade9e65649a60a46ddb7b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1784 zcmah|ZA_JA7`~t9Il$qZ10Lc_J_JD&4w!@}gdm}KQZO{6m>!i{!<3QBvBs30+>mr5 zW-sTBp=}vbW2}{=j#$kf#2hm>=N!4#));fu|9-UAzpLxP{?r(~+qL_-Kc4&Jx}UfG z;NkV7BGR&}=>UcN8ZXk;6bT2c!p}p*5h=vsBax%zL2_;D}Es3s@L`RFyH6{=< zhBlMrDDlzer_b*w>RJU{r2>xj_+2eLOCY8^e(F{R9MOJPl$S^(d@)geB0%u2re7sH zViK9#=PKjl+2@KU!4Z#_V0{nk>v%_be2&sV)(q0ld#ooW*;O`&UPB~1N?93Te1c=N zmq>Js@epy0w{yhPX7vP~y+op`*_TqRqbV7$X;a45wKd}@6I{i9w8u+nbH?$^81^QH zGn)W=A~=Wkum{f?=3t*Zi(xOy%iL=mqY~J^m9~bJKGx>U%EvSLq)k(5l@wFt#xS>1 zbBpGr$4THrg zn0ziBk9Xz(%>}6C$W6qL#BapNS;5qYg1Je-{ae%<1mj`BH-`j^Cj}AeXWIqCowWA~ z8bgBX9nWI6zZDDb)}eJ)(-|gSxHx*#ANaPPA8} zyIC-BTrl>IVAc_YHx;0%vjw}$a}-18 zPonSb2!=0qV|wxu7Vcid&Z^B=o0@{$j8s&F3Q@IX6LxG3AzW91gD=)#_`O_AT`$B> z_e-((unZrw=JbT%!5zUbKM4A|N^o_c67x42@%zth=ot#)^56p3lbcg4&`F8U15W6^n`dSyALzl3&BNGq5 z+K8D*7Topg@!$G3&gMGO_5eMnfOA(SG4R^_x zG~fwa5ify1VHN~S-#+bciSO(G{QvxdSW(`YSpElB^wDGOtNHBZ+})?Kw&peDluxY` GD}MvYo{ez; diff --git a/assets/voxygen/voxel/npc/ogre/female/club_r.vox b/assets/voxygen/voxel/npc/ogre/female/club_r.vox deleted file mode 100644 index b2fc77d27c17d8a345163f4fe64013e7b7d57701..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1784 zcmah|ZA_JA7`~t9Il$qZ10Lc_J_JD&4w!@}gdm}KQZO{6m>!i{!<3QBvBs30+>mr5 zW-sTBp=}vbW2}{=j#$kf#2hm>=N!4#));fu|9-UAzpLxP{?r(~+qL_-Kc4&Jx}UfG z;NkV7BGR&}=>UcN8ZXk;6bT2c!p}p*5h=vsBax%zL2`x!6C5f(GM09x>5mGtAL|Cepd<45{PM!pSqO+$7sK6l$S^(d@-Z^M1bI3O}|QZ zj7el}pR0|JXP;|436Al23D)j8AYx zdx=CxjE9J0yqzPSHmfJ_>?IOi#lEy+9Zku2MVmIZuB{nQnc!;nqdZ0@oqtb9C^PudivQb{pQZiKnD zB9C@1LK)`MajwzvtZC!@)XAG>4o%*)FD8^iz7?UhpE)e2$+THcxIfMP5lRbt7Urb% zSY5Gq`iy37O{pjqW2tMa8|sF-VJsy%RfHy&iqPa&5!!M?Xxk%qCbn-CPacvu7k6N5 zD;rNfxdY98C_-~zN>e9C%JO8$8TX^PL!~J#hxQE_Z_Mzn;T>als;Tqdp}o6zEk9_! zUGR%Wqj=&9_FbFDhP1!%M_L-@=31-^H=4d)6~TrK)E?W8@LTl=jnzQHagc5wWc(S( zdtv;H0VIjGy3kNq!{;6!^h zx|;<9#|2~W2xc8YcvAtIN{eu;Y72Vy)S$gI16|v4aCz@WOm~zc^71ZpzkUGGGeM{qVd3sI?5x_1wW%q{%}7N>s1Q|KHetus5W;m8IQU`>hTqG@)b&FA zbiWjf56kc|YfeuH9^4W9@`IqSs{~gEDlvbf5x@W3hMu7yE`OeeTaU7^i2N1j?|5F& zS)YQdSDnAIvJ$cCF_c$~qjvBDvIeqn z?^D6!qkOs(69|Pu=>E7GpFdpQ=KoK7lslk=q+>mrL zr=c;lEkkOIwI(SeSMvoi$JEU^N3OLs$6V`uFIwx}x9`DTHL|mPcFy^pbAAv1-|yeL zZRf%P5oy}cu$7bS2#d5dBw|nd4M&JPK^)n+E74G7xZt=&bXW%_qyr@?u*$|&L>;z7 ziB5{ufeo3!M0B8uBI0z?P}9UZ&ep~avHp(Xnph9*YRx^dL^SubZ-})vP}Cg#I{I+N zB%L-%;Vhg@*aTutQu%n4iCbcv4K#6vanQb^Z^t{Dca^ti8LwizK5pJ|N+*@kNlhQd z(f2IOg>i|`*O<8Sd59e5=QwPMBBD4GO$@Qb5z*9%CWctzh#2Zb6GJR2I8rKxMhdMVaR#hq4NVyGMHhB~pt8S0k0rEaMcOPrj%^osZGd|yITpO-A zYpWRt*X#l9d&T#R&z-gmv8=TwhFEXka!s_b2YjD+yP~<*aS5xW3#%@}Ge>>^rR4Rps=LDNCPGNDzU-%;<1Cx_Y{s@;FzI`ldwOOd%vl_8?)+0Jt1&KLG`;(BN z=O9yANNWOpXX{U**15FccGfw_WgHzaYVVvQ^Nx zmwKn5E-JXx_5wQV1=AnYpm|j;f>Xnw16E z^73-*Yh8o(MnUfzg2DF%6CVp=OBbP`xCnbHSD>T53a!Oi2v+6c^rj^kZ!1IMwGC*0 zYb#QRcH`91{pfx-fxhGI7#}%-=^GcZuCf%_>GQB4D;?$0LR79;inS}Fh}D#1+bdP* z`)~n9FBRhF+r@Zrw*;Tj=lHPT&UL}BKMJ~o<+#vWfvL-N`2Cj_beu}V>8~2lXJ;o~-8=^A?M7xtCa#@-RKugW?4A64oIT!;_0{LF_tXhwx6Q}h zZpY8bLJl}*mw}xRc|7% JY;>->@;8r7dKmx! diff --git a/assets/voxygen/voxel/npc/ogre/female/foot_r.vox b/assets/voxygen/voxel/npc/ogre/female/foot_r.vox deleted file mode 100644 index c23067d22aebb4b2eefd4137c78cded4b6e3930b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1896 zcmaizZA{fw9LIm>>E7GpFc1X{6j8Wn8V_O!8a~_<3=J`^T!~uK>3_shYH(#YHznQ3 zX=n^>%g`EQtx3v=)qFwBF?Dm!k!x+uG1q$Ei`IJg?R&6SjqGfnopZkDoZrL$_xm^P z+_QKK!Hi5GyX?;A(#1+xb28M`X9JFugTX@ItuJ!gT<5i5;$IUyUbkZ7~H1wez zeb2&N7?<<;8WXoZ50S%~C}N3IoQWZtC?dpZ>ckLD6cOSKbz+DniU@I5x~!#6G*LvT zIY-@5Cz>e2!gRS1^$>NUi6SgqmkZNAF+>wZgjke3xFCuLb4xPob_o4T)pv_-OojY)J_k`UP)~2#(z2 z+lFl92KgvR6{BLT200xW$UmKp;-Ng0+$_X`7D2%=!O8(a^@Kon(|>ma(*G=EGy}bb z^DzA4eB5831Jo@+l?ZCdPvke!pA?LIBA6T&+`h(rjo@-j@ZB!Kg9CyD_sJ$f-#+S{ zg3VFErPdeFxkWJjK{Xo6vk}Dd(cMslf&HaOy}lL$&BYjbuMQK(8n7-e2i2u{*#2@6 z_BX9XTb-ci4Z-01f{Bj>vE@rpTU>yaidE>?Qi-PGOa$dQIK6cl##&b+@!CeTy|n|W zLwj-R=mB)Un?T=*HjE9Q#Pp4eSYNRc3)AOeQD!-0QFL~8;?-@Vke+VL@0gGA^N(tHG@HGXn~Sq2`mv$v9QK_$iG{5TaQB;K z7*Ay3+~URfw|{@n+iGsSgN}p1k@Lgo`Em?rMsMKLAEvS9P%kzdAH??0C(w9x8Z|XF zc*syBLhvWdv|#4@NAbKjG|uHs^eO=)cc+;@`~q?w>RNc+sYIEUbJJIjcwJ Hx+{MJyN!Ao diff --git a/assets/voxygen/voxel/npc/ogre/female/hand_l.vox b/assets/voxygen/voxel/npc/ogre/female/hand_l.vox deleted file mode 100644 index 460328af90de5d9fef1378d7b918622ad1bdb698..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1576 zcmaizZAhJE7{{;s#pCG}m&bQg=iKzD&3u{Wbf(kOrpuYLWS*HtY-|UUri3^-4V-OY zvgS%Oo5eZAe!^R%}d z&YBdF=DNm%G~)A!v^53;PrD7Dn8!Rpd$=Rm_?vQGkpW_~C!&;%C{1ik#Mqdqc1TRr z8t#cE%EUyC^NA;FHP@PcqPP~KonO(f+*upZ&Jtr{8SjZ$jge+7nf*r#Of3&NLA>kEM0(z zcz?qFt%{|_JE66j8qqqo#hO^=kLCRk#wgc|n?ZS746&M)SVQX&#uKf*QLTs}midTX z#~ZQYjU3vyw@&Q(>lW|{hr@U{F4%u%8QXk+<4>OtOH0j8!nMY4HYKh$5mlYL5O}u+ z{;5hxAO_O?BqZ`2WH}LW&4Q#JK|vrFh1Uh%ZoxCdg7`5(;#Y#Q=BLoq6NlhXJU&`@ z9t~kZ>xAH)S;49MjBQOtMkpIO;e3?O*CMUYhwSsI$e+$c@$FnBbqaEZ1cj4=>P3OP z&iaF1$i%adIUh!Hw_xVQ1U%T21~hF&l?WQiPvmzpF(8=zM6fg?xO0R1T0tZr`1X)s z^|&C&{Xn~5>?r;Hf_lH;YS#-`9BReN2i0gTOGPMBrocI2;XPT!rG zhU$_`9C$eo$J#5<-6R-(Q!w?uVDW+=uwyG4^K;Nyz7u^7m1xgTM5rtc=l5;Ld{+^I zuhpUZ?SlxPJc7~F$1(U`5MyV%F+Xz-E4Qv-PkAAdtFOL4Jc3Pr^cRE?ZL z%5Vy9M+Fa#@Y9{1hTrc;e}6w--9HBz9z;T40v0YkdWWY|`R!z6;NsZ{)Krb*=;%2l zcO~K8*W0lWOu=|o7XDq|opZT5+U}z71aRuo42Hj$$H#NG@agv}*mZIQHD{)9;PXYa zU0*?MZ7m+M74Z`M1+yYp`|eSHYy7_cPv>8_{-14VZ%+TWM#aT!824Cn!RdQ@kX-o| L(u!s`IxGJG9M@>b diff --git a/assets/voxygen/voxel/npc/ogre/female/hand_r.vox b/assets/voxygen/voxel/npc/ogre/female/hand_r.vox deleted file mode 100644 index a12741bbbfdb94ae744f33b5e683c7db9079cda1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1576 zcmaizZAhJE7{{;szMpeEz2fqCd`+Em({r?$FVmdPbb8v3%bBxeo|#2#YzLF3gg7}3 zoNZvT=1kmzmOCdzB4(SI6#HN@WDUj`HX;a-QGM@2MBo1XZ?{ij_P~$pzOVm%z1`3A zw6`42nG})c`p`id@w!FYLgC=kcEiW@m?vltcZ5T~DeDy(AWFMqMmaH~iQ|eX#}(HW zamB@OPc$*c6<5|L?zm{KHT}eJ?GSDKihgC!Ix%f6Q6_=$?wA;NTr1Ynrq>wLtCi_h zM02l*rcV*0Rm507ds0M*W^am!cH)}36%mWFH6@~m*0e+{Ml+YDwRseE6%nGDTM;4J za7~10!+526PDhN^JjXQ=ZSzoLE~DLX!+M5uIJ`4W96OIgYv-e`9d}%Dt*oUcw3_oP z-i^cibJ)MA1Zun!TG7;q)(I_Q5|}@M_d^(CY%g{ONa+;h4GD@S1vQHT zd7bqKJ&=iKA#+}gui^+JfCj)5OifR#r$WP>VGBF^S{Y0=dBe-*e`#M1^DERh} zVD-2l%>6*SVC*RU{elL+;A+eG5v(ae z%PUnF`!Ex;S99_6od8zv72-42oSzoly(#$hN5NpE0GEf$uzalnfBe#hzR^US|I&*a z_tUV7><#DddP&gVD7egf*>L_74Zsgmz}hkjxA``mzalGr)A`HF%5brA3dJQcRF9lN z+He|f#|00L@Y9{1hTrc;e}6w--9HBz9z=3qG8Qg9dWWae`R!z7;o{i|)K-t<=;%45 zcBSCn*W0lWPQ!Rk4*p%=p0l|++U}z71aRuo42Hj$$H#NG@agv}*mZIQwP&Vq;PXYa zU0*?6T^$~>74Z=K1+yYp`|eSHYy7_cPv>8_{-14VZ%+TWM#aW#824DS!I^t|kXrQ? LGKyz6IxGJG=JIG% diff --git a/assets/voxygen/voxel/npc/ogre/female/head.vox b/assets/voxygen/voxel/npc/ogre/female/head.vox deleted file mode 100644 index 484ba5fb53d49122b9ee0ab0b06aae3d1638b3b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4472 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 KOAnnaoBj1jJIx11&O%q+sOiAh6_vdL+% zoi;GBoD*lXHv0 zBRLZy(p(=pNFn1Mk=9T+__S4csLB(BOB`trhq@eIcqR$s(GlY@5#^eG$78M-<3x;h zB91ZrTGK|m_LxtNL%VV!+S+MTu8J7fiMYx{jAP?eL=%oj_dDdfu8t^5A(Z9tUDwb@ zsR*&UrY?p&o0E4+MF`31E=Q~gSqQ!%IFoeN=2{!2Luf+Siz1BJH?3r^oS|XQuETjSkKxQ*&DqB1ulWw43B&x1RfKD} zH_Ng6AV+)bj>u(y#`Z+r(Zc!(BkYS(QBqgb`5BNWGw+{ZPYDmz9^gIcfeh#wYLt?WarB_fC%t!GJK|+tB#ENMP9TJl?wr6^m&mxl8(Ze zY?R)~M@okv@2sGBLQuOTkk^@iFaa|DEM(q`q5LhFeK8pi_hbM~TTvr|5b+c78!>)L zFn39?JS(_+lX^ff9Ta?fSg>|n5T<^rO)%O;`+%UqFSyqE0tOldtMAvMr6L{O!CVZs z6ky_58KQ4gVWPb-?z8^g*%_!U%f^A13vjHh3O!AN*qef>h+yesL2$=bgbMS}QMnU+ zjn!x?^r5>V10(ykW1+JI;n(WX^Y%eRPaehand2CIFO1RiJy@8%fYsYqv8S>asYzRq z=}SVXKNpodcVKs!AHmvE9D1c1qaS2q?piK>zFUa3`$f3IoC`C8d$$C?{wNsiF2H20 z94prw@cS>V=o?PN$d_K+e2|7UWN+Ai=Svdrf0A?Au>TVczz#hDaj|L&C8g7-89IlwSQ_qpE_irUfSDQi{eBD#4B*xM^N`pelKYaec=_=T&!qF) z$;!gT^W&(i8AI3b1*CSS;QrU!u^3LnSWXW9o!`dUx7u6pq3;B6`tmGdUo7CG`P=y9 z`&H~ZIfS}%Q#kP15?XJpA`l4R5lfK-0)IlU3f8}ST;DpsumAJ&Cyf7R8_HWV|Lvp4 YayI1s%rmnH$0jBXIm#xd!FJlf z#BxrY(U!9iiI{C-QtXGxkTn=%*oYuRM)bcQ5&gTmp0j?1*$Wr zH6bF+b&UrpWZWmx+87Kx?G%1g)C$evsaYWA!T&P zSlh1+ZM18j{Zwh%l@4iVr_FjQq&yuGWkX6kKNZr1@tJP*o!5UxI3L>ubiP`&!RaG=24uP7|u32f5UqSLs;gguO-BCZ!X5| zgE89YcEnirr(93ejS<#QSYcn3ijumeZiJG$=4?!KKD2q%>8I(V>7yM_o5!=~xfxTE z_sA>GSGoDJS8@Asy}I3Vx618|`#HRCZ=Klaa})3jhr@U@CfI*<1>55P!XNSRSYB>+ z6s|XZvngV06H(Q%3xRiQ;Ge351UyL3laT4>AS;Q8Z5AZ;3JL-dF_B#^J-o=g|-rw2TYhnG>9Tz}S{lWOQdEC!CM+g<7Qb#Upzp75Oun zD87@6qz*yOSwZ21pn6FluQUH(3}pOS$b3A8a<^di#RNRulLjWZy!YX(4V^fMMzPA_2m2V-fXl^54`5Pa%Y;OPn diff --git a/assets/voxygen/voxel/npc/ogre/female/shoulder_l.vox b/assets/voxygen/voxel/npc/ogre/female/shoulder_l.vox deleted file mode 100644 index 5eda2f9a6957b286e47f8f7053d3703c9b3854d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1880 zcmaizZD^Kd6vxkfUvGD>%=S3lW}D8J`ApNc>1=M=)II66X>&F7(N=__V@Wb%=y(!z zDJ-$3j_Li7O^Y!iTq5~jt#NIkucD45Yp%UH3<}TjyAAyps5??;m`7WFzyU( z?x`48e!kX|B^^cn8Bf7~a8T4fj-m$?AY{Vu|x3 z<6&sBifCepB`!34D-(xADQd(JOB`c?rbd*eMhvmUF%}qVL>X$t5KA0mfu%;2rA7>~ z#4#2)YL0gyniyh<^YMuB$gl>yKe3Tv{^nb80ed23-4$y=__m_?PKtztwxVr_qHlc6 z&}Q5a>*Imu8_@QerBB@u>-S-O6=Q~2zmC2kmVW3*68akQ+>rGPSvSLaYhsD>u=b9+ z<2>hU%sGxV4MO&ium_11_7^eUXa8wpd>;}=Le34CW58Yw*rS@cZe722jp)hWL%=VS z$>6~$!G?2Vn49uPEWRX&+67N_3vzn}d0z;YH9moj`*M&zoQn@epGAE}(9|b*YglmbF4r~{ zps1|`^DlXdP=8Z z==tfmx2h1>I0rQ%Xdpk4-$>s9!SHFp^&!En%k=967gB<+w+im>5v1uKXc6@8V!TtZ zE-5(Q`W!mz1>^74qG?$H+EOLxYFdc?-4)2ZwgUaz%O*9iuPiP^ZACFQy|@s&TUMZb zqoDhB!N9wMYaayAop;*WveHn$dAQ2PZyH;PTyk+(+@0`M16x zllh7R}9jWd2n}1&_?Xva%8tbP^vuH=9x7n(6cyp*(LSuMIfY%vk6~u(4BYv0K1S2| zI5m4V{(Zim=l9y)d>b8mfrDp;(EZs6KD=@R@pt1`zP|^nj|^bbC)dz?X&iNRb$Gz5 zNJQ`_)VN^cn}_$CV1NCe&cAT-KbvyAI{4oj6~AW6b^mC7@vOD`Fthp%6fPZ}YOeeZ D`EH@1 diff --git a/assets/voxygen/voxel/npc/ogre/female/shoulder_r.vox b/assets/voxygen/voxel/npc/ogre/female/shoulder_r.vox deleted file mode 100644 index 6feced59b5150d2ce0d5572c52e662044dd9f479..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1880 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 QGHu#4x%lFXMf3mv0ohA(<^TWy diff --git a/assets/voxygen/voxel/npc/pangolin/female/foot_bl.vox b/assets/voxygen/voxel/npc/pangolin/female/foot_bl.vox deleted file mode 100644 index 404e6b168b62be4aad8fa42181ffa0723d4359f7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1304 zcmW-he@xVM7{@=~?;XviOa}sYzo(Y45s!_{TRbv;D6^&$7u`5Eg zDT=mSs9L+CdX+1RSGkyhDt#ff(8{_hwMP0f*GOO0+Ei65&nnW>*cC78*H6u?wxJ7OE&0(o+;6=L@?kJyjKYMHL2BBcUpKMY1AURTQaJnX58agB4X{ zP!&zEDkK!GUKLuYy@J=qo1$g!{{tDfyFJ{qzfWs$5`SI3%J0XASRWF`AMSnz6LWb` z>*89DgYQx*`S z3IEsT6Rz{4Al|^O6DI!r!VKfH_;q9vlcx&VTkVghXFI#zt6+D%nd-6#j=UdAMbRRf zYJw@r4&dR{WS-ti=GpypZe4Y8>adBa>nrIwl+MMmNGfbPI^1dOXwfm?*+Oyga#pYL zC$}V!l=KzsZnxv|tfu|cMg}JjvEG)&)+3QLjao^{4#!laBi#{AyQhO~ZFTrGM38^7 zfe=d=zV&i1-wt8hQH8E@HLK)K7j-yjI<^n7yMh;s6IfW3%3Qhk)T#+)<(gTRW1(hjoKSluJ$HV@={|sU|6v*?ZlFJQfjJ2#Ua}O+p2yLbRkJuF zn+46iSSmJ=S=U0=+1o5B+>Ej9Jb`%*M9EI-hwhNxJ4ImMU1raFnYoLjnDwd-k$0Ne z1_xVR*KutA7{3Macn3AICUqaLFEF#G;W8W7AK;*Cj28PvY{?(e<{Ts=JeRX=U(;22 z7N==1VN0V)^3BH@R7Z9|DeveT$V|?}(=bBhk`OZeBPj?^qpH+F$y@8F49sOTsFmKt zS}cK~d>__AQD_9u|M^Y6(r0}3`7rHW-PF`?Wn*168_G72k)1(mY65Fx!U+vqjxorO n>FH^vrluGf8KJ+wpXTOfoK7cZvzge~SbTkb@%Hv+<^%W-H{5;T diff --git a/assets/voxygen/voxel/npc/pangolin/female/foot_br.vox b/assets/voxygen/voxel/npc/pangolin/female/foot_br.vox deleted file mode 100644 index 3c55b6196482e58e41f7410da3c6f3cbd1b921af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1304 zcmW-heN2^A9LLY|+)J}*Q`Y*U;mk-`As5|+3wq`C0`ejVc)geRcfG{Da5KbRL|CGN zhzXZLSJW21gaYam0~II@q_HrYIX82OrnRNBNLyv4>(im%_I zuFCa7BVB0ZIf_HoiYiqVWvXO~BINnPAtV#3Fes|LnnoCesu&cF2v$@jNGMXO8lkxWX=xYi)wT5>PL+IUm6tn+^$<962o_Z;ujVo2hz%UAjR_z>$u!uZ3}$6#U( z4{F?8%XaczN(KMky~js2HC&sQOqapP6`we!dwaQ5YNIhel73G+k7`_ekQ7I6Ng-FF zOq^J0$lWPq~#dm3chQpU*GVNlaFo z`6M?KYh)llv^i1w-JCjXV(R)zx(}suaV(N@yN-5G8atYG^bc&IsAxH> z*Z7lD97sy~3U;?Sa1X4e?bJpFCl9gSp2^lDku;9lNXiPwRH!4}8BN z?_@n8)-ZhQWM94=!oH&tUBzlv$(}B1chY!lA7XboFBT=RurQUmvhS&t<%m8vWoJ&} z7Z;9g_&k2Q8i>lVuq@k3_1HL}jtaW({D{kQ0Neh<)KA8C#bZF z#pWy)H1%LD-$X`jGnr>^v!q}%#@6!$<~k9@JEt2#vP zX=VpI+3LQIbMwdeEr`ck-@uyGeZ0QF!k+reY+QeUgYGe!9T%}De@Lrq5Oa7AXIsCf zv*Ii+(_X@sMw8^5hfQBgRzL~w1l5y~oWVf-2$4%d$ncLOKRk`f5+}uPt)n6^hf#eC zJ&83~14H>fteL{l2%i7*oBT?j@!99Yv~_k-UAL8uwN-2=-GDjEOloQZYh%I*4O@;; p@5l7?G*eSkjEs!X*Vji=Qxh(i3yZ}5c0oZDlw4Mjgla)hIYmLG^htJ6B|1fw(j&@t$(M<;lKJqni=t8| zDw!;3MOh4!WKk!{QkW!3I!W}otd&GrCkYCoN^u3zPb&$2+I8{fXhHdlPbj+GJ;Xid zK3c+(`1{H={x~th2ECC#y#ov<=JBAWjqABCzE7>>zq|MNsHTSN3sUF~GjKH^j@kZx zE|=SAj5jgp?ch<3n-7xW=r1egYLuCis}0!Qb&L0^THvsDE=E?mg3o+PF{nS7ETj@1;(kL@m6bB#RiZ=^cS#JFAQJ7}Y`rjlc2 zdVcOKrYkA7^&f&MQB}|_#Vt;io zL%loL{eA^|>MT^3M{;yuI2FZ9X!L|pniImqYbiXvmBO?88Qi+o#_1zwW^Syew>}*yuIJA|Ll9eQ{4JNNNl+=t>>}hw>Hk3^J=}inz_prf{&9Iu&06- zOA=UIoW^`*?rBvO2m@`{&z>SEE&|)=1%h@r5S3?PMXnXk#3bR)N_y}7gxh-v+rcB$ zPkoE__(kR=n0d)sqP%$mZFx0IGjmwf)Q7cVGg-CGWS_guvZ5^*S}zcq??NcuMcv39 zGWuo+?Z3<11urvyX%ur_RU_n|VXn@_wzeC%wtP&`qImo@4XjN&!0U@F?5)4TrVWQU z+%`e8^Ae7f4{3D|lNpi6xz?}gsyv6=ydUH8Xp#a8uxV<^2`S@UZ9Q2jSq#;WVOpjq zE7(L~L^@SvE=u2CPi1Hx7PuEd}TVs>_xnVA{J#>N;J7@(=C3Afvg#bO~gHkQD^K>Ypv H@$LWrpX+&c diff --git a/assets/voxygen/voxel/npc/pangolin/female/foot_fr.vox b/assets/voxygen/voxel/npc/pangolin/female/foot_fr.vox deleted file mode 100644 index 4b44a016c46cedb59c947d7cf564848a82a545cf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1252 zcmWlYe@xVM7{|Zg??JO^Q`Y*U;mk;>kUJfBfSv~j2gt8OK)mDkZ#}v@xD0WJ2uoBD zQQ;VLqP9Q{1=J}9Do`3oV_`OPZRQe9YfER5w#rJ^s}Jw(wdeEf`8?0(`Rv(aP0d>D zl_V)8I&rNq(sdt6%1F$Kn>XtSsRX`)7X(?^If>oE&gxBpqLLkoQ?Y9C55hwH$_Y0FSA1E zcGn>Hocm}AP2%q>*ZAYaFdM=Q{ORpyC^44@H6E_#xcEM$g8%N`7 zbnIj(R>yEt9Zzb@Xfo@0u;LYNuD39hZ>Aw3jAI4ye6?OrWkLu~^Ooa?dW%D8IwneD zI8$ignb$?PEuG$SD`zY7d0eoNU#pXts?Ok(yl|{W4L`QIXw5P3xUZ3_R3l?{k$2EW zM@6W)s|(Pb%)`tOyqvYY9_aSkxRsH%5FVV5=jphKpw|`>p$?=VUdOGICjR=u0uyuiZFC7! zrwiF%6~tiA4tBp^&Yn68Rb`PJ-4{-I(GnV~Ln+A)=HWFnPj8udc0Zk4*F2m)Vq*Hn zYI?fUxioI1+@Yr3o5s#&H3NfNDK1_~^4cJBOEjdUuVPP|6VG5WZKpReG}X-pM;6QsYp$_E1I^!cDA?H;$I(0{;7JxtOf$=#9Y1`#<8;!bwx63#7vj8yJ$Rq z0BKJ-FBT`TxG0tRV(zJx}O9A7#D$U!e?Lu4O}O1|EEWr~v9SaM M1mNfA$L#+951$`-bN~PV diff --git a/assets/voxygen/voxel/npc/pangolin/female/head_upper.vox b/assets/voxygen/voxel/npc/pangolin/female/head_upper.vox deleted file mode 100644 index b267753ce12bf70a6d709771ea3f5219e4bfccfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1468 zcmXYxeN2^Q7{;IHd0$Yc%~;J}L`xrGQ$E5XO<|S38hxb2@M@;8 zC||E9ZPE}nIZW6Ltr*7`ZIMmD1ut@%F?V=|+m-|)CT+4Cu{p>RSy>pk3 zs;ap5aw_e%2(FAtV5qZ`^F>bT6Jt2hx{Zfb9zIA(ptCTaE3tMCPmkcnKp)LXv8oh+t<+(Z>6`PhR4-KG^9pwf6A-enCGA;FO|BaF!nD>}-O51042~_1iPfcbJm+I1KTO7#UgR7{^4dr?JY&g4~2b%(U zu>T!SRL0X<7{cYMAZA#{@XMJ-DjkzJ?g^u{Jehmjr*mmdFuUDv;&x2tVfTC7=-tX% zX9TCVI{38R!v?2?3ylGAVhrE31u%FZm@nHb{Cz%wTW3~rwk4GNrxJPEZzu5eu|x$2 zuqe^W&BJz{eBpqB;r!M&fy+l1v!x=C?gMMt@O~*9YaCP*MYC^nIHma$sIRn9kR8N> ztEoJ_naZ7p?7WnwYr%+x#~5jK zv%2{@?v)=CFfI|l&^qR%?cj}Z4mQ~8L-vE&@C)DLO$^pF{q%gLs%X)8O4 z$G(Ng$#JCk=iv;kCOfE*cP+KdPn}P9Z67g{!k8Zz!=k8k$_w2TygiSykX$Z=Zlxo+ zimZ@ueu!)&KRlY}|NO4M(r0}3`B_@p+NrEr&GPCBmK7}{Gdq*Cv?S)vh$1|4DiNUp n3=Iu2I5s$K&tskDs3(-ao*9ah8pl diff --git a/assets/voxygen/voxel/npc/pangolin/female/tail_front.vox b/assets/voxygen/voxel/npc/pangolin/female/tail_front.vox deleted file mode 100644 index b0bde66c1ae67e30fcc38b100a5698b809b74103..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1776 zcmW+$eN2^A96s+k=Y3yXwQ{XLn$3!o6?)OZ1r$N>3i2U{gcs#Y5cJZ$FWii17ZH}I zAfgFOBD5BkX+kH5QW(#8Fz*Qu1Q1$VG=8fOR^72I$T49WlO(F*tX%&G$`Bo=}7&CzTPn&v+#_t}X_|_; zkq__FSBkk3CUdk1lfK3KrluuK)@Tu?MN8PM(_$}-FvnUWSfkd;AHg~!SWiT_4(b}F z3>eyQ4C+bh*o>&!5j0EaPiDIy0g;o^ujqfJ3k3t zPXcx=nu}k0H(?~*jnR%4{L);5j@%?%pM4)LF7slfJQr2LVZ>&Zk5eK zAnj4?Uh2k~s)aaQk&N4YLG1Ar;6QB=j?|aq=amoO$Hp9-Yb?Z@Wr-+CjlnlPL3EWQ z!b_`s%asb?-c!-QdED!AB7E&cgS@PvPR| z4s7%#;jJBByfYBO7GE4rc18h5r{L56C`{~g;luto{BZN!#mYq7P(i-wx{cy)UsYAdIq zy)hnD#WQi^d@gQX%Ej%k3vlUtHx9kx!Nh0tuy0QR-aD0w+JFl?`<7x;rwd1i*J0JF zIas_T8l_b+$SatOtvwF9hZm#g&{~X~+k@4C6hX5X*+{x-~R%{)>=$jm4$~Y^Km!lo?l-J zG1LwJk%NfJNP%zcZA5KpLt3d9vrCH5c^_A~ z=RE{+UqV-C1cfQ3IM($E`s!{;osod$ z(WzLOvJ~~zK~z1q40SQ3I2pSG2eO+`6qAUrk~>kEI3NG~{VRW^xAE@#W9aE0Kx4~# ztZi<FMc+ OjEuzO$&(TO1NaX?v$1pl diff --git a/assets/voxygen/voxel/npc/pangolin/female/tail_rear.vox b/assets/voxygen/voxel/npc/pangolin/female/tail_rear.vox deleted file mode 100644 index bd583c11cbfbd9d7b0b0d3b2b2251d35ea65d295..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1620 zcmW+$drVVT7{BM-+wy3kkY#@?80VNH8&Wj11+6>_$U_hiTi$OiYYUx2Oc5ay5kyoT zfmPIH_!tVPQ5>kirUO~Xa4ya)ab}{^Et$rR>9Wmjn*H|Oo#e~;&OP7n@tt$;wPfTj zaSMWw9+$F?CLvZS2-zw5iE4R4!-K+)LZrye%TMv+l+b9V;41DAHB2Y^aEIi>blivA zL>1FXzJg9tb30cvy`*Lare-$o%k-j}+azCR;2J^CX(Ws@$1H4#GpcTFK)i_=ej-Pr<(U={A*_KT7l?3DdiEU^p z2*Zp1bYNl^9_)9j4lYfRO-v-4}%U0WH4h)8X$ciMVrV8z#EL z@bE$so=uw&{OTe^X@gLlq{r=3Cj9xi8JO|JuaiqLccujUYlAU5uoJuAtHPc}GiocN zaco}%s!Erlwa$R@ybwIPo`z?))A0O37H(hf!kMEc%->v%fg@SCJRO57yB0m}Of9q1Zei|#X@<4bCHU z=pIylFG2H0EIeP)LMS{7mEMW%T{q#}`VoQ_C&53g1?w^n;I+kO>}|S=%^MHlaMv{2 z9hYHG`v9G;F=R&-;C$y-=&L>tmuWvDm&YMBun5+$2IPfQ;2m8Pa?)}z+BAunW#PyP zjzMu$CTc32D1U1MszVDf71n{llzLb~Bk+A>J4z#>@#3G~=qr7WPd}SLcV9p18n!=P@}siQ(a4w6(Rt<#NGnHX|V+0fB*m L@b~wJ{0I0Cssf*# diff --git a/assets/voxygen/voxel/npc/parrot/female/head.vox b/assets/voxygen/voxel/npc/parrot/female/head.vox deleted file mode 100644 index 1df613f6f3d2b9e99c9a2512a0786997c0f9d3f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1344 zcmeHGyGjE=6g}tM*~G$TEi7zIE#fB#5kx{zK|x}E!ro8V5AYK#w71VcIGtMr@)H4J zJ(J21NnxFVyLa#F+%tD(9&RUt7Xa78(Tx>OE8u=Kz1%N`S6KQMyD@p3j=rtSIxn9< zCe*U0CBRG-n=OItXa<$ZXkkC-c%?auX0e@{IA_H<81^|=%1F^rsbv*Q%Kj+0%qS9S zAWJ0wM~9?_JuaDC8)zA>S2C{aBe}1!BAm;HDYDE-<|+4*ab!FhL*^v!Mdl&%k}>2S zat|3pu9tbq9OS*+U0n>3$^d}zc--w|H-l|=V6j;2?#QoqvUm2pn#b4MU}G*HM+aU1 kc*w{E z#Ed}9!1xd-@G!{T$&mqQ1_*e2d;cHBqhWwA4Lo`BWHgN+EhdN}Cdj~m!p9d6{|I?@hi*ZG2~Z^38IJzGBBX<@x=o6ot>7{Ec8U78cv6t%dL4f=CFu;DV?xVeb?81U`a=_OfkWAeBkAW!@uu zZm?KUEUa_k zL{dm71yrrcgbK|paud+=Nx*f8Tr4vyxglT%YY6>_c&dhHaW8wQYUUFmMtkO-WYGOU zzL;Rj&}7teoy^}xm-RvRW#hz{`J^<$j@DO=Q-f6 TfAt^U$1qF$D0y}#j#7D5u-aaoN7GALMc6pEZ zO|URTEUdF|*qxa(XMXnXUSCWG4`y~Y9G!Es+hTS#nx1Tj!IeP&8OE2Vmdn+mlPy2PFS=*8%XiLgaJxy&GR z74hi3V8a*MVot>jLI=K>*&`M_OCK)w5Hb38YKvYK{ZsSu^mu4_xk4L{$BPX%JNWAi z%;)pX8Ts*@Y#rV&_wo5OSli3X-p-5dJp%mjj!%xWdNN7QTZAhlHTQ9f;;7?5%wUAHhOfxjrutQfRQyF7FY) zwNgARtTXWK?0oaXGCMP!%%U}b(I6gEVXuJSIQ?#UgCd9zA|z(>G+t4AiTn|oBhMV6 z&S7}B_6TDy(58UWCsgP7`I50Rht(yF zuj6^f2Fw>AME*1U8i4Qhk|asppy|P@8K|nNnUT9a3H!@iKhE3esV{$>c5Qo$8-Lhz cpZvQ|_rN*e!G84*@A$GT`?tPxuJ-$X1*;MSU;qFB diff --git a/assets/voxygen/voxel/npc/quokka/female/chest.vox b/assets/voxygen/voxel/npc/quokka/female/chest.vox deleted file mode 100644 index d2a3155fc1291d290fb6e9922a22ecd63a5c78d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3928 zcmeH}->Y3m6~||0t@*LfkDC&;rWdLq#MF>dp|?$}#w0Cm^%Cmdv`x6ZF{xN?Zd1L8 zzu**WAe3^EHY!14Zc$<>A;cg^$%|GWO6@}-_!LCQgDCnU;*%fLGKc(GCpBm6#yVxszwWGgcQ-Eix{4ex7^S1Po!=O=nWv(=y z*s0q$pHDlnz7ze)I8V*k#@Hvw*lNs-YhTb(r1Y8b7~_y>SJv$myAaTq`mC%Y%n3S3 zB`!49Q5uxk6niP!2Q&!n5b4j_$C9zZA9ls_fIme`S-@W^L#f2;>!Mc{WJuV`lo-g5 zphRDWT73$~EB6pB^h~JD#@%G)^nA7S_~Wx;Q9pVO;Pd1u}MHv`x~`39)JE zJJ;&AZigmyP1vg27S>}-*c+Jud(&zjGPW7Jj9tbq6T76`2UUFX6l@~CC(1aWCy?)q z-;Dpler0iutVwQ#Jr(x0;G?*&44QgnTp3r!m2stCy?-M2=~(W|jA!2)#xvs*Tn}w* zGJB+B2w^DbF61>cPrNqJmYFYJJD$h6_C$^a?LIf70ehcMPK7;E=4IkhDE^!h0~8Qq zEaafLPsiKjt$6I2J*N(eYxO633wn#ki`IhH!rm(R$equlHqcer_ky;9rh=A2t_wPf z=bQW$ErU=mnOadOBi082ofG@WUKOt;xAD3eF>gM{HHIOgE%RUfEV)kB72;8JC^;yT ziWYoK$u%{rJe4{v32g%E8mY@krKZRev_{RxKz*Z^8Y`Tkl8BMK7S3a#c8i|@;w{ug z@t9o~xh@M{M`(czf)9lZf-i*(g3qYv8&jX4P$K>KRLCIsRbbvVRFpf{vhhs3Y`1CJzdNwuGjHmV}1H z9wzoPafX7%A-K*;9FWkJ(37Z(zDkf?_=6>`MAir$3Ygx*BGC2BAE z{ls1-a+}bf#yTWwHnFz}{T2Nc{T2Nc{T2Py_Yuts0?F}x{BrhxwD`UM{yd57FpG;!xZmlQubH1s$0H}p63H}p63H|o2#%ALgC zc^~hC>hA<-#L|eR5lbVM#+hxL-R5@=bCfxPU4rQL#M+3n5oaULMx2fF+c?LKGu=4b zZ6s*(dxrN*@*L1d4jNh;IcVgdk%LAKT0=KEXyl-AcQoE%6$(Uh5XnI#2ay~^a!|Pc zl-LClc@XT9+xi@8C6a?k4k9^-XBRPoVAd-Vf z4k9^-i-PPXUDt z1uCSDeo)9zph6na4+T3{`{b2|KXMTau?P2C5+Z5UG!+6f{w z>apXU(5S;FKl{kTfe#Y@y?1vo+Y{{SLl4>cUAyem_U-nc0|)H)cE9=WtAX*K1$$#- zr}aBOYW7U9_k)-XPnj|H;Zrl){2R?bnXUcQZ2tpS?Bn-5XIf?!%27MQGS9l{+h&hH zYqsmt*X>c33>TlUd+qyn>4ha*z4K1{;YzS?9u0PCDcJE{!9KNbY>%LA^TeXr*O~C+ zui47I!Oot&%f38pw^vW@u=SJsZTaG7Y|l&gSTMElez0&QS=hYW!WTbaVSlzSYy^Ap z=4pHSUDm%9>=>4tH-f!%ZLb~p<59C;K4)*e)!V=9G|}!c`)jb9KM(fio55bYhTlH~ z`=>o<_U;R2e;&-|IBi?^ zuiJZvE}4Dn*Y?U``tR7X+1i%9_B`W{owJRN4MUdsHiUnheF%Ma6OMU@+V0)E?Jr+3 zyCc4C;q1$H==B43Z8O-R2lma`+}yMy-@Req_{j}Ba_*cxzJA=6mzQnFjvcn|V;`{- zCuY|7Gdp~EW_$O}?5;)jMNZlJ`np}XaKWx$ziyW=U$*n-&)aM^v$eIg`TV7&C0krv zwAH24_R5KG+ok8fXTNyyirxOv@9g&N+ji^Lt@+%82M^ln>Z+YNbH=V-y-G>22mj}P HB?sZZbqU0- diff --git a/assets/voxygen/voxel/npc/quokka/female/foot_bl.vox b/assets/voxygen/voxel/npc/quokka/female/foot_bl.vox deleted file mode 100644 index 8c27bcf6932f3997194850f8e5c62c5b609758f2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1188 zcmeH_+e=h&5Xa}7U41DqjJzyZBBqH#;Cjh2Z=|(|tz?R>omCQdU2BPMa3mANWC^uI z!dxj#M8qTr@uk~Ch!4Wj(-MIXQPfLBPeBmGr#b!?K?5IV&Y79-Z+>S^hrcs-RzzCr zeP`9lv|FUj7iiq;JgAw9OG!~Wy8^ym^^RpKhT*mhQzC|8ScYM0Yz7U}P+XQ6?x2{a zdW}t2&~Ut=wW6_TPQ7T4m`<-mRLn9&HN>#=RO{U7hI-Li9NWqfC=gbvs+h{lBbc7f zpUO(!Q;K6(MDtID#b_@6+(XbMY>Nw8+dy-fL7Uh&4L?Eu6R0R#=15^5?o=B|ZKh6T zdYsZ%(9{EYC)PNnk}}&u3HO;B^b*L(;6bNwqge=gg^oPoc<~+@bhcQx2d-(uqpNh5 z2qPoeTxv~c!pb6SRp6UFNx^U-f*aWuWZ6VwIY{q*q#}h2QDG<%;{2xSCxv#cjBN+K;6%IiUH*QKHc(Iu_0vpB`T2ag4Ev0EWMqt*`ASw}LQPrmF0ojQy1N@(f4o86=qOF$4tzczSy@>W zA3jKTw~gO#Q(J3ORAiIw(Y?5Wgu`KGW@cDhTVr8ifvKq}Y}=;4zkj#i>-FOCcnEky wjCbE+Zr~ozhnCrS_>P^O9g@l9Zf|vUHGx2YNF>6_%8LFHx`Y4xE8jr=0_hCRSpWb4 diff --git a/assets/voxygen/voxel/npc/quokka/female/foot_br.vox b/assets/voxygen/voxel/npc/quokka/female/foot_br.vox deleted file mode 100644 index 0602b4db24daa8990cb65391cac555795d0ea96a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1188 zcmeH_-%Av66vgk%uD%o)M*di^L`)Nfz*RTPT$QvIv6W2GwOu9Ab*&}(1tXatCQGO# z66Q)_BC^;Lg!t00hY%lxr6-BNhbZbLqNgAT;?o`fi=Yc<&YijUoVnk*)8X&TpA(Um zdf!P2U3^nNJvyyGhI+XC^M5k z9uMy+$Brwa^{2v8G#`KdA?Ome!~v~sptbCfMeLiVpP>HQjP zcIzu>>Vbk2NlvMy%(YO)eddSU1hTSt&?($#7D8^Jqd+)bx`zgxE!ORVYbtnjmCiC@ zbTpSst(i;)a|j2k@Xej1XrvgyiEIh7Vj{6Tq<243mBxjrFq|6T{D%5(3+>t&TNg%F zOYnSbh8KOTt@-)IfS$Gpz6z;l!t$~(wW{y^ApE2fHiqDHE4BYN)cBK5HAn2SvwCmUo+uN(O#KB`>_nB2DRQeMl>2l$HHEN{DuQM zA1Ot<{lH0KVIf~G!#-mH86Br~!NY1ysI4g7MJyJh?(RC*AFoq4Hbzsp1E0@FPEHP` zhY!--ZQ=J@c)b=SB^J3Z-HRhcI2>knc9vu^$>QQ7)6>&fmPLPm|E}KccH?rn2)GBB v=)T4L;60uXudws*9XmTaY;SMxYHMn02m}H|A`udag#Hq`ga7zfzJdG&+mOvx diff --git a/assets/voxygen/voxel/npc/quokka/female/foot_fl.vox b/assets/voxygen/voxel/npc/quokka/female/foot_fl.vox deleted file mode 100644 index 1886c280ea3db10fb2fcc21a63892eae112feb62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1164 zcmeH_-Aj{k6vxlwrZ)wefz5#>!!%I{oG)4C8)*))Nv6!1Gm<@X)`;HVkxUSi5xNQq zb5fXyh)EFQO>Y+=UI@~aM6in}>L#MAAPC~qd8B_L=)m`P&iB0iUe2$}AIP5;k+ufk zDOF-QMLK-JrrkDCN&Aa*)q(Dyuf=w%?Acizre>I8*f7FkNL0ku4uvypC^rnlG>kO0 z9SWyuh;mUb%0;55Pc}A)?rF>b zEo_Pd+B-mF`$87+uWEjT@MEYfU*u3xKh6vb$!Mis+w|F~FQK^)JjYfzp)F;)jZ*G1 zGw3Cllf(UhaIIAcd4(>IaI|C>je53tj~lLN!Nbc0N`;Y;TrRX{GtuiJ(p!md`Z$Hd zMF>u0Q;@|pB%X(y+ly4Db2cUnZJC@|*Z$i=r)I|2gyH34sy?*B^L|!W{rtq#+ZMtX zVe6@|upmq>>%Q-WA5_5lAbe_vH+rG(y)ah?x5~JAevFBhd%QUOntAy~GKpeKkyMx@ z%OY&l&cO9ojMu3@D~T0OGC82}rcq+C7YV`1DgX&hH0V@I1gFoi8P1UBva;=Gm>r28qo7a7IKrnmnge ziD?(<^7vbJTZT%;Uoutudi|a@%c-(QF~k-&BqMAX7DmW0Bx;DIZHhgl2~jbOuoxM- zwkh_oRw-(W+9J`@C!3o@_q1fQK%iJyuB|2EauLkU<#$aD@2J3%OQP{7!a}SNZ{Y#x z6}H3%on4@@eL<7>S6zOD&||2sT;fp40QM{s$!e!j+w@zhFQK&`T*p>9p)F;mgL3XN zJLJZnm&bjdaIIYkx`iH>aI|a}&3d+YzzJ8h;NfL_<-+J_J{LN3ne1~A>8r*wbDZLl z5(GQ4CCE|+5-&i`?M13HIU5s(x5J#-(Ecf*TQlS9!pKS~H6PmH`2cHcUVakR+ZMwY zVf(4DxF}4m=)UiTA5_7{5Pa%{H+rG(eK6kuw<@@Kew@j+d%QUOng#hrGKsRSB$Y79 ziU^zavvBoksy(HiN&osX;FexoH$#?2p zY(XNC2-DNktgfyyKR-_*k-#)fLZQ%3z1!`^>2%_EhnWc6V0Q2h&xV&sKX^+zohFq^ c?bO!Q)#3O1iAJL=FE8tt&>8&aUwH%h1MMZt9RL6T diff --git a/assets/voxygen/voxel/npc/quokka/female/head.vox b/assets/voxygen/voxel/npc/quokka/female/head.vox deleted file mode 100644 index c3e7fa5f692adf5d84eff4339de0a1d269ecd3d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1668 zcmeH_-)me&6vxlZoVhnep(SEX1Jw{>x_1*4vTb5DCTX$NCDaYphV90rV%emrE-EU$ z#hNtKvPc^%L1MNjv6K*E5TxYAUk_6HPzXMSBIH3V^+lvlf*{DZ-`W47&;sO zVjFjQ)kM`N#zct=cSM~}tlF~?QExKVX*MFxxl^7v>*(j`Cy8^6A2l% zTIG96AD{Ka(jF0OLmrmznoOi_+A#;~4Bs$WYkbxa$2d>nr57V z8i*%Os7pLCoSRB`pPC^j5>e9zea_ahhNw==UdQy;&X@@6YY29}VM%P1z1D04a~Bdb zCqrWP(S%;o*OOOX+`mt>{wv9iodUEAmiO+(Y-=mV8XNI{PY-UP3*mcPc>j&yN~Hyb zmM4Itf}7%ip~C?09ve$h{fpZ_fb!Qs_wFTRb{&UCDI^-i0A-E^*B^m{$AH%7R`CKQ zW&RL4aS012b0}@!j?asN_Xh=IIl*wN;MtCcu%Edd*|QbJXSM=gzKdd~U}|ay-W+Pg zh0!KVjCLbG|2*2y?1DfcHwCg}A=RCb*B^m&d%RW=oL(QttJkT&K|Oj_*92!)67>8& z2z-AW*RB=tFUDDIJMgDq{aeA+tAdLwO!POwKiC6YKMC9(0)AmZcSnK6e&FLSeDuaS zTzKg-{P6V8xFUa}Rs&flH8PG`*930#EdU?u3K*KqL!?+?tNQmKGxA&f!( z10H35SSLqR##WCxVVVf*;%A%igLMJkI&_D zXl`ysDL0PuBOhYn#HaY~^b$6|_!XO*o7mXcsK@s9_M%iOVRCX3%gf9BB{+iz+%G+l EdyP=#82|tP diff --git a/assets/voxygen/voxel/npc/raccoon/female/chest.vox b/assets/voxygen/voxel/npc/raccoon/female/chest.vox deleted file mode 100644 index 952c15512403577b51ec81920fb9f3d0b0e4dfb5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2000 zcmeHG-%H(P7=PaPdCm`A7sF^dVI^X&;V|$lWo7C{TODL6t%*CPi-w-LlI$0}qb0~1 zhnQAKm}e9=hKNZJ!<%Yd#Ms3^x{?UIh(_H+bQJ_aeEK|x{)wOiAKv%-{CYpn=XuWX z;7Ie5h@3c5e1?bI%!!;VmX6)yAN*yBUH_gVr%T0ob*so-BGzk?oX*5L?U1~t4DXp- zOp@iD-;(D&!_#y|XwPH<#K77)VN77Zti#?lOM4X7WG%j7%3Rh}@(r#PV?!N#pgw_|g6DXj z%n5`#C*_&7q^=M969;uuqn*7fxkSbU+RS;;ANWp)M4*p4M`|4F2=C81Gd42L$UQnI z#zw}PYeipRPGC-8PGF8QRvD*^Q^u+HUeBC*@6Auzh>#~w>JZpZtm)2N)-u=Jd!>ef z+6K-vaJI%b%-;%xkRSb#{z!kMKhhrEp4X0;(+;IyeKzzf{mS>1G0GU_jAG7al$@;w zpRslXYHieBnIC+2sAF)Qd~UuI?&H1$-xbg241>?!cZ&T)!u;g!C}Bikk46p5-*ouh z^`~8ZXJUrm&XFhi8u^;{ORh$)#@R-nDR!S(Bc`E|bggWwN53fwvm+#LeGWkbJ@0V{pL zJDqs@#Y?#I^auFrk#BHKenYhiVvDE}lc;unwrAe+8S4a LGx#6>6%FJc3gI_) diff --git a/assets/voxygen/voxel/npc/raccoon/female/foot_bl.vox b/assets/voxygen/voxel/npc/raccoon/female/foot_bl.vox deleted file mode 100644 index edf4bfe554dc1df6d9d18d705409a856e21396da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1156 zcmeH_-%FEW6vxlIO>YVkBbx(DhH0V@ICEI0Q_>n@lT4Xg&PcYYHTn&&WP+HCP%9+N zNns))Hi8gu`gIZFg)q7r5qJ?r-9&U11VMZ{um45Rfe+_A&-Xd!InR6Eu0XJOMnu{g z{ioE)Wrs+IKh(U_TBz9+yON^>yF-4TddqexhT$*`5z{aX#ip@^#$q=`HO*G9v91mE zhD~*wZA}3$ALyqbmd}g^`g$F0|(}(c>iEQ-goz7^TBy2o7XZ zkR=~(?+4*0hhcpXKDWbLebA2{m~VjFRops1#>C0{ygc-V1^G@Yg_2QHN{m!hoQ?Wf zxbd3t2Hnp~VMbF-_N(4JN+OX!+rk=y{DwW+9~q_7+Hg=(Qo@&ukY~&xBV*Lhd09yc z_0<*IB$G*ech*sVPj;BpQuw=X*RJTrL+OPmJ;KO=kP=@_cBCt%vW}+S($U&2Hz`)zuLS Wg%}tZV0n32e+iwzfBuzkAb$ajPt5)R diff --git a/assets/voxygen/voxel/npc/raccoon/female/foot_br.vox b/assets/voxygen/voxel/npc/raccoon/female/foot_br.vox deleted file mode 100644 index 614e96f7fe54aa7dfe47f69e1f2572320e205eeb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1156 zcmeH_-Aj{U6u{3u^rj#&vN^D1m?jE=Glyk5C9NSg$&|U}jAWZyqi=X66U1bMu0q0` z6ec3WMiAmnUl$=>2&1bJffrHKO+;5g5X7(Z`dMc_QCodc zEmnH+$pJ-_oy~~u15`l6dU0+Yq@&xK?mpNE5fIZ(p^4sxhnSS%=D`@Kn*U=2ewWQ2;P|ZE&hTQ~< zig*wZuD1(ex6tDfj#TZSMSDwxoN!eW9$g_&EsTv7bD^`4sXhm>zB+uf$0#4IK(Hg5 zf-GB+L*s`SJ(*Y&Mpr8Fd~Amo1FWw4`9)M;TMl1^>@#6$ zNtj;Idp`(2ISlK=@VOJ->Vtmt!9o+~87f!}Y?)MQXuX;AFcx!A(QVlifB zX2@hREG#ULOeQf5gGeN@o$q$LaXOs@-BBh(H<=r}%kz96A~u2$U;6bB;)5`H8WHRvih7CYDF}l2bhiH@=)mXxIOm>o&$;LJdVOUJBGS?9 zIir(wTSU4%{?()ekiM^8pKg^Be_Tp!!v#UL9SUVbs8)t19oA@xjHSrO*e_1+J{PmaRY zD17dOw_4DTen`0Cb`7^KOf!4>J}-~FVOhQtkE5iNxH3e%Cd_u@BHVb*j9c}Eag0!$ zxnZ@pP7#Sj(6q?5L4LzN&5xAQlT}!7I2?Sr1cjz0WOACuB^T>ap|Q3qM>HCx>CPtC z9&ge#HAP#v7mvq-)oP{c&;bGg1FzS>?KY^aG$^rYU(7+m;V|>_^CXi=5{U${SPa83 z2!%p9f2Y%l&1S>z9AYMLlf~h?JRe^r^Y9&+Oontio%3yIXu$9HGcq#5+S;0a3GKmu I{*^b7zvY3+HUIzs diff --git a/assets/voxygen/voxel/npc/raccoon/female/foot_fr.vox b/assets/voxygen/voxel/npc/raccoon/female/foot_fr.vox deleted file mode 100644 index 0d1ed561cc5f2398929b4cda86cdf8f22874340f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1128 zcmeH_-%Ha`6u{5il%O8O$mYP3u{2Q#oH;CWDrpU|N&aANIU|`96A~u2$U;6bB;)5`H8WHRvih7CYDF}l2bhiH@=)mXxIOm>o&$;LJdVOUJBGS?9 zIir(wTSU4%{?()ekiM^8pKg^Be_Tp!!v#UL9SUVbs8)t19oA@xjHSrO*e_1+J{PmaRY zD17dOw_4DTen`0Cb`7^KOf!4>J}-~FVOhQtkE5iNxH3e%Cd_u@BHVb*j9c}Eag0!$ zxnZ@pP7#Sj(6q?5L4LzN&5xAQlT}!7I2?Sr1cjz0WOACuB^T>ap|Q3qM>HCx>CPtC z9&ge#HAP#v7mvq-)oP{c&;bGg1FzS>?KY^aG$^rYU(7+m;V|>_^CXi=5{U${SPa83 z2!%p9f2Y%l&1S>z9AYMLlf~h?JRe^r^Y9&+Oontio%3yIXu$9HGcq#5+S;0a3GKmu I{*^b7zvY3+HUIzs diff --git a/assets/voxygen/voxel/npc/raccoon/female/head.vox b/assets/voxygen/voxel/npc/raccoon/female/head.vox deleted file mode 100644 index 6ae54ecd1708e306d9f1cf5ef804e795d031e061..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1584 zcmeH_&1+m$7{=dw-uK)Hx+oEAI#>-MriK&?nVL|INm^`m2z5ehLpo_vu}r3^4s-n? zr&@!dmOO1n#a##k4HST%{&CoYq%rj)%}5Op>6tVJTVnp2&Q)dlC2dCXTyyiwPP zwp7ymxO&PE09+VyBCe>QZ-pV;# zwjcYeagR6=`i!#C7p1YRE9~J+r=8jRK0~L4_NLU%`!?Ql99f8n5+jcI?92Hh&PF^@ zp-fa5M>OL75KZ5d9C`l0ezEM?<yFmF%pl9zgp4fE?76(W?gh7@$nTCD~96AZKJ+p@A zSW*@aV>dp=;+Z^3+qdJ>QNde7f{DCfq)qU2*Znxa+3I6C;0-2x{yIi?3ub0^;ML(~ zTpVvfWxNN4g=f)mZWjawxh;@o2dVFby!;@f$Kym*aCT!7FWqGQO~Eln*4G8+Ry)!A z^AK?T6s}z>;x9~c+YaD2!N%8ut5*e=R@wKC;7>dS+&lyPG7S8{h5i@^mIi|DZ^y5%0o$U>keT!7zub$}x}bk=S4O>F$KZ$Sc=L;O49?EtP-O&# zLIEu;E$DjuQH+fR6pH}^0|A|#0XuSh7o9+*Qo;QEJl59Mu(Y&5uTu*=1~f_9M2owy?RmndSEN^`TTMVQOj$D=RDfCHMya^Iy3G F`4@0d0&xHU diff --git a/assets/voxygen/voxel/npc/raccoon/female/tail.vox b/assets/voxygen/voxel/npc/raccoon/female/tail.vox deleted file mode 100644 index 46931b0f817878d869afc4f156ca5c83e7960d4f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1176 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 LttwN+{{Q~~P#jT7 diff --git a/assets/voxygen/voxel/npc/rat/female/feet_f.vox b/assets/voxygen/voxel/npc/rat/female/feet_f.vox deleted file mode 100644 index 3b1c60b692b8a55aa3639d8ac6237487a6e877ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1168 zcmajee@xVM7{Kx8DB(7KtOO+Qkh|_q@lH?VM;rn(u}Dr4L*mjCSzBj{{DC>(~ZA^*fbHCBJUdk(k$b3EH?&pw~;=lgv= zpXdAi`t}{Lc8kc~GH;b82|g}T{lPVstKECFr_%U6-Ku#4j_r_wU+SCR#TZMMXsfgF)_J6e_NKgFWpZ z{!U9H64^^ECMG7BoSbBOdYYM;8RqBbSzKIXX=!QsdV702ot>TZ_V&`>-_Ov{5W~a6 zgu`J*M@P{T7>!1flaonJO~tm(jKjK)Y`X>5dfST6&!{$$)nLOBbWs@E!BA5ZH=3LI z@%(unT)IR?o#1#&*xW6YjtTP8Dx}4Tbfq98X>@7*KJ}RjtFP4e>KFBg>N+i4?-U|~ z!mTfKyhG?O7jEts?j05UIzH_aIs!U>N_Zwq@K}W6r-hGnzPi9fL%EHX>Wy?C$s<_n zq5If#M9#jHXpgU_{w zh5|DecCF`P_%2i9R|s9MBQkWH#Kc6bR_n4{ zr;Wlb8z|0m((!gC*RR^Rd&|YW$xU3=nxO&V_Lsu%KM7S1p*CBna|y4yh2y!x>jipd zkML%RV0l9OyIOFi3tKaEzb5T-rm$0cP+?p7{HBzo70+L6F%u}sDkhV`kygxFIDM8==iF0gk z?PJf!W7OQ3;@1mW;88I(#m~J$^lBWxeY%Q;&yD;!lE_~-Q}}oEN%%VLq3^QbwiABH zhdbNhu5K<`1NZA6_2h^1Gp{ZGUkeKh%+1X)J3C7>8pZ4N;`8|k1On7*1M1aLbwZs{ LttwN+{{Q~~P#jT7 diff --git a/assets/voxygen/voxel/npc/rat/female/head.vox b/assets/voxygen/voxel/npc/rat/female/head.vox deleted file mode 100644 index 44abdf5d46baa6f0f949f6d44d897590f65276db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1656 zcmaizZA_JA7{{;YetFJmh^s`+gU|EO0bf9i*T5HMVv(FwOpTMGvbHcqK48u{WvrI; zq7IA1VKPmrnQS#RcE;S=aAa9-#)_QThNNZ6m;7RL_37XL!PYnDz5RCG*ZXx}=RC>f ztFt;qWLZU`nnLPbkyVM>%5kB>^AL&t$Lck;i4qlBMcRl~;#nnu5#(b}4e(2K@ zxSF#PmpRHfp36MN`K-$sUB*Tn#_}zWuwEF;SscS$L)%6bvy66?9jcnTOb_U+rad-v{`zpbqe9UUF$>gqywcQ<-^ zdT{F0DfIRAp})T$Y=LMriuCk!OqehMaW4}&SsrF&2gsWie_;K|D`M~);>c;qLuqOu zdYYPWdfPVqxOXpZ9Xf=`>jXJ(3TAf-%FhbqMGI+;LJo|F^k(1y`yVBrkv{Sj`JVhj z{vZc-2u^kg22Kbrd_jGopu19VW~JcjMnNt09Z5lZJ?+~CPx*qfKrrud!H2Z3D2bt= zGLGgIGts%B2rV^b=-l)S26n%MTgMwPD|-^kivlcpdL}j`%h33|pmjZG+9o*rzM#~P zA(5AZHN~@0SC)@t-Xt`XWMbdqY1qGXIx5QxvHZEYsC}UVjW1WDxv3WIZ#N=!;vEc~ zJA%~Vbr|T`jI^{gWMyTIQJ5P?>66njuP7JoZ%xI?V{u%$kcX>-vv8O_Q^y4tzZCrb zlb||BP%}fYE>G~v6N1f!g4as;<}$$>^98}f-0!1;yorK>$(%RFJx>)Z;ts0f4}O1a z{J00ce_oJ@`uRoJ`t02Q-``Z4iBw%aii?Z!LD^B{7j|R*o?V#IItAZ;EV#6m`_Ils zZf-6%WpBsQs$NKIGbV1Gh`xh@cQZ5bdMw8OA0Xq%VeV#!BmvFh{?e%;3g_d7#F__<3k zd`#iDPc242kK)hXG~78e9{=<|0(_lukMDfoVlMDQF>q-CaD~GSuL7>u-LLXJ`^c+f u-`D8qC~n-ifos>UVR(2Li9`a)WD@oD^{C+j>c~d2h3q7|Ncdfb-~YeGO=~~^ diff --git a/assets/voxygen/voxel/npc/rat/female/tail.vox b/assets/voxygen/voxel/npc/rat/female/tail.vox deleted file mode 100644 index 310c3afd6f4324f9d32be2354d04cdaca3fec79a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1136 zcmajee@xVM7{Kudl)S}{RUDFc$X$1*cqetok2nNoVv$@bhQy_atgSOe{=gh_db`zv zeyGDFVUSG2s}XE9F?M5aZLo`?+>8}Dvh5@+LjH+=YOMZx_Z)8h=Xkc)=dPnwgmy=I7^GTwG*nX=(X+dwV;bot^ad_7V<<85|sBXlRI$kr75mN6{rP7!0JQ zrjnkXj%~dehjl$Ub_=czwiV~ktTvI|Xu}b5Q54z6U~@CqT3Yz=>{;$zyhvuf;CM^O z?H0<$1bHb52^x^DG-TLFm#*KZK2sy=EA_qlMg5_=P6}5$h3J5A;|tBV3E>Li`d;DA zVWCd*lYXHipyMZmr?UmGMJRbf_)y2I3r#du*a%i{qWe%jp;|B9N1i2m`ep9*H?rBj zma=>cJD=IaA-|WV7lgKhx~CRl?7UEvZNleru)iRe2Co~xYb}k1X3p){z=d5KsVK{1 z&+}WTd$F9RSE>j$*U|A#6On;;nHs-L8eYg(*GL z%DT37eEYF*>wwnZZpZ0#a>RauU6sQ~Tab+78I1G@@0rcKVKV9e2a=*5R}SS-WvWuu zs)LZ)1g0S5oQA?4DDQ`=2pkxPQ#}K;eG=jQ;c-lB^!pz>!`9Y5c78NQ&9y0hJ*Nvi zD5j?PxmSo?N#wUrlUVrNz@Nj({B=Eze@7pMuZ{P8mkl?a@IwLI+6uRIbFmt@+wh>7 x?~l*CwtT-978aPBn`3r%mRKx?&*#JM_Y(*NsMP{AsKe@*I;C1wmWtp1{{Z#7PlNyf diff --git a/assets/voxygen/voxel/npc/reddragon/female/chest_front.vox b/assets/voxygen/voxel/npc/reddragon/female/chest_front.vox deleted file mode 100644 index 1adaa0b3dae3ec9b14cebf991754eeb7172c6d75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5492 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 G!+!w?dvJFE diff --git a/assets/voxygen/voxel/npc/reddragon/female/chest_rear.vox b/assets/voxygen/voxel/npc/reddragon/female/chest_rear.vox deleted file mode 100644 index cc013a9bcb958368ed7ebb0613fe5c271f18cb19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5984 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 diff --git a/assets/voxygen/voxel/npc/reddragon/female/foot_br.vox b/assets/voxygen/voxel/npc/reddragon/female/foot_br.vox deleted file mode 100644 index 86be0d6765a8a94491a4b463a7db257587dbf587..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1996 zcmbtTYiL$=9RB^U=e%3$baQjFbj;f}O`TKcdC!~8%hI`~>2m2((Nc1WHAaYzq39sA zTA2-Xmog2p5KUzhqsT^x2qIz;MTkg5U;7Zzx2Na4Rv-Kl(SaY&|98Kh=2h!TkBUg+ zqWYBtxe|yp)wk3=k}&*o|Dqh?y7evf2TdXsxli(1GTKWrWD4o{YW~?@m z(Kgn`M%tRR(k88)inY~gr&VON&KPZCoyd*JXsaS^H0_DhX|1T&X`@waN!m$TTjnz) z<~3RvLn5ao?Yxd%KpFEZEwNRSRz{J8_0UgAtQBjt5^1F~Dv7U5q!>3~OlMWvQ|BCg zy^1~i@s2e*m9cy~OSzMbWv`xf1WqF3C2bOW$9|lSoYl0|8D}KzNtQl_wVK42ykRWE zJjO64$z_oGxju`9SprJ|XG#f%F^lCX`+i zB=&m1hKeM8-m8Hi;5#M#mNp?}p`{;Vg+_WqEB%3?Z(>Ke=i52em$K3u7{)b@yK~&N zOIz(Y56@k&KNG~pvPTngCM1*M3{vc$Z!sC`Qk+eYHp+9S$!r1=b;@!6VQg)RdkT3+ zL8M*4`3Ag|fHxDSEqCsCOV)Vusn`*nw!G7T`wKIU_9m%8xJ%=BgPw2hOI*e(!~3(W z)ib7zjo8@fq#ov>%=i@JINmVhSjJ<2&KdUTdAqDvhrEBjE%#{IyQPowk+qCNvexl- zn8!KFn8Q*>y-RGoj|}_PE+huLxqvswIVHSj&pwRSEL*%tZ1P8nELgArot>Sye?+kS z{cD(1@CSY?D8TS=Ba-i2{Sa0*%*K|DF*E=B3y z>8LmnLFyc2M-JrV7|69k}mFPsn=g%>4~ViJ`F`11e5nO_EACR zsz9D){*DmRGZJ#C0ChPzs0~A`Or=og9C}1>ne-j$XHw5@!TI+D!)F9HE|RYmoU9XE zStGdnlAwkB?qM~VW^;CqGXBJ_{=9M_#zYkxY>&DG5j^l?Lr!Y9M0mC1^jNIH@jLRR5 z($Z2?Rg_`=%&ADvsX)goML7Rq8NRyJ%ne=`r=pA_KY?PA=;#Q)v@s1dmsHF5+B#^j+Wf8>Aezq+~_@7A2atg4fU4;?^p zS23=i5`6o-;B0w0Dk>^4Z_E>Tdifgts$c0`^Vm!R%RW*!t${ z7`Leiw?3VM%Pqw?!dX2$|Aq09Y^?Q7H_^Tw*mLX*x;`4j+n2sZ?^ky)uk8>P9yo!9 z53Zu=!X4Ds*5bYZ5|Z#c%pJkK&mPowkN5R&dj5i#Ua}YoE>vwiv2^;H8LjV8( diff --git a/assets/voxygen/voxel/npc/reddragon/female/foot_fl.vox b/assets/voxygen/voxel/npc/reddragon/female/foot_fl.vox deleted file mode 100644 index 5b4d8fd38ec3d16237a18e7ef3a108b3db0bf403..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1932 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 H?o#;+p?+4I diff --git a/assets/voxygen/voxel/npc/reddragon/female/head_lower.vox b/assets/voxygen/voxel/npc/reddragon/female/head_lower.vox deleted file mode 100644 index 1eeec8571b79865f7ca6a5be6e4a748f4de9313b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1820 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 diff --git a/assets/voxygen/voxel/npc/reddragon/female/tail_rear.vox b/assets/voxygen/voxel/npc/reddragon/female/tail_rear.vox deleted file mode 100644 index 9c1972d2e942631b474dd47025187d52b008786b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1484 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 diff --git a/assets/voxygen/voxel/npc/reddragon/female/wing_out_r.vox b/assets/voxygen/voxel/npc/reddragon/female/wing_out_r.vox deleted file mode 100644 index 00e1574616461501c42774cdcd31ae9570d452bc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3580 zcmbuBYph&V7037EoS8G{%z4b5Gw->NURvk_fl_FhhgcpJN^P-JDpVk#5VXAEZht8ZG*m*lNtL&(6^|0sZaa=azMyAJ&h8|{3(9+|y zt%vol9@Tp2_<9t(=2REjsp?TX(SvS)tglB|X!0t)lb#-wX3fx@GlNd3M?Dw2k{-7s zJu1)ZLDDDAj2=ZGoW*}(H>ZceoF4h}dR&>;BM<5$>y`B|E}5aT%8cAq*n`q4J#-iJ z&{@y}yP!uca%k4|xLd_<#f)PQ{W&x0RrD|l%qa5BII5a~J8wpv2;CH2_JYie-B~m8 zI%eo~&7j;f!*bt@tBDzwX3Vf!gRh%GkeXqwtH;fZSj4Hc&7jgUgH}xs+c7ye&A@M% zQNOGQVQ2T|LkXcBtB%!<-%V>67Z( zk!pb+^3`^zSJ`pBqX(+Vx`8}{rgp6ApvF3Z#&)10D} zaFDy81Yd^s!Hga2c`$3orl529hgamL=J7`^s>t^uJ1EbXNycoYvB}$2ojXmtl(zKL zlx<$^n5k~riFR#nS;r-PB6jtOzBQ-%#+=llo%W4B+1L7nt=VZEJ3D74rei1NIX%&B zJ29DEva@Dl`)1-mwQqB6LB-}_S5N!eoO0OfD}CHJHg5(xZ-+W>fUc`^m;7vObAw%j zy(BTYP3*K&(RtJ~)39x(jhMUxa*WUm@lCEKvQu5MdB@jzh+aZ0zhjmfiOxIt$*?KS z>q%OJM^X^k1ST|23D^t4VK?b*Brtx;FKt*6@9+@TlU68cR&?Rq+|WjZ(1<5mGV zrm4;?ImA7^R6{2LZfd4c%S;3MStZ{p`MBtW$f{kvWE=FHGw{%BMLPG%!<(gl)DYoE z$95W!N1U46kW+=;R@irl=fS(w?X#{E+fB%Wv#{(L>UZf~mg#B6o~B1xoqX}<(*JH5 z{o?O#{=*Ag5zDq^lh+U?haTLk+uD zv4;BOSjDbZ^rp^ROx`{|6V@K*VrK26#Vpi`pJJclzr>!?u+s`_&Ae9Fs}^yYrJ!q; z>iA1R1)1A2O9}pB{MPE|P)|_kBdZWQppRj}vsXqZfkxyWvKOK2WXuP0uUK;~KB&?M zA5^dlsUZdd>!8Su`&MI~OT^X8O2oX!M3!I|(eEZRQ7w9jzY2Pdl(lI!bgYu?ooG{_bXsOBHtGC85O>fN6b}-evA6DqTlE^ z)S;{7&YR|Nk2LQ}Sk%b;8{Uuv-r;_R*jDjpi@VA_X>k9W%#!KZNd})5Zxgkq)LsX+ z@K?M`#d}4pI?yR^EceMGx5P3aW8Y<+akom`WlKzrPlwta-UOd|9p0c4wHoHLRP?BL z`;cpTRU@x9d3cPzE-erV4IO&m8~ZuDRwKSzcb2505Ch`TK9kMcF^)?^z}nF6@-z zdujVQ*|p;ex$o|gEI+hE&ONzZ&KG`cEmj^kpU9ekI`{B`NFXi%PEA8OSY@MD{(N$~Vr>$c@WNb{|#p z#WPACc^BK=U71~6kk!lUW%Jps(mRmJ!r`v0e|}CjzIlnX?ozV)aeN3ka_qqy z0<$=9hWdAKn4&ANf^jDR<{v9QoXS=d}{c5>u^JQ}2 z#)0fz-;~9xdUE)tHFEZz%Vpbmqul!Gf$aP2b+Z57U2^8+WAe+F4$IrWct-y4)^l?9 z)LnAn$6t{k2&A3XWPW~LHm+Nc&6iy)!zEnY{9DN8XpY|GWM;3?z<1$?A!;(&&G# zf77N-^4%?`5tCv(Jr$yJ1dW^IVx9Np3D8;{F=1yX~{c3T_flBb>s-W`gs4Z9UWQmb?2V9<-mg? zk39W?9Qx5&`Sz>7mgB#APp;0Nlxv?jEjxbjy6k!RJ=wZ-t9+2Zd<7kR Z>G2hM>G5|ZjXSbQFaBrm-#QR%${Kq&wK diff --git a/assets/voxygen/voxel/npc/rocksnapper/female/chest.vox b/assets/voxygen/voxel/npc/rocksnapper/female/chest.vox deleted file mode 100644 index 4527c0dbaa836c95f9f69e9837c0065bd974afb2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39944 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

`?lY)Ya+9 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%0Ad&l3xn80X_(9ZVeCB#s2VXy=~y*dRwJVIr0M| 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 diff --git a/assets/voxygen/voxel/npc/rocksnapper/female/foot_bl.vox b/assets/voxygen/voxel/npc/rocksnapper/female/foot_bl.vox deleted file mode 100644 index c96f36bdcfb6626226359fdf5b3a51f132aaa558..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2124 zcmeHGU1*kN7=E7Te(vXazZu&I(p-pRtSy%`aHVPHG}AW3HZo;xsgP{`)QJAzlT0v^ z?<-w)5ay&n7wldJ3fhz<;b&U@kFexCcj?!V{0 z-#tSk?dOa!JGTrzPGKHQjM+6fy6v{|!fy#t`3oaYjSeQh)EZ+gVWj4))P#sWsfh_S zb+HyCQihthC6pXbjuO7+oYaiiy7h#(x)D=1-qc+}L|YG(N~y8Dn|cVY9!hhq|QRbt31F&32&vPy_~ z5@Q~np$uu_HI2?@i4R4hw1t?(lH+|*QSvpWv7skdlqh{lo-&^>H|<_n590{)HR3tu zRoXmb3;ij5pbU8o)H6nOnnmY}7|OhwC(IRvbt`?n%R{h5P*VhJ(@@?m&q5tJ!MY+a zP6&Z#$piBT>$4z2t|y0J-@(z>IqH=h%>wHPtSdOiQu?x{z;_FdF~pF|7`~L61_?ad zECiDWb*ZopVGT;@tx1*ejkC*@^>{0pSeL04>OJi~bIumdk>^|?&SdIruFj>75Z2~t z_p~c#Ax_Bgnb4*@dne@k%=3-ZX|58e(?SE|@r{)5d<(C(5bBhBAl~Ley?B=icfpIz zJoU<+yf@^t24OCq9d)YgNm#p@%&TU~_fXErD|7Oll>4K6H_zEB;k_1KSd$8ELY=3M zy?W1>o;KD@i02y+!hKNAMmQJOm?^nIQzxvSc~xxgS*v>X%w3kUHumF#$sFr;oQbeD z3G9V%>?v^H0(UaeB(G>vBq2#FA>l43MI|PA6Zf}?_oxZ?IN|(a-o$-xqP;1hOp+{7 zOB?^0VDqH>55yGw=edIf=aR6l#M{jA?#O-Ou}8M>|80CXRv4hmV0Qg_Om%eN!nM0` z<=cDlHP)c~o;S3AWROm_W2k*4@YQ{|X#^PF1<eE>dG zVZshMeu32dg6U}x^TaeUf$22|abweY z;FZsDs-ODSX;jCjapn;1+fHC|auQ61at!7V;11S@d17~|@aXL9#E;Jbt@Z-U@srqe zVI3~jXuCPi2S0>bt%l8SUd2lvT*c-SC$RnC9t;i+qOY$HZEbBB8>?bysEYpnDpswk zVtE_qBKxqguzTdp-vIN5|E!aTZ>i_@!U*}=|1k;s$U;qFB diff --git a/assets/voxygen/voxel/npc/rocksnapper/female/foot_br.vox b/assets/voxygen/voxel/npc/rocksnapper/female/foot_br.vox deleted file mode 100644 index 0d307e92dd57942e6be016cc2f544e5e7116cafd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2124 zcmeHHUuc(Q6h80!p7(t}HMS9?xe&)#TP|tf%F@hfrfrCAWXjr7A=&&>Bl-tF$pka` zex=JU!kiTA`y<1K5aLb$E=0T#Mpr9>1yR&ZL{~x3&C~P!kS+{@?)$;RdEaxMbI$XA z=kVJ-INWwtM0RW*c!EYANXX=ZTaJIhKNqwPqWreXQi44H{BGl4e5 z%*L2IE4huKwCW3IO<|R1&luyb;;3fEhurwc8kL`M=X2`YLqcYZe`86vsyJhT zes9ZYOcsq~-k35N$vw}3+5)wBA{duPW9fJFDXkWXHDzL@2-Fa1y)~KVIceNY7N{>Y z{8C2i2qlm8s3%xQzA{&N_l2jPKwUnto+roKJUCkhZ;D8tr`A}Z(#r1_9qU(6lY6CB zl`=T$cTz;2x#NZB&P2yLzN*O{+yT!y1W*0dopbZ*S;yy|^9`JB;EaQJj62rincv%U zS0ZN}oGU$dA}aNBCecy5x*~EeiP};F@0@?ao}Su$L!V_|p1I4B`Xb*Gf{<_Wq|)m7 zZ34ejFh%03U5K1Voe1Lb&h3xFoa*xtzIU z4;M^n`TZ^XSbh`BeY2dIr7o-N$KHuI`IC=7x>;`iCtP14K&N14-8xLRx8wZPyK(uu zd+`m{p!&TajDIZ1CfYFAwi5XIKHLxo4DAFMTei1`^cNm~0LDH7*4}>s_jK)th8iSn z$0nB9S5ZF)w(SGjAD+cyEGcJqU^UL*+~Hn~EM1ECh6S%|7xZ+tp{spG11s-ZhIF(Q zc!>!gyolk|f@8;)Raca+c+1(7;t9WKY zaAa;APhDgEdBH9+(<_3b7gyoI@3#Y=?#JcJgZKmEd~GN2vtaI$;1ao~FS75qg5U7~ zaP2Vg;}CF_5BhBnFx>~dxdyL4djhBW-^FJ=Um}xVF*OBZj+i3GF}3CZu5UaCy!r)B z_R-%mh1%E@P9J1^>v2p>On|LWjY0kd?w~%*5xXjfqNAe&KRpk$nDdZhC$RDSgSeP7 zc4Lem{2e#;)-X6&LtkGFt5(&pyp?lt zdoe#hkJ;JT2BxQ{F*!MjTCIk$v9U&eS65dff24ODCr4kyxr6WElOq?f@cvg=SXlTw zf5V0i7#SJCp+ko-Gc&`LkpF}&TehITzaK+GL#S%qnqR%6ySp1bJw5-3Row2D7OY>g T1VhcuSWn!V|Ns48=OKRq0{?vE diff --git a/assets/voxygen/voxel/npc/rocksnapper/female/foot_fl.vox b/assets/voxygen/voxel/npc/rocksnapper/female/foot_fl.vox deleted file mode 100644 index 0aa14f0820f0155a216d04bc8b7b26d421cb9a8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2188 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 diff --git a/assets/voxygen/voxel/npc/rocksnapper/female/head_upper.vox b/assets/voxygen/voxel/npc/rocksnapper/female/head_upper.vox deleted file mode 100644 index 4dce04ac0030db48d15f54529083919e70dfca97..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1708 zcmeHFO=w+J5T0|+ockixBnY-PQW`?cGqD&*w52sRsj)SWQ1h@h#21r-<>jXu#6P&j z8i=(#w2gHkF)t|b{*(|yK|(hEElTO45L`tOB8Z|J5m$oX=JUI6;i7`z-V5KobLPy< zH{Z-19vW$05Rv0Y3QzDOi-E|ALh0!3*?~`vxQ(D&MxHJerYsFU)$HXp3^J(RA%t@- zv^AK}IZNAyT0?d=v|XsGsqq^7Koe_yY}LokdfFOW=VP^+IL0`uk@p%oqp>=ldUcTr zeB|m}Bu--!XsUHtuB2)-GU^lWY-GHTjCG0U**Q%#M=s|R^`5*gw$`P_xHPbac_wkR zea$b4HzqQKt7EKXEzS51ZHasqXBjW#HIfQ#HI}_;WV1Nu*)RJiuQlY&G}WbE)8WsXv>vX0AU;xZ_ECl_s{CL8!z9KVKlmh+)rQJ)Iu=yC-4lrfHd zXpZ~J`6Qsmz!TQ7?`)Pf4X8ih?mTr1ZDR?;9dZ`da2JFc>J}3_LJ2FDb~Xb`ze^pV z;%IZfIqsZXPd@(W5z*{t6S=WRfHuL(!GoA@X~EL9d$IoA{rCo5$etI3_a6(QnPv<% z?*+bo05`<}#S;MUc8!Oq{6g~wp!^ZA|G_J`FMk>ugpgnmeJpb-3;i58b_!^Dcny!S zq%0iAK3vA)nQoMJ?!#Cwoo&s?x9q85?>)Ov8EpbyV!{V6Vq~9Sc6K+OE8dBV zV|Qb6Y(EMMkD%>b9s))E8}+DvyB-afTOq>@ka5K`GlH|56L{)6>u(88GP1HEIJer4 z1K$q3i@pfSndVh?858M zp2x+3ckx;0mx$z7RI4C1i7GLHYS$!g99{%o{Q?(y>2IteELU-9iuXt7Ff%g)QXyM| z{0ZE}{;)}$%p8i=)>i!VJkV&CAhYLjc=sZ`MS)&^ewa07jFb2v6R zj6$J+?(S|hH8o*$G{n$Qh~C~1?d>6UH*qg+99vskSX*1GVR?BO^Yilv!w}_ixt5>L z=WF?;?g?BNeGQ9K@8FZOSFrv5SJ>X({yV>?rw64{3DeWlSXo)&FCqU4{r&wI7#KjY rSVUIq*8EIIM@I)bJ3Iezm&JB8Hsa8Z9Vj+5;1F?Z{{QEH-G}@IZU#2? diff --git a/assets/voxygen/voxel/npc/rocksnapper/female/jaw.vox b/assets/voxygen/voxel/npc/rocksnapper/female/jaw.vox deleted file mode 100644 index 45012a246773b8e7fd63fd258fe59f7191ca8bec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2016 zcmeH`U1-&19LJyk|9Sq;|K->=f;1Q67;9@w8n{w4bDC*8i0zOm>#Qjxn=dt5Z*U|N z%nparWfx&ijOB$48$yUTyq@BR1u zpR;#(q~okHX4ls869}`A8ne4x-M%aw_}u|PPhjNfYWadi;rBCGYwH=LkUMmT1z99f z-J$0Z_Sn^nI0Eb;zG*{`<9Z$iB5ZLz4SHm=OJ6;pTgFP2-4ebP z`)X?Zg8IEQ{-Lz)!ArWY=YX8A$@rbxLYe&`^fPJ4eyQ`}c|Ar+b9R^3=#0)C8Blfk za=kZV^vX`7{_YO-bgpW$`kobPjJ8WJk#ONfjjS;`ete~#tK6wmV|VM|*gBQZKBDep zJu-4?d80)wZ?~xROqa~wR+)WH&rBK}U6{~QH>kg8w1>#XHKSvfd$s<%ozf=)@cReKCI3oQ}k*>4QZ)4Kzp!DWiz5eV;of>*qpZ0&D zi{@9&%m@}>1|~GK_MmQVJ}15Ux$1-1+h$Z7pV8?<__v?XpI@)b4Scu8x$r}3G#c9S)-}ES!8L6;aY8!|?p3*5*1*7k z+S}VTI$G24a7}}QHTCw^w6dM=V)toraZ&U0^G#-FXEi-Nty-<7@$vCyeos$NGru}8 zq59}+I(O(DeSGwimfrtTOG`_C=Wp7yN!4mqhYugt+}s>b!u%(;ZQG`yp&?Z&6@^;2 m=Z8J|`uf!0-~SI^i0x}@)5cOsmDW~mgxmA~KmY6ZFn<9&!b|i3 diff --git a/assets/voxygen/voxel/npc/rocksnapper/female/tail_front.vox b/assets/voxygen/voxel/npc/rocksnapper/female/tail_front.vox deleted file mode 100644 index 6579ed703dae0822a05a0862cfc2264fc6622303..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2052 zcmeHGTZmO<6kh+o{=Ls-pR;EO(wq>7VVcQF8gNR{%+XAn!(emBl<7<=Br{%Wh;DEs z6U^jLI@v>*BgM2YGT0!5_|gp$@j)1Rnj)AWih7Bt9)h5kukW9S9t?us+pzd=Yklim z-&%Xm$Y|#|5!t!5_9z$mtst_i*4SS02YvyqjaH(KKGCRsuH5kZm1cvWWlOY>R`6>` zE3~XS8qey_#g;AlckUhUt+s4zavN)^RhQX{%dIh)mTaa~o4QDI_3welDUlb6R z*k$5WgIp?_nv$m0uc6OtQz?2s^6>c$_a&RFN~%hJR#M|6H{@ykNLF$%=5x>Q5SB_<#49qTd$Ujy;WCU;H}SMWO6+%cDi#Ho@?V91Mm z)@4|~5$Zt>j_+1^Wk7Y9>|c z7MVl}CNVMJsFN+Y%vEe+$w`dRmv?cHSmJ2WCR(Mx*Sp~Rqlqnf{{CLcm2o9sFZ&zX z%yJ}2m*XZw65~GrdV=vVv5;IolOAMh-HsHJOJ#{qRV&Ylm z5|h|~ycw&UEmL7nD!ePY#6+w&)WmQOl=|5sv3x&@%ul|KJ(q|Y_#Bq_UX#F*pUE7} zmN`o$AMY}ypCNaxXd<#Mp?qW$MMgs^4?go%bV-M#L!@&OPUc zoGs_wR*6|q_Lcucz`pre_O*rVf$v*EGE?O2vrbcFuOs%8+)TuoGwfr9KFnjuL5SfD zH7ZgMuV0xua1I}PgvLUYj@$wH}~KxtcCxc6~2EUNG3Zm z(zy!w@?P8&1?sy1zAfL^MC&JRzXQhK2iDzp5qI|;xSjkkPuuM;9J;%^@xwDfySV^4eiEB6tjDDm-)@dm@Iz>|TG;aXRlM-t zRctwN0y_@wL9JH9z`y`HIyx{m*2Kt26N7_ItX|#3iVpTg_hDgS0dsS6OExnzgQ=-0 zG@DI~kB=|K_xAQK#Ww~faBA#joIms?K0JC6i|>4a#l^+H<2P;Eghr!*!-o%Jc6OE{ zA^*v?ZQF*Sp&``kb$F~><9!`{eSPTf@Bhb}_w8$M$Hpi^y{!!!X}8AzfBx5g$Y0bi Bb)*0Q diff --git a/assets/voxygen/voxel/npc/rocksnapper/female/tail_rear.vox b/assets/voxygen/voxel/npc/rocksnapper/female/tail_rear.vox deleted file mode 100644 index 00daca59a596bc4ab728e10a1290f689cf991f62..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1272 zcmeH_OGs2<6vxjuFGmfPpobHYh&gG}fKy3jY1zX;Y=$0UV;UsmqZ**cQA13E5I4OR5iJ5~Wf2%eVVj6nLD1&cxh`511nv9a$GPY6Kj)tN-G*pmL9d9^ zZ;WhLBQqY6ossyKIgX>ptz;`+rEyO@GNINvWs32-ZR2y<#$#;bRqOXC8uROOrsJEm zD^t?0EE#lp)%wkl_|34%(74ZutMAwhNgKZm8lM?*`DIxAG9(!??8-E0Hs zS?YUL@726ww8r>kP%@38x-5-rPop!9qt&^_Xq_louJn#=n>LE>=bRUd1&W1{HEZZ8 zETsS0QpVpc=MCjJ=dfu0o{&x!5G_~&uUGI=+z{Idnp@CfVSm=g50JP6t5@D-S+Et4 z&q924RBM}kPU&OVx(^E1jj>rVv`HtUexY<3iIZ`Z})i;N)GVZ@yxBdis~Xva*tRJWgk4CnF;x`b)?^QBzYxZEY>F pSPZAv?|NsC($Z2wq0k>Wr?xaNkG0v^#By_4tNgD2@Bj5aiX+E8%^Qi*f> zLY}fsH-y??4y^+QLTB>$AhnaGsL&o4-dq$$?yI%!7K+0*%A-!|mi<^GMr`92obx5P zZofc5k5GO_)lLWvD}ubP_8-+F@myrd$XJz?3AcqAUlFuEPh5nQ!VlpvKP!$83yU8K ztJj1(x0LM{=9-1C4hkD@3E>uDxJ#G}n>cq=NQ8x6k1*6E%qV|*t%Y#2jnQ^Hi4)aC zJKZGu8d*L62EWXQsVpA8cZ8J*p|03Mz*$aD-EJaHUb>tn z!nIb$TPj%Yt)jWX#m5arOw_4)_zXGr z{JN1__swijLP*Uc)BkZbmm#6i@$dZ)?BDfw|6dFTGyNAAK7-SikFz8fpCgw}&kj0W z|G)p5ni?*;XQ^_{;Tt=PIcDber^5H$!VS9}hr>Z%*%15pEg`W{@+0}ArXStmX^VP0 z#l^f^5oeEYisKi~QP^9+y)P?Bh0IKqmi}Y@>AZBU!yR{t^ufsVHDaGF^WoBWT>5sM zmrsqc=j<$PpRCYva~;3m&qD#xEAR(d>%xPtAD!=kdSCw)S6?vm&o=Yb?j9c7>EL61 PE8fbtdCg{hi(L5&R(&Kj diff --git a/assets/voxygen/voxel/npc/saber/female/foot_bl.vox b/assets/voxygen/voxel/npc/saber/female/foot_bl.vox deleted file mode 100644 index 4a8afb34fc56299894bcf973114e079f8f5dd0ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1452 zcma)5ZAhC}6h8OfH_5xXx@^X1qSGvDXX2>yV`>uV(y7>J(_x*iMl0=TnL%7jSVSds zwAo5saXKf)vJdNql+x*1F|x5APKK01DMiK@3@QCF_IHdi_V3wwQ#yn>whIsEo_ju? z^W68o-LD*V%@R@gKn9;N$~ z0oEs_&U!gVvoN=XeT!che9GcihHhzzYn-EuxYYfc(gTuY{7CD|2UtsHH8eCJkx1ad zG~wVUn<%mUiQjEDY;1&Ktff#IhudGkiDLmIhTD-I4)1XZ|tYJdl5TS62@ca#eK1kS;B;>GfzfPzPXQ6G#ipaSfytnoY zniGVM8N%z!gwcCk+u=k})Q!@F7j>&a6vS+BPdMRSEJoF>=aAP&C_Tr$X9pWgyb>8{9A`8$aImV*73dK4#9h3~gDarq7;*&0(g!AJYu P>~3c}Yj*B;$)&#lcOX5K diff --git a/assets/voxygen/voxel/npc/saber/female/foot_br.vox b/assets/voxygen/voxel/npc/saber/female/foot_br.vox deleted file mode 100644 index 8da0b066c8ef260bf21a7aa64af484dba7057afa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1452 zcma)5e@L8V9REJg^PcyX&8|F8Jx%S@<()A*HTCY5bxXya&V@5=o=&#d$QQ8<=|tsN zY*%A8OuIxK{csjC#?m&?qv#KlkTDozNJJ1a_DA$@L`466`o1?7LPkCC;ro1_?~l*- z^Ssa7^~%wr86s*s5I)R?=4?bA;YiaHmcxr(vNIlI9PN&T`vq@!bu)xUQN`e-S&gC6 zXjU+!)B;jcR7%BG2Bj2HsU$;0MG9#FA=3gyuJvy_}=jncL33J*X@`We*BVx3ouzbA%O_dXSWENRrVb%`YF|*;A{ot`4zS3=a~7 zgP&}o*!d@ZcRI1L(FSWRh1YPn^#z&Bds541dsX(A*UKbR(dW;;DXSpJZ(ag}iUCi@}6LKESuBZTcY z2xc>3q>C_Rx^Uq*Va6o%)e(jp33GhjUhRh2sZBGy@pnf?ZBTzn0`ESe}U zcA>tq5Unqj;Z#>G23iR5V}$v)2-M12|Nr$@RaN1G z+Idv?7hsH^M{Yb9w>~3$-$S@wRtB%vi~iza96GoHijN^{C=1Eihu`q5o8L}B0p2d1 z#(pD#lb0?ar!O0Kzbr*El8Z!9(Le6r%CmZPcih2HKQKCb74gqk@&3wpxcu!FUOY37 z{paV=`sq44ZfqeG3gH0(q%-gb)E43X*AM5r&+qHM;`|e){48y`Bw1JemA?@ M+0L4s`(1MBFYoz1b^rhX diff --git a/assets/voxygen/voxel/npc/saber/female/foot_fl.vox b/assets/voxygen/voxel/npc/saber/female/foot_fl.vox deleted file mode 100644 index a39967ebc89344ea297324615621e1e5fdb97f8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1528 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 M_nEur_pp_J0qSV9vj6}9 diff --git a/assets/voxygen/voxel/npc/saber/female/jaw.vox b/assets/voxygen/voxel/npc/saber/female/jaw.vox deleted file mode 100644 index 496e99bbfa9adb7106303bac887f7f1f7873cd77..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1248 zcma)*e@NVQ7{{OQ_tYetU3s2*+G*#HyfbG0NL?p(OU0eeg)?nCooum@hvP;zU~gf%>PSjt+I@357**?0CR`RXI8e6c&pa5``t+>@(wy zeu<0PM!ykf)|d*zqMTs%TQn{)jmF|N7KwN29u8Brt{Au}$TM`6*t zsxg%f!wi`UQH>?0Rh?<5UP7iq;xwn?Xv1p|~tGA?Iun?zsa)I9v z&Y+9Du!o8jADII-Tw@MA3)z(1d4aS}A@7{#o))Ut1$jgFA4x=}l96Q_qs5twS2~#W zWf22sQ{q?ZQOR&V`f0bWrH3 z5(evpS&g@pI|$ah7-=bF`b;U|wo0bEYuUK?Cci8MDay4|U7AhPtA(6tucW6@h@24S z-VxTvg$kzwzbB8*iv0}K9iZJ~Cs>}zSVKN5UB%Q_m+*0Q7ULD#53iMp_j?!)1z5N; z!rG0CO!m15cVv>3ltg;UGZbf9DRH}~*k8aarEVtP%VO!8iy!ZL*tu84Ro!!CLD>36 z_-!$tkzgUSkuo+HYx(u3Rt7Fv8M|TQ_WcZY$R?ouh}C~u`!Xohy8pfY-opid*Z;*( zbF6-6`qOw^sd%!J@w$^~tJ+6f$^WmvtgMWWD(5IJna4YNo{UHacRmxo?+|Vl7UFih z>CPSG@S$ZSGD7M=Dr+;3?(nQb-;UGCyZKYpcqci1=>q9pY25oVpS3^+lQ}v6=zmlf z&2_wWi-B$!p1Drs^A$c^{*Ei(Zu4^gC^hHjX!>-W)?3^7d_EouNTPy2uxtwtzJ7GR k2l~GLYhJ%#?4RxCYaN|D_M?-J?Y(%f*zPsE?LD;e7wp3+{r~^~ diff --git a/assets/voxygen/voxel/npc/saber/female/leg_bl.vox b/assets/voxygen/voxel/npc/saber/female/leg_bl.vox deleted file mode 100644 index 4e7cb872cf92b3b76ef6a7adf2570ab7493bc8ba..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1480 zcma)5Z%Cb07=O;6_bS=!me;FZP3@}7dyScYQs4KLb(e~}Iv38g?drtEMqb1=Bt_-2 z*zOv$VVa3L`r|BQjHPX&QuM(jWDLd_5)p)qeTcqBMD*>~^EwtnMjiOQ&w0-Io#%Oe z&pB_~t4DLEh^Xm6_%ItSId$0Feif+sw>oR1<~Dwi!t+fo{q zl-d-eOcI7gLfa&iEriRGBEeFmEn*Hy$0}1WM+nVOmJ$gjNn(!6ROE1EKMC2dgfb=Z zd0vy!#ktsOhSF>`?>SKHGfyjtB(k`}~ zQ?f5z>~o!pArnmH)Mpr`Fj$kpIW+SG$CU>2c}*F%WR1$;e42TjTS(T+wFs_78C);> zl6yc(no23wB{;TIC&x3K+C;zP9HgZ!4b6Szm@a#4t}zMJkOu_-Q&UfdJ~+n5MIII#ustoxQ*CABUVPj zSeZD1mFY96TsaMQ$cv1wT;!fDLSWVe)fu3kCqQ%0fHu5vHxbf$30dQW7j6;~dkA~t zgcSC@HwfiTNoeSGBXTYU@2x(I+8CjElJLeNVdy@eZT2BM>PLPoh>GP9GW$I6kNOat z&q2xU=aJSy$Un!irwG++1bU704<~{qlR--!j1*^LtkQ=WI}2!d4wFP!W&9A0;%By# zgM`Ho3G3GgcW$vCBFxnhzB)qKdXo^XCk(a`#-m>^A>37u7hfm*^0uQ!+b5UulL zxVaEhr%DlPt;AG!4c0Hcj$h`ZD9ZDqx-_Jw_U(mL8o>C4EG%C2*WV zCSHb(g&O?&Qw#boyD@s*gIo7Au!S5%xF6g4PjX)d2sMF!*WY_+@89~r7;M_spPl{` zg8ozlbCO{PlF?eV2dyRlUw>Iy89u0-MRCa-?2+@xh-cvTXN2$D2{#H05eNj(oi~6( z2bVzcVWjq@Vs-k_9iH{^+sV$xI|Y;2Z%^Rl<%>w~OvAk|3$Pl=z(j8DKl<~c^wNOqaOHio^zhxbI$pl z=Y88=J(@d3L`?_6huP4wLDUkC)II4qyfnkbNMsy6771Svyy4ZwP>O7!T(%@_3u#zF zYEzOjl`t$Nw5^1)rEpn7Bv_ouQp{1(vC5RpkwP<+MIymel9=N%i5!mXS3>raP^KWh z&oLogT#Kz{D9u*$nFGZ>^R%*+=G@w_C3B^6SyH4&wVO}Ofbpm&oE4BuqK0RXyysdD-GszOc}Odjbv~=%{;CxCF|v0B=^BGQWqF-lx8SPvVO^P zJW~J4f$az4x2USBLM#@;!wJH{Pd1R}`4hi;JXl|Eg0mLFD>&TvB2FB)5gTa4%19V1 z6DP1TeFl{)r{NBHkZ>0S(V#k_fAeAEHtG%yx2+ zu=pWi{TkuUE%rl%xjMpEM+jSQ5~B5l!8XEp)QgK0cJTIzCbI|y5Ax^bbqNjlnKTeo^o3J)UsL1vq9Lz^Y z#Xj`anrI7p5iQTeXng^eJBv|QU4oCQvoKb{^RV3*f42uirz4oZGK|&hmoV{`AF=jK zBqb#wJ>_W>XSz`m@S|eiURb38j9yc5LMy&`sZTO z^mPM6)7KFHd>QXAeTOUGZsMggBiMg_7LA{-q2=Z#LZJ{I54m|dq!^ivG>~680cXsY~;nH6W?K3g} diff --git a/assets/voxygen/voxel/npc/saber/female/leg_fl.vox b/assets/voxygen/voxel/npc/saber/female/leg_fl.vox deleted file mode 100644 index 78d448acce5987096c6314e57b3f05561e880f3c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1616 zcma)5e@IqW7=F(=_ukLVYHph4kE#3A=Jz>r{+N32mG(6iGqYhXS87qCSRc{~nNsr6 zD7VN(%bcjOAJ&FMG+l|x#{O_JB!Y;DF$P1TKgRwYV~qXx?72omSYx~J@SgWQ?|I+n zdC$3RukOkl5s~K2joWFY#t~_4Y_DGxIQ%RkL_9(4+TGr`N^`;Q6rq*w5oLT?w#pMF zK7&1?#Z_WFCAvp*-)Q4$F|HQNGs^Of;}9WVJBA2++ZW67w5@$*JD##_*U&e{aU3Cp0Yx&Vy@C5 zPbq3rHo>^!TrB$JrPyDwj$#jE8}gujv3xPA$Jp%Y@Qkp3pgn-$yllf62Kj*=_EO}o zwX1js+R~nA!+NxYvNU;dkNaZLT844n1)+>#oVfv4a#ozN($rv6GkF?X#n}sciQ&Ck z-pM1qCNrdqhw(FOb*Rzb^?gyaqCzhJlhSoUh8n zn4b-7eGbDSm?M6O$MG}m@G-&Ehk}JGf?GG}#{`$_1z+tDEWIg+Hwcck2?pcoIK59W z5*O^P7WCE$#u#s@$V9w8jJ}p4j2tXOVrLab4%K4e%MtAg8B1;%A8CzMhnncxe?uUF505$h*xCcTtgvd_LiW&rW7C5WaE4#=i#Sd z@Vzb^Khlngi+z~8dIm#pg^}pULUM94)~7y=lB^VzM#8AvxB*^S1cUEpW9m{EKi-OB z=}s{|X3v=k!R>DZzfBgRFJ6SP{&Fl%*5cQnTG4$r1?R4&;l|wzEFl-|oX4{M1Ds2* zpf>XF`VVj0@VEXijx{gq&sqNzqT#iO=B|MsS%aO`tFg26|LZR=FUN(dag>x^hCgr$ z8T}c!`I+GR4#BmeB19q)9Ln#-wk^|;{ywbjUW>WWhj(})lW!*{2k#UPW0OCG17}ZT z{oZxB^JO9C+A}bem-mnP2YErQ-L1FLeF!){dIkNT&)|dU?{M+kdwA*S05+W(N7JYC zXuW<9u~-Zb1dt>Gf56-m-2eI^zx#Y&|FzFwaQQ!5X)kqj;*lS0K3YG{J}$QM%*yp+ Ga^)|r{+N32mG(6iGqYhXS87qCSRc{~nNsr6 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 diff --git a/assets/voxygen/voxel/npc/salamander/female/chest.vox b/assets/voxygen/voxel/npc/salamander/female/chest.vox deleted file mode 100644 index 0f812c5e90773cff210932404ef633a4116a0ca3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4252 zcmc(iTa2Am7035w?aOyLmr6U>0SZpJw8cP6NiP<$)0x_qTCkK>s6fO3Qpl+3Ij50k zf`Jl4C0x@Kj9^7VFd-n4wlN_Q8-m1y5Ymu|i4wzu@zn=od|UqZ!8e6hCtcb5TYFvp z>$2BA-FL&y7acdo?3&(jJ&SpyZ_J(@`?t2`gTD^62#V0nx9s0>^M4MOcw=ne&Y2$6 zadTBywwQ)}TfU*j&DFKpUe(6u+ANrw?}qP&?}qORnJ#)AnT?fMu-VNuPz%4sPK$nv zPK&)3do4a%CR25W7$h>YD|rjQ17xE141evD0PkL4C75;3IGzkgvyB?I6~66dR~z-(l^t_UthB?LhDwD;dRF zhOv=R=ougS;Amx7h?%51rKWN}Jd^e3p-wmrC-{h%j+@K*> zRo4x3ErZ;UhuROT+K)18-C!5L6_ksAbSfxAbX}-^Er3jNqv|U_-8Ik%bzlYQfY+wgavf>f)nI zeDJGYv15l-7hD}|BU8}>bq|79!>e0z(1qxWrkwR1=fu#FVT1n+rmByPKKba$z%??{ zRGjyVZ<$T-Q*8%{oF;OU`{1eQg+5raAElCm%8YW)4N{?|^a(gJx$RLW_6dKfDRxTF z$*e1Oi6en0gD;bxREVBT^lEC61z&F6z&A3RiN9h^+$M`fgTB9jr2k!R!$1{omY%Z>RKuedj+%P%BH*y}f+G(e685nZ z1{VAd^7M$5SczeA`BCNJx zrvE(k7xtDo9KGiufh_&)sF`OKR!iSFW`u_XveeJfPoCK#kfmQ7v&++u!s;@48Dk}W zauUf$B>qU8IWwD+S#Z2VHbKFTY_xM$${zCUt(!~9cGaS(VM8f!`FF zY`9A7(Q5*47ItDb3k`N_>_-x07c{xJEz6D&CbIb1t^y{K8^tJF?#WPDhdGhpvq2BluPmaJHz%SMe#FHCv2k-|l zdLdun7BB^{hO#t&fT`+q5IIufn@#J0#kC?>q zCK0nI&&lxyqmwvG*htt&*i6_=U{7F<$R_g4h(I0!bHYaiMghZ5)HC1L^{2k4{mm1)^jjC{MGsuAD^F}x zvo)x>uU7NI=hVD2q5WM(&z&=R{*y+(_`1=2pV7_{qv!BF@ru!_cQtz5TwnJ;c#i(~ z^aVOQZ*=!Dqu+kb==~p{yL(cX9hlOK=U3^vlbiLtgNt?Qu}NL^(uKO_-OKdcTa8}) zAhwSiz2+^W<|h0f&T5Wz)x5D-k6yM&UtYaLKm77}s@Hu%j~Szy}OGj#U@yt?RDPgR>iT->L~caP@im#KZUMv7_JBt=Fv48@{?x_kVp__wL=R z8#iv$`{!=aZQHi#*|(q9lh56%XMTCFE?Trmr>3TKa&l7FtenzyS6r%Jx@x69`SAJr z+Rvx-kAGODAH9FMK8Md$%P-LP-ZZ*((`r3@V1+(=WUapQ>Wu#VPkZ#>qkY|Z_f7ii z50>gjdg1>q{>Qdmq9<>^QrE6st52;zp;xYXK{p+JNS7X2s_*`SdVSOAD=Sv$%9Shi zp5=%1Yun#YbL6ltIk-emKl4cqA0QXYmMzmCUUE#Y-So8H`RI@I^S7U?@Biu&J-vUa z-aRq#U->U`#nvr*-qVBksNVm~%X;L+llu4@Z|hHfcUCW5y-u%v=!EY4*;~5j^|QKp z^Je|nsG1DvKh>Y*V_|BH?=SS%|2qHuQ=i~3=Ul<@J^Qq^9Ddqa;eXcI*zjlTn|}k( C%A+O# diff --git a/assets/voxygen/voxel/npc/salamander/female/foot_bl.vox b/assets/voxygen/voxel/npc/salamander/female/foot_bl.vox deleted file mode 100644 index 7290806bc8b65be438e93a749c2de0cdc860728a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1244 zcmc(eZ%mt26voee--5({0SCpFtzdzT7PIj$Km}(RR928p#=ub-ab}w^f||B35z@?z zE=FAD7-<0GCgQTpWZ9gg5R)Y$S#X*x%R-jLM2Xo4<5xcz>Pep5Jm)#j zIrqKyy*+ym6itgrM^ku@UgQUdNLM%#deSC39@EIsFf|VJM#8gtwWCzS5EU~-EYl%z zhf;CVkhm_il;)3*P zuc2(OvJ6vVdbX9JjF_o4Ln%wN-_+bNq{TF)Nh#TtscSQ}wy$+pljwnV)YsRONF=yF zCG0-GN^$Pr{F$4}%1Q@zTnR6-r@ewh2OCI?w6i!7W^w8ei!<+1xA+d(K_{*^iYPi> zj&Cl2gfft!$C3GGkX0wy9YX%Fuz6B={+f_ABs`TAHfip>EYx&7LECUPkrSKvXlV;A z386D3ym?g^y`#OIZajltN)mo*(?JTNxp+^z@n0;Y^5!=3`-GAcy7#ouxGcziJ%20< zNj;4$hf5WC+t9fneeXM+WjGUYtyk0MEx0_0zm)h-Hd7;Y3 zKl)j}UCuc@(_g%WTi1n9Lj_}lWy~h4S-sNCA3t{yJ(W%S(fxdV$Hh8@|J(PUZY?F< zzk}-PYR=Zpv7>UHhKX@pNf$T2(D(JaaJj4upU=lY@d&T%UOTq;Mx9sZhuwEQpCkkr}JOuZ`awqdb@5B9e~l9OC&F(`FP<5pM1B* z){0toj?dBl*)m<%)(8fJ+!v564gSJh)8w9aV}HNu|Lec>@6SHizpd*hxbe;&w%X#u OG&}z&ZKLs{{qhf(rYo!f diff --git a/assets/voxygen/voxel/npc/salamander/female/foot_br.vox b/assets/voxygen/voxel/npc/salamander/female/foot_br.vox deleted file mode 100644 index 7f134c0d0a741e40b8260ba95a819918b825ea59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1244 zcmc(eZ%mU{6vof{zO5ts7tm7HqJVwhWEj3LG>*~sFDWncGUS@!L>`{Kt zgsy1`LzmS}GM97ETVqGFor zql*@|XlAXJuo$MU)|#F)lx9)bpftneh6Jse?6T+*6g7)zT5?}_SBn~K-5MJkNu^Re zm=boMU!lzQH-Fk}EH8Ip+SN#oJ?&K-I@m;Nq@CPEgxu62ax?GIkb9T>fE~x1rIa48 z#5?ClLRMt(No0N_vSKH{Lns;&HctvKTo>{Ng=f;jCdKVngu0HWXdB8WdSVkFFK(eV zC3I$lx2_4JcU5ht6IaYldCEt9HbC*P4fkm$zDp%k-`Yk|pHO~6^_~`*mjv0b_8-eb zGS4ClHYTTY0qAjtAZuk-t*7?ovqnrljE zf7!#4o(2Zng!DmSE+H(P5$at|BEE9^>bEo8>ZiwNCstR?nUlxJOuR#=xthJN_=&#O zLU(sJe!rj5pYrIUJ+|0ELZhrdF z$J(7r&Z#|pWm~v?LkKlhF&6VMo33T$YLGvE?qc{M^YvW^Yn1$N-+ww>LAHMf zwY9aJZJ1+6^*l`z<2cd|ZhfKd>kZ+G$Aj1FWuRg|Vv0efRo&zpDT1zx40VKAhjw)gxSgXOHrx_$bYc MKTcb3{P=qL2PqUQk^lez diff --git a/assets/voxygen/voxel/npc/salamander/female/foot_fl.vox b/assets/voxygen/voxel/npc/salamander/female/foot_fl.vox deleted file mode 100644 index 02ca8d1d9a99d77744007ee9becf3b1c72005bb7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1268 zcmc(ee@xVM7{{OQk0aKvLBbJ-0v({-(Ue~UF31ky!h_HdA-RxcQv(^*;En~m+2mY{ zoQdoPwlpH=Y;zhhU~O&@bL85bbIiH6V&xyLfBU1g{(JR&@z2tKd$#wU&-?v6pXd4f z?A&`Ge@aAJ>%)80$*;CZdpHt$(jjUoipLa|;y_m9-gC1yKZWXLu(&opADONLBCwG=1E9I|w58>*SckddM_ToSV^BWl>H zSw_q@%$PQe>OwTvRIYUth9NOi6gsxWh#96d7?#vqw(K%(X>_UPGK|>1rd{=-dvmO& zriOSt&izSY_k~poGXCbzj0{#*T5;@Zc#%CVr5rj~OMJM6#qltUlZRNGewXUScSsAm z$$lfB{Np9~W&%jah4ep;%szvxx=CvlvId0B6TJ1TT*!QnlN%l=eBvs?ekI?_fxeHBxf)K?`aSIOL>&t+(uTnP*W1! z`#;@O#6r&wDk>^CTRp>$vRP`!$H-1(bMp(muh)eu#l`r1K6(p=d1d!Jk{Bg(Fq5U} z2X}Z}&muQBm-ma3?5v&S@Tm`YwkM0*Ulp+w$>ylr{jc+P@|;>-?Y9{0g^}sYBrY!S z@%#-w`EHG^rB&=4o1x{iW!mS~2nK`P7m!p1e_^dDx#!(j-!J;U{wx0d*$3-);`#+Q V{@KI46MR_A(H|AtDE#R8@(=z)E|vfQ diff --git a/assets/voxygen/voxel/npc/salamander/female/foot_fr.vox b/assets/voxygen/voxel/npc/salamander/female/foot_fr.vox deleted file mode 100644 index 4b9ddbc8887d98000077f26f9a46bd193147c1a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1268 zcmc(eT})h65Xa}XI)Kap68e1tgO--6sBtT4>h@`>Bq-h$`G$u;455`v?jPdQ~T>7Z(tCRfiWaj^$ zIdjgrr*rRt{3#J>tq<){C%-yG+C!1x({`YiqIg1KDGqc+LUZbEE7|y(Lt>awL(G^d zM${BDYMBxkZXtY?;Q8BSm{Sm9vbP z!=XCMh#H1DG&n4&HyzSsIix`}Cx#K**W6Gq zx;NWuYHEnb<2;xYc3)VfAmeZT%*bG6r4`$*g%;TpF6Gd{TH?cD7RN&@P99=$`aP-_ z-z6>JBKysJ@{gC`o$(_%z!gt!;CY+vlM$?xSiUK+a$Wp3`o8m-8sQwVkYPq40$E zo)YSo1=+9bkESBYXOZ~~#DJB5kEnjaP#y+TioFx(`Z(|lW{o4%lj(Y9iyj+7JcsAj6Sk(G~L z=l9EfloYtAE6*eRaxq6btLbkM5(kBusIYuSsLFK{@)gouwS&PXKb<}oeU&+!IeCoa z_&Wsa%GmpgpU7+VbaZs!_xl+c=%Tr~nYEi2SUBI!%9qDTPfy3=@!)p5Df4=$+Odrn z%e_pT+`{#X9)A46$NHTT&g+`Kg00-XAp~nn8SN|PT%v;2YmNNzQ#*sF(g+{j&)0Xe zStsv*+yCk2A{KgfQc+RC+3Fc~md#Q-K1OyTn_FM#eZ3)EEiT6E_0n4~%&WWSk;EvO zgPAN%KfJ@^dKS64xqMKRWLNDZhfjUTb3Iwy`KpMeNH#}Zu791st+RV|wclp27e=P9 zkhrwKC-XP?^t&~-l~%E9Y=-dX%e2p}5eNi$ARws<{=!<*;J#;LzF+kJ`Y-?i?G5LX{8h_D<#&n6-rhOdzT2= z)Rb+E*tDgDK#i@4O;eMmwGtpEO+?aQW70GYX^4pu(+A_L561ZR`R(>m+gB&~-I@8$ zIWym#xwm`ofx>AKX>SbgVJ8g^k~q zLtD0~t(elL?V|3aZc%qoGquSalR0MGA`arDW@=ftv=|0)Xld0%w2r&dsHkWaRa$Ik z8qGRwTUxVD#|(}&^HjPwI5(&pT;E`x!I+|^=t;3g*$(2=iuo!g%7`hVm1P@>{*)D0 z%8a?FIf+HhLCvJ56@3$nIEa&&ioO+n6NjR2B8tA#(6^#*Mc--YThX_oZ(?w)nWxe{ zeRDrk(Km4@`d0L<=$lx?L7a-dshgr>JSz6GZi;2|Dq2lpKCj3WGsZh=wK%qfK1FPo zsHlrI4(2$8>xi};qT^P&H*AY*S)!P0#0~0(7`DMYB@z?XD#kSDT1?iN+{dJ@8Bh7( z`!JtJ5Z~AGN~6$Js@2uiA(2Sn!K9$|;wp-={>GnKSy)+VN2*;5FJezyISw7HM`E}Q zi{oJ|P9DPI%=@Tad=D8xH*()9MB(u=_+|r;kOdih5;FHJWYvv~c0o>5uw_EDI9A2ka>NQ-`{eAZuXeqdzg3X+!=aAy7%KK*_T+sbROYit&6pD&~H z#u|dbARY)HE`q;ctZ}mLP5b+m-`9V|e>nHhe=5#jF#VrBs!s(U6-()li=`KSe7*bw DG0j!! diff --git a/assets/voxygen/voxel/npc/salamander/female/head_upper.vox b/assets/voxygen/voxel/npc/salamander/female/head_upper.vox deleted file mode 100644 index 10a5daca1b321470be6c99dcff10a5349447e383..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2588 zcmc&!ZET%o8NQ$Ae!kxK9Ly$NXFKR-w?W$(*jKvMO>B2gE!`YA#wM#{5d*lgOij;w z7PmAQ*2XvqGL~k;2+m0eCIpI0yO@wT7cz+nA!H#7i7tj8#=rhB#($UBQ+_J^^(0rW z=f0o&`+lEu@WDscoEMS3BjXQ{B$Xoj$0tVXS>W$BBA*@c$f1exk30|jwT(#WjMl8o zmsYfJX11_0o5+bAi9mRw9;9+)B`j?XeI!V`=FGfhC>3cjZL1(^-prTYXcDPv%Cj0R zlrcTy6OlHFav6*U`m&rhYpa5oRtmHsYQfAqF^p>}Pj;o5Pmy=gXc^7CryQvdSx+vq zuh>=;+m3}%E$C17M9AQsP4p96X)@}Pne{}ZzoRbXbB581Wwlv;%Ng4aM54Z+PnrFV ztzzzlF$?Cf$=-~Hu~}21tu>}yQkNK48O*Wf(wLSfd#mk0jzqB9idHM-onf!ao?S+^ zC3|up2XZ75<3`Gs#T7go!Z1KHGDzfwgr&j)fON@rVjFYUr{2F_M>E3LXpyY2`z?OL?0GHI){rYbDuZ0}4}_ogbN zR*AZ#%5T87OSP?noQPU9t-?`n*_Tu9oOi)iCAmh_qp6ao-cwJMo<5naWggo~L{Ttr zL4R_cams?alDUIv)e>td_)V0yT@=h+vJRe8q#T)toN5`&L%)>hn;5&6?X)fIS%PT` z`xTW+*asg^C9F%lX$gDe3*c;R%X2oN@~1Ymv!tfu!j%`&Mri9(ss;e)@)dV zzOO$ z*o9V+evWJ?`z&+TwqPA(&v|Rf+&n9F8dw+SWvO?itqf&P4xC@)9$bxmau=TS^OQr) zGJn=H*OK1w`^$RvMA>n^o^dUA7kF0gPI>3Zp0kcTN5+UbK4q76xyC#z&LXm>=s6ee zGxA%BoK2)}u*{!hu~y~&9AQ%K+qO+%_@4P+z}-jgHRf4!?}1RBJ=yWwt?{jtd?y8w zc#h=2cT!ioi_d+8Pp8R0x<=jEk;2%fwc02%RGWorL#^&Ah?=!cM@~fPv}v3+_yQZH z*O4;lNa1N8cprG@X-^bUn~5lrj-;dwmvmR%+omRMx~L->siTi!Y-J2(3`^OPYs_C` z4oe7q#My>2pQvqE@kcaP8V&*ykx%7F+ z^-e6?D_D74aK~A}m);VjV}jde1h-S}d|j}0Zw>A0MR#{M zHud*n@SeNy<<0##J9`J-{8cYL`qKbzy}to3G3UVAJMrGzg3%otacZ&;FV1Yi^*0*$ z$Dj9O>e*%3^W?+$?FU`Bh1LJJ{+}CLkA)-mV#}5-cwyT`+`H)#cAPnlu9+^p`)ls& zTY}g7`q1CskE3f(;OqBahRmG8im4U2a^aI5KFwM5^z`6I>*sLaj&peY*&pKzM^@tf z`SrLm(S;{FJO69`*)GRAwEsO!9R*HacnveJEZ}FC-@(uSa07R39K?O6FJjLxuVVjO zH!wUrjE@D7MBrc08x(H#F4gx}eqaCV{*NzwQh&bZ6I^;{pT_y})9$kVv+kAxf40B; E2R$Lo-T(jq diff --git a/assets/voxygen/voxel/npc/salamander/female/jaw.vox b/assets/voxygen/voxel/npc/salamander/female/jaw.vox deleted file mode 100644 index 10663a321dbc67b727ed9ef55c3f74577ef6c2ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2092 zcmc(eZD^KN7{{-3&i!)k`pG`x)7FJUBGRP0-~8qc`9=FZzdl5DhgTOkeZ<1FourDTo)uvD&fcIRKg>yW5VhvWNn>Q_p4iq=sENzhKX zJe$KF5roh8 zhq#(&(d-4WB%n`I75yPe(AI`MH|(il&xudlQUm%!+L}2+<}j?Q!@9bPF{%D^jpMVa zlrk!vAfY3vgrm|K4&Q;p^U)TEducnIvkvbOZI|j1pNPvlD>CH^`$G6c>-iq*wJ`5A zs#A;Vm|WM^Yyq6zVLxnT?&8%wZjM>Tr88!S-4m-3-_O&3v74>gCZCwQ{)$N{)piE zr-J*Vf}g$-4AuzF)e64eEO_vypq=A)+XTmV)88#vS0vb3Dd=7=I8A@^syuYmCehPe zh@m|z(c4;qp?&Kx@xiP3^+E@h735&`$^~eAp%8o8DsW(fpl^p@I4!twOi-Smhlb)s z*j~OIUF)mRR-A*5RdaEye?JBX-a_r_Qfzvu3hl3~MQdv-s;a7RuyY&g>gq6g^DIWs zY{$fx`;nEEg=8{`yu3V=79~->dXX?0 z(fgRQb2jddEXH_yF81c+{Hy-)x;WOhmOJR$2OK$?5<5nfL3z=D$1f=>Ow+KEdgC_Bf3vA2%2KpENfe I_{sa_A5J}!mjD0& diff --git a/assets/voxygen/voxel/npc/salamander/female/tail_front.vox b/assets/voxygen/voxel/npc/salamander/female/tail_front.vox deleted file mode 100644 index 40326f9dd663eefa1f9bc356fda370de82b519e6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2244 zcmc(hZD^KN7{{;kdf&aW<(zHmv}e9-GjwyZmu9v(*EZL*Ik$AFWT-jisn~r#Bge3G z5-l-b7}H2wCSo9($uFw;fLsJA0qnp?|)Cfm40n-ah`Lo>zwQVyUulP z*13A!>|qgUt!rMzK`w+M?af^cPbL%oJ@&vn$93zwnm@3~s>m!QVzk6I5aX=McyE^* zqa!0aHde)!W|WS-vnyO6O+GXkAJ}?hRP05?PBiB_@?s(%nAnAkarAkvJCm_iM>Z6O zGl$W!)h=U=<0!GSG?T1LleN-hIJcI5=OSYyV?E;n$Nd}?*PKLF>&VfJXFT;-pmtDJz}hrCdXLE7)xDNQHM#`Ok}9fYH}&Xb)FUQcW5K;IR=(yB4_9$rwvu)9oaPJ zWV9jcV5ot6d=kSNd26XhGEUJL=R)SOk}*M|hq`!%Wu0_VS4W>VWKZ;%*mxCb*3uiB zu}YYS^-=uIb;lTIZR`?Vo;s~&U3A8f(J7sAhGu!zq)~t3=Q)mbu*_pM_bNl38`h;4!=8}4|?g8U`XzK#b1I7iRPKSX` zJ2Hh{r32Q{F}Dv@96FT_olg5uN1I!!@kk1g-O;XN6Q{z z4Esb=ljhsd>|@Puf?lD~7!V_4Nvip?8q(BIpFvB74H z9odYrqwk_}>>Xs)<|6Nn*_ge10g6YeAq@_)^Kr<@XCPN|k<}`gmKMx7BzXRUAlxZ< zYCtfB^W3w7C9O|jWjYI8d#2#y@tIiBFK8PQym?-*>n8WM<)ffGg*p8ts2Huq^qw4~ z4&|w#u%K}-;{Cy#0=xNBs91PCS#+lNoxc%aEVC8cd62Um_ z4(&JEsl9?rp9yY{3V!)cFjOlz*&z6Kjo|KEf-cVA>l7T?!u4K3eX(Fum7sTp;2782 zmgJ+mA%(uSA`EX`jQ);F3~#T;#7D2;_tV{2P?(FQi)W$br6O$Yti;Zhf`N^Kkyvo~ zprE24AI&9mu%TihdRA1Uvm_VYOQz%Cz8x4Ed>ai*%dq<8YIMC?hmMX8R99DHS9(1f z8yj)!$_b1f-++m)b|5=D8>v(Z`T6-MD^8(e;XJ&sxEP1_&A|CDQuyh|65PG90LPiL zq;Mv#UlKIbl%lV@2*(D>arIn1{`k2aJ^QoJvTZHCxtWK%nDxK$A84G5(M^j`US5vF zl_OYGb`mv%dyzMghihN*zFrrcEh<8BaWS?R_TrVMi;#gnOzoM9@uT9oTjB3fP^&s1#^p&JE=*1zp}sn%m2gS`}z|<{~efoXAc__ R=fix-`lEc42S0kh`~yX;q7wiB diff --git a/assets/voxygen/voxel/npc/salamander/female/tail_rear.vox b/assets/voxygen/voxel/npc/salamander/female/tail_rear.vox deleted file mode 100644 index 46f6dd9cdb44697dfe05013520e77851bdbea933..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1872 zcmc&zU1*kN7{1@<=ly<-E$3`gr+xEho1vSN{j_D9+nRGtn{!K-N`{(KzKVVCJ8}#| zC(#mr8PiBxCSo9($uRZ-PNNq%Kg1BsCBGz9+P`8A*6)NfL3DmM9TZX`g4` zN$NiRKKpflioECn-J2Xfc6}s=!2aXremQ zQ4@G^FHkWRnuIWpHls5-L77mY7gvE!I!MOGyg(ZjYD?W`Y{FwaZB_!~WI{5^sEkQE z=!{8tfng10RYn^ZBcYd28ATo&_cDsQiV176W<&)l>V?L78868kpY_ zDE91;$73(zg`T?`&xR_>x)JUmV#sgml{KrCG4;ln2IcEUlh6&u$(UYk;<`~$s)Vjr zaow1QETRaF=m7{H^Gf;DGvp)luf{F#%3$;mdj?{dpH*0q*m`_>u^^tEDq zs0HIEw`2U&d#D_L7g=?=$a`}E7VKY&;?ZhIlZEV!L(V-5xs{8oHo@$)VD53j3s(iv zy@DBof|=BFF9}w*C9pP~h3*40@$tkwG!6*bhXrq45$wCi-1dAF^rWzGpad0Tb(qte zgVd3Hlw6pPvfE2Ady8P<0oEQ7)ZP%tM)LPZA;Zr=uH|58Nj5H)&cgkd<^XG-$FK+{ zhzG=P#QB4Q>z@klj|qPHRxn&AIM*cjW`p42+k$TD?{^7~@1VU;&`>PcRwd|b6r85L zePup+no{U*FT%*q6&UEO#K`UjOn&q_e!tLzrG>euT`?c6FBf5FS0(nY6%1|_j0S=m z#{?Ax`DiIwh%FV%(A!vzu995ztek^mhxTB2=p8iGmSO!X)#!e$9-Wv(Z`T6-MD^8(e*Uo!KhnGiW80Rayu2JI zDo3%r>>O%_4kB+b54XSIeZ3*LR8)lG;$rMB?8B>Tu0aO-F{^hLCQd!R!~NVvK|ujN zSTu}PH7Bv-@P~MA+icwZY7r*7^RO#7_h0*Wajw?pjyvex4eUF05rgN)aP-G|>x%2aq_ diff --git a/assets/voxygen/voxel/npc/skunk/female/chest.vox b/assets/voxygen/voxel/npc/skunk/female/chest.vox deleted file mode 100644 index 449c291a505f69326aa23ea080132a7728e44693..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2280 zcmbu8ZD`k36vxkf+Wy-rH0RXKbWKe+MVp#tn$3r$)6~owHO(TDk|o7|F=~t;SAmJ8 zYp6lCtj37YRF)LIFsWg|h%kvDM5Oh;7ZK5$Z=YKc6+OJ@2OsV^-*e8rzkAQUt()$y zJ!obdRC3%m0FJ_^FhCfdC#H zSoZUJKJU#syf@CnMk96t3+UhjIz;RQ7SX{+bcomqXl924pU@#MaK64A9U``KoJ|RPH1-PKTrn{Q#>g1y zp*PMq_abqIxo6H~Oid9G}8?unkH+&_;F9s)#2*`_ZRh=GRy5mF|v7m0y~ z01;9i>7g;V%l82+gwaF~L-OQ7iAU#-Wj|n}#jKZN6N})8r5yKY0Y7!VVf&1^NiQuS7VAOc>BRKLC82LWG z6>#Jxu)GF2$*}XhIp#T!97FT;Ge!uI=o@y5^o^W=mN=_O&jPVTKYh-nCJ;~D51;Gk zT_7j%hCF#L=kTUNzAL;hPp->(^e^N-m!gsH$Tijq+?PcD9cxyu;0^rpiLbl6TbFxH zYmW?TTIG-WzOqth&u+*e9cy{_Um4R>rKQ_$Q1c_pRo}lv)|_PR<+7t!%Z95oW`k+M zF4OGhnVNILRA@I{*<%{F-&FOsY2k(nt=lz5ZBLKW^QW)T>Tc8KKGOroO;3JK?dEDt z*;%LQ-3?ka)TEkXrRw%ot6^ZO8qdwtgl(qjPn+f(G%Y)0vO8J7t03#UN_MJJduEQ+ z;PvBm;pQ4?-L+b3rWW`TzJ>*S1A-Rb0J9tqoP$xv)n2*38h*_IYZ%eTCZZ z->B}#wrcNF52@?XHtm15T|HJ4WR8di(iQ~qqwzgJ{^>tb__d4A)zh2GD8nx-x zCEEYYWF3F4PG5c6po^c))+?+zG+-L}!1T=*rmmf{bhu}MhL5e%cVBN&aqk%Id#h3> zKcA$Fn)($xWsoU0`lJ#_Hd~v)^ANsY2PgQewrcBX+XZy5#X|EpK`P(5!9>4j4t>E#d4>xRenX!-7bt$+25wwySxrluxc=2xr$ z`a$8m>C*eZ{@*3;*MG%%gulGAJdS*PLVxu2!NBjaZ2T$qoBwy(A9E+K+@*<2?o-XY J<9}CgKLdZb#@he@ diff --git a/assets/voxygen/voxel/npc/skunk/female/foot_bl.vox b/assets/voxygen/voxel/npc/skunk/female/foot_bl.vox deleted file mode 100644 index 392c8e75279339fc515452078eb696f71205261f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1152 zcmbu8e@N7K7{{Np4PlHo;2?>3I<&IEP8%Irh zJf1TNoS#@vbx^1q5WXE1PCe4Sbym{aY-9!<6i1z;`pnpRtvDj-S(ENc|WMDNiZl*hH4I`f=@??7|)NG(kOLi-sDt=WAbPA)Fh3OGt{+@EDFzgcU z*9*%>1dsC0MxpPp`u#$cU1-@V_^XA#=7y*%veM?V5va>%u(g2Tmn94yt)joR5*CKZ z*=V7>Ae}usvT1EB!CNDQz7oPGg{g}|aheskBa`Oh&G@QIX>?d zqFflC;o8F`wwμ%t~b-%rsnwuIB^lHo;2?>3I<&IEP8%Irh zJf1TNoS#@vbx^1q5WXE1PCe4Sbym{aY-9!<6i1z;`pnpRtvDj-S(ENc|WMDNiZl*hH4I`f=@??7|)NG(kOLi-sDt=WAbPA)Fh3OGt{+@EDFzgcU z*9*%>1dsC0MxpPp`u#$cU1-@V_^XA#=7y*%veM?V5va>%u(g2Tmn94yt)joR5*CKZ z*=V7>Ae}usvT1EB!CNDQz7oPGg{g}|aheskBa`Oh&G@QIX>?d zqFflC;o8F`wwμ%t~b-%rsnwuIB^WtP-5i%3eA6f=g65!5O$vCPB@ zvSl$OLNi%X^k7nAfkaqD5F!!1_Ye`ie7e8tp`t$z9r)hwJ?EZ#?mg$8TeE3w(oE{mTN{OdIgwj4VhU8s4uzKr?-aUPgn{$IXrJ)pw$g1vuU)viMVQ(rIF;T~BXsOl zc8^eE5$ab8o>JlScn?)MCK~N#yj7`mH)P@4mPhyg5;_}-VWO9`B}NLf5~x^{N<&Q^ zu5!V@QwSUuM$QVk@g^MBBQy46G!{{WJ2{BI5!vL+Px9qp<3FG?!$Y~ zNykYSp}td0KI}oS*Ao*tpTxvOGA(9u)0eU;%YwZylTGXL={T{FfvaX-J+U(NG>yyZ z%urC6xG%hYE_fSLx#-VktiOc!ud8vlMbLi3!0l(TOp)-{{4c7y{3(AP2Vi>azw^(| z&gNWRfQ-yu3R;g7>yKspn((4lwQewo#bUwZ@vxz62=RM~az`brlI$;3G38h3R|W?l-Oa>tE~NzaSbZ`!`X&_s diff --git a/assets/voxygen/voxel/npc/skunk/female/foot_fr.vox b/assets/voxygen/voxel/npc/skunk/female/foot_fr.vox deleted file mode 100644 index 0125ea7473371da73671bb90cdc32e8331750c1e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1140 zcmbu8Ur5tY6vxl3Kw5?6oH|QwS-KgSf6`2|nXZ~tVyB3d z6*{&klKnG9DjZJx98FOYrZD3NcI|dLR%%8idTr3@8g!y-P)?0H1<^@^PJ?Ky?7A?; z3KG_^edGE7#=Rumgsfd`zs=BM)ImwVLwuUC6J5Q zXCbcHNcRF{#7IP$5M3vv+LKw{FNC{`RIaKs zLqTEeq455t;H^#JvOklN-XcD}t-#$9LF+98cVEOZLBe12zpU!=r~G*ufXR{n&Ob9V zlM6Wk($c%hYd%S=KbFxO!mB;1b%Q}H77HGahs~P?5WklwcNBw{rrz*`N%c;AJQq%P zP>|Qo!Im?`R7dmt&Qb=Qv9zn2O|QS^r^VV`F^2mv9KY0q|7M7D1CP1#Xq;8`%@mvr zPcfA`(~FsMy`wN2B1 V-v2w_h3o5x$=yd>THo*D$T!_KCKvz! diff --git a/assets/voxygen/voxel/npc/skunk/female/head.vox b/assets/voxygen/voxel/npc/skunk/female/head.vox deleted file mode 100644 index c1a7b537f6bbae987daf7624377914ceeebb7d0b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1232 zcmbu8e@NVQ7{{OQ_gf%Y;qpB7TxvI$-Z|#{G0ikPr`L8ax11&0%`9TF$t8_*9NTdW zwrc}3%bB`-{g#q`f(?M~!@WpGapQ=zq`_`lq z2_uKp9}!wSLeCRIq*eHRX@ZU#7kz#=(T+04d#i}OP{;U@7DjuUVR@4BO->rCirD>h z8NFR~gxZAoi$da;xBmGi z0c(r@yZ`FyYR=UqsHmKzVemBh@qCs(6mA^UtD8*X@pyC(GXSjf3EV>C64a%ku*c|EyY`*bsN!F)#b%w>w_)p&*`tR%SHh1HWe)8&HqM%~>Zh7Pn#Zfj1 diff --git a/assets/voxygen/voxel/npc/skunk/female/tail.vox b/assets/voxygen/voxel/npc/skunk/female/tail.vox deleted file mode 100644 index 50ab915399c26ce01a52750c0f515dbca2f35ab9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1808 zcmbu8Z%ma{9LIm>Jm;L}BGoXiAYe$S=>?}DiV;R2+!PEADW+Gl)?~`a<+zP0yK~c< zZp0`ghPFjSjj`4wWyET}FlWr%m~-S>TVu?1d*6%JT5J3EeXuoaW-ofS&(8P!{+{!D zo~L=&o`OLUX{fH-$whv5B29I%=mWuqPlzlcX=KmdSlx`K;4?v#GI32Tae+>wCLS@w zX&1M|XqWPcrdGshOS`4r(r#(DwA;8)JIxxzXhWZ&&(LS$K7Gn_aZNnWr3|suqD;zh zHOk}4y2N;_OEk4wz-OM%JfC?!^Zd9YK5Ix&$1uk*hiGcG0DBqsGVDbxwIj-~4tx3R ztEr9BDUaGStW7L!j`+;+=re&&tCS(062=E8)*zaGVzrLz0Hx!KIAV#>UdjmL0;sk2 zI17*S@i;@ma|-)t*0RJY`iLefSkr9E281|QqKOK$?^BzUd3d`M>23!F#e9<%9!B#MeeHvBT>QUy9ILx z1u^cAHVgU=(B3Jii3s*TA?U0X{B~^!jT>{(7A-_q;~EUMZb0IN%@{mXgZ|cPU}glx zE3&X15?kbF@v{JP-s+k&$ET+|h zuSe{;YP7$+6Nw}H&~yACx?YQ+?^HV`$4+DR>JZY?)3G#jF$xL_P!cIb*}BK@e>q|yZ(R~s*$sAn!P;hG>Ki$z$ zL?RJ%c6Q>~?Gun>7nXD^!PMD1@9=mozn%PioH;ds%8Gs*=sAt0`?GQ5(^Z&?<)EK4 z`{(?FxS-bFrWte`0*;*>L-M0ZyftwZ?|wOpO-H&>d2$##-oK2d3$v)Is={p^MM4C> zz?&7!e{tu0^ZdU4%g?`X;Xe!3nXfM3?maGz{^bkA-+X`W?`69?cG=d$SX%xP^45>v HD_{Nq8XliA diff --git a/assets/voxygen/voxel/npc/snowyowl/female/head.vox b/assets/voxygen/voxel/npc/snowyowl/female/head.vox deleted file mode 100644 index fe546fc12dd0d44889437956947f596670c00afd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2172 zcmeH}F>aJW428$`vnNPU>V?cISz@IjKY3Ts>CNmjy9? zmcx&GSPRaB-dxM!Z_S@r;)v5+eR=DFHV#IB zQD_oi6g>s?3k?EYoI3%A&)fqo9DRZwg1(#{gT5R;xbLke`Z#$JSUANI+qZz5GoPY% zcx{1}-dxe4s2^zJ%rU6x^c86D|Ab%COM(aTO5Q~>qwKkWpKwZWPyyYwB|T*K#k`Wf z6AcnQl0Fjd$$LyRq&nL6duR>7Zcg;gYbDQ@y5F`rH`Tls`~*L7U*rh@!B0JV_z8YG z_NZO(6Z`}}!B6m0^8-Wh6a2(11V6gr4hw#2ZJDcj#^~p*ao0vab#Bl7IETqu&u88{ zyu4@IbB34qo9MUMx|uO^<9!<1V8tSiVZ32m!UlVML75kpJ@3VyCvncl+(_?S6A}^YktrzAumU4h~~Hx~Bg!ufyT6_x}*T01Nc*g8%>k diff --git a/assets/voxygen/voxel/npc/snowyowl/female/leg_l.vox b/assets/voxygen/voxel/npc/snowyowl/female/leg_l.vox deleted file mode 100644 index f44665c7a1c435aee646f9dba385cfbf2e986085..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1196 zcmeHHI|{-;5Pfeqb~anuc?d6%fJg``C`b(0+j@8AZQJ^$X?$JR!(6=IOJ8%~fZluh%Y8ZLeE4pj!U+EC diff --git a/assets/voxygen/voxel/npc/snowyowl/female/leg_r.vox b/assets/voxygen/voxel/npc/snowyowl/female/leg_r.vox deleted file mode 100644 index 2b515a4be731d5c7d87b5913177837708f08a04a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1196 zcmeHHI|{-;5PdVFoz0eZ9>NPGAQFNK3K9i-Td%R{Meq)}gJq5(DT|{ mdw$L7ALr0CO{nWSR8`gAi}!o!>K-_t^O^o~Ud}oGAHWllFaJ~k diff --git a/assets/voxygen/voxel/npc/snowyowl/female/tail.vox b/assets/voxygen/voxel/npc/snowyowl/female/tail.vox deleted file mode 100644 index 21210a16e817894e0950f35ebacf27ef5a945aef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1304 zcmeH{J5Izf5QhJGgo-9N;1GL(T?wHm0wj>ovJ!{j8gWmvcgP(m({qH}BYX~znqoWF z(x-pM9^2!wlc)Rr)tjW-ZFh$#8|kq-Twhj)hN}xm*gqe-545%om}^ku#nT1@4=Wa^ zVw=6olbd@4f2XMNakx9D{$N%;qvA8hYD2rJ-#sEroA*}=4w7UUr+&U0V26vO|lIxP| zlIzHbA|slNFc~q(5TE7k^Hg^Ok+lv)kr7Qsn2Z=?H2YVFo_Xk{_syO*d)kZky?RH7 zLPGGMLm?s9bSNYQceA&2NC+;vqC-M(@?I1Yg4Jt_4hfM*nYEZTn6*GX2O>F#sAiqy zCL>Hn3^HOzhSO^wJe&3U;Kh6MonAA|9L!wEW#&gl!%)+q&@f~=6dHyG9SRLYJ315^ zhWOq@p|?3OmtwUUDz&+b^S6<|Cv%g-|6T(3C33ku>%}O!EupG6Bmr)#8DO{XI zA?hfh=D=wd3kI){%qS6p$>PD`Ef{F+C=Db_4O=9j9(AZiTUVrUeX4DA5WcA?i77WyO)C!U%haEJa9(AZiYd2`+h(mN)19)(ZH=el9 zTA>MzXh565I8-5Pf*1yALYBs7sU6rX$z-We=1bHp0qU69Dsvymv<}{`KYZ*Z;)N`cK?Qr QC$H&W&Z}+Pwfq4-0j|3gEC2ui diff --git a/assets/voxygen/voxel/npc/squirrel/female/chest.vox b/assets/voxygen/voxel/npc/squirrel/female/chest.vox deleted file mode 100644 index 76bdafaa5cd42096c81d1a082c21881a5293950f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1212 zcmXZa&5hGQ7zW_a&Mqe|DFA`e!d#J7i-OP|00|Vd>?Ju(3!#KmfHWPTw2&6Q7Scjm zFwYDmdHwU+9zPlT$Jgg~za!%F%QZ&l2`xN&p%(De)ZDlO`ZwY#j25tr!)8b&W(Rdn9;~7)M z(|8)s{^9NN@?P(6H=f4Rcp6XR=~LQx8c*YCJdI~e^O%{g>E9yyKJ`46r}9*u$}=7Z zPvxl))eWn`$0Kr4bwagM%}+Hy(d@B~lrxQ*y}f+u(a#;rwfz;JOm@us}W zMb2`PqwHiW8(B--0ie8k~R#Lvg)&u`~}m&16FSMv1x`SG34`I^07UhH08 zuROf``10xF{~uyoueL8q8KRz5+qJ&+t#AE2t@Pzf=}TYwd1>lXpAJ%=`Z?Ut5B<;& z#n5|ip$~oNLm%<)w)X8tZO}GAJ9$y;nx}c1r+F5Sr+J#Ed75XDd77trnx}cz-{5JU z=4qbhnSZT$nx}c1r+Mg>r0k2Qc#3CD0Z##xo0WmfAZuFuSiTfb@f6RRDxTsgp5iH< zHGMqAQ#{2}JabBmr+A8|c#3CD^O~8dncEQkoO+(*NuK0Mp0yl2$&(Q2hH3D%L@r7v zq=V#1p0#W|$&)>TIWto;H~n04p20JC2G8JGj{(o%89ak$ z@T^CJXYdT30W#clJuU_tE*wr8ioxS8dY-{Ecm|JJ<`XklY0k{l*yf|g6Fk8aJi+5~ z(engP@C1(`Mb8sF!4o`gBYK|T37&v)Ytb7pTpUikD{pd@i=5>oM>)t|b`p2F$yF|L zj_vt_&!Ze0ie8k~R#Lvg)&u`~}m&16FSMv1x`SG34`I^07UhH08 zuROf``10xF{~uyoueL8q8KRz5+qJ&+t#AE2t@Pzf=}TYwd1>lXpAJ%=`Z?Ut5B<;& z#n5|ip$~oNLm%<)w)X8tZO}GAJ9$y;nx}c1r+F5Sr+J#Ed75XDd77trnx}cz-{5JU z=4qbhnSZT$nx}c1r+Mg>r0k2Qc#3CD0Z##xo0WmfAZuFuSiTfb@f6RRDxTsgp5iH< zHGMqAQ#{2}JabBmr+A8|c#3CD^O~8dncEQkoO+(*NuK0Mp0yl2$&(Q2hH3D%L@r7v zq=V#1p0#W|$&)>TIWto;H~n04p20JC2G8JGj{(o%89ak$ z@T^CJXYdT30W#clJuU_tE*wr8ioxS8dY-{Ecm|JJ<`XklY0k{l*yf|g6Fk8aJi+5~ z(engP@C1(`Mb8sF!4o`gBYK|T37&v)Ytb7pTpUikD{pd@i=5>oM>)t|b`p2F$yF|L zj_vt_&!ZeV8c<#Y$m}p?*HATjMc}%s6S}i}AEc zyR6HWs|r}1fgbc38vvmisxr}C); zs>!N>t3hZ$?xymod@7&0RD3F*%BS+FeCG1;seCG*%BS)fOIrCpSc};3ZFuvn6MapZjnw!LGe)d6h3p?_!K^cPvKMejIAtu3ZKHK z@F{%e_Rd`zD^vRSSI_#x%b0EEllf#mnNQ|3KLb9QPv(>PWIprL;FI}eKAA{1>HJ*y zWF51jEXaKPAm@|$WImaXczi8mhsLTP!)bkjPw)vo!6*3W4mqFT6MTY?AtC1ze1cE# zF%9H=f=}=XGNy*yfT43Jya}(k;EW><*kgw+Hi#RpxZsQ<4%lOdEjEZ7uDIZgBM#VO qhb=b!cDwcK_1Z6&OFy5_{dhd~!{N~P`+eW-c740u_RVIaHsU`qM1EEP diff --git a/assets/voxygen/voxel/npc/squirrel/female/tail.vox b/assets/voxygen/voxel/npc/squirrel/female/tail.vox deleted file mode 100644 index dd2a53444bdc7c7f54937f86ffc39aaf021ecfc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1208 zcmXZaJ&w~r7zW_a-XADv(j$R#g=vw{q9C*dAc2CGZRq9%NV!5zfb{iL>60c`m@DK8 zxq^9Sgq_zvZ|w1taejP#diy6LK0iEuv5UXA5#Jx5KfdZGmYe^1Y5(-|`SEuzEw5#o zZ;sPEAE)V7`f=aipQiclG);HMDSGbZ#c7^yPGKMR^EkhAe5b#)m$=uvH~JXHoF{vk zqkE_o~@6ebYC6)A!3#pAJ%=`qcMZtG?>1ld7-!K3vfk zebE<1(fcf+4}IuEkE4;krc^1S_eHa5JdLOEG@ilZX*`Xm@id-6=4m{Qr|~qN@iTZD zPvdDkji>*##?yEjPvdDkbVHK1$&)%Ext?#$&)U+>>6&+nqYp*|~JB37Q@ z37+5yp5Sr2=y`%Cc!I}}qUQ;o;0Yd&5j{`v1W&+twCD{OZVne-l@~e7LH4qft!!j1 zD~YRIvFkVmh<_%91e$Nzuzyr-EP@# Sx65X;S=Q_IvRbWN8}Sd#zIdPj diff --git a/assets/voxygen/voxel/npc/stonegolem/female/foot_l.vox b/assets/voxygen/voxel/npc/stonegolem/female/foot_l.vox deleted file mode 100644 index 40ebfc452a6b5fbbe1ff7f2d92b81cc88cce1554..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2404 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 Ao&W#< diff --git a/assets/voxygen/voxel/npc/stonegolem/female/leg_l.vox b/assets/voxygen/voxel/npc/stonegolem/female/leg_l.vox deleted file mode 100644 index 63483b743ebce533114693c987e82b1fef21c2e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1680 zcmah|ZAe~a7`~s6_d{3V^7|uo&ZVzf=EpRrGo8LU-87sf)13@rV>_=&!$LNB8#vp* zWaXT=1ubVG5;5Dvq}UIWA!{(kun|FsjOc$qBKmiA9XI+>whr9f=YH<5>$;wEI$t@M zJt-os_04T`67`F8Gvy#cIL2tlXzeOv zBU)Sf80G?wR(@CMKtvns8XfD3RjxKcSL zBg$yT+O?cvS!1-%wI+t%xS~{qfQTW6yST>&`5quH%N;@11s!E|L|Ne;zAHbm`CKLJ zqbco+Xr)}mIY!60S{Q5P8fAzz)-mE?Ay>tj6iSLRv zoS}^05v?3;eVo6A^~zC(ePW1>8X0OxKEgA@oc8#$-s+$uikd2FK(DEzh^KRq*mcAh z&Z36K<1Ci*$k)@Enj7n#2dEV_;(TLbImc2f%iRIuv5wui8-GN5+Vftl^6ruN6}8bq zooGf_E8IuVSQsnsZbYap?~~ez6>7sh;?44tj~DxhH->z@?}Iw zq&F5a{WN4H330806?8K` z(J2@^%<}<3Lr8F?=Q#{CvhST1w3nyB4d-C6Js*=tN)dgn5|dp8SbeVsOGEA0m6eW~ z(k$$IDIaa&GW50xhF=#CbF79_zfPsh2Y9a!ioM%&9p zXsa(m^!Oo+o;r%bx4SWRrWXsdXR&(oGIm!KAtin*GLqs^63Rh&Q7(3sh7hhPK~rrR z#@^4s+?5>sbh`j+cMI_ecP`8b?%WXk@`GT|&BvwTGOS!}z;8cypno(D=e|h5^?RvU zL)NDJdtQ_c{+FoBru>gJ0N+mm>nkYSp7b~WBb}B1;$M-O_E`R9Wo0;DIfdeqX;hD# zM(S`XZha=We@K9t8H7S13=9ll|K54X@E{WV6R~*l;T@hzXUUY$3qtK$y(j{zqy&SLoU1$;Pv6CZ!Kik-(tP)$@ax6beD|ML6^H~zCt{f(Lb&N1WlY})rI=QU^S=|f7@ M8%Qsn+pJdp0(YTb`Tzg` diff --git a/assets/voxygen/voxel/npc/stonegolem/female/leg_r.vox b/assets/voxygen/voxel/npc/stonegolem/female/leg_r.vox deleted file mode 100644 index c5251852153b16c978c9ffa1ba26bce6dbd8a3ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1680 zcmah|ZAhMF6h8OI`=P6F`TdbP=h9a#^JALRnNHuFZW_*#>7EQ?V|!kchJ|eMHgL9q z$;z3y1ubVG5;5Dvq}UIWA!{(kun|FsjOc$qBKmiAJ#O@)#2z@${ha%p`<&~#&i!=0 zayWZZL|W^c+qg*7FVfN69e%=d`1l^1=O6CsZa%2JU6FC`r2~#pK1W%{S!0OXkdq;1k57PjgT&2!n%=;~ zZ^azeFvjm#tsHHAtiO%<$}xuL#1I=bGSrZKEcX;++T+iB(Lu*5YO1IKS4|zQcsd7( zT}PB*Eo!Jd&SF`Qd_A41xw77VfLc)_)>kH$bu6{A>>VH;>&V7z{1NSG&$)>5=1BaC z+GwFpG$YIv_Tx(5(l_30M5rz2N$so^YQsL_)$)^%=lh5^hJ3yIK^-_B%^t>55Ars| zYpCm?rhWCoV%`Hj(P$J8#|8VZtYBxtU-%;-0n5v+UI^EkzuD5_>XK0H>_+&lT7;&m zAYmV*Hx@GeG-M?Sajk;nK0#qP4@K7n!Ct|W!-DuRLDE-(^44u=>5D`6P&__ZdKs6~h(|)4;Mw>V#nEP0;JS(_!gMOW0IxP71kYMe& zpqu`wPQlnw?hgnWLV~M3&tagE=iX^SdwCk%a1I9B^D%j>6w%izG1*ms)%R+!G}Mkg zS?Q=L&BB3~^3fJ9LvM><_;tb5yMm>U1mS0Qpt&FyPQ~-+Z>&ORK@!~ZbX;iKg@vAC zw7pz}w)!GOPaeVOnd2CIyBlNYda*Ej9;>&mU~fecQsTEGBPkvwp&XPK$%Kt-)<{uP;NTkgw>2P$WphpD?R}_3s|xTj%}yzxd-{5Sy+yXEy%9O=FCB`&-4l!x{Vf PkW%#q(u?Od%ay+YJJ?_( diff --git a/assets/voxygen/voxel/npc/stonegolem/female/shoulder_l.vox b/assets/voxygen/voxel/npc/stonegolem/female/shoulder_l.vox deleted file mode 100644 index 6a7591e7d264c991a4bfdbf8eb4679fa6d883bbb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2344 zcmah}ZD?0j7=O+=&pG$bUeKIVH}hp`y16o)?{CeQe>zQLTB7r25Q^SwlB^gymY_?) z#8MMA$fm`R2u)>4;Rh2D6GUW51R)~T_dZ1Q?bq+j=tC{L@Nmxa{(D}|UH#&kkw-;j z`TWKeJfyr#WL0Bx>CwpWBP%JXA8F0n=Ek3u7k)F0h}ux7x=e%3)Z5HjlLa3#t0r@a zFMJ5Ob2jso1tmEtoHLmr`N$jE7?*h$eFEjKurAO>GGm3YY+>lHiOW)-qNEc3x<&ZWFZOwHrjpEt1|>|^hYl`&Id zDa$p^U(1SA#R7CXAB=EgZ3H+>PEd)}e)=ulJ@1hWp3< zr_SY$b*Ab#GeSMHMMZaVTV^4vFN?``a321Q^FqY-s^0c&Z@#O46oRjCi~3ksR$jNpqt~VKi`8nA5S}?1QuX9|`{# z!aa6LZrCrwy?4SlBAl(*+=?NwX5;deix3)a>})DZug^nG=S)b+L$>sToO%Lstpfd*3kGi$Oel>*-8n(JMetaM zVBkSP#pi-4%OAngt^LuwYarge_#_s!3!07yUOOw;ahtwPl^C8^V@!K3rgb-`Fl$5==1d-eWzUVric&qcEEROTBItZe zaQS^f>8Vj@tQ~`F+B0ZbG!v_9E09mA!hywO(Y<~mRy<#a74z%RzHJ@$@7#p8H=1#9 z&lYr_-iw~ACop$f9fk}XfMFE_F{!2+Q|iWG*5n$L=1jukdG$E>&M=%kS&biV)Z*@~ z3HXRPySoH8FA0A7PSBQ*$MKGOTsyN6zy7!iE&Kc9z-Q$+e|sqIVnmD_v`=ke1yI4tk3gO*MIA%i9UV${iTb}!xn7CkeRQdYU0_x GY~@dl45n!S diff --git a/assets/voxygen/voxel/npc/stonegolem/female/shoulder_r.vox b/assets/voxygen/voxel/npc/stonegolem/female/shoulder_r.vox deleted file mode 100644 index 8b9b3a8caae5f0bc4613be30978cac4e42eab935..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2344 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 I^#;E3Hw{W5NB{r; diff --git a/assets/voxygen/voxel/npc/tarasque/female/foot_bl.vox b/assets/voxygen/voxel/npc/tarasque/female/foot_bl.vox deleted file mode 100644 index caa5390b0c570afdbc9d0bd82b9a5c97eafa5ce9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1508 zcma)5e@L8V9REJg^S-BKE;r9}cV2p(y8Kb;si;eh4-Ij0 ztk%WKmT7jVW0hKn#F{nnr05TmkZmACwh=+d7!g5#^+!bX&!_L}S_ldCz=zNG$NT;9 zdEWPJ4<2-l6OmEp4=~ZXPSon}@I7cceAuPrzj5$Thksg_QKC}}O&5Kdh5Cq@n59MZ z$t07_81-o;q;4p(1Qjt$W?>0PX$fi4Vraq=lI#oiC2>sXL8VbhXcQDeH-wN}r-h^> zhT=NO5J9P!l?W;&0!rvys~b}4Atm*oH0#(FiUL9jwwa|cl#n5%xDUrA_m>*?(K*K; zjiD&0*w#3&@eWGk-aJ=HW+i!d6N;e)q!5PW-K0W@pg#90`BG>u{ezRJ!vSPqIm;DI@no4o}NDZR> zO-Ky+kr+FU#KcReO1y|PuMPHNF1XGVqi||3$ftw49{|nl0x0fD9eU#7~C!ClkoL=YJW(Tq(ZsbLaP`T(uR<9NA zVF!w4bKtr9C^9<sQ$K5@vjaFIxy3rwEY-!azG=G-AWKV}xQ)8A7cs@HaK0&R37- z3I`%SHwK#vFn+QO(Y7j#ckRQ?nXlF2x00K!tw~A zGTQ-vQ64%gpFnT@UbGk45UI$*a6>*8kCwn!>%qlZCq^m>;nGyR84Y9jwJuD)^D=(9 zb`4`MxRLM5MoLNwcBk(|Nmd#>g>ICU?!l8)k7M)=C+4T!`2KnkHf|K-1D?4!OIZ7w z@Z&AQV59((v2v_l-iKd*XhrY&Gz@=g#g%nCHjsl3zK>1)VZN7s!p>b**fO24W;!s* z_p()g&w)Mv=>KfM*wkL%gNSNHb2!{66`<@qPv{Li-X^x;n2_s!&edpq7PwzX!fz0I@q7j#uU AcK`qY diff --git a/assets/voxygen/voxel/npc/tarasque/female/foot_br.vox b/assets/voxygen/voxel/npc/tarasque/female/foot_br.vox deleted file mode 100644 index 957440783848cff396967b1745aecad641673bfc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1508 zcma)5ZA@Eb6h80!-g`?#CL5)!r9v$*`B0%ifC*}GG_0`p77*MRTegK|Gz34u5JsBm zteN6O5DBnM1vG@1IdlYw#ve!w*_M!nY>P25WLbYnp>>_8DcBl#&~o^&O9_AD;Gx#wl(3>ir>q}c^pHV48e5I6 zG(?ZIS=NeC4;S~4)I)*{h8_{phzMbXr8G>kAdHX{hN&dS$Ox0*T#dp?BUABR3CVR@ zNJ`=wWlAX-A}p0;h={NtbgtDoM>mDkBU0!Q#hglU4<)!ag_N}NxR;`c^m+IN<)dL>qQ4FLV>Rs zk)}oj>+4V*s6j)i3(%F!>5$d5BP!;X*J!8*ODzpu1)-TJjx;mZoE{HU|qw3lXUD;bN5=LuG{aq9nW- zYscVg9hi9MW&CpO8b)65BFB?~#Kc7GPT7gV^kn$*yeKZ(gD1-$$M73&%uRXm{q=lo z+$g{Y%(*Z_So@mr<1IpeG#3-`60Ba{hhKkaLihP(41Q|Im31dJkcn2_$EN;v-b*iG z=Po-OX>QolT$td!Y}Ma&V9!7LKkEx^>bGWcJ5u3JO@aNP9cZpdLbLDx>n|xO!F%PC zDD+LEa^Q71<4#=tm~i_r;Zklc^78V~k=2U>`{zONex!D%Vrl%|e|W~l?@mSrUd!<5iwKDh$J?blrohO zlUgE5+EXYarpid5KhPIw2gU>M1^N@-P3U)1?1&O>su@wj)yRkvj^{LjXC0xu?}#LV zd0cRX2A3JHnGKo+ucZ%KO0b0llZ!Wb5^R=u!?+Zlx(|ks(p#T7LWv}iGNC_7OyLt# z+Qd@YGVokTBoB;*B<7;c9D(oFL<(noW_aEO$u;IQtWDc{DIK9+a!Y9_y>VGENfs=j zQ3guF5Z2{E3G2(C5v-wFIPaLp7plH+tmj!zQ|3;oyCiqa=^g7>zQLN@IVr4~TnVS_ zMfq+?GUH5cohj9s!V%ulPdJwpP9lGdd&UVz-IK3C_!tZ1gHXanog6tKcP3@OX`#`M zJx8BS3vbh0Q`S#SX~?6H8z+J9;dxE@4k-+05lqVWYiX_J3@qPoITM>%_O41>ZSJW% z&QrbTJ(RmeO0tH#z2KJWBGViE>t&d9S(iT4>xI zA~+>4c8cK~Z%Q`kGH11^FCFMOrxu2eU=ndy)Lg8%Sy^wp( zz|pU?ow3|EpPN|MhB8DR7`JgZxucdl;0a5 zH`QYBvFUi`=tWpQDp)lkxa*MMp^tfYRTEmP?U*&%g+)ht(L7v1`;I1b9hiac_b)}m zdcmy6n0vQi=`n%a$ogAT$i%sj!xe0s+l+(r>hRfB&A`fwF(HDZ#OKv2zNMVlA~^Jd z;P^qohi}sE73}X5ytP_z>K;LLg<#7%!LDjOp1eaar+YriHLKA-uoBDqmSfezCRF>{ zv2|4kcHcc8qicJxd&6}&{`5`w?m!iDX4Yfr{23UyrUQ4c>%qpAg0b5K`yLb=+bLMo z+JyeDSy;d59~fSK1=e-dqq?veJ66obk=y5@Z)rDPTH1o0iv&aSrs1j4A?$c`1NJ`q z0KWg=1B~C>j@fOksHv&Jh11W++~!(zceZ2xyi0Ip&*j+lL<S3k?82#!=HQ>K zdE|iLaRw>RLU|INnH!A6X?wf%|zcrNC;Wz9(pZvY^pE2<7V;K4r=SsACzW@r$d&K|% diff --git a/assets/voxygen/voxel/npc/tarasque/female/foot_fr.vox b/assets/voxygen/voxel/npc/tarasque/female/foot_fr.vox deleted file mode 100644 index 03f2da135ae5219e17481183ce384f6942c5131f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2180 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 diff --git a/assets/voxygen/voxel/npc/tarasque/female/head_upper.vox b/assets/voxygen/voxel/npc/tarasque/female/head_upper.vox deleted file mode 100644 index 0bbe6fe2009e13fcaa27552d45592ff3ba7f07cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5512 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 diff --git a/assets/voxygen/voxel/npc/tarasque/female/leg_bl.vox b/assets/voxygen/voxel/npc/tarasque/female/leg_bl.vox deleted file mode 100644 index de83509a0709a0ac6c0c7dc6a9e34c592aba4b39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1620 zcma)5ZD^Hc7`~s6_arUt=+4gEcG}iHY#-IWWShC_EFJS~zUQ26ZRwn%GHHilA0tG^ z!Lk$9vbD9wT=bz9L&CI_Z4~{m5kmzLQHdZ#BqHcnKO&+(SJyi;1`XS-!ak9XNO#kHUckrF?)lrcZ0(NtwU-r1c`wJh+DJ?*i7GKM zB|0j~#zYxcl#VIo#I^FpwU1u=qM}*ThCR$#8uuHeT_q}J#JEZc>)I8qxVG#krqWTR zeR0JeBObPji({f%shAdrW@+qooTyk67i*(pm{Sh-*toGKY7EVC&AhP=Jxw##4rAha z*xDB}%94*)^SCJXv(I4mvqx4P(voEHyHg zYfFB_VxL;r%e-}n?XX7fR!22?Y3id5@u-pZG_ur?IGS2$HE8@f@J#L5z!FmiApDfuHEd_Y2OvE0{YexOA3rSa70A@MXK;=CguCvtWOhU^EfL z;hlo=s%peL+7W4OL1WWKw5`oXqNxCbZ6%o4Q;lS29VYrVVD61)@bgpx<%K~sROg}f z$r9}8szZN^Ahlg^>?OhZ5kYNkHX>z3=&5}a0~^<&t1O7b+8hiw7h`%y1)3VF@P0!G zBejCw%H?=H*^A*<`Y`#{i}>Z@MT|XHfa3gIq@|@{b^1zF?!x>Yr%*5hp^S6{?q7k<`sL`X z`v3FS)YRaex?`xQI)U{=uOcgzg$o}GZfp~rDk(u}X({>&_hIv^G6pg*d-TpX zJebY9lbef|i^uWA`Z4q#IgHgiGI8beV$61DVJtuYU;2CdJglu9mod->95{LssZXZy z_PKBI-Z$5f)jxvWm;XfTN9WOd9SDcRxGjJzqv3a$Yl2%}-QjnO_v^pv`~?^Ov&H`S XwjSJ#z2e>VQhur2;-1CpCHBf+7A-`- diff --git a/assets/voxygen/voxel/npc/tarasque/female/leg_br.vox b/assets/voxygen/voxel/npc/tarasque/female/leg_br.vox deleted file mode 100644 index 875d1ba12fd6c105125313777e352acabc8d8fe8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1620 zcma)5ZD^Hc7`~s6_cU6w>CVpFM{{k?_EGIiwwbHW(xGSbea}0WOXn1oNjnVt7$I{U zEIVPDEp3fy^r03q!dyAFQS@Vt5EX`qN(3Py5kbHD5fS~ly55;FNT?Ss?vLmGxbFLX zp3eB@qEQiXn`0h@L_;DSv96Z;0)w9=?)e*=w{*oab>J0A5yr8;G7?uxd@aV+qCKN5 zVO*oMtCiy`6>?RGQioild8Uo041G4_DbcP3aiZAU_?mT$){IlkwVqZcu9c2!=4$4U z4QngUIL1{zgYJ`TCEkJjXBG<8a=d~H-*5yo&H zO{s-`@r-e3b5_H>8QPX-?4iZF;)HzVXz~qq6ZGf42<@;2cV;wmP0)+5mid=1HXmCn4NVId}m`*@Y<@e zbK7bp_qJi`Pz+PUJ27?a1vE@OkIZNUxjTwbw7(MNCssjP97x~2kW)(_=Of5;1vz^J z1xE!Be<4Wg6J(?WS+pZ(1S{QiwC>47*MTg&IsE|ECI#&yf?eZ+eOH*RkpaQ@yMoyZ{f-g4;ZagbUtP>1$3XUcsIJiSlSyKzY zVnT33q6?Nw-Ls=@nB1vpYK=&8=Y z>&YGrz0!;0Z@q|LE?&g&bHykvDnxpEI+kWFMpb?$YRZdITfG90H9Uf&uN7eYWHG+K zRDm0pEAat)PM#LbeJ%L$nqV+dhU2L^oIkq;zy8pH{==CV`ZSDlS8{O!%h1Jr%+KG$ zz3de%UJ^zmrvTxcJRIj<7S6wC!-{|A|7^gWpFiMK5XnYCb{4|-FT$qA3~Z|T|MSY|8>qMIRDNT%9C5WamNl0 S@91}vck?aGS*YJ7R{jEH>qMUb diff --git a/assets/voxygen/voxel/npc/tarasque/female/leg_fl.vox b/assets/voxygen/voxel/npc/tarasque/female/leg_fl.vox deleted file mode 100644 index 38835efb4d5f872e8c4854403f7a5f1bedffc815..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2068 zcma)5ZD^Hc7`~sc_dU9_>CVpFM{`YQ`>6IM+ssun9lFi;yk{<#&JR>3?J(?Pgy=X} zwy?~Ww#GF2Pz#YTEoB=;KWv1kAR;Oegos20{R)bR{#;#W!x$vg3m5l&-OqhL&wbs` z^LB>oibg~vSk@A!5s8R&v~)G!H%UZ1+L=>fS+~Bc<(ipV_>IQ;I$?c3G`^ouo(rt! z$BpNQI>NZ~6UO2n3k{(O=g1wo z^AehHmYgt_oYooE62^FOZM?u4o}s;jA)Kej+I>(K^d|%N$xwD8d=m5r)u&GK^`~YQ{A4XszNtid?wnr}dlA z5H4akZxh!_bKWLywGOq`+}E)mu3P5v-W2yx=^mX)DCYvrS?P!kbXuP^p;k69it`cf zp>*hs39T~hgZZ4dc$~k}yf4lB($qrBxbbLxa^abpzTtW4e5d(77&n@4L{qCyh|z)K z+fw9Wbzs=5WxnCvnh1M{n85mm^Q0c%FqfPf452-8Lg-s(I8(-G6(RJkWu0XmwJ7>x zS!tr*5MW7MQ+6(QPCcY1!zQ9O(NX<Sf zgYbUoGf$C=R-Cuuy(wx`ff(*%$Y~8BmfWgP(;7k?xg&Rqx>P8Nv-DJ;J;nFS81F+V zo-Jw1nK7n)#acb0I z5d9OsN28dS2$23xw~Qg)R)wvbmLj#Y4P*OTFgCOmV~1Zr{n+!!Y>FXwOA(6pRG{qW z5=gUy^v;AFp9{GVLuMez*&!%6BzX7>L8MnOYe0}i9y=vi9Auz%M<%-VX5r282e2X~ zXdf1AJ0sYAjkWE0C`=Y(VX7Q;qfN-~i=uci59KH3qx#}Q$k`}ZxR-m62pZ1|{htV*w7<3A(Fh;q_EE24CsHk+)vNFPAQ1=(%E)6cr*PBLnlY=Abe^ z6V+wKsHs|n$Lb%!q1Os<=2$Vlzg&)6S1a%V&m27=xbn5&#~XtFWGRje)Z)VF<@oi7 z4)h(!#NekKe2FsVP? zQ$Z{n1=(4M-ai{_8)ji`_5asjTU(2F>W`wb`Z$*Ee-*g{xw!bT;N}LwsnSxEm6f4q z!A`7Rbq+GnkLp pe>K(LZN9JnTIWwV`JYX<$2M%lU7lXN>)*@XD>l7mx_^&c`5VyZZae@0 diff --git a/assets/voxygen/voxel/npc/tarasque/female/leg_fr.vox b/assets/voxygen/voxel/npc/tarasque/female/leg_fr.vox deleted file mode 100644 index 3dcbe012b521b75e5597ac3123a5746a5a481d2d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2068 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 diff --git a/assets/voxygen/voxel/npc/tarasque/female/torso_back.vox b/assets/voxygen/voxel/npc/tarasque/female/torso_back.vox deleted file mode 100644 index da1f32367dfe673a169f0a30b161d7b3f6b4b9da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5280 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 J{x)abe*w8?JShMG diff --git a/assets/voxygen/voxel/npc/tarasque/female/torso_front.vox b/assets/voxygen/voxel/npc/tarasque/female/torso_front.vox deleted file mode 100644 index 2f7a4891991323ab814883a9fd88efa192b78668..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10088 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 bceEeh_m@Au{z>gmdiK(9UV8l#`VRjMaqj+| diff --git a/assets/voxygen/voxel/npc/tiger/female/ears.vox b/assets/voxygen/voxel/npc/tiger/female/ears.vox deleted file mode 100644 index f3110119b2174c310135c693ff9b0034e93bb550..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1152 zcma)*T}%^J6vt2ZA>Ev{3|eT5r7NIqS;PW^GMFoass({DglScRPBWU0Y1)No)3|6i z95alrYXFluWD6mSktu0OmOY>`#F!Xk(3mBQF=kQU%$6m~;>&NhZf^#+ll=3)=i{D_ zn|pdXw%f);q^;54u1G$3PNd5p@V%5(l)Rwu%)i*aBj9hy8kOi2G$IkvXd*d^wTf3L zR$b7cGnXdY$Y@7CzISmX8a(vnFHv(MofJ+Y)8s*PSzp5=aJBh$kfZo zq7i+YP%t1AC4^Vc3EGgbDlX(H-FQZ*Zd*yqfS$n7JU*XaLvu{%ObL5ug~Qj?-A*&s zpq5g1R`&M#1ASB*5Ftm3y$KNZY z*CPxz3llx6*J?9CpPgu@gR%XU#JX!4>u=)XXYcZ0I!Jkmk%r1*THkcAzo(W^ixA%} zOnxLRj0!bYGk#YoyK2@GZmy%pWh7W_VPta|>D~%_4Q@I%)e(5Rkx*Yd(E|YzpN2@! z46$_S6v+?m#CBRJGUzDG%ca7i$L+LJvwkhFS2{_2QpD_OJ3n7>ar;_1U#ptwY2oTm z!ml@kXwbn#yo$xMP5kyt7vU3nM!wJI{B;wzDJG!av@t=}xrb#4i-*UMc2(JJsK&n^jfe*CAuJL-S^ amtU>m<2_rBv(DvwS^Lv`j}t%rzWfa}RwA1K diff --git a/assets/voxygen/voxel/npc/tiger/female/foot_bl.vox b/assets/voxygen/voxel/npc/tiger/female/foot_bl.vox deleted file mode 100644 index 74c360990a7a26368b6b3d4f4236a6fcd3bd3341..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1328 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 PRm}81Ew)+s>G|{zpYk&? diff --git a/assets/voxygen/voxel/npc/tiger/female/foot_fr.vox b/assets/voxygen/voxel/npc/tiger/female/foot_fr.vox deleted file mode 100644 index bc8d9e45bd56f7d4ba2e9ad30a15a641c50f6552..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55855 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 w9797x10DzNRP_Ybjg@0{D3Jt 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 N{7KrQ#7{mi{{TDUACv$9 diff --git a/assets/voxygen/voxel/npc/tiger/female/leg_bl.vox b/assets/voxygen/voxel/npc/tiger/female/leg_bl.vox deleted file mode 100644 index 3519108d8688f8093ed64b0f8992c25213279d03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1640 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 Lu8SrT65#s)@L4K8 diff --git a/assets/voxygen/voxel/npc/tiger/female/leg_fl.vox b/assets/voxygen/voxel/npc/tiger/female/leg_fl.vox deleted file mode 100644 index 692358cb4cba29cea3d115ddbee37a702faeb6e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1636 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 diff --git a/assets/voxygen/voxel/npc/tiger/female/torso_front.vox b/assets/voxygen/voxel/npc/tiger/female/torso_front.vox deleted file mode 100644 index 9ed832769a4b4fe9443f5904eca42e2747742891..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6196 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 LZ3+JA>%)Ho`I)5Z diff --git a/assets/voxygen/voxel/npc/tortoise/female/chest.vox b/assets/voxygen/voxel/npc/tortoise/female/chest.vox deleted file mode 100644 index 6c5f10c5f7d0af12f71fb520faad8991221c1373..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14232 zcmeI3+pB%oRmay}^FHQfUH0DRmj=XA;@-QoBIm@mzn|8o4ZHpQLa8bCLYmkVEJ-gK z#2cJqZK-Vu+Q#}IwJA#MLkTq$r1ZtxLy zTcixF(8hZOTA_{i3$#KTG77XRRczd49L;UNPp*vaT#Y*y(5yR8&YkB3B4rOx0k2S3 z6_nFxZ~L8uwojq$#OFBNE1&|QE`y@-N9U{Y$o9zg$o9wvk+O%UfLD-NwV$B#!{da+8A4bR%jE-&{}RqZdRT*}bKI0|%j_V%3O z*(C24$`yWNoNZ$-3+1Y1p)IsRTc!-HO2Ojo?G@xO+%2F2Bi@hjO!i^)&Kb(f-d=gb zGrVHL+0d80={uaQ1aET)#RldNTsXTFoi8can>hqu;8h>a!BB?Q5ST+?4wRuSQHEA% z6UxvEZJ9E(Dg{P@b15NXxZ{~f8k4g-dpnruB9#$E*e!F~xhumMT8#7+&o(7z;G5On z9znE%9C0h<gphrtZf1NI8@AYQ%-I|EhGG9iy8k0Rn`WWGjv>mfOj_jk6 zcF7`xy%dojkzXwHQ@D7JH*<*CWITslLMkN`&$CVESlD&e2kX3Jwa(T-*n5tGiQYTv zSZHq}>saJmLCH{1L|6yP(2^)aE3`z)&WEjW{g7_ih^P<-|U;IGjoC{KETi;lnhVt7&7d{FVjVMTh0H z=Jp&Y2i9^jKnTuH!CwPrbnz;|b1&`57FU!8zJF zFo)#AE(JGBn99Cza4jb2=c^cU#QvtJVBsO7y2 zYcSVqu-D5C%=HYNJ%B%Q7f<2-{> zoM+IsJV)M(JV)A?DbR);SMkyptOy5Dx(IH&wO3{dVS{trI(xPC_Hw&|V6Jw_TxGiU04ysrE4PUU%~Zibh)!`%rwE#|zP zc(;KH3bsR=U8A2eUhRsx+%D#7$do7gujX>ZNe@Ebi@hAucr~rqz=92|=oj5?XM4Gu zk+Y6>w$N?lIVv?*k$D#SZj5Kz+3Tv~*mGVpwrPir?ag(dP1uSzTYS#yg5_Ye9Fms9 z)1td+iw$mRyB)9Bt-G9d*y=po%_?KTj_2|243>GkwK>+8*Qe zTO1F(2G8%1f6H7|ZF^y^7Gwr^Vb9X8!yUs~P0Mg^hTqz7uT{>&o3{4S?XcUKeMw!0 zw@mm3+AIy*tnBkL+*t~K0-oDDzoLJ)V_WQ^uea=H?Lr^CGXuNzoGZjL_t~p*VXw@{GLNL#xZ94gM&h7(Z!go}u4ErWBo+$9K@rT%Z)PrS zj~}{)?V!81!!Kk4n7Kb;?#7<*L;+D!d4+-Zz+S;p(ecp5ru_W{OKFU)nlWo|dd zRanogxWG4p3Nrl_P(h}@0xHP#TR;Vw{tKueGmZkPj)%Srs35C;K?RvH6i`8C3`NHQ zvW@{%kVbbqF>gwZ#>mzr=H9ZD;16nP;0h3v|A^UORVLs1tlp)i&#RJ+JtP z1+1*a!rJhD<()Rgv)~g7TX0gey~<4SDb?yvCebW86GX%q25d zOKe4MKdiS6%-wKx*e^%3Q zr)ZhLk^|s8V+$Go-SBA@WKclEe`WmZj4vr$Vw{!uW|4Eoug=77h3Cq1o8htFtLo0O zr?kyPKk(Z`T-5wIH^!j-!jmzD3coelRb&z072eD6C&pTte_@P@#D}#K=V6wBi0U;lFfV#G7T}xvAf!j|xTJguID)O~{*&H?zMdeBP{kKB&FY z7QN<}{Y?8Ad6~U2(|$(QtnVOeMoz|$74>DhN7aWAA1~@JZenqK89G~#mx<9AWGyO- zSiR}}6nP8s7UV6+TaZ_gm3PR4F6whAPxz>n_k?&lY5c@H>xBK3;#MwnD{@yZca1r( z$XpA0W!`PHVI`(%d*a)feYDk>lR0n+ZNy3K!n>+GPg(uZmNnokt;8*DOZ2`|+u|8s ziP3UQ1Jh$BKdJF%1%YC-o=dSXFyIvjVna8i`da%xu+6w!* zfQj{v*j~V17xcYw;pVo&dJ@4gzc~;0g3_5Q7jtRq)0tP|or&18aL+Hg78k^d$ey$$y)@%6PiVvw1@8LhP`dj?g z%sdPHS@%12g}TbxH_npc(8U%Rt2<}ftwoq58YZH1vM|H~`n&+xzc&*W<1okRp zg;$ifa@U66D($Gt%CEc!ufl8GSsHhea#OE7t>d1~eWj^Q7VS%YJ#vsWQ*Nw(y;*mE zyV1UC`vrQ-Up8$!1@cFn7x(!qT*|q?&ljHfBb>RmW7|4z+S8_PS>F{K+Ub6yOkJg} zAa6?Q!{O1_s&XmMtYt(`S^cU4J>r7cgMqy%ffT@bA-*b%wP_#7DTBRgmh(?Iqo6Z% z0!^Pm0W*CS>Kb>eqT_-#<>~Xr-fn@t0#@s;s^(&}tTNDNW9=I{Z`|c7n2o)x12Ht? znz`c@a!_q#{Gg5a6V1zv>^Gh(xv9!MuNrf&+)(x!_qf6xZlV9oSXRbRDKF4j;m7O6 zy3590u<=f_=3XO@(2&u1uQ~YGX44!U(?3hGv!pVlkou2>Z+6I!6l%2kP& zekQpy6VuOA2yGi&+hNy=eQ*nQI_MAd}w^kjZgmavqr+NG2ze$&<|Nxq0i!^Eh%q&P{U+3u%^x zV3aDy(Z(1UBYB!gZZDfe9Pcj;Ilcwwn($rRqVaF|T5@`cGB5@EIF7V`OR>FdvR!WB~T8;G;4iU55;fBcOn+8}C6i zw%~lq3d)%?OBBTMSwT!MAnW}`WpnSz#4wpSA`?3Z_xucmyg~-Txs`!nr$mp)hXT>_ zllV$B#^Q|1oKcxGN;sb~;5N#8P;6aBY)zqM>_01XPhr~v$jG5@p4kJUF!nm%z+4M^ zP#EjXdSyf0h;9Wcj9b|IUUdo;);_Z*GrmJWR)4|;K$M3+%lM&;56bwWj1SHD(~OVH z_}jdL;)gSSG2^Q{N%ip#J}q-zXiSEKE5ue={Um2GSs2bS%ADC&b7L4};ck&R z;|s=9^iIOcW{oX&tSkPr@_waVrCp^>C68GwQ6RoN6GLW=Ux`t(#=pc@nX^7?>`Ppn ziI?*ZXxvR~o{8f#cZ{qtBX^X{JtlL<$;6U*2jvcuxgTZjOPM=V=3bS#Yvr5!8M=J-DP8g!q(Z$j0xWYeCnd_XqSZ=v&aW z5Q~cLcj8lF?+dyYVqw7-2r)h(GGl=f{|k2+;a(%GiLfTZ-AGs$(K{q-BCMZq7ZdJa zk-3u0Bi6tNQI6^pxWfr|J<)q9cRJw?DBSymbrjY$(6$)9$?)-@l28`C@3Ov)4;!L) zV!bo7&cfOXK2umV{h1`JP zzlHN%h!2H$QHUFbSYF6K2>A#hKOvk0!W~aI69n5A?w-OqA>>_!ysL1}6LPPjxgNeN zEI2*ku3Qagmx7Np6G|XVb3%L~xBP7(HsM-CY=Ul>x7>=CgqfrZ+4IDjsKkRRNTAKZ{19I-p2_W@13Gk(MRN7g)$7YjUF>MXp(d>zzb7aQ_} z8}fr2@`D@lgN`->`N19e!GZkXhWy};{NO--a3DXpC4adiKe!=3xFbL4uq%hHJ8V61 zK5WPj4&((LcD8|T$PW(W1~;IMr?{oSd&v*~wjBvJ^A0&23TE;(kt>f7;Kg(P^`^1wU9MPR;-+1$hbeIV#~G>!)WB-JknATfpr0!WM@>Nr5sF@T_ym?tQRf$*^G0qhBX zLtu4ItgU7KiFtZ_Qq=kCdXXQD)Fo}FZO9K=@`IM#nDC{HFn>9-+2Obww#+%L-TMXm}6F%Hg9@TbL7WNzAC479u z-}3>HdBKMl=`Sdy&U026%A=MUtEU_&C-z<9+45}k85xeUryR9Tbo_+YG{BGW zBmAIayRkLo!3*#_bK8^V{hz%ckyWfBoKkee5U_rTeUGsg~8 zE_o>3&Cd30~AToY4Wk=S+|2AaQ;t_z_;D-vFNk7V8V2b2)L|C(ge_ePI5P zaYlWYz5?wc@;z}vL~cY@=#d4J~HEzDbwDoT*er6Ji4Dai<7>iyqh+xDREHHn1DM-Wc-fU$RW>ZJ_&gQlFS7@ z@(36nwz|iWXLau*&(bz=wtMB#-XhNv=UCcXWLbSjV_B7hAB*bCbdRbJ;eDfigZGX4 z5bk+Kk1 zh4mwHNAiQ7IgiL3$qxqR?dc=ZCUN(S%r~mvp`19=5^-N5HVN<&F}GJgL%irYOC$V5 zypqTdMtA|9=bTNHBjrHZb5=+4gZu~pyP^y)!1IhVX+8cv@|<)HXu~CswWN)n1H^}f zn4CZGwM@G}pHb&XzkzlheI()~ejo#MooTOaX%lD@RTgddxddZXS@5(>Y?Y{sTBqv+ z&#O$W*E;x7`TAWO9YttBH%WQi;iKw>7%Gq-jN}I+`N2dym58A&`N5#;!8$u#TlRAV zj`b#S%bM~&G7@n^AV&~E0)f0i1PP4%E+mjoh#-MLjv;~s_(FR(01Fx zb;wHEmbyTl=Z=)L%)Kh|oVXJOc%J)Hq@0w;ohd4hdsl$(xn~8fgBP_9UVxW0XQ%Jo z)GJTx;Bj|N@FMrL#C93t6l`2@~e;Z+qGY+I#MFfjnT+G0{G8r%S}&j{I0u zzQ*9RbL7v0%F}v%hdUiXH~r~;qfA|(E>f3t?9_Sfi@K;b#acRYVoCifu;dFy?)nB; z;1t}=Bky|T1mr~WgPyy);XWFm7V3c4XAnVBN*%wL!tOZ7l&TyB`9V)EAb^qlVBk&} zDJS5$!+P$no;#@5xdBUlFpwW~jLqu&^*3zf0weI`2Q6zF$PWgd1Np(gd;+<>cthE5 zwKub7oj8Ylmj$zhd0VYXZ)axxEr17Gt@zY)&sA6 zATTluTdQ6OyU!X8H^hBM7XQ|^la+%2WL~TR)Uk$I&psoE;K(63l}q1_Tmng< zhaL5ad{hKh1^zF!fIex3-$c6DC z=**Ac&h`eJXHWxwya9cZd$Ra4emsCpWB2$ahktVTDFe^&Y~WjXmNK`|yQBVAhTqMY z8xZ?KEx)0$@ayPKYjVd`+<{Lg$1?gu1*`bO6ys@cFfm@1D~o6vqgW= zohIX$LpV$h1axM@X;%Gt;Fxbz9`DC=S{T>j12i1h;7%phLrFlu1m=32Ncc zLEn3iF40-b$FgEqd)BA1FD7?v7xb~mE_TdkVH^{BWj!X=rS4e=<}z*3%ZlD6=G}m< z(G(90dRox$f}SVFJZ%BvE*A;JW4)lfM<)xIkkNqZpLgemz47i`*jwmjEv#Gh$93|j zyopCK`Iz_llrQ9zmwL!EnCdCFdXxZF2uSsqv9oODB-jLBQxAOEqzzON0sA4dFEaas z9}OSHBHQMJ7-TEPa1?xiupW7g2ie3!rYw{*o<%ZI!o zyB5Xfa=~2p85{AZadoFL`s0Y*kF5WQPDku_#21a|dBj(Z=-shz?am(^e#)-lWU)`X zXc<2CZ#@QW7)}LICr^p^iAdKMeAW3(LN+>=jc1d&Qx9$6nzB*D+ntA8VT~&@pxvKw{s;J+j$1BzWl?sBF#v zzSy1karnvM_bhTPaxH6Rk!zWYWgeFGcI>IZo*3CzWAz6z#HW$HMHcvwHsKgI=x@Us zZdi*w`eL7X{F1>BS>AO!`(LQo^MD|0% z7bMDQ0*!J2?3V~qf`Y_8im@I?&LF;EGEU?~#wbu^8ns2vd&8M$In$l473UaPVCI7^ zBld3twm^H@@M#e~Hfgah&M%*tw{Zu)rX9xUjsaa*3*}r2oDCNF{AB%PIZrKTrd659 zw%A@^Jp2g%6gY$V(f%o+BeMF)5_mlOa^e>*M}GZsjIl5m_67bcfyh~(K+I6}WiB1~ zKz8EC^oIaHaOU&lf8@v0hTrLL1Z2>_WRF|uRw;E`>bBHvIb*iONE_$|YWSV)hFt&8 z+x_)33Vz{o+9V9}oQ-&%Cxj z`r04v{X;|l!C-oS@B4bE?$(pn{n>w^_z%55^+&zG`NzN6PsfjT>#zIZ-`(Gin2%`F zKkxlrAL;#dKlxHWBXaoad-@yuSNhjJ`Cxzi;-dfFV?+PdcMtu^2Z#QnuZ{gD-jMs7 z4$_}};{M)$nHT=xm-=IG9QtQI^P2wi?_K+sK73#Q*oWWTANlG}^~0x+edxBg-)z18 zcI(qu9_Ygdr#?Js`_Dcz^iRF~bbtR}A^(-3e}IkbnP;Bqbk%hkhX3q+&-nVw-~-CA{ecG_=>PN!z0aGk_u(_2?{EA1Tl%-2 zrS1n$q41CQXP;9ViSr_wUf8~`|`b#gpbb}XOc%eV{+;jc<`no^$)KmZK{l_1Cx_|MB zU+-W0`0w;T`P4W2tH1x({nb}r{h#;W`qsDh#~**Zf8rCL=r6wbA|^5XKmPCNVE8X` C-UZzN diff --git a/assets/voxygen/voxel/npc/tortoise/female/foot_bl.vox b/assets/voxygen/voxel/npc/tortoise/female/foot_bl.vox deleted file mode 100644 index b26692414af2a16829a8580224383e4edc540a21..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1580 zcmeH_%WGX#6vo$MpL2^!S_Eqw5JQNmp%o$boO9C}n^bJ|5^93AA-ypvSZ*HGAim%R zYarHg(KgnB#N4374oZljAR!Z59hA~RAvg*mL=Z(mL>vi%lh5yDAowQ;Zuqg+UXO3D zz0MizA8MHwk>f|o&v27HvB-&X<>)>6fvZ61k{x8|RHgij(%_mV9^{a@CGM7*T4t`P z(&wg$nr6yaFw2w#=BUtC%}g~h)6`8e%TY<3s7WHm`dmk;>5>MuB=VRsdV#0YF&n{Wmo~NYhTJoS>7Njevc8O^zICtgQ zq!ffP;vyv@PMe>xq@KsMD{$A`M~$F)zEDd`Lak??dg6%Ck+0hi2+%HAK6nswt*uzR z`4HB=+mCP1iF~~*jDIG$GS!0qmIr}Tf;-~CzzKk{`$uc2|4Q=*p!zA0C0FtAzB34M z4HEaEmolgG)EmID(?IKEt9X)U10jSq(eulET?i-Jd5cHq$dyOFlv zh5B$a@G1*Feg#7Z1T!;x@#4U}xHz&0<0Bc$^N*wb+&%~bn%-_g(|b+WdASWTxDzrO z@cfiudSeXF-J<@c;3PBa>wxJ{U`1A+3{^(b@BEO;00NEf7GKNOyIBp+a0N(f# z7kcR5)j+M`s*fpFq7{NAJ7qcSvq#KOe;_VA%Z9hBI1)E__AEL4}w2I@W5j4v)9@m zXWu(q9cf<>k>f`yPtnMpNaRGNcJ!|N!c!m^k{!gzsaoY1rNc8rn3qG|Tx{kNuY_q5 z7&AwkgK_6v90*5U5SIki*sG?Vyg7-z6Xr@{D%43DIp&+DL0#-k5~nUzixRbvIv>T( zhtykOZj?IX-9?Gfdh@B}8d~QFYMkR;>1!ZIo_C-78rV0muV*IA-sNHmB6mN}hEzW|P%209*D!{aO|3&(K)m$7)Zgxc=icz;Cj>Y!k}BzUNO2M+DO z6G_({XpR*N0lI UhUw{PtgNi?myrMQ-`Rou4OwgHs{jB1 diff --git a/assets/voxygen/voxel/npc/tortoise/female/foot_fl.vox b/assets/voxygen/voxel/npc/tortoise/female/foot_fl.vox deleted file mode 100644 index 3a88cca7212daff466fa57b22d59c0a55f138ecb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1624 zcmeHFU29!M6y3A;%-o`q7SU=0VhAxcv?Ao5b8;JFlS*5?gqmP&NN-FEmYa`i5WnCS zYaq7eqHU}X5_5wR`%pp*1qpfa>!FlB6oOAdgb1SOi-=Ex;LCEIAc8+Za9}aBKh|1% z=A5B{;g)$3Id-W0G&eaMMUIy%NAAi4t^%>+Zw#NTl<(0zD{_HwUJ_@Lc^6afLKZY8 zK||twNX=s685`k^b?-B8A@%ArBfPRlL#FCeE_C)l8WS64M|B&P+~lNpyuYx|kVfHE)7~plpG`1 z^0^~5oH1{lwUCH+r9e;F*5rGbD`_x#7=3vsLW8G%em~=^jJMCsnWv_wKVf`N#;V5m zr8fIK`@Bk*1XmI-T`syVA6>~Q_rN%ZN=eycgjaeO9Q&Ay%yIXgFewS)IjfQHE$2IO z*iSt39ZXdouC-U`@u>OhQ>U0YRS{?*W3T}%5 zgU12Z?i;J2{tJ&k0M(CyEV+h<_nwB2HAw77A7xJEtzQ5~PXVout>Q2xW&RlU;|dne z6j9l|8}APbUh5Z(6$Ov9>_GRvJCU~Ef%-@@@CpeZzKr4hf|;2;cwz8vTpGO}6Qdc* z^N*wb++GMgn%-(c(>qPrd8G|9v=cJs@!YiF?8Z2ry-EE|!3lQO*9GTRI?(lfKk(UU ztgQ{;4~+A+?ZD51jq8Hz?7h4~-){xKBL!}r0e&0=Ztz0CjRH%(z=ck{`TTiYdg?uV z{^(b@D!-!90I@+dh;cMJCvfZF0`U5mxY*15t_Et=1};yseqGv{$|u?s78)^1n%;FGA=>*#xX9j|`0j=tGh9Gw_Kxm-rE zSVVJkGe$;g7#OIbx3`9ljvDqf^Sjs>Ha9o1y1KfJrKKgz&CQ`!tD#!0{)=BJj^pCU r8(5fp7oVQJhOH02#@5!>Km4Aa9#kq7OifK;d3l+?g#3^H&Kt;I4$kZ& diff --git a/assets/voxygen/voxel/npc/tortoise/female/foot_fr.vox b/assets/voxygen/voxel/npc/tortoise/female/foot_fr.vox deleted file mode 100644 index 78675fb337bb5032264f796a79e52e5e93532d3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1624 zcmeHFU29xb6y0Z^ea;k>w1`$45JQNmp%o!>@11FkO)7152sOdlkWNermdQsoh+i

sxFC^bgTNz9xS=$ZQ9QgH<$CZ66s_b@MsnIz5! za`evq9QQDD^y9MNU8>Xs&eot=FioA~eA6TZO@q12n@fzd9lcoYHRpq)zXEyYs)^5i z)3Z9CIQ8^gNTa#3u57_`CgDB(`OJdRlTSQ(%X8Lzu*CbEH~O(8@N7Ah zHA2~^>{FFe46YPS$|1UvMpq8X7?=ks1(mX~$1|$(?gHykN*1N;38hXwXAo+xv`rJqvn|>pEw|P`}dHW4+zjHSlPD^^X=_ey8aN>zuSXv(2e|gNm&0xaCxQ;gKZB2 z#|5{<14Bmv*6tgxqwx!mKLE9lfh@U#hj*WZ#X2Mopr2z-Hi`yC-pT|03}EmpI=?en%7aS`!ziSU)s}nVA{zD&(I* z{siu&KWq@ka>CHj(Se^{1a`P3$n06{Un*g>!P>1FU-%RnjRyMPzJ^ynx`zI_IUJrG zMx|0gu~lhrYqpz=yuC6+Eweq|8acpjGVr^~hHkOx{F+V?#dcBTXt@bZ{ xwK#$EqiRo(#`URxv$2jg^%Z{u1&({yXnL{sMoO>_Pwl diff --git a/assets/voxygen/voxel/npc/tortoise/female/head_lower.vox b/assets/voxygen/voxel/npc/tortoise/female/head_lower.vox deleted file mode 100644 index 5f8d9dae4e283546b48bd8f74c354afd6b3975c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1428 zcmeH_&1+m`6vof{VHK6M6s&eY3?Zh5RtlM!JE_Jd6Y zFxE0?8|y-1CMdCs64FqRkWH&DO6j5yx(Xsh5Jfj4t^~o&&*yd__$LUy@Nmw1&U2n~ z-gECzWw>?D%nlzYKQCkN-eopet{%KUyXfd@cMDM%K2|LcI5|3lf_I_doGW-A3L*HS zbDMLL&i1N z?Sr_|in5kzi5uj<@a)qE?krh*z4@>~hq1J8AG2+3EL?w-)$e!nEnQ^iRa5@5ak1V? zrS%awX56v>1B0O4gJUU;U*-M?wJ#tkT;j1^Cx}~8Y)e0Vk~yAHzk)-@q3y{Po{^-@ z9cB*~m_M1Px?=~Q3>$Cu8)JFn@z#5IV)uO%JMN`1l7rV(@Y!n&?=hyQck=SUcFv7H z#KdSqdG0AXPVd5qw7l0s%ZDv&z0i&gZNAy>*E}`A^i>GsF;m4Iqg?EBwj0UfTh`80%MzE8?DCR^RW8KPbYDlkn33T-SqsABDwUc)yExUOL0M=RW4z z-fy^QztLnm4 zjHFa5DZRZZot-H=bNVh}jE#*AR#sN-U~zGg+1XjrG^JLn{j0v3ALs1I+ssdX#FwWo ivH9t3Ha9o_sqg9Op<1mnH8sW3(vp4&`ycG1oUX6C85U-HP$g%HKT zqEz!Ucp5ZHjHj9>%F~Hc@zj)&JxV3Ab8br=qFeaM!38{#32K(f?Lg37N9I&qqK@%@%BKetf zFVc_b=RCMaH!rz*DTrizE}3mvD2aKdt|fELte}|(DT#XK5{S3V%`y#=g-A0#uFO?R zK|>aZGsc32OpSell|<-kCpR)5%o@6d_-dsUdfD!4q=g8r6=fMbH&V!*%=fVuleYpDN5 z_a~tG8IZ@2}yFPuI{pGlN6pgD98F=<4c1b8|C>himBX zuc4=>hK`OJb~W?A*eEtOHn6g?vSo{lih~ER{7Ha diff --git a/assets/voxygen/voxel/npc/tortoise/female/jaw.vox b/assets/voxygen/voxel/npc/tortoise/female/jaw.vox deleted file mode 100644 index 4dfd85efded17f4927694f29f52c0cf54ca42c83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1220 zcmeH_%S%*o6vxlKGg(xq1X&J*A~q%(fs@b7(MW3$8_AS$%n^ziA2mcTxROa`GL)Jv z!W=2gg@}nD;-=R^#Dy@lk_aYXly!EGZpoQ?X};uz3QgjYtJ#I)G(w}3@J0!8)B5{LCOr}^oe6N+OuhE z`vly=Y}TnH0dFb7wo9V=GhsTKjXygJT7`9SKw}fAwkKo}`>Nqb2tS3A z!!sPnJC8HPLQ?9f)-fG+=}V~VfSe=q9M_RD-asK^O!RmNW@PX%AY7{#LLT8@_BJXC zc2MlzPOQxZSG3{rWdemle}5(y8h0_=zL(DS5`5!FarfmRI7z*oO6t8-(#CR;mNX>f zlzym(=jT~k^7E63-qsCYgv5fdptU1&y6-#T2gR`3 z1D_gUMKAQd9j3f+r-+;91{ps2fER~eGcDhU$59eWT!|1b>SV2I0eX6=I7@(nVOnnbaWKU zvIvL6fAt4F5r*1sFwu3N#oif`kKT|>CjazTR#p-W2I=nZW_ET~e+l`|zw-w28-pCv AqW}N^ diff --git a/assets/voxygen/voxel/npc/tortoise/female/tail_front.vox b/assets/voxygen/voxel/npc/tortoise/female/tail_front.vox deleted file mode 100644 index b6845d2ab3ce25a3f5c9441ab05648f5c9460382..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1236 zcmeH_+e=hY6o=P2bDW|=CCF+Z60c{5j;WB0w;G}w9LWST8A?qb z!W=2g2N4q?#FuW6h!2AFG(=z!MZHAy6a>9|t&s@&6M`0eti6BhcJ|(xd6CL&d3 z!Bgtwl_gRW43}?9Zqyvgrr*B4Asie{ifa25!!o^wW%vz;Vu{yqh*vDbC%V=`zc>u9 zne?V&h~HG*w33?PHAMG@))?Y5P4ydSpA^kW5%q>&Qp6|fjTBQgt#gXcP((4E+QX@{ zoEmqUzSAd;mFe6KTiGMv7G{cy7|zOKVrf4M@A7y<0ZF?k8hQ*+*^n>y5O=FJh()CzR=sdoAcG%8Eo1`dy}8w*iqa)IS3Z1 zH&aQylS{G+UgF3f*gMoLScX387XqV~ax1Y%YcGE8%G?3kxBB(59z#!)IY_ zUYOV1p;?{#R``w&mb>6%H7x0YzBR#Q0B#j<<6J+3Cr5d9=p|F~m3SOwO^GXQ#0%P4 zDH(@rFBk}@o*u`J#2M<)czGYuXcQeq@)_hO?9lIHO{q-^7TMX^e7XSX#st#aPsv0f zvoVdWM)blvh{a-*-d^O&!$nH_`lx8HBNzzi=&xD zBEj6;+y;}AlMD|JW7{^7NaU~ju&0fI#_NoC+~rC4H0$?Yv%bFmr@pwjm~c2uXJ;of OGc)>2$bbHwJCI*l{?uRq diff --git a/assets/voxygen/voxel/npc/tortoise/tail_rear.vox b/assets/voxygen/voxel/npc/tortoise/tail_rear.vox deleted file mode 100644 index ee74a1b9c7edf9124ca1f4776ab69e272e62de4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1096 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 O+kU^_cDtQ(BmM)LJ8en; diff --git a/assets/voxygen/voxel/npc/turtle/female/feet_f.vox b/assets/voxygen/voxel/npc/turtle/female/feet_f.vox deleted file mode 100644 index 87a904a820c1c522fe40bcafb9595e812788bb56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1128 zcmW;K!L8Fk6a~=t5eqeH9h zr+yAM^g}=NLoxJTTj)a{`q1NOWbP#?L-c-VhvsRX=4qbA<7uAeX`bd;WS-_}p5|$u z^*4B$r+J#EdFEehp5|$u=4l?fB`L?^DW2k4Q@~RIv1vIaN%&$Pz)X~(en(R!83T&GM|{aN^@qW#?BKw!4o{e z6Fe>#Jx}liPw*I0^gO{6Ji+5OqUQ;o;0YMF7QF$(#o@$<@+Mcg$XQNul!NSLC-IP* zT;(EXImuBDvX`C2LvC`Fi=5>oM>)t|cH86e*lxGmcD-J=%jL42&*$xQI&H_}aXTCi O+kU^_cDtQ(BmM)LJ8en; diff --git a/assets/voxygen/voxel/npc/turtle/female/head.vox b/assets/voxygen/voxel/npc/turtle/female/head.vox deleted file mode 100644 index 2b9a82f3e820cb9c1f41166de6dd63cbf165ca75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1376 zcmX}q&8-_Z6o%nL&UlxN_Fe>PffZasv2o%2010F`UIhrib#`h&6&PR(YC$f6Eod)o z)B^Kx3|MpDA?Lf~;XCAf`s4G@UnAnTm)GAl@#~w2zh1xm^3#0q^Z0|$e}8#>o3=RK zYjWg!!ZJzvYuuA|iRH28B_-_=>5(HDmmZRPM#7Tyk+6DR=e#uMWo7a`v{tx>Jk*M9 z-tv%|YpooQG}{#BB;%}=myxZRw9BGC5|%~n={8&Qat<}+bME~AY8+zD(dK22wGOg* ztJ;}Iwq9PczUOS6wCbpTqw7 zcZ`oO`toLclh3Ku_-a7)P~}xV%N2Q%7kLpBxxW$ekcT|v5#N_}?-uHcb_Ke@n~GcK z)A{r+=d3rs^bv~U>=hOLgKJ#@Ym{&!C zoOpTei`***MF28_JpdBO2sVI9!6`Tbq)NdlIE7BZ_dPj<;dL|P zKeoSTdY-%I*Z1G=|3<{u4^Q8`#h2F+KcAjIy`5id5AsSL<@cZGr+41x_U8ZFOFTYE zyf{%FUVeQ3_#uojw{301v85zMJ*(j`^g}=NLqAVzef!Y**0+9MTKdwLFQqU294_^# zPkky<@3n%?yrhumb+RfU)ZICrBerz9_r+J!ZO%+e`G*9z1 z&ze4-=4qbhX`VTy&C@*1(>%?yrg_cG)XY6aZ+?oWc#5ZZif1hcPw^B)xnUW6Es=}L z3FS-i6wg{Vp5iH<;whfFl*Lm##Zx@RvzB+Q(wv#8nY*4Rd6Fl2k|%lAW5AO<$&)7-O7kC*6qk|%kRM=kS-nX5EsW@_v_!4o{e6FkA=a?$ey zPw)hfAw|yOUUm|9xye;7a+Z@E z}9vz@AvI?yKUF&b-P?H+xdLnPN&m$JRY~h;jr!Z`)#+| HIXB`T_u^_$ diff --git a/assets/voxygen/voxel/npc/tuskram/female/foot_bl.vox b/assets/voxygen/voxel/npc/tuskram/female/foot_bl.vox deleted file mode 100644 index a0675eabfcaef3145f653239700e2b15a1aeefe4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1288 zcma)*e@NVQ7{{OQS1%-+NjuNo>GV3i^3IrZ{v7JMsfY8|!kM<6PPW*{o45^;^GC;G zyBcl7 zd_SM|SN6LnM5K9l{azLFC{d)fJ`{Y$GIS*KB8`wxWbzf)oL@mD;G#GA_J6D-7M&+!hyEVGp@cKc({lGWzUzMqK!3vMId%BI%t%?rE(( zAyh62@~ZAXoP><0Aai!AtE&lC7E-az2My0NF2bVX$8eZmRgMn|v+oPb*MvK_)D8&K zLE(#i!rB``xK0>s7e>Pl&K?pb!a`TM5UCX|E8kM=A{_KE+>*z{(H%tF%9!Y`Vfo$H z_-!UkevX669oaO#oX64jGI|<>*g;{cUs!riD9v(F@6V;PbQ^uOJ8Abj2p4BCQs-s9 zt03OH*XzaO@sOFB$>=*h44nuub7ffZCS%7vL_0D_PEN+}-bz76DkUW)R8>_G3-7y{ F8lN!am#0rt?bVs9Z zi&fani56^`4T;fmB`O<(IoTwFh;U;JhD409fA>d>{rB4Qy=Vw?Y!AG7p7-A=G7i{=WwIy2>rp*`-QCK=b226#a zwqcV2F_l};xM^{PVI)KhLyj1xrEOuuFcpS!Q(=U~RNJse#IT<*#2zu#Hq~cpjTz6A zh)xtXObhlCqJB}oXuTK~Y+NrLt;wbm9kjfAkNep7Qzjp_79_SDzx)VbqQ zQBgrO8s*WbucXB%tup_R9JLD!W>Z5GVPiDUZ_izTj=^Tpgyi8h`katRZj|)|c zg1oNh4<#aF$;hmOnwlB{RYg>8@j~N^jES(I_%RgXSJh(?Vdg_&>AG* zD9CkEwJnFHSMxdCQBH585Zfn@DX z?(ukVyWM1EWij$zFN4Q|OkW;Syv^uQH_^^al9H0}xi(XnnL=r4Db>~01Ofp@-pyj> zs+*tg`dGbRz(;!K+_Z4-E8&;#g`rSBmtw^%->l{LpWEm^pTh8`4sJh4XO$d+dLQxq z59z&xg<9{w@88$_(%<`kcJ63=|LjfA<8!Ct%Soovn@oGf2HK1M|Nh0r#at|(q_Aj; z%Co0QkEL_xn(#xXa3en-uh&aYZkXm>vq)@+)c#Z!CZ2r5lNtJUva@-|Gscd}Q4XCy z!=~;u?tkuKA(+mn%k_`@xALrB``Yf&-vfga*NJ^H$A#H%x%|xvrN_^*h)9d-x)~vPH$(6qV DXqhhZ diff --git a/assets/voxygen/voxel/npc/tuskram/female/foot_fl.vox b/assets/voxygen/voxel/npc/tuskram/female/foot_fl.vox deleted file mode 100644 index 85dcd5043d882b2f7a7ac63b89f0cb59fb02cc3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1348 zcma)5ZAhC}6h8Of*G=Z?LK|ZfQ_Z5;k~nIuUn$WxRfCNm9oFgEXr&!3^Hpq12vM`p z(Pk@ai=E3tY+;+VL(1stT2a{;%*l{aD5bbD21802V}JK!jQx9d-gF(p9NUHGea<=e zIp^MU-+OyrKIq60QODlUekR(HL(~-t2cI<@9_-T7fAPUX;SdQUO0>uLXd)7u!&*l6oW>Dkb{!6m=Y?ccuw)0 z;vB_V#W{*|rJ)hLhR{Z(;#!85V+UFq_i~@v;q&>BNF?wmMcDV@3QEm?;5V}w%gY@w z#?8N3k$@3Uv!7VG3AaJ>r1lbU8dzyFkGl(9koW>CK=O z3rrn^!eN4ag7DHULhcY@Q>*PB${gcOubUhs;0|mfv|5zs%?;FSVe4X9?Q&xN*Fv4nwVk zyN@2|-2-Q{w@>2$(ww`1b%A&i|2 zW9CYn@di>SoJjN*AulfvUdJ|66q!&{Q-g+v1_XmaOuS{s>{Tazxa-B*{c?Q3YtGLQ z?tMx4>03fvcjI!h3M)68@avCVh+H&b{1Y>7Kd@pAB?$9*WcxqH=Mp0{dH%is;r18) z?*G#ZC$jw)Z+#A4X92t=`S5%4(e2xW?#ln)e^pf#-m9BJMddX7=g-2LwBpV+!gsxd z8*Vo|9uEdeV`$$u2TI0K5GlaoA<*xFx+`=7b67`7ti zaQx%^4V_WzP}e;~27s~2>qve)k4tmk;L6vls5x~WyU$Lc?V}}h-C9K;5Wph>D3^iX sp;ieGzj(aAhkU>OYn~rr_MNTgtG#`A;v17s?2UM%*!rCH_6Az|6Hu5m`Tzg` diff --git a/assets/voxygen/voxel/npc/tuskram/female/foot_fr.vox b/assets/voxygen/voxel/npc/tuskram/female/foot_fr.vox deleted file mode 100644 index 2fc6b34a4bc68724b6902522595ecbca083c3fd2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1348 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 H`l^2da!kVV diff --git a/assets/voxygen/voxel/npc/tuskram/female/jaw.vox b/assets/voxygen/voxel/npc/tuskram/female/jaw.vox deleted file mode 100644 index 08487a213349ad4140f30d5c3b0d6ceda4b61a51..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1248 zcma)*e@NVQ7{{OQoeRlk(#~^t-t;=X<()Be{v4;0P+d%)=o*DZ)Ndk9G+v?y8te9^3fB^=tE-8}<2*_V`#xNz!1gD<+iWZ?wPB81 zP4nz;d5NQk1H^|~`1*1y^U0&kPn@D^{v=sJJB}l6+-HjMP3}TMn~?sek*Vj9Wjk4I zLe7BT8Wmo=Eu{Agn-jtowe2^B^0o|`2eJsC-NMC%Z8XG%_A%kL8DaQ=u5EXc7x7RS z_ft6+BzMq;XT*trI-kvGyXykMAVjS;cr?JxlMt%CFNAiVN)2?98WSPZ7tvs_1VP5{HG!H-yFa zgvvZ8P5wf9Dt9p0u!}Cgok)2uBaL3>dP`EZd%a#f9uF>;i_v%b89o_i`f5z^Cdm^X z;@!DqWMtrXZ=)nPi;9X0YHMo=g+h$J?PBJ-had0xS-W4%HQjS=T3Go?`1v~_7AfLN zqKxHR_5Aiz2ZNWg82Qx3od*uq$S17lk?Q}Lp39I>@B8=u2U@rP-T!A7Po(E}dsCv#k${g$iWtWt660=v&m((=(F9k*8r27^2jkaPuqU|kg+e)+h*hkC#M%dbx` c_0HDw_3j>?*rxNzd?VgSTfb)ge1ll|3$kq~PXGV_ diff --git a/assets/voxygen/voxel/npc/tuskram/female/leg_bl.vox b/assets/voxygen/voxel/npc/tuskram/female/leg_bl.vox deleted file mode 100644 index 128e7bd0ebca8b873dacc2d1232ac557d5468143..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1512 zcma)5eMntp7=PaPJ@+cvOqw6_V`^6|?=@!5&!H}-UYuVGXWDjkvc*PT#BE5Nd$h}9 zvqsx+nTc*tIV%~lW}B!KK_($%FvhSELC6>p{o5ZA{rBs4919_%4m{`ie4pR*d){+8 zUpkOIAtJ4N8uwAjeUC_cV<`Bf>+rEC3`s2Iz`;=Cr-}xjUiYOvjutP)V;f^djHVdc z+C%MijHW2s%FBEV<1w^jY<6`F&nP3dDAtRYaVw&Q=Pmk{*VangT8pEVIEq>+u?fw3 zS1W2A5oMS+wiZJyV;f~6VoXF^UW$itv9)EfSB#@|jIB+KBb-x=#}UpdnzhEoA_vZ@ z75TVx7#-2%poBA!kJjvAD8vvUhN3N+d5@#WMH@pdmaRCCVvSn&wXL+~szlUo z#y1yRurPK63zH{NzHkBwHOWXloQ>>L1@KSpf&@K~z9%5lPeWFck-3ZB0q zi0u<>85V4%pL|VF(i(@R{se?hZ^ik=?Wm6m+QtR1&I$(a@oZZfGQ&RPMgu6DuR;1i zB77rh2+U-m=+<*c=@#UkX733>)sjG7CjL+?WIP@+mx$WhS_G?#P`SeoG(CfH5iC-E z2#4_t^|&LLeP6JARdD+z{Tjh^Q1In`!P;wraD%|<6pV(GarUraA}r{s5ZLvCON_Ub zq#+#iVW=%16UTNU+EI>)-a0J5^9p{Q38Nq<8C5&8(EMUPj&+u!uSqa`NHF!fVCh{! zS!Nm<1G(rf+kt`lUFZxXBV3Y>k%m0X_Y|(ro|l&gpU;Pkj0}vv-G{*wAY(h(OIhd}mr6s9Mjw6qk})zt_FgBX1)1G86r`0;iCYj+Fq0Ws%i1b4m`{QSLO zD4dT=!^K#+UWea)YRABZ1dM!^h@1CPv4$*!xQ})IN4XbUQ0M=5{{1b_{>}gM^T*fu zXKs560bddVS@Ed!$D^ZS3p$GaKmX$5V!T&Ag~Fm~RGvG7)ZtXz`dDzkOK>eeAAY|d zy*V~o_Rc|uhmbUogvH56cX%p|-%e&G-pm`v?#eM7y>J%WdQx!ri##lbQZbgD{g3^- zb#AYN?RPNH3k*(P#qcNdxH$J6E`Pg<(v#<~`^*%YKUzZjjaAgt)Zn225=+4!Fsp(G oUp<=d0l%;R%JUao|Iaq+D_z}q?7PXw_GWss*v2y(?M-UsFYm-l)Bpeg diff --git a/assets/voxygen/voxel/npc/tuskram/female/leg_br.vox b/assets/voxygen/voxel/npc/tuskram/female/leg_br.vox deleted file mode 100644 index de20ec4be45f4003033fa422639c7f55c4b4bc7e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1512 zcma)5e@LBG7=F(=-&M(G()2oiOzo=Wy~fP>bExZ1y*Pg@oN1dn*5o8iF24f5x5rm8p(ZBr>(SJ|Ry<;I{)PaZheb0H{=Y8ID zzOU=01G$qT(zd5*AC261iF7n|2cC=uTo%DCNgxg!>~8v0(c$VRjCMIn;%p_ZkQmDr zO&Iz*8pqMb*`i#Is5nPVydyfEalB)Md92Y!Y!f{vhbW6&mLnExEpjRyQd&YviLEuE zB&0<`Mv0?E(Q3yi!*j#_hTMcQjxmg_xRA1<+JwGEu6T0A+see-##qd8g$%VC&3fuo z)TcC|T=c2KM0-=8&>EMmv_;E(ZEPciVl0|ETm<>qQyVL!*HjJu?OT^RaI3X91i2*xM1&xtH?|F6ThdVU}dEZ(RICP5&K$Rz>!1M z2-_|A=3*-r$B$rf>Le-`PaxUvM*87gmakToWF z{)Ql7K(Hku*vi;_O;FaBh~~j$bf4ae^Gn;&5Eisg2wt5N4BumIdj_(D9^{98s95kL zb0`I#(G2)zb5L^YIi&Rp@=ud{Qc$xjkeAtiBmpv!1es4kU0odlH6^It;RTwX!Gs8w zh#!JM{6ah72|*PJ}xvG1*^_m3Lmjud_iE<+)L_GY2g%7UEb}B?g)Wkwb#%*9FV( z3M#TQ(B#WUZ^aG_HS9u{&y8SNCPo_zu+Uc=(_TI&g)b)w)!rm@R&7CN$^W0fw6qlORZgS0WCqpe&LBOKj$0oK?)M0;6&Awl z^`bw|M(f^rNMr=5L#bGrdh~{;GWhLeXXDL+3GA*O$I%OCv8^u+cfTmWQg=GWb94W3 z|IxfC*TIfE80rUxr>-LM$pS9Ue}~K8uA%(oIqW_&jh2s=(Q#u9e!m|N1&{;+f55B> q9(?sk-vfSM|8>q^F!rBqv{!n1@i>kiKK3`Wo9%6^+30VQD}Mn5YD?h& diff --git a/assets/voxygen/voxel/npc/tuskram/female/leg_fl.vox b/assets/voxygen/voxel/npc/tuskram/female/leg_fl.vox deleted file mode 100644 index 63d3fc488bfedfa668e633944e1538a584d277fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1528 zcma)5e@L8V9REJg^WNR-Y<9HsoIj@5>6LfJ%=vSu>!u#gUkhj2b~@Q&BM);M67TzJ z$6~u0ZNtq>bb~EtAtTmo6O|&!BxDT67#0zPj8W0Q{SncBpT6&ng^*DXeE9zQJl|i> z`*yv&-#0--ZM&QHvY?+GL>*1h$Wyk#M`N&yHZk@eh&Ig&R`|TZ5Ry!($P|h!Qe;R; zh7e?u5*A5e3Ly+(OC>laEXjT$oR&}yOGt)rFkfR`dTiv7xzQn9TJvL%Cr z#`QQxtaB|XlqJbwDB-Y_=Cl+!O{r;y;#^8;+>>OQ9=q??jBMozAk z!gHmVQlv1?$#Zah&Lx#@NzN-3_n^3EVbAYk$&j|qNOE~UN;d^_h0ra*Jqw;ukb`0G z%Ed7k?~x_XAtd*uB==+QOL9%g_a)bo%#r54#=70f2j#b`s;WXf9>=3G!k()u$oKq- z-#s2IFSo%yH=7o)x8+3~K3I*o(Solov|?fGFcv0HpmO0j++i;=5BcCbS%l!!PEf=F z>fZ#Keg?GSg}aTAF+j)}CA@Hpp!X9tCkR{E_TC_rwWXqYz>VmsEjYKh4GnQZ`#9mX zS;Ei*zT2LK+?XE)@enHJ!^j@=z(10O&`cgm?mUl-9zww>&OJe>St8IYTz^;xji-U; zJgBRyL!_nz)!TzW^RpNy!Xo4QSPZ|g9JdIw9}t$W6Ykz-J4~345I)~WSbLoiYb01* zgwdE6XATi2Vuao*g3&;@#QyfOEW{#y47V3z;^+>}r+l}(_a@5w=A`*#U^qm~cUi0IJ zyCJOIFTxeBIX^?V_a)({ZwbS(LR?CeV&!H%e*3WlgXi5C`NV_U4>GZaJVbdP$@!1) zUJOEg@ZaYjXnpSQ`9D2(EIEJf)~6Bjrz4b?hU#D%I;%FLv*iEJUs_s<_baDRTr!R7 zv!{`n$i$tG2;X%RZWI-$3i0IZ$F4>4WK5oP7L-C$sq5$<4*vfpP4r9>bCI zXRx(51NT1*U@@ABF`w@r`?q;^t^*zSFxUqSO%c+b%e zi_IEs!_7=|gUVURh&9_pr3f+!8G|v#iU>l+sOWD$BKmiA9mhh*s0S{t`}?`?`+48a z7x(8(h)C=1#=Ru@*&)*27z{iSQ+O4G2cl!J|a3k zEGnL|i*QmWD?-z+2+ey`?4DS@i@iA`hIT`n;XF!QgfpySy_k6JB;Ho6XLKAvzjCn; z#;~q3P9lzTSkx&i*3`_4)#rW`=hBSTjMdE3;9_s0ITc7`?cH0$VCuF>qp z(5|^p%^1xdGOu<^#tvg)@&qatjw8vRg0w?9$T?XE@6=96zyayo1etycvXX+NRzYgN zAahjk+zo-NPq2Adu!VZcH9=`>0-E}h5InU7=N7l2J}PJ%7rZhn7`(^awsd5LJjjds zP(JTR#(*21k#zWGvQd2NS)_Ig@=me#grIs!ATRO$As1vk5i;jSZEYRV4}AU%kR95UuQxn%uPY{j%+l)P=KSI73gac3?CFs zy)Ia~C@9ZLN24zf-R0XcP`?wMz7&K?GceMSkNKXWwchjd^WpJ$keQi@(YO0Bcsz)i z%R|H)7(3=cv?~J%2?_A!Y(r5-63WWTP*YQbKp=q8w=yw%#e*Mi`>=Yq5byKO`5D2T zF9kn+D;NqD;L>mjR<76Kw;$Uva6SnmpSW@JUK&=BjUe~2HvbXs#TL|g|9$@cmS_H+ z|I>5F*5=RJ`XqdwWcacZQRPiUN9AU86#xJEOG--cZp9Reil^~M4t979L4hDLG!O5!_{&*f2=Dxw@ukWMm#98b*J%#2Em(YIWKKy<^9tt2X u0)N2V7d-glQGXBkef^i8zu?+`ww|wab>p!fb3T?g;*D(UbJoin#L8bHEKZLA diff --git a/assets/voxygen/voxel/npc/tuskram/female/tail.vox b/assets/voxygen/voxel/npc/tuskram/female/tail.vox deleted file mode 100644 index 2243b951fcfff42f482a5a2905bbb6e77f67a01d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1904 zcma)5e`r-@7=FKBXQQQ!oYVbqTX$RS-ibE1xyjV#^rG9GG1r!EQ#6!z@45b9#L#sy zbS0_G)*4fxnifOCG?i@>K{jHDAtEaxh#?Zuzx@%>e^1Z3Vh9;^;Nd;rbKdX$-sgG0 z)A8cAqEQiPS=YFQLAujK+8R5fPX-G<9zjadiEZ0E8wCD&cgnSF^T` z8%C?OZ&_Cva)umX2}dZaxtE+}j@1cAC~e|e8=h-;u8E7azB0zwhMXbCcSk78JWI|R z?j^^y($=@y#>H6nYT2vhdE^L3DAv-JoV5wd=z`kx#}dL?%Fr9a5Y{+)qSzxj!dORr zF0RR0#ompuCt2lo<=cTRis$n$*1{>54P#5-xy=vx}| z7zypts3VPMQilq3a8^Qnn!HYFE{(&*jERY-xTTyLZ$f+1HG(PH)EK@NP_=If$Cc z1IVn;M$WDx6dfr?cx)9U>LC6TkPA;kX0nmlB3QIfkUu0?dR36_3+4?77I2+?Nl?|2 zfu?<#=sdarC#RNRLsHN>B6#JB;P74UZOuhNEQFF|1S==%k=L7r&|oei4S~GG^ZU~wBl98Gv(V7cfavN9)GZ4GP0wIN1XIKhu^4_~962Po@}6M& zqTtpwuImLCqJq!23g%uF#5M{JbqI!H**LySFd7r=tQGWa5S%67T9u1fG=%=vGK}tB zfn<9PMtjy{`t6tT>v#<1#o1WBq7cn5lwog24g4m-zz)IKYl0i^2v!#4qA^l}?v=~X zyI~bNBH4&l#wY=#Je?PSYB}fbtjG?XCMbRKN5W3CAd^phHyBHp5i`i-gF%@ z(2s?^3o&)(!3>Y&^6nHA;EmD|tgRcyo>RxMc;_PA`K%OEojDjTD*A{2L0(X6d)saF z_5g>^T*Sb~6F7bS8=U)k7S#t&VC}InG=F#lZC7VeUtf>=0!TW6KVW7B_r7@0-#y;1 j|N73qF!i538qariuw5u=O&i(07usx^ z_r0u}ns&9ZZD?^N&?YKHLmE?yEdio25s4v9lcuR?jENylV~l_OVT}JCpIK5vB1Ug= zGVh$3IUmn?&bj-({7}zH5!rSB_6N8~yF+Bp_R*0~V_p&b*Y2$c&m6r;6$^o_`SuF%pK+LoG@F8WfUuUzs~;#=Wa^lm67 z>Zyw+Lq7P1PkzXP)Lrl`GpU=oBc>EjaWWJvRleYzTA&|ocJ&d-DxPQI&eEX*&kj@X^tRmce2>Fo(b#T;9{RcaE`GLu#Rtnw3huGQUvsL&_L+ z)|PJs>U~X_PiU+64T-T*$8+Zzj=5=(sAt@aNplW`l|JipPDLmaV^PKua?UZ8mQrOk zU)NeJoiYZ#Nj2jgZ6so(ro2lbzN*@=B9-ci0drT!n$W&8=0^J|#WDp?tYVd%ZwHN~ zIA1zP{6nZBzcu?JrlzTiA(YCTm6!(~+cLY)bqMXGq4LaKSZ_zHEV_DdS_R_oh>=rb z=&TIH)P=}%Pn?Z@Sm#Jg6YcuQw^n(+GZ(8^WS%hY5E{-AN71(Njxt|IJd@E6?MBCX z<(wSrEmk>4Jfd+=EO}47W9-^e`bfdbWb{Ft5^L{>t#dr5s3!8%4N35&d10K|k{l~J z;WHmH#zuZJu0R|jb4lu}P%t-Q;lA7>MUc;HdBG7H<3N%bA04#WUm@I6KFS(FM;^ldJb;yJTS$z9GFV;|Cn zqfUL`Jjp$h+U9Z|T1m1}lxOTANB@$s=Uzz#oBo6#` z#LpzQlwv-Ot4}R+si`he7n&wvT*bH=_sUh98j5kFs1+@Z1^-uyrg2rJE^*J*xN5;~ ziq^QNXe~93;%jL<)KbeAlv->CuAvskeM&7?i>;8-c%se^-qn3|fx$1{R$Ke&peo&Ut&J3DdZ$}Z&JTiY+GFJvS@nzupDdBZ#kQsux@cTwht`BfpvFdV#~eQH_(N#H4AZUYacEg zTsa$iUtb@3dwa2H(IOoGb`wXR9L3q!CMn;*%#mJ9?O%wFjt&g;+=Z13=VI;Jwb;0E zBSuC>aQs_~aPIY9{PDd3T>oGNzE7VQ&I;cDrQpxM6HJaR$E(w;arLdu_}icMVB)2@ zIQElHyz}7#T*nfO5|7#ZA15xQU~~U}&;Rhw&;2|9pT2lxHvh$Uei{S4^DwYv4(k1L zuy^ow>|OQ$=f8UOYJ7M7X{=mz2K5)7!-DArc=tzw-|rW^xqLbL`}=WdX^EZN&O@dr zF>hiXE}gnj!)Ln5oyCjs&At=3uRepvUwR&Q9-NO4e%6OeqYE(8)AJwr=X=@K!+YMx z#3A75sW&kF;|qBC{BQ8uudiY4Q!n7Y=T2kC4=-cS+t)BWJdBS8kb;7LK(7ft`o)d- nJ|e&V*Ezdzw$E-}U*CTKpX~GDC*QYPZ>78W&CTDpxGVnxRvhV7 diff --git a/assets/voxygen/voxel/npc/tuskram/female/torso_front.vox b/assets/voxygen/voxel/npc/tuskram/female/torso_front.vox deleted file mode 100644 index 0381fd4a35ec8c40b6a2e9cf403f56421f7e4705..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5452 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 C1}EPD diff --git a/assets/voxygen/voxel/npc/wolf/female/ears.vox b/assets/voxygen/voxel/npc/wolf/female/ears.vox deleted file mode 100644 index f75ce276ce688e6c916629735df27bf7add024f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1264 zcmchWeN5G56vxl=yXd`2HH-@g7~FWtdoNApC0>H;5|Ca94KdOyvUEBjxR*QTn6NvW zUe_Xr5izjMLTZefNy@maw~bh1jLkVmuG)$@*IIwlAFcJ@r*r4}qc-!u&i38+e9w8# z^E~HyY1w7CHvp-PxP+X{OR9K32iUS7&{!f(S=2d7sXjd4KkX@`U zhgczp*py9|7zr7Zpjtv3)VIV09VVg6W=xl5Y{3o2>RPX`iwTKpqijIosB`c#WBbWG#DLXAggD;Iieg^L<*D#@UuE{FamH>1akh`dzBXnPF{Z@kQ}lN}V~ zrczauO~bQpj<=N2SuaEn3*#q+`L~49tPK3#JX%Y)(NkMNi#L^yl1v77NBMr~GRt3#GJC0&g^yk(F)@+N$(wMwToih8DBbo1PZxO@ zI=6-C%Q^h8>}B<40he^m*-7EXm%`8A3jG~!E=G%4yjsI=KQ_~IK8eAPom{__&MMje z=zs02s{g(J;^Jc7E*oci;RKZfXGxEyv-E**`;c(O?Z)Hr(4O1N3%h5KXg?`EDa?)C zyTj8N`gXFicrAZ~ot48JJO4VH+tRrCX+Cp-bcXe;{(b)Oaq+nhHs7G99s0(mh<-TB zg_&=7_v;m&3J^KeY&(nNu1)tByT>)_@_ygODaOd-T`@5s>>p^+_g2e59{9n0v N&Hd{Bjz6GY{sL@+GI#(0 diff --git a/assets/voxygen/voxel/npc/wolf/female/foot_bl.vox b/assets/voxygen/voxel/npc/wolf/female/foot_bl.vox deleted file mode 100644 index f547d166be1290e946d5e075bbb3c26e38d0d907..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1456 zcmcgrZA@Eb6n@_KwzP^GCZ&urp%!p0m~DK>hu|y%ZUxz7Ox!v~+_GgjjmJ!BDCh9FJwfZ)KvaOgE9j;yftu%TBO&evf$ zqRNh5Xh#&v8HIL6wd5c<4O>hrXG{q+3{%-)Y6CGP(Ax4s{J;f@!?6*tYE_v})n(#E?Y0_U{`Pv~| zU`Rg;S|D5-qQwy1hMa>~I7Oe-(w4Oemwpf(P$pzQq!y$mq&BRcHY;uy-zHWdIw3kC z`XTxu^FZc<%r2KKJ!Bq8%uu35=7y!+>aSz_c0E@wcYSA7S64HUNbvRuxch@;7P$W8 z?=BZpsa9@mZ18eufqPnZ@W|m>Ci+^qFc{*($Pq4#o2*)hF(c?^&MRJePn9q*Swl40 ziJk|EsYi)rH#1tn>?pWp7<}>y=PJ)@j-Iu_M)^s*UGZ;Rd$+s6DV`Bnr8wHQf zg8et-Y@3I95g!W^#jKnUGB@s`Z^*;q>3o*1Y-M&QSa@1$kAZbdAoffD0Vgr~2r=j4 z;MPr?*^$MY&*YNLk8>2@qTqYMFM`pN;Ou)~Y6e`rDm(~IHG!Y+1J_T0Vc{n`z~N&O z?*khGU{^KR*9cyacw2>sktQDp+WZ_lUdF^rRUGSXVCt=x`RjCqB?WHQmF2VLSwD|= zRI#TSOdbX&d%>l5z{)%iL&b&ctlY+UV+}is-HcS^a%fi(=exGEsjifJpRZx~#d`Lh z*w2J{h-dqc@`sg+T>Wy4^Anv+eex>P)6=;*a}&K@FG~YHR&INOPnQKae0B?GFZ%f7 zYBATZmvBOQ&QF8az5;*#4jhR1c_CTO<;xBH?WcCe&t-7vQx~t^$l*Hk|1tl@*LDB< z{N?54e79F_x)S@tXc=#uQA?D_K(jn`SCo@&wb1H zzggo`<{)>TnPkg{OKiWg#$YhW+aTc-@DCbm;H@w2>boW1*ZuPH6Vh7uvj3H{&fM$V J-|_pL$6phnNTL7$ diff --git a/assets/voxygen/voxel/npc/wolf/female/foot_br.vox b/assets/voxygen/voxel/npc/wolf/female/foot_br.vox deleted file mode 100644 index 8e0c3212f99bfc75a74f702fcb66d699f26a2de1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1456 zcmchWe@NVA9LGP;^S$$~tZ;ei?p%7E+U_*A`6GX%tuwuCr@7@^w%wexu`w^ZzK4iR zITqWE$cD>Ibb-rRh{c#~qS7xg2@zq8VWWbOF(UfY{)p(mcki#GKML0V>wy=a=kq+D zAMej|-)r4>&^sa`O|{{@G%{uvX$eO{k5~?uK~l&=GMv+78m7=E5d4~vWdx}rXr#xE{2LLTBV4jnC!+lhpC8Y#a!!N znMx^Bl#Ywm+!I<+27QCMWW(BMZOkLe>TBoT&UivAiuH90WoUE%?iXtLz8kBuvJ#0z0(XZ5doC>@&-EvMce${* z*o5`LDCI{}wj4XW`~&1(=VxF~qm}_xoFMR;@!VH_+7q^o~v;`SC0+%zTRv zzFEaH@qX+)JC4Q=7tnHT6~SN-cLfk9!5=VI1$Vx&;Hk)m2(8W*Z;!AvlYGTR}D%6Ss~Lw`>`RwKokRgETW+ z7b7lAL;^EG85)9S8E&K{ekDi@AtcMP;G!mmEQ>Mz#2?1^@A17`{GrL*KTq=9_q-qH zdEWQjdpq_X@Qed!tq<)HgGoEk9tt--WI3`7L7LzJ!GVL}&}&LIvclHGhCXFDUWbt$ zQFin}r$?Y15okw5OAeCLutl|Um`b2wn97EzHV{<;tzl|InM#YVU@D|ZjfM265@@YV ztyENLfmp4y#I$e;#A;=jS_`LGr46aENv-Hw@cnGzHsX_sZSGqfwkA7 zr36O0^dis#W$mTba7bJ@ApPHg#UnA9Nm;W%i&arbJ%kIw3E_sNX;UUd7t#-;7f63l z0_hvlKa}KUF39Y1$x#iN$Ko<%R)L1}t3}t)=DuCe)yrMqS=H6mjK|}=JqqsrV3~!^ zKl!`U$)%-MZftDuawx?;EjxJRa4qBgEldrCm>NC8)P%{ZRFs*)9J*fd&~vJU{;3+G z$xie>NK8LUEaxz@70iu*TSmYquYitT@ZkiQC4SB&u%b1C&5=xoPiOJ%g~!+!2iwNL zqjTWE4LRH9W`2*CMezVDlR@Uiob(R68JHB?5-c7jExg?k*VTLiIR^amZp*dxTe zlS5lKadt;GZ$6VpHb2fWfD3}}1-}T!PJ(mqflIUC>Q(WB;B*uC`95&{1Q-_oWCu8M zOyd1ugCFdw2KyVq3leXuaI>e$%fU7u$B&mW{!$gkyBoOl*30~LriUekIjk!yV9T>U z9`C4PZ!?%U3{Lfdi|>Gy`EG^+MeMBH##mzwI|4cEsmSB-u3{#;wzH|OlzX4AVfe** z_MO(@&-DVoU{@Y+}4&)ukaG;4>>(3Nm;mc zzMcGhzEM2JowcJpcJ57X?#ku$&x*Mac5zhh>fiTo)mdBz+pjU!O%6=VGVyVe=jXrW z``@hbDRYQB&rGr9!$r1VSz|C51t$HSpFKcl)~~-`D-}@)Ocp_p<+$v(DV> K+~4v0oX1}ylt`rj diff --git a/assets/voxygen/voxel/npc/wolf/female/foot_fr.vox b/assets/voxygen/voxel/npc/wolf/female/foot_fr.vox deleted file mode 100644 index b2dcc437b0008bac072ec6360fe9d1aa385f7486..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1456 zcmcgrZ%Eu_9REJg@6Nlj!sU7H&ZXC>?M`ExfAUY-I@4=A%`NA$?dGJ7jd|I1hlor$ z7Tb-;hRaOO1(vfAi!s~8lm3B8hzMg08x@3%5z$L~5z)I(pWj9=3fA8Bz=!Yu&-eR% ze$TIC?*UIrL|Pj{dnjbWD$*Vb2OlyG9)rjr9v}`J42ND*RCvOKwn(2c?5}IX78UAR z+oD?8qgvae%1WCt5ldW@J*JdBPPUk`NQ|U$MTjM zxS|xL>C?<5v}Vj82RSL#9ciJT{Y)qmR_0q7C$yC|xpfA)2!qfW^xGIG3|m}G&=zIt zoWH1@RYz>&jsNc6WLJrqKE^a#@9aa5;c$O<^&dc_0JsZ#hSYau}^q~}4%)T5AP zC$d@vxlzHE5y6vJ1oj@m!%0ClZRaIHWossyqge=_&c@pdkD)0cXd4q8ofQn+U~QWl z`4KOQ5+$gb4o@PPv zuwb%Ju=tLkD&LJzNfA1$wxPGF79Ax{L@M(zysH@VUE2|?FT>vFYY~320evU-BN0D@ zvja!*!^%ahewo7jL?@O$c@>$Nnb@4Y2_BCJWqvQJwmpHT%l#NRy9Kisz4&pp1nbvJ zF~Oem(}HVX34Z=gFc|USLb3wOmmBfhPwnVEmxbX^9k_bKg>@ACWB-k>>;L!tD=I4R zZuKO#mrbE==nPy*7gjzJ+&m<>?m->tOpe^mYRS<1t( z2s_VAqUFOyv|m|6AP~T90mM$=4;X8LTVLFr?-t+J{o?!yVV--*|B9J4_p1Bbf1i5! E3$gr2kN^Mx diff --git a/assets/voxygen/voxel/npc/wolf/female/head_lower.vox b/assets/voxygen/voxel/npc/wolf/female/head_lower.vox deleted file mode 100644 index 0745d1e414664c9be5a87ec1ebe9b15e4a0ef036..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2728 zcmcgtTa1-g6<&Lk7X^JhGA>I<47(z&zrol!{3~3r;e8dN1eEa-1=z}J;Z=U4K zx_|5P@5$_V@R7dbBC>V;@Ba%!yUwgoea^#pmqp)V&FjV2vudiA>&1o^0&LS+eFPm6<35{ek{iVziY# za;YUpA|iDo64B!9E#_q{vv?z=E|QxFg^RTncc~~tignP~j;sk$o0ckd-ppFuuhl4L zsw_4_E?4FlVdL&Wp4#TQ_LOQ>&PC~( z+ljh+sx2n=D!u7XB~C=AkGH12IpWw=D-Z9j<%;LOZ4DCd_#d`_i^yOIIQ>-i|7 z&AUc8k<2^lwB0*SBtnySEHO?b>Yl8VvUQ?sHyZ1ccGZnJ5)$b6lmHs?wMJ$eS~JWzJIikUKGMne$oc&6o*$ zXeZN-S|q{QGWoMpSM6rbl8TQr<}$0X2X!x!a8vH!-IycyEIS1HO7FHL*YW!BBp%puH=cNWEk+M)!Q|m#OdfjzlP9`ZHQB-Rp5oG$^_1p65}GcK>UvQGco?G;N15FQ)dNN-lRPw zIK4^mvxfxNo)(PIes+i8=x+KC2sR7|cC8j1*eEzj|F#u#uy@k}9NN~8<4-Na=$BXF z_?``z`sP>gmos~@WMMDXEt`)mpYO+0J62)eX2ICwf>X~3E`CR_a^4&a4=%#am3LzQ z#x>Y6*o(a@=HkeGi!rh5E^J!26c66J1|wfuk7u5K7^B_C@Z!NI@%ziK;>s_MW8#&a znELV8Fm2j2+&1G@^!4>&>A(W4yz^7|?6LtIeergjdvyW+aAgqJ-d=)N*mL5H;H_T@ z{`6bHp}qY$Ikp^^Uf+Pf{&73@zcd|3e$seS^nFj^>tg*>>injg9&8{9iDU zDTl>&Mr501Cc0qdEW~2WHt~qPfJul5V+wOOn9utvGYew$nB6YvWmXXo*A1McZeYCQ#Xb(O#I`U5DhTlXIQI#f{H14^R zl5{GucJkcRv}CzcC2w4F6PnwVT2rOmRGQkAXyYljy`>j|rbdi;lX+*{E7we%5oalP z>cV5WU8@qG+mf^+nmV3?aZ@8kBfpq3j_@uzwMJ8?XvB$0M*nDwc_%7wB(zrVd6yNdbcbRjC%lsYO)j9+RJ^r4mfgSFPw)S3ODmb%o98f(^}W<8uaX8LIH ziPY9odvZECD@pYCwu(^~_rV&oU&i>Et20JarO!&dvTj07>ZfL==8{CVr_vFpl zzpjyY8CPT7HTw&7@gbH2O!FoDQntd z4lUNN=3R??%DpnjI%_+zXTf?nXQSe*R7D^8E5@&=r~227a6YI(OW!#MRnbyrn%s&1 zNh{b7YBA>AVt-nU+u~eQ<;9PAyIjH}Y!qDq}yWC&*I~Uol4ItbL1`IUg0d zs$lJ?ts+M_^D^cTtc^!k`L3>Ar9LCKk=v-xsL#mj!DN6GtA!#PJ@MPjoS9 zcq*oUZ4iS`FT~J^m5}uT+1&>@`EkhQshG4$Fs&`P<*?w>uL-OIJf-{tY5td_kD3CM!&oUd!Kv&W4(v* z-2TV#hbu4R>MxJs+)LYV>8HEU-`|g$C*Op@!9gqym=stGLM`ChVz%)|{s_(@)U6#E@k%#*g^H7{C2Ib@78HbKgA4ljnWT zea=1i-uK>~y$2i#5$SC4?@^MEvqZZ60pCLzp`lV9P?(AX2Lt{=V&U zbMFf2Sz+~>YOgTu6BhRg>nDVO>QgT4GYp!DN^Nj>vY+>-kexl(+oEtvM_bZoJ{USl~VlU}WUL_|dhb?)V zaX1`Qxt-K)dxEE{-He|rX6}-cA67lA->BrG_Ds$Q*S{2g`c@bTy0{RlVfjiczy8=w zjh@98v$67_aO;q8+2z9RcGF)r z#0$IUk=O|Nk$e^=@BYKncD*|#CA?M0vr}|@utfLOHN0LgcLXF`!S7hsgxjCrUEgiJ ZU-ui=CrBpl#s4*yskv9(-}(F0%b&72EkXbQ diff --git a/assets/voxygen/voxel/npc/wolf/female/leg_bl.vox b/assets/voxygen/voxel/npc/wolf/female/leg_bl.vox deleted file mode 100644 index 3157b6bb88d7eae1c0a3cdb20d3d7cbe7b3df22a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1512 zcmcgrTTEP46y4|Cdq*N_s0>h`!pOtUfN9G^9)ficXgeUSl#1njDO2@Tm8_a_RpKF?7R2b zYn{FJ+-cvl-!mp6Ep>t246<`RgLvRC>^~3;e59PJNEe~CE2IpUtu4zI zF+)mOwlbBiEFID!AyHy0LOW3t2Hy$gGHmTK83}4=i#iTmR!A%>q)j8Fl_rl-v)AOi zHmRvYif77TWUiQNYKdj?E^Q0@Ih8GjX$v`=J}inntwW-zs}(g>NDOKkDy$9XE|ZZO zPOj-gF)G#^F8gURtT>afS4`?!tecKci*?Q-20fZ#MIEJCW1n(32G6t#D@Tug+GL$~ zh^7WTDeg-Z{~vuFC??zN+7 zx;UGQo?Q0cozK;YdFSVns;VkPqfy)*5$w9Shthc#Id`18x9|; zLA0+K@xcJ%BZmO*o>Rr}O;ke~ElAIUkjY0Oi|I&d5oFkcO~ZmG zuL_cS1P{jqsm#+a3(8xP(PXC}csdnt&Oe5RsGxOJaAZc%f0NwSEaY_Op&(j>ia9^B zBW~mkWua&)7bQ!Zk9DNM!{!$1#8CzLFOmh1;a;K?-SJf1f5laz6Qa0)?3T7 z(A}7afmScZj+G+%VkO49>XCTkCHykgjpF=t)RyL=`B^WHwO692Nf0|Em^dL=cw11B zlZ8N00XizSAkt8c_M&ujmuF*WXCdY~x1zDO1bcQ=BltocP8{EdXzxLs?LUI=mo8!X zi!sby=s@D*SCE{XjE$)q;PH4+;>$zDmM8FZsSm?vH(};d9)4IZ!rF~uT;QE^Q-bSX z3V!-lFwpJA`B)hiuhiq$AKMT)mx7^B+_-i#6Klx*hyV4jYX5itWo2b}r*Z;YOD0h> zcm|oVOe}pMSUo7X?DfLu^Pwxh56|zKg~SGs7D>bW_}$;|R2ILToE*GXIEw8xBRG2Q zb!_a+z>QA}F(1st2zT}G{X2b*)`7O`h;#w{4V&3T7i@D@Vlif$c%^?}mk<%g7$y~jj1kdC`w-E$r{}c#P_Xu`1JC)L_j%vv z{ddl3-@VT>CL%3$fn7Xg)e>n71REc63|Ijl&RbJIF3T7^Xsh6;&c zg~T-ZY>>CYREL#mg_PEW3Ms`H+G3HXUnw)B#0Y6}nw+Lq8&+5|Rx?&Jr)Dm#=~whI zpJ|-Gd~10Y zx*NS1Y%Rpt(NaWSs>E1VJrZxejGw2vQJj~K+R|J!KU;{S?Um?h5=0LQCXNdh&Iu}V zvJfcBM@PjL^fgqYy(k^s<=GhCQGmJ5t!S(*!S3g)5qz-@$B*qrr1t>M3>?OHOP8_y z`55LdbRhB3t4K~x#>UhQ@OV5Z@p)0PchyHO_;gt#rMlaSi4z_3#>UeCAjg0 z;Ky$SgWZKVA1%Y;)q4E$LmT?ereOGEH?H5x#2Rw{G5`9Pwg3D4Wo2b}r*Z;YOD0h> zbQ+n_Of0=GSUn)PQdkI|&xfwOe!Q@A77`sqT3;IG$M3$wlUe+Ba&qu`K@8h#Mseiq z8`#*Hft#NcU_O|MQSR#B`*-4;T>IN@psx!U7@tP;gE_oC`!(MCY6VaA4q^N02{d0? xK-;wy`2Bv|5kQg%{03u1aQm~n{oUsGbw59UK{(gF&j0c`ntSQ~=I^7IKL8SoPJ{pe diff --git a/assets/voxygen/voxel/npc/wolf/female/leg_fl.vox b/assets/voxygen/voxel/npc/wolf/female/leg_fl.vox deleted file mode 100644 index 388e5bea2f9849e0080a4cc32fbb4fb1e355f02a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1652 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 diff --git a/assets/voxygen/voxel/npc/wolf/female/torso_back.vox b/assets/voxygen/voxel/npc/wolf/female/torso_back.vox deleted file mode 100644 index 18748caa4eab35624355cd17895e759e0ef9dbaa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3168 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 diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index 76eb8cd58d..b088cbda03 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -28,27 +28,27 @@ (Crocodile, Female): ( upper: ( offset: (-4.0, -8.5, -3.0), - central: ("npc.crocodile.female.head_upper"), + central: ("npc.crocodile.male.head_upper"), ), lower: ( offset: (-4.0, -4.0, -3.0), - central: ("npc.crocodile.female.head_lower"), + central: ("npc.crocodile.male.head_lower"), ), jaw: ( offset: (-4.0, 0.0, -1.5), - central: ("npc.crocodile.female.jaw"), + central: ("npc.crocodile.male.jaw"), ), chest: ( offset: (-5.0, -7.5, -3.0), - central: ("npc.crocodile.female.chest"), + central: ("npc.crocodile.male.chest"), ), tail_rear: ( offset: (-1.0, -9.0, -1.5), - central: ("npc.crocodile.female.tail_rear"), + central: ("npc.crocodile.male.tail_rear"), ), tail_front: ( offset: (-3.0, -13.0, -2.5), - central: ("npc.crocodile.female.tail_front"), + central: ("npc.crocodile.male.tail_front"), ), ), (Alligator, Male): ( @@ -80,27 +80,27 @@ (Alligator, Female): ( upper: ( offset: (-4.0, -0.0, -2.5), - central: ("npc.alligator.female.head_upper"), + central: ("npc.alligator.male.head_upper"), ), lower: ( offset: (-4.0, -4.0, -3.5), - central: ("npc.alligator.female.head_lower"), + central: ("npc.alligator.male.head_lower"), ), jaw: ( offset: (-4.0, 0.0, -2.5), - central: ("npc.alligator.female.jaw"), + central: ("npc.alligator.male.jaw"), ), chest: ( offset: (-6.0, -7.5, -3.5), - central: ("npc.alligator.female.chest"), + central: ("npc.alligator.male.chest"), ), tail_rear: ( offset: (-2.0, -9.0, -1.5), - central: ("npc.alligator.female.tail_rear"), + central: ("npc.alligator.male.tail_rear"), ), tail_front: ( offset: (-4.0, -13.0, -2.5), - central: ("npc.alligator.female.tail_front"), + central: ("npc.alligator.male.tail_front"), ), ), (Salamander, Male): ( @@ -132,27 +132,27 @@ (Salamander, Female): ( upper: ( offset: (-6.5, -6.0, -2.0), - central: ("npc.salamander.female.head_upper"), + central: ("npc.salamander.male.head_upper"), ), lower: ( offset: (-4.5, -1.5, -3.0), - central: ("npc.salamander.female.head_lower"), + central: ("npc.salamander.male.head_lower"), ), jaw: ( offset: (-6.5, 0.0, -3.0), - central: ("npc.salamander.female.jaw"), + central: ("npc.salamander.male.jaw"), ), chest: ( offset: (-6.5, -8.5, -3.0), - central: ("npc.salamander.female.chest"), + central: ("npc.salamander.male.chest"), ), tail_rear: ( offset: (-3.0, -13.0, -3.0), - central: ("npc.salamander.female.tail_rear"), + central: ("npc.salamander.male.tail_rear"), ), tail_front: ( offset: (-4.5, -9.0, -3.0), - central: ("npc.salamander.female.tail_front"), + central: ("npc.salamander.male.tail_front"), ), ), (Monitor, Male): ( @@ -185,27 +185,27 @@ (Monitor, Female): ( upper: ( offset: (-3.0, -5.5, -3.0), - central: ("npc.monitor.female.head_upper"), + central: ("npc.monitor.male.head_upper"), ), lower: ( offset: (-3.0, -3.5, -3.5), - central: ("npc.monitor.female.head_lower"), + central: ("npc.monitor.male.head_lower"), ), jaw: ( offset: (-3.0, 0.0, -1.0), - central: ("npc.monitor.female.jaw"), + central: ("npc.monitor.male.jaw"), ), chest: ( offset: (-4.0, -7.0, -3.0), - central: ("npc.monitor.female.chest"), + central: ("npc.monitor.male.chest"), ), tail_rear: ( offset: (-1.0, -11.0, -2.0), - central: ("npc.monitor.female.tail_rear"), + central: ("npc.monitor.male.tail_rear"), ), tail_front: ( offset: (-2.0, -13.0, -2.0), - central: ("npc.monitor.female.tail_front"), + central: ("npc.monitor.male.tail_front"), ), ), (Asp, Male): ( @@ -237,27 +237,27 @@ (Asp, Female): ( upper: ( offset: (-5.0, -5.0, -5.0), - central: ("npc.asp.female.head_upper"), + central: ("npc.asp.male.head_upper"), ), lower: ( offset: (-6.0, -3.0, -7.5), - central: ("npc.asp.female.head_lower"), + central: ("npc.asp.male.head_lower"), ), jaw: ( offset: (-2.0, 0.0, -1.0), - central: ("npc.asp.female.jaw"), + central: ("npc.asp.male.jaw"), ), chest: ( offset: (-5.0, -7.5, -5.0), - central: ("npc.asp.female.chest"), + central: ("npc.asp.male.chest"), ), tail_rear: ( offset: (-1.0, -14.0, -2.0), - central: ("npc.asp.female.tail_rear"), + central: ("npc.asp.male.tail_rear"), ), tail_front: ( offset: (-3.0, -14.0, -4.0), - central: ("npc.asp.female.tail_front"), + central: ("npc.asp.male.tail_front"), ), ), (Tortoise, Male): ( @@ -289,19 +289,19 @@ (Tortoise, Female): ( upper: ( offset: (-2.5, -4.0, -3.0), - central: ("npc.tortoise.female.head_upper"), + central: ("npc.tortoise.male.head_upper"), ), lower: ( offset: (-2.5, -3.5, -2.0), - central: ("npc.tortoise.female.head_lower"), + central: ("npc.tortoise.male.head_lower"), ), jaw: ( offset: (-1.5, 0.0, -1.0), - central: ("npc.tortoise.female.jaw"), + central: ("npc.tortoise.male.jaw"), ), chest: ( offset: (-10.5, -12.5, -7.0), - central: ("npc.tortoise.female.chest"), + central: ("npc.tortoise.male.chest"), ), tail_rear: ( offset: (0.0, 0.0, 0.0), @@ -309,7 +309,7 @@ ), tail_front: ( offset: (-1.5, -7.0, -1.5), - central: ("npc.tortoise.female.tail_front"), + central: ("npc.tortoise.male.tail_front"), ), ), (Rocksnapper, Male): ( @@ -341,27 +341,27 @@ (Rocksnapper, Female): ( upper: ( offset: (-3.5, -4.5, -3.0), - central: ("npc.rocksnapper.female.head_upper"), + central: ("npc.rocksnapper.male.head_upper"), ), lower: ( offset: (-3.5, -5.0, -3.5), - central: ("npc.rocksnapper.female.head_lower"), + central: ("npc.rocksnapper.male.head_lower"), ), jaw: ( offset: (-6.5, 0.0, -2.5), - central: ("npc.rocksnapper.female.jaw"), + central: ("npc.rocksnapper.male.jaw"), ), chest: ( offset: (-15.5, -18.5, -13.5), - central: ("npc.rocksnapper.female.chest"), + central: ("npc.rocksnapper.male.chest"), ), tail_rear: ( offset: (-1.5, -11.0, -2.5), - central: ("npc.rocksnapper.female.tail_rear"), + central: ("npc.rocksnapper.male.tail_rear"), ), tail_front: ( offset: (-2.5, -15.0, -4.5), - central: ("npc.rocksnapper.female.tail_front"), + central: ("npc.rocksnapper.male.tail_front"), ), ), (Pangolin, Male): ( @@ -393,7 +393,7 @@ (Pangolin, Female): ( upper: ( offset: (-2.5, 0.0, -3.0), - central: ("npc.pangolin.female.head_upper"), + central: ("npc.pangolin.male.head_upper"), ), lower: ( offset: (0.0, 0.0, 0.0), @@ -405,15 +405,15 @@ ), chest: ( offset: (-6.5, -8.0, -4.5), - central: ("npc.pangolin.female.chest"), + central: ("npc.pangolin.male.chest"), ), tail_rear: ( offset: (-3.5, -16.0, -1.5), - central: ("npc.pangolin.female.tail_rear"), + central: ("npc.pangolin.male.tail_rear"), ), tail_front: ( offset: (-4.5, -8.0, -4.0), - central: ("npc.pangolin.female.tail_front"), + central: ("npc.pangolin.male.tail_front"), ), ), }) diff --git a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron index 9b0f104843..c02fc81839 100644 --- a/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_lateral_manifest.ron @@ -20,19 +20,19 @@ (Crocodile, Female): ( front_left: ( offset: (-7.0, -0.0, -4.0), - lateral: ("npc.crocodile.female.foot_fl"), + lateral: ("npc.crocodile.male.foot_fl"), ), front_right: ( offset: (0.0, -0.0, -4.0), - lateral: ("npc.crocodile.female.foot_fr"), + lateral: ("npc.crocodile.male.foot_fr"), ), back_left: ( offset: (-8.0, -0.0, -4.0), - lateral: ("npc.crocodile.female.foot_bl"), + lateral: ("npc.crocodile.male.foot_bl"), ), back_right: ( offset: (0.0, -0.0, -4.0), - lateral: ("npc.crocodile.female.foot_br"), + lateral: ("npc.crocodile.male.foot_br"), ), ), (Alligator, Male): ( @@ -56,19 +56,19 @@ (Alligator, Female): ( front_left: ( offset: (-7.0, 0.0, -4.0), - lateral: ("npc.alligator.female.foot_fl"), + lateral: ("npc.alligator.male.foot_fl"), ), front_right: ( offset: (0.0, 0.0, -4.0), - lateral: ("npc.alligator.female.foot_fr"), + lateral: ("npc.alligator.male.foot_fr"), ), back_left: ( offset: (-8.0, 0.0, -4.0), - lateral: ("npc.alligator.female.foot_bl"), + lateral: ("npc.alligator.male.foot_bl"), ), back_right: ( offset: (0.0, 0.0, -4.0), - lateral: ("npc.alligator.female.foot_br"), + lateral: ("npc.alligator.male.foot_br"), ), ), (Salamander, Male): ( @@ -92,19 +92,19 @@ (Salamander, Female): ( front_left: ( offset: (-6.0, 0.0, -3.0), - lateral: ("npc.salamander.female.foot_fl"), + lateral: ("npc.salamander.male.foot_fl"), ), front_right: ( offset: (0.0, 0.0, -3.0), - lateral: ("npc.salamander.female.foot_fr"), + lateral: ("npc.salamander.male.foot_fr"), ), back_left: ( offset: (-7.0, 0.0, -3.0), - lateral: ("npc.salamander.female.foot_bl"), + lateral: ("npc.salamander.male.foot_bl"), ), back_right: ( offset: (0.0, 0.0, -3.0), - lateral: ("npc.salamander.female.foot_br"), + lateral: ("npc.salamander.male.foot_br"), ), ), (Monitor, Male): ( @@ -128,19 +128,19 @@ (Monitor, Female): ( front_left: ( offset: (-8.0, 0.0, -5.0), - lateral: ("npc.monitor.female.foot_fl"), + lateral: ("npc.monitor.male.foot_fl"), ), front_right: ( offset: (0.0, 0.0, -5.0), - lateral: ("npc.monitor.female.foot_fr"), + lateral: ("npc.monitor.male.foot_fr"), ), back_left: ( offset: (-7.0, 0.0, -5.0), - lateral: ("npc.monitor.female.foot_bl"), + lateral: ("npc.monitor.male.foot_bl"), ), back_right: ( offset: (0.0, 0.0, -5.0), - lateral: ("npc.monitor.female.foot_br"), + lateral: ("npc.monitor.male.foot_br"), ), ), (Asp, Male): ( @@ -164,19 +164,19 @@ (Asp, Female): ( front_left: ( offset: (-11.0, 0.0, -7.0), - lateral: ("npc.asp.female.foot_fl"), + lateral: ("npc.asp.male.foot_fl"), ), front_right: ( offset: (0.0, 0.0, -7.0), - lateral: ("npc.asp.female.foot_fr"), + lateral: ("npc.asp.male.foot_fr"), ), back_left: ( offset: (-9.0, 0.0, -7.0), - lateral: ("npc.asp.female.foot_bl"), + lateral: ("npc.asp.male.foot_bl"), ), back_right: ( offset: (0.0, 0.0, -7.0), - lateral: ("npc.asp.female.foot_br"), + lateral: ("npc.asp.male.foot_br"), ), ), (Tortoise, Male): ( @@ -200,19 +200,19 @@ (Tortoise, Female): ( front_left: ( offset: (-7.0, 0.0, -8.0), - lateral: ("npc.tortoise.female.foot_fl"), + lateral: ("npc.tortoise.male.foot_fl"), ), front_right: ( offset: (0.0, 0.0, -8.0), - lateral: ("npc.tortoise.female.foot_fr"), + lateral: ("npc.tortoise.male.foot_fr"), ), back_left: ( offset: (-7.0, 0.0, -8.0), - lateral: ("npc.tortoise.female.foot_bl"), + lateral: ("npc.tortoise.male.foot_bl"), ), back_right: ( offset: (0.0, 0.0, -8.0), - lateral: ("npc.tortoise.female.foot_br"), + lateral: ("npc.tortoise.male.foot_br"), ), ), (Rocksnapper, Male): ( @@ -236,19 +236,19 @@ (Rocksnapper, Female): ( front_left: ( offset: (-12.0, 0.0, -10.0), - lateral: ("npc.rocksnapper.female.foot_fl"), + lateral: ("npc.rocksnapper.male.foot_fl"), ), front_right: ( offset: (0.0, 0.0, -10.0), - lateral: ("npc.rocksnapper.female.foot_fr"), + lateral: ("npc.rocksnapper.male.foot_fr"), ), back_left: ( offset: (-11.0, -6.0, -9.0),//special case - lateral: ("npc.rocksnapper.female.foot_bl"), + lateral: ("npc.rocksnapper.male.foot_bl"), ), back_right: ( offset: (0.0, -6.0, -9.0), - lateral: ("npc.rocksnapper.female.foot_br"), + lateral: ("npc.rocksnapper.male.foot_br"), ), ), (Pangolin, Male): ( @@ -272,19 +272,19 @@ (Pangolin, Female): ( front_left: ( offset: (-1.5, 0.0, -6.0), - lateral: ("npc.pangolin.female.foot_fl"), + lateral: ("npc.pangolin.male.foot_fl"), ), front_right: ( offset: (-1.5, 0.0, -6.0), - lateral: ("npc.pangolin.female.foot_fr"), + lateral: ("npc.pangolin.male.foot_fr"), ), back_left: ( offset: (-1.5, 0.0, -6.0),//special case - lateral: ("npc.pangolin.female.foot_bl"), + lateral: ("npc.pangolin.male.foot_bl"), ), back_right: ( offset: (-1.5, 0.0, -6.0), - lateral: ("npc.pangolin.female.foot_br"), + lateral: ("npc.pangolin.male.foot_br"), ), ), }) diff --git a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron index 9da1996d96..3f3e4b3084 100644 --- a/assets/voxygen/voxel/quadruped_medium_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_central_manifest.ron @@ -32,31 +32,31 @@ (Grolgar, Female): ( upper: ( offset: (-7.0, 0.0, -9.0), - central: ("npc.grolgar.female.head_upper"), + central: ("npc.grolgar.male.head_upper"), ), lower: ( offset: (-6.0, -2.0, -8.0), - central: ("npc.grolgar.female.head_lower"), + central: ("npc.grolgar.male.head_lower"), ), jaw: ( offset: (-2.0, 0.0, -1.5), - central: ("npc.grolgar.female.jaw"), + central: ("npc.grolgar.male.jaw"), ), torso_front: ( offset: (-7.0, -11.0, -8.0), - central: ("npc.grolgar.female.torso_front"), + central: ("npc.grolgar.male.torso_front"), ), torso_back: ( offset: (-5.0, -12.0, -5.5), - central: ("npc.grolgar.female.torso_back"), + central: ("npc.grolgar.male.torso_back"), ), ears: ( offset: (-4.0, -1.0, 0.0), - central: ("npc.grolgar.female.ears"), + central: ("npc.grolgar.male.ears"), ), tail: ( offset: (-2.0, -11.0, -10.0), - central: ("npc.grolgar.female.tail"), + central: ("npc.grolgar.male.tail"), ), ), (Saber, Male): ( @@ -92,31 +92,31 @@ (Saber, Female): ( upper: ( offset: (-5.5, 0.0, -6.5), - central: ("npc.saber.female.head_upper"), + central: ("npc.saber.male.head_upper"), ), lower: ( offset: (-4.0, -5.5, -4.0), - central: ("npc.saber.female.head_lower"), + central: ("npc.saber.male.head_lower"), ), jaw: ( offset: (-2.5, 0.0, -1.5), - central: ("npc.saber.female.jaw"), + central: ("npc.saber.male.jaw"), ), torso_front: ( offset: (-6.0, -14.0, -6.0), - central: ("npc.saber.female.torso_front"), + central: ("npc.saber.male.torso_front"), ), torso_back: ( offset: (-5.0, -12.0, -5.0), - central: ("npc.saber.female.torso_back"), + central: ("npc.saber.male.torso_back"), ), ears: ( offset: (-5.5, -1.0, 0.0), - central: ("npc.saber.female.ears"), + central: ("npc.saber.male.ears"), ), tail: ( offset: (-2.0, -8.0, -5.0), - central: ("npc.saber.female.tail"), + central: ("npc.saber.male.tail"), ), ), (Tuskram, Male): ( @@ -152,23 +152,23 @@ (Tuskram, Female): ( upper: ( offset: (-10.0, -6.0, -6.5), - central: ("npc.tuskram.female.head_upper"), + central: ("npc.tuskram.male.head_upper"), ), lower: ( offset: (-4.0, -4.0, -3.5), - central: ("npc.tuskram.female.head_lower"), + central: ("npc.tuskram.male.head_lower"), ), jaw: ( offset: (-2.0, 0.0, -1.5), - central: ("npc.tuskram.female.jaw"), + central: ("npc.tuskram.male.jaw"), ), torso_front: ( offset: (-6.0, -15.0, -6.5), - central: ("npc.tuskram.female.torso_front"), + central: ("npc.tuskram.male.torso_front"), ), torso_back: ( offset: (-4.0, -10.0, -4.5), - central: ("npc.tuskram.female.torso_back"), + central: ("npc.tuskram.male.torso_back"), ), ears: ( offset: (-0.5, -0.5, -0.0), @@ -176,7 +176,7 @@ ), tail: ( offset: (-3.0, -7.0, -8.0), - central: ("npc.tuskram.female.tail"), + central: ("npc.tuskram.male.tail"), ), ), (Lion, Male): ( @@ -212,31 +212,31 @@ (Lion, Female): ( upper: ( offset: (-4.5, 0.0, -4.5), - central: ("npc.lion.female.head_upper"), + central: ("npc.lion.male.head_upper"), ), lower: ( offset: (-7.5, -5.5, -8.5), - central: ("npc.lion.female.head_lower"), + central: ("npc.lion.male.head_lower"), ), jaw: ( offset: (-2.5, 0.0, -1.0), - central: ("npc.lion.female.jaw"), + central: ("npc.lion.male.jaw"), ), torso_front: ( offset: (-5.5, -13.0, -6.0), - central: ("npc.lion.female.torso_front"), + central: ("npc.lion.male.torso_front"), ), torso_back: ( offset: (-5.5, -12.0, -5.0), - central: ("npc.lion.female.torso_back"), + central: ("npc.lion.male.torso_back"), ), ears: ( offset: (-4.5, -1.0, 0.0), - central: ("npc.lion.female.ears"), + central: ("npc.lion.male.ears"), ), tail: ( offset: (-1.5, -15.0, -10.0), - central: ("npc.lion.female.tail"), + central: ("npc.lion.male.tail"), ), ), (Tarasque, Male): ( @@ -272,31 +272,31 @@ (Tarasque, Female): ( upper: ( offset: (-10.0, 0.0, -10.0), - central: ("npc.tarasque.female.head_upper"), + central: ("npc.tarasque.male.head_upper"), ), lower: ( offset: (-5.0, -3.0, -4.5), - central: ("npc.tarasque.female.head_lower"), + central: ("npc.tarasque.male.head_lower"), ), jaw: ( offset: (-5.0, 0.0, -0.0), - central: ("npc.tarasque.female.jaw"), + central: ("npc.tarasque.male.jaw"), ), torso_front: ( offset: (-10.0, -17.0, -9.0), - central: ("npc.tarasque.female.torso_front"), + central: ("npc.tarasque.male.torso_front"), ), torso_back: ( offset: (-6.0, -13.0, -6.0), - central: ("npc.tarasque.female.torso_back"), + central: ("npc.tarasque.male.torso_back"), ), ears: ( offset: (-6.0, -1.0, 0.0), - central: ("npc.tarasque.female.ears"), + central: ("npc.tarasque.male.ears"), ), tail: ( offset: (-5.0, -19.0, -10.0), - central: ("npc.tarasque.female.tail"), + central: ("npc.tarasque.male.tail"), ), ), (Tiger, Male): ( @@ -332,31 +332,31 @@ (Tiger, Female): ( upper: ( offset: (-5.5, 0.0, -5.0), - central: ("npc.tiger.female.head_upper"), + central: ("npc.tiger.male.head_upper"), ), lower: ( offset: (-4.5, -2.0, -5.0), - central: ("npc.tiger.female.head_lower"), + central: ("npc.tiger.male.head_lower"), ), jaw: ( offset: (-2.5, 0.0, -1.0), - central: ("npc.tiger.female.jaw"), + central: ("npc.tiger.male.jaw"), ), torso_front: ( offset: (-5.5, -13.0, -6.5), - central: ("npc.tiger.female.torso_front"), + central: ("npc.tiger.male.torso_front"), ), torso_back: ( offset: (-5.5, -13.0, -5.0), - central: ("npc.tiger.female.torso_back"), + central: ("npc.tiger.male.torso_back"), ), ears: ( offset: (-4.5, -1.0, 0.0), - central: ("npc.tiger.female.ears"), + central: ("npc.tiger.male.ears"), ), tail: ( offset: (-1.5, -12.0, -1.0), - central: ("npc.tiger.female.tail"), + central: ("npc.tiger.male.tail"), ), ), (Wolf, Male): ( @@ -392,31 +392,31 @@ (Wolf, Female): ( upper: ( offset: (-5.0, 0.0, -3.5), - central: ("npc.wolf.female.head_upper"), + central: ("npc.wolf.male.head_upper"), ), lower: ( offset: (-5.0, -4.5, -5.0), - central: ("npc.wolf.female.head_lower"), + central: ("npc.wolf.male.head_lower"), ), jaw: ( offset: (-2.0, 0.0, -1.0), - central: ("npc.wolf.female.jaw"), + central: ("npc.wolf.male.jaw"), ), torso_front: ( offset: (-5.0, -13.0, -5.0), - central: ("npc.wolf.female.torso_front"), + central: ("npc.wolf.male.torso_front"), ), torso_back: ( offset: (-4.0, -11.0, -5.0), - central: ("npc.wolf.female.torso_back"), + central: ("npc.wolf.male.torso_back"), ), ears: ( offset: (-5.0, -1.0, 0.0), - central: ("npc.wolf.female.ears"), + central: ("npc.wolf.male.ears"), ), tail: ( offset: (-2.0, -13.0, -3.5), - central: ("npc.wolf.female.tail"), + central: ("npc.wolf.male.tail"), ), ), (Frostfang, Male): ( @@ -452,31 +452,31 @@ (Frostfang, Female): ( upper: ( offset: (-4.0, 0.0, -4.5), - central: ("npc.frostfang.female.head_upper"), + central: ("npc.frostfang.male.head_upper"), ), lower: ( offset: (-3.0, -2.0, -4.0), - central: ("npc.frostfang.female.head_lower"), + central: ("npc.frostfang.male.head_lower"), ), jaw: ( offset: (-2.0, 0.0, -3.5), - central: ("npc.frostfang.female.jaw"), + central: ("npc.frostfang.male.jaw"), ), torso_front: ( offset: (-5.0, -11.0, -8.5), - central: ("npc.frostfang.female.torso_front"), + central: ("npc.frostfang.male.torso_front"), ), torso_back: ( offset: (-3.0, -8.0, -4.5), - central: ("npc.frostfang.female.torso_back"), + central: ("npc.frostfang.male.torso_back"), ), ears: ( offset: (-4.0, -1.0, 0.0), - central: ("npc.frostfang.female.ears"), + central: ("npc.frostfang.male.ears"), ), tail: ( offset: (-2.0, -13.0, -5.0), - central: ("npc.frostfang.female.tail"), + central: ("npc.frostfang.male.tail"), ), ), (Mouflon, Male): ( @@ -512,23 +512,23 @@ (Mouflon, Female): ( upper: ( offset: (-7.0, 0.0, -4.5), - central: ("npc.mouflon.female.head_upper"), + central: ("npc.mouflon.male.head_upper"), ), lower: ( offset: (-4.0, -4.0, -4.5), - central: ("npc.mouflon.female.head_lower"), + central: ("npc.mouflon.male.head_lower"), ), jaw: ( offset: (-2.0, 0.0, -1.0), - central: ("npc.mouflon.female.jaw"), + central: ("npc.mouflon.male.jaw"), ), torso_front: ( offset: (-4.0, -9.0, -4.5), - central: ("npc.mouflon.female.torso_front"), + central: ("npc.mouflon.male.torso_front"), ), torso_back: ( offset: (-4.0, -11.0, -5.0), - central: ("npc.mouflon.female.torso_back"), + central: ("npc.mouflon.male.torso_back"), ), ears: ( offset: (0.0, 0.0, 0.0), @@ -536,7 +536,7 @@ ), tail: ( offset: (-2.0, -1.5, -7.0), - central: ("npc.mouflon.female.tail"), + central: ("npc.mouflon.male.tail"), ), ), }) diff --git a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron index 052be53942..8184cef7c4 100644 --- a/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_medium_lateral_manifest.ron @@ -36,35 +36,35 @@ (Grolgar, Female): ( leg_fl: ( offset: (-2.5, -12.0, -7.5), - lateral: ("npc.grolgar.female.leg_fl"), + lateral: ("npc.grolgar.male.leg_fl"), ), leg_fr: ( offset: (-2.5, -12.0, -7.5), - lateral: ("npc.grolgar.female.leg_fr"), + lateral: ("npc.grolgar.male.leg_fr"), ), leg_bl: ( offset: (-2.0, -3.5, -5.0), - lateral: ("npc.grolgar.female.leg_bl"), + lateral: ("npc.grolgar.male.leg_bl"), ), leg_br: ( offset: (-2.0, -3.5, -5.0), - lateral: ("npc.grolgar.female.leg_br"), + lateral: ("npc.grolgar.male.leg_br"), ), foot_fl: ( offset: (-2.5, -3.0, -6.0), - lateral: ("npc.grolgar.female.foot_fl"), + lateral: ("npc.grolgar.male.foot_fl"), ), foot_fr: ( offset: (-2.5, -3.0, -6.0), - lateral: ("npc.grolgar.female.foot_fr"), + lateral: ("npc.grolgar.male.foot_fr"), ), foot_bl: ( offset: (-2.5, -2.0, -4.0), - lateral: ("npc.grolgar.female.foot_bl"), + lateral: ("npc.grolgar.male.foot_bl"), ), foot_br: ( offset: (-2.5, -2.0, -4.0), - lateral: ("npc.grolgar.female.foot_br"), + lateral: ("npc.grolgar.male.foot_br"), ), ), (Saber, Male): ( @@ -104,35 +104,35 @@ (Saber, Female): ( leg_fl: ( offset: (-2.0, -6.0, -4.5), - lateral: ("npc.saber.female.leg_fl"), + lateral: ("npc.saber.male.leg_fl"), ), leg_fr: ( offset: (-2.0, -6.0, -4.5), - lateral: ("npc.saber.female.leg_fr"), + lateral: ("npc.saber.male.leg_fr"), ), leg_bl: ( offset: (-2.0, -3.0, -4.0), - lateral: ("npc.saber.female.leg_bl"), + lateral: ("npc.saber.male.leg_bl"), ), leg_br: ( offset: (-2.0, -3.0, -4.0), - lateral: ("npc.saber.female.leg_br"), + lateral: ("npc.saber.male.leg_br"), ), foot_fl: ( offset: (-2.5, -2.5, -8.0), - lateral: ("npc.saber.female.foot_fl"), + lateral: ("npc.saber.male.foot_fl"), ), foot_fr: ( offset: (-2.5, -2.5, -8.0), - lateral: ("npc.saber.female.foot_fr"), + lateral: ("npc.saber.male.foot_fr"), ), foot_bl: ( offset: (-2.5, -2.0, -9.0), - lateral: ("npc.saber.female.foot_bl"), + lateral: ("npc.saber.male.foot_bl"), ), foot_br: ( offset: (-2.5, -2.0, -9.0), - lateral: ("npc.saber.female.foot_br"), + lateral: ("npc.saber.male.foot_br"), ), ), (Tuskram, Male): ( @@ -172,35 +172,35 @@ (Tuskram, Female): ( leg_fl: ( offset: (-2.0, -2.5, -10.0), - lateral: ("npc.tuskram.female.leg_fl"), + lateral: ("npc.tuskram.male.leg_fl"), ), leg_fr: ( offset: (-2.0, -2.5, -10.0), - lateral: ("npc.tuskram.female.leg_fr"), + lateral: ("npc.tuskram.male.leg_fr"), ), leg_bl: ( offset: (-2.0, -2.5, -4.0), - lateral: ("npc.tuskram.female.leg_bl"), + lateral: ("npc.tuskram.male.leg_bl"), ), leg_br: ( offset: (-2.0, -2.5, -4.0), - lateral: ("npc.tuskram.female.leg_br"), + lateral: ("npc.tuskram.male.leg_br"), ), foot_fl: ( offset: (-2.5, -2.0, -5.0), - lateral: ("npc.tuskram.female.foot_fl"), + lateral: ("npc.tuskram.male.foot_fl"), ), foot_fr: ( offset: (-2.5, -2.0, -5.0), - lateral: ("npc.tuskram.female.foot_fr"), + lateral: ("npc.tuskram.male.foot_fr"), ), foot_bl: ( offset: (-1.5, -1.5, -6.0), - lateral: ("npc.tuskram.female.foot_bl"), + lateral: ("npc.tuskram.male.foot_bl"), ), foot_br: ( offset: (-1.5, -1.5, -6.0), - lateral: ("npc.tuskram.female.foot_br"), + lateral: ("npc.tuskram.male.foot_br"), ), ), (Lion, Male): ( @@ -240,35 +240,35 @@ (Lion, Female): ( leg_fl: ( offset: (-2.0, -2.5, -7.5), - lateral: ("npc.lion.female.leg_fl"), + lateral: ("npc.lion.male.leg_fl"), ), leg_fr: ( offset: (-2.0, -2.5, -7.5), - lateral: ("npc.lion.female.leg_fr"), + lateral: ("npc.lion.male.leg_fr"), ), leg_bl: ( offset: (-2.0, -3.0, -6.0), - lateral: ("npc.lion.female.leg_bl"), + lateral: ("npc.lion.male.leg_bl"), ), leg_br: ( offset: (-2.0, -3.0, -6.0), - lateral: ("npc.lion.female.leg_br"), + lateral: ("npc.lion.male.leg_br"), ), foot_fl: ( offset: (-2.5, -2.0, -5.0), - lateral: ("npc.lion.female.foot_fl"), + lateral: ("npc.lion.male.foot_fl"), ), foot_fr: ( offset: (-2.5, -2.0, -5.0), - lateral: ("npc.lion.female.foot_fr"), + lateral: ("npc.lion.male.foot_fr"), ), foot_bl: ( offset: (-2.5, -2.0, -6.0), - lateral: ("npc.lion.female.foot_bl"), + lateral: ("npc.lion.male.foot_bl"), ), foot_br: ( offset: (-2.5, -2.0, -6.0), - lateral: ("npc.lion.female.foot_br"), + lateral: ("npc.lion.male.foot_br"), ), ), (Tarasque, Male): ( @@ -308,35 +308,35 @@ (Tarasque, Female): ( leg_fl: ( offset: (-3.0, -5.0, -4.0), - lateral: ("npc.tarasque.female.leg_fl"), + lateral: ("npc.tarasque.male.leg_fl"), ), leg_fr: ( offset: (-3.0, -5.0, -4.0), - lateral: ("npc.tarasque.female.leg_fr"), + lateral: ("npc.tarasque.male.leg_fr"), ), leg_bl: ( offset: (-2.0, -3.5, -3.5), - lateral: ("npc.tarasque.female.leg_bl"), + lateral: ("npc.tarasque.male.leg_bl"), ), leg_br: ( offset: (-2.0, -3.5, -3.5), - lateral: ("npc.tarasque.female.leg_br"), + lateral: ("npc.tarasque.male.leg_br"), ), foot_fl: ( offset: (-4.0, -3.0, -9.0), //(1/4) Y dimension, (1/1) Z dimension - lateral: ("npc.tarasque.female.foot_fl"), + lateral: ("npc.tarasque.male.foot_fl"), ), foot_fr: ( offset: (-4.0, -3.0, -9.0), //(1/4) Y dimension, (1/1) Z dimension - lateral: ("npc.tarasque.female.foot_fr"), + lateral: ("npc.tarasque.male.foot_fr"), ), foot_bl: ( offset: (-2.5, -2.0, -8.0), - lateral: ("npc.tarasque.female.foot_bl"), + lateral: ("npc.tarasque.male.foot_bl"), ), foot_br: ( offset: (-2.5, -2.0, -8.0), - lateral: ("npc.tarasque.female.foot_br"), + lateral: ("npc.tarasque.male.foot_br"), ), ), (Tiger, Male): ( @@ -376,35 +376,35 @@ (Tiger, Female): ( leg_fl: ( offset: (-2.0, -3.0, -5.0), - lateral: ("npc.tiger.female.leg_fl"), + lateral: ("npc.tiger.male.leg_fl"), ), leg_fr: ( offset: (-2.0, -3.0, -5.0), - lateral: ("npc.tiger.female.leg_fr"), + lateral: ("npc.tiger.male.leg_fr"), ), leg_bl: ( offset: (-2.0, -3.0, -5.0), - lateral: ("npc.tiger.female.leg_bl"), + lateral: ("npc.tiger.male.leg_bl"), ), leg_br: ( offset: (-2.0, -3.0, -5.0), - lateral: ("npc.tiger.female.leg_br"), + lateral: ("npc.tiger.male.leg_br"), ), foot_fl: ( offset: (-2.5, -2.0, -6.0), - lateral: ("npc.tiger.female.foot_fl"), + lateral: ("npc.tiger.male.foot_fl"), ), foot_fr: ( offset: (-2.5, -2.0, -6.0), - lateral: ("npc.tiger.female.foot_fr"), + lateral: ("npc.tiger.male.foot_fr"), ), foot_bl: ( offset: (-2.5, -2.0, -6.0), - lateral: ("npc.tiger.female.foot_bl"), + lateral: ("npc.tiger.male.foot_bl"), ), foot_br: ( offset: (-2.5, -2.0, -6.0), - lateral: ("npc.tiger.female.foot_br"), + lateral: ("npc.tiger.male.foot_br"), ), ), (Wolf, Male): ( @@ -444,35 +444,35 @@ (Wolf, Female): ( leg_fl: ( offset: (-2.0, -3.5, -4.0), - lateral: ("npc.wolf.female.leg_fl"), + lateral: ("npc.wolf.male.leg_fl"), ), leg_fr: ( offset: (-2.0, -3.5, -4.0), - lateral: ("npc.wolf.female.leg_fr"), + lateral: ("npc.wolf.male.leg_fr"), ), leg_bl: ( offset: (-1.5, -3.5, -3.5), - lateral: ("npc.wolf.female.leg_bl"), + lateral: ("npc.wolf.male.leg_bl"), ), leg_br: ( offset: (-1.5, -3.5, -3.5), - lateral: ("npc.wolf.female.leg_br"), + lateral: ("npc.wolf.male.leg_br"), ), foot_fl: ( offset: (-1.5, -2.5, -10.0), - lateral: ("npc.wolf.female.foot_fl"), + lateral: ("npc.wolf.male.foot_fl"), ), foot_fr: ( offset: (-1.5, -2.5, -10.0), - lateral: ("npc.wolf.female.foot_fr"), + lateral: ("npc.wolf.male.foot_fr"), ), foot_bl: ( offset: (-1.5, -2.5, -10.0), - lateral: ("npc.wolf.female.foot_bl"), + lateral: ("npc.wolf.male.foot_bl"), ), foot_br: ( offset: (-1.5, -2.5, -10.0), - lateral: ("npc.wolf.female.foot_br"), + lateral: ("npc.wolf.male.foot_br"), ), ), (Frostfang, Male): ( @@ -512,35 +512,35 @@ (Frostfang, Female): ( leg_fl: ( offset: (-1.5, -3.5, -3.5), - lateral: ("npc.frostfang.female.leg_fl"), + lateral: ("npc.frostfang.male.leg_fl"), ), leg_fr: ( offset: (-1.5, -3.5, -3.5), - lateral: ("npc.frostfang.female.leg_fr"), + lateral: ("npc.frostfang.male.leg_fr"), ), leg_bl: ( offset: (-1.5, -3.5, -3.5), - lateral: ("npc.frostfang.female.leg_bl"), + lateral: ("npc.frostfang.male.leg_bl"), ), leg_br: ( offset: (-1.5, -3.5, -3.5), - lateral: ("npc.frostfang.female.leg_br"), + lateral: ("npc.frostfang.male.leg_br"), ), foot_fl: ( offset: (-2.5, -1.5, -6.0), - lateral: ("npc.frostfang.female.foot_fl"), + lateral: ("npc.frostfang.male.foot_fl"), ), foot_fr: ( offset: (-2.5, -1.5, -6.0), - lateral: ("npc.frostfang.female.foot_fr"), + lateral: ("npc.frostfang.male.foot_fr"), ), foot_bl: ( offset: (-2.5, -1.5, -6.0), - lateral: ("npc.frostfang.female.foot_bl"), + lateral: ("npc.frostfang.male.foot_bl"), ), foot_br: ( offset: (-2.5, -1.5, -6.0), - lateral: ("npc.frostfang.female.foot_br"), + lateral: ("npc.frostfang.male.foot_br"), ), ), (Mouflon, Male): ( @@ -580,35 +580,35 @@ (Mouflon, Female): ( leg_fl: ( offset: (-1.5, -2.5, -2.5), - lateral: ("npc.mouflon.female.leg_fl"), + lateral: ("npc.mouflon.male.leg_fl"), ), leg_fr: ( offset: (-1.5, -2.5, -2.5), - lateral: ("npc.mouflon.female.leg_fr"), + lateral: ("npc.mouflon.male.leg_fr"), ), leg_bl: ( offset: (-2.0, -2.5, -3.5), - lateral: ("npc.mouflon.female.leg_bl"), + lateral: ("npc.mouflon.male.leg_bl"), ), leg_br: ( offset: (-2.0, -2.5, -3.5), - lateral: ("npc.mouflon.female.leg_br"), + lateral: ("npc.mouflon.male.leg_br"), ), foot_fl: ( offset: (-1.0, -1.0, -7.0), - lateral: ("npc.mouflon.female.foot_fl"), + lateral: ("npc.mouflon.male.foot_fl"), ), foot_fr: ( offset: (-1.0, -1.0, -7.0), - lateral: ("npc.mouflon.female.foot_fr"), + lateral: ("npc.mouflon.male.foot_fr"), ), foot_bl: ( offset: (-1.0, -0.5, -6.0), - lateral: ("npc.mouflon.female.foot_bl"), + lateral: ("npc.mouflon.male.foot_bl"), ), foot_br: ( offset: (-1.0, -0.5, -6.0), - lateral: ("npc.mouflon.female.foot_br"), + lateral: ("npc.mouflon.male.foot_br"), ), ), }) diff --git a/assets/voxygen/voxel/quadruped_small_central_manifest.ron b/assets/voxygen/voxel/quadruped_small_central_manifest.ron index e8c6798c3b..d0ba503c35 100644 --- a/assets/voxygen/voxel/quadruped_small_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_small_central_manifest.ron @@ -132,11 +132,11 @@ (Jackalope, Female):( head: ( offset: (-3.5, -4.5, -4.5), - central: ("npc.jackalope.female.head"), + central: ("npc.jackalope.male.head"), ), chest: ( offset: (-1.5, -7.5, -2.5), - central: ("npc.jackalope.female.chest"), + central: ("npc.jackalope.male.chest"), ), tail: ( offset: (-1.5, -7.5, -2.5), @@ -160,15 +160,15 @@ (Skunk, Female):( head: ( offset: (-2.0, -1.0, -2.0), - central: ("npc.skunk.female.head"), + central: ("npc.skunk.male.head"), ), chest: ( offset: (-3.0, -4.5, -2.5), - central: ("npc.skunk.female.chest"), + central: ("npc.skunk.male.chest"), ), tail: ( offset: (-3.0, -10.0, -4.5), - central: ("npc.skunk.female.tail"), + central: ("npc.skunk.male.tail"), ), ), (Cat, Male):( @@ -217,11 +217,11 @@ (Batfox, Female):( head: ( offset: (-9.5, -6.0, -4.0), - central: ("npc.batfox.female.head"), + central: ("npc.batfox.male.head"), ), chest: ( offset: (-1.5, -7.5, -2.5), - central: ("npc.batfox.female.chest"), + central: ("npc.batfox.male.chest"), ), tail: ( offset: (-1.5, -7.5, -2.5), @@ -247,15 +247,15 @@ (Raccoon, Female):( head: ( offset: (-4.0, -4.0, -3.5), - central: ("npc.raccoon.female.head"), + central: ("npc.raccoon.male.head"), ), chest: ( offset: (-3.0, -5.5, -3.0), - central: ("npc.raccoon.female.chest"), + central: ("npc.raccoon.male.chest"), ), tail: ( offset: (-1.0, -5.0, -1.5), - central: ("npc.raccoon.female.tail"), + central: ("npc.raccoon.male.tail"), ), ), @@ -277,11 +277,11 @@ (Quokka, Female):( head: ( offset: (-4.5, -3.0, -4.0), - central: ("npc.quokka.female.head"), + central: ("npc.quokka.male.head"), ), chest: ( offset: (-5.0, -7.5, -4.0), - central: ("npc.quokka.female.chest"), + central: ("npc.quokka.male.chest"), ), tail: ( offset: (-1.5, -7.5, -2.5), @@ -307,11 +307,11 @@ (Dodarock, Female):( head: ( offset: (-5.0, -3.5, -4.5), - central: ("npc.dodarock.female.head"), + central: ("npc.dodarock.male.head"), ), chest: ( offset: (-5.0, -7.5, -4.5), - central: ("npc.dodarock.female.chest"), + central: ("npc.dodarock.male.chest"), ), tail: ( offset: (-1.5, -7.5, -2.5), @@ -337,11 +337,11 @@ (Holladon, Female):( head: ( offset: (-3.5, -3.5, -4.0), - central: ("npc.holladon.female.head"), + central: ("npc.holladon.male.head"), ), chest: ( offset: (-3.0, -7.5, -3.0), - central: ("npc.holladon.female.chest"), + central: ("npc.holladon.male.chest"), ), tail: ( offset: (-1.5, -7.5, -2.5), @@ -367,15 +367,15 @@ (Hyena, Female):( head: ( offset: (-3.0, -2.0, -4.0), - central: ("npc.hyena.female.head"), + central: ("npc.hyena.male.head"), ), chest: ( offset: (-3.0, -8.0, -4.0), - central: ("npc.hyena.female.chest"), + central: ("npc.hyena.male.chest"), ), tail: ( offset: (-1.0, -3.0, -6.0), - central: ("npc.hyena.female.tail"), + central: ("npc.hyena.male.tail"), ), ), }) \ No newline at end of file diff --git a/common/src/path.rs b/common/src/path.rs index 0179e8f332..c865dca6d2 100644 --- a/common/src/path.rs +++ b/common/src/path.rs @@ -277,7 +277,7 @@ where ) }; let transition = - |a: &Vec3, b: &Vec3| 1.0 + endf.distance((*b).map(|e| e as f32 + 0.5)) * 0.02; + |_a: &Vec3, b: &Vec3| 1.0 + endf.distance((*b).map(|e| e as f32 + 0.5)) * 0.02; let satisfied = |pos: &Vec3| pos == &end; let mut new_astar = match astar.take() { diff --git a/common/src/sys/agent.rs b/common/src/sys/agent.rs index 9d9922d057..935c99609b 100644 --- a/common/src/sys/agent.rs +++ b/common/src/sys/agent.rs @@ -4,7 +4,7 @@ use crate::{ agent::Activity, item::{tool::ToolKind, ItemKind}, Agent, Alignment, CharacterState, ChatMsg, ControlAction, Controller, Loadout, MountState, - Ori, Pos, Scale, SpeechBubble, Stats, Vel, + Ori, Pos, Scale, Stats, Vel, }, event::{EventBus, ServerEvent}, path::Chaser, diff --git a/voxygen/src/anim/Cargo.toml b/voxygen/src/anim/Cargo.toml index 92ce71acb0..ab4d0e2bfe 100644 --- a/voxygen/src/anim/Cargo.toml +++ b/voxygen/src/anim/Cargo.toml @@ -8,7 +8,7 @@ edition = "2018" name = "voxygen_anim" # Uncomment to use animation hot reloading # Note: this breaks `cargo test` -crate-type = ["lib", "cdylib"] +# crate-type = ["lib", "cdylib"] [features] use-dyn-lib = ["libloading", "notify", "lazy_static", "tracing", "find_folder"] diff --git a/voxygen/src/anim/src/character/run.rs b/voxygen/src/anim/src/character/run.rs index a2877c1536..35bd0cacdd 100644 --- a/voxygen/src/anim/src/character/run.rs +++ b/voxygen/src/anim/src/character/run.rs @@ -12,6 +12,7 @@ type RunAnimationDependency = ( Vec3, Vec3, f64, + Vec3, ); impl Animation for RunAnimation { @@ -25,7 +26,7 @@ impl Animation for RunAnimation { #[allow(clippy::useless_conversion)] // TODO: Pending review in #587 fn update_skeleton_inner( skeleton: &Self::Skeleton, - (active_tool_kind, second_tool_kind, velocity, orientation, last_ori, global_time): Self::Dependency, + (active_tool_kind, second_tool_kind, velocity, orientation, last_ori, global_time, avg_vel): Self::Dependency, anim_time: f64, rate: &mut f32, skeleton_attr: &SkeletonAttr, @@ -34,6 +35,7 @@ impl Animation for RunAnimation { let speed = Vec2::::from(velocity).magnitude(); *rate = 1.0; + let impact = (avg_vel.z * 3000.0).max(-8.0); let walkintensity = if speed > 5.0 { 1.0 } else { 0.45 }; let walk = if speed > 5.0 { 1.0 } else { 0.5 }; @@ -124,7 +126,9 @@ impl Animation for RunAnimation { ); next.chest.ori = Quaternion::rotation_z(short * 0.18 * walkintensity + tilt * -0.6) * Quaternion::rotation_y(tilt * 1.6) - * Quaternion::rotation_x(shortalter * 0.035 + wave_stop * speed * -0.07 + (tilt.abs())); + * Quaternion::rotation_x( + impact * 0.06 + shortalter * 0.035 + wave_stop * speed * -0.07 + (tilt.abs()), + ); next.chest.scale = Vec3::one(); next.belt.offset = Vec3::new(0.0, skeleton_attr.belt.0, skeleton_attr.belt.1); diff --git a/voxygen/src/anim/src/character/stand.rs b/voxygen/src/anim/src/character/stand.rs index eda90efb5c..a117e6c6b2 100644 --- a/voxygen/src/anim/src/character/stand.rs +++ b/voxygen/src/anim/src/character/stand.rs @@ -6,7 +6,7 @@ use vek::*; pub struct StandAnimation; impl Animation for StandAnimation { - type Dependency = (Option, Option, f64); + type Dependency = (Option, Option, f64, Vec3); type Skeleton = CharacterSkeleton; #[cfg(feature = "use-dyn-lib")] @@ -15,7 +15,7 @@ impl Animation for StandAnimation { #[cfg_attr(feature = "be-dyn-lib", export_name = "character_stand")] fn update_skeleton_inner( skeleton: &Self::Skeleton, - (active_tool_kind, second_tool_kind, global_time): Self::Dependency, + (active_tool_kind, second_tool_kind, global_time, avg_vel): Self::Dependency, anim_time: f64, _rate: &mut f32, skeleton_attr: &SkeletonAttr, @@ -24,7 +24,7 @@ impl Animation for StandAnimation { let slow = (anim_time as f32 * 1.0).sin(); let breathe = ((anim_time as f32 * 0.5).sin()).abs(); - + let impact = (avg_vel.z * 3000.0).max(-15.0); let head_look = Vec2::new( ((global_time + anim_time) as f32 / 12.0) .floor() @@ -42,58 +42,71 @@ impl Animation for StandAnimation { -3.0 + skeleton_attr.head.0, skeleton_attr.head.1 + slow * 0.3 + breathe * -0.05, ); - next.head.ori = - Quaternion::rotation_z(head_look.x) * Quaternion::rotation_x(head_look.y.abs()); + next.head.ori = Quaternion::rotation_z(head_look.x) + * Quaternion::rotation_x(impact * -0.02 + head_look.y.abs()); next.head.scale = Vec3::one() * skeleton_attr.head_scale + breathe * -0.05; next.chest.offset = Vec3::new( 0.0, skeleton_attr.chest.0, - skeleton_attr.chest.1 + slow * 0.3, + skeleton_attr.chest.1 + slow * 0.3 + impact * 0.2, ); - next.chest.ori = Quaternion::rotation_z(head_look.x * 0.6); + next.chest.ori = + Quaternion::rotation_z(head_look.x * 0.6) * Quaternion::rotation_x(impact * 0.04); next.chest.scale = Vec3::one() * 1.01 + breathe * 0.03; - next.belt.offset = Vec3::new(0.0, skeleton_attr.belt.0, skeleton_attr.belt.1); - next.belt.ori = Quaternion::rotation_z(head_look.x * -0.1); + next.belt.offset = Vec3::new( + 0.0, + skeleton_attr.belt.0 + impact * 0.005, + skeleton_attr.belt.1, + ); + next.belt.ori = + Quaternion::rotation_z(head_look.x * -0.1) * Quaternion::rotation_x(impact * -0.03); next.belt.scale = Vec3::one() + breathe * -0.03; next.back.offset = Vec3::new(0.0, skeleton_attr.back.0, skeleton_attr.back.1); next.back.scale = Vec3::one() * 1.02; - next.shorts.offset = Vec3::new(0.0, skeleton_attr.shorts.0, skeleton_attr.shorts.1); - next.shorts.ori = Quaternion::rotation_z(head_look.x * -0.2); + next.shorts.offset = Vec3::new( + 0.0, + skeleton_attr.shorts.0 + impact * -0.2, + skeleton_attr.shorts.1, + ); + next.shorts.ori = + Quaternion::rotation_z(head_look.x * -0.2) * Quaternion::rotation_x(impact * -0.04); next.shorts.scale = Vec3::one() + breathe * -0.03; next.l_hand.offset = Vec3::new( -skeleton_attr.hand.0, - skeleton_attr.hand.1 + slow * 0.15, - skeleton_attr.hand.2 + slow * 0.5, + skeleton_attr.hand.1 + slow * 0.15 - impact * 0.2, + skeleton_attr.hand.2 + slow * 0.5 + impact * -0.1, ); - next.l_hand.ori = Quaternion::rotation_x(slow * -0.06); + next.l_hand.ori = Quaternion::rotation_x(slow * -0.06 + impact * -0.1); next.l_hand.scale = Vec3::one(); next.r_hand.offset = Vec3::new( skeleton_attr.hand.0, - skeleton_attr.hand.1 + slow * 0.15, - skeleton_attr.hand.2 + slow * 0.5, + skeleton_attr.hand.1 + slow * 0.15 - impact * 0.2, + skeleton_attr.hand.2 + slow * 0.5 + impact * -0.1, ); - next.r_hand.ori = Quaternion::rotation_x(slow * -0.06); + next.r_hand.ori = Quaternion::rotation_x(slow * -0.06 + impact * -0.1); next.r_hand.scale = Vec3::one(); next.l_foot.offset = Vec3::new( -skeleton_attr.foot.0, - skeleton_attr.foot.1, + skeleton_attr.foot.1 - impact * 0.15, skeleton_attr.foot.2, ); + next.l_foot.ori = Quaternion::rotation_x(impact * 0.02); next.l_foot.scale = Vec3::one(); next.r_foot.offset = Vec3::new( skeleton_attr.foot.0, - skeleton_attr.foot.1, + skeleton_attr.foot.1 + impact * 0.15, skeleton_attr.foot.2, ); + next.r_foot.ori = Quaternion::rotation_x(impact * -0.02); next.r_foot.scale = Vec3::one(); next.l_shoulder.offset = Vec3::new( diff --git a/voxygen/src/anim/src/quadruped_low/alpha.rs b/voxygen/src/anim/src/quadruped_low/alpha.rs new file mode 100644 index 0000000000..0e60916168 --- /dev/null +++ b/voxygen/src/anim/src/quadruped_low/alpha.rs @@ -0,0 +1,101 @@ +use super::{super::Animation, QuadrupedLowSkeleton, SkeletonAttr}; +use std::f32::consts::PI; +use vek::*; + +pub struct AlphaAnimation; + +impl Animation for AlphaAnimation { + type Dependency = f64; + type Skeleton = QuadrupedLowSkeleton; + + #[cfg(feature = "use-dyn-lib")] + const UPDATE_FN: &'static [u8] = b"quadruped_low_alpha\0"; + + #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_low_alpha")] + fn update_skeleton_inner( + skeleton: &Self::Skeleton, + _global_time: Self::Dependency, + anim_time: f64, + _rate: &mut f32, + skeleton_attr: &SkeletonAttr, + ) -> Self::Skeleton { + let mut next = (*skeleton).clone(); + + let short = (((1.0) + / (0.1 + 0.9 * ((anim_time as f32 * 8.0 + PI * 2.5).sin()).powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 8.0 + PI * 2.5).sin()); + let quick = (((1.0) + / (0.001 + 0.9999 * ((anim_time as f32 * 7.0 + PI * 0.0).sin()).powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 7.0 + PI * 0.0).sin()); + next.head_upper.offset = + Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); + next.head_upper.ori = Quaternion::rotation_z(short * 0.3) * Quaternion::rotation_x(0.0); + next.head_upper.scale = Vec3::one(); + + next.head_lower.offset = + Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); + next.head_lower.ori = + Quaternion::rotation_z(short * 0.2) * Quaternion::rotation_y(short * -0.4); + next.head_lower.scale = Vec3::one(); + + next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); + next.jaw.ori = Quaternion::rotation_x(-0.2 + quick * 0.3); + next.jaw.scale = Vec3::one() * 0.98; + + next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) + * skeleton_attr.scaler + / 11.0; + next.chest.ori = Quaternion::rotation_y(short * -0.07); + next.chest.scale = Vec3::one() * skeleton_attr.scaler / 11.0; + + next.tail_front.offset = + Vec3::new(0.0, skeleton_attr.tail_front.0, skeleton_attr.tail_front.1); + next.tail_front.ori = Quaternion::rotation_x(0.15) + * Quaternion::rotation_y(short * 0.2) + * Quaternion::rotation_z(short * 0.3); + next.tail_front.scale = Vec3::one() * 0.98; + + next.tail_rear.offset = + Vec3::new(0.0, skeleton_attr.tail_rear.0, skeleton_attr.tail_rear.1); + next.tail_rear.ori = Quaternion::rotation_y(short * 0.5) + * Quaternion::rotation_x(-0.12) + * Quaternion::rotation_z(short * 0.3); + next.tail_rear.scale = Vec3::one() * 0.98; + + next.foot_fl.offset = Vec3::new( + -skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2, + ); + next.foot_fl.ori = Quaternion::rotation_y(short * 0.12); + next.foot_fl.scale = Vec3::one(); + + next.foot_fr.offset = Vec3::new( + skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2, + ); + next.foot_fr.ori = Quaternion::rotation_y(short * 0.12); + next.foot_fr.scale = Vec3::one(); + + next.foot_bl.offset = Vec3::new( + -skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2, + ); + next.foot_bl.ori = Quaternion::rotation_y(short * 0.12); + next.foot_bl.scale = Vec3::one(); + + next.foot_br.offset = Vec3::new( + skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2, + ); + next.foot_br.ori = Quaternion::rotation_y(short * 0.12); + next.foot_br.scale = Vec3::one(); + + next + } +} diff --git a/voxygen/src/anim/src/quadruped_low/mod.rs b/voxygen/src/anim/src/quadruped_low/mod.rs index 29fa9638f2..c450fad5eb 100644 --- a/voxygen/src/anim/src/quadruped_low/mod.rs +++ b/voxygen/src/anim/src/quadruped_low/mod.rs @@ -1,9 +1,12 @@ +pub mod alpha; pub mod idle; pub mod jump; pub mod run; // Reexports -pub use self::{idle::IdleAnimation, jump::JumpAnimation, run::RunAnimation}; +pub use self::{ + alpha::AlphaAnimation, idle::IdleAnimation, jump::JumpAnimation, run::RunAnimation, +}; use super::{Bone, FigureBoneData, Skeleton}; use common::comp::{self}; @@ -132,9 +135,9 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { Self { head_upper: match (body.species, body.body_type) { (Crocodile, _) => (10.0, 2.0), - (Alligator, _) => (0.5, 3.25), - (Salamander, _) => (6.5, 2.0), - (Monitor, _) => (3.5, 2.0), + (Alligator, _) => (0.5, 2.0), + (Salamander, _) => (6.5, 2.5), + (Monitor, _) => (4.5, 1.0), (Asp, _) => (6.0, 5.5), (Tortoise, _) => (5.0, 1.0), (Rocksnapper, _) => (6.0, 0.5), @@ -144,7 +147,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Crocodile, _) => (8.0, 0.0), (Alligator, _) => (9.0, 0.25), (Salamander, _) => (9.0, 0.0), - (Monitor, _) => (10.0, 3.0), + (Monitor, _) => (10.0, 2.0), (Asp, _) => (9.0, 2.5), (Tortoise, _) => (12.0, -3.5), (Rocksnapper, _) => (12.0, -9.0), @@ -173,7 +176,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { tail_rear: match (body.species, body.body_type) { (Crocodile, _) => (-12.5, -1.0), (Alligator, _) => (-13.0, -1.0), - (Salamander, _) => (-9.0, 0.0), + (Salamander, _) => (-8.0, 0.0), (Monitor, _) => (-12.0, 0.0), (Asp, _) => (-14.0, -2.0), (Tortoise, _) => (-10.0, -1.5), diff --git a/voxygen/src/anim/src/quadruped_low/run.rs b/voxygen/src/anim/src/quadruped_low/run.rs index e3f0dddb1c..cf082f660a 100644 --- a/voxygen/src/anim/src/quadruped_low/run.rs +++ b/voxygen/src/anim/src/quadruped_low/run.rs @@ -5,7 +5,7 @@ use vek::*; pub struct RunAnimation; impl Animation for RunAnimation { - type Dependency = (f32, Vec3, Vec3, f64); + type Dependency = (f32, Vec3, Vec3, f64, Vec3); type Skeleton = QuadrupedLowSkeleton; #[cfg(feature = "use-dyn-lib")] @@ -14,7 +14,7 @@ impl Animation for RunAnimation { #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_low_run")] fn update_skeleton_inner( skeleton: &Self::Skeleton, - (_velocity, orientation, last_ori, _global_time): Self::Dependency, + (_velocity, orientation, last_ori, _global_time, avg_vel): Self::Dependency, anim_time: f64, _rate: &mut f32, skeleton_attr: &SkeletonAttr, @@ -22,6 +22,7 @@ impl Animation for RunAnimation { let mut next = (*skeleton).clone(); let lab = 0.7 * skeleton_attr.tempo; + let x_tilt = avg_vel.z.atan2(avg_vel.xy().magnitude()); let short = (((1.0) / (0.72 @@ -50,7 +51,7 @@ impl Animation for RunAnimation { * ((anim_time as f32 * 16.0 * lab as f32 + PI * 0.45).sin()); let footvertr = (anim_time as f32 * 16.0 * lab as f32 + PI).sin(); - // + //back feet let foothorilb = (((1.0) / (0.4 + (0.6) @@ -124,7 +125,7 @@ impl Animation for RunAnimation { / 11.0; next.chest.ori = Quaternion::rotation_z(short * 0.13 + tilt * -1.9) * Quaternion::rotation_y(short * 0.12) - * Quaternion::rotation_x(skeleton_attr.lean.0); + * Quaternion::rotation_x(x_tilt + skeleton_attr.lean.0); next.chest.scale = Vec3::one() * skeleton_attr.scaler / 11.0; next.foot_fl.offset = Vec3::new( diff --git a/voxygen/src/anim/src/quadruped_medium/alpha.rs b/voxygen/src/anim/src/quadruped_medium/alpha.rs index f9e2a71bb7..37d43004b6 100644 --- a/voxygen/src/anim/src/quadruped_medium/alpha.rs +++ b/voxygen/src/anim/src/quadruped_medium/alpha.rs @@ -14,7 +14,7 @@ impl Animation for AlphaAnimation { #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_medium_alpha")] fn update_skeleton_inner( skeleton: &Self::Skeleton, - global_time: Self::Dependency, + _global_time: Self::Dependency, anim_time: f64, _rate: &mut f32, skeleton_attr: &SkeletonAttr, @@ -22,38 +22,27 @@ impl Animation for AlphaAnimation { let mut next = (*skeleton).clone(); let short = (((1.0) - / (0.5 + 0.5 * ((anim_time as f32 * 2.0 + PI * 1.0).sin()).powf(2.0 as f32))) + / (0.1 + 0.9 * ((anim_time as f32 * 4.0 + PI * 2.5).sin()).powf(2.0 as f32))) .sqrt()) - * ((anim_time as f32 * 2.0 + PI * 1.0).sin()); + * ((anim_time as f32 * 4.0 + PI * 2.5).sin()); + let quick = (((1.0) + / (0.001 + 0.9999 * ((anim_time as f32 * 4.0 + PI * 0.5).sin()).powf(2.0 as f32))) + .sqrt()) + * ((anim_time as f32 * 4.0 + PI * 0.5).sin()); - let random = ((((2.0 - * ((global_time as f32 - anim_time as f32) - - ((global_time as f32 - anim_time as f32).round()))) - .abs()) - * 10.0) - .round()) - / 10.0; - - let switch = if random > 0.5 { 1.0 } else { -1.0 }; - next.head_upper.offset = Vec3::new( - 0.0, - skeleton_attr.head_upper.0 + 1.0 + short * 3.0, - skeleton_attr.head_upper.1, - ); - next.head_upper.ori = Quaternion::rotation_y(short * -0.2 * switch) - * Quaternion::rotation_x(0.2 + short * 0.6); + next.head_upper.offset = + Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); + next.head_upper.ori = + Quaternion::rotation_y(short * -0.2) * Quaternion::rotation_x(0.1 + short * 0.2); next.head_upper.scale = Vec3::one(); - next.head_lower.offset = Vec3::new( - 0.0, - skeleton_attr.head_lower.0 + 2.0 + short * 3.0, - skeleton_attr.head_lower.1, - ); + next.head_lower.offset = + Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); next.head_lower.ori = Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); next.head_lower.scale = Vec3::one() * 1.02; next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); - next.jaw.ori = Quaternion::rotation_x(0.5 + short * 1.0); + next.jaw.ori = Quaternion::rotation_x(-0.3 + quick * 0.4); next.jaw.scale = Vec3::one() * 1.02; next.tail.offset = Vec3::new(0.0, skeleton_attr.tail.0, skeleton_attr.tail.1); @@ -66,12 +55,12 @@ impl Animation for AlphaAnimation { skeleton_attr.torso_front.1 + short * 1.0, ) * skeleton_attr.scaler / 11.0; - next.torso_front.ori = Quaternion::rotation_y(short * -0.1 * switch); + next.torso_front.ori = Quaternion::rotation_y(short * -0.1); next.torso_front.scale = Vec3::one() * skeleton_attr.scaler / 11.0; next.torso_back.offset = Vec3::new(0.0, skeleton_attr.torso_back.0, skeleton_attr.torso_back.1); - next.torso_back.ori = Quaternion::rotation_y(short * -0.1 * switch) + next.torso_back.ori = Quaternion::rotation_y(short * -0.1) * Quaternion::rotation_z(0.0) * Quaternion::rotation_x(0.0); next.torso_back.scale = Vec3::one(); @@ -80,152 +69,77 @@ impl Animation for AlphaAnimation { next.ears.ori = Quaternion::rotation_x(0.0); next.ears.scale = Vec3::one() * 1.02; - if random > 0.5 { - next.leg_fl.offset = Vec3::new( - -skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1, - skeleton_attr.leg_f.2, - ); + next.leg_fl.offset = Vec3::new( + -skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1, + skeleton_attr.leg_f.2, + ); - next.leg_fl.ori = - Quaternion::rotation_x(short * -0.2) * Quaternion::rotation_y(short * 0.15); - next.leg_fl.scale = Vec3::one(); + next.leg_fl.ori = + Quaternion::rotation_x(short * -0.1) * Quaternion::rotation_y(short * 0.15); + next.leg_fl.scale = Vec3::one(); - next.leg_fr.offset = Vec3::new( - skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1, - skeleton_attr.leg_f.2 + 1.5, - ); - next.leg_fr.ori = Quaternion::rotation_x(-0.1 + short * -0.2) - * Quaternion::rotation_y(0.2 + short * 0.2); - next.leg_fr.scale = Vec3::one(); + next.leg_fr.offset = Vec3::new( + skeleton_attr.leg_f.0, + skeleton_attr.leg_f.1, + skeleton_attr.leg_f.2, + ); + next.leg_fr.ori = + Quaternion::rotation_x(short * 0.3) * Quaternion::rotation_y(short * -0.2); + next.leg_fr.scale = Vec3::one(); - next.leg_bl.offset = Vec3::new( - -skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1, - skeleton_attr.leg_b.2 - 1.5, - ); - next.leg_bl.ori = - Quaternion::rotation_x(-0.1 + short * -0.2) * Quaternion::rotation_y(short * 0.2); - next.leg_bl.scale = Vec3::one(); + next.leg_bl.offset = Vec3::new( + -skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1, + skeleton_attr.leg_b.2 + 1.0, + ); + next.leg_bl.ori = + Quaternion::rotation_x(-0.1 + short * -0.2) * Quaternion::rotation_y(short * 0.2); + next.leg_bl.scale = Vec3::one(); - next.leg_br.offset = Vec3::new( - skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1, - skeleton_attr.leg_b.2 + 1.0, - ); - next.leg_br.ori = Quaternion::rotation_x(-0.1 + short * -0.2) - * Quaternion::rotation_y(0.1 + short * 0.2); - next.leg_br.scale = Vec3::one(); + next.leg_br.offset = Vec3::new( + skeleton_attr.leg_b.0, + skeleton_attr.leg_b.1, + skeleton_attr.leg_b.2 + 1.0, + ); + next.leg_br.ori = + Quaternion::rotation_x(-0.1 + short * -0.2) * Quaternion::rotation_y(0.1 + short * 0.2); + next.leg_br.scale = Vec3::one(); - next.foot_fl.offset = Vec3::new( - -skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2 + short * -1.5, - ); - next.foot_fl.ori = Quaternion::rotation_x(-0.5 + short * -0.1); - next.foot_fl.scale = Vec3::one(); + next.foot_fl.offset = Vec3::new( + -skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2 + short * -0.2, + ); + next.foot_fl.ori = Quaternion::rotation_x(short * -0.05); + next.foot_fl.scale = Vec3::one(); - next.foot_fr.offset = Vec3::new( - skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2 + short * -1.5, - ); - next.foot_fr.ori = - Quaternion::rotation_x(-0.2 + short * 0.2) * Quaternion::rotation_y(short * 0.15); - next.foot_fr.scale = Vec3::one(); + next.foot_fr.offset = Vec3::new( + skeleton_attr.feet_f.0, + skeleton_attr.feet_f.1, + skeleton_attr.feet_f.2 + short * -1.5, + ); + next.foot_fr.ori = + Quaternion::rotation_x(short * -0.2) * Quaternion::rotation_y(short * 0.15); + next.foot_fr.scale = Vec3::one(); - next.foot_bl.offset = Vec3::new( - -skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2 + short * -1.5, - ); - next.foot_bl.ori = - Quaternion::rotation_x(-0.2 + short * 0.2) * Quaternion::rotation_y(short * 0.15); - next.foot_bl.scale = Vec3::one(); + next.foot_bl.offset = Vec3::new( + -skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2 + short * -0.8, + ); + next.foot_bl.ori = + Quaternion::rotation_x(-0.2 + short * 0.2) * Quaternion::rotation_y(short * 0.15); + next.foot_bl.scale = Vec3::one(); - next.foot_br.offset = Vec3::new( - skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2 + short * -1.5, - ); - next.foot_br.ori = - Quaternion::rotation_x(-0.2 + short * 0.2) * Quaternion::rotation_y(short * 0.15); - next.foot_br.scale = Vec3::one(); - } else { - next.leg_fl.offset = Vec3::new( - -skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1, - skeleton_attr.leg_f.2 + 1.5, - ); - - next.leg_fl.ori = Quaternion::rotation_x(-0.1 + short * -0.2) - * Quaternion::rotation_y(0.2 + short * 0.2); - next.leg_fl.scale = Vec3::one(); - - next.leg_fr.offset = Vec3::new( - skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1, - skeleton_attr.leg_f.2, - ); - next.leg_fr.ori = - Quaternion::rotation_x(short * -0.2) * Quaternion::rotation_y(short * -0.15); - - next.leg_fr.scale = Vec3::one(); - - next.leg_bl.offset = Vec3::new( - -skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1, - skeleton_attr.leg_b.2 + 1.0, - ); - next.leg_bl.ori = Quaternion::rotation_x(-0.1 + short * -0.2) - * Quaternion::rotation_y(0.1 + short * 0.2); - next.leg_bl.scale = Vec3::one(); - - next.leg_br.offset = Vec3::new( - skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1, - skeleton_attr.leg_b.2 - 1.5, - ); - next.leg_br.ori = - Quaternion::rotation_x(-0.1 + short * -0.2) * Quaternion::rotation_y(short * -0.2); - next.leg_br.scale = Vec3::one(); - - next.foot_fl.offset = Vec3::new( - -skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2 + short * -1.5, - ); - next.foot_fl.ori = - Quaternion::rotation_x(-0.2 + short * 0.2) * Quaternion::rotation_y(short * 0.15); - next.foot_fl.scale = Vec3::one(); - - next.foot_fr.offset = Vec3::new( - skeleton_attr.feet_f.0, - skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2 + short * -1.5, - ); - next.foot_fr.ori = Quaternion::rotation_x(-0.5 + short * -0.1); - next.foot_fr.scale = Vec3::one(); - - next.foot_bl.offset = Vec3::new( - -skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2 + short * -1.5, - ); - next.foot_bl.ori = - Quaternion::rotation_x(-0.2 + short * 0.2) * Quaternion::rotation_y(short * 0.15); - next.foot_bl.scale = Vec3::one(); - - next.foot_br.offset = Vec3::new( - skeleton_attr.feet_b.0, - skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2 + short * -1.5, - ); - next.foot_br.ori = - Quaternion::rotation_x(-0.2 + short * 0.2) * Quaternion::rotation_y(short * 0.15); - next.foot_br.scale = Vec3::one(); - } + next.foot_br.offset = Vec3::new( + skeleton_attr.feet_b.0, + skeleton_attr.feet_b.1, + skeleton_attr.feet_b.2 + short * -1.5, + ); + next.foot_br.ori = + Quaternion::rotation_x(-0.2 + short * 0.2) * Quaternion::rotation_y(short * 0.15); + next.foot_br.scale = Vec3::one(); next } } diff --git a/voxygen/src/anim/src/quadruped_medium/idle.rs b/voxygen/src/anim/src/quadruped_medium/idle.rs index f54dc50e77..bbccbe167b 100644 --- a/voxygen/src/anim/src/quadruped_medium/idle.rs +++ b/voxygen/src/anim/src/quadruped_medium/idle.rs @@ -140,7 +140,7 @@ impl Animation for IdleAnimation { skeleton_attr.feet_f.2 + slower * -0.2, ); next.foot_fl.ori = Quaternion::rotation_x(0.0); - next.foot_fl.scale = Vec3::one() * 0.96; + next.foot_fl.scale = Vec3::one() * 0.94; next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, @@ -148,7 +148,7 @@ impl Animation for IdleAnimation { skeleton_attr.feet_f.2 + slower * -0.2, ); next.foot_fr.ori = Quaternion::rotation_x(0.0); - next.foot_fr.scale = Vec3::one(); + next.foot_fr.scale = Vec3::one() * 0.94; next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, @@ -156,7 +156,7 @@ impl Animation for IdleAnimation { skeleton_attr.feet_b.2 + slower * -0.2, ); next.foot_bl.ori = Quaternion::rotation_x(0.0); - next.foot_bl.scale = Vec3::one() * 0.96; + next.foot_bl.scale = Vec3::one() * 0.94; next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, @@ -164,7 +164,7 @@ impl Animation for IdleAnimation { skeleton_attr.feet_b.2 + slower * -0.2, ); next.foot_br.ori = Quaternion::rotation_x(0.0); - next.foot_br.scale = Vec3::one() * 0.96; + next.foot_br.scale = Vec3::one() * 0.94; next } diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index f7e2213825..7b861605d8 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -196,14 +196,14 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Mouflon, _) => (-1.0, 0.5), }, jaw: match (body.species, body.body_type) { - (Grolgar, _) => (8.5, 1.5), - (Saber, _) => (3.5, -2.0), + (Grolgar, _) => (7.0, 1.5), + (Saber, _) => (2.5, -2.0), (Tuskram, _) => (5.5, -4.0), (Lion, _) => (3.5, -4.5), (Tarasque, _) => (9.0, -10.0), (Tiger, _) => (3.5, -4.0), (Wolf, _) => (5.0, -3.0), - (Frostfang, _) => (5.0, -3.0), + (Frostfang, _) => (4.0, -3.0), (Mouflon, _) => (10.5, -4.0), }, tail: match (body.species, body.body_type) { @@ -212,7 +212,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (-9.0, 2.0), (Lion, _) => (-11.0, 1.0), (Tarasque, _) => (-11.0, 0.0), - (Tiger, _) => (-12.5, -7.0), + (Tiger, _) => (-13.5, -7.0), (Wolf, _) => (-11.0, 0.0), (Frostfang, _) => (-7.0, -3.5), (Mouflon, _) => (-10.5, 3.0), @@ -232,7 +232,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Grolgar, _) => (-10.0, 1.5), (Saber, _) => (-13.5, 0.0), (Tuskram, _) => (-13.0, -2.0), - (Lion, _) => (-13.0, -0.5), + (Lion, _) => (-12.0, -0.5), (Tarasque, _) => (-14.0, -1.0), (Tiger, _) => (-13.0, 0.0), (Wolf, _) => (-12.5, 1.0), @@ -254,9 +254,9 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Grolgar, _) => (-7.0, 4.0, 0.0), (Saber, _) => (7.0, -4.0, -3.5), (Tuskram, _) => (6.0, -6.5, -0.5), - (Lion, _) => (6.5, -8.0, -2.0), + (Lion, _) => (6.5, -6.5, -2.0), (Tarasque, _) => (7.0, -8.0, -6.0), - (Tiger, _) => (7.0, -5.0, -3.0), + (Tiger, _) => (6.0, -5.0, -3.0), (Wolf, _) => (4.5, -6.5, -1.0), (Frostfang, _) => (5.5, -5.5, -2.0), (Mouflon, _) => (5.0, -5.0, -5.0), @@ -267,7 +267,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tuskram, _) => (5.0, -5.5, -3.5), (Lion, _) => (6.0, -6.0, -2.0), (Tarasque, _) => (6.0, -6.5, -6.5), - (Tiger, _) => (6.0, -8.0, -3.0), + (Tiger, _) => (6.0, -7.5, -3.0), (Wolf, _) => (5.0, -6.5, -2.5), (Frostfang, _) => (3.5, -4.5, -2.0), (Mouflon, _) => (3.5, -6.0, -4.5), diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index 237a30d37a..1312b4a088 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -41,6 +41,7 @@ impl Animation for RunAnimation { // let shortalt = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.5).sin(); + let footvert = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.0).sin(); let footvertt = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.4).sin(); let footvertalt = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.2).sin(); @@ -51,11 +52,6 @@ impl Animation for RunAnimation { let footvertaltf = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.5).sin(); let footverttaltf = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.9).sin(); - let footvertslow = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.0).sin(); - let footverttslow = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.4).sin(); - let footvertaltslow = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.2).sin(); - let footverttaltslow = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.6).sin(); - let footvertfslow = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 0.6).sin(); let footverttfslow = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.0).sin(); let footvertaltfslow = (anim_time as f32 * 16.0 * lab as f32 * speedmult + PI * 1.8).sin(); @@ -74,6 +70,7 @@ impl Animation for RunAnimation { } else { 0.0 } * 1.3; + let x_tilt = avg_vel.z.atan2(avg_vel.xy().magnitude()); //let tilt = 0.0; if speed < 8.0 { //Trot @@ -101,11 +98,12 @@ impl Animation for RunAnimation { next.torso_front.offset = Vec3::new( 0.0, skeleton_attr.torso_front.0, - skeleton_attr.torso_front.1 + shortalt * 1.0, + skeleton_attr.torso_front.1 + shortalt * 1.0 + x_tilt, ) * skeleton_attr.scaler / 11.0; - next.torso_front.ori = - Quaternion::rotation_x(short * 0.03) * Quaternion::rotation_z(tilt * -1.5); + next.torso_front.ori = Quaternion::rotation_x(short * 0.03 + x_tilt) + * Quaternion::rotation_y(0.0) + * Quaternion::rotation_z(tilt * -1.5); next.torso_front.scale = Vec3::one() * skeleton_attr.scaler / 11.0; next.torso_back.offset = Vec3::new( @@ -132,20 +130,20 @@ impl Animation for RunAnimation { next.leg_fr.offset = Vec3::new( skeleton_attr.leg_f.0, - skeleton_attr.leg_f.1 + footvertaltslow * -1.4, - skeleton_attr.leg_f.2 + 1.0 + footverttaltslow * -0.3, + skeleton_attr.leg_f.1 + footvertalt * -1.4, + skeleton_attr.leg_f.2 + 1.0 + footverttalt * -0.3, ); - next.leg_fr.ori = Quaternion::rotation_x(footverttaltslow * -0.35) - * Quaternion::rotation_z(tilt * -0.5); + next.leg_fr.ori = + Quaternion::rotation_x(footverttalt * -0.35) * Quaternion::rotation_z(tilt * -0.5); next.leg_fr.scale = Vec3::one() * 1.02; next.leg_bl.offset = Vec3::new( -skeleton_attr.leg_b.0, - skeleton_attr.leg_b.1 + footvertaltslow * -1.0, - skeleton_attr.leg_b.2 + 1.0 + footverttaltslow * -0.3, + skeleton_attr.leg_b.1 + footvertalt * -1.0, + skeleton_attr.leg_b.2 + 1.0 + footverttalt * -0.3, ); - next.leg_bl.ori = Quaternion::rotation_x(footverttaltslow * -0.2) - * Quaternion::rotation_z(tilt * -1.5); + next.leg_bl.ori = + Quaternion::rotation_x(footverttalt * -0.2) * Quaternion::rotation_z(tilt * -1.5); next.leg_bl.scale = Vec3::one() * 1.02; next.leg_br.offset = Vec3::new( @@ -169,18 +167,18 @@ impl Animation for RunAnimation { next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2 + ((footvertslow * -1.0 * skeleton_attr.maximize).max(0.0)), + skeleton_attr.feet_f.2 + ((footvert * -1.0 * skeleton_attr.maximize).max(0.0)), ); next.foot_fr.ori = - Quaternion::rotation_x((1.0 - skeleton_attr.dampen) * -1.0 + footverttslow * 0.5); + Quaternion::rotation_x((1.0 - skeleton_attr.dampen) * -1.0 + footvertt * 0.5); next.foot_fr.scale = Vec3::one() * 0.96; next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2 + ((footvertslow * -1.8).max(0.0)), + skeleton_attr.feet_b.2 + ((footvert * -1.8).max(0.0)), ); - next.foot_bl.ori = Quaternion::rotation_x(footverttslow * 0.5 - 0.2); + next.foot_bl.ori = Quaternion::rotation_x(footvertt * 0.5 - 0.2); next.foot_bl.scale = Vec3::one() * 0.96; next.foot_br.offset = Vec3::new( @@ -196,14 +194,16 @@ impl Animation for RunAnimation { //Gallop next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); - next.head_upper.ori = - Quaternion::rotation_x(short * -0.03 - 0.1) * Quaternion::rotation_z(tilt * -1.2); + next.head_upper.ori = Quaternion::rotation_x(short * -0.03 - 0.1) + * Quaternion::rotation_z(tilt * -1.2) + * Quaternion::rotation_y(tilt * 0.8); next.head_upper.scale = Vec3::one(); next.head_lower.offset = Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); - next.head_lower.ori = - Quaternion::rotation_z(tilt * -0.8) * Quaternion::rotation_x(short * -0.05); + next.head_lower.ori = Quaternion::rotation_z(tilt * -0.8) + * Quaternion::rotation_x(short * -0.05) + * Quaternion::rotation_y(tilt * 0.3); next.head_lower.scale = Vec3::one() * 1.02; next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); @@ -218,11 +218,11 @@ impl Animation for RunAnimation { next.torso_front.offset = Vec3::new( 0.0, skeleton_attr.torso_front.0, - skeleton_attr.torso_front.1 + shortalt * 2.5, + skeleton_attr.torso_front.1 + shortalt * 2.5 + x_tilt * 10.0, ) * skeleton_attr.scaler / 11.0; - next.torso_front.ori = Quaternion::rotation_x(x_tilt) - * Quaternion::rotation_x(short * 0.13) + next.torso_front.ori = Quaternion::rotation_x(short * 0.13 + x_tilt) + * Quaternion::rotation_y(tilt * 0.8) * Quaternion::rotation_z(tilt * -1.5); next.torso_front.scale = Vec3::one() * skeleton_attr.scaler / 11.0; @@ -231,8 +231,9 @@ impl Animation for RunAnimation { skeleton_attr.torso_back.0, skeleton_attr.torso_back.1 + shortalt * 0.2 - 0.2, ); - next.torso_back.ori = - Quaternion::rotation_x(short * 0.1) * Quaternion::rotation_z(tilt * 1.8); + next.torso_back.ori = Quaternion::rotation_x(short * 0.1) + * Quaternion::rotation_z(tilt * 1.8) + * Quaternion::rotation_y(tilt * 0.6); next.torso_back.scale = Vec3::one(); next.ears.offset = Vec3::new(0.0, skeleton_attr.ears.0, skeleton_attr.ears.1); @@ -244,8 +245,9 @@ impl Animation for RunAnimation { skeleton_attr.leg_f.1 + footvertaltf * -1.3, skeleton_attr.leg_f.2 + 1.0 + footverttaltf * -1.9, ); - next.leg_fl.ori = - Quaternion::rotation_x(footverttaltf * -0.65) * Quaternion::rotation_z(tilt * -0.5); + next.leg_fl.ori = Quaternion::rotation_x(footverttaltf * -0.65) + * Quaternion::rotation_z(tilt * -0.5) + * Quaternion::rotation_y(tilt * 1.5); next.leg_fl.scale = Vec3::one() * 1.02; next.leg_fr.offset = Vec3::new( @@ -253,8 +255,9 @@ impl Animation for RunAnimation { skeleton_attr.leg_f.1 + footvertalt * -1.3, skeleton_attr.leg_f.2 + 1.0 + footverttalt * -1.9, ); - next.leg_fr.ori = - Quaternion::rotation_x(footverttalt * -0.65) * Quaternion::rotation_z(tilt * -0.5); + next.leg_fr.ori = Quaternion::rotation_x(footverttalt * -0.65) + * Quaternion::rotation_z(tilt * -0.5) + * Quaternion::rotation_y(tilt * 1.5); next.leg_fr.scale = Vec3::one() * 1.02; next.leg_bl.offset = Vec3::new( @@ -263,6 +266,7 @@ impl Animation for RunAnimation { skeleton_attr.leg_b.2 + 1.0 + footvertt * -1.5, ); next.leg_bl.ori = Quaternion::rotation_x(footvertt * -0.4 - 0.2) + * Quaternion::rotation_y(tilt * 1.5) * Quaternion::rotation_z(tilt * -1.5); next.leg_bl.scale = Vec3::one() * 1.02; @@ -272,6 +276,7 @@ impl Animation for RunAnimation { skeleton_attr.leg_b.2 + 1.0 + footverttf * -1.5, ); next.leg_br.ori = Quaternion::rotation_x(footverttf * -0.4 - 0.2) + * Quaternion::rotation_y(tilt * 1.5) * Quaternion::rotation_z(tilt * -1.5); next.leg_br.scale = Vec3::one() * 1.02; @@ -281,7 +286,8 @@ impl Animation for RunAnimation { skeleton_attr.feet_f.2 + ((footvertf * -2.7 * skeleton_attr.maximize).max(0.0)), ); next.foot_fl.ori = - Quaternion::rotation_x((1.0 - skeleton_attr.dampen) * -1.0 + footverttf * 0.9); + Quaternion::rotation_x((1.0 - skeleton_attr.dampen) * -1.0 + footverttf * 0.9) + * Quaternion::rotation_y(tilt * -1.0); next.foot_fl.scale = Vec3::one() * 0.96; next.foot_fr.offset = Vec3::new( @@ -290,7 +296,8 @@ impl Animation for RunAnimation { skeleton_attr.feet_f.2 + ((footvert * -2.7 * skeleton_attr.maximize).max(0.0)), ); next.foot_fr.ori = - Quaternion::rotation_x((1.0 - skeleton_attr.dampen) * -1.0 + footvertt * 0.9); + Quaternion::rotation_x((1.0 - skeleton_attr.dampen) * -1.0 + footvertt * 0.9) + * Quaternion::rotation_y(tilt * -1.0); next.foot_fr.scale = Vec3::one() * 0.96; next.foot_bl.offset = Vec3::new( @@ -298,7 +305,8 @@ impl Animation for RunAnimation { skeleton_attr.feet_b.1, skeleton_attr.feet_b.2 + ((footvert * 2.4).max(0.0)), ); - next.foot_bl.ori = Quaternion::rotation_x(footvertt * -0.9 - 0.2); + next.foot_bl.ori = Quaternion::rotation_x(footvertt * -0.9 - 0.2) + * Quaternion::rotation_y(tilt * -1.0); next.foot_bl.scale = Vec3::one() * 0.96; next.foot_br.offset = Vec3::new( @@ -306,7 +314,8 @@ impl Animation for RunAnimation { skeleton_attr.feet_b.1, skeleton_attr.feet_b.2 + ((footvertf * 2.4).max(-0.0)), ); - next.foot_br.ori = Quaternion::rotation_x(footverttf * -0.9 - 0.2); + next.foot_br.ori = Quaternion::rotation_x(footverttf * -0.9 - 0.2) + * Quaternion::rotation_y(tilt * -1.0); next.foot_br.scale = Vec3::one() * 0.96; } next diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs index 51ddec5910..6796824b3b 100644 --- a/voxygen/src/scene/figure/mod.rs +++ b/voxygen/src/scene/figure/mod.rs @@ -579,7 +579,7 @@ impl FigureMgr { // Standing (true, false, _) => anim::character::StandAnimation::update_skeleton( &CharacterSkeleton::new(), - (active_tool_kind, second_tool_kind, time), + (active_tool_kind, second_tool_kind, time, state.avg_vel), state.state_time, &mut state_animation_rate, skeleton_attr, @@ -594,6 +594,7 @@ impl FigureMgr { ori, state.last_ori, time, + state.avg_vel, ), state.state_time, &mut state_animation_rate, @@ -1070,9 +1071,9 @@ impl FigureMgr { ) }, // Running - (true, true, false) => anim::quadruped_low::RunAnimation::update_skeleton( + (true, true, _) => anim::quadruped_low::RunAnimation::update_skeleton( &QuadrupedLowSkeleton::new(), - (vel.0.magnitude(), ori, state.last_ori, time), + (vel.0.magnitude(), ori, state.last_ori, time, state.avg_vel), state.state_time, &mut state_animation_rate, skeleton_attr, @@ -1085,12 +1086,29 @@ impl FigureMgr { &mut state_animation_rate, skeleton_attr, ), - + _ => anim::quadruped_low::IdleAnimation::update_skeleton( + &QuadrupedLowSkeleton::new(), + time, + state.state_time, + &mut state_animation_rate, + skeleton_attr, + ), + }; + let target_bones = match &character { + CharacterState::BasicMelee(_) => { + anim::quadruped_low::AlphaAnimation::update_skeleton( + &target_base, + time, + state.state_time, + &mut state_animation_rate, + skeleton_attr, + ) + }, // TODO! - _ => state.skeleton_mut().clone(), + _ => target_base, }; - state.skeleton.interpolate(&target_base, dt); + state.skeleton.interpolate(&target_bones, dt); state.update( renderer, pos.0, @@ -1145,7 +1163,7 @@ impl FigureMgr { skeleton_attr, ), // Running - (true, true, false) => anim::bird_medium::RunAnimation::update_skeleton( + (true, true, _) => anim::bird_medium::RunAnimation::update_skeleton( &BirdMediumSkeleton::new(), (vel.0.magnitude(), time), state.state_time, From 188bdccd3c7f5e69e91d7715a45a41f6c32a465c Mon Sep 17 00:00:00 2001 From: Joshua Barretto Date: Sat, 4 Jul 2020 20:22:55 +0100 Subject: [PATCH 44/48] Velocity-corrected bezier pathfinding control, swimming control --- common/src/comp/agent.rs | 1 - common/src/comp/controller.rs | 4 ++ common/src/path.rs | 102 +++++++++++++++++++++++++++++----- common/src/states/utils.rs | 2 +- common/src/sys/agent.rs | 27 ++++----- voxygen/src/session.rs | 3 + voxygen/src/settings.rs | 4 ++ voxygen/src/window.rs | 2 + 8 files changed, 112 insertions(+), 33 deletions(-) diff --git a/common/src/comp/agent.rs b/common/src/comp/agent.rs index cda306333d..59edb06269 100644 --- a/common/src/comp/agent.rs +++ b/common/src/comp/agent.rs @@ -81,7 +81,6 @@ pub enum Activity { Follow { target: EcsEntity, chaser: Chaser, - move_dir: Vec2, }, Attack { target: EcsEntity, diff --git a/common/src/comp/controller.rs b/common/src/comp/controller.rs index 2912fce476..b77cd9506f 100644 --- a/common/src/comp/controller.rs +++ b/common/src/comp/controller.rs @@ -157,6 +157,7 @@ pub struct ControllerInputs { pub wall_leap: Input, pub charge: Input, pub climb: Option, + pub swim: Input, pub move_dir: Vec2, pub look_dir: Dir, } @@ -180,6 +181,7 @@ impl ControllerInputs { self.glide.tick(dt); self.wall_leap.tick(dt); self.charge.tick(dt); + self.swim.tick(dt); } pub fn tick_freshness(&mut self) { @@ -191,6 +193,7 @@ impl ControllerInputs { self.glide.tick_freshness(); self.wall_leap.tick_freshness(); self.charge.tick_freshness(); + self.swim.tick_freshness(); } /// Updates Controller inputs with new version received from the client @@ -204,6 +207,7 @@ impl ControllerInputs { self.wall_leap.update_with_new(new.wall_leap); self.charge.update_with_new(new.charge); self.climb = new.climb; + self.swim.update_with_new(new.swim); self.move_dir = new.move_dir; self.look_dir = new.look_dir; } diff --git a/common/src/path.rs b/common/src/path.rs index c865dca6d2..894a721cfb 100644 --- a/common/src/path.rs +++ b/common/src/path.rs @@ -59,31 +59,96 @@ impl From>> for Route { impl Route { pub fn path(&self) -> &Path> { &self.path } - pub fn next(&self) -> Option> { self.path.nodes.get(self.next_idx).copied() } + pub fn next(&self, i: usize) -> Option> { + self.path.nodes.get(self.next_idx + i).copied() + } - pub fn is_finished(&self) -> bool { self.next().is_none() } + pub fn is_finished(&self) -> bool { self.next(0).is_none() } pub fn traverse( &mut self, vol: &V, pos: Vec3, + vel: Vec3, traversal_tolerance: f32, - ) -> Option> + ) -> Option<(Vec3, f32)> where V: BaseVol + ReadVol, { - let next = self.next()?; - if vol.get(next).map(|b| b.is_solid()).unwrap_or(false) { + let next0 = self.next(0).unwrap_or(pos.map(|e| e.floor() as i32)); + let next1 = self.next(1).unwrap_or(next0); + if vol.get(next0).map(|b| b.is_solid()).unwrap_or(false) { None } else { - let next_tgt = next.map(|e| e as f32) + Vec3::new(0.5, 0.5, 0.0); + let next_tgt = next0.map(|e| e as f32) + Vec3::new(0.5, 0.5, 0.0); if pos.xy().distance_squared(next_tgt.xy()) < traversal_tolerance.powf(2.0) && next_tgt.z - pos.z < 0.2 && next_tgt.z - pos.z > -2.2 + && vel.z <= 0.0 + && vol + .ray(pos + Vec3::unit_z() * 0.5, next_tgt + Vec3::unit_z() * 0.5) + .until(|block| block.is_solid()) + .cast() + .0 + > pos.distance(next_tgt) * 0.9 { self.next_idx += 1; } - Some(next_tgt - pos) + + let line = LineSegment2 { + start: pos.xy(), + end: pos.xy() + vel.xy() * 100.0, + }; + + let align = |block_pos: Vec3| { + (0..2) + .map(|i| (0..2).map(move |j| Vec2::new(i, j))) + .flatten() + .map(|rpos| block_pos + rpos) + .map(|block_pos| { + let block_posf = block_pos.xy().map(|e| e as f32); + let proj = line.projected_point(block_posf); + let clamped = proj.clamped( + block_pos.xy().map(|e| e as f32), + block_pos.xy().map(|e| e as f32), + ); + + (proj.distance_squared(clamped), clamped) + }) + .min_by_key(|(d2, _)| (d2 * 1000.0) as i32) + .unwrap() + .1 + }; + + let cb = CubicBezier2 { + start: pos.xy(), + ctrl0: pos.xy() + vel.xy().try_normalized().unwrap_or(Vec2::zero()), + ctrl1: align(next0), + end: align(next1), + }; + + let tgt2d = cb.evaluate(0.5); + let tgt = Vec3::from(tgt2d) + Vec3::unit_z() * next_tgt.z; + let tgt_dir = (tgt - pos).xy().try_normalized().unwrap_or(Vec2::unit_y()); + let next_dir = cb + .evaluate_derivative(0.5) + .try_normalized() + .unwrap_or(tgt_dir); + + //let vel_dir = vel.xy().try_normalized().unwrap_or(Vec2::zero()); + //let avg_dir = (tgt_dir * 0.2 + vel_dir * + // 0.8).try_normalized().unwrap_or(Vec2::zero()); let bearing = + // Vec3::::from(avg_dir * (tgt - pos).xy().magnitude()) + Vec3::unit_z() * + // (tgt.z - pos.z); + + Some(( + tgt - pos, + next_dir + .dot(vel.xy().try_normalized().unwrap_or(Vec2::zero())) + .max(0.0) + * 0.75 + + 0.25, + )) } } } @@ -106,10 +171,11 @@ impl Chaser { &mut self, vol: &V, pos: Vec3, + vel: Vec3, tgt: Vec3, min_dist: f32, traversal_tolerance: f32, - ) -> Option> + ) -> Option<(Vec3, f32)> where V: BaseVol + ReadVol, { @@ -125,14 +191,12 @@ impl Chaser { None } else { if thread_rng().gen::() < 0.005 { + // Randomly repath to avoid getting stuck None } else { self.route .as_mut() - .and_then(|r| r.traverse(vol, pos, traversal_tolerance)) - .filter(|b| { - b.xy().magnitude_squared() < (traversal_tolerance + 1.0).powf(2.0) - }) + .and_then(|r| r.traverse(vol, pos, vel, traversal_tolerance)) } } } else { @@ -156,7 +220,7 @@ impl Chaser { } } - Some((tgt - pos) * Vec3::new(1.0, 1.0, 0.0)) + Some(((tgt - pos) * Vec3::new(1.0, 1.0, 0.0), 0.75)) } } } @@ -276,8 +340,16 @@ where .map(move |(dir, _)| pos + *dir), ) }; - let transition = - |_a: &Vec3, b: &Vec3| 1.0 + endf.distance((*b).map(|e| e as f32 + 0.5)) * 0.02; + + let crow_line = LineSegment2 { + start: startf.xy(), + end: endf.xy(), + }; + + let transition = |a: &Vec3, b: &Vec3| { + 1.0 + crow_line.distance_to_point(b.xy().map(|e| e as f32)) * 0.025 + + (b.z - a.z - 1).max(0) as f32 * 3.0 + }; let satisfied = |pos: &Vec3| pos == &end; let mut new_astar = match astar.take() { diff --git a/common/src/states/utils.rs b/common/src/states/utils.rs index 229f08f60d..63920ba5c3 100644 --- a/common/src/states/utils.rs +++ b/common/src/states/utils.rs @@ -100,7 +100,7 @@ fn swim_move(data: &JoinData, update: &mut StateUpdate, efficiency: f32) { handle_orientation(data, update, if data.physics.on_ground { 9.0 } else { 2.0 }); // Swim - if data.inputs.jump.is_pressed() { + if data.inputs.swim.is_pressed() { update.vel.0.z = (update.vel.0.z + data.dt.0 * GRAVITY * 2.25).min(BASE_HUMANOID_WATER_SPEED); } diff --git a/common/src/sys/agent.rs b/common/src/sys/agent.rs index 935c99609b..ef5e4a49e5 100644 --- a/common/src/sys/agent.rs +++ b/common/src/sys/agent.rs @@ -126,7 +126,7 @@ impl<'a> System<'a> for Sys { // and so can afford to be less precise when trying to move around // the world (especially since they would otherwise get stuck on // obstacles that smaller entities would not). - let traversal_tolerance = scale + vel.0.magnitude() * 0.25; + let traversal_tolerance = scale + vel.0.magnitude() * 0.3; let mut do_idle = false; let mut choose_target = false; @@ -187,30 +187,24 @@ impl<'a> System<'a> for Sys { choose_target = true; } }, - Activity::Follow { - target, - chaser, - move_dir, - } => { + Activity::Follow { target, chaser } => { if let (Some(tgt_pos), _tgt_stats) = (positions.get(*target), stats.get(*target)) { let dist_sqrd = pos.0.distance_squared(tgt_pos.0); // Follow, or return to idle if dist_sqrd > AVG_FOLLOW_DIST.powf(2.0) { - if let Some(bearing) = chaser.chase( + if let Some((bearing, speed)) = chaser.chase( &*terrain, pos.0, + vel.0, tgt_pos.0, AVG_FOLLOW_DIST, traversal_tolerance, ) { - *move_dir = 0.9f32 * *move_dir - + 0.1f32 - * Vec2::from(bearing) - .try_normalized() - .unwrap_or(Vec2::zero()); - inputs.move_dir = *move_dir; + inputs.move_dir = + bearing.xy().try_normalized().unwrap_or(Vec2::zero()) + * speed; inputs.jump.set_state(bearing.z > 1.5); } } else { @@ -314,16 +308,18 @@ impl<'a> System<'a> for Sys { } // Long-range chase - if let Some(bearing) = chaser.chase( + if let Some((bearing, speed)) = chaser.chase( &*terrain, pos.0, + vel.0, tgt_pos.0, 1.25, traversal_tolerance, ) { inputs.move_dir = Vec2::from(bearing) .try_normalized() - .unwrap_or(Vec2::zero()); + .unwrap_or(Vec2::zero()) + * speed; inputs.jump.set_state(bearing.z > 1.5); } @@ -429,7 +425,6 @@ impl<'a> System<'a> for Sys { agent.activity = Activity::Follow { target: owner, chaser: Chaser::default(), - move_dir: Vec2::zero(), }; } diff --git a/voxygen/src/session.rs b/voxygen/src/session.rs index 84fc0f3765..32e8609d0e 100644 --- a/voxygen/src/session.rs +++ b/voxygen/src/session.rs @@ -347,6 +347,9 @@ impl PlayState for SessionState { Event::InputUpdate(GameInput::Jump, state) => { self.inputs.jump.set_state(state); }, + Event::InputUpdate(GameInput::Swim, state) => { + self.inputs.swim.set_state(state); + }, Event::InputUpdate(GameInput::Sit, state) if state != self.key_state.toggle_sit => { diff --git a/voxygen/src/settings.rs b/voxygen/src/settings.rs index 23f3eaa5fc..64b51eb2df 100644 --- a/voxygen/src/settings.rs +++ b/voxygen/src/settings.rs @@ -120,6 +120,7 @@ impl ControlSettings { GameInput::Glide => KeyMouse::Key(VirtualKeyCode::LShift), GameInput::Climb => KeyMouse::Key(VirtualKeyCode::Space), GameInput::ClimbDown => KeyMouse::Key(VirtualKeyCode::LControl), + GameInput::Swim => KeyMouse::Key(VirtualKeyCode::Space), //GameInput::WallLeap => MIDDLE_CLICK_KEY, GameInput::ToggleLantern => KeyMouse::Key(VirtualKeyCode::G), GameInput::Mount => KeyMouse::Key(VirtualKeyCode::F), @@ -178,6 +179,7 @@ impl Default for ControlSettings { GameInput::Glide, GameInput::Climb, GameInput::ClimbDown, + GameInput::Swim, //GameInput::WallLeap, GameInput::ToggleLantern, GameInput::Mount, @@ -281,6 +283,7 @@ pub mod con_settings { pub glide: Button, pub climb: Button, pub climb_down: Button, + pub swim: Button, //pub wall_leap: Button, pub toggle_lantern: Button, pub mount: Button, @@ -369,6 +372,7 @@ pub mod con_settings { glide: Button::Simple(GilButton::LeftTrigger), climb: Button::Simple(GilButton::South), climb_down: Button::Simple(GilButton::Unknown), + swim: Button::Simple(GilButton::South), //wall_leap: Button::Simple(GilButton::Unknown), toggle_lantern: Button::Simple(GilButton::East), mount: Button::Simple(GilButton::North), diff --git a/voxygen/src/window.rs b/voxygen/src/window.rs index c859676083..7402e81e4b 100644 --- a/voxygen/src/window.rs +++ b/voxygen/src/window.rs @@ -39,6 +39,7 @@ pub enum GameInput { Glide, Climb, ClimbDown, + Swim, //WallLeap, ToggleLantern, Mount, @@ -82,6 +83,7 @@ impl GameInput { GameInput::Glide => "gameinput.glide", GameInput::Climb => "gameinput.climb", GameInput::ClimbDown => "gameinput.climbdown", + GameInput::Swim => "gameinput.swim", //GameInput::WallLeap => "gameinput.wallleap", GameInput::ToggleLantern => "gameinput.togglelantern", GameInput::Mount => "gameinput.mount", From 1acc4937a3643368e84317a8668b1212e63153f8 Mon Sep 17 00:00:00 2001 From: Snowram Date: Sun, 5 Jul 2020 03:45:50 +0200 Subject: [PATCH 45/48] Various small improvements to anims and models --- assets/voxygen/voxel/npc/monitor/male/jaw.vox | Bin 44387 -> 1280 bytes .../voxel/npc/mouflon/male/foot_bl.vox | Bin 1192 -> 1292 bytes .../voxel/npc/mouflon/male/foot_br.vox | Bin 1192 -> 1292 bytes .../voxel/npc/mouflon/male/head_upper.vox | Bin 2704 -> 2704 bytes assets/voxygen/voxel/npc/mouflon/male/jaw.vox | Bin 1144 -> 1144 bytes .../voxygen/voxel/npc/mouflon/male/leg_bl.vox | Bin 1560 -> 1532 bytes .../voxygen/voxel/npc/mouflon/male/leg_br.vox | Bin 1560 -> 1532 bytes .../voxygen/voxel/npc/mouflon/male/leg_fl.vox | Bin 1436 -> 1460 bytes .../voxygen/voxel/npc/mouflon/male/leg_fr.vox | Bin 1436 -> 1460 bytes .../voxygen/voxel/npc/saber/male/Saber-10.vox | Bin 1836 -> 0 bytes .../voxygen/voxel/npc/saber/male/Saber-7.vox | Bin 2048 -> 0 bytes .../voxygen/voxel/npc/saber/male/Saber-8.vox | Bin 2048 -> 0 bytes .../voxygen/voxel/npc/saber/male/Saber-9.vox | Bin 1836 -> 0 bytes .../voxel/npc/saber/male/head_upper.vox | Bin 2836 -> 2836 bytes assets/voxygen/voxel/npc/saber/male/jaw.vox | Bin 1248 -> 1280 bytes .../voxygen/voxel/npc/tiger/male/foot_br.vox | Bin 55811 -> 1328 bytes .../voxygen/voxel/npc/tiger/male/foot_fr.vox | Bin 55855 -> 1372 bytes .../voxel/npc/tiger/male/head_upper.vox | Bin 3152 -> 3220 bytes assets/voxygen/voxel/npc/tiger/male/jaw.vox | Bin 1208 -> 1240 bytes .../voxygen/voxel/npc/tiger/male/leg_br.vox | Bin 56123 -> 1640 bytes .../voxygen/voxel/npc/tiger/male/leg_fr.vox | Bin 56119 -> 1636 bytes .../voxel/quadruped_low_central_manifest.ron | 2 +- .../quadruped_medium_lateral_manifest.ron | 16 ++++++++-------- voxygen/src/anim/src/quadruped_low/mod.rs | 2 +- voxygen/src/anim/src/quadruped_medium/mod.rs | 6 +++--- voxygen/src/anim/src/quadruped_medium/run.rs | 8 ++++---- 26 files changed, 17 insertions(+), 17 deletions(-) delete mode 100644 assets/voxygen/voxel/npc/saber/male/Saber-10.vox delete mode 100644 assets/voxygen/voxel/npc/saber/male/Saber-7.vox delete mode 100644 assets/voxygen/voxel/npc/saber/male/Saber-8.vox delete mode 100644 assets/voxygen/voxel/npc/saber/male/Saber-9.vox diff --git a/assets/voxygen/voxel/npc/monitor/male/jaw.vox b/assets/voxygen/voxel/npc/monitor/male/jaw.vox index 3188b076db8c40fab19eedb29b9c61ebe1caf32a..fb51485424f7c2048d98afedb5ece3150405bbab 100644 GIT binary patch delta 32 mcmaESi>ZN2D9k@XVHyJigRi5fACO{r!!l9m(dPY3JS+g7KM5@W literal 44387 zcmd7adt8&(83*u_3)ae1S`h^-q$mn#F#!T7TJS;<@1j!0OAI80cZ4KM0s^CUmextF z)l!DK)~W5Bb5^ZRSi5$!u5-@KDYLHY);Z_8uDiF}x~{uEJNv9WA zjGTn7$Eep`G03w)uPfBcvyPKaw#gJF+oE*3D?*<2vR%l$K`(j?I?w5I^te0gY z*Xy{NEq9iI*2icTg&lLeLV0kRJ%Y(b~(HENYi|4E@OW;iJ!EHR)=CRi~xnSlA2KM60A-yb- zy_h(pS5{;%77gi@9ofrxt6n*gy;waYmNl{$-(Ev{JSBTCo2-O^p4J-j9u?{pUhg_IPO*EnQ?L`-TE)X;?&EZKc%JZl|t2KFaIz zQcO`C#cwi^Y0FefKQMztaTJN#5hM=XN#cAQ#Viptu1?T|-GZh)FKBqJppmVD#>jHq zF+n*?qG{&x(NwW@3_aR?7tL=Gw4y^$`b7H z!^vd1Fonjg7c^%Pfm7KqMIEju?Bu>Xt+w?>_VjfG^W+xIYyqh}Y-PSGB z>zYPy%X3Ggpc79DI(J0S#Z$6eBb+X%IDM4l9}PQGaIK<@hl5HHEROx%9Z<35JS5ksih`w z1s&ekOx;JfQ@baHTGk~}baXV0A9DvyPmCc;dJ5%cPNtbz>9qUd33TFM3cYbLgRWnm zN>9r<&m0zX=_NsLy(XwxOQXH5*>wK+JbLfVmE_+MLpzVg(y5+!x=zVdA@@VA-y!#< zLD0PP|GoaY#goJ9f39(fT7S~`(Ug%gmNJq@Q9=4BTAe?VR$KblpPQ6Gr5TfGeQqZC z=g*+>j5yMA5@}~iD)IWWv$LsURT0&??xTXXhbX=^o-RBi=-N6#$I{Yh%=iSFFfo7Me(tw; z!D(8%@)G%Lh?@2sq1I>5(Br3HrG2klC9AKEMxA_@qUWrmL|Y3L6&2A<`BD+XWugzr za8=Na7el@q^8Wg`cKH(Imn1*_!smnQ)`!cHZIR`H<09KsK>6+e^pS62s}}QHS>JKH z%&2E)u*v5fE(J*fkLjp7V>)rwve|UTgaCm zTgbO7wvb&Xhb?3swr~WzFdAOSKUQL2<&p5hQSidi@IwBv9{WDL173J1 zyl@P>kUtB;z7NO33*+F0m!Uy1mTi}Hc!V5nGFWd?*d;Dyh?3!jA-ei2@H7+&}#c;OLv;g{isN8yEE zffpWw7d{6sJPt2B0WUlWFMJ+ecnV&48eaHSc;Oj%VHdox8(#P|c;O51!WZF%UxydI z1TTCUUib}o;Wy!hXW@mfzzfg83%>;~d=*~!ZFu2%c;R>8g%{w3--Q=mgcp7fUif`@ z;U#$C58#ED;e}V=g+1`XAHoZ-!V6!67hZ!G{s><9I=t}5@WMCXg+GB8{uEyLCcN-x z@WSix!k@znZ@>$G0WZ7>FZ?CE@GW@Zui%Am!wY{6FMJ1H_#1fPZ{dZ%gBSiDUib%i z;UD3Je}Wgj3om>RUifEt;a}i|e}xym4=?;1yzm2f;osqfAHoa&0WbU~yzpP}!hgdH z{{t`lFT9W-h5lu87iv<*$1s_qWU>XDd`=^0G*7i&oelE4IWtccYNKT#%W5_CCLU(9 zdt7cO54M_3R zA?(3ArSjXGY>tpUCtOiGLiW$Gnk?oVUV^Hx)0~4la>Xqd$_=j2vhuBJR&Tb=p_bKG zQsXS<&<0s7YPmBQDvv?SWw@={>$3GNITYuXyUYuIK!u1{u$tBF^aRuutM)eV@Eofu zIlR>&YF3EqZ1j1VYEi8XnoGIaWDA7yid5;gJDfI;Y8+7ER}~Cd(+lCb)%<+NsEw?2 zd%blkdY#r7+WF892deCDrwVWzPiGJKoK-=n-B#)955g^Gll9zUCN!~H!G_)_+$%h> z%DDX60Dm}&x>Nz5y-M?_i)rZ(%j=S_!z|TBz7BnEdsFyo^8c^K$L%tOCkh2~27@x# tfNkSJ7Pb1o=Kj3huJU1=3av`K;Qmsj%T_h0q{f+*Q{5mu#$u9R9|4`h!E*or diff --git a/assets/voxygen/voxel/npc/mouflon/male/foot_bl.vox b/assets/voxygen/voxel/npc/mouflon/male/foot_bl.vox index d587cc76bf38c90a15c090b4e3104e7b61e96e0f..210c891e64d13229701ffd91e261e7f7a7e2c283 100644 GIT binary patch literal 1292 zcmeH`ze)o^5XQfmxxb!;VrM0}M(zwKSg1irM3Lh#f&oeL3ihJ4Vq>SGPjK(zBiXIr zUMHzy1QA^L-8Z}6?CuQQUY?IPUICm9sv!j*0WhkjC(C}qp@d6VBIC)ldZ+ra<3AFX zB9?;)V`!KQtOFt%79s)Hl|E6%2s#3#PrL_oMTEY`#{_cBgGsuD`wI z*4I|usNb8ZXLz{hnzt8s+gougx%HdpE7v?uW^xzl<^JaSN6%ZNmU;JPS@vgZpSRcl Q{O`TlgL3oBKfkx9onLU)Xu#}FW@4IHxOKlV=rf(AN)wjm)w%i zCcSk1;RT>6>Q;j1J>5=5W+nRTP>(Uy?FH#GL|_AHGD;x@t-J{kjGk0RWh^zzwJb^G g{ClsS3lyMJ*QpzSKAfv#0f)z$vwe5F@4}P)0m4ZU3IG5A diff --git a/assets/voxygen/voxel/npc/mouflon/male/foot_br.vox b/assets/voxygen/voxel/npc/mouflon/male/foot_br.vox index d587cc76bf38c90a15c090b4e3104e7b61e96e0f..d45bdddda3ae8009825d29cb793c0f768d2a2d17 100644 GIT binary patch delta 259 zcmW-ZJ5Iw;5Jl(C`1f4JVgo3zv*m)CDpHyhfM~#p#6qaDfi!NYSU~zTEFnvx%yFJ{ z=FWLnnsYj}-N)PX_+w@-o82p6|8w_nELd8Y_J`ed`Q<$=!^@sIYQf7am4ku2U@x+P ztXLaJfd?LV;Ep@)xZ}cwYil6cXm^^gL8>@hkqw#1nykq*n5W*nf*P7$US)X=4Ww*A ZAM`;V^g$o=K_4m4zkl)lyt;hqJ#H-478L*h delta 166 zcmW-YKMKN77{inIN3mNG!BJl49->kx9onLU)Xu#}FW@4IHxOKlV=rf(AN)wjm)w%i zCcSk1;RT>6>Q;j1J>5=5W+nRTP>(Uy?FH#GL|_AHGD;x@t-J{kjGk0RWh^zzwJb^G g{ClsS3lyMJ*QpzSKAfv#0f)z$vwe5F@4}P)0m4ZU3IG5A diff --git a/assets/voxygen/voxel/npc/mouflon/male/head_upper.vox b/assets/voxygen/voxel/npc/mouflon/male/head_upper.vox index ab4d003b34b93e9ef5d7467f016e232e5b94ee19..5387f5decb95895b39b52620a5e7faa95e2c2cd0 100644 GIT binary patch delta 25 hcmbOrIze>8WmY{lZYI5rH*(mR>!hSMyR&;T0{~?m2Oj_c delta 25 hcmbOrIze>8WmauAZYJ%GH*(mRy}i9RyR&;T0{~^B2S@+_ diff --git a/assets/voxygen/voxel/npc/mouflon/male/jaw.vox b/assets/voxygen/voxel/npc/mouflon/male/jaw.vox index 396c2b99491348b4f3c04d4f5ae5a5165a3bc658..3b31ca561344dec112266dc8c9826344d6941434 100644 GIT binary patch delta 24 fcmeyt@q=SRFsmLT1Eb!=h%3x>Qc|1s89kW+Vp#_0 delta 24 fcmeyt@q=SRFsl|L1Eb=^h%3zA-rk$_89kW+Vo?VM diff --git a/assets/voxygen/voxel/npc/mouflon/male/leg_bl.vox b/assets/voxygen/voxel/npc/mouflon/male/leg_bl.vox index c966f94287ecf2a4b2ed494490d448481f4589f3..f20b21ea8fc5ae1ea8ac1655aacaa8ed399d032f 100644 GIT binary patch literal 1532 zcmeH`&uW!15XEQaB>9BvridF?rk8+37hSmU4?-)5TrRd?LE658xRvfJZrrKp6Wn+3 zk$j7H0=PnzV zYJ@KxC`y%arc(n&?vW-mOwC1v$Ajn--1OPtNmY?rge?Poo=Oc7(P<)&LQg>xIey$r zH81EX=oxdy+0krx!IP(4ZFo~|p$t#%HgdFhuof9!weXAv)|{SE3(v+Jp14sw3mw6p z*p7je;7;9ul<-8YRE?<7j|UIxNO&0cM-2>r!F`*f&zLhfh$70h?c)C7mmAUh>zB{> zEMkde!=}C z|L0hfon#dwh>(GzAJg4aHRsIhqtpA}&Fo-*eJEp*%}&z^)1 z>#YE{5yZ$CDk(&n$kG@gKR1FC1V*X|jzCNh&&;N2^^YJR&yM(K4`Z3tj|f6NDc52;^$E+C@Y>u`6%is;w0ad_fpM^ z_!RN!IoH{2*0o5JN3Oc0M&<@)&B>E>UtAp8L)P4A@GK76bM^F?(rn5}lXYDP@t|tB zL`NjePLl~_k|xDW)nwWGrNN;XNgDe7DHcrn5FyUuXUdso$ijRD!^)}qmrr+D$U=9* zB|Vl@Eu|S|jb`=u)rj~FP}cldygK@_wL-DPxhW);&ZtBWZwSx zHgAva&Z2y=zy11V-hMv2RC^sQAK$A=p@DvJA+?B85d%ghUWo785WaNp2yemGluCI~Bcxy$3JJ zyO=zaE~JVPMDT;N@6XJ8=A8L<_x<7V=64Z!yT3Rf$gd=Fv^ageHVU2qwB!LeJ~>_d zR1%)^@u9h?>s(?g;vjMp&sD<7Qx&tOKq88U&DFdaaG>hNlpKgnRfSr-IuM6Vd5TZkd^kCUX3k z=Hi;slhHGJ!r4}Rc)^oJDn7h=o5MZ2T|Y@RrGQH^h5>t*1I>a z_OD+muWz|r_P>f}Py3fomwj*NNq@Al-jDWP+|qOKa<{L3eCw;jhaJh+>#MJ4ef9a| q*53Pg`FQc+kMi9|%Ux$@v)MnZ{jOgB@Bh8u?DOr%H@+j|@B0cT1p2rD literal 1560 zcmeH`&1zIZ5QR@w_3gegZbaO;vS(MkdKEb?^ z?{ob+JIN|W5W$8+{d8B|bEA zR}SQ*N`+ctAkUMfak3bj2bMnWSR3h0oqC_4%7QZ2CXjKKFoO@R}>k+)LA z3VaHDdd~QEwCGyU9}|K(ol9DY`CC@CeSt z(mK*W?_mm{7|=uA2A5@8S@Tc02!7JbEyH{`h|0zkhGOee=eAy#M3^pToU}^X~iC zd3SVchVuFT?#t_W_v!S)*{f*z@b2v&?ROO}m#tka7XK{w%WD09{`cPOO#?!+WmQJgsN|x| zN>^ldx(C@{of%c4b9ByJSRVjaMLN%wQU`VHlB$qZlnukA703qji0}a|kahEv`H(Z& z7}jatl^k=_?eAv0y?kX(T?VrF#$;P*G-M!(S6Pe6f3t?-x0SB2rc&uyF;xy=c+AOp V%|1JupM7%f}bTvGsE{hi+V91a6Ry3mC#bfLpd=xU#z9v>;ru2{WZFa0WZ zx6{-8Z93fAOsmUFX?VE*X`lYVPMW^Gr0HNKvGq)!K3}EjnVcg}KmbN!?JzO&1` bwXIg`&+b0&S^x9D_Ra3KH$J>0`48|8O6T?G diff --git a/assets/voxygen/voxel/npc/mouflon/male/leg_fr.vox b/assets/voxygen/voxel/npc/mouflon/male/leg_fr.vox index 6643bd1745c94b73a9ceb1db11da23a3407d9488..e4998e2e46a3a1d1d9f27d17f03db3cb9731debc 100644 GIT binary patch delta 77 zcmbQky@gva%s)b58Uq7^ucN0QkYZRcQBYiv1IUPojPfjC1PL)PL~pbVXOv)MWY=P3 ZX4hh10@6(EstiCr12eno<_U~EEC3$D3%dXS delta 52 zcmdnOJ%?K`%s)b58Uq7^ucN0QkYebVC@3z-4rD|`MtMdsf`k|tLN{85Gj3kN$io5v DAH)h- diff --git a/assets/voxygen/voxel/npc/saber/male/Saber-10.vox b/assets/voxygen/voxel/npc/saber/male/Saber-10.vox deleted file mode 100644 index f8f2e5a1a468959aba6eccbf22f5c382f7def914..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1836 zcma)5ZD^Hc7`~s6_w0PGm2>W^Z5^HM9K$td+s^wAo9WOwXUyf&`GJO#hhfU-3>^nU zSK<1vMp20w@3k>nB^H+8lAqN(t^Mi?s@MOa5h891r}GHM8| zZAxp&Xl*F9tF_8#qY0HUvk0V&4y3dpbimUpkWo6|YL$~R%5jwrX0$l;IgE2MS~;Gg zREGVSuUK2Lrcs*p*vAKXXv;nheT2{!o*U|x($Y5c8|E56mwb%&VO*mvIWU*?v@+yD z{whcwnte=4aUP`%`x(yb_w{YYh#^l)PRz4m&KdHw38l29v_V&!V9F4R(3(=`xZ38h zcMf-x<0@YoN*nZyrY;fB_>3+!jUmXVFE+~0sg*8=-cgH;_?uWIMrk}e~ z{)~KQRyeD2CpOBfGf-kw^rEbDlgvEAZ=&9q2ih zhvVn-api6iW>AhU?qhcTo!m>WU`68J=ijq-;otLrvA=D0{<6ZSkc`hovOE`FA{QGP zV%Sjg|L3o*t;NauF;v%_g*R{*Mg2v%`I+Fm&4LS6RY)Wf*gd}&Ygb=|^!H(I&s^yb^h1=%g&X<*#>MFueMa4h%@5lMIHg()a&u-wr=sEO% zK7kLeev8xJ+`~)z2C(e#7+OEQj*iRs(A3m~2Lectz#lO81oy8!%aW`31|Pa b$K{#LTky#CosaY<$tRsXp7Xf=gjo3t5Rh6u diff --git a/assets/voxygen/voxel/npc/saber/male/Saber-7.vox b/assets/voxygen/voxel/npc/saber/male/Saber-7.vox deleted file mode 100644 index a03f0701372a305de8e4de78172dcdad50f99f81..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2048 zcma)5ZD^Hc7`~s6_uct+<(%%LZB1u8$8gQrwsYQLGaWkTjJaGoKhRL}FiaVpq2pla zN?c*CH8!P>X)#1hQ`tsQU?W5X5s`=>MEnu`iHL~k-_`XVF@%hI;NpJnkLP~w`?{Z} z>xGRKqaxD2ymcLg{G2D!+1lL_@f9wI2obZ0jhnh#zcSo#{X&?48dE-kLMda0(ohPa z9LX5M`nnFLlmwGXLMc%pPg|4HR(sY_8SUt#wJKv>#=6v9ozd2^@|lFA{hkDw9>T5vKGc!#%cCsA}PiEiuskF--M`#*k3fM8LM?P zrB#Fo6SS)!ebiZ(=KY#^H17~6$T|Yt=Vc5b4)3JYn!4Y+4-@p16C{Uzyx$M+QmkDE zl3E2a$_7$K2bqJC&^Evv^wDoDr47=~SrFO;X=kioD{I!|SZns+#Mpz&{4w&%S!kDM zT+dkY;OLAJN^4n@q4aff$a;+58-3d0Y{j23>(-Y1F~*0sp3UWBPG!lnOU~JkU$@F5 zXL%Xr=jXdn))1CwT=v3vV+fnHd6E$~!rYE0Zj?TUTp8Bu!{I&FGlbTR*EXfK@2B16 zJudll!ztx*UM}b2kPmXH`M$IhCTMp8?33@#s^^#Uj@)W&Y(zGj z#l2y{>JP7Ce!-vky`TUyGwtx#`PM0{YkLMewtC3+wP9+o6;s1IFg3Oh4O4rO-&}~I z?G>mvxCrs_B&5ZG^n@U%ABS8mM1H$q?jAwukl^Wyf54@O7wSBV|3RNWH&Tm zboUC(9DNBtO{B4Cej%Ecl%wsrYV7K2K+hV%z*fQdYl17s1@&dcXiY4@mioo$U718z zq7dn&B{;UK3X|Jv(9%?k_nS&_yqA#yiQc#KaqMgXF5N1^9h9S+eB}DyNnZK{E8_p&|DLrA|L*_O{q4E_%jV5OqH+!r z#r#nEPiB%Tt@T;DPQtAM76`A7y*^%)|Rf#L8dWQ*ZzP diff --git a/assets/voxygen/voxel/npc/saber/male/Saber-8.vox b/assets/voxygen/voxel/npc/saber/male/Saber-8.vox deleted file mode 100644 index ab7db834c19a97d2a77b57e350326138e2259a3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2048 zcma)5ZD^Hc7`~s6_uct+<(%%LZB1u8$8gQrwsYQLGaWkTjJaGoKhRL}FiaVpq2pla zN?c*CH8!P>X)#1hQ`tsQU?W5X5s`=>MEnu`iHL~k-_`XVF@%hI;o^SpkLP~w>w2E2 z>xGRKqaxD2ymcLo{G2D!+1lL_@g05+5h7+08#i^ger5Q>?-xP^)R^%R6j~Wmw2Iae z#*vI7#P@YDWh9t15=vPW^0YN6ZM7$k%4kO?#j1?Btaa(TI-{*kS<6}zN*af-K7yWA z(WF%o#=@Sp;iPq*&azIElZm7Z`y2K*et#39A0oeKQnOa; zXiBRH5hfT{LFVXlF3tTl`)KZAogn83@INo32ejwDly{k3E&8&Mq}4AAfF@ zN6qpw#_!L2VXPr6*SO@udSeKilsw5;H^SbIXWb}s4z)6z*N4M>tfvUAS+8wMYd_Dp z%Y9tx>4sCr<$1Y07l(RKOU?VGoiM?;6Ch9CJC|o7E;V(@C6AVnKt>De6?^)9wafD& zM@4NozakIi^I=XK-eap$hWA<<{~ajmMN41#KJ$jY_Q5xz9p!1>e?=I=GHw|+TxVEs zSZ{OO`A@3|!?$Ac*pF7xTGra!`=RyU6MOLSa({BL)X}jS&2^f!>sLL$ocY|>*w~0{ zHj8`1g4G{h#r%Rl@q0l5W@g&qf9G4Lu&(VH?AYod+t-Gv!B$KS@4(d9J~T}2MSgQ3 zindpv;@~30$CHp22htOQoPHc~wGjF3g1LJHr9*92eA=6{9t=09)!8qjzNz zU5P@ZmzLnzswzxwt3gXsE#7Y`#qoOT;pJoK%^n=s+l`5n{g^&`6vMApBD=W+;cyu9 zWsJ!Hq8kzn!l_f4Ukc2I_G2 z{0jW~LnnIQ&d0H{1-Nvp2zOA9Zt9WazmvN330B1ao&TP-3;*W->HhW{|FU_rkf@x4 zM0pHeJcbR8QEaIF|NQIf>hNyEIBIH7!y7z|qJbh@`&jVpX2H4YYQ*Dl?4I9;wW}{f z2Kq6lcMhh-^R212C?k$INCnCg3gP#(cIjOdjd#+z#lNT1$V!=Ki^&6 jum8&P5$4|6!}iqXEqLJj$p`AyyoHmN7Tw+LH=;A diff --git a/assets/voxygen/voxel/npc/saber/male/Saber-9.vox b/assets/voxygen/voxel/npc/saber/male/Saber-9.vox deleted file mode 100644 index f8f2e5a1a468959aba6eccbf22f5c382f7def914..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1836 zcma)5ZD^Hc7`~s6_w0PGm2>W^Z5^HM9K$td+s^wAo9WOwXUyf&`GJO#hhfU-3>^nU zSK<1vMp20w@3k>nB^H+8lAqN(t^Mi?s@MOa5h891r}GHM8| zZAxp&Xl*F9tF_8#qY0HUvk0V&4y3dpbimUpkWo6|YL$~R%5jwrX0$l;IgE2MS~;Gg zREGVSuUK2Lrcs*p*vAKXXv;nheT2{!o*U|x($Y5c8|E56mwb%&VO*mvIWU*?v@+yD z{whcwnte=4aUP`%`x(yb_w{YYh#^l)PRz4m&KdHw38l29v_V&!V9F4R(3(=`xZ38h zcMf-x<0@YoN*nZyrY;fB_>3+!jUmXVFE+~0sg*8=-cgH;_?uWIMrk}e~ z{)~KQRyeD2CpOBfGf-kw^rEbDlgvEAZ=&9q2ih zhvVn-api6iW>AhU?qhcTo!m>WU`68J=ijq-;otLrvA=D0{<6ZSkc`hovOE`FA{QGP zV%Sjg|L3o*t;NauF;v%_g*R{*Mg2v%`I+Fm&4LS6RY)Wf*gd}&Ygb=|^!H(I&s^yb^h1=%g&X<*#>MFueMa4h%@5lMIHg()a&u-wr=sEO% zK7kLeev8xJ+`~)z2C(e#7+OEQj*iRs(A3m~2Lectz#lO81oy8!%aW`31|Pa b$K{#LTky#CosaY<$tRsXp7Xf=gjo3t5Rh6u diff --git a/assets/voxygen/voxel/npc/saber/male/head_upper.vox b/assets/voxygen/voxel/npc/saber/male/head_upper.vox index 963af2426af11a37b9ee0babaf32c0711a77739d..8a7ccbbe707a215134ee9355c42030093b5cd2d4 100644 GIT binary patch delta 161 zcmWlSEe^s!5QTSkcYfNe!Bo_s2nK~I#Zz~y0toO>6^2ERpC9PbKh5!Py7MYn;7E& delta 161 zcmWlOEe--P5JqR(`Dr&bn6)T^L15e36$lb;vXXEMAiHRgSkg0a0}jNjczIvmH}`XY zJMJjR=nakhAhm5U8;h;evc+uNFIyZxFGU>N8?SCv1iI=$tAG{{v9tp{aZ?CF6{nS5 nDvZglki{Bvssynz#5^Tgb7AQ6w3i<#hTMV<=+6VRQ~0_+bIKYQ diff --git a/assets/voxygen/voxel/npc/saber/male/jaw.vox b/assets/voxygen/voxel/npc/saber/male/jaw.vox index 496e99bbfa9adb7106303bac887f7f1f7873cd77..69de03764507b7fc3bd51a00dd68def77f4c8b10 100644 GIT binary patch delta 91 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 diff --git a/assets/voxygen/voxel/npc/tiger/male/jaw.vox b/assets/voxygen/voxel/npc/tiger/male/jaw.vox index 7caa4357b009aa6240e1595b1d5b0c17d96f5022..3e148fabc97e69696b652af5351cdd47d8027049 100644 GIT binary patch literal 1240 zcmeH`F$w}P5Jmr=N!Beqfgo7ex_3|%Sr!!(ME4+;-oQ>gk!P_K#Li~@Y4re$;K1YO zXJ*KdknL(WxBys;%cTU@0Bp*7)=fqcMJ8PA_H}udrWlGqW)KeM<}BPfvdE4F7QxwZ zHoh0P$BSN literal 1208 zcma)*e@NVQ7{{OQ{m`Q|r|F%Z=T19yyE|jfANeC~ovCf7Q!~@H+a_*p1E#HjHGGVc1M& zT`NphPBk zx>xI16tC@kxlXjdgjH2l5sgN9FfQ!6uu6W$-#q;D7asoc8wtA{T%xskI|mQc5FKb{ zX*kHz_(7H?k5RdFl+=I&XHOn^r;6}RS0jy9r0*$Y<{4zwL28ST*)Qab3C~>-Y<zg%>6>aY0W($)UF8fy4D}GA@LMsA%o$qY0Pc6bN59TG(AgPgk{C|ik}tn6TT4VL2YR+%`bU5(p5=clMp)~Odl6kMuiG@HbH*@`zy8) zX{e^l?;u?6Vq|9_i`~UE)|SxrN;RQZ>*(ugW$DaH~rkZUBo9^b8%L<^^Ne;cfw%U%T%n4)ywt# z{$mG`bE%AcnZeaNPVSLQNblo>&N+5im>Cf2eX{QS{kyk3HorS-6Ml~!e{Kpjz7#sE zHqu%0|K~3&E91k;X^Kl`s2M(kGv?&RXTsfm!X>X4pU+2c{s6moEg-Q$>=8T5liF*e za4K8hj@!*Ug>iP&jC1(h5Lw-s-2SSN<&cx{yu8QmKd~>7Yj4LbBE4{Oa*o*Ni=1D$ z&d1-b@%*u2cAS}}`O_6TuB;IV1b84IHU)oSUK8$r{cnHw^?m)9u3zxcKU>cy#Pzg9 N{7KrQ#7{mi{{TDUACv$9 diff --git a/assets/voxygen/voxel/npc/tiger/male/leg_br.vox b/assets/voxygen/voxel/npc/tiger/male/leg_br.vox index 94e6867f16303e591cb1f8ad81ca041a0fb65082..5ce0a2aedc3fd1f0fa14589511502c64ca37da61 100644 GIT binary patch delta 33 ncmdnJjrj$SP?&#&!ZZd3246={KOn^r!nRS!i)phu3l9qboc{-^ literal 56123 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 Lu8SrT65#s)@L4K8 diff --git a/assets/voxygen/voxel/npc/tiger/male/leg_fr.vox b/assets/voxygen/voxel/npc/tiger/male/leg_fr.vox index b3fdd48e3ce856453e13ea46f51fb84b44a34127..8dd4f55da642e9fc4f7a3eaf8ddeb7dde11d462a 100644 GIT binary patch delta 33 ncmdnKjrj?WP?&#&!ZZd3246={KOn^rz_wAyjcKzo3l9qbo2v(w literal 56119 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

iLYy2h_ed2^~*6X$&bK@km3DT2$2(Q|+Ye From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Salamander, _) => (4.0, -6.0, -2.0), (Monitor, _) => (2.5, -6.5, 0.0), (Asp, _) => (2.5, -5.5, -1.0), - (Tortoise, _) => (6.0, -11.5, -3.0), + (Tortoise, _) => (5.5, -11.5, -3.0), (Rocksnapper, _) => (8.0, -12.0, -9.5), (Pangolin, _) => (6.0, -4.0, -1.0), }, diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index 7b861605d8..d004f580b6 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -259,7 +259,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tiger, _) => (6.0, -5.0, -3.0), (Wolf, _) => (4.5, -6.5, -1.0), (Frostfang, _) => (5.5, -5.5, -2.0), - (Mouflon, _) => (5.0, -5.0, -5.0), + (Mouflon, _) => (4.0, -5.0, -5.0), }, leg_b: match (body.species, body.body_type) { (Grolgar, _) => (6.0, -6.5, -5.5), @@ -270,7 +270,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tiger, _) => (6.0, -7.5, -3.0), (Wolf, _) => (5.0, -6.5, -2.5), (Frostfang, _) => (3.5, -4.5, -2.0), - (Mouflon, _) => (3.5, -6.0, -4.5), + (Mouflon, _) => (3.5, -8.0, -4.5), }, feet_f: match (body.species, body.body_type) { (Grolgar, _) => (0.0, -9.0, -7.0), @@ -292,7 +292,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { (Tiger, _) => (1.0, 0.5, -4.0), (Wolf, _) => (0.0, -1.0, -1.5), (Frostfang, _) => (0.0, -1.5, -3.5), - (Mouflon, _) => (-1.0, -1.5, -2.5), + (Mouflon, _) => (-1.0, 0.0, -2.5), }, scaler: match (body.species, body.body_type) { (Grolgar, _) => (1.3), diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index 1312b4a088..82c3e42b1d 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -265,7 +265,7 @@ impl Animation for RunAnimation { skeleton_attr.leg_b.1 + footvert * -1.7, skeleton_attr.leg_b.2 + 1.0 + footvertt * -1.5, ); - next.leg_bl.ori = Quaternion::rotation_x(footvertt * -0.4 - 0.2) + next.leg_bl.ori = Quaternion::rotation_x(footvertt * -0.45 - 0.2) * Quaternion::rotation_y(tilt * 1.5) * Quaternion::rotation_z(tilt * -1.5); next.leg_bl.scale = Vec3::one() * 1.02; @@ -275,7 +275,7 @@ impl Animation for RunAnimation { skeleton_attr.leg_b.1 + footvertf * -1.7, skeleton_attr.leg_b.2 + 1.0 + footverttf * -1.5, ); - next.leg_br.ori = Quaternion::rotation_x(footverttf * -0.4 - 0.2) + next.leg_br.ori = Quaternion::rotation_x(footverttf * -0.45 - 0.2) * Quaternion::rotation_y(tilt * 1.5) * Quaternion::rotation_z(tilt * -1.5); next.leg_br.scale = Vec3::one() * 1.02; @@ -303,7 +303,7 @@ impl Animation for RunAnimation { next.foot_bl.offset = Vec3::new( -skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2 + ((footvert * 2.4).max(0.0)), + skeleton_attr.feet_b.2 + ((footvert * 1.3).max(0.0)), ); next.foot_bl.ori = Quaternion::rotation_x(footvertt * -0.9 - 0.2) * Quaternion::rotation_y(tilt * -1.0); @@ -312,7 +312,7 @@ impl Animation for RunAnimation { next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2 + ((footvertf * 2.4).max(-0.0)), + skeleton_attr.feet_b.2 + ((footvertf * 1.3).max(-0.0)), ); next.foot_br.ori = Quaternion::rotation_x(footverttf * -0.9 - 0.2) * Quaternion::rotation_y(tilt * -1.0); From a80e636100b9b07a94b42a344ab4434875bdf5a5 Mon Sep 17 00:00:00 2001 From: jshipsey Date: Sun, 5 Jul 2020 01:00:15 -0400 Subject: [PATCH 46/48] tweaks and fixes --- CHANGELOG.md | 4 ++ .../voxel/quadruped_low_central_manifest.ron | 8 +-- .../quadruped_small_central_manifest.ron | 4 +- .../quadruped_small_lateral_manifest.ron | 64 +++++++++---------- voxygen/src/anim/src/quadruped_low/mod.rs | 12 ++-- voxygen/src/anim/src/quadruped_low/run.rs | 30 +++++---- .../src/anim/src/quadruped_medium/alpha.rs | 6 +- voxygen/src/anim/src/quadruped_medium/mod.rs | 2 +- voxygen/src/anim/src/quadruped_medium/run.rs | 11 ++-- voxygen/src/anim/src/quadruped_small/run.rs | 7 +- voxygen/src/scene/figure/mod.rs | 2 +- 11 files changed, 79 insertions(+), 71 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bfa147b49c..c20a476054 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Zoomable Map - M2 attack for hammer - Spawnable training dummies +- New quadruped_low body for reptile-likes +- Added new animals +- Better pathfinding ### Changed @@ -53,6 +56,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Replaced `log` with `tracing` in all crates - Switch to a new network backend that will allow several improvements in the future - Connection screen fails after 4 minutes if it can't connect to the server instead of 80 minutes +- Rebuilt quadruped_medium animation and assets ### Removed diff --git a/assets/voxygen/voxel/quadruped_low_central_manifest.ron b/assets/voxygen/voxel/quadruped_low_central_manifest.ron index 819d184239..727f31ee13 100644 --- a/assets/voxygen/voxel/quadruped_low_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_low_central_manifest.ron @@ -1,7 +1,7 @@ ({ (Crocodile, Male): ( upper: ( - offset: (-4.0, -8.5, -3.0), + offset: (-4.0, 0.0, -3.0), central: ("npc.crocodile.male.head_upper"), ), lower: ( @@ -27,7 +27,7 @@ ), (Crocodile, Female): ( upper: ( - offset: (-4.0, -8.5, -3.0), + offset: (-4.0, 0.0, -3.0), central: ("npc.crocodile.male.head_upper"), ), lower: ( @@ -105,7 +105,7 @@ ), (Salamander, Male): ( upper: ( - offset: (-6.5, -6.0, -2.0), + offset: (-6.5, 0.0, -2.0), central: ("npc.salamander.male.head_upper"), ), lower: ( @@ -131,7 +131,7 @@ ), (Salamander, Female): ( upper: ( - offset: (-6.5, -6.0, -2.0), + offset: (-6.5, 0.0, -2.0), central: ("npc.salamander.male.head_upper"), ), lower: ( diff --git a/assets/voxygen/voxel/quadruped_small_central_manifest.ron b/assets/voxygen/voxel/quadruped_small_central_manifest.ron index d0ba503c35..dc0336da13 100644 --- a/assets/voxygen/voxel/quadruped_small_central_manifest.ron +++ b/assets/voxygen/voxel/quadruped_small_central_manifest.ron @@ -177,7 +177,7 @@ central: ("npc.cat.male.head"), ), chest: ( - offset: (-0.5, -3.0, -4.0), + offset: (-1.5, -3.0, -2.0), central: ("npc.cat.male.chest"), ), tail: ( @@ -191,7 +191,7 @@ central: ("npc.cat.female.head"), ), chest: ( - offset: (-1.5, -4.0, -2.0), + offset: (-1.5, -3.0, -2.0), central: ("npc.cat.female.chest"), ), tail: ( diff --git a/assets/voxygen/voxel/quadruped_small_lateral_manifest.ron b/assets/voxygen/voxel/quadruped_small_lateral_manifest.ron index c93f32789c..c84d2fe64c 100644 --- a/assets/voxygen/voxel/quadruped_small_lateral_manifest.ron +++ b/assets/voxygen/voxel/quadruped_small_lateral_manifest.ron @@ -170,19 +170,19 @@ (Jackalope, Female): ( left_front: ( offset: (-1.5, -2.5, -4.0), - lateral: ("npc.jackalope.female.foot_fl"), + lateral: ("npc.jackalope.male.foot_fl"), ), right_front: ( offset: (-1.5, -2.5, -4.0), - lateral: ("npc.jackalope.female.foot_fr"), + lateral: ("npc.jackalope.male.foot_fr"), ), left_back: ( offset: (-1.5, -2.5, -6.0), - lateral: ("npc.jackalope.female.foot_bl"), + lateral: ("npc.jackalope.male.foot_bl"), ), right_back: ( offset: (-1.5, -2.5, -6.0), - lateral: ("npc.jackalope.female.foot_br"), + lateral: ("npc.jackalope.male.foot_br"), ), ), (Skunk, Male): ( @@ -207,19 +207,19 @@ (Skunk, Female): ( left_front: ( offset: (-1.0, -1.0, -3.5), - lateral: ("npc.skunk.female.foot_fl"), + lateral: ("npc.skunk.male.foot_fl"), ), right_front: ( offset: (-1.0, -1.0, -3.5), - lateral: ("npc.skunk.female.foot_fr"), + lateral: ("npc.skunk.male.foot_fr"), ), left_back: ( offset: (-1.0, -1.0, -3.5), - lateral: ("npc.skunk.female.foot_bl"), + lateral: ("npc.skunk.male.foot_bl"), ), right_back: ( offset: (-1.0, -1.0, -3.5), - lateral: ("npc.skunk.female.foot_br"), + lateral: ("npc.skunk.male.foot_br"), ), ), @@ -283,19 +283,19 @@ (Batfox, Female): ( left_front: ( offset: (-1.0, -1.5, -2.5), - lateral: ("npc.batfox.female.foot_fl"), + lateral: ("npc.batfox.male.foot_fl"), ), right_front: ( offset: (-1.0, -1.5, -2.5), - lateral: ("npc.batfox.female.foot_fr"), + lateral: ("npc.batfox.male.foot_fr"), ), left_back: ( offset: (-1.0, -2.5, -3.5), - lateral: ("npc.batfox.female.foot_bl"), + lateral: ("npc.batfox.male.foot_bl"), ), right_back: ( offset: (-1.0, -2.5, -3.5), - lateral: ("npc.batfox.female.foot_br"), + lateral: ("npc.batfox.male.foot_br"), ), ), @@ -321,19 +321,19 @@ (Raccoon, Female): ( left_front: ( offset: (-0.5, -0.5, -2.5), - lateral: ("npc.raccoon.female.foot_fl"), + lateral: ("npc.raccoon.male.foot_fl"), ), right_front: ( offset: (-0.5, -0.5, -2.5), - lateral: ("npc.raccoon.female.foot_fr"), + lateral: ("npc.raccoon.male.foot_fr"), ), left_back: ( offset: (-1.0, -1.5, -2.5), - lateral: ("npc.raccoon.female.foot_bl"), + lateral: ("npc.raccoon.male.foot_bl"), ), right_back: ( offset: (-1.0, -1.5, -2.5), - lateral: ("npc.raccoon.female.foot_br"), + lateral: ("npc.raccoon.male.foot_br"), ), ), (Quokka, Male): ( @@ -358,19 +358,19 @@ (Quokka, Female): ( left_front: ( offset: (-1.0, -1.0, -2.5), - lateral: ("npc.quokka.female.foot_fl"), + lateral: ("npc.quokka.male.foot_fl"), ), right_front: ( offset: (-1.0, -1.0, -2.5), - lateral: ("npc.quokka.female.foot_fr"), + lateral: ("npc.quokka.male.foot_fr"), ), left_back: ( offset: (-1.0, -1.5, -2.5), - lateral: ("npc.quokka.female.foot_bl"), + lateral: ("npc.quokka.male.foot_bl"), ), right_back: ( offset: (-1.0, -1.5, -2.5), - lateral: ("npc.quokka.female.foot_br"), + lateral: ("npc.quokka.male.foot_br"), ), ), (Dodarock, Male): ( @@ -395,19 +395,19 @@ (Dodarock, Female): ( left_front: ( offset: (-2.0, -3.0, -4.0), - lateral: ("npc.dodarock.female.foot_fl"), + lateral: ("npc.dodarock.male.foot_fl"), ), right_front: ( offset: (-2.0, -3.0, -4.0), - lateral: ("npc.dodarock.female.foot_fr"), + lateral: ("npc.dodarock.male.foot_fr"), ), left_back: ( offset: (-1.5, -2.0, -2.5), - lateral: ("npc.dodarock.female.foot_bl"), + lateral: ("npc.dodarock.male.foot_bl"), ), right_back: ( offset: (-1.5, -2.0, -2.5), - lateral: ("npc.dodarock.female.foot_br"), + lateral: ("npc.dodarock.male.foot_br"), ), ), (Holladon, Male): ( @@ -432,19 +432,19 @@ (Holladon, Female): ( left_front: ( offset: (-1.0, -2.0, -2.5), - lateral: ("npc.holladon.female.foot_fl"), + lateral: ("npc.holladon.male.foot_fl"), ), right_front: ( offset: (-1.0, -2.0, -2.5), - lateral: ("npc.holladon.female.foot_fr"), + lateral: ("npc.holladon.male.foot_fr"), ), left_back: ( offset: (-1.0, -2.0, -2.5), - lateral: ("npc.holladon.female.foot_bl"), + lateral: ("npc.holladon.male.foot_bl"), ), right_back: ( offset: (-1.0, -2.0, -2.5), - lateral: ("npc.holladon.female.foot_br"), + lateral: ("npc.holladon.male.foot_br"), ), ), (Hyena, Male): ( @@ -469,19 +469,19 @@ (Hyena, Female): ( left_front: ( offset: (-1.5, -2.0, -5.0), - lateral: ("npc.hyena.female.foot_fl"), + lateral: ("npc.hyena.male.foot_fl"), ), right_front: ( offset: (-1.5, -2.0, -5.0), - lateral: ("npc.hyena.female.foot_fr"), + lateral: ("npc.hyena.male.foot_fr"), ), left_back: ( offset: (-1.5, -2.0, -4.5), - lateral: ("npc.hyena.female.foot_bl"), + lateral: ("npc.hyena.male.foot_bl"), ), right_back: ( offset: (-1.5, -2.0, -4.5), - lateral: ("npc.hyena.female.foot_br"), + lateral: ("npc.hyena.male.foot_br"), ), ), }) \ No newline at end of file diff --git a/voxygen/src/anim/src/quadruped_low/mod.rs b/voxygen/src/anim/src/quadruped_low/mod.rs index 2de141c40e..3bf99f64fc 100644 --- a/voxygen/src/anim/src/quadruped_low/mod.rs +++ b/voxygen/src/anim/src/quadruped_low/mod.rs @@ -134,9 +134,9 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { use comp::quadruped_low::Species::*; Self { head_upper: match (body.species, body.body_type) { - (Crocodile, _) => (10.0, 2.0), + (Crocodile, _) => (1.5, 2.0), (Alligator, _) => (0.5, 2.0), - (Salamander, _) => (6.5, 2.5), + (Salamander, _) => (0.5, 2.5), (Monitor, _) => (4.5, 1.0), (Asp, _) => (6.0, 5.5), (Tortoise, _) => (5.0, 1.0), @@ -154,9 +154,9 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Pangolin, _) => (8.0, -9.0), }, jaw: match (body.species, body.body_type) { - (Crocodile, _) => (-6.0, -3.0), + (Crocodile, _) => (2.5, -3.0), (Alligator, _) => (2.5, -2.0), - (Salamander, _) => (-6.0, -2.0), + (Salamander, _) => (0.0, -2.0), (Monitor, _) => (-2.0, -1.0), (Asp, _) => (-3.0, -2.0), (Tortoise, _) => (-3.5, -2.0), @@ -201,7 +201,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Asp, _) => (1.5, 4.0, -1.0), (Tortoise, _) => (5.5, 6.5, -3.0), (Rocksnapper, _) => (7.5, 5.0, -8.5), - (Pangolin, _) => (5.0, 5.0, -1.0), + (Pangolin, _) => (5.5, 5.5, -1.0), }, feet_b: match (body.species, body.body_type) { (Crocodile, _) => (3.5, -6.0, -1.0), @@ -211,7 +211,7 @@ impl<'a> From<&'a comp::quadruped_low::Body> for SkeletonAttr { (Asp, _) => (2.5, -5.5, -1.0), (Tortoise, _) => (5.5, -11.5, -3.0), (Rocksnapper, _) => (8.0, -12.0, -9.5), - (Pangolin, _) => (6.0, -4.0, -1.0), + (Pangolin, _) => (6.5, -3.5, -1.0), }, lean: match (body.species, body.body_type) { (Pangolin, _) => (0.4, 0.0), diff --git a/voxygen/src/anim/src/quadruped_low/run.rs b/voxygen/src/anim/src/quadruped_low/run.rs index cf082f660a..f9ee904a40 100644 --- a/voxygen/src/anim/src/quadruped_low/run.rs +++ b/voxygen/src/anim/src/quadruped_low/run.rs @@ -22,7 +22,7 @@ impl Animation for RunAnimation { let mut next = (*skeleton).clone(); let lab = 0.7 * skeleton_attr.tempo; - let x_tilt = avg_vel.z.atan2(avg_vel.xy().magnitude()); + let x_tilt = avg_vel.z.atan2(avg_vel.xy().magnitude()).max(-0.7); let short = (((1.0) / (0.72 @@ -83,17 +83,18 @@ impl Animation for RunAnimation { } else { 0.0 } * 1.3; - //let tilt = 0.0; next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); - next.head_upper.ori = Quaternion::rotation_x(-skeleton_attr.lean.0) + next.head_upper.ori = Quaternion::rotation_x(-skeleton_attr.lean.0 + x_tilt * -1.0) + * Quaternion::rotation_y(tilt * 0.3) * Quaternion::rotation_z(short * -0.06 + tilt * -1.5); next.head_upper.scale = Vec3::one(); next.head_lower.offset = Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); - next.head_lower.ori = - Quaternion::rotation_x(0.0) * Quaternion::rotation_z(short * -0.15 + tilt * -0.8); + next.head_lower.ori = Quaternion::rotation_y(tilt * 1.0) + * Quaternion::rotation_z(short * -0.15 + tilt * -0.8) + * Quaternion::rotation_x(x_tilt * 0.4); next.head_lower.scale = Vec3::one(); next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); @@ -107,7 +108,7 @@ impl Animation for RunAnimation { ); next.tail_front.ori = Quaternion::rotation_z(shortalt * 0.18 + tilt * 1.8) * Quaternion::rotation_y(shortalt * 0.1) - * Quaternion::rotation_x(0.06 - skeleton_attr.lean.0 * 1.2); + * Quaternion::rotation_x(0.06 - skeleton_attr.lean.0 * 1.2 + x_tilt * 0.2); next.tail_front.scale = Vec3::one(); next.tail_rear.offset = Vec3::new( @@ -117,14 +118,14 @@ impl Animation for RunAnimation { ); next.tail_rear.ori = Quaternion::rotation_z(shortalt * 0.25 + tilt * 1.6) * Quaternion::rotation_y(shortalt * 0.1) - * Quaternion::rotation_x(-0.04); + * Quaternion::rotation_x(-0.04 + x_tilt * 0.5); next.tail_rear.scale = Vec3::one(); next.chest.offset = Vec3::new(0.0, skeleton_attr.chest.0, skeleton_attr.chest.1) * skeleton_attr.scaler / 11.0; next.chest.ori = Quaternion::rotation_z(short * 0.13 + tilt * -1.9) - * Quaternion::rotation_y(short * 0.12) + * Quaternion::rotation_y(short * 0.12 + tilt * 0.7) * Quaternion::rotation_x(x_tilt + skeleton_attr.lean.0); next.chest.scale = Vec3::one() * skeleton_attr.scaler / 11.0; @@ -135,7 +136,8 @@ impl Animation for RunAnimation { ); next.foot_fl.ori = Quaternion::rotation_x( -0.2 + footvertl * -0.35 * skeleton_attr.lean.1 - skeleton_attr.lean.0, - ) * Quaternion::rotation_z(footvertl * 0.4 * skeleton_attr.lean.1); + ) * Quaternion::rotation_y(tilt * -1.0) + * Quaternion::rotation_z(footvertl * 0.4 * skeleton_attr.lean.1); next.foot_fl.scale = Vec3::one(); next.foot_fr.offset = Vec3::new( @@ -143,10 +145,10 @@ impl Animation for RunAnimation { skeleton_attr.feet_f.1 + foothorir * -1.0, skeleton_attr.feet_f.2 + 1.0 + ((footvertr * -0.8).max(-0.0)), ); - next.foot_fr.ori = - Quaternion::rotation_x( - -0.2 + footvertr * -0.25 * skeleton_attr.lean.1 - skeleton_attr.lean.0, - ) * Quaternion::rotation_z(footvertr * -0.4 * skeleton_attr.lean.1 + tilt * 3.5); + next.foot_fr.ori = Quaternion::rotation_x( + -0.2 + footvertr * -0.25 * skeleton_attr.lean.1 - skeleton_attr.lean.0, + ) * Quaternion::rotation_y(tilt * -1.0) + * Quaternion::rotation_z(footvertr * -0.4 * skeleton_attr.lean.1 + tilt * 3.5); next.foot_fr.scale = Vec3::one(); next.foot_bl.offset = Vec3::new( @@ -155,6 +157,7 @@ impl Animation for RunAnimation { skeleton_attr.feet_b.2 + 1.0 + ((footvertlb * -0.6).max(-0.0)), ); next.foot_bl.ori = Quaternion::rotation_x(-0.2 + footvertlb * -0.3 - skeleton_attr.lean.0) + * Quaternion::rotation_y(tilt * -1.0) * Quaternion::rotation_z(footvertlb * 0.4); next.foot_bl.scale = Vec3::one(); @@ -164,6 +167,7 @@ impl Animation for RunAnimation { skeleton_attr.feet_b.2 + 1.0 + ((footvertrb * -0.6).max(-0.0)), ); next.foot_br.ori = Quaternion::rotation_x(-0.2 + footvertrb * -0.3 - skeleton_attr.lean.0) + * Quaternion::rotation_y(tilt * -1.0) * Quaternion::rotation_z(footvertrb * -0.4); next.foot_br.scale = Vec3::one(); diff --git a/voxygen/src/anim/src/quadruped_medium/alpha.rs b/voxygen/src/anim/src/quadruped_medium/alpha.rs index 37d43004b6..80df941140 100644 --- a/voxygen/src/anim/src/quadruped_medium/alpha.rs +++ b/voxygen/src/anim/src/quadruped_medium/alpha.rs @@ -117,10 +117,10 @@ impl Animation for AlphaAnimation { next.foot_fr.offset = Vec3::new( skeleton_attr.feet_f.0, skeleton_attr.feet_f.1, - skeleton_attr.feet_f.2 + short * -1.5, + skeleton_attr.feet_f.2, ); next.foot_fr.ori = - Quaternion::rotation_x(short * -0.2) * Quaternion::rotation_y(short * 0.15); + Quaternion::rotation_x(short * -0.4) * Quaternion::rotation_y(short * 0.15); next.foot_fr.scale = Vec3::one(); next.foot_bl.offset = Vec3::new( @@ -135,7 +135,7 @@ impl Animation for AlphaAnimation { next.foot_br.offset = Vec3::new( skeleton_attr.feet_b.0, skeleton_attr.feet_b.1, - skeleton_attr.feet_b.2 + short * -1.5, + skeleton_attr.feet_b.2, ); next.foot_br.ori = Quaternion::rotation_x(-0.2 + short * 0.2) * Quaternion::rotation_y(short * 0.15); diff --git a/voxygen/src/anim/src/quadruped_medium/mod.rs b/voxygen/src/anim/src/quadruped_medium/mod.rs index d004f580b6..7e25a2e085 100644 --- a/voxygen/src/anim/src/quadruped_medium/mod.rs +++ b/voxygen/src/anim/src/quadruped_medium/mod.rs @@ -231,7 +231,7 @@ impl<'a> From<&'a comp::quadruped_medium::Body> for SkeletonAttr { torso_back: match (body.species, body.body_type) { (Grolgar, _) => (-10.0, 1.5), (Saber, _) => (-13.5, 0.0), - (Tuskram, _) => (-13.0, -2.0), + (Tuskram, _) => (-12.5, -2.0), (Lion, _) => (-12.0, -0.5), (Tarasque, _) => (-14.0, -1.0), (Tiger, _) => (-13.0, 0.0), diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index 82c3e42b1d..62df4aabb4 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -22,7 +22,7 @@ impl Animation for RunAnimation { let mut next = (*skeleton).clone(); let speed = Vec2::::from(velocity).magnitude(); *rate = 1.0; - let lab = 0.6; //6 + let lab = 0.1; //6 let speedmult = if speed > 8.0 { 1.2 * (1.0 * skeleton_attr.tempo) @@ -71,19 +71,18 @@ impl Animation for RunAnimation { 0.0 } * 1.3; let x_tilt = avg_vel.z.atan2(avg_vel.xy().magnitude()); - //let tilt = 0.0; if speed < 8.0 { //Trot next.head_upper.offset = Vec3::new(0.0, skeleton_attr.head_upper.0, skeleton_attr.head_upper.1); - next.head_upper.ori = - Quaternion::rotation_x(short * -0.03 - 0.1) * Quaternion::rotation_z(tilt * -1.2); + next.head_upper.ori = Quaternion::rotation_x(short * -0.03 - 0.1 + x_tilt * -0.5) + * Quaternion::rotation_z(tilt * -1.2); next.head_upper.scale = Vec3::one(); next.head_lower.offset = Vec3::new(0.0, skeleton_attr.head_lower.0, skeleton_attr.head_lower.1); - next.head_lower.ori = - Quaternion::rotation_z(tilt * -0.8) * Quaternion::rotation_x(short * -0.05); + next.head_lower.ori = Quaternion::rotation_z(tilt * -0.8) + * Quaternion::rotation_x(short * -0.05 + x_tilt * -0.5); next.head_lower.scale = Vec3::one() * 1.02; next.jaw.offset = Vec3::new(0.0, skeleton_attr.jaw.0, skeleton_attr.jaw.1); diff --git a/voxygen/src/anim/src/quadruped_small/run.rs b/voxygen/src/anim/src/quadruped_small/run.rs index 3c0f27f7d3..8dda9ee4e5 100644 --- a/voxygen/src/anim/src/quadruped_small/run.rs +++ b/voxygen/src/anim/src/quadruped_small/run.rs @@ -5,7 +5,7 @@ use vek::*; pub struct RunAnimation; impl Animation for RunAnimation { - type Dependency = (f32, f64); + type Dependency = (f32, f64, Vec3); type Skeleton = QuadrupedSmallSkeleton; #[cfg(feature = "use-dyn-lib")] @@ -14,7 +14,7 @@ impl Animation for RunAnimation { #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_small_run")] fn update_skeleton_inner( skeleton: &Self::Skeleton, - (_velocity, _global_time): Self::Dependency, + (_velocity, _global_time, avg_vel): Self::Dependency, anim_time: f64, _rate: &mut f32, skeleton_attr: &SkeletonAttr, @@ -25,6 +25,7 @@ impl Animation for RunAnimation { let fast = (anim_time as f32 * 20.0).sin(); let fast_alt = (anim_time as f32 * 20.0 + PI / 2.0).sin(); let slow_alt = (anim_time as f32 * 14.0 + PI / 2.0).sin(); + let x_tilt = avg_vel.z.atan2(avg_vel.xy().magnitude()).max(-0.7); next.head.offset = Vec3::new(0.0, skeleton_attr.head.0, skeleton_attr.head.1 + slow * 1.5) / 11.0; @@ -37,7 +38,7 @@ impl Animation for RunAnimation { skeleton_attr.chest.0, skeleton_attr.chest.1 + slow_alt * 1.2, ) / 11.0; - next.chest.ori = Quaternion::rotation_x(slow * 0.1); + next.chest.ori = Quaternion::rotation_x(slow * 0.1 + x_tilt); next.chest.scale = Vec3::one() / 11.0; next.leg_fl.offset = Vec3::new( diff --git a/voxygen/src/scene/figure/mod.rs b/voxygen/src/scene/figure/mod.rs index 6796824b3b..e1b182bdc6 100644 --- a/voxygen/src/scene/figure/mod.rs +++ b/voxygen/src/scene/figure/mod.rs @@ -898,7 +898,7 @@ impl FigureMgr { (true, true, false) => { anim::quadruped_small::RunAnimation::update_skeleton( &QuadrupedSmallSkeleton::new(), - (vel.0.magnitude(), time), + (vel.0.magnitude(), time, state.avg_vel), state.state_time, &mut state_animation_rate, skeleton_attr, From 2bec9b418f4bc18b9b9345fdac76e84f0ecff1ba Mon Sep 17 00:00:00 2001 From: jshipsey Date: Sun, 5 Jul 2020 09:37:58 -0400 Subject: [PATCH 47/48] clippy fixes --- common/src/path.rs | 33 +++++++++----------- voxygen/src/anim/src/quadruped_low/run.rs | 2 +- voxygen/src/anim/src/quadruped_medium/run.rs | 2 +- 3 files changed, 16 insertions(+), 21 deletions(-) diff --git a/common/src/path.rs b/common/src/path.rs index 894a721cfb..cace57e210 100644 --- a/common/src/path.rs +++ b/common/src/path.rs @@ -75,7 +75,7 @@ impl Route { where V: BaseVol + ReadVol, { - let next0 = self.next(0).unwrap_or(pos.map(|e| e.floor() as i32)); + let next0 = self.next(0).unwrap_or_else(|| pos.map(|e| e.floor() as i32)); let next1 = self.next(1).unwrap_or(next0); if vol.get(next0).map(|b| b.is_solid()).unwrap_or(false) { None @@ -122,14 +122,14 @@ impl Route { let cb = CubicBezier2 { start: pos.xy(), - ctrl0: pos.xy() + vel.xy().try_normalized().unwrap_or(Vec2::zero()), + ctrl0: pos.xy() + vel.xy().try_normalized().unwrap_or_else(Vec2::zero), ctrl1: align(next0), end: align(next1), }; let tgt2d = cb.evaluate(0.5); let tgt = Vec3::from(tgt2d) + Vec3::unit_z() * next_tgt.z; - let tgt_dir = (tgt - pos).xy().try_normalized().unwrap_or(Vec2::unit_y()); + let tgt_dir = (tgt - pos).xy().try_normalized().unwrap_or_else(Vec2::unit_y); let next_dir = cb .evaluate_derivative(0.5) .try_normalized() @@ -144,7 +144,7 @@ impl Route { Some(( tgt - pos, next_dir - .dot(vel.xy().try_normalized().unwrap_or(Vec2::zero())) + .dot(vel.xy().try_normalized().unwrap_or_else(Vec2::zero)) .max(0.0) * 0.75 + 0.25, @@ -187,21 +187,16 @@ impl Chaser { let bearing = if let Some(end) = self.route.as_ref().and_then(|r| r.path().end().copied()) { let end_to_tgt = end.map(|e| e as f32).distance(tgt); - if end_to_tgt > pos_to_tgt * 0.3 + 5.0 { - None - } else { - if thread_rng().gen::() < 0.005 { - // Randomly repath to avoid getting stuck - None - } else { - self.route - .as_mut() - .and_then(|r| r.traverse(vol, pos, vel, traversal_tolerance)) - } - } - } else { - None - }; + if end_to_tgt > pos_to_tgt * 0.3 + 5.0 || thread_rng().gen::() < 0.005 { + None + } else { + self.route + .as_mut() + .and_then(|r| r.traverse(vol, pos, vel, traversal_tolerance)) + } +} else { + None +}; // TODO: What happens when we get stuck? if let Some(bearing) = bearing { diff --git a/voxygen/src/anim/src/quadruped_low/run.rs b/voxygen/src/anim/src/quadruped_low/run.rs index f9ee904a40..eaea7229e6 100644 --- a/voxygen/src/anim/src/quadruped_low/run.rs +++ b/voxygen/src/anim/src/quadruped_low/run.rs @@ -10,7 +10,7 @@ impl Animation for RunAnimation { #[cfg(feature = "use-dyn-lib")] const UPDATE_FN: &'static [u8] = b"quadruped_low_run\0"; - + #[allow(clippy::useless_conversion)] // TODO: Pending review in #587 #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_low_run")] fn update_skeleton_inner( skeleton: &Self::Skeleton, diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index 62df4aabb4..99a4bea5bd 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -10,7 +10,7 @@ impl Animation for RunAnimation { #[cfg(feature = "use-dyn-lib")] const UPDATE_FN: &'static [u8] = b"quadruped_medium_run\0"; - + #[allow(clippy::useless_conversion)] // TODO: Pending review in #587 #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_medium_run")] fn update_skeleton_inner( skeleton: &Self::Skeleton, From 840d228a2015f7f96b6d608b14ed41492fa4ebb8 Mon Sep 17 00:00:00 2001 From: jshipsey Date: Sun, 5 Jul 2020 10:00:44 -0400 Subject: [PATCH 48/48] remove slowmo test mode --- common/src/path.rs | 29 ++++++++++++-------- voxygen/src/anim/src/quadruped_low/run.rs | 1 + voxygen/src/anim/src/quadruped_medium/run.rs | 3 +- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/common/src/path.rs b/common/src/path.rs index cace57e210..8388edb36c 100644 --- a/common/src/path.rs +++ b/common/src/path.rs @@ -75,7 +75,9 @@ impl Route { where V: BaseVol + ReadVol, { - let next0 = self.next(0).unwrap_or_else(|| pos.map(|e| e.floor() as i32)); + let next0 = self + .next(0) + .unwrap_or_else(|| pos.map(|e| e.floor() as i32)); let next1 = self.next(1).unwrap_or(next0); if vol.get(next0).map(|b| b.is_solid()).unwrap_or(false) { None @@ -129,7 +131,10 @@ impl Route { let tgt2d = cb.evaluate(0.5); let tgt = Vec3::from(tgt2d) + Vec3::unit_z() * next_tgt.z; - let tgt_dir = (tgt - pos).xy().try_normalized().unwrap_or_else(Vec2::unit_y); + let tgt_dir = (tgt - pos) + .xy() + .try_normalized() + .unwrap_or_else(Vec2::unit_y); let next_dir = cb .evaluate_derivative(0.5) .try_normalized() @@ -187,16 +192,16 @@ impl Chaser { let bearing = if let Some(end) = self.route.as_ref().and_then(|r| r.path().end().copied()) { let end_to_tgt = end.map(|e| e as f32).distance(tgt); - if end_to_tgt > pos_to_tgt * 0.3 + 5.0 || thread_rng().gen::() < 0.005 { - None - } else { - self.route - .as_mut() - .and_then(|r| r.traverse(vol, pos, vel, traversal_tolerance)) - } -} else { - None -}; + if end_to_tgt > pos_to_tgt * 0.3 + 5.0 || thread_rng().gen::() < 0.005 { + None + } else { + self.route + .as_mut() + .and_then(|r| r.traverse(vol, pos, vel, traversal_tolerance)) + } + } else { + None + }; // TODO: What happens when we get stuck? if let Some(bearing) = bearing { diff --git a/voxygen/src/anim/src/quadruped_low/run.rs b/voxygen/src/anim/src/quadruped_low/run.rs index eaea7229e6..1f384c1ce4 100644 --- a/voxygen/src/anim/src/quadruped_low/run.rs +++ b/voxygen/src/anim/src/quadruped_low/run.rs @@ -10,6 +10,7 @@ impl Animation for RunAnimation { #[cfg(feature = "use-dyn-lib")] const UPDATE_FN: &'static [u8] = b"quadruped_low_run\0"; + #[allow(clippy::useless_conversion)] // TODO: Pending review in #587 #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_low_run")] fn update_skeleton_inner( diff --git a/voxygen/src/anim/src/quadruped_medium/run.rs b/voxygen/src/anim/src/quadruped_medium/run.rs index 99a4bea5bd..5feef6b718 100644 --- a/voxygen/src/anim/src/quadruped_medium/run.rs +++ b/voxygen/src/anim/src/quadruped_medium/run.rs @@ -10,6 +10,7 @@ impl Animation for RunAnimation { #[cfg(feature = "use-dyn-lib")] const UPDATE_FN: &'static [u8] = b"quadruped_medium_run\0"; + #[allow(clippy::useless_conversion)] // TODO: Pending review in #587 #[cfg_attr(feature = "be-dyn-lib", export_name = "quadruped_medium_run")] fn update_skeleton_inner( @@ -22,7 +23,7 @@ impl Animation for RunAnimation { let mut next = (*skeleton).clone(); let speed = Vec2::::from(velocity).magnitude(); *rate = 1.0; - let lab = 0.1; //6 + let lab = 0.6; //6 let speedmult = if speed > 8.0 { 1.2 * (1.0 * skeleton_attr.tempo)

iLYy2h_ed2^~*6X$&bK@km3DT2$2(Q|+Yeu9xgTE4?znH?(Gj`uzrP>ALOGWBXjXM!I%c?$xTd5d z%EN5(JN*YHBzO_M^cDbL0gJH3*m1|MA?QDS62sKGNmbEU3~tbe(LxBD(GaclP?l)R z^5xBiJI)dGkTkyRQy4Z2;bmIaHeu(>ByQhUAT7v*Le4c)x+%y6G$GgEm^4K=5C5g9 c&~>ht(2YpGAWR^f3}X*B#tv%!dd;W&2M5S7zyJUM diff --git a/assets/voxygen/voxel/npc/tiger/male/foot_br.vox b/assets/voxygen/voxel/npc/tiger/male/foot_br.vox index 74c360990a7a26368b6b3d4f4236a6fcd3bd3341..e2626c1040d76286bdcb1e75c5b492d46c474418 100644 GIT binary patch literal 55811 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 diff --git a/assets/voxygen/voxel/npc/tiger/male/leg_br.vox b/assets/voxygen/voxel/npc/tiger/male/leg_br.vox index 3519108d8688f8093ed64b0f8992c25213279d03..94e6867f16303e591cb1f8ad81ca041a0fb65082 100644 GIT binary patch literal 56123 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 Lu8SrT65#s)@L4K8 delta 581 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