2010年7月6日火曜日

[LSL] Link 系ファンクション

ひさしぶりに、Linden Script ネタです。
Link に関連するファンクションが増えてますね。

たとえば、llSetLinkPrimitiveParamsFast などはプリムのリンクを多用している人にとっては待ちに待った機能ですね。メインのスクリプトから子プリムたちの操作に遅延が発生しないからです。遅延以外は llSetLinkPrimitiveParams とまったく同じです。

llSetLinkTextureAnim も最近追加された Link 系のファンクションですね。これも子プリムの面に対して Texture Animation (アニメーションGIFみたいな動く画像)を貼り付けることができるようになりました。

おもしろいのは llLinkParticleSystem です。
パーティクルってなかなかむずかしいのですが、wiki にはとても詳しくその仕様について日本語ページに書かれています。(関係者・翻訳者のみなさん、本当におつかれさま&ありがとうございます)

ポイントは、パーティクルのエミッター(発生源とでもいいましょうか)はプリム1個に対して1つしか作ることができない、ということ。パーティクルを発生させるスクリプトを複数、1つのプリムにいれても、挙動がおかしくなるのはそのせいです。

もちろん、llParticleSystem によってパーティクルを発生させるスクリプトをそれぞれのプリムにいれて、それらを Link し、llMessageLinked で各プリムにメッセージを送って操作するやり方も可能でしたが、llLinkParticleSystem を使った複数のスクリプトをルートのプリムにいれて、llMessageLinked であったり、touch_start, listen などのイベントを各スクリプトが拾うことで、一斉・同時に違うパーティクルを出すことが可能になりました。ここのプリムにスクリプトが分散されていない分、スクリプトの修正やメンテナンスが楽になっていると思います。

パーティクルの色や形を変えたものを同時に出そうとすると、この llLinkParticleSystem はとても使い勝手がよいわけです。

kira

llLinkParticleSystem 利用の注意点としては、もし、パーティクルに画像を指定した場合は、発生源である(子)プリムにその画像が存在していないと、デフォルトのパーティクルが使われるようです。もしかすると Key 指定だと存在しなくても OK かもしれませんが、string による画像名指定だとだめでした。

あと、これら Link 系のスクリプトを使う場合は、ルートプリムはどれか、子プリムはいったいいくつ Link されているのか、といったことを常に意識しなくてはなりません。

llGetNumberOfPrims その時点で Link されているプリムの数を取得します
llGetLinkNumber 自分の Link 番号を取得します
llGetLinkKey Link 番号を指定して Key を取得します
llGetLinkPrimitiveParams Link 番号を指定してプリムの情報を取得します
llSetLinkPrimitiveParamsFast Link 番号を指定して、リンクオブジェクトの設定を変えます

llGetLinkNumber は子プリム内でしか使えませんが、ルートのメインスクリプトと子プリムのスクリプトなどを llMessageLinked で複合させて使うことで、今いくつ Link されていて、Link 番号の 2 は何で、3は、、、とチェックすることができます。
スクリプトによる Link  番号決め打ちでもいいのですが、その際は Link させる順番に細心の注意を払うことになります。特に HUD などを作るときは Link させる順番に気を付けるか、スクリプトにより Link 番号とプリムのマッチングを行わせる、といった方法がありますね。また、プリムに座ったアバターを操作するときなども上述の関数を多用します。

2010年7月2日金曜日

YOUR WORLD, YOUR IMAGINATION, YOUR LIFE

お友達の日記に紹介されていた印象的な vimeo のビデオです。

Breathe 2 "it's a wonderful Second Life" from samlowry on Vimeo.

