AIゲーム制作ラボ

物理で積むゲームが積めない:4つの原因と直し方

仕様どおりに作ったのに、まん中へ落としても4回3回は転げ落ちました。6本目のゲームで実際に測りながら直した4つの原因と、その効き方を数字で残します。自動プレイで測る物差しの作り方も書きました。

Libra

公開 2026年9月20日

この記事の要点4 points

落とす高さを<strong>山のてっぺんからの相対</strong>にする。 カメラ基準だと最初だけ 14.5 ユニット落ちていた。

残り3つの要点を読む
  • とがった多角形は積めない。 <strong>縦につぶした石の形</strong>にして、三角は出さない。
  • 落ち着いた塊を<strong>静的にする</strong>と、塔が丸ごと崩れて詰む状態が消えた。
  • 自動プレイの実測で <strong>1個・13cm・9秒8個・53cm・27秒</strong>。
目次8
検証した環境最終確認 2026年9月20日
  • Windows 11
  • Unity 6.6(6000.6.0f1)
  • Physics2D 既定の固定 50Hz
  • Claude Code(Opus 5 / 思考レベル 高)

書いてあるのは、この環境で実際に試した結果です。ツールの仕様や料金は変わるので、重要な判断の前には公式の情報も確認してください。

6本目のゲームは「吊られた塊を落として積む」だけの遊びです。仕様は短く、実装も1日で動きました。

動いたので回してみたら、こうなりました。

4回落として、3回転げ落ちた。まん中で離しているのに。

ここから、原因を1つずつ潰した記録です。

カサネのプレイ画面。吊られた石が揺れ、台座の上に4つの石が斜めに積み上がっている
直したあと。斜めに乗っても、塔は崩れずに残る

まず、物差しを作る

「なんとなく難しい」では直せません。最初にしたのは、人が遊ばずに結果が出る形を作ることでした。

入力の規則はひとつだけ。「吊り下げがまん中(横のずれ 0.3 未満)に来たら離す」。人より下手ですが、種を決めれば毎回まったく同じ操作になります。そこから出す数字は3つです。

置いた数

積めた塊

多いほどよい

落とした数

転げ落ちた塊

3回で終わり

秒数

1プレイの長さ

目標 30〜90 秒

この3つ1行で出すようにして、直すたびに同じ種で回しました。以下の数字は全部この自動プレイの実測です。

原因1:台座が広すぎて、横に並べるだけになる

最初の台座は幅 4.4 ユニット、塊は直径 2 前後。落とせば必ず台座に乗るので、ミスは起きません。その代わり——

幅 4.4 の台座(自動プレイ)
f99  着地 x=-0.31 高さ1.12
f458 着地 x= 1.12 高さ1.53
結果 置いた3 ミス1 高さ19cm

3個置いても 1.9 ユニットしか上がっていません。横に並んでいるだけです。積むゲームなのに、積む必要がありませんでした。

直し方:台座を塊の直径と同じくらい(2.2 ユニット)に狭める。上に積むしかない形にしました。

原因2:積み始めだけ、落下距離が3倍あった

狭めた結果、今度はまん中で離しても落ちるようになりました。原因は落とす高さです。

こうすると壊れる

こうする

落下距離が長いほど、着地の速度が上がり、傾いた面の上で滑ります。同じ操作なのに、序盤だけ難しいという状態でした。

カメラの中心も、同じように「山のてっぺんから 1 ユニット上」に置き換えました。こうすると、どこまで積んでも画面の中での見え方が変わりません

原因3:とがった形は、どうやっても積めない

塊は種から作る多角形です。最初は半径を少し振っただけの、まん丸に近い形でした。これが積めません。とがった頂点で着地して、必ず倒れます。

特に三角は「くさび」になり、間に挟まった瞬間に下の塊を押し出しました。自動プレイでは、三角が来ると必ず崩れました。

形の作り方(直した後)
// 三角は「くさび」になって積めないので出さない
int n = rng.Range(4, MaxVerts + 1);

// 縦につぶす。横に広く・縦に低い「石」の形にする
float flat = rng.Range(0.40f, 0.52f);
xs[i] = r * Cos(a) * 1.15f;
ys[i] = r * Sin(a) * flat;

同じ物理設定のまま、形を変えただけで積めるようになりました。落とす高さ(2.4)と重力(-11)も下げ、摩擦は 1.1 まで上げています。

原因4:塔が丸ごと崩れて、詰む

いちばん厄介だったのはこれです。6個積んだところで下の1個がずれ、塔が全部落ちました。困るのは崩れたこと自体ではありません。

⚠️ 注意

てっぺんの位置だけが高いまま残り、何もない空中へ落とし続ける状態になりました。3回ミスするまで、もう何もできません。

直したのは2か所です。

  1. 1

    てっぺんは、ゆっくり下ろす

  2. 2

    落ち着いた塊は、静的にする

2つ目は、物理の楽しさを一部捨てる判断です。ただ、崩れると詰むほうが遊びとして致命的でした。いま置いた塊が乗るか滑るかの判定は物理のまま残っています。

効き方(自動プレイの実測)

直した内容置けた数記録1プレイ
最初(台座を狭めた直後)1個13cm9.4秒
落とす高さを相対に5個64cm13.3秒
形を石にする・三角をやめる4個30cm13.6秒
落ち着いた塊を静的に10個80cm22.5秒
重力と落下距離を下げる8個53cm26.9秒

表の値は1つの種(同じ操作列)での実測です。種を変えれば結果は変わります。最後の行で記録が下がって時間が伸びているのは、落下がゆっくりになって1個あたりの時間が増えたためで、悪化ではありません。

人が狙って離せばもっと積めます。この自動プレイは「出てすぐ、まん中で離すだけ」なので、下手な人の下限として使っています。

途中で踏んだ、物理とは関係ない落とし穴

undefined

症状
どの塊も、吊り下げた位置ではなく同じ場所から落ちてくる
原因
使い回すために隠していた(SetActive(false))ゲームオブジェクトに位置を入れていた。隠れている間は物理の体が無いので、その値は捨てられる
対処
先に有効にしてから、位置・角度・速度を入れる

これに気づくまで、物理の設定をいくら変えても直りませんでした。落とした位置と着地の位置を1行ずつ出して並べたことで見つかりました。数字を出す仕組みを先に作っておくと、こういう勘違いが早く終わります。

同じゲームで測った「同じ操作なら同じ結果になるか」はこちらの記事に、仕様を満たしても面白くならないときの直し方はAIが作ったゲームがつまらない理由に書きました。

FAQ

よくある質問

物理ゲームの調整は、何を見て決めればいいですか?

遊んだ感想ではなく、自動プレイの結果を数で見ます。置けた数・落とした数・1プレイの秒数を出すようにすると、直したことが効いたかどうかが1回の実行で分かります。

落とす高さは、どう決めますか?

積み上がった山のてっぺんからの相対にします。カメラや画面の上からの距離にすると、積み始めだけ落下距離が長くなり、同じ操作でも結果が変わります。

不定形の塊はなぜ積めないのですか?

とがった頂点で着地すると必ず倒れるからです。縦につぶして横に広い形にすると、同じ物理設定でも積めるようになります。三角は「くさび」になるので出さないのが早いです。

塔が丸ごと崩れるのは直すべきですか?

遊びとして成立しなくなるなら直します。崩れると、てっぺんの位置だけが高いまま残り、何もない空中へ落とし続けることになります。落ち着いた塊を静的にするか、てっぺんの位置をゆっくり下ろすかの、どちらかは必要でした。

この記事は役に立ちましたか?

NEXT