Page 1 of 1

Adding anims, gump, tiles

Posted: Sun Aug 19, 2007 3:22 pm
by phao
Introdiction, what is this about?

What will I teach here?
R: adding new anims to Ultima Online, and an adition tutorial about linking those anims to gumps and tiles.

Ok, i'm writing this because i've searched over the internet but DIDN't anything. And yesterday i was searching for things about creating new bodyIds (if anyone know about that tell me plz) and found something :).

The old style

ok, first, if you work with verdata.mul files, just download Michelangelo and use .uop files and export a verdata.mul file, BUT I don't use verdata.mul files, so this is useless for me.

Before begin

ok, first: download mulpatcher, here you can find: http://varan.uodev.de/

and, of course, if you want to add an anim, let use an anim to test. if you acces this website http://uo-pixel.de/ you'll find (in the top) a wisp gif, click there, it's the anim download section of that site, well, just browse and choose an good anim.

i'll be using the black heater shield.
http://eriminator.er.funpic.de/anim/bla ... hield.html
with this gump
http://eriminator.er.funpic.de/gump/bla ... hield.html
and the tile, you can use the heater shiled tile, i've modified it using a image editor program. and it's here:
http://i4.photobucket.com/albums/y111/A ... shield.jpg

don't forget to convert it to bmp again, you can do it by using mspaint, just open the jpg and save it as bmp.

A precautionary man has double value :)

if you want to backup something, you'll need to backup:

anim.mul
anim.idx
art.mul
art.idx
gumpidx.mul
gumpart.mul
tiledata.mul
animdata.mul
body.def

obs.: i'm kind beginner with that so i'm not sure about if you have to backup animdata.mul, but do it for guarantee

let's work

loading the files into mulpatcher

Open Muleditor

ok, go to the 'settings' tab of mulpatcher, and load the files i've said to you to backup (you'll have a lot of editboxes with the file name right above them which that editbox is used to hold, click in the '...' and choose the file) clicking in the load button you'll load into mulpatcher the files (anim.mul and anim.idx, art.mul and art.idx, gumpidx.mul and gumpart.mul are load 'together', so you have only one load for each 2 file group).

Adding the anim

now you've loaded the files
go to the anim tab.

bah... my PROBLEM (trust in me, i'm not joking with you) was find that tab.
just to guarantee here, http://i4.photobucket.com/albums/y111/A ... atcher.jpg , you have a image of the mulpatcher, and there is 2 buttons on the DOWN LEFT side, the left buttons'll show more tabs on the left, and the right button'll show more tabs on the right.

ok, the anim tab is the first left tab, so click in the left button until you see an anim tab, here, http://i4.photobucket.com/albums/y111/A ... tcher2.jpg .

ok, that is the important:
if you have already opened InsideUO (if you don't have, it's good to have it, search on the google for it, it's easy to find), and have token a look at the animtion section you've seen: high detail creatures, low detail creatures and people and accessories.

these three sections have some difference, that is the number of frame (images) that each anim uses, the shiled is in the people and accessories section.

how do I know in what section do i have to add my anim?
I don't know that, but if you'll add itens, weapons, armors, i think you can use people and accessies section.

ok, and how i define that my anim'll be in that section?
simple, in the anim tab (backing to mulpatcher) you'll have numbers identifying the anims, so:

ID numbers 0-199 contain high detail creatures, 110 frames.

ID numbers 200-399 contain low detail creatures, 65 frames.

ID numbers 400-999 contain people and accessories, 175 frames.

:) just add your anims betweedn id 400 and 900.

IMPORTANT MARK: anims with the id number (in the left list) writen in red are unused places that YOU CAN ADD YOUR ANIMS, id numbers writen in black are already in use, so don't use it if you don't want overwrite anything. Use blank places (writen in red).

so, find a empty place between 400 and 900. right click on it, then you'll see an pop-up menu, and there is a 'load from file' good, keep it in mind.

ok, now go to that website that i've told to you in which you can find anim, you'll see that the anims are for download in two extensions: .vd and .uop

we'll use .vd anims, download it, extract if from the .rar (or .zip), so you have the .vd file now.

ok, back to the mulpatcher, in the anim section, go to the place you've find that is EMPTY and right click on it, 'load from file', now choose the .vd file.

ok, YOU HAVE THE ANIM added, you don't have to save anything, the anim is, already, in the anim file, write down the anim number (the decimal and hexadecimal number, both).

Adding the GUMP

ok, back to the link sections i've write in the begin, download the gump, extact it and you have the .bmp to the gump.

go to the 'Gumps(anim)' tab on the mulpatcher, find a empty (same rule, writen in red are empty) place and right click in it you'll see 'load from bitmap', click there, choose the black heater shiled gump file (.bmp you've extracted), ok, now right click (again) in the place you've added the gump and click in the "copy existing animation" then it'll appear a dialog box that you can write a hexadecimal numer, and GUESS! write the anim hexadecimal number you've added then "OK", in the right down of the gump list you'll see a text saying:

