2012年1月30日月曜日

Nirans Viewer 1.15 と Mesh Deformer Alpha 1.0.3

Exodus viewer の紹介をしたばかりですが、もうひとつ気になる Third party viewer が Nirans Viewer です。現在は 1.15 というバージョンです。

Nirans viewer で検索すると、そこそこ日本語のブログ記事もあったりしますが、わたしがこの Nirans Viewer を知るきっかけになったのは「Mesh Deformer」をキーワードとして検索していきつきました。Kirstens の後継で~、影と光、DOFの調整項目が多いね~という記事は多いのですが、実は mesh deformer の機能を Nirans viewer は組み込んでいます。

Mesh Deformer... これは mesh でできている服などをアバタ―の体形に合わせて変化させる技術です。

今の公式ビューワーだと、Mesh 服はウェイトペィンティングによりボーン(骨格)に追随してくれるすばらしい服なのですが、とにかくサイズが合わない、、、という場合が多々あります。サイズも 5 つくらい同梱されている mesh 服やパンツ、スカートがあったりしてますよね。

これを、、、ビューワーを改造することで、体形にあわせて Mesh 服が変化するようになるとのことです。

ということで試してみたw

Nirans1
Nirans Viewer 立ち上げ直後

Nirans2
ログイン中~

で、SLC の Mesh Skirt Marie (DEMO) を着てみます。

Nirans3
通常、メッシュの下の Body は Alpha マスクで透明にするので、おなかの部分とは出ません。(念のため)

条件としてはきちんと Rig (ボーン 正確にはボーンではないと思います。体形を変形させた時の体の部位の数値をビューワーが取得し、Rig にて関連付けされている mesh の頂点をモーフィング(deform)しているように見えます。) が関連付けられていれば、その部分を動かすと Mesh(服) が追随する、と書いてありました。逆の言い方をすれば、関連づけられていない部分を変化させても Mesh は追随して Deform しない、ということですね。

このスカートの場合だと、、、、体脂肪(?) パラメータの変化では Mesh は Deform しませんでした。

Nirans4
体脂肪スライダーで体形を変化させたところ

でも、この SLC の Mesh Skiert は「体の厚み」の変化に対して Mesh Deformer 効果ありました~!!!

Nirans5
変更前(数値 14)

Nirans6
変更後 (数値 100)

ベスト(スカルプ)は追随していないのがわかると思います。(ただし、スカルプの Vest は Resizer スクリプトが入っているので、当然通常のビューワーでも体形にあわせてリサイズ可能)

Nirans7

技術的に mesh deform ができることはよーくわかりました。

ただ、いろいろ考えると、いろいろ問題がありそう(たとえば、初期のサイズが最初からフィットしていないと、体系変えて追随されても、、、とか)

そして何より、、、、ビューワーの設定でなにかあるのかもしれませんが、動き/カメラがカクカクしてしまって(3秒ごとにひっかかる感じ)、ちょっと私の環境ではこのまま使い続けるのはつらいです。。。

でも、2012年中くらいには、この技術が公式ビューワーへ取り込まれたり、この技術をベースにした Mesh 服がでてくるとユーザーとしてはかなりうれしいですね!

参考にした Blog – NIRANV DEAN
http://niranv-sl.blogspot.com/

[追記] コメントにも書きましたが、EXODUS Viwer にも mesh deformer が実装されていました~。


続きを読む...

2012年1月29日日曜日

Exodus Viewer Beta7

最近、Exodus Viewer という 3rd party viewer を使っています。このビューワーはまだ Linden の Third Party Viewer Directory に登録されていないので不安になる人もいるかもしれません。このブログで利用を決めてもあくまで自己責任でお願いしますね。

一応安全かどうか、、、ということを exodusviwer.com の情報から、第3者的な検証はないのかしら、と思い見てみると、以下があります。

EXODUS SAFETY RATING

