Blender 2.49b 個人用勝手マニュアル
サイトマップ    お問い合わせ


ツール全般 > 親子関係 (Parent)

親子関係 (Parent)

このページの目次

概要

オブジェクトは、他のオブジェクトを1つだけとすることができます。オブジェクトが何かによって、いくつかのの種類から選択できます。

が普通の形状オブジェクト
選択肢は Make Parent だけであり、普通の親子関係を作ります。
曲線
4つの選択肢があります。
Normal Parent
先の Make Parent と同じ、普通の親子関係を作ります。
Follow Path, Path Constraint
曲線に沿って子を動かす関係です。

なお、Path Constraint は親子関係ではありません。親子関係による Follow Path に類似しているため、このメニュー内にあるものと思われます。

Curve Deform
曲線に沿って子を変形する関係です。
Armature
Armature(骨格)による子の変形を行う関係です。

共通の機能

どの親子関係でも、を移動・回転・拡大・縮小すると、オブジェクトの一部であるかのように移動・回転・拡大・縮小します。

だけを移動・回転・拡大・縮小することもできます。は、と自身、両方の変化を足しあわせた位置・角度・縮尺になります。

「普通の親子関係」というのは、この状況だけを提供し、その他の親子関係は、この状況に加え、前記の各機能が付加されます。

親子関係の制約は、以下です。

の位置などをクリアする

前記の、曲線に沿わせる場合など、原点上に無いと曲線からずれた場所に変形されます。このようなときに、しばしばを選択して [Alt + G], [Alt + R], [Alt + S] で位置・角度・縮尺をリセットしたり、親子関係を変化させたりすることがあります。

親子の座標系の関係は、理解しなくともなんとかなりますし、少々ややこしいので、後にまとめます。

親子関係を作る・削除する・変化させる

親子関係を作る

の順に選択(を [右クリック] し、を [Shift + 右クリック])し、[Ctrl + P] を押すと、の種類を選択するメニューが開くので、選択します。

複数オブジェクトを選択し、最後にを選択することで、複数のオブジェクトをいっぺんににすることもできます。

[Ctrl + P] の代わりに [Shift + Ctrl + P] を押すと、の位置をクリアして、逆変換なしの状態で親子関係を作ります。

逆変換については、後述の「親子関係を変化させる」や「親子の座標系の関係」を参照してください。

なお、[Shift + Ctrl + P] では、が普通の形状オブジェクトならば "Make parent without inverse" と逆変換なしである旨が表示されます。曲線Armature のときは [Ctrl + P] のときとメニュー表示は変わりませんが、逆変換なしで親子関係が作られます。

without inverse は、いつ使うか?

基本的に使うことはありません。

[Shift + Ctrl + P] での make parent without inverse や、後述の親子関係を作った後の [Alt + P] での Clear Parent Inverse を使うように指示されている場合は、普通に [Ctrl + P] で親子関係にした後に [Alt + O] Clear Origin すること試してみてください。それでも思い通りにならない場合は [Alt + G] での座標のクリアを試してみてください。

唯一 without inverse が使えるとすれば、曲線に沿って子を動かす場合や曲線に沿って子を変形する場合で、が縮尺を持っていない場合です。この場合も without inverse を使う必要は無く、上記の [Alt + O] で対応できます。

without inverse という名前の通り、この時は内部処理で変換が一段階不要になるはずです。もしかすると、その分だけ早くなるかもしれないので、without inverse で問題が無い場合は使った方が良いのかもしれません。

親子関係を削除する

を選択し、[Alt + P] を押すと、メニューが開きます。

Clear Parent
単に親子関係を削除します。

の移動・回転・拡大・縮小によってに適用された移動・回転・拡大・縮小は解消されます。

つまり、基本的には親子関係を作る前の状態に戻ります。

親子関係となっている間にを移動・回転・拡大・縮小した場合は、の位置・角度・縮尺情報が変化しているので、これらを反映した状態になります。

なお、[Alt + O] による子の移動の位置情報を変化させないので、親子関係を解消した後には (0, 0, 0) 位置にはなりません。

Clear and Keep Transformation (Clear Track)
の移動・回転・拡大・縮小によってに適用された移動・回転・拡大・縮小をそのまま維持して、親子関係を削除します。

つまり、親子関係にあるときのの状態がそのまま維持されます。見た目を維持するために、の位置・角度・縮尺情報は変化することになります。

Clear Parent Inverse
親子関係は削除しません。次項を参照してください。

親子関係を変化させる

親子関係を変化させる2つの機能がありますが、これを真に理解するには逆変換の理解が不可欠です。以下に簡単に説明しますが、詳しくは後述の 親子の座標系の関係 を参照してください。

の座標はどのように決められるか? ここでは簡単のために角度と縮尺を無視して、位置だけを考えます。

単純には、原点とするの座標系の中に配置されます。例えばの座標が (1, 1, 1)、の座標が (2, 2, 2) であれば、の位置はグローバル座標系では (3, 3, 3) となります。つまり、の座標に対して、の座標による (+2, +2, +2) という変換が行われます。

