移動先: 概要 戻り値 キーワード. 関連項目. フラグ. Python 例.

概要

hudButton([allowOverlap=boolean], [block=int], [blockAlignment=string], [blockSize=string], [buttonShape=string], [buttonWidth=int], [label=string], [labelFontSize=string], [padding=int], [pressCommand=script], [releaseCommand=script], [section=int], [visible=boolean])

注意: オブジェクト名や引数を表す文字列はカンマで区切ります。これは概要には示されていません。

hudButton は 「元に戻す」が不可能、「照会」が可能、「編集」が可能 です。

このコマンドは、3D ビューポート上にある 2D の非アクティブ オーバーレイ プレーンに配置されるヘッドアップ ディスプレイ(HUD)のボタン コントロールを作成します。このコマンドを使用して、ユーザ スクリプトで実際的な操作を指定できます。HUD ボタンは一般的な HUD オブジェクトから派生するため、同様のワークフローを継承します。

このコマンドの機能は headsUpDisplay コマンドによく似ていますが、layoutVisibility、nextFreeBlock、lastOccupiedBlock、exists、remove などの headsUpDisplay レイアウト コントロールは利用できません。レイアウト コントロールを利用する場合は、headsUpDisplay コマンドを使用してください。このコマンドは、HUD ボタン コントロールの作成と管理に特化しています。同様に、このコマンドで実行される操作はボタン コントロールになる HUD のみを対象としています。

作成時に必要なフラグは、section フラグと block フラグのみです。

headsUpDisplay コマンドと同様に、HUD ボタンを作成すると、ID 番号が割り当てられます。必要に応じて、この ID 番号を使用して headsUpDisplay コマンド(-rid/removeID [int IDNumber])で HUD を削除することができます。あるいは、HUD オブジェクトをそれらの位置(セクションとブロック)やそれぞれの固有名を使用して削除することもできます。

戻り値

intヘッドアップ ディスプレイ(HUD)の ID 番号。
string|int|int[2]対応する削除コマンドのヘッドアップ ディスプレイの名前、ID またはセクション、ブロック値。

戻り値の型は照会モードでは照会フラグが基になります。

キーワード

hud, headsupdisplay, button, hudbutton

関連項目

button, headsUpDisplay

フラグ

allowOverlap, block, blockAlignment, blockSize, buttonShape, buttonWidth, label, labelFontSize, padding, pressCommand, releaseCommand, section, visible
ロング ネーム(ショート ネーム) 引数型 プロパティ
visible(vis) boolean createqueryedit
ヘッドアップ ディスプレイのレイアウトの表示(オンかオフ)を切り替えます。
allowOverlap(ao) boolean createqueryedit
重なっているセクションの幅や制限に関わらず、ヘッドアップ ディスプレイを表示します(詳細については、-s/section フラグの説明を参照してください)。
section(s) int createqueryedit
HUD を表示させるセクションを定義します。画面は 10 セクションに分割されています。メイン ビューポートを分割する 10 の要素行列は、5 列 × 2 行で構成されます。セクションのレイアウトを以下に示します。

________________________
|    |    |    |    |    |
|    |    |    |    |    |
| 0  | 1  | 2  | 3  | 4  |
|    |    |    |    |    |
|____|____|____|____|____|
|    |    |    |    |    |
|    |    |    |    |    |
| 5  | 6  | 7  | 8  | 9  |
|    |    |    |    |    |
|____|____|____|____|____|

各セクションは、上記のとおり 0 から 9 までの番号で表されます。 たとえば、上列の左から 2 行目の場合、セクションは次のように定義されます。-sec 1

ヘッドアップ ディスプレイが重なり合って文字が煩雑になることを回避するため、それぞれの行には表示の優先順位が定義されていて、各セクションの表示にも優先順位が設定されています。この優先順位に従って、画面スペースが狭まって行のセクション幅が重なり合うと、HUD は優先順位が一番低いセクションを自動的に削除します。これらのセクションは非表示になり、消去されたことを伝える警告メッセージが表示されます。この処理は、最優先のセクションのみが残るまで継続されます。

