2007年11月30日金曜日

フリマに出品

image

Yaz Mania Music Ball (FREE) をフリーマーケットに出品しました。
0L$ で、機能的には Yaz Mania SP と同等ですが、聴ける曲は6つまでに絞りました~。

フリマの場所は「音の森公園」です。
http://slurl.com/secondlife/JPL%20SAITAMA/191/62/24

だれでもが楽しめるわけじゃないので、、、基本は Yaz Mania グループに入ってもらえれば、そこでフル機能バージョンをお渡しすることになると思います。なので、、、まぁ、お試し版・・・ということでw

注意事項は

1) 土地や区画を持っていたり、借りていたりしないと使えません。土地に設置する形になります。

ただし、土地や区画の Media URL は書き換えませんので、すでに土地/Land に設定している URL がなくなる、、、なんてことはありませんので安心してください。
土地に設置してしまえば、そこにいる Avatar はだれでも Yaz さんの曲を聴くことができます。みんな一斉に同じ曲を聴いているのではなく、別々に好きな曲を聴いています。なので、Yaz Mania をタッチしていない人には音楽は聞こえていません。

なので、土地・区画を持っていなくても、オーナーが了承して設置してもらえれば音楽を楽しむことができます。

管理者の方にオブジェクトを渡して、賃貸している区画に設置してもらう場合は、だれでも移動できるオプションを入れてもらうようにお願いしてくださいね。そうしないとオブジェクトを動かすことができなくなるので。

2) QuickTime がインストールされている必要があります。

QuickTime をインストールしていても、環境設定の[音声とビデオ] で [動画がある場合再生する] にチェックが入っていないと音楽を聴くことができません。タイプミスじゃなくて、Yaz さんの曲を Yaz Mania 玉で聴く場合は 「動画」 のほうです。

その他、あれ、おかしいなーと思った場合は、以下のブログを参考にしてくださいね。
http://snumaw.blogspot.com/2007/10/sl.html

2007年11月29日木曜日

できたかな、、、同期ダンスユニット・・・