ま、不正をする人が自ら「私は不正しています」とは言わないので鵜呑みにするのはだめなのですが、上のページでは、Linden のサードパーティーリストのビューワーですら、セルフチェックによる自己申告であり、必ずしも安全とは言えない、そういう観点から、外部にチェックしてもらっている、とあり、DOWNLOADATRAS, GEARDOWNLOAD, SOFTPEDIA という3つの団体が「NO SPYWARE, NO ADWARE, NO VIRUES」という判定を出している、と紹介されているので、これらの団体・機関で EXODUS がリストされているかを見てみました。

download atlas での Exodus viewer の紹介
Gear download での Exodus viewer の紹介
Softpedia

Softpedia では現在の Exodus viewer を見つけることができませんでしたが、こういう取組みをやっています、という告知は好感が持てますね。

前置きはこのくらいにして、何故今 Exodus を使っているかというと、画面というかレンダリングというか、そのあたりのカスタマイズができるのが気に入っています。(あと、気持ち軽いように思いますが、公式も最近は軽くなってきているので、、、)

たとえば、以下の写真は通常モードで「光と影」、「アンビエントオクルージョン」を有効にした状態です。なお、逆光なので face light を使っています。

exodusDefault

ここで Exodus 特有の Visual Setting で HDR (High Dynamic Range) セクションの下にある High Precision、Gamma Correction、Tone Mapping を有効にして Vignette を 1.0 に、Exposure を 5.0 すると以下のようになります。

exodusTone

いい感じですよね。
さらに HDR セクションの Gamma の RGB の数値や、CAMERA セクションの設定、LIGHTING セクションにある影のぼかしぐあいの調整などをいぢってみると、以下のようになります。

exodusTone2

Windlight の設定でも似たようなことができますが、プラスアルファの細かい設定があるので、楽しんで使っています~

で、光と影 の設定でも FPS が 15 前後出ているので動画とってみました。

セルフシャドウというか体上にできる影もかなりいいかも~。

繰り返しになりますが、Third Party Viwer Directory にまだ登録されていないので、ご使用は自己責任にてお願いします。

Exodus Viewer サイトのダウンロードページ


続きを読む...

2012年1月22日日曜日

mesh avatar – Yabusaka petite fairy

Green fairy - yabusaka

mesh によるマイクロ アバターです。
マイクロパーツを使ったマイクロ アバタ―はこれまでもありましたが、ついに mesh で!といった感じですね。当たり前ですが、マイクロパーツによる body にはない、いわゆるつなぎ目もない、美しい mesh アバタ―です。

位置移動に関しては通常アバタ―サイズに準じます(歩くスピードとか、ダンスのときの移動位置・距離)。ただし、関節部分は標準アバタ―を縮小したサイズ・相対関係になっていますので、通常のダンス アニメーションを踊ることができます~

dancing fairy - petite (micro) mesh avatar

妖精さんのドレスはデフォルトで青ですが、他の色も別売りで入手可能です。

Hair は入っていません。/wasabi さんところの petite avatar 用 mesh ヘアーが別売りで用意されています。上はそれを使っています。

で、、、なぜか school uniform (ブレザータイプ)も販売されてまして、、、

petite fairy avatar

スクリプトでサイズ変更可能なタイプの Hair だと、ちいさくちいさくして流用可能になりますね。

サイズはこんな感じ。テーブルとイスは通常アバタ―用に作成されたものです。

petite fairy with school uniform

あ、、ローファーが・・・ないwww 靴職人さんに作ってもらおうww

すばらしい micro mesh avatar はこちらで購入可能です。

SHOP - PETIE AVATAR KINGDOM - YABUSAKA-
maps.secondlife.com/secondlife/YABU/41/179/30

作者さんのブログはこちら。
http://yabusaka.blogspot.com/


続きを読む...

2012年1月10日火曜日

[MMD] Tiger, Bunny & Gumi で Breeze

