ソラマメブログ
プロフィール
teleporter
teleporter
LSLって楽しいですね^^。
毎日、研究しています。
オーナーへメッセージ

  
Posted by at

2009年09月03日

blog移転します。

お世話になったソラマメも、そろそろ、なくなってしまうようですので移転先blogのリンクを張っておきますね^^。
といっても、このblogを同時期に作ったんですが... face02

Teleporter's Second Life Blog
http://teleporterhud.blogspot.com/  

Posted by teleporter at 04:07Comments(0)

2009年01月28日

アップデート送付方法

先程、記事をアップした後に確認したところ、なんと8人の方がTP-HUDを購入していた!
ありがたい事である。この場をお借りして購入者の方々には感謝する所存でございます


閑話休題
またまた、TP-HUDの販売場所が増えました!
下記の場所です。
SHIKOKU(100,34,22)



閑話休題
コメント欄にちょっと書いたが、現在私はTP-HUDの機能追加を考えており、古いバージョンを購入して頂いた方には無料でアップデート版を送付しようと考えている。


しかし!この勢いで商品を購入して頂く方々が増えるとアップデート送付を手動で送るのには無理がでてきてしまう!


ということで、
次回はTP-HUDの機能追加とともに、自動アップデート配布のスクリプトも考えていきたいと思う。乞うご期待!
  続きを読む
タグ :lslteleporthud

Posted by teleporter at 22:31Comments(0)lsl

2009年01月28日

数字テクスチャ




本日、1個売れました。ありがとうございます^^
さて、前回予告した数字テクスチャのUUIDは下記です。

"ad5c21dd-14e5-7494-30dd-c15acce172a4"


数字テクスチャ
上のblog画像は512x512pxとなってますが、インワールドのテクスチャは読込み速度の事を考え、256x256pxです。
もちろん、TP-HUDを購入して頂くとフルパーミッションで付いてきます。


あと、TP-HUDの販売場所ですが、もう1カ所あります。
Jieut(183,181,101)


以上、前回の場所と合わせ、現在、2カ所でTP-HUDを販売していますが、このブログを見て下さっている方で無料で商品を設置させて頂ける方、いらっしゃいましたらぜひともお声をかけて頂けたら幸いです。
インワールドでも結構ですし、本ブログのコメント欄でも結構ですので、ぜひとも宜しくお願い申し上げます。



次回はさらにTP-HUDを改造もしくは別の販売場所の報告ができたら嬉しいな〜。乞うご期待!

  続きを読む
タグ :lslteleporthud

Posted by teleporter at 22:01Comments(2)lsl

2009年01月28日

TP-HUD 販売開始です。

前回予告しました、テレポートHUDですが、TP-HUDという名前を付けL$1で販売する事にしました。
下のパケージ写真を見て頂ければわかると思いますが、おもいきって100個のテレポート先が登録できるHUDに仕上げてみました。





ただ、100個テレポート先のボタンが並んでいますのでそのままだとセカンドライフのプレイに支障をきたしてしまいます...。
そこで!前回のソースコードの他に2つスクリプトを作成し全体を隠すボタンを上下左右に付けました。
さらに、スクリプトもプリムも全てフルパーミッションです!
ついでに下記にもソースコードをのせておきます。



その他、注意点とか
・ルートプリム用のスクリプトはルートプリムに入れないと正しく動作しません。
・上下左右ボタンのスクリプトは子プリムにしないと正しく動作しません。
・HUD装着先はセンター1、2共に未対応ですので、それ以外の場所に装着してください。
・テレポート先のボタンはそれぞれが単体で動作するので100個じゃなくてもOK。もっと少なくてもOK。
・フルパーミッションなので、あなたのプライドが許すなら転売もOKですよ〜^^。
・例によって、コードの利用はご自由に、ただし、無保証ですよ。ソースコードを利用した事によるいかなる損害も私は責任を負いません。


以下、ソースコードです。


ボタン用スクリプト

