ゲーム開発環境のUnityを用いたドライビングシミュレータの構築方法のご紹介です.
本記事は,著者のGitHubリポジトリと以下の論文の抜粋です.
植田真生史,中西航:簡易なドライビングシミュレータの提案,交通工学論文集,Vol.12,Vol.2,pp.A_236-A_246,2026.
※ 本記事を参考にされた際には,この文献を引用していただけますと幸いです.
この記事を参考にしていただくと,以下の動画のようにゲーム用コントローラを用いて仮想空間内の自動車を運転することができます.
(左上: ハンドル操作の様子 / 左下: ペダル操作の様子 / 右: 運転者の視聴映像)
はじめに
ドライビングシミュレータ(以下,DS)とは,仮想空間上に再現した道路環境を被験者に運転させることができる装置です.
ゲーム,運転操作の教育,そして,運転行動の観測等に広く活用されています.
ただし,一般にDSは,大規模な設備や高額な導入コストが必要になるものです.
一方で,近年は事情が変わりつつあります.
走行する仮想空間は,PLATEAUに代表されるようなオープンデータの3Dモデルを活用することができます.
DSの開発環境には,本記事で使用しているUnityのようなゲーム開発環境を使用できます.
これらを活用すると,小規模かつ低コストでDSを自作することも現実的になってきています.
しかし,いざ自作しようとすると,どの3次元データを使えばよいか,どのソフトウェアで何をすればよいか,といった具体的な構築方法はよくわかりません.
それらをまとめた情報が極めて少ないからです.
その結果,DSの自作は容易ではありません.
そこで,著者は,自作のDSがもっと広まってほしいという思いで,Unityを用いたDSの構築方法をGitHubリポジトリに整理しました.
ちなみに,著者は,Unityって何!?というほどの初心者でしたが,上記動画にあるようなDSを自作することができました.
その際に,構築方法がよく分からず,それを調べるのに最も苦労したので,GitHubリポジトリが,その負担の軽減になれば幸いです.
DSの構築方法は,大きく分けると,3つの段階に整理できます.
以下では,その段階ごとに構築方法を抜粋して解説します.
仮想空間の構築
このフェーズでは,大きく分けると,各車両が走行する道路の路面の作成と,周辺の道路構造物や建築物の作成という2つの作業があります.
道路の路面の作成では,詳細な路面標示を模造することを想定して,別途作成した画像をUnityで作成した空間内に配置します.
画像の作成例は↓のような感じです.
著者は,PowerPointで航空写真を下絵にして,それをなぞるようにして作成しました.
(左: Google Earthの航空写真 / 右: PowerPointで作成した画像)
作成した画像は,Unityでマテリアル化させ,路面を作成します.
その方法の詳細は,GitHubリポジトリをご覧ください.
また,以下の記事も参考になります.
周辺の道路構造物や建築物の作成に際しては,UnityのアセットやPLATEAUの3Dモデルを活用するのが良いと思います.
GitHubリポジトリでは,有用なアセットの紹介やPLATEAUの3Dモデルの導入方法を紹介しています.
自車の準備
自車の準備における主な作業は,車両の3Dモデルの用意と,コントローラ等による操作の実装です.
自車の3Dモデルは,Unityのアセットを利用するのが良いと思います.
自車を操作できるようにするための,Unity側の設定については,例えばハンドルコントローラを使用する場合は,以下の記事が参考になりました.
GitHubリポジトリでは,以下の記事を参考に,ハンドルコントローラで自車を操作する方法を具体的に説明しています.
実装すると,以下のように,コントローラによる操作を行うことができます.
(左上: ハンドル操作の様子 / 左下: ペダル操作の様子 / 右: 運転者の視聴映像)
キーボードによる操作を行う場合は,例えば,以下の記事が参考になると思います.
他車等の準備
自車以外の動的な要素を存在させたい場合もあると思います.
GitHubリポジトリでは,他車,信号現示,歩行者の設定方法について説明しています.
他車や歩行者の移動については,以下のツールを利用して,移動経路を作成するのが良いと思います.
GitHubリポジトリでは,このツールを用いた設定方法を解説しています.
信号現示については,各現示が任意のタイミングで任意の秒数点灯させるような設定方法を解説しています.
そこでは,C#スクリプトにより制御することとしており,以下のSetActive関数を用いています.
おわりに
本記事では,著者のGitHubリポジトリの抜粋として,Unityを用いたドライビングシミュレータの構築方法の概要をまとめました.
ドライビングシミュレータがより広く活用されるきっかけになると幸いです.
ただし,本記事で紹介した方法が唯一の正解ではなく,より効率的な実装方法も存在しうると思います.
改善点や別のアプローチがあれば,ぜひコメントでお知らせいただけると幸いです.