ラベル 操作方法 の投稿を表示しています。 すべての投稿を表示
ラベル 操作方法 の投稿を表示しています。 すべての投稿を表示

2020年10月14日水曜日

ハルちゃんが取説書いてくれました

http://mahal.slmame.com/e1702426.html

ハルちゃん、ありがとう~
いまでもこうやって利用してくれていて本当に嬉しいです。そして上記のように取説をかいてくれました!

ハルちゃん(Psyche Lunasea)はMLDUを一般に公開しはじめたときの最初のお客様で、今のMLDUが持っている機能のアイディアなんかもたんさんいただきました。

multi motion mldu5.5+ Japanese TRIAL Version 

multi motion mldu5+はハルちゃんの取説で書いているように、フリースタイルのダンマス利用には合わず、踊るダンスアニメーションとその再生秒数をノートカードを書いて踊らせる、今でいうショーで使うことを目的としています。

もとはセカンドライフが話題になって結構人が出入りしていたASUKAの雷神のダンスボールとして作ったんです。100人でシンクロしましょう~みたいな。

雷神での当時のブログ記事 (2007年11月!www)
https://snumaw.blogspot.com/2007/11/blog-post_06.html

それからニコニコ動画のミクミクダンスをみて、そこで踊られているダンスをセカンドライフの中で踊りたくて、そのダンスボールを拡張していきました。

ミクミクダンスのモーションを踊りたいがために拡張しているころの記事(2011年1月)
https://snumaw.blogspot.com/2011/01/nostalogic.html

複数のアバターにそれぞれ違うアニメーションで同期ダンスを踊らせるカップルダンスのIntanなんかがあったんですが、ミクミクダンスは2人だけじゃなくて、3人、4人、5人というダンスになるので、ノートカードに記入したら何人でも踊れるようにしていったんです。(メモリーの限界まで)

ハルちゃんと出会った頃の記事(2011年5月)
https://snumaw.blogspot.com/2011/05/multi-motion-mldu5-mahal-35.html

ハルちゃんのブログはこちら。
http://mahal.slmame.com/

今は機能拡張などはしていないけど、セカンドライフの大きな仕様変更がなければ、ハルちゃんが書いてくれているように不具合は発生していないと思います。当時はほぼ毎日にように踊って、直して、踊っての繰り返しでしたから(笑

mlduを使って4人で踊った動画(セカンドライフの中です)

 ハルちゃん、ありがとね!

2012年7月23日月曜日

mldu5+ notecard macro tips – combination of different dance time animations

(English follows Japanese)

mldu5+ でマルチモーション、マルチアバタ―でダンスを楽しめますが、mldu5+ では時間の違うダンスを楽しむための拡張をしています。

以下のようなノートカードになります。

<sample>
animA|animB, 12.0
animA|animC, 3.0
animD|animC, 6.0
animD|animE, 9.0
nothing|animE, 6.0
nothing|nothing,30.0
</sample>

ダンスグループ0のアバターは animA(15秒)>animD(12秒)>nothing(36秒) という順番で踊り、ダンスグループ1のアバタ―は animB(12秒)>animC(9秒)>animE(15秒)>nothing(30秒) という順番でダンスを踊ることができます。

このノートカードだけをみるとイメージしづらいと思うのでちょっとわかりやすくチャートにしたのが以下。

mutimotion1

mldu5+ では、現在踊っているダンスと同じ名前のアニメーション名が指定された場合は「無視する」という仕様にしています。それにより、animationA|animationB というダンス アニメーションの指定の仕方でも、再生時間の違うダンスを複数扱うことを可能にしています。

現実は、、、こういったノードカードを書くのは 2~3名が限界だとは思いますが、この記述方法でアニメーションと位置・回転を指定してあげると、それぞれのダンスグループのアバタ―を個別にダンス再生、位置・回転指定をすることが可能になります。

この方法は MaHal さんからのご要望を元に、シングルモーションとカップルモーションを組み合わせてショーケースを作るための拡張として mldu5+ に組み込みました。

ちょっと難しいけど、是非お試しください~

- English -

mldu5+ provides you multi motion/avatar functions and also has the extension to handle different time animations.

Here is a sample Animation X notecard.

<sample>
animA|animB, 12.0
animA|animC, 3.0
animD|animC, 6.0
animD|animE, 9.0
nothing|animE, 6.0
nothing|nothing,30.0
</sample>

The avatar of dance group 0 will dance animA(15.0sec)>animD(15.0sec)>nothing(36.0sec)、and the other avatar of dance group 1 will dance animB(12.0sec)>animC(9.0sec)>animE(15.0sec)>nothing(30.0sec) by the above playlist notecard.

It’s a little bit hard to make sense by only notecard therefore the following chart could help you to understand it.

mutimotion1

Because mldu5+ ignores same dance animation name if current dance animation is same to next dance animation. This specification enables us to manipulate different dance time animations by animationA|animationB description in notecard.

From a practical point of view, we can write such a notecard macro for two or three avatars. Howerver this notecard spec make us to control avatars motions, positions and rotations particulary.

MaHal, who is the best advisor for mldu5+, would like to  combine single dance and couple dance in her showcase. mldu5+ has finally this extension by her strong and valuable requests.

It’s a little bit complicated and not easy but please try it for your dance life!

2012年7月21日土曜日

10 FAQs of multi motion mldu5+ Part2

Here is the part2 FAQs of mldu5+. (日本語簡易版は文末にあります)
The following link is part1. If you don’t read it yet, please refer to this, too.
http://snumaw.blogspot.jp/2012/07/10-faqs-of-multi-motion-mldu5.html

1) When I deleted sample motions, I have Error!

mldu5+ always tried to check all animation files described in Animation notecard in script reseting.
The reason why you have error is that there is a notecard which includes deleted animation file names.

To find invalid notecad, please taka a look at reseting message carefully.

faq2-1

In red rectangle, you can see “Notecard Animation 2 . No specified animation in my folder. Please check typo, Upper/Lower case, blank/space charactor.: kashiyu_0” and so on.

If you delete “kasyuyu_0” animation file and don’t delete/comment out the motion file name, you have the above message.

Please delete/comment out the animation file name from appropriate notecard before you delete animation files in mldu5+ content folder.

2) How can I comment out animation files in playlist notecard?

If you would like to comment out the line, please place double slush “//” at the forefront of the line as follows;

<Perfume(3)>
aachan_0|kashiyu_0|nocchi_0, 30.0, 0|0|0, 1.5|0|-1.5
//aachan_1|kashiyu_1|nocchi_1, 30.0, 0|0|0, 1.5|0|-1.5
aachan_2|kashiyu_2|nocchi_2, 30.0, 0|0|0, 1.5|0|-1.5
aachan_3|kashiyu_3|nocchi_3, 30.0, 0|0|0, 1.5|0|-1.5
</Perfume(3)>

The above orange line will be ignored. It means aachan_1, kashiyu_1 and nocchi_1 motion files will not be checked by script.

3) I would like to have all dances ignored in a notecard...

Of course you can set “//” at the forefront of ALL line but I provides two ways as follows.

a) Place “//” at the forefront of a playlist name.

//<Perfume(3)>
aachan_0|kashiyu_0|nocchi_0, 30.0, 0|0|0, 1.5|0|-1.5
aachan_1|kashiyu_1|nocchi_1, 30.0, 0|0|0, 1.5|0|-1.5
aachan_2|kashiyu_2|nocchi_2, 30.0, 0|0|0, 1.5|0|-1.5
aachan_3|kashiyu_3|nocchi_3, 30.0, 0|0|0, 1.5|0|-1.5
</Perfume(3)>