////////////////////////////////////////
//
//    button script
//
////////////////////////////////////////
default
{
    touch_start(integer num_detected)
    {
        llMessageLinked( LINK_ROOT, 0, (string)llGetLocalPos(), "" );
    }
}



HUD全体を移動させるルートプリム用のスクリプト

////////////////////////////////////////
//
//    root prim script
//
////////////////////////////////////////
float CLOSE_BUTTON_OFFSET = 0.05;
float SIDE_VERTICAL_OFFSET=0.35;

string pos2direction( vector pos )
{
    if ( pos == ZERO_VECTOR ) {
        return "";
    }
    if ( llFabs(pos.y) < llFabs(pos.z) ) {
        if ( pos.z > 0 ) {
            return "top";
        } else {
            return "bottom";
        }
    } else {
        if ( pos.y > 0 ) {
            return "left";
        } else {
            return "right";
        }
    }
}
slideHUD( string button_direction )
{
    vector scale = llGetScale( );
    vector pos = llGetLocalPos();
    float x = pos.x;
    float y = pos.y;
    float z = pos.z;
    integer a = llGetAttached();
    
    if ( a==ATTACH_HUD_TOP_CENTER ) {
        if ( button_direction == "top" ) {
            z = (scale.z /2) - CLOSE_BUTTON_OFFSET;
        } else
        if ( button_direction == "bottom" ) {
            z = -( scale.z / 2 );
        }
    } else
    if ( a==ATTACH_HUD_TOP_RIGHT || a==ATTACH_HUD_BOTTOM_RIGHT ) {
        if ( button_direction == "left" ) {
            y = scale.y /2;
        } else
        if ( button_direction == "right" ) {
            y = CLOSE_BUTTON_OFFSET - ( scale.y / 2 );
        }
    } else
    if ( a==ATTACH_HUD_TOP_LEFT || a==ATTACH_HUD_BOTTOM_LEFT ) {
        if ( button_direction == "left" ) {
            y = ( scale.y / 2 ) - CLOSE_BUTTON_OFFSET;
        } else
        if ( button_direction == "right" ) {
            y = -( scale.y / 2 );
        }
    } else
    if ( a==ATTACH_HUD_BOTTOM ) {
        if ( button_direction == "top" ) {
            z = scale.z / 2;
        } else
        if ( button_direction == "bottom" ) {
            z = CLOSE_BUTTON_OFFSET - ( scale.z / 2 );
        }
    }
    
    llSetPos( );
}

default {
    attach(key id)
    {
        if ( id ) {
            integer a = llGetAttached();
            if ( a==ATTACH_HUD_TOP_CENTER ) {
                llSetPos( ZERO_VECTOR );
                slideHUD( "top" );
            } else if ( a==ATTACH_HUD_TOP_RIGHT ) {
                llSetPos(<0.0, 0.0, -SIDE_VERTICAL_OFFSET>);
                slideHUD( "right" );
            } else if ( a==ATTACH_HUD_BOTTOM_RIGHT ) {
                llSetPos(<0.0, 0.0, SIDE_VERTICAL_OFFSET>);
                slideHUD( "right" );
            } else if ( a==ATTACH_HUD_TOP_LEFT ) {
                llSetPos(<0.0, 0.0, -SIDE_VERTICAL_OFFSET>);
                slideHUD( "left" );
            } else if ( a==ATTACH_HUD_BOTTOM_LEFT ) {
                llSetPos(<0.0, 0.0, SIDE_VERTICAL_OFFSET>);
                slideHUD( "left" );
            } else if ( a==ATTACH_HUD_BOTTOM ) {
                llSetPos( ZERO_VECTOR );
                slideHUD( "bottom" );
            } else if ( a==ATTACH_HUD_CENTER_1 || a==ATTACH_HUD_CENTER_2 ) {
                llSetPos( ZERO_VECTOR );
            }
        }
    }
    link_message(integer sender_num, integer num, string str, key id) {
        slideHUD( pos2direction((vector)str) );
    }
}




