Blender でばねのリグ

カテゴリ:blender

ばねをカーブでつくりリグにフックを使う方法と, ばねをポリゴンと Screw モディフィアとでつくりリグを Driver で作る方法とがある.

続きを読む

ガチャの確率計算

カテゴリ:その他

よくある間違った期待値の計算

『当選確率が 1% なのであたりの出る回数の期待値は 100 回』というのは間違いだ. 期待値はそのガチャ 1 回分の価値を表現するもので,回数の期待値なんてものは存在しない. 正しくは『当選確率が 1% なのであたりの出る回数の"平均値"は 100 回』だ.

当選確率 1% のガチャを 100 回やったときに,ひとつ以上あたる確率は?

これは外れる確率 99% のガチャを 100 回連続で外す現象の余事象だ. つまり

1 - 0.99100 = 63.4%

続きを読む

インベントリクラスの設計メモ

カテゴリ:unity

単純な実装

アイテムデータを格納するデータベースクラス(例えば ItemDB)を作成し, アイテムの情報が必要になるたびに,インデクサでそれにアクセスする. アイテムデータはファイル(最近では XML や JSON を使うことが多い)からロードされる.

プレイヤーの手持ちのアイテムは個数とアイテム ID とで表現する. あとはインベントリクラスを作成して機能を実装する.

続きを読む

シミュレーターのための自動車物理

カテゴリ:

タイヤのトラクション,ブレーキ,転がり抵抗,空気抵抗,遠心力を使用したシミュレーターを考える. 簡単のために自動車は平面上を移動するものとし,段差を考慮しない.

概要

以下の力を計算により求める.太字表記はベクトルを表す.
トラクション Ftraction[N]
空気抵抗 Faero[N]
転がり抵抗 Frr[N]
遠心力 Fc[N]
ブレーキ Fbrake[N]
コーナリングフォース Fcf[N]

これらを足し合わせれば現在車体にかかっている力が求まる. ただし FaeroFrrFbrake とは Ftraction と逆向きであることに注意.

F = Ftraction + Faero + Frr + Fc + Fbrake + Fcf

力がわかれば加速度ベクトルは運動の第2法則によって,計算により求められる.

a = F/m

a:車の加速度 [m/s2]
m:車の質量 [kg]

車の速度ベクトル v [m/s] は加速度ベクトルを時間に関して積分することで求められる. しかしシミュレーターではオイラー法を使って以下のように計算する.

v = v + dt・a

dt:前フレームからの経過時間[s]

車の位置 pも同様に計算できる.

p = p + dt・v

続きを読む

タイヤにかかる荷重の計算

カテゴリ:

静止時のタイヤ前後にかかる荷重

平地での荷重
平地での荷重
W:車の重量[N]
L:ホイールベース[m]
lf:重心から前輪までの距離[m]
lr:重心から後輪までの距離[m]

Wr まわりのモメントは Wf・L = W・lr. Wf も同様にすると,平地でのタイヤにかかる荷重はそれぞれ以下の数式になる.

平地での荷重の数式
平地での荷重の数式

左右のタイヤの重心間の距離が等しいならば,左右のタイヤにかかる荷重は W/2 である.

静止時かつロール方向へ傾きがある場合の左右のタイヤにかかる荷重

傾いているときの荷重
ロール方向への傾きがあるときの荷重

続きを読む