Importing new WC2 animations

HCl

WC EXE archaeologist
Hey guys,

(long-ish post ahead, sorry about that)

In order to further explore the possibilities of what can be done with the WC2 engine, I decided to quickly put together a converter for WC2 animations. WC2 in fact supports FMV-like animations which are triggered at various parts of the game. These are, for example, most WC2 landing sequences, the sequence depicting the flyby of Thrakhath's flagship (below), and so on.

As with my other WC2 mods and experiments, I decided to turn to WCA for a quick test, as a proof of concept. WCA has two animation-like sequences:

- The intro, where a Confed Wraith chases and destroys a Drakhri
and, playing immediately after
- The title where the Academy title is drawin into place, and the credits roll.

Curiously, the file contents are swapped, the first sequence is in TITLE.VGA and the second is in INTRO.VGA. It is this INTRO.VGA that will be encoded with new content, replacing the Academy title.

Now, WC2 seems to allow changing palettes at different stages of the animation play, and support animations of arbitrary size. Academy however has a number of constrains in there however:

- No palette change, it uses palette number 4 from the palettes file (so image quality is not as good as it could be)
- Limited number of chunks: Academy looks specifically at chunks 1-6 differentially encoded, and treats chunk 15 as a full image, in order to draw the credits against. It will not look at any other chunk from INTRO.VGA
- No control over animation rendering mode (differential, rendered against background, full frames, etc)
- No control over animation at all (frame-rate, triggering sound effects, for example)

WC2 is a lot more flexible in this regard, with most parameters apparently configurable via INCIDENT.Sxx, which is something i need to start researching. WCA on the other hand has everything encoded on the EXE. The first animation sequence (Wraith and Drakhri) is apparently fully scripted in the EXE, while the parameters for the second animation is limited to frames contained in chunks 1-6, differentially encoded.

So, no way around the WCA constraints without hacking the EXE, but all things considered, I decided to skip any EXE hacking and ended up working with the constraints WCA imposes, since they are "good enough" for a first test.

Given all this, to the meat of things: I took a small 12-frame sequence from the WCM trailer and encoded it with my animation encoder, quantizing the image to the existing WCA palette. I put the newly encoded file into the WCA\GAMEDAT folder and launched the game. Sure enough, the game plays the first animation with the Wraith hunting down the Drakhri and, once it's done, it plays the new WCM animation. Pretty cool! Here's the result:

wcm_canopy_close.png


Not too bad! The canopy-closing animation does play rather quickly, since it's only 12 frames, and the image would end up looking a bit better if I had computed a new palette (and used a better quality source), but not bad for a first test :) I would expect we can have WC3-FMV-like quality animations in WC2, if we change the palettes often enough (although at a much higher rate than WC3 FMV, since WC2 uses simple RLE...).

WC1 should be able to play these animations with some COM-file hacking... That's something to do later though.

Anyway, I'm attaching the new INTRO.VGA in case you want to give it a try, or tear it apart for study.

Of course, this opens up a new line of research, in order to study and document the WC2 INCIDENT.Sxx files. That will allow us to have more control over animations, figure out how the game determines that the animation must be differentially-decoded or drawn against a background, and so on (also, it might also be useful to Fabien's Strike Commander efforts and delMar's Workshop).

As an aside, I think it would be pretty cool to make a small WCM mod for WC1/2 at some point. Pretty exciting idea!
 

Attachments

  • INTRO.zip
    192.7 KB · Views: 53
Last edited by a moderator:
This is awesome work... I'm really excited to see what we can stretch the WC1/2 engines to do. It would be interesting to 'adapt' the WC movie script to be more like the WC1 and 2 games.
 
Last edited:
also, it might also be useful to Fabien's Strike Commander efforts and delMar's Workshop

Thanks for that impressive demonstration, HCl.

I am really looking forward to the day when everything you guys have found out is easily usable from within a unified Wing Commander editing appliance (well, at least that's exactly, what the workshop is destined to be :)).
 
Last edited by a moderator:
Back
Top