テラシュールブログ

旧テラシュールウェアブログUnity記事。主にUnityのTipsやAR・VR、ニコニコ動画についてのメモを残します。

【Unity】サクっと飛行機の挙動を追加して飛び回る

今回は飛行機の挙動を追加してみます。

StandardAssetsの飛行機

Unity 5系からStandardAssetsに飛行機の挙動が追加されました。
事前に用意されているPrefabはレシプロ機とジェット機の二種類ですが、この二つの違いはパラメータなので、概ね同じ物と思っても良いです。

強いて言うなら操作法が若干異なります。

f:id:tsubaki_t1:20161230233221j:plain

http://cdn-ak.f.st-hatena.com/images/fotolife/t/tsubaki_t1/20150310/20150310212745.gif

今回はコレを使って、サクッと飛行機の挙動を追加してみようと思います。

サクッと飛行機の挙動を追加する

f:id:tsubaki_t1:20161230233031g:plain

まずはStandardAssetsのVehiclesをインポートして、飛行機全般の挙動をインポートします。
ついでにCarの挙動も付いてきますが、まぁうん。

f:id:tsubaki_t1:20161230233912j:plain

次にAssetStoreやら適当な所から飛行機のモデルを入手してインポート、モデルをシーンに配置します。
飛行機の場合は3D Model>Vehicles>Airで見つけられます。モデルによってはSpaceとかでも良いかもしれません。

インポートしたらドラッグ&ドロップでシーンに配置。

f:id:tsubaki_t1:20161230234211j:plain

f:id:tsubaki_t1:20161230234339j:plain

飛行機の親オブジェクトにAeroplane User Control 2Axisコンポーネントを追加します。

Aeroplane User Control 2Axisを追加すると、必要なコンポーネント(rigidbodyやaeroplane controller)が自動的に追加されます。

Aeroplane Controllerにエンジン出力や旋回性能等、色々とあります。

f:id:tsubaki_t1:20161230234714j:plain

後は、飛行機のサイズを大体30Mくらいに設定し、同程度のサイズのコライダーを設定します。コライダーは飛行機モデルにMeshColliderを付けConvex設定とかにしとけばOKです。

これを行わないと、飛行機に対してエンジン出力が高すぎる的な感じなのか、上手く動作しません。具体的にはロールやピッチの動作が変になります

小型機で行いたい場合は、Aeroplane Controllerのパラメータを調整します。

f:id:tsubaki_t1:20161230235314j:plain

操作を自分好みに変更する

この飛行機の挙動、操作が(無駄に)CrossPlatformInputManagerを使用していたり、物によってはマウス操作が必要だったりと若干面倒な所があるので、自分で操作出来るようにします。

基本的に動きはAeroplaneController.Move(ロール, ピッチ, ヨー, スロットル, エアブレーキ) で制御すれば良いだけなので、簡単に書き換える事が出来ます。

gist.github.com

バイル向けにするなら、まぁCrossPlatformInputManager使ったままでも良いかと。

Aeroplane Controllerのパラメータ

  • MaxEnginePower
    エンジンの最大出力
  • Lift
    前進時に発生する揚力
  • ZeroLiftSpeed
    揚力が適応されない速度
  • RollEffect
    ロールの性能
  • PitchEffect
    ピッチの性能
  • YawEffect
    ヨーの性能
  • BankedTurnEffect
    banked turnの性能
  • AerodynamicEffect
    空気の影響度
  • AutoTurnPitch
    バンクターンしてない状態に戻す力
  • AutoRollLevel
    ロールしてない状態に戻す力
  • AutoPitchLevel
    ピッチしてない状態に戻す力
  • AirBrakesEffect
    エアブレーキがDragに与える影響
  • ThrottleChangeSpeed
    スロットルの変化する速度
  • DragIncreaseFactor
    速度がDragに与える影響

関連

tsubakit1.hateblo.jp

tsubakit1.hateblo.jp