"creation and development of a character's image." Skeletal animation in games

Subscribe
Join the “koon.ru” community!
In contact with:

Typically used in 2D games. For example, if you need to make an animation of a character walking, then several images of the character are drawn in different stages of movement. Then in the game these frames are switched at some time interval. Profit.

This approach implies a fairly large amount of work for the artist. There is no way to screw Motion Capture here. But the artist, naturally, can use photographs of people and animals in different phases of movement as references.

From the technical side, the following requirements are usually imposed (this makes it more convenient to work with frames): images must have a transparent background, there must be the same time interval between frames, animation must be “in place” (character movement is usually carried out programmatically), there must not be the need to shift frames relative to each other.

Further actions vary depending on the game engine and the desire of the programmer’s left heel. But most often, images are collected into an atlas (also called a spritesheet), which consists of a picture with many frames + a description of the coordinates of the frames in this picture (and their names), which can be read by the engine.

In 2D, frame-by-frame animation is practically the only way to make realistic character animation.

And here movement, turn, change of size- these animations are usually done programmatically. I think it’s not difficult to guess that from all sides it is much more profitable to move the character from the code than to draw all his movement indented from the starting point.

But in the same way you can fully animate a character!

2. Skeletal animation in 2d

If you don’t draw it entirely, but make it consist of separate parts (arms, legs, body, etc.), then each part can be moved relative to the other, and the result will be an animated character.

A similar technique was used, for example, in a project that demonstrated the 2D capabilities of the Unity3d engine when they first appeared in it. The character is made up of separate parts that move relative to each other using various engine animation tools. When running in the latest versions of Unity, you may need to modify the project with a file.

Skeletal animation is a development of this idea. The character is still divided into parts. Only now these parts are tied to the bones of a certain skeleton and move with them. How this works can be seen very clearly in the Spine promo video (just in case, I warn you that Spine is a paid system).

However, applying Motion Capture to characters created in this way will be nothing more than a waste of money. It’s still not possible to achieve 100% Realism (because it’s 2D), but the average 2D artist/animator will do everything faster, cheaper and better.

But, in fact, the difference from animating individual parts of the body “manually” is only in a more convenient tool for creating animations.

But the differences from frame-by-frame animation are significant. The advantages of skeletal 2D animation are a much smaller volume of textures (on a PC this almost doesn’t matter, but on mobile platforms it’s even more important), a much smaller amount of artist work (you need to draw not 100500 frames of one character, but only a few parts body) and the ability to transfer animations between characters with the same skeleton. The downside is less realism.

3. Skeletal animation in 3d

In 3d everything is a little different. The character is a three-dimensional model that cannot be divided into parts (but can be divided if necessary). When animating a skeleton, the model mesh is deformed. In order to understand, see and feel how all this is created and works, I can recommend (in English) how to create a character in Blender and import it into Unity.

For characters with the same skeleton, the animation here can also be common. In the same Unity, for example, there is Mecanim Humanoid Rig. As a result, you can buy/make/download ready-made animations for free and apply it to any humanoid characters (naturally, both characters and animations must be created and configured in a certain way).

Animations can be created either by a modeler or by an individual animator, including using Motion Capture. Actually, after receiving mocap data from a real person (this process, I think, should be clear), they are finalized with a file and turned into ordinary animations. The plus, of course, is obvious - the animations become more realistic. The problems here are that realism is not always good, and that the animator himself can often do it better, faster and cheaper by hand.

In addition to the above, it is worth mentioning Ragdoll. The bottom line is that instead of animation, physics is applied to the bones of the skeleton, as a result of which the character can fall, die, etc. more “realistically” (from the point of view of physics). Ragdoll, by the way, also happens in 2d, but this is rare.

And in connection with a related question, I’ll draw your attention to IK (Inverse Kinematics) - it is very likely that it was used in these games. But, in general, this is just my guess; I didn’t hold a candle to the development of these games.

WHAT TO DO?

What to do if you are not an artist, or an animator, or a modeler, etc.

  1. Find an artist/modeler for free (then go to gamedev.ru).
  2. Find an artist/modeler for money (on freelance exchanges).
  3. Find the work of a modeler artist for free (start with opengameart.org, and also look at stores and forums of popular game engines - there are a lot of free sprites and models there).
  4. Find the results of an artist/modeler’s work for money (in stores of popular engines, or simply in online stores of textures and 3D models, but in the latter, be careful - not all models are optimized for games).

