MakeHumanのPMX化
オープンソースの人体生成ソフトであるMakeHumanを使用してモデルを作成し、PMX形式に変換してみます。
作業時間にすると数十分なのですが、手順を書き起こしてみると意外に長くなったので若干覚悟が必要です。
※PMXEditor用のImporterを作っていますので、こちらも参照願います。
1.準備とダウンロード
MakeHuman は Version 1.0.2 を使用しました。
http://www.makehuman.org/content/download.html
Blender は 2.72b を使用しました。
→http://www.blender.org/download/
あと BlenderからPMXデータに変換する Blender2Pmx アドオンが必要です。
→http://u7.getuploader.com/Yjo_oi_Neg/
詳しい導入の手順は、検索するとたくさん出てくると思います。MakeHumanの中にはBlender用のアドオンであるBlenderToolsも同梱されていますので、これも忘れずにBlenderにアドオンとして登録しておきます。
2.人体生成
MakeHumanはダウンロードして現れる実行ファイルをクリックして起動します。特にスタートメニューに登録されませんので、どこにファイルを置いたか忘れないようにしましょう。
今回、半年ぶりに使ってみてどこに置いたか探し回りました(笑)
ではまず適当に人体を作っていきましょう。幾つかのパラメータを設定するだけですので簡単ですね。

歯と舌は入れておきます。
だいたいこんな感じのお兄さんを作成しました。今回は服付きで作成しています。後でちょっと面倒なことになりましたので、服はなくても良いかもしれません。

イメージにあう人体が出来たらポーズ/アニメーションタブを選択し、リグプリセットから basic.json を選択します。

あとは、ファイル-エクスポートタブを開き、メッシュフォーマットに Blender exchange (mhx) を選択してエクスポート実行します。
今回はyoungman という名前を付けてエクスポート実行しました。

拡張子が mhx のファイルと、textures フォルダが作成されます。

3.Blender で変換
Blender を起動します。
起動したら不要な箱が表示されていると思いますので、Delete キーを押して削除します。
いつも邪魔ですねこれ。

メニューの[File]-[Import] から Makehuman (.mhx) を選択して、先ほど MakeHuman で Exportしたファイルを選択します。
メニューに MakeHuman (.mhx) が一覧されていない場合は、BlenderToolsのインストールをしていないかアドオンが有効化されていないので設定をしておきます。

モデルがインポートされました。

画面の下をみて、Pose Mode になっている事を確認して[A]キーを押します。ボーンが選択されます。

選択が成功すると、ボーンの色が変わります。

