未踏作業日誌――余計なもの作るよ!

未踏の作業日誌的なものを書きましょうということで書くことにしました.余計なことばっかりしています.

とりあえず今作ろうと思ってるものの報告

今のところMMD Transporterを作っています.はい.

MMD TransporterはなるべくMMDのモデルをMayaに再現しよう,というところでスタートしています.主な機能として下のものがあるのですが,

  • メッシュの読み込み
  • Human IKの設定
  • 読み込んだMMD専用のBlendShapeエディタ

早くも読み込んだMMDのモデルをMayaに特化させようみたいな感じになってます()

 

IK辺りもIKボーンがイレギュラーなので読み捨てて,HumanIKで全部やって貰う感じになってます.もっと背骨があったり,足の指までボーンが仕込んであったり,中手骨辺りもあったりすれば完璧なのですが.

つま先が足首の先にないので,つま先を曲げるという動作が困難で,とてももにょってます.HumanIK標準でMMDモデルを構築・提案できたらいいのかなぁと思うのですが.

 

BlendShapeは機能の記事にも書きましたが,デフォルトだと使いづらいので専用のエディタを作りました.最初からドックできるので,メチャクチャ便利です.キーフレームとかはメニューから選択できるようにして,UIを崩さないようにしたいなと思ってます.

 

で,これから作ろうとしてることは,まずは剛体をなんとかしたいなと.一昨日に剛体を頑張ってMaya Bulletへ移植してみたのですが,MMDの剛体は剛体同士が接触するように作られているので,何もしない状態だと爆発します.位置合わせなんて便利なものがBulletに存在するかどうかわからないので困ってます.

それと,Kinematicな剛体が親ボーンに追従するように作りたいんですけど,ParentConstraintかけると小ボーンが置き去りになってしまって困った…….たぶん,親ボーンの子供に剛体を仕込めば追従すると思うんですが.

剛体自体の優先順位は低いので,場合によってはRagdollを自動的に構築する方法でも悪くないかなって思ってます.

 

それとUVモーフも実装しなきゃなと思ってます.UVモーフの構造化はpymeshioだとやってないみたいなので,自作してPullRequestでも投げようかなと.材質モーフは十中八九Mayaではできないので対策を考えないとなと.

 

だいたいloadmmdコマンドで実装しなきゃならないことがこれかなって思います.予定としてはsavemmdコマンドも実装したいです.savemmdではPMXの書き出しとかを考えてます.ただ,書きだすのはいいけれども,トポロジどうするかって問題もあるので悩む.

Mayaは基本的に後戻りの難しい操作はヒストリに蓄積されるので,ヒストリを消さないとオブジェクト本体に反映されない.これを知らない人が誤操作して変換どころか作業が戻ってしまう,というパターンがあったので困った.例えば,SkinBindした後に頂点を編集したりするとTweakに蓄積されたような.もちろんベベルをかけたらヒストリに残るので大変なことになる.

そんなわけで,MMD用のオブジェクトを構築するための支援ツールを用意しないとまずいなと内心思ってる.なんかこう,ツールっぽいツールって言うよりも,チュートリアル風のツールじゃないとアカンかもしれない.順番にやってください,後戻りしたら作業が無駄になりますよ,的な.

やっぱり,Maya触ってるのが一番楽しいなぁ.