ドキュメンテーション: UIのカスタマイズ

UIのカスタマイズ

ユーザーインターフェースを使いやすいようカスタマイズすることができます。
オリジナルのメニューを構築したり、素早くコマンドを実行できるようコントローラボタンに任意の機能をアタッチすることができます。
MARUI UI LayoutEditorでカスタマイズすることが可能です。

参考動画:https://www.youtube.com/watch?v=TbP-HMLx–w&index=31&list=PLYt4XosVlCmWKxhYrVzBwu8yEXVGm3jwg

MayaシェルフのMARUIシェルフタブにあるアイコンを押すと、UIレイアウトエディタを開くことができます。
Icon Ui Layout

.

.

.

ウィジェットマッピング

最初のタブでは、UIレイアウトエディタでウィジェットをコントローラボタンにマッピングできます。
MARUI
の「ウィジェット」は、「新しいオブジェクトを作成する」や「アニメーションメニュー」など、さまざまな機能やメニューを指します。

ウィジェット

上部には、MARUIで利用可能なすべてのウィジェットのリストがあります。

デフォルトで利用可能なウィジェット一覧:

トリガー:どのツールが選択されていても、デフォルトのトリガーアクション
移動:3D移動ツール
回転:3D回転ツール
スケール:3Dスケールツール
  EditPivot:オブジェクトの回転/スケールピボットの位置を変更するためのツール
オムニ:オブジェクトの移動、回転、拡大縮小を同時に可能にする6DOF “オムニツール
  QuickDrag:最初に選択しなくてもオブジェクトを動かすことができる6DOF “QuickDrag”ツール
  EPCurveNURBSメニューのEPカーブツール
  PencilCurveNURBSメニューのPencil Curveツール
  PolyDraw:PolyDrawメニューのポリゴン描画ツール
  POVCamera:ライティング/レンダリングメニューのPOVカメラツール
  Snapping_ToUnitsMayaユニットへのスナップ
  Snapping_ToPointsポイントへのスナップ
  Snapping_ToCurves:曲線へのスナップ
  Menu_Tool:現在のツールを選択するためのツールメニュー
  Menu_Mode:コンポーネントモード(VertexEdgeObjectなど)を選択するためのモードメニュー
  HotBoxMaya のHotBox
  Navi:ナビゲーション
  ShiftShiftボタン
  AltUIレイアウトをサブのボタンマッピングに切り替える「Alt」ボタン

オリジナルのウィジェットを作成し、リストに追加するのこともできます。

レイアウト(Layouts)

レイアウトを使用すると、ウィジェット/ボタンマッピングのさまざまなセットをすばやく切り替えることができます。
たとえば、モデリング用に1つのレイアウトを作成してから、別の「アニメーション」レイアウトにすばやく切り替えることができます。 MARUIでは、無制限にレイアウトを追加できます。
各レイアウトは名前で識別されるため、すべてのレイアウト名は別の名前である必要があります。
デフォルトで提供されているデフォルトのレイアウト(Modeling・Animation・Lighting/Rendering)を編集することもできます。

リスト内のレイアウトの名前をクリックして選択するか、テキストボックスに名前を入力して [Create] をクリックして新しいレイアウトを作成します。
作成したすべてのレイアウトは、簡単にアクセスできるように[UIレイアウトメニュー]メニューに追加されます。
レイアウト名を変更したい場合は、テキストボックスに新しい名前を入力して、「Rename」ボタンをクリックしてください。
レイアウトを削除するには、それを選択して「Delete」ボタンを押します。

ウィジェットをコントローラボタンへマッピング

下の画像には、Oculus Touchコントローラ・HTC Viveコントローラ・Windows MRコントローラ・LeapMotionのそれぞれの画像を示すいくつかのタブがあります。
各画像は、そのコントローラで利用可能なボタンと、そのボタンに現在マッピングされているMARUIウィジェットを示しています。
マッピングを変更するには、上のウィジェットのリストから目的のウィジェットを選択し、それをマッピングしたいコントローラーのボタンをクリックします。
ウィジェットのマッピングを解除するには、利用可能なウィジェットのリストから[NONE]ウィジェットを選択し、それをそれぞれのボタンに割り当てます。

