ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Aircraft プレハブとは
Unity の Standard Assets という公式サンプル集には、Vehicles カテゴリの中に Aircraft(航空機)のサンプルが含まれていました。具体的には以下のフォルダ構造で提供されていました。
Standard Assets/
├─ Vehicles/
│ ├─ Aircraft/
│ │ ├─ Prefabs/
│ │ │ └─ AircraftJet.prefab
│ │ ├─ Scripts/
│ │ │ ├─ AeroplaneController.cs
│ │ │ ├─ AeroplaneAudio.cs
│ │ │ └─ AeroplaneUserControl4Axis.cs
│ │ ├─ Models/
│ │ └─ Sounds/
│ └─ Car/
└─ ...
このプレハブは Rigidbody ベースのジェット機モデルで、キーボードで操縦できる小規模なサンプルゲームとして付属していました。
Aircraft の機能
| 機能 | 挙動 / 実装 |
|---|---|
| 4 軸操作 | Pitch(前後傾き)/ Yaw(旋回)/ Roll(左右傾き)/ Throttle(スロットル) |
| 揚力モデル | 速度に応じた揚力ベクトルを Rigidbody.AddForce で印加 |
| 抗力 (Drag) | 速度の二乗に比例する空気抵抗 |
| 失速 (Stall) | 低速+高仰角で揚力激減 |
| オーディオ | エンジン音のピッチ / 音量をスロットル / 速度で変調 |
| カメラ | SmoothFollow / FreeLookCam で機体追従 |
Standard Assets 廃止の経緯
Unity Technologies は2019 年 3 月の Unity 2019.3 以降、Standard Assets を公式エンジン同梱から外しました。
- 長年メンテナンスされず、新しい URP / HDRP に対応していなかった
- サンプルとしての役目は Unity Learn や Asset Store の公式パッケージへ移行
- 2021 年以降の Asset Store からも Standard Assets パッケージは削除済み
古いプロジェクトをアップグレードする際に NamespaceConflict / missing reference が大量発生する原因にもなっていたため、撤去は妥当な判断と言えます。
現代の代替手段
1. Vehicle Physics Pro (有料)
地上車両がメインですが、Aerodynamics 機能で航空機・ヘリも扱えます。CarX 系のリアルな物理が必要なときに。
2. Aircraft Physics (Asset Store)
翼面 / 舵面 / エンジンを Component として配置する設計で、リアリスティックな飛行モデルを比較的手軽に組めます。フライトシミュレータ寄り。
3. SimplePlanePhysics / Arcade Flying
アーケード寄りで、ゲーム的な軽快な操縦感を求める場合に。揚力をシンプルに「速度に比例して上向き」とだけ計算するなど割り切った実装が多いです。
4. 公式 Visual Effect / Sample プロジェクト
Unity 公式の Karting Microgame や Tanks! サンプルが Vehicles 代替の学習用として配布されています。航空機専用のサンプルは現状ありませんが、構造の参考になります。
自前で実装する場合の最小コード
using UnityEngine;
[RequireComponent(typeof(Rigidbody))]
public class SimpleAircraft : MonoBehaviour
{
[Header("Engine")]
public float maxThrust = 5000f;
public float throttle;
[Header("Aerodynamics")]
public float liftCoefficient = 0.5f;
public float dragCoefficient = 0.05f;
public float wingArea = 16f;
public float airDensity = 1.225f;
[Header("Control")]
public float pitchTorque = 200f;
public float rollTorque = 200f;
public float yawTorque = 100f;
Rigidbody rb;
void Awake() { rb = GetComponent<Rigidbody>(); }
void Update()
{
throttle = Mathf.Clamp01(throttle + Input.GetAxis("Vertical") * Time.deltaTime);
}
void FixedUpdate()
{
// 1. 推力(機首方向)
rb.AddForce(transform.forward * maxThrust * throttle);
// 2. 揚力(速度に比例する成分を上向きに)
float speed = rb.linearVelocity.magnitude;
float lift = 0.5f * airDensity * speed * speed * wingArea * liftCoefficient;
rb.AddForce(transform.up * lift);
// 3. 抗力(速度反対方向)
Vector3 drag = -rb.linearVelocity.normalized * (0.5f * airDensity * speed * speed * wingArea * dragCoefficient);
rb.AddForce(drag);
// 4. 操作トルク
float pitch = -Input.GetAxis("Mouse Y");
float roll = -Input.GetAxis("Horizontal");
float yaw = Input.GetAxis("Mouse X");
rb.AddRelativeTorque(new Vector3(pitch * pitchTorque, yaw * yawTorque, roll * rollTorque));
}
}
上記はリアル志向ではなくゲーム的な近似ですが、出発点としては機能します。失速や横滑り、誘導抵抗まで再現するならアセットを使うか、Aerospace 系の論文を参照してください。
Wheel Collider と着陸装置
航空機の着陸装置は車と同じく Wheel Collider で組めます。ジェット機の主脚 2 + 前脚 1 / 後脚 1 の構成にすると、滑走路の上を転がる動作・着陸時のバウンドも自然になります。
マルチプレイ対応
- Mirror / Netcode for GameObjects で位置同期
- Rigidbody の 動きを Authority 側だけが計算 → 他クライアントには補間するのが基本
- レイテンシ補償のためクライアント側予測とサーバ側照合の二重実装が必要
- フライトシム系は地形がデカいので、World Streaming も併用
FAQ
Q: 古いプロジェクトから Standard Assets の AircraftJet をコピーすればまだ使えますか?
A: 動かすことは可能ですが、Built-in Render Pipeline 前提のシェーダで URP / HDRP に持ち込むとピンクになります。マテリアルを差し替えれば動きますが、新規プロジェクトでは別アセットの利用を推奨します。
Q: 旋回中に勝手に高度が下がるのを防ぎたい
A: バンク角に応じて Pitch を自動補正(コーディネーテッドターン)するか、揚力に「重力相殺項」を加える調整が必要です。リアル機の操縦操作(バンクと同時にピッチアップ)を再現する形が一般的です。
Q: ヘリコプターも実装できますか?
A: 同様に Rigidbody + ForceAtPosition で「ローター中心からの揚力」を与えれば近似できます。ヘリ専用アセット(Heli Physics 等)を使うほうが楽です。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
同階層のページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?