それぞれの行の優先順位は、次のように定義されます(上列を例に挙げます)。セクション 0 が最優先され、セクション 4 が 2 番目と、外側のセクションの優先順位が最も高くなります。 次にセクション 2 、続くセクション 1 と 3 の優先順位は等しく、共に優先順位が最も低くなります。この優先順位の構造は、下列にも適用されます。外側の 2 セクションが最優先され、中央のセクションが続き、残りの 2 セクションの優先順位が最も低くなります。

つまりビューポートの幅が狭まって上列のセクションが重なり始めた場合、まずセクション 1 と 3 がビューから削除され、続いてセクション 2 が、最後にセクション 4 が削除されます。ブロック レイアウトについても、同様の説明が以下に記されています。

block(b) int createqueryedit
セクション内で、HUD が属する個々のブロックを表します。各セクションは一列のブロックから構成されます。 各セクションに含まれるブロックの総数は異なります。

各セクションに表示されるブロック数は、各セクションにあるブロックのサイズとウィンドウのカレント サイズによって決まります。ブロック数は 0 から始まり、必要に応じて増加します。

HUD ボタンのフォーマットは、標準的な HUD とは異なります。 フォーマット フラグ(justify、padding、buttonWidth など)で定義するパラメータを使用するレイアウトは、次のとおりです。

__________________________________
|     |     |          |     |     |
|  P  |  J  |  Button  |  J  |  P  |
|_____|_____|__________|_____|_____|
P = 幅のサブブロック、パディング
J = ブロック全体の行端揃え
Button = 幅のサブブロック、buttonWidth

ブロックの位置決め

上部セクションのブロックは主要ビューポートの上端から始まり、下部セクションは下端から始まります。 ブロックは、ビューポートの中間から動的に非表示になります。したがって、比較的多いブロック数はビューポートへと引き寄せられません。

最後に、単一ブロックを占有できる HUD の数は一つです。 占有されているブロックに HUD をさらに配置しようとするとエラーになります。 HUD を配置する際の注意点です。

blockSize(bs) string createqueryedit
各ブロックの高さを設定します。選択できる高さは、small、medium、large です。 ピクセル単位では、それぞれ 20、35、50 ピクセルに相当します。
padding(p) int createqueryedit
ブロックの左右マージンの幅を指定します。デフォルト値は 15 ピクセルです。
blockAlignment(ba) string createqueryedit
ブロックの、その列内でのアラインメントを指定します。使用可能なアラインメントは「center」、「left」、「right」で、デフォルトは「left」です。
label(l) string createqueryedit
HUD ボタンのテキスト ラベル。
labelFontSize(lfs) string createqueryedit
ラベルのフォント サイズを設定します。使用可能なサイズは small と large です。
buttonWidth(bw) int createqueryedit
ボタンの幅を指定します。
buttonShape(bsh) string createqueryedit
ボタンのシェイプを指定します。使用可能なボタンのシェイプは、 「rectangle」と「roundRectangle」です。「rectangle」は四角形のボタン、「roundRectangle」は角が丸い四角形ボタンです。
pressCommand(pc) script createqueryedit
マウス ボタンをクリックするときに実行するプロシージャまたはスクリプトを指定します。
releaseCommand(rc) script createqueryedit
マウス ボタンを放すときに実行するプロシージャまたはスクリプトを指定します。

: コマンドの作成モードで使用可能なフラグ : コマンドの編集モードで使用可能なフラグ
: コマンドの照会モードで使用可能なフラグ : タプルまたはリストとして渡された複数の引数を持てるフラグ

Python 例

import maya.cmds as cmds

# Define a "Hello!" counter procedure. This procedure will output
# "Hello! [number]"
# each time it is run. The number is incremented at the end of each call.
#
gHelloCount = 0
def HUDButtonHello(*args):
  global gHelloCount
  print 'Hello!( %i )' % gHelloCount
  gHelloCount += 1
# Now create our button. Only execute on mouse release.
#
cmds.hudButton('HUDHelloButton', s=7, b=5, vis=1, l='Button', bw=80, bsh='roundRectangle', rc=HUDButtonHello )