スクリプト

« Meguro (目黒)完売 Shinagawa(品川)レンタル開始 | メイン | Christian Dior(クリスチャン・ディオール) »

magslmagsl 2007/03/10

なぜなにスクリプト 第2回 『オブジェクトの上にテキストを表示させる方法』

Love01 スクリプトをわかりやすく、かつ艶かしく解説する『なぜなにスクリプト』第二回目のテーマはなんでしょうか?


 今回は『オブジェクトの上にテキストを表示させる方法』です。


Love01 あー、ありますね。「Touch me!」とか、テクスチャやオブジェクトでは表示しきれないものを表示させるやつですね。たくさんのテクスチャを読み込むので重いときなどにも、結構重宝しますね。


 このスクリプトはオブジェクトの上にのみ表示が可能です。


Love01 天は人の上に人をのせて人を作ったと言いますからね。


 なに言ってんだ、この人は? スクリプトは、以下の通りです。

default
{
    state_entry()
    {
        llSetText("I am an orange.", <1,1,1>, 1.0);
    }
}

Love01 あ、随分シンプルなスクリプトですね。では解説をお願いします。


 はい。これは、スクリプトが動き出したら、白い文字で「I am an orange.」と 表示します。海外ではfloating textといわれてたりします。


Love01 直訳すると浮遊したテキストですね。「I am an orange.」の部分を変えれば、そのまま使えるわけですね。で、そのあとの数字は何でしょう?


 lslwikiにてllSetText()はどう使うのかを調べてみますと。http://rpgstats.com/wiki/index.php?title=LlSetText
llSetText(string text, vector color, float alpha)となっています。


Love01 え~と、全然わかりません。


 1番目の"string text"は、テキスト(文字列)を入れなさい
2番目の"vector color"は、色を指定しなさい
3番目の"float alpha"は、透明度を指定しなさいという意味です。


Love01 なるほど。色と透明度の指定なわけですね。


 テキストは始まりと終わりを"ダブルクウォートで囲むきまりですね。 きちんと囲むと緑色になります。


Love01 はい。


 文字列はアルファベットで255文字まで可能です。また、次のような書式があります。
・" \n "といれると改行とみなされます。
・" \" "といれるとダブルクウォート自身を表示します。


Love01 わかりました。ところでベクターカラーとはなんでしょう?


 色の指定の仕方ですが、<1.0, 1.0, 1.0>という書き方をします。3つの数字がコンマ区切りになって、大なり、小なりで囲まれています。 数字は整数であっても、なくてもかまいません。 これら3つの数字はRGBカラーに対応していて、となっています。 ここでRGBカラーは本来0~255が使用されますが、スクリプトでは、 0~1.0が使用されます。なので、RGBでの数字を255で割った数字を 入れるというように考えましょう。


Love01 なるほど。ということは。<1.0, 1.0, 1.0>が白で<0.0, 0.0, 1.0>が青ということですね。


 その他にもスクリプトにはベクターと指定されるものがありますので、その場合にも<1.0, 1.0, 1.0>というような書き方をします。


Love01 透明度の方はフロートアルファとありますが?


 透明度は、0.0~1.0の数字を指定します。 小数点はつけなくても大丈夫ですが、float ○○と書いてある場合は、小数点つきで書いておくのが無難です。0.0が透明度100%で見えません。1.0が透明度0%でくっきりと見えます。


Love01 なるほど、フロートと指定されていたら少数ということですね。


 その外にも整数を指定するintegerやCopy Asset UUIDなどで取得した文字列を入力するkeyなんていうのもあります。


Love01 lslwikiをみて、どの書式で記入するかは必ず確認が必要ですね。


 ちなみに、テキストに日本語を入れようとすると、□□□と表示されてしまいます。実はこの点、Macユーザの場合はこれでもきちんと日本語が表示されます。Winユーザはダメなようです。クライアントViewerに若干の違いがあるようです。


Love01 わかりました。


 最後に注意事項です。
・一度llSetText()を実行したオブジェクトはスクリプトを削除しても、テキストは消えません。空のテキスト "" を実行して下さい。
・テキストは壁などを越えて見えることがあります。お隣さんの敷地、オブジェクト上に侵入しないように気をつけましょう。


Love01 それは気をつけないといけませんねー。


 自分のオブジェクトにFreeと表示していたら、お隣さんのオブジェクト上に表示されているように見えて、怒られるということが……。


Love01 はっはっは。ウスラトンカチなやつもいるもんですねー。顔が見てみたい!


 ……私ですが。


Love01 ……え~と、では次回のテーマですが。


 『オブジェクトを同じ方向に回転させる』です。


Love01 あ、しまった。ポロリ忘れた。しょうがない、私のお稲荷さ……。


 出すな!(殴)


Love01 ……ポロリ(涙)

トラックバック

このエントリーのトラックバックURL:

ご注意:
・トラックバックは確認後、承認されたものが反映されます。
・マグスルの判断によりトラックバックを削除する場合があります。
・トラックバックによってリンクされているWebページは第三者が作成したものです。内容や安全性についてマグスルでは一切保証できませんのでご注意下さい。

コメントを投稿

※ブログオーナーが承認したコメントのみ表示されます。


MagSL EXchange serviceセカンドライフ用パソコンならドスパラ!日テレ「デジタルの根性」公式サイトです