Article translated from this RBC article
Approved by the awesome Putin.
QAVEDIT allows you to create and edit existing animation of Blood interface. You can create both weapons animation and animation of different screens. For example, blood drops in the main menu were created using this program. With the help of QAVEDIT you also can change some weapon attributes such as rapidity of fire, number of shots, number of ammo used per shot, number of empty shells thrown and damage.
PREPARING TO LAUNCH
-You’ll need alpha version of Blood.
-QAVEDIT works only with older versions of RFF, that’s why it’s recommended to work in the alpha folder.
-Move all .art files to the alpha folder (these files contain sprites).
-Download QAVEDIT from here. Run .bat file to launch it, this way you’ll be able to work in your game’s folder.
-If you want to edit existing animation download WinBarf and extract all .qav files from 1.21 version blood.rff. WinBarf and unpacked .qav files can be found under the “Extras” section of this article.
-If you are using DosBox – it’s recommended to set video mode to vesa_nolfb in order to prevent screen flickering.
Sprite # - shows # of selected sprite.
X/Y – shows position of selected sprite. You can move this sprite or all sprites at once.
Brightness – shows the level of brightness of the sprite. You can darken and brighten selected sprite. For example, the sprite may become lighter when it’s shot at.
Palette –shows # of the palette applied to the sprite. Just like in Mapedit you can change the palette of the sprite. QAVEDIT palette differs from standard Blood palette. That means that if you are using blue palette in QAVEDIT it’d be red in the game.
Size – shows the size of the sprite. You can resize the selected sprite.
Angle – shows the angle of the sprite. You can change the angle of the selected sprite.
Frames – determines the number of frames in your .qav file. From zero to infinity.
Layers – shows the number of layers in your .qav file. There can be 8 layers, one sprite per layer. It’s recommended to use them wisely.
Ticks per frame– shows time of transition between the frames.
Esc. – exit the editor.
F2 – save .qav file.
Ctrl+F2 – save .qav file as.
F3 – open .qav file.
Space – play animation once.
Enter – play animation on repeat (Esc to stop).
Ctrl – play at 1/2 of the speed (press while animation is played).
Shift - play at 1/4 of the speed (press while animation is played).
1 / 2 – move to previous/next frame.
Home – move to the first frame.
End – move to the last frame.
Page Up / Page Down – move to previous/next layer.
- / + - change transition time between frames.
Insert – duplicate sprite.
Delete – delete current sprite.
Lmouse – move sprite.
Arrows – snapped movement.
O + Lmouse – move the center.
O + Arrows – snapped center movement.
O + Ctrl + Arrows – move the center and adjust all frames.
P – change palette of the current sprite.
Alt + P – change palette of the current sprite from a dialog box.
R – move current sprite from the center to the corner.
T – change transparency.
V – select sprite.
X – mirror the current sprite horizontally.
Y – mirror the current sprite vertically.
G – jump to the sprite number (in the sprite selection menu).
Pad - / + - change brightness of the sprite.
Ctrl + Pad - / + - maximal brightness/darkness of the sprite.
Pad 0 – Set sprite brightness/darkness to 0.
< > - change sprite angle to 128 degrees.
Shift + < > - change sprite angle to 4 degrees.
Shift + Page Up / Page Down – move sprite to the foreground/background.
F – edit trigger for the current frame.
Ctrl + Insert – add layer.
Ctrl + Delete – delete layer.
Ctrl + Shift + Page Up / Page Down – move the whole layer to the foreground/background.
Alt + Insert – add frame.
Alt + Delete – delete frame.
CREATING SIMPLE ANIMATION
If you want to create new animation from your sprites you should first add them to .art files, however there is a limit to the number of them in QAVEDIT. So you can use only vacant tiles in TILES15.art from sprites #4033 through 4095. You can also use all the numbers lesser than 4033 except for 0, but in that case you’d have to replace the old sprites.
Here I’m going to use standard hand sprites. We’re going to create a new weapon – Beast claws. It will move a bit faster than pitchfork with 3 times greater damage.
Equipping – animation that will be shown when the weapon is selected
Run QAVEDIT, hold O and with Lmouse move the center to 160,199. Don’t forget to move the center to this position in all other stances!
Press V and select sprite # 2368. Move it to the right lower corner with the mouse or keyboard arrows, then lower it below the border of the screen, so the position would be +151,+40. Now press 2 to move to the next frame and Insert to copy the sprite. It has appeared in the same spot where it was in the first frame. Now all you need to do is to add more frames, changing X/Y in every next frame. In my case there were 7 frames in total.
0 frame X/Y +151, +40
1 frame X/Y +151, +40
2 frame X/Y +148, +25
3 frame X/Y +148, +25
4 frame X/Y +126, +32
5 frame X/Y +126, +32
6 frame X/Y +146, +16
Change sprite in the 4th frame to 2367 and in the 6th to 2361, so the hand would look believable. Now press Enter to view the result. Try increasing speed between the frames by pressing “–“ in order for the hand to move faster. In the game it would affect the speed at which the weapon is equipped. Press Ctrl + F2 to save your .qav file as HANUP.
Now you can move to the very first frame by pressing Home and start deleting.
Press Alt + Del in every frame except for the 6th. It’s needed so the frames transition to the next stance would be smooth.
Hands – animation that will be shown while walking with this weapon.
After creating the first stance we have one spare frame with equipped hand – we’re going to animate that one. Also we’re going to learn about “angle” and “mirror” options.
Move to the next frame and copy the sprite from the first one. Select another image, for example, 2373, so the content wouldn’t repeat itself. Change position X/Y to +119, +0. Like in the previous stance we just need to copy the sprite and change its position and angle in every next frame.
0 frame X/Y +146, +16
1 frame X/Y +119, +0
(change sprite to 2373, mirror it horizontally)
2 frame X/Y +110, -8
3 frame X/Y +108, -15 (change sprite to 2374, mirror horizontally)
4 frame X/Y +96, -19 (tilt to the left, to 2032)
5 frame X/Y +89, -13 (tilt to the left, to 1996)
6 frame X/Y +106, -2 (change sprite to 2368)
7 frame X/Y +128, +8
8 frame X/Y +142, +25 (change sprite to 2361)
Increase TPF to 8-9 and view the result. You’ll see how hands are moving. It’s going to happen in the game unless you attack or select another weapon. Press Ctrl+F2 and save the file as HANIDLE.
Half of the work is done, let’s move to the next part.
Attack – attack animation
Remove all the frames from the previous stance or restart the editor. But remember to move the center!
Add sprite#2367 and move it to +162, -35. Now we’re going to do the same work as in “Equipping” stance, though in some frames you’re gonna need to include a trigger so the hand would do damage in the game.
0 frame +162, -35
1 frame +102, -62 (change sprite to 2367)
2 frame +75, -62 (change sprite to 2366)
3 frame +29, -62
4 frame -17, -49 (change sprite to 2368)
5 frame -34, -38
6 frame -72, -5
7 frame -98, +28
Animation is complete but now we need to select a trigger for damage. Press F on the 4th frame and you’ll see this window
By default it’s either 0 or -1. That means that attack animation will be played but the weapon will not do any damage. There’s a series of triggers for each weapon. Type 1 here and press Enter. “Trigger 1” appeared in the upper left corner of the main window. It always appears when the trigger number is greater than 0.
The hand does damage just like the pitchfork, but we can increase it. You should repeat the same operation on 5th and 6th frames. Now the hand is three times more powerful than the pitchfork. Save the file as HANATAK.
Disappearing – animation shown when another weapon is selected
It’s very simple here. You need to repeat the same procedure as in “Equipping”, only backwards. Select 2361, move it to the lower right corner to +146, +16. Work the opposite way from “Eqipping” stance:
0 frame +146, +16
1 frame +126, +32 (change sprite to 2368)
2 frame +126, +32
5 frame +148, +25
6 frame +148, +25
3 frame +151, +40
4 frame +151, +40
Save the file as HANDOW.
Congratulations! You have just created the simplest new weapon for Blood!
ADDING ANIMATION TO THE GAME
To add .qav files you’re going to need BARF, that you can find on the Blood CD(or on the internet).
If we will just add new .qav files to the game, either nothing would happen, or the game will constantly crash whenever you attempt to select this weapon. We need to know the ID of every .qav file registered in the game. Read the full chart of .qav files IDs under the “Extras” section of this article.
Now let’s replace the pitchfork with the Beast claws.
-copy HANUP.QAV, HANIDLE.QAV, HANATAK.QAV, HANDOW.QAV to the game’s folder.
-create text file in this folder and name it HAND.RFS. Open it in notepad and type:
Code: Select all
resource "hanup.qav" as 0; resource "hanidle.qav" as 1; resource "hanatak.qav" as 2; resource "handown.qav" as 3; ;
-create text file and name it HAND.BAT. Open it in notepad and type:
Code: Select all
barf blood.rff @hand.rfs
Try running Blood and you’ll see that pitchfork was replaces by the Claws with triple damage increase. If you want to restore pitchfork, just delete BLOOD.RFF and rename BLOOD.BAK.
Original QAVEDIT article
Chart of files IDs
Artefacts(items not used in the game)
Animation example from this article
Unpacked .qav files from the game
QAVEDIT and BLOOD.RFF from alpha
PS: I hope it's understandable. I tried to translate it close to the original article. I wish there was a way to correct flaws in this post, but alas.