2008年05月25日
踊るガイコツ
ペットってSLで作る場合、リンクがひとつしかできないので、
頭、目、耳、口、胴体、右足、左足、右手、左手、尻尾
とかに普通分かれているパーツを一つにすることが多いのですが、リンクではこれをまとめてひとつにして動かすんです。
ところが、そうすると全部いっぺんに動くので、足とかを動かす時にはその足だけを動かすのです。
そうすると
頭、目、耳、口
だけをまとめて一つの方向に動かすことができないんです (T_T)
BUT !!そんな動きをするペットを見つけたんです。これまで外人さんがよく持ってるのを見かけてたのですが、どこのかわからなくて探してました。

こんな動きや

な動きをするんです。ビックリしました。
これを実現するには、この技術を使っています。

ここでデモが見られます。
バラバラのガイコツが組み立てられて、踊るんです!!ちょっと脅威でした・・・
でも、これまで不思議に思っていたことが解決できてよかったです。
ちなみに、このネコ、クリックすると大変なことになります。通りがかりの人にもクリックすると大変なことになるので、気を付けてくださいね・・・

これで、ペットビレッジにあるブリ(野良猫)にももう少しカワイイアクションがつけられそうです!!
頭、目、耳、口、胴体、右足、左足、右手、左手、尻尾
とかに普通分かれているパーツを一つにすることが多いのですが、リンクではこれをまとめてひとつにして動かすんです。
ところが、そうすると全部いっぺんに動くので、足とかを動かす時にはその足だけを動かすのです。
そうすると
頭、目、耳、口
だけをまとめて一つの方向に動かすことができないんです (T_T)
BUT !!そんな動きをするペットを見つけたんです。これまで外人さんがよく持ってるのを見かけてたのですが、どこのかわからなくて探してました。

こんな動きや

な動きをするんです。ビックリしました。
これを実現するには、この技術を使っています。

ここでデモが見られます。
バラバラのガイコツが組み立てられて、踊るんです!!ちょっと脅威でした・・・
でも、これまで不思議に思っていたことが解決できてよかったです。
ちなみに、このネコ、クリックすると大変なことになります。通りがかりの人にもクリックすると大変なことになるので、気を付けてくださいね・・・

これで、ペットビレッジにあるブリ(野良猫)にももう少しカワイイアクションがつけられそうです!!
2008年05月20日
ポーズしながら表情も
乗れるネコ(デカブリ)の新しい機能として、RezしてSitの代わりにPawを選ぶと、なでるようにしてみました。

でも、これだと無表情でなんだか変です。でも、Poserでアニメーションを作ってアップロードするときに「表情」を「笑み」にしているにも関わらず、それが再生されないんです。
しかし、「みんなで作ろう。教えて!セカンドライフ!」で質問したらWhitfield-In-Worldさんから表情の付け方を教わりました!!
で、llStartAnimation("express_smile") を連続再生することで、表情をつけることに成功しました。

微妙ですが、動きに表情がつけられて本当にうれしいです!

でも、これだと無表情でなんだか変です。でも、Poserでアニメーションを作ってアップロードするときに「表情」を「笑み」にしているにも関わらず、それが再生されないんです。
しかし、「みんなで作ろう。教えて!セカンドライフ!」で質問したらWhitfield-In-Worldさんから表情の付け方を教わりました!!
で、llStartAnimation("express_smile") を連続再生することで、表情をつけることに成功しました。

微妙ですが、動きに表情がつけられて本当にうれしいです!
2008年05月18日
降り注ぐカツオブシ
デカブリ(乗れるネコ)の大好物のカツオブシ(削り節)をやろうと思い、作ってみました。

タッチすると上からカツオブシが降り注ぎます。。。臨時オブジェクトなので、1分後には消えます。。。
結果としては、管理人のUsagiからダメ出しをもらったので、デビューできませんが・・・ (T_T)
せっかく作ったので、作り方だけでもご紹介します。
まず、上から落ちるようにしなければならないので、物理オブジェクトでないといけません。しかも、カツオブシなので、風になびく、すなわちフレキシブルでないといけません。
ところが、一つのプリムに対して、物理とフレキシの両方の属性は持たせられません。
そこで、今回は、ルートプリムに適当な球形を変形したものにして物理属性を与えます。
そして、立方体を平らにして、表と裏にカツオブシのテクスチャーを貼ってフレキシブルに設定します。風などのパラメータを適当に設定します。
その後、ふたつをリンクします。そうすると、上から落ちるヒラヒラするカツオブシが出来上がります。