Playlist “Perfume(3)” will be ignored therefore animation files in playlist will not be checked by script.

b) Delete all animation names in a notecard.

<Perfume(3)>
</Perfume(3)>

Playlist doesn’t have any animation files therefore the playlist will be ignored by script. 
Also playlist “Perfume(3)” will not appear as a playlist button label on dialog menu.

4) What’s limitaions of play time in a notecard?

You can set over 1.0 second playtime for a line as follows.

<sample>
animation01, 30.0
animation02, 1.0
animation03, 600.0
</sample>

If you set 0.5 seccond, the play time is ignored but no error message. When you play the playlist, mldu5+ uses a default playtime.

You can NOT set under 1.0 second playtime in a playlist notecard.

5) I can not set under 5.0 sec playtime on Time Setteing menu.

From dialog menu, you can use [Play –1 sec] or [Play +1 sec]. But mldu5+ doesn’t set under 5.0 sec as default playtime. You can see any time your default play time on dialog menu and check it.

faq2-2

If you would like to set under 5.0 seconds for dance, please describe a playtime for dance in a playlist notecard.

6) What is [Play 0 sec] and Dance Play Time:0sec?

Dance Play Time:0sec is special value. When you describe playtime for dance animations, mldu5+ does NOT use default play time. But If you set 0sec as default playtime, mldu5+ ignores notecard playtime. Only pushing [NextDance] or [PrevDance], mldu5+ changes dance animations in playlist notecard.

faq2-3

7) After saving notecard completely, I can not change dance by [NextDance] botton.

If you are playing the playlist and edit its notecard at the same time, you need to change playlist to other and back to again after updating playlist completely. Automatic update script replaces playlist memory therefore re-loading memory is needed.

8) I don’t use 35 playlists now and would like to shorten reset time. How can I do?

You can do it. BUT DON’T DELETE ANIMATION X NOTECARDS.

Please move SynchManager X script from mldu5+ content folder to your inventory.
If you would like to use 12 playlists, you move scripts as follows;

SynchManager       
SynchManager 1
SynchManager 2
SynchManager 3
-------
-------
SynchManager 8
SynchManager 9
SynchManager 10
SynchManager 11
SynchManager 12<--- MOVE TO INVENTORY
SynchManager 13<--- MOVE TO INVENTORY
-------                  <--- MOVE TO INVENTORY
-------                  <--- MOVE TO INVENTORY
SynchManager 33<--- MOVE TO INVENTORY
SynchManager 34<--- MOVE TO INVENTORY

After moving SynchManager scripts to your inventory, Please reset mldu5+ from [Advanced] – [RESET].

After reseting scripts completely, you can see 12 playlists buttons on dialog menu [PLAYLISTS].

9) I see no text in notecard window... What’s happened?

It might depends on Linden Server performance, sometimes we can see no text in notecard. Please close window and open notecard again.

10) In dance machine mode, I edit mldu5+ texture. But Texture is animated. What’s this? Can I stop it?

When you rez mldu5+ on a ground, mldu5+ is dance machine mode.
You can edit/add mldu5+ texture and color.

Default apprearance mode makes texture animated. If you don’t like texture animation, please click left mouse button over 5 seconds and release it. This operation makes texture animation ON/OFF.

(日本語簡易版 Simple Japanese Version)

1)サンプルのモーションを消してリセットしたらエラーになります
mldu5+はリセット時に Playlist ノートカードに書かれているモーションの存在チェックをします。いづれかのノートカードに消したモーション名があるためエラーになっています。
リセット時のメッセージには存在しないモーション名と、そのモーション名が書かれているノートカード名が表示されているので、メッセージを参照してノートカードを修正してください。

2)プレイリストノートカードのモーション(アニメーション)を無効にする方法は?
その行の先頭に // をつけると、その行が無効になります。

3)ノートカードのすべてのダンス(モーション)を無効にしたいのですが簡単な方法は?
<> で囲っているプレイリスト名の前に // をつけてください。
もしくは、以下のように <> のプレイリスト名を残して、ダンス記述を全部削除してください。

<Perfume(3)>
</Perfume(3)>

上記の例の場合はアニメーション記述がないため、 Perfume(3) のプレイリストそのものも無効になり、ダンス選択のボタンに表示されなくなります。

4)Play time (再生時間)の制限は?
プレイリスト ノートカードで指定できるのは 1.0 秒以上です。1.0秒未満は使用できません。
1.0秒未満を指定するとデフォルトの再生時間が使われます。

5)ダイアログから5秒未満の再生時間設定ができません
ダイアログで [再生 +1秒] [再生 -1秒] を使って5秒未満のデフォルト再生時間を設定することはできません。5秒未満の設定はノートカードで行うことができます。

6)間隔設定で再生時間0秒があるけど???
特殊な設定になります。再生時間 0秒を設定すると、ノートカードに再生時間の記述がある、なしにかかわらず、次のダンスを自動的に再生しなくなります。つまり、今のダンスを踊り続けるようになります。

7)問題なくノートカードの保存(とリセット)が完了したけど、[次のダンス] でダンスが変わらないのですが?
たぶん、現在踊っているプレイリストを編集したのだと思います。一度他のプレイリストに変えて、プレイリストを指定しなおせば、だいじょうぶです。

8)35のプレイリストはしばらく使わないので減らしたい、、、
日本語の説明がすでにあるので以下をご覧ください。
http://snumaw.blogspot.jp/2012/07/mldu5.html

9)ノートカード編集のウィンドウに文字がなく真っ白になってます。。。
日本語の説明がすでにあるので以下をご覧ください。
http://snumaw.blogspot.jp/2012/07/mldu5.html

10)Rezしてダンスマシンモードにしてテクスチャを変更したら、テクスチャアニメーションになってテクスチャが動いています。止められますか?
はい。止められます。マウスの左ボタンで5秒以上長押しをして離してください。テクスチャアニメーションが止まります。止める、動かくはこの繰り返しになります。

2012年7月18日水曜日

明るすぎる facelight への対応

たしかに 2007 年当時はシェーダー(わらかない人は、光、影のセカンドライフ ビューワー内の表現って考えてればいいかな?)もまだまだだったので facelight を付けないとアバタ―がきれいにならない、ということがありました。

最近はグラフィックボートの性能もあがり、それに対応してビューワーのシェーダーも改善されてきたので、あんまり facelight を使う機会は多くないと思います。Windlight での設定などで、facelight なしでもきれいに見えますし、逆にグラフィックの設定で影付きなんかを選んでいると facelight で「白とび」する場合も多くなりました。

今日、ひさしぶりに、すごい facelight (っていうか、その light オブジェクト、、透明にもなってないんですけど。。。)を付けてるアバタ―がいらっしゃいました。。。。

suzukisonoko

こういう場合は前にも紹介したことありますが、自分のビューワーで対応することが可能です。お友達なら「明るすぎるよ~」って言えますが、そうじゃないと、、、、ね。

英語メニューでごめんなさい。日本語だと「開発」タブから選びます。

DevelopRender

英語で [Render Attached Lights] のチェックをはずすと、装着されているライティング オブジェクト(ま、ほとんどは facelight ですが)の明かりを消すことができます~。

