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);