【MEL更新】ウィンドウの位置をリセット 新Mayaに対応

AriWindowPositionReset001.gif
AriWindowPositionReset

2019/10/14 バグ修正

Maya内で使用するウィンドウを移動させて再表示するツールの更新です。
Maya2017以降の新仕様のウィンドウに対応させ、意図したものだけ移動できるようにUIも付けました。

デュアルディスプレイなど、環境を変化させて、ウィンドウがどこかにいってしまって戻せないときなどに役に立つと思います。



起動

AriWindowPositionResetを実行すると、ウィンドウがMayaメインウィンドウの左上に表示されます。

AriWindowPositionReset002.jpg
こいつ自体がどっかに行ったら元も子もないので、
必ずMayaメインウィンドウの位置にでます。



ウィンドウ移動

移動させたいウィンドウ名の「Reset」ボタンを押すと、
このウィンドウのすぐ右に移動してきます。
AriWindowPositionReset003.jpg


・一体化しているウィンドウは移動しません。(移動するものもあります)
・一部対応していないウィンドウもあります。

・下記の方法で移動させられるウィンドウもあります。
【Mayaあるある】ウィンドウがでない(画面外にいってもどせない)



コピペ用コード


ただこれ、おそらく、困るまではわざわざMELをダウンロードしないですよね?
でも困ったときにはすぐに対処したいですよね?
ということで、今回も、ダウンロードしなくてもコピペですぐに対処できるようにソースコード用意しておきます。
困ったとき思い出してまたこのページに検索か何かで来てくださいw

下記の枠の中を全部コピーして、



global proc AriWindowPositionReset_Reset(){

string $windowList[] = `lsUI -typ "window"`;
string $dockControlList[] =`lsUI -typ "dockControl"`;

print("\ndock--------------------\n\n");
for($dock in $dockControlList){
if(!`dockControl -ex $dock`){
continue;
}
dockControl -e -fl false $dock;
}
int $xy[2];
for($win in $windowList){
if($win == "MayaWindow"){
$xy = `window -q -tlc $win`;
break;
}
}
for($win in $windowList){
if(!`window -ex $win`){
continue;
}
if($win != "MayaWindow" && $win != "learningMoviesLaunchWnd" && $win != "ColorEditor"
&& $win != "CommandWindow" && $win != "gozwin" && $win != "nexFloatWindow" && $win != "AriCompactToolSettingsWindow" ){
window -e -tlc $xy[0] $xy[1] $win;
}
else{
}
}
}
global proc AriWindowPositionReset_ResetGO(string $ui){
print ($ui+"\n");
int $winPos[] = `window -q -tlc AriWindowPositionReset`;
int $winWidth = `window -q -w AriWindowPositionReset`;
int $movePos[];
$movePos[0] = ($winPos[0]);
$movePos[1] = ($winPos[1] + $winWidth + 10);
if(`exists("workspaceControl")`){
if(`workspaceControlState -ex $ui`){
if(`workspaceControl -ex $ui`){
workspaceControlState -e -tlc ($movePos[0]+30) $movePos[1] $ui;
workspaceControl -e -fl true $ui;
return;
}
}
}
if(`window -ex $ui`){
window -e -tlc $movePos[0] $movePos[1] $ui;
}
}
proc AriWindowPositionReset_row(string $ui){
string $label = $ui;
if(`window -ex $ui`){
$label = `window -q -title $ui`;
}
if(`dockControl -ex $ui`){
$label = `dockControl -q -l $ui`;
}
if(`exists("workspaceControl")`){
if(`workspaceControl -ex $ui`){
$label = `workspaceControl -q -label $ui`;
}
}
string $row = `rowLayout -nc 2 -adj 1`;
textField -text $label -ed false;
button -l "Reset" -c ("AriWindowPositionReset_ResetGO(\""+ $ui +"\")");
setParent..;
}
global proc AriWindowPositionReset_Reload(){
global string $AriWindowPositionResetW_SL;
global string $AriWindowPositionResetW_CL;
string $processedUI[];
int $processCount = 0;
string $windowList[] =`lsUI -typ "window"`;
string $dockControlList[] =`lsUI -typ "dockControl"`;
string $dumpWidgetsList[] =`lsUI -dw`;
deleteUI $AriWindowPositionResetW_CL;
$AriWindowPositionResetW_CL = `columnLayout -adj true -p $AriWindowPositionResetW_SL`;
if(`exists("workspaceControl")`){
for($dumpWidgets in $dumpWidgetsList){
if(`workspaceControl -ex $dumpWidgets`){
if(`workspaceControl -q -fl $dumpWidgets`){
AriWindowPositionReset_row($dumpWidgets);
$processedUI[$processCount] = $dumpWidgets;
$processCount++;
}
}
}
}
separator;
for($window in $windowList){
if(stringArrayContains($window,$processedUI))continue;
if(`window -ex $window`){
if($window != "MayaWindow" && $window != "AriWindowPositionReset"){
AriWindowPositionReset_row($window);
$processedUI[$processCount] = $window;
$processCount++;
}
}
}
separator;
for($dockControl in $dockControlList){
if(`dockControl -ex $dockControl`){
if(`dockControl -q -fl $dockControl`){
AriWindowPositionReset_row($dockControl);
}
}
}
setParent..;
}
global proc AriWindowPositionReset(){
global string $AriWindowPositionResetW_SL;
global string $AriWindowPositionResetW_CL;
int $xy[2] = {0, 0};
if(`window -ex "MayaWindow"`){
int $getXY[] = `window -q -tlc MayaWindow`;
$xy[0] = $getXY[0]+10;
$xy[1] = $getXY[1]+10;
}
print ("MayaWindow "+$xy[0]+","+$xy[1]+ "\n\n");
if((`window -ex AriWindowPositionReset`)==true)deleteUI AriWindowPositionReset;
window -tlb true -title "AriWindowPositionReset" -w 300 -h 400 AriWindowPositionReset;
string $form = `formLayout`;
$AriWindowPositionResetW_SL = `scrollLayout -cr true`;
$AriWindowPositionResetW_CL = `columnLayout`;
setParent..;
setParent..;
string $button = `button -l "Reload" -c "AriWindowPositionReset_Reload()"`;
formLayout -e
-af $button "left" 0
-af $button "right" 0
-af $button "bottom" 0
-ac $AriWindowPositionResetW_SL "bottom" 0 $button
-af $AriWindowPositionResetW_SL "top" 0
-af $AriWindowPositionResetW_SL "left" 0
-af $AriWindowPositionResetW_SL "right" 0
$form;
showWindow;
window -e -tlc $xy[0] $xy[1] AriWindowPositionReset;
AriWindowPositionReset_Reload();
}
AriWindowPositionReset