ご参考になれば幸いです~

2012年7月13日金曜日

10 FAQs of multi motion mldu5+

Thank you for having an interesting in multi motion mldu5+.
I show some FAQ here about multi motion mldu5+. And please, please read “README” notecard first before using mldu5+. [簡易日本語版を最後に追記しました]
(Updated: I wrote the part2 10FAQs http://snumaw.blogspot.jp/2012/07/10-faqs-of-multi-motion-mldu5-part2.html )

1) Can I use mldu5+ as HUD?

Of course, you can. mldu5+ has system dialog menu therefore mldu5+ shows you the same operations in both modes – Dance Machine and HUD.

There are two differences between Dance Machine mode and HUD one.

- In HUD mode, you can not search yourself in SEARCH. Please use [DANCE ME] and [STOP ME] button for owner.
- In HUD mode, you will NOT see “Animate permission” dialog from secondlife. In Dance Machine mode, you have permission dialog. This is Secondlife specification.

hud

2) How can I use mldu5+ as HUD?

After rezzing mldu5+ on the ground and completed initial reset, take mldu5+ into your inventory. And then RIGHT mouse button click on mldu5+ in inventory and select [Attach to HUD].

Please touch(LEFT mouse button click) HUD mldu5+. You will see the same main dialog menu in your viewer.

3) Can I add other animations?

Yes, you can. Rez your mldu5+ on the ground and drop & drug animations from your inventory to mldu5+.

4) How can I run my animations added from inventory?

mldu5+ doesn’t have same functions with Huddles EZ that showing dance list buttons. After adding your favorite animations to mldu5+, you need to edit playlist notecard. After you add your dance name to playlist notecard (Animation X), you can see dance buttons in selecting playlist from playlist dialog – pushing [PLAYLIST] button on main dialog.

5) How do I edit playlist notecard?

Please see the name of “Animation” notecard. It’s most simple notecard reference as follows.

<S4DSample>
Step01
Step05
Step06
</S4DSample> 

<S4DSample> is playlist name. “S4DSample” wiil be shown as button on playlist dialog menu. When push [S4DSample], mldu5+ sends dance animation from Step01. There is no playtime option in each line therefore each animation will be played for default play time. You can see default play time on main dialog menu.

playtime

If you would like to change default play time, push [Time Settngs] button and select time you like on the next dialog menu.

Next, please open “Animation 1” playlist notecard. This reference shows you sequenced dance playlist with play time for each dance animation.

<Nostalogic>
SL_MMD_NOSTALOGIC0,10.0
SL_MMD_NOSTALOGIC1,30.0
SL_MMD_NOSTALOGIC2,30.0
SL_MMD_NOSTALOGIC3,30.0
SL_MMD_NOSTALOGIC4,30.0
SL_MMD_NOSTALOGIC5,30.0
SL_MMD_NOSTALOGIC6,30.0
SL_MMD_NOSTALOGIC7,30.0
SL_MMD_NOSTALOGIC8,40.0
</Nostalogic>

SL_MMD_NOSTALOGIC0 will be played for 10.0 seconds. This motion is an initial pose therefore no dancing. After 10.0 second, mldu5+ will run SL_MMD_NOSTALOGIC1 for 30.0 seconds.

After mldu5+ plays the last animation SL_MMD_NOSTALOGIC8 for 40.0seconds, get back to top animation “SL_MMD_NOSTALOGIC0”.

Playlist name should be within 12 charactars as you like. The limit number of dance animations depends on script free memory. You can check script freememory by reseting message like “ScynchManager ( x ) has ##### bytes freememory” as follows.

After editing playlist notecard, please push [SAVE] button on notecard window. Reset process will run automatically. If you don’t have any errors in the notecard, mldu5+ will shows you complete message as follows.

reset comp 

In mldu5+, there are some sample playlists in content. Please refer to these sample playlist.

6) Can I proceed to next dance animation in playlist quickly?

Yes, you can. plsease push [NextDance] button on main dialog.

next_prev_dance

7) I can’t understand which dance I do. How recognize it?

You can recognize current dance name by [INFO ON] (Dance Information ON) mode.
Select [Advanced] on main dialog and then select [INFO ON] button.
You can see a name of running animation as chat message as follows,

info_on

8) Can I select one dance I would like to play quickly?

mldu5+ provides you “DANCE SET” playing with playlist. Therefore if you would like to play “free style” dance like using Huddles EZ, I recommend you to use Huddles EZ.

Of couse, you can select dance by clicking [NextDance] and [PrevDance] button but it plays dances in order in playlist.

9) In editing playlist notecard, I have Error! Error! Error!

mldu5+ checks an existing of all animation you described in notecard in Content folder.
Please check reseting message. You can see the wrong animation name there. Especially TYPO, Upper/Lowercase sensitive of animation name causes reset errors.

reset erro

10) It takes long time to open mldu5+ Content folder. Is it bug?

Aug 13th 2012, new mldu5+(5.5+) has big solution for this problem – EditBox
Please check it out!!!
http://snumaw.blogspot.jp/2012/08/mldu5_5.html

It depends on SIM and Linden Asset server performance, but it will take over 30 seconds to open mldu5+ Content folder. Don’t worry. Please wait for a minutes.....

I think mldu5+ is not simple dance HUD. However if you get used to  mldu5+, your dance life will be extended, I believe.

I’m really happy to hear your feedback. Please feel free to send me notecard in-world or add coments on blog.

Enjoy your dance life in secondlife.

[brief japanese version]
簡易日本語版

1) mldu5+ を HUD として利用できますか?
はい、可能です。HUD として装着を選んで好きな位置に装着してください。
ダンスボールで使う時と HUD で使う時は以下に注意してください。
- HUD の場合は [検知] で自分がでてきません。[踊る] と [踊りやめる] を使ってください。
- HUD の場合はアニメーションの許可のダイアログがでませんが、ダンスボールの場合はアニメーションの許可のダイアログがでて応答しないと踊らないので注意してください。これは セカンドライフの仕様です。

2) どうやって HUD として使うのですか?
Rezして初期化が終わった mldu5+ を [取る] でインベントリに戻り、そこから右クリックで [HUD として装着] を選んでください。

3) 他のアニメーションを追加できますか。
はい、可能です。mldu5+ を Rez してインベントリからアニメーションをドラッグ&ドロップしてください。

4) 追加したアニメーションをどうやって動かすのですか?
mldu5+ は Huddles EZ のようなダンスボタン リストからダンスを選ぶ機能をもっていません。追加したダンスをプレイリスト ノートカード(Animation ~ Animation Xのいずれか)に記述することで、追加したダンスを [ダンス選択] からプレイリスト名のボタンを選んで踊らせることができます。

5) プレイリスト ノートカードの編集はどうやるのですか?
Animation という名前のノートカードがもっとも簡単なノートカード記述方法のサンプルになります。<S4DSample> ~ </S4DSample> の間に書かれているダンスを順番に再生します。この場合 S4DSample がプレイリスト名としてダイアログに表示されます。
再生時間が各行に書かれていないので、この場合は省略時の再生時間を使用します。省略時の再生時間はメインのダイアログに表示され、[間隔設定] から変更可能です。

Animation 2 は各行に再生時間を記述したサンプルになります。それぞれの行に書かれている再生秒数のダンスを再生すると、次の行に自動的に移ります。
最後までダンス再生すると、最初にもどってダンス再生をします。それを繰り返します。

