sitpose スクリプト

SITPOSE SCRIPT 現在の最新バージョンは v6.0
JOG内 Shinobar Annex で入手できます。
このスクリプトを使用すると、簡単に座ってポーズ/アニメーションを作成できます。さまざまな機能があります。
完全なドキュメントではありませんが、いくつかの例を説明します。


SITCONFIGなし(1〜2)
1.基本的な使い方
このスクリプトをオブジェクトに入れます。アバターのお尻がルートプリムの上面にちょうど当たるように座位が設定されます。
同じオブジェクトにアニメーションを入れることができます。アバターが座るとアニメーションを再生します。
複数のアニメーションを入れると、それぞれ20秒ずつ順番に再生されます。再生順は名前のアルファベット順です。

座位が不適切な場合は、このスクリプトとアニメーションを含む座席として単一のプリムを作成し、適切な位置に配置します。テクスチャを透明にし、好きな家具にリンクします。この方法で、家具に複数の座席を作成できます。

2.アタッチメント
アバターがこのスクリプトとアニメーションを含むアタッチメントを装着すると、アバターがアニメーションを再生します。Dancing Anklet はその一例です。

WITH SITCONFIG(3〜6)
これらの機能は、「SITCONFIG xxx」という名前のノートカードで設定できます。
ノートカード「example SITCONFIG」があります。名前を「SITCONFIG」または「SITCONFIG as you like」に変更します。 「SITCONFIG」で始まる名前のノートカードは、プリム内で1つだけである必要があります。スクリプトを編集しないで、ノートカード「SITCONFIG xxx」を編集します。

3. SITCONFIGを使用して位置を調整する
vector POSITION はルートプリムの中心を基準としたアバターの腰の位置です。単位はメートル。
LOCAL = TRUEの場合、vector ANGLEは、プリムに対する角度です。単位は度。 LOCAL = FALSEの場合、グローバル座標を取ります。つまり、Xは東に、Yは北に、Zは上に向かっています。
ベクトル ADJUSTは、アバターのサイズの補正です。いくつかの例:
ADJUST = <0.0、0.0、0.2> //キスボール用
ADJUST = <0.0、0.0、-0.4> //アニメーションがス立ちポーズの場合で、アバターの足裏を地表/床に近づけるため。

4.アニメーションの長さ
複数のアニメーションがある場合、それぞれ20秒ずつ順番に再生されます。
再生時間を変更する場合は、SITCONFIGで INTERVAL を設定します。

5.アニメーションをタッチで切り替え
通常は複数のアニメーションが順番に再生されます。
アバターのタッチのみでアニメーションを変更する場合は、
INTERVAL = 0.0、TOUCH = TRUE を設定します。

6. 表示および非表示
HIDE = TRUE //プリムは普段は表示されますが、アバターが座っているときは見えなくなります。クラシックなポーズボールの動作。
ボールが常に見えないようにする場合は、HIDE = FALSEを設定し、テクスチャを透明に設定します。

2020-01-13 Shinobar Martinek @jogrid.net:8002

(初稿:13 Jan 2020, 11:40)

Posted on 7 Nov 2020, 23:40 - カテゴリ: スクリプト
Comments - Edit - Delete


音声ガイド

音声ガイドを Izumoリージョン、Kofunリージョンに設置しました。

使い方
1.「音声ガイド(Japanese)」を購入します。「Voice guide」は英語です。
2. 最新のインベントリの中から「Voice guide ja HUD」を見つけて装着します。 HUDは、ビューアウィンドウの右上隅に表示されます。
3. 音量を適切なレベルに設定します。
4. ガイダンススポットの近くに立ち、ビューアウィンドウのHUDをクリックします。音声ガイダンスが開始されます。

作り方
このシステムを用いて独自の音声ガイドを作る方法について説明します。

HUDは受信器ですので、そのまま使い、発信器であるマットレス Guidance Spot のコンテンツを作ることになります。発信する内容はノートカード GUIDANCE.xxx.en または GUIDANCE.xxx.ja に記述します。 .en は英語、.ja は日本語です。 たとえば GUIDANCE.Izumo.ja はつぎのようなものです。
出雲大社と書いて「いずものおおやしろ」と読みます。
今でも大きな建物ですが、言い伝えによると古代には 96m あったそうです。
SOUND:Izumo1_ja:9
それが本当かどうか分かりませんが、その姿を想像で復元しました。
SOUND:Izumo2_ja:6

SOUND: で始まる行は発声する音声を指定します。
SOUND:Izumo1_ja:9

コロン':'で区切られています。Izumo1_ja は音声ファイル名です。名称は任意です。_ja とか無くても構いません。ノーとカードとともにマットの中に入れておかねばなりません。最後の 9 は音声の長さを秒数で示します。

