Maya for 3D Printing - Rapid Prototyping
In this course we're going to look at something a little different, creating technically accurate 3D printed parts.
# 1 17-07-2002 , 03:01 PM
MKess007's Avatar
Registered User
Join Date: Jun 2002
Location: Ohio, USA
Posts: 202

Explosion

I have seen the tutorial on the A|W website on how to make a fireball, but that to me doesn't look real enough. Could some one help me in making a more realistic explosion.

thanks,


mahalo,

Myk

<a href="https://www.metic.net" rel="noopener noreferrer nofollow" class="giveMeEllipsisa" target="_blank">www.metic.net</a><br />
# 2 17-07-2002 , 04:25 PM
keops's Avatar
Registered User
Join Date: Jun 2002
Location: Montreal
Posts: 22
there is different way to make a firebomb
but personaly i hate dynamics so here is a shader who loook pretty much realistic , it render much faster than dynamics and you can assign it to the shape you want (basicly a sphere or if you want some real explosion Effects->Create Shatter
it divide your sphere in parts then run a rigid or soft body simulation.)


-KeOpS-
# 3 17-07-2002 , 07:00 PM
MKess007's Avatar
Registered User
Join Date: Jun 2002
Location: Ohio, USA
Posts: 202
If you could please give me a little more of a walkthrough because i'm very new that would be greatly appriciated.


mahalo,

Myk

<a href="https://www.metic.net" rel="noopener noreferrer nofollow" class="giveMeEllipsisa" target="_blank">www.metic.net</a><br />
# 4 10-09-2002 , 04:43 AM
ragecgi's Avatar
Registered User
Join Date: Sep 2002
Location: Minnesota, USA
Posts: 3,709

Try this...

Ok, the best explosion I been able to make goes like so:

