[blender]チャイルドコンストレイントを任意のタイミングで解除する方法

blender2.82使用
物を途中で持つ時などに使うチャイルド(child of)コンストレイント。
ペアレントを動的に行う事ができる便利なコンストレイントです。
でもこれ使う時は良いんです。
離す時にどう解除していいか分からない方も多いかと思います。
任意のフレームで離す方法を紹介します。








使う時は簡単
使い方は難しくありません。
チャイルド(child of)コンストレイントを追加し、親オブジェクトとなるターゲットを指定。
位置がズレるので「逆補正を設定」ボタンを押せばペアレントの完了です。
途中で掴む場合は、掴む前のフレームで影響を0にしてIキーでキーフレームを打ち、次のフレームで影響を1にしてIキーでキーフレームを打ってください。






















問題は離す時
離す時はちょっとコツが要ります。
まず離す1フレーム前で子オブジェクトのキーフレームを打ってください。必要なトランスフォームのキーフレームです。これはコンストレイントの影響を受けていない状態のキーフレームになります。そして影響の値にキーフレームを打ってください。







次に離すフレームで子オブジェクトのトランスフォームにビジュアルキーフレームを打ってください。ビジュアルキーフレームとはコンストレイントなどの影響を受けた状態をキーフレームにする事です。つまり離すフレームの位置や回転、拡大縮小の値を記録するわけです。





または、ビジュアルキーフレームを打つかわりに影響の横にある×を押したあと普通のトランスフォームのキーフレームを打ってもOKです。





その後、影響を0にして影響にキーフレームを打ちます。


これで任意のフレームでちゃんとペアレントを解除する事ができます。
つまり子オブジェクトの立場で見れば、離す直前まで静止していて、離された瞬間にその場所に移動する事になります。






この調子でやれば何度でもペアレントや解除ができそうですが、2回目以降を設定すると上手くいきません。あちらを立てればこちらが立たず状態です。







何度もペアレントする場合
複数回ペアレントする場合はその都度チャイルド(child of)コンストレイントを追加してください。1個のチャイルド(child of)コンストレイントにつき1セットまでです。そうすれば上手くいきます。