SOUND行の他はそのまま各行0.2秒おきにチャットされます。内容は音声と同じである必要はありませんし、チャットなしで音声(SOUND行)だけを羅列でも構いません。

このチャットも音声も、HUDを装着した本人だけが見聞きでき、他のアバターには流れません。

音声は読み上げソフトを用いて作ることができます。Web上のサービスには日本語用のOpen JTalk、英語用には Sound of Text などがあります。

音声の長さは最長10秒かと思ってましたが、もっと長くても良いようです。しかしあまり長いとダウンロードに時間が掛かり、無音が続くことがあるので、10秒程度に小分けするのが良いでしょう。
音声のアップは音楽CD形式の wavでなければならないので、音声編集ソフトで変換してください。

仕組み
動作の詳細について説明します。

マットレス Duidance Spot はファントムですが、アバターが接触したことを検知して複数言語で発信します。接触したアバターを10分間記憶し、同じアバターが接触しても繰り替えして反応しません。ただし、タッチされると記憶を破棄して発信します。またHUDからの要求があったときにも発信します。

HUDはマットレスからの通信のうち、自分に設定された言語のものだけを受信し、発声します。同じマットレスからの通信は1度だけ再生し、重複した通信は無視します。ただしHUDがタッチされると周辺マットレスに要求信号をだし、再生済みのマットレスからの通信も再生します。

通信距離は10mです。10m以内に複数の発信器があるときは、近いものから再生するとは限らず、順番が前後することすることがあります。

(初稿:5 Dec 2019, 18:03)

Posted on 5 Dec 2019, 19:16 - カテゴリ: スクリプト
Comments - Edit - Delete


追いかけてくるゾンビ

追いかけてくるゾンビを作成しました。Shinobar Annexにその試作品を置いています。原型は Teddyさんにもらったもの。アニメッシュの技法でオブジェクトながらアニメーションを再生します。これに追いかけるスクリプトを組み込んだものです。

アニメッシュは最近のOpensim 0.9.1系で実装されたもの。古いバージョンのOpensimではエラーとなります。JOGのセンターSIM群では問題なく動くようです。

このゾンビはRezしたときには停止しています。ゾンビを右クリック→「触る」で出てくるメニューで「Start」を選ぶと、近くのアバターを見つけ、追従します。基点からある程度以上離れると追従をあきらめ、基点に戻ります。

(2020-10-16 v2による修正)
ゾンビがSTOP状態のとき、右クリック→「触る」で出てくるダイアログで、ゾンビの行動半径 RANGE や移動速度 SPEEDを変更できます。RANGEの2倍の距離内にアバターが入ると準備に入り、RANDEの範囲に入ると追従を開始します。
(v2による修正ここまで)

スクリプトの編集はゾンビをSTOPさせた状態で行ってください。ゾンビを右クリック→「編集」で、オブジェクトの中身のスクリプトはあります。また STOPの状態でゾンビを編集し、移動させることで基点を変更できます。

スクリプトの編集、基点位置を確定したら、ゾンビを右クリック→「触る」で出てくるメニューで「Start」させてください。

(初稿:26 Oct 2019, 13:13)

Posted on 16 Oct 2020, 19:38 - カテゴリ: スクリプト
Comments - Edit - Delete


スカイ・エッグ

一部に要望のあった SkyEgg v2 をJOG内で作りました。座ると上空まで連れて行ってくれ、そこに一時的なスカイボックスをRezするのが基本的な機能です。
misakiさんが使い方の解説動画を作ってくれました。
https://youtu.be/VklArfbU-Wg


上空でRezするスカイボックスは、任意のものをインベントリに入れておくことができます。ただし1つのオブジェクトにリンクされていなくてはなりません。コピー可でなければならないのはもちろんです。オブジェクトにはスクリプト ListenDie を入れておいてください。見本にオブジェクト Dome 50m が入っていますが、その中にこのスクリプトがあります。アバターが地上に戻るときに、Rezしたスカイボックスを消去するためのものです。

Rezされる位置はカプセル(卵)の下面です。Rezされるスカイボックスのrootプリムをこの位置にしてください。スクリプト upsky v2内の次の変数で位置を調整できます。
vector REZ_POS = <0.0, 0.0, -0.2>; //rezzed object root position from the lower surface of the cupsel


座ったときに取るポーズは、アニメーションを入れ替えることで変更できます。その腰の位置はノートカード SITCONFIGに記載します。
vector POSITION = <-0.5, 0.0, 0.2>; // <x,y,z> meters offset when the agent face to the east
アバターが東を向いたときの腰の位置を <x, y, z> 座標で記入します。