Be careful with licenses! Many "free" licenses have requirements that may not be possible for your project to meet! Proprietary - even more so!

  1. Learn and do everything yourself. The arms straighten with great desire and perseverance. Another thing is that professionals in their field will do everything “right now”.
  2. Be creative and simplify the character so that even you can draw animations for it.
  3. Show even more creativity: take a character in 3D (it’s much easier to find one for free than frame-by-frame animations of characters for 2D games), take screenshots of him from the desired angle with the desired animation. Profit.

P.S. As a bonus - Carnegie Mellon University Motion Capture Database. It is the same, converted for Unity: , , . For free.

Creating a three-dimensional character for a logo or commercial is only half the battle. Once your character's appearance is ready, agreed upon and approved, the fun begins - creating 3D animation. This is a labor-intensive and incredibly interesting process that ultimately allows you to “revive” any idea.. For example, teach a character to talk to a client, be sad and happy, think and move, get into adventures and show with his fingers how to use your product.

The work of 3D animators is a colossal effort, allowing them to create not just a moving picture, but also a completely reliable reality around. How 3D animation is created and what miracles can be created skillfully, we will examine in more detail in the article.

To quote Dr. Frankenstein: It's alive!

Animation of three-dimensional objects differs significantly from 2d animation - “flat” cartoons, where volume was achieved using perspective and proper coloring of characters and surroundings. Today, technology allows you to immediately show its shape with lighting and camera movement. In this case, the concept of animation changes:

2d animation- creating the illusion of movement or changing the shape of objects using technical techniques.

3d animation— automatic movement or transformation of objects in space and time.

Simply put, previously it was necessary to draw the movement of each character frame by frame. Now it is enough to create a three-dimensional model of the character, after which it can be moved in space without additional effort and drawings. But it’s simple to say, but in reality, reviving a 3D character model is quite a complex process. To make the figure move, it is not enough to have access to a computer and smart programs. You also need to imagine how the hero can move, what forces influence him (not the higher ones, but, for example, gravity, friction and resistance).

If you want to get something with character, it is important to turn to animators who are aware of all the subtleties and are ready to fanatically work out every detail. Not only the gait, but also facial expressions, the movement of hairs, and the sliding of fabric (if the hero, of course, wears clothes).

To take everything into account at once, you need to be a little bit of a wizard and a little bit of a genius - a quite apt description for the animators at KLONA studio.

How to create something other than a zombie: features of 3D character animation

As the modern wisdom goes: nothing is zombies but zombies. And if your hero is not him, then the character animation should be “live”, or, as they say nowadays, believable. The viewer must believe that the hero really walks, looks, grimaces or smiles, interacts with the environment.

Creating and animating a 3D character is about creating a story that is told not with words on paper (or screen), but with movement. For example, a hero's facial expressions can say a lot about character. But to do this, he must have a face of sufficient “quality” to make the muscles move.

When the question is approached without due diligence or half-heartedly, as a rule, the result is something at least unnatural, and sometimes even frightening.

Therefore, let's take as a starting point and see what can be done with it:

  1. Animate by keyframes;
  2. Animate along a path;
  3. Create animation in a dynamic environment;
  4. Animate using motion capture.

Each of the methods is most easily explained by considering not only the technology, but also examples.

Keyframe animation: from point A to point B

- one of the most common ways to create 3D character animation. The essence of the method is this: several main points are specified on the time scale at which the position or shape of the object changes. The animator sets the necessary parameters of the model in the specified frames, and the program calculates the “intermediate” states automatically.

Example: For simplicity, let's take a rubber ball that hits the ground and bounces up. To display one such “jump”, the process must be divided into three stages: the ball at the top point - the ball on the ground - the ball again at the top point. In a good way, you should set more key frames, take a bunch of little things into account. Like the fact that when dropped, the rubber casing stretches, and when hit, it flattens.

If you correctly deform an object at each fixed point in time, the 3D animation will turn out to be as natural as possible.

3D character models are not always people or animals. Our hero can be any object, for example, a flying camera or a UFO (in general, anything that your imagination allows for). In this case, blinking lights and rotating along an axis will not be enough - it will not be interesting. But to make an object fly along a trajectory, and even “send” the camera to follow its movement, approaching and moving away in time...

