2つの別々のオブジェクトを接続して、最初のオブジェクトを移動すると2番目のオブジェクトも移動する方法を探しています。用語親が使用されますが、オブジェクトを親にするにはどうすればよいですか?
回答
すばやく簡単に回答するには、次のオブジェクトを選択してください。最初に接続され(子オブジェクト)、次に変換データを子オブジェクトに転送するオブジェクト(親オブジェクト)を選択します。選択順序は重要です。親オブジェクトは、アクティブオブジェクト。次に Ctrl P > オブジェクト。
ブレンダーでオブジェクトを親する方法はたくさんあります。5つの異なるウィンドウからオブジェクトを親にすることができます。 3Dビュー、プロパティエディター、アウトライン、テキストエディター、コンソール。さらに、さまざまな親タイプの気の遠くなるようなリストがあります。
子育ては複雑な試練であると思われるので、単純化してみましょう。
その大きなリストのうち、実際には3種類の子育てしかありません。これらは、オブジェクト、アーマチュア、および頂点です。
多くの子育てタイプの違い
-
オブジェクトは、これまでで最も一般的なタイプの親です。 13の子育てタイプのうち8つで使用されます。
2つ以上のオブジェクトを選択すると、オブジェクトの子育てタイプを使用できます。親オブジェクトへの変換(スケールの回転と位置)はすべて子に影響します。 -
アーマチュア変形これは間違いなく最も複雑な子育てのグループです。タイプ。アーマチュアデフォームは、アクティブオブジェクトがアーマチュアの場合にのみ使用できます。選択したオブジェクトを子として、アクティブオブジェクト(アーマチュア)を親として、オブジェクトの親を設定します。 アーマチュアモディファイヤを子オブジェクトに追加します。アーマチュアはすでにモディファイアのターゲットオブジェクトとして設定されています。この時点では、通常のオブジェクトの親以外は何もしません。3つのサブオプション空のグループ、自動ウェイト、エンベロープウェイトがリギングプロセスで使用されます。
-
ボーンアクティブオブジェクトがアーマチュアの場合にのみ使用可能です。オブジェクトの親とまったく同じですが、ここでは子が単一のボーンから変換されています。
下の写真では、リングを配置しました。指、次に Shift でアーマチュアを選択しました。アーマチュアをアクティブオブジェクトとして使用すると、ポーズモードになり、適切なボーンを選択できます。最後に、オブジェクトをボーン、 Ctrl P > ボーンを使用。 -
ボーン相対はボーンと同じですが、変更がある点が異なります。親ボーンに対して編集モードで作成しても、子オブジェクトには影響しません。
-
カーブ変形アクティブオブジェクトがカーブオブジェクトの場合にのみ使用できます(ベジェ曲線またはNURBS曲線)。選択したオブジェクトを子として、アクティブなオブジェクト(曲線)を親として、オブジェクトの親を設定します。 Curve モディファイヤを子オブジェクトに追加します。カーブはすでにモディファイヤのターゲットオブジェクトとして設定されています。
-
Follow Path も、アクティブオブジェクトがカーブオブジェクトの場合にのみ使用できます。カーブデフォームと同じように、オブジェクトの親が設定されます。また、評価時間がアニメーション化されます。カーブオブジェクトのパスアニメーション。
-
Path Constraint は、カーブオブジェクトでのみ使用できる最後のオプションです。親を設定せず、代わりに、選択したオブジェクトに Follow Path 制約を追加します。制約のターゲットをアクティブオブジェクト(曲線)として使用します。
-
格子変形は、アクティブオブジェクトが次の場合にのみ使用できる特別なオプションです。格子。ラティスを親として設定し、選択したオブジェクトを子として設定し、さらにラティスモディファイヤを選択したオブジェクトに追加します。
-
頂点これは3つの主要な子育てタイプの1つ。位置情報のみが子に与えられるという点で、オブジェクトの親とは異なります。親である頂点の位置です。親オブジェクトは移動する必要はありませんが、修飾子は頂点の位置を変更でき、子オブジェクトは移動します。
-
頂点(三角形)一見、オブジェクトの親と同じように見えるかもしれませんが、頂点が3つあることを除けば、頂点の親とまったく同じです。 3つの頂点から、子はオブジェクトの親と同じ位置、スケール、および回転を取得します。頂点を追跡するという利点があります。
3Dビュー
オブジェクトを親にする最も一般的な方法は、2つ以上のオブジェクトを選択した3Dビューで、 Crtl <を押します。 / kbd> P > オブジェクト。親はアクティブオブジェクトであり、子は選択されたオブジェクトであることに注意してください。これは、3Dビューヘッダーのメニューを使用するオブジェクト>親>オブジェクトと同じです。子の親関係の船は、3Dビューで、オブジェクトの原点を結ぶ小さな破線で表されます。
ここでは、立方体と猿はすでにオブジェクトの親になっています。立方体が親(アクティブオブジェクト)で、サルが子です。
アウトライナー
アクティブオブジェクトとの混同がないため、アウトライナーは優れています。親が行きます。目的の子オブジェクトのアイコンをドラッグして、目的の親オブジェクトの上にドロップするだけです。子育てのオプションが複数ある場合、blenderはどちらを使用するかを尋ねてきます。
[プロパティ]ウィンドウ
親となるオブジェクトを選択するだけです。このメソッドを使用すると、アクティブオブジェクトは常に child になります。
ただし、この方法を使用してオブジェクトをペアレント化すると、3Dビューまたはアウトラインとは非常に異なる結果になります。
下の画像では、キューブとコーンの両方がまったく同じ場所にあります。 、回転やスケールはありません。左側は、子育ての前に両方がどのように見えたかです。立方体を中央と右側の両方の円錐にペアレント化しました。中央は3Dビューを介して親になり、右側はプロパティウィンドウのフィールドを使用しました。
違いはさまざまなPythonコマンドにあります(詳細はこちら) Pythonセクションで)。重要なのは、プロパティウィンドウのフィールドを使用する場合、ワールドの原点からの子オブジェクトの距離(0,0,0)が親からのオフセットになります。これは、上の画像では4単位の立方体で示されています。コーンのX軸に沿って。
Python
オブジェクトを親にできる最後の2つの場所は、テキストエディタとコンソール。どちらもPythonを介して直接ペアレント化にアクセスできます。2つのペアレント化コマンドは
bpy.ops.object.parent_set()
とbpy.data.objects["child"].parent = bpy.data.objects["parent"]
このスクリプトは3Dビューと同じように親になります。
import bpy bpy.data.objects["child"].select = True bpy.data.objects["parent"].select = True bpy.context.scene.objects.active = bpy.data.objects["parent"] bpy.ops.object.parent_set()
ただし、このコード行
bpy.data.objects["child"].parent = bpy.data.objects["parent"]
は、プロパティウィンドウを使用する場合と同じように親になります。これは、プロパティウィンドウがbpy.context.object.parent = bpy.data.objects["parent"]
を実行するためですが、それ以外の場所では、blenderは
。
ただし、bpy.ops.object.parent_set()
の使用を避け、子オブジェクトを親の後にその位置に残すことができます。 g。これを行うには、子のmatrix_parent_inverse
を親の逆ワールドマトリックスに明示的に設定する必要があります。以下のコードを参照してください。
parent = bpy.data.objects.get("parent") child = bpy.data.objects.get("child") if child: child.parent = parent if parent: child.matrix_parent_inverse = parent.matrix_world.inverted()
その他のオプション
オブジェクトの親と同じタイプの関係を取得する方法は他に2つあり、これら2つは制約の子と親アクチュエータ。
制約の子
子オブコンストレイントはオブジェクトの親と同じように機能しますが、コンストレイントであることに伴う追加の利点があります。同じオブジェクト上でアニメート可能で複数の親があり、特定の変換のみに影響し、特定の軸のみに影響します。
ターゲットオブジェクトを指定した後、手動で、 " Set Inverse " ボタンを押すことをお勧めします。制約(これは、プロパティウィンドウと3Dビューからの親の違いと同じことに戻ります) 。これで、オブジェクトの親の子オブジェクトと同じように動作するオブジェクトができました。
制約の1つの癖は、子オブジェクトと親オブジェクトの両方を選択してそれらを移動すると、子の動きが複合である、つまり、親の2倍の速度で移動します。移動後、 " Set Inverse " ボタンをもう一度押すだけで、子供をに戻すことができます。正しい場所。
制約の子の私のお気に入りの機能は、特定の変換にのみ影響を与えることができることです。これは上のgifに示されています。
親アクチュエータ
論理ブリックである親アクチュエータは、ゲームエンジンでのみ機能します。これは、通常のオブジェクトの親とまったく同じことを行います。 通常の子育てはゲームエンジンで機能しますが(癖がいくつかあります)。 親アクチュエータには、ロジックブリックまたはPythonを介して、ゲーム内で親を動的に制御できるという利点があります。
コメント
- 再作成するのに適した包括的なリスト -人々をに誘導します。
- とてもいいです! 3Dビューの場合、"オブジェクト"と"オブジェクトの違いは何ですか( Keep transform)"?
- Anson Savage、Keep Transformでは、オブジェクトは3Dビューでオブジェクトを配置したのとまったく同じ場所を保持します。