Skip to content

alfsici/SiShelf

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SiShelf [Var.1.7.0]

SiShelf

Softimageのシェルフをリスペクトして作成されたMaya用のシェルフツールです。
見た目のカスタマイズや自由な配置が行え、標準のシェルフツールよりも自分好みのシェルフを作成出来ます。
また、Mayaメインウインドウにドッキングした状態だけでなく、フローティングウインドウとしても利用できます。
XPOPモードを活用すれば画面領域を占有することなくスムーズな作業が行えるでしょう。

バージョン1.0から1.1以降への移行手順

初期型のバージョン1.0では手動でuserSetup.pyにコードを記述していましたが、1.1からは指定の場所にフォルダを置くだけで良くなりました。 1.0を導入した方は以下の手順で1.1へと移行してください。

  1. SiShelf[Var.1.0]フォルダの直下にあるdataフォルダを C:\Users\ユーザー名\Documents\mayaSiShelf_data とリネームして移動させる。
  2. userSetup.pyに追記した部分を削除。
  3. 下記インストール項目の手順でVar.1.1をインストール

インストール

  1. Clone or download > Download ZIP からZIPファイルをダウンロードしてください。

  2. 解凍した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 からホットキーを割り振ることもできます。

SiShelf

使い方

Mayaウインドウへのドッキング

SiShelfはMayaのウインドウにドッキングすることができます。
ドッキングした状態でMayaを終了すると状態が保存され、次回ドッキングした状態でMayaが起動します。

SiShelf

XPOPモード

シェルフに登録された項目をコンパクトなメニューとして表示するモードです。
シェルフは画面領域を占有して気にくわない!という方におススメです。
マウスカーソルの位置にメニューが表示されるので、ホットキーに登録しておけばスムーズな作業が行えるでしょう。 ホットキーのコードを独自に設定すれば特定のタブの内容のみを表示することができます。
詳しくは「コードから実行」の項目を参照してください。

SiShelf

アイコンなどもシェルフで登録したものが表示されます。
XPOPは初期設定ではボタンを作成した順番で表示されます。
これを変更したい場合はシェルフモードのコンテキストメニュー XPOP Setting から設定を行ってください。

SiShelf

表示の順番、表示するかどうか、スペーサーを挟み込むかどうかを設定可能です。

ボタンの登録

シェルフにツールを登録する方法は以下の2つです。

  • テキストを選択してシェルフにドラッグ&ドロップ
  • ファイルをシェルフにドラッグ&ドロップ(.melファイル、.pyファイルに対応)

SiShelf

ボタンの設定ウインドウが表示されるので任意の情報を入力してOKを押すとボタンが作成されます。
※ラベルやツールチップは改行または入力欄からフォーカスが外れるとプレビューに反映されます(バグ回避の為)

SiShelf

マウスの左クリックでスクリプトを実行できます。
マウスを押した瞬間ではなく、話した瞬間に実行されます。
離す位置をボタン外にすると実行をキャンセルできます。

メニューボタン

ボタンのタイプをMenu Buttonに指定することで、複数のコマンドを実行できるボタンを作成することができます。
少しだけ違うスクリプトなどをまとめて登録する事で分かりやすく、省スペース化するのに役立つかと思います。

SiShelf

ラベルはダブルクリックで編集することができます。
半角ハイフン(-)を4つ以上並べること仕切り線になります。

仕切り線

タブ内の整理用に仕切り線を追加できます。 縦横やラベルの有無、色などが自由に設定できます。
※ラベルは入力欄からフォーカスが外れるとプレビューに反映されます(バグ回避の為)

SiShelf

タブ

マウス右クリックのコンテキストメニューからタブの追加、削除、リネームが行えます。
タブの順番はドラッグすることで入れ替えることが可能です。
コンテキストメニューのOptionからタブの高さ、フォントの大きさを設定することが可能です。

SiShelf

リファレンスタブ

マウス右クリックのコンテキストメニューのExternal referenceから特定のタブを外部ファイルから参照する設定にすることが可能です。
リファレンスタブにすることで、チームや社内など多人数で共通のツールを使用することが出来るなどの利点が考えられます。

SiShelf

読み込むデータはタブのエクスポート機能を利用してください。
リファレンスタブはタブにアイコンが表示され、内容の編集が行えなくなります。

操作

パーツはマウス中ドラッグで配置移動を行うことができます。

SiShelf

マウスの左ドラッグでシェルフに登録したパーツを矩形選択できます。 複数選択した状態でマウス中ボタンドラッグで一括移動、コンテキストメニューから削除等が出来ます。
※現状複数選択に対応していないコマンドもあります。

SiShelf

スナップ機能

コンテキストメニュー>Option からスナップ機能を有効にすることができます。

SiShelf

縦横のスナップ間隔の指定、スナップ時のガイドグリッドの表示が設定できます。

コンテキストメニュー

マウス右クリックでコンテキストメニューを表示できます。

メニュー 概要
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 読み込みデータのファイルパスを指定

SiShelf

動作確認

MAYA2014:バグで立ち上がらない

MAYA2015:問題なし

MAYA2016:問題なし

MAYA2017:問題なし

把握している不具合

  • MAYA2017でボタンEidtウインドウ表示時、背景色指定が反映されていない(UIを手動更新すると反映される)
  • 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公開

ライセンス

MIT

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%