このままだと同じ方向にカツオブシが並んで不自然なので、テクスチャを90度毎に違う4つのオブジェクトを作成します。
それを以下のスクリプトで発生させます。

と、ここまでがんばったのに、、、風になびく具合なんか相当いい感じなのになー・・・

しかも、ウチのRLネコ(ブリ)の大好物のカツオブシをデジカメで写真に撮ってアップロードしたのに・・・

タッチすると上からカツオブシが降り注ぎます。。。臨時オブジェクトなので、1分後には消えます。。。
結果としては、管理人のUsagiからダメ出しをもらったので、デビューできませんが・・・ (T_T)
せっかく作ったので、作り方だけでもご紹介します。
まず、上から落ちるようにしなければならないので、物理オブジェクトでないといけません。しかも、カツオブシなので、風になびく、すなわちフレキシブルでないといけません。
ところが、一つのプリムに対して、物理とフレキシの両方の属性は持たせられません。
そこで、今回は、ルートプリムに適当な球形を変形したものにして物理属性を与えます。
そして、立方体を平らにして、表と裏にカツオブシのテクスチャーを貼ってフレキシブルに設定します。風などのパラメータを適当に設定します。
その後、ふたつをリンクします。そうすると、上から落ちるヒラヒラするカツオブシが出来上がります。

このままだと同じ方向にカツオブシが並んで不自然なので、テクスチャを90度毎に違う4つのオブジェクトを作成します。
それを以下のスクリプトで発生させます。

と、ここまでがんばったのに、、、風になびく具合なんか相当いい感じなのになー・・・

しかも、ウチのRLネコ(ブリ)の大好物のカツオブシをデジカメで写真に撮ってアップロードしたのに・・・
2008年05月10日
土地賃貸クレジット決済開始しました
これまで、土地のレンタル(賃貸)は銀行振り込みかリンデンドル支払のみでしたが、このたび、クレジットカード決済も可能になりました。

こちらのページからクレジット決済が可能になりました。クレジットカード決済の場合には便利な自動継続課金が適用されます。
さらに、クレジットカード決済の場合には、2週間の無料期間がお申込み日より追加される特別キャンペーンを実施しています。
この機会に便利なクレジットカード決済をご利用ください。
もちろん、セキュリティ万全なSSL対応です。

こちらのページからクレジット決済が可能になりました。クレジットカード決済の場合には便利な自動継続課金が適用されます。
さらに、クレジットカード決済の場合には、2週間の無料期間がお申込み日より追加される特別キャンペーンを実施しています。
この機会に便利なクレジットカード決済をご利用ください。
もちろん、セキュリティ万全なSSL対応です。
2008年05月08日
ネコのまばたき
デカブリのまばたきを作ってみました。
まず、半円から形と大きさとテクスチャーを適当に作成します。
これがまぶたとなります。

で、目をつぶった状態にして、以下のスクリプトを実行します。
touch_start(integer total_number)
{
llOwnerSay((string)llGetLocalRot());
}
こうすると目をつぶった状態のリンクされたプリムの角度が表示されます。
この表示された角度を以下のスクリプトに組み込みます。
rotation _DEFAULT_ROT ;
default
{
state_entry()
{
llSetTimerEvent(6.0+llFrand(6.0));
DEFAULT_ROT = llGetLocalRot();
}
timer()
{
llMessageLinked(LINK_ALL_OTHERS, 0, "BLINK", NULL_KEY);
llSetLocalRot(<0.00000, 0.29334, 0.00000, 0.95601>);
llSleep(0.2);
llSetLocalRot(_DEFAULT_ROT);
}
}
ここで、llSleep(0.2)が入っているのは、目をつぶった状態を自然に見せるためです。
また、llMessageLinked()を使っているのは、もう片方のまぶたと連動させるためです。
このスクリプトを組み込んで、まぶたを開けた状態にします。そうすると開けた状態の角度が_DEFAULT_ROTに入力されます。
で、同様にもう片方のまぶたも同様に作成してリンクして、以下のスクリプトを組み込みます。
rotation _DEFAULT_ROT ;
default
{
state_entry()
{
_DEFAULT_ROT = llGetLocalRot();
}
link_message(integer link_num, integer status, string command, key id)
{
if ( command == "BLINK" ) {
llSetLocalRot(<-0.09117, 0.38302, -0.12739, 0.91036>);
llSleep(0.2);
llSetLocalRot(_DEFAULT_ROT);
}
}
}
これで、片方のまぶたから送られたメッセージを受けとって、両方同時にまばたきできるようになりました。

