モーショントレイルは見てておもしろいですね。
キーフレームの情報がダイレクトに反映されるので、何かに使えそう・・・・
表示されてるし、選択できるし、きっと何かshapeを持っててるんだろうな。
という安易な発想からスタートしました。
観察
なるほど解らん。
それっぽいのは points
import maya.cmds as cmds
cmds.getAttr("motionTrail1.points")
でなんかいっぱい帰ってきた!
で、これらの位置は何だろうかというのを確認してみる
import maya.cmds as cmds
points = cmds.getAttr("motionTrail1.points")
for point in points:
node = cmds.createNode("joint")
cmds.xform(node,ws =True,t = point[:-1])
ゾワワ
なるほど、カーブの位置情報ですね。
加工
じゃぁこれを加工してあげればいいんですが・・・
このアトリビュート array型なのでここから加工するのがメンドイ
なので、exprespyを活用してみようかと
https://github.com/ryusas/maya_exprespy
pointsをもらってきて
points = motionTrail1.points
これをカーブデータに変換して、既存のnurbsCurveに差し込む
points = motionTrail1.points
pointArrayFn = api.MFnPointArrayData(points)
curveData = api.MFnNurbsCurveData().create()
api.MFnNurbsCurve().createWithEditPoints(pointArrayFn,3, api.MFnNurbsCurve.kOpen, False, True, True, curveData)
curveShape1.create = curveData
さてどうでしょうかね
うん 出てますね。
ついてきてくれますね。
こうなればただのnurbsCurveなので色々できそうですな!
まとめ
- exprespy便利ですね
- motionTrail 過ぎたフレームの色かわるので、現在位置取れる。
- 実際アニメーションさせるとどうなるかはちょっと心配