各素材の比重の計測 [スマブラSP ステージ作り]
初記事なので書きやすいものを書いてみます。本内容は2年前くらいに取り組んだことについてです。
スマブラには「ステージ作り」というモードがあり、ファイターの戦うステージの地形を自由に造形したりギミックを配置したりできます。このモードに興味をもつスマブラプレイヤーは少ないと思いますが、以外にも面白い仕様・テクニックが多くあり奥が深いです。いつか個別に紹介できればと思います。
地形を描く際は15種類から素材を選ぶことができます。今回は各素材の比重を調べたいと思います。 ステージ作りで描いた地形は基本的には空間に固定される、または設定したレールの軌道に従って移動しますが、「落ちる」オプションをONにすることで自由落下します。「落ちる」物体は重力加速度で加速したりバウンドしたりと物理エンジンっぽい挙動をします。 そしてどうやら、素材15種類やギミックパーツにはそれぞれ異なる物性(質量密度・摩擦・弾性など)が備わっているようなのです。 これらの物性は「落ちる」地形と他の地形との間でのみ適用されるものであり、ファイターの運動には何も影響しません1。ファイターからすれば氷と溶岩以外は見た目が違うだけです。 「落ちる」をONにしなければ意味のない物性がわざわざ各素材に設定されているというのはつまり、「素材の特性を活かしたステージ作りをしろ」という公式からのメッセージに違いありません。
比重の計測
ステージ作りの世界でそれっぽい力学の法則がシミュレートされていると仮定して、中学物理の計算で比重を求めます。 ほんとはゲーム解析で内部数値を見れば終わる話なのですが、そのスキルは有していないのでちまちまと実験して調べてみます。
計測方法
2物体を衝突させ、衝突後の速度から比重を計算します。
2物体のうち右の物体を「ユニット」と呼ぶこととします。ユニットは以下の3つの要素で構成されます。
- 起爆ブロック:たぶん摩擦がゼロ。(氷も摩擦が極めて小さいがゼロではない。)
- はねゴム:たぶん反発係数1。
- スプリング:回転しない性質を有する。他の物体とグループ化したときグループ全体が回転しなくなり、運動が安定する。
左の物体は計測対象の素材の塊+ユニットです。塊の体積は毎計測で同じにします。 2つの物体の衝突は、摩擦のない完全弾性衝突であると考えられます。
計測対象の質量を、ユニットの質量を、2物体の衝突前の速度を、、衝突後の速度を、、衝突時の地点から端までの距離を左右同じでとし、を求めます。速度は左向きを正とします。
たぶん完全弾性衝突なので
たぶん運動量保存則が成立するので
上式にを代入
衝突後に右の物体が右端に到達するまでの時間を、左の物体が左端に到達するまでの時間をとして、を書き換えます。(今回の実験では右の物体は衝突直後に左へ進むことはありません。)
各素材について、を測りの値を算出すれば、の値は全実験で不変なので素材間のの比がわかります。
計測結果
実験では、動画をとってコマ送りし、衝突から端に到達するまでのフレーム数を、としました。 15本の動画をまとめたのが以下です。
計測結果が以下です。
t1(F) | t2(F) | m1/m2 | 最も重い素材を 基準とした比重 |
|
---|---|---|---|---|
くさ | 569 | 1556 | 0.731362468 | 0.1002979 |
つち | 873 | 798 | 2.187969925 | 0.30005476 |
すな | 1024 | 702 | 2.917378917 | 0.400084764 |
木材 | 1936 | 531 | 7.291902072 | 1 |
鉄 | 1936 | 532 | 7.278195489 | 0.998120301 |
大理石 | 1936 | 531 | 7.291902072 | 1 |
ゴム | 1025 | 702 | 2.92022792 | 0.400475471 |
デニム | 569 | 1560 | 0.729487179 | 0.100040726 |
カーペット | 568 | 1559 | 0.728672226 | 0.099928965 |
和紙 | 568 | 1559 | 0.728672226 | 0.099928965 |
毛糸 | 568 | 1552 | 0.731958763 | 0.100379675 |
スポンジ | 568 | 1553 | 0.731487444 | 0.100315039 |
はねゴム | 872 | 798 | 2.185463659 | 0.299711054 |
氷 | 872 | 798 | 2.185463659 | 0.299711054 |
溶岩 | 1177 | 646 | 3.643962848 | 0.499727343 |
比重の計算結果が何となくきれいな値に見えるので、実験の方針は間違っていなかったと思いたいです。
重力加速度の計測
「ステージ作り」の世界では素材ごとに落下速度が異なります。現実世界でも空気抵抗の影響で重いものが早く落下しますが、ステージ作りに空気抵抗はありません。素材ごとに異なる重力加速度が適用されていると予想されます。 この仕様のため、比重を求める際には天秤のような機構を用いることができませんでした。
ついでなので素材ごとの重力加速度の比を調べてみます。
落下距離を、落下時間を、重力加速度をとすると以下の式が成り立ちます。
実験では、落下させて画面から消失するまでのフレーム数を、落下距離をとし、を測定します。そしてを算出し、素材間のの比を求めます。
t(F) | g/l | 最大gを基準 としたg比 |
|
---|---|---|---|
くさ | 117 | 0.000146103 | 0.701585214 |
つち | 103 | 0.000188519 | 0.905269111 |
すな | 109 | 0.000168336 | 0.808349466 |
木材 | 98 | 0.000208247 | 1 |
鉄 | 98 | 0.000208247 | 1 |
大理石 | 98 | 0.000208247 | 1 |
ゴム | 98 | 0.000208247 | 1 |
デニム | 109 | 0.000168336 | 0.808349466 |
カーペット | 103 | 0.000188519 | 0.905269111 |
和紙 | 179 | 0.000006242 | 0.299740957 |
毛糸 | 155 | 0.000008324 | 0.39975026 |
スポンジ | 126 | 0.000125976 | 0.604938272 |
はねゴム | 98 | 0.000208247 | 1 |
氷 | 98 | 0.000208247 | 1 |
溶岩 | 109 | 0.000168336 | 0.808349466 |
値がきれいかは微妙ですが、比重の計測より精度の悪い計測方法だと思うのでこんなものかもしれません。
計測結果まとめ
まとめたのが以下のグラフです。
青色は比重を表し、大きいほど他の物体とぶつかりあったとき自分がはじかれにくいです。 オレンジ色は素材に適用される重力加速度の比を表し、大きいほど速く落下します。 灰色は重量(=質量×重力加速度)の比を表し、大きいほど天秤に乗せたとき自分側へ傾かせます。
比重と重力加速度比の値が0.1間隔の目盛線上にきれいに乗っかっているように見えます。 質量密度や重力加速度は内部数値では10段階で設定されているのかもしれません。
ゴムと溶岩のデータが興味深いです。衝突し合った場合はゴム側がはじかれるみたいですが、2素材を天秤に乗せたときはほぼ釣り合うことが予想されます。
確かめてみます。
衝突させてみるとやはりゴムの方が少し速く飛んでいきます。
天秤に乗せてみるとほぼ釣り合っており予想と合致します。
(上の動画が静止画みたいで釣り合っているかわかりづらいので、氷とすなを載せた場合を示します。)
おわり。
いろいろ仮定した上で調べてきましたが合っているか不安です。 この物理エンジンが実際どういう仕様なのかは知らないのでどこかに勘違いがあるかもしれません。