The forum on this site is closed for new comments and posts. Continue the conversation in our Snap AR Discord server.

Improved animation workflow

  • Thanks all for the feedback! We'll add to our feature requests. 

    In the meantime, we just added a guide that should help give some guidance on working with animations without animation layers. The guide has you replace the interactive template animation scripts with ones that support animation with an inputted time start and end:

    https://lensstudio.snapchat.com/guides/3d/non-anim-layers-setup/

    Let me know if it's helpful! 

     

    Comment actions Permalink
  • +1. To make this workflow easier I have been using MotionBuilder which lets me quickly retarget animations to skeletons and export takes to layers in one go without having to chop them up by start/stop frame.  

    Comment actions Permalink
  • +1.

    FBX also has "takes" which is the standard method MotionBuilder, Maya, etc. use to store multiple animation clips in one FBX file, rather than layers which is primarily meant for adjusting mocap data and blending animation states, etc. The layer system really wasn't meant for this purpose (at least from my perspective, primarily using Maya.) The one-way process of having to prepare all the animations, baking them into layers, then preparing the layers for export really destroys iteration time and seems to be prone to errors.

    Importing/Exporting takes with Maya:

    http://help.autodesk.com/view/MAYAUL/2018/ENU/?guid=GUID-A5F13987-036D-42E3-BF66-EA312C045EBA

    http://help.autodesk.com/view/MAYAUL/2018/ENU/?guid=GUID-31148EE5-CAA8-48F2-9E51-3C9712EE8A14

    Ralph's suggestion is ideal, but maybe it would be easier to implement FBX takes as well as layers without adding a whole lot of new features to Lens Studio in the meantime? Thanks!

     

    Comment actions Permalink
  • Ah thanks for the update! That works. Although what's weird is with these scripts I can't get the idle to play after the character is placed. Only after you tap it and it does the tap animation will it play the idle after. But I can see from some prints I put in the method that it is indeed playing the idle, it's just never actually starting for some reason.

    I also had to take out the check for the secondary animation in the tap script because it would never trigger again because the idle animation was considered a secondary animation with that check.

    Comment actions Permalink
  • We'll investigate, thanks Ralph!

    Comment actions Permalink
  • Hi Ralph.

    We've been investigating your issue mentioned above regarding the idle animation not playing after the character is placed. Unfortunately we haven't been able to reproduce this issue as described. We exported a new character from maya with all animations on one single timeline and followed the guide for relinking the scripts to IdleAnim.js and TapAnim.js. After entering our desired start and stop times and pushing to device, the character idled and performed the desired tap animation when tapped and returned to idle. If somehow the bool (script.api.secondaryAnimPlaying) got set upon initialization then I can see how that might cause the issue but we haven't been able to create that situation after following the guide.

    Can you clarify what you mean when you say "the idle animation was considered a secondary animation with that check"? I can see why you would remove the check in TapAnim.js for script.api.secondaryAnimPlaying around line 82 because it is a bit redundant but I'm not sure how the the idle animation could be considered a secondary animation since this bool is only set from TapAnim.js

    Comment actions Permalink
  • Yeah what I had to do is comment out that check for script.api.secondaryAnimPlaying and then it plays the idle after I tap. I think this related to another bug I have where the idle won't play at the beginning. It's probably something dumb I'm doing, but I'm using the untouched scripts--hence I think it might be an issue with my FBX. I've got a support ticket open on it so maybe once you guys can check out the FBX you can find something wrong with it.

    Or I'm just doing something really dumb. :)

    Comment actions Permalink
  • Hi Ralph. I took a look at your project and I think I know what has happened. The start and end time for IdleAnim.js and TapAnim.js with regards to non layer based animations expects a value in "seconds" and it looks like you have entered the "frames" of animation from your 3D package. It seems you may have animated at 30fps so the start time for the idle in Lens Studio should be 120/30 == 4.0 and the end time should be 350/30 == 11.60. I tested this on our end and it starts idling as expected and everything seems to be working as expected.

    We didn't note this in our documentation so we're adding that now.

    Comment actions Permalink
  • Hmm, in every 3D content tool I've used, for importing/exporting/baking animation data, clip ranges have always been measured in frames, not in seconds. I understand if you chose seconds as the unit to make it more familiar to people who use video editing software, I just want to point out that I believe most people who generate realtime 3D animation are going to be thinking in terms of frames by default and might run into this hiccup often. Thanks!

    Comment actions Permalink

We're here to help! We just need a little bit of information...

What system are you using?

Have you downloaded the latest version of Lens Studio?

Please download the latest version of Lens Studio. If you still run into this issue, please come back and report it!

Is this issue causing Lens Studio to crash?

What system do you run Lens Studio on?

Version

Graphics

Follow the next steps to help us solve your issue:

  • Copy and paste this text into your TerminalCommand Window
    open ~/Library/Preferences/Snap/Lens\ Studio/ %LOCALAPPDATA%\Snap\Lens Studio Copy Text
  • Press ReturnEnter to run the command. The Lens Studio folder will automatically open
  • Prepare to upload your files: zip the "Log" Folder by right-clicking and choosing "compress."
    Locate the Log.txt file right above it.

    Attach a screenshot of the issue:

Name:

Email:

What is this most relevant to?

Please enter a brief description of your issue:

Thanks for submitting this issue.

Unfortunately, it's likely due to the operating system or hardware you're using – since they don't meet the system requirements for Lens Studio.

Still, we hear you loud and clear, and are logging the issue in case there's ever a workaround we can provide!

Minimum Requirements

Operating System: Windows 10 (64 bit); MacOS 10.11+

Hardware: Minimum of Intel Core i3 2.5Ghz or AMD Phenom II 2.6Ghz with 4 GB RAM; Intel HD Graphics 4000 / Nvidia GeForce 710 / AMD Radeon HD 6450 or better; screen resolution of 1280x768 or higher

We'll try to resolve this issue as soon as possible. Thanks for letting us know about it!

Keep an eye out for a followup email from us. We may have a couple more questions for you, or we might already have a solution to offer.

Happy creating!