ぷるぷるの雑記

低レイヤーがんばるぞいなブログ. 記事のご利用は自己責任で.

Blenderで親子関係を付与する

Blenderでオブジェクトの親子関係を付与するには、自分が知る限り3つの方法がある

  1. Ctrl + P
  2. Object->Parent
  3. Object Properties -> Relations -> Parent

先に述べておくが、1と2に関してはInverse(逆行列)を用いるか否かで挙動がかなり異なる. また、3に関してはInverseを用いない場合の挙動になる. このInverseの有無による挙動の違いは最後に軽く触れる.

Ctrl + P で親子関係を付与

子にしたいオブジェクトを(Shiftを押しながら複数)選択し、親にしたいオブジェクトを最後に選択した状態でCtrl + P を押すと Set Parent To メニューが表示されるのでObject または Object(Without Inverse)を選択すると親子関係を付与することが出来る.

Objectから親子関係を付与

Object(Without Inverse)から親子関係を付与

Object -> Parent で親子関係を付与

オブジェクトの選択の仕方は Ctrl + P と同じで、ショートカットを使わずにObjectメニュー -> Parent からObject または Make Parent without Inverse を選択すると親子関係を付与することが出来る.

Objectから親子関係を付与
Make Parent without Inverse から親子関係を付与

Object Properties -> Relations -> Parent で親子関係を付与

Transformなどをいじることが出来るObject Properties -> Relations -> Parent から親となるオブジェクトを選択すると親子関係を付与することが出来る.

Object Properties から親子関係を付与

Inverseの有無について

こちらの記事 で詳しく調べられている方がいるが、Blenderの親子関係は複雑で、「親と連動して動くが子オブジェクトの原点の基準がワールド座標の原点である親子関係(Inverse有)」と、「親と連動して動くし子オブジェクトの原点の基準が親オブジェクトの原点である親子関係(Inverse無)」があるらしい. つまり、子のTransformの値が、前者は絶対的なもので後者は相対的なものになる.

また、1と2の方法でInverse無しを選んだ場合子要素が消えたように見えたのは、子要素のLocationが自動的に(0, 0, 0)になるからである. また、3の方法はInverse無しになるが、子要素のLocationは変化しない.(ただし、原点が親の原点になるため、親要素の原点がワールド座標の原点と一致していない限り親子関係を付与した瞬間子要素が移動したように見える).

参考

docs.blender.org

kurotorimkdocs.gitlab.io