昨年末に Tiger & Bunny の鎌Pさま作成モデルと、ままま式Gumi さんで Breeze を踊ってもらいました、という動画です。

モーションはあっぱれPさまによるものです。こちらを Second Life にインポートして踊ってみた一部の動画がこちらですね(^^;

SL のカメラワーク、3D Connexion Space Navigator だけじゃなくてスクリプトつかってなんとかしたいですね。。。

祭屋さんと仏壇仮面さんと13さんによる Breeze の PV はこちら~。


続きを読む...

2012年1月1日日曜日

A Happy New Year - 2012

A Happy New Year! 今年もよろしくお願いします~。
New World Notes で紹介されていた SL Machinima Top5 から動画をご紹介します。

New Year Greeting Photo 作りました~。


続きを読む...

2011年12月30日金曜日

ヘビロテ in Secondlife

今年の最初の投稿が MMD モーション移植した「Nostalogic を踊らせてみた」でしたが、今年たぶん最後の投稿は同じように MMD からモーション移植した「ヘビーローテーション」です。

おもいっきり AKB のライブ音源使っているので、いつか消されるかもしれませんが。一応アップした段階で YouTube からのアラートは出ていて、広告等が表示される、として即時削除対象ではないみたい。。。

移植させてもらったモーションは Cruyff 14 さんがトレスした [MMD] ヘビーローテション【少しいぢってみた】からお借りしました。

5人用のモーションです。(配布は、、、6人みたい)フロント3人、バック2人ですが、SL動画のほうではセンター以外のフロント2人分を4人で、バック2人を3人で構成した8人で踊りました。

ひさしぶりの動画撮影だったので 3D Connexion マウスの操作がおぼつかず、、、大人数は撮りなおしに限界があるので、この程度でお許しください><

配布されているモーションは

・ヘビロテ1.vmd センター –>SL_HR1_x
・ヘビロテ2.vmd フロント右 –> SL_HR2_x
・ヘビロテ3.vmd フロント左 –> SL_HR3_x
・ヘビロテ1(b).vmd バック右 –> SL_HR4_x
・ヘビロテ2(b).vmd バック左- -> SL_HR5_x

として以下のような mldu5 のプレイリストを使っています。

<AKB48Heavy>
SL_HR1_0|SL_HR2_0|SL_HR3_0|SL_HR4_0|SL_HR5_0, 30, 0|-1.0|-1.0|-2.7|-2.7, 2.8|0.5|0.5|-3.5|-1.5
SL_HR1_1|SL_HR2_1|SL_HR3_1|SL_HR4_1|SL_HR5_1, 30, 0|-1.0|-1.0|-2.7|-2.7, 2.8|0.5|0.5|-3.5|-1.5
SL_HR1_2|SL_HR2_2|SL_HR3_2|SL_HR4_2|SL_HR5_2, 30, 0|-1.0|-1.0|-2.7|-2.7, 2.8|0.5|0.5|-3.5|-1.5
SL_HR1_3|SL_HR2_3|SL_HR3_3|SL_HR4_3|SL_HR5_3, 30, 0|-1.0|-1.0|-2.7|-2.7, 2.8|0.5|0.5|-3.5|-1.5
SL_HR1_4|SL_HR2_4|SL_HR3_4|SL_HR4_4|SL_HR5_4, 30, 0|-1.0|-1.0|-2.7|-2.7, 2.8|0.5|0.5|-3.5|-1.5
SL_HR1_5|SL_HR2_5|SL_HR3_5|SL_HR4_5|SL_HR5_5, 30, 0|-1.0|-1.0|-2.7|-2.7, 2.8|0.5|0.5|-3.5|-1.5
SL_HR1_6|SL_HR2_6|SL_HR3_6|SL_HR4_6|SL_HR5_6, 30, 0|-1.0|-1.0|-2.7|-2.7, 2.8|0.5|0.5|-3.5|-1.5
SL_HR1_7|SL_HR2_7|SL_HR3_7|SL_HR4_7|SL_HR5_7, 30, 0|-1.0|-1.0|-2.7|-2.7, 2.8|0.5|0.5|-3.5|-1.5
SL_HR1_8|SL_HR2_8|SL_HR3_8|SL_HR4_8|SL_HR5_8, 30, 0|-1.0|-1.0|-2.7|-2.7, 2.8|0.5|0.5|-3.5|-1.5
SL_HR1_9|SL_HR2_9|SL_HR3_9|SL_HR4_9|SL_HR5_9, 30, 0|-1.0|-1.0|-2.7|-2.7, 2.8|0.5|0.5|-3.5|-1.5
SL_HR1_10|SL_HR2_10|SL_HR3_10|SL_HR4_10|SL_HR5_10, 30, 0|-1.0|-1.0|-2.7|-2.7, 2.8|0.5|0.5|-3.5|-1.5
</AKB48Heavy>

X軸(前後)での調整と、Y軸(左右)の調整だけですね。
この調整はモーション次第でかわります。MMD の場合、複数モーションでも初期位置で踊らせて、センターバイアスまたはすべての親ボーンで撮影の際にモデルの位置を調整するタイプと、モーション作成時点から位置を調整してしまっている2つのタイプがあります。

それらに注意してアバターの位置調整をすればいいんですね~。

それでは皆様、よいお年を~!


続きを読む...

2011年12月26日月曜日

[mldu5+] Start-up Guides part 1

(日本語記事は英語の後ろにあります. mldu5+ は一般にはまだ販売していません。marketplae には mldu5 がありますが、それは mldu5+ ではありません。今しばらくお待ちください。)
(on 28th Dec 2011, mldu5+ is beta version, and the marketplace provides you only mldu5. It’s not mldu5+. Please, please stay tuned.. but good news is mldu5+ has English version.)

This guide shows you how to use multi motion mldu5+ step by step.
mldu5+ provides you rich functions by only one HUD or dance machine. It’s not so difficult but something complex and unique. Don’t worry. So far over 300 users are enjoying MLDU series and you don’t need to use all functions. mldu5+ gives you many functions but you can use what you want.

I hope this guide series would help you enjoy your secondlife dancing.

1. About mldu5+

mldu5+ has unique functions as follows;

Varied Dancing Mode

  • Synchronized motion to multi users
  • Delayed motion to multi users (Time Interval Defferent dancing)
  • Shuffled motions from a playlist to multi users
  • Muliti motions to multi users (like couple dance, group dance)

Hybrid equipment

  • Personal HUD mode (when you attach as HUD)
  • Dance machine mode (when you rez on the floor and managed by admins)

Inviting or Rezzing sit ball

  • Searching and inviting avatars to dance. Guests get permissions dialog.
  • Rezzing sit balls and inviting avatars to dance automatically (especially for couple/group dancing)
  • 2 balls for couple dance, from 3 to 6 balls for group dance

Playlists and macro control

  • 26 playlists can be modified
  • A playlist contains over 100 dance motion names (depends on memory)
  • Ordering dance animatons and specifying play time for each dance
  • Dancers positons and rotations can be included if you want. (but dancers should use the sit balls rezzed from mldu5+)
  • Up to 10 unique animations you can specifed for one time (synced starting)

Major usages

  • In clubs, playlists are composed by Music category or BPM(Beat per minutes)
  • For show case dancers, playlist are composed by show case
  • For Video creators, group dancing playlist is easy way to making film repeatedly

------
[Japanese]

このブログの記事で mldu5+ の使い方をステップ by ステップでご紹介します。
mldu5+ はたった1つの HUD / ダンス マシンで豊富な機能を提供しています。決して難しいわけではありませんが、ちょっと複雑だったり考え方が他にはなかったりします。でも、心配することはありません。これまで 300 以上のユーザーさんが MLDU シリーズ(MLDU3, 4, 5) を楽しんでいます。すべての機能を使う必要はありません。好きな、必要な機能だけを使えばいいんです。

このガイド シリーズがあなたのセカンドライフ ダンスを楽しくすることを希望します~

1. mldu5+ について

mldu5+ は以下のようなユニークな機能を持っています

多様なダンス モード

  • 複数ユーザーへの同期(シンクロ)ダンスの実行
  • 複数ユーザーへの時間差ダンスの実行
  • 複数ユーザーにプレイリスト(ダンス セット)からそれぞれ違うダンスを実行
  • 複数モーションを複数ユーザーに実行(カップルダンスやグループダンスを実行)

ハイブリッドな装置

  • パーソナル HUD として(HUD として装着します)
  • ダンス マシンとして(フロアに rez すると管理者グループで管理可能)

招待もしくは Sit ボールの利用

  • 周囲にいるアバタ―を検索し、ダンス招待をします。ゲストはパーミッション許可のダイアログを受け取ります
  • または、Sit ボールを rez して、ゲストに座ってもらうことでダンスを自動送信できます
  • 2個の Sit ボールはカップルダンス用、3個以上(、4個、5個、6個)はグループダンス用です

プレイリストとマクロ制御

  • 26のプレイリストを構成・編集が可能
  • ひとつのプレイリストで 100 以上のダンス記述可能(メモリーに依存します)
  • ダンスの順番付とそれぞれのダンスの再生時間の指定が可能
  • 必要であればダンサーの位置と向きを含めることができます(その場合は、ダンサーは mldu5+ から rez された Sit ボールをつかいます)
  • 1度に同期スタートで10個までのダンス アニメーションの指定が可能

主な使われ方

  • クラブでは曲のジャンル、BPM 毎にプレイリストを構成して切替えています
  • ショーケース、ショーダンサーはショーの演目毎にプレイリストを作成しています
  • ビデオ クリエーターはカメラワークを変えた繰り返しのビデオ撮影にグループダンスプレイリストを利用しています

2.に続く、、、


続きを読む...

2011年12月12日月曜日

Sequencing Couples Dances...

http://sldancequeens.blogspot.com/2011/12/sequencing-couples-dances.html

ハルちゃんが踊ってる動画と MLDU5 が Dance Queens サイトで紹介されちゃってま。。。す ><

ノートカードも公開してますね。
これ、やっぱり今のノートカードの指定方法でも動くようにしておかないとwww

今修正中の MLDU5+ はボール軸で移動そして回転をかける書き方に変更します。デフォルトはそっち。で、今まで作ってきたノートカードの数値をそのまま使うために以下のようなオプションをダンスセット名にいれるようにします。そうすると今のバージョン設定のアバタ―軸の移動・回転で動きます。

<Sample MODE:AVXYZ>
anim1|anim2, 10.0, ……………
animi3|anim4, 12.5, ……………
anim5|anim6, 5.0, ……………
</Sample>

ただいま細かいところ絶賛調整中~♪

そっかぁ、Sequencing couple dances っていうんだ。(笑

あ、、、あと、ここまで作ったら以下のオプションもいれようかと。。。

<Sample MODE:SNUPOZ>
animi1|animi2, 10.0, /111 X Formation1
anim3|anim4, 12.5, /111 X Formation2:3.0
anim5|anim6, 5.0, /111 X Formation3
</Sample>

こっちは Kai さん向け、もしくはクラブで SNUPOZ 使っているダンマスさん向けだね~w

INSPI.ME さんに MLDU のフォーラム作成しました。しばらくは NaviSL との併用ですが、アクセス不可になることが NaviSL さん多いので、徐々に INSPI.ME さんに移行することになるでしょう。。。(たぶん)

追記)あ、、、同時に英語版。。。。。><


続きを読む...

2011年12月6日火曜日

[LSL] llSetKeyframedMotion を使ってみた

この新しい関数、オブジェクトをスムーズに動かすことができるようで、いろんなところで使えそうなんですけど、ちょっとクセがありますね~。
単純な板を動して検証して、気が付いたことをメモしておきます。

と、、、llSetKeyframedMotion ってなに?という方はこちらの YouTube のビデオをご覧いただくと何となくわかるかも~。

1) おまじない(?)