※このまばたきするデカブリはまだ配布していません。他のポーズなどを組み込んで新しいバージョンとして配布します。
詳しくは、管理人のUsagi Pinkladyまでお問い合わせください。
まず、半円から形と大きさとテクスチャーを適当に作成します。
これがまぶたとなります。

で、目をつぶった状態にして、以下のスクリプトを実行します。
touch_start(integer total_number)
{
llOwnerSay((string)llGetLocalRot());
}
こうすると目をつぶった状態のリンクされたプリムの角度が表示されます。
この表示された角度を以下のスクリプトに組み込みます。
rotation _DEFAULT_ROT ;
default
{
state_entry()
{
llSetTimerEvent(6.0+llFrand(6.0));
DEFAULT_ROT = llGetLocalRot();
}
timer()
{
llMessageLinked(LINK_ALL_OTHERS, 0, "BLINK", NULL_KEY);
llSetLocalRot(<0.00000, 0.29334, 0.00000, 0.95601>);
llSleep(0.2);
llSetLocalRot(_DEFAULT_ROT);
}
}
ここで、llSleep(0.2)が入っているのは、目をつぶった状態を自然に見せるためです。
また、llMessageLinked()を使っているのは、もう片方のまぶたと連動させるためです。
このスクリプトを組み込んで、まぶたを開けた状態にします。そうすると開けた状態の角度が_DEFAULT_ROTに入力されます。
で、同様にもう片方のまぶたも同様に作成してリンクして、以下のスクリプトを組み込みます。
rotation _DEFAULT_ROT ;
default
{
state_entry()
{
_DEFAULT_ROT = llGetLocalRot();
}
link_message(integer link_num, integer status, string command, key id)
{
if ( command == "BLINK" ) {
llSetLocalRot(<-0.09117, 0.38302, -0.12739, 0.91036>);
llSleep(0.2);
llSetLocalRot(_DEFAULT_ROT);
}
}
}
これで、片方のまぶたから送られたメッセージを受けとって、両方同時にまばたきできるようになりました。

※このまばたきするデカブリはまだ配布していません。他のポーズなどを組み込んで新しいバージョンとして配布します。
詳しくは、管理人のUsagi Pinkladyまでお問い合わせください。
2008年05月04日
ネコじゃらしで遊べます
ペットビレッジには「ブリ」という野良猫がいますが、このブリとネコじゃらしで遊ぶポーズとスクリプトを作りました。
まずは、ネコじゃらしでしょー
RLで家にあるものを真似てちょこちょこっと作ってみました。

で、ネコじゃらしのポーズをPoserで作成します。編集中はこんな感じ。。。

ブリを出して。。。

ポーズが有効になるようにします。スクリプトはこんな感じ。。。

というと簡単そうですが、足を動かすスクリプトの値の微調整やらSitする場所の調整がとにかく時間がかかります。こればっかりはどうしようもないですねー、、、ひたすら地道に数値を打ち込んではテストを繰り返します。
ポーズも手首のスナップと効かせるところと動かす速度の調整に時間がかかります。
また、ソースコードの中でもコメントアウトしてありますが、ネコじゃらしをRezしてアタッチ(llAttachToAvatar)したかったのですが、アタッチはオーナーにしか適用できないので、あきらめました。
で、動かすと。。。

最後に自分で癒されてしまいましたーwww
で、調子に乗ってついでにこんなポーズも作りました~

が、管理人のUsagi Pinkladyには不評でした。。。(T_T)
「野良猫といきなり寝ないでしょー!」って。。。
でも、私は相当お気に入りです!!
この野良猫「ブリ」と遊べるのはこちらでーす!!
あ、ネコじゃらしは自分で持ってくるかUsagi Pinkladyにもらって自分で装着してください!!
まずは、ネコじゃらしでしょー
RLで家にあるものを真似てちょこちょこっと作ってみました。

で、ネコじゃらしのポーズをPoserで作成します。編集中はこんな感じ。。。

ブリを出して。。。

ポーズが有効になるようにします。スクリプトはこんな感じ。。。

というと簡単そうですが、足を動かすスクリプトの値の微調整やらSitする場所の調整がとにかく時間がかかります。こればっかりはどうしようもないですねー、、、ひたすら地道に数値を打ち込んではテストを繰り返します。
ポーズも手首のスナップと効かせるところと動かす速度の調整に時間がかかります。
また、ソースコードの中でもコメントアウトしてありますが、ネコじゃらしをRezしてアタッチ(llAttachToAvatar)したかったのですが、アタッチはオーナーにしか適用できないので、あきらめました。
で、動かすと。。。

