From 09cc2dc91e5fd65c0871b4becafc1061f72d738c Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Tue, 19 Nov 2024 23:13:34 +0100 Subject: [PATCH] added gindew's texture layout helper --- docs/articles/creating_textures.md | 14 +++++++++++--- docs/media/iso_layout.aseprite | Bin 0 -> 2642 bytes docs/media/iso_layout.png | Bin 0 -> 2587 bytes docs/media/iso_layout_large.png | Bin 0 -> 3434 bytes 4 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 docs/media/iso_layout.aseprite create mode 100644 docs/media/iso_layout.png create mode 100644 docs/media/iso_layout_large.png diff --git a/docs/articles/creating_textures.md b/docs/articles/creating_textures.md index 5aa343d..db23f5c 100644 --- a/docs/articles/creating_textures.md +++ b/docs/articles/creating_textures.md @@ -1,12 +1,13 @@ # Creating Textures When creating textures, either for custom mods or to change the game's default textures, there are several things that you will have to look out for. This article provides some guidelines and explanations. Note that this article is not exhaustive, so don't hesitate to [let us know](https://link.tinylifegame.com/discordweb) if there's anything you're confused by! -## General Notes +## Composition and Colors +### General Notes - Items that should be able to have color schemes applied to them in games should use a grayscale texture. The individual colors will then be applied to the grayscale texture when drawing. - When making a mod, the layout, size or positioning of custom texture regions generally doesn't matter. There are some exceptions to this, which will be noted in this article. - Items that should be able to have multiple distinct color schemes applied (like a table with a stone surface but wooden legs) need to be split up into multiple layers, with each layer being colored by its corresponding color scheme. These layers need to be laid out **horizontally**, with the `n`th layer of the item being placed `n * width` pixels to the right of the base layer's position. -## Furniture +### Furniture - Furniture items generally have four distinct directions they can be placed in if they're more complex, or just one or two if they have symmetry in one or both axes. - Layers (see general notes) can also be used to determine which parts of a furniture item will be occluded by Tinies and which won't. This is useful, for example, for the backrests of chairs, which should be drawn above a Tiny when looking at them from behind. @@ -14,7 +15,7 @@ When creating textures, either for custom mods or to change the game's default t ![](../media/counters.png) -## Clothes +### Clothes - Clothes have multiple poses that they have to be compatible with, some of which have multiple animation frames. The ordering and positioning of these frames cannot be changed, so it's best to use the reference textures below for creating news clothes and hairstyles. - Clothes have four rotations, which are laid out in a Right-Down-Left-Up fashion. - When layers are laid out for clothes, each layer should contain the Right-Down-Left-Up ordering before the next layer is started. @@ -32,3 +33,10 @@ When creating textures, either for custom mods or to change the game's default t - The most up-to-date version of the game's color schemes can be found in the [ColorScheme class](xref:TinyLife.Utilities.ColorScheme). ![](../media/color_schemes.png) + +## Isometric Layout +Community member [Gindew](https://linktr.ee/redgindew) has created a template that gives guidance on the isometric style that the game uses. You can download it as [an image](../media/iso_layout.png) or as [Aseprite file](../media/iso_layout.aseprite). + +Here is an enlarged version of the template so you can get a better look: + +![](../media/iso_layout_large.png) diff --git a/docs/media/iso_layout.aseprite b/docs/media/iso_layout.aseprite new file mode 100644 index 0000000000000000000000000000000000000000..a1c63df6cfd47c9ab33ebcd2745cdc234931bb94 GIT binary patch literal 2642 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