wiki によれば、llSetKeyframedMotion を使う前に Prim の属性で [PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_CONVEX] を指定してあげる必要があるようです。ビューワーが mesh を読み込むできない場合は必要、、、とありますが、とりあえずこのおまじないは state_entry あたりで行っておきます。

単体プリムの場合は llSetPrimitiveParams で、複数プリムがリンクされているオブジェクトの場合は llSetLinkPrimitiveParamsFast で設定をします。なお、複数プリムがリンクされている場合、ルートプリムにしか影響しない(=必ず全部のプリムが動く)ようです。

あと、プリムの属性という意味では物理属性はダメです。非物理のプリムにしてください。

2) 位置、回転、移動時間

llSetKeyframedMotion は2つのリスト(keyframes と option)を引数としています。最初のリストは [位置、回転、移動時間] を設定します。キーフレームといわれているのは、この 位置、回転、移動時間 をリストの中で複数指定できる、それぞれをキーフレームとして、そこまで移動・回転を直線補間してスムーズに動かす、、、という意味です。

で、位置や回転なんですが、グローバル座標軸を基準とした現在位置からの「差分」の指定になります。SIM の東西南北天地の軸に沿った現在位置からの移動距離を指定することになります。当然回転もグローバル座標軸で回転します。もちろんラジアンでの指定になります。

