No announcement yet.

How to add custom animations to UO

  • Filter
  • Time
  • Show
Clear All
new posts

  • How to add custom animations to UO

    How to add custom animations to UO
    posted by Redmoon

    Step 1-Organization
    **I have already covered how to edit & extract bmp files from a flc or gif**

    You should have each animation type extracted into a folder named for it's type.
    (Ex: the animation for walk,run,death,etc should be in a folder named “walk” , “run”, “death”, etc)
    You will now need to add sub-folders inside each animation type folder for each direction
    Ex: Inside folder “walk” you should add folders named:
    “Down Left”
    “Up Left”
    ***optional but advisable***
    “Not Needed”

    Now you should have a main folder “walk”, with 5 sub-folders, and all the walk.bmps
    Ex: “C:\Royal Griffin\Walk\Down”
    You will now select all the bmps for each direction and place them into it's respective sub-folder.
    Ex:all walking animations facing down should be placed into the “Down” folder.
    "C:\Royal Griffin\Walk\Down\down_53.bmp”

    This should be done for all other directions, place all the right facing bmps into the “Not Needed” folder if you have made this folder. You can now select the first bmp in each sub-folder, press ctrl+a to select all, press f2 to rename all bmps to it's animation type, direction and sequence number
    walk32.bmp-> walkdown_1.bmp. (windows will auto number the files for you)

    Step 2- Low or High Creatures
    You will now need to decide if you want your animation to be a low level creature or a high level creature
    The two big differences in low and high are:
    1. Run is only available to low creatures
    ***This is needed for mounts***
    2. High has more frames per slot and more slot types
    3. Animation types Eat / Stomp

    *****Please refer to the rar for the breakdown*****

    Step 3- Selecting your frames

    **I will be using a high level creature for this tutorial; it can be used with the low level creatures too**

    You may have more walk.bmps than we will be able to use, and will now have the tricky part of selecting what frames you will want to keep.
    Since I am using a high level creature, I can only have 10 frames for any walk bmp (walkdown, walkDL,etc)
    This part is completely up to you on what you want your animation to look like, but you can only select 10 frames per direction:
    walkdown=10, walkDL=10, walkleft=10, etc

    ***Right side has more frames than the left!?!?***
    If you run into this problem, and you made the optional folder “Not Needed”, then you can simply use a program like photoshop, corel photopaint, etc. to flip the bmp image horizontally. Use these flipped images in place of the original left facing bmps. Now you should have the same amount in each sub-folder.

    ***I don't have an animation named “x”***
    I didn't have an animation for “BlockRight”, I simply looked at the red dragon's animation for this and used a similar animation set up.

    Ex: I used animation “ForifyWalk”, but it was just walking. So I looked for the number of frames I could use and made mine with selected bmps, and renamed them to reverse the order of the numbers.

    **You can mis-match frames from any animation type or direction to get the final results you are looking for!**

    ****Helpful Tips****

    Make a backup copy of your starting animations (flc, gifs, or bmps)...and DO NOT TOUCH THEM!!

    Do NOT empty your recycle bin until you are 100% positive that, that animation is complete!

    You can “test” your animation sequence with the bmps (no need to re-make a flc/gif)
    To do this:
    Make sure you can see a preview of the image inside the folder (Should be on the right side of the window)
    You should have renamed your frames so they will all have the same names and numbers for sequence;
    click the first frame and scroll through the rest with the right arrow button ~slowly~ .

    Short cut keys are helpful when dealing with many files
    here is a quick list:
    ctrl+a (select all)
    ctrl+c (copy)
    ctrl+x (cut)
    ctrl+v (paste)
    ctrl+z (undo)
    ctrl+s (save)
    f2 (rename)
    **photoshop only**
    f1 or whichever short cut you choose for quickly flipping image

    Step 4- Calculations

    ***Tools Needed for next steps***
    -UO Animation Calculator


    Open mulpatcher.exe and load your anim.mul and anim.idx files

    ***A docker window will pop up and tell you that anything you do in the anim files will be done “on the fly”***

    Scroll all the way to the left and select the “Anim” tab
    Select “Empty Slots”
    Select an empty slot for your animation:

    H=high level
    L= low level
    P=People & Wearables

    Make a note on the number you have selected and close mulpatcher.exe.

    ***I am going to use slot H:0x4F (79) for this tutorial ***

    UO Animation Calculator:

    Open UO Animation Calculator and type in the number (decimal value) for the slot you selected and hit enter. Make a note of the number for “First Animation Frame”
    ***slot # 79 has first animation frame number: 8690***
    Close UO Animation Calculator

    UOFiddler or breakdown.rar:
    I suggest pre-making folders for each animation type with the # and name of animation type. You can look in UOFiddler or the breakdown.odt for examples of animations that are used.
    Ex: 0-Walk, 1-Idle,etc

    Step 5- .bmp to .uop


    Open UOAnim and click the “Add Animation” button, and type in the number from UO Animation Calculator's “First Animation Frame” in the “Block Number” and click OK.

    ** This will start the first set of animations in the sequence “walk” **

    ***The sequence for UO is always Down, Down Left, Left, Up Left, Up***

    ****UO uses a flip technique for the right side of animations,
    so right is not needed****

    Next, click the “Add Image” button and load the first bmp for “WalkDown”
    Continue adding all the bmps for Down via the “Add Image” button

    ** WARNING: If you mess up you will have to start over, so be meticulous! **
    **This is the reason for all the “Organization” earlier**

    Once you have added all the frames for WalkDown.bmp, we can move on to WalkDL (down left)
    We will repeat what we did above with “Add Animation”, but this time we will change the “Block Number” to +1
    Ex: 8691 (8690 +1)

    Repeat these steps until you have all (5) animation directions done, then click “Create Patch”
    and save as “0-walk”. This will make a 0-walk.uop.

    **Take note of the last number of the 0-walk animation block number**

    Close and re-open UOAnim

    Repeat above steps for the next animation set, but increase the block number by +1

    Ex: 8694 was my last block number for 0-walk, so my first block number for 1-Idle will be 8695

    ***Repeat all of the above steps in UOAnim for all the animation types & directions***

    You should now have 1 .uop file for each animation type (walk, idle, etc, etc) saved

    Step 6- .uop to .vd

    Open michelangelo and click “Import”
    Import the first animation uop (0-walk.uop)
    continue importing all the uop files until all are within michelangelo

    **Note that you will need to import each animation uop in order from 0 to last #**

    *************************Suggestion, but not nessesary*****************************
    I like to save my completed uop file, so at this point I would suggest clicking “save” and saving your total animation.. “AnimationName.uop”
    ************************************************** *******************************************
    Now, export this into a verdata.mul

    ** You can make a new verdata.mul by making a new text document and re-naming it “verdata.mul” make sure to delete the .txt extension. **

    Close michelangelo


    Open mulpatcher and load your anim.mul, anim.idx, and your new verdata.mul.
    Scroll all the way to the left and select the “Anim” tab, then select full slots.

    **You can search for the slot # you used for your animation, it will be fairly easy to find as it's color is green.**

    Once you find your animation, click to select it, then right click and “Save to File”.
    **You can name this anything you want, or leave the slot number for the name**

    Close mulpatcher

    Step 7- .vd to .mul


    Open mulpatcher and load:


    **one of the other anim#.muls**

    Go to “Anim” tab and go to your animation slot number
    Single click it to select, then right click and “Load from File”
    Located YourAnimationName.vd or slot#.vd and load it.

    Step 8- **Only for mounts**

    **This step only works with clients up to at this time**

    Go to the TileDataS tab and click “Fill Slots to 0x7FFF”
    Find an empty slot, and set:

    Name: Your Animation's Name Mount
    AnimID: Your Animation's animation #
    Weight: 1
    Height: 1
    Quality: 25
    Wearable, and Animation

    ***Note: in mulpatcher the animID is hex #, UOFIddler uses decimal #)***

    Got to “Settings” tab, click “Save” next to tiledata to save it .

    You can now close mulpatcher if you want...OR...
    *************************Optional for shrunk pets****************************************

    **You will need to have one bmp file that is the size for a shrunk pet, roughly 30x45px**

    Go to “ArtS” tab, select empty slots

    Find an empty slot, right click and select “Load from Bitmap”
    Add the reduced bmp image of your new animation.
    Go to “Settings” and save art.mul and art.idx
    Close mulpatcher

    Step 9- Other edits that will be needed


    You will need to add your new animation here, this tells the client where to get the animation from

    Ex: 353 -1 -1 -1 -1 #Tiger

    This is telling the client that slot 353 is being used and to find it in anim.mul/anim.idx slot 353 and no other slots in other anim#.muls are being used.

    [animation slot # (anim2) (anim3) (anim4) (anim5) #name of your animation]

    **you can add animations to other anim#.muls**


    This is telling the client that animation 353 should use the death animation # 353 for a corpse, the 0 is the corpse hue.
    ***This is not always needed, but I add just in case***

    353 {353} 0


    This sets the animation "type" (animal, moster, equipment, etc)

    ***Note: you must enter the #name ~exactly~ like you did for the bodyconv.def***

    353 ANIMAL 0 #Tiger

    ***Changing the type ANIMAL to MONSTER changes the animation blocks available to use***


    This is also not always needed, but if you find you are having issues with an animation not showing up you can add them here. (I did add this for a nightmare due to this issue)

    #New Nightmare
    354 {354} 0

    If you added a mount, and art for shrinking.

    **This example is a Cusidhe**

    277 0x2D96

    Original Post

    RunUO - Ultima Online Emulator -

  • #2
    I have worked with "Optimpyre" He has graphic tutorials on youtube under his real name, Eddie Steel, very good tutorials

    Here are a few other links that may help:
    UO Evolution "The Game Has Evolved"


    • #3
      1. extracted .flc files and converted to .gif
      2. .gifs to individual .bmps
      3. re-sized and fixed background colors
      4. took .bmps and made .uop (not newer UO .uops)
      5. took .uop and put in verdata.mul (needed to extract)
      6. loaded verdata.mul and anim in mulpatcher
      7. extracted new animation to .vd
      8. loaded .vd into my anim.mul
      9. added patch to my custom path and in my UO folder
      10. loaded server, changed body values..and have the two animations I worked with.
      RunUO - Ultima Online Emulator -


      • #4
        Here are a few bits of info relating to UO animations

        "What client version are you using?
        Are you able to add new mounts as well?"

        I am using client, due to the mount problem. Mounts are ~super~ easy to do (or is with this client) yes this one will be a mount.

        I do plan on figuring out what the issue is with adding custom mounts on clients higher than, once I get this client finished

        There are still several tutorials floating around that work right up to 7.0.9, but anything after the tiledata change doesn't work. You can add the new mounts and everything and get them to appear in game even, but when you try to ride it, it disappears or if you used an existing mount script (like the horse) you can get it to use the itemID of a horse when mounted.

        the tiledata was changed around (or so I've read), you could be right about the I did get ~some~ custom mounts to work in, but the nightmare gave me either a horse, riding air, or walking really fast (other mounts were fine like the ridable mephitis) . I quickly looked at the files, and from what I've seen the quality settings have changed
        RunUO - Ultima Online Emulator -


        • #5
          as a workaround, you can consolodate your animations by replacing Mount animations that have insignificant differences in look(or ones you just don't like), with custom mounts. Let's say you did this with a Ridgeback(which I did.) You go into the Ridgeback scripts and have them all point to the same BodyID and ItemID. Obviously, you need to use an Anim.mul# and ItemID# that is different than the one that is linked to the new animation. The above Ridgeback script points to Anim 187 which I replaced with the Tiger animation. There is another Ridgeback animation which resides in Anim.mul slot 188, so I just changed the BodyID and ItemID to what appears in the following snippet(188,0x3EB8):

          public SavageRidgeback(string name)
          : base(name, 188, 0x3EB8, AIType.AI_Melee, FightMode.Aggressor, 10,
          RunUO - Ultima Online Emulator -


          • #6
            Q: is it only rides that are affected? Can we still add custom monsters and equipment?

            A: You still have to overwrite an existing animation, but yes. No matter what, as of now, there isn't a way to expand the number of animation slots.
            RunUO - Ultima Online Emulator -


            • #7
              Q:Greetings! I want to add a particular animation, a pair of gargoyle wings for humans, from Grafikportal via UOFiddler. I have added animations before including wearables, though in this instance I am not sure which graphic I should replace. My shard is mostly a bit old school as far as graphics go, and there are many clothing slots I am not using. Basically, I want to use this to create a few human-based mobs, and want it to be in a slot that also allows the use of all armor slots. Any help is much appreciated. Thanks in advance!

              A:You can add that anim anywhere you have a usable item animation slot, it's layer and base attributes are defined by the tiledata associated with the item.

              You'll probably want to just treat it like a cloak.
              RunUO - Ultima Online Emulator -


              • #8
                If you create an animation scaled to be a mount, it's an animal anim, so goes in the L slots. You will need to relocate the animation in fiddler to mount properly
                RunUO - Ultima Online Emulator -