2009年07月31日

Irrlicht+PMDでBVHの再生テスト その2

続きです。B-MoMi様と同じようにマッピングファイルを読み込んでボーンの姿勢修正をするようにしてみました。
@scale=0.3
センター=hip,0,0,0
左足=lThigh,0,0,2
左ひざ=lShin,0,0,0
左足首=lFoot,0,0,0
右足=rThigh,0,0,-2
右ひざ=rShin,0,0,0
右足首=rHoot,0,0,0
上半身=chest,-10,0,0
左肩=lCollar,-2,-20,40
左腕=lShldr,2,0,0
左ひじ=lForeArm,0,0,0
左手首=lHand,0,0,0
右肩=rCollar,-2,20,-40
右腕=rShldr,2,0,0
右ひじ=rForeArm,0,0,0
右手首=rHand,0,0,0
首=neck,0,0,0
頭=head,0,0,0
符号とか違うかもしれません。

昔の記事でIrrlicht+BVHでボーンアニメーションしていたので、そのプログラムを参考にSecond LifeのBVHファイルを再生してみました。

ライセンス的にまずそうでしたらご指摘ください。

実行結果

今回もはちゅねモデルを使わせていただいております。



腕の動きが合ってないので、調整が必要なんですが調整難しいですね。

昔との変更点はフレーム間を線形補間していることぐらいでしょうか。


web拍手 by FC2
posted by シンドラー at 23:49 | Comment(0) | TrackBack(0) | Irrlicht | このブログの読者になる | 更新情報をチェックする

2009年07月29日

Irrlicht+PMDでBVHの再生テスト

B-MoMi様のマッピングデータを見て、これを使えばBVHファイルをそのまま再生できそうな気がしたので、試してみました。

BVHファイルにはmocapdata.com様のwalk-01-normal-azumi.bvhを使わせていただきました。ライセンスはクリエイティブコモンズです。

このモーションキャプチャデータは、mocapdata.com, Eyes, JAPAN Co. Ltd. により「クリエイティブ・コモンズ表示 2.1 日本ライセンス」の下でライセンスされています。
使用許諾条件は、mocapdata.com, Eyes, JAPAN Co. Ltd. または http://creativecommons.org/licenses/by/2.1/jp/ にお問い合わせください。
http://mocapdata.com/
(C) Copyright Eyes, JAPAN Co. Ltd. 2008-2009

実行結果



腕の角度とかがやっぱりあってないのでもう少し調整しないとちょっとおかしいですね。

でもまぁBVHでボーン動かすことも一応できたので、ライセンスの問題はありますがBVHファイルを集めてFPSみたいなゲームなら作れないこともないですかね。

web拍手 by FC2
posted by シンドラー at 20:19 | Comment(0) | TrackBack(0) | Irrlicht | このブログの読者になる | 更新情報をチェックする

2009年07月28日

Irrlicht用PMDFileLoaderクラス 途中経過4

そういえばBVH→VMDのツールはIKなしで全部姿勢情報だった気がしたので、とりあえず試してみました。

B-MoMi
http://atupdate.web.fc2.com/

実行結果

B-MoMi様のテニスモーションVMDファイルを読み込んで再生してみました。



物理エンジン使ってないので髪とか衝突判定とかアレですが、ちゃんと動いてるみたいですね。

良かった良かった。

シャドウボリュームON+録画でもFPS55ぐらいでてますし。シャドウボリュームの計算に時間かかりすぎですが・・・。

web拍手 by FC2
posted by シンドラー at 22:59 | Comment(0) | TrackBack(0) | Irrlicht | このブログの読者になる | 更新情報をチェックする

Irrlicht用PMDFileLoaderクラス 途中経過3

というわけで、CSkinnedMeshクラス及びCXMeshFileLoaderと2,3日格闘した結果、一から作り直しました。

実行結果



毎度ワンパターンですが、首ボーンを取得してsin関数で揺らしています。

やっとちゃんと動くようになった気がします。

後はVMDファイルを読み込んでSPositonKeyとかSRotationKeyとかフレーム毎に作成していけばいいのですが、その前にIKをちゃんと計算しないとSRotationKeyが作れない気がしますね。
続きを読む
web拍手 by FC2
posted by シンドラー at 20:06 | Comment(0) | TrackBack(0) | Irrlicht | このブログの読者になる | 更新情報をチェックする

2009年07月25日

Irrlicht用PMDFileLoaderクラス 途中経過2

続きです。

CSkinnedMeshクラスを使ってJoint情報の作成だけはしてみました。