移動時間は 0.1秒以上でなければなりません。また、この秒数指定をより正確にするためには、秒指定よりもフレーム数の倍数指定がよい、と紹介されています。どうやら 1 秒間に 45 フレームで移動させているようです。そのため、1/45 の倍数で秒を指定したほうがよさそうです。たぶん、キーフレームの考え方からすると、A地点からB地点へ2.0秒で移動、と指示した場合はA地点~B地点の距離を 90 分割(2秒なので 90 フレーム)して移動させているようですね。

この倍数じゃないと微妙にずれていくのでしょう。なぜなら、次の移動地点へは「今の位置」からの差分をとるように動いているからです。ちょっとのずれが積み重なって最後は大きくなる、、、っていうわけですね。たとえば、1.5秒という指定は、45*1.5=67.5 フレームで、0.5 フレームというのはないので、67フレームか68フレームとして45で割ってあげると、67フレームの場合は 1.4889秒、68フレームの場合は 1.5111秒です。これを LSL で書くと、

float time = 1.5;
integer frames = (integer)(time*45);
time = frames/45.0;

実際にこれをやると time は 1.488889 秒 (67フレーム分)になりますね。

3) オプション

まず、オプションの種類として3つあります。

・KFM_MODE

モード指定で、指定できるのは ループ、リバース(逆順序)、フォワード、ピンポンです。これは keyframes で指定した複数のキーをどのように扱うか、ということですね。
[A, B, C] と keyframes を指定した場合、何も指定しなければ既定値の KFM_FORWARD が使われ、A –> B –> C と動く、KFM_REVERSE だと C –> B –> A、ループだと A –> B –> C –> A –> B –> C –> A.. と繰り返し、KFM_PING_PONG だと A –> B –> C –> B –> A –> B –> C.. と繰り返すわけです。(正確にはループ/ピンポンの場合は 4) で書いているように初期位置に戻ってから、移動分 A を行います)