この状態でメニューから [File]-[Export]-[PMX File for MMD (.pmx) を選択し、MHXファイルと同じ場所にエクスポート実行します。
MHXファイルと同じ場所にエクスポートするのは、テクスチャのPATHが変わると後で面倒だからです。

4.PMXEditorで調整
エクスポートされたファイルはMMDで扱うには不完全ですので、幾つか調整を加えていきます。
いくつか面倒な手順を簡略化するためのファイルを準備していますので、ダウンロードして併せて手順を見てください。
→http://www1.axfc.net/u/3480862
5.材質の調整
エクスポートされた PMXファイルを PMXEditorで開きます。
真っ先にボーンタブを開き、ボーンがエクスポートされていることを確認しましょう。
ここでボーンが作成されていない場合はBlenderでエクスポートする前の全選択ができていませんので、エクスポートからやり直しします。

[ファイル]-[PMXデータの状態検証]を実行すると、面を含まない材質がいくつかあることが判ります。
放っておいても影響はありませんが、色々と邪魔なので消しておきます。

どういうわけか材質の非透過が0になっていましたので、これを1に修正します。

スフィアにノーマルマップのファイルが設定されていますが、MMDは標準でノーマルマップに対応していませんのでクリアしておきます。
あとでMMEを使用してノーマルマップを適用するのであれば、設定されているファイルをメモっておきましょう。

眉毛の表示が変ですね。Eyebrow と書かれた材質を Skin と書かれた材質の後にくるようリストを並び替えます。

材質の調整はここまで。
配布ファイル内の「面を含まない材質を削除と法線マップ削除と眉移動.cx」を CSScriptで実行すれば、この材質の調整と同じことを行います。
6.ボーン名の変更
ボーンタブを選択します。
ボーン名が英語名になっているのでモーションを汎用的に使えません。

[編集]-[名称の一括修正]で現れる名前修正ダイアログに配布ファイル内のボーンリネーム表.txt の内容をコピペし、修正ボタンをクリックします。

ダイアログを閉じれば、ボーン名が見慣れた名前に変更されていると思います。

7.「全ての親」「センター」ボーンの追加
次に「全ての親」「センター」ボーンを追加します。
配付ファイルのセンターボーン.csv をボーンリストにドロップします。
するとリストの末尾に全ての親と、センター、センター先が追加されます。
3つとも選択して、リストの先頭に移動させましょう。
選択した状態で[頂]ボタンをクリックすると、一度に移動してくれます。

8.足IKの追加
MMDモデルの標準としては最低限、足IKがあれば良いと思いますのでこれを追加します。
腕IKや他のボーンは、後で好みに合わせて導入する事にします。
配付ファイルの足IK.csvをボーンリストにドロップします。
8つのボーンがリストの末尾に追加されます。

追加しただけではIKとIKターゲットのボーンの位置が一致していないので、これを合わせておきます。
具体的には、左足首ボーンをリストから選択し、「位置」と書かれたラベルのあたりで右クリックメニューを開き[ベクトルコピー]を選択します。
その次に、左足IKをリストから選択し、同じように「位置」と書かれたラベルのあたりで再度右クリックメニューを開き、今度は[ベクトルペースト]を選択します。
これで位置情報が簡単にコピーできます。
これを左足首の位置を左足IKに。左つま先の位置を左つま先IKに実行し、更に反対の右にも行います。
ちょっとした作業ですが、面倒な人は配布ファイルの足IK位置合わせ.cx を実行してください。
9.下半身ボーンの作成
ちょっとややこしい作業なので注意が必要です。
まずボーンリストから「下半身」を選択し、ボーン名を「下半身2」に変更します。
親ボーンを「センター」に変更し、表示先を相対 0, -0.5, 0に変更します。

次に上半身ボーンを選択し、CTRL+[D]を実行します。
すると、上半身ボーンの複製が作成されますので名前を「下半身」に変更します。
リストの位置をさっき作った「下半身2」の1つ前に移動させます。
親ボーンをセンターに変更し、表示先を「下半身2」に設定します。

下半身2ボーンの親を「下半身」に変更します。

10.上半身ボーンの変更
親ボーンを「センター」に変更します。

11.両目ボーンの導入
右目と左目ボーンを連動させるおなじみの両目ボーン。
配布ファイルの 両目.CSV をボーンリストにドロップし、追加された「両目」ボーンのリスト位置を「左上まぶた」の前に移動させます。
位置のY座標も使いやすい位置に移動させておけばよいかと思います。

12.スタンス変更
変換したままのスタンスは若干構えたようなポーズになっています。
このままでも使えない事はないですが、ダンスを躍らせるとズレが生じるのでMMDでおなじみのAスタンスに変更しておきます。
TransformViewを開き、配布ファイルの A-stance.vpd をドロップします。

見慣れたポーズになったと思います。若干ひざの曲がりが気になるので、こころもちセンターを上に移動させます。

TransformView のメニューから[ファイル]-[現在の変形状態でモデル形状を更新・頂点モーフ正規化]を選択し、実行します。
これでモデルがAスタンスで固定されます。

13.モーフの導入と表示枠の設定
モーフタブを選択します。
表情なんて要らないかもしれませんが、すこし寂しいので最低限のものだけ入れておきます。
配付ファイル内の 表情モーフ.csv をドロップします。
4つだけですが表情モーフが追加されます。
表情はボーンである程度つけることができますので、増やしたいかたは頑張って増やしてください。

次に表示枠タブを選択します。
デフォルトで「骨」という表示枠が登録されていますが、使いませんので削除します。

削除したら配布ファイル内の表示枠.csv をリストにドロップします。
比較的一般的な構成の表示枠が登録されます。
私の好みとも違いますし、好みに合わせてこのあたりは変更してください。

14.保存
モデル名とコメントをつけて保存して下さい。

15.はみ出る地肌の削除
すっぽんぽんのモデルならここまででOKだったと思うのですが、冒頭にも書いた通り服を着せたモデルを作成させると、なぜか服の下の肌のウェイトがズレてしまいました。
原因は判りませんが、服を着せたモデルなら服の下は不要なので削除します。

上のようなシャツとジーンズを履いたモデルなら肌部分はこれぐらいを残して削除してしまえば良いと思います。
細かいウェイトが気になるのであれば微調整が必要ですね。

修正したら再び保存しておわりです。
以上、手順の説明抜けがあったりして上手くいかないところがあるかもですが、ある程度PMXEditorが使えるひとなら補間しつつ、それでも足りない部分はご指摘ください。
作業時間にすると数十分なのですが、手順を書き起こしてみると意外に長くなったので若干覚悟が必要です。
※PMXEditor用のImporterを作っていますので、こちらも参照願います。
1.準備とダウンロード
MakeHuman は Version 1.0.2 を使用しました。
http://www.makehuman.org/content/download.html
Blender は 2.72b を使用しました。
→http://www.blender.org/download/
あと BlenderからPMXデータに変換する Blender2Pmx アドオンが必要です。
→http://u7.getuploader.com/Yjo_oi_Neg/
詳しい導入の手順は、検索するとたくさん出てくると思います。MakeHumanの中にはBlender用のアドオンであるBlenderToolsも同梱されていますので、これも忘れずにBlenderにアドオンとして登録しておきます。
2.人体生成
MakeHumanはダウンロードして現れる実行ファイルをクリックして起動します。特にスタートメニューに登録されませんので、どこにファイルを置いたか忘れないようにしましょう。
今回、半年ぶりに使ってみてどこに置いたか探し回りました(笑)
ではまず適当に人体を作っていきましょう。幾つかのパラメータを設定するだけですので簡単ですね。

歯と舌は入れておきます。
だいたいこんな感じのお兄さんを作成しました。今回は服付きで作成しています。後でちょっと面倒なことになりましたので、服はなくても良いかもしれません。

イメージにあう人体が出来たらポーズ/アニメーションタブを選択し、リグプリセットから basic.json を選択します。

あとは、ファイル-エクスポートタブを開き、メッシュフォーマットに Blender exchange (mhx) を選択してエクスポート実行します。
今回はyoungman という名前を付けてエクスポート実行しました。

拡張子が mhx のファイルと、textures フォルダが作成されます。

3.Blender で変換
Blender を起動します。
起動したら不要な箱が表示されていると思いますので、Delete キーを押して削除します。
いつも邪魔ですねこれ。

メニューの[File]-[Import] から Makehuman (.mhx) を選択して、先ほど MakeHuman で Exportしたファイルを選択します。
メニューに MakeHuman (.mhx) が一覧されていない場合は、BlenderToolsのインストールをしていないかアドオンが有効化されていないので設定をしておきます。

モデルがインポートされました。

画面の下をみて、Pose Mode になっている事を確認して[A]キーを押します。ボーンが選択されます。

選択が成功すると、ボーンの色が変わります。

この状態でメニューから [File]-[Export]-[PMX File for MMD (.pmx) を選択し、MHXファイルと同じ場所にエクスポート実行します。
MHXファイルと同じ場所にエクスポートするのは、テクスチャのPATHが変わると後で面倒だからです。

4.PMXEditorで調整
エクスポートされたファイルはMMDで扱うには不完全ですので、幾つか調整を加えていきます。
いくつか面倒な手順を簡略化するためのファイルを準備していますので、ダウンロードして併せて手順を見てください。
→http://www1.axfc.net/u/3480862
5.材質の調整
エクスポートされた PMXファイルを PMXEditorで開きます。
真っ先にボーンタブを開き、ボーンがエクスポートされていることを確認しましょう。
ここでボーンが作成されていない場合はBlenderでエクスポートする前の全選択ができていませんので、エクスポートからやり直しします。

[ファイル]-[PMXデータの状態検証]を実行すると、面を含まない材質がいくつかあることが判ります。
放っておいても影響はありませんが、色々と邪魔なので消しておきます。

どういうわけか材質の非透過が0になっていましたので、これを1に修正します。

スフィアにノーマルマップのファイルが設定されていますが、MMDは標準でノーマルマップに対応していませんのでクリアしておきます。
あとでMMEを使用してノーマルマップを適用するのであれば、設定されているファイルをメモっておきましょう。

眉毛の表示が変ですね。Eyebrow と書かれた材質を Skin と書かれた材質の後にくるようリストを並び替えます。

材質の調整はここまで。
配布ファイル内の「面を含まない材質を削除と法線マップ削除と眉移動.cx」を CSScriptで実行すれば、この材質の調整と同じことを行います。
6.ボーン名の変更
ボーンタブを選択します。
ボーン名が英語名になっているのでモーションを汎用的に使えません。

[編集]-[名称の一括修正]で現れる名前修正ダイアログに配布ファイル内のボーンリネーム表.txt の内容をコピペし、修正ボタンをクリックします。

ダイアログを閉じれば、ボーン名が見慣れた名前に変更されていると思います。

7.「全ての親」「センター」ボーンの追加
次に「全ての親」「センター」ボーンを追加します。
配付ファイルのセンターボーン.csv をボーンリストにドロップします。
するとリストの末尾に全ての親と、センター、センター先が追加されます。
3つとも選択して、リストの先頭に移動させましょう。
選択した状態で[頂]ボタンをクリックすると、一度に移動してくれます。

8.足IKの追加
MMDモデルの標準としては最低限、足IKがあれば良いと思いますのでこれを追加します。
腕IKや他のボーンは、後で好みに合わせて導入する事にします。
配付ファイルの足IK.csvをボーンリストにドロップします。
8つのボーンがリストの末尾に追加されます。

追加しただけではIKとIKターゲットのボーンの位置が一致していないので、これを合わせておきます。
具体的には、左足首ボーンをリストから選択し、「位置」と書かれたラベルのあたりで右クリックメニューを開き[ベクトルコピー]を選択します。
その次に、左足IKをリストから選択し、同じように「位置」と書かれたラベルのあたりで再度右クリックメニューを開き、今度は[ベクトルペースト]を選択します。
これで位置情報が簡単にコピーできます。
これを左足首の位置を左足IKに。左つま先の位置を左つま先IKに実行し、更に反対の右にも行います。
ちょっとした作業ですが、面倒な人は配布ファイルの足IK位置合わせ.cx を実行してください。
9.下半身ボーンの作成
ちょっとややこしい作業なので注意が必要です。
まずボーンリストから「下半身」を選択し、ボーン名を「下半身2」に変更します。
親ボーンを「センター」に変更し、表示先を相対 0, -0.5, 0に変更します。

次に上半身ボーンを選択し、CTRL+[D]を実行します。
すると、上半身ボーンの複製が作成されますので名前を「下半身」に変更します。
リストの位置をさっき作った「下半身2」の1つ前に移動させます。
親ボーンをセンターに変更し、表示先を「下半身2」に設定します。

下半身2ボーンの親を「下半身」に変更します。

10.上半身ボーンの変更
親ボーンを「センター」に変更します。

11.両目ボーンの導入
右目と左目ボーンを連動させるおなじみの両目ボーン。
配布ファイルの 両目.CSV をボーンリストにドロップし、追加された「両目」ボーンのリスト位置を「左上まぶた」の前に移動させます。
位置のY座標も使いやすい位置に移動させておけばよいかと思います。

12.スタンス変更
変換したままのスタンスは若干構えたようなポーズになっています。
このままでも使えない事はないですが、ダンスを躍らせるとズレが生じるのでMMDでおなじみのAスタンスに変更しておきます。
TransformViewを開き、配布ファイルの A-stance.vpd をドロップします。

見慣れたポーズになったと思います。若干ひざの曲がりが気になるので、こころもちセンターを上に移動させます。

TransformView のメニューから[ファイル]-[現在の変形状態でモデル形状を更新・頂点モーフ正規化]を選択し、実行します。
これでモデルがAスタンスで固定されます。

13.モーフの導入と表示枠の設定
モーフタブを選択します。
表情なんて要らないかもしれませんが、すこし寂しいので最低限のものだけ入れておきます。
配付ファイル内の 表情モーフ.csv をドロップします。
4つだけですが表情モーフが追加されます。
表情はボーンである程度つけることができますので、増やしたいかたは頑張って増やしてください。

次に表示枠タブを選択します。
デフォルトで「骨」という表示枠が登録されていますが、使いませんので削除します。

削除したら配布ファイル内の表示枠.csv をリストにドロップします。
比較的一般的な構成の表示枠が登録されます。
私の好みとも違いますし、好みに合わせてこのあたりは変更してください。

14.保存
モデル名とコメントをつけて保存して下さい。

15.はみ出る地肌の削除
すっぽんぽんのモデルならここまででOKだったと思うのですが、冒頭にも書いた通り服を着せたモデルを作成させると、なぜか服の下の肌のウェイトがズレてしまいました。
原因は判りませんが、服を着せたモデルなら服の下は不要なので削除します。

上のようなシャツとジーンズを履いたモデルなら肌部分はこれぐらいを残して削除してしまえば良いと思います。
細かいウェイトが気になるのであれば微調整が必要ですね。

修正したら再び保存しておわりです。
以上、手順の説明抜けがあったりして上手くいかないところがあるかもですが、ある程度PMXEditorが使えるひとなら補間しつつ、それでも足りない部分はご指摘ください。