15

1 つの立方体から始めて、いくつかのプロパティ (マテリアル、色、反射属性) を変更し、オブジェクトを 12 個の立方体に複製してシーンに配置しました。レンダリング後、すべての色を変更したいと思います。これを効率的に行うにはどうすればよいですか?

私はすでに複数の方法を見つけました:

  1. オブジェクト モードで、すべてのオブジェクトを選択し ( B、次に長方形を選択)、メッシュを結合しctrl-j、色を変更し、tab編集モードにPして、オブジェクトを再度分離します。すべてのオブジェクトのメッシュが接触していないため、これは非常に可能です。基本ドキュメント
  2. 誰かが同様のことを行う Python スクリプトを作成しました。

番号 1 はエラーが発生しやすく、通常の使用には面倒です。番号 2 はより専門的で、さらに悪いものです。複数のオブジェクトを選択して値を変更するだけでは機能しません。プロパティの選択は、選択されたオブジェクトの 1 つだけであるアクティブなオブジェクトにのみ適用されるためです。

これは一般的な使用例であるため、おそらく簡単な方法を見逃しています。それは何ですか?

4

4 に答える 4

13

シンプルなボタンや GUI ソリューションはあまり好まれませんでしたが、Blender で独自の Python コードをハッキングするのは、思っているよりも簡単であることがわかりました。

私が扱っている立方体はドミノの石のようなものです。その後、ドミノのように見えるすべてのオブジェクトには、「ドミノ」で始まる名前が付けられます。名前に基づいてシーン内のすべてのオブジェクトを変更するのは非常に簡単です。

for o in bpy.data.objects:
    if not "Domino" in o.name:
        continue
    o.rigid_body.mass = 500
    o.rigid_body.friction = 0.4
    o.rigid_body.restitution = 0.95
    o.rigid_body.angular_damping = 0.2
    o.rigid_body.linear_damping = 0.05

このコードを使用するには、単純に新しいウィンドウを開き (既存の Blender ウィンドウの右上にある小さな三角形のアイコンをドラッグ)、ウィンドウの種類を「Python コンソール」に変更し (左下のウィンドウの種類を選択するアイコン)、上記のコードを次の場所に貼り付けます。それ。

コードは、外部のテキスト エディターで編集できます。別の方法として、Blender 内でテキスト エディター ウィンドウを開くこともできます。シーンを保存すると、Python コンソールと内部テキスト エディターの両方が 3D モデルに沿って保存され、非常に優れたワークフローになります。

などの正しいオブジェクト名を見つけるのbpy.data.objects["Domino.033"].rigid_body.massは非常に簡単です。これは、Blender がフォーム入力フィールドにマウス ポインターを合わせるとこれらを表示するためです。オブジェクトを特定した場合は、Python のdir()関数を使用して、オブジェクトのすべての既知のメソッドと属性のリストを取得します。GUI が変更または使用できる以上のものがあるかもしれません。

これは思ったよりずっと簡単でした。これはおそらく、GUI 要素のない複雑な操作を考えることができる理由を説明しています。単純に、コードで処理する方がはるかに簡単です。Blender 独自の配列属性を使用する代わりに、おそらくこれを使用して、線、円、らせんに沿ってオブジェクトを複製および配置します。これにより、後で簡単に位置を調整できます。

于 2013-05-21T12:09:28.580 に答える
5

Blender 3D のヒント: 一度に多数のオブジェクトで作業するには、Blender に付属しているがデフォルトではオンになっていない「属性のコピー」プラグインを有効にします。「ユーザー設定」を開き、「アドオン」をクリックしてから、 「copy attributes」をクリックして、「3D View: Copy Attributes Menu」プラグインを見つけます。プラグインを有効にして、設定を閉じます。

使用するには: 3D ビューで、1 つまたは複数の TARGET オブジェクトを選択し、最後に SOURCE オブジェクトを選択します。キーボードで「Ctrl-C」を押すと、コピーできるすべての属性タイプのメニューが表示されます。1 つ (例: スケール) をクリックすると、ソース オブジェクトのスケールが以前に選択したオブジェクトに適用されることがわかります。

ここに手動エントリがあります http://wiki.blender.org/index.php/Extensions:2.6/Py/Scripts/3D_interaction/Copy_Attributes_Menu

これは、以下に対応しています。

http://obasandbox.wordpress.com/2011/10/23/cg-blender-setting-properties-on-multiple-objects/

于 2013-11-03T14:22:17.863 に答える