2008年06月21日
ランダム マッシュルーム - Mushrian(その2)
少し作業しようか と島に行ってみたら そうだ キノコ生えさせよう と思い付き 置いてみたら
-----
これは 予め 予測されていたことではあるんだが
-----
-----
本体の位置で z軸方向の位置を定めているので でこぼこがあると 埋まってしまうものがでてくる
-----
LlGround - lslWiki
-----
を見るとしかし 土地の高さを調べることはできそうである
-----
そこで簡単なスクリプトを作って試してみた
-----
-----
move_end というのは 動かした後 呼ばれる関数で
-----
このスクリプトを入れたオブジェクトを 編集し 動かしていくとその場所の土地の高さが 表示される
-----
結構細かく変化しているようなので この値で キノコの z軸方向の位置を設定するようにすると こうなった
-----
-----
これだと少し分かりにくいので もう少し横から見ると
-----
-----
斜面に沿って生えるようになっていることがわかる... というわけで
-----
修正版のキノコのソース
-----
これは 予め 予測されていたことではあるんだが
-----
-----
本体の位置で z軸方向の位置を定めているので でこぼこがあると 埋まってしまうものがでてくる
-----
LlGround - lslWiki
-----
を見るとしかし 土地の高さを調べることはできそうである
-----
そこで簡単なスクリプトを作って試してみた
-----
-----
move_end というのは 動かした後 呼ばれる関数で
-----
このスクリプトを入れたオブジェクトを 編集し 動かしていくとその場所の土地の高さが 表示される
-----
結構細かく変化しているようなので この値で キノコの z軸方向の位置を設定するようにすると こうなった
-----
-----
これだと少し分かりにくいので もう少し横から見ると
-----
-----
斜面に沿って生えるようになっていることがわかる... というわけで
-----
修正版のキノコのソース
//
// File: 1upmushroom.lsl
// Date Author number of nodes
// 2008/6/21 walkinglint 26
// 2008/6/20 walkinglint 24
//
integer steps = 5;
integer tick = 1;
float final_size = 0.2;
vector pos;
set_scale() {
tick++;
vector scale;
scale.x = final_size / steps * tick;
scale.y = final_size / steps * tick;
scale.z = final_size / steps * tick;
llSetScale(scale);
llSetPos(<pos.x, pos.y, llGround(ZERO_VECTOR) + scale.z / 2.0>);
}
default {
state_entry() {
llSetTimerEvent(60.0 / steps);
pos = llGetPos();
set_scale();
}
on_rez(integer param) {
llResetScript();
}
timer() {
set_scale();
if (tick > steps) {
llSetTimerEvent(0);
}
}
}
Posted by walkinglint at 20:04│Comments(0)
│walking のスクリプティング講座