WEBVTT 1 00:00:24.400 --> 00:00:27.520 Hello, this is Eun-Yong Lim from Anijak Co., Ltd 2 00:00:27.520 --> 00:00:31.480 This time, in the general process of creating animation, 3 00:00:31.480 --> 00:00:34.080 we'll look at how character modeling is done, 4 00:00:34.080 --> 00:00:38.720 and how to rig the character after modeling is finished 5 00:00:38.720 --> 00:00:42.520 Let's take a look at the basic process 6 00:00:42.521 --> 00:00:45.100 Character Modeling 7 00:00:46.639 --> 00:00:51.760 Before we actually get to the modeling part there is something you have to prepare 8 00:00:51.760 --> 00:00:53.360 It's the design materials 9 00:00:53.360 --> 00:00:55.360 Also known as design sheets, 10 00:00:55.360 --> 00:00:58.759 These contain very detailed information about 11 00:00:58.759 --> 00:01:01.599 the front and side views, 12 00:01:01.599 --> 00:01:04.840 and the back views of a character 13 00:01:04.840 --> 00:01:09.840 And any accessories 14 00:01:09.840 --> 00:01:12.560 that is necessary to model the character 15 00:01:12.560 --> 00:01:15.369 They usually consist of 16 00:01:15.370 --> 00:01:18.049 drawings from 3 different points of view 17 00:01:18.119 --> 00:01:23.320 So usually modeling is done based off of these materials 18 00:01:23.759 --> 00:01:27.160 Now let's look at 19 00:01:27.160 --> 00:01:31.519 the final model made from this sheet 20 00:01:31.519 --> 00:01:37.639 I had loaded it here in advance 21 00:01:37.639 --> 00:01:41.440 This is a model 22 00:01:41.440 --> 00:01:44.559 of a TV series protagonist 23 00:01:44.559 --> 00:01:48.800 And if you compare it to the initial sheet 24 00:01:48.800 --> 00:01:52.959 You can see a lot of differences 25 00:01:52.959 --> 00:01:57.959 Especially the hair, which was completely changed 26 00:01:57.959 --> 00:02:02.279 Though the basic concepts, such as gender 27 00:02:02.279 --> 00:02:07.559 approximate age, or color schemes are similar 28 00:02:07.559 --> 00:02:11.199 Changes in detail like this 29 00:02:11.199 --> 00:02:14.080 always happens during the modeling process 30 00:02:14.080 --> 00:02:16.559 The arms got slightly longer 31 00:02:16.559 --> 00:02:18.440 And the head got smaller 32 00:02:18.440 --> 00:02:20.800 Change at this scale can happen any time 33 00:02:20.800 --> 00:02:26.320 That is why, even if you download a design sheet like this 34 00:02:26.320 --> 00:02:31.959 and use it to create your own model 35 00:02:31.959 --> 00:02:35.479 I cannot recommend modeling 36 00:02:35.479 --> 00:02:38.720 by simply tracing the sheet 37 00:02:38.720 --> 00:02:41.080 When you are working on something 38 00:02:41.080 --> 00:02:42.759 Especially if it's a group project 39 00:02:42.759 --> 00:02:45.880 The directors, modelers and animators 40 00:02:45.880 --> 00:02:48.440 have to all cooperate with each other 41 00:02:48.839 --> 00:02:50.360 I'm sure everyone has experienced this 42 00:02:50.360 --> 00:02:51.479 It's always like that 43 00:02:51.479 --> 00:02:55.119 Good ideas pop up later 44 00:02:55.119 --> 00:02:57.559 And you keep spotting things you want to fix 45 00:02:57.559 --> 00:02:59.720 That's not uncommon at all 46 00:02:59.721 --> 00:03:05.181 Which is why you have to always put into consideration 47 00:03:05.348 --> 00:03:08.708 that changes to the model might occur 48 00:03:08.708 --> 00:03:13.428 And why I do not recommend 49 00:03:13.428 --> 00:03:17.348 putting all of your skill and effort 50 00:03:17.348 --> 00:03:19.708 into making the model perfect 51 00:03:19.708 --> 00:03:22.748 and rather recommend first creating 52 00:03:22.748 --> 00:03:25.508 a more temporary initial model like this 53 00:03:25.508 --> 00:03:27.388 Now I'll introduce to you 54 00:03:27.388 --> 00:03:30.188 how to create a temporary model 55 00:03:30.188 --> 00:03:33.868 based on a design sheet 56 00:03:33.868 --> 00:03:37.428 Take a look at this clown girl character 57 00:03:37.428 --> 00:03:39.107 This is the design sheet 58 00:03:39.107 --> 00:03:40.947 which I will now take 59 00:03:40.947 --> 00:03:45.307 and use as material for our temporary model 60 00:03:45.307 --> 00:03:47.708 The temporary model stage is where you 61 00:03:47.708 --> 00:03:50.748 create an approximate version of the model in a short amount of time 62 00:03:50.748 --> 00:03:52.307 The purpose of this is to 63 00:03:52.307 --> 00:03:55.828 create a 3D render of the image in your head 64 00:03:55.828 --> 00:03:58.068 as efficiently and quickly as possible 65 00:03:58.068 --> 00:04:01.188 before you begin the actual modeling part 66 00:04:01.188 --> 00:04:03.787 So how you create the temporary model 67 00:04:03.787 --> 00:04:06.668 does not matter as long as it doesn't take too long 68 00:04:06.668 --> 00:04:09.748 You can recycle a previous work 69 00:04:09.748 --> 00:04:11.907 Or because AI can now generate models too 70 00:04:11.907 --> 00:04:15.788 you could use an AI model generator 71 00:04:15.788 --> 00:04:19.547 Personally, especially for cartoonish characters like this one 72 00:04:19.547 --> 00:04:21.668 I make the body out of basic solid figures 73 00:04:21.668 --> 00:04:25.187 that most modeling tools provide 74 00:04:25.187 --> 00:04:27.627 Then give that model color 75 00:04:27.627 --> 00:04:31.547 to get a feel of what it would look like 76 00:04:31.547 --> 00:04:35.428 Here's a quick demonstration 77 00:05:05.497 --> 00:05:07.378 The foot part of this character 78 00:05:07.378 --> 00:05:11.458 as you can see, requires a lot of detail 79 00:05:11.798 --> 00:05:12.798 Right now we can ignore that 80 00:05:14.308 --> 00:05:17.857 and just use this lump instead 81 00:05:44.147 --> 00:05:48.348 The arm is also just a placeholder 82 00:05:48.398 --> 00:05:52.557 So there's no need to spend time on making the fingers 83 00:05:52.607 --> 00:05:56.507 The only thing you should put some effort into is getting the proportions right 84 00:06:24.057 --> 00:06:25.657 So now we have the approximate shape 85 00:06:25.657 --> 00:06:31.697 I recommend doing some coloring and shading 86 00:06:31.697 --> 00:06:35.097 along with the shape 87 00:06:35.097 --> 00:06:38.287 for a better preview of the actual model 88 00:06:47.276 --> 00:06:52.057 So at about this stage 89 00:06:52.077 --> 00:06:56.577 it will be more efficient to try posing the model than working on it further 90 00:06:56.577 --> 00:07:02.656 And see if the body proportions are done right 91 00:07:02.656 --> 00:07:07.957 such as the length or thickness of the arms and legs 92 00:07:31.157 --> 00:07:35.317 This is the complete temporary model 93 00:07:35.667 --> 00:07:42.557 This is where you should get some opinions from other staff or clients 94 00:07:42.657 --> 00:07:45.856 Of course, if it's a solo project, your own feedback is important too 95 00:07:45.956 --> 00:07:51.296 You can find and fix a lot of flaws 96 00:07:51.296 --> 00:07:53.396 that you couldn't check through 2D designs 97 00:07:53.397 --> 00:07:56.097 And temporary modeling also gives the model 98 00:07:56.098 --> 00:08:00.972 some solid structure before you get to the main modeling process 99 00:08:01.346 --> 00:08:06.306 Minor tweaks or design changes aren't as much of a problem in this stage, either 100 00:08:06.306 --> 00:08:12.146 Even in the worst case scenario, it's much easier to start over 101 00:08:12.146 --> 00:08:19.225 What I will show you now is a more refined model 102 00:08:19.225 --> 00:08:24.626 that I put in the neutral pose, or T-pose 103 00:08:24.626 --> 00:08:30.106 So it can be properly modeled 104 00:08:30.225 --> 00:08:34.346 Now let's get to the main modeling 105 00:08:34.347 --> 00:08:37.276 In the main modeling stage 106 00:08:37.296 --> 00:08:41.305 the temporary model should be put on a separate layer 107 00:08:41.305 --> 00:08:45.546 So you can easily hide and show it 108 00:08:45.546 --> 00:08:51.226 Putting it in reference mode keeps you from accidentally selecting it 109 00:09:23.066 --> 00:09:26.826 Here you can see some triangles 110 00:09:26.826 --> 00:09:30.696 You also might sometimes find some pentagonal or hexagonal polygons 111 00:09:30.697 --> 00:09:34.326 Whenever you see any non-tetragonal polygons 112 00:09:34.346 --> 00:09:42.185 you should get rid of them right away You can do this process at the end 113 00:09:42.185 --> 00:09:49.036 but I recommend fixing any one that you see as you go 114 00:10:00.880 --> 00:10:06.560 Right now I'm trying to fix the wireframe a bit 115 00:10:06.560 --> 00:10:09.900 So that the wires in the area around the eyes are curved 116 00:10:09.901 --> 00:10:11.580 Fix that up quickly 117 00:10:11.600 --> 00:10:17.520 And that creates some undesired polygons 118 00:10:17.520 --> 00:10:21.920 you can merge them to get rid of them 119 00:11:17.020 --> 00:11:21.920 So the entire process is going to take a long time 120 00:11:21.970 --> 00:11:27.095 The part I just showed you was the head modeling 121 00:11:27.095 --> 00:11:30.060 And what is on screen right now 122 00:11:30.061 --> 00:11:31.795 is the finished model 123 00:11:31.796 --> 00:11:34.508 with some basic textures on it 124 00:11:34.560 --> 00:11:38.550 The finishing process for any model 125 00:11:38.600 --> 00:11:42.560 is the cleanup, nothing special 126 00:11:42.560 --> 00:11:46.199 The cleanup is important because 127 00:11:46.199 --> 00:11:51.729 no matter how clean the model looks in this viewport 128 00:11:51.729 --> 00:11:55.189 In the animating process 129 00:11:56.210 --> 00:11:58.700 this model is going to be rendered 130 00:11:58.750 --> 00:12:02.909 And any messy polygons that you didn't take care of in the renderer 131 00:12:02.959 --> 00:12:05.199 is going to cause a variety of problems 132 00:12:05.199 --> 00:12:09.520 It might not be that bad with a couple of characters 133 00:12:09.520 --> 00:12:12.559 But if multiple flawed characters, along with the background 134 00:12:12.559 --> 00:12:15.679 keep interacting during production 135 00:12:15.679 --> 00:12:18.720 In the end these problems will accumulate 136 00:12:18.800 --> 00:12:21.440 and the renderer might refuse to work 137 00:12:21.440 --> 00:12:23.600 So a lot of bad things can be caused by not cleaning up properly 138 00:12:23.600 --> 00:12:27.520 So in order to prevent that from happening 139 00:12:27.520 --> 00:12:29.360 Every time a model is finished 140 00:12:29.360 --> 00:12:32.080 you should always use the Cleanup Options tool 141 00:12:32.080 --> 00:12:34.559 to see if there's anything wrong with the polygons 142 00:12:34.559 --> 00:12:38.720 And tidy up the model 143 00:12:38.720 --> 00:12:44.160 Here are some options you can use for that 144 00:12:44.160 --> 00:12:48.399 There are Cleanup matching polygons 145 00:12:48.399 --> 00:12:50.800 in which Maya does the cleanup for you 146 00:12:50.800 --> 00:12:54.479 Then there's Select matching polygons 147 00:12:54.479 --> 00:12:58.539 where you have to select the polygons yourself 148 00:12:58.539 --> 00:13:00.169 Personally I prefer 149 00:13:00.620 --> 00:13:02.421 just fixing the polygons myself 150 00:13:02.544 --> 00:13:04.984 I think it would be better 151 00:13:04.985 --> 00:13:07.664 to hide the main model for now 152 00:13:07.684 --> 00:13:11.984 The model I made has been cleaned up already 153 00:13:11.984 --> 00:13:16.684 So I'll just quickly create a bad model 154 00:13:16.684 --> 00:13:19.284 You can tick on Apply to Selected Object 155 00:13:19.284 --> 00:13:23.444 to apply these options on just the selected object 156 00:13:23.444 --> 00:13:27.683 Or you could apply them to all of the polygons in this scene 157 00:13:27.683 --> 00:13:29.683 So you can use the option you need 158 00:13:29.683 --> 00:13:31.444 The important part is the options down here 159 00:13:31.444 --> 00:13:33.944 In Fix by Tesselation 160 00:13:33.944 --> 00:13:36.944 There aren't many instances to use 4-sided faces 161 00:13:36.944 --> 00:13:42.183 because 4-sided polygons are ideal for rendering 162 00:13:42.183 --> 00:13:44.143 Faces with more than 4 sides 163 00:13:44.143 --> 00:13:50.044 So if there was an extra vertex here 164 00:13:52.444 --> 00:13:55.244 Maya would notice that 165 00:13:55.244 --> 00:13:59.843 You can see that now 166 00:13:59.843 --> 00:14:02.104 this polygon has 5 sides 167 00:14:02.104 --> 00:14:05.343 so Maya will find and fix it 168 00:14:05.343 --> 00:14:10.003 And a concave face means that even if the polygon is a quadrangle 169 00:14:10.003 --> 00:14:13.044 its sides could go inwards like this 170 00:14:13.044 --> 00:14:17.404 Which causes overlap like you can see right now 171 00:14:17.404 --> 00:14:21.404 the overlapping part will flicker darkly 172 00:14:21.405 --> 00:14:23.934 So selecting Concave faces will take care of that 173 00:14:23.954 --> 00:14:26.704 You should get rid of that because it will cause problems while rendering 174 00:14:26.704 --> 00:14:28.103 Then there's Faces with holes 175 00:14:28.103 --> 00:14:32.704 This literally means that if there's a hole in the plane 176 00:14:32.704 --> 00:14:34.864 Maya will catch that 177 00:14:34.864 --> 00:14:38.804 Next is Laminar faces in Remove Geometry 178 00:14:38.804 --> 00:14:42.364 Lamina faces means two completely overlapping faces 179 00:14:42.364 --> 00:14:45.264 What that means is that while modeling 180 00:14:45.264 --> 00:14:47.664 something like this happened 181 00:14:47.724 --> 00:14:49.724 You duplicated an object 182 00:14:54.524 --> 00:14:59.963 erased some polygons, and kept modeling 183 00:14:59.964 --> 00:15:01.901 Some of the remaining polygons 184 00:15:05.643 --> 00:15:08.093 would exist in the exact same place 185 00:15:08.094 --> 00:15:09.536 as the original 186 00:15:11.356 --> 00:15:12.656 Like these two planes 187 00:15:12.657 --> 00:15:14.914 You can see that there are two in the sidebar 188 00:15:15.053 --> 00:15:18.603 Imagine that they were combined in this state 189 00:15:18.603 --> 00:15:25.313 Even experienced modelers might not be able to catch something like this 190 00:15:25.313 --> 00:15:30.496 Because there are actually two planes here, with their own edges 191 00:15:30.763 --> 00:15:32.733 if you merge them in this state 192 00:15:33.343 --> 00:15:35.243 they will become impossible to find 193 00:15:37.243 --> 00:15:41.092 But our cleanup tool 194 00:15:42.356 --> 00:15:44.056 can find those for us 195 00:15:44.442 --> 00:15:51.082 So overlapping faces like this can also be removed using this tool 196 00:15:51.163 --> 00:16:01.363 Next, what is Nonmanifold geometry for? 197 00:16:01.364 --> 00:16:03.814 The ideal flow for wireframe models is neat quadrangles like this plane 198 00:16:05.643 --> 00:16:08.633 But while modeling, something like this could happen 199 00:16:09.143 --> 00:16:11.593 If you take an edge 200 00:16:13.393 --> 00:16:17.393 and extrude it like this 201 00:16:17.423 --> 00:16:22.683 The renderer will have now way of knowing which should come in front 202 00:16:22.683 --> 00:16:30.963 There are some other instances that could happen as well 203 00:16:30.964 --> 00:16:33.943 for example if the normals are flipped 204 00:16:33.963 --> 00:16:40.452 or if vertices meet in a single spot 205 00:16:40.453 --> 00:16:44.182 With this option, you can remove geometry that the renderer cannot understand 206 00:16:44.183 --> 00:16:47.332 So like this extrusion 207 00:16:47.352 --> 00:16:56.443 The tool will remove imperfections like these 208 00:16:56.522 --> 00:17:05.003 So eventually you can get a perfect plane, like how it originally was 209 00:17:05.004 --> 00:17:07.933 Let's try selecting this object, and set it to Select matching polygons 210 00:17:07.934 --> 00:17:10.434 Now in the script editor 211 00:17:10.453 --> 00:17:14.202 There's a message that says No items found to clean up 212 00:17:14.203 --> 00:17:17.753 A state like this, where the program can't find anything to fix 213 00:17:17.852 --> 00:17:25.013 would be the best And after the cleanup there will be a lot of history stacks 214 00:17:25.014 --> 00:17:27.214 I should probably delete them 215 00:17:29.160 --> 00:17:32.910 So that part was to tell you 216 00:17:32.913 --> 00:17:39.083 how important it is that the model you worked so hard on 217 00:17:39.083 --> 00:17:45.422 does not run into any problems in the rendering process 218 00:17:45.442 --> 00:17:47.342 Character Rigging 219 00:17:49.292 --> 00:17:52.042 Before I get to rigging 220 00:17:52.042 --> 00:17:56.902 there's something important I have not told you yet 221 00:17:56.903 --> 00:18:02.853 and that is about the concept of Nodes 222 00:18:02.853 --> 00:18:09.493 The same thing is called Mesh in other software 223 00:18:09.493 --> 00:18:18.453 I just created a sphere in Maya, you can see in the outliner it's called a sphere 224 00:18:18.454 --> 00:18:22.033 If you take a closer look 225 00:18:22.503 --> 00:18:28.732 You can see it actually consists of the dots, lines, and planes 226 00:18:28.733 --> 00:18:32.962 that make up the sphere, called vertices, edges, and faces 227 00:18:32.982 --> 00:18:37.772 And then the transform node, the thing above the sphere in the outliner 228 00:18:38.372 --> 00:18:45.902 is what adjusts the translation, rotation, and scaling 229 00:18:47.792 --> 00:18:49.292 of the object in the viewport 230 00:18:49.293 --> 00:18:55.292 The node and shape together make up a single model 231 00:18:55.293 --> 00:18:59.193 And then there is BlendShape, which you may have heard of 232 00:18:59.194 --> 00:19:02.673 If there is more than one shape 233 00:19:02.693 --> 00:19:05.853 the model will shift between them 234 00:19:05.853 --> 00:19:12.132 It's called BlendShape because it blends the components to become another shape 235 00:19:12.133 --> 00:19:14.012 I went off on a bit of a tangent there 236 00:19:14.013 --> 00:19:17.512 Anyway, if you take a rigging tutorial 237 00:19:17.532 --> 00:19:23.732 you will see that in Maya's rigging tools is options like 238 00:19:23.733 --> 00:19:29.162 Constrain, Deform, Skin, and Skeleton 239 00:19:29.182 --> 00:19:35.613 There are quite a few, so you might get overwhelmed at first 240 00:19:35.613 --> 00:19:45.103 But most Constrain tools form relationships with each other using transform nodes 241 00:19:45.541 --> 00:19:48.341 Let's create a cube here 242 00:19:48.341 --> 00:19:52.391 If we set the sphere to be the parent of this cube 243 00:19:52.891 --> 00:19:59.903 You can see it's marked blue here which means that the transform node is constrained 244 00:19:59.904 --> 00:20:01.571 Now if we move the sphere 245 00:20:03.091 --> 00:20:09.971 The cube will move along with it But the shape of the cube will not change 246 00:20:09.971 --> 00:20:14.511 So there's no problem with changing the cube's shape 247 00:20:16.931 --> 00:20:24.131 You can see that the relationship between the sphere and the cube is unchanged 248 00:20:24.131 --> 00:20:28.551 because the cube's transform node is still constrained 249 00:20:28.552 --> 00:20:30.869 Let me take a different approach now 250 00:20:32.251 --> 00:20:33.951 Here's the sphere 251 00:20:36.141 --> 00:20:39.191 I could animate it 252 00:20:39.191 --> 00:20:41.491 by using the transform node 253 00:20:41.491 --> 00:20:48.281 to change its x, y, and z values and make a key animation 254 00:20:48.323 --> 00:20:49.323 But 255 00:20:49.991 --> 00:20:52.891 the shape node, so vertices 256 00:20:53.981 --> 00:20:58.821 can also be moved to give the same effect 257 00:20:59.571 --> 00:21:06.730 Then, technically I'm moving the sphere without touching its transform node 258 00:21:06.730 --> 00:21:10.667 So you can create the same movement 259 00:21:10.667 --> 00:21:13.667 by giving changes to different components 260 00:21:13.667 --> 00:21:16.781 Right now I'm moving the sphere through the vertex 261 00:21:19.730 --> 00:21:25.291 And now I'm animating using the transform node 262 00:21:25.940 --> 00:21:29.740 Then this is an option 263 00:21:30.341 --> 00:21:34.531 you will use often while rigging 264 00:21:34.590 --> 00:21:37.140 You create a joint 265 00:21:38.131 --> 00:21:43.697 Then you select the joint 266 00:21:43.697 --> 00:21:46.710 and add it to the sphere's skin 267 00:21:47.460 --> 00:21:50.090 Now the joint is moving 268 00:21:50.090 --> 00:21:54.090 and moving the joint 269 00:21:54.090 --> 00:21:57.330 is the same effect as moving the vertices of the sphere 270 00:21:57.330 --> 00:21:59.930 Then where is the sphere's transform node? 271 00:22:01.330 --> 00:22:10.840 The moment the joint was bound, it was fixed to the origin point 272 00:22:10.840 --> 00:22:13.190 So now you can use the joint's transform node 273 00:22:14.161 --> 00:22:20.451 to animate the sphere 274 00:22:20.451 --> 00:22:22.261 I'll give it a key 275 00:22:23.353 --> 00:22:24.103 a key 276 00:22:25.111 --> 00:22:28.570 through which the sphere can be animated 277 00:22:29.770 --> 00:22:38.260 But what you're actually doing is changing the sphere shape through the joint 278 00:22:39.010 --> 00:22:41.850 And the transform node stays here 279 00:22:41.850 --> 00:22:49.700 If you really get into rigging, it's extremely complicated 280 00:22:49.701 --> 00:22:51.801 You need a lot of math knowledge 281 00:22:51.850 --> 00:22:55.821 And there are so many rigging tools 282 00:22:55.890 --> 00:22:59.390 that it might overwhelm you 283 00:22:59.479 --> 00:23:09.799 But by distinguishing these two first, you can approach it more easily, so I wanted to mention this first 284 00:23:09.799 --> 00:23:15.599 Another important concept in rigging is the node history 285 00:23:15.600 --> 00:23:17.479 Node history is a bit of a mouthful 286 00:23:17.499 --> 00:23:24.688 So I will now show you what that is step by step 287 00:23:24.690 --> 00:23:27.090 We have a new sphere here 288 00:23:28.788 --> 00:23:32.479 and for this example I'll wipe the previous history 289 00:23:32.479 --> 00:23:35.599 I'll call this Sphere 1 290 00:23:36.599 --> 00:23:38.468 So name it Sphere01 291 00:23:39.689 --> 00:23:41.839 Next, copy and paste it 292 00:23:43.668 --> 00:23:47.678 to create an object 293 00:23:48.878 --> 00:23:50.869 that will become a target for Sphere01 294 00:23:55.558 --> 00:24:00.678 and change its modeling a bit 295 00:24:00.678 --> 00:24:06.919 If you know about rigging, you will already know what I'm going to show you 296 00:24:06.919 --> 00:24:12.039 I'm trying to show you what BlendShape can do 297 00:24:13.739 --> 00:24:15.239 So what did I just do? 298 00:24:16.429 --> 00:24:21.479 I took a sphere, copied and pasted it, 299 00:24:21.479 --> 00:24:27.239 so that the two spheres have the exact same number of vertices, edges, and faces 300 00:24:27.239 --> 00:24:32.839 then I modeled the new sphere to look a bit different 301 00:24:33.789 --> 00:24:37.339 So what is this new sphere for? 302 00:24:37.339 --> 00:24:41.358 If I change the translate value 303 00:24:41.358 --> 00:24:46.168 to be (0, 0, 0), the location of this sphere 304 00:24:46.169 --> 00:24:50.607 will become the origin, the same as the original sphere 305 00:24:51.318 --> 00:24:57.159 Remember that what I just did was using the transform node 306 00:24:57.159 --> 00:25:02.458 Now I will set up BlendShape using these two spheres 307 00:25:02.459 --> 00:25:03.889 So in the rigging options 308 00:25:04.139 --> 00:25:08.039 BlendShape is in the Deform menu 309 00:25:08.288 --> 00:25:16.828 The BlendShape node has been updated to have many functions 310 00:25:16.829 --> 00:25:19.055 but for now I'll use the default setting 311 00:25:20.389 --> 00:25:22.989 Name this mode TestBLS, and 312 00:25:23.428 --> 00:25:30.637 I would want the Check topology option rather than In-between since the two models have the same number of components 313 00:25:31.739 --> 00:25:33.789 Set Deformation order to Automatic 314 00:25:33.937 --> 00:25:36.388 So now I have 315 00:25:37.839 --> 00:25:41.639 a basic BlendShape 316 00:25:42.538 --> 00:25:43.678 So now Sphere01 317 00:25:45.518 --> 00:25:48.318 can change shape through the BlendShape deformer 318 00:25:48.318 --> 00:25:52.188 BlendShape is used mostly for facial expressions 319 00:25:52.188 --> 00:25:58.038 like the character closing their eyes or raising an eyebrow or even lip sync 320 00:25:58.257 --> 00:26:02.838 can be done using BlendShape 321 00:26:02.839 --> 00:26:10.914 With this sphere, I have just created a very basic mouth movement 322 00:26:13.788 --> 00:26:15.888 Let's put this back at the origin 323 00:26:16.288 --> 00:26:19.038 And now I'm going to give this 324 00:26:19.908 --> 00:26:25.677 a simple joint 325 00:26:26.288 --> 00:26:29.488 so bind it to this spot 326 00:26:30.477 --> 00:26:34.838 And now let's pretend this is a body rig 327 00:26:34.839 --> 00:26:37.638 select these two joints 328 00:26:38.288 --> 00:26:42.288 and select Bind Skin 329 00:26:42.338 --> 00:26:47.258 You can either bind to the joint hierarchy or just the selected joints 330 00:26:47.258 --> 00:26:55.838 Allowing multiple bind ports isn't necessary right now, because there's just two joints 331 00:26:57.438 --> 00:27:01.638 So now this "character" has a basic skin 332 00:27:01.638 --> 00:27:05.057 though it's not that amazing 333 00:27:05.538 --> 00:27:08.838 now the character can move within the world using its joints 334 00:27:10.057 --> 00:27:11.838 And it can even make 335 00:27:12.188 --> 00:27:13.838 facial expressions, kind of 336 00:27:15.788 --> 00:27:21.488 What I'm trying to say is, from the perspective of the vertex 337 00:27:21.488 --> 00:27:28.998 how the process goes is, first I created a facial expression 338 00:27:28.999 --> 00:27:30.878 using the BlendShape TestBLS 339 00:27:30.898 --> 00:27:38.018 Then I used a skin cluster, so a joint to move the character here 340 00:27:38.019 --> 00:27:39.198 Right? 341 00:27:39.218 --> 00:27:44.347 Sphere 1's shape was blended, then the SkinCluster was added 342 00:27:44.348 --> 00:27:47.538 What would happen if this process was reversed? 343 00:27:50.388 --> 00:27:54.038 This might cause an error, but let's test it out anyway 344 00:27:54.048 --> 00:28:01.747 If you select Inputs and All Inputs, there is an old Maya function that lets you change the order around 345 00:28:01.887 --> 00:28:04.847 Let's make the Skin Cluster go in front of BlendShape 346 00:28:05.497 --> 00:28:08.727 You can do that by middle clicking 347 00:28:08.727 --> 00:28:11.127 So now the order is 348 00:28:11.127 --> 00:28:14.767 Skin Cluster joint comes first 349 00:28:14.767 --> 00:28:16.967 and BlendShape comes after that 350 00:28:16.967 --> 00:28:21.807 So now I'll try the same animation as before 351 00:28:21.807 --> 00:28:25.007 and move the joint 352 00:28:25.007 --> 00:28:27.907 to get this sphere character on this side of the world 353 00:28:27.907 --> 00:28:30.557 What would happen 354 00:28:31.337 --> 00:28:32.337 if I now change its expression? 355 00:28:33.127 --> 00:28:36.807 It returns to the coordinates that is targeted by BlendShape 356 00:28:38.806 --> 00:28:40.306 Why does this happen? 357 00:28:40.306 --> 00:28:44.906 Because BlendShape was processed last 358 00:28:44.906 --> 00:28:47.886 So whatever happened before it 359 00:28:47.886 --> 00:28:51.236 BlendShape is structured so that 360 00:28:51.236 --> 00:28:56.136 it follows the shape of the target object 361 00:28:56.136 --> 00:28:58.537 So whatever pose the character was in before 362 00:28:58.537 --> 00:29:02.076 BlendShape will change it to become that of the target object 363 00:29:03.276 --> 00:29:05.577 From the vertices' perspective, of course that would happen 364 00:29:05.577 --> 00:29:08.276 The joint had sent them over there 365 00:29:08.276 --> 00:29:12.226 But BlendShape is set to put them in this state 366 00:29:12.276 --> 00:29:15.326 So even with the same two nodes 367 00:29:15.326 --> 00:29:19.776 You can get different results depending on the order they're in 368 00:29:19.776 --> 00:29:25.157 The first thing you learn about rigging is what joints are 369 00:29:25.157 --> 00:29:29.756 So now let's learn about what FK and IK are 370 00:29:29.827 --> 00:29:34.026 and how to switch the joints 371 00:29:34.026 --> 00:29:37.526 between FK and IK 372 00:29:37.526 --> 00:29:41.166 First let's create an FK joint 373 00:29:41.166 --> 00:29:46.207 by clicking on Create Joint 374 00:29:49.207 --> 00:29:53.007 To make it easy to see them, set the Radius to 0.5 375 00:29:53.007 --> 00:29:54.607 The Radius value has no actual function 376 00:29:54.607 --> 00:29:57.806 It just lets you see the joint in the viewport 377 00:29:57.806 --> 00:30:01.457 And to make it easy to differentiate the joints 378 00:30:01.836 --> 00:30:10.636 I'll also name them, like fk_jnt01 379 00:30:10.636 --> 00:30:12.636 and 02, 03 380 00:30:14.316 --> 00:30:20.956 So now there's a hierarchy of FK joints 381 00:30:22.156 --> 00:30:26.156 And this is how FK works, it stands for Forward Kinematics 382 00:30:26.186 --> 00:30:27.436 which simply means that if you move the parent 383 00:30:28.556 --> 00:30:33.276 the child joint moves along with it 384 00:30:33.276 --> 00:30:37.755 Now I'll copy and paste these FK joints and create some IK ones 385 00:30:37.755 --> 00:30:42.245 IK stands for Invert Kinematics 386 00:30:42.246 --> 00:30:45.226 It literally means that the operation is reversed 387 00:30:45.595 --> 00:30:48.795 which might sound complicated, but let's try it out ourselves 388 00:30:48.795 --> 00:30:51.836 This is a copy of the joints I just created 389 00:30:51.916 --> 00:30:56.156 So that I won't confuse it with the FK ones 390 00:30:56.156 --> 00:31:01.196 I'll put the Radius at 0.2 and hide the FK 391 00:31:03.356 --> 00:31:08.556 So now, the thing about IK is 392 00:31:08.556 --> 00:31:13.836 In Maya, there's something called a Preferred Angle 393 00:31:13.836 --> 00:31:20.475 the IK solver will calculate the flexure using this value 394 00:31:20.475 --> 00:31:25.435 If I bend it like this, the rotation is about -30 degrees 395 00:31:25.435 --> 00:31:31.755 The exact value doesn't matter right now 396 00:31:31.756 --> 00:31:33.986 I have given the IK solver 397 00:31:34.855 --> 00:31:39.765 orders about how to bend the joints 398 00:31:41.086 --> 00:31:42.786 And now I will create 399 00:31:43.565 --> 00:31:44.556 an IK handle 400 00:31:44.556 --> 00:31:47.435 This is the operator, called an IK solver 401 00:31:47.675 --> 00:31:51.276 Right now we should use the most basic solver 402 00:31:51.276 --> 00:31:55.516 which is the Rotate Plane Solver 403 00:31:55.516 --> 00:31:58.316 And add it to all of the joints 404 00:31:58.316 --> 00:32:03.115 Now you can see an IK handle in the Outliner 405 00:32:03.115 --> 00:32:09.435 So the animator can use either FK or IK depending on the situation 406 00:32:09.435 --> 00:32:13.836 If you wanted to animate the character waving goodbye, for instance 407 00:32:13.836 --> 00:32:15.996 FK would be better for that job 408 00:32:16.395 --> 00:32:21.276 In contrast, IK would be better for when 409 00:32:21.276 --> 00:32:25.276 the character is doing push-ups, or picking up an object 410 00:32:25.276 --> 00:32:29.836 or is leaning against a wall 411 00:32:29.836 --> 00:32:33.836 But to put these two systems in one character 412 00:32:33.836 --> 00:32:40.875 people usually create a set of joints that can switch between systems 413 00:32:40.875 --> 00:32:44.395 then use FK for one type of motion 414 00:32:44.395 --> 00:32:47.356 and use IK for other motions 415 00:32:47.356 --> 00:32:53.636 So you can switch between them as necessary 416 00:32:54.535 --> 00:32:57.235 So now let's create a set 417 00:32:58.336 --> 00:33:01.195 of three switching joints 418 00:33:03.345 --> 00:33:06.425 We'll name them, for example 419 00:33:07.535 --> 00:33:08.635 Skin 420 00:33:09.675 --> 00:33:12.885 I'll name these joints Skin Joint 421 00:33:13.035 --> 00:33:16.776 since these three joints will actually 422 00:33:18.076 --> 00:33:19.336 be bound to the object skin 423 00:33:20.636 --> 00:33:25.196 Change the Radius value for differentiation 424 00:33:25.197 --> 00:33:30.026 Now bind the FK joints and IK joints 425 00:33:30.046 --> 00:33:32.076 to these Skin joints 426 00:33:32.076 --> 00:33:34.875 There are a lot of ways to do the binding as well 427 00:33:34.875 --> 00:33:39.586 But I'll use the most basic option that I mentioned before 428 00:33:41.515 --> 00:33:44.475 which is through Constrain>Parent Constrain 429 00:33:44.476 --> 00:33:46.505 So ik_jnt01 is now Parent Constrained 430 00:33:46.525 --> 00:33:50.796 to skin_jnt01 431 00:33:50.797 --> 00:33:52.876 Number 02 to number 02 432 00:33:52.896 --> 00:33:59.356 and number 03 is constrained to skin_jnt03 433 00:33:59.356 --> 00:34:06.076 Then bind the FK joints to the Skin joints the same way 434 00:34:06.076 --> 00:34:09.276 Now you can see that these two values are at 1 435 00:34:09.276 --> 00:34:11.755 and because they are pulling with the same value 436 00:34:11.755 --> 00:34:13.996 the actual movement will be exactly halfway between them 437 00:34:13.996 --> 00:34:15.885 We'll see how that looks a bit later 438 00:34:16.985 --> 00:34:17.985 So now 439 00:34:21.285 --> 00:34:23.895 FK and IK 440 00:34:24.795 --> 00:34:26.635 we bound IK first, by the way 441 00:34:26.635 --> 00:34:32.235 So IK and FK are using the same method 442 00:34:32.235 --> 00:34:34.955 to constrain the skin joint 443 00:34:34.955 --> 00:34:36.235 So they're pulling on it 444 00:34:36.235 --> 00:34:38.716 Now let's see how that looks 445 00:34:38.795 --> 00:34:41.036 Now it's moving by FK 446 00:34:41.036 --> 00:34:42.235 Wait, that's not true 447 00:34:42.236 --> 00:34:43.185 If you move the FK joint 448 00:34:44.385 --> 00:34:45.776 the movement of the Skin joint 449 00:34:46.435 --> 00:34:47.835 will be the intermediate 450 00:34:49.276 --> 00:34:54.156 of the IK and FK joints' movement 451 00:34:54.156 --> 00:34:56.196 So if 452 00:34:56.577 --> 00:34:58.227 one of the Constrain values 453 00:34:59.284 --> 00:35:00.684 was set to 0 454 00:35:01.934 --> 00:35:04.784 For example, if I set the FK value to 0 455 00:35:05.784 --> 00:35:09.994 the Skin joints will follow the IK joints 456 00:35:09.994 --> 00:35:13.934 Which is why usually 457 00:35:14.284 --> 00:35:16.184 you add a controller 458 00:35:16.234 --> 00:35:17.374 So now 459 00:35:18.384 --> 00:35:20.284 let's erase the history 460 00:35:22.393 --> 00:35:29.503 And for controllers you would most commonly use a NURBS curve 461 00:35:30.793 --> 00:35:35.933 So I'll add a switch 462 00:35:36.434 --> 00:35:37.434 and name it 463 00:35:38.034 --> 00:35:39.984 IKFK_switch 464 00:35:41.384 --> 00:35:42.384 Now for its properties 465 00:35:43.483 --> 00:35:46.574 I'm going to add a controller 466 00:35:48.024 --> 00:35:52.503 enter the name ikfk_switch here 467 00:35:54.284 --> 00:36:00.794 And once you add the properties you can select the data type here 468 00:36:00.795 --> 00:36:05.224 and Vector means the three values that indicate direction and location 469 00:36:05.244 --> 00:36:09.484 Integer is just that, String is a text string, and Float 470 00:36:09.485 --> 00:36:15.854 is a real number that can have a decimal, Boolean is true/false 471 00:36:15.874 --> 00:36:18.484 And lastly Enum stands for enumeration 472 00:36:19.034 --> 00:36:23.734 We are going to add a numeric attribute property 473 00:36:24.534 --> 00:36:26.934 that has a maximum of 1 and minimum of 0 474 00:36:27.634 --> 00:36:28.934 Now let's continue working 475 00:36:29.484 --> 00:36:32.114 So now we have the controller 476 00:36:32.834 --> 00:36:36.284 And now that the controller is created 477 00:36:36.284 --> 00:36:44.874 let's try setting the value to 1 Now the joint will follow IK when set to 1, and FK when set to 0 478 00:36:44.875 --> 00:36:45.684 So, go to Connection Editor 479 00:36:46.224 --> 00:36:53.914 There are a lot of editors in Maya, but for rigging Connection Editor comes in handy 480 00:36:53.914 --> 00:36:58.873 ikfk_switch is currently set to 1 481 00:37:01.673 --> 00:37:07.383 Now let's connect the initial IK value to it 482 00:37:07.384 --> 00:37:08.983 which is 1 483 00:37:08.983 --> 00:37:13.804 So it's easy to set when IK is 1 484 00:37:13.805 --> 00:37:17.483 But at the same time 485 00:37:18.033 --> 00:37:19.433 the FK value has to be 0 486 00:37:19.554 --> 00:37:25.113 There are a lot of ways to do this, such as using key animation 487 00:37:25.113 --> 00:37:30.524 But right now I'll use nodes that riggers often use 488 00:37:30.525 --> 00:37:34.254 From the perspective of the controller, as you can see 489 00:37:34.274 --> 00:37:44.113 ikfk_switch is now connected to these 3 constraints through the Connection Editor 490 00:37:44.113 --> 00:37:52.434 and it's set so that all three values become 1 when this is set to 1 491 00:37:52.434 --> 00:37:56.693 But one value has to be reverse 492 00:37:57.544 --> 00:38:02.791 so I'll type in 'createNode reverse' 493 00:38:03.393 --> 00:38:10.613 which will reverse the value Here is the Connection Editor we used before 494 00:38:11.313 --> 00:38:16.944 this operator, reverse1, will reverse the value 495 00:38:16.945 --> 00:38:21.124 And you can get by default three values, x, y, and z 496 00:38:21.144 --> 00:38:28.834 We'll connect to the first one, x It doesn't actually matter which one you connect 497 00:38:28.834 --> 00:38:32.654 So this operator has now reversed the value 1 498 00:38:33.733 --> 00:38:40.183 And this reverse node will again connect to a constraint 499 00:38:40.254 --> 00:38:44.633 this time to the FK value 500 00:38:51.383 --> 00:38:55.654 So now this value can move between 0 and 1 501 00:38:55.654 --> 00:39:02.119 and the animator can animate in the way they need 502 00:39:02.953 --> 00:39:13.274 So in this first class we took a look at the various modeling techniques that I experienced firsthand during production 503 00:39:13.274 --> 00:39:23.113 and through that also looked at some things you need to know about rigging, and what IK and FK is 504 00:39:23.113 --> 00:39:31.834 Next time we will look at another function of IK, Spline IK And how a character using that function is completed 505 00:39:31.834 --> 00:39:41.434 And also, how all of the backgrounds and props should be rigged in preparation of production 506 00:39:41.435 --> 00:39:42.482 1. Character Modeling Temporary Modeling 507 00:39:42.483 --> 00:39:43.782 Giving 3D shape to the character as efficiently and quickly as possible in order to get a feel of the character 508 00:39:43.783 --> 00:39:44.933 Focus on creating large chunks using basic 3D shapes and coloring Supplement details that are hard to check in 2D 509 00:39:44.933 --> 00:39:46.283 Makes it possible to begin main modeling process with a sense of 3D shape Easy to modify or reproduce 510 00:39:46.283 --> 00:39:47.232 Main Modeling Polygons that are not quadrangles should be removed using Merge as soon as they are found 511 00:39:47.232 --> 00:39:48.412 Use Cleanup Options tool to clean up polygons as overlooked polygons may cause rendering problems 512 00:39:48.412 --> 00:39:49.582 2. Character Rigging Types of Nodes 513 00:39:49.582 --> 00:39:51.082 Shape Node: Information about vertices, edges, and faces Transform Node: Adjusts translator rotation & scale 514 00:39:51.082 --> 00:39:52.482 Blend Shape Moves between two or more shapes 515 00:39:52.482 --> 00:39:53.982 Used often for closing eyes, raising eyebrows, lipsync, etc. Use joints to move character within world and use BlendShape to create expressions 516 00:39:53.982 --> 00:39:55.382 Joint fk_joint to raise or wave arms 517 00:39:55.382 --> 00:39:57.032 ik_joint for push ups, picking up objects, leaning on walls, etc. Switching joint sets allows changing between IK and FK as necessary