• 🏆 Texturing Contest #33 is OPEN! Contestants must re-texture a SD unit model found in-game (Warcraft 3 Classic), recreating the unit into a peaceful NPC version. 🔗Click here to enter!
  • It's time for the first HD Modeling Contest of 2024. Join the theme discussion for Hive's HD Modeling Contest #6! Click here to post your idea!

Creating a custom cursor

dab

dab

Level 10
Joined
Oct 30, 2008
Messages
412

Creating a custom cursor



  1. Extracting the files.
  2. Changing the models path.
  3. Skinning the cursor.
  4. Importing it properly, changing the model file of the cursor.
  5. Testing.

Before we get started with any of this, i need you to have 5 things.

1. Extracting the files

  1. We open Warcraft 3 Image Extractor
    • ONLY EXPERIENCED USERS:

      You can also jump over this step, and just extract it later in the process via War3 Model Editor)
    make sure the archive(MPQ) file you have is the NORMAL(war3.mpq), and NOT the war3patch.mpq file(or any other for that sake),(else the following things will not be there) and then UI-Cursor-HumanCursor.blp.
    Now, save it as a .tga file for later use.
  2. We now need a model to extract(or, this is depending if you only want to replace the skin,
    or want to use a custom mdx file too. Option number 2 is preferable, so thats what ill do.),
    so we open War3 Model editor, and in there, choose Windows - MPQ Browser.
    Now that we have our MPQ Browser, we then press File - War3.mpq.
    You now have a Treeview infront of you, press UI - Cursor and then right click on HumanCursor.mdx and export it where ever you want to.
  3. (

    JUMP-OVER:

    for those of you who jumped over the step with Warcraft 3 image extractor, you now also extract the file named Humancursor.blp)

2. Changing the models path

