Search Unity

  1. Unity 2019.2 is now released.
    Dismiss Notice

Dreamteck Splines - Powerful and Flexible Spline Solution

Discussion in 'Assets and Asset Store' started by Dreamteck, May 11, 2016.

  1. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228

    What is it?
    Dreamteck Splines is an all-in-one spline solution that will help you with level design, game mechanics and effects. Create and follow paths, generate geometry, spawn objects, control particles, level terrain and much more! This is a battle-tested tool that our company has been developing and using for years. We started it's development back in 2013 and slowly advanced it throughout the years. Recently we realized that the tool has grown into a big asset that can help lots of other developers and studios so we decided to make it public by releasing it on the asset store.
    Asset Store Page
    Official Website Page

    Promo Video

    Demo Scene

    Selling point
    While currently there are lots of other spline solutions on the asset store we feel that our asset has some unique aspects that developers might find useful. Dreamteck Splines is not just a spline extension, it comes with a range of components that are able to follow splines with uniform speed, generate geometry along splines, spawn and control objects, level terrains, project objects along splines and a lot more. For the full list of available components, refer to the end of the post. Our solution is tight - each spline is one game object no matter how many control points it has. In the same time, if a control point needs to be parented to a Transform in the scene, that's possible using the so-called Nodes. On top of all this, the tool is open source. We feel that developers should be able to edit the code and even contribute for future releases.​

    Key features
    - Rapid spline creation and editing via custom editor in Unity.
    - Four types of splines: Hermite, Bezier, B-Spline and Linear
    - Lots of components
    - Mobile friendly - Supports Android, iOS and Windows Phone
    - Single Game Object per spline
    - Procedural primitives and saving presets for later use
    - Junctions
    - Morph states
    - On-the-fly mesh generation
    - Multithreading
    - Open source​
    Version 1.0.9
    Version 1.0.9 is the new major update which redefines the way meshes are generated. It introduces the new and powerful Spline Mesh component which allows for the construction of complex meshes that consist of various elements. The performance of all mesh generators has been improved and GC has been reduced.​

    Free content
    Since this tool has been serving our company for some time now, we have a repository of MonoBehaviour scripts that help produce various effects and gameplay behaviors using our spline system. Since version 1.0.8 we have started uploading these free packages to our Git repository: https://github.com/Dreamteck/dreamteck-splines

    If you have any requests for a speciffic mechanic or a prototype using Dreamteck Splines, we'll be glad to look into it.

    Tutorials
    While the tool comes with an extensive PDF User manual and API reference, we're currently recording video tutorials and uploading them on our YouTube channel. This is a list of all the available tutorials so far: [Dreamteck Splines Tutorials]

    Documentation
    Since version 1.0.3 the documentation of Dreamteck Splines is now public:
    - User Manual
    - API Reference

    List of components in v1.0.9
    • SplineComputer - A spline, affected by the Transform component which can be edited and evaluated
    • Spline Follower - Follow a spline with uniform speed (3 wrap modes)
    • Spline Projector - Project a 3D point in space on a spline
    • Particle Controller - (Uses Shuriken)spawn particles along a spline and animate them
    • PolygonColliderGenerator - Generates a 2D polygon collider from a spline
    • EdgeColliderGenerator - Generates a 2D edge collider from a spline
    • SplinePositioner - positions a single transform along a spline - useful for animations and tweens
    • Object controller - Spawn and control GameObjects along a spline
    • Spline Renderer - Render a spline with any camera (analogue of the line renderer)
    • Path Generator - Generate flat geometry along a spline (useful for making roads)
    • Tube Generator - Generate a tube along a spline (usfeul for making pipes, ropes, tubes...)
    • Waveform generator - Generate a waveform using the spline's shape (useful for visualizing music, making fences and 2D terrains)
    • Surface generator - Creates a triangulated surface from a spline shape (useful for rendering shapes, modeling platforms, water pools, etc.)
    • Extrude Mesh (deprecated) - Extrudes a custom mesh along a spline
    • Spline Mesh - A replacement for the Extrude Mesh - flexible, effective and stable
    • Length Calculator - Calculates the length in world units of the spline
    • Object Bender - Bends a game object and all of its children along a spline.
    • Node - used to bind control points to Transforms in the scene and for making junctions
    Editor-only tools in v1.0.9
    • Level Terrain - Levels a unity terrain using a spline
    • Bake Mesh Generators - Bakes some or all mesh generators in the scene so their meshes can be lightmapped and used in more than one scene
    • Update tool - used to update all or some Spline components in the scene with a single click
    • Import/Export - provides importing and exporting functionality from and to SVG and CSV
    • Spline Explorer - a tool that displays all splines in the current scene and makes selecting and managing easy.
     
    Last edited: Mar 20, 2019
  2. Dark-Protocol

    Dark-Protocol

    Joined:
    Nov 19, 2011
    Posts:
    279
    Sound very handy. Judging by the post, all of the splines are MonoBehaviours do I always have to have a SplineComputer component in order to have a spline?
     
  3. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Hi Dark Protocol, no you don't always have to have a SplineComputer component in order to have a spline. You can create a spline at runtime from any script like that:
    Code (CSharp):
    1. Spline spline = new Spline(Spline.Type.Bezier);
    The SplineComputer component is there to provide a thread-safe way to transform splines. Also, if you want to work with the spline editor, you will have to use a SplineComputer.
     
  4. Arigaia_Sekuin

    Arigaia_Sekuin

    Joined:
    Mar 11, 2015
    Posts:
    1
    Hey Dreamteck,
    First of all thank you for the thorough description and tutorials. They helped me get into the tool really fast. I've had the chance to test it over the past couple of days and I think it has great potential to optimize my work as it's clean and straightforward. I'll have to give it some more time but I already think it combines all the futures I've hoped to find bundled in other spline solutions on the asset store.
    So keep up the good work and give us plenty of content rich updates.
    Cheers
     
    Dreamteck likes this.
  5. wadewt

    wadewt

    Joined:
    Mar 17, 2013
    Posts:
    14
    Hey, I quite like the tool, it's very straight forward to use and works nicely. I was wondering if there was any way to extrude a surface generator along a spline? Right now it only seems like I can extrude it in a straight line. I can always make my own shapes outside and use the mesh extrude so this isn't a big problem but I was just curious if there was a way to do this.
     
  6. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Hi wadewt,
    currently there isn't such functionality but we're planning to add it in a later version. The tool is updated frequently and we prioritize the tasks based on our clients' needs and requests so we'll make sure to include this feature in a next version as soon as possible!

    EDIT: This functionality has been added in version 1.0.3
     
    Last edited: Jul 12, 2016
    wadewt likes this.
  7. wadewt

    wadewt

    Joined:
    Mar 17, 2013
    Posts:
    14
    Hello Dreamteck :)

    Have been getting a bit more involved with the splines for a project and have come across an unfortunate problem. We're using mesh extrude to generate race tracks for our racing game and it works lovely so far with one exception: the mesh generated does not merge overlapping vertices. This has caused a lot of strange collision problems with the mesh collider being generated. Our current work-around is to export the mesh, open it up in blender and optimise the overlapping vertices, and re export. This is ok but it creates a lot of back and forth which can be annoying when you can't immediately playtest changes to a track.

    If this is something that could be fixed it would be wonderful.

    High fives,

    Wade.
     
  8. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Hi Wade, this is an issue we came across when we developed the tool and to our knowledge, these vertices cannot be merged because this would screw up the UV coordinates (since in Unity a mesh is represented with several arrays for vertex positions, normal directions, uvs etc.). Merging the overlapping vertices causes the UVs to get squeezed at the faces between the merged vertices and the other vertices of the mesh. So basically, if the UVs require a seam, all the vertices have to be split at that seam. The same thing happens with imported meshes, or at least to the extents of our research.

    We however have never had any issues with the generation and use of colliders for the meshes and collision has always been smooth. You can see that in the promo video (the part with the sport car driving along the generated road). We would be happy to assist with and further look at that issue so you are welcome to write to our support mail - support@dreamteck-hq.com and provide more information on the problem as well as screenshots/video/example scene if you feel the need to. We would be happy to take a look at the geometry of the model you're trying to extrude.
     
  9. nsxdavid

    nsxdavid

    Joined:
    Apr 6, 2009
    Posts:
    341
    Very nice spline system. I got results I needed right away.

    On thing is, I have a problem where I am using nodes to anchor points to parts of an animated character. It works, but there is something wrong in the update sequence and the spline lags behind the updating position of the nodes.

    This video demonstrates: https://drive.google.com/file/d/0B8s-MOIARkyQbHpZVWNHNXFVNHc/view

    You'll note that I have the tube generator set to Late Update and multithreading off. The issue, though, does not seem to be with the generator itself but rather the spline itself not being computed after the animation has moved things.

    David
     
  10. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Hi David, thanks for using our spline system, we're glad you like it!
    We have found and fixed this problem. Contact us at support@dreamteck-hq.com to get a new copy of Dreamteck Splines with this issue fixed until it goes live on the Asset Store (asset store approval usually take up to 5-10 days).

    The issue was with the Update calls + The script execution order. We didn't know that the execution order does not support derived classes and the order we had set was 1.Node, 2.SplineComputer, 3.SplineUser. However, after some debugging we realized that each spline user has to be added explicitly after the SplineComputer in the script execution order in order to work.

    EDIT: ISSUE FIXED SINCE VERSION 1.0.3
     
    Last edited: Jul 12, 2016
  11. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,577
    Is it possible to get the normal of the spline at a given point? I don't mean the direction to the next point but the lateral outward normal (and up if available) ?
     
  12. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Yes, absolutely. This is one of the key features of the system. Each control point has a normal and their normals are interpolated along the spline so yes. The Evaluation method for the spline returns a SplineResult object which provides that information.
     
  13. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,577
    Hows the garbage collection, as you mentioned SplineResult object? Thanks for replies.
     
    Dreamteck likes this.
  14. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    We have been profiling garbage collection quite a lot while developing and we still do. The SplineUser components cache the sample results from the SplineComputers in arrays and reuse these arrays so basically there isn't much allocation and deallocation going on when you're editing splines. Garbage collection occurs when the cache arrays have to be resized. So for example GC would occur when changing the precision of a spline or addind/removing control points after a mesh generator has been set to use it.

    If you're not using SplineUsers, you can use the Evaluate method of the Spline class which has an overload that takes an array reference as a parameter. This way no new arrays are created and the referenced array is only resized if there is a need to.

    In addition to Evaluate there is also EvaluatePosition which will only return a Vector3 point along the spline.
     
  15. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    The surface generator component can now extrude the shape along another spline! This is one of the upcoming features in version 1.0.3. extrude.PNG
     
  16. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,577
    Very nice. Have you considered giving it an optional Animation Curve property to control the fatness along the spline?

    Also: I assume you have a flip direction option just in case a spline was made the wrong way round which results in spline A's normals not being in the direction of spline B's normals?
     
    Dreamteck likes this.
  17. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    The clockwise direction problem is automatically resolved but there is a flip option for each mesh generator in the package as well as a double sided option. Since each control point can have it's own size and color, size is automatically interpolated and you can control the shape's thickness by modifying the sizes of the control points of the spline that the shape is extruded along. :)
     
  18. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Version 1.0.3 is out with a lot of bug fixes, some API redesigns and a couple of new features!
    We also made the API Reference and User Manual public so everyone can download and read through them before purchasing. Both documents can be found in the "Documentation" panel on the official page: http://dreamteck-hq.com/page/1
     
  19. Dark-Protocol

    Dark-Protocol

    Joined:
    Nov 19, 2011
    Posts:
    279
    Great work. V 1.0.3 solved all of my problems! Thank you, I'll make sure to leave a positive review :)
     
    Dreamteck likes this.
  20. hippocoder

    hippocoder

    Digital Ape Moderator

    Joined:
    Apr 11, 2010
    Posts:
    25,577
    Bought this a few days ago, but haven't used it yet. Looking forward to it, seems quite capable :)
     
    Dreamteck likes this.
  21. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Version 1.0.4 is now out on the asset store. We've made a major step forward with this new version. A lot of new features have been added and several critical bugs have been fixed.
    Here are some of the features:
    spiral.PNG The spiral primitive has been extended to support two radiuses interpolated with a curve
    collider2d1.PNG A 2D Collider generator component has been added

    A completely new junction system has been written from scratch:
    junctions.gif

    And a lot more features that you can see here:
     
  22. Dark-Protocol

    Dark-Protocol

    Joined:
    Nov 19, 2011
    Posts:
    279
    The new junction system is spot on! I really like the way this plugin is shaping. It has a lot of potential and I'm very interested to see what features you will be bringing in the future! So far it has saved me so much time with level design and adding path following functionality. Glad to see that you have added support for 2D colliders too! I'm personally not working on a 2D project currently but I see how that can be useful for future projects.

    One small problem I found with the new junction system: After entering several junctions I start noticing that the spline's precision decreases. It's probably a simple fix and you already know about that issue but just thought I'd throw that in.

    Keep up the good work!
     
  23. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Oops! Yes, we are aware of that issue and we have already fixed it but thank's for bringing it up! The fix will be available in the next version. Until then, if you need this fix earlier, you can always write to support@dreamteck-hq.com and get an unofficial early release with the issue fixed.
     
  24. Cogs_of_Fate

    Cogs_of_Fate

    Joined:
    Aug 13, 2016
    Posts:
    1
    This tool seems like it would be super useful for my project, and I've watched all the tutorials and looked through the manual but continue to have this issue where whenever I run my game the Spline Computer becomes disconnected from the Spline Follower. I link them up in the Inspector, and then every time I run the game the connection is immediately broken. This happens whether the Computer and Follower are on the same prefab or not.
     
  25. Dudledok

    Dudledok

    Joined:
    Oct 24, 2013
    Posts:
    110
    I am trying to create a road in a figure of eight shape and I have a question: How can I make a 3D path? The path generator works fine for 2D but I cannot extrude that to make it 3D. The surface generator only seems to be able to extrude the entire area contained within the spline, not just along the spline with a set thickness. Is this possible? (Also, the surface generator seems to be broken for a figure of eight shape)

    Edit: Extrude Mesh will do the job actually!
     
    Last edited: Aug 22, 2016
  26. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Version 1.0.5 is out!
    Major multithreading and junction fixes, optimization features, new editor features and a new ObjectBender component.

    The new ObjectBender component combines the mesh extrusion functionality of the MeshExtruder and the object positioning functionality of the ObjectController. It can bend a game object and all of its children along a spline. The object bender will position all of the objects in the hierarchy along a spline and will bend their meshes (both MeshFilter and MeshCollider). In addition to that, the ObjectBender can also bend other SplineComputers in the hierarchy. Each object's properties can be be set to allow bending of individual components.

    The Inception city bending effect, created with the ObjectBender:
    https://gfycat.com/FittingBitterArgentinehornedfrog

    Version 1.0.5 changelog:

    FEATURE: Added the ObjectBender component, used for bending Game Objects and their child objects
    FEATURE: Added a "Frame Selected" command for the spline points in edit mode with the "F" button.
    FEATURE: SplineUser components can now get the samples from other SplineUser components instead of sampling the SplineComputer from scratch
    FEATURE: Added a "Tangents" toggle for the mesh generator class that toggles the generation of the tangents for the mesh
    FEATURE: Added an "Optimize" toggle for the mesh generator class that toggles mesh optimization
    FEATURE: Nodes now offer an option to align along the spline at the point they are connected
    FEATURE: Added an Append dropdown menu which defines to which end of the spline the newly created point will be added
    FEATURE: Added a new normal look mode which points the normals of the selected points to their average center
    FEATURE: Added a new line primitive

    FIX: Fixed the precision loss of the SplineUser when entering junctions
    FIX: Creating prefabs with SplineUsers no longer causes the SplineUsers to lose their computer references
    FIX: Inserting and deleting points in the editor now retains the node connections of the Spline Computers properly
    FIX: Fixed memory leak in the editor while the game is in Play mode and a SplineComputer is selected
    FIX: Greatly optimized the multithreading performance by sleeping and interrupting the threads
    FIX: Editing a SplineComputer with a scale different from (1,1,1) no longer causes the spline to multiply it's size
    FIX: Splines get scaled properly when the SplineComputer is a child of another transform with a scale different from (1,1,1)
    FIX: Point tangents no longer get offsetted when a Node is connected to a spline
    FIX: Fixed the overlapping scene GUI when the scene view is too narrow

    API: SplineAddress no longer derives from ScriptableObject

    Hi Dudledok,
    Yes, if you want to extrude a road object along a spline, then Extrude Mesh is the way to go currently. We have plans to add a shell option for the mesh generators which will add thickness to the generated geometry in a future version. However we can't give an estimate when this will happen because we have other features with higher priority in the list.
     
    Last edited: Sep 7, 2016
  27. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Version 1.0.6 is out!

    Lots of new editor features and bugfixes! We have added the Symmetry mode and the Merging editor, you can read more about those in the user manual.
    We also have a new welcome screen that will help users learn what's new in each version easily, also help beginners get started and finally provide a convenient support form that everyone can use to contact us directly through the Unity Editor!​



    Version 1.0.6 changelog:

    FEATURE: Added a "By Direction" normal operation to the editor
    FEATURE: Selecting multiple points and editing the normals of one of them using the normal tool now udates the rest of the selected points
    FEATURE: Added the Symmetry tool in the editor
    FEATURE: Added the Merge splines tool in the editor
    FEATURE: The spline editor now shows an updated preview of the spline when in point creation mode
    FEATURE: The editor buttons in the scene view are now constantly enabled regardless of whether or not there is a selection
    FEATURE: The delete point tool can now remove spline points using drag-selection
    FEATURE: Added an "Add Node" option for the create point tool which creats and binds a node for each created point
    FEATURE: Added a delete node dialog for the point for points which are connected to nodes and are deleted
    FEATURE: Added a Travel method to the Spline, SplineComputer and SplineUser classes which travels along a spline with a given distance
    FEATURE: Added a Inverse Point Order button to the SplineComputer's editor

    FIX: Fixed SplineAddress.GetEvaluationValues returning null
    FIX: SplineAddress.Evaluate inaccuracy when there are more than one paths connected
    FIX: Morph states now update the connected nodes' positions
    FIX: The SplineRenderers that are children of non-spline objects now update when the parent object is manipulated in the editor
    FIX: Small performance improvements in the editor draw algorithm
    FIX: The create point grids now have a fixed size when editing in orthographic mode
    FIX: Appending new points to the beginning no longer causes the connected nodes to shift
    FIX: Fixed the issue with rotating objects when rotation is disabled in the ObjectBender component
    FIX: Fixed the IndexOutOfRange exception when evaluating bezier splines with no control points

    API: The "updateNode" parameter of SplineComputer.SetPoint() has been removed and replaced with a "space" parameter. Node updates are handled automatically
    API: The spline editor has been rewritten to support more flexibility for future expansions
    API: Added two optional parameters to the SplineFollower.AddTrigger to set the trigger position and type
    API: Added two optional paramters to the LengthCalculator.AddEvent to set the event's target length and type

    For some reason this thread is rather inactive but we already have a nice customer base and they contact us every day with questions and feature requests. Keep in mind that because customers are contacting us mainly through our support e-mail and the contact form on our website, we are a more responsive there and less responsive here so if you ask a question or submit a bug report in this thread, it might take a day or two for us to answer back.

     
    hippocoder likes this.
  28. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    eses and zyzyx like this.
  29. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Version 1.0.7 is out!
    Version 1.0.7 focuses on the SplineFollower component since it's the most widely used one. It adds functionality for following with rigidbodies, as well as custom rotation and offset regions. Some editor bugs from 1.0.6 have been fixed like the failure to update after Undo is performed.
    Other features include the overhaul of the Extrude Mesh component which can now use multiple meshes.
    1.0.7. changelog:

    1.0.7
    FIX: Fixed the ArgumentOutOfRange exception when the spline is in Linear mode without any control points and "Create Point" mode is on
    FIX: Fixed the building problem with Windows Store apps - WSA don't support multithreading
    FIX: Fixed point update when the the Presets & Primitives window is used (broken in 1.0.6)
    FIX: Fixed the ArgumentOutOfRange exception in the Editor when a SplineUser is set to sample another SplineUser
    FIX: Spline points properly update when Undo/Redo is performed
    FIX: The Dreamteck folder can now be moved in another folder without Dreamteck Splines losing its resource paths
    FIX: Briging down the resolution of the SplineFollower to zero no longer throws an exception
    FIX: The custom editor GUI now properly initializes through a static constructor
    FIX: Fixed the clip range on the SplineUser class not updating properly when clip values are set to 0 and 1
    APIL All scripts' line endings have been converted to UNIX (LF)

    FEATURE: Optimizing meshes has been removed as an option from the MeshGenerator classes due to Mesh.Optimize() being removed from Unity 5.5
    FEATURE: Added a physics mode to the SplineFollower for working with 2D and 3D Rigidbodies
    FEATURE: Applying position, rotation and scale in the SplineFollower and SplinePositioner is now done per axis
    FEATURE: Added the capsule primitive
    FEATURE: Added the rounded rectangle primitive
    FEATURE: Added custom rotation modules to the SplineFollower and SplinePositioner components
    FEATURE: Added cap meshes to the ExtrudeMesh component
    FEATURE: Added multiple meshes to the ExtrudeMesh component (Ordered and Random iterations).
    FEATURE: Added round caps to the tube generator
    FEATURE: Created a precise scene view editor for the clip range of the SplineUser
    FEATURE: The Level Terrain tool now has a clip range for the spline
    FEATURE: Added an Update components tool which forces all or certain components in the scene to be rebuilt

    API: Renamed SplineFollower.startPercent to SplineFollower.startPosition
    API: Renamed SplineFollower.findStartPoint to SplineFollower.autoStartPosition
    API: Added a motion property to the SplineFollower and SplinePositioner to control how the transformation is being applied
    API: Added an offsettedPositionResult property to the SplinePositioner which returns the spline sample with applied offsets.
    API: Added a CalculateLength method to the SplineUser class
    API: Added a public ResampleTransform method to the SplineComputer class which forces the computer to immediately resample its transform

     
    pixelsteam likes this.
  30. LukeWaffel

    LukeWaffel

    Joined:
    Jun 21, 2013
    Posts:
    12
    Hi, I have a question about the product. Is it possible to combine different Splines into one? Let's say I have 4 different that the user can place, and each of them has a separate spline attached to them. Would there be a way I can connect all the four different splines via a script?

    Thanks in advance :)
     
  31. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Hi Luke,

    Yes, you can certainly do that. In the editor you can use the merge spline functionality and in script you would just have to combine all splines' points:

    Let's say you have:

    Code (CSharp):
    1. public SplineComputer spline1;
    2. public SplineComputer spline2;
    3. public SplineComputer spline3;
    To combine them in one you would do:

    Code (CSharp):
    1. SplinePoint[] allPoints = new SplinePoint[spline1.pointCount + spline2.pointCount + spline3.pointCount];
    2. spline1.GetPoints().CopyTo(allPoints, 0);
    3. spline2.GetPoints().CopyTo(allPoints, spline1.pointCount);
    4. spline3.GetPoints().CopyTo(allPoints, spline1.pointCount + spline2.pointCount);
    This will combine all points in one array. Then you assign the new array of points to one of the splines and remove the rest of the splines:

    Code (CSharp):
    1. spline1.SetPoints(allPoints);
    This example will connect the three splines but if the splines' points are overlapping, then you might want to remove the end point of all splines except the last one before adding them to the allPoints array.

    Keep in mind that we are more responsive on support@dreamteck.io :)
     
  32. SecondCobra

    SecondCobra

    Joined:
    Jan 25, 2017
    Posts:
    11
    Hi guys, great tool, I have a question though. When placing objects on the spline using Nodes, the object is placed on the spline point, not on the spline itself. This is fine for Beziers and Hermites but not for B-splines where the spline does not necessarily pass through the point. Is there an option I'm missing that would allow this or do I need to extend a class to draw my object on the spline?
     
  33. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Hi SecondCobra, glad you like the tool!
    BSplines only approximate the control points. Only the end points are interpolated if the spline isn't closed so that behavior is expected. What exactly are you after, there is probably a workaround to it.Drop us a line at support@dreamteck.io and we can talk all about it!
     
  34. wxxhrt

    wxxhrt

    Joined:
    Mar 18, 2014
    Posts:
    139
    Hi @Dreamteck is it possible to animate a shape extruding along a path in engine rather than in editor? Thanks
     
  35. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Hi wxxhrt,

    Yes, Dreamteck Splines provides all the functionality that the editor does in runtime. You can animate it by incrementing the clipFrom and clipTo values with a script or animate them with an animation.
     
  36. wxxhrt

    wxxhrt

    Joined:
    Mar 18, 2014
    Posts:
    139
  37. sjm-tech

    sjm-tech

    Joined:
    Sep 23, 2010
    Posts:
    685
    Hi, just bought and after a few minutes of testing i can confirm that is a very complete package. I'm having fun with it!
     
    Dreamteck likes this.
  38. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Thank you I'm glad that you like the package. You can drop us a line at support@dreamteck.io and we'll send over the latest unofficial version which includes some fixes. We have submitted this version for review on the Asset Store but it will take about a week for it to get published there :)
     
  39. sjm-tech

    sjm-tech

    Joined:
    Sep 23, 2010
    Posts:
    685
    Thanks Dreamteck! EMail sent.
     
  40. SecondCobra

    SecondCobra

    Joined:
    Jan 25, 2017
    Posts:
    11
    Hi Dreamteck, I was hoping that I could attach a node object to a point on the spline curve rather than the actual point. I've attached an image of a b-spline and a green circle showing where I'd like to attach a node. In my case, I'm trying to draw a pipe which may have a join mid-bend. The b-spline is a easiest one to use for the bends I need, but it seems to be the only one where the curve does not pass through the points. point_on_b_spline.png
     
  41. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Hi SecondCobra,

    So I already answered you on e-mail but just to post the answer here:

    In your case you will need to use a SplinePositioner component to position the object along the spline approximation. The position percent property of the positioner should be set to the index of the point you want the object to go to divided by the total count of points minus one so for example if you want to go to point 3 and you have 10 points -> 3/(10-1) = 0.333

    We are working on an editor feature that will enable users to place single objects along the spline in the editor without the need of a component.

    - Mitko
     
  42. plokkum

    plokkum

    Joined:
    May 28, 2013
    Posts:
    76
    Hi Mitko,

    Loving your plugin. Would you happen to have a quick fix for the plugininfo window that keeps popping up empty (sometimes I get up to about 10 instances of the window, with a black and empty background).
     

    Attached Files:

  43. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Hi, Thank you!
    We already have a fix for that. I assume that you are using Unity 5.2 or 5.3 This is a compatibility issue that we have patched up. Drop us a line at support@dreamteck.io and we'll send you the fix.
     
  44. YoLaBengo

    YoLaBengo

    Joined:
    Jul 12, 2015
    Posts:
    6
    Hi, I've recently downloaded this plugin and hoping to use it with an existing project.

    For some reason, it won't import into my current project and I end up with the Fatal Error ''CheckDisalowAllocation. Allocating memory when it is not allowed to allocate memory.''

    I have tested this with Unity versions 5.4.3 and 5.5.0 with the same results. It imports correctly in new clean projects, but seems to have trouble with this current project. Have you run into anything like this and do you know any possible fixes?

    Thanks,
    Ben
     
  45. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Hi Ben,

    This is a strange problem and we have never had it nor have any of our customers reported a similar issue. A quick Google search showed that other people are getting this error too but in different circumstances. I guess it will require a longer investigation.

    I'll send you a personal message with a link to another version of the plugin for you to try to import.
     
  46. Zilk

    Zilk

    Joined:
    May 10, 2014
    Posts:
    266
    Hi,
    Great plugin, really smooth and easy to work with. However I noticed some garbage creation when using the Spline follower. It's not a lot but still a bit annoying seeing the plugin otherwise is awesome.
     
  47. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Hi Zilk,

    We are working on reducing the GC in the upcoming update. We were focusing on the base methods inside the Spline and SplineComputer classes but thank you for letting us know about the Move method, we'll check it out!
     
    Zilk likes this.
  48. wolfen231

    wolfen231

    Joined:
    Apr 22, 2014
    Posts:
    402
    Hi there. How do you get points on the splines to snap to a grid? I am using progrids and want them to snap to that grid.
     
  49. Dreamteck

    Dreamteck

    Joined:
    Feb 12, 2015
    Posts:
    228
    Hi, there is currently no grid snapping functionality and we are going to address this issue as soon as possible and release version 1.0.74 that will include it.

    Currently we are waiting for version 1.0.73 to get published on the Asset Store which should happen in a matter of several days.
     
    wolfen231 likes this.
  50. sjm-tech

    sjm-tech

    Joined:
    Sep 23, 2010
    Posts:
    685
    1.0.73 is up now :)
     
    Last edited: Apr 7, 2017
    Dreamteck and wolfen231 like this.