Unityの2D物理エンジンでミニ四駆っぽいものを動かす

ここ最近、Unityを練習でいじっております。

今回はミニ四駆の構造をモデルにして、ギヤを噛み合わせてモーター側から回転を伝え、タイヤを回すことで車(下記画像)を動かす仕組みをテストしてみました。

実際にミニ四駆のギヤと同じ歯数のギヤ画像を用意して、Unityで組み立ててみます。

ギヤの歯数の組み合わせは、僕が小学生の頃よく遊んでいたミニ四駆シリーズタイプ1の作りに習って、パワーギヤとスピードギヤの2パターンを作成しました。

最初の段階で、ギヤの3Dモデルを用意してMesh Colliderを使って3D物理演算でテストしてみたのですが、形状が複雑すぎるのか、僕の経験不足なのかで思うように動いてくれなかった(ギヤが途中で空回りしだした)ので、今回はPolygon Collider 2Dを使って2D物理演算で行うことにしました。

2Dならうまくギヤが噛み合ってくれるようです。

物理演算は2Dでやっていますが、表示上の配置はZ軸も使っております。

2D物理演算はZ軸が使えないので、そのままだとギヤやタイヤの位置がかぶってうまく衝突判定できないのですが、レイヤーを分けることで特定のレイヤー関係だけを衝突判定させることができるようになりました。

フロントのタイヤを回すにはミニ四駆ではクラウン型のギヤを使いますが、2Dではちょっと厳しいので今回はリアタイヤだけを回すようにしています。

作ってみたのはこちらです。
 ・ミニ四駆デモ1

キー操作でギヤが切り替わります。(切り替わらない場合はデモの再生画面を一度クリックしてみてください)
1:パワーギヤ
2:スピードギヤ

スピードギヤの方が速いようです。上り坂もスピードギヤの方が若干速く登っている、、ということはスピードギヤの方がパワーも出ているということですね。

パワーの関係について調べる為に、ギヤの仕組みを少し単純にしてみたものが下記のデモ2です。
 ・ミニ四駆デモ2

こちらもキー操作でギヤが切り替わります。
1:ギヤ比 約3.2:1
2:ギヤ比 約1:1

茶色のギヤの回転が動力源です。

現実の世界だと「ギヤ比3.2:1」の方がパワーが出るのですが、今回の「デモ2」ではスピードが速い「ギヤ比1:1」の方がパワーも出ています。
てこの力までは計算していないのかな?

これを現実の世界に近い挙動にするには、スクリプトで速度制限などして微調整する必要がありそうですね。

以上、Unityの練習でした。Unity面白い!

Post a comment

※承認されるまではコメントは表示されません。

Trackbacks

URL: http://b.i-tach.com/wp-trackback.php?p=827