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

[Depreciated] Ultimate Replay - Complete state based replay system

Discussion in 'Assets and Asset Store' started by scottyboy805, Jun 28, 2017.

  1. Saeleas

    Saeleas

    Joined:
    Sep 23, 2017
    Posts:
    11
    Hello,
    I'm having a problem recording multiple instances of the same prefab. I've got two projects that are sharing the prefabs and in both I have the ReplayManager setup with the same prefabs, the problem is that when I playback a recording (from a file target) only one istance of the object is instanced.
    The function that spawns prefabs spawns a number of instances of the prefab in one frame.
     
  2. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Hi,
    Do you mean that you are recording in one project and trying to replay in a different project with the same prefabs? If that is the case then the prefabs will likely have different replay id's assigned to them and will not be updated like you would expect.
     
  3. Saeleas

    Saeleas

    Joined:
    Sep 23, 2017
    Posts:
    11
    By looking in the inspector the "Replay Identifier" field inside of the replay components are the same between projects (the prefabs are shared using symlink on the folder).
    Maybe there is something wrong in my setup.
     
  4. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    OK that is good. Do all of the prefab instances also have unique id's? ie: the same id is not shared by one or more replay prefab. If you could pause the game in editor while playback is occurring you should be able to look though all of your instantiated prefabs in the hierarchy and check for any duplicates. We did have a recent report of the replay system generating non-unique id's which leads me to suspect you may have the same issue.
     
  5. Saeleas

    Saeleas

    Joined:
    Sep 23, 2017
    Posts:
    11
    The instances of the prefabs (named <prefab name(Clone)>) show the same Replay Identity fields as in the base prefab.
    pref.png

    PS: I am using the trial version 1.0.8
     
  6. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    OK that looks like the problem then. When the prefab is instantiated the replay id should be regenerated so that it is unique. If the value is simply being inherited from the parent prefab then all child instances will have the same id and as a result only one replay object will be updated during playback. Would you be able to share the code you are using to instantiate the prefabs so I can try and replicate the issue? You can send it to info(at)trivialinteractive.co.uk if you prefer.
     
  7. Saeleas

    Saeleas

    Joined:
    Sep 23, 2017
    Posts:
    11
    Sent an email to the address with a unitypackage attached.
    Hope that helps.
     
    scottyboy805 likes this.
  8. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Thanks. I will take a look and hopefully get the issue fixed.
     
  9. SKArctop

    SKArctop

    Joined:
    Feb 12, 2018
    Posts:
    38
    Hello.

    I have imported the trail asset into our project and it seems that it will cover our use cases properly. Before purchasing, I wanted to check a couple of things.

    We are going to need and record about 5-10 minutes of game play and be able to play that back. This will have to be saved to a file. We will probably only have around 10 objects that will need to be played back. We would like to allow for playback of a replay at a later time as well. (I.e. dynamically loading a replay file into the scene). Lastly we need to be able to select a frame in the time line and allow the user to view that frame and scrub in any direction.

    In the tests I've ran, currently I have not had any success playing back animators that are connected to characters (Animator component). The transforms are recording properly but no animation is being recorded. Since mostly there are just a few parameters that need to be stored, I can probably just record those via ReplayVars, but I was wondering what might be the state of the Animator Recording.

    Since this project is targeting the Hololens, the camera is an object we don't want to control, but will want to still keep track of it and provide a "point of view" camera that will render what the user was seeing at time of the recording. I'm imagining that the same technique that is used for the "free cam" can work for us.

    Another portion is that we will need to have videos playing in the scene, and have those respond to the replay time. I'm assuming ReplayVars should help us here as well, as we can just store the video's time and feed it back during playback.

    Lastly this is a prototype demo project that needs to be complete within the next couple of weeks.

    Would you say your system supports all of our requirements?
     
    Last edited: Apr 1, 2018
  10. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Hi,
    A recording of 5-10 minutes with only 10 objects can be saved to file but it could also be stored in memory as the amount of data would be fairly small. If you use a reply file though you can simply set the file path either via script or in the inspector and when you start playback it will begin streaming the data. You will have to make sure that the same scene is used to replay the recording though otherwise it will not work as expected.

    You can move to any point in a recording using the following methods:

    Code (CSharp):
    1. ReplayManager.SetPlaybackFrame(float, PlaybackOrigin);
    2. ReplayManager.SetPlaybackFrameNormalized(float, PlaybackOrigin);
    The first method takes the time that you want to move to in the recording in seconds. For example: '1.5f' would move the playback to 1500 milliseconds (Or the closest frame available). The second method accepts a float value between 0-1 and will interpolate from the start and end of the recording where 0f = start, 1f = end and 0.5f = middle.

    In conjunction with the above, you can then call 'BeginPlayback' which will continue from the frame you set in the specified direction.

    At the minute we have experimental support for animation via the 'Animator' component using a 'ReplayAnimator' component as the recorder. As this feature is still experimental it could contain bugs and may not have all the features you would expect so if you feel it is not working as expected then please do let us know and we will take a look. At present though we do have the ReplayAnimator component working with recording a basic humanoid rig.

    For the camera you should be able to create a clone camera which will follow the location of the actual camera (if you are able to retrieve its position and rotation) and be recorded using a ReplayTransform component. You will likely have to have it disabled during recording though so that it does not interfere with you rendering camera but this is easy enough to do.

    With regards to replaying in sync with a video. if you can start both the video playback and the replay playback at the exact same time then they should be able to run in sync until the end.

    I hope this answers your questions. Let me know if you would like to know anything else.
     
  11. SKArctop

    SKArctop

    Joined:
    Feb 12, 2018
    Posts:
    38
    Thank you.

    I have purchased the package and it looks like it will work for our use cases. I have yet to test out the animator issues thoroughly, but if I find a bug I'll let you know.

    I did have to add 64bit support into the states and bit converter as I want to be able to store the video's frame directly into the state, and that is a long. Might there be any pitfalls with that ? I haven't yet had the time to make sure that i'm not affecting anything else in the system (for instance by increasing the max buffer to 8 bytes).

    Additionally, there is a bit of an undocumented and perhaps confusing behaviour when working with OnReplaySerialize and OnReplayDeserialize. The issue is that the default implementation of on Deserialize will read a byte to test if there are any events/variables present. In my case, I was calling Base.OnSeriazlie/Deserialize as the first call in my overridden method. This caused my buffer to lose a byte that was read, and my data would be wrong. This probably should be described in the docs, that a user should first read/write their own data before handing it over to the base method.

    Besides that, I was able to very quickly get a lot of our project replaying, so thank you for the great asset.
     
  12. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Adding 64-bit support is fairly simple as you discovered and increasing the buffer size should cause no ill effects. We could add support for the 'Int64' type if needed but we left it out because pretty much every aspect of the Unity API uses 32-bit integers.

    Are you calling the base serialization methods before your own custom serialization code? The base serialize method should always write a single byte and the base deserialize method always expects to read this byte. Your custom data should be after this byte and unaffected if you are calling both base methods before your code. If you are doing this then it may be a bug in which case we will look into it.

    I am glad you are liking it. Let me know if you have any questions or feedback.
     
  13. SKArctop

    SKArctop

    Joined:
    Feb 12, 2018
    Posts:
    38
    That was what I expected. However you do have a bug. Look at the code in ReplayBehaviour.cs :

    Code (csharp):
    1.  
    2.             // Serialize replay events
    3.             if (replayEvents.Count > 0)
    4.             {
    5.                 // Write the events idenftifier
    6.                 state.Write(eventIdentifier);
    7.                 // Serialize all events
    8.                 ReplaySerializeEvents(state);
    9.             }
    10.             // Serialize all replay variables by default
    11.             if (replayVariables.Length > 0)
    12.             {
    13.                 // Write the variables identifier
    14.                 state.Write(variableIdentifier);
    15.                 // Serialize all variables
    16.                 ReplaySerializeVariables(state);
    17.             }
    18.  
    If there are no vars or events, it will never write that byte.
     
  14. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Indeed this looks like an issue. I will be sure to include a fix in the next update. Thanks for reporting the problem.
     
  15. SKArctop

    SKArctop

    Joined:
    Feb 12, 2018
    Posts:
    38
    So I was wondering about this part. I'm assuming you are using the replay ID on objects to know which objects to drive. If I have a different scene which is just a duplicate of the original recorded scene, with just some interactions and components I don't want or could get in the way of the replay removed, and since the ID is serialized, do you think that approach can work?
     
  16. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    As long as the replay id's for the objects are the same (which they should be if you are just duplicating the scene to re-use) then the playback will work as expected. You are correct that objects are driven by their unique id's so they do not necessarily have to be the same object instance as long as the id and observed components match up. There is also a constructor in the 'ReplayIdentity' class which takes an 'Int16' value representing the id which you can use to manually assign replay identities to objects if you need to.

    There is also a built in warning that will appear to indicate that the current scene is not the scene that was used to record the replay data. You can either ignore this warning or modify the source to remove it.
     
  17. Saeleas

    Saeleas

    Joined:
    Sep 23, 2017
    Posts:
    11
    Hi,
    I've got a question about spawning replay objects. Is the spawning position interpolated too? What I mean is, when I spawn a replay object I specify a position in the class of the Instantiate method, when I replay it seems like the object at first is spawned at (0,0,0) and then interpolated to the position specified in the Instatiate method. Is this the correct behaviour?
     
  18. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Hi,
    This sounds like it might be a bug. When are you spawning your replay objects? In Start, Awake or something else? Objects may be spawned at the origin briefly but should be snapped to the correct spawn location when the replay system updates. All of this should happen in the same frame so you should not be able to see the object being interpolated to its start position.
     
  19. SKArctop

    SKArctop

    Joined:
    Feb 12, 2018
    Posts:
    38
    Hi. So I've just ran into an issue building my project for UWP / Hololens. I'm getting about 30 compile errors once I try to build. Have you ever tried building your package for that platform? It seems like some aspects of the threading / reflections are not compiling, though I believe these should be available on the device.

    This is quite a problem at this point. I've emailed you as well so that we can continue troubleshooting privately.
     
  20. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Hi,
    I have a little bit of experience with UWP and know that it uses different runtime binaries from other platforms which may be he reason behind the errors. At the minute we just have standard .Net and .Net subset support but I will try a build on my end to see what sort of errors are being generated and whether we will be able to get Ultimate Replay to work correctly.
     
  21. SKArctop

    SKArctop

    Joined:
    Feb 12, 2018
    Posts:
    38
    One more thing to note is that half the errors are coming from the experimental portion using threads in ReplayFileTarget and so on. I can probably get around those and just store the replay in memory for the time being.
     
  22. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    I have just done a test build and am getting 32 errors when targeting UWP. Most of the errors seem to be related to System.Type and missing members which should not be much of an issue because I believe that Winrt has alternatives. The threading errors may need a fair bit more work because the current threading code will need to be replaced with async /await calls but if you do not need to use the Replay File Target then I can focus on the errors that are holding you up for now. It looks like we should be able to fully support UWP in the future.
     
  23. SKArctop

    SKArctop

    Joined:
    Feb 12, 2018
    Posts:
    38
    This is what I've found. I've disabled the experimental flag and fixed the compile errors related to types/reflections. Mostly it comes down to using type.GetTypeInfo() instead of just type.xxx
    I am still unable to build though, due to other errors at the moment which I'm not sure what the source of is, but I don't think this is related to your package. I would like to use the replay file, but that can wait since as you said it is a bit of work changing the code.
     
  24. SKArctop

    SKArctop

    Joined:
    Feb 12, 2018
    Posts:
    38
    Ok. I've managed to build. The issues I had later was related to a different package
     
  25. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Good to hear. We have also fixed most of the errors and will likely merge the changes with the next update which is due in the next couple of days.
     
  26. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Ultimate Replay 1.0.9 has been submitted to the asset store for review. This update contains:
    • Added support for UWP platforms. (Experimental features are not yet supported but will be in the near future)
    • Fixed a bug where replay identities could be duplicated.
    • Fixed a bug in the Replay File Target which caused unnecessary waiting while streaming from file
    • A few other small bug fixes.
    There are still some cases where Replay Identities will not be uniquely generated. We are aware of this issue however and are working to fully resolve it in the next update.
     
  27. Saeleas

    Saeleas

    Joined:
    Sep 23, 2017
    Posts:
    11
    Hi, sorry for being so late.
    The use case is: ReplayObject shoots a bullet. The bullet is spawned at the nozzle and does its thing. The bullet renders a trail, when the bullet is spawned in the replay you can see the trail being rendered from the origin to its final position.
     
  28. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    HI,
    Do you mean that the trail is rendered when you start the replay but you want it to start again and follow the bullet? If so then it sounds like you need to clear the trail renderer when you enter playback mode since Ultimate Replay has no built in support for trail rendering. You should be able to create a script that inherits from 'ReplayBehaviour', attach it to you trail game object and override the 'OnReplayStart' method. You can then write some code to clear the trail renderer which will only run when playback starts and should hopefully solve your issue.
     
  29. Saeleas

    Saeleas

    Joined:
    Sep 23, 2017
    Posts:
    11
    The trail renders as the object moves, so there is no issue there. The problem I'm facing is that I can see the object spawning at the origin and then moving to its final position, I noticed it because of the trail, even though it's really fast, it still noticeable. I tried adding a trail renderer to the objects in the StressTest scene but there I can see no issue.

    EDIT: I managed to reproduce the issue, sent an email to trivialinteractive's mail.
     
    Last edited: Apr 16, 2018
  30. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Sorry I misunderstood but I know what you mean now. I will take a look at the package you sent and see if I can see what is causing the problem. I will let you know when I have made any progress.
     
  31. Saeleas

    Saeleas

    Joined:
    Sep 23, 2017
    Posts:
    11
    An update on the issue: seems to be more visible when using ReplayFileTarget instead of MemoryTaget.
     
  32. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Sorry for not replying to this message. I did not get a forum notification.

    I believe we have now fixed the problem you were seeing where replay prefabs were briefly spawned at the origin before teleporting to their correct location. We could not seem to replicate the issue using a ReplayMemoryTarget so if you are still facing the problem then let us know. We did manager to recreate the problem using a ReplayFileTarget though which we have now fixed so hopefully that will resolve the problem completely.

    We have submitted the update to the asset store and it should be available within the next day or so but I have also emailed you the trial version so you don't have to wait.
     
  33. Saeleas

    Saeleas

    Joined:
    Sep 23, 2017
    Posts:
    11
    Great!
    Thank you very much!
    You are doing great work on this asset.
     
  34. ChiefDirector

    ChiefDirector

    Joined:
    Jan 18, 2018
    Posts:
    1
    Hello, is there any way to record ragdoll?
     
  35. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Hi,
    I have not tested recording a ragdoll but it should be possible by attaching a ReplayTransform component to each joint of the ragdoll. This will record and replay the local position and rotation of the joint transform and the replay system will disable any physics components that could interfere when switching into playback mode. I will also do some testing over the next couple of days because I would like to make sure it works as expected and maybe even add a ragdoll demo scene to the asset.
     
  36. ryanas

    ryanas

    Joined:
    Oct 2, 2013
    Posts:
    14
    How would you go about replaying an entire character. I've downloaded the trial as a test and I was wondering if I can simply record the children of the object or I need to manually attach a replay script to every child which would be tedious.
     
  37. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Hi,
    It depends on what aspects of the character you want to record. If you need to record animation then we have an experimental ReplayAnimator component that is able to record and replay animation. If you need to record rag dolls or IK or similar then you will want to use ReplayTransform components on each moving object in the character hierarchy.
     
  38. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Hey there, we have purchased the Ultimate Replay full version and doing great with it :) It works really well but we have a strange issue which needs rather immediate fix :)

    Upon reloading a scene (SceneManager.LoadScene and LoadSceneAsync), we get tons of errors and each object with Replay Object and Replay Transform attached gets to stay on the scene and does not get destroyed so the scene loads pretty messed up as you can guess :) Errors mostly consist of these;

     
  39. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Hi,
    Another user has reported similar errors when loading scenes in a certain sequence and we assume these issuaes are related. We are currently working to fix the issue and should hopefully have an update in the next few days. The error seems to be caused by the fact that there are 2 replay managers in the scene when your reload. One manager from the first scene which is persistent and a second replay manager from when you reload the scene and then the replay system will automatically delete one of these manages as only one can exist at any time. unfortunately it looks like the persistent manager is getting deleted instead of the manager from the newly reloaded scene which seems to be causing the errors.

    Edit: You may be able to get around the issue temporarily by going to 'Assets/UltimateReplay/Scripts/Util/MonoSingleton.cs' at line '111' and commenting out the line:

    Code (CSharp):
    1. DontDestroyOnLoad(go);
    We have not tested this yet though so cannot promise it will fix the issue.
     
  40. dpotthast

    dpotthast

    Joined:
    May 5, 2018
    Posts:
    2
    Hello! I am interested in your plugin for purposes of reverse engineering a dynamic vehicle rig. Essentially I need to record world position and rotation values that are generated dynamically in unity during preview, which I then plan to import into a Maya project to drive tire and chassis animation. Is your plugin a viable means to extract this physical data? I see from questions above that you store your data in a binary format. Not being familiar with unity, will it be a problem to extract this data as keyframes?
     
  41. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Hi,
    Recording the transform of the vehicle is no issue but the problem will be getting the data into Maya. Ultimate Replay takes 'replay snapshots' at every record interval and these snapshots contain 'replay states' which is essentially a byte stream that is written to by a number of different serializes. All of this API is exposed to you but it may be a little tricky getting the data out because you will need to know the format of the replay state which would require some understanding of the code. I would say that it is definitely possible but may be too involved or time consuming for you. If there is any feature that we can add that might assist you and has enough interest then we could look at implementing it to make this sort of workflow easier.
     
  42. dpotthast

    dpotthast

    Joined:
    May 5, 2018
    Posts:
    2
    Thanks for your quick reply. I am versed in Pymel for Maya so, assuming I had a formatted text file or .xml, it would be trivial to generate my needed keyframes in that software. I am still trudging through the Unity API, so at this point I am not even sure what questions to ask. I have found some promising options in Physics recorder (https://assetstore.unity.com/packages/tools/animation/physicsrecorder-27775) but it does not seem to be capturing the needed transforms in world space. Thanks for your time, perhaps I will revisit with feature requests when I have a bit more experience in Unity and can phrase my needs in a way that makes sense in this platform. I cannot imagine extracting world space transforms into an ascii format is that tricky, but I also realize Unity is not really built for what I am trying to accomplish.
    Thanks for your time!
     
  43. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Ultimate Replay 1.1.0 has been submitted to the asset store for review and should be available for download within a couple of days. This version includes:
    • The replay manager will no longer survive scene changes by default. This means that you should either have a replay manager component in each scene that you intend to use Ultimate Replay or you should enable the option 'Dont Destroy On Load' in the inspector for the replay manager component. Note that if no valid replay manager if found in the scene then the replay system will automatically create an instance to avoid error.
    • There is now an option to control what the replay system does after playback finishes. It can switch back to live mode, stop playback on the last frame or loop playback.
    • ReplayFileTarget is no longer experimental and is considered stable.
    • 'BegingPlayback(bool, PlaybackDirection)' is now obsolete. Use 'BeginPlayback(bool)' to start replaying and use 'Time.TimeScale' to modify the direction. Negative time scale values are now allowed to indicate reverse playback which is much more intuitive
    • Added support for spawning replay prefabs with their correct parent. Note that this requires the parent object to have a ReplayObject script attached.
    • Fixed a bug in the ReplayAudio component where the audio source pitch would not be updated if the time scale changed while playing audio
     
  44. Flamacore

    Flamacore

    Joined:
    Dec 17, 2013
    Posts:
    138
    Hey there again, doing great work with it, appreciate that immensely :) But here's an issue I happen to encounter. Randomly, when replay starts, one of my replay objects gets destroyed. Or sometimes this happens when it ends. Now I also have Photon View attahced to the object. Could it be related to that? Have you encountered anything like this? There's no destroy command in my code, In fact, I've never used destroy frankly :) (For pooling purposes).

    So can we move on to anywhere?
     
  45. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    Hi, Thanks for the support.
    Just a couple of questions so I can help with your issue:
    1. Are you using the latest version (1.1.0 released a couple of days ago) as we found a similar bug to what you describe and this update fixed that.
    2. Is the object that gets deleted a replay object (Does it have ReplayObject script)?
    3. Does the object have any other replay related scripts such as ReplayTransform?
    4. Is the object a prefab instance?
    What I suspect is happening is the replay system is deleting the object because it cannot find an object with a matching replay identity in the recorded data so assumes that it should be deleted in order to accurately replay the recording.
     
  46. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    1,633
    This looks great, would it be able to record a very complex ufps game with a pretty large city? I bought another asset which failed to do it, but I think if the right approach is taken then surely anything will be abled to be re-played. Definitely interested in trying this out, will give the trial a go!.. Does anyone have any videos of pretty complex / cool scenes theyve made with this for their own games ?
     
  47. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    You should be able to record complex scenes using our asset. Is it just transforms you need to record or other things too? You should definitely give the trial version a try and see if it fits your requirements. If you have difficulty getting complex objects to record properly then let me know and I will see if I can help. I am not aware of anyone using this asset for any published games yet so I cant help on that note.
     
  48. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    1,633
    Thanks I installed the trial, one thing I dont understand is why when I start my game (if I have a ReplayManager turned on) it completely removes the player I am trying to record. Leaving me with no cameras rendering.

    I also cant press the buttons to play the replay, the mouse input is taken away by something else in my game that I cannot locate, is there any shortcut keys?

    Ultimately I want to record my main character running around my level, and have a camera viewing him from different angles. As a sort of rolling demo.
     
    Last edited: May 17, 2018
  49. scottyboy805

    scottyboy805

    Joined:
    Apr 10, 2013
    Posts:
    1,192
    We found this bug not too long ago and thought we had fixed it in the latest update but if you are still seeing it then we would be keen to get some information from you so we can fix it for good.

    Is you player object a prefab instance? If so is it placed in the scene or is it spawned in by script?
    Does the object have a ReplayObject script attached? If so are there any other replay components attached also such as ReplayTransform (Including child objects)?
    If you try removing any replay scripts and re-attaching them does it fix the issue? (A new replay id should be generated for each script when added)
    Is the object registered with the replay manager as a replay prefab? (Check the prefabs section of the Replay Manager script)

    With regards to your button issue: There are no shortcuts at the minute but we will add them to the next update.
     
  50. radiantboy

    radiantboy

    Joined:
    Nov 21, 2012
    Posts:
    1,633
    Its a UFPS character that exists when the scene is run. It is a prefab instance (though I dont think ive applied changes in a while) It as the standard 2 scripts on it, replayobject, replaytransform. I tried many combinations of turning things on and off but had no luck, but then its hard to say because i could not actually use the gui to play the video back and the source was not available to make the tweaks.