Alt

画像の左上隅に “Alt”キーのチェックボックスがあります。
これは “Alt”キーウィジェット機能に連携しています。
Alt」キーウィジェットを使用すると、キーボードのAltキーを使用してホットキーを設定したりアクセスしたりできるのと同様に、コントローラのボタンに機能を追加できます。
この機能を利用するには、MARUI “Alt”キーウィジェットをコントローラボタンの1つにマッピングする必要があります。

その後、Altキーウィジェットを取り付けたコントローラのボタンを押している間は、別の機能セットが利用可能になります。
この代替機能セットを定義するには、UIレイアウトエディタの[Alt]チェックボックスをオンにします。
それから、Altキーを押したときに利用可能になるボタン/ウィジェットマッピングを定義できます。

.

.

.

カスタムメニュー

UIレイアウトエディタの2番目のタブでは、独自のメニューを作成および編集できます。

エディタの上部には、作成されたすべてのメニューが一覧表示されます。
新しいメニューを作成するには、テキストフィールドに名前を入力して「Create」ボタンを押します。それが上のリストに表示されます。
また、UIレイアウトエディタの最初のタブのウィジェットのリストにも表示され、そこで新しいメニューを任意のコントローラボタンにマッピングできます。
メニュー名の下に、コントローラボタン上で表示されるアイコンを設定できます。
これは、ハードディスク上のイメージファイルまたはMayaのアイコン名のどちらかです(Mayaで使用可能なアイコンのリストについては、MayaShelf Editorを参照してください)。

[カスタムメニュー]タブの下部には、メニュー要素の項目が一覧表示されます。
新しいアイテムをメニューに追加するには、名前を入力し(メニューアイテムの上にマウスを移動するとツールチップとしても表示されます)、アイコンを選択します(これもハードディスク上のイメージファイルまたはMayaアイコンになります)。
メニュー項目に関連付けるMELまたはPythonコマンドを入力して、エディタの下部にある[Create]ボタンをクリックします。
コマンドを使用する代わりに、リストから別のメニューをこのメニュー項目を選択したときに開くサブメニューとして設定することもできます。

デフォルトでは、すべてのメニュー項目は自動的に円形に配置されます。
ただし、メニュー項目の位置とスケールを変更する場合は、 “x” “y” “w”、および “h”の各数値フィールドに入力して、各アイコンの位置と幅/高さを上書きできます。

.

.

.

カスタムコマンドウィジェット

[カスタムコマンドウィジェット]タブでは、コントローラのボタンに連携するウィジェットを作成できます。
たとえば、選択したオブジェクトを移動したときにそれを複製するウィジェットや、コントローラを移動したときに現在のタイムを早送りするウィジェットを実装できます。

エディタの上部には、作成されたすべてのコマンドウィジェットが一覧表示されます。
新しいコマンドウィジェットを作成するには、[名前]フィールドに名前を入力し、エディタの下部にある[作成]ボタンを押します。
その後、新しいウィジェットがリストに表示されます。
また、[ウィジェットマッピング]タブのウィジェットのリストにも表示され、そこでコントローラボタンに割り当てることができます。
ウィジェットが割り当てられているコントローラーボタンに表示されるアイコンを選択することもできます。 (これは、ハードディスク上のイメージファイルまたはMayaのアイコン名です)
コマンドウィジェットには4つのイベントがあり、それぞれにMELまたはPythonコマンドの形式でアクションを割り当てることができます。

クリック時:このイベントは、ウィジェットがアタッチされているボタンを短く押して離すと発生します。

ドラッグ開始時:このイベントは、ボタンを押しながらコントローラの移動を開始した場合に発生します。