And skillful handling of focus (this is what a 3D animation studio should definitely be able to do) will turn a simple twirling of an object in space into an exciting almost blockbuster.

The essence of the method is to:

  • set the starting point (the beginning of the object's path);
  • designate the trajectory (the path taken by the object);
  • indicate the end point (where the model should stop).

After the character/object is “attached” to the trajectory, the program itself calculates and creates the movement. If you add animation of the object itself (flapping wings, opening airlocks, extending the landing gear) and “play” with the camera, you can achieve very interesting effects.

The CLONE studio team knows exactly how to make a simple movement along a laid out route breathtakingly dynamic.

Our hero is not in a vacuum. Any character is surrounded by some kind of reality, in which there is necessarily gravity (if it’s not in space), the movement of air masses and other types of vibrations. All this should be taken into account so that the character animation is quite realistic.

What does the result of such an animation look like and where can it be seen?

In detail. When a character walks through the city and the cape flutters in the wind, or when underwater the hair sticks to the face - all this is achieved through animation taking into account the surrounding factors.

Strictly speaking, animation in a dynamic environment- rather computational work with a deep immersion in the physical characteristics of objects. But without all this, even the most detailed 3D modeling will not make the character more alive.

Motion capture: turning a film into a cartoon

Motion capture technology- young, but very popular. Today motion capture is used in almost all science fiction films. The essence of this method is extremely simple:

  • sensors are attached to the actor;
  • While the actor is moving, the cameras record the positions of the sensors;
  • their displacement is processed by the program and creates a moving “skeleton” with a set of key frames;
  • the resulting package of information is “covered” with a shell - for this, 3D character modeling is used.

As a result, the hero’s actions turn out to be realistic and convincing, and the animators don’t have to struggle with physics and remember where things bend.

Shares tips that will help you create high-quality animation faster and more efficiently.

Anyone can be taught use 3D application for creating animations and manipulating curves, IK or blendshapes. But this does not make him an animator, since real animation consists of many components.

Tip #1: Blocking Key Poses

Focus on important character movements, keeping the "whole animation picture" in mind

When it comes to animation, don't try to work out every character's movement instantly. If you constantly focus on one moment, you won't see the whole picture, creating unnatural-looking animation.

In animation, every movement must be harmonious, so it is very important to see the whole picture, focusing on key poses.

Tip #2: Copy-paste keys

In some cases, for example, when working on walking or running cycles, it does not make sense to separately work on mirror poses. Therefore, you can cheat and, for example, simply copy and paste the keys from your left foot to your right. At the same time, remember that first of all you are doing this to speed up the work process itself.

Tip #3: Use a reliable rig

Good 3D animation depends not only on the talent of the animator, but also on the quality of the rig he uses. A quick basic rig will allow you to create basic animations. Therefore, the rig must be customized to suit your specific, highly specialized needs. Unprofessional rigging will only cause you unnecessary problems. Also, the animator should not be able to edit constraints and other systems, since this will simply “kill” the rig.

The best rig is one that allows the animator to animate without thinking about things that are unnecessary to him. It’s so cool when you just take a character and move him in a scene, key, without thinking about all sorts of technical things, when you don’t have to write to the rigger every 5 minutes, asking why the character’s hand was blown to the floor of the screen.

Tip #4: Make the PTTs Work

Animation isn't just about keys. Only with their help it is quite difficult to control the animation. Also, if you put keys in every frame, the scene will become overloaded, the animation will be very difficult to edit, and the character’s movements will be unnatural.

Before you freak out about unnatural animation, experiment with animation curves and tangents. Each key has a PTT switch that can be adjusted and can also be used to control intermediate frames.

Tip #5: Let the app do the work for you

Even if you're working in the latest, most expensive 3D application, you're still animating in the traditional way. Moving joints and assigning keys is quite a labor-intensive task, so let the program do the work for you.

This is especially true for secondary animation, since dynamics can be used to render a character's hair, clothing, or tail. This will be calculated automatically, allowing you to focus on the key animation.

Tip #6: Use a proxy model to make your viewport easier

When working on key movements, it is better to use a low-pole proxy model instead of a high-pole model.

A high-pole model can hang a viewport because it must deform and move in the scene using a skeleton or other complex deformers. This becomes especially noticeable if you are playing an animation in real time.

When working on key poses and basic movements, hide the high-pole model and animate a lightweight proxy. This can be either a simplified version of the character or a pair of cubes with the desired proportions. This approach will allow you to carefully develop basic movements that you can then apply to the high-pole model.

Tip #7: The 3 Pillars of Good Animation: Preparation, Action and Reaction

Plan your animation based on the 3 phases: preparation, action and reaction

When working with sequences or animation in general, don't forget about the 3 important phases: anticipation, action and reaction. Almost every movement contains some portion of each of these phases.

For example, before you jump, you bend your knees, or move your arm back before throwing something. This is the preparation phase. A jump or throw is an action. The reaction is bending your knees or moving your arms after landing. The same approach applies to facial animation. To achieve a comical effect, you can exaggerate all movements or facial expressions.

Tip #8: See What Happens Through the Character's Eyes

Don't be afraid to record yourself on camera

The best reference for an animator is video. The ability to constantly view it, pause it, or play it in slow motion will allow you to work out the character’s movements in great detail.

And this is not new. Serious animation studios always film the voice actors as they read the text. This video is then passed on to an animator, who will use the actor's behavior and facial expressions to animate the characters.

This approach is not available to all of us, since we do not have the unlimited capabilities of a film studio. However, we can get up from our chair and at least record a video of how we walk or behave. Try to recreate the scene you are working on yourself, no matter how difficult or difficult it seems to you. This will help you deal with blocking faster and create better animations.

Tip #9: Use a mirror

Your best reference is yourself

Once you've finished animating the character's body, move on to his face. It's best to animate the face at the end. This is a very important part of animation. At this stage, you need to create natural facial expressions that will convince the viewer that the character is really experiencing certain emotions.

Buy yourself a small mirror and look at yourself while you work, make a couple of faces at yourself in it. To create high-quality animation, you need good references, and what reference could be better than yourself?

Tip #10: Reuse Animation

An animation library will help you work faster and more efficiently

This advice applies to all areas of the CG industry. It can also be used in animation.

Creating a high-quality walking or running cycle will take more than one or even two hours of work, so having created it once, use it in subsequent projects. Focus on key poses, then work on them in more detail, making them more varied, and thereby making the character unique.

And finally. Remember that the face needs to be animated last

It was mentioned earlier how important it is to work on the character as a whole, by blocking, defining key poses, then refining them. But this only applies to the animation of the characters' bodies, since facial expressions should be done as a last resort.

Anima is the soul that distinguishes the living from the dead. The Aristotelian soul is the principle of movement, manifested in four types: movement, transformation, decrease and increase. Almost two and a half thousand years later, we use the same categories in computer graphics. Skeletal animation determines movement, morphing is used for transformations, and decreasing and increasing is the usual scaling. Animated graphics bring the image to life, breathe soul into the picture, and this, in my opinion, is even more important than a reliable play of light and shadow.

Creating high-quality skeletal 3D animations is perhaps the most difficult task for indie developers today. This is probably why there are so few indie games in 3D, and so many projects in the styles of pixel art or primitivism, as well as adventure games without characters in the frame. But now this ratio may change...

Try to count the number of different animations in Uncharted 4. I estimate there are about an hour of unique movements, not counting facial animation ( 850 expressions according to the authors). Games like this set a fantastic standard for quality.

Uncharted 4 animation examples (>40mb GIF)



While physical rendering and the creation of well-lit static scenes are becoming available to enthusiasts thanks to powerful free game engines and 3D modeling tools, creating good animation requires motion capture equipment and a lot of painstaking work to implement them. One of the most affordable systems is the neuronmocap suit, which costs about $1.5k excluding delivery.

I couldn't find examples of creating animation even close to this level using a manual frame-by-frame approach or any kind of procedural animation. The most that can be done manually, in my opinion, is simple blows, fast movements and stylized cartoon animation. But how do you make realistic walking on stairs, where there are so many details related to the portable center of gravity and body balance? It is impossible to reproduce them all manually. Maybe I'm wrong, and will someone show the work of specialists of this level?..

I remember all this in order to appreciate the generous gift from Mixamo. It literally opens the door to a new level for independent developers: the company Adobe I bought Mixamo, and now they are giving away 2.5 thousand skeletal animations for characters completely free “for unlimited commercial or non commercial use”:
www.mixamo.com

Just half a year ago, you could only get them by shelling out about $36,000 (well, or selling them online). In addition to animations, the company also offers a free version of a character rigging and skinning tool, a tool for creating multiple levels of detail with minimal loss of quality (LOD), a character generator, and a facial animation capture plugin.

Getting high-quality and varied animation clips is only the first part of the task.
The second part is to correctly use the resulting animations when controlling the character. To do this, you first need to decide how to generally move the character in the scene: based on the data of the animation itself (1), or based on some other considerations (for example, rigid-state physics) (2). That is, either the animation will be calculated based on the arbitrary (physical) movement of the object in space (2), or the displacement in space itself will come from the recorded animation, ignoring other interventions (1).

Both approaches have advantages and disadvantages. In the old days, before the widespread use of motion capture, there was almost no question about this - the characters moved procedurally, based on some simple principles, and the animation clips were simply played to somewhat correspond to this movement. But the better the animation and graphics in general became, the more noticeable the discrepancy between the movement of the legs and the displacement of the character, as well as the unnaturalness of the movement dynamics, became.

One striking example would be the game Guild Wars 2, where the motion animation and graphics are already quite good, but the wide range of possible speeds and directions of character movement is not provided with an equally large set of animations, and the characters either skid in place or slip forward as if on ice . The same problem has been plaguing games on the Gamebryo engine for a long time (TES series: Morrowind, Skyrim), and many others.

The real movement of a person is nonlinear - first we lean forward, then we throw out our leg, and only then we begin to move, quickly accelerating after the foot touches the ground, and moving by inertia until the next step. Finding a function that accurately describes such a movement is difficult, and rarely does anyone even think about it. What can we say about more complex movements - strafe, transitions between directions, braking and turns.

Therefore, to achieve realism, we will in any case need a giant set of various clips with movements in different directions, at different speeds, etc... In addition, animation clips can rarely be used in isolation, playing one after another. Most often, the game has a lot of animations, between which there are no special animated transitions. Therefore, to simulate them, smooth blending is used through linear interpolation of bone rotations. To conveniently configure such transitions, the so-called finite machine or State machine. UE and Unity have special tools for this: Persona and Mecanim. Each node there is a certain state of the skeletal model (a prepared animation clip or the result of their mixing - Blend Tree). When certain specified conditions are met, a smooth transition occurs from one state to another, during which both have a time-proportional effect on the rotation of the bones and the displacement of the object. In this way, the illusion of continuity of movement is achieved.

The state may not be a single clip, but a set of clips mixed according to the same principle (Blend Tree / Blend Space). For example, you can select several clips of a character’s sideways movements, mixing them in proportion to the vector of the desired movement, and get movement at any arbitrary angle. However, there are animations for which blending results in incorrect poses. For example, when one animation moves a character's legs forward and another moves them sideways, linear blending can cause the legs to intersect with each other. To avoid this, you need to carefully select animation clips, synchronize their phase, length and speed, or add a separate clip specifically for this type of movement. All this is complex and painstaking work. And the more possible states and transitions between them, the more difficult it is to bring them into agreement with each other, and to ensure that all the necessary transitions are triggered when required.

1) The most obvious solution is to capture the movements of a real actor using Motion Capture and link the displacement of the character in the game to the displacement of the “root bone” in the animation itself - the Root Motion principle. Then the character will move exactly as the actor moved during recording.

Looks very realistic. Moreover, this is the only way to reliably reproduce complex maneuvers such as lunges, dodging and parrying attacks with melee weapons.

But this approach also poses obvious problems.

Let's say a character wants to move towards the edge of a cliff: the actor in the recording bends down, lifts his leg and takes a bold, long step across the stage. And the character steps straight into the abyss... To avoid this, you need to interrupt the step somewhere in the middle, but this not only looks unnatural, but also makes it difficult for the player to choose the right moment due to the non-linearity of the movement, which may require a long preparation (tilt), and then a sharp confident movement (step). You can record several movement options. Let's say: careful small steps, normal, and running. And then mix them according to the required speed parameter, which can be increased linearly and predictably. But what if we need lateral movements? This means that for each step width option we need three or four more options (minus mirror ones). And the character must be able to turn while moving. This means that for each option we need movements with a turn. What if the turn can be fast or slow? So we once again multiply the number of required clips by two. Now we need movement on an inclined surface! And then we want the character to be able to do the same thing while squatting. Total - just hundreds and thousands of animation options that need to be mixed and ensure that this happens correctly and leads to movements at the desired speed. And yet, in many cases, the control will feel “wobbly”, since the inertia of the actor and our inability to foresee all possible human maneuvers will deprive the player of control over the character. This problem, by the way, was experienced by players in The Witcher 3, so in one of the major updates the developers introduced an alternative control option, where the animation responds to controls faster at the expense of realism. In shooters, the problem of non-linearity of movement takes on a particularly pronounced character: the player often has to peek around the corner and quickly go back, and the moment of a sharp change in direction can be very different - the player needs to go back behind cover as soon as possible, and we have no way to predict in advance , what step width he planned and play the corresponding animation. The player, in turn, will have a hard time getting used to the width of his character's stride and the speed of that stride in order to break it in time.

