• 締切済み

CSVのデータから3Dモーションを作成

CSVのデータから3Dモーションを作成する方法を教えてください。 私は現在、剣道の足さばきについて、モーションデータを作成することで分析する研究を行っていま す。その中で、演者の動作から身体の各関節のうち、胴体、左右の腰、膝、足の計7つの関節について、3次元座標を抽出し、それをCSV形式のファイルに書き出しました。 そのCSV内のデータを用い、各関節を線(ボーン)でつなぎ、足の動きのみが分かるアニメーションを作りたいと考えております。また、今回は2人分のモーションを重ねて表示することも行いたいです。 いろいろ調べたのですが、やり方が分かりません。やり方の一つとして、CSVを適切なファイルに変換し、アニメーションを作成するソフトに流し込むことが考えられますが、変換するファイルやソフト は何がふさわしいのか、どのように作業するのかが分かりません。 また、自分でプログラミングする方法も考えられますが、何の言語を用い、どのようなソースコード を書けば実現するのか皆目見当がつきません。 私は3DCGの分野やプログラミングに関しては全くの初心者なのですが、急きょ必要になり、困っている次第です。4,5日ほどで結果を出さなければいけないので、あまり時間がありません。どのような方法がよいか、上述のような内容で詳しく教えていただきたいです。 CSVファイルの内容を添付しました。列に各関節と3次元座標、行は時系列を表しています。数値は公表できないので消してあります。 よろしくお願いいたします。

みんなの回答

noname#208507
noname#208507
回答No.2

gnuplotというグラフを描画するソフトがあります。 3次元の点を線で結んで3Dアニメーションを作ることもできます。 Linux環境で端末エミュレータを起動します。 gnuplotの前に、awkでCSVファイルをグラフ化できる書式に変換します。 (gnuplotやawkはWindows版もあるが、同じようにできるかどうかは不明) 1. CSVファイルがあるディレクトリで、コマンドプロンプトから下記を一行で実行。  「点数」はCSV一行あたりの関節(xyzで一組)の数に置き換え。  motion1.csvは一人目のCSVファイル、motion1.txtはそれを変換した後のファイル名。  二人目についても同様にmotion2.csvからmotion2.txtを作ること。 $ awk -F, '{ n=2; for (i=0; i<点数; i++) { x=i*3+1; y=i*3+2; z=i*3+2; printf "%g %g %g\n",$x,$y,$z } printf "\n\n" }' motion1.csv > motion1.txt 2. 同じディレクトリに、次のテキストファイルを作成。  ここではファイル名をplot.txtとします。  「行数」はCSVフィアルの行数(=時系列のデータ数)に置き換え。  xrange,yrange,zrangeの範囲の数値は実際のデータに合わせて調整すること。 ---------- ここから ---------- m=行数 if (i == 0) set size square if (i == 0) set xrange[-600:600] if (i == 0) set yrange[-600:600] if (i == 0) set zrange[-600:600] print i set style line 1 linetype 0 splot "motion1.txt" index i title "motion1" ps 2 with linespoints replot "motion2.txt" index i title "motion2" ps 2 with linespoints i=i+1 pause 0.1 if (i<m) reread ---------- ここまで ---------- 3. 同じディレクトリで gnuplot を起動し、gnuplotのプロンプトから下記のようにコマンドを実行する。 $ gnuplot gnuplot> i=0 gnuplot> load "plot.txt" これで二人分のデータが3Dアニメーションで表示されます。 一人分のデータは一筆書きになるので、同じ関節を往復するなど関節の順番を工夫が必要です。 4,5日しかないとなると、プログラミングの勉強から始めるのは厳しいかと。 ・参考 http://gnuplotdojo.blog92.fc2.com/blog-entry-13.html http://folk.uio.no/hpl/scripting/doc/gnuplot/Kawano/datafile.html

shoboy
質問者

お礼

ありがとうございます。さっそく試してみます。

  • neorg
  • ベストアンサー率54% (235/433)
回答No.1

私もあまり詳しくないので参考になればいいのですが.... BVH形式はどうでしょう?中身はテキスト形式なので出力できる言語は沢山あると思います http://acerola3d.sourceforge.jp/docs/format/tutorial3/ http://www.tmps.org/index.php?MOCAP%A5%C7%A1%BC%A5%BF%A5%D5%A5%A1%A5%A4%A5%EB

shoboy
質問者

お礼

ありがとうございます。