なお、プレイリスト名は英数半角文字で 12文字 以内、かな漢字だと 4 文字以内に抑えてください。

ノードカード編集の [保管] を押すと、スクリプトリセットが自動的に開始されます。ノートカードチェックで問題がなければ、完了しましたのメッセージが表示されます。

6) 素早くノートカードに記載しているダンスを変更するにはどうしますか?
再生時間の終わりを待たなくても、メインダイアログの [次のダンス] ボタンをおせば、ノートカードに記述した順番で次のダンスが開始されます。

7) どのダンスを踊っているかわかりません。どうやればわかりますか?
[詳細設定] の [ダンス情報ON] を押してください。チャットメッセージに踊っているダンスの名前と再生時間が表示されます。

8) 追加したダンスの中から1つのダンスを指定して踊りたいのですができますか?
mldu5+ は複数のダンスを記述したダンスセット(プレイリスト)を使うため、ダンスを個別に指定して踊る「フリースタイル」のようなことは得意ではありません。その場合は Huddles EZ の併用などをお勧めします。

9) ノートカード編集で Error! がでます
おおくはダンス アニメーション名のタイプミス、大文字小文字違いなどで、mldu5+ が記述されたアニメーションチェックをした時に無いものと判断して Error! にしています。記述されているのにないアニメはアニメーション名がリセット メッセージに表示されているので、それをチェックしてください。

10) 中身タブ(フォルダー)を開くのに時間がすごくかかる
SIM やリンデンのサーバー状況に依存しますが、30秒くらいはかかると思って気長に待ってください。

2012/8/13 新しいmldu5+(5.5+) はリモート更新機能を追加して、この問題を解決しています。以下のブログを参照ください。
http://snumaw.blogspot.jp/2012/08/mldu5_5.html

mldu5+ はシンプルなダンス HUDとは言えません。それでも使い方に慣れていただくと、きっとセカンドライフ内でのダンスがさらに面白くなると思います。よろしくお願いいたします。

2012年7月11日水曜日

mldu5+ ノートカードとプレイリスト

2012/8/13 新しい mldu5+(5.5+) ではノートカードのリモート更新機能を追加して、ここで紹介しているいくつかの問題を解決しています。以下のブログを参照してください。
http://snumaw.blogspot.jp/2012/08/mldu5_5.html

こんにちは。今日は multi motion mldu5+ の、たぶん難しいなぁ、と感じるノートカードとプレイリストの関係をご紹介したいと思います。MLDUシリーズは 2008年一般発売の MLDU3 から同じ仕組みなので知っている人も多いとは思いますが、mldu5+ では複数モーション指定とアバタ―位置・回転指定が加わった、そして扱うプレイリストの数が 35 に増えたのでノートカード(Animations, Animations 1, Animations 2, ….)をみると「うわぁ、、、」となっちゃうことが多いと思います。

コンテンツロード中

「中身」が表示されるまで時間がかかりますが、、、待ってください。状況にもよりますが 表示まで30秒以上かかることがあります。

コンテンツアニメーション枠付き
(フルパーミッションの編集可能な Animations が表示された状態)

multi motion mldu5+ (MLDUシリーズ) は Huddles EZ のようなダンスリストから踊りたいダンスを選択する方式をとっていません。各ノートカード(Animation X) に1つのダンスを入れればできないことはないのですが、現実的ではなく、そもそものコンセプトが違うからお勧めできません。(そうしたい場合は Huddles EZAD を併用するが一般的ですね)そのコンセプトのお話しから始めます。以下、文章が長いですがお付き合いいただけると幸いです。

 

MLDU の成り立ち

MLDU は元々、そう、まだ「ダンスマスター」(ダンマス)と呼ばれる役割の人が明確にいなかったころのクラブでの利用を念頭に、複数のダンスを順番に(ときにはシャッフルして)自動再生することを目的として作りました。テストをしていたクラブが「ASUKA 雷神」だったので 50 人程度のアバタ―が同時にシンクロダンスを踊れる仕組みを作るのが最初でした。

BPM (Beat Per Minutes) が同じの、ジャンル的にも似たようなダンスをその再生秒数と一緒に1枚のノートカードに記述して、そのプレイリスト(当時はダンスセットという呼び方をしていました)を選択すれば、BPM が比較的近いダンスを複数楽しめるようにしたのです。実際のダンス名ではありませんが、以下のような書き方をしていました。

<GLAMOROUS>
SineWave001,   22.4
SineWave005,   26.2
AbranimationA, 14.0
Animazoo01,     18.5
3FX dance,        22.0
</GLAMOROUS>

そうすると、ダンス選択のプレイリスト ダイアログには [GLAMOROUS] というラベルのボタンが出てきます。[GLAMOROUS] ボタンを押せば、SineWave001 を 22.4 秒、次に SineWave005 を 26.2 秒、、、と続き、最後の 3FX dance を 22.0 秒再生したら、またトップの SineWave001 に戻る、という動きをします。

この単純なノートカードでも、特に ASUKA 雷神オーナーの LINZOO さんは、ダンスで動き回るアバタ―の位置が次のダンスの開始位置と「重なる」時間を測定して、ノートを構成していったのでした。その仕込みがあって、複数のダンスなのに一連の流れで踊っているような「プレイリスト」を作成していたのです。ダンスとダンスのつなぎでいきなり位置がかわるようなことがあまりないわけですね。

実はこの作業は現在の SL ダンスの仕様が色濃くでています。ダンスアニメーションの「頭から終わり」の再生時間はコントロールできるのですが、「途中」からダンスを再生するのは普通はできません。凄腕のダンマスの中には Huddles を複数つかって「オーバーライド」というテクニックを使い、ダンスの途中から再生させる猛者もいますが、相当難しい操作と勘を必要とするので一般的ではありません。(オーバーライドについてはここでは詳しく説明しません。)

つまり、、、複数のダンスを組む場合は、ダンスの「最初」のポーズや位置がとても重要になるのです。ダンス慣れしている人だと、最初の位置とポーズを見ただけで使えるか使えないかが判断できる、という話を聞いたことがありますし、本当にそう思います。

 

MLDU5/mldu5+ での仕様拡張

MLDU4 まで上で紹介したノートカードの書き方で「シンクロダンス」「時間差ダンス」「シャッフルダンス」などのダンスモードの切り替えを可能にしていました。シンクロはアバタ―全員が同期して踊る、時間差はサイクル(mldu5+ではダンスグループと読んでいます)という番号順に 0.5 秒とかダンスの開始を遅らせて踊るモード(チューチュートレインを想像してください、、、というか、あれをやるために機能追加しましたwww)、シャッフルはサイクルごとにランダムにプレイリストの中からダンスを選んで再生させるダンスモードになります。

2007年当時からセカンドライフにカップルダンスはありましたが、BallRoom などで Intan というダンスボールが置かれていて、ドレスやタキシードを着て、ソーシャルダンスを踊る、、、というのがメインでしたので、個人的には興味がありませんでした。ただし、3FX Entertainment のカップルダンスはとてもクールでいつかこのダンス モーションを使えるようにしたいな、、、という思いはありました。

