Blender ファイル内のすべてのオブジェクトを解析し、名前でフィルター処理してから、特定の基準を満たしていることを確認するためのカスタム エクスポート スクリプトを作成しています。
Blender 2.68a を使用しています。いくつかの基本的な 2D および 3D メッシュと、テスト基準に合格しないはずのいくつかを含むブレンダー ファイルを作成しました。Blender 内の内部 Python コンソールで作業しています。Blender の Python 環境はカスタマイズされているため、これが Blender の Python API を操作する唯一の方法です。
for ループと D.objects イテレータを使用してオブジェクトを反復処理し、正規表現を使用して名前の一致をチェックし、次を使用してオブジェクトからメッシュを取得する方法を並べ替えました。
mesh = obj.to_mesh(C.scene, True, 'RENDER') #where obj is an bpy.data.object[index] in the scene
mesh.update(True, True)
mesh.polygons[index].<long list of possible functions>
ポリゴンの配列にアクセスして、ポリゴンを形成するエッジを持つ一連の頂点があるかどうか、およびそれらのキー値が何であるかを知ることができます。
私が整理できないのは、ポリゴンが面なのか単なるポリゴンなのかをPythonコンソールから判断する方法です。組み込み関数はありますか、またはこれをプログラムで判断するためにどのようなテストを実行できますか? たとえば、面を持たない 4 つのエッジを持つメッシュ 4 つの頂点を持つことができます。これをエクスポートしたくありませんが、同じ 4 つの頂点/エッジを編集して面を配置すると、望ましい輸出になる。
誰でも bpy.data.object データ構造を説明したり、「顔」が保存されている場所を説明したりできますか? それは npolys 自体のプロパティであるかのように見えますが、API では明らかにされていません。これを明確にするための支援をいただければ幸いです。乾杯。