1. Run the script found below.
(just copy and paste it into a text file, and name the file:
dynFuncExplosion.mel then, place it into your scripts dir.
Source it from within Maya.
Then, type: "dynFuncExplosion" without the quotes into the command line in maya, highlight the text, and MIDDLE-MOUSE-DRAG it to your shelf, and click on it!

2. Select the particle object and in the Attribute Editor, change the particle type to sphere, then go to RENDER ATTRIBUTES, and click on the "CURRENT RENDER TYPE" button.
It will add an attribute for "RADIUS" enabeling you to change the size of the spheres to your liking.
I changed myne to 3 or so.

3. Map a 2d explosion animation, or an explosion shader to your sphere's shading group, or a new shading group if you like.

4. play with the emitter settings to suit your shotuser added image

ENJOY! user added image

HERE is the explosion melscript:

I have NO clue where I found this script, but I think it was an Alias|Wavefront melscrtipt edited by someone else.

//SCRIPT BEGINS HERE
// dynFuncExplosion.mel
//
// Alias|Wavefront Script File
// MODIFY THIS AT YOUR OWN RISK
//
// Creation Date: 21 September 1996; Modified 08 January 2000
// Author: bah
//
// Procedure Name:
// dynFuncExplosion
//
// Description:
// Creates a point explosion that can be modified.
//
// Input Arguments:
// None.
//
// Return Value:
// None.
//



//
// ========== dynFuncExplosion ==========
//
// SYNOPSIS
// Creates a point explosion that can be modified.
//
//
global proc dynFuncExplosion()
{
// First delete anything that might be left over
// from a previous test.
//
file -f -new;
currentTime -e 1;

// Display information to the user about what to expect from this
// subtest and give some time for the user to read this information.
//
print( "\nBOOM!\n" );
system( "sleep 1" );

// Create emitter to be the source of the particles eminating from
// the explosion. Add an internal variable to the emitter to
// control amplitude attributes of the emitter. Render the particles
// as multi streaks.
//
emitter -type omni -r 100 -mnd 0 -mxd 0 -spd 1 -pos 0 0 0 -n Explosion;
addAttr -sn "ii" -ln "InternalIntensity" -dv 5 -min 0
-max 100 Explosion;
particle -name ExplosionParticle;
connectDynamic -em Explosion ExplosionParticle;
setAttr ExplosionParticleShape.particleRenderType 1; // MultiStreak

// Link some renderable attributes to the particles.
//
addAttr -ln colorAccum -dv true ExplosionParticleShape;
addAttr -ln lineWidth -dv 1.0 ExplosionParticleShape;
addAttr -ln multiCount -dv 10.0 ExplosionParticleShape;
addAttr -ln multiRadius -dv 0 ExplosionParticleShape;
addAttr -ln normalDir -dv 2.0 ExplosionParticleShape;
addAttr -ln tailFade -dv 0 ExplosionParticleShape;
addAttr -ln tailSize -dv 3 ExplosionParticleShape;
addAttr -ln useLighting -dv false ExplosionParticleShape;

// Create some user-modifiable attributes to modify the
// explosion.
//
select -replace "Explosion";
addAttr -sn "st" -ln "Start" -dv 10 -min 0 -max 100 Explosion;
addAttr -sn "du" -ln "Duration" -dv 20 -min 0 -max 200 Explosion;
addAttr -sn "in" -ln "Intensity" -dv 10 -min 0 -max 100 Explosion;
addAttr -sn "fu" -ln "Fullness" -dv 10 -min 1 -max 100 Explosion;
addAttr -sn "po" -ln "Power" -dv 10 -min 0 -max 100 Explosion;

// Create the time the explosion has been alive for
// and the fraction of the full explosion for that time.
// Make the explosion intensity a curve instead of
// linear interpolation for the explosion fraction.
// BEWARE of MAGIC NUMBERS!!!!
//
expression -ae true -s " \
Explosion.rate = Explosion.Fullness * 40 * \
Explosion.InternalIntensity; \
ExplosionParticleShape.multiRadius = \
Explosion.Fullness * Explosion.Intensity * 0.005; \
Explosion.speed = Explosion.InternalIntensity \
* Explosion.Power / 10.0; ";

expression -ae true -s " \
if (frame >= Explosion.Start \
&& frame <= Explosion.Start + Explosion.Duration) \
{ \
float $ExplosionLife = frame - Explosion.Start; \
float $ExplosionFraction = 1 - (abs($ExplosionLife - \
Explosion.Duration/2) / (Explosion.Duration/2)); \
Explosion.InternalIntensity = Explosion.Intensity * \
pow($ExplosionFraction, \
121 / pow(Explosion.Power + 1, 2)); \
} \
else \
{ \
Explosion.InternalIntensity = 0; \
}; " -o Explosion;

// Set up the playback options.
//
float $frames = 70;
playbackOptions -min 1 -max $frames -loop once;

// Time how long it takes to play the scene and then determine the
// playback frame rate. Make sure when getting the frame rate
// that no values are divided by zero.
//
float $startTime = `timerX`;
play -wait;
float $elapsed = `timerX -st $startTime`;
float $fps = ($elapsed == 0.0 ? 0.0 : $frames/$elapsed);

// Print the frames per second (fps) of the subtest in the form X.X.
//
print("dynFuncExplosion: Done. (");
print((int)($fps * 10)/10.0 + " fps)\n");

} // dynFuncExplosion //

//SCRIPT ENDS HERE


Israel "Izzy" Long
Motion and Title Design for Broadcast-Film-DS
izzylong.com
# 5 25-11-2002 , 02:02 AM
ragecgi's Avatar
Registered User
Join Date: Sep 2002
Location: Minnesota, USA
Posts: 3,709
Just a quick note, I'm in the process of doing 2 more EXPLOSION and compositing video tutorials for the VIP section.

PART 1 should be available in a week or 2user added image

See you in the VIP members area!


Israel "Izzy" Long
Motion and Title Design for Broadcast-Film-DS
izzylong.com
Posting Rules Forum Rules
You may not post new threads | You may not post replies | You may not post attachments | You may not edit your posts | BB code is On | Smilies are On | [IMG] code is On | HTML code is Off

Similar Threads