2008年03月04日
ゼロから始めるスクリプト(その7)
さて、ゼロから始めるスクリプト。(その5)ではオブジェクトを回転させるスクリプトを、(その6)ではパネルを触るとLMの地図を表示するスクリプトを見てみました。今回は(その6)で作ったパネルを(その5)で作った回転体にリンクさせてみます。
リンクの方法はリンクさせたい最初のオブジェクトを右クリックで編集モードにした後、Shiftキーを押しながら他のリンクさせるオブジェクトをクリックしていきます。すると各オブジェクトが黄色く縁取られますので、その状態でCtrl+Lを押すことで各オブジェクトをリンクさせることができます。
下の写真はリンクさせた後の状態。左側のパネルだけが黄色く、中央のボールと右側のパネルは水色になっています。これは最後に選択したオブジェクトが黄色くなるのですが、その黄色くなったオブジェクトがこのリンク全体のルート、すなわち大元の本体となります。

実はこのようなリンクのさせ方は問題があります。もともとは球体と一緒にリンクさせたパネルも回転させたかったのですが、上の写真のようにルートをパネルに設定した状態だと、まんなかの球体だけが回転してしまい、パネルは止まったままです。パネルも一緒に回転させるためには、中心となる回転スクリプトの入った球体をルートにしてやる必要があります。
オブジェクトをルートに設定する方法は単純で、最後に選択したオブジェクトがルートになります。
下の写真が球体をルートに設定した状態です。

この状態ですと無事にパネルも回転させることができました。

ちなみに、この回転させるパネルのトピックを書くきっかけになった hirano 君のお店ではこんな感じで回転しています^^

hirano 君のお店はこちら ⇒ http://slurl.com/secondlife/CHERRY/60/173/21
ビーチサイドのカジュアルな雰囲気のお店です。所在地の Cherry SIM はサーフィンのメッカ。
次回はちょっとプリム作成にもどって窓の作り方を見てみましょう。
リンクの方法はリンクさせたい最初のオブジェクトを右クリックで編集モードにした後、Shiftキーを押しながら他のリンクさせるオブジェクトをクリックしていきます。すると各オブジェクトが黄色く縁取られますので、その状態でCtrl+Lを押すことで各オブジェクトをリンクさせることができます。
下の写真はリンクさせた後の状態。左側のパネルだけが黄色く、中央のボールと右側のパネルは水色になっています。これは最後に選択したオブジェクトが黄色くなるのですが、その黄色くなったオブジェクトがこのリンク全体のルート、すなわち大元の本体となります。

実はこのようなリンクのさせ方は問題があります。もともとは球体と一緒にリンクさせたパネルも回転させたかったのですが、上の写真のようにルートをパネルに設定した状態だと、まんなかの球体だけが回転してしまい、パネルは止まったままです。パネルも一緒に回転させるためには、中心となる回転スクリプトの入った球体をルートにしてやる必要があります。
オブジェクトをルートに設定する方法は単純で、最後に選択したオブジェクトがルートになります。
下の写真が球体をルートに設定した状態です。

この状態ですと無事にパネルも回転させることができました。

ちなみに、この回転させるパネルのトピックを書くきっかけになった hirano 君のお店ではこんな感じで回転しています^^

hirano 君のお店はこちら ⇒ http://slurl.com/secondlife/CHERRY/60/173/21
ビーチサイドのカジュアルな雰囲気のお店です。所在地の Cherry SIM はサーフィンのメッカ。
次回はちょっとプリム作成にもどって窓の作り方を見てみましょう。
2008年02月29日
ゼロから始めるスクリプト(その6)
今日はオブジェクトに触ると地図を開いてランドマークを表示してくれるスクリプトです。
スクリプトは下のとおり。
default
{
touch_start(integer num)
{
llMapDestination("kagurazaka japan", <166, 22, 45>, ZERO_VECTOR);
}
}
llMapDestination("ここにSIM名をいれます", <ここはSIM内の目標とするランドマークの座標が入ります>, ZERO_VECTOR);
今回は神楽坂Japanにある私のお店のランドマークを表示するようにしてみました。いつものように「新しいスクリ」ボタンをクリックして、"Hello Avatar!"スクリプトのかわりに上のスクリプトをコピー/ペーストします。

