A question about accessing the bone location from a skeletal mesh in Niagara, Unreal. In one of my previous UE project, there was a policy that if we wanted to position the particles to a specific bone point, we must add a socket and reference the socket only, never reference the bone. However in another UE project, I was told that if there is no need to offset from the bone position, there is no point in adding an additional socket which could add performance and maintenance costs. So what is the best practice?
As far as I can tell there’s no good performance reason to prefer referencing sockets over bones, so it’s usually purely done for organization.
Bone structure might not remain the same over multiple skeletons, but if you only sample sockets you could reasonably require those sockets to be available on every asset. (and it takes a lot less work to match all the sockets than to match the entire skeleton across the project)
On the other hand as you already brought up, adding a bunch of extra sockets on a skeletons that do remain the same throughout the project, for example because the animators work with standardized skeletons and bone names will just give animators more headaches and increase performance cost.