Skip to content

TORICA-Org/minimum-torica-simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Minimum TORICA Simulator

TORICA Simulatorの最小構成版です.

このREADMEが制作手順書です. とにかく作ってみよう!


0. Unityとは?

3Dゲームを作るのは,本来とても難しいことです. 作りたいゲームの要素を盛り込むまでに描写処理や物理演算など, ゲームの前提となる処理がとても複雑だからです.

そこで登場するのが,「ゲームエンジン」と呼ばれるものです. ゲームの前提となる処理が最初から組み込まれており, 開発者はゲーム要素の設計に集中することができます.

Unityは最も有名なゲームエンジンのひとつです. 簡単な制御なら,プログラミング言語に触れずとも実装できるほど機能が豊富です. 複雑な処理は,C#と呼ばれるプログラミング言語を介して実装します.

Unity (ゲームエンジン) - Wikipedia


1. Unityの開発環境を構築する

Unityで開発を行うためには,適切なバージョンの"Unity Editor"をインストールする必要があります. この手順書では,"Unity 6"の安定版(LTS)を使用します.(2026/04/09現在: Unity 6.3 LTS)

以下に示すブログに従って,Unity Editorのインストールまでしてみましょう.

[Unity入門] 1. Unity Editorのインストールをしよう! #初心者 - Qiita

【初心者向け】Unityエディタのインストール方法 - 渋谷ほととぎす通信


2. 新しくプロジェクトを作成する

Unity Hubを起動し,"New Project"から新規プロジェクトを作成しましょう. 今回は3Dのゲームを作るので,"Universal 3D"というプロジェクトテンプレートを使います. 基本的に保存形式はUnityアカウントに紐づくクラウドとローカルのストレージを併用しますが, ローカルのみを選択することもできます.

【2026年最新】Windowsで始めるUnity!導入から初期設定までの完全ガイド! | TechChance! 公式ブログ

[Unity]最初のプロジェクトテンプレートはどれがいいのか?〜URP・HDRP・Built-inの違い〜[初心者向け] | えきふるゲームラボ

create-project


3. Unity Editorを知る

まずは,Unity Editorに慣れましょう!

【初心者向け】Unityエディタの基本操作を解説! | Unity Learning Materials

初心者が覚えておくべき11のUnityエディタ機能【Unityの使い方】 - 渋谷ほととぎす通信


4. 水面を作る

簡単なものから作っていきましょう.まずは水面です. ヒエラルキーの左上にある+マークから,3D Object > Planeを作成します.

add-plane

これで,1辺が10mの平面が作成されました. ヒエラルキーでPlaneが選択された状態では, 画面右側のインスペクターが表示されているはずです.

added-plane

ここで,この平面の位置と大きさを次のように変更します. Scaleを変更し,ここではXZ軸方向への大きさを200倍にしています. これによって,1辺が2kmの平面ができました.

scale-plane


5. 飛行機の3Dモデルを取り込む

見た目から入っていきましょう!

あなたがこれをブラウザ上のGitHubから見ているのであれば, <> Code > Download ZIPで必要なファイルを取得できます.

download-zip

展開したZIPファイルには,objという名前のフォルダーがあるはずです. その中にあるARG-1.objという名前のファイルを, Unity Editor下部のProject > Assetsフォルダー内にドラッグ&ドロップしてください.

import-obj

すると,飛行機らしきシルエットのサムネイルがでるはずです.

imported-obj

ARG-1をクリックしてインスペクターを表示させ,Scale Factor0.001に変更します. これは,Objファイルがmm(ミリメートル)単位で記録している寸法値を,Unity上でm(メートル)単位で解釈するためです.

scale-obj

ARG-1をヒエラルキーにドラッグ&ドロップし,シーンに追加します.

add-obj

ARG-1を右クリックし,Prefab > Unpack Completelyで完全に展開します.

unpack-completely-obj

ここからの操作が複雑です. ARG-1にはWingfintailが含まれますが,これらを組み替えて, Wingfintailが含まれるようにします. 空になったARG-1は削除し,Wingの名前をAircraftとしましょう.

edit-hierarchy-1 edit-hierarchy-2 edit-hierarchy-3 edit-hierarchy-4

Aircraftをクリックし,インスペクターを表示させます. Positionを次のように変更します. 鳥人間コンテストにおいてはプラットフォームの高さがおよそ10m, そこにパイロットの腰の高さが加わるので,およそ11mの高さに設置しました. また,助走の10mだけ後退させました.

