6本目のゲームは「吊られた塊を落として積む」だけの遊びです。仕様は短く、実装も1日で動きました。
動いたので回してみたら、こうなりました。
4回落として、3回転げ落ちた。まん中で離しているのに。
ここから、原因を1つずつ潰した記録です。

まず、物差しを作る
「なんとなく難しい」では直せません。最初にしたのは、人が遊ばずに結果が出る形を作ることでした。
入力の規則はひとつだけ。「吊り下げがまん中(横のずれ 0.3 未満)に来たら離す」。人より下手ですが、種を決めれば毎回まったく同じ操作になります。そこから出す数字は3つです。
置いた数
積めた塊
多いほどよい
落とした数
転げ落ちた塊
3回で終わり
秒数
1プレイの長さ
目標 30〜90 秒
この3つを1行で出すようにして、直すたびに同じ種で回しました。以下の数字は全部この自動プレイの実測です。
原因1:台座が広すぎて、横に並べるだけになる
最初の台座は幅 4.4 ユニット、塊は直径 2 前後。落とせば必ず台座に乗るので、ミスは起きません。その代わり——
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
てっぺんは、ゆっくり下ろす
- 2
落ち着いた塊は、静的にする
2つ目は、物理の楽しさを一部捨てる判断です。ただ、崩れると詰むほうが遊びとして致命的でした。いま置いた塊が乗るか滑るかの判定は物理のまま残っています。
効き方(自動プレイの実測)
| 直した内容 | 置けた数 | 記録 | 1プレイ |
|---|---|---|---|
| 最初(台座を狭めた直後) | 1個 | 13cm | 9.4秒 |
| 落とす高さを相対に | 5個 | 64cm | 13.3秒 |
| 形を石にする・三角をやめる | 4個 | 30cm | 13.6秒 |
| 落ち着いた塊を静的に | 10個 | 80cm | 22.5秒 |
| 重力と落下距離を下げる | 8個 | 53cm | 26.9秒 |
表の値は1つの種(同じ操作列)での実測です。種を変えれば結果は変わります。最後の行で記録が下がって時間が伸びているのは、落下がゆっくりになって1個あたりの時間が増えたためで、悪化ではありません。
人が狙って離せばもっと積めます。この自動プレイは「出てすぐ、まん中で離すだけ」なので、下手な人の下限として使っています。
途中で踏んだ、物理とは関係ない落とし穴
- 症状
- どの塊も、吊り下げた位置ではなく同じ場所から落ちてくる
- 原因
- 使い回すために隠していた(SetActive(false))ゲームオブジェクトに位置を入れていた。隠れている間は物理の体が無いので、その値は捨てられる
- 対処
- 先に有効にしてから、位置・角度・速度を入れる
これに気づくまで、物理の設定をいくら変えても直りませんでした。落とした位置と着地の位置を1行ずつ出して並べたことで見つかりました。数字を出す仕組みを先に作っておくと、こういう勘違いが早く終わります。
同じゲームで測った「同じ操作なら同じ結果になるか」はこちらの記事に、仕様を満たしても面白くならないときの直し方はAIが作ったゲームがつまらない理由に書きました。