Max_Caine Posted August 26, 2014 Author Share Posted August 26, 2014 Update: Okay, almost ready to start the vaulting, ducking and one of the injury spritesheets. Here's a preview of what it'll look like. Quote Link to comment Share on other sites More sharing options...
Gauddlike Posted August 27, 2014 Share Posted August 27, 2014 Almost all the time was taken up editing the spectre. There must be a way to automate this, as most of what needs doing can be heavily automated. What did you need to manually edit to get it working? Quote Link to comment Share on other sites More sharing options...
Max_Caine Posted August 28, 2014 Author Share Posted August 28, 2014 (edited) Almost everything. The generic XML data file from TexturePacker is completely different to the Playground SDK spectre. You're supposed to be able to make a custom file which will export the appropriate output, but after folowing the instructions, nothing happened. Anyway! I've been working on the crouching animations, and something is bugging me. In the original animations there's a lot of padding before and after the actual animation takes place - theres around 11 frames of the model standing in one spot, then 5-6 frames of the model kneeling in one spot. I've done away with the padding, and I've noticed which my animaton it's very jerky, even though it's exactly the same number of frames (12-13). If someone would be willing to d/l the running/crouching animation and see for themselves if the animation is jerky, I'd appreciate it. EDIT: Think I've found a solution, but not a proper one. the <frametime> tag governs how much time a frame stays on the screen - no idea what the unit of measurement is, but by reducing the amount of frametime, the jerkiness is much less evident. It sort-of fixes the problem but it doesn't really resolve why when I set the <frametime> tag to the same value as the GH values it does it jerkily. Edited August 28, 2014 by Max_Caine Quote Link to comment Share on other sites More sharing options...
Gauddlike Posted August 28, 2014 Share Posted August 28, 2014 Did you try removing the padding frames from a GH animation just to see how if that makes it jumpy in the same way? No real reason to do it I guess except curiosity. Quote Link to comment Share on other sites More sharing options...
Max_Caine Posted August 28, 2014 Author Share Posted August 28, 2014 (edited) Well.. not really. When I rendered it out, I could see which frames were needed and which ones seemed like bookends, so I deleted most the bookends. If you look at.. say... crouch_e from the any of the armour spritesheets, you'll notice there's 11 frames where the solider standing, 8 frames where something is happening, then 6 more frames of the solider in the kneeling position. The actual crouch animation is very short, the bookends are comparitively as long or almost as long as the animation itself. So.. I dunno! I actually have more frames than the offical animation, which means it should be a smoother transition, but it isn't unless I reduce the amount of time any particular frame remains on the screen (for reference, I reduced <frametime> fro 50 to 25). EDIT: Anyway, jerkiness or not, there is a solution if not a final one and I'm going to crack on. Once I've done all the spritesheets for a complete weapon, I can release the rest of the (CE-only) code I've been working on and people can start playing with the armour. EDIT 2: I suppose I could just copy the bookend frames enough times to see if that makes any difference. Edited August 28, 2014 by Max_Caine Quote Link to comment Share on other sites More sharing options...
Gauddlike Posted August 28, 2014 Share Posted August 28, 2014 If you have more frames but the animation is supposed to take roughly the same amount of real time to display then that could make it look jerky if you kept the original frametime. For example the original animation is supposed to take 10 seconds and has 10 frames so each should be displayed for 1 second. If your animation is also supposed to take 10 seconds but has 20 frames then each frame should only be seen for 0.5 of a second. Displaying each one for 1 second would make it appear jumpier because each frame is being displayed for too much time, even though when set correctly it would be a much smoother animation. Quote Link to comment Share on other sites More sharing options...
Max_Caine Posted August 28, 2014 Author Share Posted August 28, 2014 Fair doos. It's just a case then of setting the correct frametime. Quote Link to comment Share on other sites More sharing options...
Gauddlike Posted August 28, 2014 Share Posted August 28, 2014 Do you calculate it or guess? I believe frametime units are milliseconds so an animation with 20 frames would take one second to display with a frametime of 50 which sounds about right for the kneeling animations. All you need to know is the duration of your animation divided by how many frames you have to get your new frametime. Of course I could be wrong on the milliseconds... Quote Link to comment Share on other sites More sharing options...
Max_Caine Posted August 28, 2014 Author Share Posted August 28, 2014 I didn't know the unit of measurement - I went looking for any online documentation, and for any forums where others might have used Playground, but I had no idea what the unit of measurement was, or what it even meant (I had first thought it specified how many frames there were going to be!), so I guessed. Quote Link to comment Share on other sites More sharing options...
Gauddlike Posted August 28, 2014 Share Posted August 28, 2014 Well if it works then that's all that matters to be fair. The frametime looks to be milliseconds to me but I think all of the GH animations use frametime 50 anyway so I doubt it matters if it is not exact. Quote Link to comment Share on other sites More sharing options...
Max_Caine Posted August 28, 2014 Author Share Posted August 28, 2014 I'm pretty certain that "most pleasing speed of frame transition" could be mathmatically worked out... all the figures are there, but I've no clue as to how to calculate the formula. Quote Link to comment Share on other sites More sharing options...
Gauddlike Posted August 28, 2014 Share Posted August 28, 2014 Length of animation in milliseconds divided by number of frames? Or length in seconds divided by number of frames multiplied by 1000. Quote Link to comment Share on other sites More sharing options...
Max_Caine Posted August 29, 2014 Author Share Posted August 29, 2014 While I'm still working on the spritesheets, I thought I might discuss what the stats for the armour will be. I've discussed this before, but after a lot of testing with mock ups, I've come to the following conculsions regarding Prophet armour. I've also decided that this going to be CE-only, as I can take advantage of the CE extensions without having to worry how it'll affect vanilla, so I've gone for the following layout: <Armour name="armour.prophet"><Resistance kinetic="35" energy="30" chemical="30" incendiary="35" /><VisualParams range="22" coneAngle="180" nightRangeBonus="5" /><PsionicDefence defence="0" points="0" degradation="0" /><reflexesBoost>15</reflexesBoost> <Props moveSpeed="300" stairsMoveSpeed="180" vaultMoveSpeed="24" /></Armour> Let me take you through it. The armour rating is worse than Buzzard, but better than Jackal. A plasma rifle will do a minimum of 30pts of damage to a Prophet operator, so even a single shot can be deadly. I've deliberately made it's energy defence 12 pts less than Wolf, because of the sight distance. I've found a sight distance of 22 combined with a 180 degree cone gives tremendous advantage on the battlefield. I firmly believe that on most maps, sight is actually more important than cover or armour and the Prophet gives you sight in spades. It also makes night missions so much easier, both with the reduced natural sight and the improved night range. That's why I haven't gone for an improved accuracy. I found that soliders in Prophets armed with a sniper rifle and an accuracy boost would utterly demolish the opposition. However, a reflex boost make Prophets a reliable form of early defence. Now, you don't get the opportunity to have Prophets until Landing Ships, when you already have Buzzards and Wolves, so I've reviewed the cost of a Prophet, and I've considered the following: <Row> <Cell><Data ss:Type="String">ManTech.Prophet</Data></Cell> <Cell><Data ss:Type="String">Armour</Data></Cell> <Cell><Data ss:Type="Number">60</Data></Cell> <Cell><Data ss:Type="Number">50000</Data></Cell> <Cell><Data ss:Type="String">4xItems.Alienalloys;1xItems.Alenium</Data></Cell> <Cell ss:Index="8"><Data ss:Type="String">StockItem( "armour.predator" );</Data></Cell> </Row> Prophets are great, but if you want to scout you can build a suit of Buzzard armour and have that floating about. With the LOS fixes (thanks llunak!) there's more reason than ever to have a Buzzard. So I reduced the barriers to entry - I had previously jacked the cost all the way up to 90000, but that's ludicurous, given that even Sentinel armour is only 60,000! So, that's gone down to 10,000 more than Wolf or Buzzard, and I might even reduce that further. Quote Link to comment Share on other sites More sharing options...
kabill Posted August 29, 2014 Share Posted August 29, 2014 Looks solid to me. No mention of weight, though. Is it going to be light like Buzzard? Also, just noticed in your code that it's set to stock predator, not prophet armour. Quote Link to comment Share on other sites More sharing options...
Max_Caine Posted August 29, 2014 Author Share Posted August 29, 2014 Balls, I thought I had that sorted out. Yes, weight is going to be the same as Buzzard. Quote Link to comment Share on other sites More sharing options...
blackwolf Posted August 29, 2014 Share Posted August 29, 2014 you know what could be awesome?...if the prerequisites for building a prophet armor was an ACTUAL harridan suit (in the form of a harridan corpse)...but i know thats a lot of work and micronagament with the bodies and stuff . Quote Link to comment Share on other sites More sharing options...
Max_Caine Posted August 29, 2014 Author Share Posted August 29, 2014 You don't see Harridans nearly enough to justify that. They're mostly associated with Androns, and they form a fraction of an Andron force. Quote Link to comment Share on other sites More sharing options...
Max_Caine Posted August 30, 2014 Author Share Posted August 30, 2014 (edited) Update: Still working on the spritesheets. I'm now working on the second-to-last set of spritesheets - crouching injured, death, standing single and burst fire. After that there's the crouching single a burst shot animations, then the standing/crouching idle shots. I figure it's going to take the weekend and probably up to Wednesday of next week to do it all, then I have the animations for a single weapon. . In total, I'm guessing it's going to take a month to do the non-shield animations. I'm looking into finding mouse/keyboard automation software, because there's still so much to automate. Anyway, here's a quick shot of what they'll look like. Edited August 30, 2014 by Max_Caine Quote Link to comment Share on other sites More sharing options...
LordJulian Posted August 30, 2014 Share Posted August 30, 2014 Shit, that's an insane amount of work you got to work on there. A shame that we couldn't divide the animations to weapons and the character. Cometothinkofit, is it really possible to do something like that? Like say, get a sprite with animations but without the weapon, and have them photoshopped or some other texture editing program and separate them in layers, so we can fit in weapons of our own in between? By this theory, it would be pragmatically impossible to get the weapon animation into the sprite due to the 3D render of said characters and by the recent sprite you just released, the weapon is tugged around in a 3D position. So what I think could be possible is only model 3d weapons and animate them in the 3D engine, before slotting in the weapon animation files in between the character sprite layer in photoshop. Still will have alot of work needed to be done to refit the new weapon inside though. Just throwing ideas here. Quote Link to comment Share on other sites More sharing options...
Max_Caine Posted August 30, 2014 Author Share Posted August 30, 2014 (edited) The hardest thing to do isn't the rendering, or the post-processing, or even the spritesheet stuffing. It's the spectres. The last render I did was 250 frames from eight orthographic cameras, which took about 2 1/2 hours. Those 250 frames covered the four previous scenes I mentioned. But, because I can't work out why TexturePacker won't use the custom exporter I made I have to use the generic XML exporter then adjust spectres to fit. That's what takes ages. However, I've noticed that if I get the basic set of weapons done I can then C&P the spectres for every other tier which will cut down on the amount of work that needs doing. I honestly have no idea why TexturePacker isn't displaying the custom exporter, and there isn't a TexturePacker Community that I can ask questions of. But your question has already been asked, and no, that's not how Playground SDK works. EDIT: Of course, it would be way easier if I had Playground's flimstrip tool, but good luck finding that! Edited August 30, 2014 by Max_Caine Quote Link to comment Share on other sites More sharing options...
LordJulian Posted August 30, 2014 Share Posted August 30, 2014 Ok, even as a Texture artist, my brain just got nuclear-melted from the level of jargon you just said. I persume from what you've just said, that texturepacker is the solution to solve all of the worlds problem, but unfortunately if frowned down upon Xenonauts and thus it's a big climb back to manual XML editing, right? And that reverse engineering through manipulating the sprites directly isn't going to work for playground SDK. Even if someone tried to do it, there is alot of trial and error far more to troubleshoot than rendering it on 3D So we can't exactly make new groundcombat weapons for the characters to hold unless we have the models from the devs themselves, but I think I answered my next question. Pardon me If I sound jarred, as just venturing into modding for the 2.5D games it feels woefully different than the 3D games. Quote Link to comment Share on other sites More sharing options...
Max_Caine Posted August 30, 2014 Author Share Posted August 30, 2014 (edited) Sorry, let me try again. Right, seeing as you've made 3 tanks for Xeno, you're already aware how sprites are made for Xenonauts. The process for making a solider animation spritesheet is somewhat more extended. Thusly: 1) Render out all frames from selected animation in a PNG format with a 480x480 size. The number of frames in an animation can vary, from 10 frames in an injured animation, to 40-50 in a death or shooting animation. 2) Post-process the 480x480 frames. This means add a 3 pixel black outline, and shrink the frame to 120x120, which is the preferred size for all solider animation frames in Xenonauts. Chris gave me a Photoshop droplet which works in Photoshop CS6 to do this automatically. 3) Create the spritesheet and the accompanying reference file. The spritesheet will have all the appropriate frame of animation. The reference file will tell the game the order in which to select frames from the spritesheet and where those frames on the spritesheet can be found. This is because to minimise space used spritesheet creation programs usually stuff the sprites in "best fit" rather than "order of sprite". TexturePacker creates the spritesheet, and creates the appropriate reference file. It has a variety of reference file formats, for a large number of sprite-using programs. However, it does not have a Playground SDK (the engine that was used to make Xenonauts) format. This should be easily overcome, as you can make custom formats. However, I've tried and I can't work out why TexturePacker isn't using my customised for-Xenonauts format when making the reference file. So I get a file like this: <?xml version="1.0" encoding="UTF-8"?><!-- Created with TexturePacker http://www.codeandweb.com/texturepacker--><!-- $TexturePacker:SmartUpdate:14a5af5b7641899ded04bb9f15cb67dd:13264fb5519e4d2886722bc093401828:1b4f8f135b5fca83240ae7d251af57c6$ --><!--Format:n => name of the spritex => sprite x pos in texturey => sprite y pos in texturew => sprite width (may be trimmed)h => sprite height (may be trimmed)pX => x pos of the pivot point (relative to sprite width)pY => y pos of the pivot point (relative to sprite height)oX => sprite's x-corner offset (only available if trimmed)oY => sprite's y-corner offset (only available if trimmed)oW => sprite's original width (only available if trimmed)oH => sprite's original height (only available if trimmed)r => 'y' only set if sprite is rotated--><TextureAtlas imagePath="death_nw.png" width="322" height="498"> <frame regx="19" regy="67" name="death_E431.png" x="2" y="2" w="48" h="78" pX="0.5" pY="0.5" oX="32" oY="16" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E432.png" x="52" y="2" w="60" h="74" pX="0.5" pY="0.5" oX="20" oY="21" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E433.png" x="114" y="2" w="52" h="66" pX="0.5" pY="0.5" oX="29" oY="29" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E434.png" x="168" y="2" w="48" h="64" pX="0.5" pY="0.5" oX="34" oY="32" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E435.png" x="218" y="2" w="44" h="70" pX="0.5" pY="0.5" oX="38" oY="33" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E436.png" x="264" y="2" w="44" h="76" pX="0.5" pY="0.5" oX="37" oY="32" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E437.png" x="2" y="82" w="44" h="76" pX="0.5" pY="0.5" oX="37" oY="32" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E438.png" x="48" y="82" w="44" h="76" pX="0.5" pY="0.5" oX="36" oY="32" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E439.png" x="94" y="82" w="44" h="76" pX="0.5" pY="0.5" oX="36" oY="32" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E440.png" x="140" y="82" w="44" h="76" pX="0.5" pY="0.5" oX="36" oY="32" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E441.png" x="186" y="82" w="42" h="76" pX="0.5" pY="0.5" oX="38" oY="32" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E442.png" x="230" y="82" w="42" h="76" pX="0.5" pY="0.5" oX="38" oY="32" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E443.png" x="274" y="82" w="40" h="76" pX="0.5" pY="0.5" oX="40" oY="32" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E444.png" x="2" y="160" w="40" h="76" pX="0.5" pY="0.5" oX="41" oY="32" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E445.png" x="44" y="160" w="40" h="74" pX="0.5" pY="0.5" oX="41" oY="33" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E446.png" x="86" y="160" w="40" h="74" pX="0.5" pY="0.5" oX="41" oY="33" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E447.png" x="128" y="160" w="42" h="70" pX="0.5" pY="0.5" oX="39" oY="37" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E448.png" x="172" y="160" w="44" h="66" pX="0.5" pY="0.5" oX="39" oY="41" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E449.png" x="218" y="160" w="48" h="62" pX="0.5" pY="0.5" oX="37" oY="45" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E450.png" x="268" y="160" w="52" h="62" pX="0.5" pY="0.5" oX="36" oY="45" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E451.png" x="2" y="238" w="52" h="60" pX="0.5" pY="0.5" oX="36" oY="47" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E452.png" x="56" y="238" w="50" h="60" pX="0.5" pY="0.5" oX="37" oY="47" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E453.png" x="108" y="238" w="50" h="60" pX="0.5" pY="0.5" oX="37" oY="47" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E454.png" x="160" y="238" w="50" h="60" pX="0.5" pY="0.5" oX="37" oY="47" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E455.png" x="212" y="238" w="50" h="60" pX="0.5" pY="0.5" oX="37" oY="47" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E456.png" x="264" y="238" w="50" h="60" pX="0.5" pY="0.5" oX="37" oY="47" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E457.png" x="2" y="300" w="52" h="60" pX="0.5" pY="0.5" oX="36" oY="47" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E458.png" x="56" y="300" w="52" h="60" pX="0.5" pY="0.5" oX="36" oY="47" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E459.png" x="110" y="300" w="52" h="64" pX="0.5" pY="0.5" oX="36" oY="43" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E460.png" x="164" y="300" w="50" h="66" pX="0.5" pY="0.5" oX="37" oY="41" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E461.png" x="216" y="300" w="54" h="68" pX="0.5" pY="0.5" oX="33" oY="39" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E462.png" x="2" y="370" w="60" h="68" pX="0.5" pY="0.5" oX="27" oY="39" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E463.png" x="64" y="370" w="64" h="66" pX="0.5" pY="0.5" oX="23" oY="41" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E464.png" x="130" y="370" w="68" h="62" pX="0.5" pY="0.5" oX="19" oY="45" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E465.png" x="200" y="370" w="70" h="58" pX="0.5" pY="0.5" oX="17" oY="49" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E466.png" x="2" y="440" w="68" h="56" pX="0.5" pY="0.5" oX="19" oY="51" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E467.png" x="72" y="440" w="66" h="50" pX="0.5" pY="0.5" oX="21" oY="56" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E468.png" x="140" y="440" w="62" h="46" pX="0.5" pY="0.5" oX="25" oY="60" oW="120" oH="120"/> <frame regx="19" regy="67" name="death_E469.png" x="204" y="440" w="60" h="44" pX="0.5" pY="0.5" oX="27" oY="62" oW="120" oH="120"/></TextureAtlas And have to turn it into a file like this: <?xml version="1.0"?><!DOCTYPE sequence SYSTEM "sidewalkdtd"><sequence name="death_e.xml" source="./death_E*.png"> <img regx="60" regy="88" name="death_e" savedname="death_e.png" w="0" h="0"/> <framelist> <frame regx="19" regy="68" name="death_E001.png" x="2" y="2" w="60" h="78" /> <frame regx="20" regy="72" name="death_E002.png" x="64" y="2" w="46" h="82" /> <frame regx="34" regy="74" name="death_E003.png" x="112" y="2" w="40" h="84" /> <frame regx="38" regy="74" name="death_E004.png" x="154" y="2" w="38" h="82" /> <frame regx="41" regy="74" name="death_E005.png" x="194" y="2" w="28" h="84" /> <frame regx="42" regy="74" name="death_E006.png" x="224" y="2" w="28" h="84" /> <frame regx="41" regy="74" name="death_E007.png" x="254" y="2" w="28" h="84" /> <frame regx="40" regy="74" name="death_E008.png" x="284" y="2" w="30" h="82" /> <frame regx="39" regy="73" name="death_E009.png" x="2" y="88" w="28" h="82" /> <frame regx="38" regy="73" name="death_E010.png" x="32" y="88" w="28" h="80" /> <frame regx="38" regy="73" name="death_E011.png" x="62" y="88" w="28" h="80" /> <frame regx="38" regy="72" name="death_E012.png" x="92" y="88" w="26" h="80" /> <frame regx="38" regy="70" name="death_E013.png" x="120" y="88" w="26" h="78" /> <frame regx="37" regy="69" name="death_E014.png" x="148" y="88" w="28" h="76" /> <frame regx="37" regy="68" name="death_E015.png" x="178" y="88" w="28" h="76" /> <frame regx="36" regy="67" name="death_E016.png" x="208" y="88" w="28" h="74" /> <frame regx="35" regy="63" name="death_E017.png" x="238" y="88" w="30" h="70" /> <frame regx="33" regy="59" name="death_E018.png" x="270" y="88" w="30" h="66" /> <frame regx="36" regy="56" name="death_E019.png" x="2" y="172" w="34" h="64" /> <frame regx="38" regy="54" name="death_E020.png" x="38" y="172" w="36" h="60" /> <frame regx="38" regy="53" name="death_E021.png" x="76" y="172" w="36" h="60" /> <frame regx="38" regy="53" name="death_E022.png" x="114" y="172" w="36" h="60" /> <frame regx="38" regy="54" name="death_E023.png" x="152" y="172" w="36" h="60" /> <frame regx="38" regy="54" name="death_E024.png" x="190" y="172" w="36" h="60" /> <frame regx="38" regy="54" name="death_E025.png" x="228" y="172" w="36" h="62" /> <frame regx="38" regy="55" name="death_E026.png" x="266" y="172" w="36" h="62" /> <frame regx="38" regy="55" name="death_E027.png" x="2" y="238" w="36" h="62" /> <frame regx="38" regy="56" name="death_E028.png" x="40" y="238" w="38" h="62" /> <frame regx="39" regy="56" name="death_E029.png" x="80" y="238" w="42" h="62" /> <frame regx="39" regy="55" name="death_E030.png" x="124" y="238" w="50" h="60" /> <frame regx="39" regy="54" name="death_E031.png" x="176" y="238" w="58" h="58" /> <frame regx="39" regy="52" name="death_E032.png" x="236" y="238" w="64" h="58" /> <frame regx="40" regy="50" name="death_E033.png" x="2" y="302" w="68" h="54" /> <frame regx="40" regy="48" name="death_E034.png" x="72" y="302" w="72" h="52" /> <frame regx="41" regy="43" name="death_E035.png" x="146" y="302" w="74" h="48" /> <frame regx="41" regy="39" name="death_E036.png" x="222" y="302" w="76" h="46" /> <frame regx="41" regy="31" name="death_E037.png" x="2" y="358" w="78" h="36" /> <frame regx="42" regy="22" name="death_E038.png" x="82" y="358" w="78" h="28" /> <frame regx="42" regy="19" name="death_E039.png" x="162" y="358" w="76" h="26" /> <frame regx="42" regy="19" name="death_E040.png" x="240" y="358" w="76" h="26" /> <frame regx="42" regy="19" name="death_E041.png" x="2" y="396" w="76" h="26" /> <frame regx="42" regy="19" name="death_E042.png" x="80" y="396" w="76" h="26" /> <frame regx="42" regy="19" name="death_E043.png" x="158" y="396" w="76" h="26" /> <frame regx="42" regy="19" name="death_E044.png" x="236" y="396" w="76" h="26" /> <frame regx="42" regy="19" name="death_E045.png" x="2" y="424" w="76" h="26" /> <frame regx="42" regy="19" name="death_E046.png" x="80" y="424" w="76" h="26" /> <frame regx="42" regy="19" name="death_E047.png" x="158" y="424" w="76" h="26" /> <frame regx="42" regy="19" name="death_E048.png" x="236" y="424" w="76" h="26" /> <frame regx="42" regy="19" name="death_E049.png" x="2" y="452" w="76" h="26" /> <frame regx="42" regy="19" name="death_E050.png" x="80" y="452" w="76" h="26" /> <frame regx="42" regy="19" name="death_E051.png" x="158" y="452" w="78" h="28" /> <frame regx="42" regy="19" name="death_E052.png" x="238" y="452" w="78" h="28" /> <frame regx="42" regy="19" name="death_E053.png" x="2" y="482" w="78" h="28" /> <frame regx="42" regy="19" name="death_E054.png" x="82" y="482" w="78" h="28" /> <frame regx="42" regy="19" name="death_E055.png" x="162" y="482" w="80" h="28" /></framelist></sequence><timeline name="main" frametime="30"> <keyframe frame="1" /> <keyframe frame="2" /> <keyframe frame="3" /> <keyframe frame="4" /> <keyframe frame="5" /> <keyframe frame="6" /> <keyframe frame="7" /> <keyframe frame="8" /> <keyframe frame="9" /> <keyframe frame="10" /> <keyframe frame="11" /> <keyframe frame="12" /> <keyframe frame="13" /> <keyframe frame="14" /> <keyframe frame="15" /> <keyframe frame="16" /> <keyframe frame="17" /> <keyframe frame="18" /> <keyframe frame="19" /> <keyframe frame="20" /> <keyframe frame="21" /> <keyframe frame="22" /> <keyframe frame="23" /> <keyframe frame="24" /> <keyframe frame="25" /> <keyframe frame="26" /> <keyframe frame="27" /> <keyframe frame="28" /> <keyframe frame="29" /> <keyframe frame="30" /> <keyframe frame="31" /> <keyframe frame="32" /> <keyframe frame="33" /> <keyframe frame="34" /> <keyframe frame="35" /> <keyframe frame="36" /> <keyframe frame="37" /> <keyframe frame="38" /> <keyframe frame="39" /> <keyframe frame="40" /> <keyframe frame="41" /> <keyframe frame="42" /> <keyframe frame="43" /> <keyframe frame="44" /> <keyframe frame="45" /> <keyframe frame="46" /> <keyframe frame="47" /> <keyframe frame="48" /> <keyframe frame="49" /> <keyframe frame="50" /> </timeline></sequence> Which involves a lot of tedious to-ing and fro-ing. Revising the spectres is the biggest time sink, tbh. I've automated quite a lot of it now, and I hope to automate the rest so all I have to do is a final check through. Now, making the body separate to the weapon was already suggested several times during development. This was shot down for technical reasons, and having done this, I can see why. The game is stuck in that if you want to make a new weapon, and have the model hold it, then yes, you need the model from the dev or if you can work out an effective way of erasing a weapon and replacng it, then you'd be a hero. EDIT: As a very old (and now very distant) friend once said to me. "Wah lau, eh! The game better wake up its idea!" Edited August 30, 2014 by Max_Caine Quote Link to comment Share on other sites More sharing options...
LordJulian Posted August 30, 2014 Share Posted August 30, 2014 (edited) Either you have a taste of my local culture from the net or we are really living in a small world. Well vehicles were the easiest so taking a pot-shot at it wasn't so hard actually. My works require absolutely no animation at all and the spectres (if thats what you called it) were fairly straightforward. But *whistle* seems 100 times more hefty than what I have done, literally. You sure you've taken your own anti-depressants? Jokes aside, I don't think the devs will be able to part with their 3D models, but if 1)they could possibly make the non-weapon versions of the sprites and release it for us, that would be the first step. What I think could next be possible is to have some sort of 2)animation program(flash?) to play the animation of the weapon held in hand, than try to animate the weapon in 2D and follow that tracked weapon. Then 3) separate part of the sprite obscuring the weapon into a different layer to overlap the 2D weapon animation. 4)That would be the case, but again it will generate new issues of it's own. Yeah, it's the wee hours for me, so I am thinking out loud. Edited August 30, 2014 by LordJulian Quote Link to comment Share on other sites More sharing options...
Max_Caine Posted August 30, 2014 Author Share Posted August 30, 2014 (edited) Like I said, a very old, and now very distant friend from an earlier era. He sent me both Neil Humphries books, and taught me how to talk cock a little. I've got to say, Chris was very kind to me - not only did he let me have the droplet, but he let me have access to most of the weapon models. I'm not sure how far his largesse extends. Edited August 30, 2014 by Max_Caine Quote Link to comment Share on other sites More sharing options...
Max_Caine Posted September 2, 2014 Author Share Posted September 2, 2014 Update: Almost there! Just got the crouching burst and single shot animations to do now! Once those are done, we can give the armour its first real shakedown. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.