2008年に MikuMikuDance が出てくると、3DCG とダンス好きな私としてはスルーすることができず(笑  MikuMikuDance を 2008年後半くらいからいじりはじめました。そしてすぐに VMD と呼ばれるモーションを BVH モーションファイルに変換するツールが公開されました。それが mio になります。ただし、そのままの BVH ファイルでは SL では利用できず(ボーン構造/ボーン名称が違うため)、うーん、、、となっていたところに SL ユーザーでもあり、プログラマーでもある esetomo さんが MMDBVHToSLBVH.exe をオープンソースで公開されました。

これで MMD の VMD モーションファイルの SL へのインポートが可能になり、それまで SL ではあまりなかった 3人用ダンス(特に Perfume ですね)や4人用ダンス、5人用、6人用、、、という MMD の中でも力作のモーションの再利用が可能になったのです。

実は Secondlife のカップルダンス専用マシンの Intan は 2006年(?)少なくとも2007年にはすでに発売され、カップルダンスマシンのスタンダードとしての地位を確立していました。しかし、その後のスクリプト アップデートや拡張は行われておらず(私の知る限りだと)、3人以上のダンスに対応する、、、と表明していましたが結局されずにそのまま、と記憶しています。

Intan の Web page : http://intan.eksotics.com/?command=page&id=27

つまり、3人以上のダンスを汎用的に(これ重要)踊らせるダンスマシンは、たぶん、、プライベートで作られた方はいると思いますが、インワールドや marketplace で販売しているのをみたことはありませんでした。Huddles EZAD を全員がつけて /99n オプション、、、というのもあるのですが、汎用的ではありませんし、これではアバタ―の「位置と回転」の制御ができず、2人なら手作業や固定sit ballを使えばなんとかりますが、それ以上になるとかなりむずかしそうだったので、 MLDU4 に機能追加することになったのです。(というか、単純に MMD のグループダンスが踊りたかったww)

そこで、MLDU4 が持っていた「サイクル」を使って、時間差ではなく、同時に違うダンスを踊らせる拡張をしました。サイクルという名称がわかりづらかったので、ダンスグループという名称に変えたのもこのためです。以下は3人用ですが、Perfume-Global.com で配布された 3人用ダンスモーションのプレイリストです。

<Perfume(3)>
aachan_0|kashiyu_0|nocchi_0, 30.0, 0|0|0, 1.5|0|-1.5
aachan_1|kashiyu_1|nocchi_1, 30.0, 0|0|0, 1.5|0|-1.5
aachan_2|kashiyu_2|nocchi_2, 30.0, 0|0|0, 1.5|0|-1.5
aachan_3|kashiyu_3|nocchi_3, 30.0, 0|0|0, 1.5|0|-1.5
</Perfume(3)>

<> の中にある “Perfume(3)” という文字がラベルとしてダイアログのボタンとなります。”(3)” はユーザー(人間)に対して「これは3人用ですよ」という意味だけで、スクリプトではまったく参照していません。何人用のダンスなのか、最大のダンスグループはいくつなのかを判断するのは、アニメーション名で「|」で区切られている数を数えて判断します。

aachan_0|kashiyu_0|nocchi_0

この記述から、スクリプトは aachan_0 と kashiyu_0 と nocchi_0 を扱えばいいんだ、だからダンスグループ数は3つ必要なんだ、と理解します。(つまり、ダンス名/アニメーション名に使えない文字がひとつ増えたことになります。カンマ ( , ) と縦棒(パイプ)記号 ( | ) は使えません。名前を変更するか、利用をあきらめるしかありません。)

30.0 は 30.0 秒再生しなさい、という意味です。これはすべてのモーションに対して 30.0 秒再生させる共通の指定なので一つだけの記述となります。(個別に、、というやり方はありますが、今回は割愛します)

0|0|0 はX軸の移動です。X軸は前後を意味します。何に対しての前後かといえば、mldu5+ から REZ した Sit ball の各ダンスグループ番号表示の「玉」に座った時に向いている方向の移動距離となります。
すべてのダンスグループの移動は 0 なので、移動なし、という意味です、
ちなみに、慣れてきたら、0|0|0 と書かずに 0 を一つだけ書いても有効です。

1.5|0|-1.5 はY軸の移動です。Y軸は左右を意味します。ダンスグループ0 は 1.5 m Y軸移動なので左側に、ダンスグループ1は0なので動かず、ダンスグループ2 は –1.5m なので Y 軸で右側に移動することになります。

以降はなにも記述がありません。よって、何もしない(動かない、回らない)という意味ですが、本当は Z軸移動(上下)、X軸回転(アバタ―正面からみて横にぐるぐる回る)、Y軸回転(アバタ―正面からみて前転・後転のように回る)、Z軸回転(アバタ―の頭上からみて、ぐるぐる回る)の数値をいれます。移動は m 、回転は 度 になります。

もし、ダンスグループ0をZ軸回転で90度左周り、ダンスグループ2を -90度回したい(90度右回り)場合は、前にある数値は省略できません。以下のようになります。

a|b|c, 30.0, 0|0|0, 1.5|0|-1.5, 0|0|0, 0|0|0, 0|0|0, 90|0|-90

0|0|0 は 0 と省略できるので、以下のように書くこともできます。

a|b|c, 30.0, 0, 1.5|0|-1.5, 0, 0, 0, 90|0|-90

慣れてきたら省略形のほうがわかりやすいと思います。

 

ノードカード プレイリスト 編集のコツと注意

1) アニメーション記述があるが「無効」にしておきたい。

最初のプレイリスト名を「//」でコメント化してください。

//<Perfume(3)>
aachan_0|kashiyu_0|nocchi_0, 30.0, 0|0|0, 1.5|0|-1.5
aachan_1|kashiyu_1|nocchi_1, 30.0, 0|0|0, 1.5|0|-1.5
・・・・・・・

なお、プレイリスト名の前に // がなくても、以下のようにその中に記述がない場合も無視されます。

<Perfume(3)>
</Perfume(3)>

無視されると、プレイリスト ダイアログにボタン名として表示されません。

2) 一行だけ無効にしたい

上の 1) 同様に「//」でコメント化します。その行は無視されます。

<Perfume(3)>
//aachan_0|kashiyu_0|nocchi_0, 30.0, 0|0|0, 1.5|0|-1.5
aachan_1|kashiyu_1|nocchi_1, 30.0, 0|0|0, 1.5|0|-1.5
aachan_2|kashiyu_2|nocchi_2, 30.0, 0|0|0, 1.5|0|-1.5
aachan_3|kashiyu_3|nocchi_3, 30.0, 0|0|0, 1.5|0|-1.5
</Perfume(3)>

3) 2行目以降、位置・回転指定で同じことを書くのはどうかと。省略できないか。

残念ながらできません。省略すると 0 が入っていると認識します。
0はなにもしない、ではなく、ダンスグループのボールの位置・向きを意味します。
これにより、マルチモーション、シングルモーション、マルチモーション、、とプレイリストを切り替えても、適切な位置に「戻る」ことを可能にしています。

4) ダンスがおわったらしばらくそのままにしておきたいのですが、、、

たとえば 600 秒とかを指定すれば、 10分はその状態から動きません。もう一度繰り返したい場合は、メイン ダイアログの [次のダンス] ボタンを押せば、トップに戻ります。

5) 動画撮影やステージで曲の出だしにあわせてダンスを踊りたいので出だしは止まったままにしたい

同梱されている MMD グループダンスモーション、もしくはシングルモーションは初期ポーズアニメーションを作成しています。Perfume の例でいえば、末尾が 0 のものは初期ポーズです。ただし、ノートカードで「再生秒数」を指定しているので、次のモーションが始めるので、上記 4) と同じように 600 秒といった大きな数字にしておき、タイミングをあわせてメイン ダイアログの [次のダンス] ボタンを押して合わせる使い方になります。

