Search Unity

Spline Power! - the lofting tool [RELEASED]

Discussion in 'Assets and Asset Store' started by MaxEden, Jun 22, 2014.

  1. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Hello everybody! I've made a handy lofting tool that I mostly use for roads, but I made sure it's usable for everything.




    One of the features is the ability to use separate cap meshes on the ends. The other is generating collider and render meshes separately.

    Full feature list:
    ✩ Caps support to make ends look neat.
    ✩ Multiple mesh output supported.
    ✩ Seamless looping.
    ✩ Powerful post-processing.
    ✩ Static and dynamic mesh generation
    ✩ Export to OBJ or as asset.
    ✩ Source code included.
    ✩ Full documentation and support.

    Asset store page
    Docs
    Demos


    ----
    Big updates ;) SOON-ish

    v1.4 available

    Good news everyone!:)
    It appears that handwritten mesh combining works much faster than the native one, somehow.o_O
    No more managed garbage, no more serialization garbage and it works much much better!

    -Vertex buffer overflow is prevented
    -Mesh combining code is rewritten
    -Unnecessary serialization garbage is eliminated
    -Small fixes

    v 1.31

    -New features
    -A lot of optimizations
    -Docs are updated

    Bugs/Suggestion are welcome!
     
    Last edited: Aug 17, 2021
    twobob likes this.
  2. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    Okay, I'll post. Congrats on the release. will grab and have a butchers.

    Currently using a modded version of "It's a Road Tool" (I modded it to make it do exports), and "BuildR Track" tool for these types of jobs. Hopefully yours will not be as fiddly as "It's A Road Tool" (slope interception eugh), and a bit less heavy than BuildR.

    Fingers crossed. - There, I just bought it.
     
  3. Arkade

    Arkade

    Joined:
    Oct 11, 2012
    Posts:
    655
    Hi
    Hope it's not too rude to ask for comparison but could you give a few words to distinguish your solution from other similar ones, e.g. Curvy
    Thanks
     
  4. JoeW97

    JoeW97

    Joined:
    Nov 3, 2013
    Posts:
    56
    Hi,
    Could you post a step-by-step guide for how to make any simple example. I've looked at the docs - there's good detail, but no clue how to setup your first attempt. Are the meshes included with the package sufficient to learn how to use it?
    Thanks.
     
  5. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Hello everyone!
    Hope you like it. New version is coming, so I'm open for suggestions.
    Actually pretty impressive, I've never seen this asset. The main idea of SP is that it's not about splines themselves, it's not about procedural generation, it's about modeling one piece and then laying it along the curve. It gives you more artistic flexibility, I guess.
    Yeah, I should make a manual. I'm pretty sure the meshes in package are sufficient. The simplest demo scene is Rails Demo, the simplest mesh prepack is road.FBX.
    Rails demo doesn't contain much. SplineFormer is the main component that generates mesh. Drop segment mesh and Mesh Filter (or Mesh Collider) on the first lofting group and it's ready
    road.FBX contains all the elements that are used in the road, so there you can find how to prepare meshes.
     
    twobob likes this.
  6. FlashMuller

    FlashMuller

    Joined:
    Sep 25, 2013
    Posts:
    451
    Do I read correctly that you can generate the meshes at runtime (thinking about building rails or streets in a SimCity manner). Is it quick enough to perform that on mobile?
     
  7. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Yes, as far as you don't regenerate them on every Update call. In current alpha I use it my mobile karts project to generate tracks at runtime, it saves a lot of package size.
     
    Last edited: Dec 27, 2014
  8. puzzlekings

    puzzlekings

    Joined:
    Sep 6, 2012
    Posts:
    404
    Hi,

    Picked this up yesterday and it looks pretty impressive.

    However docs are a bit confusing and I am wondering about two key things here:

    1 - Is it possible to click on the control points of a node (small yellow spheres) to control the curvature? If not why are they there?

    2 - When it talks about lofting is it a mesh or can it use a 2D polygon (which tools like Cheetah use)?

    It would help if the docs made this clearer.

    Also a 1 minute video starter would be very helpful.

    cheers

    Nalin
     
  9. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    Note that the lofting path will go through the source mesh pivot. Therefore, if you wish your caps fit perfectly, the floor will be floor, and won’t any wrong lofting artifacts, consider the positions of the meshes pivots.

    What does that mean? I'm pretty certain I should be able to understand it. However I can't.
    Any clues :)

    Are you saying "To make your resulting generated meshes stick to the floor: Ensure those meshes are authored with the pivot positioned at 0,0,0" because that would make sense.


    Also: I note that there is a consistent garbage dump while running the Rails demo, can that be trimmed out? I really don't like runtime garbage if it can be at all avoided. and it's a cool example. In addition, the Rails demo spikes out a 113ms update (pictured)
    profiler.JPG

    I simplified the example down to 3 and dug into why there were very large spikes, even at that scale. Answer. Garbage.

    garbage.JPG

    Such spikes are pretty unusable when combined with "real gameplay" elements.

    Under stress you can see that garbage mounding up.
    StressTest.JPG

    It is to be noted that the updates did not fare much better - even at these low numbers - circa 20 ms is unusable for anything other than a demo. certainly not "in-game"
    slow.JPG


    So, on the larger scale can we make those updates sub 10ms (at worst)
    and on the smaller scale can we rid the garbage hiccups.


    Given how breathtakingly awesomely fast your other demos is.
    fast.jpg
    Shame not to make the entire offering super performant

    One final thing. I note that one of the mesh filter slots in the Kart demo Road thingy appears to have no name. ( I am probably misunderstanding it and it's controlled by script or something) Should it have a name? or does that mean it is "script controlled/procedurally generated"?

    Laterally: It would be nice to be able to generate out mesh names based on the parent gameObject plus the time or something sensible for easier taxonomy, we have a search system, crime not to empower it.

    something like

    gameObject.name.Replace(' ', '_') + @"/" + gameObject.name.Replace(' ', '_') + MagicallyHelpfulReference+ ".asset");
    but actually useful. lol. (or however you do it)

    (for the interested I put a worked - useless - pseudo example, don't ask someone to do something you are not prepared to at least try to learn to do yourself.)
    Code (csharp):
    1.  
    2.    // pseudo internal mesh methods for clarity
    3.     Mesh m = new Mesh();
    4.      m.vertices = v.ToArray();
    5.      m.triangles = t.ToArray();
    6.      m.uv = CalculateUV(m.vertices);
    7.      m.RecalculateNormals();
    8.      TangentSolver(m);
    9.      // ok we have a mesh
    10.  
    11. #if UNITY_EDITOR
    12.   if (CreatingPrefab)
    13.   {
    14. // we could use a stringbuilder instead but this is clearer for an example
    15.  
    16.   string generatedPath = Application.dataPath
    17.    + @"/" + meshPath + @"/"
    18.    + gameObject.name.Replace(' ', '_');
    19. // plus a datetime or something helpful like autosequence
    20.  
    21.   // we might need this - depending on Taxonomy option requirements,
    22.   // we really should be more defensive when doing stuff like this, again this is an example
    23.   System.IO.Directory.CreateDirectory(generatedPath);
    24.  
    25. // So make a reasonably sensibly named asset that we can search for later.
    26. // ideally we would date stamp this here, check for any problems in naming,
    27. // and do other tidier error handling...
    28.   AssetDatabase.CreateAsset(m,
    29.    @"Assets/" + meshPath
    30.    + @"/" + gameObject.name.Replace(' ', '_')
    31.     + @"/" + gameObject.name.Replace(' ', '_')
    32.     + ".asset");
    33.  
    34.   AssetDatabase.SaveAssets();
    35.   AssetDatabase.Refresh();
    36.   }
    37. #endif
    38.  
    39.      // real-world we would want this assigned, probably, at this point
    40.     // regardless of if we are about the render out the asset.
    41.      gameObject.GetComponent<MeshFilter>().sharedMesh = m;
    42.      gameObject.GetComponent<MeshRenderer>().sharedMaterial = mat;
    43.  
    44. #if UNITY_EDITOR
    45.   if (CreatingPrefab)
    46.   {
    47. // Now we use the relative paths and match up that unique name we just created
    48.   var emptyPrefab = PrefabUtility.CreateEmptyPrefab(@"Assets/" + prefabPath + @"/" + gameObject.name + "_Prefab.prefab");
    49.  
    50.   PrefabUtility.ReplacePrefab(gameObject, emptyPrefab);
    51.   }
    52.  
    53.   #endif
    54.  
    55.  

    Thanks.


    EDIT: Further digging indicates you might consider the "Weld Close Vertices" methods a possible target for greater optimisation.

    A bit of defensive programming on your interface might not hurt neither:
    Stress test popped out.
    Code (csharp):
    1.  
    2. count <= std::numeric_limits<UInt16>::max()
    3. UnityEngine.Mesh:CombineMeshes(CombineInstance[], Boolean, Boolean)
    4. SplineFormer:RebuildMesh(LoftingGroup) (at Assets/SplinePower/SplineFormer.cs:485)
    5.  
    so perhaps clamp the number limits
     
    Last edited: Dec 28, 2014
  10. blastone

    blastone

    Joined:
    Apr 7, 2009
    Posts:
    168
    can this be used to create hard edges?
     
  11. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    They are just a visual representation of tangent nodes, they are handy for people who worked with bezier curves before.
    SP uses bezier inside, but it's still a spline. Now you can only change curvature coefficient on spline former component, it changes position of tangent nodes. In new version you will be able control tangent coefficient of every node individually.
    Can you please give me a link on that tool?
    I'll think what I can do.
    Yes, it does make sense. But it's more about general positioning.
    If path is a thread and source mesh is a bead, then pivot is a center of the hole in in the bead.
    For example, I added palms on a side of a road, palm element pivot is at [0,0,0], but mesh itself is far on the left.
    Or for example, the collision mesh in road.FBX consists of three elements, their pivots are not at [0,0,0], but in the same position, so they snap together fine.

    For those who's not sure what pivot is:
    You can see meshes pivots if you enable pivot mode. It's a mesh origin.



    Yes, it's just a demo. It's not a skinned mesh, every time you refresh parameters it leads to full mesh regeneration.
    Mesh regeneration is not terribly slow, but it's costly. Algorithm have a lot of calculation, works with every vertex individually. It also uses temporary meshes so it may cause garbage collection. I would not recommend to regenerate it in every frame.
    Still I'll think about what I can do.

    Ok, I'll implement it.

    My old nemesis, I optimized it a little bit in current version. Please wait for it.
    Christmas miracle necromancy caught me off guard and code is pretty rusty.



    Yes, kind of. Lower curvature coefficient.
     
    Last edited: Dec 28, 2014
    twobob likes this.
  12. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Couple of questions to make it clear:
    On what event you want to serialize generated mesh?
    Or you just want to extend "Save to Asset" function?
    Or this is some kind of auto-save?
     
    twobob likes this.
  13. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    Honestly, they are very good questions that I am not 100% sure I am qualified to answer before using the package more.

    I would say - on reflex - simply extend the existing save to asset.
    Auto save is always nice to have but procedural meshes are not a big loss to recreate.

    Just auto-naming suggestions I suppose for the export. More auto-taxonomy is /generally/ better :)

    Thanks very much
     
    MaxEden likes this.
  14. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
  15. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Oh, I guess I understood. You mean like profile extrusion.
    No, it can't use 2D profiles, but you can make mesh element like this.
     
  16. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    Hi Max,

    small bug:

    Export a model:
    Give it a name

    The report says the old name:
    wrong.JPG

    but the asset is the right name:
    right.JPG

    Cheers.

    No Doubt this will get tidied up when you sort out the autonaming/pre-selected folder business but worth noting for then.
     
  17. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Fixed. Will be included in 1.32.
    1.31 is pending review.
     
    twobob likes this.
  18. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    cool. can we have an option to just print that to the console (via Error.Log or w/e) rather than requiring an OK click. I really dislike workflow that adds needless clicks.

    much obliged.
     
  19. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Ok, I'm going to implement export settings
    Current options:
    -Default export folder,
    -Extended naming,
    -Silent output,

    Any suggestions are welcome
     
    twobob likes this.
  20. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Version 1.31 is available
    -New features
    -A lot of optimizations
    -Docs are updated

    Bugs/Suggestion are welcome!
     
    twobob likes this.
  21. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    New version is committed :). Details are in the header
    v1.4
    -Vertex buffer overflow is prevented
    -Mesh combining code is rewritten
    -Unnecessary serialization garbage is eliminated
    -Small fixes
     
    twobob likes this.
  22. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Ok, it looks like I lost pair of my customers.:(
    I'm not sure why I can see some reviews only in RSS feed, but anyway I hear same complains/features twice

    - Creating a Rollercoaster track with loops doesn't work, causes gimbal lock
    Reproduced. Can be fixed with some constraints. SP assumes that spline has more curvature in horizontal space and tries to bend it respectively. I actually can fix it for vertical space, but not for both vertical/horizontal. Actually I can think of one solution.

    - Needs ability to copy or make children of existing transform points.
    Reproduced. You cant make copies of nodes, because they need to be initialized and have some other context properties, such as order. You can split node buy pressing "Split" button in the spline node inspector.
    >make children of existing transform points
    I'm not sure what is the issue. Nodes shouldn't interfere with hierarchy at all. You can put them in each other or in other objects and vice versa. If there is a case when it's broke something I would like to know about it.

    - Utility to calculate spline length or distance between nodes would be helpful
    Doable
    - Conforming spline to terrain or terrain mesh would be useful
    Doable
    - Can you add a feature that will allow objects to be added to the side (tangential offset) of a spline instead of only the middle?
    Doable

    Any thoughts about these features? Any other complains? Any use cases? Any ideas of what you like to see in SP?
     
    twobob likes this.
  23. twobob

    twobob

    Joined:
    Jun 28, 2014
    Posts:
    2,058
    Hmm. Just the bugfixes initially would be excellent.

    Much obliged :)
     
  24. m_mov_sia3

    m_mov_sia3

    Joined:
    Apr 28, 2013
    Posts:
    3
    hey max
    I have a problem with "splinePower" and texture painting.
    I made a road in my scene that created by splinePower, and I wanna paint it by vertexPainter to make my road more realistic. but there looks some bug!!
    painting on the road is possible but after running the game, all of paintings will going delete! I tested by two different painting packages but no success!
    any idea max?!
     
  25. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Of course :). You see the road is dynamically generated, that means that the mesh of the road you created is not persistent. The mesh rebuilds after each parameters change and on every component recreation.
    If you want to make some changes and keep them after mesh generation, e.g. vertex painting, you may save the result mesh as asset and work with it.



    If there are any question left, don't hesitate to ask.
     
    twobob likes this.
  26. m_mov_sia3

    m_mov_sia3

    Joined:
    Apr 28, 2013
    Posts:
    3
    thanks for your reply max!
    but I had a plan to change the package codes to let the player change the road dynamically in Run mode. so I wanna build a road in editor and paint on it then let the user to change the road shape in game!
    so it seems that I cant do this by "splinePower" package?
     
  27. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Sorry, but no you cant do this in the current state. I doubt any dynamically generated mesh can adequately save such info as vertex colors since number of vertices can change dynamically. I'd recommend to use textures, but then again codes are open, changes are welcome. Wish you luck with your goals!:)
     
  28. mensch-mueller

    mensch-mueller

    Joined:
    Nov 25, 2014
    Posts:
    156
    Hey MaxEden!
    I looked at your asset for a while now and the ability to loft a mesh with assigning different caps for the end parts is really special and i would really like to use it.
    But, I need the ability to loft from a beginning point to an end point dynamically!
    And is it possible to use your spline for other tasks, as moving an object on? Possibly with absolute length mapped to a value from 0 to 1.
    In ZBrush I have the IMM Brushes, where a geometry is divided in 3 polygroups and the middle part is lofted on a sketched spline. Is it possible to use on .obj with three polygroups saved out of ZBrush to loft in future?

    Just my suggestions;)
    Happy Easter!
     
  29. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Hi, mensch.mueller!
    The new core is fast and doesn't allocate unnecessary objects, so I think it's ok for dynamic regeneration now. Of course it depends on how heavy on polys the result mesh is.
    No, it's not implemented for now. If you'd like to see such feature, I'll add it to the feature request list.
    If polygroups export like submeshes then of course. For example, road.FBX contains 6 submeshes: 3 for renderer, 3 for collisions.

    Same to you, mensch.mueller!:)
     
    twobob likes this.
  30. mensch-mueller

    mensch-mueller

    Joined:
    Nov 25, 2014
    Posts:
    156
    Hi MaxEden!

    Just to be clear with my suggestion of lofting from beginning-point to end-point: I would like to have the ability to loft from say 0 to 0,5 on the generated spline and then animate the end-point of lofting to 1. Is this possible in the near future?
    And can I expect your spline-system to do things like moving objects?
    And what about generating UVs?

    Thanks a lot!
    Michael
     
  31. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    What's the use case? So I could think what I can do.
    If you positively need it I could implement it. It looks doable.
    What about them? For now generated mesh uses the source mesh UVs. What would you like to see?:)
     
    twobob likes this.
  32. dibdab

    dibdab

    Joined:
    Jul 5, 2011
    Posts:
    976
    hello Max,
    I see SplinePower is capable of doing circular meshes by having the first and last node in the same position and checking loop, which is nice, but
    could be made something like 'snapping to' vertices (like in unity), for if you have 2 roads coming from/to interjunction? it cannot be done with one spline, I guess
    Clipboard01splinepower.jpg
    also, I had a bit of a problem making it work
    see, there's mesh applied in Segment Mesh in all of them but only the prefab (road_piece) works which has MeshFilter applied too (road lg#0 result), so its a bit confusing... what would be the good way to go about the Mesh Filter? if I drag another prefab in, it's using the same meshfilter, but it conforms to spline individually so its all good... I also tried applying the crossroad to end piece...
    this you can see in this picture and what I'm getting at
    Clipboard01splinepower2.jpg
     
  33. dibdab

    dibdab

    Joined:
    Jul 5, 2011
    Posts:
    976
    so I see this
    Clipboard01splinepower3.jpg
    and this is because its that
    Clipboard01splinepower3c.jpg
    ....
    its almost possible to adjoin them by hand
    but its still uneven
    Clipboard01splinepower3e.jpg
    can be done though
    Unity 2015-04-15 23-20-13-78.png
     
    Last edited: Apr 15, 2015
  34. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Hi dibdab!
    Intersections, yes, I thought about it a lot. There is no clean way for now to do that, so I, for example, make a little overlap. Since renderer and collider are separated it works ok with simple collision meshes.
    Or if you definitely need precise snapping and don't need the dynamic part you can export it as a mesh and polish it.
    I didn't quite understand the issue, sorry.
    If you are confused about using mesh filters then I'll try to explain.
    Mesh filter is a container for one result mesh. MeshRenderer uses it to draw one mesh so they are paired in most cases.
    In SP you can setup which mesh filter to use for the output. So you can actually use separate objects with the same spline.
     
  35. dibdab

    dibdab

    Joined:
    Jul 5, 2011
    Posts:
    976
    hi! yeah, that's a good thing, I would need paint on the road and would use decals with the same spline (hope it'll work).
    about meshfilters: I ended up making copies of the roadpiece prefab. (there needs to be some export meshfilter, otherwise it overwrites the original meshfilter, isn't it.)
    .
    about the crossroads: isn't it possible to (have a version of the script where) it has a centerpiece which is not affected by the segmentation and only the end piece and the start piece would follow the spline? then you'd make it loop like with the circle. (still it would need caps though.) just an idea.
     
  36. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Well, yes. It clears previous data before each regeneration.
    It is possible, but there are issues with it:
    First, intersections can be anywhere on the road.
    Second, you need somehow to snap the crossroad to it. The reason why circle works so well is that in the loop mode the start element and the end element are bended the same way, they have same distortion in every point, so the result is seamless. So for the clean solution there need to be some components that work with multiple splines, consider distortion by each of the spline and then process the intersection element respectively. And that's all taken in mind that the intersection element should be marked somehow where axises of the roads should be.:confused:
    So maybe there is a simple solution, but I don't see it for now.
     
    twobob likes this.
  37. unitychristy2

    unitychristy2

    Joined:
    Sep 8, 2013
    Posts:
    38
    Hi, I am looking for a tool to create a race track in unity. The meshes that this creates can they then be posted on the Unity store for sale as part of a full 3d environment. Or to put it another way the assets that get saved that I have created are they dependent from your code once created.
     
  38. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    If you export it as a mesh(Save to obj/Save to asset) and it won't contain any SP components then of course you can sell it, like with any 3d modeling tool.:)
     
  39. unitychristy2

    unitychristy2

    Joined:
    Sep 8, 2013
    Posts:
    38
    Hi,
    I have been getting somewhere with Spline Power today,
    My loop spline, works for about 10 seconds then recursively gets more complicated. How do I prevent this.?

    Also what should I set as mesh filter, your description of this has left me confused.?

    thanks
     
  40. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Can you rephrase that, or just add a screenshot?
    Well a MeshFilter component which should contain a result mesh.
    Yeah, unity docs don't explain much.
    Maybe that video could help https://unity3d.com/learn/tutorials/modules/beginner/graphics/mesh-renderers-and-filters
     
  41. unitychristy2

    unitychristy2

    Joined:
    Sep 8, 2013
    Posts:
    38
    HI all sorted, 5 stars given, a dummy with a mesh filter was needed by myself for the new model.
     
  42. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    It looks like a curvature distortion. Try to enable quadratic smooth or just to add intermediate nodes so the angle between two segments wouldn't acute.


     
    twobob likes this.
  43. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Glad everything is fine, don't hesitate to ask.:)
     
  44. JBR-games

    JBR-games

    Joined:
    Sep 26, 2012
    Posts:
    708
    Hi Im have an issue with spline power seems to be freezing up every time I make any attempt to adjust settings. is this an issue with the newest version of unity 5.1 ?
     
  45. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Honestly didn't notice any issues. Is it freezing in every demo or just in some particular project?
     
  46. ArsKvsh

    ArsKvsh

    Joined:
    Dec 13, 2014
    Posts:
    17
    I'm having the same problem when I create a new spline. But when I copy some spline from one of the demo scenes and then paste it in some of my own scenes everything works properly. Also I can't disable spline looping if I enabled it before. Hope that issues would be fixed ASAP. Thanks to developers in advance.
    P.S. Sorry for possible mistakes in English.
     
  47. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82
    Hi! I still can't freeze it, but I see some not so smooth upgrades, and I see what you mean by "can't disable spline looping", nodes don't restore their positions after the "loop" checkbox disabled. Or am I really wrong and everything just freezing up?
    Anyway I'll do the upgrade ASAP.
    If you see any other bugs/annoyances please post them.
     
  48. ArsKvsh

    ArsKvsh

    Joined:
    Dec 13, 2014
    Posts:
    17
    It would be better if I would provide screenshots, I think:

    I tried to click "Refresh", but nothing changes.
     
  49. MaxEden

    MaxEden

    Joined:
    Jun 22, 2013
    Posts:
    82

    Just try to drag the nodes apart. Or they are frozen?
     
  50. ArsKvsh

    ArsKvsh

    Joined:
    Dec 13, 2014
    Posts:
    17
    Oh, yes, I can move them. I thought that node at the end would be automatically deleted after disabling.
     
    twobob and MaxEden like this.