0

Blender 用のエクスポーターを作成していて、小さな問題に遭遇しました。同じモデルを複数回エクスポートすると、エクスポートされるメッシュには常に別の名前が割り当てられます (数字のプレフィックスが追加されます)。

これは、エクスポートしたいメッシュにアクセスするために使用するコードです。

for ob in bpy.scene.objects:

    # get derived objects
    free, derived = create_derived_objects(scene, ob)

    if derived is None:
        continue

    for obDerived, mat in derived:
        if ob.type not in {'MESH', 'CURVE', 'SURFACE', 'FONT', 'META'}:
            continue

        try:
            derivedBlenderMesh = obDerived.to_mesh( scene, True, 'PREVIEW' )
        except:
            derivedBlenderMesh = None

        if derivedBlenderMesh:
                        # ... and the export stuff goes here

    # once everything's done, I remove the created instance
    if free:
        free_derived_objects(derivedBlenderMesh)

正直なところ、3ds エクスポーターから取得しました。

新しい (派生) オブジェクトを作成してから、新しいメッシュ (変換されたものとすべてのもの) を作成することに気付きました。そのため、それらは新しい名前が割り当てられる可能性のある場所だと思います。

ドキュメントを参照しましたが、明らかに新しいメッシュ インスタンスを作成するto_meshメソッド以外に、オブジェクトとメッシュ インスタンスの間に明確な関係はありませんでした。

ただし、元の名前を取得する必要があります。誰かにアクセス方法を教えてもらえますか?

前もって感謝します:)

4

1 に答える 1

0

わかりました-id(ちょっと)を回りました。私は基本的にメッシュ名を無視し、埋め込まれているオブジェクトにちなんでエクスポートされたメッシュに名前を付けています。

もちろん、これはすべてのオブジェクトに専用のメッシュがあるという仮定の下で機能しますが、エクスポートの前にそれらを複製しているので、実際にそうです。

誰かがより良い解決策を持っている場合は、ここに投稿してください。

于 2012-09-05T13:24:18.920 に答える