これだけです。あとはお店の写真などをオブジェクトに貼り付けてパネルにすれば終わり。
タッチすると地図が開いてランドマークを表示してくれるTPパネルの出来上がりです。
できあがりはこんな感じ。店のロゴを貼るとか、写真を貼るとかしてもいいですね。

そしてこのパネルにタッチすれば

無事、地図が表示されました。
次回はいよいよこの地図表示するマップを回転体とリンクさせてみます。
スクリプトは下のとおり。
default
{
touch_start(integer num)
{
llMapDestination("kagurazaka japan", <166, 22, 45>, ZERO_VECTOR);
}
}
llMapDestination("ここにSIM名をいれます", <ここはSIM内の目標とするランドマークの座標が入ります>, ZERO_VECTOR);
今回は神楽坂Japanにある私のお店のランドマークを表示するようにしてみました。いつものように「新しいスクリ」ボタンをクリックして、"Hello Avatar!"スクリプトのかわりに上のスクリプトをコピー/ペーストします。

これだけです。あとはお店の写真などをオブジェクトに貼り付けてパネルにすれば終わり。
タッチすると地図が開いてランドマークを表示してくれるTPパネルの出来上がりです。
できあがりはこんな感じ。店のロゴを貼るとか、写真を貼るとかしてもいいですね。

そしてこのパネルにタッチすれば

無事、地図が表示されました。
次回はいよいよこの地図表示するマップを回転体とリンクさせてみます。
2008年02月26日
ゼロから始めるスクリプト(その5)
お友達の hirano くんから help コールがありました。
なんでも回転するオブジェクトに地図上のLMを表示するパネルを張り付けたいとのことなんですが、うまく回転してくれなかったり、地図表示がうまくいかなかったりということらしいのです。わたしに解決できるかどうか自信はなかったのですが、とりあえず様子を見にいってみることに。
オブジェクトを回転させるスクリプトは、これも非常に簡単です。
default
{
state_entry()
{
llTargetOmega(<0,0,1.0>,TWO_PI / 15,15);
}
}
ためしに適当にボックスオブジェクトを作ってコンテンツから New Script をつくってみましょう。 コンテンツのタブの中にある「新しいスクリ」ボタンを押すんでしたね。ボタンを押すとスクリプトがコンテンツの中に現れますから、スクリプトを開いて初期状態で書かれている"Hello Avatar!" スクリプトを消し、かわりに上のオブジェを回転させるスクリプトをコピー/ペーストします。
インワールドでのスクリプト編集には実は心強い味方がいるのです。うえのスクリプトで言えば llTargeteOmega の部分。ここをカーソルで選んでスクリプトウィンドウのメニューから Help>LSL Wiki ヘルプを選ぶと、下の画面に出ているようにWEBの解説画面が現れます。
これでこのスクリプトの入ったオブジェクトを回転させることができます。 llTargetOmega の後ろの括弧の中はパラメーター(変数)と言って、回転軸の方向や回転の速度などを決める数値が入りますが、とりあえず今回は置いときます。
さて、これだけならあまりに簡単ですが hirano 君の悩みはこの回転オブジェクトにパネルをリンクさせて貼った場合の話でした。どんな問題があったのでしょうか?次回それを見てみましょう。
なんでも回転するオブジェクトに地図上のLMを表示するパネルを張り付けたいとのことなんですが、うまく回転してくれなかったり、地図表示がうまくいかなかったりということらしいのです。わたしに解決できるかどうか自信はなかったのですが、とりあえず様子を見にいってみることに。
オブジェクトを回転させるスクリプトは、これも非常に簡単です。
default
{
state_entry()
{
llTargetOmega(<0,0,1.0>,TWO_PI / 15,15);
}
}
ためしに適当にボックスオブジェクトを作ってコンテンツから New Script をつくってみましょう。 コンテンツのタブの中にある「新しいスクリ」ボタンを押すんでしたね。ボタンを押すとスクリプトがコンテンツの中に現れますから、スクリプトを開いて初期状態で書かれている"Hello Avatar!" スクリプトを消し、かわりに上のオブジェを回転させるスクリプトをコピー/ペーストします。
インワールドでのスクリプト編集には実は心強い味方がいるのです。うえのスクリプトで言えば llTargeteOmega の部分。ここをカーソルで選んでスクリプトウィンドウのメニューから Help>LSL Wiki ヘルプを選ぶと、下の画面に出ているようにWEBの解説画面が現れます。