"animation id: XXXXXX" (where XXXXX is a hexadecimal number).

write that number

Adding the tile/art

ok, go to the "tiledata(s)" section, well, here, you'll need to find a empty place too, but here, empty places arent' with red colour, they are with no name, you'll see in the list, that places are formated with that standard:

NUMBER NAME, exemple:
0x2 ankh

the places that aren't with names are empty, ok, now choose a empty one. you'll see a lot of fields that you can change, here we'll change the name field (put the name you want for the shield).

you'll see a filed named: AnimID, here you'll write the 'animation id' that you've writen down in the gump(anim) tab.

ok, the 'quality' filed, for weapons at least, is the layer of it.

1
One handed weapon

2
Two handed weapon, shield, or misc.

3
Shoes

4
Pants

5
Shirt

6
Helm/Hat

7
Gloves

8
Ring

9
Talisman

10
Neck

11
Hair

12
Waist (half apron)

13
Torso (inner) (chest armor)

14
Bracelet

15
Unused (backpack, but backpacks go to 21)

16
Facial Hair

17
Torso (middle) (sircoat, tunic, full apron, sash)

18
Earrings

19
Arms

20
Back (cloak)

21
Backpack

22
Torso (outer) (robe)

23
Legs (outer) (skirt/kilt)

24
Legs (inner) (leg armor)

25
Mount (horse, ostard, etc)

26
NPC Buy Restock container

27
NPC Buy no restock container

28
NPC Sell container

29
Bank Box

