2010年01月27日

PMD->Ogre Mesh XML->Ogre Meshについて

MikuMikuDanceって良く見ると右手系みたいですよね。DirectX使っているので左手系だと思ってました。

Bullet使用して描画も右手系ならOgreの方が都合が良さそうな気がしてきましたので、PMDファイルをOgre Mesh XMLに変換するプログラムを作ってみました。

本当は作らなくてもBlenderのプラグインをいれてImportしてOgre Mesh Exporterで出力すればいいんですけどね。

Ogre Mesh XMLはテキストデータですので、VMDConverterで読み込んだデータをXMLファイルとして出力するだけです。

まぁ文字コードの問題とか気にしなくて良かったmesh変換時のSkeleton警告とかなんだかんだで時間をとってしまいました。

PMDファイルから.material, .mesh.xml, .skeleton.xmlの3つのファイルを作成し、OgreCommandLineToolsのOgreXMLConverterで.meshと.skeletonに変換すればOgreで使用できるようになります。

実行結果

変換した後CEGUI Mesh Viewerで表示させています。VPVP Wiki経由ではちゅねモデル、まりさモデル、メタルミクモデルを使わせていただいております。



MikuMikuDance付属のメタルミクさんが銀髪になっちゃってますね。それにしてもCEGUI Mesh Viewerの操作性が・・・。

今後の課題
・モデルの座標系の修正(左手系→右手系)
・Skeletonの動作確認
・Poseタグを使用した表情アニメーション
・ボーン数が255?を超えた場合のSkeletonファイルの分割
・.materialの改善

まーもう少し課題を解決したらせっかくなので公開しようかと思います。

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

2010年01月25日

Irrlicht+PMDでBulletテスト

MikuMikuDanceはBulletを使用して髪の動きなどをアニメーションさせていて、PMDファイルにはその剛体やジョイント情報なども入っています。

今使用させていただいているVMDConverterは、剛体情報の取得部分等は実装されていませんでしたので、下記ページを参考にさせていただいて拡張しました。

http://blog.goo.ne.jp/torisu_tetosuki/e/209ad341d3ece2b1b4df24abf619d6e4

MMDのジョイント情報を見るとばねという謎の項目がありまして、Bullet2.75で実装されたbtGeneric6DofSpringConstraintかとは思うのですが、使い方がいまいち良くわかりませんね。

物理演算しない剛体は、kinematic Objectとして下記設定をしましたが、これでいいのかどうかも良くわかりません。

body->setActivationState(DISABLE_DEACTIVATION);
body->setCollisionFlags( m_body->getCollisionFlags() | btCollisionObject::CF_KINEMATIC_OBJECT);

body->isKinematicObject()でtrueが帰ってくるようになったので、Kinematic Objectとして扱う場合はこれでいいのではないかと思います。

実行結果



なんとなくXZ方向に力をかけてます。力をかけてなくてもMMDと同じ動きにならないんですよね。FPSも24ぐらいしかでていないし・・・。
web拍手 by FC2
posted by シンドラー at 03:04 | Comment(0) | TrackBack(0) | Irrlicht | このブログの読者になる | 更新情報をチェックする

2010年01月20日

IrrlichtとODEのdrawstuffについて

ODEの簡易描画ライブラリであるdrawstuffのIrrlichtバージョンがいつの間にか公開されていたようです。

http://demura.net/9ode/5892.html

ODEのオブジェクトを作るだけで描画コードを書かなくても描画してくれるdrawstuffの上位互換ライブラリということで、便利そうですね。

以上。今日も紹介のみでした。

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

2010年01月17日

MikuMikuDanceのバージョンアップ

MMDがバージョンアップして、セルフシャドウ機能が入ったようですね。



近いところほど高解像度の影ということはPerspective Shadow Mapでやっているんですかね?

既にいくつか使用した動画が出てきているようですね。



結構薄めの感じですが、これぐらいの方が違和感でなくていいんですかね。

まぁ紹介というような感じで。

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

2010年01月15日

Acrobotのようなもの

ニューラルネットワークの使い道が思いつかなかったので、Acrobotを試してみました。Acrobotは強化学習に向いている気がするのでニューラルネットワークの使い道としては微妙なんじゃないでしょうか。

Box2DのBox形状2つをジョイントで繋いで、下記の設定でAcrobotのようなものをやってみました。

3層ニューラルネットワーク(誤差逆伝播法)
入力4つ:box1の角度、角速度、box2の角度、角速度
中間層:ニューロン40個ほど
出力2つ:box1のトルク、box2のトルク
教師データ:PD制御で計算した値

普通にPD制御の計算できるのにニューラルで学習する意味ってあるんですかね?無さそうですね。

せめてPD制御の係数を学習させたなら意味があった気がするんですが・・・。

実行結果

MMDスレ19の606様のエ○ナモデルを使用させていただいております。



鉄棒の上で逆立ちすることを目標としています。ものすごい腕力と腹筋がないとこんなことできないですよね。

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

2010年01月07日

ニューラルネットワークで1変数関数の近似

新年明けましておめでとうございます。
本年もよろしくお願いいたします。

年末年始はニューラルネットワークの勉強をしていました。
一応誤差逆伝搬法の実装をして1変数関数の近似をしてみました。

実行結果



マウスでクリックした点を教師データにしてy=f(x)を近似してます。
入力層、隠れ層、出力層の3層で、隠れ層では奮発して50個のニューロンを使っています。
5個でもほとんど結果変わらないですが。

うまく学習してくれないときはシグモイド関数のゲインや重み修正時の係数εをキーボードで調整してます。
教師データをリセットしても学習した重みや閾値はそのままにしています。

で、これは何に使うんですかね・・・?

次もよくわかりませんがボルツマンマシンの勉強をしますかね。

参考図書:「学習とニューラルネットワーク」
http://www.morikita.co.jp/shoshi/ISBN978-4-627-70291-2.html
web拍手 by FC2
posted by シンドラー at 18:03 | Comment(0) | TrackBack(0) | Neural Network | このブログの読者になる | 更新情報をチェックする

広告


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

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

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