SiShelf [Var.1.7.3]
Softimageのシェルフをリスペクトして作成されたMaya用のシェルフツールです。
見た目のカスタマイズや自由な配置が行え、標準のシェルフツールよりも自分好みのシェルフを作成出来ます。
また、Mayaメインウインドウにドッキングした状態だけでなく、フローティングウインドウとしても利用できます。
XPOPモードを活用すれば画面領域を占有することなくスムーズな作業が行えるでしょう。
バージョン1.0から1.1以降への移行手順
初期型のバージョン1.0では手動でuserSetup.pyにコードを記述していましたが、1.1からは指定の場所にフォルダを置くだけで良くなりました。 1.0を導入した方は以下の手順で1.1へと移行してください。
- SiShelf[Var.1.0]フォルダの直下にあるdataフォルダを
C:\Users\ユーザー名\Documents\maya
へSiShelf_data
とリネームして移動させる。 - userSetup.pyに追記した部分を削除。
- 下記インストール項目の手順でVar.1.1をインストール
インストール
-
Clone or download > Download ZIP からZIPファイルをダウンロードしてください。
-
解凍したSiShelfフォルダを
C:\Program Files\Autodesk\ApplicationPlugins
へコピーしてください。
MayaをCドライブ以外にインストールしている場合でもSiShelfフォルダはC:\Program Files\Autodesk\ApplicationPlugins
に置く必要があるようです。
判断に迷ったらボーナスツールと同じ場所に入れて下さい。
-
ApplicationPluginsフォルダが存在しない場合は作成してください。
-
複数バージョンのMayaに対応しています。2014以降のバージョンでは自動的に認識されツールが使える状態になります。
-
不要になった場合はフォルダを削除してください。
-
バージョンアップの際は上書きではなく、一度SiShelfフォルダを削除すると安全です。
実行
メインメニュー > Windows > SiShelf から開くことが可能です。もしくは Hotkey Editor > Custom Scripts > SiShelf からホットキーを割り振ることもできます。
使い方
Mayaウインドウへのドッキング
SiShelfはMayaのウインドウにドッキングすることができます。
ドッキングした状態でMayaを終了すると状態が保存され、次回ドッキングした状態でMayaが起動します。
XPOPモード
シェルフに登録された項目をコンパクトなメニューとして表示するモードです。
シェルフは画面領域を占有して気にくわない!という方におススメです。
マウスカーソルの位置にメニューが表示されるので、ホットキーに登録しておけばスムーズな作業が行えるでしょう。
ホットキーのコードを独自に設定すれば特定のタブの内容のみを表示することができます。
詳しくは「コードから実行」の項目を参照してください。
アイコンなどもシェルフで登録したものが表示されます。
XPOPは初期設定ではボタンを作成した順番で表示されます。
これを変更したい場合はシェルフモードのコンテキストメニュー XPOP Setting から設定を行ってください。
表示の順番、表示するかどうか、スペーサーを挟み込むかどうかを設定可能です。
Shelfのコンテキストメニュー>Option から見た目のカスタマイズを行うことができます。
お好みの見た目に変更してみてください。
Customizeのチェックを外すと標準の見た目にすることも可能です。
ボタンの登録
シェルフにツールを登録する方法は以下の2つです。
- テキストを選択してシェルフにドラッグ&ドロップ
- ファイルをシェルフにドラッグ&ドロップ(.melファイル、.pyファイルに対応)
ボタンの設定ウインドウが表示されるので任意の情報を入力してOKを押すとボタンが作成されます。
※ラベルやツールチップは改行または入力欄からフォーカスが外れるとプレビューに反映されます(バグ回避の為)
マウスの左クリックでスクリプトを実行できます。
マウスを押した瞬間ではなく、話した瞬間に実行されます。
離す位置をボタン外にすると実行をキャンセルできます。
メニューボタン
ボタンのタイプをMenu Buttonに指定することで、複数のコマンドを実行できるボタンを作成することができます。
少しだけ違うスクリプトなどをまとめて登録する事で分かりやすく、省スペース化するのに役立つかと思います。
ラベルはダブルクリックで編集することができます。
半角ハイフン(-)を4つ以上並べること仕切り線になります。
仕切り線
タブ内の整理用に仕切り線を追加できます。
縦横やラベルの有無、色などが自由に設定できます。
※ラベルは入力欄からフォーカスが外れるとプレビューに反映されます(バグ回避の為)
タブ
マウス右クリックのコンテキストメニューからタブの追加、削除、リネームが行えます。
タブの順番はドラッグすることで入れ替えることが可能です。
コンテキストメニューのOptionからタブの高さ、フォントの大きさを設定することが可能です。
リファレンスタブ
マウス右クリックのコンテキストメニューのExternal referenceから特定のタブを外部ファイルから参照する設定にすることが可能です。
リファレンスタブにすることで、チームや社内など多人数で共通のツールを使用することが出来るなどの利点が考えられます。
読み込むデータはタブのエクスポート機能を利用してください。
リファレンスタブはタブにアイコンが表示され、内容の編集が行えなくなります。
操作
パーツはマウス中ドラッグで配置移動を行うことができます。
マウスの左ドラッグでシェルフに登録したパーツを矩形選択できます。
複数選択した状態でマウス中ボタンドラッグで一括移動、コンテキストメニューから削除等が出来ます。
※現状複数選択に対応していないコマンドもあります。
スナップ機能
Shelfのコンテキストメニュー>Option からスナップ機能を有効にすることができます。
縦横のスナップ間隔の指定、スナップ時のガイドグリッドの表示が設定できます。
コンテキストメニュー
マウス右クリックでコンテキストメニューを表示できます。
メニュー | 概要 |
---|---|
Add button | ボタンを追加します |
Add partition | 仕切り線を追加します。 |
Edit | 選択しているパーツの内容を編集します。(複数選択には対応していません。) |
Delete | 選択しているパーツを削除します。 |
Copy | 選択しているパーツをコピーします。(複数選択には対応していません。) |
Paste | コピーしたパーツをクリックした位置に貼り付けます。 |
Cut | 選択しているパーツを切り取ります。(複数選択には対応していません。) |
Tab > Add | タブを追加します。 |
Tab > Rename | 現在のタブの名前を変更します。 |
Tab > Delete | 現在のタブを削除します。タブを削除するとタブに配置していたパーツ情報もすべて削除されます。 |
Tab > Export | 現在のタブの情報を外部ファイルに書き出します。 |
Tab > Import | 外部ファイルから現在のタブにデータを読み込みます。既存のボタン等のパーツは削除されます。 |
Tab > External reference | 現在のタブをリファレンスタブに切り替えます。 |
Tab > Remove external reference | リファレンスタブを取りやめます。 |
Default setting > Button | ボタンを作る際の初期設定を行います。 |
Default setting > Partition | 仕切り線を作る際の初期設定を行います。 |
XPOP Setting | XPOPで表示する順番などの表示設定を行います。 |
Option | シェルフのオプション設定を行います。 |
Version information | バージョン情報を確認できます。 |
データの保存
シェルフ内のデータはパーツの追加、削除、移動などの操作を行ったタイミングで自動的に保存されます。
現状は元に戻す機能はありません。注意してください。
データは C:\Users\ユーザー名\Documents\maya
にjsonファイルとして作成れます。
jsonファイルはテキストファイルなので、やろうと思えば内容を変更して保存することで手動での書き換えも可能です。
複数バージョンのMayaからも同一データが参照されます。現状はバージョン違いによる参照先変更機能はありません。
コードから実行
コードから実行する場合は以下の通りです。(上記コードをスクリプトエディタ(Pythonタブ)に貼り付けて実行 )
シェルフウインドウ表示
シンプルなコード例
import sishelf.shelf
sishelf.shelf.main()
フローティング状態のシェルフウインドウが表示されます。
引数名 | 引数型 | デフォルト値 | 概要 |
---|---|---|---|
x | int | None | ウインドウ表示X位置(省略時は画面**) |
y | int | None | ウインドウ表示Y位置(省略時は画面**) |
load_file | string | None | 読み込みデータのファイルパスを指定(保存パスとしても利用される) |
edit_lock | boolean | False | 編集機能をロックするかどうか(Trueの場合は保存も行われない) |
シェルフウインドウ表示(マウスの位置)
シンプルなコード例
import sishelf.shelf
sishelf.shelf.popup()
XPOPモード
シンプルなコード例
import sishelf.xpop
sishelf.xpop.main()
引数名 | 引数型 | デフォルト値 | 概要 |
---|---|---|---|
tab | string | None | XPOPの第1階層を指定のタブの内容にする(指定されない場合はタブ名がXPOPの第1階層) |
load_file | string | None | 読み込みデータのファイルパスを指定 |
動作確認
MAYA2015 / MAYA2016 / MAYA2017 / MAYA2018
把握している不具合
- MAYA2017以降でボタンEidtウインドウ表示時、背景色指定が反映されていない(UIを手動更新すると反映される)
- XPOPモードをホットキーに割り当てている場合、連続して呼びだすと表示済みのメニューが残る場合がある。
改訂履歴
20187/6/23
- バージョン1.7.3
- 2017、2018でボタンでMAYAデフォルトアイコンを指定できないバグを修正
2018/2/25
- バージョン1.7.2
- 2017、2018で再起動時にShelfの中身が消えてしまうバグを修正
2017/4/30
- バージョン1.7.1
- XPOPの見た目カスタマイズ機能実装
2017/4/28
- バージョン1.7.0
- [Shelf]XPOP表示設定機能実装
- [XPOP]シェルフでの表示設定が反映されるように修正
2017/4/26
- バージョン1.6.0
- [Shelf]タブの書き出し、読み込み機能実装
- [Shelf/XPOP]タブのリファレンス(外部参照)モード実装
2017/4/26
- バージョン1.5.3
- コードに2バイト文字があった場合、メニューボタン、XPOPが正常に動作しなかったバグを修正
2017/4/25
- バージョン1.5.2
- ボタンを一度押したら文字がヘコんで戻らなかった不具合を修正
2017/4/25
- バージョン1.5.1
- シェルフ、XPOP共に呼び出しコマンドに引数追加。[シェルフ]読み込みデータの指定、編集機能のロック [XPOP]読み込みデータの指定、表示第1階層のタブ指定
2017/4/24
- バージョン1.5
- XPOPモード追加
2017/4/23
- バージョン1.4
- メニューボタン形式に対応。
- タブの文字、高さの設定を追加
- コンテキストメニューにバージョン情報を追加
2017/4/20
- バージョン1.3.1
- 2017 起動時のドッキング状態の復元に対応
2017/4/17
- バージョン1.3
- マウス中ドラッグのパーツ移動がリアルタイムでプレビューされるように対応(配置が直感的に行いやすくなった)
- スナップ機能を実装
- マウス中クリック、右クリックでのパーツの選択機能を直感的になるように微調整
2017/4/15
- バージョン1.2
- ボタンのラベル色指定に対応
- ボタンをクリックした瞬間にコードを実行していたのを、離した瞬間に実行するように仕様変更。また、ボタン外の位置で離すとキャンセルできるように対応。
2017/4/13
- バージョン1.1.1
- 不要なPYTHONPATHの設定を削除。内部のインポートを明示的相対インポートに変更
- タブ内のパーツをEditした際に古いデータが残ってしまっていたバグを修正
- ラベルやツールチップに2バイト文字を入力している途中に環境によってMayaがクラッシュする問題に対応(フォーカスが外れると反映されるようになった)
2017/4/12
- バージョン1.1
- PackageContents.xml形式に対応。
- メニューとホットキーエディタに情報を自動登録対応
- ボタンエディット後に背景色の適用が正常に行えていなかったのを修正
- ボタンエディット画面のプレビュー時に背景色が反映されていなかったバグを修正
- MAYA2017でシェルフへファイル投げ込みを行うとエラーになっていた問題を解消
- その他細かいMAYA2017用の対応
2017/4/10
- Maya2016でボタンの背景色指定が無効になっていたバグを修正
- 「準備」の項目にgithubからzipをダウンロードした際の注記を追加
2017/4/9
- バージョン1.0公開