Skip to main content

物理演算で遊ぼう

このチュートリアルでは、Unityの物理エンジンを使って「積んで、壊して、転がす」遊び場を作る。AIに話しかけるだけで、Rigidbody付きの木箱を積み上げたり、ボールを発射して崩したり、坂道を転がしたりできるよ。

前提条件

  • Unity が起動していて、OpenForge MCP と接続済みであること
  • 空のシーンがあること(新規シーンでOK)

ステップ1: 地面を作る

まず、物理オブジェクトが落ちないように地面を用意しよう。

あなた:

シーンに大きな平面を作って、地面にして。サイズは50x50メートルくらいで、灰色にして

何が起きる: Plane オブジェクトが原点に配置される。Collider が付いているので、上に乗せたものが落ちずに止まるよ。

ステップ2: 木箱を作る

次に、物理演算で動く木箱を作ろう。

あなた:

茶色い立方体を1つ作って、サイズは1x1x1メートルで、Rigidbodyコンポーネントを付けて。名前は「WoodenCrate」にして

何が起きる: Rigidbody 付きの立方体が作られる。再生ボタンを押すと、重力で地面に落ちるはず。

Rigidbody とは

Rigidbody は Unity の物理演算コンポーネント。これが付いたオブジェクトは、重力の影響を受けて落下したり、他のオブジェクトと衝突したりする。付けないと、オブジェクトは空中に固定されたままになるよ。

木箱を量産する

1個だけだとつまらないので、たくさん作ろう。

あなた:

WoodenCrateを複製して、合計12個にして。地面の上にピラミッド型に積み上げて。一番下の段は横に4つ並べて、その上に3つ、2つ、1つの順で

何が起きる: 12個の木箱がピラミッド型に配置される。まだ再生していないので、静止した状態で積み上がっているはず。

配置のコツ

木箱を積むときは、AIに「少し隙間を空けて」と言うと、オブジェクト同士がめり込まなくなる。物理演算では、めり込みがあると予期しない方向に弾け飛ぶことがあるよ。

ステップ3: ボールランチャーを作る

積み上げた木箱を壊すためのボール発射装置を作ろう。

あなた:

赤い球体を1つ作って、名前は「Cannonball」にして。直径0.5メートルで、Rigidbodyを付けて。木箱のピラミッドから10メートル離れた場所に置いて

何が起きる: 赤い球体がピラミッドの正面に配置される。

発射スクリプトを追加する

ボールに力を加えて飛ばすスクリプトを付けよう。

あなた:

Cannonballに新しいC#スクリプトを付けて。名前は「BallLauncher」で、Startメソッドでピラミッドの方向にForceMode.Impulseで力を加えて飛ばすようにして。力の大きさは20にして

何が起きる: AIがC#スクリプトを生成して、Cannonballにアタッチしてくれる。再生すると、ボールがピラミッドに向かって飛んでいく。

再生して確認する

あなた:

シーンを再生して、スクリーンショットを撮って

何が起きる: Unity がプレイモードに入り、ボールが飛んでいって木箱のピラミッドが崩れる様子のスクリーンショットが返ってくる。

再生前に保存しよう

物理演算のテストでは、オブジェクトが散乱する。再生を止めれば元に戻るけど、念のためシーンを保存しておくと安心だよ。

あなた:

シーンを保存して

ステップ4: 坂道を作る

次に、坂道を追加してボールを転がしてみよう。

あなた:

地面の上に坂道を作って。幅3メートル、長さ8メートルの板を30度傾けて配置して。色は緑にして。Rigidbodyは付けないで、静的なコライダーだけにして

何が起きる: 傾斜した緑の板が配置される。これが坂道になる。

坂道の上にオブジェクトを置く

あなた:

坂道の一番上に、直径0.3メートルの黄色い球体を5個並べて。それぞれにRigidbodyを付けて

何が起きる: 5個の黄色い球体が坂道の上端に配置される。

あなた:

シーンを再生して、0.5秒後にスクリーンショットを撮って

何が起きる: 再生すると黄色い球体が坂道を転がり落ちていく。重力と摩擦の影響で、それぞれ微妙に違う動きをするのが面白いよ。

ステップ5: 物理マテリアルで挙動を変える

物理マテリアル(Physic Material)を使うと、摩擦や跳ね返りの特性を変えられる。

あなた:

「BouncyMaterial」という物理マテリアルを作って。Bouncinessを0.8にして。Cannonballのコライダーに適用して

何が起きる: ボールが跳ね返るようになる。再生すると、木箱にぶつかった後にバウンドする動きが見られるよ。

あなた:

「IcyMaterial」という物理マテリアルを作って。Dynamic Frictionを0.01、Static Frictionを0.01にして。坂道に適用して

何が起きる: 坂道がツルツルになって、球体がほとんど摩擦なしで滑り落ちるようになる。

ステップ6: AIプレイテストで動作を検証する

シーンが完成したら、AIプレイテスト機能を使って物理演算が正しく動いているか確認しよう。

あなた:

このシーンをAIプレイテストして。以下の点を確認して:

  • 木箱のピラミッドが崩れるか
  • ボールが正しい方向に飛ぶか
  • 坂道の球体が転がるか
  • オブジェクトが地面を突き抜けないか

何が起きる: AIがシーンを自動再生して、指定した項目をチェックしてくれる。問題があればレポートで教えてくれるよ。

AIプレイテストの詳細

AIプレイテスト機能の詳しい使い方は、AIにテストプレイしてもらう のチュートリアルで解説しているよ。

応用アイデア

ここまでの基本を使って、さらに遊びを広げてみよう。

  • ドミノ倒し: 薄い直方体を等間隔に並べて、先頭を倒す
  • ピタゴラスイッチ風: 坂道、シーソー、回転する棒を組み合わせて連鎖装置を作る
  • 的当てゲーム: 複数の位置にターゲットを置いて、ボールで狙い撃つ
  • 重さ比べ: 同じサイズでもRigidbodyのMassを変えて、衝突時の挙動の違いを観察する

まとめ

このチュートリアルで学んだこと:

  • Rigibody を使った物理オブジェクトの作成
  • オブジェクトの積み上げと配置
  • スクリプトによるボール発射
  • 坂道と転がる物体の作成
  • 物理マテリアルによる挙動のカスタマイズ
  • AIプレイテストによる物理演算の検証

物理演算は、AIに指示するだけで手軽に試せる。「こうしたらどうなるかな?」を気軽に試して、物理エンジンの挙動を体感しよう。