[RELEASED] Curvy: Fast Spline Interpolation

We’re happy to announce the release of Curvy 1.5, our all purpose spline engine for Unity! Whether you just want to animate some objects or build your levels with extruded shapes, Curvy delivers! You’re looking for a solid spline engine to integrate into your level editor? Curvy comes with a full featured API you can use both in the editor and at runtime!

Main Features

  • Create and edit curves in the scene editor and at runtime
  • Spline Types: Linear, Bezier, Catmul-Rom and Kochanek-Bartels with local parameter control
  • Advanced editing features like Split/Join/Connect/Spline Groups
  • Get position, tangent, orientation, scale and custom data for any spline point by absolute (units) or relative (F) distance
  • Extrude Shapes and custom meshes or clone objects along a curve
  • Export curves to meshes
  • Create Splines from Superformula
  • Designed for speed: almost all data can be precached and linear interpolated later on
  • Lots of editor tools and wizards, ready-to-use components
  • Support for playMaker and Magical Box
  • Full featured API, C# Source Code (well formatted and fully Intellisense documented)
  • Example scenes, Online Manual, Support Forum

It’s available in the AssetStore!

Cheers
Jake

This is a really nice spline tool with great support from the developer. Thanks Jake.

WOW ! It’s wonderful !!!

6R

v1.01 just hit the AssetStore!

New Features:

  • Custom user data to Control Points (basically an array of Vector3’s that can be used to interpolate almost anything like Scale, Color, Speed etc…)
  • Wizard to align objects position/orientation along a spline in several ways
  • SnapToFit feature to create splines with a certain length

Cheers
Jake

We just released a service update to Curvy, it should pass review soon:

  • Fixed some bugs
  • Added another example scene: DynamicSpline.

The new example is also available as a webplayer demo, click here !

Cheers
Jake

Hi, Great package.

I would like to create a continuous path via scripting that can have Both Curved and Sharp corners.

Is this possible with Curvy?

Thanks

Hi Rocki,

yes, this is possible. Set the spline type to “TCB” and you have full control over the spline segments. For each segment, you then can set Tension, Continuity and Bias individually, even different values for In (Start CP) and Out (End CP). Check the “Dynamic Spline” scene in the package for an example how to add control points by code.

Hey Jake,

I just purchased your Curvy Splines plugin and i’m very impressed!

I am creating a 2.5D platformer and I would like it “on the rails” using a spline that conforms the player to the spline path while retaining full rigid body collisions. So essentially the spline path would be like an invisible rail underneath the terrain where the player is free to jump and collide with the terrain, platforms, etc while conforming to the underlying spline path

A perfect example of exactly what i’m trying to do can be seen in this trailer for the game ScaryGirl: http://www.youtube.com/watch?v=uAaYwU4M5Kg

Would this be possible using your system?

Cheers,

Simon

I saw your manual for curvy and have not bought your curvy yet because I need to know something:

Do we have to create scripts with your curvy to get it to work ? All I want to do is make like a grinding on rails game real fast and not have to spend time on making scripts to get it done.

SOLD !

I just purchased it !

Thanks for answering all my questions I sent to you in pms :slight_smile:

Hi Avrigus,

thanks for buying Curvy.

if you place and align colliders along the path, this should does the trick. Check the Align Wizard or the Distances example scene for an example how to place and align objects along the spline.

Btw, orientation calculation will be much improved in the upcoming update.

Just answering again visible to everyone:

Curvy comes with several scripts that can be used to move and/or align objects along a spline. Also they are a good starting point to get a clue about Curvy’s API. Although the API contains a lot of properties and methods to tweak and play with for those that need to get the last performance bit out of it, you’ll most of the time work with 2 or 3 methods to get position/tangent/orientation of a point on the spline.

Hey again Jake,

Not sure if you get what i’m trying to do. In a nutshell I would like to conform the local X and Z of my character to the spline leaving the Y axis free for jumping etc. So the player wouldn’t conform exactly to the spline, it would be more like an invisible rail underneath the geometry of my level.

The video link I posted in my previous post (from the game ScaryGirl) is exactly the effect I am after. An even more straight forward example is this video for the IOS game “Mr. Crab”: http://www.youtube.com/watch?v=wW1e3oaFMx8

As you can see in the video, the player constantly rotates around the world, conforming to a circular spline path while being able to travel up and down the Y axis.

I was recently in contact with the creator of SuperSplines asking the same question, here is his response:

You must know that i’m using PlayMaker so naturally when I saw you supported it I knew I was on the right track! I really hope you can help me as i’m having a hard time trying to find a good working solution.

Thanks,

Simon

Ok, I understand. And my answer is more or less the same as from the author of SuperSplines. Personally I wouldn’t lookup the closest point each frame (it’s quite costly), but I’ll look into this to find a good solution. So expect a example showing exactly what you want soon.

I’m hardly working on v1.04, which among bug fixes and some new features will add more documentation, examples and improved playmaker support. Also, starting with 1.04, all example scenes will be done as playMaker FSMs as well.

Jake

PS: You might want to register at our support forum. It’s easier to exchange WIP there.

Just a quick update: 1.04 will be released in the next days, we just need to port some examples to playMaker and finish the documentation rework. Due to popular demand :slight_smile: we added a railrunner example to the package. You can preview it here!

Jake

Awesome ! Can’t wait to see and play all the new games coming out with this new railrunner example !

Quick update: We overhauled the performance example scene and made it available on our website: click me!

cool… is that 1.04 update done yet ?

and how do we get the update if we already bought Curvy ?

Great, the performance chart is very helpful.

Would it be possible to add multiple Splines to the performance test. For example, what happens when there are 100 Splines at the same time?

@Ullukai: 1.04 is complete now and will be submitted tommorow - should be live on the AssetStore on Monday or Thusday. And like every other package from the AssetStore, the newest release will be automatically available to you. When you enter the “My Assets” page in the AssetStore, you’ll notice a message “A newer version is available” and the import button is replaced by a download button. Just download&import then and you’re using the latest version.

@Rocki: Each spline is an individual object, so there wouldn’t be any difference performance wise. If you have 100 splines, multiply those numbers by 100. All parameters that affect spline performance (Type, number of Control Points/Segments, Granularity) are present in the test.