これ、公式にしてもいいんじゃない?(笑
M Linden のアナウンスでは、よりソーシャルな機能をいれていく、としてるけど、facebook や mixi と同じ方向を目指しても違うような気がしていたんですが、このビデオを見て、はっ、と気づきました。そうそう、YOUR WORLD, YOUR IMAGINATION, YOUR LIFE って、Secondlife はじめた最初のころよく見ていたフレーズだったことを思い出しました。

メインランドの Sandbox ではじめてべニア板のプリムを Rez したときの感覚、他の人の作品、SIM の世界観をみて感動したこと、こんなの作ってみたい!と思ったことなど、、、。

そして何より、このビデオで紹介されている SIM のクリエーターに日本の人が多いこと。

バタ臭くて日本じゃはやらない、と散々揶揄されましたが、日本人のクリエーターはその部分を自らのイマジネーションと作品をつくる技術でカバーしてきましたね。

創業者のフィリップが CEO として Linden に戻りました。原点回帰的ながらも、さらなる進化があれば、まだまだ楽しめると思ったのでした。

2010年6月30日水曜日

Server 1.40.2 と Viewer 2.1 ベータ

サーバーが 1.40 になって Havok7 が!なんて喜んで、物理玉(でも、一時オブジェクト)をブンブン rez して遊んでいたのですが、気が付いたら 1.3x に戻ってました、、なんてことがありました。

リンデンのオフィシャルブログによると、1.40 の改良版である 1.40.2 に6月29日から7月1日でサーバーがアップデートされるとのこと。

オフィシャルブログ Server 1.40.2 Deploy

リリースノートみると、やっぱり、Havok7 のせいなのか、はたまた関係ないのか、リンク、コリジョン関連で不具合があったようですね。乗り物系(VEHICLE) での不具合はすぐに報告あがりやすいですし。

あと Viewer 2.1 がベータになりましたね。
まえに試したときは表示上スクリプトのソースの改行がなくなっていて、スクリプトを扱うことができなかったので、すぐに使うのをあきらめましたが、今度は治っているようですね。
また、以前は Viewer の XML 設定ファイルをいぢらないとだめだった「チャット入力ボックスの幅」なんかも、ドラックして広げたり、狭めたりできるようです。これはうれしいかも。
このあたりの紹介は Torley がビデオでしてるので、ぜひ見てみてください。


サイドバーが嫌い、使いづらい、といわれている Viewer2 ですが、私はどちらかといえば Viewer2 に慣れてしまって、逆に今エメラルドを使うと戸惑うこともしばしば。

慣れると使いやすいと思いますよ~^^

2010年6月13日日曜日

The STREET4 – June 14th!!!!

Studio 4D さんの the street4、6月14日に発売決定~
そして以下の PV が!

かっこいい~

2010年5月24日月曜日

THE STREET4 coming soon!

Studio4D さんのブログに来月発表新作の告知が!
それも人気シリーズ STREET ですよ!

street4

まだ発売日などは公開されていませんが、Studio4 さんのブログをチェックしてくださいね~。

2010年4月29日木曜日

VMD Viewer で Shift-jis...の対処方法

Secondlife のサーバーがメンテ(正確には障害みたい)なので、MMD –> SL でたまにあるトラブルというか対処方法をご紹介。以前の投稿でもちょっとだけ触れた件です。

MMD  (MikuMikuDance) のモーションデータの VMD ファイルを mio の VMD VIEWER で読み込もうとしたとき、以下のようなダイアログが表示されて変換できないことがたまにあります。

vmdviewer load error1

‘Shift_jis’ codec can’t decode byte 0x90 in position... というメッセージなので日本語関係かな、と推測がつくのですが、このメッセージは多くの場合、オリジナルの vmd ファイルが日本語で、それを英数字に名前変更して読み込ませたときに起こるようです。ただし、名前変更だけでもうまくいく場合もあります。

こんなときは、その VMD ファイルを MikuMikuDance に読みこませて、あらためてモーションの保存をするとき英数字の名前にしてあげると回避できます。
もちろん、MikuMikuDance がインストールされているのが前提です。MMD のインストールは VPVP Wiki を参考にしてください。

1. MMD でモデルを読み込む
MikuMikuDance を立ち上げて、画面中央下の [モデル操作] の [読込] をおして、モデルを読み込みます。この場合、どのモデルを選んでもかまいません。モデル読み込み

2. モーション データを読み込む
メニューバーの [ファイル] から [モーションデータ読込] を選択します。
vmdload

モーションデータ対象のモデルと、読み込んでいたモデルが違う場合は以下のダイアログがでますが、[OK] を押して続行します。
vmdload_dialog

モーションが読みこまれると、ちゃんとモーションデータの最初のポーズをします。
vmdload2

ものすごくモーションデータが大きいときは以下のように (応答なし) なんて状態になりますが、あわてず待ちましょう。12分のモーション(!!)は読み込むまでに 5分かかりました、、、。
vmdload8

画面右下の [再生] ボタンを押せば、モーションの確認ができます。スカートや髪などはモデルによって違うので、微妙な動きをしていてもそこは無視します。
vmdload3

3. モーションデータを保存する
上記 2 で [ファイル] - [モーションデータ読込] をしましたが、その下に [モーションデータ保存] があるので、それをクリックして、英数字の名前でモーションデータを保存します。

これで VMD Viewer で読み込むことが可能になります。

2010年4月24日土曜日

Emerald Viewer が 公式 Third-Party Viewers に登録

されましたね。
Modular System にリンクされている開発者 Blog の中で LordGregGreg さんのブログの、もう一ヶ月以上前の3月17日の投稿 ”Encryption in SL is LEGAL”で、Emerald Viewer のチャットの暗号化問題(それにまつわる「噂と事実」)に触れていて、最後のほうに Linden Lab が暗号化を承認した、という書き込みがありました。

The good news is, that LL has decided that encryption is legal, and does not violate the Terms of Service , or the Third Party Viewer Policy!  Once arguments concerning it were brought to light, it was quickly dropped from the discussion, and it was made sure that no restrictions on its use were included i the TPVP. (from LLG’s Blog – Modular System)

なので、いずれ Third Party Viewer のリストには載るだろうなー、と思っていました。

といっても、、、公開されたのは V1 ベースで、今 V2 ベースの開発がんばっているようです。
でも、この公開された 1.23.5.1634 、、もう 68,490 ものダウンロードがされてることから Emerald の人気はすごいですね。

Emerald のいいところはいっぱいあるのですが、アニメーションをアップする前に実際にインワールドの中でモーションのプレビューをできるのは、ほんと助かります。ループイン、ループアウトの設定の微調整ができるので、MMD(MikuMikuDance) のモーションファイルのアップにはかかせません。

UploadAnimPreview
(ねんどのアバターによるチェックではなく、実際のAvatarでプレビューできます)

こういうちょっとしたところなんですが、ほんとかゆいところに手が届いている Viewer ですよね。
Linden Lab の Third Party Viewer のリストに載ったので、これまで不安だった方もちょっと安心できるのではないかな、と思います。

2010年4月22日木曜日

MMD データ変換ツール mio のインストール方法

[2012年3月時点での設定方法をアップしました! ここをクリックして記事に飛んでください]

Kagamin もくわしくブログに書いてあるのですが、MikuMikuDance のモーションデータをセカンドライフで使える BVH ファイルに変換する時の高いハードルっぽい mio 0.1 の設定手順について、私なりに紹介します。

VPVP Wiki の「データ変換ツール」の mio (VMD->BVH) の「必要なソフト(環境)を整える」の手順そのままなのですが、リンク先が英語、そのページに複数のバージョンがあったりするので、なかなかうまく設定できない方もいらっしゃるようですね。

私もうまく動いていた mio がある日突然動かなくなり(Windows Update などに疑いかけちゃいますが)mio 関連のソフト、ユーティリティを全部削除して、再インストールしたら動くようになった、、、などという状況に遭遇しました。mio はひとつの壁みたいです。

手順は VPVP Wiki の mio の部分を参考にしてもらいながら、私の動いている環境を構築したバージョンなどを紹介します。(この環境は 2010年4月21日時点の情報です。またインストール先は Windows の 32 bit バージョンを前提としています。ダウンロードするファイルのリンクを入れていますが、変更される可能性あります。)

1) GLUT for Win32 3.7.6 のダウンロードとインストール
http://www.xmission.com/~nate/glut.html から glut-3.7.6-bin.zip(117KB) のリンクをクリックして、zip 形式のファイルをダウンロードします。
ダウンロードした zip ファイルを展開すると、5つのファイルが解凍されますが、使うのは glut32.dll のみです。glut32.dll をシステムドライブ(通常は C ドライブ)の \Windows\System32 フォルダにコピーします。

2) DevIL 1.7.8 のダウンロードとインストール
このページはちょっとわかりづらいですね。画面右の列に [downloads DevIL 1.7.8] というのがあって、そこの Windows x86 Unicode をクリックします。DevIL-EndUser-x86-Unicode-1.7.8.zip という zip 形式ファイルのダウンロードがしばらく経つとはじまります。
ダウンロードした zip ファイルを展開すると、3つのファイルが解凍されます。これらすべて( DevIL.dll, ILU.dll, ILUT.dll ) を \Windows\System32 にコピーします。

3) Python 2.6 のダウンロードとインストール
インストーラーをダウンロードして、インストールを実行するだけでだいじょうぶでした。Path の編集について VPVP Wiki では記載されていますが、インストーラーが Path の編集をやってくれているようです。http://www.python.org/download/ のページには複数の Python のバージョンがありますが、Python 2.6.5 Windows Installer (Windows binary – does not include source) をクリックしてインストーラーをダウンロードします。
ダウンロードした python-2.6.5 (ファイルの拡張子は .msi) をダブルクリックするとインストールが始まります。とくに変更しなければ、C:\Python26 フォルダーが作成されて、必要なファイルがそこに配置されます。

4) PyOpenGL 3.0 のダウンロードとインストール
http://pyopengl.sourceforge.net/ のページの真ん中あたりにある [Downloading and Installation] の ・PyOpenGL をクリックします。PyOpenGL 3.0.1 のダウンロードページに飛ぶので、そこで PyOpenGL-3.0.1.win32.exe  をクリックしてダウンロードを開始します。ダウンロードが完了したら、右クリックでコンテキストメニューの「管理者として実行」で、インストールをします。Python2.6 がインストールされていれば、きちんとインストール先を合わせてくれます。
[追記] このとき、MSVCR71.dll がない、というエラーダイアログがでることがあります。その場合はVectorなどにいって、再頒布されている MSVCR71.dll をダウンロードして、system32 フォルダにコピーして、再度インストールを試してください。