6) ノートカード Animations は順番に使わないとだめですか?とびとびでは有効になりませんか?

問題ありません。たとえば Animations と Animations 3 と Animations 10 を有効な記述にして、あとはコメントもしくは空にしたとします。プレイリスト名は Playlist, Playlist3, Playlist10 とします。
プレイリスト ダイアログのボタンは以下のように表示されます。

プレイリスト有効

有効なプレイリスト名を順次詰めて表示します。たとえば、この状態で、Animations 6 で PlayList6 を有効化すると、以下のように並べ変えて表示します。

プレイリスト有効2

7) ノートカードを開いたら真っ白なんですが。。。。

アセットサーバーからのデータ取得に失敗した時など、たまに真っ白になっているときがあります。その場合はだいたい右上の赤い鍵マークがついたままになっていたりします。
ノートカードを閉じて、もう一度開きなおしてみてください。

真っ白ノートカード赤丸付

8) ノートカードが正常に保存完了しているかどうか注意してください!!!!

コンテンツ/中身に入っているオブジェクトが多くなると、どうしてもそれらを管理しているリンデンのアセットサーバーの処理が遅くなるようです。中身の表示が遅くなるのはまだしも、ノートカードの修正が反映されない場合もありました。

この問題は昔からあります。以下の記事も参照してください。
http://snumaw.blogspot.jp/2009/01/mldu.html

9) 自動スクリプトリセットについて

ノートカードを編集し、[保存]を押すと、自動的に該当するスクリプトのみリセットします。

自動スクリセット 

タイプミスや、ダンスアニメーションが mldu5+ に入っていない場合はエラーになります。mldu5+ で事前チェックにより、実行時にアニメーションがない、というような事態を回避します。

スクリセエラー
(最後の行に「アニメーションが存在しないので PlayList6 は処理を中断しました。」とある)

もし、この状態でノートカードのウィンドウを閉じていなければ、継続してノートカードを修正し、[保存] ボタンを押すことで自動スクリプトリセットが走ります。この作業を何度も繰り返すことができます。

ただし、上記 7) のようにノートカードが「真っ白」な状態になってしまった場合は、一度ノートカード ウィンドウを閉じて、再度ノートカードを開く必要があります。

10) 中身(CONTENTS) フォルダーを開く時間を短くしたい、、、

6人用以上に同梱している TEST 版をお使いください。中身の表示を早くするには、中身に入っているオブジェクトの数を少なくするしかありません。編集用の中身の少ない mldu5+ を代替としてお使いいただき、ノートカード、アニメーションを本番にコピーしてください。

11) いやいやいやいや、、、、35 もプレイリストは当分使わないし、、、

わかりました、、、、、
以下の手順でプレイリスト 管理スクリプトを抜いてください。

- 「中身」を開く
- もしプレイリストを10個しか使わない場合は SynchManager から SynchManager 9 までを残し(全部で10個)、SyncManager 10 から SynchManager 34 までを自分のインベントリにドラッグ&ドロップして移動してください。(コピー不可なので移動になります)

SynchManager移動

- mldu5+ をタッチし、[詳細設定] の [リセット] を押してください。

リセット

- リセットが完了したら、[ダンス選択] を押してプレイリスト ダイアログを出して数を確認してください。10個のみボタン化されています。無効なものは [ -  ] で表示されています。

プレイリスト1

プレイリスト2

完全リセットの時間は短くなりますが、中身を開いてオブジェクトを表示させるまでの時間はこの程度ではあまり効果はありません。


長くなりましたが、ひとつでも参考になれば幸いです~

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様から再配布のご許可をいただいております。

2010年4月4日日曜日

SL Viewer2 は Outfit (アウトフィット) の活用を!

Secondlife の Viewer2、慣れない部分もあるのでみんな苦労しているみたいですね。
アバターが綺麗になった、という人もいれば、不安定になった、、、などという人もいて、それぞれのようですが、私は比較的安定して使っています。

そんな中で最近になって「あ~、これは本当に便利」と思うのは、アウトフィットの機能です。

え?って思う人もいるかもしれませんが、Viewer1 とまったく違う実装方法なので、そのポイントを理解するとインベントリ内のアイテム数の節約になり、かつ、着替えが本当に楽になります。

Viewer2 のアウトフィットのポイントは「リンク」です!

Windows だとショートカット、Mac だとエイリアスっていうようですが、これまでのアウトフィットはおきにいりの組み合わせの「実態」をフォルダーにいれていました。
なので、コピー可能なものはコピーされ、コピー不可のものはアウトフィットのフォルダーに移動していました。

この「コピー」や「移動」をせずに、お気に入りの服や、アクセサリ、Hair、Skin の「リンク」を集めて、ひとつのアウトフィットを作っているんですよ。なので、オリジナルのフォルダーからコピーや移動することなしにアウトフィットをどんどん作ることが可能になりました。

なので、注意しなければいけないのは、これまでの「アウトフィット」から、新しいアウトフィットを作ると、インベントリ内でコピーされたもののリンクを使っちゃうので、インベントリ内のアイテム数節約になりません。同じアイテム(のコピー)を使っている場合は、重複しているものは削除して、なるべくショップオリジナルのフォルダに戻しておいて、そこから装着、そしてアウトフィットを作るといいんですよね。

もちろん、Dance Hud なんかも Link でアウトフィットに含めることができるので、常に使う HUD はアウトフィットに登録しておけば、着替えたときにはずれることもありません。ほんと、これは便利です!

K.H.I. Sexy Tech Girl

お試しください~。

2009年11月17日火曜日

ズームの違いで

ズームひとつとっても奥が深くて。。。([追記]ズームとドリーの違いみたいです)
通常、スナップショットで被写体に向かってズームするときは ALT キーとマウスの左クリックを使って寄ると思います。

[基本形]
















[Alt+左クリックでズーム(ドリー)]














でも、この構図ってマシンガンだけがやたらと大きくなってしまいます。もちろん、この構図がベストのシチュエーションもありますが、Secondlife ビューワーの Zoom 機能を使うと違った構図を楽しめることができます。

ビューワーのズームは Ctrl + 0(ゼロ) で可能です。ズームの解除は Ctrl + 9 になります。

[Ctrl + 0 でのズーム]














スナップを撮るときだと、こちらの寄りのほうが自然に見えたりします。
動画の撮影なんかでも Ctrl+0 のズーム状態のほうが面白い絵が撮れたりするのですが、カメラワークがものすごくセンシティブになるので簡単ではありません。

で、今月のブログ バナーに採用しました ^^;

[追記]
いつもいつも jinko さんのブログには勉強させられます。
この違い、「ズーム」と「ドリー」の違いみたいですね。
jinko さんのブログ
自分を見るカメラ(2)
jinko さんのブログに紹介されていたカメラワークに関する記事
カメラワーク @ EDIUS.jp
ありがとう~

2009年10月8日木曜日

[LSL] データを保存したい : llGet/SetObjectDesc