position-aircraft

これで設置は完了です.


6. カメラを設定する

もとからあるMain CameraAircraftの子オブジェクトにします. こうすることで,Aircraftの動きにMain Cameraが追従するようになります.

hierarchy-camera

Main Cameraのインスペクターで,Transformを次のように設定します. Aircraftとの相対的な位置と回転を設定しています.

transform-camera

画面下部のバーのボタンから,カメラのプレビューを確認することができます.

camera-preview

上部にある再生ボタンから,Play modeに切り替えることができます.

enter-play-mode in-play-mode

カメラに正しく写っていればOKです!


7. 物理演算を適用する

ついにAircraftを動かすときがきました!

Aircraftのインスペクターを表示させ,Add Component > RigidbodyRigidbodyコンポーネントを追加します.

add-rigidbody added-rigidbody

Use Gravityにチェックが入っていることを確認します. そうしたら,上部の再生ボタンを押してみましょう! どうなりましたか?


8. 衝突判定を適用する

物理演算を適用したことにより重力が働き,下へ落下していったはずです! しかし,先ほど作成した平面に当たってもすり抜けてしまっています.

これでは面白くありません.衝突を判定する「コライダー」を設定しましょう.

まず,Planeのインスペクターで,もとからあるMesh Colliderを削除します.

remove-mesh-collider

代わりに,処理がより単純なBox Colliderを追加します.

added-box-collider

次は,AircraftMesh Colliderを設定します. このとき,Convexにチェックを入れておきます(凹面が存在するため).

added-mesh-collider

そうしたら,もう一度上部の再生ボタンを押してみましょう! どうなりましたか?


9. 空力計算を実装する

コライダーによる衝突判定により,地面に落ちた際の挙動がリアルに再現されたはずです!

ここでついに,フライトシミュレーターの肝である空力計算を実装したいと思います.

...しかしながら,あまりにも難解過ぎるので, 元九州大学鳥人間チーム全体設計のいーそー様制作の BR Simulator for Gliderに含まれる空力計算用スクリプト AerodynamicCalculator.csを利用させていただきます.

先ほどダウンロードしたZIPファイルに含まれるbase > AerodynamicCalculator.csは, この手順書におけるAircraftにアタッチするだけで上手く動作するように改変したものです.

まず,Assetsフォルダの中で右クリックし,Create > Folderで新たにフォルダを作成します. フォルダの名前はScriptsとしてください.

mkdir rename-dir

baseフォルダをScriptsフォルダにドラッグ&ドロップします.

copy-base base-on-project

C#スクリプトは,ヒエラルキー上のゲームオブジェクトにドラッグ&ドロップすることでアタッチすることができます.

AircraftAerodynamicCalculator

tailElevator

finRudder

それぞれアタッチします.

attach-scripts

Aircraftのインスペクターを開きます.

aircraft-inspector

AerodynamicCalculatorにあるAction Propの"︙(縦三点リーダー)"をクリックし, Use Referenceを選択します.

action-prop-use-reference

右端の"◎(二重丸)"をクリックし,"Player/Move"をアタッチします.

select-input-action-reference aircraft-inspector-final

これで,機体の挙動は鳥人間コンテスト滑空機部門出場機を再現したものになったはずです! 上部の再生ボタンを押した後,スペースキーを押すことでフライトがスタートします! WASDキーもしくは矢印キーでラダーとエレベーターを操作できます.


10. プラットフォームを作成する

プラットフォームはあったほうが良いでしょう!

ヒエラルキー上で,3D Object > Cubeを作成します.

create-cube

インスペクターで,CubeTransformを次のように設定します.

pratform-transform


11. ヒンジジョイントを使う

いーそー様のブログにある, 【Unity】フライトシミュレーターを作る:新機体の実装 | 垂直尾翼と水平尾翼のオブジェクトの設定を行う に従って設定してみましょう.

これにて,かなりそれっぽい簡易フライトシミュレーターが完成したと思います!!!


12. ここからの発展

C#への理解を深めるうえで,言語は違いますが C++入門 AtCoder Programming Guide for beginners (APG4b) - AtCoder の第1章は一通りやることをおすすめします.

  • カメラの複数配置
  • 水面のマテリアル作成
  • UI Toolkitを使ったUIの作成 などなど...

About

TORICA Simulatorの最小構成版です.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages