Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Shuriken, the new particle system

Discussion in 'Developer Preview Archive' started by Artimese, Dec 25, 2011.

?

How is the new system?

  1. Its great as it is, nothing needs to be changed.

    195 vote(s)
    56.0%
  2. Its too complicated to use, it must be simplified!

    108 vote(s)
    31.0%
  3. Its too hard to learn, I will not use this new system.

    45 vote(s)
    12.9%
  1. jrdata2k

    jrdata2k

    Joined:
    Oct 6, 2008
    Posts:
    27
    ^^ even simpler and now that I think about it, it would make much more sense if the particleSystem.GetParticles() method just returned a correctly size array... we've got access to the array length and don't need it specially sent back. In this case a property would be more appropriate though I guess, internally you would obviously do your getter/setter functions, but this would make much more sense. Is there a reason why this wasn't like this to begin with?
     
  2. jrdata2k

    jrdata2k

    Joined:
    Oct 6, 2008
    Posts:
    27
    After digging below the surface on the Shuriken system, there's a lot there that I like, but overall I'm finding it really quite frustrating to work with. The force controls are simple at best, every time I try and get a particular behaviour I can't. I'm finding that I have to program my own and turn off any force related modules and zero out related properties. There's no 'delay before loop', only the initial delay property. It really feels like the whole things is suffering because of the integrated approach. Emitters Force modifiers would be better made more modular, or having the ability to create your own modules (at least in code) would be great. Look to LightWave's particle and forces modular setup for inspiration.

    On the plus side I really like the new curve over time input and that a lot of properties in the curves are based on 0 to 1 modifiers. I'm finding that color and size based modules are the most useful and biggest improvement over the previous system. Is there a documented road map for Shuriken anywhere?
     
  3. Bluestrike

    Bluestrike

    Joined:
    Sep 26, 2009
    Posts:
    256
    Hmm I don't see the autodestruct boolean related to re-use of particle systems so the reasoning why its left out makes no sense, to re-use the particle system we can simply turn autodestruct off and call it again ...
    I love the autodestruct for instantiated effects on random positions like player position etc.
    now we have to write an extra script for it.
    Its not much work to create a script with a timer and make it destroy itself after a inspector editable value, but it takes some tweaking every time to find the correct value.
    But I don't get why to remove this functionality in the new particle system at all as it was adding extra value, not limiting anything.
     
  4. sama-van

    sama-van

    Joined:
    Jun 2, 2009
    Posts:
    1,734
  5. LucidMovement

    LucidMovement

    Joined:
    Jun 11, 2009
    Posts:
    14
    Hi! We are running into some fairly serious slow down issues with Shuriken on the iPad2/3. As previously mentioned, it is all CPU side. I was curious, are you using lookup tables for the curves or computing them on the fly? Also, is the dynamic batching of Shuriken effects done in the same way that the dynamic batching in the rest of unity is done? What I understand of that system is that all the vert calcs are done on the CPU. If this is the case, is it possible for us to A) swap to lookup tables if they are not already used and B) Disable dynamic batching for Shuiken? The CPU overhead is really killing us and having different effects systems for the different platforms is less than desirable on the content creation end.
     
  6. Django

    Django

    Joined:
    Nov 25, 2008
    Posts:
    120
    Hey Lucid,

    There is no dynamic batching between emitters happening so that can't be the cause because that feature is not in yet. I guess you are referring to the batching of particles coming from the same emitter then ? If that was turned off wouldn't that give you one drawcall per particle ? That wouldn't be very useful I think.

    Anyways, I'm just wondering if the problem you are encountering is not something else that would cause the CPU overhead. Have you tried disabling everything else and just having the particles effect on screen and then adding things slowly in to see how much impact it had, or doing the same but adding the particles at the end.

    When does the overhead/slowdown happen ? What else is going on when there is a slowdown ? Does it always happen in the same spots ? Have you tried just lowering the number of particles to see how much that had an impact on the CPU ?

    Do you have a demo project or scene you can send the guys at UT ? That would be the best thing to do as it would be helpful for them to figure out what the issue is.
     
    Last edited: May 2, 2012
  7. StevieMac

    StevieMac

    Joined:
    Apr 12, 2012
    Posts:
    8
    Can someone shed some light on this? Or point me in the right direction?

    Anyone found a way to move the pivot of each particle to it's base? Is this even possible yet? I just need a sub emitter that is a splash effect to emit on the surface NOT below the collision surface.

    Thanks for the help
     
  8. superpig

    superpig

    Drink more water! Unity Technologies

    Joined:
    Jan 16, 2011
    Posts:
    4,649
    I think I can teach my artists not to type 0 into the scale field, or to hit Undo if they accidentally do so. Please don't write this off as an option just because it can be misused in such an easily avoidable way. All that will happen is that I, or someone on the asset store, will have to implement it ourselves.

    (If you're writing it off because you want to focus on other things, like expanding the collision support, then fair enough. Just don't let it be for this reason).
     
  9. DanteFDV

    DanteFDV

    Joined:
    Mar 28, 2011
    Posts:
    10
    Hey guys!
    Sorry if this has been asked before, but I couldn't find anything about it anywhere.
    The problem i'm facing is that whenever I change the Render Mode from Billboard to Mesh and choose a custom mesh, the particle system disables the Texture Sheet Animation.

    Does anyone have this issue as well? Is it by design?

    Thanks for the help
     
  10. cod

    cod

    Joined:
    Nov 26, 2011
    Posts:
    267
    It's a really professional particle editor, much better the old on

    BUT

    It's a crap in terms of collision -.-
     
  11. Patapouffe

    Patapouffe

    Joined:
    Apr 3, 2010
    Posts:
    88
    I tried that and I do not have this issue. What version of Unity and OS are you using ?
     
  12. DanteFDV

    DanteFDV

    Joined:
    Mar 28, 2011
    Posts:
    10
    Sorry for the delay, I am using Unity 3.5.1f2 pro, windows 7
    I've tried with many different meshes and none of them animated the UV as billboards do
     
  13. WBDN

    WBDN

    Joined:
    Dec 23, 2011
    Posts:
    109
    Code doesn't actually animate UVs for meshes. Is this a desirable feature?
     
  14. DanteFDV

    DanteFDV

    Joined:
    Mar 28, 2011
    Posts:
    10
    yeah. it would be extremely helpful to create complete animated particles while saving a lot of unnecessary transparency overdraw
     
  15. WBDN

    WBDN

    Joined:
    Dec 23, 2011
    Posts:
    109
    How would animating UVs save overdraw?
    Please elaborate.
     
  16. DanteFDV

    DanteFDV

    Joined:
    Mar 28, 2011
    Posts:
    10
    Sorry about that, what I meant is:
    The default Billboard option creates a square plane, the particle texture may not necessarily occupy all that space(for instance if my texture is a triangle or a circle). By using custom meshes with UV animation, we can have the same result as the billboards, but saving this extra border space.
    I am attaching an image with the overlap of all the frames of my uv animation. The green area is the unused transparency that could be "cut off" using a mesh instead of the square billboard.
    $unusedAlpha.jpg
    I know I could have used a bigger area of the image., but in any case, the borders would still be fully transparent
     
  17. WBDN

    WBDN

    Joined:
    Dec 23, 2011
    Posts:
    109
    Neat. I'll add it as a feature request.
     
  18. MWMusker

    MWMusker

    Joined:
    Apr 29, 2011
    Posts:
    45
    I like Shuriken a lot, but there seems to be a problem with effects and high velocity gameobjects.



    I haven't been using Unity for long so I don't know if this is a long standing problem, but its rather irritating to have my emitters lag behind objects they're supposed to be emitting from.
     
  19. WBDN

    WBDN

    Joined:
    Dec 23, 2011
    Posts:
    109
    Please file a bug report.
     
  20. MWMusker

    MWMusker

    Joined:
    Apr 29, 2011
    Posts:
    45
    Will do.
     
  21. lostmercenary

    lostmercenary

    Joined:
    May 18, 2011
    Posts:
    2
    I am a tech artist, and would really like to have script access to the particle system's modules. For example, I need a database to scale the particle system. It would be useful to be able to get to Shape > Radius.

    I like Shuriken, but it will not be super useful to me if I can't get to it code side. :/
     
    noio likes this.
  22. DanteFDV

    DanteFDV

    Joined:
    Mar 28, 2011
    Posts:
    10
    You mean something more than accessing the modules and parameters using GetComponent?
     
  23. lostmercenary

    lostmercenary

    Joined:
    May 18, 2011
    Posts:
    2
    I mean getting to other parts of the new particle system. Such as Emission, Shape, Velocity over lifetime, Collision, and etc...
     
    noio likes this.
  24. shadowsaint

    shadowsaint

    Joined:
    Aug 30, 2010
    Posts:
    4
    Ignore my comment. I found the Particle Effect Menu in pro.
     
    Last edited: May 14, 2012
  25. ThomHurks

    ThomHurks

    Joined:
    Jul 27, 2010
    Posts:
    22
    I have a particle system that is the subemitter of another particle. The effect is that a couple of flames shoot out of an explosion and that the flames then emit some flares/sparks. When I use simulate in the editor, the particle effect works perfectly, but when I use simulate on the particle while in play mode, the subemitter is only emitted 30% of the time! Strange thing is also that when I move the particle to not fire on birth of the parent particle, but on death, it always plays correctly. This would imply that there's an issue with subemitters on birth, but I have other subemitters on birth that work as they should.

    Does anyone have an idea what the issue here could be? I have looked at all particle system settings and they appear correct and as I said it *always* shows correctly in editor mode. Seems to be a bug in Unity!
     
  26. StevieMac

    StevieMac

    Joined:
    Apr 12, 2012
    Posts:
    8
    Anyone got a simple way to flip an Animated Particle Texture? I've seen a few tuts on scripting shaders etc but surely there's a way just to flip it?
    Thanks guys you've been really helpful.
     
  27. Smartie7

    Smartie7

    Joined:
    May 28, 2012
    Posts:
    44
    Hi

    I'm new to Unity and I have a problem with the particle system.

    I'm watching 2d Space Shooter tutorial form 3d Buzz.com, they use old particle system in unity in order to create an explosion effect.

    I'm working with Unity 3.5 , as you know the particle system has changed completely.

    Can anyone help me to create a simple explosion effect with the new system ?
    How can I have the one shot effect ?!

    Thanks in advance
     
  28. Majestic

    Majestic

    Joined:
    Jan 29, 2011
    Posts:
    11
    Check Component -> Effects -> Legacy Particles for "old" particle system.
     
  29. Smartie7

    Smartie7

    Joined:
    May 28, 2012
    Posts:
    44
    Thanks a lot.

    But there is a problem !
    When I use this "old" system, instead of particles, I get some purple boxes !

    It seems that it needs a material to work properly!!

    $11.JPG
     
    Last edited: May 28, 2012
  30. Ricordi

    Ricordi

    Joined:
    May 28, 2012
    Posts:
    2
    Hello. XeviaN360 and JTown have both asked this question--and my apologies if I missed the response--but how does one programmatically get access to the "Max Particles" parameter? Like XeviaN360, I need to scale this parameter at run time.

    Somewhat related, the particleCount accessor during Start() only returns 0. How can I get access to this value at start time? So far I've only been able to get the correct result from it during Update, LastUpdate, etc.

    Thanks much. With more robust scripting capabilities, Shuriken will be an exceptional tool.
     
  31. cecarlsen

    cecarlsen

    Joined:
    Jun 30, 2006
    Posts:
    858
    Echoing XeviaN360 excellent question ...

    Why oh WHY is the maxParticles property not exposed through scripting? I don't see any way of creating a particle system through scripting and generating 10000 particles on the fly. That was totally possible with the old particle system.

    Carl Emil
     
  32. 237641

    237641

    Joined:
    Jul 30, 2012
    Posts:
    2
    What is the shuriken particle system?
     
  33. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
  34. Vincent Pride

    Vincent Pride

    Joined:
    Oct 6, 2010
    Posts:
    39
    They've added collision with various colliders in 4.0, not only with planes
     
  35. lilymontoute

    lilymontoute

    Joined:
    Feb 8, 2011
    Posts:
    1,181
    This is my hands-down favorite feature in 4.0. It seems to not be out yet in the current beta, though.

    I have a few questions:

    Will Shuriken particles be able to collide with dynamic colliders?

    Will collision events be supported with Shuriken particles? I would really love this feature, especially if it could be toggled on and off for performance reasons (similar to the legacy system).

    If you need to manually add mesh colliders (like planes currently), can we get a way to modify this list at runtime?
     
    Last edited: Aug 23, 2012
  36. lyons1005

    lyons1005

    Joined:
    Nov 3, 2010
    Posts:
    10
    This may be posted somewhere else, but I was wondering if there is a list of new features or changes to the Shuriken system in Unity v4? Right now I have 2 requests of features that were in the previous system that didn't make it into the Shuriken system.

    1- It would be very useful if you could scale the mesh you are emitting from, right now I can't get that to work. Previously you could set the scale of the particle system's transform to (0.5,0.5,0.5) and the mesh emitter would be scaled to half of it's size. The work around is to export multiple copies of the mesh from Maya/Max at different scales, but this seems wasteful.

    2- I would like to be able emit "Systematicly" when emitting from a mesh. Described in the old manual as:
    Also it would be cool if the cone emitter had a "Emit From Edge" option similar to the sphere/hemi-sphere's option to "Emit From Shell"

    Are any of these features in the current version of Unity(v3.5.3) and I am overlooking them, or have people found other work arounds?
    Thanks in advance.
     
  37. db82

    db82

    Joined:
    Mar 14, 2012
    Posts:
    24
    I'm using one Shuriken particle system for multiple flame throwers, moving the particle system to each flame thrower when needed. I'm using the cone shape emitter.

    However I have a problem with rotation. Is there a way to set the angle the cone should emit towards without affecting existing particles? Without this there is no way to have 2 flame throwers firing at the same time at different angles!

    Thanks for any help.
     
  38. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    There is a global/local worldspace setting for the particles this might help.
     
  39. db82

    db82

    Joined:
    Mar 14, 2012
    Posts:
    24
    As far as I can work out you need to have the worldspace set to World to enable you to move the particle system game object to different positions before emitting. This is what I am doing, but rotating the gameobject causes all particles to rotate.
     
  40. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    That can't be right as then you would not be able to do fireball smoke trails.
     
  41. Spidyy

    Spidyy

    Joined:
    Mar 6, 2011
    Posts:
    184
    Great system but lake some options, for 2D effect.

    When choosing the emittor, it would be nice to be able to restraint the direction to 1 or 2 axis.

    For example, I want to do a circular deflagration with particles in 2D. I use Orthographic camera. I will never be able to do it with the current system, as particles are emitted on Z axis, thus resulting to particle visibly slower that other, when I want all of them to have the same speed to do my circle.

    Convert the Start speed constant to a speed vector, or add a multiplier to attenuate the speed on the different axis.

    A good particle system I realy liked is Trapcode Particular, for Adobe After Effect : Trapcode Particular
    Of course, it is for movie editing and visual effects, but in the basic settings, they allow to constraint the emission over the 3 axis, to constraint the randomness of the values through a simple multiplier, etc.
     
  42. unity_sg

    unity_sg

    Joined:
    Sep 14, 2010
    Posts:
    95
    Will the particle system in Unity 4.0 reacts with dynamics colliders ?
     
  43. ChaseRLewis73003

    ChaseRLewis73003

    Joined:
    Apr 23, 2012
    Posts:
    85
    I have some mixed feelings about the particle emitter. Better but a few critical misses imo.

    1. UV setting of billboards is a must imo. It let's us use the many 2D platforms available on the asset store to bind the particles to sprite sheets. I'd really like to be able to make a custom inspector that will let my 2D tools work seamlessly with the particle system.


    2. Batching. Is there any reason that each particle system takes 1 draw call even if they have identical shading / materials? Batching doesn't need to be dynamic. My fire effect takes 2 -3 particle systems to look good. There isn't a reason I couldn't put all the images on a 512x512 or smaller texture. So it should take 1 call.

    3. Axis limitations on particle velocity is an absolute must. I understand they get emitted from what seems to be the normals of the mesh but having to make a custom mesh pro grammatically for different effects just to get my particles to go the right way is a bit annoying. Also default Circle option with the particles emitting radially or up from the face from the perimeter would be really nice as a lot of effects want that (Light wells, tornados, etc.)

    4. I do this currently with particle systems but on iOS / Android they are considerably more expensive then a single animated sprite. Currently what I do is I render the particle system to frame textures so that I can turn them into sprite animations using render textures. As long as the system doesn't need dynamic collision / animation there is no reason to use a particle system over a bill-boarded sprite animation in 2D other than better randomness. Some native support for this would be cool, but this is a feature request where as the last couple are more complaints about what the system is missing.
     
    Last edited: Sep 14, 2012
  44. EhsanNeo

    EhsanNeo

    Joined:
    Aug 22, 2012
    Posts:
    17
    I have a question .

    In UDK their is a rendering mode where I can set the rendering type to square or a rectangle .

    so that my particle be rendered some how stretched .

    I tried to do same thing with shuriken by setting the rendering in stretched billboard but did not work .

    any body know what can I do ?
     
  45. MWMusker

    MWMusker

    Joined:
    Apr 29, 2011
    Posts:
    45
    Submitted the report on that issue a long time ago and shuriken systems are still lagging behind their parent objects at very high velocities. This is a bit of an ongoing headache for our project, where we use a particle system for the backblast of a jetpack moving at high speeds. Any progress on this issue?
     
  46. EhsanNeo

    EhsanNeo

    Joined:
    Aug 22, 2012
    Posts:
    17
    Here is the problem I have with stretched billboard rendering type.

    I realized that the pivot point is not at the center of the rectangle while in the normal billboard it's in the center of the square.

    When I try to rotate around I have this problem. Any suggestion ?


    $Stretched Billbourd Bug.JPG
     
  47. tallyho_stu

    tallyho_stu

    Joined:
    May 10, 2010
    Posts:
    38
    Hi William,
    Just wondering if this was ever 'fixed'? I'm using the Cartoon FX particle plugin at the moment and am getting exactly this problem i.e. long gas particle effect with emitter at one end ... when emitter leaves the camera frustrum the particle is culled even though the gas billboards should still be in view. I've tried adding the particle as a child to a larger bounding volume (a trigger in this case) in the hope that the culling would apply to the parent object but this hasn't worked.
    Thanks for any help.