5) PyQt 4.4.4 for Python 2.6 のダウンロードとインストール
さあ、これが最後です。がんばりましょう。(笑
私が試した時点での最新バージョンは Python 2.6 向けの 4.7.3 になります。
http://www.riverbankcomputing.co.uk/software/pyqt/download のページの [Binary Packages] でリストされている PyQt-Py2.6-gpl-4.7.3-2.exe をクリックしてダウンロードします。ダウンロードしたファイルで右クリック・コンテキストメニューの「管理者として実行」を選び、インストールします。

これで完了です。
mio は VPVP Wiki のリンクからダウンロードすると広告のウィンドウとかが開くのでちょっとびっくりしますが、mio-0.1.zip というタイトルの下にある [Click here to start download...] をクリックしてダウンロードを開始します。ダウンロードした zip ファイルを展開して、適切なドライブに展開された mio-0.1 フォルダごとコピーします。
mio-0.1 のフォルダを開くと以下のようなディレクトリとファイルが見えます。
mio02 
script フォルダに移動します。すると vmdviewer という python スクリプト ファイルがあるのでそれをダブルクリックします。
mio03
そうすると mio の VMD Viewer が立ち上がります。
mio04
このウィンドウが立ち上がれば、無事インストール完了、ということになります。おつかれさまでした。

[追記] vmdviewer をダブルクリックしてもまったく反応しない場合、vmdviewer が内部的に呼び出している cmio でうまく処理されていない場合があります。(あくまで原因のひとつとして。これが絶対ではありません)その場合は Microsoft Visual C++ 2008 SP1 再頒布可能パッケージ(x86) をダウンロードしてインストールしてみてください。(32bit版 Windowsの場合)

なお、VMD Viewer は日本語の扱いに難ありです。日本語の VMD ファイルは扱えませんので、ファイルの名前を変更するか、ときによっては MMD で日本語の VMD ファイルを読み込み、モーションデータの保存でアルファベットの名前を新たにつけなおしてあげるとうまくいく場合もありました。
MMD-Secondlife を楽しんでください。ご参考になれば。

追記)わたしの失敗例をひとつ、、、。Vista や Windows7 では UAC という仕組みがあって Program Files フォルダーへのアクセスが制限されます。最初、mio のフォルダーをこの Program Files において、「VMD Viewer が動かない!!!」と言っていました、、、。Program Files の中には置かないようにしてください。

追記) mio が動いたのでニコの MikuMikuDance チェックしてたら、ものすごい大作のモーション公開されていました。。。

2010年4月18日日曜日

ひさしぶりの Yaz Rockett Live

Yaz さんの blog にあったように昨日ひさしぶりの Yaz Rockett Liveにお邪魔しました。

Hanairo hitoshizuku

Yaz Rockett

Hanairo hitoshizuku

ライブ、よかった~。

PCの非力さゆえのカクカクはともかく、私のPCと Viewer2 は相性がよいらしく、落ちたら人数上限で再入場できないかも、、、の不安を抱えながら SS を mixoom.com 経由で flickr に上記のように飛ばしましたが、落ちることありませんでした。CPU が張り付きっぱなし、、、ということもなかったです。このあたり、ほんと個人の PC 環境によって違うみたいですね~。

Live の SS は他にもあがっています。ご興味のある方は Yaz Mania グループのフォト プールをご覧くださいませ。

http://www.flickr.com/groups/610655@N20/pool/

Yaz さんの曲は以下で聴くことが出来ます。
http://www.acidplanet.com/artist.asp?songs=621683&T=9495

2010年4月7日水曜日

Havok 7 がやってくるらしいです

元ネタは http://nwn.blogs.com/nwn/2010/04/havok-7-in-sl.html です。
セカンドライフの物理演算である Havok ですが、来月あたりに Havok7 が実装されるようで、すでにベータ グリッドではテストが行われているようです。
そのあたらしい物理演算の Havok7 のデモが YouTube に公開されています。

動画みてわかるように、影までついて物理属性の立方体がバランバランと「スムーズ」に落ちてくる、、、この処理って重そう。ブログではこのデモの環境を紹介していて、
グラフィック カード:GeForce GTX 260
CPU : i5 660 @ 3.33GHz
メモリー : 4GB
OS : Ubuntu Linux
Viewer : Official Viewer 2 for Linux
とのこと。ま、、、そうなりますよね。
そもそもいっぱい計算しなきゃいけないので、それなりの処理速度・能力のクライアントが必要になるわけですが、これら実行環境を簡単に手に入れることができるってすごいですね。