最後に自分で癒されてしまいましたーwww
で、調子に乗ってついでにこんなポーズも作りました~

が、管理人のUsagi Pinkladyには不評でした。。。(T_T)
「野良猫といきなり寝ないでしょー!」って。。。
でも、私は相当お気に入りです!!
この野良猫「ブリ」と遊べるのはこちらでーす!!
あ、ネコじゃらしは自分で持ってくるかUsagi Pinkladyにもらって自分で装着してください!!
2008年04月27日
誰でも乗れるネコ その2
最近、カフェのオープンやら新しい入居者さんの対応などで、物作りが出来ていませんでしたが、やっと作りかけていたネコの乗り物がひとまずできました。

はじめはSitして乗るタイプを考えていたのですが、RezできないSIMがあるだろうことと、移動のスクリプトを書かなくてよいことから、装着タイプで作ってみました。
timer()
{
integer ai = llGetAgentInfo(_OWNER) ;
list anms = llGetAnimationList(_OWNER);
integer i;
if ( ai & AGENT_WALKING ) {
for ( i=0 ; i < llGetListLength(anms) ; i++) {
llStopAnimation(llList2Key(anms, i));
}
llStartAnimation(_ANIMATION_STEP);
if ( _STEP_START == FALSE ) {
llMessageLinked(LINK_ALL_CHILDREN, _STEP, "STEP_START", "");
_STEP_START = TRUE ;
}
} else {
for ( i=0 ; i < llGetListLength(anms) ; i++) {
llStopAnimation(llList2Key(anms, i));
}
llStartAnimation(_ANIMATION_STOP);
if ( _STEP_START == TRUE ) {
llMessageLinked(LINK_ALL_CHILDREN, _STEP, "STEP_STOP", "");
_STEP_START = FALSE ;
}
}
}
これまでのRezするタイプの自走型ペットに比べると、標準のアニメーションが作動しないようにすることくらいで、あっけなく出来てしまいました。足や耳は llSetLocalRot で動かしてます。
自走型のときには、
llSetPrimitiveParams([PRIM_POSITION, posSitStep2,
PRIM_ROTATION, rotSitStep2 / llGetRootRotation()]);
みたいにしていい感じに足とかを動かしていたのですが、これは装着型では使えませんでした (T_T)
アバターが回転すると足とかねじれちゃって、悲惨な状態になりました。
まだできたばっかりなので、一般には配布していませんが、管理人の「Usagi Pinklady」に連絡して頂ければ、お渡しいたします。Pet VillageのSIM群以外で装着した場合には、頭に「Pet Village Japan」と表示されます。

はじめはSitして乗るタイプを考えていたのですが、RezできないSIMがあるだろうことと、移動のスクリプトを書かなくてよいことから、装着タイプで作ってみました。
timer()
{
integer ai = llGetAgentInfo(_OWNER) ;
list anms = llGetAnimationList(_OWNER);
integer i;
if ( ai & AGENT_WALKING ) {
for ( i=0 ; i < llGetListLength(anms) ; i++) {
llStopAnimation(llList2Key(anms, i));
}
llStartAnimation(_ANIMATION_STEP);
if ( _STEP_START == FALSE ) {
llMessageLinked(LINK_ALL_CHILDREN, _STEP, "STEP_START", "");
_STEP_START = TRUE ;
}
} else {
for ( i=0 ; i < llGetListLength(anms) ; i++) {
llStopAnimation(llList2Key(anms, i));
}
llStartAnimation(_ANIMATION_STOP);
if ( _STEP_START == TRUE ) {
llMessageLinked(LINK_ALL_CHILDREN, _STEP, "STEP_STOP", "");
_STEP_START = FALSE ;
}
}
}
これまでのRezするタイプの自走型ペットに比べると、標準のアニメーションが作動しないようにすることくらいで、あっけなく出来てしまいました。足や耳は llSetLocalRot で動かしてます。
自走型のときには、
llSetPrimitiveParams([PRIM_POSITION, posSitStep2,
PRIM_ROTATION, rotSitStep2 / llGetRootRotation()]);
みたいにしていい感じに足とかを動かしていたのですが、これは装着型では使えませんでした (T_T)
アバターが回転すると足とかねじれちゃって、悲惨な状態になりました。
まだできたばっかりなので、一般には配布していませんが、管理人の「Usagi Pinklady」に連絡して頂ければ、お渡しいたします。Pet VillageのSIM群以外で装着した場合には、頭に「Pet Village Japan」と表示されます。
2008年04月23日
驚きのアクセス解析イグアナ
EXPさんのアクセス解析イグアナを申し込んで使ってみました。
まず、昨日(22日)のアクセス解析結果です。9SIMのうちの中央SIMの分析結果です。

