LlSetLinkMedia/ja

From Second Life Wiki
Jump to navigation Jump to search

要約

関数: integer llSetLinkMedia( integer link, integer face, list params );

メディアの params を、指定した link プリムの face に遅延時間なしで設定します。
操作の成功失敗を表す STATUS_* フラグを integer で返します。

• integer link リンク 番号 (0: リンクなし, 1: ルートプリム, >1: 子プリム) または LINK_* フラグ
• integer face 番号
• list params 名前と値の組 (順不同)

フラグ 説明
LINK_ROOT 1 リンクセットの中のルートプリムに送ります
フラグ 説明
LINK_THIS -4 スクリプトの入った自プリムに送ります

成功失敗フラグ 説明
LSL_STATUS_OK 0 関数呼び出しに成功しました
LSL_STATUS_MALFORMED_PARAMS 1000 不正な形式のパラメタ呼び出しです
LSL_STATUS_TYPE_MISMATCH 1001 引数の型が一致しません
LSL_STATUS_BOUNDS_ERROR 1002 引数の数が一致しません
LSL_STATUS_NOT_FOUND 1003 オブジェクトまたはアイテムが見つかりませんでした
LSL_STATUS_NOT_SUPPORTED 1004 この機能はサポートされていません
LSL_STATUS_INTERNAL_ERROR 1999 内部エラーが発生しました
LSL_STATUS_WHITELIST_FAILED 2001 ブロックされました
パラメタ 追加パラメタ 説明
PRIM_MEDIA_ALT_IMAGE_ENABLE ] 0 [ integer boolean ] 指定された面のデフォルトの画像状態 (メディアがアクティブになる前の画像) を設定します。デフォルトの画像は、メディアタイプによって Second Life のサーバで規定されています。

注意: このフラグは現在実装されていません。

PRIM_MEDIA_CONTROLS ] 1 [ integer control ] コントロールのスタイルを設定します。 PRIM_MEDIA_CONTROLS_STANDARD または PRIM_MEDIA_CONTROLS_MINI を選べます。
コントロール フラグ 説明
PRIM_MEDIA_CONTROLS_STANDARD 0 標準的な Web ナビゲーションコントロールです。
PRIM_MEDIA_CONTROLS_MINI 1 小さい Web ナビゲーションコントロールです。アドレスバーがありません。
PRIM_MEDIA_CURRENT_URL ] 2 [ string current_url ] 選択した面の現在の URL を設定します。URL を変更すると、ナビゲーションが発生します。
PRIM_MEDIA_HOME_URL ] 3 [ string home_url ] 選択した面のホーム URL を設定します。
PRIM_MEDIA_AUTO_LOOP ] 4 [ integer boolean ] 自動巻き戻し再生をするかしないかを設定します。
PRIM_MEDIA_AUTO_PLAY ] 5 [ integer boolean ] 住民が見れる状態になったら自動再生するかどうかを設定します。
PRIM_MEDIA_AUTO_SCALE ] 6 [ integer boolean ] オートスケールの有効無効を設定します。オートスケールにすると必ずメディアはフルサイズのテクスチャになります。
PRIM_MEDIA_AUTO_ZOOM ] 7 [ integer boolean ] メディアをクリックすると、自動ズームするか自動フォーカスするかを設定します。
PRIM_MEDIA_FIRST_CLICK_INTERACT ] 8 [ integer boolean ] ワンクリック再生の有効無効を設定します。
PRIM_MEDIA_WIDTH_PIXELS ] 9 [ integer width ] メディアの幅をピクセル単位で設定します。
PRIM_MEDIA_HEIGHT_PIXELS ] 10 [ integer height ] メディアの高さをピクセル単位で設定します。
PRIM_MEDIA_WHITELIST_ENABLE ] 11 [ integer boolean ] ナビゲーションを PRIM_MEDIA_WHITELIST で指定された URL に限定するかを設定します。
PRIM_MEDIA_WHITELIST ] 12 [ string CSV ] ホワイトリストを エスケープした カンマ区切りの URL で設定します。 この文字列は 64 個の URL または 1024 文字の短いほうに制限されます。
PRIM_MEDIA_PERMS_INTERACT ] 13 [ integer perms ] オブジェクトを再生できる人の権限フィルタを設定します。
PRIM_MEDIA_PERMS_CONTROL ] 14 [ integer perms ] オブジェクトを操作できる人の権限フィルタを設定します。

