■DynamX
DoGA-L3専用モーション作成支援ツールです。
■概要
NVIDIA PhysX(旧AGEIA PhysX)テクノロジを用いた物理演算による
モーション生成をDoGA-L3上で手軽に利用するインターフェースを提供します。
■ダウンロード
■古いバージョン
■インストール方法
■基本的な使い方
■チュートリアル
DynamXの詳しい使い方を説明します。
なお、本項では基本的な剛体力学の知識があることを前提として説明を進めます。
①物体属性
DynamXではL3の物体に重さや大きさ、形等の物理属性を割り当てることが出来ます。
最も基本的な物体属性はDynamic, Static属性です。
全ての物体は、Dynamicな物体、Staticな物体、DynamicでもStaticでもない物体の3種類に分けられます。
同梱されているSample01.l3mをDynamXにドロップしてみてください。
このモーションには、Dynamicな箱とStaticな箱が設置されています。
オレンジ色の箱がDynamic、青色がStatic属性の物体です。
Dynamicな箱は重力の影響を受けて地面に落ちますが、
Staticな箱は最初に設置された場所から動きません。
次にSample02.l3mをDynamXにドロップしてみてください。
Dynamicな箱とStaticな箱にそれぞれ箱をぶつけています。
Dynamicな箱は衝突の影響を受けて反対側に弾き飛ばされますが、
Staticな箱は動かずに衝突してきた箱を弾き飛ばします。
②物体の配置
実際にモーションを新規作成して物体を配置してみましょう。
Sample内のModelフォルダに物理属性を設定した物体が用意してあります。
物体の追加で、静止物体としてこれらの物体を追加してみましょう。
まずは地面を作成します。地面にはPlane.l3pを使います。
静止物体として追加してください。
Planeは特殊な物体です。追加すると、サイズに関係なく無限に続く平面となります。
次にStatic_Cube.l3pを静止物体で追加します。
Sample01.l3mに出てきたStaticな箱です。
物体はDynamic、Staticに関係なく、拡大縮小することでサイズを自由に変えることができます。
大きく伸ばしてみましょう。
大きく伸ばしたら、今度は回転させて坂道を作ってみましょう。
Staticな物体は物理演算で動いてしまう事がないので、壁や柱等、頑丈な物を作る時に使います。
次にDynamic_Sphere.l3pを静止物体で追加します。
Dynamicな属性の球体が追加されます。
Sphere(球体)はCube(箱)と違って拡大縮小で楕円にすることはできません。
Sphereの拡大縮小は必ずX, Y, Zで同じ倍率の球体である必要があります。
Dynamic_Sphereを先ほど作成した坂の上に置いてみましょう。
以上で物体の配置は完了です。
適当な名前を付けて保存し、DynamXにドロップしてみましょう。
『DynamX_適当な名前.l3p』と言うファイルが、モーションファイルを保存したフォルダに作成されます。
そのモーションで球体が坂道を転がっていれば成功です。
③物体の移動化
物体は静止物体としてだけではなく、移動物体として追加することもできます。
Staticな物体を移動化すると、その移動軌跡に沿ってStaticな物体が移動します。
Dynamicな物体を移動化すると、最初の1フレームの移動量を初速度として設定できます。
Sample03.l3mをDynamXにドロップしてみましょう。
Dynamic_Sphereを移動化して、初速度をつけて放り投げています。
④物体の出現範囲
物体の出現範囲を設定すると、出現範囲に合わせて、物理物体も出現、消滅します。
Sample04.l3mをDynamXにドロップしてみましょう。
物体の出現範囲に応じて途中で物体が消滅、出現しています。
⑤さらに細かく物理演算を設定する
物体の物理属性は全て物体のファイル名に割り当てられています。
『Dynamic_Cube.l3p』と言う物体には、初期設定で『Dynamic』と『Cube』と言うキーワードに
パラメータが割り当てられています。
どのキーワードにどのパラメータを割り当てるかはoption.iniと言うファイルに書き込まれています。
option.iniはテキストエディタで編集することが可能です。
パラメータの詳しい意味はoption.ini内で説明されています。
option.iniに新しくキーワードを追加して自由に物体の物理属性を制御することが可能です。
チュートリアルは以上です。
■著作権及び免責事項
本ツールはフリーウェアです。
著作権は作者であるALPHA COREが保有しています。
本ツールを使用したことによって生じたすべての障害・損害・不具合等に関して、
私と私の関係者および私の所属するいかなる団体・組織とも、一切の責任を負いません。
各自の自己責任においてご使用ください。
■バグ報告、要望、感想等はこのエントリーのコメントとしてお書き下さい。
◆バグ報告用テンプレート
【OS】
【DynamXバージョン】 (*最新バージョンを推奨)
【L3バージョン】
【PhysXバージョン】
【不具合の詳細】
【不具合の出るL3Mファイル】 (*必要あれば)
【不具合の出るOption.ini】 (*必要あれば)
2008/12/10 - 02:37:20
早速使ってみたので動作報告です。
OS :Vista Home Premium
L3バージョン :2008.02.27
PhysXバージョン :8.06.12
[不具合]
(sample3):飛んだ玉が箱に入らずそのまま飛んでいく。
(sample4):初め、上段にある物体がまったく動かない(物理演算に干渉しない)。
(sample5):物体の運動自体に大きな不具合は無いが、タイミングが合わず動画と同じ動作をしない。
(元データの変更は無し)
ありがとうございます。
以下の現象を確認しました。
修正版Version 1.01を公開しましたのでお試しください。
■1.01で修正された問題
・物理演算のタイミングが合わない
・Static物体の消失が機能していない
・Static物体の消失が機能していない
これやっぱり治ってないかも…
DebugとReleaseで挙動が変わる!不思議!
一応Ver1.01での全Sampleの正常動作を確認しました。
これから少しずついじってみたいと思います。
ダウンロードさせていただきました。もうチュートリアルを見てるだけで凄すぎてワクテカが止まりません!
サンプルモーションをちょこっと改造した物をD&Dしたらなんかエラーが!
でもすぐにピンときた!
個人的に安定版扱いしているVersion2003.08.28のL3で保存したモーションデータは使用できませんでした。
あの異常に長いD3D用のモーション全内容のパラメータ?が保存されているl3mではダメなようです。
まあ、今さらこんな古いバージョン使ってるの僕くらいでしょうからどうでもいいですね。
とりあえず手抜きでブレイクショットっぽいものを試作するも…
http://mayim.jp/~hooky/cgi-bin/usrimg/DynamX_Sample06.mpg
opsion.ini弄るとかなり変わりそうなんでゆっくりじっくり触ってみます。
>>Doga 初心者さん
ありがとうございます。
また何か不具合があれば教えてください。
>>hookyさん
そういえばこのツールを作る時に、最初にネットを漁ってl3mファイルの構造に関するドキュメントを掘りまくったんですが、今のバージョンに準拠した書式のものしか見つかりませんでした。
D3D情報を書き出していたバージョンもあったんですか。
そっちのバージョンの方が作るの楽だったかも…w
とりあえずちゃんと動いてるみたいで一安心です。
option.iniはまだ実装してない機能のスイッチもあるんですが、物理データの辞書は一通り動くはず…だと思います。
パラメータの意味とか、中のコメントだけじゃ超絶わかりづらいと思うので、近いうちにチュートリアルに追加します。
取り敢えず動作報告、サンプルを動かして見ました面白いです(w
これはやっぱりNVIDIAのボードが刺さってないと動かんのでしょうか?
うちのは載ってますが、とってもニッチなソフトになってしまうのでは。
L3Mはちょくちょく変わるので覚悟しておくのだ(w
ソフトウェアで処理しているのでNVIDIAのボードは無くても大丈夫
…と言うかあっても今は特に何も恩恵がないはずです。たぶん。
プログラム上でハードウェア演算に対応するのは結構簡単なんですが、
元々AGEIAがPPU(物理演算専用ユニット)でやろうとしていたことを
買収したNVIDIAが『グラボでやればいいじゃん!』と言う流れでやっているので、
まだ超ハイエンド級のグラボじゃないとハードウェア演算ができなかったり、
どっちみちファイル書き込みの方が処理に時間がかかっていたり、
そもそもDoGAだと長くても30秒チョイのモーションなので
あんまりアクセラレートする意味がなかったりしてハードウェアは対応してません。
(ここまで言い訳)
謎仕様変更以外なら改良はむしろウェルカムですw
と言うか、MEで移動軌跡の描画オフにさせてほしいなぁ…
大量に物体流すと通過点が多くて再描画が激重です。
何か凄い事になっている
環境を整えてトライしてみます^^;
公開お疲れ様でした
操作はかなり簡単にしたつもりですが、わからないことがあったら何でも聞いてください。
早くLギャラリー向けのデモムービー作らないとなぁ…
Version 1.02変更点
・Static物体の移動化が安定しない問題の修正
・同一フォルダ内の物体が正しく読み込めないバグの修正
・計算精度のオプションを追加
Version 1.03変更点
・物体名拡張子が大文字の場合に不具合が起きていたのを修正
・オプションファイルのコメントを修正
Version 1.04変更点
・物体の通過点を自動的に最適な量に節約する機能を追加
・通過点節約時の計算精度オプションを追加(value < 0で無効化)
こんばんは、バージョンアップお疲れ様です。
早速使ってみました、とりあえず解凍したままで、前に作ったモーションファイルで,実行したら途中までは何かしらやっているようですが、VC++のランタイムが無いよっぽいメッセージが出てこけました。
何かダウンロードしてランタイムか何かを組み込みが必要なのでしょうか、よろしくお願いします
ありがとうございます。
確か1.03までは普通に使えたんですよね
新しいライブラリを入れたりはしていないので、新しいランタイムは必要ないと思います。
途中まで動いていたってことはランタイムの異常終了とかでしょうか
ちょっと原因調べてみるので少しお待ちください。
Version 1.05変更点
・通過点節約計算時にランタイムエラーが発生するバグの修正
・通過点節約計算の進行具合をプログレスバーに表示
バグの修正は手元にエラーが出るサンプルファイルがないので、たぶん治っていると思いますが、確認の方をお願いします。