 Hello. Thank you. Thank you. Thank you. So I am Paula Campora. I am a developer in Riga. Here we have Ivan Capiello. He is director and 3D artist. And Lucio, he is a pure coder. And together we do animation. And we've been doing this for a couple of years now. It's more like 10 years. And because of this we rig a lot. Because when you want to move something in animation, you have to rig it. So if you want to start to establish the meaning of rig, which is pronounced rig. And we went very technical on this because in the end that's the best definition I could make. What do we do in production? Why do we rig? Because we do not want to move the models directly. Because the model might change during the course of the production. So we want to model something else. It is a placeholder or maybe it is an interface to the model. Because you move a controller. The controller moves the model. And then you can carry on, finalize the model. You change it, you've got many versions, usually, of one model. So you don't want to touch it. You want to be able to change the model during the production. And usually you have more than just one rig because you have many characters, props, a lot of stuff that is going on in the film. And what you have to expect from a rig, especially if you are talking about one production, is consistency. Because you only want to learn how to use it once. And you want to keep your animations once you update your rig because you don't want to lose your work. And you want to share the animations between similar characters or similar props because you don't want to do more work. Rigging is a two-fold process. I think there must be rigors here. So most of you know already. But when you rig what's going on is that the computer or maybe the technical animator, what he will see is a mesh, so a list of points, and a deformer, so some rules that can move the mesh. Driver's constraints, it's still rules, algorithms, and the math stuff. What the animator sees instead is a character. It's a character with controls. It's something that allows him to work. And why the deformation system is unique? To an animator, there must be, possibly there must be more ways to achieve one result, more systems, more chains, because we want to use, invest kinematics sometimes, or sometimes we want to move the controls directly. But who makes the rig? It's usually down to rigors. The rigors are actually the artists. They have to know how to model at least a bit. They have to know how to deform a model. So what tools do you have that can change the shape of a mesh? And they have to know a bit of math. Not too much. You don't have to be a wizard of math, but you have to know the basics. It's usually the high school math we do. And then we use tools. We use some automatic procedures that helps doing our job, especially when it is serialized, when you have a lot of assets to rig, you want some help from the computer. So the job of a rigor is, somebody says, just putting bones into it. So we build a hierarchy of transformations, the skeleton. And we set up the constraints. It's more rules about how this skeleton should move. We add custom properties because sometimes you need more specific controllers. And we build the controls because this way the animator can access to them. But what does the auto rig do? It is pretty much the same. I would say it is down to the machine sticking over if it is going this way. But the thing is, this is not the truth because the job of a rigor, it is different. It's not about putting bones in a model or in a mesh. It is about planning how this asset would be used. So which kind of interaction would be necessary? This might mean what would the animator see, but also something more technical. For instance, what would the character do? It might seem strange, but sometimes you have a character that will do most of his screening time with the hands up, maybe because he's kept hostage or he's just bringing a tray or something. In that case, you will need different rotation order in order to avoid the gimbal lock. So all the stuff you have to plan in advance, and this is the job of a rigor to do, we also plan which kind of deformation have to achieve because sometimes a character has to drink so you want his neck to move accordingly. Sometimes he is shirtless so you have to pay particular attention about the torso and muscles and this kind of stuff. And the auto rig does all of the rest. So all of the complex and especially mechanical stuff, it's down to the machine to do. So actually the auto rig assists the rigor. It doesn't steal yet. So how did it begin? When we started doing animation, we started doing pretty much what everybody else was doing because we were not expert enough to do it our way. So we were using commercial software and commercial rigs. We had just built it. But what was our job then? We still did stuff. We had to set up the rotation orders and we had to set up the accessories like some characters that had glasses or hats. Those had to be rigged. And we also rigged hair and clothes both with dynamic rigs for simulations but also stuff that could be moved manually. And then I just thought it would have been cool to work on movies. So I flew to London and joined MPC. And it was nice. I worked on this but on many movies that year. It has been quite a nice year. And yeah, it's the Jungle Book, Fantastic Four Spectre and Batman vs Superman. It was my first time in a very big pipeline. So I moved from a very small studio where we did everything, everything we were not buying, but everybody was doing everything. I was a generalist. Then I went to work as a rigger on these films. I confronted that huge pipeline. So the thing is now it was no more commercial rigs. Those were proprietary rigs and they were a full-featured character. There wasn't much I had to do because everything was just done in previous shows. And we had a heavy focus on the anatomy because to achieve believable results, believable characters, digitables and stuff like this, you need to make all of the joints in the anatomically correct spots to allow the technical animator to pick up the work and make believable simulations of muscles. And we had separate rigs for animation and render. And this is kind of nice because it relates to the previous slide about the two-fold process. This time I was really rigging for the animator and for the computer or tech anim because usually before going to the render, the tech anim department, they extracted all of the animation and they used physical simulation to make it more real. I cannot go any deeper because I signed an NDA and they have lawyers, so let's stop it here. But the thing is it was very fun and one nice thing is for this show, for these guys, I used Blender. So it was not a production software because it was my own decision to use it for some stuff. What I did with Blender, I had to model some proxy for the animation rig. I rigged Wonder Woman and I had some time left. So I thought it would have been nice for the animator to have a low-res model for previous and I just did it. I opened Blender, we had Linux workstation so Blender was part of the distribution and just did it. The animators liked it a lot so they asked me if I could do this for Batfleck and for Superman, please. I did. It was nice because that day I actually was modeling, so technically I was a modeler for one day. But the thing is I was modeling to create the interface that would have been used for the animation so to me I was rigging. And here we go because the year later I came back to make animation at this time, this time we were experts or maybe old and we just wanted to do as we wished. So we switched to open source software, we used Blender and luckily there was a rigging tool already in Blender, it is Rigify. And we switched from customizing commercial tools to contribute to an existing tool which is better, it is a more inclusive way to work. We loved it from day one. What we did was mainly to clean up the code of Rigify which was a production script. In production you just care for it to work, it just has to work. It doesn't have to be beautiful. We make it a bit prettier in the syntax, the programming stuff so it's not something you could really see for mostly, but the thing is we just did it. We took over as maintainer of this model because at the time it was orphaned so we just took it. So about Rigify because it is a tool with history it has been developed by Nathan Begdal, the Agenda of Blender Rigging and Campbell Barton, he is a Blender developer. They developed it to make the animated open movies at the Blender Institute. And it was working already, it was nice, it has been released, shipped with Blender. And a couple of years later in the Israeli studio of Pichipoi, they needed some more features, they needed different kinds of limbs and they added it and they created a new version of Rigify with more features. So the thing is we took Pichipoi Rigify because we needed those features, but it came with a problem, the problem is it was a fork. So when you take a project and you change it and you change it maybe too hardly or too fast for those changes to go back to the master project, then you have created a fork. And the fork might be problematic because there are risks when using forks and what is the risk when you plug a fork in? So the risks are well, to begin with it was not shipped with Blender, so you buy a wonderful new workstation, you want to work already and you have to install the fork rather than your original script and then it is not guaranteed that it will keep working once you update your version. It kept working for the most part, we had to make some small changes but the thing is nobody is due to make it work. So there were problems and another problem that comes when using forks is the developer doesn't know what to do with a fork or a user as well because you need a feature, okay, I am adding it to master and then it is cool but I was using the other one, okay and then we add it to the other one but now we are even further away from seeing the time when it will be back to the mother project. And it is the same with the fix and we need both, we need features, we need fix. And then the direction of and work finally the two projects have been merged into one tool. So that was my part. The introduction is over, I now leave everything. Come back for the conclusions. I give you a brief explanation on how Regify works because I have a lot of requests of people saying it is not working, it is not just not reading the wiki. The easiest access to read the wiki is just near the reported bug. The other one please. So please first click on the left then on the right if the answer is not there. So, Regify works in three basic ways. First I would like to have a big applause for the audience. Thank you very much. Thank you, everyone. And Campbell did this on the first alone. So please. We took cover from them and this is a basic explanation of what he does and is not from us. The basic method is based on you had a basic metric. So you have to choose the nearest one to your model. Then you follow the wiki and you see where you can place landmarks, where the bones should be placed. It is very detailed so you can check at least for human and have an overview on how it should work. And then you click generate button and it is done. At least all the controls are created so it should work. If you have placed correctly the bone and there are enough bones to deform the character, it should work right out of the box. Then we have the advanced mode. It is built in a different way. We just have to create a single bone because we need the armature object to work with. Then you delete in edit mode everything that's there. And then you can just add some samples from the list. You choose for you maybe the leg, the pole, there are lots of them pre-installed. You then can have this kind of set where every sample is together. And you place it in the correct position and just parent all the samples together to the correct parent. And then you have to take care of the layers. The bone has to be split on layers. And also the rig UI, the ramp the rig UI will be used for creating on the final rig bone groups and selection sets and bone colors and moreover lots of things you can do from here. These are not so detailed in wiki so my plan is to update the wiki in the free and spare time of next year to have it complete. And then you have the option to generate the wiki again. Last thing is the pro. We wanted to keep this tool open to pro users. So how do you use it if you are a pro? This is in two parts. My part is showing you in the UI how it is designed to work. And then I leave the word to Lucio. They will explain which is the work under the hood to make this happen. So you again add the armature object and then you can build from scratch if you know what you are doing the spine in this example. Then you select the first bone of the chain because this is a modular rig system you have split parts that have to be assembled together and you add this property then you know that this is a spine. And you can customize it in this panel. There is a specific panel for each type. I have defined where the tail starts, where the spine ends, where the neck is and where the head is through a panel similar to this. Then you have again to take care by yourself of this. This is automatic in the basic version. And then you can have access to generate advanced options that now lets you upgrade more than one rig per scene. You can specifically select which rig you want to update and you can also create a new one with a different name. And bonus is that the rig UI will be a chordling name for the character and the link to the character so when you link the character in another scene the rig UI will be merged in that file without having you to manually load it. So I leave the word to Lucio and ASQ another big applause because it is birthday. Thank you very much. Can you hear me? OK. Now for the really boring part which is what you have to do when you want to interact with the code of Rigify. So when you want to define custom rig types and meta rigs and stuff. Please do it without forking. Don't fork around. It's really it can be really painful for the people that will come after me, after my work. Please. When you want to add a new rig type module you may be think that maybe there's a base class. There's no base class for the rig. I have to explain you what the interface of the rig class should be. Actually, you have a constructor in which you have to pass the variable which is called obj which is the armature object. Then you have to pass the name of the first bone of the chain so it's the base bone of the chain. Then you will pass parameters that are the parameters that the user will define inside the interface. Then you must have inside the rig class a generate function which is called by a main generate module which is the main generate button practically. This generate function is basically a series of callbacks one after the other. All these other functions which you define and there's no real rule up to now on how you have to write these functions will create all the bones that work underneath your rig type. You will create the mechanical bones etc. Each callback should extend like a dictionary of the names of the bones going along and add more to that on the way. The final thing that the generate function has to do is has to return to the caller a snippet that is a list of snippets actually of strings that have to be appended to this rig UI template file and together the rig UI template and these snippets they create what is called the file that is very important for rig file which is the rig UI file. The rig UI file is what gives us the possibility of having the rig work even without the add-on installed. The function has to return since they usually depend on the names of the bones that the user is defining are of course usually some format strings that have to be filled up by the generate function before it returns. Then you have to add some other functions inside the class and these are also mandatory and they are very important. The add parameters that define the runtime the remaining parameters of the rig type that you are introducing inside the Blender Bpy. Then you have to define parameters UI which is just a layout of what the user is going to look at when he wants to define the parameters of the rig type and then a create sample function which automates the creation of a sample which should be granted to work in the generation for that particular rig type. This method should be defined, we will define this method as static methods. Sometimes when I do programming in Python I think Java is beautiful for this kind of things and interfaces and stuff. Basically the interface of the class in the end, so you have a rig defined class with its constructor and the generate function then you can do basically whatever you want but it's better that you follow the advices that I gave you and then these three functions which are very important. To generate the create sample function which is very important because it saves you a lot of time to define all the bones which don't belong to your rig type. There is an automation that was already developed before me and gives you the possibility of encode directly the structure that you just made and in which you define all the properties into a snippet of code which is a create sample that you will find in the text editor and then you can do the generate function and put it inside the rig definition. Also you can do something similar for the matter rig. So after you build the matter as Ivan showed you you just press encode mattering and it will create a file which is already prepared for defining all the rigs and you will rename it as you wish and put it inside the directory of the group of matter rigs that you want to use like animals for example. Also you can define some custom widgets in the same way you construct a mesh and then you hit this encode mesh widget so you will have a function that creates a widget. This function inside the file which is called widgets.py and it's inside the text editor again and you just have to copy paste this create thing widget and you will rename it to whatever you wish and put it somewhere inside the code where is better to put it inside the rigify rigs widgets file but if you don't find this button I'm sorry there was a regression that I made on blender these are the basic steps that you have to follow to have the same effect of pressing the button. The next milestone we will keep on maintaining the code we will keep on expanding it and getting it better but it needs some refactoring first of all we need a base class for the rig and this is very important because it defines a way to interact with the code which is more it makes more sense and also you can get compliance for free once you follow the instruction of the base class your job is basically easier and also we were discussing with Nathan also the possibility of letting other people to expand it in a more in an easier way so probably in the add-on interface we will give the possibility of defining a directory where you want to take your metrics from and add the models as you wish that was basically it I will leave it to Paolo everybody here the three of us you keep this it's the same so the thing is this presentation name the title is the power of rig the reason is we needed a catchy title we were running out of time it was last day submission and I was drunk so I just put this title up there but the thing is there is some truth in it because rigging is a task that as you could see or you probably knew already it requires a diversity of skills so it's either one very eclectic people or it is many people with a variety of skills or many eclectic people but in the end we are talking about everything we are talking about sculpture and we are talking about pipelines so it is in the middle of an animation pipeline so what happens it brought us together we had to join forces in order to have our characters to finally move express emotions there is an aesthetic perspective so it is true that rigging is hidden in the end you don't really see it outside these kind of events when you say yeah I work as a rigger so the thing is you don't see it but you see the results so in the end we all can agree about whether the formation is good or not because I might be a mathematician and I can see that something is wrong or even can be a sculpture he will see if it works or not on a personal level too it will maybe expand your skill base because for instance I learned to draw I had to even learn some coding he learned computer graphics this is what happens when you mess with bricks so the thing is the power of a rig brought us together and now it is yours so thank you very much