2008年06月19日
衝突
ガードレールに衝突。
スカルプトテクスチャを切り替えて凹んだように見せるつもりなんですが、
ラグがあって最初の衝突ではしばらく丸くなってしまいます。
スカルプトは光源によってかなり色が変わるのも特徴ですね。
いいところでもありますが、意図しない色に見えてしまうことも。
色を白にして太陽光がまともにあたると白くなりすぎて、
ガードレールの溝が見えないこともあります。ちょっと灰色にした方がいいかもしれません。
何故かllPlaySoundを使うとスクリプトで記述していないところで、
音がなったりするので、最近はllTriggerSoundを使うようにしてます。
Video: Collision with guardrails in second life.
愛用のSciTEエディタのコンパイラは、
`PRIM_TYPE_SCULPT' is undeclared.
`PRIM_SCULPT_TYPE_CYLINDER' is undeclared.
などと言ってきて新しい定数に対応できてません。
開発はとまってるらしいので、LSLエディタに代えた方がよさそうです。
でも、なんか馴染んでしまってなかなか代える気がおきないんですよね。
//guardrail.lsl
string defaultTex = "flat";
string crashTex = "crash";
string crashsound = "crashsound";
string curTex;
default {
state_entry() {
curTex = defaultTex;
llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SCULPT, defaultTex, PRIM_SCULPT_TYPE_CYLINDER]);
}
on_rez(integer int) {
llPreloadSound(crashsound);
}
collision(integer num_detected) {
if (curTex!=crashTex) {
curTex = crashTex;
llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SCULPT, crashTex, PRIM_SCULPT_TYPE_CYLINDER]);
llTriggerSound(crashsound,1.0);
// llSay(0,"collision");
}
llSetTimerEvent(10);
}
timer() {
curTex = defaultTex;
llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_SCULPT, defaultTex, PRIM_SCULPT_TYPE_CYLINDER]);
llSetTimerEvent(0); //おっと忘れてた
}
}

この記事へのトラックバックURL
http://tanakaakio.slmame.com/t278223


