我为playblast创建脚本。我需要一些HUD数据在我的视频像用户和场景名称,fps和当前帧...Maya HUD麻烦
首先我尝试HUD创建的headsUpDisplay()
是好的,但没有背景...我改变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按钮标签。但它没有与playblast ...
我在工作室使用win和linux。我认为在Linux玛雅使用另一种字体,然后在赢(我使用ViewPort 2.0所有时间...我试图找到如何从maya直接获取有关字体的数据,我不知道,可能会在新版本的玛雅将另一种字体... – MaxKu
我猜他们会选择在两种平台上支持的字体类型,我也试过,我的意思是一种常规的方式,但没有......他们会保持字体类型,100%,但你知道现在的类型和大小 –
https://s28.postimg.org/hs8bl85fh/Capture.png – MaxKu