これで、テレポートボタンを100個もコピーできる根気のある方であれば、上記のテレポートHUDが作成できると思います^^。


そうそう、ここまで公開しておいてなんですが、TP-HUDの販売場所は下記になります。
GT HQ(124,191,24)


次回はTP-HUDで使用している数字テクスチャのUUIDも公開しようかなと思っています。乞うご期待!  続きを読む

Posted by teleporter at 03:12Comments(2)lsl

2009年01月27日

TP-HUDソースコード

前回の記事で書いたスクリプトのコードを掲載します。


使用方法
1.プリムに下記スクリプトを入れる。
2.スクリプト入りプリムをHUD装着。
3.テレポート先として登録したい場所で、プリム(ボタン)を2秒間長押し(クリック)。
4.テレポート先登録完了。HUD装着した本人だけに「save landmark...」とチャット表示されます。
5.その後はそのプリム(ボタン)を普通にクリックすれば、保存された場所のMAP画面が表示されます。



その他、注意点とか
・1プリム=1スクリプト=テレポート先1カ所です。
・テレポート先はプリムのプロパティ「説明」部分に保存されます。「説明」部分を消してしまうと登録したテレポート先も消えます。
・スクリプトを入れたプリムを複数コピーしてリンクすれば(1オブジェクトにする)HUDの装着先が1箇所で複数のテレポート先を保存できることになります。
・コードの利用はご自由に、ただし、無保証ですよ。ソースコードを利用した事によるいかなる損害も私は責任を負いません。



ソースコード
float TOUCH_TIMER = 2.0;
integer gSaveLandmark;
default
{
touch_start( integer num_detected )
{
llSetTimerEvent( TOUCH_TIMER );
gSaveLandmark = FALSE;
}
touch_end( integer num_detected )
{
if ( gSaveLandmark == FALSE ) {
llSetTimerEvent( 0.0 );
list l = llParseString2List( llGetObjectDesc(), ["<"], [] );
string regionName = llList2String( l, 0 );
vector pos = (vector)( "<" + llList2String( l, 1 ) );
if ( regionName == "" || pos == ZERO_VECTOR ) {
llOwnerSay( "no landmark..." );
} else {
llMapDestination( regionName, pos, ZERO_VECTOR );
llMapDestination( regionName, pos, ZERO_VECTOR );
}
}
}
timer()
{
llSetTimerEvent( 0.0 );
gSaveLandmark = TRUE;
llSetObjectDesc( llGetRegionName() + (string)llGetPos() );
llOwnerSay( "save landmark..." );
}
}




次回は複数登録可能なオブジェクトの配布or販売場所を公開するやもしれない...。乞うご期待!  

Posted by teleporter at 09:01Comments(0)lsl

2009年01月27日

テレポートHUDがアツい!



最近、テレポートHUDが流行っているらしい。
というのも、去年の年末ぐらいから、ソラマメでテレポートHUDについての新着記事が無い日がほとんどないのだ!

ここで、「テレポートHUD?」と疑問に思う方もいらっしゃるかともうので少し説明しておくと...。
テレポートHUDとは、セカンドライフのインワールドの中で各プレーヤーが色々な場所へテレポートするのを補助するHUDであり、とても便利な代物である!

そんな便利な物が話題にならない訳もなく、上記でお話ししたように、連日ソラマメでも話題になっているのである。

今回はその火付け役であり、私が尊敬するスクリプターでもあるソラマメブロガーを紹介しようと思う。
まずは、下記のブログを見てほしい。
物作りって楽しいね ♡





すごい、テレポートHUDの記事がこれでもかとアップされている。
さすがである。

ということで、私もテレポートHUDを作りたくなってしまい、今日、1時間ほどかけてテレポートHUDを作ってみた。

次回はそのスクリプトを公開しようと思いますので、乞うご期待!
  
タグ :lslteleporthud

Posted by teleporter at 00:13Comments(0)lsl