Xファイルローダのソースを参考にしながらなんとかやっていますが、結構わけがわからないです。

次は頂点毎にボーンの影響度とか指定していく必要が・・・。まだしばらくかかりそうな感じです。

実行結果

irrlicht_bone_pmd_test_001.JPGirrlicht_bone_pmd_test_002.JPG

web拍手 by FC2
posted by シンドラー at 19:49 | Comment(0) | TrackBack(0) | Irrlicht | このブログの読者になる | 更新情報をチェックする

2009年07月24日

Irrlicht用PMDFileLoaderクラス 途中経過1

というわけで、Irrlicht用のPMDFileLoaderクラスを作成しています。
MikuMikuDanceでは今のところできないはずのゲーム開発等に使えるといいですね。

一応メッシュ情報の読み込み・表示は出来たので、後はボーン情報です。

メッシュの最適化とかしていないので重いかもしれません。

実行結果

今回もはちゅねモデルを使用させていただいております。



シャドウボリュームとか元から実装されているので楽ですねぇ。XファイルもBMPやTGAファイルも普通に読み込んでくれるし。

広いマップの最適化もOctTreeなどでやってくれるようですしね。

珍しくプロジェクト置いておきますね。PMDファイルの読み込みにはVMDConverterを使用させていただいております。

IrrPMDLoader.zip

なお、このプログラムで何か起こっても責任は取りません。メモリリークとかしているかもしれません。面倒なので確認していません。

適当にコメントと入れているので説明は省略します。

コンパイルとかプロパティ設定はReadme.txtを見てください。

web拍手 by FC2
posted by シンドラー at 20:58 | Comment(0) | TrackBack(0) | Irrlicht | このブログの読者になる | 更新情報をチェックする

2009年07月20日

OpenGLでXファイルの表示 その2

BMPファイルは仕様としてデータが1行は4の倍数じゃないと駄目でしたよね。知っていたはずなのに実装していない上に忘れていました。

4-(画像の幅×3(RGB))%4のオフセットだけ0が入ってるのでそのデータ捨てれば良かったみたいです。

でまぁ樹海とskydomeのxファイル読み込んで、はちゅねを踊らせてみました。

実行結果



録画で遅くならないように2倍速にしたら早過ぎましたね。

現在のフレーム数を開始時間からちゃんと計算すればこま落ちしても大丈夫になるんですけどね。

ゲキド街読み込むと重すぎるし、そろそろ最適化が色々必要ですかね。

というか今後はIrrlichtにPMDファイル読み込みクラス追加したほうが早いような気がしてきました。

今後はどちらに進もうかな・・・。

web拍手 by FC2
posted by シンドラー at 23:28 | Comment(2) | TrackBack(0) | OpenGL & Metasequoia | このブログの読者になる | 更新情報をチェックする

2009年07月19日

OpenGLでXファイルの表示

MMDのアクセとか背景ってXファイルで作成されているので、この辺も読み込みたいなと思ってXファイルローダのようなものを作ることにしました。

DirectXのAPIを使えばD3DXLoadMeshFromX関数で簡単に読み込めるようですが、DirectXの初期化などが必要でOpenGLで使うのはどうかなと思いました。

まー他にもIrrlichtとかOgreとか使えばいいのですが、今回はOpenGLで使うということで。

DirectXで読み込む場合はこちらなどが参考になるかと思います。
http://marupeke296.com/DX10_No4_Mesh.html

で、OpenGLでXファイル読み込むサンプルですが、下記のサイトが参考になると思います。
http://asura.iaigiri.com/OpenGL/gl44.html
http://hwm7.gyao.ne.jp/shinpuku/column05.html

この辺を参考にしつつテクスチャ読み込んで、背景やアクセはアニメーション無しだろうということでディスプレイリストでデータ作成、描画しています。

実行結果

VPVP Wiki経由で樹海モデルを使わせていただいております。

xfile_load_test_001.JPG

ゲキド街も一応読み込み・表示できましたが、見た目がおかしくでバグがありそうなのでもうちょっと調べてみたいと思います。
続きを読む
web拍手 by FC2
posted by シンドラー at 18:14 | Comment(0) | TrackBack(0) | OpenGL & Metasequoia | このブログの読者になる | 更新情報をチェックする

2009年07月17日

PCF(Percentage Closer Filtering)のようなもの

影付けにもいろいろな方法があって、日々進歩しているようですね。

しかし新しい手法を試す元気もないので、時代遅れらしいPCFもどきを使って影のエッジを少しぼかしてみました。

