見出し画像

【技術書】mixamoモーションをMMD用モーション(vmdファイル)に変換するプロセス

※本記事で言及している日本語名ボーンへの変換器はBoothで配布しています。配布先URLは下記のものになります。
https://tar.booth.pm/items/3811574

◆00:諸注意

◎免責事項
 本記事に書かれている内容、および言及されているMMD用ボーン名への変換器については自己責任に御利用してください。使用したことによって発生した不利益やトラブルに関して本記事の執筆者は一切の責任を負わないものとします。

◎本記事の引用について
 本記事は著作権法が認める範囲において別の記事や解説動画などに引用することが可能です。

◎指部分のモーションについて
 モーションを変換するとは書いていますが、指部分のモーションについては現状では上手く変換できない状態なのであくまで「指以外の全身運動について」の範囲でのものと解釈して頂けると幸いです(むしろ、この記事を読んだ人が誰か改良してくれないかなあ、とか他力本願なことを思ったり)

◎使用環境
 本記事の内容の技法を実行するにあたり、使用した環境は下記の通りです。
・OS:Windows10
・Blenderバージョン:3.0
・Blender_mmd_tools:2021年12月4日にダウンロードしたものを使用


◆01:はじめに

本記事は、Adobeが提供する3Dキャラクターやアニメーションを無料で手に入るサービスであるMixamoからダウンロードできるモーションデータ(fbxファイル)を、MMD用モーション(vmdファイル)に変換する方法を解説します。といっても、あくまで本記事の執筆者である射当ユウキが変換に使っている方法およびその過程で使用する変換器の使い方の解説がメインです。なので、プログラミングやソフトウェア開発の解説ではない旨を予めご理解ください。

本記事および解説で言及されている変換器の大元となるコードは下記の解説記事のものを使用しました。この場を借りて、改めて感謝申し上げます。
【URL】https://kaerudokoro.netlify.app/blender/vmd_exporter/


◆02:あらかじめ用意するもの


 本記事で解説しているデータ形式の変換方法を行うためには、予め下記の準備を済ませておく必要があります。
◎Mixamoのアカウント登録
◎Blenderのインストール
◎Blenderアドオンであるmmd_toolsのインストール

上記の3ステップについても解説していると本解説記事のボリュームが過度に膨らむため、これらについてはネット上にUPされている別記事に譲るとします。
 一応、三番目のmmd_toolsの実装方法についてはBOOTHにUPした技法書内に書かれているので宣伝も兼ねて紹介しておきます。
【URL】https://tar.booth.pm/items/1948585


◆03:Mixamoからのモーションダウンロード


 まずは使用したいモーションデータをMixamoからDLしてきます。
 ここでは下記の図のような設定でダウンロードします。


◆04:Blenderでダウンロードしたfbxファイルをbvhファイルに変換する


 Blenderを新規に立ち上げ、MixamoからダウンロードしたfbxファイルをBlenderにインポートします。


 インポートしたデータ(アーマチュア)を選択し、今度はbvh形式にします。これにより、fbxファイルでは腕や脚の要素に対して垂直だったボーンを、平行にすることができます。

◆05:bvhファイル内の冗長な文字列を消す

エクスポートしたbvhファイルをtxtファイル(メモ帳)として開き、置換機能を使って『mixamorig:』という文字列を一括削除します。


というのも、『mixamorig:』という文字列は全てのボーン名の頭についているのですが、この後の工程でmmd_toolsを使ってのvmd化の際に文字列が長すぎると全てをvmdとして収納できなくなるからです。
 そのため、冗長な文字列を削除しておく処理が必要となります。

『mixamorig:』の文字列を削除したら、そのデータを保存してメモ帳を閉じます。

◆06:bvhファイルを一旦vmdデータ化(加工前データ)する


 次に冗長な文字列を削除したbvhデータをBlenderにインポートします。1倍でインポートすると巨大サイズのボーンが現れますが問題ありません。

インポートしたbvhデータのボーンを選択肢、『ファイル』から『エクスポート』を使ってvmdファイルとしてエクスポートします(mmd_toolsのアドオンを予めインストールしておく必要があります)




この段階でもvmdファイル形式ではあります。しかし、ボーン名は未だに英語名のままな上に、MMDキャラモデルのほとんどで使用されている準標準ボーンである足周りのIKボーンやセンターボーンに対応できていません。
 それでは困るで、次のステップではMMD用モーションへの変換器を使用して、MMDモデルの日本語名ボーンに適用できるようにします。

◆07:変換器の使い方

ボーン名変換器はBlenderファイルなので、Blenderをインストールしていれば問題なく開けるはずです。
 Boothで配布しているファイル内の『mmd_Converter.blend』というファイルを開きます。これが日本語名ボーンへの変換器となります。
 ボーン名変換器のアウトライナーから『000_Origin』のアーマチュアを選択し、そのアーマチュアに対して先ほどのボーン名が英語の状態のvmdファイルをインポートします。

これによりMMD用の日本語名ボーンが設定されている『a_01_00_RigBase』というアーマチュアが英語名である『000_Origin』に連動して動きます(そうなるように作ってあります)
 この状態で、日本語名ボーンである『a_01_00_RigBase』のアーマチュアを選択し、『テキストエディター』内の再生ボタンをクリックすると日本語名のMMD用ボーンに対応したモーションとしてエクスポートできます。
 なお、変換後のvmdファイルがエクスポートされる先は右下のエリアに書かれている場所に設定されています。任意の場所にエクスポート先を設定したい場合は書かれている変換前に絶対パスを書き換えておきましょう。


◆08:最後に


 以上で、私が使っている変換方法の解説は終了です。
 行うステップが多い解説になってしまいましたが、私の技術力ではこれ以上の簡略化が望めないのが現状となります。
 本解説をベースに、新たな方法を確立したり、あるいはそれを解説・配布・販売すること自体は禁止しません。むしろ、もっと洗練された方法をこの記事を読んで下さった誰かが生み出してくれることを期待しつつ、本日は筆をおくとします。

いいなと思ったら応援しよう!