-
Notifications
You must be signed in to change notification settings - Fork 277
Documentation.ja
このドキュメントはDocumentationの日本語版です。Wikiから誰もが修正することが出来ます
MMD Tools はMikuMikuDance関連のモデルとモーションデータをインポート/エクスポートするためのBlenderアドオンです。このアドンは開発中であり、現在(2016/11/08)も開発は進んでいます。mmd_toolsの開発ブランチからのダウンロードを推奨します。 以下のURLから利用できます。 https://github.com/powroupi/blender_mmd_tools/archive/dev_test.zip
MMD ToolsをBlender 2.78にインストールするには、blender_mmd_toolsの下にあるmmd_tools
フォルダを \2.78\scripts\addonsフォルダにコピーしてください。その後、Blenderのユーザー設定ダイアログにあるアドオンタブからMMD Toolsを有効にしてください。他のBlenderのバージョンでは、バージョン番号のディレクトリ名はそのバージョによって異なります。(例えば、2.73では \2.73\scripts\addonsになるでしょう。
- インストールの注意事項
-
複数の
mmd_tools
のバージョンをインストールしないで下さい。それらは互いに競合します。 -
mmd_tools
フォルダの名前をリネームしないで下さい。それ以外では動作しません。 - ダウンロードしたzipファイルを直接インストールしないで下さい。展開して含まれている
mmd_tools
フォルダーをBlenderのアドオンパスコピーします。(参照: 3rd Party Add-ons & Add-on Directory)
-
複数の
インストールに成功すると、ツールパネルにMMDタブが表示され、MMD DisplayとMMD Shardingサブセクションがプロパティシェルフ画面に表示され、MMD MaterialとMMD Textureサブセクションがプロパティウィンドウのマテリアルタブに表示されます。またMMD Model Informationサブセクションがプロパティウィンドウのオブジェクトタブに表示されます。ジョイントまたは剛体を選択したときには、追加のサブセクションがプロパティウィンドウのオブジェクトタブに表示されます。
このボタンは、MMD形式のモデルを正常にエクスポートするのに必要な階層構造、MMDで必須となる全ての親ボーンを作成します。Import Model(下記)とともにこれはmmd_toolsが認識できるMMD形式のモデルを作成する方法のひとつです。この機能ではメッシュは作成されません。この構造にメッシュを追加するには、Attach Meshes to Model(下記)を使用します。
mmd_tools外で作られた既存のBlenderモデルをmmd_toolsで扱える形式に変換します。(実験的)
(アーマチュアー>Create MMD Model以外の方法で作ったモデルに使用します。 モデルがこの方法で作られていない場合、エクスポートボタンが無効になっています。)
Cyclesは、Blenderの内部レンダリングエンジンとは異なるマテリアルを扱える代替のレンダリングエンジンです。Convert Materials for Cyclesボタンは、選択中のMMD形式モデルの材質設定をCyclesで扱える形式に変換します。
訳注: 左下に表示されるオプションでConvert to Principled BSDF
を選択するとUV,Texture,Principled BSDFのみの構成に変換されます(Blenderでレンダリングする場合や他の形式でエクスポートする場合などPMXにエクスポートする予定がない場合に使用します)。
インポートされたモデルは、初期状態ではひとつのオブジェクトになっています。モデルの材質ごとにオブジェクトに分割するには、モデルを選択しSeparate By Materialsを実行します。 デフォルトでは、Blenderの頂点モーフデータが壊れる問題を防ぐために、シェイプキー(モーフ)は、シェイプキーの影響を受けなくなったメッシュからは削除されます。
Join MeshesはSeparate By Materialsと逆の操作です。インポートされたモデルを構成するすべてのオブジェクトを再統合するには、モデルに属するどれかのオブジェクトを選択し、Join Meshesを実行します。 モデルに存在していたすべてのオブジェクトをひとつのオブジェクトに統合します。
この機能は、MMD形式モデルに属していないメッシュを選択中のインポートされたモデルに最後尾の材質として追加します。この機能を使うには、任意のMMD形式モデルの任意の部分を選択して、Attach Meshes to Modelします。取り付けたいメッシュを選択する必要はありません。メッシュがすでにMMD形式モデルのどれかに属している場合は、なにもしません。(例えば、ひとつのシーンにふたつの異なるインポートされたモデルが存在する場合)
メッシュを含むMMD形式モデルに取り付けたい場合は、取り付けたいオブジェクトと対象モデルのオブジェクトを順に選択し、オブジェクトを統合(ctrl-J)することも出来ます。
MMDとBlenderは異なる方法でボーンによる動きを処理します。これらの相互変換を行うために、ApplyでBlenderで扱えるようにボーンコンストレントを付加、またはCleanでMMDで扱えるように付加されたボーンコンストレントを解除します。エクスポート時には、自動で解除されます。
ボーンと同様に、物理演算もMMDとBlenderで異なります。物理演算の情報をBlenderで扱える形式に変換するにはBuildを使用します。またMMDで扱える形式に変換するにはCleanを使用します。剛体を構築して物理演算が行われるようになるとパフォーマンスはかなり低下します。このため、剛体は必要な場合だけ構築することを推奨します。一般的には、レンダリングの直前に行います。
MMD用に作成されたモデル(.pmxまたは.pmd)をBlenderにインポートします。
これらのボタンを無効に設定することで、Blenderにインポートする要素を制限できます。デフォルトでは、全ての要素がインポートされます。
指定された拡大率をモデルの全ての要素に適用します(原点を中心)。小さな値を指定するとインポートされるモデルは小さくなります。デフォルト値は1.0です。
チェックすると、mmd_toolsは、不正な面や頂点をインポート前に修復します。Blenderへのインポート前にモデルを検証し、必要に応じて修復することを推奨します。
チェックすると、同じ位置にある頂点がマージされ、重複した面が削除されます。
(訳注: モーフに使用されている頂点はモーフが壊れないように対象外になります)
チェックすると、IKリンクのボーンのテールが修正されます。
これはボーン名をMMD標準の右/左の命名規約からBlenderで認識可能な形式(.L/.R)にリネームします。適切なミラーリングが可能になります。(エクスポートスクリプトでは保存された名称に自動で戻します)
チェックすると、mmd_toolsはモデルのメインテクスチャのミップマップを生成します。ミップマップを生成する方法では、アーティファクトが発生する可能性があるため、無効にしたい場合があるでしょう。
スフィアテクスチャの影響を減らします。影響を減らすと、除算スフィアを明るくし、加算スフィアを暗くします。これはプロパティウィンドウの指定テクスチャの影響サブセクションでディフューズ色を減らすのと同じです。インポートされたモデルのエクスポートには影響しません。
(訳注: ここ動作確認できていません)
インポート時のフィードバックの詳細度を指定します。有効にすると、ログファイルがインポートされるモデルと同じディレクトリに [model file name].mmd_tools.import.log の形式で書き出されます。
指定された拡大率をモデルの全ての要素に適用します(原点を中心)。小さな値を指定するとエクスポートされるモデルは小さくなります。デフォルト値は1.0です。
訳注: インポート時に1より小さな値で取り込んだ場合は、元のサイズでエクスポートするには大きな値を指定する必要があります。0.2でインポートした場合、エクスポートでは1/0.2を指定します。
有効にすると、モデルから参照されるテクスチャ画像がエクスポートされたモデルに関連付けられて適切なディレクトリに書き込まれます。すでに存在するファイルは上書きされます。 Base Texture Folderが指定されていても(下記)、テクスチャはそのフォルダには書き込まれません。エクスポートパスに基づいてモデルの適切なディレクトリにのみ書き込まれます。
Sort Materialsが有効な場合、mmd_toolsは透過の問題を起こしにくい方法でマテリアルの並べ替えを試みます。 これは、頂点モーフや材質モーフを考慮してないので、Material Sorter(下記)で順序を指定するよりも信頼性が低くなります。
チェックを付けると、非表示のメッシュはエクスポートされません。
デフォルトでは、mmd_toolsは、頂点の順序に注意を払わず、適当な順で頂点をエクスポートすることがあります。これは、MMEで使用される一部のエフェクトに影響することがあります。インポートしたファイルからの元の順序で頂点を書き出すには、Customを有効にします。Blenerによってソートされた順で頂点を書き出すにはBlenderを有効にします。
モデルをインポートする場合と同様です。有効にするとログファイルが出力ディレクトリに書き出されます。
IKはMMDのIKの仕様上、チェーンの先(子)ボーンが必要なようです。エクスポートできなかった場合、ログファイルかコンソールにメッセージが出ています。
.vmdファイルを一連のアニメーションキーフレームとしてBlenderに読み込むことが出来ます。 アニメーションを読み込むには、まずにインポートされたモデルなど有効なMMDモデルをアウトライナーからベース親オブジェクトを選択する(下記)などで選択します。次にImport Motionをクリックし、適切な .vmdを選択します。
(訳注: ボーンアニメーションはアーマチュアを選択してインポート、モーフはメッシュを選択してインポートできます。表情がボーンモーフで作られている場合は、Morph Tool→▼→Bindでドライバを作ってから、.placeholderを選択してインポートできます)
Scaleはポーンの移動量に適用されます。小さな値を指定すると動きが小さくなります。モデルをインポートしたときのScaleと同じ値を使用することを推奨します。
Marginを指定した場合、(Marginと同じ数の)空フレームがインポートしたキーフレームの前に追加されます。
Bone Mapは、.vmdのボーンをどのようにアーマチュアにマッピングするかを決定します。 Renamed Bones では、モーションのボーン名はRename Bonesを指定してモデルをインポートしたとき(上記)と同じ方法でリネームされ、Blender上でのボーン名に基づいて適用されます。 PMXでは、モーションのボーン名は、Blender上のボーン名ではなく、モデルに保存されているボーン名と照合されます_(訳注: モデルに保存されているボーン名 = MMD Bone Tools / Name)_。 Blenderでは、モーションのボーン名は、Blender上でのボーンの実際の名称と照合されます。
有効にした場合、現在のポーズがレストポーズとして扱われます。TスタンスのモーションをAスタンスのモデルにインポートするのに便利です。
有効にすると、モーションはX軸で反転されます。
有効にした場合、Blenderに30FPSを使うように指示します。フレーム範囲もインポートするすべてのモーションを含むのに必要なだけ拡張されます。
モーションをエクスポートする基本的な機能が利用可能になりました。現在は、ボーンアニメーション、シェイプキーアニメーション、カメラ/ランプアニメーションをエクスポートできますが、セルフシャドウやその他VMD固有のアニメーションはまだサポートされていません。また以下のノートと問題を念頭に置いてください。
- Fカーブのみサポートされます。ドライバやNLAトラックはサポートされていません。完成したアニメーションを書き出したい場合は、新規アクションにベイクできます。
- ボーンの回転の補完とカメラの回転は正しくないかもしれません。MMDはすべての回転成分(x, y, z, w)に対して同じ補完を使用するためです。
- Blender上で、モデルアニメーション(ボーンとシェイプキー)をエクスポートするにはルートのエンプティを選択、ボーンアニメーションのみをエクスポートするにはアーマチュアを選択、シェイプキーアニメーションのみをエクスポートするにはメッシュオブジェクトを選択、カメラアニメーションをエクスポートするにはMMD Cameraオブジェクトを選択。またアクティブなオブジェクトのアニメーションのみがエクスポートされます。
- ボーン名は15バイト(Unicode文字で約7文字)の制限がありますがエラーメッセージはありません。ボーン名を短くすることを忘れないでください。
Display Itemsは、MMDのアニメーション処理に必要な表示枠を編集できます。 上のパネルでは、表示枠のグループの選択または作成が可能で、選択、編集、順序変更、削除作成ができます。下のパネルには、そのグループの要素が表示され、同様に選択、編集ができます。
ボーンを選択して、そのタイプをモーフに変更するとMMDで問題が起きることに注意してください。
ボーンエントリを選択して、Display ItemsサブセクションのSelectボタンをクリックすると対応するボーンを素速く選択できます。
(訳注: Display Items -> Display Panelに名称が変更されています)
Morph Toolsでは、モーフのMMD固有のパラメータを編集できます。 Blenderは、シェイプキーの形式で頂点モーフのみを維持します。しかし、MMDモーフのパラメータはインポートエクスポートのサイクルで維持するべきで、このパネルで編集できます。
モーフがまだ表示枠に登録されていない場合は、Morph Toolsの一番上のパネルのモーフの右にiアイコンが表示されます。
このサブセクションは、選択したモデルに含まれる剛体のリストを提供します。それらはこのパネルから素速く選択できます。
(訳注: ドキュメント未ですがモデルに剛体を追加できます)
このサブセクションは、選択したモデルに含まれるジョイントのリストを提供します。それらはこのパネルから素速く選択できます。
材質の順序が重要な場合は(一般的に透過材質と関連しています)、材質の順序を指定できます。 これはひとつのオブジェクト内の材質をソートできます。なので、モデルを材質ごとに分割(Separate By Material)した場合は使用できなくなります。
Meshes Sorterでは、モデルを材質ごとに分割(Separate by Material)したあとのMMDモデルのサブオブジェクトを素早く選択できます。 メッシュ順序の変更は、エクスポートやメッシュ統合(Join Meshes)を通して維持されます。
(訳注: ここで指定する分割後のオブジェクトの順序が統合後の材質の順序に適用されます)
プロパティウィンドウのマテリアルタブ内のMMD Materialサブセクションの情報を使用して、MMDで使用される材質のパラメータを変更できます。 注意として、このセクション内のいずれかのパラメータを変更すると、Blenderレンダーとエクスポートされたモデルの両方に影響しますが、Blender固有のパラメータを変更するとBlenderレンダーに影響しますが、エクスポートされるモデルには影響しません。例えば、MMD MaterialのSpecular Colorフィールドを変更するとBlenderのスペキュラー色(スペキュラーサブセクションのスペキュラー色フィールド)が変更されますが、Blenderのスペキュラー色を変更してもMMD MaterialのSpecular Colorは変更されません。 Edge Lineは、mmd_toolsによるBlenderレンダリングでは実装されていませんが、MMD Materialサブセクションで行われたエッジ関連の変更は、エクスポートされたモデルに影響します。
訳注: エッジ(輪郭線)は、MMDタブのEdge preview > Createで確認できるようになっています。頂点ごとのエッジ倍率はmmd_edge_scale頂点グループを使用します。
MaterialsのMMD Textureサブセクションでは、MMDモデルのテクスチャに使用されるフィールドとフラグを指定できます。 上記のMMD Material設定と同じように、mmd_toolsはこのサブセクションで行った変更をBlenderの他の要素に伝播しますが、その逆はありません。 つまり、MMD TextureのShere blend modeを変更するとBlenderのレンダリングに影響しますが、テクスチャタブ/影響のブレンドモードを変更してBlenderのレンダリングを変更しても、MMD Texture設定やエクスポートされたモデルには影響しません。
訳注: Use shared Toon Textureは、MMDの標準Toonを使います。この画像はmmd_toolsには含まれていないので、テクスチャなし(紫色)になる場合は、アドオン設定のShared Toon Texture Folderを設定して下さい。
MMDモデルで使用されるさまざまなモデル固有のフィールドを編集できます。
Change MMD IK Loop Factorは、BlenderのすべてのIKボーン(選択されたものだけではありません)の反復に乗数を適用します。ボーンまたはアーマチュアが選択されている場合にのみアクセスできます。 これは、エクスポートされるモデルではなく、Blenderのアニメーションにのみ影響します。
Build済みまたは未Buildの剛体オブジェクトの情報が含まれます。 MMD Materialsと同様に、このサブセクションの変更はBlenderの物理演算に影響しますが、Blenderの物理演算の変更はこのサブセクションには影響せず、モデルとともにエクスポートされません。
一部の変更は剛体がBuildされているかに関わらず有効ですが、変更されないものもあります。このサブセクションを変更した後は、剛体を再Buildすることをお勧めします。
訳注: 剛体コリジョンはBlenderとMMDで仕組みが異なります。Blenderでは衝突する剛体のグループ(Collision Group)を定義しますが、MMDでは衝突しない剛体のグループ(Collision Group Mask)を定義します。mmd_toolsはMMDの剛体コリジョンをシミュレートするために剛体ごとにtemporary/ncc*の剛体コンストレイントにより衝突の無効化を行います。この設定は剛体ごとに行われるため、通常のBlender上での剛体シミュレーションよりも処理が重くなります。この理由で剛体の距離がある程度離れていると非衝突処理を行わないようになっています。この距離は、アドオン設定のNon-Collision Threshold
にあります。ここを適当に大きくして剛体Buildするとすべて処理されるようになります。PMXに出力する予定がある場合は、Blenderのコリジョングループは触らずに、MMD Rigid BodyのCollision Group Maskを変更してください。
ジョイントオブジェクトの情報が含まれます。 MMD Materialsと同様に、このサブセクションの変更はBlenderの物理演算に影響しますが、Blenderの物理演算の変更はこのサブセクションには影響せず、モデルとともにエクスポートされません。
BlenderとMMDのボーンの実装の違いを扱うために、ボーンの順序はBlenderではあまり重要ではありませんが、MMDではとても重要な可能性があります。 ボーンの順序をインポート/エクスポートのサイクルで維持するために、インポートされたモデルはmmd_bone_order_overrideモディファイアを使用して生成されます。 このモディファイアがモデルに含まれるいずれかのオブジェクトに未適用で存在する場合は、mmd_toolsはBlenderで行われた変更が許す範囲でボーンの順序を復元するために、これをエクスポート時に使用します。
モデルでボーンの順序が重要でない場合は、このモディファイアを安全に削除または適用することができます。
訳注: エクスポートされるボーンの順序は、Meshes Sorterの順でオブジェクトを順に見て最初に mmd_bone_order_override
という名前のモディファイヤがあるオブジェクトの頂点グループの順になります。PMXでは、親のボーン順序が子より後になると問題があることがあるので、Blender頂点グループメニューのボーン階層でソート
で頂点グループをソートしておきます。またIKはターゲットより上にないと正しく動作しないので、例えば足IKの階層が下半身の階層より上になるようにソートします。頂点グループがないボーンは、ボーン順の一番下に追加されるのでエクスポートするボーンについては空ウェイトでも全て頂点グループを作ってソートしておかないとPMX Editorでの状態検証をパスできません。
mmd_toolsは、mmd_edge_scale頂点グループを使ってMMDモデルで使用されるエッジ(輪郭線)サイズの頂点属性を追跡します。 この頂点グループから頂点が削除された場合、または頂点グループ全体が削除された場合、mmd_toolsはエクスポート時にデフォルトのエッジサイズとして1を設定します。 モデルが頂点ごとのエッジサイズを利用しない場合は、この頂点グループを安全に削除できます。
mmd_toolsは、mmd_vertex_order頂点グループを使ってMMDモデルで使用される頂点の順序を追跡します。 上記のmmd_edge_scaleと同様に、頂点の順序に関心がなく、Blender内のウェイトの編集に与える影響を認識している場合は、この頂点グループは安全に削除することができます。
MMDの頂点モーフは、Blenderではシェイプキーで表現されます。Blender内で作成された新しいシェイプキーは、頂点モーフとしてエクスポートされます。これらのモーフはモーフグループ4(右下)にエクスポートされます。 新しく作成されたシェイプキーは、MMD形式にエクスポートされてから再インポートされるまで、Display Items(上記)のような機能からモーフとしては使用できません。
.pmx形式に適切にエクスポートするには、すべてのモデルでベースシェイプキーが必要です。メッシュにベースシェイプキーがない場合、メッシュを選択した状態で、プロパティウィンドウのデータタブのシェイプキーサブセクションから簡単に作成できます。+ボタンを押して新しいシェイプキーを作成します。ベースが存在しない場合、これはベースとして作成されます。 (これは、モディファイアを適用するためにシェイプキーが削除されたときに頻繁に必要になります)
mmd_toolsがSDEF情報を保存するために作成する3つのシェイプキーが存在します_(訳注: mmd_sdef_c,mmd_sdef_r0,mmd_sdef_r1)_。 BlenderはSDEF変形には対応していませんが(訳注: 対応しました #sdef)、mmd_toolsはこれらのシェイプキーを使用してインポート/エクスポートのサイクルを通してSDEF情報を維持します。 Blenderで移動したボーンはSDEF情報を更新しません。代わりにPMXEのようなアプリケーションでSDEFの重心を更新する必要があります。
現時点では、mmd_toolsは他の種類のモーフ(ボーンモーフ、材質モーフなど)は、ツールバーの編集パネルでの使用のみサポートされています。これらのモーフはインポートされたモデルの適切なプロパティにリンクされず、インポートされたアニメーションでは頂点モーフ以外のモーフはキーフレームに登録しません。
mmd_toolsがモデルをインポートおよび作成する階層を理解することが重要になります。不適切な階層を持つモデルは、適切にエクスポートまたはアニメーションできません。
各モデルは、[modelname]_arm、joints、rigidbodiesと、ときおりtemporaryを子に持つひとつのベース親オブジェクトとして構成されます。 jointsとrigidbodiesには、MMDと関連する(未構築の)データを保持する子要素が含まれます。 剛体をBuildする場合(上記)、メインの親とtemporaryの子要素には、物理演算が有効になったBlenderに適したオブジェクトが配置されます。 デフォルトでは、ジョイントと剛体のグループはプレビューに表示されません。 これらのオブジェクトは、アウトライナーパネルの右にある目アイコンをクリックすると表示できます。
[Modelname]_armは、メッシュ、ボーン、モディファイアと頂点グループのデータを含みます。 デフォルトでは、[modelname]_armは非表示になっていますが、子要素の*[modelname]*_meshはプレビューに表示されます。
ボーンは、[modelname]_armを非表示解除することで表示でき、[modelname]_armのポーズのネストした階層に含まれます。 [Modelname]_meshは、[modelname]_armの別の子要素で、オブジェクトモディファイア、頂点グループとすべての材質をまとめたメッシュを含みます。 これらのメッシュは、[modelname]_meshの子要素*[modelname]*にあります。各メッシュ(材質)はまたテクスチャ画像データを子要素に持っています。
MMD形式のモデルを選択すると、プロパティシェルフのMMD Displayサブセクションで、メッシュ、アーマチュア、剛体、ジョイント(関節)、一時オブジェクト、および各名称表示を含む、モデルの要素をすばやく非表示または表示にすることができます。 Toonマップまたはスフィアマップのレンダリングも有効または無効にすることができます。これはモデルごとに行われ、選択されたMMD形式のモデルのみが影響を受けます。
MMD Shadingでは、MMDモデルにふたつの代替シェーディングスタイルを選択できます。
GLSLは、BlenderのGLSLシェーディングと同じシステムを使用し、デフォルトのMMDライティングと近くなるように、半球状のライトをシーンに追加します。
Shadelessは、陰影を無視するスタイルで、Toonテクスチャでのみシェーディングされます。
ResetはシェーディングをデフォルトのBlenderシェーディングにリセットし、3D Viewのシェーディングをソリッドに戻します。
MMD Displayとは違い、MMD Shadingオプションは選択されたモデルだけでなく、シーン全体に影響します。注意として、これらのシェーディングモードともに、テクスチャ画像がBlenderシェーディング下でも見つからない場合は、ピンク(紫)の警告になります。
Blenderユーザー設定のアドオンタブにあるmmd_toolsエントリの左の三角をクリックすると、バージョン情報と環境設定にアクセスできます。
共有Toonマップが格納されるフォルダを指定してBlenderによって適切にレンダリングされるようにできます。通常これはMikMikuDance_[version]/Dataのようなフォルダにする必要があります。
Base Texture Folderを指定すると、mmd_toolsは、これをエクスポートされるモデルのテクスチャの相対パスを決めるのに使用します(ベースフォルダ部分はパスから削除されます)。 例えば、C:\textureがベーステクスチャフォルダとして指定されている場合、C:\texture\sphere\starry.spaは、モデルとエクスポートディレクトリの相対パスとしてsphere\starry.spaにエクスポートされます。これにより、テクスチャのディレクトリレイアウトをカスタマイズできます。
内部辞書の代わりにカスタム辞書を使用して名称を変換できるようにCSV辞書があるフォルダを指定できます。
(訳注: インポート時にボーンなどの名称を定義したルールで置換するのに使用します)
メッシュを選択して3D Viewの右のプロパティシェルフにあるMMD SDEF Driver
からバインド
をクリックすると、SDEF変形を行うドライバが追加されます。この機能を使うにはユーザー設定>ファイル>Pythonスクリプトの自動実行
を有効にする必要があります。バインド解除
をクリックとドライバは削除され元の状態に戻ります。
Blenderで生成またはインポートされたいくつかのオブジェクトは統合(パック)された画像を持ちます。 これらの画像は、常にMMDに適したファイル形式でエクスポートされるとは限りません。これにより、MMDやその他の編集アプリケーションで表示エラーが発生する可能性があります。
BlenderとMMDはときどきかなり異なる方法でボーンを扱います。ほとんどの基本的なボーン構造は、Blender上のmmd_toolsで適切に扱えますが(すなわちMMDと同じ)、もっと複雑な構造ではそうではないかもしれません。
mmd_toolsのデフォルトはポージング状態です。IKボーンがIKターゲットと同じデフォルトの位置に配置されていないか、またはBlenderのボーンの扱い方がデフォルトのポーズと一致しない場合、モデルは意図しない変形をする可能性があります。 この問題を回避し、メッシュが予期しない変形を起こさないようにするには、モデルをレスト位置に設定してください。 これを行うもっとも簡単な方法は、[modelname]_armをクリックしてアウトライナーからアーマチュアを選択し、次にプロパティウィンドウのデータタブに切り替えます。 スケルトンサブセクションの下にあるレスト位置ボタンをクリックして、予期しないポーズを防止します。
MMDモデルには、各頂点のカスタム法線データを含めることができます。 mmd_toolsはBlenderのカスタム分割法線データを使ってこれを扱います。
残念なことに、Blenderのこのデータの扱いは、頂点がマージされたときに簡単には修正できないアーティファクトを発生させることにつながります。Blenderはそれらを平均化せずにひとつまたは他のカスタム法線を採択します。頂点をマージする前に、カスタム分割法線データをクリアすることをお勧めします。
BlenderとMMDはデータに同じ精度を使用しません_(訳注: 座標やサイズなどの数値型の精度のこと)_。 これは位置のわずかなズレにつながる可能性があります。これらのズレは通常小さすぎて意味を持ちませんが、ミラーリング(対称性)を壊すのには十分です。
一般に、mmd_toolsはプレビューに表示されているままのモデルをエクスポートしようとします。 シェイプキーやモディファイアもです。それらは適用する必要はなく、エクスポートされるメッシュに影響します。 しかし、いくつかのケースでは、適用されてないモディファイアが適切にエクスポートされないことがあります。このケースに出会った場合は、モディファイアを適用する必要があります。 残念なことに、これには関連オブジェクトからすべてのシェイプキーを削除し、モディファイアを適用した後にベースシェイプキーを再作成してエクスポートできるようにする必要があります。
mmd_toolsは、シームに沿って配置された頂点を複製することで、UVシーム付きの材質をエクスポートします。 自動スムーズが有効な場合、Blenderは簡単にこれらの頂点の不適切な法線を生成します。 この問題が発生している場合は、自動スムーズを無効にするか、Blenderがそれらを切り裂くたびに頂点をマージします。 (マージされた)法線が維持されている場合は、mmd_toolsはエクスポート時にそれらの分離処理をします。
(訳注: エクスポート時にメッシュはシームで切られますが、オリジナルのメッシュは変更されないため、おそらく再インポートを繰り返すときの問題です。インポート時にRemove Doublesを指定するとモーフを壊さない方法でシームの切り目をマージして取り込めます)
BlenderでMMDモデルを編集する主な利点のひとつは、BDEF4のウェイトを作成・編集するのが簡単なことです。しかし、注意すべきいくつかの落とし穴があります。
Blenderでは4つ以上のボーンに対してウェイトが塗られた頂点を作成するのは簡単ですが、MMDではBDEF4に制限されます。 mmd_toolsが4つ以上のボーンにウェイトが塗られた頂点に遭遇すると、影響力の最も小さいものを落としてから再正規化しますが、この再正規化は問題につながる可能性があります。 エクスポートする前に、ウェイトペインティング/ツールバー/ツールタブのウェイトツールサブセクションから合計を制限を使用し、6つの頂点グループに限定することをお勧めします。 mmd_edge_scaleとmmd_vertex_orderの追加の頂点グループがあることを覚えておいてください。これらの頂点グループのデフォルトロックは、制限された合計数にカウントされないようにしなければなりません。 これらの頂点グループのひとつまたは両方を削除した場合は、その制限数を適切に調整します。
また、Blenderでは正規化されていないウェイトも簡単に作成できます。 頂点グループ数が適切に制限されていれば、mmd_toolsはこれらの重みを適切に再正規化しますが、手動で正規化することをお勧めします。 残念なことに、mmd_edge_scaleとmmd_vertex_orderのデフォルトロックは、Blender 2.77のすべてを正規化ツール(ウェイトペイントツール/ツールタブ/ウェイトツールからアクセスできます)に加えて処理することを防ぎません。Blenderでウェイトを正規化する必要がある場合は、これらふたつの頂点グループを削除する必要があります。
Blenderで生成された剛体は、インポートされたモーションに適応するのにいくらか時間が必要になることがあります。 これは、とりわけインポートされたモーションの原点がモーションがインポートされるモデルの原点と大きく異なる場合に当てはまります。 インポート時のパラメータMarginを使用すると、メインのアニメーションが始まる前に剛体にゆとりを与えることが出来ます。
(訳注: 物理演算がレスト位置から始まるため、全ての親ボーンを1フレーム目で動かすモーションなど、初期のポーズに大きな動きがあるモーションでは、初期ポーズになるまでの間に剛体が高速に動き過ぎて破綻します。Marginを広めにして初期ポーズまでゆっくり移動させると防げます)
Blenderでポーズを反転して貼り付けると、ボーンの名称が不適切にリネームされることにつながります。 今のところ、ポーズを反転して貼り付けるのは避けてください。 これが受け入れがたい場合は、Renamed Bonesをチェックしてモーションをインポートすると問題が解決されることがあります。
(訳注: ここでのボーンの名称はBlenderのボーン名ではなくMMDボーン名です。mmd_toolsはポーズボーンにこれらの情報を持っているためポーズを反転コピー(Shift+Ctrl+V)するとMMDボーンの情報が反対側へ移動して壊れます。モデルをエクスポートする予定がない場合は、気にせずモーションのインポート時にRenamed Bonesを使えば問題ありません)
(訳注: 3DView下のヘッダーにある<=>ボタンをクリックすると、問題を起こさずにポーズの反転ができるようになりました)
ボーンモーフでは、mmd_tools内部のIDでボーンが識別されています。すでにIDが割り当てられているボーンをBlender上でコピーするとIDもコピーされ重複します。IDが重複している場合、Morph ToolsのBone Offsetsでボーンが選択できなくなります。またMMD Bone ToolsのIDフィールドに警告アイコンが表示されます。
IDの重複を解消するにはMMD Bone Tools上でコピー側のボーンのIDを-1に設定して下さい。IDが-1の場合は、ボーンモーフ等で使用される際に重複しないIDが新たに割り当てられます。
またマテリアルモーフとマテリアルにも同様の問題があります。
Lat式モデルは、複数の透過レイヤーを使用して非常に漫画的な外観に設計されています。 デフォルト設定では、Blenderで正しく表示されません。 プロパティシェルフのシェーディングサブセクションで裏面の非表示を有効にし、プロパティシェルフのMMD subsectionのShadelessを有効にすることで、好ましい結果が得られました。
共有Toonマップ(典型的なMMDモデルでは、Toon01.bmpからToon09.bmp)を適切にレンダリングするには、ユーザー設定を変更する必要があります。
(訳注: 上記のアドオン環境設定を参照)
mmd_toolsは現在、MMDモデルの各要素に日本語の名前を使用していますが、日本語の文字を適切に表示するには、Blenderの設定を変更する必要があります。 これを行うには、ユーザー設定ダイアログのシステムタブに移動し、国際フォント(ローカライズ)を有効にします。
mmd_toolsはUVモーフオフセットデータをUV_[モーフ名][軸]の頂点グループに格納します。軸は{'+X', '-X', '+Y', '-Y', '+Z', '-Z', '+W', '-W'}のいずれかです。 mmd_toolsで通常の方法でUVモーフを編集するには、チュートリアルHow-to-create-and-edit-Material-morphs,-Group-morphs,-Bone-morphs,-UV-morphsを参照してください。
mmd_toolsは、Rigifyアドオンを使用してMetarigからリグを生成するときにエラーを引き起こす原因となるカスタムボーンプロパティを作成します。 エラーを防ぐには、mmd_tools操作パネルでBone Constraintsの[適用]/[クリーン]をクリックするか、Rigifyを使用するたびにmmd_toolsを無効にしてください。
mmd_toolsは、適切に名前が付けられたシェイプキーが存在する場合にのみ、インポートされたアニメーションからモーフをフレームに登録します。 あらゆる種類のモーフをフレームに登録したい場合で独自のドライバを作成する場合は、それらの登録を捕捉ために適切な名前のシェイプキー(おそらくベースシェイプキーのただのコピー)を作成することを検討してください。
他のプロパティのためにドライバのシェイプキー登録を使う方法については、https://blender.stackexchange.com/questions/42390/how-can-i-set-a-shape-key-value-to-be-a-drivers-variable を参照してください。
issue等で出た話で必要そうなことがあれば追記します。
シェイプキーの値を0→1に変えたときにモディファイアの影響で頂点数が変わる場合にオリジナルのメッシュとの頂点数の不一致エラーによりエクスポートが失敗します。ベベルやサブディビジョンサーフェスなどによって頂点数が変わることは問題になりません。シェイプキーの状態によって頂点数が変わるという部分が問題になります。シェイプキーによる頂点の移動はモディファイアスタックよりも前に実行されるのでこの問題が発生することがあります。 例えば、ミラーモディファイアのマージオプションにチェックが付いている状態で中心の頂点がシェイプキーによって動くと、シェイプキーの値によって中心の頂点がマージされる場合とされない場合の2通りのメッシュが存在するなどです。 エクスポートに失敗したシェイプキーはログファイルで確認できます。
2.9系では、リジッドボディワールドの設定が変更されたのが原因で、mmd_toolsでインポートした剛体がうまく動かないことがあるようです。
シーンプロパティ > リジッドボディワールド > サブステップ/フレーム
を1か2にすると、2.8系に近い動きになります。
(2.8系では、サブステップ/秒
だった設定項目が2.9以降でサブステップ/フレーム
に変更されています。またデフォルト値がサブステップ/秒=FPS (サブステップ/フレーム=1)
からサブステップ/フレーム=10
に変更されています。)
独自のシェーダーをmmd_toolsで使う方法としてmmd_toolsがマテリアルに使用するMMDShaderDevとMMDTexUVグループノードを編集してスタートアップファイルに保存する方法とMMDShaderDevの出力をシェーダーミックスなどに接続してmmd_toolsがマテリアル出力を切り替えるのを防ぐ方法があります。
mmd_toolsはMMDShaderDev、MMDTexUVという名前のグループノードがあれば新規に作成せずそれを使用します。 mmd_toolsが使用するシェーダーの置き換えが出来ます。
まずMMDShaderDev、MMDTexUVを編集する用のプロジェクトを作りノードを編集します。
- 新規作成
- ノードの編集・確認に使うMMDモデルをインポート
- シェーダーエディタを開きMMDShaderDev、MMDTexUVをタブキーで編集モードにして中身を編集
- 保存
例としてMMDShaderDev内のディフューズBSDFを放射シェーダーに置き換えて、MMDTextUV内のマッピングノードの回転をY=-17 Z=37に置き換えました。
次にスタートアップファイルに作成したMMDShaderDevとMMDTextUVをアペンドとして上書き保存します。
- 新規作成
- ファイル > アペンド > 作成したプロジェクト > NodeTree > MMDShaderDevとMMDTextUVを選択してアペンド
- ファイル > デフォルト > スタートアップファイルの保存
この後で新規に作成したプロジェクトでは変更したMMDShaderDevとMMDTextUVが使われるようになります。 制限は、グループノードの入出力をMMDShaderDevと同じに保つことですが、MMDを目的にすると同じになるのではと思います(入力を増やすのは問題ないと思います)。
戻したい場合は、アウトライナーで独立データを表示してノードグループを削除してからスタートアップファイルを再保存します。
MMD Materialを変更した時にMMDShaderDevの出力が他のノード(通常はマテリアル出力)に繋がっていなければマテリアル出力に再接続されますが、何らかのノードに繋がっていればマテリアル出力への接続は変更されません。 MMDShaderDevの出力をシェーダーミックスに接続し独自シェーダーとのスイッチに使うことでMMDShaderDevがマテリアル出力に再接続されるのを防げます。
この設定はマテリアル毎に行う必要があります。またBlender内でしか保持されないのでPMXするから再インポートするとデフォルトのノード構成に戻ります。
We are migrating the documentation: MMD & Blender Wiki in English / MMD & Blender Wiki in 日本語