バケットコライダを作る

  • agxTerrainのテレインの掘削用にCADモデルのバケット部分に不可視のコライダを追加する

  • 物理シミュレーションではCADモデルのバケットを三角形メッシュとして扱う。 三角形メッシュをコライダとする衝突判定は計算コストが高いため、計算コストの低いプリミティブ形状をコライダとして使う。

完成の状態

  • CADモデルのバケットに対応するバケットコライダができる

  • コライダは直方体と円柱のプリミティブで構成され、バケットの中央、左側面、右側面を覆う

事前準備

コライダの作成作業に不要なコンポーネントを非表示にする

  1. Structure パネルからルート cet200_tutorial を非表示にする

  2. Structure パネルから Bucket/BucketShape のみ を表示する

../../../../_images/show_only_bucket.png

CADモデルのバケットを半透明にする

注釈

作業のしやすさには個人差があるため、半透明は必須ではない。 必要に応じて半透明/不透明を切り替えて作業すること。

  1. Selectツール s を選択する

  2. Design ウィンドウ上のオブジェクトのないところで Ctrl+a を入力し、CADモデルのバケットを選択する

  3. 選択したバケット上でコンテキストメニューを開き、Color を選択する

  4. Opacityの Show 15% Opaque を選択し、CADモデルのバケットを半透明にする

../../../../_images/set_bucket_opaque15.drawio.svg

コライダ用のコンポーネントを作る

  1. Structure パネルから Hidden_Colliders の子コンポーネント Collider_Bucket を作る

バケット中央部分のコライダを作る

完成の状態

../../../../_images/bucket_collider_middle_complete.drawio.svg

手順

  1. Structure パネルから Hidden_Colliders/Collider_Bucket の子コンポーネント Collider_Bucket_Middle を作る

  2. Selectツール s でバケットの底面を選択し、SketchのRectangle r を選択する

  3. バケット歯先側の底面を覆う長方形を作る(図をクリックして拡大)

  4. 3D Mode d にしてから、Pullツール pStructure パネルの Hidden_Colliders/Collider_Bucket/Collider_Bucket_Middle/Surface を選択する(図をクリックして拡大)

  5. No mergeUp To を選択してから、底面と反対側の上面を選択し、Surface をSolid化する(Solid1とよぶ)

  6. 2-4と同じ手順で作成したSolid1の隣にSolidを作る(Solid2とよぶ)

  7. Moveツール m でSolid2を選択する

  8. Ctrl を押しながらMoveハンドルのX軸をドラッグし、Solid2のコピーを作る(Solid3とよぶ)

  9. Moveツール m でSolid3を選択する

  10. Anchor を選択し、Solid3の側面の下辺を移動基準として指定する

  11. UpTo を選択後、AnchorのX軸を選択する。Solid2の下辺を指定し、Solid2とSolid3を隣合わせにする

    注釈

    ジオメトリが重複し、選択したいジオメトリの選択が難しい場合は、該当の場所にマウスオーバーして、Ctrl を押しながら選択したいジオメトリがハイライトされるまで MouseWheelScroll する。

    ../../../../_images/bucket_collider_middle9.drawio.svg
  12. MoveハンドルのZ軸周りをドラッグ(±10.49°程度)し、Solid3を回転させてバケットの形状に合わせる

  13. Pullツール pNo merge を選択後、Solid3の側面を指定し、Solid3の大きさをバケットの形状に合わせる。Solid3の長さは約138.88mm。

    注釈

    複雑な形状にボックス形状を目視でフィッティングさせて近似形状を作っているので、寸法は厳密でなくてよい

    ../../../../_images/bucket_collider_middle11.drawio.svg
  14. 7-13の手順を繰り返し、バケット中央部分を覆うSolidを合わせて10個作る

    ../../../../_images/bucket_collider_middle12.drawio.svg
    表 2 角度と長さの目安

    前Solidとの角度差(°)

    長さ(mm)

    1

    0

    248.68

    2

    0

    418.52

    3

    ±10.49

    138.33

    4

    ±21.16

    138.75

    5

    ±21.08

    139.34

    6

    ±15.58

    152.59

    7

    ±21.51

    163.00

    8

    ±22.22

    160.71

    9

    ±4.61

    81.27

    10

    ±11.53

    51.58

  15. Selectツール s でバケット内壁上面を選択後、Sketch Mode k にする

  16. Plan View でスケッチ面を合わせ、Sketchタブから Three-Point Rectangle を選択し、長方形を作る(図をクリックして拡大)

  17. 3D Mode d にしてから、Pullツール pNo merge を選択後、Surfaceを選択する

  18. Up To を選択後、バケット上面の辺を選択しSolid化する(Solid11とよぶ)

  19. Pullツール pNo merge を選択後、Solid11の側面を指定し、長さ(407.47mm程度)を調整する

  20. Structure パネルから Hidden_Colliders/Collider_Bucket/Collider_Bucket_Middle コンポーネントの全てのSolidを選択し、名前を Collider_Bucket_Middle に変更する。名前に連番がつくが気にしなくてよい。

バケット左側面のコライダを作る

完成の状態