Secondly, Root Motion is not suitable for online games. Non-linear motion not only makes it difficult for the player to predict speed, but also deprives us of the ability to interpolate and extrapolate motion to compensate for network latency, which is a very important and difficult aspect in fast online games. If the character's displacement is specified only by animation, then it is difficult to analytically select the necessary parameters of the state machine (mixing different animations) that will lead to the character moving in exactly the direction we need and at exactly the speed we need (chosen to compensate for the discrepancy). If we do the opposite, so that the animation is oriented towards the actual movement, then when correcting the discrepancy between the server and the client, it will be easy to select the most appropriate animation, and even if it is slightly inconsistent with the actual displacement, almost no one will notice it.

Therefore, the Root Motion technique is often used in third-person single-player games, where control is carried out contextually - depending on the presence of cover, obstacles, movement mode or other circumstances, and is rarely used in network mode and MMOGs.

Among the latest notable projects using Root Motion are: The Witcher 3. It is difficult to overestimate the effort put into the production of all his movements.

An example of The Witcher 3 animation and its shooting



2) Another solution is the opposite of the Root Motion principle - you need to bring the animation into the most exact correspondence with the occurred or planned movement. Then many of the problems described above are solved - the character’s movement can be made uniformly accelerated and predictable with the possibility of changing direction as quickly as desired. But how can non-linear and inertial animation be brought into line with such movement? The developers of the game Paragon described an interesting integrated approach. Its essence is to find and play only the required series of animation frames to achieve the required displacement/rotation, skipping the extra ones. And use inverse kinematics to modify the step width.

