HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

BloodElfMissile billboard (Imposter type) creation help

10-31-2008, 06:23 PM#1
Sooda
I try to get same effect as Blood Elf Missile where his ball always faces viewer. Definition of a billboard is:
Quote:
Billboards are flat, textured polygons that rotate
about their central axis to always face the viewer.
I got extracted BloodElfMissile.mdl:
Code:
// MDLFile version	Jun  6 2002 04:58:04
// Exported on Fri Oct 31 18:54:43 2008
Version {
	FormatVersion 800,
}
Model "BloodElfMissile" {
	NumGeosets 2,
	NumGeosetAnims 2,
	NumHelpers 1,
	NumBones 2,
	NumParticleEmitters2 4,
	NumEvents 2,
	BlendTime 150,
	MinimumExtent { -29.9066, -29.113, -29.0118 },
	MaximumExtent { 29.0118, 29.0118, 30.709 },
}
Sequences 3 {
	Anim "Stand" {
		Interval { 1667, 2333 },
		MinimumExtent { -29.0118, -29.0118, -29.0118 },
		MaximumExtent { 29.0118, 29.0118, 29.0118 },
		BoundsRadius 29.0375,
	}
	Anim "Death" {
		Interval { 2667, 6667 },
		NonLooping,
		MinimumExtent { -29.9066, -29.113, -29.0118 },
		MaximumExtent { 29.0118, 29.0118, 30.709 },
		BoundsRadius 29.9725,
	}
	Anim "Birth" {
		Interval { 8000, 8100 },
		NonLooping,
		MinimumExtent { 0, -8.60114, -8.60112 },
		MaximumExtent { 0, 8.60114, 8.60112 },
	}
}
GlobalSequences 1 {
	Duration 1433,
}
Textures 5 {
	Bitmap {
		Image "Textures\star5tga.blp",
	}
	Bitmap {
		Image "Textures\BloodElfBallz.blp",
	}
	Bitmap {
		Image "Textures\Zap1_Red.blp",
	}
	Bitmap {
		Image "Textures\Clouds8x8ModBlight.blp",
	}
	Bitmap {
		Image "Textures\Clouds8x8.blp",
	}
}
Materials 2 {
	Material {
		ConstantColor,
		Layer {
			FilterMode Additive,
			Unshaded,
			Unfogged,
			static TextureID 0,
		}
	}
	Material {
		PriorityPlane -1,
		Layer {
			FilterMode Blend,
			Unshaded,
			Unfogged,
			static TextureID 1,
		}
	}
}
Geoset {
	Vertices 4 {
		{ -1.00657, -8.48904, 27.7238 },
		{ -1.00657, -28.5429, -3.75439 },
		{ -1.00657, 22.9892, 7.67 },
		{ -1.00657, 2.93533, -23.8082 },
	}
	Normals 4 {
		{ 1, 2.98023e-008, 7.45058e-008 },
		{ 1, 2.98023e-008, 7.45058e-008 },
		{ 1, 2.98023e-008, 7.45058e-008 },
		{ 1, 2.98023e-008, 7.45058e-008 },
	}
	TVertices 4 {
		{ 0, 0 },
		{ 0, 1 },
		{ 1, 0 },
		{ 1, 1 },
	}
	VertexGroup {
		0,
		0,
		0,
		0,
	}
	Faces 1 6 {
		Triangles {
			{ 0, 1, 2, 3, 2, 1 },
		}
	}
	Groups 1 1 {
		Matrices { 0 },
	}
	MinimumExtent { -29.9066, -29.113, -29.0118 },
	MaximumExtent { 29.0118, 29.0118, 30.709 },
	BoundsRadius 29.9725,
	Anim {
		MinimumExtent { -29.0118, -29.0118, -29.0118 },
		MaximumExtent { 29.0118, 29.0118, 29.0118 },
		BoundsRadius 29.0118,
	}
	Anim {
		MinimumExtent { -29.9066, -29.113, -29.0118 },
		MaximumExtent { 29.0118, 29.0118, 30.709 },
		BoundsRadius 29.9725,
	}
	Anim {
		MinimumExtent { 3.40282e+038, 3.40282e+038, 3.40282e+038 },
		MaximumExtent { -3.40282e+038, -3.40282e+038, -3.40282e+038 },
	}
	MaterialID 0,
	SelectionGroup 0,
}
Geoset {
	Vertices 4 {
		{ 0, -8.60114, 8.60112 },
		{ 0, -8.60114, -8.60112 },
		{ 0, 8.60114, 8.60112 },
		{ 0, 8.60114, -8.60112 },
	}
	Normals 4 {
		{ 1, 0, 1.19209e-007 },
		{ 1, 0, 1.19209e-007 },
		{ 1, 0, 1.19209e-007 },
		{ 1, 0, 1.19209e-007 },
	}
	TVertices 4 {
		{ 0, 0 },
		{ 0, 1 },
		{ 1, 0 },
		{ 1, 1 },
	}
	VertexGroup {
		0,
		0,
		0,
		0,
	}
	Faces 1 6 {
		Triangles {
			{ 0, 1, 2, 3, 2, 1 },
		}
	}
	Groups 1 1 {
		Matrices { 1 },
	}
	MinimumExtent { 0, -8.60114, -8.60112 },
	MaximumExtent { 0, 8.60114, 8.60112 },
	Anim {
		MinimumExtent { 0, -8.60114, -8.60112 },
		MaximumExtent { 0, 8.60114, 8.60112 },
		BoundsRadius 12.1638,
	}
	Anim {
		MinimumExtent { 0, -8.60114, -8.60112 },
		MaximumExtent { 0, 8.60114, 8.60112 },
		BoundsRadius 12.1638,
	}
	Anim {
		MinimumExtent { 0, -8.60114, -8.60112 },
		MaximumExtent { 0, 8.60114, 8.60112 },
		BoundsRadius 12.1638,
	}
	MaterialID 1,
	SelectionGroup 0,
	Unselectable,
}
GeosetAnim {
	Alpha 4 {
		DontInterp,
		2667: 1,
		3800: 0,
		8000: 0,
		8010: 1,
	}
	static Color { 0.717647, 0.956863, 0.623529 },
	GeosetId 0,
}
GeosetAnim {
	Alpha 4 {
		DontInterp,
		2667: 1,
		3800: 0,
		8000: 0,
		8010: 1,
	}
	GeosetId 1,
}
Bone "Plane04" {
	ObjectId 0,
	Parent 2,	// "Dummy01"
	Billboarded,
	GeosetId 0,
	GeosetAnimId 0,
	Scaling 11 {
		Bezier,
		GlobalSeqId 0,
		0: { 1, 1, 1 },
			InTan { 0, 0, 0 },
			OutTan { 1.3158, 1.3158, 1.3158 },
		100: { 0.230219, 0.230219, 0.230219 },
			InTan { 0.230219, 0.230219, 0.230219 },
			OutTan { 0.230219, 0.230219, 0.230219 },
		200: { 1, 1, 1 },
			InTan { 1, 1, 1 },
			OutTan { 1, 1, 1 },
		300: { 0.230219, 0.230219, 0.230219 },
			InTan { 0.340747, 0.340747, 0.340747 },
			OutTan { 0.488119, 0.488119, 0.488118 },
		533: { 0.230219, 0.230219, 0.230219 },
			InTan { 0.359169, 0.359169, 0.359169 },
			OutTan { 0.322326, 0.322326, 0.322326 },
		700: { 1, 1, 1 },
			InTan { 1.03947, 1.03947, 1.03947 },
			OutTan { 1.03158, 1.03158, 1.03158 },
		833: { 0.230219, 0.230219, 0.230219 },
			InTan { 0.230219, 0.230219, 0.230219 },
			OutTan { 0.230219, 0.230219, 0.230219 },
		967: { 1, 1, 1 },
			InTan { 1, 1, 1 },
			OutTan { 1, 1, 1 },
		1100: { 0.230219, 0.230219, 0.230219 },
			InTan { 0.335484, 0.335484, 0.335484 },
			OutTan { 0.440749, 0.440749, 0.440749 },
		1367: { 0.230219, 0.230219, 0.230219 },
			InTan { 0.735491, 0.735492, 0.735491 },
			OutTan { 0.356537, 0.356537, 0.356537 },
		1433: { 1, 1, 1 },
			InTan { 1.18948, 1.18948, 1.18948 },
			OutTan { 0, 0, 0 },
	}
}
Bone "Ball" {
	ObjectId 1,
	Parent 2,	// "Dummy01"
	Billboarded,
	GeosetId 1,
	GeosetAnimId 1,
}
Helper "Dummy01" {
	ObjectId 2,
	Scaling 4 {
		Linear,
		2667: { 1, 1, 1 },
		2900: { 0.0163924, 0.0163924, 0.0163924 },
		3333: { 0.0163924, 0.0163924, 0.0163924 },
		6667: { 0.0163924, 0.0163924, 0.0163924 },
	}
}
PivotPoints 9 {
	{ 0, 0, 0 },
	{ 0, 0, 0 },
	{ -0.909726, -0.1029, 1.72542 },
	{ -0.257922, 0.199514, 0.200856 },
	{ 0, 0, 0 },
	{ 0, 0, 0 },
	{ 0, 0, 0 },
	{ 0, 0.479517, -0.349878 },
	{ 0, 0.479517, -0.349878 },
}
ParticleEmitter2 "BlizParticle01" {
	ObjectId 3,
	Unshaded,
	Unfogged,
	static Speed 421.6,
	static Variation 0,
	static Latitude 180,
	static Gravity 0,
	Visibility 5 {
		DontInterp,
		1667: 0,
		2667: 1,
		2867: 0,
		8000: 1,
		8030: 0,
	}
	LifeSpan 0.31,
	static EmissionRate 49,
	static Width 0,
	static Length 0,
	Additive,
	Rows 1,
	Columns 1,
	Both,
	TailLength 0.1,
	Time 0.25,
	SegmentColor {
		Color { 1, 1, 1 },
		Color { 0.815686, 0.807843, 0.0980392 },
		Color { 0, 0.980392, 0.576471 },
	},
	Alpha {0, 255, 0},
	ParticleScaling {6.3, 21.1, 0.1},
	LifeSpanUVAnim {0, 0, 1},
	DecayUVAnim {0, 0, 1},
	TailUVAnim {0, 0, 1},
	TailDecayUVAnim {0, 0, 1},
	TextureID 2,
}
ParticleEmitter2 "BlizParticleMod" {
	ObjectId 4,
	Unshaded,
	Unfogged,
	ModelSpace,
	static Speed 2,
	static Variation 0,
	static Latitude 180,
	static Gravity 0,
	Visibility 3 {
		DontInterp,
		2667: 0,
		8000: 0,
		8015: 1,
	}
	LifeSpan 2,
	static EmissionRate 2,
	static Width 10,
	static Length 10,
	Modulate,
	Rows 8,
	Columns 8,
	Head,
	TailLength 0.25,
	Time 0.5,
	SegmentColor {
		Color { 1, 1, 1 },
		Color { 1, 1, 1 },
		Color { 1, 1, 1 },
	},
	Alpha {255, 212, 0},
	ParticleScaling {10, 15, 20},
	LifeSpanUVAnim {0, 31, 1},
	DecayUVAnim {32, 63, 1},
	TailUVAnim {0, 0, 1},
	TailDecayUVAnim {0, 0, 1},
	TextureID 3,
	PriorityPlane -100,
}
ParticleEmitter2 "BlizParticleFireBack" {
	ObjectId 5,
	Unshaded,
	Unfogged,
	static Speed 100,
	static Variation 0,
	static Latitude 10,
	static Gravity 0,
	Visibility 4 {
		DontInterp,
		2667: 1,
		2700: 0,
		8000: 0,
		8015: 1,
	}
	LifeSpan 0.25,
	static EmissionRate 90,
	static Width 10,
	static Length 10,
	Additive,
	Rows 8,
	Columns 8,
	Head,
	TailLength 1,
	Time 0.5,
	SegmentColor {
		Color { 0.505882, 1, 0.996078 },
		Color { 0, 1, 0.8 },
		Color { 0, 0.988235, 0 },
	},
	Alpha {255, 255, 0},
	ParticleScaling {20, 16, 10},
	LifeSpanUVAnim {0, 40, 1},
	DecayUVAnim {41, 63, 1},
	TailUVAnim {0, 40, 1},
	TailDecayUVAnim {41, 63, 1},
	TextureID 4,
	PriorityPlane -10,
}
ParticleEmitter2 "BlizParticleFireFront" {
	ObjectId 6,
	Unshaded,
	Unfogged,
	static Speed 80,
	static Variation 0,
	static Latitude 10,
	static Gravity 0,
	Visibility 3 {
		DontInterp,
		2667: 1,
		2700: 0,
		8000: 0,
	}
	LifeSpan 0.2,
	static EmissionRate 13,
	static Width 10,
	static Length 10,
	Additive,
	Rows 8,
	Columns 8,
	Head,
	TailLength 1,
	Time 0.5,
	SegmentColor {
		Color { 0.505882, 1, 0.996078 },
		Color { 0, 1, 0.8 },
		Color { 0, 0.988235, 0 },
	},
	Alpha {255, 255, 0},
	ParticleScaling {14, 12, 8},
	LifeSpanUVAnim {0, 40, 1},
	DecayUVAnim {41, 63, 1},
	TailUVAnim {0, 40, 1},
	TailDecayUVAnim {41, 63, 1},
	TextureID 4,
	PriorityPlane 100,
}
EventObject "SNDXMBML" {
	ObjectId 7,
	EventTrack 1 {
		8033,
	}
}
EventObject "SNDxMBSH" {
	ObjectId 8,
	EventTrack 1 {
		2700,
	}
}
How would I do simple square facing always viewer? I use Gmax 1.2 with Dex 0.186m exporter for Warcraft 3 MDL Toolkit (file name: '__DeX_0[1].186m.mcr').
I have in Gmax successfully created square, textured it and modified *.mdl to display correctly in Warcraft. I need help with billboard effect.

