[BUG] GetSocketLocation always return 0 in SkeletalMesh Actor Blueprint

Hi,
I’m trying to get the location of a bone of the skeletal mesh in blueprint inheriting from SkeletalMeshActor, but the GetSocketLocation node always return 0. The construction script seem to but run two time, the first time it give the correction location and the second it return 0. I also get a weird error saying that it can’t create a joint between 2 actors in different scene :

LogBlueprintUserMessages: [bp_skelbone_2] X=-10.217 Y=72.405 Z=62.395
LogBlueprintUserMessages: [bp_skelbone_2] X=0.000 Y=0.000 Z=0.000
PIE:Warning: Warning Constraint bp_skelbone_2 attempting to create a joint between two actors in different scenes.  No joint created.

It was working in 4.12. Here is a screenshot of the blueprint :

I found a workaround by using an Actor instead of a SkeletalMesh Actor as the parent blueprint, but i still get the warning about the joints in 2 scenes.

Thanks!

Hi FBouthillier,

Unfortunately, I have not been able to reproduce this on my end.

  • Does this occur in a clean, blank project with no additional content or is it limited to one project?
  • What steps can I take to reproduce this on my end?

Hi ,

Does this occur in a clean, blank
project with no additional content or
is it limited to one project?

I tested it in a blank project.

What steps can I take to reproduce
this on my end?

  1. Create a new project
  2. Import a Skeletal Mesh and drop it in a blank level
  3. Press the Blueprint/Add Script button in the detail panel
  4. In the construction script of this blueprint, add a Get Socket Location with the name of a bone
  5. Print the result
  6. In the level, change a parameter value of the blueprint to force the construction script to run

Result in the output log:

LogBlueprintUserMessages: [BP_SocketTransformTest] X=239.783 Y=168.277 Z=92.395
LogBlueprintUserMessages: [BP_SocketTransformTest] X=0.000 Y=0.000 Z=0.000

Notes :

  • The same problem appear with the other get socket transform nodes

  • The correct value is output when moving the blueprint with the transform gizmo in the level, but not when changing a parameter in the blueprint. Also it output only one entry instead of two in the output log.

  • I created a child blueprint from it with a different skeletal mesh assigned to it. This is the result when changing a parameter value of this child bp in the level :

    LogBlueprintUserMessages: [BP_SocketTransformTest_Child_2] Main BP construction script : X=360.000 Y=80.000 Z=50.000
    LogBlueprintUserMessages: [BP_SocketTransformTest_Child_2] Child bp construction script : X=358.588 Y=82.064 Z=50.837
    LogBlueprintUserMessages: [BP_SocketTransformTest_Child_2] Main BP construction script : X=360.000 Y=80.000 Z=50.000
    LogBlueprintUserMessages: [BP_SocketTransformTest_Child_2] Child bp construction script : X=0.000 Y=0.000 Z=0.000

All the values should be X=358.588 Y=82.064 Z=50.837.

Thanks!

I was able to reproduce this and have entered a bug report here. You can track the report’s status as the issue is reviewed by our development staff.

Thanks !