Feedbacks for experimental feature: GameObjectRecorder (2017.1)

The same happens for values on custom scripts.

Hey I was just thinking, pairing this add on up with this > Unity - Scripting API: Animator.StartRecording
Could make an awesome replay system.
What do you think?

The recording system in Animator isnā€™t exactly the same, it doesnā€™t create an animation file (because of the same constraint that the GameObjectRecorder has: right now, itā€™s impossible to create an animation at runtime), and it doesnā€™t store exactly the same data (itā€™s very animation and state machine related). But if you want to create a sands of time effect, maybe this recording system could be used. I donā€™t know how much memory it can use.

That being said, weā€™re working on integrating the GameObjectRecorder in the new FrameRecorder API. This API is a very generic one, allowing to standardize the different recording systems in Unity (record a video or an animation).

Very interesting, Iā€™m trying to create an iOS app, and I need to animate a character at runtime, so the user can move every part of the character and record the movements and store or save on a ā€œ.animā€ file, pretty similar you are talking about but, it is possible edit those animations on runtime and save or store again?

FrameRecorder with animation recorder (alpha) is out: Release v0.2 - QA build Ā· Unity-Technologies/GenericFrameRecorder Ā· GitHub

@jpatinop80 Iā€™m sorry but itā€™s not possible at the moment, Iā€™ve explained a bit a the end of this comment: Feedbacks for experimental feature: GameObjectRecorder (2017.1) - #28 by anon20000101

Thanks mate :wink:

Did someone manage to bind and record Mesh.vertices?
Iā€™ve been trying for days but I just canā€™t get it to work.

It would be awesome if you could file a bug report :wink:
There are some edge cases that we havenā€™t tested yet, and that one might be one of them.

Has anyone found a workaround for non-transform values only recording sporadic frames? Is it fixed in newer versions of unity? Iā€™m on 2017.1.0p4

Iā€™ll try storing the data while recording and stuffing it into the clip after.

The bug is filed, but Iā€™m not working on it right now (sorry :confused: )
But on the bright side, Iā€™m on the Animation C# Jobs (which is going to be huge!)

Serves me right for using an experimental feature I guess.

So I got my stored data to work, so well that I even just rewrote the transform stuff too and Iā€™m not using GameObjectRecorder at all anymoreā€¦ but now I have a new issueā€¦ file size :frowning: Is there any way to pass my clip through Unityā€™s built in animation compression for fbx files?

EDIT:
I wrote my own simple keyframe reduction(not as good as Unityā€™s but itā€™ll be fine) and for anyone else running into rotation issues this thread is very helpful: New Animationclip property names

EDIT2:
After banging my head against the wall with an editor script that reduces keyframes after the clip has been created (Iā€™d remove keyframes and the file sizes seemed to get 2-3x biggerā€¦?) I found that reducing the curves BEFORE assigning them to the clip made works great. Maybe this will help someone some dayā€¦ maybe not.

EDIT3:
First off, if youā€™ve gotten this far reading my post, thank you for joining me on this journey. After several failed attempts at trying to remove gimbal lock pops from the rotation I was recording, I ended up just going back to using the recorder for transforms. There were way too many discrepancies between what I recorded vs what I was looking at in the animation window vs what was getting evaluated in the scene, and while that forum post linked above explains a lot of it, I still didnā€™t quite get why I was seeing pops when i was simply recording quaternion values and binding them as such.

If youā€™re attempting what Iā€™m attempting, save yourself the headache and just use the recorder for Transform recording, custom data for everything else.

When recording using the GameObjectRecorder, do you see the pops in the animation window? Could you take a screenshot?

Oh no when I use the GameObjectRecorder there are no pops, I only saw pops when I was manually creating rotation curves from the Transform properties and adding them to a clip using SetCurve().

So please correct me if I am wrong but because this uses the UnityEditor . There is no way to get this to work on standalone builds? Even if the animation was supposed to be ā€˜savedā€™ in memory.

I was looking for a solution that allow users to re-position objects in a sequence and save and replay this.

Wow, I could definitely use this! For my part, Iā€™m building an arcade-style simulation that needs to be filled with enemies flying complex motion profiles - circles, loops, figure-eights, etc. It would be convenient to store a series of positions (as opposed to an animation) that I could then feed to the objects at run-time. Iā€™d like to move the objects with a space mouse and record that sequence.

Actually, if I had the position, orientation, and velocity over time, it would be enough.

Youā€™re right, itā€™s editor only. I know that itā€™s tempting to use it as a replay mechanism, but Iā€™m not sure it would be the right solution, at least not in its current state, since the GameObjectRecorder can quickly record too much data and take a lot of memory.

Itā€™s not impossible to bring it to the engine and optimize it, but it would require quite a lot of refactoring to achieve this feature. Thatā€™s why, for now, weā€™ve limited this feature only to the editor.

Hello fellow users of the experimental GameObjectRecorder! :wink:

Just to let you know that, just this morning, a fix landed in our main branch and that itā€™s main goal is to allow to record MonoBehaviours. But along the way, I fixed two more bugs:

  • A better detection of the bindings types, which means better curves and tangents. Overall, this makes the recorder stabler, and fixes some edge cases, like when recording BlendShapes.
  • While writing a test for the MonoBehaviour recording, I discovered a bug in the key reduction algorithm. Nothing critical, but still, itā€™s nice to find and fix this kind of bugs :wink:

Great that this is being worked on. Does this fix the issue where recorded blendshapes become choppy when reloading Unity? In the meantime, is there any workaround to save/export the detailed blendshape animation before it gets destroyed? I would very much like to use this in a workshop next week but Iā€™m afraid I wonā€™t see a Unity update that soon.

I donā€™t have a test for that right now, but considering the fixes Iā€™ve done, I would not be surprised if they would fix that issue as well.

But Iā€™m afraid there is no workaround for it in the released versions :confused:
For your workshop, do you really need to record blendshapes? For now, it would be safer if you would record the Transform of your objects (for instance recording objects in a physics scene).