Yan Lauria による投稿

知世さま

osDrawImageの使い方が分かりました。タッチでオン・オフします。ウェブバーが出てこないので、別の方法で出典表示する必要があります。

一方、普通の共有メディアだと、なぜか不思議ですが、jpg等のURLを貼った場合、jp等の画像のみ表示される場合と、jpg等が貼られていたウェブページが表示されてしまう場合があり、つまり画像のみを表示できないようにする対策が取られているのかもしれません。

// ----------------------------------------------------------------
// Example / Sample Script to show function use.
//
// Script Title:    osDrawImage.lsl
// Script Author:
// Threat Level:    None
// Script Source:   REFERENCE http://opensimulator.org/wiki/osDrawImage
//
// Notes: See Script Source reference for more detailed information
// This sample is full opensource and available to use as you see fit and desire.
// Threat Levels only apply to OSSL & AA Functions
// See http://opensimulator.org/wiki/Threat_level
//================================================================
// Inworld Script Line:  osDrawImage( string drawList, integer width, integer height, string imageUrl);
//
// Example of osDrawImage
integer Touched = FALSE;
default
{
    state_entry()
    {
        llSay(0,"Touch to see osDrawImage place an image on a prim from a Web Source");
    }
    touch_end(integer num)
    {
        if(Touched)
        {
            Touched = FALSE;
            llSetTexture(TEXTURE_PLYWOOD, ALL_SIDES);
        }
        else
        {
            Touched = TRUE;
            string DrawList = "";
            string ImageURL = "http://uploads0.wikiart.org/images/jean-michel-basquiat/ironew-york-of-the-negro-policeman.jpg!HalfHD.jpg";
            DrawList = osMovePen( DrawList, 0, 0 );                // Upper left corner at <0,0>
            DrawList = osDrawImage( DrawList, 1024, 1024, ImageURL ); // キャンバスの一部に描きたい時はキャンバスのサイズ内のピクセル数とすればよいが、フル表示したいならパネルのサイズと同じにすればいい
            // Draw the image
            osSetDynamicTextureData( "", "vector", DrawList, "width:1024,height:1024", 0 ); //なぜか、パネルのサイズは256, 512, 1024のいずれかしか選べない。途中の数字だと灰色表示になる。
        }
    }
}

これで、もとちゃさんがいったい何を表示しようとしていたかが、タイトルで判明。で、その画像を表示するにあたって、もとちゃさんは、公開されているウェブページをShared Media表示し、倍率と位置ずらしで表示させたい画像のみ表示しようとしていたらしい。うちウィキペディアに載ってる画像であれば、すべて著作権について解決済みと看做して、その画像を貼ってしまってもいいようにも思える。あるいは、知世さんの関数を使うのがいいかもしれない。でないと、ウィキは誰かが編集する都度、画像の位置が変わってしまう。

上のスクリの  state_entry() と changed(integer change) の順番を逆にすると、ちゃんとタイトルが表示されるようになりました。

このスクリは、ある面を Shared Media機能(URLは http://www.w3.org/2000/svg )にして、データの内容を表示します。フロートテキストと違って、固定した位置に表示されるのと、フォントと文字サイズが選べること、また壁の裏側に表示されてしまう欠点もないので、確かにいい方法です。

これまでタッチしてあと、ちゃんと表示させようとホームボタンを押してたのですが、すると データの内容ではなく、http://www.w3.org/2000/svg というウェブサイト画面が表示されてしまうので、それでこれまでわけが分からなかったわけ。

どうもよくわからないのですが、私がパーティクル式画像表示機のスクリをすべて修正した際には、いずれも画像データが入っていたと思ったのですが・・・・(リンク部分の修正で見える)。

もう一度確認してみます。