MEL ビルトイン関数を使用して Y オフセットを計算する
 
 
 

正弦は、角の側辺を斜辺で割って得られる比率です。樽の中心点は正三角形の頂点に沿って等間隔に並んでいるので、三角形のすべての角は 60° になります。60° の正弦を三角形の 1 辺の長さで掛けると、結果は三角形の高さになります。

プログラム言語のビルトイン関数が使用する測定単位を把握しておくことは重要です。MEL や Python を含む多くのプログラム言語は、三角法の操作をラジアンで実行します。正弦関数を使用して Y オフセットを計算するには、度数をラジアンに変換する必要があります。

注:ラジアンとは弧度法と言われる角度の表し方です。円は 360° で、これは 2 ラジアンに相当します。

Y オフセットを計算するには

  1. 次のように入力して、Y オフセットの値を格納する新しい変数を宣言します。
    float $Y_offset;
  2. 正弦比率を使用して、Y オフセットの値を計算します。度をラジアンに変換する関数を使用して、度単位の値をラジアン単位の値に変換する必要があります。
     $Y_offset = $diameter_barrel * (sin(deg_to_rad(60)));

    代入演算子は式の右側部分を評価し、それを左側に代入します。deg_to_rad 関数がカッコの一番内側にあるので、これが最初に評価されます。sin 関数はラジアン単位の角度の正弦を算出します。正弦値を直径と乗算して、Y オフセットを算出します。変数には計算値が代入されます。

    注:変数 $diameter_barrel の値は変更されません。変更されるのは、代入演算子の左側の変数だけです。

樽の列を積み重ねるには

  1. 次のように入力して、シーン内のすべてのオブジェクトを選択して複製します。
    select -allDagObjects;
    duplicate;

    select コマンドに -allDagObjects フラグを付けると、すべての DAG(Directed Acyclic Graph)オブジェクト(ジオメトリ、IK チェーン、測定ツールなど、シーンに存在するオブジェクトのセット)が選択されます。テクスチャとアニメーション情報は DAG には属しません。

  2. 樽を、樽の X 軸の半径分と、Y 軸では算出した $Y_offset 分だけオフセットし、直径を 2 で割って半径を出します。列を複製したときに、余分な樽まで作成されました。
    move -r 0 $Y_offset ($diameter_barrel/2.0);
    duplicate;
    move -r 0 $Y_offset ($diameter_barrel/2.0);
    duplicate;
    move -r 0 $Y_offset ($diameter_barrel/2.0);
  3. 投げ縄ツール(Lasso tool)を使用して、余分な樽を選択します。
  4. 余分な樽を削除して、ピラミッド型にします。