ところが [Ctrl + P] で親子関係にしても、はこのようには移動せず、親子関係となる前の状態を保っています。内部処理では、このように見せかけるために、上記の単純な変換に加えての座標による逆変換 (-2, -2, -2) も行っています。

逆変換を削除する

を選択し、[Alt + P] を押し、Clear Parent Inverse を選択すると、逆変換を行わなくなります。

逆変換による補正がなくなって、の位置・角度・縮尺が思いもよらないことになるかもしれません。

子の原点を親の原点へ移動する

を選択して [Alt + O] で Clear Origin すると、原点原点へ移動します。

これはの位置情報で移動するのではなく、逆変換による平行移動を補正することで実現しています。

親子の座標系の関係

も、それぞれが位置・角度・縮尺を持ちます。に影響されることなく、これらがそのままグローバル座標系での値になりますが、のグローバル座標系での位置・角度・縮尺は、の影響を受けます。これがどうなるかを、この項目で説明します。

Inverse

処理上で単純な親子関係

内部処理の観点でもっとも単純な親子関係は、オブジェクトに対しての持つ位置・角度・縮尺情報に基づいて変換したものに、さらにの持つ位置・角度・縮尺情報で変換をかける、というものです。

具体的には、の各頂点の座標は以下の変換で得られます。

  1. 通常の位置を算出します。
    1. の各頂点を、の角度に従って回転し、の縮尺を掛けます。この2変換の順序は逆でも同じになります。
    2. の各頂点に、の位置を加えます。ここまではすべてのオブジェクトの頂点に対して行われている、通常の変換です。
  2. 親子関係を適用します。上記で確定した座標を、単純にの情報で同じ変換をするだけです。
    1. 各頂点を、の角度に従って回転し、の縮尺を掛けます。この2変換の順序は逆でも同じになります。
    2. 各頂点に、の位置を加えます。

[Shift + Ctrl + P] で without inverse な親子関係を作ると、このような単純な(inverse の無い)状態になります。但し、の位置情報は (0, 0, 0) にクリアされます。

例えば、オブジェクトが、親子関係となる前にグローバル座標系で以下の状態にあったとします。

: 位置 = (1, 1, 1) 、角度 = (0, 0, 0) 、縮尺 = (2, 2, 2)

: 位置 = (2, 2, 2) 、角度 = (45, 45, 45) 、縮尺 = (3, 3, 3)

単純な親子関係の変換を行うと、はグローバル座標系で以下の状態になります。

位置 = (5, 5, 5) 、角度 = (45, 45, 45) 、縮尺 = (6, 6, 6)

蛇足かもしれませんが、どのような変換が行われたかを説明します。

角度や縮尺はともかく、の位置が原点付近でなければ、見失ってしまうかもしれません。例えばも (100, 100, 100) 近辺にいる場合、親子にしたとたんには (200, 200, 200) 付近へ行くことになります(の角度が (0, 0, 0) の場合)。おそらく、このように見失うのを防ぐために [Shift + Ctrl + P] ではの位置情報をクリアするのでしょう。

このような配慮は [Alt + P] での Clear Parent Inverse にはありません。は彼方へ移動する場合があります。

見かけ上で単純な親子関係

[Ctrl + P] で通常の親子関係を作ると、はグローバル座標系で変化しません。見かけでは単純ですが、処理上は上記の単純な処理に加えてさらに変換が必要です。

具体的には、前記した次の2つの変換、

  1. 通常の位置を算出します。
  2. 親子関係を適用します。上記で確定した座標を、単純にの情報で同じ変換をするだけです。

の間に、次の変換が追加されます。

  1. の情報に基づく逆変換を行います。
    1. 各頂点から、の位置を減じます。
    2. 各頂点を、の角度に従って回転し、の縮尺で割ります。この2変換の順序は逆でも同じになります。

つまり B の変換を無効にするための B の逆変換を行います。この変換を inverse と言います。

Inverse 変換は親子関係を作ったときのの情報が記憶され、の位置・角度・縮尺が変わっても変化しませんが、1つだけ inverse 変換が変化する操作があります。

を選択して [Alt + O] Clear Origin を実行すると原点原点へ移動します。これはの座標を移動しているのではなく、inverse 変換に手を加えています。具体的には、前記 C の 1 の平行移動で、原点が (0, 0, 0) となるような補正が追加されます。「Clear Origin」というのは見かけ上の挙動を示す名前で、実は何かをクリアしているのではありません。

関節

関節を作るには、多くの場合は Armature を使った方が簡単で表現力もありますが、親子関係でもできます。

右の動画は以下のように作られています。

この例の場合は球が点対称形なので、直方体に IPO カーブを設定しても見た目の問題はありません。

また、2つの青いオブジェクト、2つの緑のオブジェクト、それぞれを1つのオブジェクトとして作っても良いでしょう。