PDA

View Full Version : 2011 nParticle fluid emit radiusPP bug?


destruct007
04-24-2010, 04:41 PM
maya 2011. try using nParticles to emit fluids, break the connection on the nParticles and write an expression, like radiusPP = rand(2); Set the fluid emitter to use radiusPP.
play it back and there will be a pop (like frame 22 or 27 on another test) when the fluid emitter on the particle decides to use the radiusPP to emit from. This doesn't seem to be a problem with regular particles.
Can anyone else confirm this is a bug or is it a setting somewhere?

Aikiman
04-24-2010, 11:04 PM
Someone else was having that problem too but maintaining the ramp on lifespan. I checked it out on my mac and there are no emission probs my end., it works a treast. It could be a PC issue but I will give it another go using expressions when I get a chance.

Aikiman
04-25-2010, 07:31 AM
Dude, I am getting a popping with emission say every 4 frame, even using replace method and motion streak, and then it stops around frame 30-40!?

destruct007
04-26-2010, 05:59 PM
yeah it's a little jacked. Man nParticles have a lot of bugs to work out. I keep finding issues with them then switch back to old particles. Stinks b/c there are so many nicer things about nParticles.

Aikiman
04-26-2010, 09:09 PM
I wanna know what the beta testers were doing instead of using Maya?

hkspowers
04-27-2010, 08:21 PM
We are the beta testers. lol

Phlok
04-30-2010, 05:37 PM
I am having the same troubles with my nParticles/ emission setup as well as with an "Auto Resize" container using surface emission from a common nurbs torus. It seems like the emission rapidly starts after ~20 frames.

destruct007
04-30-2010, 07:53 PM
I'm working on a solution with normal particles to get all the control one would want in particle emission. Test running at home right now... I'll let you know. But yeah nParticles dot dot dot

Bonedaddy
05-01-2010, 05:51 PM
I wanna know what the beta testers were doing instead of using Maya?

Trying to get work done...? :)

Aikiman
05-02-2010, 09:50 AM
Trying to get work done...? :)
Speaking from personal xp? ;) Im just surprised these things weren't picked up before the release.

viki164
05-02-2010, 07:06 PM
guys I think I m having a little luck here, I dont get poppig with nparticle fluid emission.
I just addded some value in my creation rule like :

nParticleShape1.fluidEmitter1RatePP = nParticleShape1.radiusPP;
nParticleShape1.radiusPP= rand(0.2,0.8);

fluid emit based on radiusPP works without any pop, So I think It works fine for me :)
I am attaching a scene file here. I could also add little emission drop off while emitting so the particles emits in more niceer way.

I wonder how do I set fluid color or connect with my particle rgbPP data. Do I need to do it in a old way with setAttr node in particle runtime expression?
or is there any dynamic connection like emit per-point radius (radiusPP).

Vik

Aikiman
05-02-2010, 11:35 PM
@ Vik, I had a look at your scene and Im still not entirely convinced the pulsing has gone as it tends to disappear after a few seconds anyway. I recreated it again from scratch and my pulsing is back but that is without adding the Per Point emission rate as well, maybe that helps with it.

In relation to the rgbPP > fluid color it appears that this can only be achieved through setAttrs and voxel calls ATM. I tried all sorts of connection through connection editor and basic code types but no luck there. Wouldnt it be a nice to have this as a 'one click' option also just like radiusPP and per point emission is?! I think that could easily be written in for a service pack release?!

destruct007
05-03-2010, 05:24 AM
ok after messing with this for a while I figured it out. Its completely broken. I never did this until just now. :banghead: emit radiusPP doesn't work at all. See for yourself this example file is as clear as you can make it. Change the radius on the particle... nothing. Make sure the "use RadiusPP" is checked on the fluid emitter on the particle. check. tried it with nParticles. nope. It just doesn't work, but it's hard to tell that b/c you make a small change and possibly change other things and it looks different, emission might be different and keep tweaking. Finally I was like WTH?!? made this test and fail. The good news is now we know. Cool. Use radius on the fluid, and make more particle shapes for randomness ok not as nice but fine if thats the way it has to be done...

I don't think so, but maybe I'm doing it wrong... Duncan? Any help? :wip:

KidderD
05-03-2010, 04:55 PM
Does this work for you?

KidderD
05-03-2010, 04:56 PM
ahem technical difficulties.

destruct007
05-03-2010, 05:55 PM
I can't really tell from that picture, it kinda looks like it's working. Are you saying it does or doesn't work for you? The zip is corrupt for me so I couldn't try. but that's great. Did the file I posted just work for you?

