Amazon Sumerian Tutorial 42:MeshCollider for Terrain Geometry

こんにちは、ナレコム前川です。

今回は、Amazon Sumerian の公式チュートリアルの

MeshCollider for Terrain Geometry を進めていきたいと思います。

ここでは、Terrain Geometry 用の衝突判定を設定していきます。

それでは、進めていきましょう。

1. シーンの作成

ここでは、このチュートリアルを進めていくにあたって前回同様にシーンの環境を整えていきます。

まずはじめに、 mountain.fbx をダウンロードしてください。

① ダッシュボードから Default Lighting を選択。

② シーン名を「MeshCollider Tutorial 2」にし、シーンを作成。

※シーン名は自由につけて大丈夫です。

③ 先ほどダウンロードした mountain.fbx をドラッグ&ドロップしてシーンに追加。

④ Assets パネルから mountain.fbx をドラッグ&ドロップしてキャンバスに追加。

④ Assets パネルから mountain.fbx をドラッグ&ドロップしてキャンバスに追加。

2. MeshCollider の追加

それでは、MeshCollider を追加していきましょう。

それでは、MeshCollider を追加していきましょう。

① mountain.fbx を展開し、pPlane1_lambert1 を選択。

② Inspector パネルから Geometry を確認。

※このEntity がGeometry コンポーネントを持っているので、こちらに MeshCollider を追加します。

③ Script コンポーネントの追加し、+ ボタンをクリック。

④ Custom を選択し、前回同様に名前を変更。

③ Script コンポーネントの追加し、+ ボタンをクリック。

④ Custom を選択し、前回同様に名前を変更。

※ script 名は「createMeshCollider」に変更してください。

⑤ Edit モードに切り換え、setup function を以下のコードと置き換える。
1function setup(args, ctx) {2    const mesh = ctx.entity.meshDataComponent && ctx.entity.meshDataComponent.meshData;3    if(mesh) {4        // Create Collider component with MeshCollider5        if(!ctx.entity.colliderComponent) {67            const colliderComponent = new sumerian.ColliderComponent({collider: new sumerian.MeshCollider({meshData: mesh})});8            ctx.entity.setComponent(colliderComponent);9        } else {10            console.log("Entity already has a ColliderComponent - aborting...");11        }12       }13  }

置き換えると以下のようになるはずです。

3. Sphere の追加

① Create Entity から Sphere を選択し、追加。

② Inspector パネルから Transform を以下のように設定。

① Create Entity から Sphere を選択し、追加。

② Inspector パネルから Transform を以下のように設定。

- Translation : (-3, 10, 3)

※色も自由に変更してください。色をつけたほうが球が見つけやすくなると思います。

③ Rigid Body コンポーネントと Collider コンポーネントを追加。

③ Rigid Body コンポーネントと Collider コンポーネントを追加。

④ Collider の Shape を Sphere に設定。

それでは、シーンを実行してみてください。

球が、山を転がり落ちるのが確認できると思います。

今回のチュートリアルは以上です。

お疲れ様でした。

この記事を書いた人

aws-recipe-user