Hello mates, thank you in advance for your help. Currently i am using UE version 4.6.1. I want to rotate several bone of a skeletal mesh in game using PoseableMeshComponent. Here is how i do this in blueprint in short: Imported the mesh->added a socket->attach a static mesh to that socket → rotate the bone. Everything working perfectly except my static mesh won’t update new location and rotation unless i either change that actor transformation or detach- attached that static mesh to the same socket. So what did i do wrong? Right now i got 2 way like i said above to hack through this but i would rather to do this the proper way.
Update: seem like you need to rotate the bone A to the rotation B, delay around 0.1 second then modify that actor’s transformation, else my static mesh will stick around the same spot forever. The good point is at least my bones are rotating the right way.
Component attach to socket won't update transformation unless actor's transformmation is modificated
Were you able to find a clean resolution?
My “solution” was to modify the PoseableMeshComponent (uhg).
In PoseableMeshComponent.h:
protected:
	bool updateSockets;
}
InPoseableMeshComponent.cpp:
UPoseableMeshComponent::UPoseableMeshComponent
	...
	updateSockets = false;
}
UPoseableMeshComponent::RefreshBoneTransforms
	...
	if (updateSockets)
	{
		GetOwner()->UpdateComponentTransforms();
		updateSockets = false;
	}
}
UPoseableMeshComponent::SetBoneTransformByName
	...
		updateSockets = true;
	}
}
            Sorry mate, didn’t have time to dig deeper, but through a lot of trial and error, manage to come to a conclusion, which is you only need delay-teleport trick if you rotate a bone, and only with the top most bone that you need to perform that trick with, and 0.02 second is enough for the trick to work. For example, from the top down hierarchy, i got bone1->bone2->bone3. if you rotate bone3, you need to reset all previous bone(bone2 then bone1) to rotation 0, then rotate bone3 to the desire rotation, then change all previous bone(bone 2 then bone 1) to the last rotation, then finally perform the delay-teleport trick with bone 1. Not the most elegant method, but it’s performance is acceptable, don’t have to mess with c++ code and until i can find more time to research for a better resolution, this will do.