I've completely forgot about one thing. It is possible to dump socket information
using the command line. Some example (sorry, it's for the Batman: Arkham City, not for Mass Effect, but they have identical approach)
Command line:
umodel -path=<path_to_batman_CookedPC>
Playable_Catwoman_Std_SF Catwoman_Whip_Skin -dump -all
Red is the package name,
green is the mesh name.
You will get the log (you can save it with standard OS output redirection or by adding "-log=<log_filename>" option). There is a stripped-down version of output:
ClassName: SkeletalMesh3 ObjectName: Catwoman_Whip_Skin
LODInfo[1] =
{
...
}
Sockets[6] =
{
Sockets[0] = SkeletalMeshSocket'Catwoman.Mesh.Catwoman_Whip_Skin.SkeletalMeshSocket_0'
Sockets[1] = SkeletalMeshSocket'Catwoman.Mesh.Catwoman_Whip_Skin.SkeletalMeshSocket_1'
Sockets[2] = SkeletalMeshSocket'Catwoman.Mesh.Catwoman_Whip_Skin.SkeletalMeshSocket_2'
Sockets[3] = SkeletalMeshSocket'Catwoman.Mesh.Catwoman_Whip_Skin.SkeletalMeshSocket_3'
Sockets[4] = SkeletalMeshSocket'Catwoman.Mesh.Catwoman_Whip_Skin.SkeletalMeshSocket_4'
Sockets[5] = SkeletalMeshSocket'Catwoman.Mesh.Catwoman_Whip_Skin.SkeletalMeshSocket_5'
}
...
Here you can see that Catwoman_Whip_Skin has 6 sockets which are stored in objects Catwoman.Mesh.Catwoman_Whip_Skin.SkeletalMeshSocket_0 to 5. These objects are dumped too because I've added "-all" option to the umodel's command line and their data follows:
Object info:
============
ClassName: SkeletalMeshSocket ObjectName: SkeletalMeshSocket_0
SocketName = Bolas_Handle_Attach
BoneName = Bip01_R_Hand
RelativeLocation = { X=11.301, Y=-1.66612, Z=5.12895 }
RelativeRotation = { Yaw=-31424, Pitch=6241, Roll=697 }
RelativeScale = { X=1, Y=1, Z=1 }
Object info:
============
ClassName: SkeletalMeshSocket ObjectName: SkeletalMeshSocket_1
...
...
You may type this information directly in UnrealEd's socket editor.