4`-+~o`Sag_F;R^6 zYrD=GP2)GljQ{p9o)Y=dw$Rx7v@sgGJ*zS)D;}Mv^62*eW+{PAO$7OS_)z9o5R4S0THd%j=RtqoFhhx{zbbcwT{^T8U(HIFv zd9m9@iDz4=fKLM%TYqN#)Koi(J~K6zBE2L|Y1WykjvxPBK&o;CVqV=?nqiT~cYxUI z)yrM=X_~Cvvqpi#8p7eGvLV6>lJlC+i2`C6wrl6k(ZtGbT(}Pt300g87OecH1^%!Z zzN{&$dI;zb87xfKnb^M*30Ir{k=-JJVgq6+Fi8{=Ess`{)r(2)>6ajk# zODKC}fG)(pap~Nj82!DBEd6A8c6EZ>`*SJNZKrfCPIZbVnEq`*8julDX+GBx+Omfdy|NUdnK*nShD*m)0N zXu7HxDwd@Rf4-+sq6d-O-2x0AJs)}PzfVtKMggDFv&Y#}Jrc_9@$odR8=3>bpNBn; zT6aoK=-{P;-k$sj4JL~bxxGevOizXd0-w$dGKJynSa{O#pZ zhdS1>=KFWcqd)S^+?1DnhooxgMOfuAa*2Y_u=vC@yBt__eHT7%yA2|^1f^8gfP{7| zR*@WnXpDn1rbN(3*V9*DZUolwuJR1rxa7%I86f&c;-y~F-M|TZKl?iC@=x6JCxQC5 z7t6z>{!$g(zwV-QG+(T0&=y)X=@p-zbG`zu@r@mu! zsWW(rXpN~iS_f^9*AUDjSJp8!-i1{~ONlF_meaHr3unnEhEC^J=Jhi`<&~oKBeCI9 ze9>oalS+JfpUXro%)G;M;^P~}qxHwAH=e{%hrVO`EL557>OI;8&(s>4-` ztdcKXN=K+}k!{7FK7OV+%NXHSA)acSzTC!91j&YOK9FVAw)detjm&r>ONWrf3!Oyg zO5dl8Kh?k#P)lpXuL&c?C3oLwB*hzT|8zw8y^2P5&qi=P zC!>Vj3)(fX3qvh8EI3;)$Isb_A(&dy_dvgTM_gI2X=252urw$#&}u4$&v%z@^oA|MxFt!W!U`=H#)M<=cj;1zQrJSMM05(I zboq&GL5mK^#*oSX!t353@8L)O7NQW;H|Ib>Yp06)#e=&0zMU+JqU}i-a8Kb8nKtM} zQcg+KxG8>DZrtulsT6oD8o%`%e`t_W4`S$GM_jZhf$>utgx_PVk>&!H=}AfLeEoa>bcPk||6?ibHn z2o0%kPx7xPei)l1$)Mo$)xwm z68(_H%>@sMpKZp2S2+g_v{m_b&Opmcp&nw&lw+34h#|Hz*hp~-hWSV z+^qHBmD>V$0cprLENpb18Whd%tb6@tpVi ze&nq|wyXNC{eKs$4rcz4?TU!_G61Qc;L+C_LO!iO9qrR3RWqr6VbokxllmMcrpaA+ eZVz-gbG1KmFG=l=ngNCcPw literal 0 HcmV?d00001 diff --git a/docs/media/iso_layout_large.png b/docs/media/iso_layout_large.png new file mode 100644 index 0000000000000000000000000000000000000000..89581740b0e39e5c0c9d7edde37b37622ed5a04a GIT binary patch literal 3434 zcmZWsc|6nqA7`0kVtva^sBcl2x#dfaO6sSWBll){7+7yX9CEcqow$4) zd(+6wmCNN`yh^&7@no;P-~XJBd-}!s9#3>d;^ccMFhE!$?0{#ukdX9C-Y49Qc^Duh zw7%ouJ{wnj@4vZ@DSfXM?P?RY1wYm|?5VsZd8JwYqHxR|A;X1$;X3!-W;ROCt?9}l zW`Vs*&W%>vAHCMPoQh<7E5NQTO+VIL=lj%Ehej))E)5k7Y|GWcqzW@FVy*vxs$Fe= zDYlK{P=x5A_Ts;uiBPpv&rO6L7#ms#!q=Ot4$f(}DZ{+mdqjFMXKGulpP{o zYC_LNl^vW}E;6u)9j}~v@6G8Z;2(Xyus-f&$}9>tJC_LDVh!%pE|c0E2k#V5ZLXr_ z`%#BR9yFX!WOvL&`Yt}PqU*z>)GaKMBhNrEkzeEWU-!#?eW%vyafz?1Ri+)50~_+g z>$d(DRom59eJ^xUMNP^*isl}pAQk>j<0Y4<`-qVK5|MDOK}|ltiV?!~W6SVjhPa}` zL#D%!=y4Q#7-Z)j)66l^=7_>ILkP3}*a2~r_=VN;sD#~1=Y7&5HW(-QzTrmp1t6Uni#`?tOyHC%(GZxA?46* zkl|@a>&Q;M8_kn{Y2xDl#SK}Fcoi|tr%KA+0*#AU7lk z^ZtBHlm=s+|JYD%8OV>{$5l#fFAlM7+W@YsX0jr5DKFFORlAth22oza;vY|y)EMOb z<`ERQXM=~1uSAjnRwT+y*8wiJM1h?}S+Ku(blw0aXpaIACZdWF!Ohu#kI!}9I*9$Q z;LTDt)Sos@7a4e)7r^iia1uaF7SGwNQ<$jQ*MPO$t~u!QT|Q*Cqh6y7S*7O{Q-+}T z$1*LzK`HLU%;6(w23|J940T+7`FVUjS2IlBjZZBTUNJ>mzL zEuP~Dt24-pG(FYAO`N>BabAwIihL6FlW|8vUgAIuZVAvz-_iJGbZYhR1GO9%EZvXX z)cy2gowo}S(jP~LxYCI9>CV{ukMCGDu(&Te+Qhoit zooVn7_xP0KruDAY*zkL8OlhW!1&;h~2X=v4yZwf0i@~km^L-ds_Q~u-3UD;IEP4z8 z6tAE~uJq0rCba*2ep}tHJ4(&@H~wOGE(HqM++%p|lFwrF{N7;}XRJPc@6r@!>{8uy z;SRI;pf9UQG^3WsFmbf=HRx-GYJ!*Jqa;v}T7xaD(7(6-8F*IUC|vKBS5)$}F-~4* zW7h$Glb~lng`_}sr%LP6VcbxI%9h#C!$7MoOaY!LOI~qmVJU~7V!>ygzpnvPUjS@L zpB+A;F6EI+u}1pAm#8V(Mt0(~2CVE|5ND;W-P0+uT9JSbxwtu;BS<~aACVG1d6H_< zR`=g7AdKQl z`tkLz!M8uvX(=xnwPj=1gyH=~+V*6S$>&8H08#!p1pDmh7(y^pap30MmgMG4oHM`E z6Z3VulR9C0gMmQC4X&4?yh%aY$PPN@((9EIGW5{Kf)7GhI;L&5C6XA@7jipz;S{RU zGyj2r1QEo|wj^YA@g;k+Zxyw3Hj8g8k}3;dFVAvH_Vl zm2i|DUXt=lPjM6T6c%#EkHRvc zv5f`1SG=o$vK#VDlE*&hKFfIQM_1#lZ0H}#p||!_B1!`Q3g)?iGoT+43F^B3XHS06 zXFks%i1i=wJzf*<8++tZlwR?}um#TvIT?@WKoEAh#7HpFJ(k}!xj#FC z$Z=sst}rhvfTAt2cs*_~zBP(?vljJxG5^&xSJbni|3&auz`3U}b_xPN##T1Oho1V| zy_`3Y0Avp6J{He8!a|d*!Dj&!&<8}C9{J4DZULthWIBj5!Bu>EJx0p9un+jlBXrQ# LVPDA}^x6Lddm&78 literal 0 HcmV?d00001