これでこのスクリプトの入ったオブジェクトを回転させることができます。 llTargetOmega の後ろの括弧の中はパラメーター(変数)と言って、回転軸の方向や回転の速度などを決める数値が入りますが、とりあえず今回は置いときます。
さて、これだけならあまりに簡単ですが hirano 君の悩みはこの回転オブジェクトにパネルをリンクさせて貼った場合の話でした。どんな問題があったのでしょうか?次回それを見てみましょう。
2008年02月24日
ゼロから始めるスクリプト(その4)
椅子にすわるスクリプトを今回は見てみます。
すべてのオブジェクトは座ることができますし、ふつうはそのまま座ってもほとんど問題なくすわれるんですが、オブジェクトの形状などによってはそのまますわるとポジションがずれていたりして一見して不自然な形になってしまったりします。
今日はそういった座るポジションの修正の仕方を見てみましょう。
まず、下の画像をご覧ください。これは椅子にすわってみたところなんですが、見事にすわるポジション、特に高さがずれてしまっていますね。これを修正するにはオブジェクトに座った時のポジションを指定するスクリプトを使います。

上の画を見る限りでは高さの調節、もうすこし高い位置に持っていくことと、前後の位置ももうすこし前にだしてやる必要がありそうです。そこで、SitTargetというコマンドを使って位置調整をします。具体的スクリプトについては以下の通り。
default
{
state_entry()
{
llSitTarget(<0.3, 0, 0.7>, ZERO_ROTATION);
}
}
上下方向には 0.7 前後方向には 0.3 を入力しています。
これで無事座る位置は修正され、ふつうにすわることができるようになりました。

今回もスクリプト自体は非常に簡単で、わかりやすかったと思います。
前回も言いましたが、一見難しそうに見えるスクリプトも単純なスクリプトの集積です。
次回以降もいろんなスクリプトの例を見ながら、解説を加えていきたいと思います。
すべてのオブジェクトは座ることができますし、ふつうはそのまま座ってもほとんど問題なくすわれるんですが、オブジェクトの形状などによってはそのまますわるとポジションがずれていたりして一見して不自然な形になってしまったりします。
今日はそういった座るポジションの修正の仕方を見てみましょう。
まず、下の画像をご覧ください。これは椅子にすわってみたところなんですが、見事にすわるポジション、特に高さがずれてしまっていますね。これを修正するにはオブジェクトに座った時のポジションを指定するスクリプトを使います。

上の画を見る限りでは高さの調節、もうすこし高い位置に持っていくことと、前後の位置ももうすこし前にだしてやる必要がありそうです。そこで、SitTargetというコマンドを使って位置調整をします。具体的スクリプトについては以下の通り。
default
{
state_entry()
{
llSitTarget(<0.3, 0, 0.7>, ZERO_ROTATION);
}
}
上下方向には 0.7 前後方向には 0.3 を入力しています。
これで無事座る位置は修正され、ふつうにすわることができるようになりました。