こんな感じで、1日の訪問の様子が表示されます。
こうやってみると深夜早朝にも結構訪問があるってわかります。
そして、これが、コアユーザの分析結果

なんと管理人よりも多く訪問してくれているアバターが多くいることがわかりした。
カフェなどによく来て頂いている方々もいらっしゃいますが、まだ話したことのない方も多くいらっしゃいました。何度も訪問して頂いているので、今度お声掛けしてみようと思いました。
その他の機能には、イベント分析もあります。ある特定の日時のイベント効果を測定するものです。

これがあれば、イベントを行ったときに、何人来てもらえたかが一目でわかりますね。これを何回か比較してみると、今後のイベントの企画に役立ちそうです。
また、センサーをSIM全体に配置してあるのですが、その位置もWebから簡単に変更できます。

さらに、22日の集計を見てみると、

滞在時間が以外に長いことに驚きました。こちらは9SIMが連結されているので、他のSIMにも移動されていることを考えると、もっと長いのかもしれませんね。こちらは中央SIMはカフェやモールとなっておりますが、周辺の8SIMはすべて居住区ですので、そちらにセンサーを取り付ける予定は全くありません。
これからも解析を続けていきながら、よりよいSIM作りの参考にしていきたいと考えています。
まず、昨日(22日)のアクセス解析結果です。9SIMのうちの中央SIMの分析結果です。

こんな感じで、1日の訪問の様子が表示されます。
こうやってみると深夜早朝にも結構訪問があるってわかります。
そして、これが、コアユーザの分析結果

なんと管理人よりも多く訪問してくれているアバターが多くいることがわかりした。
カフェなどによく来て頂いている方々もいらっしゃいますが、まだ話したことのない方も多くいらっしゃいました。何度も訪問して頂いているので、今度お声掛けしてみようと思いました。
その他の機能には、イベント分析もあります。ある特定の日時のイベント効果を測定するものです。

これがあれば、イベントを行ったときに、何人来てもらえたかが一目でわかりますね。これを何回か比較してみると、今後のイベントの企画に役立ちそうです。
また、センサーをSIM全体に配置してあるのですが、その位置もWebから簡単に変更できます。

さらに、22日の集計を見てみると、

滞在時間が以外に長いことに驚きました。こちらは9SIMが連結されているので、他のSIMにも移動されていることを考えると、もっと長いのかもしれませんね。こちらは中央SIMはカフェやモールとなっておりますが、周辺の8SIMはすべて居住区ですので、そちらにセンサーを取り付ける予定は全くありません。
これからも解析を続けていきながら、よりよいSIM作りの参考にしていきたいと考えています。
2008年04月13日
タイムカードとチップジャー
カフェをオープンしました!!
で、それに合わせてスタッフのタイムカードとチップジャーを開発しました。
タイムカードは、21:00-01:00 の営業時間に時給を計算して、それ以外でもチェックイン、チェックアウトの計算ができるようにしました。かわいいタイムカードマシンはカウンターの上に置いてあり、一見すると招き猫のようです。この猫はペットビレッジの住民でもあるShioneさんから協力をいただいたものです。スタッフのグループにしか反応しません。

チップジャーは、スタッフの肩にいつも浮かんでいます。
このチップジャーは、チップを受け取るだけではなく、飲み物やフードのメニューも提供するすぐれものです。チップを受け取ると回転するんです。この可愛いアクセサリーもShioneさんから協力をいただいて、スクリプトを組み込みました。

なぜ装着型にしなかったかというと、支払のイベントを受け取りたかったからです。装着だと支払のイベントをつかめないのです。具体的には、money(key id, integer amount)ですね。これを受けとって処理を行いたかったので、装着型ではなくRezするタイプにしました。
カフェは本日オープンしたばかりですが、営業時間以外でもスタッフがいることがありますので、是非いらしてください。
で、それに合わせてスタッフのタイムカードとチップジャーを開発しました。
タイムカードは、21:00-01:00 の営業時間に時給を計算して、それ以外でもチェックイン、チェックアウトの計算ができるようにしました。かわいいタイムカードマシンはカウンターの上に置いてあり、一見すると招き猫のようです。この猫はペットビレッジの住民でもあるShioneさんから協力をいただいたものです。スタッフのグループにしか反応しません。