側面開口部側のコライダ

  1. Structure パネルから Hidden_Colliders/Collider_Bucket/Collider_Bucket_Middle コンポーネントを非表示にする

  2. Structure パネルから Hidden_Colliders/Collider_Bucket コンポーネントの子コンポーネントとして、Collider_Bucket_Side_L コンポーネントを作る

  3. さらに Collider_Bucket_Side_L コンポーネントの子コンポーネントに一時的な作業用として tmp コンポーネントを作る

    警告

    各Solidは一度 tmp コンポーネント上で個別に作り、親コンポーネントへ移動すること。 同一コンポーネント上でスケッチから形状が重複するSolidを作ると、重複部分が除去された形状が生成され、直方体や円柱などのプリミティブ形状として作成できなくなるためである。

    ../../../../_images/bucket_collider_side0.drawio.svg
  4. Selectツール s でバケット開口部側の面を選択し、Sketchモード k にする

  5. Sketchタブの Three-Point Rectangle を選択し、開口部側の一部を覆う長方形を描く(図をクリックして拡大)

  6. Pullツール pNo merge を選択後、Surfaceを選択し、Up To で側面内側を指定して、Solid化する

    ../../../../_images/bucket_collider_side3.drawio.svg
  7. Structure パネルから作成したSolidをドラッグして、tmp コンポーネントの親コンポーネントに移動する

  8. 4の手順でSketchモードにする

  9. Sketchタブの Three-Point Rectangle を選択し、長方形を描く(図をクリックして拡大)

  10. 6-7の手順でSolidを作り、Sketchモードにする。忘れずに tmp コンポーネントから親コンポーネントにSolidを移動させる。

  11. Sketchタブの Three-Point Rectangle を選択し、長方形を描く(図をクリックして拡大)

  12. 6-7の手順でSolidを作り、Sketchモードにする。忘れずに tmp コンポーネントから親コンポーネントにSolidを移動させる。

  13. Sketchタブの Three-Point Rectangle を選択し、隙間を埋める長方形を描く(図をクリックして拡大)

  14. 6-7の手順でSolidを作る。忘れずに tmp コンポーネントから親コンポーネントにSolidを移動させる。

  15. 全てのSolidを作ると側面開口部側は次のとおりとなる

側面奥側のコライダ

  1. Structure パネルから Hidden_Colliders/Collider_Bucket/Collider_Bucket_Middle を表示する

  2. Selectツール s でバケット側面奥側の面を選択し、Sketchモード k にする

  3. バケット底部の曲線をカーソルでホバーし、曲線の中心を表示する

  4. Sketchタブの Circle を選択後、曲線の中心から開口部に接する円を描く。開口部に接しているときは=が表示されるので目安にする。

  5. Pullツール pNo merge を選択後、Surfaceを選択し、Up To で側面内側を指定して、Solid化する

    ../../../../_images/bucket_collider_side_back3.drawio.svg
  6. Structure パネルから作成したSolidをドラッグして、tmpコンポーネントの親コンポーネントに移動する

  7. 2の手順でSketchモードにする

  8. Sketchタブの Three-Point Rectangle を選択し、バケット底部側に長方形を描く

  9. 5-7の手順でSolid化とSketchモードにする。忘れずに tmp コンポーネントから親コンポーネントにSolidを移動させる。

  10. Sketchタブの Three-Point Rectangle を選択し、バケット上部側に長方形を描く

  11. 5-7の手順でSolid化とSketchモードにする。忘れずに tmp コンポーネントから親コンポーネントにSolidを移動させる。

  12. Sketchタブの Three-Point Rectangle を選択し、バケット奥側に長方形を描く

  13. 5-7の手順でSolid化とSketchモードにする。忘れずに tmp コンポーネントから親コンポーネントにSolidを移動させる。

  14. Sketchタブの Three-Point Rectangle を選択し、隙間を埋める長方形を描く

  15. 4-5の手順でSolid化する

  16. Structure パネルから Hidden_Colliders/Collider_Bucket/Collider_Bucket_Side_L コンポーネントのSolidを全て選択し、名前を Collider_Bucket_Side に変更する。自動的に連番が振られるが気にしなくてよい。

  17. tmp コンポーネントを削除する

バケット左側面のコライダをコピーして右側面のコライダを作る

  1. Hidden_Colliders/Colider_Bucket コンポーネントをアクティベートする

  2. Designタブの Plane を選択後、バケットの原点オブジェクトを選択し、Planeを配置する。Planeが各軸に対して配置される。

  3. Selectツール s を選択し、XZ面のPlaneを残し、残りのPlaneは削除する

  4. Designタブの MirrorSelect Mirror Plane を選択後、 Structure パネルからPlaneを指定する

  5. Mirror Component を選択後、Collider_Bucket_Side_L コンポーネントを指定する

  6. 少し待つと、Planeを境に Collider_Bucket_Side_L コンポーネントを鏡像反転させた右側面のコライダコンポーネントができる。誤操作防止のため、Selectツール s を選択する。

  7. 右側面のコライダコンポーネントの名前を Collider_Bucket_Side_R に変更する

  8. Structure パネルから Hidden_Colliders/Colider_Bucket コンポーネントに配置したPlaneを削除する

事後処理

  1. Structure パネルからルート cet200_tutorial を全表示する

  2. Structure パネルから HiddenHidden_Colliders コンポーネントを非表示にする

  3. Structure パネルから Bucket/BucketShape を選択する

  4. Displayタブの Color を選択後、Opacityの Show 100% Opaque を選択し、バケットの透明度を元に戻す