今回もスクリプト自体は非常に簡単で、わかりやすかったと思います。
前回も言いましたが、一見難しそうに見えるスクリプトも単純なスクリプトの集積です。
次回以降もいろんなスクリプトの例を見ながら、解説を加えていきたいと思います。
2008年02月23日
ゼロから始めるスクリプト(その3)
さて、「ゼロから始めるスクリプト」も3回目になりました。実は第一回目からどうしようか考えていたことがあります。
多くのスクリプト入門書、もしくはWEB、ブログはきちっと系統だててスクリプトのなんたるかを解説しているものがほとんどです。でもそのやり方だと、多くの方は実際にスクリプトを活用して楽しむ前の段階で挫折してしまうのではないでしょうか。実際わたしも真面目に一から覚えようとして挫折しそうになりました。
そんな私を救ってくれたのが、先人達がつくってくれたフリーで公開されているスクリプトの数々です。
それをつかって実際にいろんなスクリプトの動作を見ながら、また、必要な部分だけ取り出してモジュール化したりしながらやっているうちに、なんとなくスクリプトの全体像がつかめてきました。ですので、ここでもいちからスクリプトの基本を教えるのではなく、実際にスクリプトのモジュールをプリム(オブジェクト)の中に入れて、いろんなことをやりながら、まずはスクリプトを使うおもしろさを体験していただければと思います。その上で、スクリプトについて細かく解説してくれている他の教材を見ればさらに理解が深まるのではないかと思います。
スクリプトは前回、前々回もお話したように台本のようなものです。プリム(オブジェクト)にいろいろ仕事をさせる手順書のようなものとも考えられます。(ああ、手順書の方がわかりやすいかも。)手順書の中には実際にプリム(オブジェクト)にやらせたい仕事の内容が書いてあります。当然複雑なことをやらせたいと思えばやらせる仕事の数も増えますし、スクリプト自体も長く複雑になります。でも、一見長く見えるスクリプトも実はひとつひとつの仕事を順序良く並べただけのものなのです。
今日はみなさんもよく目にするオブジェクトの上に表示されている文字。あれを表示するスクリプトを見てみましょう。
default
{
state_entry()
{
llSetText("Pose Ball",<1,1,1>,1);
}
}
これだけです。
これを実際にボールの中に入れて、文字を表示させてみましょう。
まずボールをつくります。作り方は「ゼロから始めるプリム作成(その1)」を参照してください。

(読書をしながら余裕でボールを作るの図w)
ボールの中のコンテンツのところにスクリプトが入ります。コンテンツのタブの中に「新しいスクリ」というボタンが見えますね。このボタンを押すと、New Scriptというスクリプトが現れます。
New Scriptには前々回お話したように「Hello, Avatar」のスクリプトが入っているので、それを消して代わりに上の文字表示のスクリプトを書き込みます。上に書いてあるものをそのままコピーペーストしてもいいでしょう。

保存のボタンを押して保存しましょう。あとスクリプトの名前も "Pose Ball" に変更しておきます。
すでにこの時にはボールの上にPose Ballの文字が表示されているのが見えます。

どうです?これだけだったら簡単でしょ?^^
今回は「オブジェクトの上に文字を表示させる」というひとつの作業だけでした。
先ほども述べたように、スクリプトとはこういうオブジェクトにさせる仕事の手順を決められたルールに従って並べていくだけなんです。一見複雑に見えるスクリプトも、細かく分解していくとこのような最小単位に分解されます。
すこし、スクリプトに対する苦手意識が解消されたでしょうか?
次回は椅子に座るときのポジションを決めるスクリプトを使ってみましょう。
多くのスクリプト入門書、もしくはWEB、ブログはきちっと系統だててスクリプトのなんたるかを解説しているものがほとんどです。でもそのやり方だと、多くの方は実際にスクリプトを活用して楽しむ前の段階で挫折してしまうのではないでしょうか。実際わたしも真面目に一から覚えようとして挫折しそうになりました。
そんな私を救ってくれたのが、先人達がつくってくれたフリーで公開されているスクリプトの数々です。
それをつかって実際にいろんなスクリプトの動作を見ながら、また、必要な部分だけ取り出してモジュール化したりしながらやっているうちに、なんとなくスクリプトの全体像がつかめてきました。ですので、ここでもいちからスクリプトの基本を教えるのではなく、実際にスクリプトのモジュールをプリム(オブジェクト)の中に入れて、いろんなことをやりながら、まずはスクリプトを使うおもしろさを体験していただければと思います。その上で、スクリプトについて細かく解説してくれている他の教材を見ればさらに理解が深まるのではないかと思います。
スクリプトは前回、前々回もお話したように台本のようなものです。プリム(オブジェクト)にいろいろ仕事をさせる手順書のようなものとも考えられます。(ああ、手順書の方がわかりやすいかも。)手順書の中には実際にプリム(オブジェクト)にやらせたい仕事の内容が書いてあります。当然複雑なことをやらせたいと思えばやらせる仕事の数も増えますし、スクリプト自体も長く複雑になります。でも、一見長く見えるスクリプトも実はひとつひとつの仕事を順序良く並べただけのものなのです。
今日はみなさんもよく目にするオブジェクトの上に表示されている文字。あれを表示するスクリプトを見てみましょう。
default
{
state_entry()
{
llSetText("Pose Ball",<1,1,1>,1);
}
}
これだけです。
これを実際にボールの中に入れて、文字を表示させてみましょう。
まずボールをつくります。作り方は「ゼロから始めるプリム作成(その1)」を参照してください。

