Unity Community |

Its great as it is, nothing needs to be changed.
Its too complicated to use, it must be simplified!
Its too hard to learn, I will not use this new system.
I'm coming in late to the party (I just installed v3.5 last nite)...
I got sort of a great-ish starfield particle system going for my game, and now I'm at the point where I'm trying to control the emissions though scripting.
I'm having probs finding what's exposed and how to access the new system from scripts - can someone kindly point me to what scripting docs are available for the new particle system?
One link I clicked sent me to a missing page (local docs)??
I see from quickly reading and trying to catch up, not everything is exposed (yet) - I'm hoping what I need (Start Speed, Emission Rate etc.,) are exposed??
Any pointers to the scripting docs is appreciated!
-Will
PS - To answer the poll, I really like the new system, however I think it can stand for a bit more polish - time along with a couple of updates will make this a hella great system within Unity!
Last edited by WillBellJr; 02-20-2012 at 09:10 PM.
"With THIS!, you could be like GOD!" - Kozer, Blake's 7
Windows 7 (64-bit): 24Gigs / Hex Core 4.0GHz (OC) / Dual NVidia GTX 460 1Gig
WinVista SP1 (32-bit) 4G / Dual Core / NVidia 86xx 256M (Dell XPS 1530 Laptop)
Hi ShinyMark,I have some feature requests. First, some info on our project.
Our game is presented in 2d via an orthographic camera. Depth sorting is of course very important to us, thus I need to be able to control particle systems' depth completely. In most cases this means killing all motion on the depth axis. In the old system, I could easily make the ellipsoid emitter and all velocity/forces ignore the depth axis. This isn't as easy in Shuriken.
I have these requests:
1. Sphere / hemisphere / cone should have 2D equivalents or ways to get that behavior. Circle, half-circle, and 2D cone (angle?). Currently box is the only built-in emitter type that can function in 2D, which is pretty limiting.
2. Ability to constrain "random direction" to two dimensions.
The per-axis curves for most parameters are great once the particles are spawned but I can't get them to emit the way I want.
Could elaborate more on this ? I don't understand, for a 2D orthographic game, why it would matter if the particles went in depth (z axis) since depth does not really matter when using an orthographic camera. If you leave enough room in your depth to place your particles in front or behind objects, it should work without a problem.
Anyways, you can pretty much get the type of control you want by using the module that limits the velocity on any axis on all types of emitters.
You can also turn on random direction and then limit the velocity on the depth axis and it will do what you are asking in #2. Granted the emitters are still 3D so they will have some depth since the particles can be spawned anywhere inside the 3D emitter.
Otherwise if you want no depth at all you can use your own mesh to emit from it. You can easily create a shape that will not emit in depth. Even when choosing to emit randomly, you can still limit velocity on the depth axis of your mesh emitter.
Last edited by Django; 02-20-2012 at 09:58 PM.
@WillBellJrOne link I clicked sent me to a missing page (local docs)??
In case you haven't found them, here are the online scripting docs for Shuriken : http://unity3d.com/support/documenta...cleSystem.html
Last edited by Django; 02-20-2012 at 09:56 PM.
^Thanks, I was looking though the docs - first local then online but kept falling on the page that discusses the GUI part...
-Will
"With THIS!, you could be like GOD!" - Kozer, Blake's 7
Windows 7 (64-bit): 24Gigs / Hex Core 4.0GHz (OC) / Dual NVidia GTX 460 1Gig
WinVista SP1 (32-bit) 4G / Dual Core / NVidia 86xx 256M (Dell XPS 1530 Laptop)
Thanks for the response, Django.
The problem with motion on the depth axis is sorting. The particles can get behind objects that they should be in front of and vice-versa.
Also, emitting in 3D shapes causes some undesirable visual artifacts. For example, if I use the sphere emitter to create a particle system that is "sucking-in" to look like charging energy, the motion of some particles is nearly parallel to the camera's eye vector. With an orthographic camera it makes those particles look like they aren't moving, or at the very least aren't moving at the same speed as the particles moving perpendicular to the eye vector. What I really want in that case is a circle emitter so that all particles are moving perpendicular to the camera eye vector.
You're right, I can make a bunch of emitter meshes to get the behavior I want in different situations. It's definitely less convenient but for the short term I suppose I'll have to do that.
If you leave enough space in-between your objects (characters, environment etc...) for the particles depth this should not be that much of a problem and you can get the particles to be in front or behind very easily. So if your character is at depth 0 your background could be depth 20. Then if you want to have your effect behind the character but in front of the background you have 20 worth of space in the depth for your particles to move in if needed.
As for the emitter meshes, they are not that convenient for the simple reason that they can't be resized. So if you need to emit using a mesh emitter of a different size, you're stuck with having to export another version of the mesh with a different size... It can really be a trial and error thing to get the size right and it can become time consuming. Fortunately, I read that it will be possible to resize particle systems in a future version which if I'm not wrong should resize the mesh emitter along with it. That will certainly make it a lot more convenient.
I agree that this could certainly be useful in many situations even in 3D so something like a ring shaped emitter would be great. For now, however the best solution is to make it with your own mesh.What I really want in that case is a circle emitter so that all particles are moving perpendicular to the camera eye vector.
Last edited by Django; 02-21-2012 at 12:36 PM. Reason: added some text
True, if we designed our game from the start to have that much space in between depth layers it could work. Unfortunately, we are way past the point of no return on this project due to the amount of assets that have already been created.
Our characters are rigged meshes with numerous layers, with each layer separated by 1 unit on the depth axis. Hence why I want 2-dimensional emit / control on all parameters, to fit within those restrictive guidelines.
And about scaling meshes - that's really unfortunate. I tried that earlier and noticed that but I was hoping it was user error. Having to make multiple circle meshes of varying sizes is an annoyance. I suppose I could duplicate them and use different import scale on the model to make it a bit less painful.
If it's useful for anyone attached to this post are two Maya files with a circle and half-circle for use as 2D emitters. I had to write a little Maya Python script to point the vertex normals in the right direction. That was a little tricky so I figured I'd share these since I took care of that.
If you need to rescale them to fit your needs be sure to freeze their transforms first or they wont be the correct size in Unity.
2d-emitter-shapes.zip
Is there a way to edit the curves (like the velocity over lifetime curves for each axis) with exact values instead of clicking and dragging?
I have just started using Unity and spent a good few days tweaking the legacy particle system for my effect. Then a few days later the new version of Unity was released and I found the new particle system initially quite daunting because I had only just familiarized myself with the legacy system.
Overall though I have found that the new system is significantly better now that I have had a chance to get used to it. The options all seem a lot different, but I do find it easier to get the effect that I want with the newer system.
Where do I find the shuriken demo project? I thought there were some explosion examples, but when I imported the particles package I didn't see any. (I'm not using dev preview - using the released 3.5)
Why is the font size of the new particle system so unreadable small? with the new high resolution screens on the macs they were way to small, I would love to see an option to make them standard unity interface font size!
I love how you can make them interact with the enviroment alot more. i made a blood splatter effect in about 10 mins! its great!
Is there any way to reverse the direction that particles are moved?
For example, I have an effect that I want to start out wide and end narrow, a reverse cone. Also, a sphere that pulls images inward.
William
Graphics Programmer at Unity
Is there a way to apply a force along the starting direction over time?
I don't see any way of doing that. I can't enter a global force as an X/Y/Z value because the direction of each particle is different.
Feature request: add the ability to set the starting rotation of a particle to the angle implied by the starting direction.
For example: I am emitting particles with a lightning bolt texture on them and I want all the billboards to point outward away from the center of the two dimensional emission circle.
Time to answer some questions ! Here we go !
@m. marioIs there a way to edit the curves (like the velocity over lifetime curves for each axis) with exact values instead of clicking and dragging?
Not right now.
@JTownWhere do I find the shuriken demo project? I thought there were some explosion examples, but when I imported the particles package I didn't see any. (I'm not using dev preview - using the released 3.5)
Get it here: http://beta.unity3d.com/3.5-preview/...enExamples.zip
@ShinyMarkIs there a way to apply a force along the starting direction over time?
I don't see any way of doing that. I can't enter a global force as an X/Y/Z value because the direction of each particle is different.
hmmm... Let me know if I don't understand the problem correctly, but the only way I think something like this is possible at the moment, is by bunching up some cube emitters. Rotate them in a way so that you can fake the circle or half circle shapes you are using and then apply different forces one each individually. Kind of tricky workaround to do, but it technically should work.
@ShinyMarkFeature request: add the ability to set the starting rotation of a particle to the angle implied by the starting direction.
For example: I am emitting particles with a lightning bolt texture on them and I want all the billboards to point outward away from the center of the two dimensional emission circle.
The way you explain this is a bit confusing for me. What you want is for the rotation of a particle to be aligned with the normal of the vertex it is emitted from ? That would be a nice feature, I second that. For now, you can use the same idea I proposed above with the cubes it should work fine for the moment.
Another solution depends on how your texture looks like, so might not work for some effects but works great with some others. It consist in using a stretched billboard and playing with Speed and Length Scale.
A third solution would be to have your bolt oriented in the texture itself. That works great but only if your particles stay in place and do not move away from the emitter (you'd also have to use a cube emitter with size 0). If your particles have to move away from the emitter then this technique wont work unless you animate the bolt moving away in a texture but you'll be limited by texture space. Anyways, with this technique you should be able to have different rotations for the particles but its all a trick. If the bolt is animated, you can create the illusion that the bolts are coming out of a circle emitter.
In the end, it really depends on the effect you want to achieve.
Oh and by the way thanks for sharing those emitters ! ^_^
Last edited by Django; 02-28-2012 at 10:21 PM. Reason: fixed mistake
Yeah, that would probably work but would be tiresome to setup. I'll give it a try.@ShinyMark
hmmm... Let me know if I don't understand the problem correctly, but the only way I think something like this is possible at the moment, is by bunching up some cube emitters. Rotate them in a way so that you can fake the circle or half circle shapes you are using and then apply different forces one each individually. Kind of tricky workaround to do, but it technically should work.
Basically what I want is a single force value that can be applied along the initial direction of motion, either positive or negative. And of course controlled by a curve as well.
That's exactly what I want. Let me show the issue visually.@ShinyMark
The way you explain this is a bit confusing for me. What you want is for the rotation of a particle to be aligned with the normal of the vertex it is emitted from ? That would be a nice feature, I second that. For now, you can use the same idea I proposed above with the cubes it should work fine for the moment.
Imagine this is my mesh emitter, each red "X" is a vertex with normals pointing away from the center of the circle.
And this is my particle texture.
Here is what you get currently if you spawn a particle at each vertex.
And finally, this is what I actually want.
As you said, if the rotation could be set by the normal then this would be easy.
@ShinyMark
Try using the stretched billboard method. I just did a quick video to show you. There are some limitations but it might be a better workaround then setting up a bunch of cube emitters.
Last edited by Django; 02-29-2012 at 06:07 PM. Reason: fixed video link