Changing the scale of a bone in the Anim Graph with a Transform (Modify) Bone node also changes the scale of all child components, including sockets. This is inconsistent, as socket transforms should not be able to be modified at runtime (I assume, as I cannot find a node which can do this). In addition, I wish to scale a bone but not its attached sockets, and don’t believe I am able to do this currently.
To reproduce:
Create a new ThirdPersonProject.
Enable ‘Show Engine Content’ in the Content Browser View Options.
Create a new Animation Blueprint based on UE4_Mannequin_Skeleton.
Add a socket to the head bone with relative transform ((6, 20, 0), (-90, 0, 90), (1.3, 1.3, 1.3)).
Add preview asset ‘Generic HMD’ to the socket.
In the Anim Graph, add a Transform (Modify) Bone node targeting the head bone, setting the scale to (2, 1, 1).
The scaling of the preview asset is clearly undesirable in this circumstance.
I’ve gone through the repro steps above but am not sure what your expected result is for this. Would it be possible to get a screenshot or a gif of what you are seeing/versus the expected result? I can then take another look at the issue. Also, does this sound similar to what you are experiencing? This an issue with the preview mesh, however it doesn’t use the Transform(Modify) Bone.
That issue does appear similar to what I am experiencing. I have modified my steps above to include enabling ‘Show Engine Content’, which is required to find the ‘Generic HMD’ static mesh.
I have attached a screenshot to the original post demonstrating the issue. As you can see, scaling the head in the x-dimension has also applied this scaling to the preview asset (I assumed that this was because the scaling was applied to the socket - I do not know if this is actually the case).
After changing the settings around some, I don’t get this result unless I have the Scale Space changed. This can be found in the Details panel when the Transform (Modify) Bone is selected. I have posted a screenshot below of where I am addressing below, as well as of the result that appears to be the same one that you are seeing. If you set this to ignore as well as the other Modes, you may wind up with a Blueprint warning. If you change this to Ignore though, the mesh should fix itself. I’m not sure if you are trying to set this up intentionally in your project or your use case for it though since there is no mention of it above.
I am very confused at your response. I could set the ‘scale mode’ to ‘ignore’, but then the mesh doesn’t get scaled. My understanding was that the ‘Transform (Modify) Bone’ node was for changing the translation, rotation and/or scale of a mesh, and that the user could select which of these aspects should be set by changing the corresponding mode to something other than ‘ignore’.
My goal here is that the mesh for the head only is scaled. That is, the head is scaled, but the HMD is not.
When you scale the bone that the static mesh is attached to it, the static mesh scales with the socket due the inheriting the transform. This is how components function, which is why the GenericHMD mesh scales with the bone.
Since the preview asset inherits the transform, I would recommend creating a new Character Blueprint and bringing your character in there by adding a skeletal mesh component. You can then add a static mesh component and make it the GenericHMD mesh. This will show up in editor though, but could always be removed if you just needed it for reference. This is a way of attaching it to the character and avoiding the mesh itself inheriting the transform. From there you can have the Character Blueprint use the Animation Blueprint(can change this in the Details panel of the editor) that you want and use the Transform(Modify) Bone Node in. This will let you scale the (in this case head bone) bone to the size you want without affecting the transform of the GenericHMD mesh. This should give you the freedom to change the bone you want and then scale the GenericHMD mesh to be the size you want. Let me know if you have any questions about using this setup.