2008年03月17日
リングの作り方、えっ、まじかよ
標準オブジェクトを200個リンクして、リングを作成してみました。
まじ、こんな作り方しか出来ません。
本当は、どうやってつくるのでしょうかね。
おかげさまで、リンクの最大数は、254個であることを知りました。あはは。
こんなの手作業でリンクなんかしてたら、日が暮れます。
って、言うことで、スクリプトで生成してから、ちょっと手直しします。
//----------------------------------------
float a = 1;
float b = 0;string bead = "ring";
integer numbeads = 50;
vector offsetrot = <0,0,0>;
float r = 0.5;
make()
{
integer n;
float t;
float d;
vector p;
vector re;
rotation rot;
for(n = 1;n <= numbeads;n++) {
t = TWO_PI * ((float)n/(float)numbeads);
llOwnerSay((string)n);
p.x = r*llCos(t);
p.y = r*a * llSin(t);
p.z = b * llCos(t)*llCos(t) + 1;
p = p + llGetPos();
re.x = -1 * llSin(t) + DEG_TO_RAD * offsetrot.x;
re.y = llCos(t) + DEG_TO_RAD * offsetrot.y;
re.z = t + DEG_TO_RAD * offsetrot.z;
rot = llEuler2Rot(re);
if (n % 2 == 0 )
{
llRezObject(bead, p, ZERO_VECTOR, llGetRot() * llEuler2Rot(<PI/4,PI/4,PI/4>), 5);
}
else
{
llRezObject(bead, p, ZERO_VECTOR, llGetRot() * llEuler2Rot(<PI_BY_TWO,PI_BY_TWO,PI_BY_TWO>), 5);
}
}
}
default
{
state_entry()
{
llSay(0, "Touch to generate a Necklace");
}
touch_start(integer total_number)
{
make();
}
}