2010-05-01から1ヶ月間の記事一覧

pmdエクスポートその6

とりあえず完成。 本家の基本モデルをimportしてからexportしたらほぼ、だいたい同じ状態にできるようになった(200kくらい増えるので怪しいが)。実用的にするにはもう一息必要な気もするがとりあえず更新。 http://sourceforge.jp/projects/meshio/wiki/Fron…

pmdエクスポートその5

少し前進して表示枠関連が終わった。あと、英語名関連とトゥーン設定部分をやったら一通り終わり(剛体関連以外)。 だが、まだMaterialの互換性とIKがおかしいのと頂点の属性による分離が未解決で残っている。終わらんなー。

pmdエクスポートその4

shape keyの問題がだいたい解決。複数の三角形に共有される頂点で三角形の個数回数モーフィング移動するミスをしていたのを修正した。 今問題になっているのは、前にも遭遇したBlenderとpmdの頂点の扱いの違いに関する部分。Blenderでは、面に付属する法線を…

pmdエクスポートその3

ボーン、IK周りが済んだので表情の作業にとりかかった。 意外と難航している。 blenderへのインポート時に何故か目の動き(ウインクとか)だけ動かなくなっているのに気付いたり。謎だ。インポータから一度見直す必要があるなー。あと、エクスポート時にワンス…

pmdエクスポートその2

末端ボーン(xxx先に当たるボーン)とIKを途中まで進めた。 http://sourceforge.jp/projects/meshio/wiki/FrontPage 現状だと、IK接続先ボーンをインポート時に無くしているのでエクスポート時に復活させる必要がある。復活させるよりもインポート時に残した方…

pmdエクスポートその1

pmdエクスポートの原型を作成。頂点、面、マテリアル、ボーンまで。 http://sourceforge.jp/projects/meshio/wiki/FrontPage (まだ、IK、表情その他諸々が未実装です) 途中swigのstd::vectorに頂点情報を充填するところで罠にはまった件について。 std::vect…

エクスポータ作業開始

予定通りエクスポータ作業を開始した。既存のc++でのmqoとpmd読み込み機能にそのまま書き戻す機能を追加して動作を確認した。ロードよりセーブの方が簡単なので特に問題なし。 次にblender2.4の方のmqoエクスポータをリファクタリングした。最初はc++のライ…

モーションのインポートまでできた

モーションのインポートは、io/import_anim_bvh.pyが参考にできるので簡単かと思ったが思わぬところで難航。 mathutilsのQuaternionのコンストラクタ引数ではまる。 (float, float, float), floatに対して(x, y, z), wを渡してうまくいかないのに悩む。これ…

ShapeKeyのインポートも終了

shapeKeyのインポートは、先日発見していた http://www.daniel3d.com/pepeland/misc/3dstuff/blender/anisculpt/add_AniSculpt.py のソースを参考にして比較的簡単にできた。 とりあえずgitは更新したがalpha2ではmathutilsが無い?などの問題があるのでバイ…

python bindingをアップ

python bindingのwindowsビルドの体裁が整ったのでアップました。 http://sourceforge.jp/projects/meshio/wiki/FrontPageWindows xp上のblender2.49bで動作確認しております。meshio-0.1.win32-py2.6.exeの中にblender2.4向けのmqo, pmd, vmdインポータを同…

distutilsメモ

vcでpythonエクステンションをビルドするときにスタティックCランタイムを選択(cl.exeのオプション/MT)してマニフェスト無用の方法を模索したがそんなオプションは無いみたいだ。 distutilsは内部ではsetupのコール以降だいたい以下のように呼び出される dis…

mqo, pmdインポータがほぼ完了

