2ntブログ

ミノさん

ダム&ディーちゃんの相手に体格の良いクリーチャーモデルが欲しかったのですがイメージに合うものがなかったので、以前にとあるところで頂戴した男性モデルをベースに改造中。モデリングの技能があれば全部作ってしまうのですが。
はやくダム&ディーちゃんを凌辱する動画を作りたいのに男キャラばかり弄っていてモチベーションが上がりません。でも最近、武器を作るのが楽しくなってきました(逃避)
blog2014031801.jpg

Oculus Rift と IK

ここ数日は Oculus Riftを被っていません。何をしていたかというと、MMD for Unity に使えそうなIK構造を模索していました。


MMD関連ツールのIKの仕組み自体はMMDを除いて統一は取れているのではないかと思います。ただIK自体は問題は無くても、ボーンの構造やIK同士の組み合わせや実装によって、あるツールで作ったモーションを別のツールに持っていく、思った通りの変形をしない事が多いです。
ツールとしてはやはり元祖である MikuMikuDanceが一番好きなのですが、モーションをツール間で引越ししたりすることを考えると、MMD for Unityで使うモーションはMMMで作成する事にしました。

今のところ MMD for Unityで使用するボーン構造は次のようにしています。

腕IK
IKMaker で作成したPMD形式準拠のIKです。シンプルな構造ですのでツール間の互換性は高いようですね。自作のスクリプトやIKMakerXで作成されるIKは回転付与を使用しますが、こういったPMXから増えた機能を使用した構造では、他のツールで巧く動作しない事が多いようです。
多段ボーン
適当な関節の子側にボーンを作成します。基本的な仕組みですのでこれがツール間で誤動作することはないと思います。
顔IK
私の好みでは上半身も顔IKに含めたかったのですが、上半身は腕のIKとも干渉しますので正しく動作しませんでした。今は諦めてリンクは首と顔だけにし、補助的に多段ボーンを使用することにします。私は多すぎる多段ボーンは管理しきれないので使いませんが、今回は仕方が無しです。顔IKに上半身を含めるのを諦める代わりに上半身系と下半身系を多段化することにしました。頭と首も一段ずつ多段化しています。

こうやって作成したモーションをUnityに持っていくのですが、それでも思ったような動作をしない事があります。今回の手コキモーションもそうですが、顔が思った角度で傾いてくれませんでした。Unity側でモーションを直そうかとも思いましたが、それも管理が大変ですのでうまく動かなかったIKの部分だけをFKに変換します。IKをFKに簡単に変換してくれるツールがあれば良いのですが、いくらググっても見当たりませんでしたのであきらめて手動でベイクすることにします。
方法は単純で泥臭く、そしてたいへんな手間がかかります。

まず対象モデルのベイクしたいボーンに、XYZの3方向に軸が伸びたガイド用オブジェクトをくっつけます。
blog2014020801.jpg

次にこのガイド用のオブジェクトがくっついたモデルをMMMに2つ読み込んで同じモーションを適用し、片方はIKを有効にし、もう一方はIKを無効にしこれを作業用とします。

あとはひたすら、IK有効のモーションのボーンの回転にガイドオ用ブジェクトの3軸をぴったり合うようボーンを回転させていく作業です。
blog2014020803.gif

もしかしたらIKのキーフレームが打たれたフレームだけ位置を合わせるだけでもなんとかなるかな?と思いましたがダメでした。原理を考えれば自明なのですが理想は全てのフレームに対して位置を合わせる事です。ただ、それはサスガにやってられませんので4,5フレーム単位で合わせることにしました。結果はこんな感じです。

blog2014020804.gif

一番右がIK有効としたオリジナルのモーション。真ん中がその主要なボーンの軸とボーンを表示したモデル。左が手動でベイクしたモーションです。こんな300フレームもない単純なモーションで、ベイクしたのは首と頭だけなのですがかなり時間がかかりました。
手直しが発生した場合のことも考えるとちょっと現実的ではないですね……。

変換するツールが無いと書きましたが、実のところ MMD for Unity に MMDIKBakerというものが同梱されています。これで巧く行けば良いですが……経験的に変換したモーションはかなり手直ししないといけないので結局は手動でベイクするのと変わらないようにも思えます。

あともうひとつ気になるのが mmm ではフレーム単位でIKをオフできる機能があります。実際にIKをオフにしてみるとその時点でのリンクボーンがベイクされて登録できるように見えます。もしかしてこれが使えるのではと思うのですが、今一つよく使い方が判りません。mmmにベイク機能が付いてくれると一番いいのですけどね。



今回使用したガイドオブジェクトをくっつけるスクリプト。使うことはないかもしれませんが、PMDEditor用のCSScriptを公開されている人は少ないようですので、何かの参考になればと貼り付けておきます。

ガイド用オブジェクトをボーンにくっつける「AddGuideObject」。ガイド用オブジェクトの軸を合わせるときに邪魔となるのでモデルを透明化するモーフ「CreateInvisibleMorph」。そして透明化してガイド用オブジェクトだけが浮いていてもどのボーンの軸なのかが判りにくいので、ボーン構造だけを可視化する「DrawBone」の3つセットです。

プラグイン化するほどのものではないので、PMDEditorのCSScriptエディタ簡易形式にぺたりとコピペして、パラメータを適宜書き換えて実行します。

さて、こんな手作業をやっていると大変なので、半自動的にベイクできないかもう少し調べてみたいと思います。

[PMDE]ガイドオブジェクト

Oculus Rift 試行錯誤

