Intro to Graphics 23 - Computer Animation

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
all right thank you all for joining another lecture for uh introduction to computer graphics now last time we completed our discussion on rendering related topics the rest of this this course the rest of the lectures are going to be about computer animation and computer animation is a huge topic there are lots of things that are under the umbrella of computer animation and and today's lecture is going to be mostly about an overview of all sorts of different things that are under the umbrella of computer animation and then in the following lecture we're going to sort of dive deep on one of the topics under that umbrella right so that's going to be our topic for the the remaining lectures of this course but before we get into before we get into computer animation i would like to start with the discussion of video because we talked about raster images in quite a lot of detail but we haven't really talked about video and animation is going to be used for generating a video now videos are not specific to computer animation you can generate a video using your handheld camera or your phone or whatever so this is going to be a discussion i want to start with a discussion video but you know even though this is not limited to computer animation though it's sort of related to computer animation it's i think it's important that we have some understanding of what video is before we talk about computer animation right so that's the that's the preview of this topic all right so we video what's a video you can think about video as like a series of frames like there's one frame and then another frame and another frame and another frame another frame and so forth right and and when we display these these frames one after the other overlapping like this and we get something that is apparently moving this is our perception that we get something that looks like it's moving to us although nothing is moving here right it's just one frame after another frame after another frame we're just seeing still frames one after the others like wraps your images one after the other that sort of creates this illusion of motion for us that's that's what what a video is so we have a bunch of frames displayed super quickly one after the other now the immediate question i think when you look at the topic like this is how fast i should be swapping between frames that's i think that's the first question right so how many frames per second should i be displayed now you might think that there is a standard for it and you would be partially right and there are standards but there isn't a single standard that sort of applies to all sorts of video that we have there are a whole bunch of standards so for example if you think about broadcast tv uh the standard that we have um at least in the us is the ntsc standard of 30 frames per second so that's how broadcast tv is displayed in the us but it's not everywhere else on earth in europe for example we have a different standard that uses 25 frames per second now you may think oh 30 frames per second is greater than 25 frames per second that that's great right for us tv is you know you could say argue better but let's talk about it movies in movies this standard is 24 frames per second so that's the standard although sort of um usually there's this trend that there are some high frame rate movies that can have 48 and even 120 frames per second uh movies are out there some some people like that high frame rate stuff and some people don't like it so much they kind of like the old 24 frames per second standard because that um generates a bit more motion poorer and more softer animation so you know it's a it's a better preference but that exists and 24 frames per second is the standard that people use all right that's for movies how about our computers now we're generating all sorts of images and animations with our computers right so what do we what do we what do we show on our computers i mean in for computer monitors we typically refer to how many frames we display per second is like the refresh rate of a monitor and the refresh rate is measured in hertz hurt is 1 100 seconds basically one hertz is one frame per second so a typical refresh rate is about 60 hertz typically monitors don't go below 60 hertz but they can you know it's possible but that's that's typical at 60 hertz is probably the sort of general standard but you can have monitors that are much higher frame rates than 60 hertz it could be 120 hertz monitors are actually quite common they're not uncommon at all and you know they give you a better image in that perspective like better animation because your refresh rate is higher um how about video games well video games should probably follow the standard of monitors right if my monitor is displaying 60 frames per second then probably in a video game i should be generating 60 frames per second right and that kind of follows with that um so typical video games today are around they target 60 to 120 frames per second but depending on the type of images that they're rendering sometimes they can't really keep up with that you know depending on what hardware you're using for rendering those images maybe they fall below 60 frames per second that's not desirable but it can't happen right so if you crank up all the rendering parameters of your game then maybe maybe your computer won't be able to keep up with 60 frames per second but they typically target 60 or 120 frames per second and you know high frame rate is oftentimes preferred so these are the sort of standards for video frame rate and they vary quite a bit as you can see uh so this this video that you're watching right now i'm trying to broadcast it 30 frames per second following the the broadcast tv standard but you know who knows what we're actually receiving but that's what it's supposed to be uh so that that's the standard that i picked for for this all right so another thing that you might think about is video resolution that's the resolution of each frame i'm talking about the raster image resolution that we're using for each frame now resolution is sort of the first thing to think about is the the aspect ratio like the ratio width and height of the image right the typical aspect ratio in the past was four to three so most of our displays were four to three uh most of tvs were in that in this aspect ratio and so we use that standard in vga standards that was released in 1987 was using this 640 to 480. that was the screen resolution for vga that we've used for quite a while and today a lot of people refer to this as like the standard definition standard definition resolution would be this pga but pretty quickly this was um replaced by xga this um term by 768. this was a very very popular resolution that has been around for quite some time from 1990s and it's been used a lot actually this was a very very popular resolution but today when we think about today's video standards uh we typically prefer a different aspect ratio we typically prefer 16 by nine so this is closer to the aspect ratio used in movies so that's that's what we prefer today and uh you know you can have various resolutions but the standards that most people use are there's a 480p resolution so this is very low resolution videos as you can see this is the same resolution as the standard definition in terms of height the width is a little bit wider because uh because of the aspect ratio right that different aspect ratio if you go to a high definition video we have 720p as high resolution and we also have 1080p that's the also called high definition as compared to standard deviation also on top of that we have 4k right that's ultra hd and also 8k is is around not as frequently used but you know it's it's there another ultra hd resolution so if you were to compare these like what do they look like in terms of pixel size um you when you whenever you display a video you probably displayed a video full screen so if you're watching a video in low resolution your your pixel size of your video is going to be much larger than playing a video in high resolution nonetheless if you were to just display them in in their native video size resolutions and keep the pixel size the same and put these different resolutions on top of each other this is what it looks like well it's blocking me so as you can see sd is where the top player and then 720p 1080p and then 4k and 8k right ak is significantly larger than the others and if you're wondering what xga looked like it's sort of a little bit larger than that that's the dashed lines over there it's showing the xj resolution his height is a little bit more than hd 1020p is not as much it's a different aspect ratio right so these are the typical resolutions that people use for displaying videos now i want to talk about video data as well right so this is actually a video it's massive amounts of data so if you don't quite appreciate it just yet let's let's see what it will look like so let's say that i'm displaying a video with just rgb colors and i'm not going to go into how i get right here for display because i'm just going to use eight bits per channel that means i have three bytes per pixel all right so this is yeah you really probably shouldn't go below that and let's say we pick a typical sort of hd video that's sort of reasonable today and that would mean that i have about 900 000 pixels to display right perfect um so that would make if it's three bytes per pixel that would be like 2.8 megabytes per frame and if i'm displaying a video in 30 frames per second that would mean about 83 megabytes per second right so if you were to watch a video like this like if you're streaming a video like this online you need an internet connection that has 664 megabits per second i doubt that any of you have this sort of an internet connection that that would be uh that would that would not be so easy to consistently get this this uh bit rate from your internet connection right and and this video actually is not in 720p resolution this video that you're watching on youtube you should be getting 1080p that's what i'm using to broadcast in 1080p these numbers go up quite a bit so with 1080p if you were to actually listen to this with raw data that would be you need something internet connection of 1.5 gigabit per second which is sort of a little too much right so how on earth are we getting this video when we don't have such ridiculous you know internet connection speed the reason that we can do this is video compression now video compression is very very vital to all sorts of video broadcasts so just just a really brief overview of how video compression works so we have you know we have a bunch of frames frame one frame two whenever we have a bunch of frames displaying video and we can compress each frame and you get compressed data so you don't need to send the actual image up here you just need to send the frame data that's what it represents what this image looks like so this is a lot smaller than this right that's how we're getting it so each frame can be compressed like this with a compressed data but there is another very very important thing very very crucial thing for most video frames from one frame to the next frame the difference between the frames typically is not that much like when you look at these two frames for example i mean yeah there are different but they're not all that different there's lots of similarity between them so you if you don't compress each frame independently but you sort of combine the data because uh if i'm if i send the data about the first frame that kind of gives me an estimate of what this next frame will look like right so and and i just need to know how the frame changes from one frame to the other so if you use that information if you use that information you can actually compress this data quite a bit more so the data that you will need for representing the next frame becomes a lot less because you're sort of using the previous frame as your baseline so that's the very general idea of video compression used in various video formats one example for that is probably the most popular example today is the mpeg4 and h 264 is the a standard codec for this so we don't call it compressed we typically call it encode so you take a raw video with rgb data and you encode it into whatever video format that you're using and then at display time you just take that data and you decode it right so you decode it and that's what you what you watch so what's happening right now is that as i'm broadcasting this video my computer is on the fly encoding this video and then broadcasting just this data over the internet and you guys are downloading this data and and decoding it to show it now this decoding decoding happens very very often so this needs to happen sort of efficiently and quite fast and we can do that efficiently and fast because we actually have dedicated hardware on our computers uh handling this video decoding and that that's how we can do this power efficiently and also uh quickly enough right so that that's a very very important part of video compression and then decompression all right so this is all i want to say about video as i said this is very general i haven't said anything about how these frames are generated so these could be coming from my handheld camera or it could be coming from some computer animation sequence that i generated of course this video compression stuff is applied to video that is sort of either broadcasted or recorded and we're talking about video that's generated real time then you know we don't necessarily have to think about compression decompression there's there is compression decompressions on the gpu for other purposes for sort of accelerating the the process of generating the images but for displaying the images we don't need to worry about this too much all right so some of this applies to computer animation but not all of that applied to computer animation i just wanted to cover this topic a little bit before we get into our main topic that is computer animation all right so the first question what is animation so animation can be a lot of things but i sort of classify this into two groups one could be just a simple transformation so if i have an object and i change the way that i transform this object so that could be one way of animating it's like in this example i just moved my object to a different position and it slowly moved and that was the animation and you watch the animation that wasn't very exciting though but you know sometimes this is exactly what you want and what you need and that's that's good enough uh and that's fairly easy to do because all i got to do to do this is to change the transformation matrices right so i get the transformation matrix for this object and i just change it to another transformation matrix and that sort of defined my entire animation simple enough so if i have a rigid motion like this that's easy and i'm going to call it transformation the other kind of animation can be deformation now deformation can be something simple or can be something quite complicated right so if i were to apply some deformation to this character i could actually represent a whole bunch of interesting motion and interesting animation right and all of this is done through sort of the formations of this surface that represents this object uh and that's as you can see is quite a bit more complicated um it's more complicated to to the process is more complicated to actually define so it's much more complicated to specify like how would you specify an animation like this and that's going to be basically our main topic how do you define some sort of animation that you might involve the formation now so that brings us to our second question how do you specify animation now i'm going to talk about how to specify animation in in four different topics uh it's gonna be precision animation keyframing motion capture and physics based animation i'm gonna go through the first three of them today and the last one i'm just gonna briefly mention and we're gonna talk a lot more about this one in our upcoming lectures all right so let's talk about procedural animation now the simplest form of procedural animation i think is going to be just some transformation function so i i am writing some mathematical function or just some some algorithm that changes the transformation function what can i do for example i can just rotate this d mod right so something very very easy we had a procedural animation of rotating teapot in one of our earlier projects you'll remember the rotating object whatever object you loaded in one of our earlier projects we had this so fairly easy to do all you need to do is to change the transformation matrix uh you just change the rotation parameter here and you're done right very very easy to do but of course there isn't much you can do with this but precision animation is not limited to just transformation functions we can also have a deformation function right so we can apply some mathematical formulation that deforms our object in this case i am deforming a teapot hey i'm free to deform the utah tea part why not um jim blinn squished the teapot and gave it this shape that we recognized today i'm i'm okay to bend the g-pod now and that's exactly what i'm doing now so this is a procedural function that bends the d-pads so that the exact mathematics of this function is not too important but it's not a very complicated function it's a very simple function that performs and i am changing how much deformation is applied to this teapot by changing the formation parameter and i'm using a assign function here to change the deformation parameter so it just keeps rocking like this because it's bending back and forth yeah so fairly simple function fairly simple procedural function that does this now don't get me wrong though procedural animation does not have to be something simple it can be something simple a simple example like this it can be something a bit more complicated now here's another example something that i've done back in the day when i was a grad student this is procedural animation it's just code doing this this this thing that i thought was funny back then there's nothing so like all of this notion that the frog here pumping and the gears cranking here all of this motion is handled by some procedural functions right it's basically all math and nothing else here that's that's giving us this motion so just just to say that procedural animation can be more complicated in fact one common way one one common method that could be considered under the umbrella of procedure automation is blocking flocking is the idea of controlling a whole bunch of objects uh multiple objects forming a vlog moving them together it's typically uh handled by using some sort of procedural function and that procedural function can be something a bit more complicated it doesn't have to have so you don't have to uh have a function that defines the entire motion from start to end this flocking function can be something that's defined like one frame at a time so at every frame you define what's going to happen to all objects inside the spark for the next frame i'll show you an example of this so here's an example i thought it was pretty pretty cute i love this so in this case all these red objects here are sort of in some way following the blue one based on some some procedural function so this is an example of flocking there are a whole bunch of examples of flocking that's actually used a lot in computer graphics and as you can see it can generate some really interesting compelling animations it's a very fairly useful tool for generating all sorts of animations right but we still haven't quite talked about how we could possibly get that dinosaur animation i showed you earlier right so to be able to generate something like this we need to think about when you talk about uh keyframing so the idea of keyframing existed for a very long time way before people were worried about computer graphics people use keyframing using for hand-drawn animation too so let's say that i have these three frames sort of defining an animation so when you look at this these three frames i think you can have some idea about what's going on in this animation right so the character was in this pose and then going to this post and then this post but if i were to display these two frames one after the other it won't quite look like a smooth animation right it will look sort of jumping because i need more frames in between them here right so um the way this works is that i'm going to use these a few like hero frames as frames that sort of define the animation i'm going to call them key frames to be able to generate a smooth animation i'm going to need the frames in between them so i am going to use these frames and i'm going to generate the frames in between them and those are typically called tweens or in between frames this idea of keyframing as i said existed for quite some time like back in the day for hand-drawn animation your lead animator would be the one drawing these keyframes and then all the other people will be drawing these in between frames that connect one keyframe to the other and today we use computer graphics a lot instead of you know having an army of people drawing these in between frames we would use all sorts of computer graphics tools uh to sort of automatically or semi-automatically generate these in between frames that's the that's the idea of keyframing by using the concept of keyframing i don't have to specify each and every frame independently because that would be a ton of work right so whatever animation that you're trying to produce if you were to generate let's say 30 frames per second and if you were to manually create these frames for any animation that would take a very very long time but if you were to create only a few hero frames that sort of define the animation uh and if you your your computer could automatically generate these in between frames then it would save a lot of time so that's the idea of keyframing that's used very very often very frequently in computer graphics so most animations that you see will be probably some sort of some form of keyframing right that that's the the main tool used for generating all sorts of animation in computer graphics so because of that i would like to go into a little bit of math not too much just a little bit right so let's say that i have two keyframes i have one keyframe another keyframe here and i am going to generate a smooth animation from one keyframe to the next keyframe now my first keyframe defines let's say some set of positions i'm gonna call them x1 something x1 can mean anything it just means let's say the shape of my object at time t1 right and x2 defines again the whole set of parameters that shape of my object at time t2 and i'm going to interpolate the shape of my object from x1 to x2 as time goes from t1 to t2 all right that's that's the ball idea so what can i do the simplest thing i can do i guess would be some sort of linear interpolation right so keyframe interpolation could be linear and this is a very simple linear interpolation function right so think about these as vectors the positions the shape of my object at any time t would be a function of x1 and x2 and i'm just adding the change the difference between x1 and x2 based on where the time is between t1 and t2 anyhow that's the linear interpolation function i can i can do something better like i can do for example smooth step instead of doing just a linear interpolation so i can vary the position between t1 and t2 like the deformation of my object between x1 and x2 i can smoothly deform from one shape to the other shape right from x1 to x2 i can smoothly deform and this is a typical smooth step function there are others as well when a is zero this function becomes zero when a is one this function is one so basically it's not linear it sort of creates this smooth interpolation right so i can i can use something like this and then my motion would be somewhat smooth so let me show you an example let's say that my position at x1 is this and then x2 i'm moving to another position now did you pay attention here like the pay attention to the motion here so it starts slow and it slows down right it starts slow and then it slows down it's not moving with constant speed it's sort of slowing down as it reaches this next motion and it's all down by sort of slowing down how fast the deformation moves from x1 to x2 by using this smooth step function let's say that i have another keyframe after this let's call it x3 so in this case i'm sort of smoothly moving from x2 to xt x3 but this does not actually create a smooth animation i'm not sure if you've noticed but this is not a very smooth animation yeah it's it's smoothly interpolating from one frame to another but the animation is still linear right so we started from x1 and then we moved to x2 along this line and then from x2 to x3 again we're moving along this line so which we came from here to here and then we sharply turn and move in this direction so the motion is not smooth yet interpolation between frames is smooth but the motion itself is not smooth if you would like the motion to be smooth then we should probably put that motion along the curve like this right for example i could use something like a cotton wrong spline to generate a curve like this and then i can you know in compute the positions along this curve using these um control points keyframes as my control points of course the cubicle room spline would need another control point i'm assuming that there's another control point here and that would be a function of these control points right so yeah you don't have to use copper on spline there's a whole bunch of different things you can do here i'm just giving you an example a couple of supply could be fairly nice for defining a smooth interpolation between keyframes so this is a very very important thing and typically what we do with keyframe animation is that we specify these keyframes and we specify where our where we would like our object to be at any given at any time that we want so we specify the time and the position or shape of our object and then we also specify what kind of interpolation we want between keyframes and the rest is done sort of automatically using some mathematical formulation fairly simple mathematical formulation and how do we specify these keyframes well we use all sorts of modeling tools you remove vertices one vertex at a time you give your object a shape and you say that my object is going to take that shape at that time along this timeline right so um but you know generating some complicated shapes for our keyframes here can be rather complicated to make this process a little bit easier we use different tools for example a very common way of specifying keyframes would be something that we call morphing or blend shape interpolation so here's a video this is the concept of marking or blend shape interpolation so the way this works is that let's say i have a model i create different versions of this model so i just take the vertices and move them around and i create a a blend shape so in this case it's showing a bunch of blend shapes that are already uh prepared by the modeler who is whoever's preparing them and then what these sliders are doing is that it's interpolating the base pose and one of the target poses and you can combine multiple poses together like in this example so a little bit of one pose a little bit of the other pose and you combine them together just a weighted average of these poses and you get an in-between shape like this so that's a a way of animating models these blend shapes are used for specifying keyframes and i'm going to generate different keyframes using different combinations of blend shapes and then and then my interpolation is just going to interpolate the the blending weights of different different blend shapes right so i'm going to template the blending weights and then using the interpolated blending weights i can compute the in between poses between these keyframe poses and so that's the idea of morphing or blanching interpolation very very useful idea and i'm showing you this example because it's typically used for for facial animation it's actually very very useful for digital animation but it's not as much useful for animating a whole body because you know human body and you know most animal bodies are not like squishy and soft so we we have a well-defined skeletal system so it kind of makes sense to use that skeletal important and that brings us to skeletal animation so the concept of skeletal animation is that i first start with defining a skeleton for my model whatever whatever my model is i define a skeleton for it and then the skeleton the shape of that skeleton is going to define the deformation of my of the surface that's attached to this skeleton this is called skinning sometimes like attaching a skin to a skeleton i'm just attaching a surface to a skeleton right and all i got to do at this point is to define how my surface is going to deform as i'm deforming my skeleton now the skeleton is defined by these bones and joints and typically as you would expect from the skeleton i define the motion by rotating these joints and there are different ways of defining the skeleton a lot of times people prefer using inverse kinematics for example i can specify exactly where the hand is supposed to be and inverse kinematics computation figures out what the joint angles are supposed to be so that hand is exactly at that position or i can use forward kinematics in which case i specify the joint rotations and that gives me a position for and so forth this is a typical concept of skeletal animation and as you can see in this case at least this skeleton is a lot less complicated than the actual skeleton right so it is sort of simplified form of humanoid skeleton and that sort of makes sense because we don't necessarily need to worry about all sorts of detail all sorts of bones that we have in our body so it kind of makes sense to have fewer bones here so we have fewer parameters to worry about when we are animating this model so in that sense the fewer the better but at the same time when you have too few bones that sort of limits the types of animations you can generate with this skeleton model so you want to have enough bones here and enough joints to specify the animation that you want but you don't want too many of them because you don't want to deal with unnecessarily unnecessary complexity when you're defining the motion and a lot of times people generate special controls and and sometimes they generate high level controls from controlling a bunch of bones altogether so i can have another control here that says just you know bend the spine forward a little bit so instead of bending all these bones one by one i can have one control that uniformly bends all of them at the same time so there are different levels of controls people can generate in this process of generating a skeleton for a model and then attaching that that skeleton to our model uh we call that regain all right i'm going to show you an example of breaking in a little bit so it skeleton animation as i said i had one pose and i'm generating a different pose using this this skeleton so like this this bone moves over here and this this other bone moves over there just some rotation transformation this is rigid transformation something that we're familiar with something that we know how to do now the question is for each vertex on this model how am i going to move this vertex based on the deformation of these bones now this particular vertex that i'm showing here over there is sort of in between two bones right so it's going to be impacted by the bone over here and the bone over there right it's going to be impacted by these two bones we typically define some sort of weighing function some some weight that that specifies how much each vertex is impacted by the bone motion so in this in this representation red means that it's like fully impacted by the bone motion and down to blue it's like very little impacted over here this particular bone does not impact these points too much but over here it just completely defines how these vertices are moved for our vertex in the middle it has a particular weight and it has some other weight that corresponds to the other bone so as i'm moving these two bones combination of these weights will give me the resulting motion for this vertex now this is this seems very simple i can just linearly blend the the motions and that's called linear blend skinning that's used for all sorts of animation but there are other methods there are some non-linear methods that provide better forms of deformation especially when you have a significant deformation of bones but i'm not getting into the mathematical details of that process but the idea is still there is just you sort of combine the motions of of these bones in one way or another now what i'm going to do is then i'm going to show you an example of rigging of a particular model here so in this case it's a horse model and that's a bone structure that you can see uh this is a sleeping demo showing what kind of animations you could generate with this particular breaking as you can see this is not just bone motion but there are other things involved there are some high level controls there as well and so this allows all sorts of different motion that can be generated by this type of rigging right so this is what you typically give to an animator a model that is rigged and an animator would specify the that hoses the keyframes by controlling uh the parameters of this wave and then of course we'll what we'll do is that we're going to interpolate between these keyframes and that's how we get keyframe animation [Music] now as you can see there are a whole bunch of controls here or also some different motion all right i'm not going to show you all of this i think you get the idea but nonetheless there's so many controls so it can be kind of difficult to control this precisely to get exactly what you want like as you can see it's a lot easier than controlling each vertex one by one but still there are lots of control points right so for generating an animation like this is still a very labor intensive process and that brings us to motion capture so one way we can make this process of generating an animation easier is to use motion capture so with motion capture we don't actually even have to use keyframing we can specify each frame separately because it's all automatic so what we do with motion capture is typically is that for example for full body motion capture our actor is going to wear a motion capture suit that will include some markers on the person's body and with using these markers we can estimate the bone motion now the word estimate is very important here because we can't capture the exact body exact bone motion because all we can we don't see that person's bones right we can see what's what's outside of the bones we can we can only see the skin and the markers on the skin and the markers on the skin are helping our complete computer addition process to to get the positions of these markers accurately unless we use x-ray and not worry about the health of this this actor we won't be able to see the bones pretty clearly right well so we need to use different sorts of algorithms to estimate the orientation of these bones based on what we can see and we have pretty good algorithms today uh they do a very very good job of estimating these bones uh there's gonna be some error associated with it there's gonna be some cleanup there's sometimes there's gonna be some manual cleanup sometimes there are automatic algorithms that sort of clean out the error in the estimation but i just wanted to um clarify that this is not like a foolproof completely perfect way of generating motion but it is used a lot in practice a lot actually video games is used a lot in future animation it's it's used and especially in special effects it's used so much that it's a very very standard technique and we have tools that you know can generate very clean animation from this and if it's not clean enough then the animators will go in and manually manually clean this but at the end of the day they don't have to start with start from scratch they start with something that comes out of motion capture so you can pretty quickly define some motion and very realistic motion too so if you don't use motion capture if you just use keyframing by this rig model that i showed you earlier generating a realistic motion out of that can be quite a bit of challenge but with this it becomes significantly easier significantly less time consuming and that's why it's a very very popular technique that's that's used in computer graphics today now this is good for capturing skeleton skeletal motion for facial animation we use different different methods so i'm going to show you uh an example here from from um for algebra using c graph paper that's doing a great job capturing facial animation as you can see here that this particular algorithm is capturing the surface and not just the motion of the eyes and then legs were also wrinkles wrinkles are captured here as well and the motion of wrinkles are captured in fact this particular method uh works in real time so you can just you know sit in front of your camera it's just you know from this image is estimating the the expression the the shape of the the subject space and it's uh yeah it's even able to capture different people's faces like this and this this sort of techniques are actually quite commonly used in in production as i was saying uh they used for generating cinematics or cinematic animations for video games or also also used in special effects quite a bit so in this example uh the actor is wearing a full body motion capture suit so that's how they capture the pool body and and then the suit also has a camera that's fixed in front of the actor's face so they are capturing the actors facial motion as well and by using that they can fairly easily transfer that motion to uh the motion of a different character so there are all sorts of algorithms here so it's not just about capturing the motion of this actor accurately but also this this actor has a certain skeleton type and certain facial features uh that's also the the problem of how you take that notion of that actor and and then transform and transform that motion to a different skeleton a character with a different skeletal delta proportions and a character with a different facial shape and so there's this whole motion transformation is happening here as well there's a bunch of algorithms that that run in the background that handle that as well so that's another fairly big topic in computer graphics how to do that properly i'm just acknowledging the existence of all these problems and and their algorithms for these i'm not getting into the details of how any of this is done but i just want you to know that these sort of problems uh exist in computer graphics and we have algorithms that that do that now another big topic in computer graphics that we're going to talk a bit more extensively on is physics based animation so we can do a lot of things with the other animation tools but sometimes sometimes we have motion of and the formation of objects that are so complicated complicated that we really don't want to do those by hand and we then what we prefer doing in that case we use some physics-based animation we actually compute the physical rules of how objects sort of interact with each other how those objects move in the physical world and sometimes called physics-based simulation and simulation and we're going to talk about this extensively i'm not talking about it too much but i would like to show you one example from my recent research now this is this is something new from one of our recent paper submissions right so in this case there's fluid animation uh again fluid animation with some fracture simulation uh the other one uh included some cloth simulation as well and we're gonna look into the details of physics-based animation not to this detail just not to this extent but the the particular technique that we're going to explore in more detail is going to be the underlying technique that's used for this fracture simulation over here we're not going to do a fracture simulation that's a bit more complicated but we're going to see the the fundamental concepts behind generating an animation that looks like this right so i'm not going to go into more detail today i'm going to do that next time right but today i want to end this and this lecture by by showing you this video i i think this is a nice example i kind of like what it looks like but the point i'm trying to make here is that a computer animation is a lot of times generated not by one of these methods that i mentioned but a collection of these methods so over here i believe there's some motion capture going on with the the running motion i believe it's motion character it may not be i'm not sure but it might be uh there's definitely physics-based animation here there is some some procedural animation that's controlling the behavior of this crowd so there are a whole bunch of methods intertwined together to create this sort of humorous animation and that is actually quite typical that a lot of animations that we see can be a combination of various different animations but it doesn't have to be sometimes just keyframing is is good enough so that dinosaur motion i showed you in the very beginning was just keyframing and that that can be sufficient as well but for more complicated motion and a whole bunch of characters like this we prefer using different techniques uh in this case physics-based animation and some procedural animation is combined all right so that's um what i plan to talk about for today so this was a brief overview of the kinds of things that are under the umbrella of computer animation uh next time around we're gonna dive deep and talk about physics based animation in more detail we're gonna actually explore one particular way one particular method in physics based animation and our upcoming project project seven that's gonna be our last project is going to be about that that physics-based uh animation technique all right right that's the that's what i plan to cover for today uh do you guys have any questions or comments or anything about the um stuff that we covered so far how is fur usually animated that's the question um we typically use physics-based animation for fur but not always sometimes uh different forms of procedural animation can be good enough uh we don't necessarily have to like really go into physics spacing simulation however um but oftentimes when you see a interesting motion of bird that's that uses some form of physics-based information but it can be just procedural as well if the motion is relatively simple just some procedural function can be sufficient any other questions comments okay then i'm ending it here i'll see you next time when we talk in more detail about physics-based animation thanks and bye
Info
Channel: Cem Yuksel
Views: 679
Rating: undefined out of 5
Keywords:
Id: lhK7ZMcW5pU
Channel Id: undefined
Length: 50min 24sec (3024 seconds)
Published: Sat Nov 20 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.