JOIN THE DOTS - EASY ANIMATOR CONTROLLER
jointhedotsmapgenerator
$39.00
(no ratings)
Date |
Price |
---|---|
Date |
Price($) |
09/09(2024) |
39.0 |
09/09(2024) |
19.5 |
09/23(2024) |
39.0 |
11/23(2024) |
39.0 |
Jump AssetStore
"EAC” PROVIDES AN EFFECTIVE SOLUTION TO THE PROBLEMS THAT MAKE "MECANIM" AN IMPROVABLE SOLUTION, MAXIMIZING ITS POTENTIAL IN ASPECTS SUCH AS MAINTAINABILITY, SCALABILITY, RELIABILITY AND AUTOMATION."EASY ANIMATOR CONTROLLER" allows, in a first stage, to automate the process of renaming the set of "AnimationClips" you want to use in your "GameObjects", so that the new names encode all the essential information that the system now recognizes and stores in data structures. In a second stage, taking advantage of this information, automate the creation of an "AnimatorController" from scratch, with as many states as "AnimationClips" renamed in the first stage, transitions and appropriate parameters. In this second stage new data structures are also created to store all the essential information of these states, transitions and parameters making available to our scripts, the necessary information to choose the animation we are looking for at any time through an "interface" composed of simple auxiliary methods.All this automation is preset through parameters exposed in a single "scriptable object" (type "AnimationsSO"), greatly facilitating the saving of the configuration "assets" and avoiding, to a large extent, touching parts of "EASY ANIMATOR CONTROLLER" that may break its functionality.It takes little time in the world of game development to realize that one of the "elephants in the room" is the animation of your GameObjects. The system provided by Unity is called "MECANIM" and everyone who has dealt with it, has either spent a lot of time to achieve a reasonable result, or has directly thrown in the towel."MECANIM" is complicated mainly for two reasons:"MECANIM" requires a lot of setup time in the editor to set states, associate "AnimationClips", create transitions, create parameters and link them to scripts.The functionality of "MECANIM" is seriously hampered by exposing essential methods to control the flow of animations whose argument is the literal value of a string. By using literal values directly in our code, we sacrifice readability, scalability and maintainability and expose ourselves to potential bugs.- animator.PlayClip(string hopeThisNameExists)- animator.SetBool(string hopeThisNameExists)- animator.SetTrigger(string hopeThisNameExists)- animator.SetFloat(string hopeThisNameExists)Starting with the second problem, it would be unfair to say that "MECANIM" forces me to base my animation system on the intensive use of "magic strings", a common practice, but not recommended in programming. And it would not be fair because there are alternatives, but the truth is that since no alternative is proposed to us, this is the way most developers work with "MECANIM".When artists create animations and give them a name, there are some that use more intuitive nomenclatures and others that are more chaotic or messy, but in all those names lies a great potential if we analyze them and decipher the keywords they use in the names they apply since the purpose of all of them is to describe what each animation in question does. This potential is the beginning of the solution to the aforementioned problem of the intensive use of "magic strings" at the heart of "MECANIM"."EASY ANIMATOR CONTROLLER" automates the process of renaming the animations we want to use in our projects by allowing us to replace "magic strings" with new strings already encoded (they encode the essential information needed to categorize the animations and be able to choose the right one at any time) and stored in data structures within our scripts, improving the quality of our code. The potential of "MECANIM" after this paradigm shift is huge in aspects such as adaptability, maintainability, scalability, clarity, reliability and automation potential.The information encoded in the new animation names includes three “Information Levels”:Basic information level. It represents the “Main Category”. Every “AnimationClip” must belong to one and only one main category of type MOVE, RUN, IDLE, ATTACK, CROUCH, etc.Additional information level of type “Directional Input” (UP, DOWN, RIGHT, LEFT). If it exists, it is added to the basic information (EX. MOVE_RIGHT, MOVE_UP), if it does not fit into any category, it is coded as “NODIR”.Additional information level of type “Position State” (IN-AIR, CROUCHING, DASHING, SWIMMING, CLIMBING, etc). It is added to the basic information + additional information of type “Directional Input” (EX. MOVE_RIGHT_SWIMMING, MOVE_SIDE_CROUCHING), if it does not fit in any category, it is coded as “NOPOS”.After giving a solution to the second problem, we have laid the groundwork to solve the first problem that we defined as "requiring a lot of setup time in the editor to set states, associate AnimationClips, create transitions, create parameters and link them to scripts. With all the information that our scripts now have, stored in data structures, we can create new "AnimatorControllers" in an automated way based on preset parameters in "AnimationsSO" type configuration "assets" so the amount of time consumed when creating "AnimatorControllers" is reduced to the time needed to press a button."MECANIM is the default system provided by Unity, it is true that it is in some aspects a kind of "black box" that makes it difficult to debug in situations of failure or unexpected result, but it is a functional "finite state machine" with a multitude of configurable parameters in the editor (safe trial and error) to achieve a very high level of detail in the calibration of the animations, very difficult to achieve by giving up the system."Unity Mecanim Animator Controller" has, in our opinion, more lights than shadows and therefore, we are not in favor of giving it up because, although the two main problems are really important and weigh down the system, they have a solution and once solved, the potential of the system is maximized to give a solid, scalable and fast response to the animation needs of developers.We will show and explain in video tutorials, the process of implementing the system in individual projects using different packs of models and animations created by different artists. Only by seeing it in action, you can understand how much time can be saved with “EASY ANIMATOR CONTROLLER”.https://www.jointhedotsmapgenerator.com/easy-animator-controller· The user interface is so simple that it becomes an essential tool for designers and artists, as well as for programmers.· The UI is proposed through parameters exposed in a single "scriptable object", an approach that greatly facilitates the saving of the "configuration assets" (type "AnimationsSO") generated, avoiding to a great extent that parts of the system are touched that could break its functionality.· It automates the change of the names of the "AnimationClips" that we want to use to pass from the strings chosen by the artists to new strings that include all the necessary information to categorize them, and store them in data structures at the disposal of your "scripts".· With a well-designed "AnimationSO" to get all the relevant information in the original "AnimationClips" assets, you can rename hundreds of animation clips within minutes in the editor at the push of a button.· Create new AnimatorControllers automatically from scratch with the states, transitions and parameters preset in the configuration asset used, at the click of a button.· You never have to call methods like "Animator.PlayClip("string name")" or "Animator.setBool("string name")" directly again. This means no more error-prone and hard-to-debug "magic strings".· The editor workflow for renaming clips, adding the "CNBanimLinker" component and initializing it, is independent of the runtime workflow for calling the desired animation at the desired time.· The runtime workflow code is encapsulated depending very little on external information from the controller or player input system being used to function correctly. This encapsulated roadmap makes it really easy to use the "CNBInputAdapter" which you can adapt to your needs once you understand the ways to use the new information available to create helper methods that fit your needs.· The product we have developed adapts to all scenarios, since it is a matter of creating from scratch new "AnimatorControllers" according to the configuration stored in an "AnimationsSO scriptable object asset" and creating the data structures to store all the information necessary for the exposed helper methods to provide us with the right animation at the right time.· "EASY ANIMATOR CONTROLLER" allows us to reach, with minimum effort and time, an advanced starting point in the animation of our "GameObjects", taking advantage of the virtues of "MECANIM" and giving an effective solution to its main problems.· Easy to use UI. No programming required.· All source code is included.· "EASY ANIMATOR CONTROLLER" is lightweight and optimized for performance.· The package works with all processing pipelines (embedded, URP, SRP, HDRP, custom RP). It is not a graphics package.