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

EZ Replay Manager

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

  1. tlk

    tlk

    Joined:
    Jul 26, 2013
    Posts:
    4
    I am passing false to playImmediately but then how do I get it to actually play? I set the mode to REPLAY but that didnt help.

    I am passing false to exitOnFinished but it seems like the cloned replay objects are snapping back to the first frame before I switch mode back to LIVE. To your knowledge should all cloned objects hold on their last frame when passing false to exitOnFinished? if so can you think of why I am getting this effect?
     
  2. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! I will answer your questions beneath:

    Setting playImmediately to false is actually a hook to start replay mode. To start the actual replay call play() again, passing true to playImmediatey.

    Indeed, by default the replay snaps back to the first frame. It's a built-in feature ;) That of course doesn't mean that its everybody's preference or that this behaviour can't be adjusted. I isolated the line which is responsible. It happens because at the end of the replay stop() is called (in line 638 in EZReplayManager.cs). stop() resets the recorder position. If you call pause() instead this snapping back is disabled. I am aware that you will not be able to test that using the free limited version, but if you buy the package you will be able to adjust it. Hope this helps!
     
    Last edited: Mar 13, 2014
  3. tlk

    tlk

    Joined:
    Jul 26, 2013
    Posts:
    4
    Thanks I finally got the package and that worked. I did add a check around pause() so it wouldn't do it every frame.

    btw, I am running Unity 4.3 and get many compile warnings with this package. Mostly around deprecated calls, unreachable code, etc.
     
  4. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Very glad to hear it! Thank you for your purchase! Please let me know if there are other issues I can help you with.

    That's true, they are harmless but will be eliminated with time.
     
  5. tlk

    tlk

    Joined:
    Jul 26, 2013
    Posts:
    4
    Ok new question :)
    I am recording a fast moving projectile and when playing it back I have a camera which is following it. The camera following the projectile works fine when in LIVE mode but when I have this camera track the recorded cloned projectile there is a ton of jitter. To be clear I am not recording the camera nor do I want to. I believe the jitter is caused because EZRM samples the projectile positions at a fixed rate and does not interpolate the results during playback. And since the camera updates during Unity's normal Update() call it has a hard time dealing with these time differences. I am sampling at a high rate even 0.01 and still a horrible result. Is this the expected behavior or am I doing something wrong? I can't imagine I'm the first person to try and use it this way.
     
  6. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! Thanks for your question. How did you set this up? Is the camera made a child transform of the projectile or the other way around? 0.01 for a recordingInterval is not even very low, you can try lower values if its about fast movement. If this still doesn't help, what would probably help me, is if you recorded a video of your scene including recording and replay.
     
  7. mihl

    mihl

    Joined:
    Apr 22, 2014
    Posts:
    5
    Hi,

    Maybe this was already mentioned somewhere here but I haven't found the relevant information yet. My purpose is to record what a first person controller sees. My first test is the following and does not involve any complicated object:

    * create a sufficiently large and thin inclined cube
    * create a small sphere (smaller than the cube) above the cube that will fall onto the cube and roll on it
    * in the sphere object, create a camera
    * (maybe put some directional light)
    * add in the ezreplayermanager prefab

    When you run the game, you see what the sphere "sees". The "eyes" of the sphere (the camera) rotates with the sphere.

    However, when I put this camera as "Game Objects To Record", I don't see the same pictures. I see the sphere from above. Moreover, the sphere is much larger. Why don't I see the same as in the game, i.e. what the sphere actually sees?

    Thanks in advance...
     
    Last edited: Apr 23, 2014
  8. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi Thanks for your message. In principle you should only record the camera from which you want the replay to be viewed, not the one from above in your example. If you only mark the fps camera for recording then only that one will be recorded and being viewable at replay. Make absolutely sure you don't have the from-above camera marked for recording. Double check! Because the effect you describe is otherwise not possible.

    For any follow-up questions, please be patient, at the moment I am very sick and don't work on a daily basis, hope to get better in a matter of few days.
     
  9. Meceka

    Meceka

    Joined:
    Dec 23, 2013
    Posts:
    423
    Hello, I will explain how i want to use this recordings.

    Before some interesting missions in my game. I want to show video tutorials to player. But i want these tutorials to be something like saved replays.

    In example, i want to show how player will park the car. To do this, i want to record parking a car in my pc (It can have 2 or 3 parts of different recordings, where 1st one will show a cutscene where just camera moves to the car, 2nd one will be the car being driven into parking lot.

    Then, when player begins that scene, i want the recordings to play. Player can skip them if he wishes, and as playing movie ends player will begin the game.

    For this, i want to record videos in my computer, and i want that recorded file to be put in game built, and they will see that recording in their smartphones

    Is it possible with your asset? How will your asset be useful in this case? Thanks in response.
     
  10. softrare

    softrare

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

    Yes, that is possible, but you would have to dig into the API because it would probably involve quite some automation with respect to when which recording will be replayed. Also note, that EZR does not save replays to .avi or .mpg files but stores the data changes (i.e. position, rotation). For smartphones (Android works, on iOS I think there was a problem when loading files, as it involves deserialization which is not possible on iOS) make sure the scenes which are replayed aren't that complex as this can have a negative influence on the replaying experience.

    Hope this helps!
     
  11. ninjaboyjohn

    ninjaboyjohn

    Joined:
    Mar 30, 2014
    Posts:
    23
    Hi softrare!

    First off, thanks for this asset! My game needed replays at somepoint, and when I saw this on sale yesterday I tried out the free version as soon as I got home. Took me a little while to get working, but bam, then it worked and I bought the asset and now my game has replay cams. Sweet!

    The issues I had all involved calling the replay from FixedUpdate instead of Update. I had an object hitting a trigger volume and then stopped recording and started playback on that event. It caused all sorts of issues, so I did some searching through this thread and found the OnUpdate() fix.

    *please* add a warning about FixedUpdate in the doc .pdf. It would have saved me some headaches last night.

    Things I'd love to see in an update:

    1. More speed control options. It looks like speed is controlled by int values -3 to 3. I want some slight slow-mo on the replay, but -1 is too slow. I'd like to run it at "-0.5" or some equivalent

    2. built-in sound support with speed modulation :D

    Thanks again for the great asset!
     
  12. softrare

    softrare

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

    Thanks a lot for your purchase, I am very glad the plugin suits you! :)

    As for the FixedUpdate problem, could you point me to the posting you are refering to? I can't recall that particular problem right now.
     
  13. ninjaboyjohn

    ninjaboyjohn

    Joined:
    Mar 30, 2014
    Posts:
    23
    I had this issue: http://forum.unity3d.com/threads/ez-replay-manager.92854/page-10#post-1178462

    "Destroying components immediately is not permitted during physics trigger/contact or animation event callbacks. You must use Destroy Instead."

    deekpyro said here: "Ah, for the test I was doing I stopped recording and initiated playback in the physics loop. After moving the playback call outside of that location the errors went away."

    Since I was calling Play from an OnTriggerEnter event, it was being called during a FixedUpdate / physics loop and caused three problems:
    1. the Destroy error above
    2. jittery motion (even with the record scale set really low)
    3. the playback would repeat, and play back faster each time!

    So instead, I made the OnTriggerEnter() set a boolean flag, and my Update() loop checks for that flag and then starts playback, and all three issues went away.
     
  14. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Kudos on fixing it, would not have come to my mind so quickly :) I will update the documentation asap.
     
  15. ninjaboyjohn

    ninjaboyjohn

    Joined:
    Mar 30, 2014
    Posts:
    23
    Thanks!

    Is there any way to have playback be between 0 and -1? -1 seems too slow for the effect I'm going for.
     
  16. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hm, you could play a little with the values in line

    playingInterval = singleton.recordingInterval * ((speed-1)*-2);

    should be around line 785
     
  17. ninjaboyjohn

    ninjaboyjohn

    Joined:
    Mar 30, 2014
    Posts:
    23
    Cool - I'll try it out!

    Question: What's the best way to "reset" EZ_replay_manager with *new* objects to record?

    Here's what I'm trying to record (Imagine a shooting gallery type set up):
    - player object and children
    - enemy "holder" objects that each hold an enemy

    The player fires and the recording is stopped and then played. This works fine.

    After playback, the enemy objects need to be destroyed and replaced with new objects parented to the "holder" objects.

    The issue - I can't get the next recording to record the new objects.

    I basically want to wipe clean / reset the list/dictionary of objects to record and then build it back up as I spawn in the new enemies.

    Here's what I'm doing right now:

    Code (CSharp):
    1.  
    2. // Reset EZ Recorder
    3.         EZReplayManager.get.gameObjectsToRecord.Clear();
    4.         EZReplayManager.get.mark4Recording(player);
    5.  
    6. // Spawn code iterates through all of the holder objects and re-marks them for recording
    7.         SpawnNewNPCSet();
    Here's the spawn code
    Code (CSharp):
    1. public void SpawnNewNPCSet(){
    2.         foreach (HolderScript holder in holders)
    3.         {
    4.             holder.npc = (GameObject)Instantiate(npcPrefabs[0]);
    5.             holder.npc.transform.parent = holder.transform;
    6.             holder.npc.transform.localPosition = Vector3.zero;
    7.             holder.npc.transform.localRotation = Quaternion.identity;
    8.             holder.npcScript = holder.npc.GetComponent<NPCAnimationScript>();
    9. [INDENT]    EZReplayManager.get.mark4Recording(holder.gameObject);[/INDENT]
    10.         }
    11.     }
    So I think I'm clearing the gameObjectsToRecord list, re-adding the player, spawning npcs for each holder, then re-adding the holder (and presumeably its children) to be recorded.

    What happens is the children objects do not appear in recordings past the initial one, but the player does.

    If I explicitly mark the npc GameObject for recording instead of or alongside the holder object, it does appear, but at 0,0,0 and not where it should at the parent holder object's transform.

    ie. EZReplayManager.get.mark4Recording(holder.npc.gameObject)

    Thanks for the help!
     
  18. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi!

    Your code looks fine to me, as far as I can see. Indeed the buffer of objects marked for recording has to be reset. I should introduce an API call for that in one of the next versions.

    Until then try the following for the reset:

    Code (CSharp):
    1.  
    2. gOs2propMappingsRecordingSlot.Clear();
    3. gOs2propMappingsLoadingSlot.Clear();
    4. gOs2propMappings.Clear();
    5. gameObjectsToRecord.Clear();
    6. markedGameObjects.Clear();
    7.  
    Pretty radical but should do the job :D

    After that of course you have to mark all desired objects for recording again.
     
  19. ninjaboyjohn

    ninjaboyjohn

    Joined:
    Mar 30, 2014
    Posts:
    23
    Awesome - thanks! I'll try it out tonight.
     
  20. ninjaboyjohn

    ninjaboyjohn

    Joined:
    Mar 30, 2014
    Posts:
    23
    FIXED! - Used DestroyImmediate() on my old npc objects insted of Destroy() and it works! Whew!
    --------------

    Hrm - still having problems.

    What happens:

    1st game action is fine
    1st replay is fine
    EZReplayManager.get.Reset();
    mark Player for recording
    Spawn new GameObjects and parent them to their holder objects
    mark holder objects for recording
    2nd game action is fine
    freeze due to NullReferenceException on starting 2nd replay

    Error:
    NullReferenceException: Object reference not set to an instance of an object
    Object2PropertiesMapping.prepareObjectForReplay () (at Assets/EZReplayManager/extension/scripts/classes/Object2PropertiesMapping.cs:172)
    EZReplayManager.switchModeTo (ViewMode newMode) (at Assets/EZReplayManager/extension/scripts/classes/EZReplayManager.cs:426)
    EZReplayManager.play (Int32 speed, Boolean playImmediately, Boolean backwards, Boolean exitOnFinished) (at Assets/EZReplayManager/extension/scripts/classes/EZReplayManager.cs:535)

    Here's the line it points to:
    Code (CSharp):
    1. gameObjectClone.name = gameObjectInstanceID+"_"+gameObjectClone.GetInstanceID()+"_"+gameObjectClone.name;
    ---
    Here's the Reset() function I added to the EZ_ReplayManager class
    Code (CSharp):
    1. public void Reset()
    2.     {
    3.         gOs2propMappingsRecordingSlot.Clear();
    4.         gOs2propMappingsLoadingSlot.Clear();
    5.         gOs2propMappings.Clear();
    6.         gameObjectsToRecord.Clear();
    7.         markedGameObjects.Clear();
    8.     }
    Any ideas? And thanks for the help! I feel like its soooo close!
     
    Last edited: Jun 13, 2014
  21. ninjaboyjohn

    ninjaboyjohn

    Joined:
    Mar 30, 2014
    Posts:
    23
    ACK - I found the issue.

    When destroying the old npc objects, I was using Destroy() not DestroyImmediate().

    There must have been some time before they were destroyed while they were still parented to my holder objects and marked for recording, then they were destroyed.

    DestroyImmediate() fixed it!
     
    Last edited: Jun 13, 2014
  22. gnchishti

    gnchishti

    Joined:
    Dec 27, 2013
    Posts:
    10
    Hi,

    I implemented EZReplayManager demo free version in a web based project.

    it gave me this error

    Loading script assembly "Assets/EZReplayManager/extension/scripts/EZReplayManagerDemo.dll" failed!

    why its not loading dll file?
     
  23. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    I was not informed by the forum again about any new posts -.- Great that you fixed it!!
     
  24. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! At what point do you get this error? When building the player (webplayer?) or when starting the scene?
     
  25. gnchishti

    gnchishti

    Joined:
    Dec 27, 2013
    Posts:
    10
    I see this error when I import the EZ package to my project and I can clear console from this error.

    But when I build id shows me these error again

    1. ArgumentException: The Assembly UnityEditor is referenced by EZReplayManagerDemo. But the dll is not allowed to be included or could not be found.
    UnityEditor.AssemblyHelper.AddReferencedAssembliesRecurse (System.String assemblyPath, System.Collections.Generic.List`1 alreadyFoundAssemblies, System.String[] allAssemblyPaths, System.String[] foldersToSearch, System.Collections.Generic.Dictionary`2 cache, BuildTarget target)
    UnityEditor.AssemblyHelper.AddReferencedAssembliesRecurse (System.String assemblyPath, System.Collections.Generic.List`1 alreadyFoundAssemblies, System.String[] allAssemblyPaths, System.String[] foldersToSearch, System.Collections.Generic.Dictionary`2 cache, BuildTarget target)
    UnityEditor.AssemblyHelper.FindAssembliesReferencedBy (System.String[] paths, System.String[] foldersToSearch, BuildTarget target)
    UnityEditor.HostView:OnGUI()


    2. Error building Player: Extracting referenced dlls failed.


    3. Loading script assembly "Assets/EZReplayManager/extension/scripts/EZReplayManagerDemo.dll" failed!
     
  26. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! Indeed the free version cannot be exported ATM due to limitations of DLLs. DLLs in general of course CAN be exported but the way I used the UnityEditor.dll in the package prevents me from further limiting where my EZReplayManagerDemo.dll links to it.

    In the source code this looks like that:
    Code (CSHARP):
    1.  
    2. #if UNITY_EDITOR || !(UNITY_STANDALONE_OSX || UNITY_DASHBOARD_WIDGET || UNITY_STANDALONE_WIN || UNITY_STANDALONE_LINUX || UNITY_STANDALONE || UNITY_WEBPLAYER || UNITY_WII || UNITY_IPHONE || UNITY_ANDROID || UNITY_PS3 || UNITY_XBOX360 || UNITY_NACL || UNITY_FLASH || UNITY_BLACKBERRY || UNITY_WP8 || UNITY_METRO)
    3. using UnityEditor;
    4. #endif
    5.  
    So the link to UnityEditor (which is what causes this error) is only established when this code is being executed in the Unity Editor itsself, or NOT in any of these platforms. So in the full version with full source code this works (if not because of a new platform, the constant for that platform just has to be added to the exception list) but after I generate the DLL this preprocessor code gets stripped and UnityEngine stays in the code standardly. Again in Editor to test it works, but indeed not on export. Up to now I haven't found a solution that works when this code is part of a DLL.
     
  27. jonatanbijl

    jonatanbijl

    Joined:
    Oct 7, 2013
    Posts:
    12
    Some of my gameobjects have a name containing a "/" character. This gives problems with EZreplay.

    Code (csharp):
    1.  
    2. Parent directory must exist before creating asset at Assets/Resources/EZReplayManagerAssetPrefabs/go_56/2_AS072_trolleys0_spreader0.prefab.
    3. UnityEditor.PrefabUtility:CreateEmptyPrefab(String)
    4. EZReplayManager:createEmptyEZRPrefab(String)
    5. EZReplayManager:cacheGOinResources(GameObject, String)
    6. EZReplayManager:mark4Recording(GameObject, String, ChildIdentificationMode)
    7. EZReplayManager:mark4Recording(GameObject, String)
    8. EZReplayManager:mark4Recording(GameObject)
    9. Object2Record:Start() (at Assets/EZReplayManager/general/Object2Record.cs:8)
    10.  
    Maybe EZreplay should check a GameObject name for bad characters before creating prefabs?
    Anyway, for now I'll have to change the naming convention in my game I think.
     
  28. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! Thanks a lot for this report. I will have a look at it.
     
  29. jonatanbijl

    jonatanbijl

    Joined:
    Oct 7, 2013
    Posts:
    12
    In my game I have two issues with the free version of the EZReplay Manager.
    1) Physics behaviour changes.
    I have not imported the examples, only the required things(extension icons, prefab, scripts; Editor scripts and the object2Record script.)
    In my game I have several cars I can drive. But after I do a record and a play, when I return back to the Live mode, my car gets very top-heavy (easily topples over). afaics the car's rigidbody is not changed.
    2) Relative positions.
    In my game I am recording movements of several prefabs that are children of other prefabs. When I replay, the parents are not set correctly, so that the "child-prefabs" are all moving near the origin of the world. Is there a way to tell the recorder to store the global position and rotation instead of the local position and rotation?

    Apart from these problems this plugin is exactly what I need, so I really hope this will work.
     
  30. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    1) The original models should not be touched. What is possible is that because of the game pause the physics momentum gets disturbed. I've seen that before, but I am pretty sure I fixed that. What version are you using?
    2) Yes, in the full version you can change localPosition to position in the class "SavedState".

    I am very glad that it suits you that well! :)
     
  31. jonatanbijl

    jonatanbijl

    Joined:
    Oct 7, 2013
    Posts:
    12
    According to the pdf: App version 1.53
    Unity 4.3.4f1
     
  32. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! Please be sure to upgrade to the newest version 1.56.
     
  33. southdesi4

    southdesi4

    Joined:
    Nov 12, 2013
    Posts:
    4
    Has anyone used this with 2d Toolkit?
     
  34. jonatanbijl

    jonatanbijl

    Joined:
    Oct 7, 2013
    Posts:
    12
    I've bought the full version yesterday. The functionality is very easy to integrate into my game, so that is very nice.

    I save the recordings to a file, and then can re-load them. the recorded files are about 700MB.
    However, there's a problem: when I replay back a recording while in the unity editor, it gives a heap problem. Also, the loading and saving times are quite long. Does the plugin keep the whole file in memory until you tell it to write it to a file?
    I had expected a stream-based solution for both the loading and the storing.

    are there any plans to add something like that in the near future?
     
  35. jonatanbijl

    jonatanbijl

    Joined:
    Oct 7, 2013
    Posts:
    12
    Is there a way to tell that a specific sub-part of a prefab does not need to be stored? all my vehicles have wheels, whose rotation is calculated from the change in the vehicle's position.

    Also, I noticed the plugin removes all colliders when replaying. Is there a way to prevent that? I want to be able to select objects while replaying.
     
  36. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! Thanks a lot for your purchase!

    EZReplayManager uses BinaryFormatter to write to and load from files, so I don't have influence over how the data is being written and read at the moment.

    That is a good idea, but it is not in there yet. I have noted it. In the meantime you can tweak that in the Object2PropertiesMapping construtor. There the subobjects are being recognized in the loop, so you can exclude the ones you don't need.

    Yes, that is possible if you add the name of the collider component (i.e. BoxCollider) in the ComponentsAndScriptsToKeepAtReplay List on the EZReplayManager prefab instantiated in your scene. (As demonstrated in scene "example 1" in the package. There the script "DrawLines" is excluded from removal) I must warn you that it can cause some unwanted behaviour and should probably be tweaked to your needs.

    Hope this helps!
     
  37. jonatanbijl

    jonatanbijl

    Joined:
    Oct 7, 2013
    Posts:
    12
    Thank you for the reply. Adding BoxCollider and MeshCollider to the list worked perfectly.
    I'll have a look into the Object2PropertiesMapping constructor.

    I have a suggestion for the Object2Record script you supply with the EZReplayManager:
    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3.  
    4. public class Object2Record : MonoBehaviour {
    5.    
    6.     public string prefabPath = "";
    7.     public bool identifyByName = false;
    8.    
    9.     // Use this for initialization
    10.     void Start () {
    11.         ChildIdentificationMode mode = identifyByName? ChildIdentificationMode.IDENTIFY_BY_NAME : ChildIdentificationMode.IDENTIFY_BY_ORDER;
    12.         EZReplayManager.get.mark4Recording(gameObject, prefabPath, mode);
    13.     }
    14. }
    Another question: My prefabs are organised in a different folder structure (not as a child of the Assets/Resources folder). Is there a way to still use them?
     
  38. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    No problem! And thanks for the code! ;)


    Of course you don't have to have your prefabs in Resources, but if you want to instantiate them without having a reference to them in your scripts, I don't know of any other way. Maybe I also misunderstand. Can you elaborate what is your issue? Thanks!
     
  39. jonatanbijl

    jonatanbijl

    Joined:
    Oct 7, 2013
    Posts:
    12
    If I understand correctly, the game makes a prefab for every object that is marked for recording, except when a path to an existing prefab is specified. In that case, it should just re-use the existing prefab to generate the replay-clone.
    When I try to specify a path to the existing prefab, e.g. "Assets/Container Terminal/prefabs/Crane", it turns the path into "Assets/Resources/Assets/Container Terminal/prefabs/Crane.prefab" instead, and then it cant find the prefab.
    Is my proposed use of this feature correct? Or are the precached gameobjects really different from the prefab that is used to create the originals?

    Another question: my recorded files are getting really big. I'd like to try the experimental lerping feature (so I can lower the recording rate), but how do I do that?
     
  40. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! That is correct, it should work like you explained. But still paths to prefabs need to be placed in a "Resources" folder. Did you know you can also use "Resources" folders which are not located directly under Assets/ ? That way all you have to do is cut your existing structure and paste it into a "Resources" folder located anywhere. In example if you have the path "/Assets/Prefabs/Resources/Container Terminal/Crane" you should be able to reference it with the following path: "Container Terminal/Crane".

    I am sorry, lerping is really not so far as to use it, from what I saw. To do so, you need to activate it in synchronizeProperties function in SavedState.cs
     
  41. Ghosthowl

    Ghosthowl

    Joined:
    Feb 2, 2014
    Posts:
    228
    Whenever I check 'Precache Gameobjects' my camera is included in the recording. I don't want to record the camera, just the gameobject. I want to be able to save the recordings however. When I uncheck this option, it works as intended. Problem is, I cannot save then :(

    Could you perhaps give me some guidance to overcome this problem?
     
  42. jonatanbijl

    jonatanbijl

    Joined:
    Oct 7, 2013
    Posts:
    12
    The camera is probably child of something that is being recorded?
     
  43. Ghosthowl

    Ghosthowl

    Joined:
    Feb 2, 2014
    Posts:
    228
    Thanks @jonatanbijl for the reply - I thought this to be the case, but it is not.

    It is it's own GameObject in the scene and not marked for recording. It only occurs when I Precache Gameobjects, if I do not do this it does not get recorded and works like I want it to. Perhaps it has something to do with the scripts on the object that reference the camera before replaying?

    I can send a repro to @softrare if that will help. :) Thanks.
     
  44. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! Sorry, for the late response. You describe an effect, I have never seen. Sending me a demo would definitely help ;)
     
  45. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
  46. Ghosthowl

    Ghosthowl

    Joined:
    Feb 2, 2014
    Posts:
    228
    Sent! Thanks. :)
     
  47. rgeade

    rgeade

    Joined:
    Jul 4, 2013
    Posts:
    3
    I purchased this plugin with the hopes of using it to replay moves in a turn-based multiplayer game. It's working great for what I need, but the saved file is a lot larger than I would like it to be. I've set the recording rate to .05 which is a little jumpy, but sufficient. A recording of 1 gameObject moving on screen for a few seconds is outputing a save file that is 18kb. Is there a way to get more efficient/smaller save files? I looked in the output file and it seems to have a ton of unnecessary data within. I'm going to save these files as strings and transmit them back and forth, and I was hoping to keep them under a few kb.
     
  48. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! Sorry for my late response, I am on vacation until the august 30th.

    You can of course change the recording interval but also change what information is being recorded and/or saved by editing SavedState.cs . Its a pretty straight forward file but if you need help pls just write me again. Hope this helps!
     
  49. sedan

    sedan

    Joined:
    Apr 10, 2013
    Posts:
    1
    How much is theplug-inthe latest version,whether to support thesound playback?My game,there are a lot ofmusicplayback,intime toshow it,so....
     
  50. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! Music and sound are not natively recorded. It's possible that you extend EZReplayManager in a way that sound effects are recorded, so just let the engine record playback of a sound effect at a certain frame, but that doesn't mean that i.e. pausing the replay or rewinding also does the same with the played-back sound effect, so that it quite hacky and only recommendable in case of short sound effects and when the replay is not pausable and replay direction is not changeable. Hope this helps!