Make your animations dynamic using Control Rig

Поділитися
Вставка
  • Опубліковано 23 лис 2024
  • Learn more like this: www.udemy.com/...
    Discord community for UE dev/procedural animation: / discord
    Quaternion multiplication in depth: • Math for Game Develope...

КОМЕНТАРІ • 81

  • @MashaBear-g8f
    @MashaBear-g8f Місяць тому +3

    This guy is literally the genius of our time when it comes to animations and rig!

  • @AttakuStudio
    @AttakuStudio 8 місяців тому +4

    This is pure Gold! And you are a master of tutorials! I'm impressed, thank you!

  • @akzork
    @akzork 10 місяців тому +8

    That was cool. I'm gonna go press some buttons now.

  • @Lorecastapendragon
    @Lorecastapendragon 14 днів тому +1

    ok now how do I use all that and make him punch at my characters head, I tried inputing the world transform of my player camera which is located at the player pawns head into the goal target node by the enemy ai was punching off to the right, tried the vr origin and they were still punching right, not at my head.

  • @emintaskirunreal
    @emintaskirunreal 10 місяців тому +7

    What a game changer tut bro. Thanks for it.

  • @MaceWindoo77
    @MaceWindoo77 10 днів тому

    It will be cool to work on a hand-to-hand fight sequence to apply this knowledge. Personally, I'm gonna try to with your 2 Udemy animation courses in a 80's Hong-Kong martial art/action movie style project.

  • @michaelderosier3505
    @michaelderosier3505 7 місяців тому +3

    You can set rotation limits in the details panel under "Transform" ; set the Min and Max to your specs.

    • @driftmirror
      @driftmirror 3 місяці тому

      Been looking for 30 minutes and I can't find this. Details panel is contextual, so details panel after clicking on what? This comment could be so helpful for people but it's lacking context.

    • @michaelderosier3505
      @michaelderosier3505 3 місяці тому

      Select “Set Transform” node, it refers to the bone you want to manipulate. While the node is selected look at the “details” panel. In the video it’s to the right. Look for the section “Transform”, this is where you set the min/max. I will be away from my computer for a few days. Let me know if you need more information.

  • @ChezComics
    @ChezComics 10 місяців тому +3

    Hey man just wanted to say, your procedural step-by-step video got me to take the plunge from animation straight into UE5 tech-anim. Currently making my own solo game and been watching every vid since. thanks for sharing the knowledge, much appreciated

  • @eivenhoe
    @eivenhoe 10 місяців тому +1

    Such valuable and high skilled, thanks very much

  • @Nudtanun
    @Nudtanun 2 місяці тому

    W instruction! helped me alot! (as a student)

  • @gotagamee
    @gotagamee 8 місяців тому

    Thank yout for the great video. I'm curious about setting the Initial Target though. Since the Initial Target would generally be different for each animation, would that also need to be fed into the control too in order to get the correct quaternion multiplication value? Or another way would be to create different InitialTargets for types of animations and have them already set up (ButtonPressInitTarget, PunchInitTarget, etc). In terms of management I think the latter method sounds better but it doesn't seem as robust as the first option (if it works).

  • @kenalpha3
    @kenalpha3 10 місяців тому +6

    17:08 Thanks. Can you do a vid on how to implement this for actual use (how to feed goal loc with BP? into different anims).
    I.e. character needs to be about 100 units from the button?
    So for a door example, can you show how to use a collision box on door BP, to detect player is close enough.
    Then which node to use to make Player step to exactly 100 units? (This is what I havent found an answer to, esp for Player Controller since we cant use AI move nodes which are more precise.)
    And then how to you communicate from doorBP to PlayerBP to AnimBP? to feed Goal - BPI? (hopefully not castTo any PlayerBP)
    Can you show what works please. Ty

    • @trumpisbackboi
      @trumpisbackboi 8 місяців тому +1

      Bro at some point you need to figure some things out yourself. He's handing out the biggest part of the puzzle for you right there. That sounds really lazy from you

    • @Lorecastapendragon
      @Lorecastapendragon 14 днів тому

      @@alex-qn5xp i'm stumped too mate, I used the event graph to make the transform of the goal target and fed that into the target goal, but it wasn't punching in the right direction

  • @Ghuur
    @Ghuur 10 місяців тому +1

    Thanks for sharing, great tutorial. Thinking that this could used for two-hand grips as well (2 hand sword, etc). Currently using two-hand IK for it but this seems much more natural-looking.
    Could you possibly do a follow-up tutorial for that as well? As it seems that not only you have to account for the handle's transform but you have to adjust the secondary hand's rotation to the primary hand.

    • @LincolnMargison
      @LincolnMargison  10 місяців тому +2

      Its maybe something I'll cover, but making one transform relative to another isn't too difficult. There's a MakeRelative node, to make one thing relative to another (eg. left hand relative to the right) giving you an offset transform, and then once you move the right hand, you can re-apply this offset by multiplying the transform of the right hand, with the offset of the left.

    • @Ghuur
      @Ghuur 10 місяців тому +1

      @@LincolnMargison Thanks! Will try that.

  • @enzonova2379
    @enzonova2379 9 місяців тому +4

    How can i transfer this red point reference to a socket bone in other skeletal mesh?
    I need to adapt my character animation e a interaction between two skeletal mesh.

    • @Bakahira
      @Bakahira 6 місяців тому

      Its also a big question for me...do you find a solution?

    • @enzonova2379
      @enzonova2379 6 місяців тому

      @@BakahiraI haven't had time to try anything yet😕

    • @RogueSheep4VR
      @RogueSheep4VR 4 місяці тому

      Just in case you're still looking for this: using GetSocketTransform you can get the location of a bone or socket in the other mesh.

  • @Dankfrankest
    @Dankfrankest 9 місяців тому

    Struggling through a use case with this technique today. I'm trying to use the AimMath idea to point two different bones at the same world location. Both of the bones point just fine on their own, but when combined, the spine rotation compounds and influences the second bone (hand_r). I've been trying to "unrotate" the hand using the aimed spine rotation, but I just can't seem to get the result I'm looking for

  • @FPChris
    @FPChris 5 місяців тому

    Cool. I want to do something similar for archery

  • @cconnecta
    @cconnecta Місяць тому

    Heya! Love your tutorials, very clear and fun!:)
    Random question I've been struggling with trying to adapt this setup: Is it possible to use this for a character that's running?
    I.e the hip will be translating and rotating but I still want the attack to hit the same spot as when it's in the reference animation.

    • @LincolnMargison
      @LincolnMargison  Місяць тому +1

      It would be a little more complex, as you wouldn't know where the landing spot will be ahead of time. For that, I would probably recommend some use of IKing to the target rather than just adjusting the angles.

  • @hirojiokada3899
    @hirojiokada3899 2 місяці тому

    Thank u so much so much man u helped me a lot and solve many problems love u bro

  • @Pietrasy
    @Pietrasy 27 днів тому

    Hi, I managed to create the whole setup and in the control rig view everything works as expected. The problem arises when on Begin Play I give the player the transform of other actor at the level where the player is to turn, but the player keeps looking (from the waist up) at the point 0,0,0. I take the “FromWorld” node when dragging the GoalTarget transform and make sure that the given location goes to the input of the Control Rig node in the animation blueprint. Do you have any ideas?
    Thank you for this tutorial!

  • @alexrybin3798
    @alexrybin3798 7 місяців тому

    Awesome tutorial! I have asked on forum, but maybe you know how to copy rotation value in control rig, from z axis and connect it to y axis? Can’t find function for this…

  • @LimitedPerfection
    @LimitedPerfection 10 місяців тому

    Control Rig King. 👑

  • @brunotorrao
    @brunotorrao 10 місяців тому +1

    Hey man.. great tutorial.. do you think I can leverage that to make the sword attack animations follow the camera up and down like Elden Ring does?

    • @LincolnMargison
      @LincolnMargison  10 місяців тому +4

      Sure. You'd basically just pass it a raw value (so the first part of this tutorial) for the pitch. EG: you'd get the view angle of the character, and take the pitch value only, and input that as a float into control rig, and use it to control the up/down angle of the spine rotation.
      Keep in mind with the pitch values, you might have to manipulate them a bit to get them nicely useable. It won't just give you a 0->180 value by default.

  • @อีลอนคาร์ก
    @อีลอนคาร์ก 10 місяців тому +1

    Thank you bro

  • @Hawaiianspawn
    @Hawaiianspawn 8 місяців тому

    How would you reassign another target spot. Say you had a second punch that punches lower.

  • @koko-nl5tp
    @koko-nl5tp 8 місяців тому

    @11.13 . As I watched that Quaternion video , on and on, if I understand right, the inverse of quatanian means just rotate opposite direction. So if we use the bottom one(B) to time the top one(A) instead of the other way around, we don't need to use the inverse node... Maybe... Just wonder!!!

  • @post1440
    @post1440 9 місяців тому

    This is amazing!

  • @TheTylerCathey
    @TheTylerCathey 10 місяців тому +4

    is it possible to make the attack animation completely procedular too? like no animation file its all code?

    • @adamisme9176
      @adamisme9176 10 місяців тому +1

      It is. It is a lot of work as every moving thing in the body needs a transformation to make it look realistic.

    • @TheNSJaws
      @TheNSJaws 10 місяців тому +2

      yep, but it's a lot more trouble than it's worth I wager

    • @LincolnMargison
      @LincolnMargison  10 місяців тому +4

      As other's have said, its possible but perhaps more difficult than just animating. What kind of attack/character were you thinking?

    • @TheTylerCathey
      @TheTylerCathey 10 місяців тому

      @@LincolnMargison im trying to make a fully produceral combat system so bosses can sync with music, weapons clip though walls, etc

    • @LincolnMargison
      @LincolnMargison  10 місяців тому +2

      @@TheTylerCathey Ah, well it's definitely doable, but will be easier if it's non-human characters

  • @YuuJer
    @YuuJer 10 місяців тому

    awesome! more rig math pls!

  • @무방스튜디오
    @무방스튜디오 26 днів тому

    What is difference between rotation multiplication and additive?
    The result is similar but I can't undetstand the difference

  • @RictorScale
    @RictorScale 7 місяців тому

    This is fantastic thank you

  • @lospe85
    @lospe85 10 місяців тому

    nice! would this be the correct approach for left hand grip when holding different rifles (rotating the lowerarm so it grabs the specific end of the gun) ... or is it overkill and I should search for a simpler solution?

    • @LincolnMargison
      @LincolnMargison  10 місяців тому +1

      For that you'd likely want to use IK. So either FullBodyIK (but only applied to the arm) or BasicIK, if you were to use control rig. Little more complex to set up, but a similar approach, where you'd just be adjusting the underlying animation by moving the IK goal from where it is by default in the animation, and offsetting it to where it needs to be for the specific weapon.

  • @MGInspiration
    @MGInspiration 5 місяців тому

    Will it work if i locate the socket in enemy , then set the target snap on socket. by that will it hit or grab with multi size character

  • @maskwaGaming
    @maskwaGaming 5 місяців тому

    Would hipfire and ADS make sense with control rig?

    • @LincolnMargison
      @LincolnMargison  5 місяців тому +1

      It would, but I'd maybe suggest doing it by creating a pose for those states if possible, then modify it as needed with controlrig. EG for different weapons/scopes/whatever else, you'd adjust it in control rig, but maybe start from an approximately correct pose.
      You could do the whole thing in control rig, and reposition the weapon to the right spot, but it might just be a little more work to get it positioned in a way that looks good, to not much benefit over using a pose.

  • @AlessandroCristoffer
    @AlessandroCristoffer 2 місяці тому

    Hello, sorry for the apparently stupid question, I'm completely new to animations and Control rig, but I believe it's possible to use this method to correct the position of the character's hand on the weapon's mag? This is clear considering that the weapon is performing the Reload animation and so is the character.

    • @LincolnMargison
      @LincolnMargison  2 місяці тому +1

      You can yeah, ordinarily the weapon would be attached to one hand (eg. the right hand) so making adjustments to the left hand wouldn't impact the position of the weapon, so you could for example offset the distance it reaches to or something like that if the mag was in a different place.

    • @AlessandroCristoffer
      @AlessandroCristoffer 2 місяці тому

      @@LincolnMargison thank you very much. Do you happen to want to create some content about true fps? There is a lot of content just using Modify transform bone, and very few with controll rig as it should be I believe.

  • @MrYoucantsay
    @MrYoucantsay 6 місяців тому

    Hi Lincoln.
    I followed this tutorial, but I found out quite quickly that if the animation has root motion enabled, it can quickly break down if you use this method. Especially if you use it on pelvis bone. Breaking down means that the limb/character goes haywire towards the end of the animation. Disabling root motion fixes the issue instantly. The aim math seems to work in the controlrig view, but when you look the resulting animation in game or even in the animation blueprint, you see that it's not quite right.
    I wonder if you would know how to solve the issue. Keep the root motion intact on the animation while still getting the aim math to work.
    Thanks.

    • @LincolnMargison
      @LincolnMargison  6 місяців тому

      I'm not sure why that would be the case, it isn't something I've tried it with, but presumably it will be related to where the origin of the character mesh is. So when the character walks away (with rootmotion) they may be separated from the 0,0,0 rigspace point? I'm not exactly sure of the exact interaction or impact of that but it's my best guess as to why this wouldn't work with rootmotion.

    • @MrYoucantsay
      @MrYoucantsay 6 місяців тому

      ​@LincolnMargison Thank you for your reply.
      That is my intuition as well. I can report now that I did find sort of a workaround. Since you really only need to calculate the rotation offsets once at the start of the animation, I made it so that the controlrig logic only calculates it at the start, so even if the root motion does crazy things, the calculation is still correct and the root motion does not start to affect the whole thing.
      Well maybe it's also more realistic that way, since your attack is not homing like a missile and the updated trajectory is calculated only once and not every single frame.
      It does however feel a bit hacky. I wonder if there is a way to do it fully inside controlrig cleanly. Otherwise I guess I could take all the logic out of the controlrig and do the offset calculations in the character blueprint and supply those offsets to the controlrig.
      I also guess you could replicate the results with IK nodes too and maybe that works better with root motion.
      Anyway thank you for the tutorial. I will keep experimenting and learning the controlrig system. Your videos have been very inspiring.

    • @kirur132
      @kirur132 Місяць тому

      @@MrYoucantsay changing goal target location in control rig to 0 0 0 fixed the issue with math being not right outside the control rig for me

  • @WPSSSR
    @WPSSSR 10 місяців тому

    yeah I'v looked for it))

  • @pranjalbhattacharjee5601
    @pranjalbhattacharjee5601 8 місяців тому

    I want to edit the lyra rifle animations using control rig so that the legs are a bit more spread apart and the knees are a bit more bent.....how would I do that ??

    • @LincolnMargison
      @LincolnMargison  8 місяців тому

      A simple way would be to make a control rig which just gets the position of the foot bones (create an array with the two feet), and whatever their location is on X & Y, just scale it up by some amount (eg. by 1.2) and use IK to position the feet at the new spots. This would have the effect of separating the feet further away from 0,0,0 rigspace.
      To make the knees more bent, the easiest way would be to use a FullBodyIK node, where you move the pelvis down slightly, but also have effectors to keep both the feet in place.

    • @pranjalbhattacharjee5601
      @pranjalbhattacharjee5601 8 місяців тому

      @@LincolnMargison That makes sense but I have no idea how to actually do that.....If you could please make a tutorial that would be great

  • @mymyChannel771
    @mymyChannel771 Місяць тому

    Cool tutorial, maybe i'm missing something but once you play in game, the control rig will override the animation and it will not work, only in preview in control rig.

    • @LincolnMargison
      @LincolnMargison  Місяць тому +1

      If the animation is being passed into it, the control rig should be modifying the source animation the same as in the preview. Make sure you have the animation path plugged in to control rig in the animgraph

    • @mymyChannel771
      @mymyChannel771 Місяць тому

      @@LincolnMargison but a set transform node in control rig is overriding any animation input

    • @LincolnMargison
      @LincolnMargison  Місяць тому +1

      @@mymyChannel771 Are you doing the set transform, or getting the transform -> modifying -> set transform? Because if you're getting the current transform and changing it, it should just be adjusting it based on whatever source is being passed into the controlrig node.
      If you *just* do a set transform and don't base it on the current value, it will override it.

    • @mymyChannel771
      @mymyChannel771 Місяць тому

      @@LincolnMargison thank you, now i understand. what is a good way to add controllers transform to an existing state machine? so it can run in-game as an additional layer? offset node breaks things completely

    • @LincolnMargison
      @LincolnMargison  Місяць тому

      @@mymyChannel771 I'm not too sure I understand what you mean when you say add controllers transform

  • @seanlake7404
    @seanlake7404 19 днів тому

    @3:45, your character, as you note, twists when you connect it to the translate. However, mine does not. That doesn't occur until I hook up the later system you build. Weird.

    • @seanlake7404
      @seanlake7404 18 днів тому

      This may have something to do with the actual SKM you used vs mine. I'll attempt it with old manny and see if I can repeat the issue.

  • @Deculayn
    @Deculayn 4 місяці тому

    How can we transfer the target to crosshair?

  • @seanlake7404
    @seanlake7404 19 днів тому

    Where did you get the punch animation>

    • @LincolnMargison
      @LincolnMargison  19 днів тому

      I can't remember, I might have made it for this video, or it might be in the animset pro pack. By the foot movement/sliding I think it's a mocap from that pack.

  • @dobrx6199
    @dobrx6199 10 місяців тому

    Nice 👍

  • @曾馨辉
    @曾馨辉 8 місяців тому

    awesome……

  • @hernanacks
    @hernanacks 7 місяців тому

    i cant do to work in game....can you explain how setup the goal and init parameters in anim graph?

  • @CosmicComputer
    @CosmicComputer 4 місяці тому

    I wish so badly they wouldn’t call it global space, and instead call it local or rig space officially, makes it so confusing.

  • @Valorodrigo
    @Valorodrigo 3 місяці тому

  • @АнтонБашаркевич
    @АнтонБашаркевич 7 місяців тому

    Can i transfer this target to mouse?

    • @LincolnMargison
      @LincolnMargison  7 місяців тому

      Sure, just pass in the info you need into control rig