in this case we'll use the layer 2, just put 2 in the quality field.
mark the wearable ckeckbox, and the 'a' chekcbokx or 'an' checkbox if your weapon name begins with 'a','e','i','o' or 'u' (i'm amlmost sure that the 'A'/'AN' checkbox is for that)

well, you'll need only that.

In the list (just remembering, we are in the tiledata(s) tab)look at the id your iten have, in the list, write that number.

Go to the Art(s) tab, and search for that ID (from the tiledata(s) tab), right click on it "load from bitmap" and them choose the .bmp file for the tile of your shield.

Only God save
ps: this rule about saving had changed when computers come up

ok, back to the setting tab, SAVE all files you've opened.
the anim files (anim.mul, anim.idx) are modified directly (almost sure) so you don't need to save it.

linking things in body.def

ok, now close mulpatcher, go to body.def file that is in the UO folder.

go to the last line (just ignore the others, you'll not need to modify them), you'll need here to know the decimal value of the gump animation id (that you've seen and writen down, that number closer to the list, 'animation id: XXX') just open the windos calculator and convert using it. you'll need the decimal number of your anim too (you can see in the anim tab), and then you'll add that line:

gump animation id in decimal {anim id in decimal} hue of the item, ex:

11183 {422} 0

hue 0 will not change the item hue.

a tip about body.def, text that are preced by # are ignored, like

#my black heater shiled begins here
11182 {422} 0
#my black heater shiled ends here

so you can add your coments. save the file, now.

The work is done !

open Ultima Online and you'll add the item, the item id is the number of it in the tiledata(s) list (here it was 0x3ffd)
so:
'add 0x3ffd

done :)
http://i4.photobucket.com/albums/y111/A ... tled-1.jpg

Posted: Sun Aug 19, 2007 4:52 pm
by Xuri
Excellent tutorial :)

Posted: Sun Aug 19, 2007 5:26 pm
by phao
Caution!

if you've added an anim, and done ALL STEPS correctly, and when you add your iten, and wear it, what appears is otehr thing.

go to the bodyconv.def file and check for the body you're using in the body.def (the number between { } is the body). you''l see a lot of lines like this:

NUMBER -1 -1 -1 NUMER
or
NUMBER -1 Number -1 -1
or anyking of 2 numbers and three -1

what is this?

they take the body from anim file (the anim id in decimal is the body) and
as you can see there is four number after the body so:
exemple if you are using the body 423
there is in my bodyconf.def this line:

423 -1 -1 432 -1

and what this is saying is:
when the anim 423 from anim.mul is used, change it to the anim 423 from anim4.mul file.

and how do i know that? in the begin of the file is explained hehehe

(anim.mul)ORIG_BODY ANIM2BODY ANIM3BODY ANIM4BODY ANIM5BODY

so it'll take the anim 423 of the anim.mul and when it comes up (on the ame) what will appear is the anim 423 from the anim4.mul (from UOSE).

it's a good cauton to take care about.

Posted: Mon Aug 20, 2007 4:51 pm
by phao
A Good Tip is...

well, as you've seen the anim.mul is a VERY LARGE file, has more than 100mb here, you don't want to zip it and put it to download, it'll be VERY LARGE for people download.

and if you've tried to add anims to the animX.mul files, it's probable that you've got an error message.

ok, a good tip is:

o make a backup of anim.mul and anim.idx
o renane anim3.mul and anim3.idx to anim.mul and anim.idx
o open mulpatcher, load anim.mul (the one you've renamed from anim3.mul) and load your anims into empty slots.
o exit mulpatcher, anims files are modified directly, so you don't need to save.
o rename anim.mul to anim3.mul back and do the same with the idx
o now, with the original anim.mul you'll load it with mulpatcher and find empty places for your anims (don't forget about that id range, and what ids are for people and accessories, etc).
o write the empty places in some text and close mulpatcher.
o Open bodyconv.def, you'll see a lot of lines like:

Code: Select all

a b c d e
where a-e are numbers, a is a very large number, and only one of b-e are other large number and the rest are -1, like:

Code: Select all

422 -1 -1 -1 345
ok, go to the end of the file, and you'll add lines with this format:

Code: Select all

EMPTY_PLACE_FROM_ANIM.MUL -1 ANIM_ID_FROM_ANIM3.MUL -1 -1
exemple, if your anim id from anim3.mul is 900, and the empty place from anim.mul is 690, you'll add:

Code: Select all

690 -1 900 -1 -1
do it with all anims you've added.

read my post before this one, and read the caution about empty places from anim.mul that are already in use to convert things, you can have problems if you are using these places, avoid them, when searching for a empty place, see if it's empy in bodyconv.def and with the mulpatcher

o Ok, now you've changed anim3.mul and bodyconf.def, your players have to download only anim3.mul anim3.idx and bodyconf.def, which are a lot smaller than anim.mul and anim.idx :)

you can do it with other anim files, i've choosen anim3 because it's the smaller.

Caution 2

Doing this thing you are not dispensed doing the body.def work, about adding new bodies, you still have to do:

Code: Select all

BODY# {ANIM] HUE
and the anim you'll use in the body.def is the empty place from anim.mul, not the animid from anim3.mul, the hue number has nothing to do with this 'tip' and the body#, also, has nothing to so with this 'tip'.

in the mulpatcher you'll add the gump in the gump(anim) section and when clicking in the 'copy an existing anim' you'll use the empty place in anim.mul, not the animid from anim3.mul (don't forget that here you'll use hexadecimal numbers), and the SAME THING. you'll add the new item as you've added the anim to anim.mul (and the animid would be the empty place you've choosen).

Posted: Mon Aug 20, 2007 6:37 pm
by Grimson
Also a word of caution:
While running an UOX3 server is legal in most countries, offering any of the original client files for download (even if they are modified) is not. This is because you do not have the copyright on the original data contained within these files.

Files containing only artwork, animations or sounds you made by yourself should be safe in most cases, depending on your local law.

So remember this and don't come whining when EA sues your ass of. ;)

Posted: Mon Aug 20, 2007 7:36 pm
by phao
good to remember :)

Posted: Fri Dec 02, 2011 8:54 am
by LeoX9
This is awesome.... My wife has been begging me to find a way for her to make animations for my server! Now I think she can finally do it... However I'm wondering if I could get an explanation as to what a .mul file actually does or what it's purpose is!...... Yes this is an extremely noob-ish question but I've been wondering lol.

Posted: Fri Dec 02, 2011 1:45 pm
by phao
A MUL file is just a data file. It holds images, text, ... Its purpose is to hold data the client can use somehow during the game. For example, the map MUL files have info. on how the world should look; the client uses that to build the world.

There are several things the client does that need some extra data like that of the world: performing animations, displaying messages, graphical effects, etc.

It is a binary file that the client uses as a "data-base", and, afaik, the client doesn't alter it.

I think it is just a generic data file. I suspect though that different MUL files have different formats (I don't think the anim MUL files have the same format as the map MUL files).