Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

Simple Waypoint System (SWS) - Move objects along paths

Discussion in 'Assets and Asset Store' started by Baroni, Dec 10, 2011.

  1. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    @Lars
    PM with new rotation code sent. I don't want to add all user requested variables to SWS because that would bloat the kit. The full source code is documented and therefore pretty easy to understand.
     
    Last edited: Feb 27, 2012
  2. isaacch

    isaacch

    Joined:
    Oct 19, 2011
    Posts:
    20
    Hey Baroni, its me again, haha.

    Is it possible to have 2d sprites follow the waypoints and change their sprite upon reaching a waypoint? (eg. the sprite shows a human facing right while the object is moving to a waypoint on the right, and faces left when walking left)
     
  3. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hey flamerx2,

    glad to read you again and that you still use SWS :)

    The right solution depends on whether you need a different sprite at every waypoint,
    or only need to switch left to right at every waypoint.

    So if you only need to change your sprite to left / right at every waypoint, the easiest way would be to extend iMove's Move() method, because this function gets called after every waypoint. You could place some code like this in there: (pseudocode)
    Code (csharp):
    1.  
    2. void Move(int point)
    3. {
    4.    //switch texture to the opposite at every waypoint
    5.    if(humanRenderer.texture == facingRight)
    6.       humanRenderer.texture = facingLeft;
    7.    else
    8.       humanRenderer.texture = facingRight;
    9. ...
    10. }
    11.  
    In a more advanced solution you could also check the direction your object is walking, and then assign the right facing-texture to it. You should do that in NextWaypoint(), because Move() doesn't know the last waypoint. In a 2D-world that would result in storing the old waypoint index, checking the direction between the current (old) and the next waypoint to set the fitting facing-texture: (pseudocode tested in seconds)

    Code (csharp):
    1.  
    2. IEnumerator NextWaypoint()
    3. {
    4.    //at the beginning, store the old waypoint index
    5.    int oldWaypoint = currentPoint;
    6.    //all base code
    7.    ...
    8.    //at the end, get waypoint direction Vector
    9.    Vector3 direction = (waypoints[currentPoint].position - waypoints[oldWaypoint].position).normalized;
    10.    //assuming 2D axis are x (left, right) and y (up, down)
    11.    if(direction.x > 0)   //next waypoint is to the left
    12.       humanRenderer.texture = facingLeft;
    13.    else   //next waypoint is to the right
    14.       humanRenderer.texture = facingRight;
    15. }
    16.  
     
    Last edited: Feb 28, 2012
  4. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,521
    Thanks for the code!

    I'm wondering if its possible to select the individial waypoints directly from the viewport? I only get the group object but not the parts to move.


    I also looking for an extra animation slot, so we would have

    idle, walk, run

    And run would be activated after a certain speed. ( defined in the editor )
    Is this possible? I think this can be useful for more users.
     
    Last edited: Feb 29, 2012
  5. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    @Lars

    Regarding your first question, clickable waypoints ( / empty gameobjects) - these waypoints are not selectable because they contain no mesh nor collider. However I found a similiar topic here, thus the waypoints would be selectable if you change PathManager's Gizmos.Draw[...] functions to Gizmos.DrawIcon. I could include that in the next version too.

    I see some problems regarding your second question, there is no way to get iTween's current easetype speed value to determine the right animation. The only solution of which I can currently think of is to check the distance between your start point and the walker object, then after a custom distance value play the run animation. The same check would occur between your walker object and the end point, which then plays the walk animation if it gets near the end point.
    As summary, you would have to implement a custom check-distance-method, which could run in iMove's Move() function as iTween's "onupdate" parameter. Please make sure to comment out the standard Move() animation code in order to not overwrite any animation states.
    I don't know whether iTween would be the best solution in this case at all. Hope this gets you started!
     
  6. c-Row

    c-Row

    Joined:
    Nov 10, 2009
    Posts:
    847
    Sorry, didn't see you PM'ed my until today. I thought it might be interesting for other user as well, so feel free to ignore my answer and reply in this thread instead. ;)

    - can I move a complete path during runtime? (I think this one has already been answered)
    - can I assign a new target waypoint (even on another path) during movement between two points or will this only work once the object reaches its current target waypoint? (iTween originally doesn't support this)
    - can movement along a path be controlled via player input (moving back and forth between two waypoints on pressing Left/Right)?

    Those would be nice to have for my current project to replace some of the messy code I wrote, but even if it doesn't work, I can still see various possibilities to use your extension for my enemy objects instead.
     
  7. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hey c-Row,

    glad you found my thread :)

    1. You can move paths during runtime, this will also move all waypoints of that path (because they're parented), but your objects will walk to their current destination and then update their new path position. To postpone a path with their objects walking on it is a planned feature. There's a webplayer on the last page errm.. ah here's the link. Imagine you drive a car, and the camera will switch its position from the left side to the right, in this situation that could be very handy. Still not enough time to work on that yet, but it's on my list.

    2. I don't know if you want to build your own path with custom waypoints, so let me tell you that you only have to assign a path component to your object, it will then follow all waypoints of this path. So you assign path components to your object, not waypoints. However you can also modify the current waypoint array and change a waypoint by code (or change the whole path at runtime, so your object follows the new waypoint array). You're right, when you do that while between 2 waypoints, your object will try to reach its current waypoint. That's a desired behaviour of iTween, but it is possible to prevent this from happening by calling 2 additional methods, which destroy the old and add a new iTween component instantly. Here's a similiar question.

    3. It could - but it's not implemented ;) However this should be very easy, because there's only 1 important method in the provided scripts to look at: Move(int point). Pass in the desired waypoint index and your object will move to it, you really shouldn't have too many barriers in coding a controlled behaviour.

    Let me know if you have further questions!

    Greetings
     
  8. c-Row

    c-Row

    Joined:
    Nov 10, 2009
    Posts:
    847
    Thanks for your answers.

    1. Moving the path without the player object is fine - in fact, that's what I a doing right now anyway. Both the old and the new position share a segment of the path anyway, so the current destination waypoint is present on both the old and the new path.

    2. The problem is that once the current path has changed its position the player object should not move to waypoint X after reaching its current destination, but waypoint Y instead. Again, hard to describe without seeing the current prototype... I will try and upload it somewhere.
     
  9. c-Row

    c-Row

    Joined:
    Nov 10, 2009
    Posts:
    847
    There you go... :D

    The game is basically Space Invaders on a hexagon. You can move the ship along the current path using the left and right keys. Now the twist is that once you press C you can switch to the adjacent hexagon and move the ship around the map that way. The idea is that enemies can still attack you from behind to keep you on your toes. ;) Also, that leaves you with whole maps consisting of various hexagons rather than one map like in the classic version.

    Unfortunately I am working with gizmos to visualize the current path and they are not present in the web build of course, so here's a picture of the game view in Unity.



    I tried to rotate the path around the player object's local position, but that left me with some odd coordinates and rotations, so I decided to simply move the path instead and tell the player object that (i) instead of moving to waypoint X, it should move to waypoint X + 3 in the path array, and (ii) it should walk the path in the opposite direction now.


    A more elegant solution would be to give every hexagon its own path to move the player on, but that would ask for the possibility to put the player on a certain point of the path (iTween's PutOnPath I guess) and tell the player object that it should work the waypoints of the new path in reverse direction.
     
    Last edited: Mar 8, 2012
  10. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Now I see where this is going, nice prototype :)

    You propably don't want to use the iMove() component (for automated movement) on your player object at all, as this makes no sense for an input controlled object like yours. Automated movement would only make sense for your enemies. Instead, you may want to code your own movement implementation based on iTween's PutOnPath, right.
    If every hexagon has its own path, you would only have to call its path component to access all waypoint positions, from there some simple checks should get the two nearest waypoints and set the PutOnPath start value accordingly, so the player would be able to move back and forth between those two waypoints by pressing left/right. When the player reaches a waypoint (so the ship can't move on in this direction anymore), you could get your next 2 waypoints in this direction and reset the PutOnPath value. A "reverse path direction" method is integrated in my path components, but I think in this case you don't need this method.
     
  11. c-Row

    c-Row

    Joined:
    Nov 10, 2009
    Posts:
    847
    So PutOnPath works with SWS? Pretty much the only reason for coding my own system was that iTween didn't support straight edges in its paths which on the other hand seems to work fine in SWS.
     
  12. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    No, unfortunately not yet. But you don't have to pass in the whole array of waypoints, only the next waypoint for each side (left/right). Therefore you always interpolate between two waypoints using PutOnPath, not an array, because this would create a curved path. So with your custom movement script, the main reasons for using SWS could still be automated movement for your enemies, runtime path instantiation and an editor path creator + path editor which stores all waypoints.
     
  13. c-Row

    c-Row

    Joined:
    Nov 10, 2009
    Posts:
    847
    That's pretty much how it works at the moment, but without PutOnPath, yes. Still, more than enough reasons to give SWS a go. :) Thanks for your patience.
     
  14. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    You're welcome :)
     
  15. nab477

    nab477

    Joined:
    Jun 14, 2011
    Posts:
    46
    Hi, honestly, I haven't read all of the messages, so I'm not sure if this was answered or not.

    1) can I make a dynamic waypoint system using SWS ?

    example: tower-defense games like fieldrunners, I have 10x10 grid with each square containing a waypoint,
    when a player builds a building on one of them, the waypoint there will be disabled/deleted.
    when a player sells a building, that waypoint will be enabled/re-created.

    2) I'm assuming that it's using A* for path finding, is that correct ?

    3) does the object have to move to each waypoint's center, or can it move to the next one after reaching a certain radius ?

    Thank you.
     
  16. phocker

    phocker

    Joined:
    Sep 12, 2010
    Posts:
    57
    Question:

    Can you dynamically create waypoints using code? I do not use editor to create my level i have custom built level editor -- would be awesome if i could create waypoints at runtime.

    Paul
     
  17. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hi nab477,

    1) 2)
    SWS does not use any pathfinding method, it uses the waypoints that you have placed in the editor.
    There's no game logic behind waypoints, your objects will follow one predefined path as you see in the first post.
    So in its current state, major code changes of its movement component are needed to create a fully supported dynamic environment, its not really well suited for a grid.

    3)
    By default objects move to each waypoint's center, but this could easily be changed via a custom range check in its movement component.
    You only have to make sure your objects call one function when they're near their current waypoints.

    Please don't hesitate to contact me for further questions.
     
  18. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    @Paul

    You can. Waypoints are gameobjects, you can create and place them at runtime whenever and wherever you wish. Once you created all waypoints, you attach a path component to their parent transform and pass in the sorted waypoint array. The path is set, next, you may want to add it to the waypoint manager component by using a provided method, so other objects are able to call and follow this path.
    The last step is demonstrated in the runtime example which is part of version 1.2 and shows runtime path prefab instantiation.

    So, definitely possible.

    Greetings
     
  19. phocker

    phocker

    Joined:
    Sep 12, 2010
    Posts:
    57
    i just finished buying it -- i will try doing that -- an example of runtime would be a great addition to your examples -- thanks.

    Paul
     
  20. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    @Paul

    thanks for your support! Let me know if you need further help or code examples.

    Greetings
     
  21. SrBilyon

    SrBilyon

    Joined:
    Jul 13, 2010
    Posts:
    291
    Hey, Baroni!

    I was wondering if you may be able to help out with this. Lets say I make a path of waypoints through an entire level and I want to make my camera move on this path only and focus (LookAt()) the target, which in this case is the player. Is there a way to move the camera with the player's relative position along the path? I'm thinking along the lines of a rail camera, or a camera similar to that of games such as Sonic Unleashed/Colors/Generations.

    Also, do you have a direct email we can send questions to, or would you rather have us ask questions here or via PM?
    Thanks in advance!
     
  22. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hey SirVictory,

    ouh, that's a good one. Looking at your examples, I suppose your game is some type of 2D then?
    Well, for the ease of use you may want to use the whole waypoint array as a path instead of single waypoints.
    iTween then converts your waypoints into a curved path and you are able to use its PutOnPath() method.
    Basically, using this technique you have to track the player's progress during a level - this will give you a percentage value, and place your camera accordingly on the camera path. This way your camera is placed at 20% of your path, when your player reached 20% in the current level.
    There's an example on iTween's webpage which even mentions Sonic Unleashed, it's called "Using PutOnPath and PointOnPath".

    However this should produce some problems when your paths (player/camera) aren't equal - maybe one path is shorter than the other. In this case you could place triggers on the player's path or track the progress between single waypoints (or checkpoints), convert these individual values to an absolute path progress and then relatively move the camera (using PutOnPath). I uploaded a picture to visualise my thoughts.

    Last but not least, you could also do some funky calculations to get the nearest point between the player and the camera path and place it there. I call it funky, because you would have to attach colliders or something else to your camera path for being able (e.g.) to raycast against it.

    Hope that gives you a starting point!

    It's ok here :) When it comes to code, I prefer PMs.
     
  23. c-Row

    c-Row

    Joined:
    Nov 10, 2009
    Posts:
    847
    Hi Baroni,

    just wanted to post a short update on the usage of SWS within my project. Setting up paths for the enemies worked fine, so I had a working prototype running in no time. There's a small update to my project you can check out here (input is the same as before - Left/Right to maneuvre, C to switch to the adjacent system, Fire to shoot). At the moment only the rotating enemies on the outer rings can be destroyed, but the others should follow soon. :)

    I actually added two more features to your initial version:

    • the ability to set a starting waypoint on the selected path, so I could have several objects sharing the same path but starting at different positions; I didn't work out a good way to be able to select the point from the path since the script only reads the actual waypoints at runtime, so it's just an integer value you can set in the inspector
    • an option to have objects ping-pong after n waypoints rather than just after reaching the end (the spheres on the middle ring)

    Maybe you want to include one of these in a future update. I will give this version some more polish and probably post it in the Work In Progress section then. :)

    Again, thanks for making things easier!
     
    Last edited: Mar 23, 2012
  24. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hey c-Row,

    wow, your prototype looks great! I especially like the combination of your outer and inner rings,
    as well as the whole concept of switching paths at any time, that's very smooth now.

    The movement of your spheres is neat, these are some really good additions you came up with.
    I should put them on my list. As for the starting points, you could also use a list of waypoints,
    pass in the right waypoint gameobject and then try some sort of list.FindIndex() method - instead
    an integer value, but I'm glad that it works too.

    I'm always excited to see various usages of SWS, thanks for taking the time to show your results!
    Keep it up!
     
  25. TorontoJoe

    TorontoJoe

    Joined:
    Mar 25, 2012
    Posts:
    32
    Just got this. Ridiculously simple and straightforward. It just works.
    The developer, Baroni, is also extremely helpful.
     
  26. isaacch

    isaacch

    Joined:
    Oct 19, 2011
    Posts:
    20
    Hi Baroni, its me yet again, thanks for the reply the other time !

    Another question:

    Regarding the instantiating paths at runtime, is it possible to instantiate paths of varying lengths ?

    EDIT: Also, if I'm instantiating the paths at runtime (without the use of a waypoint manager), how do i check the waypoint dictionary if the current instantiating path already exists ?
     
    Last edited: Mar 28, 2012
  27. rockysam888

    rockysam888

    Joined:
    Jul 28, 2009
    Posts:
    650
    (bookmarked)
     
  28. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hey flamerx2,

    have you took a look at the sample script "RuntimeExample.cs" included in version 1.2?
    It also shows how to add a path to the waypoint manager. The length of a path should not affect path instantiation, what's the problem you are experiencing?

    @TorontoJoe rockysam
    thx :)
     
  29. isaacch

    isaacch

    Joined:
    Oct 19, 2011
    Posts:
    20
    Yep, I've taken a look at that, what I'm trying to do is to instantiate paths of different path lengths (meaning each path's WaypointEnd position is different)

    Also, how do I check if I have already added a path to the path dictionary, and not instantiate a new one if it already exists ?
     
  30. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    1. If you make a prefab of every path and instantiate them following the few conventions stated in the documentation, page 11, or by investigating the "RuntimeExample.cs" script, you only have to set the object's new path by calling "iMove component".SetPath(...) and "iMove component".StartMove(). Your object will follow the new path automatically (no matter how many waypoints it has or where they're positioned), I tested this a moment ago. Does this answer your first question?

    2. You will need the dictionary method 'ContainsKey(...)' for this check. Official documentation here. I implemented this method in WaypointManager.cs, line 41. Whenever you are calling AddPath(...), at this point it checks whether the path is already contained within the scene. However, you could also call this single 'ContainsKey(...)' method from every other script at any time.
     
  31. isaacch

    isaacch

    Joined:
    Oct 19, 2011
    Posts:
    20
    Sorry, I missed out a point: I'm using only 1 prefab to instantiate all the different paths. (The prefab only has 2 waypoints, hence I'm trying to change the position of each WaypointEnd to make some waypoints longer than the others)
     
  32. MartasX

    MartasX

    Joined:
    Mar 29, 2012
    Posts:
    14
    Hi Baroni,
    I wonder if you could help me. I'm trying to use SWS for simple enemy movement. I created path(“Path1”) through Waypoint manager and I need to assign the path name to enemy through script. My enemy has iMove script attached to it as well as my custom script(“EnemyControl.js”). But I’m getting error message saying “Unknown identifier: `WaypointManager`”.

    EnemyControl.js:

    Code (csharp):
    1.  
    2. #pragma strict
    3. function Start () {
    4.     gameObject.SendMessage("SetPath",WaypointManager.Paths["Path1"]);
    5. }
    6.  
    Am I missing something there?

    Many Thanks.
     
  33. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    @flamerx2
    PM sent.

    @ShadowX
    Hi,
    for being able to access C# scripts from JavaScript you would have to place them into the "Standard Assets" folder of your project. If there is no such folder, simply create a new one. There are 3 scripts that must be placed there: WaypointManager.cs, PathManager.cs and iTween.cs. Once done, your object should follow its path by using your script. Seems like I missed this step in the documentation, thanks for pointing that out! Let me know if this solves your issue.
     
  34. MartasX

    MartasX

    Joined:
    Mar 29, 2012
    Posts:
    14
    Hi Baroni,
    It works now! Thanks.
    I was thinking it has something do to with the "SWS script placement" and I tried put them in to "Plugins" folder as I did before with other assets but it didnt help...

    Any idea when the bezier curve movement will be available?

    Thanks again!
     
  35. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Great!

    Currently I'm very busy with real-life work so I can't make any early promises. We also set a deadline for our next project, which will use SWS for movement, that holds me back. However I planned a whole month for updates and support, I really hope I get a new update out in May. The good point is, that I created a new movement script by doing support for SWS, which will be included.
     
  36. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
  37. TBYG

    TBYG

    Joined:
    Sep 29, 2011
    Posts:
    158
    Hey Baroni,

    First let me say how much I love your asset. Made life so much easier not having to do this from scratch.

    Secondly, I'm having an issue. I have a scene where once clicking a button it swaps out the path by;


    Code (csharp):
    1. myCamera.GetComponent<iMove>().SetPath(WaypointManager.Paths["CameraPath2"]);
    Now, this works fine. I go through my next scene, and for whatever reason I decide to come back. As soon as this scene loads again, I'm getting debugs for;

    Code (csharp):
    1. Debug.LogWarning("Called AddPath() but Scene already contains Path " + path.name + ".");
    I have a few paths in the scene, and I assume it's already listing them in the container. However, when I hit the button that would switch my path(like it did the first time around) I'm getting;

    Code (csharp):
    1. Debug.LogWarning("Called AddPath() but Transform " + path.name + " has no PathManager attached.");

    The camera never switches paths, and it loses it's current path. Am I calling this in runtime the wrong way? Your documentation only lists the way I am doing it and doesn't list how I would go about calling a path that is already listed in the container.

    Thanks in advance!
     
  38. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hey Ruin,

    thanks for your kind words, and also for your repro description!

    You're right, WaypointManager's path dictionary keeps path references between scenes.
    When creating SWS I haven't thought of this use case. Nevertheless, glad you read the documentation :)

    There's an easy solution for this issue:
    Copy+paste this short piece of code in WaypointManager.cs

    Code (csharp):
    1. //static dictionaries keep their variables between scenes,
    2. //we don't want that to happen - clear the path dictionary
    3. //whenever this object gets destroyed (e.g. on scene change)
    4. void OnDestroy()
    5. {
    6.    Paths.Clear();
    7. }
    Looking forward to hearing from you again!
     
  39. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,521
    How is the progress on bezier curves? It's the only feature that stops me from using this for my current project.
     
  40. omarzonex

    omarzonex

    Joined:
    Jan 16, 2012
    Posts:
    158
    very cool

    Good Jop
     
  41. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    @Lars Steenhoff
    Development of SWS is currently on hold, because of my day job, sorry.
    Next estimated update in May still stands.

    @omarzonex
    thanks!
     
  42. TorontoJoe

    TorontoJoe

    Joined:
    Mar 25, 2012
    Posts:
    32
    Hi Baroni, I was wondering if the May update will include bezier curves? Like Lars, I'd love to be able to use it for a current project as well.
     
  43. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hi TorontoJoe,

    yes, bezier-like movement similiar to iTween's path processing will be included.
    I also made some progress today, just need to figure out how to implement SWS basics...
     
  44. tutiplain1

    tutiplain1

    Joined:
    Jan 7, 2011
    Posts:
    14
    Hi!

    I just bought, downloaded and imported the SWS package into my Unity project, but I have no idea how to run the waypoint editor. Is there a tutorial somewhere? Thanks for any info!
     
  45. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hi tutiplain,

    thanks for your purchase.
    I included a documentation document, called SWS-Documentation.pdf. This should get you started.
    If you don't see this file, maybe your import has failed and you should try to import the package again.

    Hope that helps!
     
  46. tutiplain1

    tutiplain1

    Joined:
    Jan 7, 2011
    Posts:
    14
    Hi,

    Thanks for your reply. I managed to figure out the basics using the example scene and googling "how to use unity editor extensions". But now that I know where the docs are, things should progress more smoothly. Yes, the .pdf doc was in my project, I just hadn't realized it was a PDF :)

    Thanks for your help, and for bringing us this useful tool!
     
  47. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Hello all,

    I investigated some approaches on bezier curves and am planning to use HOTween. Seems like iTween 3 won't be out very soon so I can't put all eggs in one basket. What are you thinking? Would straight movement with iTween and straight+beziers with HOTween be ok? That means that there will be 2 plugins in SWS and it's up to you which you use.
     
  48. Lars-Steenhoff

    Lars-Steenhoff

    Joined:
    Aug 7, 2007
    Posts:
    3,521
    As long as the results are there, I don't mind installing two plugins.
     
  49. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Thanks. I will try my best to deliver the same experience with iTween or HOTween regarding the basic functionality. In the end there shouldn't be any differences, it's just a matter of using script1 vs. script2. Other thoughts?
     
  50. Baroni

    Baroni

    Joined:
    Aug 20, 2010
    Posts:
    3,256
    Small update on bezier curves in SWS: Demonstration of Looptype - random

    link removed, v2 submitted

    Just more optimizaton and other basic features. Hope to get them in soon.
     
    Last edited: May 29, 2012