チップジャーは、スタッフの肩にいつも浮かんでいます。
このチップジャーは、チップを受け取るだけではなく、飲み物やフードのメニューも提供するすぐれものです。チップを受け取ると回転するんです。この可愛いアクセサリーもShioneさんから協力をいただいて、スクリプトを組み込みました。

なぜ装着型にしなかったかというと、支払のイベントを受け取りたかったからです。装着だと支払のイベントをつかめないのです。具体的には、money(key id, integer amount)ですね。これを受けとって処理を行いたかったので、装着型ではなくRezするタイプにしました。
カフェは本日オープンしたばかりですが、営業時間以外でもスタッフがいることがありますので、是非いらしてください。
2008年03月27日
誰でも乗れるネコ その1
ペットビレッジは9SIMあるので、馬とかでゆっくり散歩できるといいですよね。
でも、馬って、買ってくればあるので、今回は「乗れるネコ」を用意して、訪問されたみなさんが自由に乗れるようにしたいと思いました。
で、、、まずはまたがった姿勢が重要なので、Poserで作ってみました。

アニメーションの時間は1.5秒で、馬に乗ってるように上下させてみましたー
# でも、結果的には馬に乗ってるようには微妙になりませんでした。だって、ネコも一緒に上下するんですもん。。。
でも、馬って、買ってくればあるので、今回は「乗れるネコ」を用意して、訪問されたみなさんが自由に乗れるようにしたいと思いました。
で、、、まずはまたがった姿勢が重要なので、Poserで作ってみました。

アニメーションの時間は1.5秒で、馬に乗ってるように上下させてみましたー
# でも、結果的には馬に乗ってるようには微妙になりませんでした。だって、ネコも一緒に上下するんですもん。。。
2008年03月24日
誰でも連れて歩けるネコ
だれでも連れて歩けるネコを作ったので、ペットビレッジのSIMに置いておきます。
SIMが9SIM あるので、どこに行くか分からないので、9匹用意しておきましたーww
クリックすると"Follow"か"Don't Follow"と表示されるので、"Follow"で連れて行って下さい。
物作りはペットビレッジのサンドボックスでやってますので、いつでもお声がけくださいね (^_^)/~~

Takeとかはできないので、ペットビレッジ内だけで連れて歩けるだけです~(ウチのRLのネコがモデルなので非売品です~)
SIMが9SIM あるので、どこに行くか分からないので、9匹用意しておきましたーww
クリックすると"Follow"か"Don't Follow"と表示されるので、"Follow"で連れて行って下さい。
物作りはペットビレッジのサンドボックスでやってますので、いつでもお声がけくださいね (^_^)/~~

Takeとかはできないので、ペットビレッジ内だけで連れて歩けるだけです~(ウチのRLのネコがモデルなので非売品です~)
2008年02月17日
llSetPrimtiiveParamsでハマってました
久し振りですが、今は、ネコのスクリプトでハマってました。
llSetPrimtiiveParams で四足歩行の足の角度を変えようとしていたのですが、
t=llGetPrimitiveParams([PRIM_ROTATION]);
rot = llList2Rot(t,0);
llSetPrimitiveParams([PRIM_ROTATION, rot]);
でへんてこりんな角度に足が向くんです。
でも、http://jira.secondlife.com/browse/SVC-93 にもあるように、
llSetPrimitiveParams([PRIM_ROTATION, (rot / llGetRootRotation()) / llGetRootRotation()]);
にしないといけなかったんですね。
# 知らなかっただけですが、、、
これでなんとか前に少し進みました。
llSetPrimtiiveParams で四足歩行の足の角度を変えようとしていたのですが、
t=llGetPrimitiveParams([PRIM_ROTATION]);
rot = llList2Rot(t,0);
llSetPrimitiveParams([PRIM_ROTATION, rot]);
でへんてこりんな角度に足が向くんです。
でも、http://jira.secondlife.com/browse/SVC-93 にもあるように、
llSetPrimitiveParams([PRIM_ROTATION, (rot / llGetRootRotation()) / llGetRootRotation()]);
にしないといけなかったんですね。
# 知らなかっただけですが、、、
これでなんとか前に少し進みました。
2008年01月15日
新しい魚追加
タテジマキンチャクダイ(小さい頃はウズマキと呼ばれる)を追加してみました。
中央の水槽で泳がしていますので、よかったら見に来てください。

http://slurl.com/secondlife/Shinagawa/149/160/22
中央の水槽で泳がしていますので、よかったら見に来てください。