ここにペーストしたらEnterキーです。
AriWindowPositionReset03.jpg




更新

2019/10/14 バグ修正
Mayaを起動した際、既に開いているウィンドウに対して反応がなかったので修正しました。



ダウンロード


MELファイル版もちゃんとあります。
お気に召したらダウンロードしてください。
Download





つぶやき

最近、昔作ったツールを発掘しては、やばいこのままじゃ今のMayaにはダメじゃんと思うのが少しブーム??


テーマ : 3DCG
ジャンル : コンピュータ

tag : Maya, MEL, Mayaあるある, UI, AriWindowPositionReset,

スポンサーリンク

コメントの投稿

非公開コメント

カテゴリ
おすすMEL1
UV格子状整列 AriUVGridding03.gif

UV解像度チェック AriUVScaleChecker01.gif
月別アーカイブ
スポンサーリンク
おすすMEL2
リネーマー AriRenamer01.gif

置換/配置 AriAssetChanger01.gif
記事一覧

全ての記事を一覧

アクセスランキング
[ジャンルランキング]
コンピュータ
9位
アクセスランキングを見る>>

[サブジャンルランキング]
デザイン
1位
アクセスランキングを見る>>
ブログ内検索
プロフィール

Ari

Author:Ari
ExpertElite000.jpg

ゲーム系を中心にモデラーをやってます。プライベートでその他の作業も挑戦中です。
拍手ボタンありがとうございます。テンションあがります。

ツイッターでお知らせなどやってます。よかったらどうぞフォローお願いします。
ツイッターを覗いてみる

MEL
スポンサーリンク
QRコード
QR
タグ

Maya MEL モデリング MEL更新 Mayaあるある UI カスタマイズ データ管理 UV 数値設定 MayaTips ~がない アニメーション モデリングツールキット AriCompactToolSettings リネーム つぶやき AriReFreezeRotate マテリアル Maya基本 MEL基本 AriUVGridding 記事まとめ バグ? 新機能 AriSetPivot ホットキー AriUVFit 頂点カラー AriVertexColorEditor AriSceneOpener AriMirror AriRenamer AriCircleVertex ~ない テクスチャ AriUVScaleChecker リトポロジー アンケート スケルトン AriAniKeyCycle ジョイント AriPolygonCounter カメラ AriTransferPosition AriSortOutliner AriSymmetryChecker AriUVRatio AriUVAdsorptionMove AriSelectEdgeRing AriIconViewer AriAdsorptionVertex スクリプト ZBrush AriSplitPolygon レンダリング 更新 Rig AriUVSetList AriWindowPositionReset AriQuadrangulateRing AriAniKeyScale AriAnimationCopy MEL更新頂点カラー AriViewWindow AriDeleteEdgePreserveBorder モデリングAriCircleVertex AriUVAdsorption 

最新記事
メールフォーム

名前:
メール:
件名:
本文: