2012年5月25日金曜日

第5回踊り子組合ダンス会がもうすぐ・・・

第5回踊り子組合ダンス会が 2012年6月2日(土)に開催されます。
Prin Dance Circle(プリンダンス部)、今回も出演しますが、一切ネタなしです。ネタ期待していた人ごめんなさい。(笑

PrinDanceCircle踊り子5b

踊り子組合ってなーにー?の人はこちらの Web をご覧ください。

日本踊り子協同組合 in Secondlife
http://gatemaster.secret.jp/jpodoriko/

残念ながら、一般公開のダンス発表会じゃなくて、組合員の組合員による組合員のための発表会になります。普段、クラブのダンマスをやっている方とか、ダンス ショーを開催している方が、他のダンスマス、Choreographer さんの作品を見る機会、となっているんです。

プリンダンス部は、、、普段ショーケースなどしませんし、クラブ所属ってわけじゃないのですが、第1回から出演者として参加させてもらってます。

第1回参加のブログ
http://snumaw.blogspot.jp/2010/01/blog-post.html

第2回参加のブログ
http://snumaw.blogspot.jp/2010/08/blog-post.html

第3回、、あれ?ない(この時、パフュームと爆乳音頭やったはず・・・)

第4回参加のブログ
http://snumaw.blogspot.jp/2011/06/4.html

ということで、プリンダンス部は、ほぼほぼ MikuMikuDance のモーションのインポートで複数人のダンスを構成して、ステージやパーティクルなどを使った効果をお友達といっしょに製作、練習して発表、、、という文化祭みたいなノリで楽しんでます。

今回の演目は「Magnet」と「千本桜」にしました。以前ご紹介した「上半身2」と「chest」の対応をさせる改変プログラムを使って MMD モーションをインポートしたものです。chest 部分の動きが独立すると、かなりなめらかなモーションになります。

チームのメンバーとは「今回は動画とっておきたいね」と言っています。今までの演目は SS はあったとしても、動画として残したりしていませんでした。練習、練習で、発表会終わっちゃうと結構「もういいやー」となってました(笑 発表会での動画は無理ですが、たぶん、演目はちゃんとした形で録画して残しておいてもいいかなぁ、と思っています~。

リハの模様

送信者 ドロップ ボックス

2012年5月13日日曜日

ファイル アップロードでビューワーがクラッシュする

気がついたら、インベントリの Upload で画像も、サウンドも、アニメーションも [Upload] 選んで、次のファイルタイプを選んだ時点でビューワーがクラッシュするようになりました。。。。(Windows7)

公式、公式ベータ、FireStorm、しばらく Version Up していない EXODUS まで。。。

これって、明らかにビューワー固有の問題じゃないですよね。FireStorm なんてアップできてたし。疑わしきは自分の環境、、、、とつぶやいたら SL のお友達が試してくれて「同じくクラッシュしました~」え?

ということは、、、、OS? そして、、、考えられるのは Windows Update による何か。。。

で、、、

とりあえずの対策はビューワーを立ち上げるときに [管理者として実行] を選ぶと、クラッシュしなくなります。

結構「何で~」となっている人も多そうなので、とりいそぎ記事にしてみました><

2012年5月1日火曜日

[LSL] 前に動いて、横に動いて、基本は rotation

備忘録的メモになります。

llSetPos でも、llSetLinkPrimitiveParamsFast でもいいんですけど、プリムを移動させる、動かすために、最終的にはグローバル座標軸における X, Y, Z の値をいれることになります。

llSetLinkPrimitiveParamsFast での子プリムの移動においてはルートプリムからの相対位置ですが、単純にプリムを動かすことを考えると、グローバル座標を指定することになります。

おおよそ「今いる位置から移動させる」場合は、「今向いている方向」をベースに考えます。「今向いている方向」で、前にいこう、後に行こう、右に、左に、上に、下に、、、となるわけです。

すると、今向いている方向は rotation r0 = llGetRot() でローテーション(クォータニオン)型で取得できます。今向いている方向で前に 1m 進むためのグローバル座標軸における移動分は llRot2Fwd(r0) でベクトル型の X, Y, Z の値を取得できます。2.5m 進みたかったら llRot2Fwd(r0)*2.5 です。

3m 前に進み、左に2m 移動する場合は llRot2Fwd(r0) *3.0 で 3m 前進するためのグローバル座標軸上の移動と、llRot2Left(r0)*2.0 で 2m 左に進むためのグローバル座標軸上の移動が必要なります。現在の位置から 3m 前進し、2m 左に動く vector v は

vector v = llRot2Fwd(r0)*3.0 + llRot2Left(r0)*2.0;

です。ただし、これは移動分であり、最終的な SIM 上のグローバル座標ではないので

vector tgV = llRot2Fwd(r0)*3.0 + llRot2Left(r0)*2.0 + llGetPos();

がグローバル座標軸上のベクトル情報になります。llSetPos(tgV) で、今の位置から前に 3.0m、左に 2.0m いった地点に動きます。

ここに今向いている方向をZ軸(上下軸)に90度に左周り(上から見て反時計まわり)、そこから前に2m、左に3m移動する場合は、まず自分の向きを変えます。ただし、この向きの変更はローカル座標軸(自分の前後左右上下の軸)に対して行うのがほとんどです。よって、90度の回転は左からクォータニオンを現在の向きにかけてあげます。

rotation r1 = llEuler2Rot(<0.0,0.0,90*DEG_TO_RAD>)*llGetRot();

r1 は今の向きから90度左まわりにまわった向きになるので、そこから前、横のベクトル値を算出します。

vector v = llRot2Fwd(r1)*2.0 + llRot2Left(r1)*3.0;

現在の位置をプラスすることで最終的な SIM 上のベクトル値となります。

vector tgV1 = v + llGetPos();

<X, Y, Z> のベクトル側の要素に数値を直接プラスすることはあまり無いんですよね。。。
これ、しばらくやっていないと、忘れます。。。><