Hi man , its really not clear what you need , so here some thing that you can do.
You can spawn any actor in any place in the universe.
If you want to spawn at the center of the CharacterB you can get his location and spawn there.
The Character, and a lot of things have a center. The center may be not where you want to spawn.
So you have to add a handmade vector using the relative vectors like Forward and Up .
to make a vector to add to your spawn to put “the hat on his head”.
Unreal have a sistem of sockets.
You can for example, get the mesh of a character and add a socket to a bone.
So when you want to spawn the object in his hand… you can get the mesh reference, and search for his HAND-SOCKET… Get his transform to place the spawn exactly there.
Sure you need to attach the spawned actor to the socket or the actor or anything that moves.
You can also have around in the world some Actors or target that you can use to address your spawn.
Lets say you want to add a point light in the nearest lamp.
You can search for all actor lamp, check and store the nearest one with a loop , and then use the lamp location to spawn there a pointlight.
Sure you can use also an array to store the same informations.
In the editor you can move and snap the Actors and the meshes using the grid sistem, or the XYZ location in the details, or also snapping to the vertex, pressing and moving with the middlemouse.
Try to search for some info about these stuff…