Site search

Google
WWW を検索 backup-beta.blogspot.com を検索

2008年9月9日火曜日

テレビ画面とかのスクリプト

今回は土地に設定した動画やウェブページを表示するメディアスクリーンのやり方です。

方法はとても簡単で、土地に設定してるメディアテクスチャと同じテクスチャをオブジェクトの好きな面に直接ドロップして貼りつけたら完成です^^
Make your own media screen http://youtube.com/watch?v=-SJu23Ya4WY

でき上がったモニター画面にはSHOP CHIHIROで発売中のユーチューブTVスクリーンなどのシステムを使って変換したYouTubeムービーなんかも映ります^^

まあこれでオッケーかなって気もするんですけど、土地に設定されたテクスチャを自動取得する簡単なスクリプトを書いてみましたw


土地にテクスチャが設定されてないときは、Default Media Texture(持ち物のライブラリにあります)を土地に設定します。あと、タッチで電源オン・オフできるようにしてみました。
// メディアスクリーン
integer face=4;  // 面番号
key media_texture="8b5fec65-8d8d-9dc5-cda8-8fdf2716e361";  // デフォルトメディアテクスチャ

set_texture()
{
    list media=llParcelMediaQuery([PARCEL_MEDIA_COMMAND_TEXTURE]);  // 土地のメディアテクスチャを取得
    key texture=llList2Key(media,0);  // 取得したリストをキーに変換
    if (texture == NULL_KEY) {  // テクスチャが設定されてないとき
        texture=media_texture;  // 変数textureにデフォルトのテクスチャ入れて
        llParcelMediaCommandList([PARCEL_MEDIA_COMMAND_TEXTURE, texture]);  // 土地にテクスチャ設定
    }
    llSetTexture(texture,face);  // オブジェクトにテクスチャ設定
}

default
{
    state_entry()
    {  // 最初は電源オフの状態なので
        llSetColor(<0,0,0>,face);  // 黒にしとく
    }

    touch_start(integer total_number)
    {  // タッチイベント
        if (llGetColor(face) == <1,1,1>) {  // 色が白だったら(電源オンなら)
            llSetPrimitiveParams([
                PRIM_FULLBRIGHT,face,FALSE,  // フルブライトをオフ
                PRIM_COLOR,face,<0,0,0>,1.0]);  // 色を黒にする
        }
        else {  // そうでないとき(電源オフのとき)
            set_texture();  // set_textureでテクスチャ設定
            llSetPrimitiveParams([
                PRIM_FULLBRIGHT,face,TRUE,  // フルブライトをオン
                PRIM_COLOR,face,<1,1,1>,1.0]);  // 色を白にする
        }
    }
}

このスクリプトは土地をお持ちの方など、その土地のメディア設定できる権限持ってる人向けになります。
10月30日11時頃追記: デフォルトメディアテクスチャにはTEXTURE_MEDIAっていう扱いやすい定数がありました。

0 件のコメント:

コメントを投稿