Makehumanをthree.jsモデルに変換する
Blenderを使います。T-Pose化して、Index/Weightも修正します。
必要な準備
three.js(66か67)のblender export アドオンとMakehuman1.0のblenderアドオンをBlenderに追加します。そしてBlenderで設定を有効にします。
Makehumanをthree.jsモデルに出力する
Makehumanから出力する。
MKH形式がBlenderで読み込めるのでそれを、出力します。 この形式が一番いいです。
必要に応じて、服や髪は選択しておく。
アニメーションするなら、skeltonはからなず選択、second life 19を推奨
eyeはlow-polyの方がいい。
proxyも選択してもいい。
Blenderからmkhをインポートする。
出力したMKHは、マイドキュメントのmakehuman\v1\exports
とかにあります。
T-Poseに直す
アニメーションする場合、直した方がいい。
Boneを選択して、Poseモードで、スペースを押してT-pose => Rest Poseを選びます。検索欄にt-pose
とか入れましょう。(makewalkingのアドオン機能です。またこれは、mkh形式以外だと正常に動作しません)
読み込んだ直後は、Boneが選択されています。そうでない場合、輪っかとか選択すると、そうなります。
T-Poseとは、両手を水平に、足は真っ直ぐ伸ばしてポーズです。ボーンの角度の指定が楽です。
Modifierを修正
bodyを選択して、Modofierにして、SubSurfを消す。これがあると、普通1万弱ぐらいのポリゴン数が、4倍の5万ぐらいになります。この量は、three.jsで読み込むの大変です。
proxyを出力すると、bodyとproxyの2つ存在するので注意
このmodifierをxを押して消します。
後は、Decimateを選んで0.2とかにすると、ポリゴンが4・5千ぐらいまで、減る。 0.1は、顔の形が崩れていろいろ面倒。
Decimateはこういう感じ、ポリゴン数が表示される
ここまで修正したら、忘れずBlenderファイルを保存しておきましょう。
Three.jsから出力
出力時の以下オプションに注意
Flip YZ
All meshesのチェック(これするなら、proxy消すとか、しないといけない)、服とかまとめて出力
注意事項は、Proxyなら大丈夫なことが多いですが、skiningのindexとweightがおかしいことがあります。(makehumanは多数のindex/weightがありますが、three.jsの出力は2点しかしないみたい)
Model Weightで修正
UVのパックとWeightの調整をModel Weightツールでしています。