How do I attach a Socket to another Socket?

I have a skeletal mesh with a number of bones and a socket (call it “SocketA”). I need to attach “SocketA” to a “SocketB” in another skeletal mesh.

The “Attach To” and “Attach Actor to Component” nodes etc seem to just attach the skeletal mesh to the parent socket you specify in the node. There’s no way to specify a socket in the component being attached as far as I can see?

Thanks.

#Edit in Modelling Software

You should position the skeletal mesh in your modelling software so that where you want it to attach is at the origin

So for a skeletal mesh sword for example, position the mesh so the origin is where you want it to attach to the hand of another skeletal mesh

So the origin of the sword would be around the middle of its hand-grip.

#Previewing Skeletal Meshes Attached to Other Skeletal Meshes

You can always preview the mesh by dragging the skeletal mesh into the socket of the other skeletal mesh in Persona, and then move it around until it is precisely where you want it

so if you want characterA to hold characterB’s hand, i guess you should animate characterB to a pose that puts it’s hand at the root bone.

Thanks for the replies. That’s an interesting solution Omnicyper :slight_smile: thanks.

Rama, I have an object that can be held in two different places, so I added a socket for the second location on the object, the origin being the first (default) position. I guess I can do my own attaching by getting the socket transform etc.

I didn’t realise you could do that in Persona, I’ve had a look and can’t see how to drag a mesh onto a socket?

Thanks.

In case anyone else is wondering where this is possible. Just Select the Mesh Blueprint (e.g. via Persona) and right click on the according socket.

237858-addpreviewtosocket.png

Guys I am also interested in this subject, is there really another viable way of doing SKMesh 1 (socket A) to attach to the position of Socket B from another skeletal mesh? Without interference in 3d software app

Hi,
So in the case I have a set of characters and I’d like to make random character sit on a motorcycle, could I attach the sockets of the hand to the motorcycle handle??

just plug it in the wall

I have come up with a solution that is just for in editor… does require an empty level with a few blueprints but just to get the data you need… so check it out…
make two sockets on the static mesh you want to hold, one for right, one for left…
make an actor with a skeletal mesh using a one frame anim of your desired grip pose.
make another actor with a static mesh with a public variable of type Transform.
rig up a GetActorOfClass for your skeletal mesh actor. then do a MakeRelativeTransform from A(StaticMeshActor transform) to B(grab socket on the skeletal mesh). just do this on tick, this actor wont be part of your game. just a helper.
anyway, store that relative transform in a public variable that you can see when playing in editor… hit play, deposess… move the static mesh actor to where it looks good, copy the location and rotation data from the static mesh actor’s details panel… and paste that into your sockets on the static mesh.
THEN… when you’re attaching your sword or whatever to your guy’s hand, you first SetActorTransform on it TO the socket’s transform, then right after that node, AddActorLocalTransform with the STATICMesh’s socket’s location, make sure to use ActorSpace in the GetSocketTransform node.
boom. socket to a socket, dunn… just requires an test level where you can set up those actors and get the data you need for the sockets.