2008年03月08日
分割してテクスチャを貼るためのスクリプト2
スクリプトの前にちょっとTipsを・・・
オブジェクトのフェイス番号をチャットウィンドウに表示する。
オブジェクトフェイスの番号をチャットウィンドウに表示するには、
テクスチャのフェイスを選択してから「ctrl+shift+alt」を押しながら「T」を押します。
テクスチャのサイズとアルファ値も出ます(どうせなら、編集ボックスに表示すればいいと思うのですが)。

テクスチャのフェイスを選択してない場合は、オブジェクトにあるフェイス番号がすべて表示されます。

分割してテクスチャを貼るためのスクリプト2
今回使用しているサンプルテクスチャです。

前回は、1つのテクスチャを8(2x4)分割して貼り付けましたが、
今回は、1つのテクスチャを4(2x2)分割と16(4x4)分割で貼ってみます。
実際には、絵が重ならないようにして配置します。
そうすれば、1枚のテクスチャでいろいろ使えます。
特にHUDなんかでこまごましたボタンがいっぱいあるときにいいかもと思います。
スクリプトの関数は変更なしで、テクスチャの指定と呼び出し方とを少し変えるだけです。
変更箇所1:テクスチャの変更。
//テクスチャのUUIDかオブジェクトコンテンツでの名前を指定する。
//このサンプルテクスチャにはフルパーミッションを与えてあるので、誰でもこのテクスチャで実行できるはず。
string myTex = "f4bb40ac-b9c6-1019-0b59-cffa8fb12b68";
変更箇所2: 関数の呼び出し部分。state_entryをすべて入れ替えます。
state_entry() {
//繰り返したとき変化が分かりやすいようにデフォルトにする。
setDefaultTex();
llSleep(2);
//テクスチャを2列2行で分割し、0番目(0から始まる)のグリッドを第0面に貼る。
setTex(0, 2, 2, myTex, 0);
llSleep(2);
//テクスチャを2列2行で分割し、1番目(0から始まる)のグリッドを第1面に貼る。
setTex(1, 2, 2, myTex, 1);
llSleep(2);
//テクスチャを2列2行で分割し、2番目(0から始まる)のグリッドを第2面に貼る。
setTex(2, 2, 2, myTex, 2);
llSleep(2);
//テクスチャを4列4行で分割し、3番目(0から始まる)のグリッドを第3面に貼る
setTex(3, 4, 4, myTex, 3);
llSleep(2);
//テクスチャを4列4行で分割し、4番目(0から始まる)のグリッドを第4面に貼る。
setTex(4, 4, 4, myTex, 4);
llSleep(2);
//テクスチャを4列4行で分割し、5番目(0から始まる)のグリッドを第5面に貼る
setTex(5, 4, 4, myTex, 5);
llSleep(2);
}
こうゆう感じになります。

この記事へのトラックバックURL
http://tanakaakio.slmame.com/t166578


