my funeral week

少しでも日々の生活に変化を。

MayaScripts_SelectionStorer:ノード選択補助ツール

※2020/08/29 Updated

こんにちは。
最近、更新内容が全てスクリプト紹介ばかりですみませんね~。

今日もスクリプト紹介です。


SelectionStorer

アニメーション制作において、ノードの選択ってかなり頻繁に行う上に、結構 面倒 です。
例えば、右手の指を全て選択とか、全身のリグを全て選択するとか・・・。
多くの場合はリグに併せて「Picker」を制作することでそれを補うのですが、外部リグを別途制作した場合等、すべての状況において完璧なPickerを作ることは難しいと思います。

Mayaにはセットノードというものがあります。複数のノードをまとめて、お気に入りのセレクションセットのように扱うことのできるアレです。
ところが、デフォルトだとセットノードって「セットノードを選択 → 右クリック → セットメンバーの選択」でようやくノードを選択。その仕様が故にShiftキーで追加選択等も行えず(私が解決方法を知らないだけかも)正直なところ、めちゃくちゃ使いにくいです。

そこで制作したのが、このスクリプトSelectionStorer」です。
セットノードのようにセレクションセットの内容を名前付きで保存、ワンクリックでノード選択、Shiftキーでの追加選択も容易に行えます。
さらに、Xml形式で設定した情報を保存し、シーン間での再利用も簡単です。

www.dropbox.com

クリエイティブ・コモンズ・ライセンス


インストール

DLして解凍したSelectionStorerフォルダを以下の場所に配置。

C:\Users\"ユーザー名"\Documents\maya\scripts


で、以下の2行をシェルフに登録。

import SelectionStorer
SelectionStorer.main()


実行すると以下のようなウィンドウが立ち上がります。

f:id:garysfirearms108:20200320164412j:plain


メインメニュー

各項目について

  • 色付きのラベル
    • 読み込んでいるファイル名の表示。
  • テキストフィールド
    • 読み込んでいるファイルパス。
  • ...ボタン
    • 既存のXmlデータの読み込み。
    • 逆にセーブするには メニューバーからSave を実行してください。
  • リスト
    • セレクションセット名一覧。
    • このリストの 項目をクリックすることでノードを選択 します。
  • Upボタン
    • 選択されている項目の順序を1つ上に上げる。
  • Downボタン
    • 選択されている項目の順序を1つ下に下げる
  • Addボタン
    • 現在選択されているノードを新しくリストに追加(別画面を開く)
  • Removeボタン
    • リストで選択されている項目を除外する
  • Editボタン
    • リストで選択されている項目の内容を編集する(別画面を開く)


セレクションセットの追加

Addボタンを押すと、現在選択中のノードをリストへ追加できます。
その際は以下のダイアログを通じてセレクションセットの項目名を入力できます。

f:id:garysfirearms108:20200320164456j:plain

任意の名前を入力後に、「Addボタン」か「Enterキー」を押すことでリストへの追加が完了です。


セレクションセットの削除

Removeボタンを押すと、リストで選択中のセレクションセットをリストから削除します。


セレクションセットの編集

Editボタンを押す(または項目をダブルクリックする)とリストで選択中のセレクションセットの内容を、以下のウィンドウを通じて編集できます。

f:id:garysfirearms108:20200320164530j:plain

各項目について

  • Name
    • セレクションセット名を変更できます。
  • Addボタン
    • 現在シーン上で選択しているノードを新たにセレクションセットに追加します。
  • Remove
    • 下部のノードリストで選択中の項目をリストから除外します。
  • ノードリスト
    • セレクションセット内のノード一覧です。
  • OKボタン
    • 編集を完了します。
  • Cancelボタン
    • 編集した内容を破棄して、メインメニューへ戻ります。


セレクションセットの選択

リスト内の項目をシングルクリックすると、セレクションセット内のノードを選択します。また、Shiftキーを押しながら選択することで追加選択可能です。


Xmlへ設定内容をセーブまたはロード

ファイルに関係する機能は、メニューバー内の「File」から実行できます。

f:id:garysfirearms108:20200320165451j:plain

  • New
    • ファイルパスフィールドやリストの項目を全てクリアします。
  • Load
    • 保存したXmlデータをロードできます。
      ファイルパスフィールド横の「...ボタン」でも同じことができます。
  • Save
    • 設定した内容をXmlデータに書き出します。
      ※読み込み中のXmlデータがある場合はそのファイルへ内容を上書きします。
  • SaveAs
    • 設定した内容をXmlデータに別名で書き出します。
  • Open file in explorer


オプション

メニューバー内の「Option」から以下の項目を設定できます。

f:id:garysfirearms108:20200320164702j:plain

  • Double Click Select
    • リストの項目をダブルクリックすることでノードを選択するようにします。
  • Allow Multi Select
    • リスト内の項目をマウスドラッグにて複数選択できるようにします。
  • File Auto Save
    • リストの編集を行った時に自動で設定内容をXmlへ保存するようにします。
  • Reset to default
    • 上記の項目を初期値に戻します。

変更した各オプションの値は専用の別ファイル保存に保存され、次回以降の起動時にも反映されます。


その他

メニューバーに含まれるその他の機能

  • Help
    • About
      • バージョン情報を表示。
    • Open help link
      • このブログを既定のブラウザで開きます。
        Windows環境下以外で上手く動作しないかもしれません。


それと、このスクリプトノードの名前を基にシーン上から選択する 仕様になっていますので、スクリプトに登録後のノードの名前を後々変更したり、完全に同名のノードをシーン上に新たに追加する等の処理を行うと、実行時のエラーの原因になる可能性があります。一応、予め予想できるエラーは回避したつもりですが・・・。


更新履歴

  • ver 1.5.1(2020/08/29)
    • トランスフォームノード以外の選択に対応
  • ver 1.5(2020/05/06)
    • UIのレイアウトを調整
  • ver 1.4(2020/04/07)
    • ノード名は常にフルネーム取得に変更
  • ver 1.3(2020/03/20)
    • 配布開始


余談

こんなこと言うと元も子もないですが、このスクリプト車輪の再発明かと。
ちゃんと調べた訳じゃないですが、似たような内容のものはネット上にいくつも溢れているでしょうね。ただ、この制作を通じて色々と学びがあったので、私自身には意味のあるものになりました。
自分好みの機能を盛り込んでいるので、実際に仕事にも役に立ちましたし・・・、
決して無駄じゃない。そう信じることが大事なのです。

それでは、また。