Search Unity

Unity needs a first-class Spline tool. Enough is enough!

Discussion in 'Editor Workflows' started by shawnblais, Oct 15, 2020.

  1. shawnblais

    shawnblais

    Joined:
    Oct 11, 2012
    Posts:
    324
    Last edited: Oct 15, 2020
  2. AndrewKaninchen

    AndrewKaninchen

    Joined:
    Oct 30, 2016
    Posts:
    149
    They're actually implementing one. Can't remember when it was announced, but it's coming before the Sun explodes, probably.
     
  3. dannyalgorithmic

    dannyalgorithmic

    Joined:
    Jul 22, 2018
    Posts:
    100
    Easily the best comment in a while.
     
    frarf, Lionious and shawnblais like this.
  4. dri_richard

    dri_richard

    Joined:
    Mar 10, 2017
    Posts:
    153
  5. AndrewKaninchen

    AndrewKaninchen

    Joined:
    Oct 30, 2016
    Posts:
    149
  6. shawnblais

    shawnblais

    Joined:
    Oct 11, 2012
    Posts:
    324
    If anything, we need spline tool now more than ever with the incoming apocalypse... Come on Unity guys, just copy UE4, we'll all be happy! Ok... and integrate into terrain... and cinemachine... but that's it, then we'll all be happy :D
     
  7. TJHeuvel-net

    TJHeuvel-net

    Joined:
    Jul 31, 2012
    Posts:
    838
    But why, there are so many great plugins that do this? Why would you want Unity to solve this again?
     
  8. AndrewKaninchen

    AndrewKaninchen

    Joined:
    Oct 30, 2016
    Posts:
    149
    Was this ironic? If not, well, there are more reasons, but this one is enough: standardization. Splines are waaaay to ubiquitous in games nowadays for them to not have a native implementation with shared code and UX across its uses.
     
    RogDolos, Meatloaf4, MaxPirat and 3 others like this.
  9. TJHeuvel-net

    TJHeuvel-net

    Joined:
    Jul 31, 2012
    Posts:
    838
    Its not ironic in the slightest. I'd much rather have competition, several different packages that solve the issue differently. That way everyone can pick the solution that best fits their problem.

    You're right, this does mean there is no one gold standard. That is one downside, that i'm personally ok with. I dont understand why i'd ask Unity to solve an issue that has been solved on the asset store a hundred times over.
     
    Last edited: Oct 21, 2020
  10. koirat

    koirat

    Joined:
    Jul 7, 2012
    Posts:
    2,073
    Having a spline and means to edit it are two different things.

    I think unity should have splines built in.
    They can start with some simple ways to edit them, what is important is that data stays compatible and is open for tools creators.

    If you need sophisticated way of edition than you would be welcome to use some different editor than provided.
     
  11. adamgolden

    adamgolden

    Joined:
    Jun 17, 2019
    Posts:
    1,555
    "We plan to release a public generic spline API as part of our 2021 release (exact timing tbd). This will enable you to create and edit different types of 3D splines in the Unity Editor. The first feature to use that new API will be Cinemachine for setting up camera paths. Other features will use this generic API and follow soon after."
    https://blogs.unity3d.com/2020/08/13/the-road-to-2021/#comment-427477
     
    LooperVFX likes this.
  12. shawnblais

    shawnblais

    Joined:
    Oct 11, 2012
    Posts:
    324
    This is true in some cases, not in others. Take your logic to the extreme, Unity should include absolutely nothing. Why make Camera, Lights or Shaders when we can just have competition and variety?

    Splines integrates very nicely with existing core features like terrain and cameras, as well as basic scene construction which is why it should definitely be something that is tightly integrated into the core engine itself.

    They are also basically solved, we don't need variety, we just need a really robust core system. Have you ever taken a hard look at the UE4 spline tool and what you can do with it out of the box? I don't hear too many complaints... just the opposite actually.
     
    bixarrio, frarf, MaxPirat and 5 others like this.
  13. shawnblais

    shawnblais

    Joined:
    Oct 11, 2012
    Posts:
    324
    Awesome!! Now... it just need to appear, lol, been down this road before...
     
    koirat likes this.
  14. Deozaan

    Deozaan

    Joined:
    Oct 27, 2010
    Posts:
    707
    You say you're arguing in favor of more choice and competition, but you're actually arguing against it.
    • Unity has an input solution built in. That hasn't stopped alternative input solutions from showing up on the Asset Store.
    • Unity has UI built in. That hasn't stopped alternative UI solutions from showing up on the Asset Store.
    • Unity has (had) networking built in. That hasn't stopped alternative networking solutions from appearing on the Asset Store.
    • Etc.
    Unity providing a feature doesn't prevent or reduce competition. It adds yet another choice for developers to choose from. If the solution included doesn't work for you, then you can buy one that does from the Asset Store. Or if you're enterprising enough, if you see that the solution Unity includes isn't meeting a particular set of needs, you can create a better one and sell it on the Asset Store.
     
    Shaderic likes this.
  15. TJHeuvel-net

    TJHeuvel-net

    Joined:
    Jul 31, 2012
    Posts:
    838
    One common pattern with all the examples you gave is that Unity provided a flawed or insufficient solution initially, and then the assetstore provided better ones. After that Unity tried solving that exact issue again, in an often lackluster way. E.g. Unity Input System isnt a lot better than Rewired, NGUI and UGUI suffer from the same issues. Who knows what Multiplayer is up to these days, nobody in their right mind uses it.

    I'm just saying that i'd rather have them focus on issues that havent been solved, or are more difficult to solve for smaller asset store authors, and that i'm not too excited about their reinvention of solutions we already have.
     
    Last edited: Oct 23, 2020
    Deozaan likes this.
  16. koirat

    koirat

    Joined:
    Jul 7, 2012
    Posts:
    2,073
    And I see it like this.
    Implementing splines is a relatively low effort yet profoundly useful feature.
    Built in splines allow for interoperability between separately developed tools by different vendors.

    Example of similar feature is AnimationCurve. (it was implemented poorly/minimalistic yet is very useful)
     
    bluescrn, awesomedata and Ruchir like this.
  17. Ruchir

    Ruchir

    Joined:
    May 26, 2015
    Posts:
    934
    This will make any level designer in unity cry :(
     
  18. AndrewKaninchen

    AndrewKaninchen

    Joined:
    Oct 30, 2016
    Posts:
    149
    dude I'm a programmer and I've been crying for years
     
  19. shawnblais

    shawnblais

    Joined:
    Oct 11, 2012
    Posts:
    324
    Implementing a Spline system is arguably more similar to creating a Camera. The design is known, the featureset decades old, we dont need options here we just need a good core feature that can tie into other core features, but also utilized to enhance all 3rd party plugins that can think of a way to use it.

    Splines are basically a workflow accelerant, across a wide variety of workflows.
     
  20. Ruchir

    Ruchir

    Joined:
    May 26, 2015
    Posts:
    934
    It's just like unity is now offering the new graph view API so all the graph-based tools can be unified, also, it provides normal developers like me who aren't into super-efficient editor tools development comparatively easy entry point to creating feature-rich graph-based tools, most of all the spline API can unify all the spline-based workflows
     
  21. Grimreaper358

    Grimreaper358

    Joined:
    Apr 8, 2013
    Posts:
    789
    It's coming soon. It's been stated before but I guess some missed it. Here's a demo of it. It's coming.

    Edit: It doesn't want to play from the correct time stamp for some reason so skip to 22:30

     
  22. Ruchir

    Ruchir

    Joined:
    May 26, 2015
    Posts:
    934
    Does anyone have any idea about Prefab Handles?
    I tried searching for it but I couldn't find any reference outside of this videoo_O
     
    awesomedata likes this.
  23. shawnblais

    shawnblais

    Joined:
    Oct 11, 2012
    Posts:
    324
    That's not going to stop us from arguing about the hypothetical case were it not!! haha, come one now...
     
  24. jjejj87

    jjejj87

    Joined:
    Feb 2, 2013
    Posts:
    1,117
    Because I am paying for it?
    I don't understand why you think Unity lacking basic features like spline is fine because the third party has solutions. Have you ever thought that had Unity had spline, then we wouldn't have needed third party solutions?

    If this doesn't make any sense, then imagine this

    Unity doesn't support saving -> buy a solution from the Asset Store.
    Unity doesn't support rendering 3D -> buy a solution from the Asset Store.

    Sounds really dumb right? Well, splines situation isn't that much further from the above. I don't know how others feel about spline, but spline in a paid 3d engine is pretty basic stuff to me. Like really basic.

    This reminds me when I was bothering Unity devs for object isolation view for years and some dudes were saying, don't make Unity develop useless features, just disable gameobject or go buy third party editor solutions.

    Why...why do we help Unity to be this naive and let them get away with stuff like this...we complain about Unity's recent bug fest and bad implementation and honestly I feel it is because of us Users. We let them think it is okay over the years with comments like yours mate. Why on earth would anyone defend Unity in this situation...why...
     
    Last edited: Nov 7, 2020
    awesomedata likes this.
  25. TJHeuvel-net

    TJHeuvel-net

    Joined:
    Jul 31, 2012
    Posts:
    838
    I think this is because Unity wants to do too much, they are developing too many features at once. I feel like instead they should downscale and focus on fewer features that work well.

    Thats why i dont think they should be building a spline feature, i think that they should stabilise what they have first.


    That would be ideal for me, if that also means the subscription fee goes down. Perhaps the rendering part is a bit too far fetched, but definitely for a saving system.
     
  26. jjejj87

    jjejj87

    Joined:
    Feb 2, 2013
    Posts:
    1,117
    I agree with you that Unity is trying to do more than they can. But have you actually looked at their numbers? Last time I checked they are a multi billion company. Check this recent IPO article https://venturebeat.com/2020/09/18/...1-1-billion-in-ipo-at-12-1-billion-valuation/

    I would also think like you if Unity was a small time company but Unity is a multi billion dollar company with 3000+ employees of which roughly 1500 are R&D. They are not an upcoming, small timer. Seriously, the CEO is a former EA CEO. We are talking big companies...big.

    And you are worried about them spending time on Spline...that this will somehow prevent something else from happening. I am sorry but this is just bad direction by the devs. Unfortunately, you and I seem to take this very differently, and as I stated above, I think this will accelerate and worsen how Unity thinks of the paying users. So really, I cannot agree with you as we are talking about very basic features...also when I said "save" system, I meant saving projects in editor not game saving :)
     
  27. AndrewKaninchen

    AndrewKaninchen

    Joined:
    Oct 30, 2016
    Posts:
    149
    Ok, I've refused to participate in this discussion because I feel it's pointless, but this argument in specific deserves an answer.

    This is not how software development (or any kind of engineering, really) works. As mentioned previously, Unity has thousands of employees, hundreds if not thousands of developers.

    You can't increase development speed of a feature by adding developers to it forever. Sure, two~five is probably faster than one in most cases, depending on how well you can subdivide that work so it can be "parallelized", but the gains stop very, very fast.

    To ensure you're developing the engine as fast as possible, you need to make sure you're creating the least overhead possible from this overcrowding of developers, and the obvious way to do this is assigning small teams to as many features as possible, and adding developers to said teams as their leads judge they can take them.

    There is also the issue of specialty. Developers are not 100% interchangeable. This engine is written as a mix of C++ and C#, for example, and a junior dev might not be the most experienced with both languages so they could be moved from core engine stuff (mostly C++) to very specific package feature (mostly C#). You wouldn't move a graphics programmer to do AI. You wouldn't want to move someone who has worked on feature A for 2 years to feature B that has nothing to do with A. etc.

    There's more to add, but I'll stop here for now.
     
    frarf, MaxPirat and Nexer8 like this.
  28. TJHeuvel-net

    TJHeuvel-net

    Joined:
    Jul 31, 2012
    Posts:
    838
    I'm not quite sure how you feel like thats a rebuttal or answer to what i'm saying, because that is exactly my point. Thats why i think they shouldnt make all sorts of features but instead focus on a little set, because scaling software and a company is very hard.

    Being valued at a billion dollars or having many thousands of employees doesnt change that, its still incredibly hard.
     
  29. jjejj87

    jjejj87

    Joined:
    Feb 2, 2013
    Posts:
    1,117
    No, I think what he is trying to say is that
    1. Core devs are fixed and not really interchangeable
    2. Only realistic way to increase output is to "small teams to as many features as possible"
    3. Hence, worrying about Unity focusing on not so important features that will result in important features losing dev power is sort of moot as the core features can't really be sped up once threshold has been met (and with 1000+ devs we assume it already has)
    4. In another words, with thousands of employees, they should be tackling more diverse, small segments to maximize "number of people/workdone" ratio, to which we can all witness, they are not doing a good job.

    and I add to this,

    A good golden spline system would take about a month with a team of 3~4. Maybe throw in another two months for cutting edge spline features...
    and yet we stand here debating why a basic spline system isn't here yet...

    that is what I find super frustrating.

    and Andrew, finds it pointless (I am guessing its because this is our reality and none of this will actually change anything...)

    I guess we are all frustrated...
     
    LooperVFX likes this.
  30. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    963
    Hi folks! Hopefully I can give some useful info here, it's an important topic for me :)

    Yes, the Spline system got pushed. It was a bummer for us as well - but we realized that before adding new tools and functionality, we absolutely needed to build up a better tooling foundation.

    So, we've been hard at work on this, with Splines coming soon after, we hope:


    More info:
    Unity - Draggable overlays, custom toolbars, new Tool systems - Unity Forum
     
  31. koirat

    koirat

    Joined:
    Jul 7, 2012
    Posts:
    2,073
    Where is the "Not Like" button ?
     
    Vaupell and Ruchir like this.
  32. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    963
    Better than a "Not Like" - you can tell us what you don't like! :)
     
    Zephus, fxlange, frarf and 1 other person like this.
  33. koirat

    koirat

    Joined:
    Jul 7, 2012
    Posts:
    2,073
    The order of things Unity Team is forced by management (or maybe marketing team) to implement.
     
    Ruchir likes this.
  34. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    963
    Actually, I pushed that we switch focus off the Spline, and over to the "Tool Ecosystem" (including the new Overlays), nothing marketing/managing involved. Reason being, we really couldn't design or build a good quality Spline (or other tools) onto the existing foundation. We needed to step back from the shiny stuff, clean up the core.
     
  35. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    963
    To explain better, a good Spline solution has several UX requirements:
    - Workflows across multiple tools (ie, I can build a spline, then loft a mesh with ProBuilder, or use it to generate a road on a terrain, etc)
    - Sub-object editing (ie, I can switch to "spline point/segment/tangent" modes, and select + edit those special things)
    - A clear source of tool options (ie, world, local, normal coordinates, constraints, etc)
    - In-context info, settings, and visualizations

    So, these things ... one might think they exist and work fine, by looking at existing tools (internal or Asset Store). However, we can say from experience (ie, ProBuilder, others) - they do not. Just ask any experienced Asset Store tools developer, they'll give you a solid rant :p

    So we determined that instead of building Splines fast and dirty on a shaky foundation that we'd have to tear down and rebuild later anyway ... it felt time to dig in and fix that foundation. That's what "Tool Ecosystem" is all about, and while yes it meant slowing down actual tools, the result will be a really awesome "ecoystem" for internal and external developers to make really, really great tools :)
     
  36. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    963
    I just found this, and actually, I think you'll be at least semi-happy to know, yes this is where we started! :) First providing a solid generic spline data/system, that everything can connect into. Next will come fancy UX/tooling/etc.
     
  37. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,527
    I have been digging to into all the spline tools I bought over the years, some of them are quite decent, I'm happy to hear splines are coming native to Unity!
     
    gabrielw_unity likes this.
  38. Baste

    Baste

    Joined:
    Jan 24, 2013
    Posts:
    6,338
    Man we were so exited when we found that the bezier curves from the SpriteShape tools were based on some generic curves that could be reused.

    And then it turned out that that was barely an option at all unless you put on a straightjacket of requirements - being a ScriptableObject was the biggest offender.

    So, yeah, a Spline tool has to be thought through and requirements should be sourced from users first, otherwise it's just another S***ty Spline that we don't want to use.

    It would've been nice if the same kind of care had been put into making animation or UI systems back when, but hindsight 2020 etc.
     
    frarf, Shaderic, Ruchir and 1 other person like this.
  39. Rowlan

    Rowlan

    Joined:
    Aug 4, 2016
    Posts:
    4,294
    As much as I understand having a solid base I still don't get why Unity isn't releasing splines as a package so that everyone can build on it. With a proper architecture you can integrate it tightly later anyway.
     
    Lars-Steenhoff and Ruchir like this.
  40. Rowlan

    Rowlan

    Joined:
    Aug 4, 2016
    Posts:
    4,294
    That explains everything. All I wanted was simple splines in Unity. Set control points, have them connected, ie in order and step through them at an interval. All of that inside the engine. Unity Standard. With a simple Gizmo Editor. No ProBuilder stuff. That should be separate, it should build on splines, independently.

    Or the creation of roads. Everyone can do that on their own in the end. I don't need the delayed Enviornment System for splines. It should be vice versa.

    Plus you could easily backport a package.

    But the current solution is to use a sledgehammer to crack a nut. And obviously that sledgehammer has become too heavy :(
     
    gabrielw_unity and Ruchir like this.
  41. Waterlane

    Waterlane

    Joined:
    Mar 13, 2015
    Posts:
    188
    'just a couple of quick thoughts, which may be useful for development
    Splines
    - really useful for animating to (eg camera to follow a path)
    - being able to set triggers along the path (to call events/trigger an animation etc)
    - also... one of the main animation I liked from 3dsMax, was to show the path of bones in the viewport. This was really helpful for animation as you could adjust a bones position and see it's in/out trajectory change in real-time... a bit like ghosting (not a lot of software show the trajectories in viewport/scene view imo - so that would be a cool feature in Unity)
    Cheers
     
    gabrielw_unity likes this.
  42. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    963
    Hi! Basically, we wanted to ensure that our generic Spline system would always be available to other tools/etc, reliability == use. So, we moved it from package, to trunk.

    Maybe I explained our plans poorly - we're creating exactly what you are asking for there, the only difference being it's built into Unity instead of a Package. This way if X developer makes Y package, they can safely use "stuff.spline.DoStuff()", always.

    Specifically:

    "All I wanted is simple splines" - this you shall get :) We are building just that, none of the fluff.
    "No ProBuilder stuff" - yup, that too. Splines have zero connection to ProBuilder (or environment, or anything else). PB/others will, as you mentioned, utilize/build on Splines independently.

    Hope that clears it up a bit :)
     
  43. gabrielw_unity

    gabrielw_unity

    Unity Technologies

    Joined:
    Feb 19, 2018
    Posts:
    963
    Also, thanks @Waterlane , those are great use cases - we're actively looking into each of those across a couple teams, yup!
     
    LooperVFX and Waterlane like this.
  44. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,527
    Good to hear that its added to the core!
     
    LooperVFX likes this.
  45. Rowlan

    Rowlan

    Joined:
    Aug 4, 2016
    Posts:
    4,294
    I've just seen the latest blog and some cutting of mesh in probuilder 5.

    pb.jpg
    And now I have to say: I don't care. Like really not at all. You're focused more on probuilder than splines. Makes me kind of feel like Unity is just for newcomers rather than developers who like to work with the engine. Nobody I know uses probuilder. But they use all kinds of open source or commercial spline versions.

    I seriously can't understand this move. It makes absolutely no sense to me at all.
     
    koirat, Freznosis and Ruchir like this.
  46. PassivePicasso

    PassivePicasso

    Joined:
    Sep 17, 2012
    Posts:
    100
    I use ProBuilder constantly, and am actually fostering a community of content creators who can use it to build content for some games.
    It's generally not wise to use your anecdotal experience to make assertions about where Unity focuses their development time.

    Personally I believe ProBuilder is a great tool that provides a lot of value, and with a few additional features could be a generally useful modeling tool. I have so many modeling tools, more than I really should, but I almost always come back to ProBuilder for a simple reason.

    its simple. I get to do Box modeling and focus on box modeling and I can get a lot done in a little time with it because of it not putting a ton of things in my way.
    My wish list would include, Group-based face/vertex normal operations to allow things like, extruding a ring from a cylinder or irregular shapes cleanly.

    More work done on runtime editing/performance.
    Support for splines in probuilder

    That being said, this feature they added is so small, I'm speculating but it probably took Karl or Gabriel a day or less to implement and barely cut into their time.
    What I don't understand really is why they bothered to show off this 1 useful, but small feature.
     
  47. Rowlan

    Rowlan

    Joined:
    Aug 4, 2016
    Posts:
    4,294
    I rephrase: What I want is an English Alphabet. Letters A..Z. What Unity did was trying to write an essay which turned into a book and obviously became impossible to handle. And moreover that book seems to be written in foreign letters now.
     
  48. TheCelt

    TheCelt

    Joined:
    Feb 27, 2013
    Posts:
    742
    What ever they add i can bet it will be half measured and lacking in many ways.
     
  49. Neto_Kokku

    Neto_Kokku

    Joined:
    Feb 15, 2018
    Posts:
    1,751
    They should have started with the data structures and APIs for creating/modifying/evaluating first. This would have allowed 3rd parties to at least integrate their stuff and provide interoperable tools while Unity keeps toiling on their years long quest for a "perfect" tooling system.

    ... assuming they are creating modern and burst-compatible data types and libraries for splines and not building their tools on top of the ancient and slow AnimationCurve class.

    The old adage "the perfect is the enemy of the good" seems to fit here.
     
  50. MechaWolf99

    MechaWolf99

    Joined:
    Aug 22, 2017
    Posts:
    294
    The new Spline package is great. It is fully jobs and burst supported, has a pretty clean API, quite easy to extend and use. It is lightweight but also powerful, and it also has nice scene tooling. I would give it a try, you might like it.
     
    Shaderic and Lars-Steenhoff like this.