ワークスペース コントロールを使用して、Maya のワークスペース システム内でドラッグ、ドッキング、保存できるカスタム UI を作成することができます。ワークスペース コントロールは、workspaceControl
コマンドを使用して作成されます。このコマンドを呼び出して、内部 UI を作成する uiScript
フラグにスクリプトを渡すと、ワークスペース システムはワークスペース コントロールを指定したワークスペースに保存し、次回に開いたときにそのコントロールを適切に復元できるようになります。このスクリプトで呼び出すあらゆるものは、これ以降に Maya を起動し、保存したワークスペースが復元されたときに実行することができます。
MEL スクリプトはソースから取得する必要がありますが、Python モジュールは読み込む必要があります。唯一の例外は次のとおりです。
requiredControl
フラグに他のワークスペース コントロールの名前を指定する必要があります。コントロールが互いに呼び出しあうなどの循環従属にご注意ください。requiredPlugin
フラグにプラグインの名前を指定する必要があります。中央ビューポートの 4 辺の周りにドッキング可能な UI を作成するために使用されていた dockControl
コマンドは、ワークスペース コントロールによって置き換えられました。dockControl
機能はサポートされなくなりました。workspaceControl 機能に移行するには、実行時に内部 UI を生成するスクリプトを作成します。この機能を workspaceControl
コマンドの呼び出しにアタッチするには、uiScript
フラグを使用します。内部 UI を含むウィンドウを作成してから、content
フラグを介して dockControl
コマンド呼び出しにアタッチすることはできなくなりました。
次の例では、MEL を使用してワークスペース コントロールを作成する最も簡単な方法を示します。この例では、このスクリプトが customWorkspaceControlFile.mel
にあることが前提となります。
global proc createCustomWorkspaceControlUI()
{
columnLayout;
button;
button;
button;
}
次のコマンドを実行して、最初のコントロールを作成します。
workspaceControl -retain false -floating true
-uiScript "if(!`exists createCustomWorkspaceControlUI`) source customWorkspaceControlFile; createCustomWorkspaceControlUI();"
myCustomWorkspaceControl;
Maya コマンド スクリプトを使用して、Python でワークスペース コントロールを作成することができます。ワークスペース コントロールの UI の内容が PySide ベースの場合は、PySide のみが適用されます。
次の操作を実行して、PySide UI 内でワークスペース コントロールを作成します。
MayaQWidgetDockableMixin
クラスから最上位のウィジェットを取得します。dockable
が True
に設定された状態で show()
に対する呼び出しを使用して、ウィジェットを開きます。uiScript
に、このウィジェットを再作成するスクリプトを設定します。このスクリプトでは、MQtUtil.addWidgetToMayaLayout
を使用して、再作成されたウィジェットを復元されたワークスペース コントロール(MQtUtil.findControl
を使用して検索)にペアレント化する必要があります。Python を使用してワークスペース コントロールを作成する方法の詳細については、dockableWorkspaceWidget.py
devkit サンプルを参照してください。このサンプルを実行するには、スクリプト エディタ(Script Editor)で開いて実行します。 「PyQt および PySide ウィジェットのベスト プラクティス」も参照してください。
C++ を使用している場合は、最初に workspaceControl
MEL コマンドを使用してワークスペース コントロールを作成する必要があります。このコマンドを実行するには、MGlobal::executeCommand()
メソッドを使用します。次に、MQtUtil::addWidgetToMayaLayout()
メソッドを使用して C++ で作成された Qt UI をワークスペース コントロールにペアレント化できます。
workspaceControlCmd.cpp
サンプルは、ワークスペース コントロールおよびそれらを含む UI を生成するコマンドの作成方法を示します。また、この UI を workspaceControl の uiScript
フラグに渡して、再度開くときに UI を復元する方法も示します。このコマンドはプラグインの一部であるため、requiredPlugin
フラグを使用してワークスペース コントロールがこのプラグインを認識し、この UI の復元コマンドを実行できるようにする必要があります。
workspaceControlCmd サンプルをビルドするには、「プラグインでの Qt の使用方法」トピックの「プラグインのビルド」セクションを参照してください。 プラグインがビルドされたら、プラグインを Maya にロードし、次の MEL スクリプトを実行します。
workspaceControlWindow;
.