Download

Transforming bones, specified by variable?

Hello,

I’m a CG artist learning how to blueprint so I can learn about the parts of the game making process I don’t know much about! I’ve taken a few courses (some for blueprint, some for C++) and decided I’d learn the most by making something of my own, but I’m still pretty much a newbie so I’d really appreciate some help.

What I’m trying to do:
I have an object with bones for each face, so that the faces can be moved independently. I want the object to react to a player pawn, by moving and scaling when the bone overlaps with the player’s collision.
What I have so far:

  • I have a OnComponentOverlap event in my player pawn BP with the collision body set as the component. I cast the hit to the object, and extract the hit bone index from the overlap event and get the bone name. This results in a name return value, so I store that name as a variable.
  • I take the bone name variable, and bring it into the animation blueprint for the object I want to move the bones of. I found a node called Transform (Modify) Bone, which looks like it should do what I’m trying to achieve.
    Problem:
    The Transform (Modify) Bone node’s “bone to modify” isn’t an input, but rather selecting from a drop-down list of all the bones in the skeleton. As far as I can tell, I can’t specify the bone to transform using a variable or input. This is problematic as I want to constantly update which bone is overlapping with the player pawn’s collision and move the bones accordingly.

Am I going about this the wrong way? Is there another way to do this, or am I missing something about the tools I’m using? Any help would be greatly appreciated.

Thank you!