私はプレイブラストのためのスクリプトを作成します。私は、ユーザーとシーンの名前、fpsと現在のフレームのような私のビデオ上のいくつかのHUDデータが必要です...Maya HUDトラブル
最初に私はheadsUpDisplay()
によって作成されたHUDを試してみましたが、背景がありません...私はHUDラベルしかし、バックグラウンドがなければ読み込みができないこともあります。
cmds.headsUpDisplay('HUDObjectSceneName', label='label TEXT',
section=2, block=0, blockSize='large',
dfs='large', labelFontSize='large')
次に、hudButton()
で作成されたHUDボタンを使用してみてください。背景があります。しかし、私のラベルの一つは、現在の時間です。 headsUpDisplay()
には、ラベルテキストを更新して変更する 'コマンド'があります。しかし、hudButton()
にはこの機能がありません。
label = 'FPS: 25 FRAME:'
cmds.hudButton('HUDHelloButton3', s=9, b=0, vis=1, l=label,
bw=blockLen(label), lfs='large')
cmds.headsUpDisplay('HUDCurentFrame', label=label,
section=9, block=0, blockSize='large', dfs='large',
labelFontSize='large', atr=True,
command=lambda: cmds.currentTime(query=True))
hudButton()
ボタンの幅は手動で設定されています。私は長いラベルをしたいときに私はラベルの幅を計算する必要があります。しかし、HUDフォントは固定されておらず、ラベルの幅をピクセル単位でどれだけ正しく計算するのか分かりません。いくつかの実験の後、私は幅を計算するこの関数を作成します。それは少なくとも粗くなりましたが、少なくともそれと同じです:
def blockLen(label):
FONT_WIDTH = 8
THIN_WIDTH = 6
BLOCK_ADD = 10
thin_symbol = ' :,.!i[];:\'"|-'
sum = BLOCK_ADD
for x in label:
sum += THIN_WIDTH if x in thin_symbol else FONT_WIDTH
return sum
私は現在のフレームのような背景とダイナミックデータを持つHUDラベルが必要です。しかし、私はそれを作成する別の方法を見つけることができないのですか?
ps。時間が変わったときに、scriptJob()
を使用してHUDボタンのラベルを変更しようとしました。しかし、それはプレイブラストで働いていませんでした...
私はスタジオでwinとlinuxを使用します。私はlinux mayaで別のフォントを使用して勝利していると思う。(そして私はいつもViewPort 2.0を使う...私はマヤからフォントに関するデータを入手する方法を見つけようとしている。別のフォント... – MaxKu
私は彼らが両方のプラットフォームでサポートされている選択肢のフォントタイプになると思う、私もそれを試して、私は普通の方法を意味するが、何も....彼らは100%現在のタイプとサイズ –
https://s28.postimg.org/hs8bl85fh/Capture.png – MaxKu