wc3campaigns
WC3C Homepage - www.wc3c.netUser Control Panel (Requires Log-In)Engage in discussions with other users and join contests in the WC3C forums!Read one of our many tutorials, ranging in difficulty from beginner to advanced!Show off your artistic talents in the WC3C Gallery!Download quality models, textures, spells (vJASS/JASS), systems, and scripts!Download maps that have passed through our rigorous approval process!

Go Back   Wc3C.net > Tutorials > MDL Editing
User Name
Password
Register Rules Get Hosted! Chat Pastebin FAQ and Rules Members List Calendar



Reply
 
Thread Tools Search this Thread
Old 05-10-2004, 10:21 AM   #1
Alfred
User
 
Alfred's Avatar


Respected User
 
Join Date: May 2003
Posts: 840

Submissions (6)

Alfred is on a distinguished road (17)

Send a message via MSN to Alfred
Default Adding of Emitters to models

How it works
You will add emitter to a model all by hand in Wordpad/Notepad. You either take it from a model, or further edit the taken emitter.

Tools needed:
Notepad/Wordpad
YobGuls' Fileconverter Get it here
Any programs that can extract models

We will add emitter to the Crypt Fiend's (Reign of Chaos') left hand taken from the Infernal model.

How it can be done
Now... Extract the Crypt Fiend's model and Infernal model from war3.mpq. Next, open YobGuls' Fileconverter.
Click on Load File. Load up CryptFiend.mdx, then click on Convert to MDL. Do the same to Infernal.mdx.
Now open both of them with Wordpad/Notepad. Now, on the Infernal.mdx, press Ctrl+F and type pivotpoints.
Now scroll down... Until you see this:
Code:
ParticleEmitter2 "BlizParticleShoulderLeft" {
	ObjectId 103,
	Parent 25,	// "Sphere12"
	Unshaded,
	ModelSpace,
	static Speed 60,
	static Variation 0,
	static Latitude 22,
	static Gravity -530,
	Visibility 6 {
		DontInterp,
		33: 1,
		23767: 0,
		24133: 1,
		29033: 1,
		30567: 0,
		34000: 0,
	}
	LifeSpan 0.4,
	static EmissionRate 40,
	static Width 17.4,
	static Length 54.292,
	Additive,
	Rows 8,
	Columns 8,
	Head,
	TailLength 1,
	Time 0.5,
	SegmentColor {
		Color { 0.658824, 1, 0.996078 },
		Color { 0, 1, 0.8 },
		Color { 0, 1, 0.329412 },
	},
	Alpha {255, 255, 0},
	ParticleScaling {24.7, 20, 8},
	LifeSpanUVAnim {0, 40, 1},
	DecayUVAnim {41, 63, 1},
	TailUVAnim {0, 40, 1},
	TailDecayUVAnim {41, 63, 1},
	TextureID 2,
	Rotation 4 {
		Hermite,
		33: { -0.413683, 0.0289275, 0, 0.909961 },
			InTan { -0.593511, 0.0415023, 0, 0.803755 },
			OutTan { -0.593511, 0.0415023, 0, 0.803755 },
		3100: { -0.413683, 0.0289275, 0, 0.909961 },
			InTan { -0.413683, 0.0289275, 0, 0.909961 },
			OutTan { -0.413683, 0.0289275, 0, 0.909961 },
		5467: { -0.413683, 0.0289275, 0, 0.909961 },
			InTan { -0.413683, 0.0289275, 0, 0.909961 },
			OutTan { -0.413683, 0.0289275, 0, 0.909961 },
		30400: { -0.413683, 0.0289275, 0, 0.909961 },
			InTan { -0.413683, 0.0289275, 0, 0.909961 },
			OutTan { -0.413683, 0.0289275, 0, 0.909961 },
	}
}
Then, copy the whole of this portion. Switch over to your CryptFiend.mdx, then Ctrl+F pivotpoints again. Scroll down, then paste it
where the emitter was in the Infernal model. You will get something like
Code:
	{ 0, -22.5742, 155.104 },
	{ 0, 0, 0 },
	{ 51.7403, 0.293222, 69.0057 },
	{ -20.2287, 0.293219, 57.2672 },
}
ParticleEmitter2 "BlizParticleShoulderLeft" {
	ObjectId 103,
	Parent 25,	// "Sphere12"
	Unshaded,
	ModelSpace,
	static Speed 60,
	static Variation 0,
	static Latitude 22,
......
			InTan { -0.593511, 0.0415023, 0, 0.803755 },
			OutTan { -0.593511, 0.0415023, 0, 0.803755 },
		3100: { -0.413683, 0.0289275, 0, 0.909961 },
			InTan { -0.413683, 0.0289275, 0, 0.909961 },
			OutTan { -0.413683, 0.0289275, 0, 0.909961 },
		5467: { -0.413683, 0.0289275, 0, 0.909961 },
			InTan { -0.413683, 0.0289275, 0, 0.909961 },
			OutTan { -0.413683, 0.0289275, 0, 0.909961 },
		30400: { -0.413683, 0.0289275, 0, 0.909961 },
			InTan { -0.413683, 0.0289275, 0, 0.909961 },
			OutTan { -0.413683, 0.0289275, 0, 0.909961 },
	}
}
Once that is done, look for a part in the portion you pasted which says
Code:
......
	TailUVAnim {0, 40, 1},
	TailDecayUVAnim {41, 63, 1},
	TextureID 2, <---- Take note of this part.
	Rotation 4 {
......
Take note of the TextureID. Then on Infernal.mdx, scroll all the way to the top, then Ctrl+F Textures.
You will see this part
Code:
Textures 5 {
	Bitmap {
		Image "units\Demon\Infernal\Infernal.blp",
		WrapWidth,
		WrapHeight,
	}
	Bitmap {
		Image "Textures\clouds_anim1_bw.blp",
		WrapWidth,
		WrapHeight,
	}
	Bitmap {
		Image "ReplaceableTextures\Weather\Clouds8x8.blp",
	}
	Bitmap {
		Image "Textures\Yellow_Star.blp",
	}
	Bitmap {
		Image "Textures\Clouds8x8Grey.blp",
	}
}
What was the TextureID? 2 right? Alright, now count the textures, starting from 0, until you reach 2. You will get
Code:
	Bitmap {
		Image "ReplaceableTextures\Weather\Clouds8x8.blp",
	}
Copy it, then go to your CryptFiend.mdx, go to the Textures section, then paste it so it is the last texture.
Code:
Textures 3 {
	Bitmap {
		Image "Textures\CryptFiend.blp",
	}
	Bitmap {
		Image "",
		ReplaceableId 1,
	}
	Bitmap {
		Image "Textures\gutz.blp",
	}
	Bitmap {
		Image "ReplaceableTextures\Weather\Clouds8x8.blp",
	}
}
Then go back to your emitter you pasted earlier on your CryptFiend.mdx. Now, change the TextureID to the number of texture
you pasted, counting starting from 0. It will be 3 in this case. So change it to 3.
Code:
......
	DecayUVAnim {41, 63, 1},
	TailUVAnim {0, 40, 1},
	TailDecayUVAnim {41, 63, 1},
	TextureID 3,
	Rotation 4 {
......
Now, remove this portion
Code:
	Rotation 4 {
		Hermite,
		33: { -0.413683, 0.0289275, 0, 0.909961 },
			InTan { -0.593511, 0.0415023, 0, 0.803755 },
			OutTan { -0.593511, 0.0415023, 0, 0.803755 },
		3100: { -0.413683, 0.0289275, 0, 0.909961 },
			InTan { -0.413683, 0.0289275, 0, 0.909961 },
			OutTan { -0.413683, 0.0289275, 0, 0.909961 },
		5467: { -0.413683, 0.0289275, 0, 0.909961 },
			InTan { -0.413683, 0.0289275, 0, 0.909961 },
			OutTan { -0.413683, 0.0289275, 0, 0.909961 },
		30400: { -0.413683, 0.0289275, 0, 0.909961 },
			InTan { -0.413683, 0.0289275, 0, 0.909961 },
			OutTan { -0.413683, 0.0289275, 0, 0.909961 },
	}
Next, go to the next object after the emitter, which happens to be an event track in this case.
Code:
EventObject "SPLTDBL0" {
	ObjectId 96, <---- Take note of this number.
	EventTrack 1 {
		31633,
	}
}
Go back to the emitter, look for the part which says ObjectId x(any number), it will be 103 in this case. Change it to 96,
since originally before the event track, it was an attachment point, and it's ObjectId is 95. Every ObjectIds must go in an
order. Then after changing that, change the rest of the ObjectIds for the following objects, all by +1.
Code:
ParticleEmitter2 "BlizParticleShoulderLeft" {
	ObjectId 96,
	Parent 25,	// "Sphere12"
	Unshaded,
	ModelSpace,
	static Speed 60,
	static Variation 0,
	static Latitude 22,
	static Gravity -530,
	Visibility 6 {
		DontInterp,
		33: 1,
		23767: 0,
		24133: 1,
		29033: 1,
		30567: 0,
		34000: 0,
	}
	LifeSpan 0.4,
	static EmissionRate 40,
	static Width 17.4,
	static Length 54.292,
	Additive,
	Rows 8,
	Columns 8,
	Head,
	TailLength 1,
	Time 0.5,
	SegmentColor {
		Color { 0.658824, 1, 0.996078 },
		Color { 0, 1, 0.8 },
		Color { 0, 1, 0.329412 },
	},
	Alpha {255, 255, 0},
	ParticleScaling {24.7, 20, 8},
	LifeSpanUVAnim {0, 40, 1},
	DecayUVAnim {41, 63, 1},
	TailUVAnim {0, 40, 1},
	TailDecayUVAnim {41, 63, 1},
	TextureID 3,
}
EventObject "SPLTDBL0" {
	ObjectId 97,
	EventTrack 1 {
		31633,
	}
}
EventObject "SPLTDBL1" {
	ObjectId 98,
	EventTrack 1 {
		31733,
	}
}
EventObject "SPLTDBL2" {
	ObjectId 99,
	EventTrack 1 {
		31900,
	}
}
EventObject "SPLTDBL3" {
	ObjectId 100,
	EventTrack 1 {
		31967,
	}
}
EventObject "FPTyFKR0" {
	ObjectId 101,
	EventTrack 1 {
		27076,
	}
}
EventObject "FPTxFKR0" {
	ObjectId 102,
	EventTrack 1 {
		27167,
	}
}
EventObject "FPTxFKL0" {
	ObjectId 103,
	EventTrack 1 {
		27030,
	}
}
EventObject "FPTyFKL0" {
	ObjectId 104,
	EventTrack 1 {
		27667,
	}
}
EventObject "SNDxDPIT" {
	ObjectId 105,
	EventTrack 1 {
		30433,
	}
}
EventObject "SNDXFDSL" {
	ObjectId 106,
	EventTrack 1 {
		27533,
	}
}
EventObject "SNDYFDSL" {
	ObjectId 107,
	EventTrack 1 {
		27033,
	}
}
EventObject "SNDXFDSR" {
	ObjectId 108,
	EventTrack 1 {
		27067,
	}
}
EventObject "SNDYFDSR" {
	ObjectId 109,
	EventTrack 1 {
		27467,
	}
}
EventObject "SPNxDBCR" {
	ObjectId 110,
	EventTrack 1 {
		30500,
	}
}
CollisionShape "Collision 2" {
	ObjectId 111,
	Sphere,
	Vertices 1 {
		{ 51.7403, 0.293222, 69.0057 },
	}
	BoundsRadius 58.481,
}
CollisionShape "Collision 1" {
	ObjectId 112,
	Sphere,
	Vertices 1 {
		{ -20.2287, 0.293219, 57.2672 },
	}
	BoundsRadius 68.4228,
}


We are going to add this to the left hand right? We need to give the emitter a pivot, we have 2 choices, we can either take
the pivot of the left hand attachment point, or the pivot of the bone of the left hand. We will take use the attachment point's
in this tutorial. Now Ctrl+F attachment, then look around there, until you find the attachment for the left hand. Which is
Code:
Attachment "Hand Left Ref " {
	ObjectId 92, <---- Take note of this.
	Parent 79,	// "Bone_Box29" <---- And this. Just the number, ignore the stuff behind the //.
	Visibility 3 {
		DontInterp,
		40267: 1,
		100100: 0,
		113600: 0,
	}
}
Go to the PivotPoints section, then count to the 93rd pivot, since Ids starts from 0, it is actually Id 92. Copy that pivot,
then continue counting until you reach the 96th. Press enter and you will create a new line, then paste there by pressing Ctrl+v,
so it will be on the 97th pivot(our emitter is Id 96, remember?).
Code:
......
	{ -54.7252, 47.7444, 0.151143 },
	{ 57.6861, 38.1531, 0.0964531 },
	{ -54.4284, -45.1488, 0.115693 },
	{ 55.811, -38.8694, -1.23524 },
	{ 100.393, -21.7079, 69.1697 },
	{ 82.1753, -0.292041, 105.869 },
	{ 85.1562, -0.292045, 99.0712 },
	{ 103.352, 25.1936, 70.7488 }, <---- Copy this, the 93rd pivot.
	{ 47.1684, -0.00997656, 102.803 },
	{ -0.896102, 0.600088, 0.0480423 },
	{ -0.896099, 0.600088, 146.933 },
	{ 103.352, 25.1936, 70.7488 }, <---- Create a new line, paste, and it will be here. 97th pivot
	{ 12.9809, -53.5058, 12.9314 },
	{ 67.9901, -8.25223, 12.9314 },
	{ -1.88774, 0.604691, 12.9314 },
	{ 56.9887, -26.7666, 12.9314 },
	{ -74.5087, -67.3454, 9.17015 },
......
Once that is done, go back to your emitter, change the parent so that it is the same as the attachment's. It is 79, so change it
to that.
Code:
ParticleEmitter2 "BlizParticleShoulderLeft" {
	ObjectId 96,
	Parent 79,	// "Sphere12"
	Unshaded,
	ModelSpace,
	static Speed 60,
	static Variation 0,
	static Latitude 22,
	static Gravity -530,
......
Finally, change all visibility to 1, since it isn't important now, I will explain it when I have the time to update this tutorial.
Code:
......
	Visibility 6 {
		DontInterp,
		33: 1,
		23767: 1,
		24133: 1,
		29033: 1,
		30567: 1,
		34000: 1,
	}
......
Save your MDL, then load up YobGuls' Fileconverter, click on Load File, load up your MDL file, then click Convert to MDX.
Import the model into your map and test. There you go, emitter added.
Zoom (requires log in)
Finished product.

And this is the Chaos Spider from RoTD, skin by abriko, model by me. It's done by this method, and adding of another 'larger' version of the original geoset(I did them all by hand by adding all coordinates of the vertices by 3), then assign it to a material with animated texture(or tvertexanim).
Zoom (requires log in)
__________________

Last edited by Alfred : 05-10-2004 at 10:32 AM.
Alfred is offline   Reply With Quote
Sponsored Links - Login to hide this ad!
Old 05-16-2004, 01:34 AM   #2
Andy
oh dear
 
Andy's Avatar


Respected User
 
Join Date: Aug 2003
Posts: 907

Submissions (2)

Andy has a spectacular aura about (80)Andy has a spectacular aura about (80)Andy has a spectacular aura about (80)

Default

Excfellent tut man, I needed somethin like this cuz I dont have max so I cant add emmitters to my models :/
Andy is offline   Reply With Quote
Old 05-16-2004, 08:59 AM   #3
Alfred
User
 
Alfred's Avatar


Respected User
 
Join Date: May 2003
Posts: 840

Submissions (6)

Alfred is on a distinguished road (17)

Send a message via MSN to Alfred
Default

Quote:
Originally Posted by Andy
Excfellent tut man, I needed somethin like this cuz I dont have max so I cant add emmitters to my models :/

Wtf!? You still haven't got your max...? Duh... :/
__________________
Alfred is offline   Reply With Quote
Old 05-17-2004, 03:05 AM   #4
Andy
oh dear
 
Andy's Avatar


Respected User
 
Join Date: Aug 2003
Posts: 907

Submissions (2)

Andy has a spectacular aura about (80)Andy has a spectacular aura about (80)Andy has a spectacular aura about (80)

Default

well I get liscence errors
Andy is offline   Reply With Quote
Old 07-01-2004, 12:47 PM   #5
zxzxlch
User
 
Join Date: Apr 2004
Posts: 6

zxzxlch has little to show at this moment (0)

Default

Quote:
Originally Posted by Alfred
Finally, change all visibility to 1, since it isn't important now, I will explain it when I have the time to update this tutorial.
Code:
......
	Visibility 6 {
		DontInterp,
		33: 1,
		23767: 1,
		24133: 1,
		29033: 1,
		30567: 1,
		34000: 1,
	}
......

Thanks for this awesome tutorial! I'm curious though, what does changing all those values to 1 do?
zxzxlch is offline   Reply With Quote
Old 07-01-2004, 01:03 PM   #6
Alfred
User
 
Alfred's Avatar


Respected User
 
Join Date: May 2003
Posts: 840

Submissions (6)

Alfred is on a distinguished road (17)

Send a message via MSN to Alfred
Default

Quote:
Originally Posted by zxzxlch
Thanks for this awesome tutorial! I'm curious though, what does changing all those values to 1 do?

Well I will soon update it... So be patient :)

Thanks.
__________________
Alfred is offline   Reply With Quote
Old 07-01-2004, 01:40 PM   #7
megaerathia
User
 
megaerathia's Avatar
 
Join Date: Aug 2003
Posts: 1,056

Submissions (1)

megaerathia will become famous soon enough (30)megaerathia will become famous soon enough (30)

Default

Cool such tutorial first was here before they upgraded to v3.0.. Good work Alfred!!!!
__________________
megaerathia is offline   Reply With Quote
Old 08-04-2004, 07:03 PM   #8
RemnantZ27
User
 
Join Date: Jul 2004
Posts: 21

RemnantZ27 has little to show at this moment (0)

Default

I am transfering the Reverants particle onto the Paladin, but it shows up like this, positioned with quardinates away from the hammer.
Zoom (requires log in)
Code:
ParticleEmitter2 "BlizParticle01" {
	ObjectId 46,
	Parent 19,	// "Hammer"
	Unshaded,
	static Speed 100,
	static Variation 0.02,
	static Latitude 32.5,
	static Gravity -220,
	Visibility 3 {
		DontInterp,
		42000: 1,
		44700: 0,
		53400: 1,
	}
	LifeSpan 1.5,
	static EmissionRate 25,
	static Width 10,
	static Length 10,
	Additive,
	Rows 1,
	Columns 1,
	Head,
	TailLength 1,
	Time 0.25,
	SegmentColor {
		Color { 1.5, 1, -1 },
		Color { 1.5, 1, -1 },
		Color { 1.5, 1, -1 },
	},
	Alpha {150, 255, 0},
	ParticleScaling {30, 20, 2},
	LifeSpanUVAnim {0, 0, 1},
	DecayUVAnim {0, 0, 1},
	TailUVAnim {0, 0, 1},
	TailDecayUVAnim {0, 0, 1},
	TextureID 4,
}

Were in there does it state the quardinates to were it is placed?
RemnantZ27 is offline   Reply With Quote
Old 08-08-2004, 09:55 PM   #9
Oinkerwinkle
User


Respected User
 
Join Date: Jan 2003
Posts: 937

Submissions (1)

Oinkerwinkle will become famous soon enough (30)Oinkerwinkle will become famous soon enough (30)

Default

The position is defined by the association PivotPoint. Go to the PivotPoint section and count through them, starting from 0, until you reach the ObjectId of your emitter. You should have added a new point there. If you didn't add one now and set its coordinates to what you want.
Oinkerwinkle is offline   Reply With Quote
Old 08-16-2004, 11:32 AM   #10
sarimond
User
 
Join Date: Oct 2003
Posts: 5

sarimond has little to show at this moment (0)

Default

I want to make the glow of Arthas' Sword grow longer.
sarimond is offline   Reply With Quote
Old 08-16-2004, 12:03 PM   #11
Alfred
User
 
Alfred's Avatar


Respected User
 
Join Date: May 2003
Posts: 840

Submissions (6)

Alfred is on a distinguished road (17)

Send a message via MSN to Alfred
Default

Quote:
Originally Posted by sarimond
I want to make the glow of Arthas' Sword grow longer.

A glow is NOT an emitter. You will have to add more geosets of glows to the model and give it a billboard bone for each. Or you can scale all the bones the glows are using, since they are billboarded, they will look longer and broader.
__________________
Alfred is offline   Reply With Quote
Old 08-16-2004, 02:55 PM   #12
sarimond
User
 
Join Date: Oct 2003
Posts: 5

sarimond has little to show at this moment (0)

Default

Quote:
Originally Posted by Alfred
A glow is NOT an emitter. You will have to add more geosets of glows to the model and give it a billboard bone for each. Or you can scale all the bones the glows are using, since they are billboarded, they will look longer and broader.

Thank you, I think scale the bones would be better. But still I have too few experience...Is there any open examples or tutorials?
sarimond is offline   Reply With Quote
Old 10-12-2004, 06:37 AM   #13
ALLI_GATOR
 
Posts: n/a
Default

Ok link to file converter doesn't seem to work, can some one please post another link to download it, thanks
  Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off


All times are GMT. The time now is 01:39 PM.


Affiliates
The Hubb The JASS Vault Clan WEnW Campaign Creations Clan CBS GamesModding Flixreel Videos

Powered by vBulletin (Copyright ©2000 - 2019, Jelsoft Enterprises Ltd).
Hosted by www.OICcam.com
IT Support and Services provided by Executive IT Services