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

[サブジャンルランキング]
デザイン
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 モデリングツールキット つぶやき 記事まとめ マテリアル Maya超基本 AriReFreezeRotate 頂点カラー AriSetPivot 新機能 法線 MEL基本 ホットキー Maya基本 AriUVFit AriRenamer AriVertexColorEditor バグ? ~ない AriUVGridding AriSceneOpener AriMirror ジョイント AriCircleVertex AriUVScaleChecker レビュー Normal AriViewWindow AriTransferPosition カメラ テクスチャ スケルトン リトポロジー AriAdsorptionVertex AriAniKeyScale AriSelectMaterialAndObject AriStraightVertex AriAniKeyCycle AriPolygonCounter AriSortOutliner AriUVRatio AriCombineExtract AriUVSetList 標準機能 アンケート Rig AriQuadrangulateRing Twitter AriComponentsController Tips AriUVController AriJointBendOrient AriUVScaleUnfold 3Dスキャナ カーブ バグ修正 AriSamePositionSelector AriWindowPositionReset AriIconViewer AriSymmetryChecker AriUVNotchSew AriSplitPolygon AriRenameShapeDefault AriMaterialList UVGridding AriDeleteEdgePreserveBorder AriAnimationCopy 更新 レンダリング ZBrush モデリングAriCircleVertex AriReFreezeScale AriUVAdsorptionMove AriUVAdsorption MEL更新頂点カラー AriSelectEdgeRing AriQuickSelecter AriFBXExporter OBJ FBX ウェイト スキンウェイトペイントツール スクリプト AriUVSquare AriSkinWeightLock AriNormalValueCopy AriVertexColorChangeRGBA GameExporter リトポロジ AriSelectLoopRing AriAssetChanger AriNormalSmooth AriVertexColorSplitRGBA AriNormalDefaultBlend AriNormalRadial AriWireColor 

最新記事
メールフォーム

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