Search Unity

EZ Replay Manager

Discussion in 'Assets and Asset Store' started by softrare, Jun 12, 2011.

  1. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Now there is a free demo available in the Asset Store: http://u3d.as/content/soft-rare/ez-replay-manager-free-demo/30Z . Check it out!

    There are a few limitations: There is a banner, advertising the full package, recordings can have 300 frames, and the replay-GUI is reduced to only the play- and exit recording-button. But it is just enough to play with it and see if your scene is compatible with the package :) If you run into problems, don't hesitate to ask here, most issues can be resolved quickly!
     
  2. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    A new upgrade is available with a bugfix for both the full and the demo version. Have a nice day!
     
  3. KyleHatch85

    KyleHatch85

    Joined:
    Dec 13, 2011
    Posts:
    99
    getting a 404 not found for readme and Live demo scenes, included in the package link. for you information. :)
     
  4. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Thats true, we are maintaining the site. Download the free demo from the asset store. The same demo scenes are included there :)
     
  5. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    I just put the demo links back online. Sorry for the inconvenience.
     
  6. EvilDingo

    EvilDingo

    Joined:
    May 7, 2011
    Posts:
    190
    Wow! This is -exactly- what I need. Purchasing!
     
  7. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Thank you for your purchase. Have a nice day!
     
  8. Patel123

    Patel123

    Joined:
    May 16, 2012
    Posts:
    4
    Hi, i am recording and saving my exercise for every 10 frames through script. i have many recorded files (50 files each of 100kb). How to load them in a sequence from file 1 to file 50. Earlier i was recording and saving in a single file but i got heap error while loading. so i am trying this method. plz help me to load the saved files in a sequence.
     
  9. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi, there are several possibilities. The best one, to not have problems with any future updates of the package is probably this: You could extend from EZReplayManager-class and write a play()-method which receives a number parameter. The number represents the file to be played in the sequence of several numbered files you recorded. Search (Crtl+F) for the instance variable exitOnFinished in the EZReplayManager.cs file: Implement the function execRecorderAction in your new class: You can place your code to play the next file (using your own play-function) where exitOnFinished is being evaluated. The rest of the function can be copied or the parent function can be called. Does this help?
     
    Last edited: Jun 15, 2012
  10. EvilDingo

    EvilDingo

    Joined:
    May 7, 2011
    Posts:
    190
    Hello,

    I'm having trouble getting the replay manager to record my ragdoll. The ragdoll is instantiated at run time. When a replay is attempted, it gets a few of these errors:

    Can't remove Rigidbody because CharacterJoint depends on it
    UnityEngine.Object:DestroyImmediate(Object)
    Object2PropertiesMapping:prepareObjectForReplay() (at Assets/EZReplayManager/extension/scripts/Object2PropertiesMapping.cs:195)
    EZReplayManager:switchModeTo(Int32) (at Assets/EZReplayManager/extension/scripts/EZReplayManager.cs:340)
    EZReplayManager:play(Int32, Boolean, Boolean, Boolean) (at Assets/EZReplayManager/extension/scripts/EZReplayManager.cs:472)
    EZReplayManager:OnGUI() (at Assets/EZReplayManager/extension/scripts/EZReplayManager.cs:719)

    And at the end:

    Prefab GameObject's can not be made active! (MaleRagdoll)
    UnityEngine.GameObject:set_active(Boolean)
    Object2PropertiesMapping:resetObject() (at Assets/EZReplayManager/extension/scripts/Object2PropertiesMapping.cs:242)
    EZReplayManager:switchModeTo(Int32) (at Assets/EZReplayManager/extension/scripts/EZReplayManager.cs:315)
    EZReplayManager:OnGUI() (at Assets/EZReplayManager/extension/scripts/EZReplayManager.cs:781)

    I've tried dynamically adding the ragdoll when it is instantiated too, but it gets the same errors minus the bottom one. Neither record anything of the ragdoll.
     
  11. Marcs

    Marcs

    Joined:
    Jul 6, 2012
    Posts:
    1
    I have been looking at possibly purchasing EZ Replay Manager for one of the projects I am working on. I was hoping you could answer a couple of questions that need clarification before moving forward.

    Would it be possible to record and save out an object from one scene and play it in another?

    When purchasing the EZ Replay Manager, are there any limitations on the use of the code beyond a single seat or project?
     
  12. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    I am very sorry, I see your posting by accident actually as again this forum has not informed me about a new comment by mail. I will do my best to have it answered by tomorrow. Same goes for Marcs questions.
     
  13. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Just remove the @RequireComponent statement in CharacterJoint, this should get rid of the message. What version of the package are you using BTW?

    This is more mysterious. What ragdoll do you use? Would you mind sending it to me in a demo scene?
     
  14. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi Marcs,

    Yes it is possible. EZ Replay Manager does not care what scene an object is in, as long as the movement-data and (for the save and load feature) the prefab-path to the prefab exist.

    No, if you purchased the full package you can use it in any way you please. BTW this is the policy for any paid package in the Asset Store. It's something a publisher has to agree on, upon submitting.
     
  15. J_P_

    J_P_

    Joined:
    Jan 9, 2010
    Posts:
    1,027
    Is there a way to see how big the recording's filesize is if I'm testing the free version? I'm interested in potentially using the plugin for a turn based multiplayer game and it'd have to be under 64k to go through Game Center, so I'm curious how much recording that might be (how many keyframes for a single object).
     
    Last edited: Jul 19, 2012
  16. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Very difficult to say. It is totally dependend on how many (and how complex) objects are doing how many movements in what time. Do you have some kind of demo scene maybe where all the parts to be recorded are in? If at all possible, you can send it to me, and I will be able to be more of service concering this question.
     
  17. maik

    maik

    Joined:
    Dec 4, 2011
    Posts:
    59
    does this records in-game sessions from mobile devices (iPhone/iPad) without performance hit?
     
  18. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Well, totally without performance hit is something which is unreachable by any plugin, but from all I have seen it does not influence performance in a very substantial way. On mobile phones mostly games are desinged in a way that also takes into account that performance might matter, and for the cases I have seen EZ Replay Manager did not make the phone or the viewing experience unstable in any way.
     
  19. baalzebob

    baalzebob

    Joined:
    Aug 24, 2012
    Posts:
    2
    How can I remove it in the built-in component? I have the same error.
     
  20. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Remove the code line which starts with @RequireComponent in the script which requires the component you want to remove eventually. Does this help?
     
  21. baalzebob

    baalzebob

    Joined:
    Aug 24, 2012
    Posts:
    2
    @RequireComponent not in the script, it's in the CharacterJoint:
    "Can't remove Rigidbody because CharacterJoint depends on it"
    I have two body connectied with a Character Joint, and try to record them
    Here test scene:
    https://dl.dropbox.com/u/63589748/testCJoint.unitypackage

    or something I do not understand
     
  22. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Thanks for that demo scene, now I understand the problem you're having.

    The good news is: the plugin works as expected doesn't it? The scene you sent me records and replays flawlessly. It only shows these error messages, because there is unfortantely (at this moment) no way of circumventing the them, if I try to remove components on the replay-clones. If I wouldn't remove the components the replaying objects would still answer to physics i.e. which is not neccessary and not wanted when only reviewing a scene. No worry: the real objects and their components are not being touched in the process. Possibly the Unity Engine will allow me to circumvent the message in future versions. Hope I could help.
     
  23. milkcorp

    milkcorp

    Joined:
    Feb 26, 2012
    Posts:
    11
    Hello.
    Can I save replay file to amazon S3?
    I want to use this asset for web player on AWS.
     
  24. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    I think it is possible, but in this case you must recode a little bit to save the serialized file not to hard disc (because that is not possible in webplayer) but to save it in the memory and then send it (again with your own code) to a server of your liking.
     
  25. milkcorp

    milkcorp

    Joined:
    Feb 26, 2012
    Posts:
    11
    Thank you for your quick reply!
    I’ll give it a try. thanks.
     
  26. JakashRupala

    JakashRupala

    Joined:
    Aug 31, 2012
    Posts:
    2
    Hi,
    I need to know that can this replay manager used with the video texture used in game cause i need to replay a video which can be controlled by your controlls like pause play and stop
     
  27. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    I would say yes, but you'd better try the demo version first, then you'll know for certain if it works without recoding. If it doesn't, know that you'll get full source code upon purchasing so you can always adjust the plugin to your needs. In general it is certainly possible.
     
  28. SkaredCreations

    SkaredCreations

    Joined:
    Sep 29, 2010
    Posts:
    296
    The description in asset store says that it is untested on iOS, so I would like to know if this plugin has been tested on an iPhone/iPad by the author himself or other users.

    Thanks
     
  29. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    I would also like to know that. I do not own any Mac products, and thus cannot compile to Mac. Also I have not heard of any accounts of people having tried it. You can download the demo and try it, but I would guess that there is a good chance it wouldn't work because there are compiled dll's in it, dll's being specific to windows systems. So the demo not working does not say that the full package isn't working (because there all source code is disclosed, without any dlls).

    In essence I can say I don't know of any functions I used which in the documentary are being marked as "Mac incompatible". So my guess is that this is working just fine. Now, that the package is on sale, it is probably the best time to find out. Either way, please report back.
     
  30. SkaredCreations

    SkaredCreations

    Joined:
    Sep 29, 2010
    Posts:
    296
    Well, I bought it right now and going to try it sooner. I'll give you feedback if it works (hopefully) or not. At the end I find it's useful for other PC projects I have in mind :)
     
  31. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Thank you very much. I am very eager to receive your feedback!
     
  32. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    Just to confirm, I downloaded the free demo from the asset store and both examples seem to work fine under OS X in the editor and compiled, so no apparent issues there. Thought you might want to know. As to iOS, I don't have all that setup up as yet to test, but wouldn't think there'd be an issue.
     
  33. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Great news!! Thank you so much! Even the compiled version. Indeed that is a solid indication that it is also working fine on iOS. I will update the product description.
     
  34. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    No problem. I was curious as well, so of course I had to try it. ;)

    Hopefully SkaredCreations will report back the same for the iOS side of things.

    I'm sure that I will be placing an order later on as I can see the usefulness.

    Regards
     
  35. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Awesome! Enjoy!
     
  36. JakashRupala

    JakashRupala

    Joined:
    Aug 31, 2012
    Posts:
    2
    hi, i need to know that whether i can make ez replay record the scene by its own and then after a specific event it shows back the replay for like 5 seconds and then again my game starts.i dont want uset to take any control for replaying the video.
     
  37. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Yes that is possible, but you have to take control of the plugin in the code, if you don't want the user to take control of recording and replaying. Ideally you know when to start the recording, record for 5 seconds and then at the event of your choice, you replay what happened. In the documentation it is written how you can make the replay screen disappear once it fully replayed, so your game can go on.
     
  38. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    @SkaredCreations: Did you already test the package on iOS? Very eager to learn what the result is :)
     
  39. UNITY3D_TEAM

    UNITY3D_TEAM

    Joined:
    Apr 23, 2012
    Posts:
    720
  40. Xeir

    Xeir

    Joined:
    Oct 21, 2007
    Posts:
    342
    Woke up way too early and thought I'd try a few things out so I did a test compile of the Demo Asset to iOS Basic under Unity 3/4, failed with the following errors:

    Don't know if this would be the same for the full version or not, or if it's purely due to the dll in the demo version.

    Just thought I would pass it on to you.

    Error 1: (Unity 4 only)
    Code (csharp):
    1.  
    2. OverflowException: Number overflow.
    3. Mono.Cecil.Cil.CodeReader.ReadOperand (Mono.Cecil.Cil.Instruction instruction)
    4. Mono.Cecil.Cil.CodeReader.ReadCode ()
    5. Mono.Cecil.Cil.CodeReader.ReadMethodBody ()
    6. Mono.Cecil.Cil.CodeReader.ReadMethodBody (Mono.Cecil.MethodDefinition method)
    7. Mono.Cecil.MetadataReader.ReadMethodBody (Mono.Cecil.MethodDefinition method)
    8. Mono.Cecil.MethodDefinition.<get_Body>b__2 (Mono.Cecil.MethodDefinition method, Mono.Cecil.MetadataReader reader)
    9. Mono.Cecil.ModuleDefinition.Read[MethodDefinition,MethodBody] (Mono.Cecil.MethodDefinition item, System.Func`3 read)
    10. Mono.Cecil.MethodDefinition.get_Body ()
    11. UnityEditor.AssemblyReferenceChecker.CollectReferencedMethods (Mono.Cecil.AssemblyDefinition[] definitions, System.Collections.Generic.HashSet`1 referencedMethods, System.Collections.Generic.HashSet`1 definedMethods, Single progressValue)
    12. UnityEditor.AssemblyReferenceChecker.CollectReferences (System.String path, Boolean withMethods, Single progressValue, Boolean ignoreSystemDlls)
    13. UnityEditor.AssemblyReferenceChecker.GetScriptsHaveMouseEvents (System.String path)
    14. UnityEditor.HostView:OnGUI()
    15.  
    Error 2: (Unity 3/4)
    Code (csharp):
    1.  
    2. Cross compilation job EZReplayManagerDemo.dll failed.
    3. UnityEngine.UnityException: Failed AOT cross compiler: /Applications/Unity/Unity.app/Contents/BuildTargetTools/iPhonePlayer/mono-xcompiler --aot=full,asmonly,nodebug,static,outfile="EZReplayManagerDemo.dll.s" "EZReplayManagerDemo.dll"  current dir : /Volumes/Dev/Unity/EZReplayTest/Temp/StagingArea/Data/Managed
    4.  result file exists: False
    5. stdout:
    6. stderr:
    7.  
    8.   at UnityEditor.MonoProcessUtility.RunMonoProcess (System.Diagnostics.Process process, System.String name, System.String resultingFile) [0x00000] in <filename unknown>:0
    9.   at UnityEditor.MonoCrossCompile.CrossCompileAOT (BuildTarget target, System.String crossCompilerAbsolutePath, System.String assembliesAbsoluteDirectory, CrossCompileOptions crossCompileOptions, System.String input, System.String output, System.String additionalOptions) [0x00000] in <filename unknown>:0
    10.   at UnityEditor.MonoCrossCompile+JobCompileAOT.ThreadPoolCallback (System.Object threadContext) [0x00000] in <filename unknown>:0
    11. UnityEditor.MonoCrossCompile:CrossCompileAOTDirectoryParallel(BuildTarget, CrossCompileOptions, String, String, String)
    12. PostProcessiPhonePlayer:PostProcess(BuildTarget, String, String, String, String, String, String, String, BuildOptions, RuntimeClassRegistry)
    13. UnityEditor.HostView:OnGUI()
    14.  
    Error 3: (Unity 3/4)
    Code (csharp):
    1.  
    2. Error building Player: UnityException: Cross compilation failed.
    3.  
     
  41. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
  42. SkaredCreations

    SkaredCreations

    Joined:
    Sep 29, 2010
    Posts:
    296
    Unfortunately I still didn't test on iOS for missing spare time, hopefully I will try it next week. But the test on OSX from Xeir is very cheering ;)
     
  43. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
  44. Kavorka

    Kavorka

    Joined:
    Sep 15, 2012
    Posts:
    247
    I bought the EZ replay manager. May I ask you to please implement a loop buffer. I read you have had many requests for it and I too find it a crucial feature. Is it hard to do? My guess is, not awfully hard? It is what most would like to use it for, is it not. The player did something cool or stupid that triggers an instant replay. When could we hope to see such a feature?
    Best regards
    Patrik
     
  45. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Thank you for your message. The triggering of an instant replay upon a certain event is already possible. Please read the docs on how to trigger the replaying of what was recorded, and request further help from me if you can't make it for some reason. If you are referring to a feature which would allow to just replay the last cuple of seconds (not from start of the recording) I have some good ideas on how to implement that and I would guess that this could be implemented in the next couple of months or early next year. Of course you as a paying customer will get the update for free through the asset store. I hope my message was helpful to you.
     
  46. Kavorka

    Kavorka

    Joined:
    Sep 15, 2012
    Posts:
    247
    Thank you. Yes, your answer was helpful, and encouraging. I am refering to to the feature you describe in the later part of your post. I want only the latest x number of seconds of game play continuously recorded so that the frame that just became older than x seconds gets overwritten by the "now frame". If you have questions I am eager to help and learn.

    This is an example of how I think of a loop buffer. Imagine I am thowing a dice for hours, in case I should strike 12 sixes in a row I want proof. I do not want hours of dice throws recorded, only the last twelve.

    public int n = 0;
    public int[] dice = new int[12];

    void Update ()
    {
    dice[n] = Mathf.CeilToInt(Random.value * 6);
    if (n < 11) // May use Mathf.Repeat instead.
    {
    n++;
    }
    else
    {
    n = 0;
    }
    }

    Yes I know there are some workarounds that can do the job, but tell me if you disagree that a loop buffer is a nice feature.

    Best regards
    Patrik
     
  47. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Indeed buffering could be implemented, wouldn't be too difficult. If I understand you correctly, you would like the buffer to be resetted at a certain moment, so that if the scene gets replayed, the replay starts at the moment when the buffer was resetted, right?
     
  48. Kavorka

    Kavorka

    Joined:
    Sep 15, 2012
    Posts:
    247
    I have not thought about all the ins and outs of this feature. I do not know what you mean by resetted, but I do not think it should be. Look at the dice code, the dice array contains (in every moment) the latest 12 dice values. In the dice array the "newest" value is stored in index n and the oldest is stored in index n+1. Whenever I want to see the 12 latest dice values in order I show: dice[n+1] first then dice[n+2] and so on until I get to index 11 then I continue from index zero and until I get to index n. Now I have shown all 12 dice values with the oldest first. After this "dice replay" the recording just continues to overwrite at index n+1. No resetting is needed as far as I understand.

    How are the frames stored in the replay manager? Are the stored in some sort of indexed array? If so can you make the array 1200 long and loop the index as in the dice example? 1200 frames in roughly 12 seconds. I do not know how the replay manager works, and my ability to help is therefore limited.

    Patrik
    P.S. The dice code example is runnable code. You can see the content of dice[] in the editor. Put Debug.break(); after n++; and see how dice[] (the buffer) is updated when you click the break button to the right of the play button.
     
  49. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Sorry I might not have been as clear as I could have been. I meant that whether you would like the buffer to work in a way that it resets the buffer load at a certain time (or event) so that everything can be played back what happened since the last reset. Or would you rather like it to work in a way that you initialize it with a certain amount of seconds and you will always only be able to replay this particular number of seconds. So these are two different approaches I can think of. Thanks for the help implementing, but really its more about the way it should work than some code details ;) Anyway I have not much time on my hand these days, so the feature will have to wait at least a few months. In the meantime you are invited to take a look, so you would be able to see how the EZ Replay Manager is working. Maybe you can even make it to work for yourself, if you are not eager on waiting for me. The code is easy readable and yes, it works with containers in which single frames are stored, and played back taking into account the rate in which those were recorded, so there might be a good chance that you grasp the concept quite quickly.
     
  50. vtornik23

    vtornik23

    Joined:
    Jul 1, 2010
    Posts:
    27
    Hi Softrare!

    I havе a question, and it is very important for me: does this solution works with particles? I mean old and/or new particle systems in unity.
    Record, playback etc.

    Thank you!
    Yuri