RageSpline - Create smooth 2D graphics inside Unity Editor - RELEASED

Discussion in 'Assets and Asset Store' started by keely, Apr 23, 2011.

  1. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
    If there are no technical obstacles, I don't see how can I not make this happen. It would give you a) more performance on mobile and b) power of photoshop when you need it.

    I need to quit my dayjob right now :)
  2. prime31

    prime31

    Member

    Joined:
    Oct 9, 2008
    Messages:
    6,421
    @keely, dayjobs are for suckers! Quit that thing and get working on RageSpline and all the Rage* games made with it!
  3. holyjewsus

    holyjewsus

    Member

    Joined:
    Mar 7, 2011
    Messages:
    587
    It's cool to see people excited about their work.
  4. the_drummer

    the_drummer

    New Member

    Joined:
    Apr 26, 2011
    Messages:
    2
    Looks great and you'll have my money shorty!

    I was just wondering how the pricing will work for future updates i.e. the highly anticipated v1.1 (no pressure or anything ;) and beyond?
  5. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
    Correct if I'm wrong - I'm no Asset Store veteran - but aren't the updates are free for customers that already purchased the product?

    I really hate speculating on pricing, but let's make an exception. All the things are still very much up in the air, but with some powerhouse features like I just described, the price for buyers after v1.1 will more than likely go up than stay where it is. All this being 100% speculation of course.
  6. the_drummer

    the_drummer

    New Member

    Joined:
    Apr 26, 2011
    Messages:
    2
    And so it should (as long as updates are free to existing customers :))...

    I've just got my copy!

    Keep up the good work!
  7. ibyte

    ibyte

    Member

    Joined:
    Aug 14, 2009
    Messages:
    522
    One way to achieve this effect is to make your object, set the outline width to something pleasing (fat) and then set the alpha on the fill to 0. Only works on simple shapes though with single holes - like donuts and such.

    iByte
  8. ibyte

    ibyte

    Member

    Joined:
    Aug 14, 2009
    Messages:
    522
    A couple of questions in cased i missed how to do this ...

    1) Easy way to click and scale the object in x,y at the same time? I get some odd effects when I play around with the scale of the RageSpline object.

    2) Move a spline by line segment vs point?

    iByte
  9. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
    What kind of effects are you getting? Can you show a screenshot?

    I have had a hard time catching a GameObject move/scale/rotate -operation from my Editor script, so the RageSpline-object doesn't know that it's been moved/rotated/scaled and doesn't refresh itself. With move/rotate, it doesn't matter, since the objects appearance stays the same, but the scaling is a different beast, since it's ruining the anti-aliasing and border widths.

    You need to push the refresh-button in the bottom of the RageSpline component after you scale RageSpline-objects.

    I don't understand what this means? Can you explain with more poetry :)?
  10. alex.loren

    alex.loren

    New Member

    Joined:
    Jan 7, 2011
    Messages:
    83
    You can count me in on purchasing this amazing toolkit after my externship at the Hospital is done and I catch up on bills. You have saved me a bunch of time, thank you Keely!
  11. ibyte

    ibyte

    Member

    Joined:
    Aug 14, 2009
    Messages:
    522
    Sure, would it be possible to move both points at the either end of a line segment at the same time so that the line segment stays the same but points move? The line segments on the other side of the points would stretch.

    iByte
    Last edited: Apr 27, 2011
  12. ibyte

    ibyte

    Member

    Joined:
    Aug 14, 2009
    Messages:
    522
    Can't seem to reproduce it now ... will grab a screen shot if it happens again.

    iByte
  13. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
    It's not possible. I can't say if it will be possible either, because with the handles, I'm pretty much in the mercy of the underlying mechanisms of Unity. If I'd have to guess, I will not be able to do it. Sorry.
  14. MaDDoX

    MaDDoX

    Member

    Joined:
    Nov 10, 2009
    Messages:
    694
    Great tool! After playmaker this (vector rendering) was the most needed addition to Unity imo.

    The big advantage with vector rendering for mobile devices is exactly in terms of big shapes + animation. Multiple frames at high resolutions is a big no-no when you've got short memory and max texture resolution limits.

    Under this perspective, the problem with RageSpline lies exactly in that it has no support for animation.

    My suggestion to work that out is simple: use polygon meshes, with its already Unity-supported animation clips, and add edges + subdivide the mesh the same Catmull-Clark way it's subdivided in Maya/Modo/Max/ZB/whatever.

    This way we wouldn't necessarily need to import the .AI file into RageSpline (although it'd be excellent for static stuff), we'd import it right into our 3D application of choice, then send it to Unity using the FBX way.

    To be honest that's what I do already ;) it'd just be very cool having the coloring and vector-texturing tools inside Unity + subdivision for quality adjustment on each device.
  15. ibyte

    ibyte

    Member

    Joined:
    Aug 14, 2009
    Messages:
    522
    SomeTimes an object will get stuck.

    [​IMG]
  16. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
    Love the avatar :)

    I'm hoping whatever this was, will be fixed when I make it so that you can make those bounding boxes fatter. I will also experiment again with collidermesh for next update, but we'll see. This doesn't happen too often right? I played quite a bit of RageCar and this never occured.
  17. Toad

    Toad

    Member

    Joined:
    Aug 14, 2010
    Messages:
    254
    Err that sounds awesome! :)
  18. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
    Only Pro-version has RenderTexture capabilities. This means that this "baking" feature would be more limited if you only have Basic.

    The difference would be: If you export the RageSpline as image, you don't get the original RageSpline styling to go. You'll only get a white "canvas" to draw on. On the Unity Pro-version, you would have the option to export the shape exactly the way it is in the editor and draw onto that. You would also have an option to always bake your RageSpline objects to equal sprites.

    I don't know if I should even mention this out loud, but one possible way to take this even further is... dare I say it... texture atlases.

    A magic button would export all the (selected) shapes onto a texture atlas, and all those shapes would be uv mapped onto it. You could draw on top of this atlas in your image editor. The gain would be reducing the whole thing into one draw call. Or atleast group stuff inside one draw call when it makes sense. Is it easier for an artist to have 5 atlases vs. 50 separate textures to draw onto? I don't have any experience on this outside my own pipelines.

    edit: The exported image would always have a correct alpha channel to match the original shape.
    Last edited: Apr 27, 2011
  19. ibyte

    ibyte

    Member

    Joined:
    Aug 14, 2009
    Messages:
    522
    That's because I altered RageCar to be RageJump while goofing around

    [​IMG]
  20. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
    Maybe decreasing the fixed timestep will help with very fast objects?
  21. maxfax2009

    maxfax2009

    New Member

    Joined:
    Feb 4, 2009
    Messages:
    410
    That would be GREAT SVG import :)
  22. prime31

    prime31

    Member

    Joined:
    Oct 9, 2008
    Messages:
    6,421
    This isn't a RageSpline issue, it's a physics configuration issue. Like @keely mentioned, messing with the fixed timestep will help but sometimes you just need to get fancy with raycasts to guard against things like this with fast objects.
  23. alex.loren

    alex.loren

    New Member

    Joined:
    Jan 7, 2011
    Messages:
    83
    Keely, I have been playing around with RageSpline over the last few hours in various ways. But I have run into an issue if you will, of spline objects popping in and out of view when over half of itself is off screen. I don't know if it is simply an error in my scene setup, or if there is a deeper cause behind it, what is even further an oddity though, is that it does not happen with all spline objects, only a few.

    Here is a video snip depicting the issue that I am having right now, hopefully in seeing this you will be able to provide some insight as to the issue. This issue aside though, I am simply loving the toolkit and it's ease of use, masterfully done!

  24. ibyte

    ibyte

    Member

    Joined:
    Aug 14, 2009
    Messages:
    522
    Hi Alex, are both blob objects having the same z value? In the scene view, check your cameras size and clipping planes. Does the object on the right go out of the cameras scope when it starts to track the square?

    iByte
  25. alex.loren

    alex.loren

    New Member

    Joined:
    Jan 7, 2011
    Messages:
    83
    iByte, thank you for the suggestions on how to resolve the issue. I was able to reach a resolution by moving the sky object back even further from the rest of the objects, which is surprising as I thought -50 units from anything else would have been sufficient. But as said, all is solved and I am happily tooling along again.
  26. Veli

    Veli

    New Member

    Joined:
    Mar 10, 2009
    Messages:
    301
    Just bouth it. Gonna use it for Snobli Run.

    Anyway, just something I noticed; it might be better to add a constant force component to the car instead of asking people to change their project settings.
  27. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
    Glad you got it sorted. The problem in your video is that you are using perspective camera. You need to make your camera orthographic from it's properties. It's also a good idea to change your view in editor to orthographic. Right-click the 3-axis gizmo in the top-right of the editor view and unselect "perspective". I'm also always using the "back"-view from the same menu. That ensures that your x and y axis grows from left to right, bottom to top.

    If you WANT to have perspective cameras (you get nice parallax depth effects), you need play with material.RenderQueue-values.

    I would suggest that anyone who does any 2D with Unity, should see the great presentation that guys at Owlchemy Labs did recently: http://learnunity3d.com/2011/04/smuggle-truck-2d-techniques-talk/. It explains everything you need to know.
  28. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
    Thanks for buying it and thanks for the tip!
  29. alex.loren

    alex.loren

    New Member

    Joined:
    Jan 7, 2011
    Messages:
    83
    Thank you for pointing out the presentation link Keely, I am surprised that I have missed viewing that before. I am going with a perspective camera on purpose for a number of reasons, I just forgot to take in to account the needed steps that would need to be taken to get proper depth sorting. But as I said, things have since been sorted out and are going smoothly again.
  30. p6r

    p6r

    Member

    Joined:
    Nov 6, 2010
    Messages:
    884
    OK, guys...
    I thought a little bit about all what I have read here...

    I think we maybe have lost the "spirit" of RageSpline : simple, fast and easy !?!
    The first time I saw the video of RageSpline with the very fast way to create platforms, trees... I immediatley thought it's a great tool !!! AND IT IS A GREAT TOOL !!!!!!!!!!!!!!!!!!!!!! As long as we see it as a fast drawing program associated to the unity3D engine allowing us to make nice "simple" games like Ragecar or Ragecube...

    Maybe I have pushed people to wish more from it because of my first textured door and platforms...
    But for this kind of work, it's better to use another extension : Unitile !!!

    With RageSpline we can go further (OK !) but the real benefit of it is to draw very quickly what we need for simple graphics game.
    You can see the success of Doodle Jump : Do you think the authors have wasted a long time to create the graphics !?! NO !!!
    The idea is the key of the success (+ the hazard !).

    So I have decided to stopp with too much waiting from RageSpline and to use it for what it originally was made by keely...
    And for example I have tried to replace the Ragecar with my own simple car. It's funny to test several forms of cars because the great programmation of keely generates completely different reactions of the car following the places of the wheels compared to the body. Try with a low car and a tall car.

    Here is my car :

    [​IMG]

    Request to keely : Could add in your script "rolling rim" because you can see on my picture that I have added a kind of star to the wheels but I don't know how to make them roll when the car is on the ground and make them lose velocity when the car is in the air !?!

    6R
  31. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
    I agree that the most powerful aspect of RageSpline is that it's so effortless to use and easy to learn. Almost transparent as tool. You just "draw" what ever you need straight into your game. Even if you end up doing the final polished graphics with some other technique. This made the actual level creation FUN for me. It's fun to throw new stuff on your level with RageSpline. It's almost like a game in itself. That's how I feel about it anyway.

    And I promise that I will not sacrifice this fun for a new feature. If some new feature is disrupting this core feeling, it has to go. Period.

    All these new workflows for the texturing that I'm planning now, will be to aid the process of finalizing your graphics with your image editor and hopefully aid the performance for the mobile platforms. It will be an additional feature for the current workflow. NOT something that gets in your way of how you use it now.
    Last edited: Apr 28, 2011
  32. p6r

    p6r

    Member

    Joined:
    Nov 6, 2010
    Messages:
    884
    You're right : It's like a game in itself !!!

    It's a good idea to add options (because we all will benefit of them !) without sacrifying the FUN and the easy use...

    Wish (for better use) : Could you add the option with the key "O" for example to "delete" the outline on each part of a selected point ???
    Your Free outline option (key "F") actually deletes the line at the left side of the shape. Interesting because we can rotate the shape but not the best way.
    If we could "delete" (= make invisible) the line(s) on each part of a selected point it will be faster and better. Is it possible ???
    We already have N, K and L keys to change some options... Why not "O" for Outline appearing or disappearing ???

    6R
  33. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
    Any shortcut key has to be one that Unity has not already reserved for something else. I can't remember from the top of my head if the O/F are reserved for something, but I can certainly add shortcuts if that's users want.

    More control for the outline is also a good idea. It might add some complexity to the code and the GUI, but I'm sure I'll find a way that makes sense.
  34. ibyte

    ibyte

    Member

    Joined:
    Aug 14, 2009
    Messages:
    522
    keely, was trying to reproduce some simple characters that I have available in svg format.

    In order to make things look symetrical on some objects, I need away to know what the current x/yof the handle is. Could a toggle-able label be added to the scene view or the coord's shown in the inspector?

    Also it it would be possible to add a handle numerically?

    iByte
  35. p6r

    p6r

    Member

    Joined:
    Nov 6, 2010
    Messages:
    884
    And please, don't forget to give the possibility to change the size of the collider from very thin (interesting too for some projects !) to thick (like actually, interesting too !) !?!

    6R
  36. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
    I actually had those visible while developing, but decided to hide them for UI-clarity.

    Go to RageSpline/Code/RageSpline.cs and on line 62:
    Code (csharp):
    1. [HideInInspector]
    2. public RageCurve spline;
    Change to:
    Code (csharp):
    1. //[HideInInspector]
    2. public RageCurve spline;
  37. ibyte

    ibyte

    Member

    Joined:
    Aug 14, 2009
    Messages:
    522
    keely, Thanks that helps.

    I also did a quick little hack

    Inserted RageSpline.cs (60)

    Code (csharp):
    1. public bool showPointCoordsGizmos=false;
    2.  
    Inserted RageSplineEditor (275)

    Code (csharp):
    1.     if (spMesh.showPointCoordsGizmos) {
    2.         Handles.Label(spMesh.spline.points[s].point,spMesh.spline.points[s].point.ToString());
    3.     }
    4.  
    Now if i could figure out how to use a GUIStyle to change the text colour i'd be a little happier :)

    Sadly there is no Gizmo.DrawText();
    Last edited: May 2, 2011
  38. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
    Wow, very nice. I didn't even know that Handles.Label existed. I'm going to add that to the update.
  39. ibyte

    ibyte

    Member

    Joined:
    Aug 14, 2009
    Messages:
    522
    Hi keely, would it be possible to relocate a control point on the spline? Something Alt(or Ctrl) Click Drag?

    iByte
  40. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
    What do you mean by relocate?
  41. ibyte

    ibyte

    Member

    Joined:
    Aug 14, 2009
    Messages:
    522
    if you have a line spline with two control points. you click in the middle to add a point. You then decide you would rather have that point closer to one end. Right now you have to delete the point then re-add it farther down the line. Would it be possible to relocate the point by moving it with out affecting the length of the line segments?

    iByte
  42. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
    It's a bit difficult, due how the splines work in general, but it's doable.
  43. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
  44. ibyte

    ibyte

    Member

    Joined:
    Aug 14, 2009
    Messages:
    522
    Hi keely, thanks for sharing that blog post ... congrats! on your initial sales ... lookin forward to future updates.

    iByte
  45. prime31

    prime31

    Member

    Joined:
    Oct 9, 2008
    Messages:
    6,421
    @keely, congrats! Now, the way I see it we are all your boss so you owe us all the following :)

    - inner borders
    - svg import
    - svg export
    - textures for borders
  46. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
    60 bosses! I want my old job back! (just joking, I didn't quit (yet (if someone at work is reading, I'm joking (again)))
  47. alex.loren

    alex.loren

    New Member

    Joined:
    Jan 7, 2011
    Messages:
    83
    Just read over your blog entry Keely, I must say that I am not very surprised to see such a number of purchases. You have created a very great tool here, and I am sure you will be seeing the number climb much higher. Congratulations and keep up the amazing work on RageSpline!
  48. shadowfork

    shadowfork

    Member

    Joined:
    Jan 8, 2010
    Messages:
    153
    Great product!

    Quick question... the colliding curve is slightly higher for me and makes the object look like it is floating.

    Where can I edit this setting?

    Thanks!
  49. p6r

    p6r

    Member

    Joined:
    Nov 6, 2010
    Messages:
    884
    (your blog) I'm not surpised with this success !!! Congratulations !

    I don't stopp using RageSpline... So here are my wishes ! (Not necessary for all users) :
    * Is it not better to have the colors by default black and white especially for the emboss ones ! Usually for cartoon drawings we use "light" from the top-left and shadow onn the bottom-right side. So for me it should better to have : emboss 1 white and emboss 2 black !!!
    For blurry effect, it's perfect for example !
    I never use this strange brown on emboss 1 and I have to change each time the white of emboss2 to something's darker ! And the other users ???

    * When I open a new scene my (windows version) Unity default camera has these coord : 0, 0, -10 ! OK !
    But all the splines I drag and drop into the project panel are far away from the camera and invisible because behind it ! I always have to click on rest position ! is this the same for all ???
    If yes, could you add in the script a start position for each inserted spline in front of the camera ? Or 0, 0, 10 for example ???

    * I have read in your script "random" for the blob but it's always the same blob !?! Could you really add a random blob when we insert a textured blob ??? (and add a NON-textured random blob to the splines !)
    With more random (and more handles ?) it could be funny to see what happens when we drag and drop a blob : sometimes some blobs could have a great form at the start !!!!!!!!!!!!!!!!!!!!!!! A little bit with clouds in the real life : strange and funny forms...
    We could make numerous and different platforms for a game in one click (insertion of random blobs !) !!!!!!!!!!!!!!!!!!!!!!

    6R
  50. keely

    keely

    Unity Technologies

    Joined:
    Sep 9, 2010
    Messages:
    884
    Thanks for all the pointers! I specially love this one. It's a 100% winner.