Good looking explosions in Particle Editor, help plz!

The place for artists, modellers, level designers et al to discuss their approaches for creating content for OGRE.
Post Reply
User avatar
Fakamaz
Halfling
Posts: 40
Joined: Fri Feb 03, 2006 6:24 pm
Location: Poland
Contact:

Good looking explosions in Particle Editor, help plz!

Post by Fakamaz »

Hi All,
We have a problem here. For several months we have been trying to create good looking comics style explosions for our game - There is Only WAR!, but we have faced two problems.
First one – is it possible to merge smoke and fire into one particle or they have to be separate entities?

Maybe anyone has some examples on how to create explosions that look like the ones on the link below:
http://jng.rakeingrass.com/screenshots.php

Second problem is - we were trying to create explosions based on the animation frames sequence and got very strange bug. Explosion NEVER starts from the first frame but from any frame from the sequence. This makes creating of animated explosions impossible as every next time we have different explosion which start and finish are cropped. Any ideas why it could be like this?

So finishing - I would like to ask you to post me any clues on explosions made by you in Ogre Particle Editor please. I'd really appreciate your help.

Thanks in advance.

Igor.
User avatar
Falagard
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 2060
Joined: Thu Feb 26, 2004 12:11 am
Location: Toronto, Canada
x 4
Contact:

Post by Falagard »

If you want fire and smoke you'll probably need two particle systems instead of trying to work it into one. That's what I've done.

Regarding synching with animation frames, can you explain better?

If for example, you have an animation that plays for 60 frames and you need an explosion to happen at frame 30, you obviously are going to need to make your own system that can trigger events at certain frames in an animation and handle it from there, by starting up the particle system only at frame 30.

I can imagine a data driven system where you have an xml file that corresponds to your animation names, and specify frames and an event name.

Example:
MyCharacter.mesh
MyCharacter.skeleton, with 2 different animations - run and attack.
For run, imagine its 100 frames and you want footstep sounds to play at frames 25 and 75.
For attack, imagine it's 120 frames, you want to play a sound AND start a particle system at frame 60

MyCharacter.AnimationEvents file:

Code: Select all

Animation Run
{
  Event
  {
    Frame 25;
    SoundEvent "footstep.wav";
  }
  Event
  {
    Frame 75;
    SoundEvent "footstep.wav";
  }
}
Animation Attack
{
  Event
  {
    Frame 60;
    SoundEvent "attack.wav";
    ParticleEvent "explosion.particle";
  }
}
You'll need to load that data, then your system check when an animation starts playing the time and fire the event if the frame is greater than the time. I don't know if you can get the current frame from an animation, perhaps Time would be a better word, since the animations try to play at a consistent time despite framerate. So when your animation starts you'd have to check the time, then each frame you'd check if time > time specified in the config file and play the event.

I think you also mentioned that the particle system starts over if you play the animation twice in a row so the first explosion stops? You'll need a queue of particle systems so you can have multiple going at once.

Clay
User avatar
Fakamaz
Halfling
Posts: 40
Joined: Fri Feb 03, 2006 6:24 pm
Location: Poland
Contact:

Post by Fakamaz »

Hi Clay, Thank you for your reply.
>>Regarding synching with animation frames, can you explain better?
We have 2 animation sequences both 2D for the Star Wars like explosions.
We made up particles based on these sequenses and both of them never played from the begining but from any frame. For example it could start at the middle and end playing animation twice. Or could start almost normally and ends on the middle.
Below are material and particle code, I could send you textures if you like to check it aswell upon request.
Material:

Code: Select all

material Explode
{
	technique
	{
		pass
		{
			lighting off
			scene_blend alpha_blend
			depth_write off

			texture_unit
			{
				anim_texture explozhin1.png explozhin2.png explozhin3.png explozhin4.png explozhin5.png explozhin6.png explozhin7.png explozhin8.png  explozhin9.png  explozhin10.png  explozhin11.png  explozhin12.png  explozhin13.png  explozhin14.png  explozhin15.png 0.8
				tex_address_mode clamp
			}
		}
	}
Particle:

Code: Select all

StarWars1
{
	quota	1
	material	Explode
	particle_width	22
	particle_height	22
	cull_each	false
	renderer	billboard
	billboard_type	point

	emitter Point
	{
		angle	51.65
		colour	1 1 1 1
		direction	0 0 0
		emission_rate	2
		position	0 5 0
		velocity	1
		velocity_min	1
		velocity_max	1
		time_to_live	1
		duration	0.5
	}

   	affector Rotator
   	{
		rotation_range_start  		90
		rotation_range_end   	 	90
		rotation_speed_range_start  	0
		rotation_speed_range_end    	0
   	}


}
Let me know if we made up a mistake in these files please.

As for the explosion particle in general - I would like to know if you could point me for the example of good military explosion, not simple one (one in the Particle Editor), it would help me greatly!

Thanks in advance!

Igor.
User avatar
Falagard
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 2060
Joined: Thu Feb 26, 2004 12:11 am
Location: Toronto, Canada
x 4
Contact:

Post by Falagard »

Sorry I misunderstood that you were talking about animating the material. I have no experience with that (I didn't even know you could do that). I don't have any examples to point you to either.

Clay
Post Reply