2017年8月21日月曜日

日本語と英語のフォントサイズ

ツールを作る場合、ウィンドウに項目を並べたい場合があります。
サンプルスクリプトとしてはこんな感じ。

proc string _createLabelFrame(
       int $w ,                         // 幅px
    string $align,                      // 位置合わせ"left","right","center"
    string $label )                     // ラベル文字
{
    string $frame=`frameLayout -lv 0 -bv 1 -w $w -mw 6`;
        text -l $label -al $align;
        setParent ..;
    
    return $frame;
    
}


global proc labelTest()
{
    string $win="testWindow";
    
    if(`window -q -ex $win`) deleteUI $win;
    window $win;
    
        rowLayout -nc 4;
            _createLabelFrame( 46,"center","項目A" );
            _createLabelFrame( 96,"center","けっこう長い項目B" );
            _createLabelFrame( 96,"left","項目C" );
            _createLabelFrame( 96,"right","項目D" );
    
    window -e -w 342 -h 32 $win;
    
    showWindow $win;
    
}


実行するとこんな感じのウィンドウになります。


で自分は普段英語版を使うわけですが、世の中にはmaya日本版と言う物があるのです。
同じスクリプトを日本語版で実行した結果。


ギリギリを攻めていた「項目A」と「けっこう長い項目B」が枠からハミ出ています。
良く見ると高さも若干広まっていますね。

どうやら英語版と日本語版ではフォントサイズが違っているようで、レイアウトが崩れてしまう様子。
けれどもMELにはフォントサイズを変更するオプションはありませんが、フォントスタイルを、
「boldLabelFont」
「smallBoldLabelFont」
「tinyBoldLabelFont」
「plainLabelFont」
「smallPlainLabelFont」
「obliqueLabelFont」
「smallObliqueLabelFont」
「fixedWidthFont」
「smallFixedWidthFont」
から指定できるようです。

ただ、それぞれを指定して比較するのは中々面倒です。
実はmayaのインストールフォルダのresourcesに MayaStrings というファイルがあります。
そのファイルの中から s_TschemeResourcesFlatUI という単語を検索すると、

こんな感じで各言語のフォントサイズらしき物を発見できました。

で、全言語同じフォントで同じサイズの「smallFixedWidthFont」を指定します。
text -l $label -al $align -fn "smallFixedWidthFont";


編集して日本語mayaで実行した結果


英語と同じになりました。
配置に凝ったUIを組む時はFixedWidthFontくらいしか使えないので要注意です。

0 件のコメント:

コメントを投稿