LlSetText/ja
Jump to navigation
Jump to search
LSL ポータル | 関数 | イベント | 型 | 演算子 | 定数 | 実行制御 | スクリプトライブラリ | カテゴリ別スクリプトライブラリ | チュートリアル |
要約
関数: llSetText( string text, vector color, float alpha );color と透過率 (alpha で指定します) を指定して、プリムの上に text を表示します。
• string | text | – | 表示する フローティングテキスト | |
• vector | color | – | RGB の色 <R, G, B> (<0.0, 0.0, 0.0> = 黒, <1.0, 1.0, 1.0> = 白) | |
• float | alpha | – | 0.0 (透過) ~ 1.0 (表示) (0.0 <= alpha <= 1.0) |
警告
- ストレージ媒体として フローティングテキスト の機能が使えると思わないでください。これは不完全ですし、安全なものでもありません。
- フローティングテキストはサーバの更新時に変更になったことが過去にあり、その際に既に設定されている内容は消去されていました。将来も変更が発生する可能性があります。
- 「不可視」[1] のフローティングテキストもクライアントに送信されます。
- 不可視にしているテキストを表示することのできるクライアントを持っている人が見れてしまう可能性があります。
- テキストが含まれている通信パケットが盗聴され、テキストが読まれる可能性があります。
- llSetText を(リセット、対話式またはスクリプトのステートで) 同一プリムで 2 回以上呼び出すと、最後の呼び出しが以前のものより優先されます。
- text は 254 バイト に 制限 されます。文字列がそれより長い場合、文字が泣き別れしようがお構いなしに、254 バイトにカットされます。
- 非常に長い途切れのないテキストは、自動的に (上下) 2 行に分割されることがあります。
- フローティングテキストは壁やその他のオブジェクトからすり抜けて見えることがあります。モールやアパートの隣の人に配慮してください。
- 見える範囲はプリムの大きさに比例します。
- スクリプトを削除しても非アクティブ化しても、プリムのフローティングテキストは削除されません。
- フローティングテキストはプリムのプロパティで、スクリプトが存在しつづけなければならないものではありません。
- フローティングテキストを削除するには、以下を使用してください。
llSetText("", <1.0, 1.0, 1.0>, 1.0);
- Shift コピーはフローティングテキストのプリムプロパティを維持しません。llSetText() がコピーされたときに発生しなければ、コピーにはフローティングテキストはつきません。
- 空行はテキスト文字列の終端から削除されます。このため、空行を作りたいときには最後の行に何か文字 (空白など) を入れてください。
- 複数の空行となる改行は 1 つの改行に変換されます。このため、スキップしたい全ての行に空白文字を追加してください。
llSetText("Monkeys\n\n\n\n\n", <1.0, 1.0, 1.0>, 1.0);//悪い例
llSetText("Monkeys\n \n \n \n \n ", <1.0, 1.0, 1.0>, 1.0);//良い例
サンプル
llSeTTextで緑のテキストでオブジェクト名を表示するコードを、標準のコードに含ませる方法の例です。
default
{
state_entry()
{
llSay(0, "Hello, Avatar!");
llSetText(llGetObjectName(), <0.0, 1.0, 0.0>, 1.0); // オブジェクトの現在の名前を緑で表示します。
}
touch_start(integer total_number)
{
llSay(0, "Touched.");
}
}
デフォルトではフローティングテキストは位置行で表示されます。しかし、フローティングテキストは "\n" (「関連項目」の SplitLine を参照) を使用して複数行に分けることができます。
色とアルファ
色 | コード |
---|---|
白 | <1.0, 1.0, 1.0> |
灰 | <0.5, 0.5, 0.5> |
黒 | <0.0, 0.0, 0.0> |
赤 | <1.0, 0.0, 0.0> |
緑 | <0.0, 1.0, 0.0> |
青 | <0.0, 0.0, 1.0> |
x,y,z のベクトル構成要素は、それぞれ赤、緑、青を表します。値域は従来の RGB の 0 ~ 255 とは異なり、0 ~ 1 を使用します。<1.0, 1.0, 1.0> は「白」で、 <0.0, 0.0, 0.0> は「黒」です。
llSetText("I am white", <1.0, 1.0, 1.0>, 1.0);//白のテキスト
llSetText("I am black", <0.0, 0.0, 0.0>, 1.0);//黒のテキスト
1.0 はアルファ設定で、1.0 が完全不透明、0.0 が完全透明 (非表示) になります。
llSetText("alpha", <0.0, 1.0, 0.0>, 0.5);//50% の透明度の緑のテキスト
複数行
llSetText("I am \n on two lines!", <0.0, 1.0, 0.0>, 1.0);//緑のテキストで 2 行表示
便利なスニペット
このスクリプトをインベントリからドラッグしてオブジェクトにいれると、設定したテキストを削除します。
// http://wiki.secondlife.com/wiki/llSetText
default
{
state_entry()
{
llSetText("", <1.0, 1.0, 1.0>, 1.0);
llRemoveInventory(llGetScriptName());
}
}
フローティングテキストの見た目を簡単に指定できるコード:
vector blue = <0,0,1>;
vector orange = <1,0.5,0>;
vector cyan = <0,1,1>;
vector pink = <1,0.5,0.76>;
vector green = <0,1,0>;
vector red = <1,0,0>;
vector white = <1,1,1>;
vector yellow = <1,1,0.1>;
vector purple = <1,0,1>;
vector black = <0,0,0>;
string hoverText = "TEXT GOES HERE"; // テキストを設定
vector hoverColor = white; // 表示するテキストの色を設定します。定義済みの色または RGB 色ベクトルを float で指定してください。
float hoverAlpha = 1.0; // テキストの透明度を設定します。1.0 は完全表示、反対に 0 は完全透明です。
default
{
state_entry()
{
llSetText(hoverText, hoverColor, hoverAlpha);
}
}
注意点
関連項目
特記事項
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。