夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Blenderでキャラクターの手に別のオブジェクトを持たせる

本日はBlender枠です。

本日はコップを手に持つなどBlenderで何かを手に持つ動作を実装します。

〇環境

・Blender4.1

・Windows11PC

〇オブジェクトの追従の考え方

 オブジェクトを手に持たせるということがどのようなこと考えてみます。

 例えば次の立方体と直方体を考えます。

 立方体を手、直方体を手に持たせるオブジェクトとして考えるとき、立方体を親オブジェクトとするように直方体を子オブジェクトに設定することで立方体(手)を動かすのに同期して相対位置が変わらず直方体が動きます。

 

 しかし、このように親子関係にすることで"常に"手に対して追従するようになってしまいます。

 これでは例えば机の上からコップをとって離すといったことができません。

 常に机の上にありながら手の動きに合わせて動いてしまいます。

このために今回はオブジェクトコンストレイントを使用していきます。

〇オブジェクトコンストレイントを使用した親子関係

 Blenderではオブジェクトコンストレイントと呼ばれる機能を使用することができます。

 コンストレイントとは制限を意味する言葉であり、そのオブジェクトをプログラミング的に挙動を制限することができます。

今回はこちらのキャラクターの左手にコンストレイントを使用して任意のオブジェクトを持たせていきます。

①手に持たせるオブジェクトを用意します。

②オブジェクトを選択している状態でコンストレイントプロパティを開きます。

チャイルドを追加します。

チャイルドコンストレイントはその名の通り一時的に別のオブジェクトを親とする子オブジェクトとしてふるまうように設定できます。

ターゲットにキャラクターのアーマチュアを、ボーンには親オブジェクトにしたいボーン名を登録します。

これによって手に対してオブジェクトが追従するようになります。

コンストレイントには影響と呼ばれるパラメータがあり、このパラメータが1の時完全に親子関係、0の時親子関係としてはふるまわないようになります。

これによって任意のタイミングでオブジェクトを手に持たせたり、置いたりといった利用ができます。

〇逆補正

次に回転や細かい位置を修正します。

チャイルドコンストレイントには逆補正と呼ばれる機能があります。

一度逆補正を設定を選択します。

この状態でオブジェクトモードでオブジェクトを移動させて手に追従するように設定します。

位置が決まったら再度逆補正を設定を選択します。

これによって逆補正が設定され、任意の相対関係を調整できます。

本日は以上です。