http://slurl.com/secondlife/Shinagawa/149/160/22
2008年01月13日
ペットお散歩&研究
Zoobyさんのところのダルマシアンとネコ、そしてU&R Medium Poodle HUDで散歩してみました。
スナップの茶色い猫が現在作成中のネコです。まだテクスチャもスカルプトも試作段階ですが、まずはスクリプトを作らねば、と格闘しています。
先に作ったクマノミのやりかたで llMoveToTarget()でオーナーを追尾していたのですが、この方法だと途中で転んだりして動作が安定しませんでした。スピードを上げるとなかなか止まれずにどっかに飛んで行ったり・・・
Zoobyさんのペットを連れていると、とても追尾性が高いのでどうやってるのかといろいろこちらで試したところ、できました!
物理属性+llMoveToTarget()ではなくて、非物理属性+llSetPos()だとうまくいきました。このようにプログラムしなおしたら同じような動きをするようになりました。
しかも、Zoobyさんのところは障害物に弱いのですが、この方法だと障害物も通り抜けることができて、なかなかいい感じです。というか、途中の障害物にPhantomみたいに通り抜けます。
動きが安定してきたので、今度はスカルプトのモデリングとテクスチャに取り組みます。

スナップの茶色い猫が現在作成中のネコです。まだテクスチャもスカルプトも試作段階ですが、まずはスクリプトを作らねば、と格闘しています。
先に作ったクマノミのやりかたで llMoveToTarget()でオーナーを追尾していたのですが、この方法だと途中で転んだりして動作が安定しませんでした。スピードを上げるとなかなか止まれずにどっかに飛んで行ったり・・・
Zoobyさんのペットを連れていると、とても追尾性が高いのでどうやってるのかといろいろこちらで試したところ、できました!
物理属性+llMoveToTarget()ではなくて、非物理属性+llSetPos()だとうまくいきました。このようにプログラムしなおしたら同じような動きをするようになりました。
しかも、Zoobyさんのところは障害物に弱いのですが、この方法だと障害物も通り抜けることができて、なかなかいい感じです。というか、途中の障害物にPhantomみたいに通り抜けます。
動きが安定してきたので、今度はスカルプトのモデリングとテクスチャに取り組みます。

2007年12月16日
クマノミ水槽の販売開始
クマノミ水槽をこれまでL$0で出していましたが、安定性の向上と子どもクマノミを追加、その他もろもろの機能追加などしたので、L$120で販売することにしました。

子供のクマノミは時々、イソギンチャクに見立てたにょろにょろに隠れます。
水槽の移動も、トラブルが出ないようにスクリプトを工夫しました。
http://slurl.com/secondlife/Shinagawa/149/160/22

子供のクマノミは時々、イソギンチャクに見立てたにょろにょろに隠れます。
水槽の移動も、トラブルが出ないようにスクリプトを工夫しました。
http://slurl.com/secondlife/Shinagawa/149/160/22
2007年11月26日
クマノミ水槽が移動できるようになりました
しばらくリアル多忙でインできませんでしたが、久しぶりに作業しました。
ずっと気になっていた以下の修正を行いました。
・rezしてからの移動、向き替えができるようになった
・時々クマノミが行方不明になったり、変なところを泳ぐのを修正
移動や向き替えは、
・一度にすべてを選択すること
・少し動かしてから一度放して、それから再度選択して移動、を繰り返す
などコツが要りますが、何度でもrezできますので、試してみてください。
ご意見などお待ちしています。

# ちなみに、後ろの大きな水槽に「クマノミベビー」を放してみました!!
http://slurl.com/secondlife/Shinagawa/149/160/22
ずっと気になっていた以下の修正を行いました。
・rezしてからの移動、向き替えができるようになった
・時々クマノミが行方不明になったり、変なところを泳ぐのを修正
移動や向き替えは、
・一度にすべてを選択すること
・少し動かしてから一度放して、それから再度選択して移動、を繰り返す
などコツが要りますが、何度でもrezできますので、試してみてください。
ご意見などお待ちしています。

# ちなみに、後ろの大きな水槽に「クマノミベビー」を放してみました!!
http://slurl.com/secondlife/Shinagawa/149/160/22
2007年11月06日
Shinagawaにクマノミ水槽設置
Shinagawaにクマノミ水槽を置かせてもらいました。
こちらでは、5匹!!しかも、微妙にヒレの大きさとか動きとか変えてみました。
自由遊泳型の水槽は珍しいので、ぜひご覧になってください。

