From 328f4ff730b9702929738bd6d66b19bde83bd7ed Mon Sep 17 00:00:00 2001 From: kbulgrien Date: Thu, 10 Jan 2008 05:23:13 +0000 Subject: [PATCH] Rework dev/wip/spout to make water wider and more visible. Also adjust the color to better match the sea arch set. Add a reference layer of a sea tile to spout.xcf. Convert all the .png files to indexed mode to reduce size. Update README with methods used to produce the graphics and remove comments about issues with the original revision. The .arc files have been modified to add 'map_layer item' to prevent wall pieces from disappearing when these archs are placed on top of them. git-svn-id: svn+ssh://svn.code.sf.net/p/crossfire/code/arch/trunk@8161 282e977c-c81d-0410-88c4-b93c2d0d6712 --- CHANGES | 9 ++++ dev/wip/spout/README | 70 ++++++++++++++++---------- dev/wip/spout/pour_h2o.arc | 1 + dev/wip/spout/pour_h2o.base.111.png | Bin 378 -> 476 bytes dev/wip/spout/pour_h2o.base.112.png | Bin 383 -> 473 bytes dev/wip/spout/pour_h2o.base.113.png | Bin 377 -> 473 bytes dev/wip/spout/pour_h2o.base.114.png | Bin 374 -> 476 bytes dev/wip/spout/pour_spout.arc | 1 + dev/wip/spout/pour_spout.base.111.png | Bin 683 -> 519 bytes dev/wip/spout/spout.xcf | Bin 11148 -> 14636 bytes 10 files changed, 54 insertions(+), 27 deletions(-) diff --git a/CHANGES b/CHANGES index ec2c7dc94..b09732cb3 100644 --- a/CHANGES +++ b/CHANGES @@ -1,5 +1,14 @@ Changes for SVN top of tree: +Rework dev/wip/spout to make water wider and more visible. Also adjust the +color to better match the sea arch set. Add a reference layer of a sea tile +to spout.xcf. Convert all the .png files to indexed mode to reduce size. +Update README with methods used to produce the graphics and remove comments +about issues with the original revision. The .arc files have been modified +to add 'map_layer item' to prevent wall pieces from disappearing when these +archs are placed on top of them. +Kevin Bulgrien 2007-01-09 + Add a set of "overlay" archs that are designed to sit on top of walls to form a spout with water pouring out. The art is designed to separate the liquid and spout to allow spout and fluid variations. The archs are WIP because they diff --git a/dev/wip/spout/README b/dev/wip/spout/README index cffc55746..879e09878 100644 --- a/dev/wip/spout/README +++ b/dev/wip/spout/README @@ -18,57 +18,73 @@ pour_h2o.base.112.png pour_h2o.base.113.png pour_h2o.base.114.png : Animated pouring water to be placed over top of the pour spout. This arch and associated graphics - are not quite perfected. The water is a bit to - dark for sea tiles, though might work for the - darker river water. + are not quite perfected. The water color is suited + for pouring into sea arch tiles. =============================================================================== GRAPHICS =============================================================================== The spout.xcf contains many individual layers of components used to create the -above artwork. Note that the water design was quite easy. A single color -water was drawn, then GIMP's Filters | Noise | HSV Noise... was used to vary -the color. The effect of the filter is somewhat random, so it was a simple -matter to generate variants of the water to make the water look like it was -flowing. +above artwork. Included are various wall styles and a sea tile for reference. +Note that the water design was quite easy. A single color of water was drawn, +then GIMP's Filters | Noise | HSV Noise... was used to vary the color. The +effect of the filter is somewhat random, so it was a simple matter to generate +variants of the water to make the water look like it was flowing. The filter +was applied, undone, and applied repeatedly until each frame had a good mix of +colors with few dark pixels. Further, the animation frames were each checked +to be sure the sequence looked like water falling. HSV Noise settings that seemed reasonable were as follows: - Holdness: 2 - Hue: 3 - Saturation: 63 - Value: 63 + Holdness: 8 + Hue: 8 + Saturation: 80 + Value: 160 -The water is too dark to match the sea tiles, but might match the river water -colors. +The flowing water is visible on 32x32 tiles but if pixel size is small, it is +not very obvious. It is possible that picking a few more lighter color pixels +might improve that, but the water looks pretty good at 64x64 bits in jxclient. -The flowing water needs to be wider to show up the animation on 32x32 tiles. -It is even a bit hard to see at 64x64 in jxclient. +The graphics in spout.xcf are in RGB format instead of INDEXED form, so they +are not compressed as well as they could be. This is partly because there is +no point to converting to indexed while various layers have art not part of +either the spout or water. -The graphics are still in RGB format instead of INDEXED form, so they are not -compressed as well as they could be. The conversion to INDEXED should be done -before releasing the graphics. +To minimize file size, when exporting the the graphics to .png files, save +each frame to a .png. Close the .xcf, then open each .png and convert it to +indexed mode, resave, and close it. This ensures that each graphic's pallete +can be as small as possible. -=============================================================================== +Furthermore, when saving, use Save As so that you get the Save as PNG dialog +which lets you choose the compression level and option. Uncheck all options +and select maximum compression before saving the .png. + +===============================================================================P POSSIBILITIES =============================================================================== -The possibilities of modular overlays becomes more evident if one concsiders +The possibilities of modular overlays becomes more evident if one considers things like the following. Use the same pour_spout.arc on any "tall" wall for a number of variations on the wall/spout theme. - Now, increase the variability by writing new replacement for pour_h2o.arc + Create a few more spout styles that eject fluid in the same place to add + even more variety. + + Then, increase the variability by creating new replacements for the water along the lines of pour_blood.arc, pour_sewage.arc, pour_fire.arc, etc. =============================================================================== -PROBLEMS +MAP CONSIDERATIONS =============================================================================== -Presently pour_spout.arc and/or pour_h2o.arc cause a wall piece placed below -them to disappear. Only the floor graphic is visible. This is probably a -map layer issue, so some experimentation will have to be done to figure out -how to get the wall piece to stay visible below the spout and animated water. +The pour_spout.arc and pour_h2o.arc are no_pick 1 and will be placed by default +onn a no_pick layer. For some reason this causes the a wall piece under the +spout and pouring water to disappear, showing only the floor piece underneath. +For the wall to not disappear, the spout and water need to be on the items +layer. This can be done in a map file with `map_layer item`, but has been set +in the pour_spout.arc and pour_h20.arc files so mapmakers will not have to be +aware of this. diff --git a/dev/wip/spout/pour_h2o.arc b/dev/wip/spout/pour_h2o.arc index d7edfb1f6..6acabf3bf 100644 --- a/dev/wip/spout/pour_h2o.arc +++ b/dev/wip/spout/pour_h2o.arc @@ -12,5 +12,6 @@ is_animated 1 magicmap blue no_pick 1 anim_speed 2 +map_layer item client_anim_random 1 end diff --git a/dev/wip/spout/pour_h2o.base.111.png b/dev/wip/spout/pour_h2o.base.111.png index 400b8e0a819ee122178c59c1513848fae9f5a904..3e260025482f2edd9aa0edc9ff7bad32ef4e9d3f 100644 GIT binary patch delta 461 zcmV;;0W$vj0^9?T8Gi!+002a!ipBr{0R>P@R7C&)02eTG8ZvVeIG!Fkk0CmJBRhK% zJ)j;ujvPFeB|Ur_KAs~!i6lUd96_fgL5(9pl_x@rDnf%GLZT-_i6cXqAVZ=gLzpK- zlPN@yBt)MlMV%)`ohL=7Cq|+wN02E;n^?POC6ao-Izf zF;Jx>QNk=ywl7hxE>W>6Q^Ye0d!JMQvg8b*k%9# z0EJ0JK~y-)V_+Bsqkw#%!YYeb-r7nLuRK? z#%GF8fxVHxyDvTkI&8ugp?KuIc$EXf)E#guFm#nvvPR)B!L2}CKwij}(G91(sDhNf zd7u`PCoTodeop-C8WJLAIOGj9#q_+Tc`S|PLQo|DXuS@ekLs6L00000NkvXXu0mjf D12?jv delta 362 zcmV-w0hRvT1Ns7x8Gi-<0047(dh`GQ0YOPbK~z}7V_+BsqhJ(_f>AIEM!_f;%0N{u z?Z2#C=6_1eU?x|itLwu5>>Pg?u3YY6q`S|J4CepW(`)%ZAi=JoRq$`1lnVL_~}j9zJ?Ov#gENSGsz&{{{J38SXz|XAt1~ z#_;t!Bg4IW4P*341HyuZ|3AEYz;OGPC<8w~4+A5!I)k*hIPF6~O0xUEn)*kEx9?aP zSXqP^K7PE#z{(-Xz`-iOaO1`<215f?hTnhm8P1%Ep;|})046?IJ#4QPx# diff --git a/dev/wip/spout/pour_h2o.base.112.png b/dev/wip/spout/pour_h2o.base.112.png index 2bff2e31bd69d2b3616b579eeb32c2e8b6359b23..606f891677b4acab1d3d477ccdc3242a01781d93 100644 GIT binary patch delta 458 zcmV;*0X6>r0@(wQ8Gi!+002a!ipBr{0Rm7=R7C&~0T?fB8Z>(!HFh30b{RK<8#jX< zIDH*Bf*m<~8##?2I)NiQd?7uF89t*VK7%1Xj~zgYBR`5GK#L_okR(BvB0`)fLXapy znkGY%Btw`VL#HD|o+m_;Dn*tYNT(=AnFBPOC3YqcBdV zF;1p0Po^(UvMf-sG*Fx?P`EHst~OGiEmN~EQ@AlyvoKV)Cs)2ORk$@(t}<1(GgrAY zSiUw{x-we5Gk;mcH(InbTgN$H#yexmLS@A}XWkci*vbF^00DGTPE!Ct=GbNc004za zL_t(I%VS^|1*3p`AgAGhS6<#l0 zPl2bNsjUt^1s0lKf(CfxU6qZjC7IN5EAUg%a`V*<#Y3&Yj6=xV-p~-IJWmj_zZk27 zod_-k(o!q}?y3rkfjH#Zf<;Z(l^A{0WCBnn05{SOdDN^I@c;k-07*qoM6N<$g7)pO Ao&W#< delta 367 zcmV-#0g(RL1OEb$8Gi-<0047(dh`GQ0Y*tgK~z}7V_+BsqhJ(_f>AIEM!_f;%79N` z+JAk$(*FZuxt>w)e*=Rx6kE9{ zyz}Sx6$UOYB?fNpmsC$v1RY>!x8VP)*K7=Ye2*ATovLM|y92&_xy2wU&ckr`-dURD zD!dLbH>>#n^5r82c2+Hhw{N!7B+ui`hOb`+yDP#5McQ7 zO`PH3oqG(5DrjZ@=@tSC@+tqneEY_rXTZhq>(?8Gdw=;Eeti8vlMq0OS8?&Q|MK!; z3{RfCWME?Y$-wwulR-sAj^V=joeW|UUm3oBlV$k$@g>9O&&#Qn9ssoPW)UA|${+v$ N002ovPDHLkV1n=jw4DF| diff --git a/dev/wip/spout/pour_h2o.base.113.png b/dev/wip/spout/pour_h2o.base.113.png index 924a4ea7523a7359e2d6c7215eec20eea7bceee5..4d2faffb76faabd827b849aee40a05ba14429b05 100644 GIT binary patch delta 458 zcmV;*0X6>l0@(wQ8Gi!+002a!ipBr{0Rm7=R7C&~0U0Pz8!u-TGJzgAhaEeNB0Y#C zK7=Dah#xNtG%| zp)X0CElQj!N~tAExFJiuEK8v(OQNp2P_HjgsxDBqGEt>4QLHafurX1qGf}K9QnfKssxMNqF;k~AQ>-vlwJ%h#zoc;&7AI6d(yu;nu|!6z@zrf$KD zPXQ0RsIw|Q1;GN`imZ6#UF;-`LzRVbE8y3$l#}wZ$3v|^%~eF7(I)_>yrZ^12a~Rv zuOKc3hAbM)Hj;YgMmXff6arP0OobfWf~-&_01pBVZe)&^ga7~l07*qoM6N<$g5*=L A-~a#s delta 361 zcmV-v0ha#R1Nj1w8Gi-<0047(dh`GQ0YFJaK~z}7?UX-D!%!5(PZLurWH6-=5u{jB z2(5)+v7kdIaZ{XK1^WRU1P2FKXYtRjAUNn(5tM@BqKQqQ+JrO-HtltGuvSeX!u!qd z-FNOehX*hi3Jjxr0rz*!m-%9fL2Qf4Fa^=d@S(}jX=|OsT=sP^bVZvMl2uB zPzQYf1w5L_$zoD$1^-k)ZSjyqQA1kDf(TI6ElNy4No|nl-r%)!i`?W4dc7>d(2B)@ z54o1g>*Ra$;J7q`wwdt?_z54L+~9J00000NkvXX Hu0mjfdQ_?M diff --git a/dev/wip/spout/pour_h2o.base.114.png b/dev/wip/spout/pour_h2o.base.114.png index 4df7796edee6062fbe8df9ff557960c4e770c2b2..d5696bb6e4ef0b549a1d7bc6d68186d37da403b2 100644 GIT binary patch delta 461 zcmV;;0W$vf0^9?T8Gi!+002a!ipBr{0R>P@R7C&)02e4$7b{sBIFTPYe;GQICOdT~ zJaQ#GdmlWJB0Z2HKZ+wiha^CaB0-KGL82i+njb-+B|(rVL5?FrmKQ?6Btn`fL7F8) zlOjf%EJcVaMUN*&lORT|B}ShpMwlr^m>@^2B}b+yN1H51lYb~kpD9S5DoCL!Nu4A~ zuPjQQD@vjpTIQ^Ph>q&8EfI8>uHR;4Re%PLmSI9IGM zTE{e8xhq=eFn?XxKV7agVA?Wc-$rD)JZI)WY1v9?z}56+7XSbN0d!JMQvg8b*k%9# z0EJ0JK~y-)V_+Bsqkw!6EboC=UXfD=ue@}iOBh}So~HhIAIEM!_f;%0O4I z^}mu*!~X%XTwOi;zr1|!0`Hw6vMlB_h}yj4h~cPb8|=hfByJ3 z0}G1e^ZPe4siK~GRYP**`oQ9@EvLQPjfO;bZsSVB)#MO0l!Pk&iVR%cUJYE)QdR$*pV zVtZFsZ(Ck-U}1A%Z+Ky5bz*69Vsm_9V1i&_gkWEIV`qM4W`SpDf@f)kYG;IMYlUiS zgluVwYiW&ZX^L%WhHh(zZfb~bZGCWjfN*z=a&?1qc#m^$kaKX1 zb#sJxgO7K2l7D!2l6iNOdUcU}eU5#7k$r@eeSDLCdysyIkbi%feR-09f|h@Ql!Jhq zgMgfdftZJeorr{)iHDktl%|rF_{5#T00001bW%=J06^y0W&i*HiAh93R5;6HU>F5M z5O@bBBu6{?n8$|&_`4Wk%G-NI#>KkZI2c-6*x4FuVR11*R#IC{kc*v}g+oP0OaPl5 zCazZM;;f8JO5x7f9TDYWX(lhkqYY6s|Y4d#ED1hKJd_DKk9_sDS zN21}kU7hj4$oA0Qkk88r5)Xq}Xfz0jZbF2O-b5USj~#){3Au8;ezR6<-L*L`ms!o) zTi(Fr#S2_C5|to$&I;g;DyPP+rBZE5 zGsvCP`x$eySFlllL!#GvPV#trtd@%US{)0EE07g}&aN27#z#>vRrKlUr{8pHUDv6V z{FI)v|9|8R9Ro~|V0mdt$>vs5hHhMYGyiIS zD?Q*CVCV3@v{ugFu9O=rn=el^W!-O3#sz}{&1BMYvnjs|h1;(@N#Kg%2 zQRp~je21dQh=c=LJQiAscf~(U-M^)}eeQC({ugV%08ue7QyoxeTL1t607*qoM6N<$ Ef(4H~i2wiq diff --git a/dev/wip/spout/spout.xcf b/dev/wip/spout/spout.xcf index 75faee3a52bb3ae1a7f3c0d7bda76e57dafc17b9..db26eeaef8fe5c65efb360778b28526f85caa129 100644 GIT binary patch delta 6039 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