【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
アクセスランキング
[ジャンルランキング]
コンピュータ
6位
アクセスランキングを見る>>

[サブジャンルランキング]
デザイン
1位
アクセスランキングを見る>>
月別アーカイブ
スポンサーリンク
おすすMEL2
リネーマー AriRenamer01.gif

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

全ての記事を一覧

ブログ内検索
プロフィール

Ari

Author:Ari
ExpertElite000.jpg
Autodesk Expert Elite
本業はゲーム系中心の3Dモデラーです(フリーランス)。
プライベートではその他の作業も興味持ったものは何でも挑戦中。
拍手ボタンありがとうございます。テンションあがります。

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

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

Maya MEL モデリング MEL更新 Mayaあるある データ管理 UI カスタマイズ UV 数値設定 MayaTips ~がない アニメーション リネーム モデリングツールキット つぶやき AriCompactToolSettings マテリアル 記事まとめ AriReFreezeRotate Maya超基本 頂点カラー AriSetPivot 新機能 法線 MEL基本 Maya基本 ホットキー AriUVFit AriRenamer AriVertexColorEditor バグ? ~ない AriUVGridding AriSceneOpener AriMirror Normal AriCircleVertex AriViewWindow ジョイント スケルトン AriTransferPosition テクスチャ AriUVScaleChecker カメラ リトポロジー AriSelectMaterialAndObject AriAniKeyScale AriAdsorptionVertex レビュー AriPolygonCounter AriAniKeyCycle AriSortOutliner AriUVRatio AriUVSetList Rig AriCombineExtract AriQuadrangulateRing アンケート AriUVScaleUnfold 標準機能 3Dスキャナ AriJointBendOrient AriStraightVertex カーブ AriIconViewer AriSplitPolygon AriSelectEdgeRing AriSymmetryChecker UVGridding AriRenameShapeDefault AriMaterialList AriSamePositionSelector AriWindowPositionReset MEL更新頂点カラー レンダリング ZBrush AriUVNotchSew 更新 AriAnimationCopy AriUVAdsorption AriDeleteEdgePreserveBorder モデリングAriCircleVertex AriUVAdsorptionMove バグ修正 AriVertexColorChangeRGBA AriVertexColorSplitRGBA AriNormalDefaultBlend AriNormalValueCopy FBX スクリプト AriFBXExporter OBJ AriNormalRadial AriNormalSmooth AriSelectLoopRing AriWireColor AriComponentsController リトポロジ GameExporter AriAssetChanger AriQuickSelecter AriReFreezeScale 

最新記事
メールフォーム

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