忍者ブログ
2024/04/19

【MAYA】シェイプノードのバウンディングボックスにロケータを配置(指定フレーム範囲内)

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

2015/03/24

【MAYA】シェイプノードのバウンディングボックスにロケータを配置(指定フレーム範囲内)

指定ノード以下のシェイプノード全体のバウンディングボックスとして取得。
バウンディングボックスの座標にロケータ作成。
これをフレーム数分繰り返す

pymel pm.currentTime(fr)でアップデートをFalseにして画面描画を行わないと、 バウンディングボックスの情報も更新されなかった。
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)

拍手[4回]

PR

コメント

プロフィール

HN:
モチオ
性別:
非公開
自己紹介:
テクニカルアーティスト(アニメーション出身)サポート対象Softimage/MotionBuilder/Mayaなど 言語 javascript / PHP / Python / VBAなど Webアプリも少しだけ作れる

P R