Maya Script Python – 選択順のトラック

Mayaのlsコマンドには、引数で「orderedSelection(os)」というものがあります。
これは、「selection(sl)」と違い、選択した順番も記憶する、というフラグです。

 

今まであまり使うこともないので、気にしなかったのですが、どうやらデフォルト設定では
この機能はオフになっているようで、プリファレンスから設定を変更する必要がある、というのを最近知りました、、
プリファレンス>選択項目
にある「選択順のトラック」のチェックボックスがそれです。
無駄にメモリを消費しないためだそうです。

 

三項演算子でのトグルを書きました。

import maya.cmds as cmds

cmds.selectPref(tso=0) if cmds.selectPref(q=1,tso=1) else cmds.selectPref(tso=1)

print cmds.ls(os=1,fl=1)

結果としてこれでまぁ理解はできたのですが、そこにたどり着くまでに実は紆余曲折ありまして、
はじめはこんなのを書いてました。

import pymel.core as pm

print "{0:-^50}".format("Befor")
print pm.optionVar["TrackSelectionOrder"]

if pm.optionVar["TrackSelectionOrder"]:
	pm.optionVar["TrackSelectionOrder"] = 0
else:
	pm.optionVar["TrackSelectionOrder"] = 1

print "{0:-^50}".format("After")
print pm.optionVar["TrackSelectionOrder"]

選択のプリファレンスにコマンドを送るのはどうするのかぁ、ということではじめは分からずに、「optionVar」
を使っておりました。
上記の記述で変更はできるのですが、実際には機能してくれません、、なんでだろう?よくわかりません。
pymelだと「optionVar」が辞書になっているので、アクセスがしやすくていいなぁ、などと思っていたら、使えない。

 

まぁ、それはさておき、次回はその機能が必要になったスクリプトの記事を書きます。

コメントする

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トラックバックする

トラックバック用URL:

アニメーションが親切に解説されております

レンダリング、ライティングの基本が分かります

図版が見やすい美術解剖書です