(読書をしながら余裕でボールを作るの図w)
ボールの中のコンテンツのところにスクリプトが入ります。コンテンツのタブの中に「新しいスクリ」というボタンが見えますね。このボタンを押すと、New Scriptというスクリプトが現れます。
New Scriptには前々回お話したように「Hello, Avatar」のスクリプトが入っているので、それを消して代わりに上の文字表示のスクリプトを書き込みます。上に書いてあるものをそのままコピーペーストしてもいいでしょう。

保存のボタンを押して保存しましょう。あとスクリプトの名前も "Pose Ball" に変更しておきます。
すでにこの時にはボールの上にPose Ballの文字が表示されているのが見えます。

どうです?これだけだったら簡単でしょ?^^
今回は「オブジェクトの上に文字を表示させる」というひとつの作業だけでした。
先ほども述べたように、スクリプトとはこういうオブジェクトにさせる仕事の手順を決められたルールに従って並べていくだけなんです。一見複雑に見えるスクリプトも、細かく分解していくとこのような最小単位に分解されます。
すこし、スクリプトに対する苦手意識が解消されたでしょうか?
次回は椅子に座るときのポジションを決めるスクリプトを使ってみましょう。
2008年02月20日
ゼロから始めるスクリプト(その2)
さて、今日はいよいよポーズをとらせるためのスクリプトをポーズボールに入れていきます。
この前FG三姉妹の写真を撮るときにつかったポーズボールがありますのでその中身をみながら、どんなスクリプトを使っているのか解説したいと思います。
この前お話したようにスクリプトはポーズボールのオブジェクトのコンテンツというところに入っています。
ここにはスクリプト以外にアバターにつけさせるポーズのアニメーションも入っています。
あとよく見ると何かテクスチャーも入っていますね。これについては後で解説いたします。

実際にここに入っているスクリプトを以下に書き出してみます。
一番手っ取り早いのは下のスクリプトをそのままコピーペーストして使うのが簡単です。
このとき一番上の string SET_TEXT="Arin Pose" のArin Poseを自分の好きな文字に入れ替えれば、その文字をポーズボールの上に表示させることができます。
string SET_TEXT="Arin Pose";
vector POSITION=<0.0, 0.0, -0.1>;
list rgb;
string animation;
default
{
state_entry()
{
llSetText(SET_TEXT,<1,1,1>,1);
llSitTarget(POSITION, ZERO_ROTATION);
llSetAlpha(1.0, ALL_SIDES);
}
changed(integer change)
{
if (change & CHANGED_LINK)
{
if (llAvatarOnSitTarget() != NULL_KEY)
{
llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TRIGGER_ANIMATION);
}
else
{
integer perm=llGetPermissions();
if ((perm & PERMISSION_TRIGGER_ANIMATION) && llStringLength(animation)>0)
llStopAnimation(animation);
animation="";llSetText(SET_TEXT,<1,1,1>,1);
llSetAlpha(1.0, ALL_SIDES);
}
}
}
run_time_permissions(integer perm)
{
if (perm & PERMISSION_TRIGGER_ANIMATION)
{
llStopAnimation("sit");
animation=llGetInventoryName(INVENTORY_ANIMATION,0);
llStartAnimation(animation);
llSetText("",<0,0,0>,0);
llSetAlpha(0.0, ALL_SIDES);
}
}
}
こうしてコピーペーストして作ったスクリプトはしっかりと保存しておきましょう。
実際にポーズのアニメーションとスクリプトをボールの中に入れて(あとテクスチャーをボールに貼った場合はボールに貼ったのと同じテクスチャーをスクリプトやアニメーションと一緒にコンテンツの中に入れます。)、これで終了です。
さて、ポーズボールに座ってみましょう。 あれれ?足が床につきささってしまっています。

ポーズボールの位置が悪いようです。ボールを右クリックして編集の状態にしてからボールに座ると、矢印が出たままになりますので、ボールの位置を動かして調整することが可能です。

