2017/10/27

maya : 最上位のDAGオブジェクトのリスト取得

ユーザーが作ったもののみ

import pymel.core as pm
print [obj for obj in pm.ls(assemblies=1) if not obj.name() in ["persp","top","front","side"]]

もっとスマートに出来る?
しかも、assembliesってなんだよ…。分かりにくいな…。

2017/10/26

maya : NurbsCurveのこの辺のParametric Length値を知りたい

あらかじめcurve1とlocator1を用意してから実行。
次のコードは、locator1からcurve1に一番近いポイントのParametric Length値を取得します。



import pymel.core as pm
import maya.api.OpenMaya as om

lct = pm.PyNode("locator1")
pt = om.MPoint(lct.getTranslation())

sel = om.MSelectionList()
sel.add("curve1")
path = sel.getDagPath(0)
crv = om.MFnNurbsCurve(path)

p,pl = crv.closestPoint(pt)

print pl

Attach to Motion Pathで、Parametric Lengthにチェックを入れて出てきた値を入れるとそこにコンストできます。
しかし、コードが長いなぁ…。

maya : pymelで選択している階層すべてのコンストレイント取得

import pymel.core as pm

# 選択している階層すべてのコンストレイント取得
pm.listRelatives(pm.selected(),ad=1,typ="constraint")

2017/10/20

maya : pymelでResetTransformationsとCenter Pivot

すぐ忘れるのでメモ
両方選択無し。

import pymel.core as pm

# null1をResetTransformations
obj = pm.PyNode("null1")
pm.makeIdentity(obj)

# pSphere1をCenter Pivot
obj = pm.PyNode("pSphere1")
pm.xform(obj,cp=True)

Perforce: 複数のワークスペースを更新するバッチ

batを叩けば全部更新。 @echo off set P4PORT=x.x.x.x:xxxx set P4USER=user set P4PASSWD=password echo %P4PORT% echo %P4USER% echo %P4PASSWD% echo %P4PAS...