2016年4月21日木曜日

frameLayoutのオプション

frameLayout を使おうと思いヘルプを見てみたら、-borderStyle がサポートされなくなったらしい。

フラットデザインが流行ってるからか?
それとも、4Kでは数ピクセルは認識できないからか?

ま、使えない物は仕方がない。


更新情報に削除項目は見つからなかったが、かわりに -backgroundShade というのが追加されたというのを発見。

さっそくサンプルコードを書いて実行してみたところ・・・
なにも変化がない。


何か他のフラグも必要なのかと思い、いろいろ試してみた結果、
-labelVisible true の時にしか反応しないらしい。


左が -bgs false、右が -bgs true

最初、-borderVisible true の状態で見ていたので変化が分からなかったらしい。
Photoshop で色情報を調べたところ #444444#494949 に変化していました。

微妙すぎて分からんわ!


ちなみに、4月7日に更新された Extension 3 には -highlightColor というのも追加され、
これの使い方が全く不明・・・。

Extension 3 もパッチだと思ってインストールしたら 2016.5 と別バージョンだったという罠。

2016年4月19日火曜日

内分点の計算

骨にロール用のジョイントを追加したい場合に使用する公式、内分点について。

直線ABをm:nに分けると云うやつですね。


公式は、こんなんだけれど、どうスクリプトに起こすのか?
m:nっていうのが難所。

とりあえず図解。


これをm:nを使わずに表現したい。

計算する場合、たいていaとbは設定できます。
そのa-b間の特定の座標が知りたいわけなので、
こんな感じの図になりました。

コレを使って内分点の式を書き換えると、


これでスクリプトにする事ができそうな気がします。

引数は
  • 開始位置
  • 終了位置
  • 割合
の3つ。

global proc vector calcDividingPoint(
    vector $sp,                         // 開始位置
    vector $ep,                         // 終了位置
     float $rate )                      // 割合
{
    float $length=mag( $sp-$ep );
    float $m=$length * $rate;

    return ( ( ($length-$m) * $sp + $m * $ep ) / $length );

}


ま、ここで終わっても使えないことは無いのですが、よく見ると $length を掛けたり
割ったりしまくっています。

$rate そもそも百分率なので、$length でなく 1.0 とすれば良いわけです。
なので、

global proc vector calcDividingPoint(
    vector $sp,                         // 開始位置
    vector $ep,                         // 終了位置
     float $rate )                      // 割合
{
    return ( (1.0-$rate) * $sp + $rate * $ep );

}


これで十分。

ちなみに $rate に1以上を設定すると外分点になります。


2016年4月4日月曜日

バックアップ用バッチ

スクリプトフォルダをバックアップするバッチファイル。

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: mayaのスクリプトをバックアップする。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

@echo off
set YYYYMMDD=%DATE:/=%
set HHMMSS=%TIME:~0,-3%
set HHMMSS=%HHMMSS::=%
set HHMMSS=%HHMMSS: =0%


set SOURCE=D:\maya
set BACKUP=D:\_backUpFolder


XCOPY "%SOURCE%\scripts" "%BACKUP%\scripts\%YYYYMMDD%_scripts" /S /I /Y


pause


12行目に scripts フォルダの「親」のパス。
13行目にコピー先のパス。

6~9行目は日付と時間を8桁の文字列にする部分。
これはよく使います。定型分みたいな感じ。


差分とか手軽に調べるならサブバージョンの方が良いかもなぁ・・・。