きょうの Second Life をひとつの場所で ギフトとフリービー を毎時間更新 7言語 無料 でお店を掲載
グリッド障害
  • 予定: Scheduled Billing Maintenance, 11月16日(月) 09:30–10:30 SLT
  • グリッド状況: Unscheduled Group Chat Maintenance (investigating)
  • 開催中: UUtopiaのUnitarian Universalist土曜礼拝
  • 開催中: The Dharma of Community: 仏教社会と在家の生き方
  • 開催中: SLCSハーベストフェスト:ゲーム、音楽、お楽しみ
  • 14:00 SLT: Cascadiaのムーンダンスで NAD GOUGH ライブ 14:00 SLT
  • ニュース: REZZ MALL: Second Lifeのブランドが集まるウェブモール
  • Viewer: Second Life Viewer 26.5 チャットを刷新
  • 予定: Scheduled Billing Maintenance, 11月16日(月) 09:30–10:30 SLT
  • グリッド状況: Unscheduled Group Chat Maintenance (investigating)
  • 開催中: UUtopiaのUnitarian Universalist土曜礼拝
  • 開催中: The Dharma of Community: 仏教社会と在家の生き方
  • 開催中: SLCSハーベストフェスト:ゲーム、音楽、お楽しみ
  • 14:00 SLT: Cascadiaのムーンダンスで NAD GOUGH ライブ 14:00 SLT
  • ニュース: REZZ MALL: Second Lifeのブランドが集まるウェブモール
  • Viewer: Second Life Viewer 26.5 チャットを刷新
LSLスクリプト

LSLのドアスクリプト:タッチで開閉し、自動で閉まる

Second Life用の無料LSLドアスクリプトです。ドアをタッチすると蝶番を軸に開き、もう一度タッチするか数秒後に自動で閉まります。閉じた位置を覚えるので、後からドアを動かしても問題なく動作し、効果音も設定できます。

55行 ·

Second Life用のシンプルで確実なドアスクリプトです。ドアをタッチすると蝶番を軸に開きます。もう一度タッチして閉じるか、数秒後に自動で閉まるようにできます。開くたびに閉じた位置を覚えるので、後からドアを動かしても問題なく動作します。

lsl-door-script.lsl · 55行 このスクリプトをチェック
// Touch Door with auto-close - free LSL script from WhatSL (https://whatsl.com/scripts/lsl-door-script)
// Free to use, change and put in your own creations, also ones you sell.
//
// Put this script in an upright door that is its own object (not linked to the house).
// The door's width must run along its X axis (the red arrow in the Edit window).
// Touch to open, touch again to close. It also closes by itself after AUTO_CLOSE seconds.

float   OPEN_ANGLE  = 90.0;  // degrees to swing; use -90.0 to open the other way
float   AUTO_CLOSE  = 10.0;  // seconds before it closes by itself; 0.0 = stay open
integer HINGE_SIDE  = 1;     // 1 = hinge on the +X edge, -1 = hinge on the -X edge
string  OPEN_SOUND  = "";    // optional: a sound name in the door's Contents, or a sound UUID
string  CLOSE_SOUND = "";

integer  gOpen = FALSE;
vector   gClosedPos;
rotation gClosedRot;

openDoor()
{
    // remember where the closed door is, so the door can be moved and still work
    gClosedPos = llGetPos();
    gClosedRot = llGetRot();
    vector size = llGetScale();
    vector hinge = gClosedPos + <HINGE_SIDE * size.x * 0.5, 0.0, 0.0> * gClosedRot;
    rotation turn = llEuler2Rot(<0.0, 0.0, OPEN_ANGLE * DEG_TO_RAD>);
    llSetLinkPrimitiveParamsFast(LINK_THIS, [
        PRIM_POSITION, hinge + (gClosedPos - hinge) * turn,
        PRIM_ROTATION, gClosedRot * turn
    ]);
    if (OPEN_SOUND != "") llPlaySound(OPEN_SOUND, 1.0);
    gOpen = TRUE;
    if (AUTO_CLOSE > 0.0) llSetTimerEvent(AUTO_CLOSE);
}

closeDoor()
{
    llSetTimerEvent(0.0);
    llSetLinkPrimitiveParamsFast(LINK_THIS, [PRIM_POSITION, gClosedPos, PRIM_ROTATION, gClosedRot]);
    if (CLOSE_SOUND != "") llPlaySound(CLOSE_SOUND, 1.0);
    gOpen = FALSE;
}

default
{
    touch_start(integer total)
    {
        if (gOpen) closeDoor();
        else openDoor();
    }

    timer()
    {
        closeDoor();
    }
}

自由に使用・改変でき、販売する作品にも組み込めます。

設定方法

  1. ドアを作るか、ドアをrezします。ドアは直立し、家とリンクされていない独立したオブジェクトである必要があります。
  2. ドアの横幅がX軸(編集ウィンドウの赤い矢印)に沿っているか確認します。沿っていない場合は、ビルドツールでドアを回転させるか、サイズの値を入れ替えてください。
  3. コンテンツタブを開き、「新規スクリプト」をクリックして、スクリプトを貼り付けて保存します。
  4. ドアをタッチします。逆向きに開く場合はOPEN_ANGLEを-90.0に設定してください。反対側の端を中心に回転する場合はHINGE_SIDEを-1に設定してください。

設定項目

  • OPEN_ANGLE: ドアが開く角度(度数)です。
  • AUTO_CLOSE: 自動で閉まるまでの秒数です。0.0にすると、タッチするまで開いたままになります。
  • HINGE_SIDE: 蝶番になる縦の端を指定します。
  • OPEN_SOUND / CLOSE_SOUND: ドアのコンテンツ内にあるサウンド名、またはサウンドUUIDを指定します。無音にする場合は空欄のままにします。

ヒント

  • 両開きのドアの場合は、両方のドアにスクリプトを入れ、片方をOPEN_ANGLE 90.0、もう片方を-90.0に設定します。
  • リンクされた家の一部であるドアには、別の方法が必要です。一番簡単な方法は、ドアのリンクを解除して独立したオブジェクトとして残すことです。

よくある質問

ドアが真ん中を軸に回転するのはなぜですか?

スクリプトは、ドアのX方向のサイズから割り出した一方の端を軸に回転します。ドアが真ん中を軸に回転する場合は、横幅がX軸に沿っていません。赤い矢印が横幅に沿うようにドアを回転させてください。

ドアに鍵をかけられますか?

このバージョンは、誰でも開けるようになっています。鍵付きのドアにしたい場合は、touch_startの冒頭に確認処理を追加してください。例:if (llDetectedKey(0) != llGetOwner()) return;

このスクリプトは重くなりますか?

いいえ。誰かがドアをタッチしたときと、タイマーで閉じるときにだけ動作します。

自分のスクリプトをチェック: LSL構文チェッカー →

ほかのスクリプトすべてのスクリプト
LSLスクリプト · 69行

LSL sit and pose script for chairs and pose balls

Free LSL sit script for Second Life chairs, benches and pose balls: sit and play your own animation, set the sit position, hide the ball while in use.

LSLスクリプト · 96行

LSL tip jar script with thank-you message and total

Free LSL tip jar script for Second Life clubs, DJs, hosts and stores: quick pay buttons, a thank-you message, the total and last tipper in floating text.

LSLスクリプト · 101行

Freebie・グループギフト用LSLギフトスクリプト

SLストア向けの無料LSLギフトスクリプト。タッチするとすべてのアイテムを1つのフォルダでお渡し。全員向けにも、グループタグを付けた人だけ向けにも設定可能。