参考サイト

http://www.gamedev.net/community/forums/topic.asp?topic_id=419825
http://www.flashbang.se/index.php?id=36

実行結果



ジャギーが少し減りましたかね?まぁこの動画の解像度だとあんまり変わらないかも・・・。

試している時にポリゴンの境目が出ちゃったりしたので、ループ細分割曲面でも試して細かくしてみようかなーと考えていますが、ボーンの影響度とか頂点追加した場合どうなるんでしょうね。

一応参考サイト

http://www.idav.ucdavis.edu/education/CAGDNotes/homepage.html

一番下のLoop Surfaceがループ細分割曲面のアルゴリズムです。

web拍手 by FC2
posted by シンドラー at 22:13 | Comment(0) | TrackBack(0) | OpenGL & Metasequoia | このブログの読者になる | 更新情報をチェックする

2009年07月16日

移植作業中 その3

MMD関係の進歩は速いですねぇ。

ARTK_MMDの拡張ですね。インタラクティブですね。


BVHもそのうちやろうかと思っていましたが・・・。


他に何かすることありましたかねぇ。

まぁそれはそれとして、とりあえず移植作業の続きです。
モーフィング関係が怪しかったので書き直してみました。
まだ怪しいです。

実行結果



次はIKの修正ですかね・・・。
web拍手 by FC2
posted by シンドラー at 20:03 | Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年07月10日

移植作業中 その2

VMDファイルを読み込んで再生まで移植しました。

適当なIKじゃ駄目駄目ですね。ひどいことになってます。はちゅねじゃないと見れたもんじゃないです。

くるっと一回転できなかったり一瞬消えたり、IK以外の部分にも問題がありそうです。

ついでにFPS30で動かすのもぎりぎりで、録画していると30切っちゃいますね。高速化もちゃんとしないといけないんですかね・・・。

実行結果

エナメルP様のはちゅねモデルとわさびP様のLove&Joyモーションデータを使用させていただいております。




web拍手 by FC2
posted by シンドラー at 22:45 | Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年07月09日

移植作業中 その1

というわけで、DrawStuff使って描画していたテストプログラムを、GLSL使った作り直し中のプログラムに移植中です。

とりあえずはボーンアニメーションまでは終わりました。残りはモーションとモーフィングです。

実行結果

IKで自動で首振り+選択したジョイントをキーボードで動かしています。



ムービーメーカーで変換した動画だと最近再生されなかったので、フリーのソフトウェアでmp4に変換してみました。どうやらちゃんと再生されているようですね。画質はあまりよくないですが。

というか最近再生されなかった動画も再生されているような・・・謎です。
web拍手 by FC2
posted by シンドラー at 22:55 | Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2009年07月05日

IKの方向について

久しぶりに更新です。ヒザがグキっとなるのが気になったので、CCD-IKの角度制限をしたかったのですが、いまいち制限方法がよくわかりません。

ちゃんと調べればわかりそうですが、とりあえず的な方法で対応してみました。

まずグキっとなる理由ですが、IKは解が複数あるので、どれを解にするかによって結果が変わってしまいます。

IK_correct_001.png

上図の様に、左足と左足首の位置を決定しても、左ひざは図の水色の外側の軌跡上であればどこでも良いので、左足の姿勢を変な方向に向かないように制限する必要がある、ということです。

で、図を見てとりあえずひざの位置がZ軸方向に一番出ている(Z座標の値が一番大きい)場合がいいのではないかと考え、左足から左足首に向かうベクトルを中心に、足の姿勢を回転させてみました。

IK先の情報とかうまく使えないかなーとも考えているんですが。

実行結果



MikuMikuDanceと一緒に動かしています。大体動きは合ってそうな気がします。

でもまぁ正しくない方法だと思うので時間があればCCD-IKの角度制限やってみたいと思います。


web拍手 by FC2
posted by シンドラー at 17:19 | Comment(0) | TrackBack(0) | OpenGL & Metasequoia | このブログの読者になる | 更新情報をチェックする

2009年07月01日

ARTK_MMDについて

ARToolKit+OpenGL+MMDのARTK_MMDのソースコードが公開されていますね。

http://ppyy.hp.infoseek.co.jp/artk.html



ライセンスがGPLなのでソースは見ないでおきますかね。なんとなく。

ARToolKit_MMDと作者違ったりするんでしょうか?

7月はちょっと忙しそうなのでプログラミングが進まなそうな今日この頃です。

web拍手 by FC2
posted by シンドラー at 21:28 | Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。