ようやくpmdインポータでメッシュ、shape key、Armatureの読み込みまでができた。blender2.5向けのスクリプト情報が不足していて一部難航したがなんとかなった。夜に今バージョンを整理してアップロードする予定。 特に頂点選択からオペレーション(不要頂点…

スクリプト情報メモ

Blender2.5向けのスクリプト情報。 主に http://wiki.blender.org/index.php/Doc:2.5/Manual/Extensions/Python から辿れるところ。 Scripting examples http://blenderartists.org/forum/showthread.php?t=164765 Blending Into Python/2.5 quickstart Cont…

importer移植中

2.4系と互換性が無いのでバージョンアップじゃなくて移植。 python2がpython3になったことでいろいろ変えないといかん。 文法的に必要だった変更は、 print文がprint関数になった exceptの書き方が変わった(as) xrangeが無くなった くらいだったが、strがpyt…

python3の文字列

python2から3で unicode -> str str -> bytesに変わってswigでのstd::stringの中身がutf-8決め打ちになっている。 http://docs.python.org/py3k/c-api/unicode.htmlswigのhoge_wrap.cpp #if PY_VERSION_HEX >= 0x03000000 return PyUnicode_FromStringAndSiz…

python3向けのエクステンションを作る

python2向けと同じ手順で準備してsetup.pyをpython3で実行するだけ。 python2とpytnon3の両方にパスを通してpython3のpython.exeをpython3.exeにリネームしておいた。 $ python3 setup.py build これでblender2.5向けに使える。 python3向けにするのに-py3と…

std::vectorがどうなっているか

vertices.h #include <vector> struct Vertex { float x; float y; float z; }; struct Container { std::vector<Vertex> vertices; }; に対してswigインターフェース vertices.i %module vertices %{ #include "vertices.h" %} %include "vertices.h" %include "std_vector.</vertex></vector>…

スクリプトで日本語パスが扱えない?

alpha2だが、 日本語が入っているパスだと文字化けするのみならずエラーが出て動作しないっぽい。 UnicodeDecodeError: 'utf8' codec can't decode byte 0x90 in position 24: unexpected code byteこれはたぶん、python3のstrがutf-8を仮定しているのにファ…

メソッド追加

元となるc++のソースを改造せずにswigクラスのみにメソッドを追加する。 いくつか方法がある。 c++で追加する http://blog.ssktkr.com/swig-jp/_/Python.html#n43 pythonで追加する http://old.nabble.com/Python:-Adding-Pure-Python-Methods-to-Shadow-Cla…

swigでpython bindingのメモ

ポリゴン読み込みライブラリのswigを使ったpythonバインディング実験が完了した。 これを使ってBlenderのmqo, pmd, vmdのインポータのデータ読み取り部分を置き換えての動作も確認できたので、今回は予定通りswigを採用することにする。使ってみて気付いたこ…

vcのmanifestに悩まされる

c++

R6034が出て頓挫中。 Blenderのビルドに使ったpython26.dllのmanifestとswigで作ったエクステンションのmanifestが合っていないっぽい?この際、埋め込んだmanifestを取り出してどこがおかしいか調べられるようになりたいところだがどうも良く判らん。 nmake…

distutilsの使い方

distutilsを使ったモジュールの作り方。 http://www.python.jp/doc/2.5/dist/dist.html pythonのcモジュールはエクステンションと呼ぶらしい。 distutilsのエクステンション http://docs.python.org/distutils/apiref.html#distutils.core.Extension

swig(python編)

とりあえずpython2から。 VC9ExpressEditionで本家のcpythonバージョン2.6向けのモジュールをビルドしたメモ。swigは最初cygwinのものを使ったが、バージョンが1.3.38とちょっと古かったのでswigのサイトでwindows向けビルド(1.3.40)を落としてきた。ついで…

swigを使ってみる

せっかくなのでswigを使ってみることにした。 ruby(1.8.x, 1.9.x)とpython(2.x, 3.x)でやってみる予定。 メモ マニュアル http://www.swig.org/Doc1.3/Sections.html http://blog.ssktkr.com/swig-jp/_/ http://www.cozmixng.org/~rwiki/?cmd=view;name=SWIG…