Open beccabunny opened 4 years ago
Definitely!
This also helps bring ES up to feature parity with EVN. (Actually, this would bring it ahead). EVN had a limited version of this, specifically, certain ships had special firing animations that were connected with specific weapons. For instance, the Asteroid miner had arms that would unfold outwards and roughly double its width which preceeded weapon firing. This long delay made what might have been a decent combat ship (6 lasers, I think?) into a relatively poor one, but also made it an excellent miner, because bigger reach for picking up stuff. The Polaris Raven, Scarab, and Arachnid all had special firing animations connected to the CPL (giant purple laser) that had the laser emiting from several different points and joining into the actual weapon beam at a point in front of the ship, which was really cool to see.
And probably the highlight was the Pirate Manticore, which had a ring of weapon placements around the front that was tied to the "Ring of Thorns" turreted beam. Most ships, that was just a generic turreted laser. On the Manticore, when firing the whole ring lit up then emerged from one point to strike at the target. Looked awesome.
Anyway, all this to say there should be two parts to this:
One is the trigger for the animation which you've got here, but also to add a "firing" animation that can be set to either trigger a) anytime a weapon is fired, or b) when a specific weapon is fired. This allows for, like the Polaris, to have weapons that are tied to specific ships for extra special animations.
Anyway, great suggestion!
IIRC, Nova also had 'banking' animations for a few ships. Perhaps turning in a given direction could be another situation trigger? It could allow things like thrusters shifting position
Given that we have turning thrusters in the works, a banking animation would be great. Definitely make things look a lot sharper and active.
One of the biggest challenges blocking this is how to define what happens to all those engine and weapon hardpoints drawn on every ship.
I wanted to resurface this issue as I have been working on an implementation for this. Plus, a similar issue was discussed in PR #7090 which was basically the inspiration to revisit this issue. Essentially, the solution involves keeping track of the state of the body (Flying, Jumping, Landing, Launching, Fighting etc.) and then transitioning/switching between sprites as the body state changes. The syntax to define these sprites is basically identical to how @beccabunny described it. It is possible to animate each sprite individually and also define transitions between sprites.
I have also thought about the hardpoint issue (as @tehhowch describes), but I am not sure exactly how to approach it yet.
Let me know if this is an issue that would be worth creating a PR for!
I wanted to resurface this issue as I have been working on an implementation for this. Plus, a similar issue was discussed in PR #7090 which was basically the inspiration to revisit this issue. Essentially, the solution involves keeping track of the state of the body (Flying, Jumping, Landing, Launching, Fighting etc.) and then transitioning/switching between sprites as the body state changes. The syntax to define these sprites is basically identical to how @beccabunny described it. It is possible to animate each sprite individually and also define transitions between sprites.
I have also thought about the hardpoint issue (as @tehhowch describes), but I am not sure exactly how to approach it yet.
Let me know if this is an issue that would be worth creating a PR for!
As far as I'm concerned I still really want to see this feature in ES, so if you can make it a PR, go for it
On the hardpoints issue, I see little reason to touch them. We already have an animated ship sprites feature and hardpoints never change there, these are just a few additional animated sprites where the hardpoints would still be in the same normal coordinates. It'd be nice to have, but it's really a separate feature from the rest of the issue imo considering that it also concerns a mechanic that's already in game
I, too, would very much like to have these features in game.
Is your feature request related to a problem? Please describe. Currently, the only animation a ship can have is one that starts as soon as a ship spawns and never stops until the ships gets disabled, and the only options are to have a random start frame and to make it reverse after it stopped playing (e.g. instead of passing from frame 5 to frame 0, it goes back to frame 4 first). It would be nice to have more options, for istance situation based animations: -an animation, repeatable or not, playing when engaging in combat (e.g. not only in the exact moment when it's shooting, but during all the combat action) -a non repeatable animation playing when entering hyperspace, probably also preventing the ship from entering hyperspace until the animation has finished, to play reversed when ceasing hyperjumps (either because of player input, or because the jump is complete) -a non repeatable animation playing when departing from a planet, and playing in reverse when landing
Related Issue Links None I could find
Describe the solution you'd like A possible example sintax: