[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ただいまコメントを受けつけておりません。
import pymel.core as pm
import maya.cmds as cmds
#指定ノード以下のシェイプノードのバウンディングボックスを取得
def get_boundingbox(root):
if isinstance(root,str) == True:
root = pm.PyNode(root)
transforms = root.listRelatives(ad=True,type="transform")
pm.select(transforms)
bbox = cmds.polyEvaluate(b=True, ae=True)
return bbox
#バウンディングボックスの位置にロケータ作成
def make_bbox_locator(bbox ,root):
for x in bbox[0]:
for y in bbox[1]:
for z in bbox[2]:
l = pm.spaceLocator(p=(x, y, z))
pm.parent(l ,root)
min = int(pm.Env().minTime)
max = int(pm.Env().maxTime)
step = 5 #フレームステップ数
obj = pm.selected()[0]
root = pm.group(em=True, name='bbox_root')
for fr in range(min ,max ,step):
pm.currentTime(fr)
bbox = get_boundingbox(obj)
make_bbox_locator(bbox ,root)