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

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

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

  1. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    hi thanks for the support

    not a problem, i was playing around today with it and i figured as much

    its just something i have to solve.

    so looking at that SoldierSL.asset that contains the stuff i notice that animation name and its GUID are stored. its a text file. so i could in theory create a template of set of animation and create small program to like go nuts generating the files from text template. filling in the blanks like animation name. all i have to find is where that guid is coming from... any idea

    i would from a template i would create from a base model and animation set of it generate the thing for all the characters

    like base model has animations idle, jump, forward, backward, strafe left, strafe right, attack0, attack1, attack2, hit0, hit1, hit2, die1, die2, die3, ect

    i would create using your tools basicall what would end up as being templates.

    then i could have some xml file to do mapping per character for the crazy animation name to the above standard animation name

    then run my little generator go generate all the stuff.

    the only thing is if there is more than name and guid i would have to get or perhaps ignore it.

    so if i had n characters with m idle animations. each being slighly different idle with different spelling of idle

    if i plugged in the funky name and guid (which i still dont know where to get)

    and generate my own little 3 files and set it up like you did for the base but specific names for the funky character and then place the controller with the character in some prefab. which i most likely could generaste too

    would it work

    or do i need to have things specific to that animation, like different length, start / end frame, who knows what else found out in plugged in to your base.asset that sage does its magic in.

    this could end up being not that hard.

    so any thoughts as to what you store in those asset files sage generates. any documentation of the layout and where you get the data for it from the animations... perhaps layout of animations... i guess you dont directly do the files unity does you use the apis. still you may know what is in that sage generated asset file...
     
    Last edited: Oct 24, 2013
  2. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    hey i did very simple test and it looks like im good

    all i have to do is change the name of the animations inside and attach the SoldierSL_Game.cs to the prefab and set it up to use SoldierSL.asset and my model like your and it appears to work

    so when have lots of models i need to create a soldiersl.asset for them with its own name. could even leave the name just put it in the folder with the model and setup a prefab for it tweak the animations names in that one to match and it works

    so i could just do the generator i talked about for each model in like some directory tree tweak the names in its old lets call it animation.asset and have the ccomponents setup properly in the prefab and it should work.

    but its like 4:30 am est and im heading to bed that is like test for another day.

    still i just have to make 1 controller and do very dumb generator and simple replace template %idle_animation% and some config file that it would replace the %idle_animation% in the template to the correct name and put some file and setup some prefab per model.

    my explanation is a bit rattly but i think you can understand its relatively easy

    i dont have all that many animations for the npc its like idle, die, hit, attack, forward, back, left, right, jump so the state machine should be almost the sample one minus some

    too bad that all the code is not fully generated and it uses dlls. cause i dont see it being that hard to have coded. its just i avoid coding if i could use gui tool to do it

    same like with windows forms i could do it in code, but i use gui. gotten lazy from my ed days, things really went downhill when i switch from line ediitor to to vi gui, gui man they will destroy your life, make you lazy and flabby, numb your brain ;)
     
  3. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    hi im almost done with my controller but im having bigtime problem with jump

    i looked at the jump that comes with it and i cannot use it so i made small change

    jump for me is 2 parts

    1st part is animation that looks like character is taking off and going into the air
    2nd part is another animation that looks like character is falling and landing on the ground

    so i have replaced yours with mine

    well here is the issue in the one that comes i noticed the move is 2 in the z

    but that dont work for me cause the animations dont move into the air

    so i defined it as

    like this



    the issue is the character jumps into the air and comes down

    but y is always a incremented slightly

    ive tried changing in/out/even y amounts but never fully works

    so if in/out all 0 it still happens. i also tried other combinations of in/out on both

    the thing is they have to land at same y as they started

    i even removed movement forward so it was direct jump up and down

    i saw it go to 1 up
    and then i would see it come down to .1

    even if i increased the down it never fully worked out

    so is there a way to guarantee that it will always move x/y/z amount exactly and not a little more/less

    please advice. i mean this is like really big issue for me.
     
  4. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Sorry for another big delay in reply, it's been a crazy few days at my day job!

    Looks like you have most things sorted out though, awesome! You shouldn't need to worry about the guids, those are used for linking the various parts of the graph together. You got it right with just changing the names. You may have some blending issues when swapping out animations, but in general, it should work just fine.

    As for the jump though, you may be misunderstanding how the move on the animation nodes work. It is actually defining the rate per second to move when playing the animation, not the distance. So, unless the animations both play for exactly the same amount of time, the positions won't line up. You could handle the jump height using the update callback functions on your custom game controller for the jump and land states. In each, you could translate a set amount up and down.

    Let me know if that helps.
     
  5. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    hi thanks for help :)

    yes basic working controller is almost done. just jump being a problem. which is good thing. then i need to like do code / mappings and generate for all characters.

    ok

    so do you mean do jump not using sage but using code adapted from like 3rd Person Controller that I can import from Character Controller

    sort of my own ApplyJumping() and ApplyGravity() in ThirdPersonController.js

    but tweaked into Update() in my own SolderInputHandlerCSharp.cs

    still calling controller.Transition_MainSM_JumpState() to do the animation

    but my own code in Update() from n ApplyJumping() and ApplyGravity() in ThirdPersonController.js to do the movement?

    or do my own code in Update() from ApplyJumping() and ApplyGravity() my own SoldierSL_GameController.cs

    i think that latter is what you are telling me.

    i guess i would have to see which is the state in my Update() to know which way to go up or down.

    perhaps in the future you could add fixed move/rotate to animations regardless of length of animation and time...

    that way all bases are covered.
     
  6. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    I mean that in your MYLIBRARYNAME_GameController.cs, you override the following functions...

    Code (csharp):
    1.  
    2. protected override void On_MainSM_JumpState_Entered()
    3. {
    4. }
    5.  
    6. protected override void On_MainSM_JumpState_Updated(float deltaTime)
    7. {
    8. }
    9.  
    10. protected override void On_MainSM_JumpState_Exited()
    11. {
    12. }
    13.  
    14. protected override void On_MainSM_LandState_Entered()
    15. {
    16. }
    17.  
    18. protected override void On_MainSM_LandState_Updated(float deltaTime)
    19. {
    20. }
    21.  
    22. protected override void On_MainSM_LandState_Exited()
    23. {
    24. }
    25.  
    In those functions, which Sage will call into as the Jump and Land states get entered/updated/exited, you'd put your jump logic. :)

    Also, those function names might be slightly different on your end, based on what you name things.
     
  7. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    o nice

    i could do like translate in update

    and in jump/land state exit i could like make sure its at correctly where it should be

    anyways i dont think it will be too hard. i guess you thought of everything for us ;)

    thanks for the help and have a great weekend :)
     
  8. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    No problem, happy to help! Let me know if you have any other questions.
     
  9. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    oh forgot

    why dont you create a new asset that is based on this asset but is more of a general state machine

    i mean you almost have it. just sort of remove animation specific stuff...

    or take one of open source / public domain ones that dont have user interface and put your user interface in front of it
     
  10. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    I actually started working on doing just that a while back. After doing it a bit though, I decided it wasn't worth my time, since there are so many other great visual scripting tools that can do state machines pretty well. I've got another i'm working on though. :)
     
  11. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    im still having issues with jump

    no matter what ive tried i cannot get it to always go back to 0. i even changed it so it used a single animation or 2 animations of exact same length

    also if you look at the standard 3rd person controller you will see they are actually tweaking the animation clip to do the jump. but i have not found a way to get access to the animation in the state.

    so it would require a way to get the animation clip so that i could tweak it or it would require a way to tweak the current animation clip, bit ive not found any public method for this.

    perhaps in the future you will make public such methods that are not perhaps internal.

    and now i noticed an issue with moving foward and sideways that exists in the sage example

    basically if you are moving forward and then switch to moving back you notice that briefly you move right

    and if you are moving left and then switch to moving right you notice that briefly you move forward

    the issue is not in GetDirectionFromAxis() which i checked the inputs and the output

    the issue is with the state machine variable Direction and how the Direction node works given the direction

    it sort of rotates the value around and intermittently fires off the wrong directing as it is rotating the value of the angle
     
    Last edited: Oct 26, 2013
  12. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    The animation state is really just the internal Unity AnimationState object, that's what Sage manipulates. Also, the move feature on the animation node is definately not the most robust, and is mostly intended as a helper for simple applications of movement. In most cases, I'd actually recommend using root motion to handle animation translating a game object. Unfortunately, this isn't something that Sage includes support for, but you could run another solution for it along-side of Sage.

    As for the jump, I'm not sure there is much else I can help you with...without actually working on exactly how you need jump to work in your project. Using those functions (assuming you don't use root motion), is actually how i'd handle jump. Only other thing I can think of is to make sure you disable vertical motion in your animation nodes for the jump states. Also, you could force the position back to the ground whenever you exit the land state.

    Sorry I can't be of more help. :-( Let me know if you have any other questions at all.
     
  13. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    ?

    hi again,

    but in the example that comes with sage

    why it it when i move left and then right or right and then lift it inserts a brief forward

    this is not unity doing, its sage doing

    also when i move forward and then backwards or backwards and then forwards it inserts a brief move right

    again this is not unity doing, its sage doing

    so there is something in the way you coded direction node that is ignoring my the inputs which appear to be correct and sort of rotating through the values from a tick at a time

    even if i replace the direction node with conditional nodes that just call the animation when a certain value is equal to some constants the animations that the state machine will not always be the one expected.

    so its appears to be some issue with the state machine going to the wrong state...

    here take a look at this image, why it it if the first key that i hit after play is right arrow it goes forward and if i hit left arrow it goes left. appears to be issues with the state machine...



    now i have a very good clue why it intermittently happens. its because default value for direction is 0 until i hit the key. and 0 is also forward, but it shouldnt be doing it because it should be using the direction variable that is being checked by condition and then following to the correct animation

    but its not its using whatever base state its defaults to

    but this only happens with right key not with left key...

    so the state machine is setup correctly for left key, but not fully for right key...

    i guess you are using some tree structure and some variables to hold the state of things

    and for right key when it transversion your tree it works out but not for left key

    and again this is only the very first key i press

    and this using shipped sample, i modified it cause i wanted to see why you intermittenly go to wrong animation and it looks like from above test which hardcodes it cause its not always transfersing the tree properly, perhaps tree not setup properly. or it lossing where it is. i dont have the source code or there is not debug that i know of that dumps it as it transverse or the tree. or ltets me look at internal variables.

    i would be able to do more in visual studio, but unity limited what you can do in mono... i guess they didnt want users to snoop that their stuff and the stuff in dlls.

    still if you can run unit tests on your state machine to ensure it always flows correctly...

    so when someone runs the demo that ships and they press forward and then back it should not be briefly going right and when they press right and then left it should not be briefly going forward. i dont see the logic of the state machine so do those thing


    and with regards to jump i understand, it may not be doable with the current functionality available state machine. forcing the value at end didnt work. it still ended up at wrong place to my surprise. you can try the same thing with the sample scene and trying to have jump happen over 2 animations, even of equal length one that moves up and ones that moves down in y. it will never equal. ok perhaps unity, but still even if you override with code it still doesnt quit work. the thing is to do it in code and then it does work. its more how sage doing animations. look at the 3rd party controller and see how they doing animations and you will see some difference i think cause it works there. and isnt sage supposed to be basically just and indirect way of doing that.

    anyways i think it would help if you would make public some of the methods that are not private/protected/internal. such as being able to give a node name and get the node and determine what type of node and get to the internal elements. if you want do do things like real jump. where it goes up and then comes down you will need to have such access. right now the jump that is in sample is not real jump. its an illusion of jump, y never changes. so character in theory cant jump over things. since his collider never moved up and then back down. its more of an animation trick.


    best regards
     
    Last edited: Oct 27, 2013
  14. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    The way you are mentioning that it goes through the forward animation when going left to right is actually intentional. In order to make sure everything blends, I actually don't allow the direction variable to change instantly. So even if you change your direction, it actually rotates towards that direction, it's not instant. This is completely intentional because I didn't want the animations popping.

    The SoldierSL library that ships with Sage is only meant to be an example of how to use Sage, and most people will need to make their own setup for how they want things to work. In general, among other reasons, I don't expose alot of the base framework files in order to reduce potential issues. I've worked hard to make the interface exposed flexible and extendable where it makes sense. And for those who absolutely need source code access, we actually sell source code licenses through our website.

    So, in order to by pass the rotation thing you are seeing, you'd need to go into the Direction variable, and disable the "Limit Change" option.
     
  15. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    ok

    another way would have been to have animation for in between while turning from walk left to walk right there could be have played turn from left to middle and turn from middle to right

    but direction node that not have like place to hook up those

    perhaps the thing to do is add more places to direction node

    also for jump as is u cant really jump over anything physical. and you really cant handle jump broken into 2 parts and up and and a down

    re: api

    its ok to have easy api, but that should not mean that other api you dont have

    also part of thing is callbacks dont have access to the stuff they need

    so i have start/update/exit callback for animation but i dont have access to the animation being started/updated/exit

    so perhaps give way to gain access like api that you can call with name of state and it returns the state node and then api to gain access to the part of the node like the animation and other settings

    or pass it in to the call back

    so each call back should have like who is source and arg details like key press and which key else having key press is like very limited in use...

    sort of like form loaded and pas in the form that got loaded else who knows what form got loaded if its method used by many

    still i know the state, but i cant get access to it and like animations

    if i could i could do the jump i would think since the code is in 3rd party controller

    and direction node should have more of an case node api while and you pick like from list of case and you bind which will happen

    i think that is missing. condiition hase like true but no false i guess you can try a lot of condition but then they still not work since on initial state it does not always call the correct case. so there is like issue with condition node. check out my above image i replaced in sample scene the direction with it to forst it to go to animation not i wanted and still it didnot always go it ignored completely the value of direction variable initially and went to foward which is direction value 0 even though the direction value was not set to 0! it was set to 90. so why is it playing animation node for condition where direction variable value = 0 when it should be playing the animation node for condition where direction variable value = 0.

    that certainly is a bug

    what i would do is go through the source code and unless it must be private/protected/internal. then change to public. for both types, constructors, methods, properties. that will allow people to work around limits.

    also i would have more ui elements like a case (switch) look at unreal script. where you can keep adding one more option and put condition on that open and where it goes and then add where to go if false

    and i would fix direction node to have more animations like turn left, turn right, ect that will be needed to avoid popup without going to like turn forward or turn right. doing it right is better than doing it kudged

    and i would make way for animation to be able to move x/y/z and/or rotate x/y/z a set amount regardless of length and ensure it happens

    also way to detect collision. so need a node for that. or a callback while doing animation and moving / rotating

    also have way to display more debug info and perhaps step through it while playing the game in editor. not hard to do just have some toggle and callback where they have to like press step button or continue button
    sort of break point

    also have a way to dump the state machine states/tree so it can be verified, else people will have to do lot so blind testing and not easy way to know did i cover all the paths

    im sure i can come up with more. im just thinking of what would it take to pull of the standard 3rd person controller and have it run like the standard 3rd person controller using sage.

    also things like condition should be in blend node basically so you can have more control. and not be forced to use direction or allow a switch in blend where you can specify animations for all the possible things that way it works nicely, well if you have the animations, if you dont you can either have toggle to popup or use alternative animation. sort of what you have. but then its like move forward/right when you dont want to. well unless you run the animation in place, the problem is you are not u are running the animation and also doing the x/y/z translation/rotation settings. perhaps if you fill in why not just do the animation but not the translation/rotation/ that actually would have been more real looking...

    anyways im just trying to say the thing may need a little bit more work/refinement. right now i cant pull off even standard 3rd person controller

    part of it is because its sealed in undocumented dll , other its because of bugs and others its because of just limited/missing/hardcoded functionality that may not be appropriate.

    i would think that people getting sage would want to at least get the standard controller going.

    so it would be nice to over time work to resolve these things

    i mean adding else to condition is not that hard

    adding switch/case well that is like built on condition and maybe little harder

    and things like adding more animations to direction is not a problem

    and things like not doing translation/rotate on fill in animation so no popup that is very easy...

    and opening apis is not that hard. almost search and replace. but i guess you will have to go through all the giant mound of code. im not saying document. that would even take longer

    then there is no need for anyone to get to source code to then go through tons of code they didnt write to get it to work / work the way they want /need it

    i think the above will add great value to the asset. the ui is very nice. so its a matter on building on nice ai. the documentation is very nice. its just a matter of building on apis like having callbacks have access to more stuff important to that call back and such

    anyways i would really hope that you are not disappointed / upset, but take this as something to do over the months to come.

    think of it when someone could drag and drop 3rd party controller and more. when they can do jump what could go up and down in y. and such.

    also there is some cleaning up of the code so it will perform better. move some stuff to awake/start so it dont have to do it over and over. also move some stuff to generator so it does not have to be interpreted. all this will make it lighter footprint, smaller performance hit.

    plus adding all the apis will allow more difficult things to be done in ui / callbacks and come closer to unity mecanim.

    and expanding ui node elements will allow more to be done in ui and not need to be coded.

    all this would add value and utility to the asset.
     
  16. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    First off, this is what I was talking about when i meant the Direction variable. This is what controls the input for the directional blend.

    $Capture.PNG

    I setup an example locally just like yours that works just fine. There was only two issues I ran into. First was my Sage variables were set to Limit Change, so I disabled that. Second, the Unity inputs in the InputManager were not changing their values instantly. I changed it to do so. So, it then worked just as expected, as long as I was only pressing cardinal directions. The way you have it setup there wouldn't really work that well though, since it doesn't cover all angle ranges, only the cardinal directions. The only thing to keep in mind with a state machine though, is that there always has to be SOME state active. So, if it can't find a valid one, it will grab one. Also, are you using the visual debugging feature? (press the red "Start" button on the UI to enter it)

    I do appreciate your feedback on how to improve Sage. Sage was never really meant to be a character controller system. It was specifically meant to fill a gap (at the time) where Unity had no visual animation tool. Sage was designed and is focused on making it easier to manipulate animation state without having to worry about the code side of the animation component at all. As such, it does not do everything a standard character controller does.

    I'm just not at a point where I can make huge changes to it any longer. I've been working on it off and on for over two years now, and it has improved significantly. (full change log here: http://alteredr.prophpbb.com/topic5.html) At this point though, it is no longer in active development. However, I am still fully supporting it in it's current state and fixing anything identified as a bug.

    I'm sorry, but I'm not seeing any of the issues you are having as bugs. (at least I see no bugs when I try the same setup you have) I'm not sure what the problem is you are having with your jump behavior, but that doesn't seem to be a bug with Sage. Sage only manipulates the Animation components for the most part. The "Move" feature on the animation nodes, as mentioned, is meant to be a helper to move the character overtime when playing that animation state. How it moves them is actually open for customization in case you want to move them through some other mechanism. Look at the top of page 13 in this thread for an example of how to do so. You can actually also use this to actually move the character capsule based on the animation node movement. Sage will accumulate all movement and rotation and pass it into the ApplyMovement handler. If you return true, Sage will not try to apply movement itself. Hopefully that can help you with how you want to move your characters around. (the mentioned example actually has to do with applying gravity with movement, so that might actually be very helpful to you)

    I'd also recommend poking through our forums (linked above) to see if there is other useful info there for you. Let me know if you have any other questions.
     
    Last edited: Oct 27, 2013
  17. im

    im

    Joined:
    Jan 17, 2013
    Posts:
    1,408
    im familiar with the direction variable, but its value is being ignored and animations that should not be played that not not correspond at all to the value are being played.

    i think you have detailed why, but it still does not mean that is correct.

    and i looked at pg 13 but the api does not pass in the animation clip, so it cant be used and there is no api to get the clip so you cant do 2 step animations like jump where y is changed and end up at correct location. and forcing y to some value at end is not working cause right after i get called someone else is getting called that changes it back to where it thinks it should be which is wrong. the closest is to not use animation to specify y and do it in code, but then you get popup since you cant sync with animation since you dont have access to the animation clip cause callback dont pass it in or the node is not passed in and there is no api to grab it based on state or current node.

    could you expand the public api so i can pass in the name and get the node
    and then once i have a code expand the public api so i can get the settings inside a node

    the image is just a test i did to see if i could see why direction node was firing off other states, not as a working controller

    even that test fails because if on initial state where character is idle and you press right key then it goes forward and if you look at direction variable value at the time its going forward its 90 which is for right!

    so the conditions are totally being ignored and forward is being called.

    i suspect because intitally internally the wrong location on state tree is being reference and its not using the direction variable.

    i mean it prints out direction as being 90 so i see no reason for it to be playing forward animation since that is not hooked up at all to condition node which references forward animation

    and yes i consider it a bug. its not how state machines should work. also ui should represent what is going on internally. not have hidden functionality to get around issues

    also. it should not be too hard to change direction node to add turn right and turn left. then you dont have to have messy workaround or popups.

    ok so your saying you are no longer developing the thing only like providing support here.

    well that really is disappointing, sucks, cause with just a little bit more work. like above it would really be something that could do movement and jumps and more.

    perhaps not now, immediately, but over time you could do the work. a little at a time.

    i would think the most important thing is to add turn left and right to direction and stop it from going forward/right when it should not be going like when one changes direction.

    then i would think fixing issue where wrong animation is called regardless of the condition before it cause of issues where internal state does not equal external state, state we see. i mean there has to be bug if i press right initially and it goes forward and the direction variable says 90 and its doing evaluation the condition node where it tests direction for equality to 0 as true and doing that animation, forward and evaluating the condition node where it tests direction for equality to 90 as false and not doing that animation.

    then i would think add false to condition

    then add like switch case node where you can keep adding values and associated output

    then expanding the api to passin reference to node and expanding the api to allow getting node from name and allow getting access to the properties and perhaps being able to trigger a node.

    i would think you can easily do one a month since each is relatively contained.

    the only one that may take a little more is the api stuff cause you would have to also document the exhanced api.
     
    Last edited: Oct 27, 2013
  18. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    It's a bit late, but I released wanted to post a notice we released a new Sage version late last month:

    Version 1.6.10 -- 10/28/2013

    - Added SageBaseController, which contains all SageController functionality. Also added SageController.cs, which allows you to remove the OnGUI() call to display the runtime info if needed.
    - Removed any per-frame references to GetComponent<> functions.
     
  19. Whippets

    Whippets

    Joined:
    Feb 28, 2013
    Posts:
    1,775
    New to Sage, and having a problem with the first step - Selecting the Template Animation. I've tried dragging animations, or my UMA avatar there - nothing seems to be accepted. What am I doing wrong?
     
  20. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    Sage is looking for an Animation component in your prefab that it will use to drive the Sage library. Does the prefab you are trying to drag onto it have an Animation component in it's hierarchy?
     
  21. jazzcake

    jazzcake

    Joined:
    Nov 21, 2012
    Posts:
    8
    Hello Sage,

    New to Sage tool, it looks great tool.

    I'm using Free versio and I made Sage library and test it with Sage debug tool. It worked perfectly. But in a game, when I trigger event like gameObject.SendMessage("Trigger", "StartHit"); Error message is shown like this: 'Trying to call ... on a Sage Controller with no library!'.

    The gameObject sure has GameController along the same way in your tutorial.

    How can I solve it? What am I doing wrong?
    Thanks ahead.

    @ and I found below before trigging something.

    $sage.JPG
     
    Last edited: Feb 11, 2014
  22. jazzcake

    jazzcake

    Joined:
    Nov 21, 2012
    Posts:
    8
    I just solve it. Just remake whole things. I don't know why. :(
     
  23. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    It seems like some prefab must have gotten out of whack. I'm glad you got it working though! Let me know if you need anything else.
     
  24. EvilDingo

    EvilDingo

    Joined:
    May 7, 2011
    Posts:
    190
    Sage.DLL fails Windows Store's WACK test with this error:

    Supported APIs

    Error Found: The supported APIs test detected the following errors:
    API System.Resources.ResourceManager.GetObject(System.String,System.Globalization.CultureInfo) in MSCORLIB, PUBLICKEYTOKEN=B77A5C561934E089 is not supported for this application type. Sage.dll calls this API.
    Impact if not fixed: Using an API that is not part of the Windows SDK for Windows Store apps violates the Windows Store certification requirements.

    Do you really need to get the CultureInfo for Sage? I think this could be an easy fix.
     
  25. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    We don't directly call out CultureInfo, however we do use some string compares using the current culture, so that could be doing it. Is this a problem only because it's in the DLL? If so, or if you need to adjust how this is handled in the code, we do sell a full source code license for Sage for any advanced users who needs to modify the code. It can be found on our website at www.alteredr.com.
     
  26. EvilDingo

    EvilDingo

    Joined:
    May 7, 2011
    Posts:
    190
    I can see the value in purchasing the source code if I wanted to extend Sage, however, Sage works fine as it is and I don't see how I can add anything of value that you haven't already. I'd rather not have to make another purchase to enable Sage to work on the Windows Store when it most likely is a simple change and it already works on all other platforms.
     
  27. Sigina

    Sigina

    Joined:
    Dec 6, 2012
    Posts:
    3
    Hi, i am one of the happy user for sage : Anim Graph editor.

    Currently my graph is working fine except with one error message that annoyed me. Although everything is working fine though.

    [Sage] Anim State "Static" is already active! This could indicate that an animation is being used multiple times simultaneously, which will produce undesired results.
    UnityEngine.Debug:LogError(Object)
    SageInternal.SageAnimationClipNodeSlot:EnableAnimState()
    SageInternal.SageAnimationClipNodeSlot:OnGraphStatusChanged(SageStatus, SageStatus)


    May i know how can i get rid of this error?
    Seems like there is no documentation like to solve common issues.
    Maybe it is better to have one.

    Thank You.
     
  28. ZJP

    ZJP

    Joined:
    Jan 22, 2010
    Posts:
    2,649
    So, any news?
     
  29. ZJP

    ZJP

    Joined:
    Jan 22, 2010
    Posts:
    2,649
    ? Have you tried SA.G.E on U5?
     
  30. AlteredReality

    AlteredReality

    Joined:
    Aug 15, 2011
    Posts:
    397
    I have not tried Sage on Unity 5. And there is really no news on Sage, I am not currently working on it any longer, and have just been supporting as needed.
     
  31. robot-ink

    robot-ink

    Joined:
    Jul 1, 2011
    Posts:
    18
    Just wanted to say the latest version of SAGE works great on Unity 5. I would highly recommend it as I find the workflow, ease-of-use, and flexibility to be far better than Mecanim