思いつくままを綴る雑記帳

WaveFront(.Obj) AddOn [注意事項]

忘れないように備忘録として記録・・・。
って、ここに書いた事自体忘れてそうだけど・・・。
タイトルにあるように現時点でのBlenderデイリービルド版のAddOnの話です。
バグかな?と思ってBugTrackerに報告したら仕様通りだよと言われたので記録しておきます。
猫さんにはその仕様が正しいとは理解できないので、そういう作りなのだという理解です。

複数のobjectsを 'Objects as OBJ objects' で.objファイルにExportした場合の話で・・。
マテリアルが未設定のobjectが含まれていると、そのobjectにダミーのマテリアルが勝手に追加されるという。

また、objectにvertex groupが設定されているとそのobjectのfaceが含まれるvertex groupを検証する時に
そのfaceに含まれるvertexのweightを加算してweightの加算値の一番大きなvertex groupがそのfaceを含むvertex groupと結論付けているということです。

意味分からんでしょ?
単一のfaceがvertex groupを構成しているとする。
そのvertex groupのweightが0.1とする。
そのfaceのvertexを共有する別のvertex groupのweightが1.0だとすると、そのfaceはその別のvertex groupに含まれていると判断するということらしいです。
事実そのようなblendファイルを作成してExportするとそのfaceのvertex groupは出力されないで別のvertex groupに含まれるfaceとして生成されました。
これが現在の仕様だそうです。
サンプルとしてわざとweightを調整したblendファイルを添付したら、それをちゃんと説明してくれたのでこちらの意図は伝わっているはず。

まぁ、自分でobjファイル作る時は改造したスクリプトで出力するから、こんなアホな生成ファイルにはならんけど。
vertexのweightの加算値の拘る理由が分かれば理解出来るのかも知れないが・・・。
猫さんそんなに賢くないのでわかりません。

図で示すとこうなる。
vgroupweight.png
こんなweight設定のobjectでexportするとgroup1はgroup4と認識される。
currentresult.png
これが現状の結果・・・group1のvertex groupすら消滅してgroup4の一部としてgroup1のfaceは認識されている。
myResult.png
で、これが猫さん改スクリプトの結果。vertex groupにgroup1がちゃんとあって、それをfaceとして認識している。
これは仕様通りではないということらしいです。
スポンサーサイト

コメント

コメントの投稿

URL
コメント

パスワード
秘密
管理者にだけ表示を許可する

トラックバック

トラックバックURL : http://perfectcat.blog101.fc2.com/tb.php/306-4ff285fa
<< Particles system(Blender) | TOP | Blender [Auto Update Other Affected Windows] >>