(Not nessesary, but im guessing you want you .blp file to be named something else than HumanCursor.blp?)

  1. Open Mdlx Converter and convert the HumanCursor.mdx to HumanCursor.mdl.
  2. Now, edit it with any other Text program(i prefer using WordPad) and find the line:
    Code:
    Textures 2 {
    	Bitmap {
    		Image "HumanCursor.blp"
    (heres where it is for those who cant find it):

    Code:
    // Converted Mon Jul 13 10:19:17 2009
    // MdlxConv Version Mar  3 2007.
    Version {
    	FormatVersion 800,
    }
    Model "HumanCursor" {
    	BlendTime 150,
    	MinimumExtent { -0.028030, -0.028166, -0.045400 },
    	MaximumExtent { 0.027501, 0.027105, 0.000000 },
    }
    Sequences 14 {
    	Anim "Target" {
    		Interval { 0, 33 },
    		MinimumExtent { -0.013600, -0.013600, 0.000000 },
    		MaximumExtent { 0.013200, 0.013300, 0.000000 },
    		BoundsRadius 0.018986,
    	}
    	Anim "Normal" {
    		Interval { 333, 533 },
    		MinimumExtent { -0.004000, -0.024100, 0.000000 },
    		MaximumExtent { 0.019700, 0.000000, 0.000000 },
    		BoundsRadius 0.016900,
    	}
    	Anim "Select" {
    		Interval { 1000, 1500 },
    		MinimumExtent { -0.004000, -0.024100, 0.000000 },
    		MaximumExtent { 0.019700, 0.000000, 0.000000 },
    		BoundsRadius 0.016900,
    	}
    	Anim "TargetSelect" {
    		Interval { 2600, 3133 },
    		MinimumExtent { -0.013600, -0.013600, 0.000000 },
    		MaximumExtent { 0.013200, 0.013300, 0.000000 },
    		BoundsRadius 0.018986,
    	}
    	Anim "InvalidTarget" {
    		Interval { 3800, 3967 },
    		MinimumExtent { -0.013600, -0.013600, 0.000000 },
    		MaximumExtent { 0.013200, 0.013300, 0.000000 },
    		BoundsRadius 0.018986,
    	}
    	Anim "HoldItem" {
    		Interval { 4233, 4400 },
    		MinimumExtent { -0.020000, -0.024900, -0.045400 },
    		MaximumExtent { 0.020400, 0.008000, 0.000000 },
    		BoundsRadius 0.034553,
    	}
    	Anim "Scroll Left" {
    		Interval { 4500, 4700 },
    		MinimumExtent { -0.001998, -0.013600, 0.000000 },
    		MaximumExtent { 0.024802, 0.013300, 0.000000 },
    		BoundsRadius 0.018986,
    	}
    	Anim "Scroll Right" {
    		Interval { 4833, 5033 },
    		MinimumExtent { -0.024825, -0.013508, 0.000000 },
    		MaximumExtent { 0.001975, 0.013392, 0.000000 },
    		BoundsRadius 0.018986,
    	}
    	Anim "Scroll Up" {
    		Interval { 5167, 5367 },
    		MinimumExtent { -0.013372, -0.025030, 0.000000 },
    		MaximumExtent { 0.013528, 0.001770, 0.000000 },
    		BoundsRadius 0.018986,
    	}
    	Anim "Scroll Down" {
    		Interval { 5500, 5700 },
    		MinimumExtent { -0.013281, -0.001944, 0.000000 },
    		MaximumExtent { 0.013619, 0.024856, 0.000000 },
    		BoundsRadius 0.018986,
    	}
    	Anim "Scroll Up Left" {
    		Interval { 5767, 5967 },
    		MinimumExtent { -0.010470, -0.026762, 0.000000 },
    		MaximumExtent { 0.027501, 0.011209, 0.000000 },
    		BoundsRadius 0.018986,
    	}
    	Anim "Scroll Up Right" {
    		Interval { 6100, 6300 },
    		MinimumExtent { -0.028030, -0.028166, 0.000000 },
    		MaximumExtent { 0.009941, 0.009806, 0.000000 },
    		BoundsRadius 0.018986,
    	}
    	Anim "Scroll Down Left" {
    		Interval { 6433, 6633 },
    		MinimumExtent { -0.011621, -0.011653, 0.000000 },
    		MaximumExtent { 0.026350, 0.026318, 0.000000 },
    		BoundsRadius 0.018986,
    	}
    	Anim "Scroll Down Right" {
    		Interval { 6767, 6967 },
    		MinimumExtent { -0.026751, -0.010867, 0.000000 },
    		MaximumExtent { 0.011220, 0.027105, 0.000000 },
    		BoundsRadius 0.018986,
    	}
    }
    
    [B]Textures 2 {
    	Bitmap {
    		Image "HumanCursor.blp",
    	}[/B]
    ...
    and change it to
    Code:
    Textures 2 {
    	Bitmap {
    		Image "Textures\[b][u](whatever you want)[/u][/b].blp"
    Then, use the Mdlx converter again, and convert it to .mdx


3. Redoing the cursor skin

Now, we convert the HumanCursor.blp to HumanCursor.tga using the TGA<->BLP converter. Once you've done that, open the HumanCursor.tga in Photoshop. Now, you should have something looking like this:

Tutorialp1.jpg

Next we do is to find our custom cursor. Ill pick this one:

58878d1246046372t-in-need-of-cursor-cursor.png


I then place my cursor in photoshop, and cut away everything else around it so it now looks like this:

Tutorialp2.jpg

But! What about the other cursors already there? No problem. We just use the polygon lasso tool to wrap around them, and do a Fill - Color and then just pick the color behind them, and just do that with all the hands(cursors) you wanna get rid of.

Warning! DONT do it on the aimers and the larger arrows!(unless of cause this is your intention)


Then, put your custom cursor down at the place where the other cursors once were(You can also do this BEFORE the other step, to ensure maximum precision
Now, the hand should be replaced by the hand you choose

BUT!(You just thought we was finished with this point dident ya'? :xxd:)
We still need the transparency to fit to our cursor, else it will look something like this:
59207d1246355618-in-need-of-cursor-scr1.png

Now, to do that, you go into Channels. Here we have RGB, Red, Green, Blue and Alpha.
This time we'll only be doing alpha.
Now, you see those white spots? When you see the shape of them you almost instinctually knows what it is.
Correct! It's the transparency! Now, we need to get the shape of them, so we go into RGB and use the lasso tool to wrap around one of our cursors. Then, back to the alpha channel. Then we drag the selection over a white spot, so WHOLE the selection gets filled with white (If your selection is too big for that, just Copy/Paste until you have a large enough area of white to do the following), and then CTRL+C (Copy) the selected area and CTRL+V (Paste) somewhere random. Now, we overcolor ALL of the white CURSORS! Once again, DO NOT OVERCOLOR THE AIMERS/ARROWS, UNLESS THIS IS YOUR INTENTION! We should now have something like this

Tutorialp3.jpg

Do that with every one of the cursors, until you have something like this

Tutorialp4.jpg


4. Importing it correct, changing the path of the <yourname>.blp

Now, you save the HumanCursor.tga to the same as you wrote in the .mdl file(See step 2). That would say, if you wrote
Code:
Textures 2 {
	Bitmap {
		Image "Textures\MyStupidExampleCursor.blp"
in the .mdl file(which we converted to .mdx), the name of the HumanCursor.tga should be MyStupidExampleCursor.tga, and should be imported to a custom path named "Textures\MyStupidExampleCursor.blp"
Example:

tutorialp5.jpg

Hey! Wait a second! How did it go from .tga to .blp suddenly? Simple! We used the TGA<->BLP converter(found at this site) to once again redo it to .blp

5. Testing

Just run the map and test it! Should look something like this:

picture1dzc.jpg
 
Last edited by a moderator:
- Remove the colored text or use #D0F680 instead.
- FFS do you have to attach the whole mdl? Just attach the part where it is and then "..." the rest.
- Link to the tools you're using instead of just saying "found on this site". Also turn that section into a list.
- Use [goto] tags for the table of contents
- Use
  1. tags for the step-by-step bits. Don't cram everything into one paragraph -- it's hard to follow.
    - Attach all of your images to this post. Use
 
Last edited:

dab

dab

Level 10
Joined
Oct 30, 2008
Messages
412
- Remove the colored text or use #D0F680 instead.
- FFS do you have to attach the whole mdl? Just attach the part where it is and then "..." the rest.
- Link to the tools you're using instead of just saying "found on this site". Also turn that section into a list.
- Use [goto] tags for the table of contents
- Use
  1. tags for the step-by-step bits. Don't cram everything into one paragraph -- it's hard to follow.
    - Attach all of your images to this post. Use
 
Last edited:
Level 8
Joined
Nov 2, 2008
Messages
206
nice TUT dab(born 2 years after me apparently) i didnt know this.... i thot u were stuck with the ugly as @$$ bloody orc hand and such lol.
GJ!
p.s squidel..... yes,well about past. Idk print i got a print button on keyboard. but thats not for here...
JASS:
The default settings are:
Copy = C
Paste = V
Cut = X
Print = P
Save = S

Etc.
 
Last edited:

dab

dab

Level 10
Joined
Oct 30, 2008
Messages
412
Well, my username? just some default, i use for sites where i got no information that needs secureness. And yeah, i thought you were stuck with those too, untill i thought "Hm.. wonder if you can skin cursors?" and began researching, which eventually leaded to this.
Feel free to PM me if you dont think your own cursors is pretty enough
EDIT: Nop, my CTRL+P is paste(or... thats how i fixed it once, and dont remember how to undo it)
 
Level 13
Joined
Apr 15, 2008
Messages
854
Oh thought u were born in 96' i was in 94' any ways dabb you no your avatar? ya ima spruce it up for u to look cooler. ill paste here when im done.... you'll like it.

Not the right place to do it.
And doncha mean "Know" instead of "No"?
 
Top