はい、できました^^

今回は、とりあえず深く考えずに既にあるスクリプトをボールに入れてみました。
次回以降はスクリプトをすこしずつ見ながら解説をしていきたいと思います。
文字が多くなりそうですけど、なるべく分かり易くすこしずつやっていきます。お付き合いください。
この前FG三姉妹の写真を撮るときにつかったポーズボールがありますのでその中身をみながら、どんなスクリプトを使っているのか解説したいと思います。
この前お話したようにスクリプトはポーズボールのオブジェクトのコンテンツというところに入っています。
ここにはスクリプト以外にアバターにつけさせるポーズのアニメーションも入っています。
あとよく見ると何かテクスチャーも入っていますね。これについては後で解説いたします。

実際にここに入っているスクリプトを以下に書き出してみます。
一番手っ取り早いのは下のスクリプトをそのままコピーペーストして使うのが簡単です。
このとき一番上の string SET_TEXT="Arin Pose" のArin Poseを自分の好きな文字に入れ替えれば、その文字をポーズボールの上に表示させることができます。
string SET_TEXT="Arin Pose";
vector POSITION=<0.0, 0.0, -0.1>;
list rgb;
string animation;
default
{
state_entry()
{
llSetText(SET_TEXT,<1,1,1>,1);
llSitTarget(POSITION, ZERO_ROTATION);
llSetAlpha(1.0, ALL_SIDES);
}
changed(integer change)
{
if (change & CHANGED_LINK)
{
if (llAvatarOnSitTarget() != NULL_KEY)
{
llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TRIGGER_ANIMATION);
}
else
{
integer perm=llGetPermissions();
if ((perm & PERMISSION_TRIGGER_ANIMATION) && llStringLength(animation)>0)
llStopAnimation(animation);
animation="";llSetText(SET_TEXT,<1,1,1>,1);
llSetAlpha(1.0, ALL_SIDES);
}
}
}
run_time_permissions(integer perm)
{
if (perm & PERMISSION_TRIGGER_ANIMATION)
{
llStopAnimation("sit");
animation=llGetInventoryName(INVENTORY_ANIMATION,0);
llStartAnimation(animation);
llSetText("",<0,0,0>,0);
llSetAlpha(0.0, ALL_SIDES);
}
}
}
こうしてコピーペーストして作ったスクリプトはしっかりと保存しておきましょう。
実際にポーズのアニメーションとスクリプトをボールの中に入れて(あとテクスチャーをボールに貼った場合はボールに貼ったのと同じテクスチャーをスクリプトやアニメーションと一緒にコンテンツの中に入れます。)、これで終了です。
さて、ポーズボールに座ってみましょう。 あれれ?足が床につきささってしまっています。

ポーズボールの位置が悪いようです。ボールを右クリックして編集の状態にしてからボールに座ると、矢印が出たままになりますので、ボールの位置を動かして調整することが可能です。

はい、できました^^

今回は、とりあえず深く考えずに既にあるスクリプトをボールに入れてみました。
次回以降はスクリプトをすこしずつ見ながら解説をしていきたいと思います。
文字が多くなりそうですけど、なるべく分かり易くすこしずつやっていきます。お付き合いください。
2008年02月18日
ゼロから始めるスクリプト(その1)
さて、今日はいよいよスクリプトです。
ただの置物のオブジェクトに生命を吹き込むのがこのスクリプト。最初はとっつきにくいかもしれませんが、やり始めると一番面白く、はまるのもこのスクリプトかもしれません。
スクリプトは多少なりともプログラミングの経験とか知識があると理解しやすいかもしれませんが、そうでない人にとってはなんだかとっつきにくいだけで、大変だあという想いだけかもしれません。実際スクリプトに関するブログなりWEBページを見るとまず字が多い!ということでやる気をそがれる方が多いのではないでしょうか。
スクリプト=Scriptとは英語で台本、脚本のことです。つまり、オブジェクトという役者が、SL内でいろんなふるまいをするための脚本がスクリプトと言ってもよいでしょう。ですのでまあ、字が多いのも当たり前といえば当たり前なのかもしれません。ということで、ごめんなさい。このブログもご多分にもれず字が多くなりそうです。でも極力画もいれながらやっていきますのでおつきあいください。
いろんなスクリプト関係のページやブログなどを見ると必ずでてくるスクリプトに "Hello, Avatar!" スクリプトというものがあります。これはSL内でスクリプトを新規に作成しようとすると最初に出てくるスクリプトなのです。
まずは、実際にこの "Hello, Avatar!" スクリプトがどういうものか見てみましょう。
持ち物を開くと、上の方に作成というメニューがあるかと思います。
その中に「新しいスクリプト」という項目があるのでそれを選びます。

