Second Life in Japan
Advertisement

この項目は Hiko Ninoさんのブログ、うのまらまセカンドで書かれていた内容をまとめたものです。

ZHAOというアニメーション制御のツールがあります。これはWikipedia:ja:GPLにもとづいて公開されています。大雑把に説明すると「これは自由に使ってかまわないけど、これをもとに改変したりしたらその部分も同等の条件で開示してね」というライセンスです。

Hikoさんは このZHAOを使って、初心者の方向けに「設定済。買って wearすればすぐ使えます」というツールを販売しています。

Perm 001 ※以下、それぞれのパーミッション状態をこのような色であらわします。


Perm 002

上記のライセンスに従うと最終的に欲しい形はこのような状態。スクリプト自体と外側は自由に変更可能。アニメーションは NO COPYです。購入者はこれをベースにしてアニメを差換えたりスクリプトを直したりできる状態です。


Perm 003

この状態を作る手順はこのような感じ。外側をRezした状態で事前にパーミッションを付けた品物を投げ込む、もしくは投げ込んだ後にパーミッションを変更すればOKです。 ここで注意。


Perm 004

すでに他の状態で設定してあったものを修正する場合は注意が必要です。全部が入った状態かつ「中身が自分に権限のあるもの」の場合、外側を選んで権限を変更すると「中身もその権限に再設定されます」。


Perm 005

ただし、この例で言えばアニメが自分作のものではない - 権限のないものであった場合は、それらは再設定されません。権限がないのだから当然ですね。

自分で作ったもので入れ物の権限をいじるときには中身への影響も注意しましょう。


Perm 002

なお「欲しい形」にした場合にも少し注意が必要です。この品物をインベントリに入れると ZHAO HUD (NO COPY)と表示されます。これは中身の権限設定が表に出てきている状態です。中身の権限なのか外側のものなのか?一覧表示では権限の状態が少しわかりにくくなっていますので注意が必要です。

参考 JIRA Page:MISC-337 - インベントリで中身の権限を表示する場合は ((no modify))のように二重括弧にしよう


2013/6/30 追記

1、権限はすべてのアイテムで独立している為、オブジェクトおよびオブジェクトの中身のアイテムは、全て個別に設定する必要がある。(上記の解説にはミスあり。)

2、地面にREZした状態以外(HUDを含めた装着、プレイヤーのインベントリ間の移動)などで設定されたパーミッションは、地面にREZされる瞬間までの期間のみ有効な権限として取り扱われる。

3、地面にREZされた後のオブジェクトは、その中身のアイテムのパーミッションも含めた総合結果の権限に自動的に修正され、もう一度権限を書き換えられるまで継続する。

オブジェクト本体が(フルパーミッション)で、 中身のアイテムが(全て不可)の場合。

誰かが地面にREZするまではフルパーミッションとして扱われ受け渡しも自由だが、一度地面にREZされたものからは全ての権限を失う。


4、オブジェクトの中身のアイテムは次の所有者に対してのあまり有効な制限を持たず、直接インベントリ等に移動が可能な為、現在はセキュリティー対策が必須となっている。   


注意

現在のパーミッションという概念には、インベントリ内でのみ有効な権限3種類と、REZ実行された後の権限3種類とが混在している為、インベントリやオブジェクトの中でパーミッションを変更した場合には、それぞれで6種類の権限を考慮しなければならない。


どの段階でのコピーや、編集の可否などにも全く関係なく、次の所有者は全ての中身を取り出すことができる上、他のオブジェクト等に転用することが可能。

オブジェクトAが「llRezObject」等でオブジェクトBをREZする場合には、オブジェクトBだけがコピー可能である必要があるが、オブジェクトBの中にコピー不可のアイテムが含まれた状態でオブジェクトAの中に格納しておけば、オブジェクトBが地面にREZされた時点でオブジェクトBのコピー属性は消える。

ところが、次の所有者などが直接自分のインベントリなどにオブジェクトBを移動した場合には、オブジェクトBの権限は次に地面にREZされるか、誰かに書き換えられるまでは変更されることはない。

大事なスクリプトには他のオブジェクトに転用されたら自動的に削除されるソースコードの記載するか、上記の内容も全て含めた状態で他者に譲渡するという意識が必要。 本来、表記上の「コピー可能」という条件がインベントリ内でのみ有効な権限なのか、REZした後かも有効なものなのかを切り分ける必要がある。

これは、ランドインパクトの数値を全てのプレイヤーがプリム数と表記しているのと同じくらい混乱を招く状況だといえる。

尚、「llRemoteLoadScriptPin」などでスクリプトを上書きする場合には、上書きするスクリプト及び、それを格納しているオブジェクトの両方が編集可能である必要がある事と、「llRemoteLoadScriptPin」の実行が地面にREZされたものに対してのみ有効という特性も考慮しなければならず、スクリプトのソース自体もすべて公開される状態となるので注意が必要。

Advertisement