Master.typeX 2021/08/31 15:04

GMS2:技術的備忘録・物理エンジン編

どうも、Master.typeXです。
今回は技術的備忘録として
GMS2の物理エンジンについて書いてみようと思います。

とりあえずこちらをドウゾ。

前回記事に書いたプチプロジェクトのGMS2版です。
GMS2にも物理エンジンは搭載されていますが
まあ、これがけったいな仕様で困った。

ということで、書き連ねていきます。

物理ワールドの定義

コレは簡単。ルームエディタのプロパティから
「Room Physics」の「Enable Physics」にチェックを入れるだけ。
CF2.5で言うところの物理エンジンオブジェクトを置く感じです。
これで物理ワールドが定義されます。
Gravity xやGravity yはXとY方向の重力ってのは
見てのとおりわかりますが
Pixels To Metersはなんのこっちゃ知りません。マジで。

物理オブジェクトの定義

こちらも簡単。オブジェクトの
「Users Physics」にチェックを入れると
それだけで物理オブジェクトとなります。

が、こっからが問題である。

物理オブジェクトの仕様

物理ワールド内の物理オブジェクトは
特に設定もせずに衝突判定が勝手に働きます。
上記の動画もステップイベントには
衝突系のコード(place_meetingとか)は何一つ書いていません。

というか逆にplace_meetingとかは
物理オブジェクト内では殆ど意味を持ちません。
おそらくそれに関してはオブジェクトに設定できる
物理用の当たり判定(後述)が関係しているだろうと思いますが
よくわかってませんです。

ただし、別オブジェクトとの衝突イベントは
しっかり働くのでそこだけ注意です。

物理オブジェクトの設定

オブジェクト内の「Physics」から設定できます。
コレがまた色々いじったけどよくわからんが一応。

Density
日本語だと「密度」らしい。
この値が大きければ大きいほど物理的に軽くなる・・・っぽい?
ただ、コレが0だと重力の影響を受けなくなるので覚えておこう。

Restitution
日本語だと「反発」らしい。
この値が大きいとぶつかった時の跳ね具合が調節できる・・・っぽい?

Collision Group
衝突グループという項目だが
どうやら同じグループでないと衝突判定が行われない模様。
なんのこっちゃ。

Linear Damping
線形減衰という項目らしいがよくわからん。

Angela Damping
傾斜減衰という項目らしいがよくわからん。

Friction
日本語にすると「摩擦」らしい。
止まりやすさなんだろうけどようわからん。
・・・ようわからんだらけだなオイ。

Sensor
センサー、らしいがよくわからん。

Start Awake
覚醒状態でスタートという項目らしいがこれまたよくわからん。

Kinematic
キネマティックという項目だが
Unityでなんか同じような単語を見た気がするが
結局よくわからん。

Modify Collision Shape
これが物理オブジェクト固有の当たり判定。
Box(四角)、Circle(丸)、Convex Shape(凹凸)の三種類から
当たり判定を指定することができる。
上にアニメーションフレームが表示されているため
おそらくフレームごとに当たり判定を変える事が可能かと思われ。

その他注意事項

物理オブジェクトは通常の「speed」の影響は受けず
「phy_○○」系のパラメータを使う模様。
実際動画だと、オブジェクト生成時にランダムで
「phy_speed_x」を-2~2の値で変更して動作させてるので。

あたぁ知らん!!!
そんなんでいいのかクソ筆者


・・・冗談抜きでこんな情報を
垂れ流して大丈夫なのか不安ではある。
まあでも備忘録やから無問題無問題。(ぉぃ

正直、place_meetingが
ほぼ使えないというのは痛いが
まあ、けったいな仕様だなぁと。
※一応機能はするので全く使えないわけではない

これが役に立つかは知らないが・・・
いや、役に立たんやろな。うん。

とりあえず今回はここまでとします。
また次回。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事を検索