【Unity】せっかくチュートリアルがあるのでWheel Colliderで遊んでみる

【Unity】せっかくチュートリアルがあるのでWheel Colliderで遊んでみる

Unityの衝突検知に欠かせないCollider。

そのうちのひとつとして、Wheel Collider(ホイールコライダー)があります。

このColliderはちょっと特殊で、他のColliderのように衝突を検知するだけではなく、タイヤ自体の質量とかトルクの情報まで設定できます。

UnityのマニュアルにもWheel Colliderのチュートリアルがあったので、それをベースにバイクを作ってみましょ。

 

環境

macOS 10.13 High Sierra

Unity2018.1.0f2

Wheel Colliderについて

Wheel Colliderはちょっと特殊なColliderで、衝突の検知の他にタイヤの質量、タイヤの摩擦やサスペンションなどを定義できます。

Colliderでありながら、物理的な特性も設定できるんです。どちらかというとRigidbody寄りのコンポーネント。

ベースの技術はNVIDIA(エヌヴィディア)社のPhysX3 Vehicles SDKです。このSDKの技術的仕様はNVIDIAのドキュメントで公開されていますが、当然の権利のように英語で長文が書かれているので読むのはアルゴリズムくらいでいいかも。

何よりUnityのマニュアルに概要が書かれていますからね。

今回はUnityのマニュアルにあるチュートリアルを使ってWheel Colliderを勉強します。そう、私も使うのはこれが初めてです。

とりあえずやってみる

Unityのチュートリアルにオブジェクトの作成からコントローラーの作成まで載っているので、まずはそれをやってみましょ。

最初にオブジェクトの作成があるので、それを終えるとこんな感じ。真っ白で分かりにくいけど、車体として用意した直方体の側面にColliderがいます。

ウユニ塩湖的な
ウユニ塩湖的な

 

続いてスクリプトの作成。コードがそのまま載っているので、ありがたく使わせてもらいます。

また、上記のままだとタイヤが見えないので、Mesh FilterコンポーネントとMesh Rendererコンポーネントを追加して、タイヤを表示します。前輪が黄色、後輪が黒です。向きがわからないと操作が難しいので色を変えておきます。

タイヤを表示するのだポッター
タイヤを表示するのだポッター

 

この状態でゲームを実行してみるとこんな感じ。キーボードの上下キーで加速/減速、左右キーでハンドル操作です。

すいすいーっと
すいすいーっと

 

スピード調節にはmotorTorque、ハンドルの向きの調節にはsteerAngleを使います。

簡単に車の動きが実現できそうですね。

これで終わりだとなんだか寂しいので、バイクも作ってみましょ。

 

バイクを作る

とは言っても、やることはそんなに難しくなくて、オブジェクトを作ってスクリプトをちょっと改造するだけ。

チュートリアルで作った車を参考に、バイク用オブジェクトを作ってみました。超かっこいいね(大嘘)

超絶カッコイイバイクのクソダサ号
超絶カッコイイバイクのクソダサ号

 

バイクだと左右のタイヤが必要ないので、チュートリアルのSimpleCarController.csをちょっと改造します。AxleInfoはそのまま使って、FixedUpdate()の中でタイヤのNullチェックをするようにします。

これによって、前、後ろそれぞれで参照させるタイヤが1本でも、エラーが出ないようになります。

これでバイクを走らせてみると、こんな感じ。

!!ああっと!!
!!ああっと!!

 

綺麗にこけましたね。

進行方向では安定していても、横方向のバランスが悪いようです。ハンドルを傾けただけでぱたり。

どうにかしてバイク走らせたいなー。

……そういえば、Colliderって画面に表示されないんでしたよね。

なので、こっそりColliderを追加して、バランスよく動くようにしましょうか。前輪と後輪の左右にWheel Colliderを持ったオブジェクトを配置します。

Wheel Colliderを追加
Wheel Colliderを追加

 

見た目はバイク、実態は車の乗り物ができました。この状態で再挑戦。

すいすいー
すいすいー

 

微妙な車体の傾きもいい感じ。チュートリアルにも、一台の車に20のホイールをセットできると書かれているので、タイヤの数を増やす分には問題ないですね。

考慮すべき点があるとしたら、見えないWheelColliderが壁にぶつかってしまうことでしょうか。見えている車体よりも当たり判定の幅が大きいことになるので、車体に近づけるか、レイヤーを変えるか、なんて作業も必要になるかも。

まとめ

Unityのマニュアルで公開されている、Wheel Colliderのチュートリアルで遊んでいる様子をお送りしました。

Colliderは画面に表示されないので、バランスを取るために複数配置するのもありですね。特にバイクはWheel Colliderが前後2つのままだと簡単に倒れますから。

車の操作部分に関しては、かなり簡単にできちゃうのでレースゲームとかも作りやすそう。

     

ゲーム開発の攻略チャートを作りました!

CTA-IMAGE

「ゲームを作ってみたいけど、何から手を付けていいか分からない!」


そんなお悩みをお持ちの方向けに、todoがアプリをリリースした経験を中心に、ゲーム作りの手順や考慮すべき点をまとめたe-bookを作成しました。ゲーム作りはそれ自体がゲームのように楽しいプロセスなので、「攻略チャート」と名付けています。


ゲームを作り始めた時にぶつかる壁である「何をしたら良いのか分からない」という悩みを吹き飛ばしましょう!