Show page source of Blender #65236

Blender2.55に対応。

Blender pluginを独立させました。

= 履歴
||'''バージョン'''|| ||
||1.03||blender2.55向け修正。パッケージ方法変更||
||1.02||blender2.53でCモジュールを読ませるのにいろいろ問題があるので、pythonのみで代替モジュール作って追加した。[[BR]]pmdの剛体を未実装。[[BR]]リポジトリにビルド用に不足しているファイルなどを追加した。||
||1.00||blender2.53に対応した。||
||0.15||mqo_exportでapply modifierオプションを追加(2.5のみ)[[BR]]pmd_exportで面法線じゃなくて頂点法線をエクスポート。uvのバグ修正。など||
||0.14||bone groupでボーンの表示枠を保持するようにした。toontextureを保持するようにした。[[BR]]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もそれにあわせて変更。[[BR]]pmd_import, mqo_importのsmoothing周りを修正。mqo_importのsmoothingの角度判定はまだ。[[BR]]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)が抜けてました。すまん||

= Blender2.55プラグインの使い方 =
Blenderプラグインを独立させてzipアーカイブで配布することにしました。
meshio-blender25-1.03.zip
です。

zipアーカイブを展開して、addonsというディレクトリの中身を
blenderの2.55/scripts/addonsにコピーしてください。

~~
更に、
C:\Python31\lib\site-packages\meshioディレクトリを
2.53\python\libにコピーしてください。
(C:\Python3\lib\site-packageとかを見に行ってくれないっぽい)
~~[[BR]]
meshio(Cモジュール)は無くても動くようになりました。
前バージョンでコピーされている場合は削除してしまってください。

ファイルのコピーが終わったらBlenderを起動して、Fileメニューから[User preference]ウィンドウを開いて[addons]タブを選択。
pmd, mqoのインポータ・エクスポータの右側のチェックボックスをオンにして、[save defaults]。
ファイルメニューのImportまたはExportにオンにしたAddOnが表示されるようになります。
[[Embed(plugins.png)]]

== ファイル配置 ==
1.02でのファイル配置はこうです。[[BR]]
{{{
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」キーでトグルする右側のメニューのディスプレイパネルの中[[BR]]
Shadingで「GLSL」を選択する。[[BR]]
3D Viewを「Textured」にする。[[BR]]
シーンにLampを置いてタイプを「Sun」にする。[[BR]]
[[BR]]
この状態で見やすいように調整しています。

== 2.55ベータ用 ==
Blender2.55ベータで動作確認しました。
本体はBlenderの公式サイトでダウンロードできる2.55ベータを使ってください(2010/12/28)。

= Blender2.4プラグインの使い方 =
python2向けバインディングをインストールするとC:\Python26\blender24にインポータ、エクスポータがコピーされます。
これらのファイルを.blender/scriptsにコピーしてください。

== 日本語パスの扱いについて ==
文字化けしてファイルセレクタから選ぶことが困難ですが選択できればうごくはず。

== 表示設定 ==
GAME - Blender GLSL Material[[BR]]
にして[[BR]]
GAME - GLSL Material Settings - Enable Lighting[[BR]]
を切る。[[BR]]
そいで、3D Viewを Textured にした状態で見やすいように調整しとります。
= 機能 =
||'''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)||△||○||○||○||○||○||

= mqo =
== 頂点・面 ==
ほぼ1対1に対応。
Blender側に1メッシュにつき16マテリアルの制限があるので16以降のマテリアルインデックスが捨ててる(その面のマテリアルが無くなる)。

== マテリアル ==

=== shader=1(Constant) ===
FRESNEL

=== それ以外 ===
LAMBERT

= pmd =
== 頂点・面 ==
ほぼ1対1に対応。
Blender側に1メッシュにつき16マテリアルの制限があるのでメッシュを分割するときがある。
このためはじめにモーフィングのある頂点を含むマテリアルだけを集めて1つめのメッシュとして、
残りを16マテリアル毎にメッシュを作るようにした。
頂点・面共に順番が維持されない。

=== ToDo ===
エクスポート時の法線

== マテリアル ==
FRESNELシェーダーを使用。
||'''pmd'''||'''blender'''||
||rgba||diffuse||
||specular||TOON, specular||
||ambient||mirror||
||flag||subsurface_scattering||

sph[[BR]]
mapping Normal[[BR]]
projection Sphere[[BR]]

spa[[BR]]
mapping Normal[[BR]]
projection Sphere[[BR]]
blend Add[[BR]]

== UV ==
=== ToDo ===
インポート時の一部UV回転(blenderの0インデックス問題っぽい)

== ボーンとボーンウェイト ==
名前は、pmdのボーン名を標準モデルの英語名に基づいて作ったマッピングで英語に変換している。
変換表に無かったらそのまま。
ボーンウェイトは、頂点グループに保存している。
Blenderの頂点ウェイトは影響ボーン数の制限が無いので、エクスポート時は上位2つまでを選択するようにしている。
先端ボーンをボーンレイヤー2に送り込んで非表示にしている。
IKは[use tail]のチェックをはずしている。[[BR]]
表示枠をボーングループで代用。

== モーフ ==
シェイプキー。
名前は、pmdの表情名を標準モデルの英語名に基づいて作ったマッピングで英語に変換している。
変換表に無かったらそのまま。
確認作業用にpinを有効にしている。

== トゥーンテクスチャ ==
ToonTexturesというオブジェクトに10個のトゥーンテクスチャを保持

== 剛体 ==
名前は日本語のまま。Blender2.5を改造して日本語フォントを選択すればちゃんと表示されるのだが・・・
どうするか保留中。
オブジェクトのトランスフォームが剛体のサイズ、位置、オイラー角を保持している。
そのほかのパラメタータはカスタムプロパティに保存。

== 制約(constraint) ==
オブジェクトのトランスフォームに位置を保存している。
そのほかのパラメータ(名前も)はカスタムプロパティに保存。