・KFM_DATA

これは keyframes で指定するデータの種類を指定するオプションのようです。KFM_DATA オプションを使わない場合は必ず <ベクター型の位置>, <ローテーション型の回転>, float 型の秒数 の3種類を指定しなくてはなりませんが、位置だけでいいや、という場合は KFM_DATA, KFM_TRANSLATION というオプションをつければ <ベクター型の位置>, float 型の秒数 というように回転の指定を省くことができるようです。同様に KFM_ROTATION は回転指定と秒数指定のみで、位置指定を省くことができるわけですね。

実際はこのオプションなしで、ZERO_VECTOR や ZERO_ROTATION 使いそうですけど。

・KFM_COMMAND

おもしろいオプションです。アイディア次第でいろいろな適用箇所があるかもしれません。モーション移動途中で中断 (KFM_CMD_PAUSE) させたり、再開始 (KFM_CMD_PLAY) させたりできます。停止 (KFM_CMD_STOP) させるとリセットされるので、次に再開始 (KFM_CMD_PLAY) すると一番最初の keyframes から開始させます。。。。って、これ、はまりそうなポイントなんですけどね。

このオプションは他のオプションと一緒に使えないことに注意です。keyframed のリストも指定できません。なので使い方は、

llSetKeyframedMotion([], [KFM_COMMAND, KFM_CMD_PAUSE]);