LIN ちゃんの想定外の使い方でエラーが出ていた MLDU (Massive Link Dance Unit) ですが、、、これでうまくいくかも・・・
image
和服なのは、、、行きがかり上で(笑

Heap/Stack を確保するためのメモリー確保の方法をいろいろと。
まだまだできるかもしれないけど、結局は、、、、

あまり詳しくない人向けの機能が「あだ」となり・・・(笑

それを削っちゃいました。だから・・・ MLDUnit RAIZEEN SPECIAL なのかも。

なにをやったかというと、、、ダンスセットのノートカードがなかった場合に、インベントリ(コンテンツフォルダ)にあるダンスをすべて規定の秒数できりかえる仕様だったのですが、まずはそれを削除w

だって、、、それらのアニメーションの名前をすべて LIST にいれていたからです。

あと、その LIST がある前提で、Notecard の記載されているアニメーションの存在チェックをしていました。
llListFindList を使っていたわけです。もし、なければ、「このアニメーションないよー」というエラーをだして、MLDU は動かない、、、という風にしてました。llStartAnimation でアニメがないと実行時にスクリプトエラーになっちゃうので、それを回避するためにこの手の存在チェックは必要だと思います。

で、全アニメーションの LIST がなくなったんで、存在チェックに llGetInventoryType を使って、INVENTORY_ANIMATION つまり 20 じゃなければダメよ・・・という判断にしました。
これはKioさんから教えてもらった。。。ありがとー。llGetInventoryKey を最初使ったのですが、No MOD, No COPY, No TRANS のパーミッションだとこの関数は存在しないときと同じ return をするので困っていたんです。

あとは、、、もう一度、たくさんの人で同期ダンスを踊るテストをすればw
もうちょっと負荷テストとか、バグのチェックをしたら・・・本格的に売り出そうかなぁ、、、と思っています。
でも、、、このスクリプトは、LIN ちゃんとか ASUKA にくる多くの人のおかげです~。ほんと、勉強になりましたw
一般のものは、、、「あだ」となったアニメーション全部オプションを復活させて、アニメーションの上限をつけるかも、、、です。メモリーってほんと、すぐに使っちゃいますよね、、、。

2007年11月27日火曜日

エラーの記録

image

Script run-time error と Stack-Heap Collision のそろいぶみw
あまりのすごさに思わず SS とりました・・・・

どうやったら出たか・・・

だって、LINちゃん、40 のダンススロット設定のダンス玉に、、、200 ものアニメーションいれた・・・

で・・・今までうごいていた MLDU がこけた・・・

ハードな使い方だわ・・・・

苦闘はまだまだ続きそうw

ちなみに、、、この状態になったときの特徴的なものとして、、、Edit/編集モードにしたときに以下のような見え方になります。。。
image
なぜに・・・こんな状況になるのかは・・・(笑

2007年11月25日日曜日

Bounds Check Error...

image

ASUKA の CLUB RAIZEEN (雷神) のダンス玉 Massive Link Dance Unit ですが、、、昨日から調子悪くなっちゃってます。
きっかけは、、、ダンスアニメーションを LIN ちゃんが増やしたところからなのですが、その前から Owner でさえコンテンツフォルダーからスクリプトを開いてリセットすることができず、、、なんて症状でした。

で、昨日はじめてみたエラーで "Bounds Check Error" というのが出ました。

lslwiki によると Message Queue のオーバーフローや、1度に 50 以上のプリムに対して link messages を送ったとき(う、、、1プリムだけど、、、link message を受け取る script は、、、50 は楽に越えているし、、でも、、、これまで動いていたけど・・・)とか、あまりに多くのアイテムをリストにいれて llGiveInventoryList() をやるようなとき(やってはいませんが、、)に発生するみたい。あとは、null を Say したときも出るみたいですね。(これ、、、脆弱だわ・・・)

やはり、全部のアニメーションを読み込んで、List にいれて、、、の限界なのかもしれませんね。

いまひとつ、、、原因がはっきりしていないのが気持ち悪いですが、ASUKA (というか LIN ちゃん(笑)) の使われ方・使い方をクリアすれば、、、どんなところでも問題なさそうなので、ここはひとつ、設計変更することにしてみました。

ちなみに・・・ LINZOO さんは、この MLDUnit に、、、37 ものダンスアニメいれてたり(笑 たぶん、まだ増やすつもりと見ています。。。(37 程度のダンスアニメの名前だと、、、LIST としてはそんな対したサイズじゃないんですけどね、、、やっぱり、スロット管理 LIST なのかな?)

アニメーションのセットを複数作って、それをひとつの Synchro Manager スクリプトが読み込んでいましたが、これを、複数の Synchro Manager に分けるやり方です。ひとつの Synchro Manager で 3 つまでのセット操作・切り替え実績のある script はできたのですが、10 (LIN ちゃんの要望、、、)セットにした場合は、コンパイルは通ったのですが、run time 時に " Stack Heap Collision" というエラーがでちゃいました、、、これも lslwiki によれば、、、、ran out of memory.... 要はメモリー不足、、、ということです。本家のほうには Windows の場合は 22 までの else-if はいいけど、23 からは拒否されるみたいなことも書かれています、、、、(そこまで使っていないような、、、)で、、、、Mac OS X だと、、、692 の else-if が accept される、、、はい?(笑

lslwiki ってすごいですね、、、本家 (Linden) のほうの LSL の wiki も見ますが、こちらの昔からあるほうの lslwiki にはほんと、助けられています。

でも、、いずれにせよ、1スクリプトあたり16KB で バイトコードと、スタックと、ヒープを扱わなきゃいけないのですから、なるべく、なるべくシンプルにしていくしかないのでしょうね。

で・・・作りました。
でも、まだエラー処理のルーチンを追加中です。
これ・・・いつになったらできるのかな(笑
とりあえず、、、土曜日納品は間に合わなかったけど、今日、、、渡す予定でw
基本は帰納法・・・っていうか、n & n+1 が真ならば、無限に、、、みたいなスクリプトにしてます。(メモリーの問題は無視ね、、、)
この、n & n+1 の考え方は面白いかもw(自画自賛w)
大人数かつたくさんのアニメでのテストが楽しみですw

2007年11月24日土曜日

Torley が紹介する小技 その 11

Tip of the Week #11 は今話題の WindLight ですね。
image 
Referred from "tip of the week #11", you can go to the same liked page with clicking.

内容は
・ How to get started editing skies & water (easy!)
(空と水の編集の仕方)
・ Day Cycle Editor basics
(Dayサイクルの編集基礎)
・ A look at the simplified Graphics Preferences
(シンプルになったグラフィック設定を紹介)
・ How to use GLOW
(GLOW の使い方)

です。ビデオを見れば一目瞭然の内容なので、、、あまり説明はいらないと思いますが、確かに Torley がいうようにグラフィックの設定はタブがひとつになって簡単になったかもしれませんね。

Torley もビデオの中でいっていますが、水面の反射とかはグラフィックカードの性能で見え方が違います。
なので、、、ビデオ通りにならない!という方はグラフィックカードの性能が足りないのかもしれません。DirectX9 Shaders サポート (もしくはそれ以上) が必須のようです。詳しくは、システム要件(System Recommendations) のページ http://secondlife.com/corporate/sysreqs.php を見てくださいとのこと。この要件を満たしていなくても、フルファンクションの WindLight は堪能できませんが、、、ある程度の機能は楽しめるようです。

ビデオの内容で気になった点を・・・

まず、"First Look" viewer というのは、将来のメインビューワーのバージョン(いつになるかはわからない)で取り入れたい機能を事前に紹介するものです、、、いってます。"Release Candidate" は次のメインバージョンがほとんどできた時点で公開してバグレポートをもらうため・・・ですね。

How to change the sky & water
(空と水(面) の変更方法)
・ 通常のビューワーと同じように時間(朝、正午、夕方、夜)の変更可能
・ [Enviroment Editor] を使って、スライダによる時刻単位の変更、雲の多さ、水の色、水の透明度の変更が可能
水面の反射なのですが、もし十分なグラフィックカードの性能があれば、こんな風景も楽しめます。
image
光だけじゃなくて、、、そこにあるオブジェクトのまで反射するんですよね・・・
・ [Advanced Sky] [Advanced Water] でさらに細かい設定が可能
・ でも、、これ細かすぎるので [Preset](プリセット)を使うと簡単に変更可能
たとば、、、上の白虎を望む水面ですが、プリセット変更で以下みたいに。
プリセット Glassy
image
プリセット Snake
image
・ プリセットは新しく作ることができて、今はローカルに保存されているけど、将来的にはインベントリ(持ち物)で他の人と共有できるようにしたい、といってます

Day cycle editor basics
(Dayサイクルエディタの基礎)
これは、前の WindLight First Look でもあった機能で、一日のサイクルの中で複数の空の設定を変えることができるんです。
Torley は In-World の一日のサイクルを10秒にしたサンプルを紹介していましたが、これ、何をやっているかというと、12am から翌日の 12am の間で 3時間おきにデフォルトの Sky Setting が設定されています。これで空を「徐々に」次の設定に変更しているんです。
なので、3時間おきの時刻の途中で [Add key] ボタンであらたにプリセットした設定をいれて
あげると、その時間に近づくと徐々にその設定値にかわっていく、、、というものです。

Simple Graphics Preferences
(シンプルなグラフィック設定)
Advanced とかのタブがなくなって、ひとつの [Graphics]  タブに設定がまとめられました。
[Quality and Performance] のスライダを移動するだけで最適化が可能です。

How to use Glow
(Glow の使いかた)
Glow (発光) オプションがテクスチャに追加されました。で、発光といっても、Features(特徴) で指定する Light (光) とちがって、他のオブジェクトを照らすものではありませんね。なので、、、発光体のようなオブジェクトをたくさん使いたいような場合に威力を発揮しそうです。Features の Lightening は一画面に6つしか有効にならないですからね。
Torley は発光するアバターの目をサンプルとして紹介してますね。
以下の SS でわかるように、発光しているように見えますが、手のひらには光が反射していません。
この手の処理に「動かないパーティクル」を使っていたライトなんかを見たことがありますね~。
image
以上です~

2007年11月22日木曜日

YazManiaSP(SuperPersonal) 1.1

(画像は本文とは全く関係なかったり・・・(笑) WindLight の陰影のチェックで・・・)


はぁ・・・ くたくたになりましたぁ、、、
なんとか作って Yaz Mania グループに配布しました、Yaz Mania Super Personal 1.1 ...

基本機能は前回ご紹介したものとあまり変わっていません。。。でも、この手のコード(スクリプト)って、結局は「エラー/例外処理」をどんどん入れていくことになるんですよね・・・

やりたいことはすぐにスクリプトで書けるけど、、、エラー処理って重要。たぶん、スクリプトの7割くらいはエラー処理、、、、(笑

ダンス玉と同じで、、、連続再生のスロット(というか、、、パーソナルなので main script only なんですが)の解放処理で、、、手こずりましたw


timer() イベントはスクリプト1つにつき、1つなわけですよね~。あとから touch して、timer の値を変えると、それ以前にタッチした人は、、、、処理されなくなっちゃうわけで。

解放のタイミングって、、、ケースバイケースなことがよくわかりました。

Yaz Mania Music Ball の場合は、曲の切り替えのときに、連続再生ボタンをタッチした Avatar の Key からその SIM に存在するかどうかをチェックして、存在しなければ解放、存在していれば次の曲・・・だったんですが、これ、問題ありありでした。
曲が3分以上なので・・・最低3分は解放されないわけです。

あと、連続再生ボタンを押して有効になっている人だけに「前へ」「次へ」「一時停止」っていうボタンがでるダイアログをつくったんですが、、、これが「一時停止」を押したまま TP したり、落ちたりしたら、、、解放されないことに気がつき・・・(笑
一時停止を押した時に、timer で30秒セットして SIM にいるかどうかのチェックをかけたりしたんですが、お風呂に入っているときに神様降臨・・・
他の人が「連続再生ボタン」を押したときに、それ以前に連続再生ボタンを押している Avatar が SIM にいるかどうかのチェックをかけて、いなかったら横取りしちゃえばいいんだ、、、、とw

なので、llSensorRepeat によるチェックは Yaz Mania では使っていませんw
逆にいうと、、、Massive Link Dance Unit なんかは10秒から20秒の感覚で llStartAnimation をかけるわけで、それだと llSensorRepeat よりも、SIM にいるかどうかのチェックを llStartAnimation の前にやってあげれば、、、解決! (のはず)
あと、、、、あまりに if の nest が多くなってきて、、、stack heap collision が出てき始めました。

そうなると、、、まだ、完全に理解していないんですが、たぶん解決方法は2つかな、、、と。
ひとつは、Massive Link Dance Unit でやったようなスクリプトを複数にわけて LinkMessage で処理する方法。
もうひとつは state をわけて、gloval 変数による if を極力少なくして、state 変更で処理をする方法。
このあたりは、Linden の wiki より、ユーザーさんがつくってきた wiki に詳しく書かれています。(英語)
http://lslwiki.net/lslwiki/wakka.php?wakka=state
まだまだ奥が深いですね。。。
やっぱり、、、NMR8 見られないのは、、、ほんと悔しい!(笑

2007年11月21日水曜日

Yaz Mania Movie 特集

明日にせまった NMR8 ですが、、、

この前のエントリで書きましたが、出席できません~。(涙

ということで、、、(どういうことだw) ASUKA GRAND CROSS 関係とか自分の趣味(w)で、これまで Yaz さんの曲を使わせてもらったムービーを集めてみたりして、一人で盛り上がろうというこで(笑

Flash Movie を貼り付けたので、、、ネットが遅い方には申し訳ないです、、、、

グレーになっている、、、みたいな症状の場合は、F5 ボタンを押してリフレッシュしてみてください。

初めて Yaz さんの曲を使わせてもらって、NMR の原型なのかな、、、白虎パーティの様子をムービーにしたもので、曲は Glide Up


Glide Up はSUZAKU GP2 のムービーにも使わせてもらいました。

Yaz さんの曲をフィーチャーする、、、という目標で初めて作ったのがこれで、曲は Spin Out

SL 大運動会の競技のひとつだった Wing of IKAROS の模様を、Yaz さんの曲で。曲は Massive

前回の NMR7 の模様を 3つの曲でムービーにしたのがこれ。曲は PLAN-225, Massive, Glide Up。 イカロスのムービーでは Massive のサビの部分をカット(!!) したので、このムービーではその部分をどうしても入れたかったんです。

雷神に設置したビデオ玉の紹介ムービーです。曲は ADRENALINE

Video: MovieBall
ちょっと動画とるのがきびしかったのですが、50人越えの同期ダンス(リンクダンス、シンクロダンス)の模様をムービーにしたのがこちら。曲は Provisional End

Video: Massive Link Dancers Unit
Glide Up と Spin Out 以外はリミックスというか、、、、5分とかのムービー作るの大変なので(笑)3分くらいにしてます。なので、オリジナルの曲はぜひ ACIDPlanet の Yaz さんのページで聞いてください~。
こうやってご自身の作品の 2次利用 OK にしている Yaz Rockett さんに感謝です!!!
あと、上のビデオをプレイリストという形でまとめたのはこちらになります~。小さい画面が並んでいるリストの右上の X ボタンを押すと、リストが隠れます。ご紹介まで~。

2007年11月20日火曜日

Torley が紹介する小技 その10

WindLight First Look を使って「あれ?」と思ったのですが、Viewer の右上に Search の入力ボックスができましたよね、、、そのお話が、Tip of the week #10 で取り上げられていました。

もちろん元ネタは Torley の Official Linden Blog です。


今回の Tip of the Week のネタは以下です。
  • How to get started with the Search bar
    (検索バーの使い方)
  • How to find people, places, objects on parcels, etc.
    (人、場所、オブジェクトの探し方)
  • Using special Google operators (not all of these apply) to do advanced searches (at long last!)
    (高度な検索のための特別な Google オペレータの使用)
  • A couple neat interface improvements: resizable Search window and easier teleporting
    (いくつかのインターフェースの改善:検索ウィンドウのサイズ変更と容易なテレポート)


ビデオを見る限り、この拡張は、[All] のタブに対して行われているようです。なので、他の [Classifieds / クラシファイド広告] などのタブの検索は従来のままなので、注意してくださいね。
感覚としては、、、[All] タブの検索は、Google みたいな(もしかして、、Google サーチを使っているのかも・・・) Web 検索画面みたいになった、、、と感じました。
ビデオの順番にいくと以下になります。
1) How to use the new Search (新しい検索の使い方)
・ Release Candidate (RC) や WindLight First Look Viewer には新しい検索ボックスが Viewer 右上に表示されています。
・ 虫眼鏡のアイコンをクリックすると、検索ウィンドウが表示されます。
・ [All] のトップには Classifeds 広告を出している情報が表示され、それをクリックするとその広告を出している情報があるウィンドウが開きます。(私の WindLight では "Classifieds coming soon!" だけで、表示されていませんでした。)
・ 検索バーに直接キーワードを入力すると、全カテゴリ検索されます。
2) Advanced Searching (高度な検索)
・ 検索ボックス内で Google サーチオペレータが使えます。(Google サーチオペレータみたいなもの・・・ではなくて、Google サーチオペレータと言い切っているので、やっぱり、Google サーチを取り入れているのかもしれませんね)
Google サーチオペレータというのは、検索結果が大量に出た場合に絞り込みをするのによく使っていますね。(それだけではありませんが。) ビデオで紹介しているのは、検索結果から、あるキーワードのものを除外する方法 (-xxxx と - を使います) や、複数の単語(キーワード)をセットにして検索をかける方法 ("xxxx yyyy" のようにダブルコーテーションで囲みます) を紹介しています。
・ All Categoried をクリックして、ドロップダウンリストからカテゴリを指定することで特定のエリアの検索が可能です。
・ (ビデオでは Help カテゴリがありますが、これは削除されています)
・ カテゴリに wiki が追加されて、wiki.secondlife.com のページも検索対象、閲覧可能です。これは、サーチウィンドウ内で Web ページを閲覧できます。On_Rez Viewer でも実現されていたので、、、なるほど、という感じでしょうか。
・ カテゴリ People でのサーチは名前だけでなく、プロファイルのコンテンツまで対象となりました。(す、すごい、、で、検索ワードが japanese ですか、、、笑) でも、1st Life Info と Language(まだね) は今は対象となっていないみたいですね。
3) Searching objects on percels (区画(パーセル)のオブジェクトを探す)
ちょっと面白いのはカテゴリの Place での検索ですね。ビデオでは shoes のキーワードで検索して、shoes がある土地/区画の検索結果をリストします。その中の土地/区画をクリックすると、そこにある shoes の情報が表示される、、、というものです。
オブジェクトの前に値段がなければそれは無料/無償/ Freebie で、有料のものには価格が表示されている、、、なんですね。
・ スペルミスの場合は、Google とおなじく日本語だと「もしかして、xxxx?」みたいにサポートしてくれます。
4) More usability improvements (さらなる使い勝手の改善)
・ 検索ウィンドウがウィンドウサイズ変更可能になりました。
・ LandMark をダブルクリックして、確認ウィンドウで "Don't show me this agine" のチェックを入れると、次からはダブルクリックでテレポートできるようになります。LM の情報を見たい場合は右クリックからのショートカットメニューで Land の情報を選びます。
最後に bug なんだけど、最初の5ページだけが、、、、というのは WindLight FL では直っているようですね。

2007年11月19日月曜日

WindLight 再び・・・

WindLight Viewer の First Look がまた公開されましたね。
以前の公開では結構「すごい~」の反面、「悩む~」の面も多かったのですが、今回はどうかな、、、と早速ためしてみました。

WindLight First Look Viewer はこちらからダウンロードできます。

で、以下の比較のショットはその違いがわかりやすいかも。

今のバージョンの SS はこちら。
image

WindLight FL Viewer の SS はこちら。(朝日に向かっての SS です)
image

なんか、、、PS3 とか XBOX360 のゲームっぽくなったでしょw 画像の修正は一切していないんですよ。

Linden が WindLight の技術を他社さんから供与をうけて、どうしても今後の SL Viewer に取り入れたい気持ちは、上記の SS からみてわかるように、立体感、陰影などの処理があきらかに WindLight のほうがよりリアル・・・だといえるでしょうね。あらゆるオブジェクト(服装、建物、、、)の質感が本当に変わります。空や太陽がクローズアップされがちですけど、ほんと、風景のみならず、着ているものや建物、そしてアバターの「質感」が変わりますね。


でも、、、以前と同様、やはり陰影が強調される分、アバターの「しわ」が目立つわけです。
それでも、、、Face Light の使い方や設定の仕方なども当時とは(自分が)ちょっとだけわかってきたわけで、、、あと、もちろん Linden の Wind Light の設定も調整されているわけで、、、前よりはよくなったかなぁ~などと。
前回悲惨だった、、、、太陽が真上にきたときでも、、、ちょっとはましかな(笑
image
でも、それ以上に今回気がついた点がw
とにかく、、、FPS (Frame Per Second) がでてませんね。通常の SL Viewer だったら 30 以上の FPS がでているような場所でも、WindLight を使うと 20 以下になっていました。これだと、Avatar が多いダンスシーンとかはつらそうです。動画撮影も結構苦労しそうですね。
もっとグラフィックカードが良いものを使わないとだめかもしれませんし(私はそこそこ良いグラフィックカード/チップなんですけど)、そういう意味ではまだまだグラフィックカードが進歩・進化しなければならない、先の技術なのかもしれませんね。
でも、、、本当に綺麗な風景になるので、Linden にはがんばってもらいたいものです。
以前このブログに投稿した WindLight ネタは以下になります。
太陽に向かって走る?
太陽に背むけられない、、、
WindLight の Update
夕陽は、、、やっぱり綺麗ですね・・・
image 
image

2007年11月18日日曜日

NMR8! Yaz Rockett Live!!!

すでに Yaz さんのブログや、ASUKA の HP で公開されていますが、Yaz さんの Live、NOIR MUSIQUE REVUE "8IGHT" (NMR8) が今週木曜日 11月22日22:30 から Byakko SIM で開催されます~。
image 
Yaz さんもかっこいいビデオを用意されたようです。

と、ところが、、、悲しいことに、私はその日確実にインできない!!!!
かなーりショック(泣

そこで、Yaz Mania として、、、あの Yaz Mania 音楽玉を Super Personal Version にして、会場で無料配布しちゃおうかと計画して、、、昨日ベータ版ができました!

この機能拡張、、、本当に「自分がほしい」というものを追加したのですが、「個人で楽しむ」ということではそこそこ充実したかもしれません。
ベータ版ゆえ、機能変更あるかもしれませんが、新しく追加した機能は以下になります。
1) 現在公開されている全 17 曲すべて対応!!!
ACIDPlanet の Yaz さんのページで公開されているすべての曲を聴けるようになりました。
これによりダイアログが 2 ページに渡って表示され、そこから好きな曲を選ぶようになります。
image
2) 連続再生モードが実現!!!
ボタンから選ぶ曲はループの設定(同じ曲が何度もかかる)になっています。それはそれでいいのですが、曲が切り替わればもっといいのに、、、と思っていました。そこで今回は [連続再生] ボタンを追加しました。このボタンを押すと、登録されている曲をすべて聴くことが可能になりました。
3) 連続再生モードでは次の曲、前の曲、、、の指定が可能に!
連続再生モードの方が再度玉をタッチすると違うダイアログが表示されます。そこに [前へ] [次へ] のボタンをつけました。これで曲の途中でも次の曲にうつったり、前の曲に戻したりできるようになりました。
image
ただし、、、Super Personal Version といっている訳は、、、この連続再生モードは、一人だけしか楽しむことができない、、、ということ。なので、すでに連続再生ボタンが押されていると、「xxxxx が連続再生モードを使っています・・」みたいなメッセージが表示されて、複数人で連続再生モードを利用することができないんです。でも、個別の曲を聴くボタンは複数の人で使えます。
複数人対応版は作成可能なんですが、ちょっと NMR8 までに間に合いそうになかったので、すでに「個人用」で作成していた連続再生付の Yaz Mania に複数ダイアログ、排他処理を入れたのでした。
昨日、何人かの方にお渡ししてベータテストしてもらっています。
NMR8 までにクオリティ良くして、会場で配布したいなぁ~と考えています。
この Yaz Mania Super Personal は、Yaz Mania/Music Ball と同じく土地に設置する形ですので、土地・区画オーナーになっているか、賃貸の場合は土地・区画管理者に設置してもらう必要があります。なので、土地を持っていたり、借りていないと利用できませんのでご注意ください。
ほとんどの注意事項/対応方法は Yaz Mania / Music Ball とほぼ一緒とお考えください~。
すでに ASUKA のクラブ雷神の Yaz Mania Music Ball はこのバージョンに置き換えていますので、土地・区画をもっていなくても楽しめますw
あ、あと Yaz さんの曲を気軽に楽しむのは ACIDPlanet の Yaz さんのページから、、、ですが、連続再生も、、、、気軽にできます。WMA みたいなので、、、、Mac がどうなるかはちょっと未確認ですが、こちらをクリックしてみてください。
Yaz Rockett - Play Artist Radio by ACIDPlanet

2007年11月13日火曜日

Torley が紹介する小技 その9

もう、、、乗りかかった船だから、、、どこまで続くか(笑

Torley が紹介する小技 その9、もちろん引用先はオフィシャル・ブログです。

image

今回は、「How to create and join a group」(グループのつくり方と参加の仕方)というお題です。

1) How to create a group (グループの作り方)
2) How to change your group title (グループタイトルの変更方法)
3) How to invite people to your group (他の人をグループに招待する方法)
4) How to join a group (グループに参加する方法)


それではビデオではどのようなことをいっているのかの要約が以下です~
英単語のところは適宜日本語に脳内変換してください。。。

How to create a group (グループの作り方)
- グループを作るには 100L$ かかります。
- Edit > Groups か Communicate ボタンを押します。[Group] タブをクリックします。
- [Create] ボタンを押すと、グループインフォメーションパネルが表示されます。
- グループ名は後々変えることができないので注意して命名してください。
- グループの内容やミッション、その他のセッティングについてはあとで変更することが可能です。
- Torley はメロンが大好き、、、(たしかによくビデオに出てくる、、、)
- すでにグループ名が使われている場合はその旨のダイアログがでます。
- グループの情報には Photo を入れることができます。
- Group Preferences で、[OPEN ENROLLMENT] をチェックすると、招待なしにだれでも入会できるようになります。
- 2日たっても2人以上のメンバーがいないとグループは使えなくなります。

How to change your group title (グループタイトルの変更方法)
- グループインフォメーションの [Members & Roles] タブ>そのウィンドウの中の [Role] サブタブをクリック。
- 自分が Owner なので、Owners のタイトルに自分の好きなタイトルをいれます。
- 作成直後はそのグループを使って(Activateして)いないので、グループを Activate するとタイトルが変わったことが確認できます。
- Owners だけでなく、他の role についてもタイトルを同様の手順で変更できます。
- 複数の Role をもっていれば、[My Active Title] から、グループタイトルを変更することができます。
- Group 管理はちょっと難しいけど、なれるまで我慢してね、、、

How to invite people to your group (他の人をグループに招待する方法)
- 招待したい Avatar 上でパイメニュー、more で [Group Invite]
- 名前がわかっていれば、複数の人たちをウィンドウから選択して招待できます。
- 招待は Group Information からもできます。
- 再度、、グループには少なくとも2名のAvatarが必要です。これは覚えておいてください。Spam しちゃだめだけど、興味がある人をグループに入ってもらうことができるんですよ。。。

How to join a group (グループに参加する方法)
- あなたのグループが Open Enrollment になっていれば、だれでも Search/検索から見つけることができます。
- 頭の上のグループタイトルは今参加したグループのものになります。
かな、、、今回は私にとって目新しいことはありませんでしたが、たとえば、Group をつくると、Group IM や、Group Notice などが使えるようになります。
特に Group Notice はダイアログの形でグループのメンバーに通知されますし、アイテムなどの添付も可能です。また、Group Information から過去のGroup Notice を参照することもできます。このあたりがとても重要なのかもしれません。
また、Deed (譲渡) という機能があって、それを使うことで土地の管理をグループでしたり、商品の売り上げをグループで分けたり(わたしはやったことないですが)できるそうです。
と、今回はこれにて(笑

2007年11月12日月曜日

ムービー変換考察 (3) 最終回.... かな? (笑

第2回からの続きで、、、ムービー変換考察シリーズ(?) の最終回かも、のエントリです。

再度、私がいまやっている手順で、動画ファイルの情報などを見ながら、どのようにエンコードしていっているかご紹介します。
動画ファイルのコンテナビデオ Codec、オーディオ Codec などの情報取得ですが、複数のエンコーダーを使うため、途中でわけがわからなくなるときがあるんです。そこで、GSpot というソフトを使って確認したりしています。

たとえば、Fraps でとった動画の情報は以下です。
image

コンテナ (Container) は AVI v1.0 で、Video Codec は FPS1(FRAPS Codec)、Audio Codec は PCM Audio で、44100Hz というのがわかります。

このままだと Windows Movie Maker HD (Windows Vista 付属のムービーメーカー) での編集はちょっとつらい(上記からわかるように、29.966 秒で 75.9 MB) ので、一度すべての Fraps 素材を他の動画形式に変換し、動画のファイルサイズを小さくします。

私の場合は、Microsoft の Expression Encoder をつかっています。ベータのときは無料だったのですが、今は有料になりました。使い慣れてしまったので、、、(笑
ソフトの印象などは前回の「ムービー変換考察(2)」をご参照ください。

どのプロフィル使って変換するかいつも悩むところなのですが、縦のサイズが 720 以上あったら [HD 720p Intranet(AP)] というのを選んでいます。(注:このままでは Intranet (イントラネット) が示すようにインターネット上での公開には向いていませんので注意してください) Expression Encoder は VC-1(WMV) コーディックを使うのですが、このプロファイル選択で、コーディックのプロファイル (Advanced, Main, Simple)、VBR/CBRビットレート、画像サイズなどを、プロファイル(利用シーン)にあわせてあらかじめこれらの数値を設定してくれているんです。(ちなみに VC-1 と H.264 の違いについてはこちらの記事が参考になります)

上の Fraps AVI を HD 720p Intranet(AP) で変換したのが以下のファイル情報です。エンコード時間は 6分ほどかかっています。(Core2 Duo T7300)

image
コンテナは ASF、Video Codec は WVC1(VC1-Advanced Profile), Audio はWMA v2 で、サイズは 22.3 MB になりました。どうも VC1 の情報がまだ Gspot では定義されていないのか、ちょっと情報とりづらいですけど。
Vista のエクスプローラでの情報を見ると、長さは 30 秒、フレームサイズは 1280 x 780、フレーム率は 30 フレーム/秒、総ビットレートは 10Mbps です。これだと、全画面にしても綺麗に見ることができます。
次にこれを MovieMaker HD で編集してエンコードします。ついでに、、、もともとのコンテナに入っているオーディオを使わないで、MP3 の音楽もいれてみます。
MovieMakerHD でのエンコードも Expression Encoder 同様、VC-1(WMV) コーディック、WMA オーディオを使って、動画サイズやビットレートを利用するシーンに合わせて変更するわけです。ちょっと注意しなきゃいけないのは縦横比(アスペクト比)で、最終的に SL の中で動画を見せたい、、、となると、動画パネルの縦横比を考慮しなければなりません。4:3 のものより、16:9 のほうがオブジェとしても見栄えがよいので、結果的にその比率に近いものが多いかもしれません。
このアスペクト比、補足として、SL の Land の設定で、動画のアスペクト比をどう扱うかの設定があります。
image
この [Auto scale content (slower and reduced visual quality)] にチェックが入っていなければ、基本、もとのアスペクト比のまま、動画が再生されます。(ただし、ちょっとオブジェクトのサイズを変更したりすると、、、、その限りではなくなるのですが、、、)
こんな感じです。
image
なので、このような状態はあまり望ましくないので、Land 設定では先ほどの Autoscale をチェックする場合が多いと思います。そうすると、このオブジェクト上に再生される動画は以下のようになります。
image
なるべく想定しているパネル(SL 内のオブジェクト)のアスペクト比に近い動画を作ったほうが、画像が間延びしたり、縮んで見えたりしないわけですね。(とはいっても、16:9 と 4:3 の違いは、16:9 と 16:12 の違いなので、思いのほか変な感じにはならないのですが)
話しは戻って、、、
MovieMakerHD のあとに Overlay などの処理をかけてもう一度、、、、というのがいつものパターンなのですが、今回は MovieMakerHD から出力した VC-1(WMV) を SUPERC にかけます。そこで、MovieMaker HD からの出力は、これまでのクオリティ同様の 720p レベル(表示サイズ 1280x780) にしてみます。該当する設定は [追加の設定] の [Windows Media HD 720p (5.9Mbps) ] になります。 もとは 10Mbps のビットレートでしたが、ここでビットレートが 60% くらいになります。
出力した動画ファイルの情報は以下です。
image
この情報から、ファイルサイズが 16.7MB になったことだけではなくて、Video Codec が VC-1 Advanced から、VC-1 Simple/Main プロファイルを使っているものになったり、2 pass エンコードが 1 pass になったり、指定したとおり ビットレートが 6241kbpsになったり、、徐々にクオリティが落ちてきていることがわかります。注意しなければならないのは、一度品質が落ちてしまうと、そのあとエンコーディングで高い値を選んでも、、、、もとにもどらない場合が多い、、、ということです。(不可逆性というそうです)
次にこれを SUPER(C) で mov コンテナ、ビデオコーディック H.264/AVC、オーディオコーディック AAC に変換します。
以下が SUPER(C) のウィンドウです。
image
おおよそ以下のような変更をかけます。
Video Scale Size / Aspect Ratio
SLの中でみる、、、ということは 1280x760 ものサイズはいりませんので、サイズそのものを小さくします。
これは、その使い方とかで試行錯誤ですが、私は 640X368 が最近のお気に入りです。なので、Aspect Ratio は 16:9 になります。
Frame
30FPS のままきましたが、Frame サイズを少なくすることでファイルサイズが小さくなります。20FPS 以上あれば、、、そんなにカクカクしないように思います。25FPS を指定します。
Bitrate
これも試行錯誤ですね、、、某動画共有サイトなどは 600Kbps 制限などあります。NHK の次世代の動画配信サービスが 6Mbps... なんてどこかの記事で呼んだ記憶があるので、1Mbps 以下が妥当なのかな、、、などと試行錯誤します。これは、、、今でも試行錯誤してます。もともと、H.264/AVC は低いビットレートで高画質可能、、、なんていう触れ込みなので、あげることより落とすほうでの試行錯誤がいいかもしれません。
最近のお好みは 1008Kbps をよく使っています。とりあえず、ここで、6Mbps -> 1Mbps に大幅にビットレートが下がりました。
オーディオについてはあまりいじりません。44100Hz, ステレオ(2), 64K で十分ですよね。
変換した結果が以下です。
image
コンテナが QuickTime(.MOV)、Video Codec が avc1/H.264(つまり、H.264/AVC)、Audio Codec は MPEG-4 AAC LC になりました。ファイルサイズは 4.18MB、画面のサイズは 640x368、フレームは25、平均ビットレートは 1105kbps と表示されています。
ちなみに、、、もし、ビットレートを元の半分の 3000kbps でやるとどうなるかというと、ファイルサイズは 11.3 MB になりました。うん、ほぼ 3 倍になりましたね。
ここでのサンプルは 30秒の動画ですから、これが4分とかになると、この8倍の大きさになる、、、と考えれば、4 MB/30秒ですから、32MB .... まぁ、、、ちょっと大きいですが、妥当かもしれません。
SL 内で動画をみても、動画の途中で最初に戻る、、、なんてことがありますが、それはファストスタートといえども、動画のダウンロードが再生においつかず、それでまた最初から再生、、、、みたいです。
この場合は、そのときの回線などの状況にもよりますが、やはりビットレートを下げてエンコードして、アップロードすることで問題は解決できるはずです。その意味では 1Mbps でも大きいくらいかもしれません。(CD/DVD 品質のWeb 配信で 1Mbps-1.5Mbps らしいです) 800Kbps くらい(もっと下でもいいかも)まで下げておいたほうがいいかもしれませんね。800 Kbps だと、ファイルサイズは 3.6MB になりました。
ちなみにフラッシュとかの動画サイトでの動画ファイルのビットレートは 300Kbps - 400Kbps あたりだそうです。
品質と安定・・・これのバランスは難しいですね~。
と、、、ながながと失礼しました~。

2007年11月11日日曜日

llDialog で、、、

ここのブログでも他の方がつけているのをみて面白い、、、と思い、使ってみました OnlyOneブログパーツ なのですが、このブログパーツによると、なぜか llDialog と「日本語」のキーワードで Google 検索トップ、、、(2007年11月10日現在w)

対象となっているのは、Yaz Mania 玉の投稿なんですけど、、、、

Makapu /Miz さまを抜いてのトップは本当に申し訳なく・・・

で、ちょっと罪滅ぼし(?) じゃないですが、それなら llDialog のことで私が知っていることや、やってみたことを紹介しようかと思いました。

本当にわかりやすく書かれているのは、Makapu/Miz さんの投稿ですので、はじめての方はそちらをご参照してもらうとして、「ちょっとこんなことできないのかな?」と思って、これまでやってみたことを書いてみます。

llDialog で日本語を使いたい
いまの LSL では日本語を直接扱うことはできませんが、Base64URLエンコード を使ってダイアログの中で日本語の表示が可能です。
Base64 については以前の投稿で、チャットボックスに入力した日本語を llStringToBase64 を使って Base64 に変換しllOwnerSay で表示する、というのを紹介していますので、そちらなどを参考にして、使用したい Base64 でエンコードされた日本語を用意します。

直接 llDialog の引数として llBase64ToString を使う手もありますが、ちょっとソースが見づらくなりますし、あとあと修正するのも大変です。参考までに、、、以下のようになります。ちなみにボタンのリストにも同様に Base64 を使って日本語をいれることができます。
(本当に見づらかったので改行しています)

llDialog(llDetectedKey(0),
llBase64ToString("44OA44Kk44Ki44Ot44Kw44
Gr5pel5pys6Kqe44KS5L2/
44GG44Go44GN44GvIEJhc
2U2NCDjgpLkvb/jgYTjgb7j
gZnjgYvvvJ8="),
[llBase64ToString("5L2/44GE44G+44GZ"),
llBase64ToString("5L2/44GE44G+44Gb44KT")],
8000);

以下のようなダイアログが表示されます。
image

でも、ソースは相当に見づらいですよねぇ、、、

なので、Yaz Mania 玉の投稿でも紹介したようなユーザー定義関数を使って、もうちょっとだけ見やすくしたほうがいいと思います。

グローバル変数として メッセージ群をまとめておいて、jString() みたいなユーザー定義関数を宣言します。


string d_Msg1 = "44OA44Kk44Ki44Ot44Kw44Gr5pel
5pys6Kqe44KS5L2/44GG44Go44G
N44GvIEJhc2U2NCDjgpLkvb/jgYTjg
b7jgZnjgYvvvJ8=";
string b_String1 = "5L2/44GE44G+44GZ";
string b_String2 = "5L2/44GE44G+44Gb44KT";
string jString(string param1) {
    string j = llBase64ToString(param1);
    return j;
}
default {
    touch_start(integer total_number) {
        llDialog(llDetectedKey(0),
jString(dMsg1),
[jString(b_String1),jString(b_String2)],
8000);
   }
}
(注) ダイアログを表示させるだけで、ボタンの処理、llListen などは本来は必要ですが記述してません~
実際、LSL が長くなってきたり、動的にボタンの数を変えたい、、、なんていう要望がでてきますから、そのときは、第3引数のボタンの List 作成用の別のユーザー定義関数を作ったほうがソースもきれいですし、わかりやすいのです。List の部分はダイアログ・ボタン用の LIST そのものが入るパターンが多いですね。
日本語って、やっぱりまずくない?
外国の方の利用可能性があるのなら、、、、考慮は必要ですよね。強制的にみせつけられる llSetText での日本語利用はわたしも使わないわけではないですが、ちょっと、、、、と思う反面、llDialog だと結構日本語使っちゃいますね。ダンス玉とか、ビデオ玉はそうですが、/99 start とチャットで入れるよりも、ダイアログからボタンで選択、、、のほうがわかりやすいですし。
たとえば、日本語と英語のどちらを選びますか? という問いかけをして、選ばれた言語で、、、なんていいと思います。
image
ソースはこんな感じ、、、(まだ、ボタン対応のコードはありませんのでご注意くださいね)
string d_Msg1 = "";
string d_Msg1_E = "Please choose your language.";
string d_Msg1_J = "6KiA6Kqe44KS6YG45oqe44GX44Gm44GP44Gg44GV44GE44CC";
string b_String1 = "English";
string b_String2 = "5pel5pys6Kqe";
list buttonList1 = [];
integer d_Channel = 8000;
string jString(string param1) {
    string j = llBase64ToString(param1);
    return j;
}
createDialogMsg() {
    d_Msg1 = d_Msg1_E + "\n" + jString(d_Msg1_J);
}
createButtonList() {
    buttonList1 = [b_String1,jString(b_String2)];
}
default {
    touch_start(integer total_number) {
        createDialogMsg();
        createButtonList();
        llDialog(llDetectedKey(0),d_Msg1,buttonList1,d_Channel);
    }
}
ちょっと、すっきりしますよね。
と、、、あらら、もう、結構長くなっちゃいましたね。
本当は複数ページのダイアログくらいまで、、、書こうと思ったのに。
それはまた、どこかの機会で。。。
とても大切な注意点を書くのを忘れていました、、、
llDialog を使っていくと何にでも使いたくなるのですが、ものすごく重要なのは ダイアログを表示させる Avatar の Key が必須 ということです。
なので、だいたい Touch などのイベントから、いわゆる llDetected 系関数を使って、Key の取得ができるシーンでの使われ方が多いです。Avatar の Key 取得は LSL関数では名前からでは今のところできません。 (外部のサービスはあります。LSL wiki の llKey2Name 参照してください。)
その意味で、私がよく使うのは、オブジェクトの Owner に対して、そのオブジェクトおよびスクリプトの設定などをダイアログで行ってもらう、、、というものです。
/88 show dialog みたいなチャットからの入力で、llGetOwner() で取得した Key に対して llDialog を発行すれば、オーナーさんの画面上にダイアログが表示されるからです。これは自分で使っていても、チャットからのコマンド入力よりは、使い勝手はいいと思っています。

2007年11月7日水曜日

Freebies... 最近はすごいw

もう、Freebie (フリーのアイテム) を探し回る歳 (??? 笑) じゃないのですが、私も SecondLife をはじめたころはいろいろな Freebies を探しにメインランドをさまよったクチです、、、

そのころって「フリーのアイテムが詰まったコンテナ」とか、、、、そんな感じで、唯一すごいなぁ、、、と思ったのは、ほんと初期のブログに書いた GNUbie とか。。。 (うは、、、4月のブログ投稿だ、、、)

で、昨日はほんとにひさしぶりに MAP から人のたくさんいるところを探していっちゃう、、、という SL 始めて初期のころの行動をw

そこで見つけた MAP が以下、、、、
image

これ、、、、SIM には 86 人いますが、ほんとうに珍しい「Avatar の配置」で、こんなにばらけて 86 人もいるのは、、、、なんだろう????と思うわけです。

結論を言えば "Freebies" という SIM なんですが、、、、いってみてびっくり!

(は~い、、、このあとは、すでに知っているよーの人はスルーしちゃってください)

ちゃーんと、ディスプレイしてるし、カテゴリでわけているし、、、、すごい!
image
ああ・・・(このあとは絶句で、SnapShots をお楽しみください・・・)
image 

Shape と Skin も豊富で・・・ 
image 
image
服も・・・
image 

うは・・・ 衣装とヒールのセットも・・・
image
で、、、買って(というか、、、無料なので、手にいれて・・・それも・・・結構たくさん・・・)試着w
image


ノーズピアスが・・・(笑
image


ヒールも・・・うーん、これがセットで 0L$ とは・・・・
image
参りました、、、、
Map 検索で Freebies と入れると出てくると思います。 Freebie なんて・・・と思っている方でもぜひ行ってみてください~。

2007年11月6日火曜日

同期ダンスの限界に挑戦してみたり・・・

ちょっと前の投稿で「LIN ちゃんからオーダーありました~」って書きましたが・・・

つくってみました、同期ダンスボールw (また、、、玉かいっ!!!)

ですが、その玉は Massive Link Dancers Massive Link Dance Unit という命名をいただきました~

LINZOO さんの呼びかけで多くの方に参加してもらい、たぶん 50人(Avatars) を超えての同期ダンス(シンクロダンス)をたのしんだわけで。

そのときの模様がこれ・・・・

image

引いたときのフォトはこれで、、、
image

SIM は落ちなかったけど、PC 側が大変でしたw
Avatar の数ぶんのデータを PC 側で処理するわけで、40人を超えたあたりからディスクアクセスが・・・・
SIM おちる前に、PC 側の SL ビューアーが落ちそうな(クラッシュしそうな)勢いでした(笑
この Massive Link Dancer(s) は、SIM に対する負荷は(今は)とっても低いんです。
Top Script でみても、このスクリプトは平均して 0.1 秒前後しか SIM CPU を使っていないんです。
LINZOO さんいわく、「これだけたくさんの Avatar が Link したのを見たのははじめてかも、、、」らしいです。
ちょっと、まだ「使い勝手」という点で修正・追加しなきゃならない機能はありますが、おおもとのスクリプトはこれでいけることが確認できたので、ASUKA のクラブ雷神ではすでに本番稼動(でも、スクリプトはまだベータなんですけどね・・・)してます。
もう少しテストと修正を加えたら・・・・うっちゃう?(笑
でも、ほんと、同期ダンス(シンクロダンス)が楽しくて、今まで続けていたようなものなので、まさか自分で作るとは思ってもいませんでした。
実は、、、Yaz Mania 玉の、、、、これも応用だったりするんです。Yaz さんに感謝w
もう一枚 SS をw
image
これで、LINK LINZOO BALL がフルなのでシンクロダンスできません・・・・ということはなくなりましたねw
[11/8追記]
はいはい~、ビデオできました~。

Video: Massive Link Dancers Unit
[追記おわり]

スクリプトとしては、3つのスクリプトが llMessageLinked で通信をして、Avatar の管理をしています。

DDManager という Touch イベント、List によるスロットアサインと管理、SyncManager という Animation の管理とスタート・同期制御、danceSlot という Avatar の Permission 管理、存在チェック、llStartAnimation 指示、そういう役割にしました。
danceSlot を Prim のコンテンツ内で copy すると danceSlot 1, danceSlot 2 と連番がつきます。 100 人ダンスーなんていってますが、たぶん DDManager が管理する Slot List がどんどん大きくなるので、そのメモリがなくなるまで Slot を増やすことが理論上は可能です、、、、(いくつかは試していませんw)

同期させる仕組みはとても簡単で、同じタイミングで複数のアバターに同じアニメーションを開始させる、、、なんですが、一番悩んだのは、スロット管理でした。
一人の Avatar にひとつの danceSlot スクリプトをアサインします。これは Permission を扱うからなのですが、問題は、そのアバターがいなくなったことを感知してスロットを開放しなきゃいけない、、、っていうことです。
再度タッチでダンスはとまるので、明示的にスロット開放はわかりますが、ダンスを止めないで TP しちゃった、、、、なんていうのも考えられます。そこで使うのは llSensorRepeat なんですよね、、、、これの時間の設定が、また、微妙で、、、、あまり短くしすぎると copy した danceslot が次から次へと、、、
このあたりはまだまだ調整の余地がたくさんありそう・・・・

DDManager のスロット管理、、、完全に開放されていないステータスのスロットが残ったり、、、という不具合があるので徐々に改良していきます~

2007年11月3日土曜日

ムービー変換考察(2)

前回からの続きです。

自作のムービーの手順は、以前に簡単にご紹介していますが、動画ファイルのエンコードという観点からみると以下のような変化をたどります。

1) Fraps による AVI 作成
2) WME9(Windows Media Encoder 9) または Expression Encoder による Fraps AVI -> WMV 変換 (もちろん、他の変換ソフトで AVI(Fraps) -> WMV などの変換をしても OK です)
3) MovieMake HD (Windows Vista  付属)  による WMV 作成

ここまでで SoapBox などの動画共有サービスに投稿可能になります。

でも、これでは QT で再生できません。
そこで WMV -> QT の変換をしなきゃいけないわけですが、この「動画ファイル変換」というのは、どうやら今でもホットなカテゴリらしく、いろいろなソフトがあって、いろいろな設定方法があって、いろいろと「動かない」ものもあるようなんです。

「エンコード職人」なんて言われるプロフェッショナルな方々もいるようです。(とくにニコニコ動画などでご活躍のようですね)

現在私が、WMV -> QT 変換で、最近安定的に使っている手順とソフトは以下です。

4) MovieMake で作成された WMV を SUPER(c) で mov コンテナ、H.264/AVC 動画コーデック、AAC に変換
5) SUPER(c) で作成した mov ファイルを QuickTime Pro で読み取り、ファストダウンロードの指定をして、再度、mov/H.264 でエクスポート (コメント参照。QTPro のこのステップは結果的に必要ありませんでした>さらに追記:一部の組み合わせで発生するエラー回避のために、QTPro でのステップはやはり必要。。。コメント参照してください< 何度もごめんなさい。。。不具合の回避は Player 側での設定でした。。。)

SUPER(c) でもファストダウンロードの変換ができる、、、みたいなネット記事かブログをみたんことがあるのですが、まだ使いこなしていないようで、、、、とりあえず最後は安心できる QuickTime Pro で最終エンコードしています。

これでおおよそ 3分~4分の WMV ファイル (100MB 程度) が、mov/H.264 に変換されます。最終的にはサイズやビットレートの指定にもよりますが、20 MB 前後くらいに圧縮されます。(追記:これじゃ WMV がファイルサイズ大きいような書き方で、、ちょっと違います。動画編集に適した画面サイズの大きい 3-4分の WMV ファイル 100MB 程度を、最終的には Second Life で視聴するにふさわしい小さめの画面サイズと H.264 コーデックに変換した結果、20MB くらいまで小さくなる、ということです)

これをインターネット上のサーバーにアップロードします。たぶん、必要に応じて、サーバー上で、.mov 拡張子に対しての MIME 指定とかが必要になります。

(2007/11/04: 追記のほうの記事が消えていた・・・・気がついて追加しました(笑))
エンコードソフトについてですが、本当にいろいろなものがあって、最初はどれを使っていいのかがわかりませんでした。
ちょっと私がためしたエンコードソフトの一覧が以下になります。

Windows Media Encoder 9 (WME9)
Microsoft 謹製(笑)。無料のツール。動画ファイル変換機能よりも、画面キャプチャと動画配信のほうが有名かも。PeerCast では、このキャプチャ・配信機能を利用して、個人の PC で動画配信をしていますね。
ちなみに・・・ SecondLife で PeerCast 配信を試してみましたが、SecondLife も重いし、WME9 も重いので、、、ちょっと無理めな組み合わせでした。(笑)

Expression Encoder

Microsoft 謹製。30日間評価版あり。有料。さまざまな環境に合わせた VC1(WMV) を出力するためのテンプレート(Profile)が豊富で、サイズやビットレートの細かい指定で悩むことはありません。ですが、基本的には VC1 を出力するためのソフトなので、他のフォーマットを読みこむことはできますが、他のフォーマットへの変換機能はありません。Overlay、Crop(切り取り) の機能も使いやすいように思います。

SUPER(C)

フリーの変換ソフトとしてはかなり有名で、いろいろなところで紹介されていますね。WMV->MOV(H.264)でこれまで何回もファイル変換をしていますが、変換後の mov が読めなかった・・・なんてことは一度もないのがすごいです。

MediaCoder

こちらもフリーの変換ソフトとしては有名みたいです。ものすごく細かな設定ができますが、ファイル形式、コーデックの知識がないと、コンテナ、コーデックのありえない組み合わせなどをやりかねません。知識があればものすごく使えそうですが、知識がないと最初はちょっと辛いと思いました。(でも、そのおかげで勉強することになったんですけどね) はじめて使えそうな WMV -> MOV(H.264) 変換に成功したソフトです。

ROXIO Copy & Convert 3
有料。動画変換ソフト、、、というよりはデータ、ファイルを扱うための統合ソフトです。H.264 コーデックへの変換があったので試してみました。mp4 コンテナに H.264 コーデックの組み合わせのみの出力でした。QuickTime は mp4 も再生できるので、Second Life 内視聴をためしましたが、どうも変換ロジックがそれほど洗練されていないみたいで、、、なんと、WMV ファイルの4倍もの大きさにしちゃう・・・・という、正直使い物になりませんでした。このソフトの使用目的は動画変換じゃないので、、、他ではよく使う、お世話になっているソフトなんですけどね。

SONY Image Converter 3

H.264 コーデック変換可能で、使いやすいかも。ただし、PSP で使う目的のソフトなので、あまり細かな設定には向きません。mov コンテナじゃなくて、mp4 コンテナの H.264/AVC を出力します。PSP を持っている人にはお勧め。WIndows Media Center との自動連係が売りみたいで、、、、って、SecondLife とは話しが遠くなるので、以下省略w

MOVIE GATE2
有料。店頭に箱で並んでいました。付属のガイドブックはコンテナ、コーデックの説明がわかりやすい。。。。でも、これ、一度も変換に成功しませんでした。Expression で出力されたWMV さえ読み込めない(VC1対応できてないと思う)、WindowsMediaPlayer で Fraps AVI が全然読めなくなったり(これにはあせりました)、、、と、ちょっと扱いづらかったかも。いろいろな会社のいろいろなコーデックを扱う、、、というのは難しいんだ、、、とあらためて知らされました。

他にもいろいろとあるみたいですが、、、ここまで試してもうお腹いっぱいになりました。(笑
結構多くの方々が動画ファイル、コーデックについてはブログや HP の記事として公開されていますので、そちらも参考に。
あとは、当然といえば当然ですが、Apple の QuickTime のページからリンクされている記事も参考になるので、そちらも興味ある方は是非参照してみてください。
ストリーミングとファーストスタート(プログレッシブ・ダウンロード)の違いとか、そのあたりの疑問が解決しましたし。
http://www.apple.com/jp/quicktime/pro/technologies.html
続き・・・

2007年11月2日金曜日

ムービー変換考察 (1)

ビデオ玉の紹介をしたついで・・・ではありませんが、SL 内で楽しむムービーの作成って、私も試行錯誤の連続でした。

YouTube や SoapBox に投稿するのと違って、QuickTime で再生するために mov ファイル形式の動画を保存しておくインターネットのサーバーを用意しなきゃいけないし(でも、もしかすると .mac が使えるかもしれませんんが.....未確認です) 、ひとことに「mov ファイル」 っていっても、いろいろとあることが後からわかったんです。

最初は普通の mov ファイルQT で再生可能なフォーマットの (MPEG4) をアップしたのですが、これが重くて重くて・・・ 重いというのは、動画ファイルがダウンロード中になると、完全に SL の中のアバターの動きが「カクッ」と止まってしまうわけです。

むぅ、、、これは解像度とかサイズとかを低く・小さくしてファイルサイズを調整しないと無理と思っていたのですが、あるものを見てから「よし、がんばって調べてみよう!」と思ったのです。

それは前にもご紹介した、Apple の HD ムービーサイト (QuickTime HD Gallery) です。

image

基本的に、SecondLife のビューアー(ソフトウェア)は、動画再生のときに QuickTime をアドインとして使っているので、QT にできることは当然のごとくセカンドライフ内でできるはず、、、だと思ったわけです。
まず試しに、、、、と、この HD Gallery や Apple/QT サイトの映画予告(トレーラーといいます) に貼り付けられている mov ファイル再生を指定している URL を書きとめ、SL の Media URL に入れてみました。
映画トレーラーの URL の調べ方は、、、お察しのように、要は HTML のソースの表示で、xxxx.mov というものを探します。
まぁ、、、、新しいもので・・・・ということで、大好きなマット・デイモンの「ボーン・シリーズ」の最新作の「ボーン・アルティメイタム」を例にすると、まずは、トレーラーのページを開きます。
そして、FireFox だと、メニューの [表示] - [ページのソース] を選びます。 IE7 だと、[ページ] - [ソースの表示] です。
で、検索機能なんかを使って 「.mov 」 を検索すると、以下のようになります。
image
ソースには「 http://movies.apple.com/movies/jp/trailers/toho/bourne_ultimatum/bourne_ultimatum_480.mov 」とあるので、これを Land の Media URL に入れてみるわけです。
すると、、、、
あらら、、、ものすごく「軽く」映像が始まるんです。これを見たときに、上述のように「よし、調べよう」と思ったんです。
image
と、、、ちょっと長くなっちゃったので、今日はここまでにして・・・
その後どうしたかを明日以降に書きますね。