すると、New Scriptという名前のスクリプトが作られます。

これから作ろうとしているのはポーズボールに入れるスクリプトなので、名前を変えておきましょう。
PoseBallと変更してみました。

名前を変更してからスクリプトをクリックして開いてみると、すでに何かが書いてあります。

この、新規作成した時に既にスクリプトとして書かれているものが、"Hello, Avatar!" スクリプトなのです。
スクリプトの記述内容を下記に写してみました。
default
{
state_entry()
{
llSay(0, "Hello, Avatar!");
}
touch_start(integer total_number)
{
llSay(0, "Touched.");
}
}
これだけ見てもなんのことやらさっぱりわかりませんので、実際にこのスクリプトをオブジェクトの中に入れてみましょう。
入れる場所は、前回の「ゼロから始めるプリム作成(その1)」で述べたように、オブジェクトのコンテンツに入れます。
持ち物のScriptのフォルダーからオブジェクトのコンテンツにスクリプトをドラグします。

これでオブジェクトに "Hello, Avatar!" のスクリプトが入りました。
ではオブジェクトをいったん持ち物に取り込みましょう。作成したオブジェクトを取り込むには右クリックして Take で取り込むことができます。

取り込まれたオブジェクトは持ち物の中のRecent Itemsというところで確認すると良いでしょう。特に名前をつけない限り、取り込まれたオブジェクトは Object という名前になっています。

この状態で取り込んだオブジェクトを再び外にだしてみましょう。持ち物から外にドラグすれば出すことができます。
オブジェクトを持ち物から外にだすことを REZ すると言います。
オブジェクトはこのようにして持ち物から出して編集して、また持ち物に戻すということを頻繁にやりますので、出し方と戻し方は覚えておいてください。
さて、出したオブジェクト(ボール)に触ってみましょう。なにが起きましたか?
下の画面左下に Object:Touched という緑の文字が出ていますね。これがこの "Hello, Avatar!" スクリプトでできることです。
実はあともうひとつ、 "Hello, Avatar!" スクリプトがやってくれることがあります。スクリプトを最初にコンテンツにドラグしたときだけ "Hello, Avatar!" という同じく緑の文字が出るのです。

「え?それだけ?」なんて言わないでくださいねw
今日はとりあえず、スクリプトがどういうものなのかということだけでも何となくわかっていただけたでしょうか?
スクリプトは先ほど述べたようにオブジェクトという役者にいろんなことを演じさせる台本のようなものです。
そしてこの台本はオブジェクトに分かるように(もちろん比喩的に言ってますw)特殊な言葉で書かれていると思ってください。
多くのスクリプト入門のブログやページではその言葉の構造というか、文法のようなものも解説したりしていますが、ここではあえてそれはしません。もちろん最初からきちんと体系的に勉強するという方法もあると思いますが、まずは既に出来上がっているサンプルをオブジェクトに入れて動作させて見て、それを楽しみながら徐々に覚えていくという方法をとりたいと思います。
実際、自分で一から十までスクリプトを書けなくても、既存のモジュールを組み合わせて自分なりのスクリプトを作って楽しんでいる人も多いのです。
気楽にかまえて、スクリプトを楽しみましょう。
次回以降はポーズボールに入れるスクリプトを具体的に見ていきたいと思います。
ただの置物のオブジェクトに生命を吹き込むのがこのスクリプト。最初はとっつきにくいかもしれませんが、やり始めると一番面白く、はまるのもこのスクリプトかもしれません。
スクリプトは多少なりともプログラミングの経験とか知識があると理解しやすいかもしれませんが、そうでない人にとってはなんだかとっつきにくいだけで、大変だあという想いだけかもしれません。実際スクリプトに関するブログなりWEBページを見るとまず字が多い!ということでやる気をそがれる方が多いのではないでしょうか。
スクリプト=Scriptとは英語で台本、脚本のことです。つまり、オブジェクトという役者が、SL内でいろんなふるまいをするための脚本がスクリプトと言ってもよいでしょう。ですのでまあ、字が多いのも当たり前といえば当たり前なのかもしれません。ということで、ごめんなさい。このブログもご多分にもれず字が多くなりそうです。でも極力画もいれながらやっていきますのでおつきあいください。
いろんなスクリプト関係のページやブログなどを見ると必ずでてくるスクリプトに "Hello, Avatar!" スクリプトというものがあります。これはSL内でスクリプトを新規に作成しようとすると最初に出てくるスクリプトなのです。
まずは、実際にこの "Hello, Avatar!" スクリプトがどういうものか見てみましょう。
持ち物を開くと、上の方に作成というメニューがあるかと思います。
その中に「新しいスクリプト」という項目があるのでそれを選びます。

