Search Unity

Chronos – Time Control – Unity Awards Winner

Discussion in 'Assets and Asset Store' started by Ludiq, Apr 9, 2015.

  1. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622


    Asset store link


    ★ ★ ★ ★ ★

    "Fascinating" — "Fantastic" — "Awesome"


    Chronos brings full time control to Unity. It is easy to use, optimized for performance and equipped to handle any scenario you have in mind. Perfect for magic spells, puzzle games, sci-fi abilities or special effects!








    Features
    • Slow, pause, rewind and accelerate time
    • Each object on its own separate timeline
    • Create time effects in any collider region
    • Easily applies to your custom scripts
    • Simple systems to make any code rewindable
    • Fully compatible with physics
    • Automatically applies to animations, particle effects, nav mesh agents and audio
    Compatibility
    • New: PlayMaker support
    • Free (Personal) or Pro
    • 2D or 3D
    • C#, UnityScript (JavaScript)
    • Any platform
    Support
    • Quick and easy tutorial
    • Full documentation and class reference
    • Visual Studio / MonoDevelop documentation
    • Full source code included
    • Support forum for questions, feature requests and bug reports
    Need some help getting started?
    Documentation | Tutorial | Support | Website

    Asset store link

    Important:
    No support in this thread

    Because the Unity forum software consistently fails to send me email notifications, I have decided to stop using this thread for support.

    If you have a bug report, question, or feature request, please use the new support form: http://ludiq.io/chronos/support
     
    Last edited: Apr 25, 2017
    Fab4, metroidsnes, jpthek9 and 2 others like this.
  2. liverolA

    liverolA

    Joined:
    Feb 10, 2009
    Posts:
    346
    Hi, thanks for the great asset, just bought,and have 2 question:

    1.the music using in the demo video is great, can you tell me the name/author:D ?
    2.how to rewind the particle,i add timeline and local clock on the particlesystem,it can control the speed,but how to
    rewind the particle?this is important to me,thanks!!!
     
  3. SAOTA

    SAOTA

    Joined:
    Feb 9, 2015
    Posts:
    220
    came from reddit to give some praise.

    Great asset, good documentation, logo and release. Good luck.
    Unfortunately I do not have any use for this asset yet...
     
  4. BTStone

    BTStone

    Joined:
    Mar 10, 2012
    Posts:
    1,117
    This really looks cool, might grab it in the near future!
     
  5. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    Hi liverol!

    The music in the demo is "Epic" by Audiophile Trax (it's a stock music from Envato).

    Unfortunately, as stated on the preview page and in the documentation, particle systems cannot be rewound yet; Unity doesn't allow a negative playback speed for them. If you need this functionality, the best I can suggest for now is that you vote on the feature request at Unity:
    http://feedback.unity3d.com/suggestions/allow-negative-values-on-particlesystem-dot-playbackspeed

    Meanwhile, I will keep looking for hacks to simulate rewind on particles, but I'm not sure it's possible!
     
  6. StevenWendel

    StevenWendel

    Joined:
    Jun 18, 2013
    Posts:
    105
    This is very cool. Your trailer is probably the best I've ever seen for a plugin.

    Just a heads up, I noticed that on the Asset Store page link for Video, it just links back to the Asset Store.
     
  7. sicga123

    sicga123

    Joined:
    Jan 26, 2011
    Posts:
    780
    Great asset. Put on my wishlist.
     
  8. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    Bump! Does anyone have questions about the plugin or ideas for features? I'd be happy to answer them!
     
  9. imtrobin

    imtrobin

    Joined:
    Nov 30, 2009
    Posts:
    1,545
    Can u don't embed the webplayer in your tutorial automatically. It slows down my pc when I'm trying to read the tutorial
     
  10. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    Good point! I'll try to make it show only when clicking on it.
     
  11. adentutton

    adentutton

    Joined:
    Mar 24, 2013
    Posts:
    34
    Looks like a great asset! Will pick it up for sure to control the match simulation speed of my sports sim!

    Just wondering how well this plugin will work with Playmaker?

    Thanks!

    PS Also my confirmation email is not being sent to my email address to write in the forum!
     
  12. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    I haven't had the chance to test it with PlayMaker yet (sales have been quite low and PlayMaker is quite an expense). Once I get some more sales, full support is on top of my priority list for the next version.
     
  13. adentutton

    adentutton

    Joined:
    Mar 24, 2013
    Posts:
    34
    Good to hear! Ill make sure I purchase ASAP to help out!
     
  14. Coder_lab

    Coder_lab

    Joined:
    Jul 11, 2014
    Posts:
    20
    Looks very well polished! As physics is supported, does that mean I could pause and resume a ragdoll?
     
  15. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    Is your ragdoll made of Rigidbodies? If so, then yes!
     
    Coder_lab likes this.
  16. Bidds

    Bidds

    Joined:
    Jul 31, 2013
    Posts:
    9
    Hey there. Lovely work on this asset.

    I was wondering if it would be possible to save out a timeline to a file so it could be loaded into another player's game. An example use would be for a replay (but that's not what I'd want to use it for!).

    Also what are the limits on its usage? What's the typical memory usage per object per second of stored data?

    Thanks!
     
  17. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    Currently, there is no built-in way to export or import rewind data (that's what you're talking about, right?). I'm working, however, on a smaller "replay" plugin that will do exactly what you're asking. It should be released this month, if all goes well.

    As for the memory usage, it's really quite low. Because Chronos interpolates between snapshots, it doesn't have to record 60 times / second. Usually, 2-5 snapshots/s are enough. The amount of memory taken depends on the amount and type of variables you record, of course, so I can't give you a direct answer. However, say you record the transform and velocity (ex: for rigidbodies), according to my tests, you could easily have hundreds of objects recorded for many minutes, so the bottom line would be: don't worry too much about it. :)
     
  18. Bidds

    Bidds

    Joined:
    Jul 31, 2013
    Posts:
    9
    Thanks for the fastest response I've ever seen. :)

    That all sounds great. Sign me up for that replay plugin. Would that be separate to Chronos or added to it (or both)?

    Shame about particles not being supported yet. I added my votes to it anyway.
     
  19. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    The replay plugin will be a separate product.

    I've actually made some progress on particle rewind! No promises yet, but perhaps I can make something that looks decent (my biggest problem right now is looping particle systems).
     
  20. Bidds

    Bidds

    Joined:
    Jul 31, 2013
    Posts:
    9
    That's good to hear (about the particles). I think a standalone replay plugin would do well. Best of luck with it.
     
  21. RdArrogantKnight

    RdArrogantKnight

    Joined:
    Jun 24, 2013
    Posts:
    13
    Hey, I bought Chronos, and I like it so far. What I'm really hoping to do with it eventually is to copy the recorded data from one object and create a new object with that information, so I can keep my player character moving without rewinding anything, but have a duplicate player character replicating what I had done. Any thoughts on the best way to approach this?
     
  22. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    If I understand correctly, you're asking about a "replay" feature, right? As I said a bit earlier in the thread, I'm currently working on a smaller, separate replay plugin that should (hopefully) be out this month.
     
  23. Bidds

    Bidds

    Joined:
    Jul 31, 2013
    Posts:
    9
    I thinnk what RdArrogantKnight means is a situation where you play through for a period, rewind time back to an earlier point, and then let it play back as recorded, but with another new player character playing alongside the playback. You'd see your previous self repeating your previous actions, but you would be controlling a new character who is not affected by the time system, but playing alongside it.
     
  24. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    Oh, I see. There are a couple of problems right now that make this impossible:

    1) There's no method to transfer snapshot data from a Recorder to another (easily fixable)
    2) When snapshots are rewound, they're deleted (Chronos was never built for replays)
    3) There's no way to play a set of snapshots in forward order (again, never built for replays)

    It's not an trivial addition, but I will look into it once I get a little more free time on my hands.
     
  25. RdArrogantKnight

    RdArrogantKnight

    Joined:
    Jun 24, 2013
    Posts:
    13
    >1) There's no method to transfer snapshot data from a Recorder to another (easily fixable)

    I actually haven't spent enough time with Chronos yet to figure out how to do this, but yeah, I'm not worried about this part. If you have a minute, a pointer in the right direction would be appreciated.

    >2) When snapshots are rewound, they're deleted (Chronos was never built for replays)

    I'm not quite sure what this means, since I don't need to rewind it, I just need to jump to a specific position and play forward from there. It's not that different from the current functionality, although

    I already had a set of classes of my own that did this, but without the rewinding functionality of Chronos (or lots of other features), so I'm going to try to merge the two designs into what I need, but I'm still very inexperienced with Chronos, so I'm working on a simpler thing (making a character pathfind from node-to-node, and rewinding that properly) right now.
     
  26. 3d_Artist1987

    3d_Artist1987

    Joined:
    Jul 9, 2012
    Posts:
    719
    Awesome asset!!!!
     
  27. RdArrogantKnight

    RdArrogantKnight

    Joined:
    Jun 24, 2013
    Posts:
    13
    Hah, well, the pathfinding thing went smoothly. Occurrences aren't so tricky after all.
     
  28. jpthek9

    jpthek9

    Joined:
    Nov 28, 2013
    Posts:
    944
    Wow, even physics rewind? This asset is impressive.
     
  29. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    :) They seem scary, right? But they aren't, really.

    I'm curious though: why did you use occurences instead of just a TransformRecorder? Both can work, of course, but you seem to have chosen the hard road.

    If you want to dabble with making snapshots play forward, you'll have to edit the Recorder script (/Chronos/Recorder.cs). You'll see the snapshot data is saved as:

    Code (CSharp):
    1. protected List<TSnapshot> snapshots;
    Make that public and you should be able to do
    Code (CSharp):
    1. myRecorder2.snapshots = new List<TSnapshot>(myRecorder1.snapshots)
    (using a constructor here so the list is shallow-cloned).

    But making them play forward is a whole different level of complexity; I can't explain it here, it would take many pages. I'm making good progress on my Replay plugin, however, which will do exactly what you're asking for. Example:

    Code (CSharp):
    1. // Copy exported data from the player:
    2. var replay = player.GetComponent<Replayer>().ExportData();
    3.  
    4. // Import it in a new "ghost" player:
    5. ghost.GetComponent<Replayer>().ImportData(replay);
    6.  
    7. // Replay the ghost from 3 seconds in the past:
    8. ghost.GetComponent<Replayer>().Replay(-3);
     
  30. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    Last edited: May 3, 2015
    Fab4 and blueivy like this.
  31. blueivy

    blueivy

    Joined:
    Mar 4, 2013
    Posts:
    498
    You are the best!
     
    Ludiq likes this.
  32. RdArrogantKnight

    RdArrogantKnight

    Joined:
    Jun 24, 2013
    Posts:
    13
    I also have the TransformRecorder, but the trick was having multiple pathfinding nodes. When I had just a Recorder and nothing else, rewinding the timeline wouldn't change which node the NPC thought should be their next target. The occurrences are set at each pathfinding node, and they tell the NPC to go to the next/previous node in their path.

    Thanks for the code help, I'll look at that soon.
     
  33. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    PlayMaker support is also coming in the next version!

     
  34. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    V1.1 is now out!

    Chronos now includes particle rewind and PlayMaker support.

    Asset Store Link

     
    blueivy likes this.
  35. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    Chronos is 50% off this week only for the Asset Store Madness Sale! Grab it while it lasts!

    Asset Store Link

     
  36. b4c5p4c3

    b4c5p4c3

    Joined:
    Jan 4, 2013
    Posts:
    537
    I don't know how the asset will work because i haven't time to test it yet.

    But i've to say it have the most epic presentation video i've ever seen in the asset store.
     
    blueivy and Ludiq like this.
  37. yhloon

    yhloon

    Joined:
    May 2, 2014
    Posts:
    3
    I'm wondering can I create Prince of Persia type of time travel with Chronos?
     
  38. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    Of course! That's actually one of the inspirations for the plugin. :)
     
  39. super-cypher

    super-cypher

    Joined:
    May 10, 2014
    Posts:
    113
    hi
    how does this work with pausing groups etc? i tried another pause/time package from the asset store and it just disabled all the objects that you didn't want to be paused, which is not a good solution, does this do it a different way?

    thanks
     
  40. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    That's not how Chronos works.

    I'll try to explain it quickly, but for a better overview, have a look at the tutorial: http://ludiq.io/chronos/tutorial#Structure

    Basically, groups are actually "Clocks". You can have as many clocks as you like. For example, a clock called "Enemies", another called "Cars", etc. Each clock has its own time scale (1 = normal, 0.5 = slow, 0 = pause, -1 = rewind, etc.).

    You then add a "Timeline" component to every GameObject that should be affected by time control. This timeline can observe any clock. For example, each car would observe the "Cars" clock, and as such, modifying the time scale of the "Cars" clock would affect only these elements.

    I hope that's clear; I really suggest you have a look at the tutorial (it's accessible even if you haven't bought the plugin). Let me know if you need clarifications or if you have any other question. :)
     
  41. super-cypher

    super-cypher

    Joined:
    May 10, 2014
    Posts:
    113
    Hi

    That's perfect, thanks!

    i'm off to buy it ;)
     
  42. DinnerSonic

    DinnerSonic

    Joined:
    Feb 3, 2014
    Posts:
    1
    I'm this close to buying Chronos right now, between the deal and it both solving a few worries I had as a newbie and adding a few possible tricks, but I want to double check a few things before I confirm the buy, for ease of mind.

    How compatible is this with the various platforms Unity can export to? Could it be used for a game that'd go on things like the Nintendo Wii U, Playstation 3, Android, iOS, and all that? I'd assume yes, but I want to be sure before I make plans since I can imagine the possibility that this would take up too many resources for weaker platforms by having clocks for each bullet, enemy, and such.

    Secondly, does the Playmaker aspect of it let you control the timer's versions of 3D physics settings as naturally as normal ones, or am I going to want to make/edit a script for that?

    Lastly, it'll be safe to stack a bunch of global, normal, and area clocks in order to have a combination of "pause everything but the pause menu", "killing a boss makes gameplay go cinematic slowmo", "individual enemies being frozen temporarily" as well as occasional area clock based time slow/time pause bubbles, right? Or does that run the risk of them running into each other, reactivating or deactivating things that shouldn't be?
     
  43. super-cypher

    super-cypher

    Joined:
    May 10, 2014
    Posts:
    113
    Hi
    How does the particle rewind work? and can you do a playmaker action for it? if so would you be able to send me that direct so i don't have to wait for an update.

    Many thanks
     
  44. paulojsam

    paulojsam

    Joined:
    Jul 2, 2012
    Posts:
    480
    where is the scene that the utube video shows
     
  45. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    Hi DinnerSonic! All good questions, I'll answer them all in order.

    Platforms: Chronos is just basic C# script files, nothing funky. As such, its compatibility is guaranteed on all platforms. As for performance, I've heavily profiled it to make as light as possible on both the RAM and the CPU. It really shouldn't be a problem. If someone ever finds a bottleneck, I'll attempt to fix it ASAP, but so far I haven't found any.

    PlayMaker: Yes, there are 2 specific action categories called "Physics (Chronos)" and "Physics 2d (Chronos)" which have exactly the same code as the built-in PlayMaker rigidbody actions, replaced with PhysicsTimers instead. There is literally no other difference between them, so you won't have to write any action script.

    Combination: Stack to your heart's content! You can stack area clocks, have any clock a child of a global clock (even multiple level of hierarchy), and even set the blend between parents and children (additive vs multiplicative). Nothing is set to "disable" the components, only do math calculations between the time scales, so everything should work flawlessly together.

    Particle rewind is already released! Simply add a Timeline component to your GameObject with a particle system on it, and scale time like you normally would elsewhere in Chronos. No need for a specific PlayMaker action.

    Unfortunately, the trailer scene isn't included in the asset. It includes paid assets form the asset store that I'm not allowed to redistribute.
     
    DinnerSonic likes this.
  46. super-cypher

    super-cypher

    Joined:
    May 10, 2014
    Posts:
    113
    Hi
    Can i suggest you add a few example scenes? it really would make things much easier to figure out. Not the scene in the YouTube vid, just some simple scenes showing how everything should be set up, including playmaker scenes. Most assets that i have bought all have this.

    cheers.
     
  47. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    I thought about including scenes but I decided that a step-by-step tutorial was better (making it instead of seeing it already made). Have you had a chance to look at it? If you did and think it isn't enough to get a good understanding of the plugin, what kind of examples would you like to see included?
     
  48. paulojsam

    paulojsam

    Joined:
    Jul 2, 2012
    Posts:
    480
    an 3d example would be nice, similar to what you show in the utube video
     
  49. super-cypher

    super-cypher

    Joined:
    May 10, 2014
    Posts:
    113
    Yes ive had a bit of a play around today and its actually not that difficult to figure out, but i haven't been through it all yet.

    For me, i prefer to see things already made, i find it much easier to figure out that way. Just a simple scene showing each of the different options/functionality, physics, particles, playmaker etc etc etc. it doesn't have to be anywhere near as elaborate as your demo vid, just simple examples of everything it does.

    On a separate note, i added the timeline (and local clock) to a particle effect, i can control its time/playback etc with it as it should, but its kind of messing the effect up.The effect is from the 'realistic effects' bought from the asset store. Even just adding the timeline and clock to it and not changing anything messes the effect up. I guess the effect uses time and so there is a conflict somewhere. How do you suggest you could look into it? could i send you the effect and you see what the problem is? because im sure this will happen to other people.

    thanks

    ps. the effect is called RedCoreImpactWave from https://www.assetstore.unity3d.com/en/#!/content/18467 please see the web demo.
     
    Last edited: May 6, 2015
  50. Ludiq

    Ludiq

    Joined:
    Mar 6, 2015
    Posts:
    622
    Tried to send you a PM but the forum won't let me start a conversation with you.

    Could you elaborate on what's wrong with the effect? I can't reproduce it here as it's not a free package.
    You say it's "messed up", but how? Are the particles out of sync?

    This package seems to be using a lot of custom scripts along with the particle effects. Maybe in some of these scripts there is use of "Time.deltaTime". This would have to be replaced by "GetComponent<Timeline>().deltaTime", as mentioned on the Migration guide: http://ludiq.io/chronos/migration

    I'll try to come up with some example scenes soon.
     
unityunity