警告

  • link は実際に存在する リンク番号 か、LINK_ROOTLINK_THIS のような、単体プリムでも同じように扱えるリンク定数である必要があります。
  • face が存在しない面を指している場合、関数はエラーを出さずに復帰します。
  • メディアがオブジェクトになければ、追加します。
  • パラメータが指定されていなければ変更されません。新しいメディアが追加されると、デフォルトの値が設定されます。
  • 動作するためには幅と高さの両方をともに指定しなければなりません。このことはテクスチャのスペースを狭めるとともに、隙間は逆に広げます。
    • 幅と高さが1024pxより大きい場合は、テクスチャの背景をサイズ変更して合わせる必要があります。(便利なスニペットを参照してください)
      • もし合わせるためにサイズ変更されたなら、スクロールの外側で見えない部分は取り除かれてしまいます。

サンプル

便利なスニペット

//-- expand media textures greater than 1024 pixel in a direction to fit the media face
//-- does exactly what the "align" button does in the edit window
//-- original by Edelman Linden (or Kate Linden), tweaked by Void Singer
uExpandMediaTexture( integer vIntWidth, integer vIntHeight, integer vIntFace ){
    integer vIntTemp;
    vector  vSizScale;

    while (vIntWidth >> ++vIntTemp);
    vSizScale.x = vIntWidth / (float)(1 << vIntTemp);
    vIntTemp = 0;
    while (vIntHeight >> ++vIntTemp);
    vSizScale.y = vIntHeight / (float)(1 << vIntTemp);
    llSetLinkPrimitiveParamsFast( LINK_THIS,
                                  [PRIM_TEXTURE, vIntFace] +
                                  llListReplaceList( llGetLinkPrimitiveParams(LINK_THIS, [PRIM_TEXTURE, vIntFace] ),
                                                    [vSizScale, ((vSizScale - <1.0, 1.0, 0.0>) / 2.0)],
                                                    1,
                                                    2 ) );
}

注意点

リンク番号

オブジェクトを構成するそれぞれのプリムにはアドレスがあります。それがリンク番号です。オブジェクトの特定のプリムにアクセスするには、そのプリムのリンク番号を知らなければなりません。リンク番号はプリムに振られますが、オブジェクトに座っているアバターにも振られます。

  • オブジェクトが単一のプリムで構成されていて、アバターが座っていないとき、(ルート)プリムのリンク番号は 0 です。
  • しかし、オブジェクトが複数のプリムで構成されていたり、オブジェクトに座っているアバターがいたりすると、ルートプリムのリンク番号は 1 となります。

アバターがオブジェクトに座ると、リンクセットの末尾に追加され、いちばん大きなリンク番号が振られることになります。さらに、アバターがオブジェクトに座っている場合、アバターを立たせないと、プリムのリンク・リンク解除ができません。

プリムやアバターの数え方

オブジェクトのプリムや、プリムに座っているアバターの数を調べるのに、2つの関数があります。

  • llGetNumberOfPrims() - プリムと座っているアバターの数を返します。
  • llGetObjectPrimCount(llGetKey()) - オブジェクトのプリムの数だけを返しますが、アタッチメントとなっている場合は 0 を返します。
integer GetPrimCount() { //常にプリムの数だけを返します。
    if(llGetAttached())//装着されているか?
        return llGetNumberOfPrims();//アバターとプリムの数を返しますが、アタッチメントの上には座れないのでこれでいいです。
    return llGetObjectPrimCount(llGetKey());//プリムの数だけを返しますが、アタッチメントの場合ここは通りません。
}

関連項目

関数

•  llGetLinkNumber スクリプトが入っているプリムのリンク番号を取得します。
•  llSetPrimMediaParams
•  llGetLinkMedia
•  llClearLinkMedia

記事

特記事項

経緯

  • Scheduled for RC Magnum channel, week of August 3, 2011.

All Issues

~ Search JIRA for related Issues
   ll*LinkMedia functions do not work with LINK_* flags

Signature

function integer llSetLinkMedia( integer link, integer face, list params );
この翻訳は 原文 と比べて古いですか?間違いがありますか?読みにくいですか?みんなで 修正 していきましょう! (手順はこちら)
この項目はあなたにとって参考にならない項目ですか?もしかしたらLSL Wikiの関連した項目が参考になるかもしれません。