このスクリプトはメガネ教室主催で有名な、シリアスギグルのkirin先生作の
スクリプトのモジュールとして動作するように作っています。
したがって受講終了の人や卒業生の人向けの解説になります。
お持ちで無い方は、がんばって稼動命令の送信部分を作ってください。
4期受講の人は来週配られるのでお楽しみに。
まず、下記のスクリプトで装着位置を測定します。
これはルートプリムへ入れてください。
通常の装着部位とおでこに乗せた位置の両方を記録してください。
商品のデフォルト位置になるので調整は念入りにどうぞ。
posが移動距離、rotが回転角度になります。
測定が終わったらこのスクリプトは捨てます。
//ここから
vector pos;
rotation rot;
default
{
touch_start(integer total_number)
{
pos = llGetLocalPos();
rot = llGetLocalRot();
llSay(0, "pos =" + (string)pos);
llSay(0, "rot =" + (string)rot);
}
}
//ここまで
次にkirin式スクリプトの本体であるremoconを改造します。
list ColorsにSwitchとPreferencesを追加してください。
(Colorsの内容は欲しいメニューによって変わるので、今回追加部分以外は
人によって違います)
また新規listとしてlist Preferencesを追加してください
llMessageLinked(LINK_ALL_CHILDREN, 0, message, "");
を
llMessageLinked(LINK_SET, 0, message, "");
に書き換えてメッセージの送信先を”全子プリム”から”全プリム”に変更します。
最後
条件式が並んでいるところへ↓を追加
else if(message == "Preferences")
{
llDialog(toucher, "Save Top or Nose Position", Preferences, CHANNEL);
}
//remocon改造箇所ここから
//メインメニュー追加
list Colors =
[
"Lens", "Frame", "Shine","Switch",
"Transparency", "Preferences"
//メニュー追加
list Preferences =
[
"SaveTopPos", "SaveNosePos","Reset"
];
//条件式追加
else if(message == "Preferences")
{
llDialog(toucher, "Save Top or Nose Position", Preferences, CHANNEL);
}
//メッセージ送信先変更
llMessageLinked(LINK_SET, 0, message, "");
//llMessageLinked(LINK_ALL_CHILDREN, 0, message, "");
//remocon改造箇所ここまで
最後に、移動スクリプト本体を設定します
最初に調べた位置情報を書き込んで再コンパイルします。
出来上がったらremoconと一緒にルートプリムへ入れてください。
top_pos:おでこ位置のpos
nose_pos:鼻位置のpos
top_rot:おでこ位置のrot
nose_rot:鼻位置のrot
//宣言部分例ここから
vector top_pos = <-0.05880, 0.00000, 0.02980>;
vector nose_pos = <-0.07141, -0.00001, 0.02163>;
rotation top_rot = <-0.00000, 0.95882, -0.00000, 0.28402>;
rotation nose_rot = <-0.00000, -1.00000, 0.00000, 0.00000>;
//ここまで