You want smooth camera flights? You want your player to follow a dynamic path? You want mesh extrusions along curves? With objects cleverly placed on the mesh’s surface? What about moving your player or any other GameObject over that surface? You want a fast, mobile-ready solution? You want a battle-proven spline solution that can be seamlessly integrated in your custom level editing tools?
Curvy 2 - Highlights
State of the art SceneView curve editing for most common curve types (Linear, Bezier, Catmull-Rom, Kochanek-Bartels)
Extensive Orientation management offering dynamic orientation smoothing while keeping full control
Graph based Content Generator to create extrusions, clone objects, mix paths and more
A range of ready-made controllers to make your GameObject interact with curves, mixed paths and extruded volumes
Designed for speed through a highly optimized caching system, threading and object pooling
It can create roads and railtracks and does handle intersections logically. Graphical representation of intersections/crossing needs to be handled manually (i.e. Curvy doesn’t build complex intersections graphics from scratch).
thanks for the big update. There are some scenes that are broken, and missing references. I tried sending you an email but it bounced as spam. Your spam filters are very strong
Hi there! Can you elaborate on which scenes had the issue and which Unity release you are using? And perhaps paste the error trace from the console tab of the editor?
The new version look very cool and improved but it’s not GC safe, took me a while to remove all runtime allocation in 1.6, surely won’t redo everything again.
I’ll keep an eye on this for future version.
By the way, the package is broken, it complained about IMeshModifier not being implemented on UITextSplineController using Unity 5.2.
This is caused by an unannounced change UT folks made in the IMeshModifier interface with Unity 5.2.1p1 (not sure if that’s even intentional on part of the devs, interface changes like those shouldn’t really land in patches, and this wasn’t even mentioned in the notes). The package should work fine with 5.2.1. An appropriate check for this change is already in the repo and will arrive in the next store update of Curvy, I think.
Can you elaborate on the GC issue? What scenario with Curvy 2.0 specifically caused GC issues for you?
There are various allocation at runtime, a simple profiler will show you.
By memory if I recall they are on HasEvents on CurvySpline move and other methods.
Probably other parts I can’t remember now.
By the way, the new mesh generation is too complex( and I think too slow for runtime generation on mobile).
Prefer by far the old simple version, that even with many limits was blazing fast and easy.
Assets/Packages/Curvy/Controllers/UITextSplineController.cs(73,19): error CS0738: FluffyUnderware.Curvy.Controllers.UITextSplineController' does not implement interface member UnityEngine.UI.IMeshModifier.ModifyMesh(UnityEngine.UI.VertexHelper)’ and the best implementing candidate FluffyUnderware.Curvy.Controllers.UITextSplineController.ModifyMesh(UnityEngine.Mesh)' return type void’ does not match interface member return type `void’
As I’ve said above, temporary workaround seems to be a switch to Unity 5.2.1. Unity folks made an undocumented change in that interface with p1, breaking assets using it.
It looks cool. In 3d, what about if you want it to randomize or modify the path shape at runtime, and regenerate a section of geometry along that path, and randomly add/position objects along the path, so that each time you play (follow the path) it’s a different experience? Do we have to dip into script API for all that or is that built-in to the generator stuff?
My other question is about 2D use… could it be used to create side-view curves, like a side-view of a tube, curved surfaces, with Physics2D colliders? And can the spline curves be animated at runtime by accessing the nodes via an animation clip, or is the data for the nodes too embedded as variables which can’t be animated?
We keep GC alloc as low as possible and not all allocations you see are intentional, but can be fixed (saying that, just fixed a few glitches that caused GC alloc being higher than needed, will be in 2.0.2). But you won’t get a package completely allocation free, no way!
For example, when moving over a spline, Curvy needs to check whether events has listeners or not, because with no listeners present the movement is far simpler and faster than with listeners attached. Checking allocates 20 bytes and there is absolutely no way around until Unity makes that property public (btw, vote for it here!).
After all, having some memory allocations isn’t evil, it all depends on the amount.
Besides the fact that Curvy Generator is 2x-3x faster than the old MeshBuilder for similiar tasks, it is well structured and complex tasks are broken down into easy to configure modules. You want the old functionality? Create a CG, add the “Shape Extrusion” template, drag a spline to the path and you’re done. Create templates as you like and use them to build complex graphs with a few clicks.
Sure, there is a gentle learning curve, but the possibilities of the system are endless and you can create things you won’t ever achieve with a single component.
Randomly scatter objects along the path is already builtin. To randomize a path just randomly move Control Points of the path’s source spline.
This is absolutely possible, but dedicated 2D modules aren’t in yet, but planned for the near future (e.g. a dedicated 2D line renderer). CG is a completely new system and we have some great ideas in stock and will continously add new modules and functionality.
Control Points (“nodes”) are GameObjects, so you can easily animate their transforms.[/Quote][/QUOTE]
Sorry for asking, but are you guys working on a beginners tutorial for your CG?
I’m sure it’s all easy and very, very cool - but not knowing how to ‘crack the nut’ it can be very hard to get into really using it - I sit here and try and test the demos etc, but there are so many things left to guess - like the most basic stuff, so I still cannot start my own project from scratch and make cool things.
A tutorial or two just showing how to build a couple of different things - like the railroad for example - hills and all - from scratch, explaining all ‘simple’ steps… even like how to refresh the CG generated mesh, or how to place a spline on the ground etc and make hills without the railroad sinking into the ground before the hill etc - basic stuff… would be VERY nice and make it easy to pick up all the complex stuff that it looks like you are documenting nicely
(I’d offer to do the tutorial for you if only I knew how it all works myself
Hi Jake, Could you briefly explain how I can make connections with your graphic tool and in code? I am using your Curvy 2.0 and having trouble with both ways. Thanks