WEBVTT 1 00:00:24.000 --> 00:00:24.950 Hello everyone 2 00:00:24.950 --> 00:00:28.000 I'm Professor Ok-hue Cho from Sangmyung university 3 00:00:28.000 --> 00:00:30.000 specializing in the use of Unreal Engine for immersive content creation 4 00:00:30.000 --> 00:00:36.000 In this session, we'll take a look at animation and motion 5 00:00:36.000 --> 00:00:38.900 Let's start this session by 6 00:00:38.900 --> 00:00:41.000 thinking about one particular topic 7 00:00:41.000 --> 00:00:42.900 Some of you may be familiar with 8 00:00:42.900 --> 00:00:44.750 the character currently displayed on the screen 9 00:00:44.750 --> 00:00:46.743 while others might be seeing it for the first time 10 00:00:46.743 --> 00:00:50.192 These are characters from a Korean drama 11 00:00:50.192 --> 00:00:54.000 showing their animation-related implementation and sources 12 00:00:54.000 --> 00:00:58.119 Those who have watched the drama will be quite familiar with these characters 13 00:00:58.119 --> 00:01:01.392 You can think of the animations shown here 14 00:01:01.392 --> 00:01:04.554 as being created using Unreal Engine 15 00:01:04.554 --> 00:01:07.204 This source material comes from the Unreal Summit 16 00:01:07.204 --> 00:01:13.287 a major annual event related to Unreal Engine 17 00:01:13.287 --> 00:01:15.737 As you all probably know 18 00:01:15.737 --> 00:01:18.000 Unreal Engine is primarily a game development engine 19 00:01:18.000 --> 00:01:21.500 Importantly, it's also widely used 20 00:01:21.500 --> 00:01:23.653 to create various types of content beyond games 21 00:01:23.653 --> 00:01:29.000 So, while it's commonly used for game development, it's also extensively used for creating animations 22 00:01:29.000 --> 00:01:31.700 Because of its advanced features 23 00:01:31.700 --> 00:01:36.149 it's widely utilized for implementing CG in movies as well 24 00:01:36.149 --> 00:01:39.703 It's also used extensively for creating various music videos 25 00:01:39.703 --> 00:01:45.515 Unreal Engine is becoming increasingly diverse in its ability to produce projects beyond games 26 00:01:45.515 --> 00:01:47.565 Unreal Engine is also used for creating documentaries 27 00:01:47.565 --> 00:01:51.565 and for virtual production concepts 28 00:01:51.565 --> 00:01:53.545 especially for large-scale broadcasts and extensive shoots 29 00:01:53.545 --> 00:01:57.782 The scope of Unreal Engine is expanding more and more 30 00:01:57.782 --> 00:02:03.089 Let's take some time in this session to think about concepts related to animation 31 00:02:03.089 --> 00:02:07.108 If I were to explain animation concepts 32 00:02:07.108 --> 00:02:10.139 using software like 3ds Max, Maya, or Blender 33 00:02:10.139 --> 00:02:13.939 I would discuss how to set up characters, animate them 34 00:02:13.939 --> 00:02:17.416 applying rendering techniques, and so on 35 00:02:17.416 --> 00:02:19.376 However, Unreal Engine is a game engine 36 00:02:19.376 --> 00:02:21.476 Animation concepts are crucial 37 00:02:21.476 --> 00:02:25.861 not only when creating games using Unreal Engine 38 00:02:25.861 --> 00:02:29.317 but also when producing entirely animated works 39 00:02:29.317 --> 00:02:33.767 The concept of animating assets, sometimes referred to as animating sources 40 00:02:33.767 --> 00:02:36.000 involves bringing characters to life through movement 41 00:02:36.000 --> 00:02:38.650 Animating a character involves incorporating the motion source itself 42 00:02:38.650 --> 00:02:41.000 into the concept of animation 43 00:02:41.000 --> 00:02:44.000 If I were talking about animation in relation to Unreal Engine 44 00:02:44.000 --> 00:02:48.119 about 10 years ago 45 00:02:48.119 --> 00:02:51.469 the focus would likely have been primarily on discussions 46 00:02:51.469 --> 00:02:53.584 about dynamic sources related to character animation 47 00:02:53.584 --> 00:02:57.000 These days, when discussing animation in relation to Unreal Engine 48 00:02:57.000 --> 00:03:00.900 the focus has shifted towards 49 00:03:00.900 --> 00:03:03.099 considering Unreal as a tool for creating actual animations 50 00:03:03.099 --> 00:03:05.249 In the past, especially with software like 3ds Max or maya 51 00:03:05.249 --> 00:03:08.584 a large number of people spent a long time 52 00:03:08.584 --> 00:03:11.224 creating animations 53 00:03:11.224 --> 00:03:13.584 due to the complexities of setting up and rendering 54 00:03:13.594 --> 00:03:16.344 Typically, creating 3D graphic animations would take 55 00:03:16.344 --> 00:03:18.307 at least 3 to 4 years as a standard 56 00:03:18.307 --> 00:03:20.607 Even 2 years was considered short 57 00:03:20.607 --> 00:03:23.000 That's because rendering times used to be quite lengthy 58 00:03:23.000 --> 00:03:27.020 However, programs like Maya have significantly sped up over time 59 00:03:27.020 --> 00:03:29.170 However, nowadays with Unreal Engine 60 00:03:29.170 --> 00:03:31.901 rendering concepts are real-time 61 00:03:31.901 --> 00:03:34.812 meaning you don't have to wait for rendering 62 00:03:34.812 --> 00:03:37.782 You simply press play and see the final result immediately 63 00:03:37.782 --> 00:03:41.406 So, because of the real-time rendering capabilities in Unreal Engine 64 00:03:41.406 --> 00:03:44.584 the approach of pressing play and immediately seeing the animation in action is widely used 65 00:03:44.584 --> 00:03:48.198 Therefore, when you see 3D graphic animations 66 00:03:48.198 --> 00:03:50.048 especially those on Netflix 67 00:03:50.048 --> 00:03:54.201 made using Unreal Engine 68 00:03:54.201 --> 00:03:58.772 of course, the number of people involved can vary widely depending on the case 69 00:03:58.772 --> 00:04:01.572 but with teams of several dozens 70 00:04:01.572 --> 00:04:05.426 the ecosystem and system itself have evolved drastically compared to the past 71 00:04:05.426 --> 00:04:09.126 Productions can now create one piece within a month or so 72 00:04:09.126 --> 00:04:11.990 reflecting this change 73 00:04:11.990 --> 00:04:14.240 It can be said that Unreal Engine has become indispensable 74 00:04:14.240 --> 00:04:19.990 in the era of animation production today 75 00:04:19.990 --> 00:04:22.890 Then let's delve into the content 76 00:04:22.890 --> 00:04:25.010 There are three main structures 77 00:04:25.010 --> 00:04:29.257 and the concepts we're discussing now are used in actual animation production as well 78 00:04:29.257 --> 00:04:34.157 Rather than that, let's focus more on creating games 79 00:04:34.157 --> 00:04:38.000 specifically animation sources and menus 80 00:04:38.000 --> 00:04:40.200 so, if you right-click to see 81 00:04:40.200 --> 00:04:42.760 when we examine, the material menu typically 82 00:04:42.760 --> 00:04:46.733 appears as the main menu at the top, with many sub-menus appearing below it 83 00:04:46.733 --> 00:04:50.261 Let's focus on exploring 84 00:04:50.261 --> 00:04:53.277 animation-related menus during this session 85 00:04:53.277 --> 00:04:57.426 Let's take a look at the Animation Blueprint Montage system first 86 00:04:57.426 --> 00:04:59.826 and then explore the concept of animation blending 87 00:04:59.826 --> 00:05:02.000 which is a very interesting concept 88 00:05:02.000 --> 00:05:06.000 It's a concept I personally find it fascinating as well 89 00:05:06.000 --> 00:05:10.307 With animation blending, you can mix animation together seamlessly, like mixing or blending them literally 90 00:05:10.307 --> 00:05:13.757 You can blend animations A, B, and C together 91 00:05:13.757 --> 00:05:20.000 overlapping them to create a blend where two animations are mixed 92 00:05:20.000 --> 00:05:22.650 For example, if A is a sitting down animation 93 00:05:22.650 --> 00:05:25.218 and B is a standing animation 94 00:05:25.218 --> 00:05:27.818 where the character is moving slightly 95 00:05:27.818 --> 00:05:32.618 blending them would seamlessly mix these actions 96 00:05:32.618 --> 00:05:34.366 creating a natural transition between sitting and slight movement without interruption 97 00:05:34.366 --> 00:05:36.822 It can be considered a very convenient concept 98 00:05:36.822 --> 00:05:38.672 Blending these three animations 99 00:05:38.672 --> 00:05:42.485 standing still, walking, and running 100 00:05:42.485 --> 00:05:45.885 allows for smooth transitions between them 101 00:05:45.885 --> 00:05:49.505 This means transitioning naturally from standing still to walking and then seamlessly into running 102 00:05:49.505 --> 00:05:53.955 rather than abruptly switching from one to the other 103 00:05:53.955 --> 00:05:57.584 It provides a convenient and natural way to create animations with fluid movements 104 00:05:57.594 --> 00:06:02.604 Next, skeletal mesh structure and animation retargeting concepts 105 00:06:02.604 --> 00:06:07.554 are really convenient features and widely used functionalities 106 00:06:07.554 --> 00:06:09.931 let's take a look at each of these one by one 107 00:06:10.525 --> 00:06:15.070 Animation Blueprint and Montage System 108 00:06:15.427 --> 00:06:17.727 First, the animation-related menu in Unreal Engine with detailed options 109 00:06:17.727 --> 00:06:20.427 with detailed options appearing when you right click 110 00:06:20.427 --> 00:06:24.535 You'll see various elements and components that you can create 111 00:06:24.535 --> 00:06:26.782 That also includes materials among its options 112 00:06:26.782 --> 00:06:29.132 When it comes to animation-related options 113 00:06:29.132 --> 00:06:32.382 right-clicking brings up a list like this 114 00:06:32.382 --> 00:06:35.040 with animation elements appearing there 115 00:06:35.040 --> 00:06:37.440 If you look at the sub-menu again 116 00:06:37.440 --> 00:06:39.812 you'll see various options like this 117 00:06:39.812 --> 00:06:44.604 Animation Blueprint appears, and above that, you'll see the cinematic menu 118 00:06:44.604 --> 00:06:46.804 Usually, the cinematic menu is heavily used 119 00:06:46.804 --> 00:06:49.475 when creating animations 120 00:06:49.475 --> 00:06:51.875 Setting up cameras, rendering out reels 121 00:06:51.875 --> 00:06:55.275 and such tasks are found in the Cinematics-related menus 122 00:06:55.275 --> 00:06:58.000 There are many interesting concepts like various tech recorders 123 00:06:58.000 --> 00:07:02.650 I'll focus on aspects 124 00:07:02.650 --> 00:07:05.218 closely related to games 125 00:07:05.218 --> 00:07:10.080 which are also applicable in animation productions 126 00:07:10.780 --> 00:07:17.304 Mirror Data Table, Blend Spaces, Animation Layer Interface, Animation Montages, Composites 127 00:07:17.304 --> 00:07:19.851 and many other diverse elements appear 128 00:07:19.851 --> 00:07:23.871 The most commonly used one is the Animation Blueprint 129 00:07:23.871 --> 00:07:27.871 Of course, among the various options that appear when you right-click 130 00:07:27.871 --> 00:07:30.000 at the top is the Blueprint Class 131 00:07:30.000 --> 00:07:31.600 Another way is to create a blueprint 132 00:07:31.600 --> 00:07:34.600 and select animations from there 133 00:07:34.600 --> 00:07:36.400 If you go into the animation menu itself 134 00:07:36.400 --> 00:07:38.584 you'll see a list of animation blueprints 135 00:07:38.584 --> 00:07:41.334 Therefore, the difference between other graphics programs and Unreal Engine is that 136 00:07:41.334 --> 00:07:46.000 other graphics programs have a lot of icons visible on the screen 137 00:07:46.000 --> 00:07:48.000 Unreal Engine, on the other hand has 138 00:07:48.000 --> 00:07:52.450 a hierarchical menu structure when you right-click 139 00:07:52.450 --> 00:07:55.250 As you go down one level, a lot more options appear 140 00:07:55.250 --> 00:07:58.673 and the same happens when you go further into those options 141 00:07:58.673 --> 00:08:00.323 I think the advantage of this is that 142 00:08:00.323 --> 00:08:02.752 when you're working in Unreal, there are specific fields you might specialize in 143 00:08:02.752 --> 00:08:05.252 You can choose menus as needed 144 00:08:05.252 --> 00:08:08.102 whether you're focused on animation, effects, coding 145 00:08:08.102 --> 00:08:09.902 or character setup 146 00:08:09.902 --> 00:08:13.465 which makes it convenient for your specific tasks in Unreal 147 00:08:13.465 --> 00:08:16.365 So whether I work with Unreal Engine for three or five years 148 00:08:16.365 --> 00:08:19.149 there will still be menus that I never end up touching 149 00:08:19.149 --> 00:08:21.149 You don't need to look at those menus then 150 00:08:21.149 --> 00:08:25.465 This type of menu structure seems very convenient 151 00:08:25.465 --> 00:08:27.426 In Unreal Engine, the Animation Blueprint is 152 00:08:27.426 --> 00:08:32.726 a very powerful tool that allows you 153 00:08:32.726 --> 00:08:34.644 to visually program the animation states and logic for characters or objects 154 00:08:34.644 --> 00:08:38.000 In Unreal Engine, everything is implemented using Blueprints 155 00:08:38.000 --> 00:08:40.000 Of course, it can be simple 156 00:08:40.000 --> 00:08:42.386 There's nothing you can't do with Blueprints 157 00:08:42.386 --> 00:08:44.881 From interactions to effects 158 00:08:44.881 --> 00:08:46.731 through this, developers and designers can implement 159 00:08:46.731 --> 00:08:52.168 and manage complex animation systems 160 00:08:52.168 --> 00:08:53.754 The Animation Blueprint 161 00:08:53.754 --> 00:08:59.921 consists of two main parts: the animation graph and the event graph 162 00:08:59.921 --> 00:09:02.621 First, when looking at the animation graph part 163 00:09:02.621 --> 00:09:06.317 it's somewhat similar to what you've seen when editing materials 164 00:09:06.317 --> 00:09:08.366 This part also consists of nodes, just like in the case of material editing 165 00:09:08.366 --> 00:09:12.337 It involves nodes that you connect one by one 166 00:09:12.337 --> 00:09:16.896 And usually when students study, they view it with just one laptop 167 00:09:16.896 --> 00:09:18.896 When working on multiple windows 168 00:09:18.896 --> 00:09:21.596 and then playing in Unreal 169 00:09:21.596 --> 00:09:23.346 you often have to set aside what you were working on, like materials, etc. 170 00:09:23.346 --> 00:09:25.000 and then resume the work in that manner 171 00:09:25.000 --> 00:09:27.400 If you're using dual monitors 172 00:09:27.400 --> 00:09:31.100 you can work on Blueprints without having to minimize them 173 00:09:31.100 --> 00:09:33.832 by moving them to the right or left monitor 174 00:09:33.832 --> 00:09:37.182 And when you play to preview 175 00:09:37.182 --> 00:09:39.632 you can see in real-time how any Blueprint 176 00:09:39.632 --> 00:09:42.282 regardless of which part 177 00:09:42.282 --> 00:09:44.082 is being executed 178 00:09:44.082 --> 00:09:46.317 and where errors might occur 179 00:09:46.317 --> 00:09:50.208 However, it can be challenging to view all those different screen on just a laptop 180 00:09:50.208 --> 00:09:54.507 So, one of the major components of an Animation Blueprint is the animation graph 181 00:09:54.507 --> 00:09:57.000 which consists of animation nodes 182 00:09:57.000 --> 00:10:01.525 Animation files, let me explain those first 183 00:10:01.525 --> 00:10:03.175 We refer to animation sources 184 00:10:03.175 --> 00:10:06.178 as the detailed movement of characters 185 00:10:06.178 --> 00:10:12.109 such as how they walk, run, move their faces, jump, and even soar into the sky 186 00:10:12.109 --> 00:10:16.027 after jumping up and standing 187 00:10:16.027 --> 00:10:19.257 among other actions 188 00:10:19.257 --> 00:10:22.207 So typically, these animation sources are obtained from marketplaces 189 00:10:22.207 --> 00:10:26.007 created in software like 3ds Max or Maya, or made in Blender 190 00:10:26.007 --> 00:10:29.584 Characters have bones embedded in them, which perform various movements 191 00:10:29.584 --> 00:10:33.832 In most cases, these animations are imported and used in the form of FBX files 192 00:10:33.832 --> 00:10:35.632 With updates to Unreal Engine 193 00:10:35.632 --> 00:10:38.082 and as Unreal continues to update 194 00:10:38.082 --> 00:10:42.732 now you can create detailed movements directly within Unreal itself 195 00:10:42.732 --> 00:10:46.406 if you have set up the character skeleton 196 00:10:46.406 --> 00:10:48.056 When importing and FBX file containing external animations 197 00:10:48.056 --> 00:10:53.011 after importing 198 00:10:53.011 --> 00:10:55.327 and checking the folder 199 00:10:55.327 --> 00:10:57.677 you'll find a skeletal mesh, which contains the foundation 200 00:10:57.677 --> 00:11:01.377 and then separate animation sequences 201 00:11:01.377 --> 00:11:03.198 for each specific animation movement within Unreal Engine 202 00:11:03.198 --> 00:11:05.998 If characters share the same skeleton 203 00:11:05.998 --> 00:11:09.069 for example, there are characters A and B 204 00:11:09.069 --> 00:11:11.969 with different appearances, but they share the same skeleton structure 205 00:11:11.969 --> 00:11:14.941 so they can perform the same movements 206 00:11:14.941 --> 00:11:17.641 However, even if the bone structure differs by just one bone 207 00:11:17.641 --> 00:11:20.901 there might be some difficulty in performing movements smoothly 208 00:11:20.901 --> 00:11:24.701 Anyway, how you set up and use animation motion data in games 209 00:11:24.701 --> 00:11:26.851 whether for gameplay or specific animations 210 00:11:26.851 --> 00:11:29.188 is crucial concepts to study 211 00:11:29.188 --> 00:11:31.538 when learning about animations 212 00:11:31.538 --> 00:11:35.257 in Unreal Engine 213 00:11:35.257 --> 00:11:41.297 The animation graph defines the animation states and transitions of a character 214 00:11:41.297 --> 00:11:43.547 Within this graph 215 00:11:43.547 --> 00:11:50.000 developers can create various animation states and set conditions for transitioning between each state 216 00:11:50.000 --> 00:11:54.900 For example, a character can have various animation states 217 00:11:54.900 --> 00:11:58.089 such as walking, running, jumping, and so on 218 00:11:58.089 --> 00:12:00.239 These states can change 219 00:12:00.239 --> 00:12:04.000 based on the character's speed and user input 220 00:12:04.000 --> 00:12:06.139 Next is the event graph 221 00:12:06.139 --> 00:12:09.129 The animation graph we discussed earlier 222 00:12:09.129 --> 00:12:12.733 is where specific movements are organized 223 00:12:12.733 --> 00:12:14.782 sequenced and structured 224 00:12:14.782 --> 00:12:16.661 This part of the setup is referred to as 225 00:12:16.661 --> 00:12:18.782 the animation graph 226 00:12:18.782 --> 00:12:23.762 The event graph, on the other hand, involves programming related to game logic 227 00:12:23.762 --> 00:12:24.962 So, for example 228 00:12:24.962 --> 00:12:28.000 when a certain key is pressed, specific actions occur 229 00:12:28.000 --> 00:12:31.069 or as soon as the game starts, certain actions are triggered 230 00:12:31.069 --> 00:12:34.683 Alternatively, a character might remain idle 231 00:12:34.683 --> 00:12:37.267 until a specific situation arises, prompting a specific action 232 00:12:37.267 --> 00:12:40.168 This kind of setup is often used in game scenarios 233 00:12:40.168 --> 00:12:43.693 For example, when a character picks up a specific item, they can perform certain actions 234 00:12:43.693 --> 00:12:47.000 when holding a specific weapon, they can perform different actions 235 00:12:47.000 --> 00:12:51.396 Pressing certain keys might trigger or disable actions, and so on 236 00:12:51.396 --> 00:12:54.396 These scenarios and actions are orchestrated through events 237 00:12:54.396 --> 00:12:57.000 which are essentially individual occurrences or incidents 238 00:12:57.000 --> 00:13:02.673 The Blueprint process of setting up these actions is referred to as the event graph 239 00:13:02.673 --> 00:13:06.000 You can set variables to control animations 240 00:13:06.000 --> 00:13:08.250 and implement logic 241 00:13:08.250 --> 00:13:12.426 to update animations in response to gameplay events 242 00:13:12.426 --> 00:13:15.276 For example, changing the animation when a character collides with a specific object 243 00:13:15.276 --> 00:13:17.238 or triggering animations 244 00:13:17.238 --> 00:13:20.644 for fatigue 245 00:13:20.644 --> 00:13:22.744 pain, or injury 246 00:13:22.744 --> 00:13:25.743 when the character's health drops below a certain level 247 00:13:25.743 --> 00:13:28.443 these types of logic are implemented 248 00:13:28.443 --> 00:13:31.743 in the event graph 249 00:13:31.743 --> 00:13:35.188 Let's take a closer look at the Animation Blueprint in more detail 250 00:13:35.188 --> 00:13:39.538 We can divide it into 251 00:13:39.538 --> 00:13:42.000 state machines, blend spaces, and animation montages 252 00:13:42.000 --> 00:13:46.743 And one of the important aspects here is the state machine 253 00:13:46.743 --> 00:13:50.752 in games, animations typically require careful setup 254 00:13:50.752 --> 00:13:53.852 especially when it comes to cinematic animations and the logic 255 00:13:53.852 --> 00:13:58.000 for transitioning between different states 256 00:13:58.000 --> 00:14:01.000 In games, there can be all sorts of situations 257 00:14:01.000 --> 00:14:06.743 There are various scenarios in games 258 00:14:06.743 --> 00:14:10.043 such as when a character dies, gets injured, wears a specific item 259 00:14:10.043 --> 00:14:11.713 enters a certain area, carries a pet, climbs, etc. 260 00:14:11.713 --> 00:14:16.554 The concept that handles how different animation states transition based on various situations is 261 00:14:16.554 --> 00:14:20.832 precisely what a state machine addresses 262 00:14:20.832 --> 00:14:24.891 In the past, before game engines existed 263 00:14:24.891 --> 00:14:29.663 complex animation logic would have been entirely coded manually 264 00:14:29.663 --> 00:14:33.446 However, with game engines, especially when using the concept of Blueprints 265 00:14:33.446 --> 00:14:38.960 it's like designing a blueprint where you just need to connect nodes together effectively 266 00:14:38.960 --> 00:14:41.000 Next, there's the blend space 267 00:14:41.000 --> 00:14:43.200 Blend spaces allow for 268 00:14:43.200 --> 00:14:46.802 smooth mixing of two ore more animations 269 00:14:46.802 --> 00:14:49.402 essentially like putting them in a mixer and smoothly blend movements 270 00:14:49.402 --> 00:14:52.040 which is a fantastic feature 271 00:14:52.040 --> 00:14:54.640 If this feature didn't exist, the character would abruptly switch from performing action A 272 00:14:54.640 --> 00:14:57.297 to suddenly performing action B without any smooth transition 273 00:14:57.297 --> 00:15:00.970 Instead, with a blend space, you can smoothly transition to action B in a natural way 274 00:15:00.970 --> 00:15:04.370 and you can even control how quickly or gradually the blending occurs 275 00:15:04.370 --> 00:15:06.720 It's indeed a remarkable feature 276 00:15:06.720 --> 00:15:11.270 This concept can be applied not only when creating animations 277 00:15:11.270 --> 00:15:14.520 but also when developing games, using blend space concepts 278 00:15:14.520 --> 00:15:17.160 to implement these functionalities very effectively 279 00:15:17.160 --> 00:15:21.710 It allows for creating very natural character movements 280 00:15:21.710 --> 00:15:24.210 For example, as mentioned earlier 281 00:15:24.210 --> 00:15:27.510 you can blend walking and running animations to achieve smooth transitions 282 00:15:27.510 --> 00:15:31.404 based on the character's speed, creating natural movements 283 00:15:31.404 --> 00:15:37.204 For instance, using the blende space concept, you can implement that holding up the arrow key for a certain duration 284 00:15:37.204 --> 00:15:38.439 gradually transitions from walking to running 285 00:15:38.439 --> 00:15:41.289 Furthermore, holding it longer could increase the running speed 286 00:15:41.289 --> 00:15:44.919 allowing for dynamic control over character movements based on input duration 287 00:15:44.919 --> 00:15:47.569 Next, there's the concept of animation montages 288 00:15:47.569 --> 00:15:51.569 Animation montages are useful for managing complex animation sequences systematically 289 00:15:51.569 --> 00:15:55.685 They allow for playing, stopping, and blending specific animations as needed 290 00:15:55.685 --> 00:15:59.880 making them highly versatile for use in different situations 291 00:15:59.880 --> 00:16:02.480 Through animation montages, you can efficiently control specific animations 292 00:16:02.480 --> 00:16:05.830 such as attack animations or skill usage animations for characters 293 00:16:05.830 --> 00:16:08.879 It provides a convenient system for managing and executing these animations 294 00:16:08.879 --> 00:16:15.238 Let's take a closer look at the animation montage system in more detail 295 00:16:15.238 --> 00:16:17.488 Using animation montages allows 296 00:16:17.488 --> 00:16:20.488 direct control over animation assets 297 00:16:20.488 --> 00:16:23.680 via Blueprints or C++ code 298 00:16:23.680 --> 00:16:27.980 I should explain the difference between Blueprints and C++ here 299 00:16:27.980 --> 00:16:30.180 When you first launch Unreal Engine 300 00:16:30.180 --> 00:16:32.849 from the Epic Games Launcher and select a version 301 00:16:32.849 --> 00:16:36.199 you can create a new project after starting Unreal Engine 302 00:16:36.199 --> 00:16:39.383 At that point, when creating a project 303 00:16:39.383 --> 00:16:43.683 you have the option to choose 304 00:16:43.683 --> 00:16:49.367 between Blueprint and C++ development methods 305 00:16:49.367 --> 00:16:51.567 An important aspect here is that 306 00:16:51.567 --> 00:16:57.279 choosing the C++ option means you'll develop all content using C++ 307 00:16:57.279 --> 00:17:04.179 whereas selecting Blueprint means you'll develop everything using Blueprints 308 00:17:04.179 --> 00:17:08.279 When Blueprints were first introduced 309 00:17:08.279 --> 00:17:12.639 many professional programmers were initially skeptical or hesitant about them 310 00:17:12.639 --> 00:17:16.189 Because professional programmers are accustomed to continuous coding 311 00:17:16.189 --> 00:17:20.816 adding comments, and working with text-based scripting, which they find more comfortable 312 00:17:20.816 --> 00:17:22.966 Blueprints were first introduced 313 00:17:22.966 --> 00:17:28.229 to allow non-programmers, artists, and graphic designers 314 00:17:28.229 --> 00:17:30.429 to implement a certain level of interaction themselves 315 00:17:30.429 --> 00:17:32.979 I think the biggest advantage of Blueprints is 316 00:17:32.979 --> 00:17:36.082 the node-based visual scripting 317 00:17:36.082 --> 00:17:37.632 where you connect nodes together 318 00:17:37.632 --> 00:17:41.032 It's the concept of coding without having to open Visual Studio 319 00:17:41.032 --> 00:17:43.932 Working with Blueprints allow you 320 00:17:43.932 --> 00:17:49.839 to gain a deep understanding of various Unreal Engine development structures 321 00:17:49.839 --> 00:17:52.289 Even though you're coding with Blueprints 322 00:17:52.289 --> 00:17:54.439 the fundamental coding concepts remain the same 323 00:17:54.439 --> 00:17:56.639 Many students who start coding with Blueprints eventually transition smoothly to traditional coding methods 324 00:17:56.639 --> 00:18:00.600 as the underlying concepts remain consistent 325 00:18:00.600 --> 00:18:08.947 despite the visual nature of Blueprints 326 00:18:08.947 --> 00:18:12.247 And they find it useful especially for simple interactions or basic implementations 327 00:18:12.247 --> 00:18:14.997 Then it's possible to achieve almost complete implementations 328 00:18:14.997 --> 00:18:19.360 without having to open Microsoft Visual Studio, just using Blueprints 329 00:18:19.360 --> 00:18:21.110 It's a highly beneficial system 330 00:18:21.110 --> 00:18:26.760 There's a similar concept in Unity 3D game engine called PlayMaker 331 00:18:26.760 --> 00:18:29.760 where you connect nodes without opening Visual Studio 332 00:18:29.760 --> 00:18:32.240 which is a very innovative and convenient concept 333 00:18:32.240 --> 00:18:35.590 From a learner's perspective, and even for professionals 334 00:18:35.590 --> 00:18:38.990 visual scripting like Blueprints often offers more effective learning outcomes 335 00:18:38.990 --> 00:18:40.960 compared to text-based coding 336 00:18:40.960 --> 00:18:44.610 So, the concept of Animation Montage allows you to combine 337 00:18:44.610 --> 00:18:46.910 multiple animation sequences 338 00:18:46.910 --> 00:18:50.827 into a single entity or essence 339 00:18:50.827 --> 00:18:56.600 divided into sections for partial or combined playback 340 00:18:56.600 --> 00:18:59.500 Within Animation Montages 341 00:18:59.500 --> 00:19:03.800 you can trigger events to perform various local or replicated actions 342 00:19:03.800 --> 00:19:08.000 You can use Animation Montages to conveniently integrate various functionalities 343 00:19:08.000 --> 00:19:12.550 such as playing sound cues or particle effects 344 00:19:12.550 --> 00:19:16.029 modifying player values like token counts 345 00:19:16.029 --> 00:19:18.229 and even replicating root motion replay 346 00:19:18.229 --> 00:19:21.661 in networked games 347 00:19:21.661 --> 00:19:25.959 when the root motion of animations is enabled 348 00:19:25.959 --> 00:19:28.359 These are advantages that can be highlighted 349 00:19:28.359 --> 00:19:32.609 Sometimes you need Animation Blueprints 350 00:19:32.609 --> 00:19:35.309 other times you need Animation Montages 351 00:19:35.309 --> 00:19:39.119 and sometimes Blend Spaces, each situation requires different needs 352 00:19:39.119 --> 00:19:40.790 Ideally, all you need are 353 00:19:40.790 --> 00:19:42.840 animation files 354 00:19:42.840 --> 00:19:44.890 and various FBX files 355 00:19:44.890 --> 00:19:48.940 You don't necessarily need to worry about extracting just the video 356 00:19:48.940 --> 00:19:53.590 interaction isn't required 357 00:19:53.590 --> 00:19:57.240 You don't need to know anything about it at all 358 00:19:57.240 --> 00:20:01.040 but again, I want to emphasize that the concepts I'm explaining right now are related to games 359 00:20:01.040 --> 00:20:04.040 Of course, you can also use it for animations 360 00:20:04.040 --> 00:20:10.399 I'll take a closer look at the Montage system interface in more detail 361 00:20:10.399 --> 00:20:14.099 These can be divided into three concepts 362 00:20:14.099 --> 00:20:17.149 sections, slots, and group slots 363 00:20:17.149 --> 00:20:20.399 Since the graphics may vary slightly between versions 364 00:20:20.399 --> 00:20:24.119 it's good to keep that in mind as a reference 365 00:20:24.119 --> 00:20:25.119 But that's there 366 00:20:25.119 --> 00:20:29.810 The interface between 4.27 and 5.0 is of course different visually, but the concepts are mostly similar 367 00:20:29.810 --> 00:20:32.960 It's not completely different like entirely different programs 368 00:20:32.960 --> 00:20:38.660 Similarly, between 5.0 and 5.1, and between 5.1 and 5.2, the differences are minimal 369 00:20:38.660 --> 00:20:43.460 However, there's quite a gap between 4.27 and 5.3 370 00:20:43.460 --> 00:20:47.631 But they're not completely different programs 371 00:20:47.631 --> 00:20:53.431 So, with each version update 372 00:20:53.431 --> 00:20:56.381 like all these programs, large 3D graphics software, for instance 373 00:20:56.381 --> 00:20:58.559 typically releases a new version about once a year 374 00:20:58.559 --> 00:21:02.459 With versions like 2021 and 2022 375 00:21:02.459 --> 00:21:07.359 in the case of Unity, updates can be frequent, sometimes even twice a month 376 00:21:07.359 --> 00:21:15.760 Unreal Engine, on the other hand,, has seen rapid releases from 5.0 to 5.3 in a short span 377 00:21:15.760 --> 00:21:18.410 And even within the same version number like 5.x 378 00:21:18.410 --> 00:21:20.460 updates can vary from time to time 379 00:21:20.460 --> 00:21:23.660 Each time, elements might be added or removed 380 00:21:23.660 --> 00:21:26.279 and various features might be merged into one 381 00:21:26.279 --> 00:21:30.379 Especially, the graphical UI tends to change slightly with each update 382 00:21:30.379 --> 00:21:33.720 You need to pay close attention to these changes 383 00:21:33.720 --> 00:21:36.137 Sections, slots, and group slots 384 00:21:36.137 --> 00:21:39.037 can be displayed in the interface like this 385 00:21:39.037 --> 00:21:41.760 It's like there are several empty slots 386 00:21:41.760 --> 00:21:46.307 There are several empty slots where you can store accessories or office supplies 387 00:21:46.307 --> 00:21:49.920 and you can set up drawers in them as you like 388 00:21:49.920 --> 00:21:55.820 Think of it like managing drawers 389 00:21:55.820 --> 00:21:59.720 here it repeats, here it starts, here it ends, and let's repeat this once more 390 00:21:59.720 --> 00:22:05.849 This drawer concept will help you better understand the montage system 391 00:22:05.849 --> 00:22:11.079 So now, let's take a closer look those three concepts we discussed earlier 392 00:22:11.079 --> 00:22:14.519 First, let's take a look at sections in the montage system 393 00:22:14.519 --> 00:22:19.119 When you create sections, you can divide a slot into various parts of the animation 394 00:22:19.119 --> 00:22:21.819 Think of it like organizing drawers, as I mentioned earlier 395 00:22:21.819 --> 00:22:24.480 and I think you'll find it easier to understand 396 00:22:24.480 --> 00:22:29.399 Each section contains names and positions within the timeline of slots 397 00:22:29.399 --> 00:22:31.999 I can also jump directly to this action from one action 398 00:22:31.999 --> 00:22:34.799 in a specific section using these names 399 00:22:34.799 --> 00:22:37.449 If the current section ends 400 00:22:37.449 --> 00:22:40.200 you can also enqueue it to play next 401 00:22:40.200 --> 00:22:43.210 So, you'll need to do these operations in Blueprint 402 00:22:43.210 --> 00:22:45.519 where you can query the current section 403 00:22:45.519 --> 00:22:48.279 jump to a specific section 404 00:22:48.279 --> 00:22:52.279 or set the next section to play directly 405 00:22:52.279 --> 00:22:53.879 But when it comes to coding 406 00:22:53.879 --> 00:22:55.640 Blueprint operates on a fundamentally different conceptual level compared to traditional coding 407 00:22:55.640 --> 00:22:57.839 Blueprint allow you to visually organize your coding tasks 408 00:22:57.839 --> 00:23:00.389 by placing nodes and connecting them 409 00:23:00.389 --> 00:23:01.760 making it much more intuitive 410 00:23:01.760 --> 00:23:07.600 and convenient to work with 411 00:23:07.600 --> 00:23:12.559 Think of sections as songs in a music playlist 412 00:23:12.559 --> 00:23:15.209 Slots are like albums that can contain music 413 00:23:15.209 --> 00:23:17.000 Inside each album, there are multiple songs 414 00:23:17.000 --> 00:23:19.480 Think of it that way, and it should make things clearer 415 00:23:19.480 --> 00:23:21.380 While playing one section 416 00:23:21.380 --> 00:23:26.199 when it ends, you can immediately jump to another section in the slot 417 00:23:26.199 --> 00:23:29.239 like listening to this, then that, then this music 418 00:23:29.239 --> 00:23:32.320 If you think of it in that concept, it should make sense 419 00:23:32.320 --> 00:23:35.719 Thinking of it as a drawer concept where you open one and see what's inside 420 00:23:35.719 --> 00:23:37.569 each drawer being a slot 421 00:23:37.569 --> 00:23:40.039 is a good analogy to understand it 422 00:23:40.039 --> 00:23:41.640 When making games, this is very important 423 00:23:41.640 --> 00:23:43.190 Because with animations 424 00:23:43.190 --> 00:23:46.159 I just need to arrange the desired actions on a timeline 425 00:23:46.159 --> 00:23:48.291 and display them sequentially 426 00:23:48.291 --> 00:23:50.641 However, in games 427 00:23:50.641 --> 00:23:53.010 the actions a character needs to perform can change depending on the situation 428 00:23:53.010 --> 00:23:56.410 When using this approach in development 429 00:23:56.410 --> 00:24:01.080 it becomes very convenient to set up actions for characters to make movements 430 00:24:01.080 --> 00:24:02.719 Next slot 431 00:24:02.719 --> 00:24:05.919 The concept of montage encompasses everything within this 432 00:24:05.919 --> 00:24:07.551 And while listening to this explanation 433 00:24:07.551 --> 00:24:12.640 I think it would be more effective if you try creating an animation montage with Unreal open 434 00:24:12.640 --> 00:24:17.781 and look at the interface while following along with the explanation 435 00:24:17.781 --> 00:24:21.760 Think of slots within a montage as tracks 436 00:24:21.760 --> 00:24:26.280 that can hold as many animations as you want 437 00:24:26.280 --> 00:24:29.280 You can name the slots randomly 438 00:24:29.280 --> 00:24:31.400 You can use specific alphabets if you want 439 00:24:31.400 --> 00:24:33.450 In my case, I often use the alphabetical order 440 00:24:33.450 --> 00:24:36.400 or fruit names to make it easier to remember 441 00:24:36.400 --> 00:24:38.750 You can use those names 442 00:24:38.750 --> 00:24:41.840 to blend different animations within them 443 00:24:41.840 --> 00:24:44.690 So, you can neatly place each animation into the montage 444 00:24:44.690 --> 00:24:47.760 or separate slots 445 00:24:47.760 --> 00:24:50.460 In the animation graph of the animation blueprint 446 00:24:50.460 --> 00:24:52.159 you can use the Slot node 447 00:24:52.159 --> 00:24:55.840 so that character can be standing or lying down 448 00:24:55.840 --> 00:24:59.000 The character will perform various actions when it appears in the game 449 00:24:59.000 --> 00:25:02.599 Accordingly, you can easily decide which set of animations to use 450 00:25:02.599 --> 00:25:06.030 through the slots 451 00:25:06.030 --> 00:25:08.960 The next is the group slot, which is a very simple concept 452 00:25:08.960 --> 00:25:10.359 It's a collection of slots 453 00:25:10.359 --> 00:25:14.173 You can think of it as a group slot 454 00:25:14.562 --> 00:25:19.185 After animation blending, skeletal mesh structure, and animation retargeting 455 00:25:19.354 --> 00:25:23.679 the next powerful feature is the blend space, which is highly related animations 456 00:25:23.679 --> 00:25:26.599 You can mix and blend motions freely 457 00:25:26.599 --> 00:25:30.679 You can mix sitting motions with fancy dancing 458 00:25:30.679 --> 00:25:33.760 blend jumping with standing at attention 459 00:25:33.760 --> 00:25:36.440 or combine walking with running 460 00:25:36.440 --> 00:25:40.760 It automatically mixes them, which is really impressive and convenient 461 00:25:40.760 --> 00:25:44.679 In Unreal Engine, blend spaces smoothly mix multiple animations 462 00:25:44.679 --> 00:25:49.200 Think of it like putting various ingredients into a blender to make a mixed dish 463 00:25:49.200 --> 00:25:52.880 It allows you to express character movements more naturally and diversely 464 00:25:52.880 --> 00:25:56.919 This feature is most commonly used in animations 465 00:25:56.919 --> 00:26:00.400 where there needs to be smooth transitions between walking, running, and sprinting motions 466 00:26:00.400 --> 00:26:04.900 You can blend animations very naturally based on various input variables 467 00:26:04.900 --> 00:26:09.119 such as character speed, direction, incline, and more 468 00:26:09.119 --> 00:26:12.559 Let's take a look at the main components of blend spaces 469 00:26:12.559 --> 00:26:14.880 The axes and animation samples 470 00:26:14.880 --> 00:26:17.799 The axes refer to what you might think 471 00:26:17.799 --> 00:26:22.000 representing variables like speed and direction 472 00:26:22.000 --> 00:26:25.799 The animation samples - each axis has specific conditions 473 00:26:25.799 --> 00:26:29.440 The most commonly used concept is, for example 474 00:26:29.440 --> 00:26:32.599 placing animation samples 475 00:26:32.599 --> 00:26:36.599 corresponding to minimum speed and maximum speed on each axis 476 00:26:36.599 --> 00:26:40.320 You can say that within the blend space 477 00:26:40.320 --> 00:26:43.599 the samples are automatically blended as described earlier 478 00:26:43.599 --> 00:26:48.520 It's fundamentally present in many games and is one of the most commonly used features 479 00:26:48.520 --> 00:26:50.900 because characters need to move 480 00:26:50.900 --> 00:26:55.239 I have captured the screen 481 00:26:55.239 --> 00:26:56.839 showing the most commonly used blend space samples 482 00:26:56.839 --> 00:26:59.239 related to movement and put it on the screen now 483 00:26:59.239 --> 00:27:01.439 Usually, when a character is idle 484 00:27:01.439 --> 00:27:03.479 as you may have experienced in games 485 00:27:03.479 --> 00:27:06.479 they're not standing still but rather standing at attention 486 00:27:06.479 --> 00:27:08.280 or doing something else 487 00:27:08.280 --> 00:27:12.520 Like slight shoulder movements, shifting weight between legs 488 00:27:12.520 --> 00:27:15.320 or even breathing subtly 489 00:27:15.320 --> 00:27:17.000 there's always some form of idle animation 490 00:27:17.000 --> 00:27:19.159 They move ever so slightly, just a little bit 491 00:27:19.159 --> 00:27:21.209 Then there's the walking animation 492 00:27:21.209 --> 00:27:24.080 and when the character picks up a specific key or item 493 00:27:24.080 --> 00:27:25.430 there's running animation 494 00:27:25.430 --> 00:27:29.960 Whether it's an MMORPG, shooting game, or adventure game 495 00:27:29.960 --> 00:27:33.520 since characters inevitably move 496 00:27:33.520 --> 00:27:38.159 we can say that blend space is a concept that appears most frequently and is essential 497 00:27:38.159 --> 00:27:40.309 In the blend space workspace 498 00:27:40.309 --> 00:27:43.840 of course, there are sometimes pop-up windows that explain things a bit 499 00:27:43.840 --> 00:27:48.239 Most programs that have timelines 500 00:27:48.239 --> 00:27:53.200 exist in general video editing or 2D programs 501 00:27:53.200 --> 00:27:57.559 3D graphic programs like 3ds Max, Maya, and Blender have timelines 502 00:27:57.559 --> 00:28:00.919 In these programs, when you click back and forth on the timeline 503 00:28:00.919 --> 00:28:04.679 it recognizes that specific point 504 00:28:04.679 --> 00:28:08.400 However, in the case of Blend Space in Unreal 505 00:28:08.400 --> 00:28:11.050 To see the action at a specific timing 506 00:28:11.050 --> 00:28:14.799 You have to press the control key and move the mouse cursor 507 00:28:14.799 --> 00:28:17.049 Sometimes, this explanation doesn't appear automatically 508 00:28:17.049 --> 00:28:19.760 in certain versions 509 00:28:19.760 --> 00:28:21.760 So, in some versions, even clicking doesn't work 510 00:28:21.760 --> 00:28:25.280 and if you want to preview this action 511 00:28:25.280 --> 00:28:31.000 remember that pressing the Control key is essential in blend spaces 512 00:28:31.000 --> 00:28:33.119 It would be helpful to remember this 513 00:28:33.119 --> 00:28:35.957 When you hold down the Control key and move the mouse cursor back and forth 514 00:28:35.957 --> 00:28:39.455 you'll notice that instead of abruptly transitioning from idle to walking 515 00:28:39.455 --> 00:28:42.080 or suddenly jumping to running 516 00:28:42.080 --> 00:28:46.359 the character moves naturally from idle to walking and then smoothly transitions into runnign 517 00:28:46.359 --> 00:28:48.320 It is really impressive 518 00:28:48.320 --> 00:28:50.599 Therefore, to give another example 519 00:28:50.599 --> 00:28:54.549 scenes where characters draw a knife from their pocket and attack someone 520 00:28:54.549 --> 00:28:57.000 are very common in games 521 00:28:57.000 --> 00:28:59.750 Even in these moments, the action of drawing the knife 522 00:28:59.750 --> 00:29:02.000 not every swing of the knife will be the same 523 00:29:02.000 --> 00:29:06.119 it depends on the situation 524 00:29:06.119 --> 00:29:08.200 but the action of drawing the knife is usually the same 525 00:29:08.200 --> 00:29:10.950 These actions, like drawing and swinging the knife 526 00:29:10.950 --> 00:29:14.880 are blended naturally to be used in games 527 00:29:14.880 --> 00:29:18.380 Anyway, within a large content project 528 00:29:18.380 --> 00:29:22.400 there may be various animation motion files 529 00:29:22.400 --> 00:29:26.159 but there's no need to import the same action multiple times 530 00:29:26.159 --> 00:29:29.799 Even in those cases, these features are incredibly useful 531 00:29:29.799 --> 00:29:33.000 Here, to emphasize the most important point once again 532 00:29:33.000 --> 00:29:35.760 let's say there's a motion source A 533 00:29:35.760 --> 00:29:38.599 To perform this motion source 534 00:29:38.599 --> 00:29:43.699 only characters with a skeletal structure that matches 100% of this motions source 535 00:29:43.699 --> 00:29:45.559 can execute this action 536 00:29:45.559 --> 00:29:49.599 If the number of vertebrae or the number of fingers differ 537 00:29:49.599 --> 00:29:54.679 the leg structure could have an extra bone in the knee or not 538 00:29:54.679 --> 00:30:00.000 and the ankle could have a bone from under the knee to the bottom or go straight out 539 00:30:00.000 --> 00:30:02.850 and you could tie a few bones in the peach bone here 540 00:30:02.850 --> 00:30:06.150 Because each bone in such a structure has a different name 541 00:30:06.150 --> 00:30:08.050 when performing this animation file 542 00:30:08.050 --> 00:30:11.240 it can be said that the skeleton structure is really important 543 00:30:11.240 --> 00:30:16.790 So, earlier, I showed the interface along with the character for each action 544 00:30:16.790 --> 00:30:23.240 The content I'm going to show now is an expanded view of the submenu within the previous interface 545 00:30:23.240 --> 00:30:26.890 Each point represents a separate action 546 00:30:26.890 --> 00:30:31.940 The X marks you see, if you look closely, are small green X marks 547 00:30:31.940 --> 00:30:34.840 I've clicked and held down Ctrl on that area 548 00:30:34.840 --> 00:30:39.240 The screen displays what action is being performed in that area 549 00:30:39.240 --> 00:30:42.040 Whether to continue playing or pause 550 00:30:42.040 --> 00:30:44.799 there's a play and stop button below 551 00:30:44.799 --> 00:30:50.549 and you can watch and pause it, and it's a concept like that 552 00:30:50.549 --> 00:30:54.480 On the right side, you can see a list of various actions 553 00:30:54.480 --> 00:30:57.080 The long list you see there is the list of actions 554 00:30:57.080 --> 00:31:02.720 that the skeleton I've set up can perform 555 00:31:02.720 --> 00:31:04.670 You understand the concept now, right? 556 00:31:04.670 --> 00:31:07.570 These actions that the skeleton can perform appear 557 00:31:07.570 --> 00:31:09.420 and what's convenient about them is that 558 00:31:09.420 --> 00:31:13.360 they don't necessarily need to be in the same folder 559 00:31:13.360 --> 00:31:17.641 The important thing is that 560 00:31:17.641 --> 00:31:21.310 as long as these actions are somewhere in the entire folder of the project I'm currently working on and developing 561 00:31:21.310 --> 00:31:25.199 the list of actions that this skeleton can perform will automatically appear 562 00:31:25.199 --> 00:31:27.399 You could say that's another advantage 563 00:31:27.399 --> 00:31:30.149 I was thinking about he actions in this folder 564 00:31:30.149 --> 00:31:33.711 but hey, this action can also be perform, and I can double-click to check 565 00:31:33.711 --> 00:31:36.311 You can see that white dots are added 566 00:31:36.311 --> 00:31:40.120 when you click and drag to place them 567 00:31:40.120 --> 00:31:42.720 Press the control key and move the mouse cursor back and forth to check 568 00:31:42.720 --> 00:31:45.420 When I mix this action with that, it feels a bit awkward 569 00:31:45.420 --> 00:31:48.919 Then I'll delete it and bring in another action instead 570 00:31:48.919 --> 00:31:50.638 It doesn't matter how many there are 571 00:31:50.638 --> 00:31:52.388 You could say that 572 00:31:52.388 --> 00:31:55.495 being able to mix all actions in such a convenient way 573 00:31:55.495 --> 00:31:58.559 is one of Unreal Engine's most powerful features 574 00:31:58.559 --> 00:32:00.299 The next is the skeletal mesh 575 00:32:00.299 --> 00:32:03.599 which is also one of my favorite features in Unreal Engine 576 00:32:03.599 --> 00:32:07.239 Generally speaking, compared to similar programs 577 00:32:07.239 --> 00:32:10.639 programs like Unity import FBX files 578 00:32:10.639 --> 00:32:12.939 When you import a file, it's imported as a single file 579 00:32:12.939 --> 00:32:17.199 Then, there are menus like the detail menu 580 00:32:17.199 --> 00:32:19.299 where you need to make some adjustments to it 581 00:32:19.299 --> 00:32:21.099 You need to extract the materials 582 00:32:21.099 --> 00:32:23.679 make adjustments, and so on 583 00:32:23.679 --> 00:32:26.579 However, in Unreal Engine, options appear when you import the file 584 00:32:26.579 --> 00:32:29.329 Instead of adjusting the materials after importing 585 00:32:29.329 --> 00:32:32.240 when importing, you can choose options like 586 00:32:32.240 --> 00:32:35.090 whether to import animations, which skeleton use, and so on 587 00:32:35.090 --> 00:32:39.399 By selecting these options, the character is automatically adjusted accordingly 588 00:32:39.399 --> 00:32:43.449 The skeletal mesh, a properly formed character with a skeleton 589 00:32:43.449 --> 00:32:46.799 physics-related components, and even just the skeleton itself 590 00:32:46.799 --> 00:32:50.759 are all automatically organized into a single folder 591 00:32:50.759 --> 00:32:52.259 It's very convenient to use 592 00:32:52.259 --> 00:32:56.909 The properly formed character with a skeleton is called a skeletal mesh 593 00:32:56.909 --> 00:32:59.375 Unreal Engine also has a great feature 594 00:32:59.375 --> 00:33:03.157 where if you hover over an item and wait for about 2-3 seconds 595 00:33:03.157 --> 00:33:07.759 a popup appears showing whether it's a skeletal mesh, physics asset, or just a skeleton 596 00:33:07.759 --> 00:33:11.509 similar to the popup you're seeing now 597 00:33:11.509 --> 00:33:14.459 What I"m looking at now is a skeletal mesh 598 00:33:14.459 --> 00:33:20.183 In Unreal Engine projects, it typically represents the default appearance of a basic default character's skeletal mesh 599 00:33:20.183 --> 00:33:23.759 Double-clicking switches to the skeletal mesh editing window 600 00:33:23.759 --> 00:33:25.659 It would look like this 601 00:33:25.659 --> 00:33:28.909 Earlier, there were various items within the folder 602 00:33:28.909 --> 00:33:31.609 These elements combine 603 00:33:31.609 --> 00:33:36.609 to form a single FBX character file 604 00:33:36.609 --> 00:33:39.409 Just by opening the skeletal mesh editing window 605 00:33:39.409 --> 00:33:42.809 you can see options at the top right to switch to different views such as physics assets 606 00:33:42.809 --> 00:33:45.539 directly view animation assets 607 00:33:45.539 --> 00:33:49.160 or just see the skeleton, all divided accordingly 608 00:33:49.160 --> 00:33:52.360 You can say it's a very convenient feature 609 00:33:52.360 --> 00:33:55.460 that just by opening one file, you can interactively see the connected elements 610 00:33:55.460 --> 00:33:58.759 like the popup window switching back and forth 611 00:33:58.759 --> 00:34:01.259 The skeleton is skinned 612 00:34:01.259 --> 00:34:03.359 and the result is the skeletal mesh 613 00:34:03.359 --> 00:34:07.119 On the left side, Max and Maya also provide similar features 614 00:34:07.119 --> 00:34:11.018 You can see the hierarchical structure of the skeleton 615 00:34:11.018 --> 00:34:14.168 including the spine, skull, pelvis, legs, bones, and finger bones 616 00:34:14.168 --> 00:34:16.880 listed out on the left side 617 00:34:16.880 --> 00:34:20.018 This is the skeleton, the bone structure you're referring to 618 00:34:20.018 --> 00:34:21.230 However, it's crucial that 619 00:34:21.230 --> 00:34:24.630 for something to be recognized as the same skeleton 620 00:34:24.630 --> 00:34:26.480 not only the structure 621 00:34:26.480 --> 00:34:28.839 but also the names of the bones are 100% identical 622 00:34:28.839 --> 00:34:30.889 This can vary slightly between different programs 623 00:34:30.889 --> 00:34:35.089 Especially, the pelvis is both the center and the highest-level concept among all bones 624 00:34:35.089 --> 00:34:38.640 Some programs refer to the pelvic bone as "hip" 625 00:34:38.640 --> 00:34:40.840 while other use "pelvis" 626 00:34:40.840 --> 00:34:42.904 Since you can rename bones yourself 627 00:34:42.904 --> 00:34:44.854 some programs choose "center" around this flexibility 628 00:34:44.854 --> 00:34:48.454 The arrangement and structure are important 629 00:34:48.454 --> 00:34:51.154 but remember that for bones 630 00:34:51.154 --> 00:34:52.720 their names are also crucial 631 00:34:52.720 --> 00:34:54.570 The relationship between skeletal mesh and skeleton 632 00:34:54.570 --> 00:34:58.970 Skeletal mesh refers to the character itself, combining bones and skin 633 00:34:58.970 --> 00:35:03.119 while skeleton specifically refers to just the bones 634 00:35:03.119 --> 00:35:08.571 That concept of each individual bone structure having modeling attached to it 635 00:35:08.571 --> 00:35:11.440 like skin is referred to as being "skinned" 636 00:35:11.440 --> 00:35:12.590 Alright, skeletal mesh is the primary source 637 00:35:12.590 --> 00:35:16.340 for most of the animations 638 00:35:16.340 --> 00:35:19.239 Animals also need a skeleton in order to move 639 00:35:19.239 --> 00:35:23.789 Whether walking, running, or attacking, all monsters require a skeleton to move 640 00:35:23.789 --> 00:35:27.289 Even moving reeds can be represented as effects 641 00:35:27.289 --> 00:35:29.839 but they can also be animated by planting a skeleton to move like this 642 00:35:29.839 --> 00:35:34.589 You can think of implementing complex object animations, blend shapes 643 00:35:34.589 --> 00:35:38.600 morph targets, and character animations using skeletal meshes 644 00:35:38.600 --> 00:35:41.200 The biggest advantage and reason for using these techniques are 645 00:35:41.200 --> 00:35:44.600 efficient memory usage and dynamic animation control 646 00:35:44.600 --> 00:35:47.640 Because with just one skeleton-based character 647 00:35:47.640 --> 00:35:49.190 you can change animations 648 00:35:49.190 --> 00:35:51.990 or create games by simply swapping behaviors 649 00:35:51.990 --> 00:35:55.839 In real-time environments, swapping high-quality movements is straightforward 650 00:35:55.839 --> 00:36:01.720 making the use of skeletal meshes fundamental for various tasks 651 00:36:01.720 --> 00:36:03.627 Even though I haven't used motion capture for this exchange 652 00:36:03.627 --> 00:36:08.839 it's a concept that can also be applied to skeletal meshes 653 00:36:08.839 --> 00:36:11.089 Let's take a look at animation retargeting 654 00:36:11.089 --> 00:36:14.539 In animation retargeting, we first need to understand retargeting 655 00:36:14.539 --> 00:36:17.830 The "target" refers to the subject we are selecting or aiming for 656 00:36:17.830 --> 00:36:23.180 Retargeting involves slightly altering or resetting the target 657 00:36:23.180 --> 00:36:26.079 so you can think of it in those terms 658 00:36:26.079 --> 00:36:28.629 Just looking at this screen should make it immediately understandable 659 00:36:28.629 --> 00:36:32.229 In retargeting, you select one character on the left 660 00:36:32.229 --> 00:36:34.559 and another character on the right 661 00:36:34.559 --> 00:36:37.459 The important thing is that the two skeletal structure must be identical 662 00:36:37.459 --> 00:36:39.509 On the left, the character you see 663 00:36:39.509 --> 00:36:41.209 named "Manny_Simple" 664 00:36:41.209 --> 00:36:42.609 On the right, the character you see 665 00:36:42.609 --> 00:36:46.024 named "Quinn," if you retarget them 666 00:36:46.024 --> 00:36:47.824 all the animations and movements 667 00:36:47.824 --> 00:36:50.024 that were available to the character on the left 668 00:36:50.024 --> 00:36:52.377 the right character, named "Quinn" 669 00:36:52.377 --> 00:36:55.200 will be able to perform them 670 00:36:55.200 --> 00:37:01.279 This feature is convenient both for creating animations and developing games 671 00:37:01.279 --> 00:37:04.129 Setting up the skeleton and bone mapping 672 00:37:04.129 --> 00:37:06.579 executing animation retargeting 673 00:37:06.579 --> 00:37:09.239 you're going to do animation retargeting 674 00:37:09.239 --> 00:37:11.139 And using this 675 00:37:11.139 --> 00:37:13.439 you can also expand your library 676 00:37:13.439 --> 00:37:16.789 By utilizing this system, when creating animations or games 677 00:37:16.789 --> 00:37:19.039 you don't have to create each movement separately 678 00:37:19.039 --> 00:37:22.389 Retargeting and duplicating movements 679 00:37:22.389 --> 00:37:27.160 allow for significant time and cost savings in development, which are the main advantages 680 00:37:27.160 --> 00:37:32.271 Moreover, high-quality animations can be maintained consistently in terms of their quality 681 00:37:32.271 --> 00:37:37.239 One important consideration here is the compatibility of the skeleton 682 00:37:37.239 --> 00:37:40.539 The most important aspect is ensuring compatibility 683 00:37:40.539 --> 00:37:43.439 when one character needs to replicate the movements of another through retargeting 684 00:37:43.439 --> 00:37:47.589 This involves both the structure and naming consistency of the skeleton 685 00:37:47.589 --> 00:37:50.399 collectively referred to as compatibility 686 00:37:50.399 --> 00:37:53.299 If one character has one spine bone and another has five 687 00:37:53.299 --> 00:37:55.549 there can be confusion in retargeting 688 00:37:55.549 --> 00:37:57.631 potentially causing animations to become distorted or incorrect 689 00:37:57.631 --> 00:37:59.920 Therefore, the compatibility of the skeleton is crucial 690 00:37:59.920 --> 00:38:03.160 Next, to elaborate in more detail 691 00:38:03.160 --> 00:38:08.160 an example would be the neck bone, which can vary significantly between characters 692 00:38:08.160 --> 00:38:09.841 The number of neck bones may be the same 693 00:38:09.841 --> 00:38:12.191 but their sizes can vary greatly between characters 694 00:38:12.191 --> 00:38:14.679 leading to the potential differences in how they behave 695 00:38:14.679 --> 00:38:17.040 In such cases, you might need to adjust the structure slightly to accommodate these variations 696 00:38:17.040 --> 00:38:20.175 Considering the quality of the animation and other factors 697 00:38:20.175 --> 00:38:22.239 it would be beneficial to perform retargeting with careful consideration 698 00:38:22.239 --> 00:38:24.539 Animation retargeting is one of the most powerful features 699 00:38:24.539 --> 00:38:27.040 provided by Unreal Engine 700 00:38:27.040 --> 00:38:32.200 In the game development process, animation retargeting is crucial and highly effective in terms of efficiency and compatilbity 701 00:38:32.200 --> 00:38:35.865 ensuring both efficiency in animation workflows and reusability 702 00:38:35.865 --> 00:38:38.927 It's a remarkable feature in these asepcts 703 00:38:40.698 --> 00:38:42.598 Animation Blueprint and Montage System What is Animation Blueprint? Tool for visually programming the animation states and logic of characters or objects 704 00:38:42.598 --> 00:38:44.548 Animation graph: Defines character animation states and transitions by connecting nodes 705 00:38:44.548 --> 00:38:46.498 Event graph: Implements logic to set animation variables and update animations in response to gameplay events 706 00:38:46.498 --> 00:38:48.419 What is Animation Montage? Combines multiple animation sequences into a single asset, which can be divided into sections for partial or combined playback A development approach useful for games where actions change continuously depending on the situation 707 00:38:48.419 --> 00:38:50.469 Animation blending, skeletal mesh structure, animation retargeting What is Animation blending? Smoothly blending multiple animations to create more natural and diverse character movements 708 00:38:50.469 --> 00:38:52.469 Objects with the same skeletal structure in motion sources can perform the same actions You can blend motions without a limit on the number of actions and set blending durations as needed 709 00:38:52.469 --> 00:38:54.519 What is Skeletal Mesh? The shape of a character with a skeleton The source of all moving objects uses skeletal mesh 710 00:38:54.519 --> 00:38:56.569 Advantages: Efficient memory usage, dynamic animation control, high quality animation in real time 711 00:38:56.569 --> 00:39:01.119 What is Animation retargeting? Retarget: The concept of resetting by changing the target A retarget with the same skeletal structure as the target copies all of the target's movements 712 00:39:01.119 --> 00:39:04.372 Advantages: Saving development time and costs when expanding animation libraries, and maintaining consistent animation quality