2008年2月23日土曜日

おでこ乗せスクリプトの使い方

このスクリプトはメガネ教室主催で有名な、シリアスギグルの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>;
//ここまで

8 件のコメント:

  1.  眼鏡等の装着物はタッチし辛い&結局ダイアログでlisten使ってる
    と言う事から、HUD制御でlistenを1チャンエルだけ使用の方が
    軽くて使い易くなるんじゃないかな。

    返信削除
  2. はい、それもありだと思います。
    うちは品物ごとにスクリプトも変わるので
    毎回専用HUDまで作ることを考えると
    気が遠くなっちゃいますが^^;

    返信削除
  3. わっΣ(・ω・ノ)ノこぐませんせ
    これが前におっしゃってたスプリクトなんですねぇ
    ..._〆(゚▽゚*) メモメモ
    今日の授業終わってから色々勉強してみまぁす(o゚▽゚)ノ

    返信削除
  4. こんにちは。
    やっと「おでこ乗せ」に挑戦する気になったちょぼたんですが、最後の移動スクリプト本体を設定…の所が分かりません。
    remoconと別に作るんだと思うんですが、そもそも移動スクリプトって何でしょ?
    「宣言部分」ということは、前後に「移動」に関する関数が必要なのかなとは思うんですが、、、なんのことやら、、、

    返信削除
  5. なんとか作ることができました!!
    コグマ先生ありがとうございました><

    返信削除
  6. 導入記事は見てましたよー
    お役に立ったなら何よりです

    返信削除