MEL ミラーボールっぽく球状にスポットライトを配置する

2016/07/14
MEL 
(この記事の文字数: 895)

Maya でミラーボールっぽいライトの演出をするため、画像のように球の中心から外に向かうスポットライトを複数作成する MEL スクリプトを作成しましたので貼っておきます。配置アルゴリズムはかなりいい加減です。


global proc createMirrorBallLight(int $lightCountX, float $spotLightConeAngle)
{
    float $increAngleX = 180.0 / ($lightCountX + 1);
    float $pi = 3.14159265359;
    for ($x = 0; $x < $lightCountX; ++$x)
    {
        float $angleX = ($x + 1) * $increAngleX - 90;
        int $lightCountY = $lightCountX * (cos($angleX * $pi / 180.0) * 0.5 + 0.5) + 1;
        float $increAngleY = 360.0 / $lightCountY;
        for ($y = 0; $y < $lightCountY; ++$y)
        {
            string $lightShapeName = `spotLight -coneAngle $spotLightConeAngle -penumbra $spotLightConeAngle`;
            string $tmp[] = `listRelatives -p $lightShapeName`;
            string $lightTransformName = $tmp[0];
            float $rotateAngleX = $angleX;
            float $rotateAngleY = $y * $increAngleY;
            float $rotateAngleZ = 0.0;
            rotate $rotateAngleX $rotateAngleY $rotateAngleZ $lightTransformName;
            rename $lightTransformName mirrorBallSpotLight;
        }
    }
    group -n mirrorBallSpotLightGroup "mirrorBallSpotLight*";
}

使用例


createMirrorBallLight(10, 10.0);


  このエントリーをはてなブックマークに追加  

<<「デジタルコンテンツ制作」の記事一覧に戻る

コメント(0 件)


関連記事