【Mayaあるある】ウィンドウが出てこない

アイコンやメニューやMELを実行しても出てくるはずのウィンドウが出てこない時の解決方法です。
作業環境が変わった場合など、大体の原因は画面外にはみ出ていて戻せないものだと思いますが、知っている解決方法をまとめておきます。
そもそもMaya本体が画面外
windowsのみ
Mayaを起動してもMaya本体が出てこない場合、
画面外にあることが原因なんてこともあると思います。
そのときは、Windows10の機能を利用して、キーボードの
Windowsキー + ← or → を連打
でディスプレイ間を移動することができます。

タスクバーなどでMayaアイコンをクリックし、Mayaをアクティブにしてお試しください。
ここから下は、Maya内のWindowの話です。
Windowsキー + ← or →
windowsのみ
上記のMaya本体同じように、キーボードの
Windowsキー + ← or → を連打
で持ってこれる可能性があります。

アクティブウィンドウに対して有効なので、
機能をクリックした後、他を触らずすぐに連打してみてください。
ワークスペースリセット
Maya2017~
右上のワークスペース(Workspace)メニュー > 現在のワークスペースをリセット(Reset Current Workspace)

今までまデュアル(マルチ)ディスプレイ環境だったのが、シングル環境になってしまったとき等、
座標情報自体は残っており、存在しないディスプレイの座標に表示されてしまっている可能性が高いので、この方法で座標をリセットできるかもです。
ツールを使って呼び戻す
Maya内のウィンドウを引き寄せるスクリプトを書きました。
画面外にあるウィンドウも持ってこれるはずです。

こちらの中身をコピペしてください。
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キーです。

何度も使いそうだなと思ったら、こちらからスクリプトファイルをダウンロード下さい。
【MEL更新】ウィンドウの位置をリセット 新Mayaに対応
Maya自体の設定をリセット
上記で戻せない場合、何らかのエラーの可能性もありますので、Mayaをリセットするしかないかもしれません。
こちらを参照ください。
【Mayaあるある】Mayaを初期設定に戻したい
全てリセットは嫌だと思うので、最低限のリセット方法なども書いてあります。
スクリプトの実行方法を確かめる
特定のスクリプトのウィンドウが出ない場合は、こちらを確認ください。
【Mayaあるある】MELスクリプトが実行できない
そもそもウィンドウが出ないスクリプトもあるので、そちらはスクリプト自体のマニュアルを確認ください。
つぶやき
リモートワークのせいか最近聞かれること多かったのでまとめました。
スポンサーリンク