LlSetText/ja

From Second Life Wiki

Jump to: navigation, search

関数: llSetText( string text, vector color, float alpha );

と透過率(アルファで指定します)を指定して、プリムの上にテキストを表示します。

• string text ダブルクオーテーション(")で囲まれたテキストを表示します。
• vector color RGBの(<0.0, 0.0, 0.0> = black, <1.0, 1.0, 1.0> = white)
• float alpha 0.0(透過)~1.0(表示)(0.0 <= alpha <= 1.0)

警告

  • A script calling llSetTextを呼び出したスクリプトはもしフロートテキストが変わったかそうでなくても、llGetTextの関数が無いために知ることが出来ません
  • フロートテキストはプリムの設定であってスクリプトではなく、スクリプトが無効化あるいは除去されても、そのままテキストは残ります。
    • フロートテキストを除去するには、一度空文字を設定しなければいけません

 
llSetText("", <1.0, 1.0, 1.0>, 1.0);
 
  • 空改行はテキストの終端から除去されるので、何文字か縦に空白がほしいのなら、行末に何文字か(スペースのように)入れます。

 
llSetText("Monkeys\n\n\n\n\n", <1.0, 1.0, 1.0>, 1.0);//Bad
llSetText("Monkeys\n\n\n\n\n ", <1.0, 1.0, 1.0>, 1.0);//good
 

llSeTTextで緑のテキストでオブジェクト名を表示するコードを、標準のコードに含ませる方法の例です。

 
default
 {
     state_entry()
     {
          llSay(0, "Hello, Avatar!");
          llSetText(llGetObjectName(), <0.0, 1.0, 0.0>, 1.0); // Display object's name in green
     }
 
     touch_start(integer total_number)
     {
          llSay(0, "Touched.");
     }
 }
 

フロートテキストの初期状態は一行で表示されるでしょう。しかしながら、フロートテキストは改行"\n"(セクション関連項目内のSplitLineを読みましょう)を用いることで、複数以上に広げることが出来ます。 色の例:

 
vector white = <1.0, 1.0, 1.0>;
vector red = <1.0, 0.0, 0.0>;
vector green = <0.0, 1.0, 0.0>;
vector blue = <0.0, 0.0, 1.0>;
vector grey = <0.5, 0.5, 0.5>;
vector black = <0.0, 0.0, 0.0>;
 

<1.0, 1.0, 1.0> は赤、緑、そして青の要素を描写します。 <1.0, 1.0, 1.0>は"白"を意味し、<0.0, 0.0, 0.0>は"黒"を意味します。

 
llSetText("I am on", <1.0, 1.0, 1.0>, 1.0);
 

 
llSetText("I am off", <0.0, 0.0, 0.0>, 1.0);
 

1.0はアルファの設定です。1.0は完全な不透明、そして0.0は完全な透過(隠蔽)です。

 
llSetText("alpha", <0.0, 1.0, 0.0>, 0.5);
 

複数行

 
llSetText("I am \n on two lines!", <0.0, 1.0, 0.0>, 1.0);
 

部分的な利用

このスクリプトをインベントリからドラッグしてオブジェクトにいれると、設定したテキストを削除します。

 
// http://wiki.secondlife.com/wiki/llSetText
default
{
    state_entry()
    {
        llSetText("", <0.0, 0.0, 0.0>, 0.0);
        llRemoveInventory(llGetScriptName());
    }
}
 

関連項目

項目

•  Color in LSL
•  Translucent Color
•  : SplitLine 文字の幾つかの場所に'改行'のエスケープコードを挿入します
•  Useful snippet: llGetObjectPermMask フリーなのか有料なのか、テキストと改行でオブジェクトを分類します
Personal tools