すると、New Scriptという名前のスクリプトが作られます。

これから作ろうとしているのはポーズボールに入れるスクリプトなので、名前を変えておきましょう。
PoseBallと変更してみました。

名前を変更してからスクリプトをクリックして開いてみると、すでに何かが書いてあります。

この、新規作成した時に既にスクリプトとして書かれているものが、"Hello, Avatar!" スクリプトなのです。
スクリプトの記述内容を下記に写してみました。
default
{
state_entry()
{
llSay(0, "Hello, Avatar!");
}
touch_start(integer total_number)
{
llSay(0, "Touched.");
}
}
これだけ見てもなんのことやらさっぱりわかりませんので、実際にこのスクリプトをオブジェクトの中に入れてみましょう。
入れる場所は、前回の「ゼロから始めるプリム作成(その1)」で述べたように、オブジェクトのコンテンツに入れます。
持ち物のScriptのフォルダーからオブジェクトのコンテンツにスクリプトをドラグします。

これでオブジェクトに "Hello, Avatar!" のスクリプトが入りました。
ではオブジェクトをいったん持ち物に取り込みましょう。作成したオブジェクトを取り込むには右クリックして Take で取り込むことができます。

取り込まれたオブジェクトは持ち物の中のRecent Itemsというところで確認すると良いでしょう。特に名前をつけない限り、取り込まれたオブジェクトは Object という名前になっています。

この状態で取り込んだオブジェクトを再び外にだしてみましょう。持ち物から外にドラグすれば出すことができます。
オブジェクトを持ち物から外にだすことを REZ すると言います。
オブジェクトはこのようにして持ち物から出して編集して、また持ち物に戻すということを頻繁にやりますので、出し方と戻し方は覚えておいてください。
さて、出したオブジェクト(ボール)に触ってみましょう。なにが起きましたか?
下の画面左下に Object:Touched という緑の文字が出ていますね。これがこの "Hello, Avatar!" スクリプトでできることです。
実はあともうひとつ、 "Hello, Avatar!" スクリプトがやってくれることがあります。スクリプトを最初にコンテンツにドラグしたときだけ "Hello, Avatar!" という同じく緑の文字が出るのです。

「え?それだけ?」なんて言わないでくださいねw
今日はとりあえず、スクリプトがどういうものなのかということだけでも何となくわかっていただけたでしょうか?
スクリプトは先ほど述べたようにオブジェクトという役者にいろんなことを演じさせる台本のようなものです。
そしてこの台本はオブジェクトに分かるように(もちろん比喩的に言ってますw)特殊な言葉で書かれていると思ってください。
多くのスクリプト入門のブログやページではその言葉の構造というか、文法のようなものも解説したりしていますが、ここではあえてそれはしません。もちろん最初からきちんと体系的に勉強するという方法もあると思いますが、まずは既に出来上がっているサンプルをオブジェクトに入れて動作させて見て、それを楽しみながら徐々に覚えていくという方法をとりたいと思います。
実際、自分で一から十までスクリプトを書けなくても、既存のモジュールを組み合わせて自分なりのスクリプトを作って楽しんでいる人も多いのです。
気楽にかまえて、スクリプトを楽しみましょう。
次回以降はポーズボールに入れるスクリプトを具体的に見ていきたいと思います。