最近よく私が使う手です、、、(笑
スクリプトで、あるデータの保存をしたい場合、おおくは list にデータをいれて、のちのち使う、ということをしますよね。
ですが、list はスクリプトのリセットがかかってしまうと初期値にもどります。
そこで MLDU などでも使うのがユーザーさんが編集可能な「ノートカード」に使うべきデータ/情報を記述してもらい、スクリプトはそこからデータを読み込む、、、という方法をとってきました。
でも、、、ノートカード使うほどじゃない場合もあるわけで。
なれるとノートカード読み込みスクリプトはスラスラかけるのですが、それでもエラー処理をいれることになります。
また、ノートカードは明示的にノートを開き、ユーザーが編集して保存する、というステップを踏まなくてはならず、スクリプトからノートカードにデータを書き込みことができません。さらに編集後にノートカードを読み込む、もしくはスクリプトのリセットをかけなければなりません。
お友達の中には llHTTPRequest を使って、Web サーバーにデータを飛ばして、必要なときにとりにいくようなスクリプトを書く人もいますが、Web サーバーを用意するほどのものでもない、、、ってあるんです。
スクリプトのリセットがかかっても、データを保持できる場所で、スクリプトからの書き込みが可能、それも外部の Web サーバーを使わずに、、、となると、私の知る範囲だとプリム(オブジェクト)の「説明」の欄になります。(オブジェクトの名前も可能ですが、、、それはちょっとやりすぎ、、、、と思います)
ObjectDesc
この「説明」は llGetObjectDesc で現在のデータ(文字列)を取得し、llSetObjectDesc でこの「説明」の欄に新しい文字列をいれることができます。
もちろん、オブジェクトを「取る」でインベントリに戻しても、再度 Rez したときにその情報は残っているので再利用することが可能です。
注意点は以下です。
1. 日本語は使えません。英数字のみ使用することができます。日本語をいれてもエラーになりませんが、取り出すと ??????? となってしまいます。 (ただし、、、Base64 とかのエンコードを使って日本語の保持はできます。エンコードについてはこちらを参照してください。)

2. 127バイトまで利用可能です。それ以上いれてもエラーにはならず切り捨てられます。

3. changed イベントなどでの変更チェックはできません。
4. もちろん、、、関係ないユーザーを含めた全員が編集でここの値を見ることができます。
たとえば設置型オブジェクトのスクリプトでチャット・チャンネルをユーザーが自由に設定できるようにした場合など、この「説明」を使ったります。ユーザーさんがどんなチャンネルを指定するのかわかりませんし、ノートカードを使うほどの情報量でもなく、かつ、スクリプトのリセットを行っても情報を残したい場合などに重宝しています。
ちなみに、SIM のローリング・リスタートなどではスクリプトのリセットは行われません。なので、list に保持したものを引き続き使うことができます。どちらかといえば、ユーザーさんに好評なのは上記の例でいえば「自分がどんな値を設定したか一目瞭然」という意見が圧倒的に多かったです。
ご参考になればなによりです~
[追記 2009.10.9]
上記の方法のほかに、ノートカードを読み込まず、データ保存して再利用する方法があります。これは MLDU で使っている方法ですが、以下のような名前のノートカードを用意します。
00:dance1

スクリプトでは、llGetInventoryNumber(INVENTORY_NOTECARD) でプリムのフォルダにあるノートカードの数をチェックし、その数の分 for をまわして、ノートカードの名前をとり、先頭3文字が 00: だったら、それ以降の文字を取り込む、というものです。
ユーザーさんには「00: のあとに xxxxx をいれてね」と頼みます。ノートカードを開かず、ノートカードの名前の変更だけをお願いする方法です。
これでも、スクリプトからの書き込みはできません。スクリプトからの書き込みが OK なものは基本的に llSetXXXXX になるので、不揮発性のデータエリアとなるとやはりオブジェクトの名前か説明になってしまいます。

2009年10月4日日曜日

スクリプトの負荷が高いです。。。

「この前、SIM オーナーさんからネジ(ダンスポジション装置)の負荷が高いと指摘されて、、、」というフィードバックをユーザーさんからいただきました。

うん、、、? ネジ、負荷が高くなるような、for 文をまわしたり、オープンチャットを聴くような処理はしていないのですが、そういわれたのは事実のようですから、検証してみました。

結論を言えば、Sit したオブジェクトには Sit したアバターの CPU 時間が加算されるので、オブジェクト単体の CPU 時間ではない、、、ということなんです。

まず、、ネジの場合。わかりやすくするために FDP TEST という名前に変更します。
2a
この状態で SIM オーナーさんや管理者が利用できる Region/Estate の Debug の「Get Top Scripts..」でこの FDP TEST の CPU Time を確認します。0.002 秒ですね。
3a 
ここに Sit して、同様に CPU Time を確認します。0.215!!! に増えました。
5a
これだけを見ると FDP TEST はとっても負荷の高いスクリプト オブジェクトに見えます。そう思って当然ですよね。
名前フィルターをはずして、CPU Time の高い順にすべてのオブジェクトを表示してみます。
6a
赤い枠内の Location をみてください。FDP TEST とアバターの名前があり、高さはちょっと違いますが同じ位置です。CPU Time は FDP TEST が 0.210、アバターが 0.207、、、これをみてピンときました。その差は 0.003、、、。これが本来の FDP TEST の CPU Time じゃないかな、、、と。アバターの CPU Time は装着されているアクセ、服、靴、髪などに含まれているすべてのスクリプト時間が合算されているようです。

ほんとうかな???と思い、今度はプリムを作成し、なにも手を加えないスクリプトを追加してテストしてみました。

ボックスをつくります。
7a
スクリプトを追加します。何の手も加えません。
8a
この状態で CPU Time を調べると、0.001 秒の CPU Time です。
9a
この TEST BOX に Sit して CPU Time を調べます。結果、この箱も 0.232 に、、、。このようなスクリプト オブジェクトでも 0.232 ということですから。たしかにアバターの時間が加算されているようですね。
10a

最後に CPU Time が低いアバターでテストしてみます。なにもつけないと Top Script のリストに表示されないので、フェースライトだけをつけておきます。0.002秒の CPU Time のアバターです。
11a 
先ほど同様になにも手を加えないスクリプトの入った BOX に Sit して CPU Time を調べます。すると、0.004秒になっています。やはりアバターの CPU Time が加算されていますね。
13a 
このあたりのドキュメントないのかな、、、と思い調べてみましたが、なかなか「これ!」といったのが見つけられませんでした。

2009年3月16日月曜日

Secondlife Viewer 16:9 のウィンドウ画面設定方法

動画撮影のとき、16:9 の縦横比にビューワーを設定して撮りたいと思いますよね。
ところがデフォルトでは 640x480, 800x600, 720x480(NTSC), 768x576(PAL), 1024x768 といった 4:3 の既定サイズしかありません。ここに 16:9 の設定サイズがあらかじめあったら幸せになるかも、、、と思ったことありませんか?(笑

さっき、ふと思い立ち、おおよそ SL Viewer は xml ファイルでこの手の設定を持っているのでやれるかも、、、と Google 先生に聞いたら、ばっちり教えてくれたし^^;

Google 先生の回答(元ソースは JIRA ですが、このリンクはGoogle のキャッシュです)

ドロップダウンに見事に追加されました。(^^)b

wWindow


メモ帳だと xml ファイルを構造化して表示してくれずつらいので、xml エディタとかスクリプトやっている人なら SciTE エディタで開くと簡単です。(なにそれ、、、の人は、、、ヘタにいぢると動かなくなる恐れありなので、、、手をださないほうが無難かもです)
Windows の場合は、Program Files フォルダに SecondLife、RC なら SecondLifeReleaseCandidate フォルダがあるので、使っているビューワーのフォルダの [skins] - [default] - [xui] を展開して、自分が設定している言語フォルダを開きます。
英語版なら en-us、日本語版なら ja です。[追記] 英語環境の en-us の xml を編集することで 日本語モードでも有効になります。ja はいぢらなくてだいじょうぶ! 
そこに panel_preferences_graphics1.xml という xml ファイルがあるので、それを開き <combo_box> タグで以下の赤字のように 1280x720 を追加し Save してビューワーを立ち上げると完了です。

    <combo_box allow_text_entry="false" bottom="-67" enabled="true" follows="left|top"
         height="18" left="185" max_chars="20" mouse_opaque="true"
         name="windowsize combo" width="150">
        <combo_item type="string" length="1" enabled="true" name="640x480" value="640 x 480">
            640x480
        </combo_item>
        <combo_item type="string" length="1" enabled="true" name="800x600" value="800 x 600">
            800x600
        </combo_item>
        <combo_item type="string" length="1" enabled="true" name="720x480" value="720 x 480">
            720x480 (NTSC)
        </combo_item>
        <combo_item type="string" length="1" enabled="true" name="768x576" value="768 x 576">
            768x576 (PAL)
        </combo_item>
        <combo_item type="string" length="1" enabled="true" name="1024x768" value="1024 x 768">
            1024x768
        </combo_item>
        <combo_item type="string" length="1" enabled="true" name="1280x720" value="1280 x 720">
            1280x720
        </combo_item>
    </combo_box>

この方法は、、、たぶんバージョンあがったりすると消えるかも、、、ですね。
ご自身の責任でカスタマイズしてください。詳しくは JIRA を読んでくださいね。

2008年12月15日月曜日

スナップショットをブログ感覚で - flickr -

前回の投稿でものすごく綺麗なフォトが flickr にあがってます、、、という紹介をしましたが、そういう使い方じゃなく、ブログ感覚で気軽にスナップショットをあげて、その場所や SLURL なんかを一緒に付記するなんて使い方を最近してます。

PC の PrintScreen キーで SS (Screen Shot : スクリーンショット) 撮って、フォトショとかで切り取って png や jpeg で保存して、そこからアップロードって、、めんどくさいと思っている人にはいい方法かもしれません。flickr にさえあげておけば、slmame みたいなブログでもその画像を再利用できますから。

こんな感じで。(ただいま INSOLENCE で恒例の X'mas プレゼント中~です)
3106745883_fab0a74fe2

ですが、、、あいかわらず、flickr は何がどこにあるのかわかりづらく・・・(笑

まず、flickr のアカウント、、、無料なのでとってみましょう。アカウントの作り方はこのあたり、、を参考に
アカウントをもっていらっしゃるのであれば、自分の Home ページのメニュータブの [You] をクリックして展開し、[Your Account] をクリックします。

flickr1

すると、あなたのアカウント情報が表示されます。
アカウント情報の [Email] をクリックします。
flickr2
すると、flickr に登録している email アドレスと一緒に [Your Flickr upload email] というセクションがあり、そこに email アドレスが表示されています。このアドレスに画像を送ることで flickr に登録される仕組みになっています。
flickr3
このアドレスを書きとめておいて、次は Second Life からの操作となります。
Second Life Viewer でのスナップショットの撮り方ですが、通常は [ファイル] - [Take Snapshot(日本語だとスナップショットを撮る?)] ですが、そこに書かれているショートカットの [Ctrl+Shift+S] を覚えると楽です。これを押すと [SnapShot Previe] ウィンドウが開きます。
flickr4
ポイントは [Send via email] (ごめんなさい、英語で、、)が選ばれていることと、[Size] を好みのものに調整していくことでしょう。あと、取り直しは何度でもききますから、良いショットを撮って [Send] ボタンを押します。
すると、スナップショット送信用のウィンドウが開くので、場所の情報や SLURL などをコピーして、本文のところに貼り付けます。残念なのは日本語は通らないようなので注意してください。これは flickr の問題ではなく Linden の問題です、、、。
あと、送信先の email アドレスは、さきほど flickr で書き留めておいた email アドレスになりますね。
flickr5s
これで [Send] で flickr に送信されます。意外にこの登録処理は早くて、flickr サイトの自分の photostream にいくと、すでに登録されていることが確認できます。この時、画像つき email には Linden のロゴも張り付いているのでこれを削除します。
flickr6
これで画像登録終了です。
これ、ブログよりお気軽な感じで記録を残せるのでお勧めです。
あとは、Linden がメールとかエンコードとか、、、ちゃんと対応する気になってくれると日本語が、、、(お友達の話だと、結構前からリクエストがあがっているようなのですが、、、)

2008年11月22日土曜日

明るすぎるアバターが傍にいたら・・・

本日、GION FINAL イベントとして Yaz Rockett ライブが行われます。
祇園プロデューサーのさみーさんのブログにも書かれていますが、3つのお願いがあります。

・光源(フェースライトなど)使用禁止
・ド派手なパーティク使用禁止
・HUD(スクリプト類)使用禁止

特に、、、時々ものすごく明るいフェースライトをつけているアバターがいますよね。。。(それも、、、1つじゃなくて、3つも4つもつけている、、、つけているアバターは気がついてないかもしれませんが、、、)
WindLight 以前、Windlight 直後はフェースライトがものすごく重要だった(調整が難しい、、、)のですが、最近は SIM にある光源だけでも良い感じになってきましたし、逆に光源がいっぱいある状況だと白浮きすることのほうが多くなりましたね。

今回のようなイベントだと、フロアの光源もきちんと計算されるでしょうし、暗すぎることはないと思うので、フェースライトはぜひ外して参加したいですね。フェースライトをつけたアバターがあつまると光源がいっぱいある状況になってしまいますし。

でも、、、知っているアバターならともかく、知らないアバターに「フェースライトを外してください」って注意するのは勇気がいります。無用なトラブルも起こしたくない、、、というのが本音。会場にもたぶん注意事項としてあるわけだから、もともとあまりそういうことを気にしない、気にしたくないアバターだと、、、めんどうですし。(もちろん、気がつかなかった、、もあるでしょうが)

そういう時は、以前 Torley のビデオで紹介されていた方法で楽しみましょう。
フェースライトだけじゃなくて、アバターから出ているパーティクルに対しても同じように対処できます。


装着しているプリムのライトを消す方法(フェースライトを消す方法)
この方法は自分も含めてアバターに装着されているプリムの光源(ライト)を消します。
以下はフェースライトをつけた状態で、必要になるメニューを出したスクリーンショットです。
0
1. CTRL+ALT+D(Win)で Advanced メニューバーを表示する (Mac は Opt + Ctrl +D)
2. Advanced メニューの [Rendering] をクリックする
3. Rendering メニューの [X Attached Lights] をクリックする。
すると、X が消えた状態になります。それが以下です。
1
フェースライトが消えましたね。(ただし、、、自分のフェースライトは、自分が外さない限り、他の人にとっては光源となっているので、自分のフェースライトを消したい場合は、フェースライトをオフにする、はずすなどをしてくださいね。)
ピアスのパーティクルが上の SS では光っていますが、これも [X Attached Particles] をチェックすることで消すことができます。
これは覚えておきたいうれしい機能ですね。