SimplyMaya Forums

Welcome to the forum, feel free to ask questions here.


SM Forums / Maya Questions / Programming / Particle replacing without instancing

Programming MEL Scripts, Expressions & Programming Related Topics

Join the conversation. Reply to post
 
Thread Tools
24-06-2003, 09:27 AM   #1
kbrown
Moderator
 
kbrown's Avatar
 
Join Date: Sep 2002
Location: London, UK
Posts: 3,198
Particle replacing without instancing
Hi,

Does anyone know how to replace particles with some geometry without instancing. I'd like to have each replaced particle as a separate duplicate of an object which could then have their own dynamic (soft-body) secondary movement. I think this is not possible with Maya's particle instancer.
__________________
Kari
- My Website
- My IMDB

Do a lot, Fail a lot and Learn a lot!
  Reply with quote
24-06-2003, 03:45 PM   #2
ragecgi
Registered User
 
ragecgi's Avatar
 
Join Date: Sep 2002
Location: Minnesota, USA
Posts: 3,709
You might have to do it via mel m8...

Sorry, not in front of Maya right now....

Danny in the mel section might have an idea or two for you regarding that.
__________________
Israel "Izzy" Long
Motion and Title Design for Broadcast-Film-DS
izzylong.com
  Reply with quote
24-06-2003, 05:16 PM   #3
kbrown
Moderator
 
kbrown's Avatar
 
Join Date: Sep 2002
Location: London, UK
Posts: 3,198
I already tried to do it with a per particle expression but I encountered a problem. I was thinking of duplicating the geometry in a creation expression, storing the duplicate's name in a per particle custom attribute and then deleting the duplicate when the particle dies. Then it would have been just a matter of moving the geometry in a runtime expression.

The problem is that you can only (?) have per particle custom attributes of float type meaning I can't store the name

Any ideas?

*edit*
Maybe I could rename every duplicate to something that includes the particle's Id in it's name but it wouldn't be fool proof...
__________________
Kari
- My Website
- My IMDB

Do a lot, Fail a lot and Learn a lot!

Last edited by kbrown; 24-06-2003 at 05:21 PM.
  Reply with quote
25-06-2003, 12:46 PM   #4
kbrown
Moderator
 
kbrown's Avatar
 
Join Date: Sep 2002
Location: London, UK
Posts: 3,198
Moved. Let's try this here
__________________
Kari
- My Website
- My IMDB

Do a lot, Fail a lot and Learn a lot!
  Reply with quote
25-06-2003, 01:13 PM   #5
mtmckinley
The Maya Mountain
 
mtmckinley's Avatar
 
Join Date: Aug 2002
Location: Seattle, WA
Posts: 8,245
I have no idea.
__________________
-Mike
www.mtmckinley.net
The Maya Toolbelt
  Reply with quote
25-06-2003, 06:07 PM   #6
kbrown
Moderator
 
kbrown's Avatar
 
Join Date: Sep 2002
Location: London, UK
Posts: 3,198
Well, I got it working with an ugly hack :p If someone can figure out a more sophisticated method I'd be really appreciated.

Here's what I did:
For the per particle creation expression I wrote:
Code:
string $sDupName = ("dup" + particle1Shape.particleId);
string $sNewObj[] = `duplicate nurbsSphere1`;
rename $sNewObj[0] $sDupName;
In the per particle runtime expression I wrote:
Code:
string $sDupName = ("dup" + particle1Shape.particleId);
if(particle1Shape.age >= particle1Shape.lifespan)
	delete $sDupName;
else
{
	vector $vPos = particle1Shape.position;
	setAttr ($sDupName + ".tx") ($vPos.x);
	setAttr ($sDupName + ".ty") ($vPos.y);
	setAttr ($sDupName + ".tz") ($vPos.z);
}
Finally I wrote an expression that deletes all the duplicates when the animation is at start:
Code:
if(frame == 0)
{
	if(`objExists "dup*"`)
		delete "dup*";
}
As I said earlier, this is not a fool proof method because I'm relying on object names. Works for the purpose I need right now though...
__________________
Kari
- My Website
- My IMDB

Do a lot, Fail a lot and Learn a lot!
  Reply with quote
25-06-2003, 06:36 PM   #7
ragecgi
Registered User
 
ragecgi's Avatar
 
Join Date: Sep 2002
Location: Minnesota, USA
Posts: 3,709
Great hack m8!

I'll keep looking for another way for you tho
__________________
Israel "Izzy" Long
Motion and Title Design for Broadcast-Film-DS
izzylong.com
  Reply with quote
05-11-2003, 07:15 PM   #8
Dann
Registered User
 
Dann's Avatar
 
Join Date: Feb 2003
Location: Los Angeles
Posts: 695
Quick question... I'm trying to use this trick, but it doesn't seem to use the scale and rotational information that's in my particle system. How could I adapt the following so that the duplicate gets made with the scale and rotational information?

particleShape1.scalePP = rand(.08,.4);
particleShape1.rotPP = rand(0,360);
string $sDupName = ("dup" + particleShape1.particleId);
string $sNewObj[] = `duplicate target_plane`;
rename $sNewObj[0] $sDupName;

Thanks.

figured it out. I should stop posting, because half the time I figure it out before people get a chance to reply.

Last edited by Dann; 05-11-2003 at 08:02 PM.
  Reply with quote
Reply

Thread Tools


Similar Threads
Thread Thread Starter Forum Replies Last Post
RenderMan Archives and Particle Instancing PixalZA Lighting & Rendering 0 28-04-2015 05:30 PM
Particle instancing not working (Realistic outdoors) psyked Simply Maya Tutorials 1 09-10-2013 08:45 AM
Particle instancing of dynamic object? roxs Dynamics & Special Effects 2 20-10-2011 05:57 AM
particle instancing pbman Maya Basics & Newbie Lounge 1 01-09-2006 09:52 AM
Texture or material on particles? dax3d Dynamics & Special Effects 6 24-04-2003 12:07 AM