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. Artimese

    Artimese

    New Member

    Joined:
    Nov 22, 2009
    Messages:
    794
    I just wanted to create a poll to get input from others' experience with the new particle system shipped with 3.5, Shuriken... And also to help UT to further this add-on.

    Feel free to post suggestions according to what you chose above.
    Last edited: Dec 25, 2011
  2. KHopcraft

    KHopcraft

    Member

    Joined:
    Jun 6, 2009
    Messages:
    3,223
    I don't think it needs to be simpler. I think it just needs documentation/
  3. antenna tree

    antenna tree

    Moderator

    Joined:
    Oct 30, 2005
    Messages:
    5,300
    But has anyone read the documentation yet? ;-)
  4. KHopcraft

    KHopcraft

    Member

    Joined:
    Jun 6, 2009
    Messages:
    3,223
    Lol, I haven't checked if there is any... Is there?
  5. antenna tree

    antenna tree

    Moderator

    Joined:
    Oct 30, 2005
    Messages:
    5,300
    Yes, it's stored on your machine. The internet version of the docs is still 3.4.

    On mac they're here:

    file:///Applications/Unity/Documentation/Manual/Particle%20Systems.html
    file:///Applications/Unity/Documentation/Manual/Particle%20System%20Curve%20Editor.html
    file:///Applications/Unity/Documentation/Manual/Particle%20System%20Color%20Editor.html
    file:///Applications/Unity/Documentation/Manual/Particle%20System%20Modules.html
    file:///Applications/Unity/Documentation/Manual/Particle%20System%20Modules%20Intro.html
  6. KHopcraft

    KHopcraft

    Member

    Joined:
    Jun 6, 2009
    Messages:
    3,223
    Its fantastic. I revoke my first post.
  7. profanicus

    profanicus

    New Member

    Joined:
    Nov 23, 2009
    Messages:
    281
    It's a vast improvement over the old system.
  8. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Messages:
    10,941
    The in-editor manual link kind of sends us up a dead end in that respect!
  9. hoesterey

    hoesterey

    Member

    Joined:
    Mar 19, 2010
    Messages:
    105
    Its great,
    As someone who has worked with a ton of pro level particle systems (I used to head the particle effect team at Turbine)
    http://www.mhoesterey.com/index_sub.html

    I must say the new system is better then those found in most pro level tools. (though I have not tested the performance of the new sysem so cannot comment on efficency.)

    My only complaint thus far is that I can't find a way to preview world space particles (they follow the emitter when it is drug around). This could be a bug though.

    I think we are really lucky to have such great tools in an affordable engine. :) And keep in mind that pro level tools are going to be harder to use as they will have more features and concepts that you'll need to learn!
    -Matt
  10. WBDN

    WBDN

    New Member

    Joined:
    Dec 23, 2011
    Messages:
    109
    The reason for this is because the default behavior is to show you simulation results immediately (resimulation). Part of resimulation is moving the particles with the emitter. You can disable this by toggling the "resimulation" button at the top of the particle effect window.

    You should also make sure the system is not setup to lock to transform.

    Best,
    William
  11. profanicus

    profanicus

    New Member

    Joined:
    Nov 23, 2009
    Messages:
    281
    Thanks for that William, but resimulation seems to detach all systems from the transform, it doesn't really respect the Lock to Transform setting. Quite often a system will have some world space, and some local space elements.

    There is another handy feature I have seen elsewhere - the ability to animate the transform in a circular path in the preview, allowing you to visualize the result when attached to moving objects. I imagine this would be easy enough for us to add using an editor script which is why it would be nice for Lock to Transform to behave properly in the preview.

    edit: Apologies, I think it DOES work correctly with resimulation disabled!
    Last edited: Dec 25, 2011
  12. Cameron.

    Cameron.

    Member

    Joined:
    Jun 1, 2009
    Messages:
    714
    I think the new system is great. Best X-Mas present ever. :)
  13. Kencho

    Kencho

    Member

    Joined:
    Dec 26, 2011
    Messages:
    14
    I did notice about the particles in world space still following the transform in the simulation. However, when run the world-space particles behave as expected. You just need to drag a transform in runtime (with world-space particle systems) and see the results :)
  14. WBDN

    WBDN

    New Member

    Joined:
    Dec 23, 2011
    Messages:
    109
    And you get the same in edit mode if you disable resimulation.
    As you mention, in play mode Unity always disables resimulation.
    Last edited: Dec 26, 2011
  15. taumel

    taumel

    New Member

    Joined:
    Jun 9, 2005
    Messages:
    5,283
    It might be capable but i don't think it's well designed, it's just not intuitive.
  16. profanicus

    profanicus

    New Member

    Joined:
    Nov 23, 2009
    Messages:
    281
    I think "not well designed" is a bit harsh. I find it quite intuitive, especially compared to the legacy system. And even more especially compared to some clunkers I have been forced to use in the past ... :)
  17. WBDN

    WBDN

    New Member

    Joined:
    Dec 23, 2011
    Messages:
    109
    What is unintuitive?
    What is unclear/confusing?
    What needs to be improved and how?

    Would appreciate the feedback.

    Best,
    William
  18. TwiiK

    TwiiK

    Member

    Joined:
    Oct 23, 2007
    Messages:
    928
    My experience with particle systems come from 3d applications, not game engines and when compared to those I feel that Shuriken can do a lot less and also is harder to use. This may not be a fair comparison, but it's the only thing I can compare it to.

    For instance if you open the fireworks example which is a sligtly, but not very, complex system it's instantly confusing. You have what resembles a node layout, but it isn't. The order of the columns is not the order they appear in the particle system. I find this very hard to work with.

    Also, if you rotate the rocket particles over lifetime then the birth subemitter doesn't follow that spin. They still just spawn behind the rocket particle. How would you do something like a spinning firework?

    Lack of testing operators/modules. For example only spawn new particles if the particles colliding are traveling over a certain speed or are of a certain age.

    Lack of splitting operators/modules. 50 percent of the spawned particles are black, the rest are white etc.

    How would you create things like vortexes etc.?

    I know these things are possible through scripting, but so were they with the old system. My point is that you still have to use scripting to manage more complex effects.
  19. taumel

    taumel

    New Member

    Joined:
    Jun 9, 2005
    Messages:
    5,283
    @WBDN
    Okay, i only used it once but i found it unintuitive in a way how to achieve certain effects. In comparison i once instantly groked Virtools particle system. I felt Shuriken lacked when it came to defining the movement. Bread and butter stuff like velocity is hidden initially. Sometimes you could draw graphs, sometimes you couldn't but drawing graphs didn't feel good. I often was fighting to really get the curve i wanted. It lacked movement defined by attractors and the opposite or setting up a simple equation, ...

    Enabling/Disabling modules felt a bit weird and after some time i had the impression that the representation (as they are placed one by one in a row) can use a lot of space but nonetheless you can loose the overview or functionality like adding another particle system as the button scrolls out of view. I also missed that you couldn't simulate several or all particles at the same time.

    Altering the size of an emitting mesh vie the transform option in the inspector and/or by the settings in the particle editor caused weird not wanted effects in a way that things were positioned wrongly (parent child dependencies outside the particle editor but not inside) Whilst switching through the options you could fix this manually afterwards. I got editor crashes when dealing with four particle systems as well as when trying to use another material. I think i would have felt lost without the provided examples, but even with them i didn't feel like i was mastering it and enjoying the process. Such things...

    There is a difference between articulating a few things here and there in order to enhance the current design or giving some proper feedback in order to alter the design more deepening to enhance the workflow. For the second option you would have to invest quite some more time - which i also don't have right now - but i'm sure, if you do so, you could come up with something easier which offers more options. Anyway i hope it helps.
    Last edited: Dec 26, 2011
  20. loken

    loken

    New Member

    Joined:
    Mar 25, 2009
    Messages:
    109
    WBDN, I mentioned this on Twitter (As Tridekaphobia)

    Just wanted to elaborate on my issue with mesh emitters.

    In most 3d modeling/rendering applications, when you choose a mesh to emit particles, it's actually emitting from that particular mesh in the scene. Not just a copy or prefab in memory of it's vertex/triangle data with no respect to the actual object in my scene that I want particles emitted from.

    As it is, Shuriken just treats a mesh emitter as a shape to emit, like the cone, box or sphere. Good for some uses for certain. But it would be a thousand times more useful if it would link to an asset in my current scene, with respect to it's orientation, scale, and position.

    If I want fire particles emitting from a log in a camp fire in a rather precise way, I want the particles actually emanating from that very log in my scene view! That log has been carefully positioned, rotated and scaled. If I just give the particle system it's mesh emitter, I have to fuss a lot with the particle system gameobjects position and scale to get things looking okay, and that's ignoring any other meshes I might want other particles to come from.

    So consider it a request rather than a bug. I'm not sure how possible it is with the way things are setup internally, but it sure would be nice. =)
  21. WBDN

    WBDN

    New Member

    Joined:
    Dec 23, 2011
    Messages:
    109
    This is possible with the velocity over lifetime curves. In fact, in terms of movement you should be able to set up almost everything. There's very little you can't do. The only problem is that it may be a bit tricky. We are working on making that easier to set up with complex movement, but that will unfortunately not make it for 3.5 (there wasn't enough time).
  22. WBDN

    WBDN

    New Member

    Joined:
    Dec 23, 2011
    Messages:
    109
    Hey, you can set this up by just adding the particle system components (from component menu) to the game object in question (your log mesh or whatever) and use that mesh as the mesh emitter. It will then use the same transform as the log (with scaling etc.).

    Best,
    William
  23. the_motionblur

    the_motionblur

    Member

    Joined:
    Mar 4, 2008
    Messages:
    1,016
    Why do polls like this always just have the option "excellent", "don't like it" and "bad"?
    Personally I think it's very cool and for its complexity pretty intuitive to use. Yet as was mentioned somewhere else, there are a few minor things. One of them would be having an option for random input by static number rather than just "even" and "mix between curves". Also the ability to enable particle systems in the editor other than the one selected would be great.

    Other than that I love it so far. A huge step forward, IMO. :)
  24. WBDN

    WBDN

    New Member

    Joined:
    Dec 23, 2011
    Messages:
    109
    What did you mean that sometimes you could draw curves and sometimes you couldn't? Any particular place where you couldn't where you wanted to?

    Either way we've noted down these concerns and will consider addressing them in the future.
  25. WBDN

    WBDN

    New Member

    Joined:
    Dec 23, 2011
    Messages:
    109
    We are looking at both these issues and will fix them in the future.
  26. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Messages:
    10,941
    Can you also focus attention on other things viewable in editor too even when not selected, such as show all colliders for example? It gets really, REALLY old fast when placing triggers and you can't see the others in relation.
  27. antenna tree

    antenna tree

    Moderator

    Joined:
    Oct 30, 2005
    Messages:
    5,300
    Hey hippo, there's an editor script in AngryBots for the Mood Boxes that shows a simple method for showing triggers when they're not selected.
  28. Kencho

    Kencho

    Member

    Joined:
    Dec 26, 2011
    Messages:
    14
    You're right :) I didn't notice the Resimulation button.
  29. taumel

    taumel

    New Member

    Joined:
    Jun 9, 2005
    Messages:
    5,283
    @WBDN
    I was missing it for the gravity. Gravity isn't always a constant force, at certain distances relationships like g/d^2 get more obvious and it would be nice being able to adjust that in a way too, just for particles without altering the gravity.

    Cool, btw. what does inherit velocity mean exactly, the velocity of an moving object which emits the particles?

    The help-link ( file://localhost/Applications/Unity/Unity.app/Contents/Documentation/Documentation/Components/class-ParticleSystem.html ) links to an empty page and going up the hierarchy didn't contain any information on it as well.

    Btw. why is the initial rotation set to 57.29578°?
    Last edited: Dec 27, 2011
  30. Cameron.

    Cameron.

    Member

    Joined:
    Jun 1, 2009
    Messages:
    714
    Quick question, the Doc's for the Line/Trail Renderer all say (Legacy) now. Can or should the new Shuriken particle system replace these?

    If so, how?

    I've been messing around with it but can't see any way either of these components could be replaced by Shuriken. Went back to read though the release notes but couldn't find anything to indicate either way what's happening with these components, I could speculate about future beta builds but figured it best to ask here because the Unity devs are being absolute champions at answering our queries about this preview so far (seriously, massive props to the dev team!).

    p.s. Chrome spell check does not have a dictionary entry for Shuriken? Google clearly needs to employ more ninjas.
  31. WBDN

    WBDN

    New Member

    Joined:
    Dec 23, 2011
    Messages:
    109
    It basically means the particle will inherit the velocity from what created it. So if the emitter is moving, the particle will get the same velocity. The value you specify is a scale for "how much" of it it should inherit. It works both for ordinary emitters (then it uses the velocity of the emitter) and sub emitter (then it uses the velocity of the particle).

    It shouldn't be. At least not by default. When I tried it it wasn't. How did you get that result?
  32. WBDN

    WBDN

    New Member

    Joined:
    Dec 23, 2011
    Messages:
    109
    I wasn't aware of this, but Shuriken is not meant as a replacement for them. I'll look into why the docs say legacy.
  33. taumel

    taumel

    New Member

    Joined:
    Jun 9, 2005
    Messages:
    5,283
    @WBDN
    It's the default "Start Rotation" value i do get when creating a particle system.
  34. WBDN

    WBDN

    New Member

    Joined:
    Dec 23, 2011
    Messages:
    109
    Oh, found it.

    Reason: It is initialized to 1 and that is then converted to degrees (from radians) That's why it gets that odd value.

    The default should be 0, but that isn't used if created from the component menu it seems.

    We will fix it. Thanks!
  35. taumel

    taumel

    New Member

    Joined:
    Jun 9, 2005
    Messages:
    5,283
    Ahh, okay...
  36. TwiiK

    TwiiK

    Member

    Joined:
    Oct 23, 2007
    Messages:
    928
    Doesn't seem like you can undo anything in the particle editor. Makes it quite hard to work with. :/

    In general I feel undos in Unity only work for certain things so I'm never sure whether or not I can undo what I just did.
  37. WBDN

    WBDN

    New Member

    Joined:
    Dec 23, 2011
    Messages:
    109
    I tried it and it does work, but it doesn't repaint.

    So you change a curve. You undo. Nothing happens.
    Try clicking in the particle editor and see that it actually did undo it! This is a bit unfortunate.

    Thanks for letting us know. We will look into it.
  38. taumel

    taumel

    New Member

    Joined:
    Jun 9, 2005
    Messages:
    5,283
    Yep, this and one of the omnious mysteries in the history of Unity: Most changes get undone whilst running a scene in the editor once you hit the stop button, but not all.

    For example changing the clear colour of a camera gets reset to the state before you started the scene but changing the colour of a material doesn't. Now sometimes i wanted to change a camera's colour or certain properties of an image effect exactly to the values i setup whilst demoing a scene whilst on the other side i didn't want to change the colour of my material and therefore needed to undo until it got reset or memorise and enter the values again.

    I wonder why it can't be the same for everything, with an option to save the sate you setup whilst demoing, if you want to.
    Last edited: Dec 27, 2011
  39. TwiiK

    TwiiK

    Member

    Joined:
    Oct 23, 2007
    Messages:
    928
    Can you copy paste curves?

    Asking before I've checked the documentation, sorry. :)

    Edit: Found it. Just right click the curve and copy then paste. :)
    Last edited: Dec 27, 2011
  40. WBDN

    WBDN

    New Member

    Joined:
    Dec 23, 2011
    Messages:
    109
    Yep. Right click on the preview in the editor. Also works for gradients.
  41. WBDN

    WBDN

    New Member

    Joined:
    Dec 23, 2011
    Messages:
    109
    This is (as far as I understand) because play/stop will reset the current scene when you stop playing. Materials are resources, i.e. stored on disk and not in the scene (they're in the project view and shared between scenes) and are hence not reset when you stop.
  42. taumel

    taumel

    New Member

    Joined:
    Jun 9, 2005
    Messages:
    5,283
    But no matter how it's technically declared it doesn't make sense from a logical point of view and from the workflow. Every user i confronted with Unity stumbled over this one after some time.
  43. TwiiK

    TwiiK

    Member

    Joined:
    Oct 23, 2007
    Messages:
    928
    Thanks for the tip on undos.

    I'm having massive problems trying to make something like a smooth vortex. I can see from the dustdevil example how you would do it with velocity over lifetime, but making a proper curve by hand is insanly hard. I'm not even sure how the curve needs to look. It's so hard to visualize the particle movement as a curve.

    Perhaps adding some more curve presets would be helfhul? Like sine waves etc.?

    Being able to type in positions for the curve keys would also be helpful.

    Edit: Also, what about being able to type in a function and create the curve from that as well? Like for instance sine.
    Last edited: Dec 27, 2011
  44. WBDN

    WBDN

    New Member

    Joined:
    Dec 23, 2011
    Messages:
    109
    We have realized these problems and have discussed solutions like:
    -Repeat mode for curves (useful for vortex and tornado etc.)
    -World space spline editing tool for the curves (gets converted to velocity curves).
    -More curve templates.

    Unfortunately we will not have time to finalize these for 3.5.

    Will look into adding the sine template though.
  45. uberwleiss

    uberwleiss

    New Member

    Joined:
    Feb 18, 2011
    Messages:
    40
    I haven't installed the new Unity 3.5 because I'm in a hurry to finish a project. So I wouldn't want to risk anything right now. Can't wait to finish it and try out the 3.5. But I wonder, about the new particle system, is it now possible for particles to take color from the vertex color of the mesh emitter or from it's texture?

    Thanx.
  46. WBDN

    WBDN

    New Member

    Joined:
    Dec 23, 2011
    Messages:
    109
    Yep. It takes the vertex color, but not the texture.
  47. uberwleiss

    uberwleiss

    New Member

    Joined:
    Feb 18, 2011
    Messages:
    40
    Wow, that's great!
  48. TehWut

    TehWut

    Member

    Joined:
    Jun 18, 2011
    Messages:
    1,579
    I love the new System! It actually makes sense instead of all those meaningless buttons like the other one. I think it also has a much improved performance over the old system.
  49. Spellbound

    Spellbound

    Member

    Joined:
    Sep 9, 2011
    Messages:
    44
    First of all I'd like to say that being able to use curves and especially range curves rocks! :)

    There are a few things I am still missing and some inconsistencies I'd like to mention:

    1. It would be so great if the transform would not only affect position and rotation of an emitting shape, but also allow to apply scaling to form elipsoids, squashed cones, etc. I am wondering why these components of the transformation are ignored? Performance?

    I'd wish we had at least an ellipsoid primitive type in addition to the sphere or xyz scale options for the sphere primitive. Still, being able to use the transform's scale component would be way more flexible.

    2. The cone shape behaves a little odd compared to all other shapes, because it is almost like a point emitter with a conical force. It is only emitting from the start plane (circle), not within the volume. It would be cool to have both "emit from shell" (emitting inward/outward) and "emit within volume" options. A "cone length" attribute would then also make sense.

    3. I was hoping to get some kind of forces each with its own transform and shape (including a spline path) i.e. to place a spherical particle attractor with falloff options in the scene and have multiple particle systems affected by this force. Right now it seems we only got a directional/turbulence force without any falloff settings or other spatial controls.

    4. A renderer that supports an array of objects (mesh or billboard) and materials would be great. Objects would be chosen randomly per particle index. This would allow us to emit differently textured and shaped objects within a single particle system.

    One last question: When using the new particle system to do exactly the same as the old one could do, would the new one be equally fast/faster/slower?
    Last edited: Dec 27, 2011
  50. WBDN

    WBDN

    New Member

    Joined:
    Dec 23, 2011
    Messages:
    109
    This was added today and will be in 3.5. In the dev preview build this was only supported for box and mesh emitters.

    Sure, but what is the use case for that? We can't add it for 3.5 but maybe future versions.

    We wanted to do this but didn't have time to implement it for 3.5.

    Why different materials? That means we have to split it up into multiple draw calls. We plan to have an array of meshes and being able to have them be randomly selected but with the same material.

    It should be faster.