Adsense

2012年7月9日月曜日

マルチモーションの基礎知識

[追記:日本語版 multi motion mldu5+ for 6/12/24/36/お試し版公開しました]
https://marketplace.secondlife.com/p/multi-motion-mldu5-Japanese-for-12-dancers/3719993

英語版の multi motion mldu5+ で興味を持たれた方が多数いるようでうれしい限りです。
日本語版は今月中には marketplace にあがりますので、日本語版ご希望の方は(もちろん README - お読みください も日本語)そちらをお待ちくださいね。

ところで、カップルダンスやグループダンスの仕組みそのものは、知っている人にとってはなんでもないのですが、はじめて自分で組んでみよう、と思うと「なんでこうなるの?」と思われるかと思います。

私もはじめて Secondlife でクラブに設置されているカップルダンス、ソーシャルダンスを踊った時は「????」と思ったのを思い出しました。

そこで仕組みと mldu5+ への登録方法を簡単にご紹介しようと思い立ちました。

セカンドライフのカップルダンスの仕組み

どこかに書いてあったわけじゃないのですが、2人や3人といったシンクロダンスではなく、カップル、グループダンスを踊らせる仕組みは基本的には以下の考え方です。理解を進めるために男女のソーシャルダンスを例に考えますね。

・男性用ダンス、女性用ダンスを用意する。Intan 用とかで販売されているモーションで問題ない。Henmation などでもカップルダンスは相当販売されていますね。
・男性用ダンスと女性用ダンスは別々のモーションですが、そのモーションのダンス開始を同時に行えば、2人でダンスを踊っているように見えます。これ、基本。たまにずれている時などはキャッシュされてなくて開始がずれた、なんて場合です。キャッシュしていればほぼ問題ないでしょう。
・ただし!男性ダンスと女性ダンスのアバタ―の「間隔」や「向き」はモーション作成者/メーカーによってまちまちです。ここに規格はありません。
・この間隔や向きを調整するのが、多くの場合はノートカード マクロによる「位置回転調整」機能になります。
・おおよそおおくの場合、「位置回転調整」を実現するには、ダンスHUDやダンスボールと連動している Sit ボールにすわる必要がある。
・Sit ボールに座ることで、アバタ―の初期位置(0,0,0)が決定し、そこからどのくらい動かすか、回すか、をマクロで指定して、カップルダンスモーションに適切な男女の間隔にする。マクロが無い場合は、物理的に玉の位置と向きを調節している場合もあります。

だいたいこんな仕組みでカップルダンスは動いています。
なので、Intan や、市販されているカップルダンスは赤と青のつながった玉にモーションが入っていると思います。玉に座ることでカップルダンスは動きますが、男女の位置・間隔・向きを調整するためには、どうしても「玉」が必要になります。

mldu5+ の基本的な考え

mldu5+ では [招待](INVITE) から2つの方法でダンスを送信することができます。

・ ダンス送信(Send Dance)から検知(Search)を使い、周辺アバタ―を指定してダンスを送る。(ゲストにアニメーション許可のダイアログが表示される)
・ Ball(2), Ball(3) といった Sit ボールを足元に Rez して、そこに Sit してもらう。メニューでは DANCE! に Sit が置き換わっています。

上の話から考えると、どうやらカップルダンスやグループダンスを踊るには Sit ボールを使わなきゃいけなそう、、、、と考えますよね。基本的にそのとおりです。

mldu5+ Sit ボール(README では Position ball という言い方もしています)は、1.5m 間隔で配置された Sit ボールです。ボールの上には番号が振られています。この番号は「ダンスグループ番号」と連動します。

ダンスグループ番号とは上の例でいうと「男性」「女性」と同じ扱いです。
ノートカードの指定で対応するアニメーションと番号は変更可能ですが、考え方としては0番のダンスグループに属して「男性用」のダンスをおどる、1番のダンスグループに属して「女性用」のダンスを踊る、という使い方をします。

mldu5+ では男女のダンスの組み合わせを「|」でつなげて記述することでダンスを1つのセットとして扱うことができます。これで「同時に開始させる」ことが可能になります。それぞれのセットにはダンス再生時間の他に、各ダンスグループの XYZ 軸の位置、XYZ 軸の回転を指定することができます。これがノートカードマクロになります。

ただし、ボールに座わっていない場合は該当するダンスグループのダンスを踊ることはできますが、位置・回転調整はききません。

mldu5+ での調整

DanceMale と DanceFemale を使うとした場合、DanceMale|DanceFemale とノートカードに書くことで、ダンスグループ0 には DanceMale が、ダンスグループ1 には DanceFemale が送られ、再生することになります。

mldu5+ sit ボールによる位置・回転調整は個別にみるとシンプルです。座ったボールからどのくら動くか?回転するかを指定します。

Secondlife の座標軸になれていないと????となるでしょう。これは覚えてください。
ボールに座ると何もマクロしていしていなければ、ある方向に向かってアバタ―が Sit した状態になります。

前に進みたい:X軸ブラス 単位は m
左に進みたい:Y軸プラス 単位は m
上にあがりたい:Z軸プラス 単位は m

となります。後ろにさがりたい場合は X 軸マイナスとなります。
向きについてはほぼ、、、無修正でいけると思いますが、たまに調整が必要な場合もあります。
おおよそ、向きでは Z 軸しか使いません。普通に向きを変えるのはZ軸の回転で表現し、回転する向きは頭上から見て反時計まわりで mldu5+ では「度」で指定します。

多くのカップルダンスの場合は前後の位置は同じで、左右位置を同じ位置(つまり重なっている状態)にする場合が多いです。その場合は

DanceMale|DanceFemale, 23.0, 0|0, 0|-1.5, 0|0, 0|0, 0|0, 0|0

となります。DanceMale と DanceFemale を 23秒再生し、ダンスグループ1のみY軸で –1.5 m (つまり、右側に移動する=ボール0と同じ位置)、このダンスの再生時に移動します。
フォーマットは

アニメーション名, 再生秒数, X軸移動, Y軸移動, Z軸移動, X軸回転, Y軸回転, Z軸回転

となります。
何度も書きますが、位置・回転調整は、その mldu5+ から rez された Sit ボールに乗らないかぎり有効にはなりません。mldu5+ と rez された Sit ボールは関連づけられていますので、たとえば他の mldu5+ から rez された Sit ボールに座っても意味がありません。

この XYZ 軸の移動を調整して最適な位置を探すことになります。

今日はここまで~
[追記:ノートカードとプレイリストについての解説記事を公開しました。]
http://snumaw.blogspot.jp/2012/07/mldu5.html
[追記終わり]

と、、、、文字ばっかりだったので、4人用のグループダンス(4人用それぞれのモーション)を、4人分の位置調整を行えばここまでできます、というホームビデオ(笑
このモーションは近々に 0L$ で marketplace にアップします。また、製品版の mldu5+ に同梱されます。オリジナル モーション トレーサーのあひるP様から再配布のご許可をいただいております。