ドラッグ中:このイベントはボタンを押している間に発生します。実行速度はVRシステムの速度によって異なりますが、通常は毎秒約10回です。

  ドラッグ終了時:このイベントは、ドラッグしていてウィジェットがアタッチされているボタンを離したときに発生します。

.

.

.

カスタムジェスチャウィジェット

ジェスチャウィジェットはメニューウィジェットと似ていますが、メニューにアイコンを表示する代わりに、コントローラを少し動かすだけで任意のアクションを実行できます。
たとえば、コントローラを左右に「振る」ときにオブジェクトを複製したり、小さな三角形を描いたりするときに新しいキーフレームを設定するウィジェットを作成できます。

エディタの上部には、作成されたすべてのジェスチャウィジェットが一覧表示されます。
新しいジェスチャーウィジェットを作成するには、[名前]フィールドに名前を入力して[ウィジェットの作成]ボタンを押します。
その後、新しいウィジェットがリストに表示されます。
また、[ウィジェットマッピング]タブのウィジェットのリストにも表示され、そこでコントローラボタンに割り当てることができます。
ウィジェットが割り当てられているコントローラボタンに表示されるアイコンを選択することもできます。 (これは、ハードディスク上のイメージファイルまたはMayaのアイコン名です)
エディタの下部には、ウィジェットに認識されているすべてのジェスチャが一覧表示されます。
新しいジェスチャを作成するには、[Gesture Name]フィールドに名前を入力し、[Command]フィールドに実行するコマンド(MELまたはPython)を入力して[Create New Gesture]を押します。
MARUIがあなたのジェスチャを理解するためには、いくつかの実例の演技が必要です。
リストからジェスチャを選択して、 “Record sample performances”ボタンを押してください。
ボタンの色が変わり、レコードモードに入っていることを示します。
次に、このジェスチャウィジェットを割り当てたコントローラボタンを押し、ジェスチャを実行してもう一度ボタンを放します。
これは1サンプルとしてレコードされます。
良い結果を得るためには、ジェスチャを異なる速度と方向で少なくとも20回実行する必要があります。
効率的で信頼性の高いジェスチャコマンドを作成する方法の詳細とガイドラインについては、ジェスチャ認識に関する記事を参照してください。
十分なジェスチャを記録したら、もう一度“Record sample “ボタンを押して記録モードを停止し、Learn gestures from recorded samplesボタンを押してトレーニングプロセスを開始します。
ボタンの色が変わり、MARUIがジェスチャの理解方法を学ぼうとしていることを示します。
認識性能は、プロセスを通じて継続的に更新されます。
あなたが確率(正しい識別のパーセンテージ)に満足したら、あなたは学習プロセスを終了するためにもう一度”Learn gestures from recorded samples”ボタンを押すことができます。
学習が完了した後、あなたはあなたがそれを取り付けたボタンを押すことによって新しいジェスチャーウィジェットを使うことができます。

[エクスポート]ボタンと[インポート]ボタンを押すと、ジェスチャをファイルにエクスポートおよびインポートできます。

.

.

.

UIレイアウトの保存・ロード・リセット

UIレイアウトエディタウィンドウの下部には、UIレイアウトを保存/ロードするためのボタンがあります。
MARUIUIレイアウトを(カスタムウィジェットと共に)Maya “prefs”フォルダに “MARUI_UI_layouts.mel”という名前のMELスクリプトとして格納します。
このフォルダは通常次の場所にあります。
C:\Users\<your name>\Documents\maya\<maya version>\prefs

たとえば、 “John”という名前のユーザでMayaバージョン2018の場合、このフォルダは次のようになります。
C:\Users\John\Documents\maya\2018\prefs

MARUIプラグインをロードすると、既存のuiレイアウトファイルを見つけてロードします。
そのため、MARUIをロードするたびに、UIレイアウト(カスタムウィジェットを含む)が自動的に復元されます。

UIレイアウトをMARUIのデフォルトにリセットする場合は、Mayaprefs /フォルダにある “MARUI_UI_layouts.mel”ファイルを見つけて削除します。