http://slurl.com/secondlife/Shinagawa/149/160/22
こちらでは、5匹!!しかも、微妙にヒレの大きさとか動きとか変えてみました。
自由遊泳型の水槽は珍しいので、ぜひご覧になってください。

http://slurl.com/secondlife/Shinagawa/149/160/22
2007年10月13日
クマノミ水槽の安定性向上
数時間すると2匹のカクレクマノミがくっついて動かなくなる現象を対策しました。
それでもまだ不安定ではありますが、水槽のサイズも5m*5m*5mから5m*2m*5mにスリムにしました。

引き続きL$0で販売しておりますので、テスト方々ご利用ください。
ちなみに対策したのは、PHYSICSがいつの間にかFALSEになるのを
list tmpList = llGetPrimitiveParams([PRIM_PHYSICS]);
if ( llList2Integer(tmpList,0) == FALSE) {
llSetPrimitiveParams([PRIM_PHYSICS, TRUE]);
}
llMoveToTarget( target, 1.5 );
判定して強制的に物理属性をTRUEにしています。それでも、なかなかTRUEにならないこともあります。なぜFALSEに勝手になるかは不明です。また、llFrand()もMath Errorの原因のようだったので使わないようにしました。
それでもまだ不安定ではありますが、水槽のサイズも5m*5m*5mから5m*2m*5mにスリムにしました。

引き続きL$0で販売しておりますので、テスト方々ご利用ください。
ちなみに対策したのは、PHYSICSがいつの間にかFALSEになるのを
list tmpList = llGetPrimitiveParams([PRIM_PHYSICS]);
if ( llList2Integer(tmpList,0) == FALSE) {
llSetPrimitiveParams([PRIM_PHYSICS, TRUE]);
}
llMoveToTarget( target, 1.5 );
判定して強制的に物理属性をTRUEにしています。それでも、なかなかTRUEにならないこともあります。なぜFALSEに勝手になるかは不明です。また、llFrand()もMath Errorの原因のようだったので使わないようにしました。
2007年10月08日
クマノミ水槽をL$0で販売開始
カクレクマノミの水槽をL$0で販売開始しました。
2匹のカクレクマノミが水槽の中を自由に泳ぎ回ります。円運動ならエラーも起きないと思いますが、それではつまらないので、あえて水槽の中を泳ぎまわるようにスクリプトを組んでみました。しかし、時々Math Errorなどで動かなくなってしまうことがあります。原因は不明ですが、再度rezすれば大丈夫です。
まだまだ動作が安定しないので、出来るだけ多くの皆様に使っていただいて、よりよいものに仕上げていきたいと思います。

http://slurl.com/secondlife/mooncat%20izumo/9/24/26
よろしくお願いします。
2匹のカクレクマノミが水槽の中を自由に泳ぎ回ります。円運動ならエラーも起きないと思いますが、それではつまらないので、あえて水槽の中を泳ぎまわるようにスクリプトを組んでみました。しかし、時々Math Errorなどで動かなくなってしまうことがあります。原因は不明ですが、再度rezすれば大丈夫です。
まだまだ動作が安定しないので、出来るだけ多くの皆様に使っていただいて、よりよいものに仕上げていきたいと思います。

http://slurl.com/secondlife/mooncat%20izumo/9/24/26
よろしくお願いします。
2007年10月06日
クマノミ水槽
クマノミの水槽を設置してみました。
スクリプトがまだカスタマイズできていないので、イマイチ魚らしくありませんが、なんとなく泳いでいるようにも見えます。

クマノミはBlenderで書き出したものにテクスチャを貼り付けてあります。細かなひれはボックスを透明にしてテクスチャを貼りました。尾びれは単純なスクリプトで動かしています。

ここまでくるのに何日もかかってしまいましたが、あきらめずに取り組めばなんとかなるものですね。
スクリプトは、かっぱさんのものを流用させて頂きました。本当に助かりました。
http://kappa.slmame.com/e19525.html
スクリプトがまだカスタマイズできていないので、イマイチ魚らしくありませんが、なんとなく泳いでいるようにも見えます。

クマノミはBlenderで書き出したものにテクスチャを貼り付けてあります。細かなひれはボックスを透明にしてテクスチャを貼りました。尾びれは単純なスクリプトで動かしています。

ここまでくるのに何日もかかってしまいましたが、あきらめずに取り組めばなんとかなるものですね。
スクリプトは、かっぱさんのものを流用させて頂きました。本当に助かりました。
http://kappa.slmame.com/e19525.html