just tested a fresh scene on linux, same issue (maybe the issue is I'm doing it wrong) but crap whats the deal?

KidderD
05-03-2010, 06:08 PM
My bad, rename .zip to .ace.

Also, I wasn't able to get your file working, and then I thought it was classic particles didn't work, but from a clean scene, they work as well.

viki164
05-03-2010, 06:47 PM
for me it works only when I use per point emission in conjuction with radius PP.
I couldn't figure out whats wrong with dave's file but I made a clean scene from scratch & it works.
I often find it strange but it doesn't surprise me at all when the other guy says " dude I cant find it working ur scene file" is this how it works? " ..dont know how to react here :rolleyes: .

I tried doing same treatment on dave`s file but it doesnt work. I also notice some warnings during playback which I might think it has something to do with fluid emission but I am not sure Anway I am attaching my test file here :

destruct007
05-03-2010, 07:55 PM
Thanks guys
well it obviously works. but I can't see what I'm doing wrong. I tried it again, added radiusPP before making it a fluid emitter and it worked but then got popping, argh. What the hell.

goshone
05-05-2010, 07:30 PM
Hi Dave

I'm having a similar problem, but noticed that is was working after the original particle emitter (not the fluidEmitter) stopped emitting particles, then BOOM, radiusPP and velocity kicked in. Soooo frustrating. I am going to build a new scene with the hopes that might fix it. Using nParticles, but gonna test with classic particles as well.

g

Duncan
05-07-2010, 01:59 AM
There is a problem we are currently looking at where the connection for fluid emitter ratePP and radiusPP are evaluated at the current frame but the position array from the the internal particle system is a frame behind. As long as the particle count stays the same between frames things are ok, but on frames where the number of particles change there are problems( there is an internal check to see if the array sizes match, if they don't then there is no emission in the case of ratePP and for radiusPP the maxDistance on the fluid emitter is used).

This sounds pretty much like the problem you are hitting. Most of our tests with rate and radiusPP had explosions with a bunch of particles emitted at the start frame, rather than continuously emitting particles which is probably why we missed it.

Duncan

Aikiman
05-07-2010, 02:23 AM
Well thats good to know most of us are not incompetent users then :) Thanks for the heads up Duncan.

destruct007
05-07-2010, 04:22 PM
Thanks Duncan. I'm glad I didn't yet study harder what I might have been doing wrong. Most bugs are annoying but once you know what causes them you learn to work around it and then its mearly a hurdle not a road block. Thanks again!

Duncan
05-07-2010, 11:16 PM
We figured out the cause of this problem. You should be able to work around it for now by connecting the fluid emitter to the particle position as opposed to the cached particle position:

connectAttr -f nParticleShape1.worldPosition fluidEmitter1.ownerPosData;

(just substitute your particle and fluid emitter names)

This also fixes an issue where the particle fluid emission lags 1 frame behind the particle, so you might consider doing this even when you don't care about ratePP or radiusPP. We have not had a chance to fully test this yet, so if the above workaround has any strange side effects please let us know.

Duncan

viki164
05-09-2010, 09:12 AM
It works like a charm, the stamping effect has reduced a lot.
Would love to have more tips on emit rate per point PP.
Thanks much Duncan.

Duncan
05-11-2010, 12:30 AM
If you are still getting any stamping turn on motion streak on the emitter.

Duncan

redpawFX
05-27-2010, 11:16 PM
Here's a little scriptlet to encapsulate this process nicely
I added an emitFluidFromParticle menu entry that does this to fix all the issues related to this post.

global proc EmitFluidFromParticle()
{

//macro for hooking up to particle objects

string $sel[] = `ls -sl`;
//macro for hooking up to particle objects
EmitFluidFromObject;

string $fluidEmitter, $particleShape;

select -cl;

for ($obj in $sel)
{
string $shape[] = `listRelatives -s $obj`;

if (`nodeType $shape[0]` == "fluidShape")
{
string $emitters[] = `listConnections -s true -type "fluidEmitter" $shape[0]`;
$fluidEmitter = $emitters[0];

}
else if (`nodeType $shape[0]` == "nparticle" || `nodeType $shape[0]` == "particle")
{
$particleShape = $shape[0];
}
}

/// add PP attributes
if (!`attributeExists "radiusPP" $particleShape`)
{
addAttr -ln radiusPP -dt doubleArray $particleShape;
addAttr -ln radiusPP0 -dt doubleArray $particleShape;
print ("Added radiusPP to "+$particleShape);
}
if (!`attributeExists "ratePP" $particleShape`)
{
addAttr -ln ratePP -dt doubleArray $particleShape;
addAttr -ln ratePP0 -dt doubleArray $particleShape;
print ("Added ratePP to "+$particleShape);
}

// make position connection
connectAttr -f ($particleShape+".worldPosition") ($fluidEmitter+".ownerPosData");

// unlock rate PP and make connection
// unlock and make radiusPP connection

setAttr -l false ($fluidEmitter+".useParticleRadius");
setAttr -l false ($fluidEmitter+".useRatePP");
connectAttr -f ($particleShape+".ratePP") ($fluidEmitter+".ratePP");
connectAttr -f ($particleShape+".radiusPP") ($fluidEmitter+".radiusPP");

// turn off ratePP and radiusPP switches..
setAttr ($fluidEmitter+".useRatePP") 0;
setAttr ($fluidEmitter+".useParticleRadius") 0;

warning "Particle object has been hooked up as a fluid emitter!";

}

enjoy!
-redpaw

CGTalk Moderation
05-27-2010, 11:16 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.