計算機上でシミュレーション・解析する場合,必要とされるのは,対象を正確に分析し構築されたシミュレーションモデルである。 従来であれば,その対象専用に分析・設計・構築されたモデルを使用したが,そのモデルを他のモデルに再利用することは難しく, 結果的に生産性・保守性,コストにまで影響を及ぼしていた。
ドライブシミュレータについても,それは同様であり,対象である自動車が変更されると, 使用しているモデルを構築し直す必要があった。
統一モデリング言語は,これからの主流となるであろう表記法であり,本研究ではこれを用いて自動車の挙動モデルを構築し, それを計算機上に実装してリアルタイム運動シミュレータを開発する事を目的とする。
図1に本研究で提案するドライブシミュレータのシステム構成を示す。
オブジェクト指向モデリングは,システム分析と設計が対象となる。UMLは統一モデリング言語(Unified Modeling Language)の略称であり, 1997年1月にJames Rumbaughらによって発表された,オブジェクト指向開発モデルの1つである。モデリング言語とは,作成されたモデルを表現するための言語で, 表記法とそれを使うための一連の規則から構成される。
彼らは方法論とその表記を分けて考え,その表記だけをUMLとして提案した。それによってどの方法論を用いるとしても, 表記はUMLを使用するようにすれば,多くの方法論を使用して分析設計を行っている資料も読解が容易になり, 場合によっては部分的に他の方法論を使用することも可能になる。
本研究で数式モデリングする自動車のモデルを図2に示す。
車の加減速は駆動力Fdirによる運動方程式,
に従い,回転運動は,舵角に比例する向心力Fsideによる旋回運動,
によるものとする。
駆動力Fdir [kgf]は,
となる。ここで,i: 総減速比,T: 軸トルク[kgf・m],r: タイヤ半径 [m]である。
タイヤと路面との摩擦係数を1として,駆動力をそのまま用いる。
この数式モデルを,UMLを用いてモデリングする。本研究で提案する自動車モデルのクラス図を図3に示す。
DirectXは,1995年秋にMicrosoft社からリリースされたWindows環境のゲーム用APIである。 Windowsはハードウェアへの直接アクセスをすることが出来ないので,高速に動作するゲームを開発することができず, Windows発売後も依然としてゲームはMS-DOSで動くものがほとんどだった。そこで,Microsoftは, Windowsでも実用レベルの実行速度を持つゲームを出来るようにしようとDirectXを開発し,ハードウェアごとの違いを吸収し, 機種に依存せず,なおかつハードウェアへの直接アクセスを可能にした。 これによってビデオボード上のVRAMにも直接アクセスできるようになり,高速なゲームを開発できるようになった。
DirectXには,以下のコンポーネントがある。
図4 に本研究で開発したドライブ・シミュレータのシステム構成を示す。
プレイヤーの操作が入力処理部で処理され,メッセージとして自動車数式モデルへ送信される。 これによって自動車数式モデル内の挙動が変更され,DirectXにより自動車数式モデルの内容が参照され, レンダリングされ,表示ウィンドウに表示される。
図5に実行結果を示す。これはコーナー直前のものである。
オブジェクト指向により自動車とその運動を分析し,その結果をUMLを用いてモデリングした。
そのモデルを,オブジェクト指向プログラミング言語C++を用いて,計算機上に実装した。
自動車の挙動を計算機上でシミュレーションし,それをDirectXを用いて3次元表示した。
[1] Tucker!:憂鬱なプログラマのためのオブジェクト指向開発講座,翔泳社,1998. [2] H.E.エリクソン/M.ペンカー:UMLガイドブック,トッパン,1998. [3] 丹 明彦/横内 威至:ハードコア3Dエクスタシー,ソフトバンク,1993. [4] 清水 亮:Direct3D プログラミングガイドブック,翔泳社,1998. [5] Jasin Kolb:DirectX 5ゲームプログラミング入門,インプレス,1998.