のような使い方になります。

4) 利用上のポイント、注意点 (?)

といっても、、、まだそんなに使いこんでいるわけじゃないので偉そうなことは言えないのですが、、、

a) 障害物があった場合は・・・・

非物理や土地などは突き抜けますが、物理オブジェクトやアバタ―がいると「衝突」が発生します。アバタ―を push するときもあれば、オブジェクトがアバタ―につっかかってしまって止まるときもあります。そこからキーフレームで指定している分だけ移動するので期待しない位置にいく可能性がありそうです。

b) なんとなくパーティクルと一緒な、、、

空のリストを使ってあげると完全にクリアになりますが、それをしないとセットした属性というかプロパティというか、情報はプリムに残っていますね。

llSetKeyframedMotion([],[]);

llParticleSystem のクリアも確かそんな感じでしたよね。

c) 初期位置は、、、、グローバル座標で覚えているみたい

llSetKeyframedMotion でキーフレーム モーションを設定した時点の「位置」を覚えているようです。KFM_MODE, KFM_LOOP でキーフレーム移動をループさせると、たとえば上の a) のような障害物があってずれていっても、LOOP で最初の位置に戻ってから、A->B->C と動きます。なので、A->B->C と設定したときは、llSetKeyframedMotion をコールしたときの位置 i から、i –> A –> B –> C –> i –> A –> B –> C,,,, と動きます。

ピンポンも、i –> A –> B –> C –> B –> A –> i –> A –> B ...と動くみたいですね。

今は通常の SIM でも利用できるんじゃないかな? わたしの SIM では使えました~。

//llKeyframedMotion のサンプル。左に5m、前に5m、右に5m の移動をピンポンモードで。

integer flg;
list kfList = [<0,0,0>, 3, <0,5,0>, 3, <5,0,0>, 3, <0,-5,0>, 3];

init(){
        flg = FALSE;   
        llSetKeyframedMotion([], []);
        llSetKeyframedMotion(kfList,[KFM_DATA,KFM_TRANSLATION,KFM_MODE,KFM_PING_PONG]); 
        llSetKeyframedMotion([],[KFM_COMMAND,KFM_CMD_STOP]);
}

default
{
    on_rez(integer start_param){
        init();   
    }
   
    state_entry()
    {
        llSetPrimitiveParams([PRIM_PHYSICS_SHAPE_TYPE, PRIM_PHYSICS_SHAPE_CONVEX]);
        init();
    }
       
    touch_start(integer num_detected){
        if(flg){
            flg=FALSE;
            llSetKeyframedMotion([],[KFM_COMMAND,KFM_CMD_PAUSE]);
        }else{
            flg=TRUE;
            llSetKeyframedMotion([],[KFM_COMMAND,KFM_CMD_PLAY]);
        }
    }
}


続きを読む...