ViewPortに表示されているノードを選択する!!

OpenMayaのヘルプを観ていると、昔々面白いものを見つけたのをふっと思い出しました!

それは、、、

MGlobal.selectFromScreen

スクリーンの座標をしていすると、選択してくれるっというメソッドです!コレを使って、ViewPortに表示されているノードを選択する方法をご紹介したいと思います!

Amaterasuには、ちょっとグレードアップした「Select Displayed Node」がございます!よかったら使ってみてください(*´ω`*)

ヘルプの確認

MGloba.selectFromScreenのヘルプを見てみると、選択範囲の開始のXYの位置、終了のXYの位置、選択モードの指定が必要そうです!選択モードの指定は追加選択になっていたので、選択の置換(MGlobal.kReplaceList)にしたほうが使い勝手が良さそうです。

選択範囲の開始位置は「0」で良さそうですが、終了の位置が状況に応じて変わりそうです。。。

そこで、M3dView.active3dViewを使ってアクティブなView Portを取得し、View Portの大きさを、選択範囲の終了位置に指定する形にしたいと思います!

コーディング

from maya import OpenMaya, OpenMayaUI

viewPort = OpenMayaUI.M3dView.active3dView()
OpenMaya.MGlobal.selectFromScreen(
	0,
	0,
	viewPort.portWidth(),
	viewPort.portHeight(),
	OpenMaya.MGlobal.kReplaceList,
	)