Hi!
There is no default option to set your pivot to your center of mass, because that calculation can become very heavy and slow if you are working with millions of polygons and could potentially crash maya. But you can do so with a custom script.
This is a custom python script that centers the pivot of selected objects to the center of their collected mass (by calculation the barycenter of all their vertices):
import maya.cmds as mc
def centerToBarycenter():
sel = mc.ls(sl = True, o = True)
hil = mc.ls(hl = True)
toBeProcessed = []
for h in hil:
if h in sel:
sel.remove(h)
vtxList = mc.filterExpand(sm=31)
if vtxList == None:
vtxList = []
for t in toBeProcessed:
vc = mc.ls(t +".vtx[*]", fl = True)
if vc != []:
vtxList = vtxList + vc
xC = []
yC = []
zC = []
for v in vtxList:
pos = mc.xform(v, q= True, t = True, ws = True)
xC.append(pos[0])
yC.append(pos[1])
zC.append(pos[2])
posBC = (sum(xC)/len(xC),sum(yC)/len(yC),sum(zC)/len(zC))
for s in sel:
if mc.objectType(s) == "mesh":
s = mc.listRelatives(s, p = True)[0]
mc.xform(s, piv = posBC, ws = True)
centerToBarycenter()
It's a script I wrote a while back as a training exercise and therefore is rather limited (only works on geometric objects, everything else is ignored). But it could be easily expanded to all your needs.
But as already mentioned, if you have high poly counts, proceed with caution.
I hope it helps!