置いてあった卵に座ったときに、卵が手の上に移動するといった効果を付けたいことがあります。このときには LIFT_UP にその高さを設定してください。
float LIFT_UP = 0.0; //meters lift up at sit


上昇のときの効果音は、やはりインベントリ内のサウンドを入れ替えます。

上空の高さは、スクリプト upsky v2 の次の部分を書き換えます。
//list LEVELS = [ "+10", "400", "600" ]; // '+' means relative
list LEVELS = [300]; // menu not shown if the element is only one
複数の高さをリストに掲げたときは、メニューが表示されます。1つだけだとメニューは表示されず、座るだけでその高さまで上昇します。行冒頭に '//'があると、その行は無視されます。

上昇・下降の速度は次の値を変更ください。
float high_speed = 50.0; //meter per second
float low_speed = 4.0;


上昇中は卵が光ります。これを停止したいのならば、GLOW を 0.0 に設定してください。
float GLOW = 1.0; //0.0-1.0, glow effect


不明な点があれば、JOGインワールドで Shinobar Martinek までお問い合わせください。

(初稿:8 Mar 2019, 21:31)

Posted on 14 Jul 2019, 23:29 - カテゴリ: スクリプト
Comments - Edit - Delete


販売スクリプト

JOGフォーラムでも紹介した、商品を販売するスクリプトです。JOG内 Shinobar Annex スクリプトの館で配布しています。



-HyperVendor 3つの特徴

1. 無料での頒布も、料金を設定しての有料販売もできます。ただし有料販売ではマネーサーバーの設定が影響します。

2. メニューによる商品の選択、あるいは一括してのフォルダ渡しか、スクリプトの設定で選べます。

3. HGユーザーへも頒布するかどうか設定できます。ただし有料販売ではマネーサーバーの設定が影響します。

スクリプト冒頭の変数の値を書き換えることで挙動を変えることができます。

<無料/有料での頒布>
PRICE: 頒価を数字で設定します。0 ならば無料。マネーサーバーに接続していないSIMではアバターの所持金が常に0なので、有料設定すると購入できないので注意。

<メニューでの商品の選択、あるいはフォルダ渡し>
MENU=TRUE だと、オブジェクト内の商品のうち、メニューで選択された一つだけを渡します。フォルダは作りません。
MENU=FALSE だと、オブジェクト内のすべての商品をまとめて1つのフォルダにして渡します。フォルダ名は FOLDER_NAME でも設定できますが、デフォルトでは入れ物であるオブジェクト名と同じ。オブジェクトの一般設定でL$0で「中身」を販売に設定したのと同じ機能。
オブジェクト内の渡せる商品が1つだけの場合は MENUの値に関わらず、その一つだけを、フォルダを作らずに渡します。

<HGユーザーへの対応>
HG_OK=TRUE では、JOG外からのHyper-Gridユーザーにも商品を頒布します。ただし PRICE > 0 では SIMのマネーサーバーの設定によってはHGユーザーがJPを所持せず、購入できない場合があります。このようなSIMで PRICE>0 の場合には HG_OK=FALSE を設定してください。
HG_OK=FALSE では PRICE の値に関わらず(無料の場合も含めて)HGユーザーには販売しません。

<オーナーへの通知>
NOTIFY=TRUE では取引の内容をオーナーにIMで通知します。
NOTIFY=FALSE では通知しません。
有料(PRICE>0)の場合、マネーサーバーに記録が残るのでIMによる通知は必要ないでしょう。無料(PRICE=0)の場合、マネーサーバーを通過せず、記録が残らないので、必要ならば NOTIFY=TRUE に設定してください。

<マネーサーバーとの関係>
無料(PRICE=0)の場合、商品の「購入」ではなくタッチによる受け渡しとなります。マネーサーバーへの接続の有無や設定のいかんに関わらず、 HG_OK の値で HGユーザーへの対応が決まります。

有料(PRICE>0)の場合、マネーサーバーに接続していないSIMではアバターの所持金が常に0なので、誰も購入できなくなります。

DejimaリージョンなどマネーサーバーがHGユーザーに対応しているSIMの場合、HGユーザーに販売するかどうかは HG_OK 変数の設定によって決まります。

マネーサーバーに接続しているSIMでも HGユーザーの所持金が 0になる設定の場合(JOGセンターSIM群の多くがこの設定になっています)、たとえ HG_OK=TRUE としていても HGユーザーは購入できません。このようなSIMで有料(PRICE>0)設定するのであれば、HG_OK=FALSE と設定してください。


(初稿:7 Dec 2018, 15:15)

Posted on 26 Dec 2018, 22:31 - カテゴリ: スクリプト
Comments - Edit - Delete


Pages: [1]