My so far countdown bar prototype whic hI try to make billboard:
Code:
// 'DeX Version: 0.186m
Version {
	FormatVersion 800,
}
Model "Bar_Normal" {
	NumGeosets 1,
	NumBones 1,
	BlendTime 150,
	MinimumExtent { -5.0, 0.0, 10.0 },
	MaximumExtent { 5.0, 0.000200003, 30.0 },
	BoundsRadius 30.4138,
}
Textures 1 {
	Bitmap {
		Image "war3mapImported\1x1_Bar_Texture.tga",
	}
}
Materials 1 {
	Material {
                PriorityPlane -1,
		Layer {
			FilterMode None,
			static TextureID 0,
		}
	}
}
Geoset  {
	Vertices 4 {
		{ -5.0, 0.0, 10.0 },
		{ 5.0, 0.0, 10.0 },
		{ -5.0, 0.0, 30.0 },
		{ 5.0, 0.0, 30.0 },
	}
	Normals 4 {
		{ 0.0, -1.0, 0.0 },
		{ 0.0, -1.0, 0.0 },
		{ 0.0, -1.0, 0.0 },
		{ 0.0, -1.0, 0.0 },
	}
	TVertices 4 {
		{ 0.0, 1.0 },
		{ 0.0, 1.0 },
		{ 0.0, 1.0 },
		{ 0.0, 1.0 },
	}
	VertexGroup {
		0,
		0,
		0,
		0,
	}
	Faces 1 6 {
		Triangles {
			{ 0, 1, 3, 3, 2, 0 },
		}
	}
	Groups 1 1 {
		Matrices { 0 },
	}
	MinimumExtent { -5.0, 0.0, 10.0 },
	MaximumExtent { 5.0, 0.000200003, 30.0 },
	BoundsRadius 30.4138,
	MaterialID 0,
	SelectionGroup 0,
}
Bone "default_bone01" {
	ObjectId 0,
	GeosetId 0,
	GeosetAnimId None,
}
PivotPoints 1 {
	{ 0.0, 0.0, 0.0 },
}

After writing so far answer was front of me:
Code:
Bone "Ball" {
	ObjectId 1,
	Parent 2,	// "Dummy01"
	Billboarded,
	GeosetId 1,
	GeosetAnimId 1,
Adding Billboarded to my default bone should do the trick:
Code:
Bone "default_bone01" {
	ObjectId 0,
	Billboarded,
	GeosetId 0,
	GeosetAnimId None,

EDIT:

Now I actually tried it out, with billboard it crashes on loading screen. I still need help.