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

[Save $600 offer !✅] Particle Dynamic Magic URP -Advanced FX Framework (Decal, Particle, Spline, AI)

Discussion in 'Assets and Asset Store' started by nasos_333, Apr 8, 2014.

  1. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Particle Dynamic Magic 2 is a global gameobject, decal, particle & spline control and effect creation framework, that will cover most needs in your effect making pipeline. It is made for easy understanding every module so it can be extended and is working directly in Unity editor with full compatibility for all Shuriken effects in the Asset Store. The 300+ advanced dynamic effects library is a free bonus !!! a first in the industry offer at that price point. Join the revolution today !!!

    The system is super optimized with Multithreading, Pooling, Custom Static/Dynamic Batching and Single Source Distribution for ultimate performance.





    Special FX summary: Heat seaking missiles, chain lightning, fire cast & propagation, gameobject particle painting, physics based splines, particle to particle collisions and there are more to be added.

    Particle Dynamic Magic 2.0 has been submitted and will be available soon at the store. New price will be set at $90.

    Particle Dynamic Magic v2.0 demo
    https://dl.dropboxusercontent.com/u/79230236/Particle Dynamic Magic 2/PDM 2.0 DEMO.html

    Note that the demo right side menu cycles through the major categories (Decals, Ribbons, AI etc) and the left side menu cycles through the effects in each of these categories.

    Feedback on the demo would be most welcome :)


    Particle Dynamic Magic 1.0

    Particle manipulation framework that supports particle and gameobject emission from dynamic splines, animated/procedural meshes, projected, painted and propagated positions.

    Turbulence, forces, gravity and many more effects can be used for particle manipulation. The transition manager can move particles among emitters and the music module will make particles dance to the rythm with various levels of control.

    ASSET STORE LINK

    Feature summary:
    - Uses Shuriken particles and is compatible and applicable to every single Shuriken particle in the asset store. No more making all effects from scratch using a closed system. Breath new air and dynamics to all existing Shuriken effects in the store !!!!
    - Multithreaded and optimized, with constant updates to sqeeze every bit of performance possible, while allowing maximim usuability.
    - Extremely easy to use, the 200+ samples (soon to be 250-300 in v1.8) covers every advanced setup possibility, with ready to use prefabs that can be instantiated from the included prefab manager.
    - Extremely easy to adapt and expand. The scripts are not hidden within a impossible to decypher formation of code usually found in such complex systems and each system can act as standalone, for much better clarity and the ability to include only what is atually needed in your project.
    - Complete control of particles, with advanced effects like Gravity, Turbulence and dynamic vortex creation.
    - Infinite emission posibilities, emit from procedural/skinned mesh (with or without mask, inherit texture colors option), projected, painted, propagated, sprayed positions and much more
    - Transition particles among emitters like splines, meshes with smooth transition and particle type change option.
    - Use Gameobject Particles in all modules, that can also be combined with the particle system in one solution. Now particles can be scripted, animated and even have AI (a new AI system is coming in v1.8 as well)
    - Complete spline system, that can be used both in real time (full edit possibilities, includes real time handling and demos) and in editor.
    - Advanced effects like particle to particle collisions, 2D collisions, homing missiles, auras, physics setups (e.g. rubber spider), dynamic chain lightning with propagation
    - Realistic Fire/ice spread, spray and melt system (spray real fire that can propagate and stick properly to every surface, or ice that can melt)
    - Includes a complete custom static/dynamic batching system, for lowering draw calls when gameobject particles are used
    - Play and move particles on the music beat, combined with th transitions module
    - and much much more !!!!!

    Effect showcase Webplayer:

    https://dl.dropboxusercontent.com/u/79230236/PDMv12DEMO/PDMv12WebDemoFINAL.html

    MUSICles DEMO:
    https://dl.dropboxusercontent.com/u/79230236/MUSIC_DEMO_PDMv1/PDM_MUSIC_Demo_v1.html
    AMOEBA Demo:
    https://dl.dropboxusercontent.com/u/79230236/AMOEBA/PDM_AMOEBA_Demo.html
    Turbulence demo:
    https://dl.dropboxusercontent.com/u/79230236/TURBULENCE/PDM_TURBULENCE_Demo.html
    Phoenix demo (v1.0):

    https://dl.dropboxusercontent.com/u/79230236/PHOENIX/PHOENIX.html
    Break and Reform (with gameobjects and particles) (v1.0)
    https://dl.dropboxusercontent.com/u/79230236/PDM_BREAK_REFORM/PDM_BREAK_and_REFORM.html
    Mage Duel Demo (v1.0):
    https://googledrive.com/host/0B-QCdE1dswQBbnRkZndSZUhCbkk/PDM_MAGEDUEL.html

    Most effects in the demo are interactive, grab and play with the manipulation spheres to see the dynamic nature of the effects.

    MUSICles video, showcasing the music and transition modules.


    A new bundle with Global Illumination Proxy system and Angry Bots demo included will arrive in October. More at: http://forum.unity3d.com/threads/co...th-anrgy-bots-minigame-implementation.271434/

    Feature summary (v1.2)
    - Global forces (gravity, planar gravity, swirl and spin effects, repel/attract)
    - Turbulence (multithreaded, dynamic vortex generation and control)
    - Dynamic Particle coloring
    - Particle painting (with mouse, or positions)
    - Particle propagation (for fire spread effects)
    - Spline particles, with spline editor and play mode manipulation of splines
    - Dynamic spline effects with physics (emulating hair, tentacles etc)
    - Lightning with dynamic targeting
    - Skinned animated / procedural / simple mesh emission
    - Gameobject scattering and emission (all particle effects apply !!!)
    - Projection based emission and surface normal conformation for gameobjects.
    - Terrain conformation for auras and grass/flower fields
    - All particle effects preview directly in editor (including the gameobject modes)
    - Easy to understand and adapt C# based code, source provided
    - 3 mini game demos (Invasion, Phoenix Flight, Dark Forest)

    Feature summary (v1.3)
    - Gameobject painter, with support for texture based brushes
    - Fully dynamic conformation to surfaces, painted objects may follow the surface as it moves or rotates (or keep the intially painted position)
    - Gameobjects can have wind effects and be colored by brush texture (play mode)
    - Transition manager, a tool to control particle transfer among various emitters
    - Multiple targets support
    - Spline to mesh (or skinned, procedural mesh), spline to spline and mesh to mesh (any type)
    - Coloration modes from skin texture or custom coloring of particles, colors may transfer from skin texture to splines and any other combination
    - Masked emission for skinned, simple and procedural mesh particles, particles may emit from certain body parts to allow better control of particle placement on meshes.
    - Follow surface normals mode allows mesh particles to align to the source mesh surface correctly.
    - Particle music module
    - A new way to manipulate particles through music, that uses all the Particle Dynamic Magic effects for unlimited effects.
    - Control scale, coloration, size, turbulence etc with music
    - Example scene included

    Updated feature list for v1.5


    New Prefab Manager with over 200 ready to use effects, covering all systems in the pack.


    Particle Dynamic Magic v2.0 adding 100+ new effects library to the above, for a total fo 300+ ready to use effects, one of the biggest advanced effects library collection in the industry.


    Description
    :

    The pack contains a collection of dynamic particle effects and plenty of ready made samples to get everyone started. Global attractors/deflectors can manipulate near particle systems for a complete dynamic particle solution. Easy to setup and optimize, code written in C#. Image based particle emission is also included with complete static and dynamic control of the emission.

    The focus is on dynamic magic spells and weapons (shields that repel magic, fire, spells that affect other particles etc), energy and space formations, dynamic nature effects (growing dynamic grass/flower fields) and soon will get an update with spline editor and particle flow, skinned mesh emission and terrain conform of particles, plus a lot of new ready samples to use out of the box.

    After v1.2 the pack has also added an Spline, Turbulence, Gameobject emission/scattering modules and new particle emission sources and conformations like skinned/animated/procedural/splines emission, projection, propagation effects for fire like spread of particles, plus many more effects like dynamic lighting and procedural colorizing/reshaping of gameobjects.

    I would love to read comments about the pack and suggestions for additions for the next update.





    Facebook: https://www.facebook.com/nasos.tsatsos.1

    VIDEOS:

    Effects Showcase


    Features (v.1.01):
    Global attractors/deflectors
    Image based particle emission
    Dynamic grass/flower fields
    Big collection of ready to use prefabs and showcase scenes
    - magic fire/ice swords
    - magic fire/energy wands
    - magic shields
    - grass/flower fields
    - fire/water effects
    Code in C#

     
    Last edited: Mar 5, 2016
    Alverik and John3D like this.
  2. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    UPDATES

    I will reserve this second post for updates and new video posts

    Also will register any requests for future reference, please let me know what else you would like to see in the pack and i will try to add it with each new version.

    The goal is to create a pack with as many particle effects as possible, so i will be adding new features and scenes frequently

    I have finished with the spline editor and spline follow as seen in the letters video and the terrain conform tool in the coming update can give very good flow effects like lava.

    Version 1.2 Features

    - Spline Editor
    - Particle spline follow
    - Skinned/animated mesh particle emission
    - Particle flow over terrain

    Additional scenes and prefabs

    Terrain conform
    - Volcano effect
    - Water effect
    - Magic shield effects
    - Circular targets on ground

    Spline follow
    - Letters forming and dripping
    - Wisps flying
    - Lava river
    - River effect

    Extra scenes using multiple effects
    - Hero with ice/fire/energy sword and magic auras


    Videos for v1.2 (and v 1.01) can be seen in the Youtube channel
    https://www.youtube.com/channel/UCjkcfpcQqts9Kc0QXRqM_ig/videos

    Some samples of the upcoming effects:

    Skinned Mesh emission

    Skinned Mesh emission

    Dynamic Letters Driping

    Dynamic Letters Slow

    Auras and Sword effects

    Lava flow
    https://www.youtube.com/watch?v=rhioLWIngOw&feature=youtu.be
    Spline editor and particle follow
    https://www.youtube.com/watch?v=Ps3AZJZYQzo&feature=youtu.be
     
    Last edited: Jun 19, 2014
  3. p6r

    p6r

    Joined:
    Nov 6, 2010
    Posts:
    1,158
    WOW ! This looks great...
    6R
     
  4. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    FULL CHANGES LOG

    Particle Dynamic Magic v2.6
    - Fixed an issue with one of the skinned mesh emission scripts, where particles would not appear in build.
    - Added particle flow on spline system
    - Added new demo scenes (Wild Fires, Skinned mesh emission, Particle Flow on Spline and Music particles)
    - Added Beta of new GPU particle system, this is experimental and TBD if kept in its current state and also is in heavy development, so use with care.
    - Added Beta of the new 3D Fluids module
    - Added demo of the v3.0 Beta of the system with the GPU Particles and Fluids
    v2.5.3
    - Upgraded project to latest Unity 2018.4 LTS version
    v2.5.2
    - Added skinned mesh emission manipulation using the mouse pointer. e.g. remove feathers from fur at run time
    v2.5.1
    - Adapted for Unity 2018.3
    v2.5
    - Adapted for Unity 2018.
    Particle Dynamic Magic v2.4.1
    - Removed all Javascript files and Standard Asset naming from folders.
    Particle Dynamic Magic v2.4
    - Addition of new effects (e.g. blobs, multi mesh emission with single particle, fish bending, ropes, energy orb transition events, explosions)
    - Fix of various Unity 5.6+ related issues and warnings.
    - Added C# version of the few helper scripts in PDM
    - Added new demos for PDM ("PDM 2.0 DEMO U56 AMOEBA", "PDM 2.0 DEMO U56").
    - Converter all Javascript helper script to C#
    Version 1.01 (initial version)
    Version 1.2 <br>
    <strong>Features added in v1.2:</strong><br><br><strong>Global forces</strong>, Gravity, Planar Gravity, Swirl and spin effects<br>
    <strong>Turbulence</strong> with dynamic vortex creation (multithreaded)<br>
    <strong>Spline particles</strong> with spline editor and dynamic play mode manipulation<br>
    <strong>Skinned</strong> animated / procedural / simple mesh emission <br>
    <strong>Projection</strong> based emission and surface normal conformation for gameobjects. <br>
    <strong>Gameobject scattering</strong> and emission (all particle effects apply)<br>
    <strong>Particle painting & propagation</strong> (e.g. set on fire effects) <br>
    <strong>Terrain conformation</strong> for auras and grass/flower fields<br>
    <strong>Dynamic lightning</strong> with auto targeting <br>
    <strong>Editor preview</strong> and multiple demos & prefabs for all effects
    v1.2.1
    Minor fixes and enchancements
    - Fixed issue with existing splines case where the detail overide cant be initialized in editor.
    - Fixed frame rate dependency of planar gravity
    - Fixed colored skinned / animated mesh emission issue when "every other vertex" number is below 1.
    - Added animated skinned melt/reform sample (scene 13)
    - Added user friendly messages if colored mesh script is not parented to the mesh emitter object
    - Added "reduce factor" functionality to even step interpolation in spline particles
    v1.2.2
    - Added option for gameobjects to look at their motion direction.
    - Added sample scene to showcase the new feature (insect swarm) and new prefab
    - Fixed prefabs where the "constructor" mesh was missing (mage and hero prefabs)
    <strong>New features and changes summary for v1.3</strong>
    <strong>NEW - Gameobject painter</strong>
    - Paint gameobjects on any collider surface
    - Support for texture based brushes
    - Fully dynamic conformation to surfaces, painted objects may follow the surface as it moves or rotates (or keep the intially painted position)
    - Placement based on surface normals or custom angle
    - Gameobjects can have wind effects and be colored by brush texture (play mode)
    <strong>NEW - Particle transition and behavior manager</strong>
    - Smoothly move particles between projection, skinned/procedural meshes and splines
    - Multiple targets support
    - Coloration modes from skin texture or custom coloring of particles, colors may transfer from skin texture to splines and any other combination
    - GUI to control the transitions and be used as base for any effect
    - Distance and tag based cut off management for gameobjects, to increase performance
    - Mode to smoothly increase particle size and spread on surfaces.
    <strong>NEW - Masked mesh emission </strong>
    - For skinned, simple and procedural mesh particles
    - Particles may emit from certain body parts, using a texture mask, to allow better control of particle placement on meshes.
    - Follow surface normals mode allows mesh particles to align to the source mesh surface correctly.
    - Fully optimized to only emit particles from the non-masked areas.
    <strong>NEW - Music module</strong>
    - A new way to manipulate particles through music, that uses all the Particle Dynamic Magic effects for unlimited effects.
    - Control particle scale, offset, coloration, size, turbulence and more with music
    - Example scene included
    <strong>Updates in "particle sheet projection" script</strong>
    - Added choice to follow projector position/rotation or the particle system position
    - Mode to follow surfaces normals for mesh particles
    - "Transition" mode added, to get particle count from current particle system count and not from script variable
    - Return speed variable added to gravity mode
    <strong>Updates in "Place particle on spline" script</strong>
    - Added mode to return back to the spline (gravity mode) and a return speed variable to control it.
    - Added "Extend life" mode with control variables
    - Transition mode added, to emit as many particles as current particle maxcount, in order to inherit from the previous transition state
    <strong>Changes for v1.5.</strong>
    changes in gameobject projection
    - Added smoother motion in lower speeds
    Changes in Attractor class
    - Added more noise options and a new demo
    - Added an exclude by tag option (when by_tag is no enabled)
    - Added option to apply effects only to specific particles, defined in a list
    Changes in Transitions module
    - Added user_timer option, to individually select the time between each target transition for better scheduling.
    - Added time_to_next list, where the individual times are declared.
    - Added option to switch particle system/type on the fly during transitions
    - Added GUI disable option
    - Fixed moving to max_particle_size if size exeeced (was fixed at 0.2 instead)
    Changes in Masked Emission
    - Added a check if pixels != null, in case the item has no texture.
    - Masked mesh emission now scales properly with object first and then with the offset variable.
    - Added option to give speep per normal
    Changes in PlaceparticleOnSpline
    - Added a if p2==null check in start, so can asssign new particle in Transitions on the fly
    <strong>NEW modules for v1.5.</strong>
    <strong>Fire & Ice:</strong>
    - Fire/ice (and anything else) propagation. Fire starters will enflame objects and enflamed objects will spread fire.
    Collision based particle painting for spray effects.
    - Local overrides (fire melts ice, ice makes fire go out, butterflies take to the air, per collision,
    all from a common particle pool). Per proximity override adjustment also available.
    - Gameobject particles, giving the ability to assign control scripts, animation and everything gameobjects
    support per particle, imagination is the limit.
    - Emission and hovering modes, many modes to support free emission from painting positions, take to the air
    with pull back gravity for stabilization, smooth transition back to start position based on attraction parameter,
    local force application control, per collision local change of fly away, growth parameters and more.
    - Melt mode, for ice and go out mode for fire.
    - Particle to Particle collisions, now particles can collide with other particle systems.
    - Mesh emission control, for spreading fire/ice to skinned and procedural meshes and emulating inside out freeze or burn.
    - Burn and freeze target mode, frozen items will turn blue and burned will turn black smoothly, with adjustable conditions.
    <strong>Chain lightning:</strong>
    - Chain lightning from a single source, with depth of chain parameter and automated targeting.
    Added new Flocking demos, with repel / attract / swarming / circling for real time flock behavior simulation and manipulation.
    Added "DisableAttractorPDM" script, for enabling/disabling the various interaction/manipulation nodes with the mouse.
    Added "CycleGameObject_PDM" and "CycleObjectSize_PDM" script to cycle objects during instantiation in gameobject mode, to give variety to the objects spread on scene.
    Added "MoveItemStraightPDM" scipt to guide missiles to target.
    Added "Ice_Grow_PDM" to allow control of ice growth on Skinned/procedural meshes.
    New in v1.6
    - New Batching system (static and dynamic) for gameobject particles
    - New transition manager options, change particle type and forces per target, use gameobject particles
    - New attractor options, now particle life of affected particles may end instantly, use to blast particles to another particle
    - Fixed scrolling reset in Prefab Manager
    <br>
    <strong>New in v1.7</strong>
    <br>
    - New Transition Manager features for total control of every aspect of the transitions.
    - New Multiple targeting system for spells, makes freeze effects possible with control of target's texture, mesh and animation in addition to the particle controls.
    - Standalone Dynamic batching mode for use in any gameobject pool.
    - New script for automatic addition of instantiated items in dynamic batching pool.
    v2.0
    New decal, particle AI, 2D collision, Masked skinned emission systems, effect libraries and much more added. New systems are summarized in the pack description.
    Particle Dynamic Magic v2.1
    - Fixed feathers shader for Unity v5.3 (now transparency works properly)
    - Fixed the particle material handling in one of the samples (first two pics above, also shows combination of gameobject and Shuriken particles)
    - Addressed new in v5.3 warnings (e.g. emissionRate became emission.maxparticlecount, enableemission became emission.enable) due to the new changes in the particle and particle collisions systems.
    - Fixed spline issue in initilization and added some extra checks for lists counts (in segment detail lists)
    - Added multithreading to spines system for further optimization (in addition to splines update only when shape changes). A sample of the performance gain is shown in the posted pics above.
    - Added persistent rotation definition and handler per node in spline (to use from other scripts, e.g. for mesh generation)
    - Added controllable spline curvature at the spline nodes (two modes, single control or dual control in split mode)
    - Added the ability to erase the dynamic decals (gameobject particle mode) on the fly and the system will handle the erase properly. Now the AI butterfly particles in the demo for example can be destroyed at will.


    Thanks a lot, glad you like it

    The next update will make it even more impressive, with spline inclusion and terrain conformation for particles, cant wait to put it up :), i am testing it and adding as many samples as i can, i have finished the code for the effects, but i always see some addition that would make it cooler :)

    Plus there is the spline editor that needs a lot of testing to get right.

    The skinned emission is also very cool to have, i tested it on a dragon and is really something as an effect, i will try to post videos soon

    BTW, is there an ammount of days that must pass before one can update a pack ? I could have the update ready next week and would like to post it asap
     
    Last edited: Jul 27, 2021
  5. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Last edited: Apr 12, 2014
  6. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Turbulence and dynamic vortex control and creation

    Splines and play mode manipulation

    Gameobject Projection and scattering


    Gameobject projection, planar gravity pull and fire propagation


    Skinned gameobject emission and dynamic


    Multi spline emission and physics based motion, Hair and curtain effects


    Planar Gravity



    Hi everyone

    Some updates on the status of the v1.2 of the pack that will add Dynamic splines, Turbulence, Skinned/Procedural emission, particle propagation, Terrain conformation, Projection, Gameobject emission and scattering and many more effects:

    All the requirements for submission are finished, and i am ready to submit, now working on the manual


    There is one question on skinned emission, i have two scripts doing the same effect, one is faster but cant be prefabed (it can, but the effect wont be enabled if not enabled in the editor first, so could be used for static scene objects). The other can be prefabed and instantiated, but is slower due to controlling the particles via script than Skuriken itself alone.

    Is it ok to leave both versions, in case the faster one is needed for scene objects that dont need to be instantiated and need the extra performance for the effect ?

    Also should the manual be more visual ? Like a step by step with pics, than just mention the script option use ?

    Here is all the updates so far in the Work in Progress page.

    http://forum.unity3d.com/threads/240717-Introducing-Particle-Dynamic-Magic-v1-2/page2

    The online demos are also ready and will be posted soon




    EDIT: Here is a first version of the full demo, i will polish it a bit more for release, but should give an idea of every effect and how it works

    Online Webplayer DEMO:
    https://dl.dropboxusercontent.com/u/79230236/PDMv12/ParticleDynamicMagicv1.2_WebDemo.html

    Just remember to grab and play with the manipulation spheres :) and toggle the background to better view some of the effects

    Clicking on "Settings" will open up various options for some of the effects and various optimization options, like diable of colliders and particles in gameobject mode and more
     
    Last edited: May 19, 2014
  7. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    The dynamic spline performance in the demos looks really good. One suggestion I would make thought is to include sliders to change the scale of the particles moving along the splines and also the number of particles that are being moved down the splines. Am I right in thinking that the performance with the splines is mainly effected by the number of particles not the scale of the particles ? If so a lot of your demos would look more impressive if the particles were set to a size where they covered the entire spline for example have plasma flowing along a spline rather than having it so that the particles just appear as small spheres because their scale is too small to blend the particles together.

    The demo of the birds moving along the spline looks nice though.

    Could you add a demo where you started with a small spline with particles flowing down it and then had an option to more control nodes to it so that you could extend the spline ? I would like to be able to gauge the performance hit of extending the length of the spline.

    Also one other thing is about your fire propagation demo. I'm assuming the reason it contains a tree is so that it can be set on fire but I couldn't set the tree on fire. All I could set on fire were the balls around the tree.

    There are some impressive demos in there. That jellyfish is quite a nice one. Does this asset contain all the source code ? Looking at the changes coming in Unity 5 I would prefer to avoid using plugins that use dll's rather than source code.
     
  8. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288



    The fire propagation for the tree does need a few tries to catch, probably because of the collider setup, i will check it out

    I have added a feature to add points directly in play mode, so i am now adding it to the demo and will post the new one tomorrow, i will post the link here

    Normally aside the extra spline points to calculate between the new nodes, you wont see any other performance difference when adding the point, since the spline is already calculated every frame and adding a point is simply adding one element in a list, so that procedure is near free

    Posted a sample pic above, when Add_point is checked, will add one point to the spline during play mode, now i will add a GUI to handle it for the demo.

    Also you can see the varied particle size, this option was already in, but did not include it in the demo, i will add that too

    All the code is open, no DLLs at all in the pack :), also i tried to make it as simple to understand and expand as possible
     
    Last edited: May 20, 2014
  9. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288



    The GUI for the spline editing is ready, here is some pics showing the manipulation in real time

    The "Add point" button will add a spline node and a manipulator script to the node, so it can be moved around

    I will post the new demo asap :)

    thanks for all the suggestions and input


    The pack will include the following modules, that may also be available as separate packs (30-40$ range) later. The price will be 55$ (currently 40$) for the first month and will go to 60-70$ later.

    TENTACLE: Spline particles and dynamics (Physics based spline effects, play mode manipulation and spline editor)
    FIRESTARTER: Particle Propagation System (Particle propagation system and particle painting)
    TORNADO: Turbulenece effects (Dynamic turbulence, vortex creation and control and global forces, gravity)
    OBJECTIFIER: Gameobject Particle system (Gameobject scatter and emission solution and global forces, gravity)
     
    Last edited: May 21, 2014
  10. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288



    UPDATED DEMO:

    Hi everyone

    I am glad to annouce that i have uploaded the updated Particle Dynamic Magic v1.2 webplayer demo, which inlcudes a fully editable spline in play mode to play with (see pics for the results above)

    Also the GUI has been updated and the fire propagation response time has been tweaked for better results.

    Feature summary for v1.2

    - Global forces (gravity, repel/attract)
    - Turbulence (multithreaded, dynamic vortex generation and control)
    - Particle coloring
    - Particle painting (with mouse, or positions)
    - Particle propagation (for fire spread effects)
    - Spline particles, with spline editor and play mode manipulation
    - Dynamic spline effects, with physics (emulating hair, tentacles etc)
    - Lightning with dynamic targeting
    - Skinned animated / procedural / simple mesh emission
    - Gameobject scattering (all particle effects apply !!!)
    - Particle projection
    - All particle effects preview directly in editor (including the gameobject modes)
    - Easy to understand C# based code
    - 3 mini game demos (Invasion, Phoenix Flight, Dark Forest)

    You can try the new demo here:

    DEMO LINK:
    https://dl.dropboxusercontent.com/u/79230236/PDMv12_1/ParticleDynamicMagicv1.2_WebDemo2.html

    The new spline effect has been added near the end of the demo (so use the back button to go direcly to the last two demo parts to get to the spline editor)

    Pressing the "add point" button will create a new spline node and add a manipulator so can be moved around immediately to reshape the spline.

    The new point is added in distance similar to the distance between the two last points (so the distance must be kept low to avoid going off screen)
     
    Last edited: May 22, 2014
  11. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    Looks like there is hardly any performance impact in adding new points to the spline and extending it which is great, looking forward to it's release. I've purchased the previous version and looking forward to the 1.2 update going live. When are you planning to submit it ?
     
  12. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288





    Thanks for the support :)

    I have concluded the manual creation, done the prefabs and double checked everything, so i am very close. Just need to check everything one more time and do some clean up in the directories and files and refine the material that will go on the asset store front. I also need to work a bit more on the 3 big demos so they are as perfect as possible, the current demo is only the appetizer for these more artistic showcases.

    I plan to submit early next week if all goes well.

    I post teaser pics from the Invasion, Dark Forest and Phoenix demos
     
    Last edited: May 23, 2014
  13. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Some updates

    The manual is done and the release is coming next week.

    I have posted a new demo for the pack, this is one of the 3 mentioned above.


    Alien Invasion Webplayer Link:
    https://dl.dropboxusercontent.com/u/79230236/PDMv12_CITY/DEMO City.html


    The focus is on getting a Blade runner like atmosphere using particles to give the varied and changing feeling in lights.

    Use "c" button to lock the camera so it is easier to manipulate the spline nodes. All splines can change shape in game by moving the nodes, the central one can have nodes added with the menu.

    Mount camera button will take to the air along the top spline, pressing again will dismount. The airial pathway can also be adjusted by the spherical nodes.

    The v1.2 pack update will be submitted to the Unity asset store next week, so it is a good time to grab the pack at the current lower price.
     
  14. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Update:

    The update to v1.2 is finilized and will be submitted in the coming days, probably tomorrow.

    I post pics of some of the finilized effects and demos. Which picture you think would be best for the asset store front ?
     
    Last edited: May 31, 2014
  15. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    I think the third picture is best as it shows off the splines. One other question I have is are there multiple algorithms used for plotting the splines ? I have some instances where I might need the splines to go around 90 degree corners where a linear connection between the points would be better than a smoother algorithm like bezier. Also can particles flow from one spine to another ? For example if I wanted some parts of the spline to have sharp corners and some to be smooth could I for example have the particles flow through a smooth bezier spline into a linear spline for the sharp corners and then from that into a new bezier spline ?
     
  16. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    I will probably use the phoenix one indeed :)

    For now there is no per segment control of the spline detail, so you cant have one segment be linear and another curved. You can create and link a separate spline with "1" in detail, which would create straight lines between the points and use this as connection in corners etc, but the flow will start at each spline start and move towards its end and loop, so you may have to reprogram this to synch the motion.

    Of course i can add all that functionality in a next update, that could address some priority requests like this one. It is easy to add anything at this point, the only problem is extensive testing so everything works fine and the GUI that will control the effect.

    That is why it took me a while to come to the release, i have to test every prefab and effect many times and in many conditions to make sure everything is working as it should be (and the prefab creation was another reason).

    Also i could create a script that you take multiple splines as input and make sure the object (or particle) move alone the splines in order.

    I already plan some scripts that will handle splines in numbers, it is the next logical step and is 100% coming in v1.3 for a number of things (like emission from spline body).

    I posted a pic for reference, the SPLINE2 is parented to the last point of SPLINE 1 and is using linear segments. That of course is just a work around for now and in the next update i can add an option to handle detail per segment. I can progam on this one a script that will take the splines and synch the motion of the spheres, plus parent the particle to the right sphere.

    Also i will evaluate how easy it would be to add the per segment detail for this release, maybe it proves easier than making the above script and setups

    EDIT: I got the basic functionality down, so i can have linear (or any detail level) segments :), i will test it and if all goes well i will include it in v1.2
     
    Last edited: May 26, 2014
  17. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    UPDATE:

    - Per segment detail for the splines has been added, every segment can have its own quality factor. A quality of one will make the segment a straight line, so now sharp corners in any point of the spline are possible, as in the example picture above.

    - More interpolation options for the particle distribution on the spline have been added

    - Added an option to insert spline points in the middle of any of the spline segments during play mode, in addition to adding end points in play mode.



    The pack will be 55$ after submission, so for anyone interested it is a good time to get it before the price increase at the current lower price. Also the 55$ is an introductory price and will further increase later.
     
    Last edited: May 27, 2014
  18. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    Looks great. Being able to control each segment will be very useful.
     
  19. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    Indeed, thanks for the suggestions, really helped out a great deal shape the spline part to the best :)

    Initially i was planning to have this feature in v1.3, but is cool to have it available right away

    BTW, what would you like to see for v1.3 ?

    I am planning to add:

    - a music module, i think this would be very cool with splines and turbulence combinations, gameobjects could also play a role with procedural coloring etc

    - evaluate how i could offer some DX11 versions of the effects for increased speed
    (already have a working particle system with compute shaders, in its basic form, so i could build from there)

    - Mass spline particle spread, or have one particle system for multiple splines (easy to do, but needs lots of testing)


    Also i will try to add any other suggestions and requests that appear here, so please let me know what else is needed :)
     
    Last edited: May 28, 2014
  20. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Hi everyone,

    The Particle Dynamic Magic v1.2 pack has been submitted to Unity asset store and pending review.


    The features:

    - Global forces, Gravity, Planar Gravity, Swirl and spin effects, Attract and Repel

    - Turbulence with dynamic vortex creation (multithreaded)

    - Spline particles with spline editor and dynamic play mode manipulation of splines

    - Skinned animated / procedural / simple mesh and image based emission.

    - Projection based emission and surface normal conformation for gameobjects.

    - Gameobject scattering and emission (all particle effects apply)

    - Particle painting propagation (e.g. set on fire and catch fire effects)

    - Terrain conformation for auras and grass/flower fields

    - Dynamic lightning with auto targeting

    - Editor preview and multiple demos prefabs for all effects


    Webplayer demo for all effects:
    https://dl.dropboxusercontent.com/u/79230236/PDMv12DEMO/PDMv12WebDemoFINAL.html


    Everything is dynamic in the demo, so try to grab the manipulation spheres and move them around, even the spline nodes are movable

    Asset store link (current v1.01):
    https://www.assetstore.unity3d.com/en/#!/content/16175

    The price will be the current low one for a few more days, so it is a good time to grab the pack before the price increase if interested.
     
  21. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    Looking forward to 1.2 release just hope unity don't take long approving it. The features planned for 1.3 sound great too. My suggestions for the future releases would be gpu acceleration of some sort to make it even faster. It would also be great if you create particle density values for the splines where if you made a spline longer it automatically increased the number of particles being sent down it. It would also be great if you could conform turbulence to a spline. If you added your musical turbulence options you could then draw a spline and use turbulence on it to make the waveforms of the audio travel down it. It might also be worth adding some smoke effects to go along with some of your fire particle effects.

    Lastly it would be great if you could chain your particle systems together. At the moment you mentioned that your splines simply move their particles back to the start of a spline when they reach the end of it. In future it would be great if you created an event system that could trigger actions in other particle systems when the particle reached the end of a spline so you could do effects other than just looping particles along a spline. For example you could connect a spline to a mesh particle emitter. When the particles reached the end of the spline rather than going back to the start of the spline they could then be fed into the start of the mesh emitter or another spline. You could for example have 3 different particle systems set each to have for example a maximum of 1000 particles. The first particle system could be set to just emit particles at the rate of 20 per second. The other particle systems could be set to not emit anything on start but to only emit particles at the rate that another particle system triggered events. That way you could chain completely different particle systems together.
     
  22. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Sample of particle spread options over the splines

    Spline with 30 global detail and 12 detail (override) in its 3rd segment.

    Without interpolation (particles go to curve points, spead depends on detail and lenght of segment)


    Basic interpolation (variable particle spread, less points in less detailed or longer spline segments)


    Variable step interpolation - 4 steps (same particle spread no matter the segment detail or length)


    Variable step interpolation - 7 steps (same particle spread no matter the segment detail or length)


    Fancy angled mode (particles will spead in an angled fashion for artistic effect)



    I hope the same, i am anxiously waiting the verdict.

    About the GPU acceleration, this one is tricky. I did do the research required to see how it is possible and the result is that i would need to make the effects DX11 only to do it. Which is not an option unfortunately since i want the pack to be usuable by all Unity versions and for all platforms.

    What i can do and i have worked on already a bit (i have a base particle computed with shaders running), is use compute shaders as an option in the effects, like have a DX11 check box to override the calculations when DX11 is used with the faster version.

    But that brings up a big question, which is what Unity will do with their GPU access system in future, maybe they do support GPU accceleraton without DX11, which might mean the code would have to change and confuse users based on how Unity chooses to setup this feature.

    So the plan is to wait a bit and see how it plays out with Unity 4.6 and 5, add more features to the pack and further extend the existing ones and later (after v.1.3 with the music module) i will continue working with the compute shaders.



    The turbulence can affect the spline particles, when the "loose" mode is enabled. In loose mode particles get their initial position by the spline points and then are normally affected by all other systems (all Skuriken defined properties and all the attract/repel/gravity/turbulence global force effects of the pack). This is the same for all emission sources, you can have a conformed or loose mode for skinned, projected etc particles. Thus if Turbulence is affected by music, will affect the near spline particles by default in loose mode. The other thing would be to add a music visualizer directly on the spline script, so it may have spline specific effects, even move the spline itself by the music.

    The automatic particle count increase based on the spline extend is a good idea and i will implement it in v1.3. This one needs some extra work because there are two ways to control the particle spread, the spline detail and the interpolation options, so i would need to make an algorithm that will smartly (and optionally in order for the system to be versatile) add particles or play with the spline detail to get the particle spread right. In the demo for example particle count is constant, but you can play with spline detail to get particles along the whole spline after many new points have been added.

    The spline particles have various spread modes, you can get particles in the whole length of the spline at even points, no matter each segment detail. There is also a mode where particles go only to the spline points, so they appear more spread out in less detailed segments. I post some pics showing the various options and result above.



    About chaining effects, this is going to be extended for sure, the plan for this is to go as far as possible in each script and allow various controls within the scipt and without need for coding (like the spread and reform in the skinned emission for example). Then i will device a framework that could do various effects, like control these local script options based on events, chain them etc

    Since the goal of the pack is to offer many effects without the need for coding, i will focus on delivering more effects for individual for v1.3 and will start working the global effects manager for v1.4, since this would be a major system and would need my full attention
     
    Last edited: May 30, 2014
  23. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
  24. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Is it possible to change the thread title to better reflect the new contents of the pack ?

    Ideally would be

    Particle Dynamic Magic - Dynamic Splines, Turbulence, Gameobject scattering and more



    UPDATE:

    v.1.2.1 is now on the asset store
     
    Last edited: May 31, 2014
  25. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Paint an object on any collider surface


    Painted will dynamically follow any transformation of the object they are painted on


    UPDATE:

    Dynamic in game (and in editor) painting of gameobjects and particle combination has been finished and is now fine tuned and extended for the v1.3 release.

    All painted items will follow the objects they are attached to and are all pooled for the ability to concentrate the meshes if needed.

    Per object effects are also possible by default, like the procedural shaping/coloring in the pics

    Coming in v1.3 update
     
    Last edited: Jun 1, 2014
  26. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    Being able to transform shapes sounds great. One suggestion I would also suggest for the next version is to add an editor menu that can be used to create default particle examples. For example rather than having to create a new particle system add the spline scripts manually and set up the options simply have a menu option that can be used to add a default particle spine to the scene. One other question I have regarding the splines is what is the best way to get collision information from the splines ? For my game I have a particle spline wrapped around a large cube. This cube is made up of a series of smaller cubes that can be ejected from this larger cube. The cubes will only be ejected if the spline is not covering their exit. I'm intending to use scripts to make it so that when the system wants to eject a cube it will check the area above this cube and only move it if the spline isn't directly above it. What would be the most efficient way of querying collisions with your splines ?
     
  27. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Thanks for the great review :)

    An editor menu categorizing and adding prefabs in order to get effects started is a very nice idea, i will try to have it for v1.3.

    Also i have many new things to add, like the gameobject painting that will have painted objects dynamically attach to the painted surfaces with normal conformation, transformations follow and pooling (for mesh combination), usable in both play and editor modes, so the music system would probably move to v1.4.

    About the spline check options, the solution depends a lot on the setup. What is the minimum distance to the spline for example relative to its segment size and the cube size ? Also does this spline have a particle emission script attached ? Do you need to check the collision or just check if spline points are above the cube ?
     
    Last edited: Jun 2, 2014
  28. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    The spline has a particle emission script attached. The spline will set the scale of these particles to be quite large so that they blur together and look like plasma. I'm assuming that using large particles will be best so I can use as few as them as possible to cover the spline for performance. The cubes that I need to check for collisions again are about twice the size of these large particles. For arguments sake assume that the small cube that wants to check whether it should be fired is sitting 2 units under the spline so isn't touching it. At the moment I have it where when the game wants to check if it should fire the cube it checks to see how close to the spline a position 2 units above it would be. If that position would be colliding with the spline it doesn't fire the cube. At the moment I use curvy to check for the collisions. I consider a collision to be any distance inside the radius of the large particles traveling down the spline. In short any area that a particle would be rendered on the spline would be a collision. I am wondering whether I should continue to use that for the collision checking and just use your splines for the particle rendering or whether your splines could also handle the collisions. Another rule in my game is that the spline can never cross over itself. To do this in curvy I currently place a gameobject a very small distance in front of the head of the spline. Every frame I use curvy to check which is the closest spline segment to this object. If it is any segment other than the first then I know it is currently crossing across the spline.

    What do you think would be the most efficient way of handling those collisions with your splines ? Regarding segment size the cubes will always be larger than the segment size. Since I want the particles to overlap and look like plasma I'm assuming the minimum distance the cubes could be without being considered as colliding would be half the distance between each segment.

    Also when you said segment size I was assuming you men't distance between each interpolation unit along the spline rather than each segment point on the spline. The reason for this is that the segment size would vary depending on the shape of the spline. For example in my game if the person didn't enter any input the spline would just be one long line where the two spline segments would keep getting further and further apart.

    Thats why I would like a density function so that the spline would add more particles interpolating between the segments depending on how far apart they were. My game also requires knowing how long the spline is as when it reaches a certain length the entire spline moves rather than continuing to get longer. Ideally there would be an api that could be called that you could use to query any splines length, segment length or collision query from another script.
     
    Last edited: Jun 2, 2014
  29. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    About the particle size, i think you will need to balance it, if you have very large particles you will still get problems in fill rate performance, especially if the camera gets close to them. If you are not going too close, probably will be best to use bigger ones indeed.

    About the collision, there a number of ways to get my spline points and then find distances. That would not cover the interpolated particle positions, so you may want to adjust the spline detail than play with interpolation. Otherwise you can also get the interpolated points from the script or directly from the particle positions. Both those require some coding (which i would gladly provide), either exposing the particle positions from within my script or get the particle positions from the particle (that would be slower, since you would essentially do two "getparticle", while exposing from the script is possible with only one.

    Here is the script to do a basic distance check collision with the curve. It can be further optimized, but this is the general way to grab the spline points. This is the full curve definition and not just the control nodes.

    Code (csharp):
    1.  
    2. using UnityEngine;
    3. using System.Collections;
    4. using Artngame.PDM;
    5.  
    6. public class ColliderMessage : MonoBehaviour {
    7.  
    8.    // Use this for initialization
    9.    void Start () {
    10.      Spline_to_Check = SplinerP_OBJ.GetComponent("SplinerP") as SplinerP;
    11.    }
    12.  
    13.    // Update is called once per frame
    14.    void Update () {
    15.  
    16.      for(int i=0;i<Spline_to_Check.Curve.Count;i++){
    17.        if (  Vector3.Distance(BOX.transform.position,Spline_to_Check.Curve[i].position) < 8)
    18.        {
    19.          Debug.Log("Collision in curve point "+i);
    20.        }
    21.      }
    22.  
    23.    }
    24.  
    25.    void  OnParticleCollision(){
    26.  
    27.      //Debug.Log("Collision");
    28.    }
    29.  
    30.    public GameObject SplinerP_OBJ;
    31.    SplinerP Spline_to_Check;
    32.    public GameObject BOX;
    33.  
    34.    void OnCollisionEnter (){
    35.  
    36.  
    37.    }
    38. }
    And the scene setup



    If you want real physics collisions, i have made a setup with gameobject emitter, i will post a sample soon
     
    Last edited: Jun 2, 2014
  30. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    UPDATE:


    New mode for skinned emission, choose a texture UV region to limit the skinned emission to certain body parts, like emit fire only from the hands or head.

    I will probably add a list of rectangles, so multiple regions may be defined. This will come soon in v1.3, together with the gameobject painting

    Also a system that limits emission per color is evaluated, this is more tricky because would need a relax factor so it covers the near color range
     
    Last edited: Jun 8, 2014
  31. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Last edited: Jun 3, 2014
  32. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    UPDATE:

    Hi everyone,

    The version 1.2.2 has been submitted to the asset store and is pending review. Should be up in the next few days.

    The main new feature is a new rotation mode for emitted gameobjects from projection, which will allow them to rotate based on their direction of motion. This can enable effects like insect swarms etc

    Also a new scene and prefab have been added to showcase the new addition and minor fixes have gone to 3 prefabs that were missing the "constructor" mesh.
     
    Last edited: Jun 7, 2014
  33. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    The new updates sound great. Thanks for that spline collider script it works fine for my needs. In general though I think it would be good if you created and documented an api to access your splines through scripts with. It would also be good if you created different collision calls to return different information from the splines. For example you could have a collision return boolean function that simply returns whether something is colliding with a spline. You could then have other collision functions that returned how far along the spline the collision happened or gave more detailed information. In order to do the spline density I'm assuming you will need functions to be able to calculate the length of each spline segment. It would be great if you could use these to return the length of a spline or segment as well.

    An api reference for how to be add and manipulated control points on a spline would also be great.

    It would also be good if you could define manipulator regions on the splines as well. For example be able to define a certain portion of the spline that changed the colour of the particles that passed along it for example and allow them to be moved through scripting so that you could do animations on the splines.

    Also if you made it so that your texture emissions could ignore certain colours it might be worth being able to paint masks over textures to avoid particles being emitted from them. You could perhaps clone the uv of the texture of the object under it and paint it white and then have your paint functions paint the areas black that you wanted to use as a mask. You could even make it support creating masks with your spline tools. You could for example have it where if you drew a curved line over an object is would automatically create a spline mask projected onto the surface of the object that could be manipulated by moving its control points. You could even have options to fill a mask inside the area enclosed by a closed spline so that you could create polygon based masks.
     
  34. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Thanks for all the cool ideas, i will consider them all for future releases, based on the difficulty to
    implement and to test.

    I am glad you found the scipt useful, your suggestion about an option to produce collision messages is also great and
    will have it for v1.3.


    About the API, i do plan to have a full API specification in a future release, but that would be after at a
    first version of a global effect manager has been finished, so probably in v1.4 (v1.3 will bring the object
    painter and v1.4 the music module and the manager).

    So far the focus has been on making all effects easilly usuable through the inspector, so non coders can use the
    effects and make GUI controls easilly, with all the robusteness this requires.

    After all major systems are in (the coming gameobject painter, music and manager modules) i will start working
    on the complete API, so it balances complexity vs usuability. I think this will be the ideal point to have it
    because all effects can then be considered as a whole and the manager that will mass control them will have been
    implemented too.


    In the meantime i will start documenting some basic functions and variables for the scripts as a start and
    hopefully will have time to finish it after v1.3 is submitted and post it for making coding with the pack
    easier.

    If some functions or variables are needed for a project, i can release info on how to get them or script it
    directly like the collision example, until this first documentation is ready.


    Adding points to the spline is as easy as setting one parameter btw :), or two if you need to insert it in the
    mid of a segment.

    Set the "Add_point" variable os SplinerP script to true to get a new segment after the last one, or the "Add_mid_point" to true and a point is added in the mid of the selected segment. The variables are auto-reset to false. For the mid
    point you may also want to set the "Add_in_Segment" to N segment number (default is the first segment), so the
    point is added in the mid of the Nth segment of the spline.

    Set the "With_manip" variable to true to get a manipulator that allow directly moving the spline soon after
    creation.

    The manipulation is based mainly on physics applied to the sphere nodes or just moving the spheres through code
    and is based on Unity physics and scripting, the spline is aware of changes and will update when the play mode
    is on, so just do anything with these spheres and the spline will follow :).

    The options for the scripts are explained in the documentation of the pack (the PDF in the PDM folder), so it is
    a good start to see what is possible before the API docs are released. Also you can see how most effects are controlled through the GUI code in the example scenes.

    The texture modes is something i am working on, i now have a texture brush based painting mode for the new system and have been working on making it possible that the skinned emission is only on certain parts of the texture. So far i have a system with UV boxes that can limit the emission in body parts, i now work on extending this and adding color based control and the alpha based is also a great idea.

    These will also be in v1.3
     
  35. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288




    UPDATE:

    Thanks to the amazing free code from Dean Stanfield (found in this thread: http://forum.unity3d.com/threads/dx11-particle-system-free.172553/#post-1263639) i have been working in parallel in a DX11 module for the pack, that will be optional if you want to have millions of particles.

    Here is some pics of the WIP, this will be released sometime mid summer as part of Particle Dynamic Magic.

    Any changes made to the free code core will also be posted in the thread for everyone to use. I will work on painting the particle by image and post it this afternoon, after i finilize the object painter today (hopefully)

    The performance of this system is so amazing that is making me think of adapting DX11 for my RPG game :)
     
  36. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    UPDATE:


    Version 1.2.2 of Particle Dynamic Magic has been released !!!

    A new rotation mode for emitted gameobjects from projection has been added, which will allow them to rotate based on their direction of motion. This can enable effects like insect swarms etc

    The new effect is shown in the posted pics.

    Also a new scene and prefab have been added to showcase the new addition and minor fixes have gone to 3 prefabs that were missing the "constructor" mesh.

    Use the planar gravity manipulator to make the insect swarm circle around a point (or moving character with the manipulator attached) or the swirl/bounce gravity manipulator to make the insects swarm and attack a target.
     
  37. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    Hi everyone,

    A quick update and a question.

    I am working on the selective mesh emission and so far i am working with rectangles that define regions in the texture. This as appears is not very flexible, but has the plus that need nothing extra to work.

    So the question is whether you would like to have the definition with rectangles or a more versatile texture based definition (for example copy the texture, paint black the non emissive parts and have the script not emit from black color or transparency).

    The texture based can also have variability through various colors or define other properties, plus the texture does not have to be the exact size of the original (depending on required detail)

    Please let me know which of the two methods you would prefer to have (both is also a valid answer, but would delay the polishing stage more).
     
  38. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    Both methods have their advantages but I would say that the texture mask painting would be something that more people are used to and a lot more flexible than drawing rectangles. I take it that if someone already wanted to make particles come from a specific part of a mesh they could just attach it to a sub mesh anyway for more accurate selection. If thats the case then having a rectangle selection tool wouldn't really have many uses. The only real benefits of not doing it by painting textures would be saving on the texture space. If you had more complexed ways of defining areas such as other shapes such as circles and polygons and could combine them to create a complexed mask then there would more of a benefit of not using texture masks. For example if you wanted a circle of particles emitting from a cube it would be more efficient to save that as a vector mask than bake it to a texture. Vector masks could also be moved at runtime more easily to for animation.

    If you want to get really fancy you could make other types of masks that effect particles. For example you could save the masks as grey scale images and have options for them to effect the amount or size of particles being emitted from a certain area of the mask.
     
  39. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    I will probably use the texture mask, since i can see more options open up.

    It is a rather complicated matter how to best do it, there are many options and each has its ups and downs, maybe i will offer some options to select modes, like emit from non transparent or a weighted emission based on greyscale etc

    I think that would be the best case for the texture based confinment of emission.

    As for vectors probably i wont consider it because would overcomplicate things for now, and will get back to it for a next version after v1.3.

    Also i had not put much though in the sub meshes matter, this will also have to be taken into account i guess, i had the more optimized one texture for many items arrangement in mind.

    Another thing i would like to add is mass emission scripts, that will mass emit particles from splines and meshes and will use one common pool. After v1.3 i will definitly create such scripts so there can be more centalized control when required or for easier use if there are many separate splines needed (though instantiating splines like in the curtain sample is another good way to keep things tiny by controlling only one root spline).

    I guess more options is better in any case :)
     
    Last edited: Jun 8, 2014
  40. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    UPDATE:

    The base texture masked emission has been added and looking at extra features i could add.

    This may be released before v1.3
     
  41. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    UPDATES:


    - Masked texture based emission has been finalized.
    - A mode for mesh particles to follow surface normals is also added (for emiting crystals from a skinned mesh for example).
    - Effect is fully optimized so it will not emit from transparent areas of the mask or from vertices that are not chosen (in "every other vertex" mode).
    - Size of particles can be adjusted in real time for effects like ice explosion, or gradual size freeze
    - Particle number can be adjusted dynamically, for effects like gradual increasing freeze etc
    - All of simple meshes, skinnned, animated and procedural meshes are supported.

    - The base DX11 option for Image based emission has been finished, remains to add more options and polish. The image in the picture is 512x512 reconstructed with 260000+ particles
     
    Last edited: Jun 10, 2014
  42. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    Looks good. How are you planning to enable directx 11 acceleration ? Are you planning to make it so that you use the same tools to create the particle effects and then simply enable or disable the gpu acceleration based on whether it is supported on the platform ? Or will the accelerated particle effects need to be created separately ?
     
  43. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    That is still TBD. For now i have a separate particle system that internally does all the same calculations as the scripts (like Turbulence and Gravity) in the GPU and the plan is to get the parameters from near attractors and forces so it will work with the already placed force nodes.

    As for acceleration for the existing Shuriken systems, that could be done in two ways

    1. Place a script that will convert the Skuriken as closely as possible to the DX11 particle, disable it and work with the DX11 one in its place

    2. Offer a DX11 option for existing scripts, that would grab the particle arrays (positions etc), and pass it to the GPU for calculation.

    I think option #2 would be the hardest to optimize and would be slower, but #1 is hard to get right since it would need a lot of work to replicate the Shuriken system.

    What i will probably do is release a first version with the DX11 particles that will be affected by the near forces. Then i could work on the other two options and offer a DX11 option for current Shuriken systems later, since this would take lots of time to get right.

    This plan has the advantage that i can get DX11 faster on the pack and also have the chance to see what Unity 5 will do with compute shaders, OpenCL and its particles before going the next phase.
     
    Last edited: Jun 12, 2014
  44. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    UPDATE:


    Some updates on the transition manager. This tool will be used to move particles between emitters on demand and add all kinds of extra effects, like growing/changing particles etc.

    In the pic there is an example of particles moving from a procedural mesh to an spline.

    The module will support skinned mesh, procedural mesh, projected positions and splines.

    A small demo will be released before v1.3 release to showcase the effects possible with the manager.
     
  45. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    UPDATE:


    All transitions are now possible (skinned mesh, procedural mesh, projected positions and splines) and currently i am working on various coloration effects that can be applied during the transitions.

    Pics show a spline to spline transition, lerped for extra smoothness. I will also include a sample with letters in the demo.

    The transition manager will be available in v1.3 update
     
  46. IanStanbridge

    IanStanbridge

    Joined:
    Aug 26, 2013
    Posts:
    334
    The transition manager looks like a great addition. If I wanted certain areas of a spline to be different colors would the best way to do this be to join multiple splines together and then have the particles change as they moved between the splines ? Also is this the system you are planning to use to implement spline density ? For example if I wanted a trail of plasma would I be best creating a plasma fireball at the start of a spline and tell it to transition it's particles into the spline. Would the easiest way to ensure that the plasma spline stayed the same density even as it got larger be to simply increase the number of particles being emitted by the fireball as the spline got longer, or are you planning a different way to control density ?
     
  47. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    I am still experimenting with the coloring, normally particles can inherit from the Shuriken, so changing that could alter colors, but would follow the life time of the Shuriken.

    I will also have a system to change the colors on demand between transitions

    and thinking about also having a pattern generator for colors, but is not yet clear if i should create a global script to control the others or handle it locally.

    The density is defined in the script, with the Interpolation option. I also have a transition option added to the script that will reinitialize the particle to best fit the new spline.

    Examples will be added for all that new functionality, so it will be easy to add to the project
     
  48. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288
    Masked emission from skinned mesh, with custom color for particles

    Emission from skinned mesh, with texture based color for particles

    Inherit Shuriken forces, after transition and conform to mesh

    Transfer particle colors from skinned mesh texture to spline


    Emission from procedural mesh, with texture based color for particles

    UPDATE:


    The first coloring mode is in, particles may inherit colors from the skin texture, the masked texture or use a custom color

    Also added a free particle mode, to let particles inherit from the Shuriken system, gravity etc

    A webplayer demo for v1.3 with the transition manager and gameobject painter (and more new effects and samples, like the swarming and new gameobject explode and reform effects) will come this weekend
     
  49. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    UPDATE:


    Added an explosion mode to the Transition Manager, there are two explosion styles

    Also i will add a music module that will control the offset of emission from the mesh by the beat, maybe the rotation too

    This will be the base for the upcoming music module in v1.4, the goal is for all transitions to be controllable by music and new ones to be added

    More ideas on other transitions styles and controls by music are also welcome
     
  50. nasos_333

    nasos_333

    Joined:
    Feb 13, 2013
    Posts:
    13,288


    New demo released for Particle Dynamic Magic v1.3.

    MUSICles system makes particles dance to the music, and is using the new Transitions module for motion between various emitters for an unlimited ammount of amazing effects.

    The Transition Manager and the MUSICles modules will be included in the upcoming v1.3 of the pack and the price will be raised, so it is a good opportunity to grab it at the lower price until end of June. The song in the demo is free to download in the asset store (Craze Music Free Electro Mix pack)

    Notes:
    - Use the "Auto Cycle" cutton to turn Auto cycle of emitters on/off, use the top button row to manually choose emitters. Use the Toggle relaxed button, to make splines relax their particle grip and play with interpolation to see a shifting effect.
    - Use the free spline or mesh particle buttons to let particles go up using the Shuriken (anti)gravity. The speed bar controls the overall play speed and the volume control will lower/raise the music volume and affect particles accordingly.
    - Toggle colored allows coloring by the texture of the mesh (use when mesh is selected as target)
    Custom colors are also possible (press Textured to turn to custom). Enable mask will use the masked texture to emit particles from hero.
    - To increase particle count, first choose Pelvis mesh as target (uses the most particles), then transfer to a spline to move the max particle count to it.
    - The meshes can be moved around and the spline nodes are also interactive to change their shape.
    Enjoy :)

    MUSICles DEMO:
    https://dl.dropboxusercontent.com/u/79230236/MUSIC_DEMO_PDMv1/PDM_MUSIC_Demo_v1.html

    I would love to have more suggestions for other effects that would be desired for the Music module.
     
    Last edited: Jun 21, 2014