2011年10月11日火曜日

Blender Add-on : BlendPose (4)


これのdriver_namespaceのエントリーがうまく行ったりいかなかったりで、いまいちまともに動かなかった原因が解った。
サンプルコードの多くがdriver_namespaceの登録をスクリプト起動時に行っているが、テキストエディタにコードを書いて動かすならそれでいいのだが、Add-onとして動かすにはそれでは問題があった。
API wikiによるとファイルをオープンするとリセットされる・・・つまり、Blenderを起動して新規にリグを組む場合はうまく行くが、それ以外はnamespaceがリセットされるのでドライバーでエラーになる。
 実際には常に動いていたこともあったのだが、動いていた方がバグで、2.59.4ではファイルをオープンすると必ずエラーになる。
そんな訳で、コールバック処理にnamespaceのチェックを行って無かったら再登録するように修正した。

There were when this add-on's namespace could be given,but it couldn't at another time. I didn't know that causes.
The entry of namespace is written at register section at the many sample codes,but it is right when it is started from Blender-TextEditor,but it has the trouble for add-on.
API wiki says,reset when open file...so,it can go well when making new rig after starting Blender,but in other cases,the driver errors are happened because the driver namespace is reset. In the real,there were when it could always work,but it was bug,and it always makes error when opning files at 2.59.4.
So I fixed it with adding the re-entry in callback function.

Blend Pose Add-on