アタッチメント コンストレイントを利用して複雑なオブジェクトをサーフェス表面に配置すると、オブジェクトがめり込んでしまう現象と対処法の紹介です。
こちらの記事で紹介した方法でジオメトリオブジェクトを平面に接地する操作を実行します。
今回は下図のやや複雑なジオメトリオブジェクトを接地させます。
接地させたいオブジェクトを選択し、コマンドパネルの[モーション]タブを選択します。[コントローラーを割り当て]ロールアウトの[位置]の項目をクリックして選択し、
[コントローラーを割り当て]ボタンをクイックします。
コントローラーを割り当てダイアログで[アタッチメント]を選択します。下図の状態になります。
コマンドパネルを下にスクロールし[アタッチメント パラメータ]ロールアウトの[アタッチ]グループの[オブジェクトを選択]ボタンをクリックし、
凹凸のある地面のオブジェクトをクリックして選択します。
コマンドパネルをさらに下にスクロールし[キー情報]グループの[位置]グループの[位置を設定]ボタンをクリックし、地面のオブジェクトをドラッグします。
接地させたいオブジェクトが平面に配置されますが、下半分が埋まった状態になっています。
接地面はオブジェクトの基点(基準点)の位置になるためです。
接地させたいオブジェクトを選択します。
[選択して移動]ツールを選択します。移動ギズモの矢印が表示されます。
[Insert]キーを押します。基点の変更モードに変わります。
[選択して移動]ツール選択し、基点を下方向に移動します。基点を接地させたい位置まで移動します。
基点が移動すると、埋まっていた状態が解消されます。
平面上をドラッグしてオブジェクトの位置を変更します。地面のオブジェクトに対して接地できている様子が確認できます。
先の方法で対処できましたが状況によっては、基点を移動したくない場合もあります。基点を移動せずに対処する方法として、
ポイントヘルパーオブジェクトを利用する方法があります。
シーンを準備します。
ポイントヘルパーオブジェクトを作成します。作成手順はこちらの記事を参照してください。
ポイントヘルパーオブジェクトの位置をわかりやすくするために[ボックス]のチェックを入れます。
ポイントヘルパーオブジェクトを設置させたいオブジェクトの位置に移動します。
ボックスのサイズを適宜調整します。
メインツールバーの[選択してリンク]ボタンをクリックし、ポイントヘルパーオブジェクトから、接地させたいオブジェクトに向かってドラッグします。
接地させたいオブジェクトをポイントヘルパーオブジェクトの子要素にします。
リンクを設定できました。
ポイントヘルパーオブジェクトを移動すると、接地させたいジオメトリオブジェクトも一緒に移動することを確認します。
ポイントヘルパーオブジェクトを選択して、コマンドパネルの[モーション]タブをクリックして選択します。
[コントローラーを割り当て]ロールアウトの[位置]の項目をクリックして選択し、
[コントローラーを割り当て]ボタンをクイックします。
コントローラーを割り当てダイアログで[アタッチメント]を選択します。下図の状態になります。
コマンドパネルを下にスクロールし[アタッチメント パラメータ]ロールアウトの[アタッチ]グループの[オブジェクトを選択]ボタンをクリックし、
凹凸のある地面のオブジェクトをクリックして選択します。
ポイントヘルパーオブジェクトが地面のオブジェクトの表面に接地されるため、ジオメトリオブジェクトの基点を変更しない状態で、
埋まらずに設置できます。
アタッチメント コンストレイントでオブジェクトがめり込んでしまう現象を対処できました。