ニュートンの運動法則
ニュートンの運動法則
物理法則のある世界ではオブジェクトに様々な「力」が働いている
たとえば、重力、摩擦力、空気抵抗など
これらの力をそれぞれ区別しオブジェクトに働く力としてプログラムする事でゲームの表現力が広がります
最初に重力を学習します
重力
w = m × g
w | N(ニュートン) | 重さ(ベクトル) |
m | kg | 質量(スカラー) |
g | m/s^2 | 重力加速度(地球上では-9.8m/s^2) |
重さと質量は全く別のものである事に注意
<オブジェクトの重さを質量に基づいて計算するコード>
重力加速度は地球を基準にしています。月の上では定数-9.8が1/6になります
void Start () { float earthGrav = -9.8f; print( CalcWeight3D(50,earthGrav) + " N(単位はニュートン)"); }
Vector3 CalcWeight3D(float mass, float grav){ return new Vector3(0 , mass * grav , 0); }
(0.0, -490.0, 0.0)N(単位はニュートン)
重さは基本的にベクトルであるが車の加重移動等を計算しない限り他の軸はあまり必要ない
そういう意味でリアリティの必要ないゲームではY軸だけを抽出して単純に考える場合もある
(それでも「重さ」はスカラーではなくベクトルである事は意識しておく事)
垂直抗力
オブジェクトは重力によって鉛直方向に引っ張られていると同時に地面からも、それに押し返そうとする力が働いてあなたは立っています
この力を垂直抗力といいます。垂直抗力は面に垂直に働く力です。面が傾斜していた場合、斜面に垂直な向きを反対にしたものになります
N = -w × cosR
<図解>
Q.
重さ-1Nのボールが傾斜角45°の斜面を転がっている時の垂直抗力をもとめなさい
A.
1N × cos45° = 0.7071N
摩擦力
摩擦力には静止摩擦力と運動摩擦力がある
静止摩擦力 | 物体が滑り出さないようにする力 |
運動摩擦力 | 運動する物体を止めようとする力 |
摩擦の計算には摩擦係数が必要になる。この値は素材や環境、接触する面の滑らかさ等の要因で変化します
摩擦係数は一般にギリシャ文字のμ(ミュー)を使って表される。μsは静止摩擦係数、μkは運動摩擦係数 を表す
最大静止摩擦力 Fs = μs × N
運動摩擦力 Fk = μk × N
Q.
水平な濡れた路面に重さ-1000Nの車があるとして最大静止摩擦力と運動摩擦力を計算しなさい
ゴムと濡れたコンクリートで、静止摩擦係数μsは0.3、運動摩擦係数μkを0.25とします
A.
Fs = 0.3×1000 = 300N
Fk = 0.25×1000 = 250N
- 最終更新:2013-12-31 00:42:30