ここしばらくはOculus RiftとUnityで遊んでいます。


Oculus Rift用にいくつかモーションを作っては見たのですが、配置の難しさに苦しんでいます。

たとえば手コキモーションを作ってみたのですが、カメラ位置をプレイヤー頭部においたときに女性モデルの全身が眺めまわせるようにモーションを作るのが苦労します。
これで大丈夫かな?と思っても実際に覗いてみると、女性モデルの頭が邪魔で何をしているのか判らなかったり。
それはそれで臨場感はあるのですが、折角のモデルが見えないと勿体ないですしね。

ひじりん手コキ

これも配置やパラメータを修正してもうまくいかなかったら没かもしれません。
もう少し計画的に配置とモーションを設計した方が良いかなとも思いますが、どうせ設計通りにはなりませんので。

あと立体度が強すぎるようにも思えるのですが、視差はどのパラメータを設定すれば良いのでしょうか。一度ちゃんとマニュアルを読まないとダメですね。

Oculus Riftでひじりんとちゅちゅしたい

MMD for Unityを使用して簡単なOculus Rift用のアプリを作成してみましたのでご紹介。


内容は前回のブログ記事でUnityの項でご紹介したサムネの下段のものです。
blog2014012201.jpg
これですね。

前回のブログの時点では、一行もプログラムを書いていなかったのですが、今回公開用にいくつか機能を追加していたので時間がかかりました。最終的に追加したプログラム量はたいしたことないのですが、試行錯誤なのでどうしても時間がかかっちゃいますね。

実験モノですので期限を付けています。期限機能自体も実験ですのでちゃんと動かないかもしれません。外部サーバに日付を聞きに行っているだけですので、ネットワーク絡みでエラーが起きるとうまく動かないかもですね。

一応、Oculus Rift をお持ちでない人でも見れますが、ただのループ動画ですのでガッカリだと思います。

あと、何か書き忘れている事は……あ、キーボードのカーソルキーとShiftキーの組み合わせでカメラの位置調整ができます。自分のナニがちょうど良い位置に来るように調整して下さい。

こんなところでしょうか?

http://www1.axfc.net/u/3155639
DLパス tracebox20140127


Oculus Rift 用にえっちいアプリを作ってくれる人が増えると嬉しいのになと期待を込めつつ。

Oculus Riftがやってきたんです

今月の初めにOculus Riftが届きました。しばらく触ってテンションが高い状態でしたが、ようやく落ち着いてきましたので軽く紹介します。


Oculus Riftはヘッドマウントディスプレイ(HMD)です。仕様などはWikiや紹介記事がありますので改めて書きませんが、感覚的な表現をするのであれば、これを装着した瞬間、自分がそのバーチャル空間に存在するかと錯覚するぐらいの没入感が得られます。
実機を触れずに感覚を伝えるのは難しいのですが、もしスキーのゴーグルをお持ちであればそれを装着して下さい。そしてそのままぐるりと頭をまわし部屋を眺めて下さい。Oculus Riftではそうした光景がバーチャルで得られるのです。

しばらく現実の世界に戻ってきたくなくなります。

さてそんなバーチャル空間に自分の好きなMMDモデルを招いて色々したいと思うのは人のサガ。その方法については幾つかあるようで少し試してみました。

1.MMDにエフェクトを適用する
MMD用にOculus Rift用の映像で出力するエフェクトがあります。これが最もお手軽ですが、ヘッドトラッキングに対応していないのでOculusの効果は半減ですが、それでも十分な迫力が得られます。何より手軽なのが良いです。

どちらかと言えば動画出力に威力を発揮しますね。

2.MMMを使用する
MMMのメニューを見るとOculus Riftのアイコンがあります。まだ暫定的なのか私の環境では表示が正しくされませんでした。
blog2014012202.jpg
このような感じで身体の部分が表示されない様子。カメラのnearクリッピングがおかしいようにも見えたのですが、その手前がは表示されていたりとよく判りません。

ただヘッドトラッキングをカメラモーションに記録できたりと面白い事ができます。

3.Unityを使用する
ゲームエンジンのUnity向けにOculus Riftのプラグインが提供されています。これとMMD for Unityを合わせて自分好みのプログラムを生成することができます。

blog2014012201.jpg

こういった部屋で自分の好きなMMDモデルを突いているだけのプログラムであればコードを一行も書く必要がありません。ファイルのドラッグ&ドロップとプロパティの設定だけでモーション作成からはじめて2時間ほどで作成できます。
難点なのはUnity向けのOculusプラグインを使用するためには有償のUnity Proが必要なこと。救いなのはOculusを購入したひとには4か月のUnitiy Proの試用ライセンスが得られることです。ただ実用度は一番高いです。

ああ、ひじりんが!ひじりんが私の部屋に!!

4.MMFを使用する
MikuMikuFlexというMMDのリソースを簡単に扱えるライブラリ(と開発プロジェクト)があります。まだ開発中のようですが、試してみたところ数行のプログラムを書くだけでMMDモデルにダンスを躍らせることができます。Oculusへの対応も準備がされているようで期待大です。まだモデルが思ったように表示されなかったり、モーションが思ったように再生されなかったりと難しいところはありますが、私的には一番の注目株です。



今のところUnityで遊びつつMMFの発展を見ている状況です。
残念なことにUnityやMMFでモーションを再生する時には、あまり特殊なIKの動作は期待できないので、今はIKなしでモーションを溜めているところです。

ダンスモーションとかトレースされているひとは、IKなしで凄いと改めて思いました。
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
Twitter