Search Unity

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

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

  1. Stardog

    Stardog

    Joined:
    Jun 28, 2010
    Posts:
    1,432
    Can I buy this outside the asset store? It asks for version 3.5.6...

    I'm in lock down mode with 3.5.5f3.
     
  2. MaDDoX

    MaDDoX

    Joined:
    Nov 10, 2009
    Posts:
    758
    Hi Eown. May I get a copy of your project, or a small subset of it showing the problem? I couldn't reproduce it here in my tests, although I can only test it on Android - but I've never got a similar complaint from other published iOS games which use these features. Our e-mail is contact [at] freakow.com

    Great job mu-kow, it's looking really cool :) So, basically you'd have to "counter-rotate" the gradient angle according to the transform rotation, making sure to call a refreshmesh() after that - but I think you're already doing it anyways.

    Yes you can Stardog. Just send us an e-mail: contact [at] freakow.com
     
  3. keely

    keely

    Joined:
    Sep 9, 2010
    Posts:
    966
    This is pretty awesome! :) Good work. Do you have plans on releasing this?
     
  4. mu-kow

    mu-kow

    Joined:
    May 15, 2012
    Posts:
    106
    Thanks! I have no problem rotating the gradient angle (the gradient gizmo even rotates as i would expect). I do not call refreshmesh() though, during Start() i actually get the vertices i want with:


    Code (csharp):
    1.  
    2. if(rageSpline.fill != RageSpline.Fill.Landscape){
    3.            
    4.     int splitCount = rageSpline.GetVertexCount();;
    5.         for (int i = 0; i < splitCount; i++) {
    6.             float splinePos = (float)i / (float)splitCount;
    7.             Vector3 normal = rageSpline.GetNormal(splinePos);
    8.             shape.addVertex(rageSpline.GetPosition(splinePos) + normal * (colliderFromOutline ? (rageSpline.OutlineWidth * 0.5f + rageSpline.outlineNormalOffset) : 0f) );
    9.         }
    10.        
    11.         } else {
    12.         RageSpline.RageVertex[] splits2 = rageSpline.GetSplits(rageSpline.GetVertexCount(), 0f, 1f);
    13.  
    14.         for(int i = 0; i< splits2.Length; i++){
    15.             shape.addVertex(splits2[i].position + rageSpline.GetNormal(splits2[i].splinePosition) * (colliderFromOutline ? (rageSpline.OutlineWidth * 0.5f + rageSpline.outlineNormalOffset) : 0f));
    16.         }
    17.         float bottomY = rageSpline.GetBounds().yMin - Mathf.Clamp(rageSpline.GetLandscapeBottomDepth(), 1f, 100000000f);
    18.             shape.addVertex(new Vector2(splits2[splits2.Length - 1].position.x, bottomY));
    19.             shape.addVertex(new Vector2(splits2[0].position.x, bottomY));
    20. }
    21.  
    And then i modify the mesh directly. Problem with calling refreshmesh() is that it sets all the vertices in the mesh back along the spline paths and doesn't allow for me to deform it the way i have been (i only need the spline path points for the initial points really).

    So, any other way that i could update the gradient and or texture angles would be great! I've looked a bit in the refresh method and generate mesh method but could not figure anything out.


    Thanks! No plans to release it any time in the near future... I am working on this in order create a game (largely inspired by loco roco for psp). Maybe after i finish the game i could look into putting it out publicly (still way too many things missing and my code is messy).
     
  5. Javy

    Javy

    Joined:
    Mar 18, 2012
    Posts:
    20
    I'm having a problem with the RageTools bundle.

    I've created my own prefab from the Circle shape by dragging it to the Hierarchy, renaming it, then dragging it back into my projects folder.
    I set the physics to mesh collider.
    Set the physics material to my own physics material.
    Added a rigidbody component.

    For some reason, it shows under 'Mesh Filter: [none]: Missing Mesh"
    When I click to select the Mesh, it shows none as selected, then I close the pop up window, and "Missing Mesh" changes to "Type Mismatch."

    The code works as expected, but I'm wondering if this is a problem or not.

    I'm fairly new to Unity and RageTools. So far, so cool.
     
  6. Javy

    Javy

    Joined:
    Mar 18, 2012
    Posts:
    20
    Also, how would I remove a mesh collider at runtime? Previously I was using a sphere and setting its collider.enabled = false, but this won't work for the mesh renderer applied in Unity.
     
  7. Javy

    Javy

    Joined:
    Mar 18, 2012
    Posts:
    20
    I started a new project and imported all the files, then remade the custom circle prefab, and the mesh collider appears to no longer be active when I set the collider to false.

    I still have an issue with the "Missing (Mesh)" text. :)
     
  8. MaDDoX

    MaDDoX

    Joined:
    Nov 10, 2009
    Posts:
    758
    After checking your project, I confirm the artifacts, it also happens on Android. Nothing to do with RageSpline though, it might be some obscure issue with Unity itself, maybe related to fast camera panning and the devices refresh rate. Or something even crazier. To confirm that RageSpline is not to blame, I've "pinned down" the texture projection position (offset), and the issue completely goes away.

    In case you want to test or keep the texture projection fixed, I've sent the updated project attached. Follows the lines I've used to " pin down " the texture, fairly straightforward in fact:

    //Vector2 posDelta = _oldPosition - realPosition;
    //MainRail.SetTextureOffset(MainRail.GetTextureOffset() - posDelta);
    //MainRail.RefreshMesh(true,true,true);

    I've also tried many texture setting changes, both in the import and in the export modules, to no evail. You could try slowing down the texture panning and see if it helps. If you find any further info on the issue, whatever the cause, please let me know.

    Mu-kow, you can try accessing the Mesh filter's UV coordinates directly with your script and offsetting them. Should work.

    Have you enabled " Physics Editor Creation "? Mesh Filter's mesh showing Type mismatch happens only in the prefab, since it requires a procedurally generated mesh which's simply not available for Prefabs. In the instance you should have no problem.
     
  9. eown70

    eown70

    Joined:
    Sep 2, 2012
    Posts:
    7
    @MaDDoX :
    Thanks a lot :) !!

    I move back the textureOffset every time I add Ragespline points, not at each frame. So the texture isn't "pin down" and it works well, no bug anymore on IOS.

    Thanks again for your help :D :D
     
  10. meta87

    meta87

    Joined:
    Dec 31, 2012
    Posts:
    254
    I recently purchased RageSuite and I'm very excited about all the uses of these great tools! I'm having a pretty basic problem. When I try to change the shader of one ragespline object in my scene, it changes all the ragespline objects in my scene to the new shader type. They arent grouped or parented to each other in any way. I appreciate any help you can give me. Thanks.
     
  11. Javy

    Javy

    Joined:
    Mar 18, 2012
    Posts:
    20
    Coming from a background with sprite sheets, I know that memory usage is directly based on the sprite sheet itself. Creating each instance of a sprite usually only consumes a small amount of memory for the object data.

    What's the memory usage with RageSpline? Is there a way to calculate that based on whether it's using basic colors, gradients or textures?

    What about long landscape sections? How would memory usage be calculated with them (if different from other shapes)?
     
  12. laskiapina2

    laskiapina2

    Joined:
    Feb 22, 2012
    Posts:
    17
    I don't know if this is the right place to ask about this, but anyway. I tried to do this almost the whole day yesterday without any luck.

    I need to access RageSpline variables (colors and stuff) through script in javascript. I'm trying to Instantiate the RageSpline object and then change its variables so it looks like a shadow. That's it.

    I want to do this in runtime because it would be easier when I edit the shapes so the shadows would update as well. I'm going to have to update moving object's shadow position and rotation too, but that I can do.
     
  13. BrainMelter

    BrainMelter

    Joined:
    Nov 20, 2012
    Posts:
    572
    Is there any way to update the texture parameters (offset, angle, scale) in realtime? In my case, I want to have a texture scrolling effect.

    You can do it by calling RefreshMesh every frame, but this is *very* expensive.
     
  14. markTheDesigner

    markTheDesigner

    Joined:
    Sep 12, 2009
    Posts:
    14
    Hi,

    I'm getting a problem when I duplicate splines. They seem to be connected in some way as when I change the physics mesh on one, the previous mesh physics collider changes (but the visual doesn't). I've tried 'Break Prefab Instance' but the option is not available.

    This is pretty crippling for me as I have to create a new ragespline each time which is very slow.

    I'm using the latest version of Unity (3.5.7f6) on a Mac.

    Thanks
     
  15. markTheDesigner

    markTheDesigner

    Joined:
    Sep 12, 2009
    Posts:
    14
    Just thought I'd expand on this to help you track it down.

    The problem only appears after playing and seems to only affect the previous mesh (not the previous previous). Here's a picture.

    $Screen Shot 2013-03-04 at 14.45.17.png
     
  16. BrainMelter

    BrainMelter

    Joined:
    Nov 20, 2012
    Posts:
    572
    Btw, grid snapping appears to be broken in the latest (1.5.5) release.
     
  17. meta87

    meta87

    Joined:
    Dec 31, 2012
    Posts:
    254
    markTheDesigner : I noticed the same problem when I had the "physics editor creation" checkbox checked. It went away when I turned that off.
     
  18. markTheDesigner

    markTheDesigner

    Joined:
    Sep 12, 2009
    Posts:
    14
    meta87 : Thanks, that worked :)
     
  19. MaDDoX

    MaDDoX

    Joined:
    Nov 10, 2009
    Posts:
    758
    That's the standard Unity behavior. Make sure to duplicate the RageSpline material (or whatever other reference material you need) and assign it to the desired object.



    Hi Javy. There's no difference in the memory usage for basic fills or gradients, they both use vertex data only. As for Textures, it really depends on the texture size itself, ofc. There's no fixed formula to calculate the memory usage of a vector drawing or sprite, since it's got "infinite resolution", in terms of how much detail you can add, compared to bitmap graphics. That said, Unity is quite effective at compressing polygon data, RageSpline and RageTools provide all the tools you need to shrink the polygon usage (generated from the vector graphics) as much as a single polygon edge per vector segment.


    Since RageSpline is entirely in C#, please check the "script compilation order" section in Unity docs.


    Please read my reply to mu-kow above.



    MarkTheDesigner, this "side effect" is slightly hard to tackle without impairing the editor performance of physics shapes. Try refreshing like meta87 suggested, or David Reimer's cool new (and free) script to *truly* break a prefab connection:
    http://blog.almostlogical.com/resources/UnlinkPrefabConnection.cs


    I've noticed that right after release. Will get to it.


    PS.: Once again guys, whenever you need support please send an e-mail to contact [at] freakow.com. I know I've been truly busy and slow at responding even e-mails lately due to my new lectures, but it'll still be quicker than through the forums. Thanks!
     
  20. Javy

    Javy

    Joined:
    Mar 18, 2012
    Posts:
    20
    Thanks for the info on memory usage. I plan on using fills and gradients only for my immediate projects, so mobile performance should be good.

    Lectures? Where? What topic?
     
  21. MaDDoX

    MaDDoX

    Joined:
    Nov 10, 2009
    Posts:
    758
    I've started lecturing on a major University here in Brazil, classes on Unity, Game Design and Digital Illustration. Wasn't expecting to get my hands so full but some key professors left the institution so I'm helping them out. Nevertheless I've managed to free up the entire Tuesday (today!) besides some other periods in the week, so it's not too bad now that the early days whirlwind calmed down :)

    In case you're interested, this is a lecture I gave on developing games quickly with RageTools and Playmaker for this year's Global Games Jam (Our university hold the second largest GGJ event in the world!) . Too bad - for most of the world - that the lecture is in Portuguese, I might add english subtitles sometimes - or just give a new workshop in english, should be easier heh

    http://www.youtube.com/watch?v=ht1Dgct3v70
    http://www.youtube.com/watch?v=ZmOsdjS5Ymc
     
  22. asdasdassadas

    asdasdassadas

    Joined:
    Nov 27, 2012
    Posts:
    18
    Hey Keely! Thanks for the Ragspline pretty awesome thing there -just one question need answering - How do you create a procedural level? Please do tell!
     
  23. figment

    figment

    Joined:
    Feb 1, 2013
    Posts:
    13
    I know this if fairly old now. I want to use RageSpline to create 3D vectors that will scale properly, and EdgeTune to make it as efficient as possible on mobile devices. I'm on the edge of of buying RageSuite ... just want to be sure it will help us do what we want to do.

     
    Last edited: Apr 10, 2013
  24. Matt-Face

    Matt-Face

    Joined:
    Mar 24, 2013
    Posts:
    18
    Hi all,

    i need to draw a rectangle that is has a stroke/outline, but only on two of it's sides (two that are opposite each other)...
    i thought about fudging this by drawing shapes in front but i would prefer to do as cleanly as possible because i will need to modify the rectangle every frame... Can i change my code to cleanly remove the stroke from two sides of my rectangle whilst leaving the rest intact?

    Thanks!
     
  25. BrainMelter

    BrainMelter

    Joined:
    Nov 20, 2012
    Posts:
    572
    The website seems to be down. Is this still being maintained?
     
  26. reddotgames

    reddotgames

    Joined:
    Apr 5, 2011
    Posts:
    663
    Version from Asset Store still crash our project (good that we have backup again) after importing into Unity 3.5 - I need to use old 1.1 version to all works good. It was almost half year from when I reported this to Freakow ... no progress since today .... what is going on??????
     
  27. figment

    figment

    Joined:
    Feb 1, 2013
    Posts:
    13
    Whats the error message?

    I got a reply from Maddox a couple days ago seems that he is still active here..

     
  28. reddotgames

    reddotgames

    Joined:
    Apr 5, 2011
    Posts:
    663
    Fatal Error type == kMetaAssetType pathName.find ("library/metadata") != 0"
     
  29. MaDDoX

    MaDDoX

    Joined:
    Nov 10, 2009
    Posts:
    758
    For that you'll need two rectangles indeed, or an open line (to work as the partial strokes) and a rectangle, to work as the fill.


    Website is alive and well, and of course the plugin is being continuously updated. I just wish I could make people place questions in the newest versions threads (1.5, 1.1 at least), since I never get an update warning from this one. Once in a while I still check it too - like now :) Please send a support e-mail to contact@freakow.com for any support requests.


    After many attempts and back-and-forth e-mails with Unity we did trace down the problem and the latest update has worked things out for many users, I'm sorry it isn't working for you. Please try this: Instead of importing the Asset Store package to an existing project, create a new project from scratch then import the package. Re-arrange the folder structure (from within Unity) to match that of your destination project's, and export a package. Import this package into your target project and it should work just fine.


    Situation should improve in the next release since Farseer will be easily disabled using a new RageCamera option, and this issue is related to Farseer.
     
  30. paraself

    paraself

    Joined:
    Jun 30, 2012
    Posts:
    139
    Could you kindly integrate Catmull-Rom curve edit? Because it is not so handy to always adjust bezier curve handle. Though I can find a workaround but it's nice to see that ragespline can do that under the name of "spline".:D
     
  31. BrainMelter

    BrainMelter

    Joined:
    Nov 20, 2012
    Posts:
    572
    Hmmm, strange, website still appears down for me. ragespline.com?
     
  32. yuriythebest

    yuriythebest

    Joined:
    Nov 21, 2009
    Posts:
    1,012
    Greetings! regarding the following demo:
    http://ragespline.com/APIExamples/SimpleRuntimeEditor/

    is there some script/functionality that would allow the user to save his work? (for example, edit a shape during runtime, save to a file, load later) or would this need to be written from scratch?
     
  33. nab

    nab

    Joined:
    Aug 2, 2013
    Posts:
    8
    How can I make the border's texture pixel perfect ?

    for example, in the included Physics Game Template, if I wan to add a border of 32 or 64 pixels on top of the land and add grass texture to it, how can I do that ?
    (like the grass in the follwing picture)
    $Torque-Game-Builder-Platformer-Kit-Game-Demo_3.jpg
     
  34. AllonXR

    AllonXR

    Joined:
    Jul 16, 2012
    Posts:
    28
    Hi there,

    I encounter a serious memory leak when using splineObject.RefreshMesh(false, false, false) (36.4KB per call).
    However, since I need to change the color of my RageSpline object regularly this is a bit of a problem.
    Is there another, more mobile-friendly way to change the (outline) color of a ragespline object?
    I have tried using a different shader, but this will destroy the look of my RageSpline object.

    Many thanks in advance.
     
  35. Clement_Shimizu

    Clement_Shimizu

    Joined:
    Apr 13, 2011
    Posts:
    22
    I have a few questions:

    I am trying to create a curve with rounded endpoints. I want a rounded endpoint that is centered on the first and last control point.

    I am running into a few issues. It seems like the curve, when tesselated, goes beyond the control points by a little bit. This causes the lines to be too long!

    This prevents me from drawing lines precicily where i want them, because I want them to start and stop and the first and last control point. I am spawning circles at the start and end control points and that would allow me to create a curve with rounded endpoints, but only if the curve started and stopped at the first and last control point.

    I also agree with paraself on catmul rom spline being important because when generating curves to interpolate points using the API, you normally don't know the tangent.
     
    Last edited: Nov 5, 2013
  36. meta87

    meta87

    Joined:
    Dec 31, 2012
    Posts:
    254
    It would be awesome if RageSpline could generate the new 2d Polygon colliders. I might try and hack around and see about it, but I will definitely be in over my head. :)
     
  37. ABerlemont

    ABerlemont

    Joined:
    Sep 27, 2012
    Posts:
    33
    Any plans to migrate RageSuite to Unity4 ?
    Lots of warnings on some projects I started on Unity 3 ^^
     
  38. rob_b30

    rob_b30

    Joined:
    Aug 3, 2009
    Posts:
    35
    hi! did you get anywhere with this. It's a feature I need rather urgently. Either that I'm gonna have to drop ragespline as a graphics solution. which would be a great shame because otherwise it is wonderful.
     
  39. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    6,464
    Is this asset no longer maintained?
     
  40. movra

    movra

    Joined:
    Feb 16, 2013
    Posts:
    571
    It does seem a bit neglected, considering the newest version was published way back in August. I mean, does it hurt to at least include some documentation instead of referring to a website that's been broken for ages?

    $ragespline_website.png

    This is the last message I have found from RageSpline's current maintainer:

     
    Last edited: Dec 17, 2013
  41. sonicviz

    sonicviz

    Joined:
    May 19, 2009
    Posts:
    1,035

    So it's now a dead product? It should be removed from the asset store.
     
  42. chillypacman

    chillypacman

    Joined:
    Oct 1, 2011
    Posts:
    71
    If it is are there alternative tools anywhere available for unity? Specifically I'm looking for ways to import EPS or SVG vectors into games...
     
  43. MaDDoX

    MaDDoX

    Joined:
    Nov 10, 2009
    Posts:
    758
    RageSpline 1.6.4 has been sent yesterday to the Asset Store. Changelog:
    It's by no means dead guys, I just *very* rarely visit the older threads. You can keep an eye on the progress we've been doing in the RageTools thread and in our Facebook page: https://www.facebook.com/FreakowGames

    As for the RageSpline site, it's not an easy situation since the domain is property of the plugin original creator. I've been exchanging some e-mails with him about the domain transfer. Meanwhile please download a hardcopy of the docs here: http://www.freakow.com/ragetools/ragespline_docs_raw_html.zip
     
  44. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    6,464
    Hey thanks for the update!

    It's really nice to finally be able to hit play and not get 60 errors/warnings. I was starting to really worry about stability. Sorry to hear about the difficulties with the domain and such, I hope you get it sorted soon.

    What is/was Farseer? Support for it was removed, but I'm not sure what this means for the Ragespline kit. Does this have anything to do with the RageFarseer folder? Can I remove it?
     
  45. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    6,464
    I'm getting this error when clicking on splines in the project hierarchy:

    Code (csharp):
    1. NullReferenceException: Object reference not set to an instance of an object
    2. RageSpline.OnEnable () (at Assets/_ThirdParty/_Freakow/RageSpline/Code/RageSpline.cs:195)


    I have a RageCamera component on the camera and they appear to be normal.

    Edit:
    Error persists one error for each spline in the scene at runtime.
     
    Last edited: Jan 31, 2014
  46. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    6,464
    I created some more stuff with RS today. Just some basic shapes that appear and don't do anything... Went to play test it and get so many errors and shader normals warnings that it can barely maintain 10 fps. I turned off cast/recieve shadows on all of the objects and its still the same errors. Actually worse than before, I could run this without any trouble before updating, just a slew of warnings on startup.

    **edit

    fixed this by commenting out the lines, I think it has something to do with having more than one camera.
     
    Last edited: Feb 1, 2014
  47. charmandermon

    charmandermon

    Joined:
    Dec 4, 2011
    Posts:
    351
    Hi everyone I modified rage spline to add support for 2d polygon collider and the performance has skyrocketed. If anyone is interested let me know and ill help them add it. Let me know if you want the help maddox.

    Thanks
    -Dustin
     
  48. crag

    crag

    Joined:
    Dec 13, 2013
    Posts:
    145
    Do you have time to update the FTP server? Only found 1.6.2 there.
     
  49. duke

    duke

    Joined:
    Jan 10, 2007
    Posts:
    763
    Is there a way to calculate auto-tangents for a point (or an entire spline)? This comes into play when creating a spline through code.
     
  50. chirhotec

    chirhotec

    Joined:
    Mar 30, 2010
    Posts:
    47
    Is there a way to align the textures across multiple ragespline (landscape) objects?

    I'm trying to create a level that contains multiple ragespline landscape areas, oriented in different directions, to create a pit. The textures generally don't line up together. I've somewhat overcome this by create 3 different styles (for left regions, right regions, and bottom regions), and then wrote a script to modify the style's texture orientation and scale. This mostly works, but requires that the ragesplines have a common location. I'm having to redo the level to move all the ragesplines to be located at (0,0,0) and modify their points to be offset within the object.

    Ideally, I'd like to be able to group rage splines together and have something that makes their textures align regardless of their angle or location. Is there anything that already does this?
     
unityunity