スレッド表示 | 古いものから 投稿するには登録が必要です | 前のスレッド | 次のスレッド | 下へ |
投稿者 | スレッド |
---|---|
投稿数: 10
|
投稿日時: 2006-12-18 01:47 数値データーを用いたアニメーション |
初めまして。私も外部ファイルの数値データーを使ってアニメーションを作っています。私の場合は航空機が飛行していく過程をfortran言語を使って計算し、飛行軌跡やバンク角などのデーターをスクリプトで読み込む方法で行っています。5〜50機ほどの航空機が向きを変えたり、バンクしたりしながら編隊飛行をおこなうシュミレーションです。全部で200フレームほどのアニメーションですが、格機体には3軸の回転ジョイントがあり、格フレームでのそれぞれの航空機の座標データーが計算によって求められています。その座標データーからパスを引き、回転ジョインにスクリプトでモーションを設定しています。3軸の回転角×フレーム数×機体数の設定をしなければなりません。さすがに、人手で設定すると恐ろしいことになるので、スクリプトを使っています。
直接の解決にはならないかもしれませんが、参考までに。 おおまかに作業の流れを説明しますと、下記のような行程のスクリプトを他のプログラムで出力します。例えば、fortranの場合、WRITE(1,*)"Hello"とすれば、ハードディスクに"Hello"と書かれたファイルを書き落とすことができます。その要領で、運動方程式などの計算結果を下記のスクリプトのようにアレンジして出力します。そして、Appleスクリプトの場合.scpt形式で保存すれば、そのファイルをそのままスクリプトで実行できます。 また、数値データーをすでに持っておられるのなら、fortranやCなどのプログラム言語でそのデーターを読み込み、スクリプトのようにアレンジして出力します。 数値データーを計算する→スクリプトの構文にあわせてアレンジし出力する(スクリプトを作る)→スクリプトを実行しモーション設定を行う。 そして、形状をつくります。ジョイントも組み込みます。 続いてスクリプトを実行すると、ジョイントにモーション設定が行われます。 最後にアニメーションレンダリングを行います。
現在私はMacを使用していますので、AppleScriptを使っています。 お使いのコンピュータがWinの場合は他の言語を使うことになるので書式がかわります。 上記のスクリプトの説明です。最初の方にある"select child"という命令文はShadeのブラウザのなかのパートを移動する命令です。”select child"の後に続く数字の数だけ、子パートを移動します。上記のスクリプトの場合、ブラウザの一番大きなパート(マスターパートと仮に呼びます)が選択されている状態から、マスターパートの中にいくつかある子パートの一つ目(上から数える)が選ばれ、次に"select child 2"なので、現在の子パートの中の2番目の子パートが選ばれ・・・・と階層移動が続きます。 そして、モーションを設定したジョイントの階層まで下りてきたら、今度はモーションの設定をしていきます。まずジョイントの変化値を入力します。例えば、回転ジョイントの場合、ー180°から+180°の値をいれます。"set rotator joint rotation to 90.0"とは、回転ジョイントを正方向に90°回転させよという意味です。そして、ジョイントを変化させた後、キーポイントを作ります。"create key point 1"という命令です。 "set create key point" に続く数字はフレームを表します。ここでは、1フレーム目にキーポイントを作りなさいという意味になります。まとめると、回転ジョイントを正方向に90°回転させ、それを1フレーム目に記憶させよ、という意味になります。 このように、階層移動→ジョイントの変化値の入力→キーポイントのクリエイトを繰り返していけば、アニメーションのモーション設定を全てスクリプトで行うことができます。そして最後にアニメーションレンダリングを行います。 分かりにくい説明で申し訳ありません。画像を示しながら説明できればもっと分かりやすいのでしょうが、知識不足のためできません。すみません。もし、参考になれば幸いです。がんばってください。 | |
投稿数: 1
|
投稿日時: 2006-11-23 17:22 Shadeで描いた図形を動かしたいのですが… |
教えていただきたいことがあります。
shadeで描いた図形をテキストファイルから取得した数値を元に動かしたいのですが… 最終的には指(手)のモデル図に、関節の回転角度などが格納されている外部ファイルの数値データを次々に代入することでアニメーションを作成したいと考えています。 現在は、スクリプト上で指の代わりに直方体を描き、外部データから数値を取得し回転させることができました。 今後この直方体の部分に指を描いていくのか、指の図を描いて(あるいはposerなどを利用するか)それに回転などの情報を与えればよいのか、スクリプト以外の機能でやった方がいいのか、何か知恵をいただければと思いメールしました。 | |
スレッド表示 | 古いものから 投稿するには登録が必要です | 前のスレッド | 次のスレッド | トップ |