Search Unity

[RELEASED] Sage: Anim Graph Editor -- Control your Animations Visually!

Discussion in 'Assets and Asset Store' started by AlteredReality, Jan 19, 2012.

  1. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    With the exit condition thing, it doesn't seem like it would hurt to have an exit animation play. However, after looking at it more, it seems like the main issue I was able to reproduce was when the Actions SM stops playing an animation, and it tries to exit, if the SM node node in the parent graph has no valid output links, it will stop that state machine. A case where this will happen is if a condition in the parent SM is false, therefore not allowing a transition.

    I honestly have no idea what could be causing the issue with the animation playing twice. I'd really have to have an example to reproduce it, as it is never an issue I have seen before. Could you create a example of this with your source assets and send it to me at alteredrealityent@yahoo.com?

    Thanks!
     
  2. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    First off the issue with the controller not returning the active state machine state is a bug. Any child SMs were not properly being added to the list of active state machines in the controller. This has been fixed, and will be released in the next update that I hope to send out tomorrow.

    Secondly, I'm not sure what is happening with your issue by looking at your graph and info. The issue you are experiencing seems like it could be really hard to figure out without using visual debugging, which made me realize a missing feature in the visual debugging system! It doesn't allow you to send triggers! I will implement that feature in the next update as well, and hopefully that will help you figure out your issue.

    I will post on here when I release the update. Sorry for any inconvenience!
     
  3. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
  4. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    In celebration of my new baby girl, I've decided to create a $150 off discount/coupon for Sage Pro \w Source Code! It is valid through the rest of July! (Not valid with any other coupon or discount)

    To use it, go here: http://www.alteredr.com/sage/

    Then add Sage Pro to the cart and enter the Discount Code: SAGEBABY

    Enjoy!
     
  5. nuverian

    nuverian

    Joined:
    Oct 3, 2011
    Posts:
    2,087
    Congrats for your baby girl!

    By the way, sorry for not replying regarding my previous issue, since I was very busy with the rest of the project, but I will contact again when I get down to the animation part again.

    Again, congrats!
     
  6. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    :)
    Thanks! You may want to update to Sage 1.5.5 to see if your issues have been resolved, as I fixed some issues with chaining/linking multiple condition nodes together. Let me know if you have any more issues or questions.
     
  7. SevenBits

    SevenBits

    Joined:
    Dec 26, 2011
    Posts:
    1,953
    How does this compare to the Mecanim coming in Unity 4?
     
  8. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    To be quite honest, I am not intimately familiar with all of the features of Mecanim in Unity 4 (as it hasn't been released yet), so I'm not entirely sure how it compares. However, I'll go over a few key points I do know...

    First off, Sage is focused on being an animation state machine and blend graph system, using existing animations. It does not create new animations on the fly, and has no direct IK support. (Although it shouldn't be too hard to integrate it with external IK solutions) It does allow you to sync layers and blend graphs. Sage directly interacts with the existing Unity 3.x animation system, using features it exposes to drive your characters (or animated objects) animations based on your state machines and blend graphs. Sage also has full visual graph editor, along with real-time visual debugging of your graphs built in (similar to Mecanim visual debugging).

    MOST IMPORTANTLY, it is already released, it starts at $75 (dll version), and it works with Unity 3.x! Also, the code version is available for $150 until the end of the month (normally $300). This version allows you to customize Sage to your needs if you so wish. All of this makes it great for teams that don't want to have to update to Unity 4.0 and pay large sums of money to upgrade all of their licenses. Much easier to pay $75-$300 once for an existing solution!

    If you would like more info, you can check out our website linked in my signature. Let me know if you have any questions at all as well. :D
     
  9. ZJP

    ZJP

    Joined:
    Jan 22, 2010
    Posts:
    2,649
    Last edited: Jul 24, 2012
  10. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Thanks! So, are you saying you think it is difficult to integrate Sage with other IK solutions? As that video shows, it work just fine with animations being played. As long as the IK system applies it's transforms after the Unity animation system applies it's transforms, then it should work just fine. So I'd think it would be relatively straightforward to integrate with an external system (assuming you have the knowledge to do so).
     
  11. ZJP

    ZJP

    Joined:
    Jan 22, 2010
    Posts:
    2,649
    My bad. English is not my native. I mean, it's easy to integrate a Ik Solver. "Not really difficult" ;)


    JP
     
    Last edited: Jul 24, 2012
  12. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Oh okay, I thought it might have been a case of miscommunication. As what you presented made it seem easy. :D
     
  13. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
  14. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
  15. antiqas

    antiqas

    Joined:
    May 10, 2012
    Posts:
    9
    Hello,
    I have just discovered that blending different states (SAGE v1.5.6) breaks if your anim lists are not named 'default' or certain lstrange letter combination in the second state machine:
    • We have created fist state machine with additive blend for all body, named all states as needed
    • We have created second state machine for top body blend mixing transforms for top body apply to children enabled- depending on how we name anim lists it breaks the blending and only plays animation from 1st state.

    I think I have nailed that it only breaks when certain letters are used in naming a second state machine anim lists. Here are examples of what works and what does not:

    - anything in 1st state machine works: we have anim list named TTSitIdle and actual anim is called TTSitIdleBot
    - in 2nd state machine it seems it breaks depending on the first letter used in naming the anim list- seems inconsistent and I can't quite nail it down. If I name it 'w' it breaks (actual animation is called TTWave). If I name it for example 'd' it works.

    I am a bit confused about this but the bug is naming related. We are using v1.5.6 and this happens in second [sm]
     
    Last edited: Aug 22, 2012
  16. antiqas

    antiqas

    Joined:
    May 10, 2012
    Posts:
    9
    Sorry for my grammar :)
     
  17. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    That is quite an odd issue, I've not seen anything like this. To be honest, I can't think of any reason naming would cause it to break. Is this issue happening both in visual debug mode and game mode? The only issue I could see with name is if you have multiple states named the same thing, it could potentially cause issues when looking up the state through code. Although internally, the states/nodes access other graphs by an ID, not by name. The name is really only used when accessing the states/graphs through the SageController at runtime, or when using the debug panel in debug mode. And even then, it's just a look up by name, so it would only cause issues if the name is not unique.

    Also, how exactly is it breaking? Is it just not playing the animations?

    Would it be possible for you to send me an example of this issue? If not, screenshots would be helpful as well. You could email me at alteredrealityent@yahoo.com if you'd like your graphs/screenshots to remain private. Thanks!
     
  18. antiqas

    antiqas

    Joined:
    May 10, 2012
    Posts:
    9
    Hello!

    We have only tested in debug so far. Our coder named 'SC_79' on this forum will send you an example later, privacy is much appreciated. It breaks in the way that only animations from 1st state machine plays instead of blending if trying to rename the animation list name to certain letter combinations in 2nd one.

    Thanks!

     
  19. rockysam888

    rockysam888

    Joined:
    Jul 28, 2009
    Posts:
    650
    Hi all,

    What is the main advantage of using SAGE? Is it mainly used for blending two different animations only?
    What would be difference without using SAGE?

    Thanks in advance
     
  20. rockysam888

    rockysam888

    Joined:
    Jul 28, 2009
    Posts:
    650
  21. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Sorry, I just saw your post. For some reason I didn't get a post notification. :-(

    The main benefit of Sage is that you do not have to problematically handle all of your animation blending and state transitions. It makes it ALOT easier through a graph based interface. And Sage can handle as many simultaneously blended animation as Unity can, as it using it's animation system under the hood for playing animations.

    Let me know if you have any more questions!
     
  22. BigToe

    BigToe

    Joined:
    Nov 1, 2010
    Posts:
    208
    First off, let me say what a top notch product this is. Great job. I was trying to implement in Mecanim, and it's just too unstable at this point. Sage is just impressive and the debug mode is great.

    I do have a problem that I haven't wrapped my head around yet. I have a character that is playing an idle animation in the default state. I have created a parallel state machine to handle a looping arm waive. I am trying to figure out how to have a blank animation that does nothing in the PSM that isn't effecting the idle animation in the default SM. I think I need this so I can have a condition in the PSM that starts the waive.

    I selected the Left shoulder of my character for Mixing Transforms in the PSM.

    I added two animation lists to the PSM. One has an idle, and the other the waive. I have a condition that transitions between the two. I thought I could just set the weight and the speed in the idle Animation list to 0 so it doesn't do anything. But if I do that, the transition to the waive is jerky. If just set the weight to 0 and leave the speed at one, it seems to change the speed of the overall idle, or adds to it. This is my main problem.

    I'm new to sage, so there is probably a better way. Maybe I should be using a blend graph in the PSM?

    Thanks in advance.
     
  23. BigToe

    BigToe

    Joined:
    Nov 1, 2010
    Posts:
    208
    I am going from an Anim List to a Blend Graph. When I do this, there is not smooth transition between the two. It just cuts right to the top most animation of the blend node inside the blend graph.

    AnimList -> Condition -> BlendGraph -
    Snaps to the beginning of animation of the blend graph.
    The blend node only consists of 1 animation right now as I am trying to test it.

    AnimList -> Condition -> AnimList -
    Works fine and the two animations blend well. This is the same animation that I was testing the Blend Graph with
     
  24. BigToe

    BigToe

    Joined:
    Nov 1, 2010
    Posts:
    208
    I deleted everything and started again, and it seems to work for now.

     
  25. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    So, basically you just want to play an animation on top of the existing animations? And override all transforms on a bone and all it's children? It sounds like you want exactly what I have setup in the SoldierSL library included in sage with the Arms pSM. I'd recommend looking at how that's setup. Basically, sounds like you just need a pSM that plays one animation. Need to make sure it's on a higher layer, it applies a mixing transform, and the animation speed and weight are greater than 0. Just reference the Arms pSM graph, and let me know if that does it for you (or if you have any other questions).
     
  26. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Sage 1.5.8 (and 1.5.7) has been released! Here are the patch notes...

    Version 1.5.8 -- 9/3/2012

    - Fixed an issue where conditions wouldn't be triggered properly when switching states too fast.
    - Fixed an issue where a log error would trigger incorrectly.

    Version 1.5.7 -- 9/1/2012

    - Fixed an issue where mixing transforms wouldn't be applied to the blend graph nested in another blend graph.
    - Fixed an issue where editing controls for mixing transforms wouldn't show up if no template animation was set.
    - Added log errors for validating mixing transforms.
    - Added log errors for validating that an animation is only being used once at any given time.

    Older patch notes: http://alteredr.prophpbb.com/topic5.html
     
  27. simonwittber

    simonwittber

    Joined:
    May 13, 2008
    Posts:
    228
    Feature Request: Add triggers for audio clips which are controlled by the SAGE state machine.
     
  28. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    It's an interesting idea, but I want to leave Sage focused only on Animation features. However, you could use animation events to trigger sound when animations play.

    If you really want to put sounds directly in the graphs, you'd have to buy Sage Pro (source code version), and implement the nodes yourself. If you do go this path, feel free to ask any questions you have about implementing new nodes. :)
     
  29. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
  30. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Sage 1.6.0 has been released, which finally adds Copy/Paste support!


    Version 1.6.0 -- 9/14/2012

    - Added the ability Copy and Paste Nodes and State Machines!
    - Trigger nodes now force states to restart if they are already active.
    - Node warnings are ALOT more obvious now.
    - Removed redundant log error for mixing transform animations already being used.
    - Fixed an issue with undo/redo of deleting nested graphs.
     
  31. TianWolf

    TianWolf

    Joined:
    Aug 20, 2011
    Posts:
    161
    Hi, I tried animating a character with Sage. And, while everything seems fine when I hit start on the editor, nothing happens when I hit play.
     
    Last edited: Sep 28, 2012
  32. TianWolf

    TianWolf

    Joined:
    Aug 20, 2011
    Posts:
    161
    I would like to add that I did watch the video on Altered Reality. And I've done everything in the video.
     
  33. TianWolf

    TianWolf

    Joined:
    Aug 20, 2011
    Posts:
    161
    It seems when I remove the Update part in the script it works just fine. Anyone know why this might be? And don't think anything is mentioned about it anywhere.
     
  34. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    So, visual debugging in the editor is working for you? But when you drop into game mode, it doesn't work? Which script are you talking about removing the Update function from? I've not heard of an issue like that, nor seen one myself. You have the Animation Target set properly on the Controller? Any other info you could provide on how your character and scripts are setup would be helpful. Thanks!
     
  35. cygnusprojects

    cygnusprojects

    Joined:
    Mar 13, 2011
    Posts:
    767
    Somebody knows Sage is working correctly on Unity 4 Beta?
     
  36. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Unfortunately I do not have access to the Unity 4 beta, as I need to have the pro version of it preordered in order get the beta. So I don't know 100% that it works. However, unless they significantly changed their animation system or editor extension system (which i don't think they have), then it should work just fine.
     
  37. cygnusprojects

    cygnusprojects

    Joined:
    Mar 13, 2011
    Posts:
    767
    Ok, Thanks Andy. I just purchased Sage and imported it into my Unity 4 project and at a first glance it is indeed working. Although I only checked the demo scene and did open the provided library for it. Didn't change anything yet, but will keep you posted when I'm running into trouble ;-)
     
  38. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Glad to hear it's working well, and thanks for the updated!
     
  39. EvilDingo

    EvilDingo

    Joined:
    May 7, 2011
    Posts:
    190
    I'm getting an error "Trying to call SetApplyMovementDelegate on a Sage Controller with no library!"

    It only happens when running it on an iPhone. I assume this is because of some script order problem. How can get I make sure the library is ready before the GameController script runs?
     
  40. UNITY3D_TEAM

    UNITY3D_TEAM

    Joined:
    Apr 23, 2012
    Posts:
    720
  41. EvilDingo

    EvilDingo

    Joined:
    May 7, 2011
    Posts:
    190
    Related to the previous issue I mentioned. This is an error when trying to create the library:

    NullReferenceException: A null value was found where an object instance was required.
    at System.Guid.NewGuid () [0x00000] in <filename unknown>:0
    at SageInternal.SageBaseLibrary..ctor () [0x00000] in <filename unknown>:0
    at SageInternal.SageFactory.CreateLibrary (SageInternal.SageLibraryConfig libraryConfig) [0x00000] in <filename unknown>:0
    at SageController.Awake () [0x00000] in <filename unknown>:0

    Any idea what I can do about that?

    It works in the Editor and on my Android devices. Only has this problem on iPhone.
     
  42. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    From looking at the call stack, it seems to be crashing on an inline member assignment where i call Guid.NewGuid(). I have no idea why that would cause it to crash, but it doesn't seem like a Sage issue. Unless there is a problem with calling Guid.NewGuid() that i don't know about. Although I've personally used Sage on a few projects in iOS, and i know others have as well.

    Perhaps it is some compiler flag set or something. I'd recommend trying to create a fresh ios unity project and import only Sage. Then try and run the test level in iOS. Let me know if that works for you.

    Sorry I can't be more helpful, but I am at a loss as to why it would crash where it is crashing.
     
  43. duke

    duke

    Joined:
    Jan 10, 2007
    Posts:
    763
    Will you be continuing this product after 4 is released? I'm certainly keen for you to do so :p if you are, I have a feature request for a FramesPerUnit constant for each animation, so you can specify exactly how many frames it takes for a traveling (ie. not an idle) animation to travel a single Unity unit. This would make input a lot more convenient - an input velocity of 1.0 will always have the animation moving at 1.0. Right now I'm doing this in the controller code with a lookup table to grab the multipliers, but it's less than optimal.
     
  44. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    I am definitely planning on continuing this product after Unity 4 is released. However, I am not planning on making any Unity 4 only features. I will continue to build it for Unity 3.5.x, and ensure it works with Unity 4 as well. At least this is the plan for now, or until I am no longer able to support both 3.5.x and 4.x.

    A very interesting feature, and definitely something I will keep in mind. Thanks for the feedback! :)
     
  45. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    It's been a while since I've posted about updates to Sage in here, so I wanted to quickly post the most recent updates...

    Version 1.6.4 -- 11/6/2012

    - Fixed an issue where an anim list, when playing random animations on looping, would set an improper anim weight for a frame.

    Version 1.6.3 -- 10/30/2012

    - Fixed an issue where changing a variable twice in one frame would sometimes not cause the correct conditions to trigger.
    - Fixed some misc errors.

    Version 1.6.2 -- 10/15/2012

    - Adjusted the order in which graphs are updated to allow better logic flow.
    - Fixed an issue where a condition that was already true did not trigger properly when switching states.
    - Non-forced condition nodes will no longer trigger with a transition path is active.

    Version 1.6.1 -- 10/7/2012

    - Nested state machines can now be configured to use an explicit initial state.
    - Fixed an issue where starting/stopping a graph that was already starting/stopping didn't work correctly.
    - Removed some unneeded debug code.
    - Removed an unneeded debug file.
     
  46. ZJP

    ZJP

    Joined:
    Jan 22, 2010
    Posts:
    2,649
  47. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Hi there! How's it going!?
     
  48. Zen-Davis

    Zen-Davis

    Joined:
    Aug 14, 2009
    Posts:
    285
    Just wanted to say thank you for your great asset. :)
     
  49. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    My pleasure, and thanks for the kind words!
     
  50. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    We just released a trial version of Sage! It has all of the same features as the full version, but simply displays a watermark while running. You can download the trial version here: http://www.alteredr.com/sage/

    I'm going to try to release it on the asset store, and I'll post if I'm able to. (I'm not sure if trial versions are allowed on the asset store)

    Let me know if anyone has any questions!