The first obvious difficulty in matching animation to movement is that the movement has already happened and the animation has not yet played out. Therefore, a motion prediction system that calculates the character's position for the next frame is very useful. Then, knowing the displacement that the character must make in the next frame, you need to skip as many frames of the animation motion clip as necessary to achieve the required displacement, and play the frame on which the required displacement is achieved. In this case, the animation will play at a modified speed to exactly match the actual displacement, and this speed may be faster or slower than the original, since it is impossible to force a real actor to maintain a constant acceleration or speed. This approach will smooth out the animation and bring it into line with any complex procedural movement model that changes during the game (a character might drink some kind of speed-up potion or be slowed down by an enemy). The downside, of course, is that the animation may become less realistic due to large changes in speed. However, in practice this gives a very good window of available variation in which speed violations are not noticeable. And coupled with step width adjustments using inverse kinematics, it covers an even larger range.

But, unfortunately, this method breaks the usual approach to animation quite a lot, and therefore I could not find an easy way to implement it, for example, using the standard Unity animation component. Unreal Engine also does not yet have the necessary functionality, but the developers promise to someday transfer the low-level developments made for Paragon to the public version of the engine. The main difficulty is finding and reproducing the desired frame based on the actual displacement and rotation data. To do this, the authors propose to pre-process animation clips and generate an additional data block for each of them: Distance Curve, in which the displacement and rotation values ​​of the root bone relative to the beginning or end of the animation will be stored frame-by-frame. Then, during sampling, you can perform a quick binary search for the desired frame, where the appropriate displacement and rotation parameters have been achieved, and reproduce it.

For now, you can limit yourself to the previous approach and make a less precise adjustment of the animation speed to the speed of the planned movement, focusing only on the character’s speed over the last frame. The most important thing is that there is now a good set of souls for experiments!

Tags:

  • unity3d
  • animation
  • state machine
  • gamedev
Add tags

Return

×
Join the “koon.ru” community!
In contact with:
I am already subscribed to the community “koon.ru”