Blender2.53に対応。
meshioライブラリのpythonバインディングに同梱しています。
なお、64bitはノンサポートです。
64bit環境を持っていないので作れないし、問題があっても対応できませぬ。
Cモジュール無しでも動く代替モジュールを同梱しました(1.02)。
| バージョン | |
| 1.02 | blender2.53でCモジュールを読ませるのにいろいろ問題があるので、pythonのみで代替モジュール作って追加した。 pmdの剛体を未実装。 リポジトリにビルド用に不足しているファイルなどを追加した。 |
| 1.00 | blender2.53に対応した。 |
| 0.15 | mqo_exportでapply modifierオプションを追加(2.5のみ) pmd_exportで面法線じゃなくて頂点法線をエクスポート。uvのバグ修正。など |
| 0.14 | bone groupでボーンの表示枠を保持するようにした。toontextureを保持するようにした。 sphereマップの互換性を高めた。pmd_exportのモーフィングバグを退治した。など |
| 0.13 | pmd_importのsphereマップに対応。pmd_exportでテクスチャに対応 |
| 0.12 | 中身リファクタリング。pmd_importとmqo_importのmaterial調整、透明テクスチャ。pmd_exportでのmaterial順を修正 |
| 0.11 | pmd_importのconstraintの名前の保存方法を変更。pmd_exportもそれにあわせて変更。 pmd_import, mqo_importのsmoothing周りを修正。mqo_importのsmoothingの角度判定はまだ。 pmd_importの面の表裏を修正。 |
| 0.10 | mqoエクスポートの表面反転を修正。mqoインポート・エクスポートのscaleが動作するように修正。pkg作成を修正 |
| 0.9 | 20種類ほど読み込んで微調整した。また、pkgの作成ミス。ほんとすまん |
| 0.8 | ボーンエクスポート修正。剛体バグ修正。pmdの更新に追随できていないのでvmd_importを一時はずし |
| 0.7 | 不足ファイルの追加。剛体実装 |
| 0.6 | 前後のバージョンで必要なファイル(bl24.pyとbl25.py)が抜けてました。すまん |
python2向けバインディングをインストールするとC:\Python26\blender24にインポータ、エクスポータがコピーされます。 これらのファイルを.blender/scriptsにコピーしてください。
文字化けしてファイルセレクタから選ぶことが困難ですが選択できればうごくはず。
GAME - Blender GLSL Material
にして
GAME - GLSL Material Settings - Enable Lighting
を切る。
そいで、3D Viewを Textured にした状態で見やすいように調整しとります。
python3向けバインディングをインストールするとC:\Python31\blender25にインポータ、エクスポータがコピーされます。 これらのファイルをディレクトリごと2.53/scripts/addonsにコピーしてください。
更に、
C:\Python31\lib\site-packages\meshioディレクトリを
2.53\python\libにコピーしてください。
(C:\Python3\lib\site-packageとかを見に行ってくれないっぽい)
meshio(Cモジュール)は無くても動くようになりました。
前バージョンでコピーされている場合は削除してしまってください。
ファイルのコピーが終わったらBlenderを起動して、Fileメニューからpreferenceウィンドウを開いてaddonsタブを選択。
pmd, mqoのインポータ・エクスポータの右側のチェックボックスをオンにして、defaults。
ファイルメニューのImportまたはExportにオンにしたAddOnが表示されるようになります。
1.02でのファイル配置はこうです。
C:\blender-2.53-beta-windows32
+blender.exe
+2.53
+scripts
+addons
+bl25.py
+io_import_scene_mqo.py
+io_export_scene_mqo.py
+io_import_scene_pmd.py
+io_export_scene_pmd.py
+pymeshio
+__init__.py
+enlishmap.py
+mmd.py
+mqo.py
Blenderのファイルセレクタで日本語を含むパスを選択すると
UnicodeDecodeError: 'utf8' codec can't decode byte 0x83 in position 32: unexpected code byteとなります。 内部的にsjisを含む日本語パスをpython3に渡すときのエラーです。 日本語を含まないディレクトリにpmdとテクスチャをコピーして、pmdファイル名も日本語を含まないようにしてください。
3D View で「N」キーでトグルする右側のメニューのディスプレイパネルの中
Shadingで「GLSL」を選択する。
3D Viewを「Textured」にする。
シーンにLampを置いてタイプを「Sun」にする。
この状態で見やすいように調整しています。
Blender2.53ベータで動作確認しました。 本体はBlenderの公式サイトでダウンロードできる2.53ベータを使ってください(2010/7/24)。
| plugin | 頂点・面 | マテリアル | UV | ボーンとボーンウェイト | モーフ | 剛体情報 |
| mqo import(24) | ○ | △ | ○ | 未 | ||
| mqo import(25) | ○ | △ | ○ | 未 | ||
| mqo export(24) | ○ | △ | ○ | 未 | ||
| mqo export(25) | ○ | △ | ○ | 未 | ||
| pmd import(24) | ○ | △ | ○ | ○ | ○ | 実装予定無し |
| pmd import(25) | ○ | ○ | ○ | ○ | ○ | ○ |
| pmd export(24) | △ | △ | ○ | ○ | ○ | 実装予定無し |
| pmd export(25) | △ | ○ | ○ | ○ | ○ | ○ |
ほぼ1対1に対応。 Blender側に1メッシュにつき16マテリアルの制限があるので16以降のマテリアルインデックスが捨ててる(その面のマテリアルが無くなる)。
FRESNEL
LAMBERT
ほぼ1対1に対応。 Blender側に1メッシュにつき16マテリアルの制限があるのでメッシュを分割するときがある。 このためはじめにモーフィングのある頂点を含むマテリアルだけを集めて1つめのメッシュとして、 残りを16マテリアル毎にメッシュを作るようにした。 頂点・面共に順番が維持されない。
エクスポート時の法線
FRESNELシェーダーを使用。
| pmd | blender |
| rgba | diffuse |
| specular | TOON, specular |
| ambient | mirror |
| flag | subsurface_scattering |
sph
mapping Normal
projection Sphere
spa
mapping Normal
projection Sphere
blend Add
インポート時の一部UV回転(blenderの0インデックス問題っぽい)
名前は、pmdのボーン名を標準モデルの英語名に基づいて作ったマッピングで英語に変換している。
変換表に無かったらそのまま。
ボーンウェイトは、頂点グループに保存している。
Blenderの頂点ウェイトは影響ボーン数の制限が無いので、エクスポート時は上位2つまでを選択するようにしている。
先端ボーンをボーンレイヤー2に送り込んで非表示にしている。
IKはtailのチェックをはずしている。
表示枠をボーングループで代用。
シェイプキー。 名前は、pmdの表情名を標準モデルの英語名に基づいて作ったマッピングで英語に変換している。 変換表に無かったらそのまま。 確認作業用にpinを有効にしている。
ToonTexturesというオブジェクトに10個のトゥーンテクスチャを保持
名前は日本語のまま。Blender2.5を改造して日本語フォントを選択すればちゃんと表示されるのだが・・・ どうするか保留中。 オブジェクトのトランスフォームが剛体のサイズ、位置、オイラー角を保持している。 そのほかのパラメタータはカスタムプロパティに保存。
オブジェクトのトランスフォームに位置を保存している。 そのほかのパラメータ(名前も)はカスタムプロパティに保存。