(57)【特許請求の範囲】
【請求項１】
キーボード、表示装置を含む端末装置と、
ネットワークを介して前記端末装置に接続されるサーバ装置と、を備え、
前記サーバ装置は、
仮想の車の運転操作状態を記憶する運転操作状態記憶手段と、
前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、
前記キーボードの所定キーの継続非操作時間を記憶する継続非操作時間記憶手段と、
一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段と、
一定の更新周期で、前記所定キーの非操作を検出して前記所定キーの継続非操作時間を更新する継続非操作時間更新手段と、
前記更新周期で前記所定キーの操作状態を検出し、前記所定キーの操作を検出した場合には、予め設定された第１変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新し、前記所定キーの非操作を検出した場合には、予め設定された第２変換曲線に基づいて、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転状態を更新する運転操作状態更新手段と、
前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段と、を含み、
前記端末装置は、前記サーバ装置から前記動画データを受信する度に、その動画データを再生して前記表示装置に表示する動画再生手段を含むことを特徴とする運転シミュレーション装置。
【請求項２】
前記第１変換曲線は、前記継続操作時間と運転操作の変化量との関係をロジスティック曲線で表したことを特徴とする請求項１に記載の運転シミュレーション装置。
【請求項３】
前記第２変換曲線は、前記継続非操作時間と運転操作の変化量との関係をロジスティック曲線で表したことを特徴とする請求項２に記載の運転シミュレーション装置。
【請求項４】
前記運転操作状態更新手段は、前記仮想の車のステアリングの舵角が中立位置を含む所定の範囲内にあるとき、そのステアリングの変化量を低減するように補正するステアリング中立位置補正手段をさらに含むことを特徴とする請求項１乃至３のいずれかに記載の運転シミュレーション装置。
【請求項５】
前記運転操作状態更新手段は、前記仮想の車の車速が高くなるに従って前記仮想の車のステアリングの変化量が減少するように、前記仮想の車のステアリングの変化量を補正するステアリング変化量補正手段をさらに含むことを特徴とする請求項１乃至４のいずれかに記載の運転シミュレーション装置。
【請求項６】
キーボードと、
表示装置と、
制御装置と、を備え、
前記制御装置は、仮想の車の運転操作状態を記憶する運転操作状態記憶手段と、
前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、
前記キーボードの所定キーの継続非操作時間を記憶する継続非操作時間記憶手段と、
一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段と、
一定の更新周期で、前記所定キーの非操作を検出して前記所定キーの継続非操作時間を更新する継続非操作時間更新手段と、
前記更新周期で前記所定キーの操作状態を検出し、前記所定キーの操作を検出した場合には、予め設定された第１変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新し、前記所定キーの非操作を検出した場合には、予め設定された第２変換曲線に基づいて、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転状態を更新する運転操作状態更新手段と、
前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成する動画生成手段と、
前記動画データを再生して前記表示装置に表示する動画再生手段と、
を含むことを特徴とする運転シミュレーション装置。
【請求項７】
仮想の車の運転状態を記憶する運転操作状態記憶手段と、
端末装置のキーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、
前記キーボードの所定キーの継続非操作時間を記憶する継続非操作時間記憶手段と、
一定の更新周期で前記所定キーの操作状態を検出し、前記所定キーの操作を検出した場合には、予め設定された第１変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新し、前記所定キーの非操作を検出した場合には、前記更新周期で、予め設定された第２変換曲線に基づいて、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転状態を更新する運転操作状態更新手段と、
前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段と、
を備えるサーバ装置。
【請求項８】
キーボード、表示装置を含む端末装置と、ネットワークを介して前記端末装置に接続されるサーバ装置とを備える運転シミュレーション装置における前記サーバ装置のコンピュータを、
仮想の車の運転状態を記憶する運転操作状態記憶手段、
前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段、
前記キーボードの所定キーの継続非操作時間を記憶する継続非操作時間記憶手段、
一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段、
一定の更新周期で、前記所定キーの非操作を検出して前記所定キーの継続非操作時間を更新する継続非操作時間更新手段、
前記更新周期で前記所定キーの操作状態を検出し、前記所定キーの操作を検出した場合には、予め設定された第１変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新し、前記所定キーの非操作を検出した場合には、予め設定された第２変換曲線に基づいて、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転状態を更新する運転操作状態更新手段、
前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段、
として機能させるためのプログラム。
【請求項９】
キーボードと表示装置とを備える運転シミュレーション装置のコンピュータを、
仮想の車の運転操作状態を記憶する運転操作状態記憶手段、
前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段、
前記キーボードの所定キーの継続非操作時間を記憶する継続非操作時間記憶手段、
一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段、
一定の更新周期で、前記所定キーの非操作を検出して前記所定キーの継続非操作時間を更新する継続非操作時間更新手段、
前記更新周期で前記所定キーの操作状態を検出し、前記所定キーの操作を検出した場合には、予め設定された第１の変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新し、前記所定キーの非操作を検出した場合には、予め設定された第２変換曲線に基づいて、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転状態を更新する運転操作状態更新手段、
前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成する動画生成手段、
前記動画データを再生して前記表示装置に表示する動画再生手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、運転シミュレーション装置、サーバ装置、及びプログラムに係り、詳しくはコンピュータの入力手段であるキーボードを用いて仮想の車の運転を制御する運転シミュレーション装置、運転シミュレーション装置を構成するサーバ装置、及び仮想の車の運転を制御するためのプログラムに関する。
【背景技術】
【０００２】
従来、車の運転を模擬してプレイヤーが車を操作するドライビングゲームやドライビングシミュレーションが開発されている。このようなゲームやシミュレーションには、プレイヤーの操作を入力するための入力機器が用いられており、例えばジョイスティック（特許文献１）、感圧型のコントローラ（特許文献２）、ステアリングコントローラ等のアナログデバイスが用いられることがある。
アナログデバイスは、入力されたアナログ情報を８bit以上のデジタル情報に変換することができるため、例えばより滑らかなステアリング操作を実現することが可能となる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３２０７３８号公報
【特許文献２】特表２００３−５１９５４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年では、ネットワークを介してドライビングシミュレーションを提供することが検討されている。ネットワークを介することの利点は、運転シミュレーションのソフトウェアをユーザ側のコンピュータにインストールしなくても、仮想の車の運転操作を模擬することができることである。しかしながらネットワークを介してこのような仮想の車を運転操作する場合には、ユーザが上述したようなアナログデバイスを必ずしも有しているわけではないため、ユーザが備えている入力機器に対応して仮想の車の運転を模擬する必要がある。
【０００５】
運転シミュレーションを利用するユーザが備えている入力機器としては、例えばキーボード、マウス等が挙げられる。キーボードを入力機器として用いる場合、ステアリング、アクセル、ブレーキ等の操作に割り当てられた所定キーの操作から取得できる情報としては、所定キーが押されたか否か、という情報だけである。そのためキーボードのキー操作によって上述したアナログデバイスのような滑らかな運転操作を実現するには、様々な工夫が必要となる。また、スタンドアロンのパーソナルコンピュータ等に運転シミュレーションのソフトウェアをインストールし、キーボードで運転操作を行う場合にも同様の問題が発生する。
【０００６】
本発明は、上述した課題を解決すべくなされたものであり、その目的とするところは、キーボードの所定キーの操作で仮想の車の運転操作を滑らかに模擬することのできる運転シミュレーション装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記の目的を達成するべく、請求項１の運転シミュレーション装置は、キーボード、表示装置を含む端末装置と、ネットワークを介して前記端末装置に接続されるサーバ装置と、を備え、前記サーバ装置は、仮想の車の運転操作状態を記憶する運転操作状態記憶手段と、前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、前記キーボードの所定キーの継続非操作時間を記憶する継続非操作時間記憶手段と、一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段と、一定の更新周期で、前記所定キーの非操作を検出して前記所定キーの継続非操作時間を更新する継続非操作時間更新手段と、前記更新周期で前記所定キーの操作状態を検出し、前記所定キーの操作を検出した場合には、予め設定された第１変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新し、前記所定キーの非操作を検出した場合には、予め設定された第２変換曲線に基づいて、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転状態を更新する運転操作状態更新手段と、前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段と、を含み、前記端末装置は、前記サーバ装置から前記動画データを受信する度に、その動画データを再生して前記表示装置に表示する動画再生手段を含むことを特徴とする。
【０００８】
請求項２の運転シミュレーション装置は、請求項１において、前記第１変換曲線は、前記継続操作時間と運転操作の変化量との関係をロジスティック曲線で表したことを特徴とする。
【００１０】
請求項３の運転シミュレーション装置は、請求項２において、前記第２変換曲線は、前記継続非操作時間と運転操作の変化量との関係をロジスティック曲線で表したことを特徴とする。
【００１１】
請求項４の運転シミュレーション装置は、請求項１乃至３のいずれかにおいて、前記運転操作状態更新手段は、前記仮想の車のステアリングの舵角が中立位置を含む所定の範囲内にあるとき、そのステアリングの変化量を低減するように補正するステアリング中立位置補正手段をさらに含むことを特徴とする。
【００１２】
請求項５の運転シミュレーション装置は、請求項１乃至４のいずれかにおいて、前記運転操作状態更新手段は、前記仮想の車の車速が高くなるに従って前記仮想の車のステアリングの変化量が減少するように、前記仮想の車のステアリングの変化量を補正するステアリング変化量補正手段をさらに含むことを特徴とする。
【００１３】
請求項６の運転シミュレーション装置は、キーボードと、表示装置と、制御装置と、を備え、前記制御装置は、仮想の車の運転操作状態を記憶する運転操作状態記憶手段と、前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、前記キーボードの所定キーの継続非操作時間を記憶する継続非操作時間記憶手段と、一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段と、一定の更新周期で、前記所定キーの非操作を検出して前記所定キーの継続非操作時間を更新する継続非操作時間更新手段と、前記更新周期で前記所定キーの操作状態を検出し、前記所定キーの操作を検出した場合には、予め設定された第１変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新し、前記所定キーの非操作を検出した場合には、予め設定された第２変換曲線に基づいて、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転状態を更新する運転操作状態更新手段と、前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成する動画生成手段と、前記動画データを再生して前記表示装置に表示する動画再生手段と、を含むことを特徴とする。
【００１４】
請求項７のサーバ装置は、  仮想の車の運転状態を記憶する運転操作状態記憶手段と、端末装置のキーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段と、前記キーボードの所定キーの継続非操作時間を記憶する継続非操作時間記憶手段と、一定の更新周期で前記所定キーの操作状態を検出し、前記所定キーの操作を検出した場合には、予め設定された第１変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新し、前記所定キーの非操作を検出した場合には、前記更新周期で、予め設定された第２変換曲線に基づいて、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転状態を更新する運転操作状態更新手段と、前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段と、を備える。
【００１５】
請求項８のプログラムは、キーボード、表示装置を含む端末装置と、ネットワークを介して前記端末装置に接続されるサーバ装置とを備える運転シミュレーション装置における前記サーバ装置のコンピュータを、仮想の車の運転状態を記憶する運転操作状態記憶手段、前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段、前記キーボードの所定キーの継続非操作時間を記憶する継続非操作時間記憶手段、一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段、一定の更新周期で、前記所定キーの非操作を検出して前記所定キーの継続非操作時間を更新する継続非操作時間更新手段、前記更新周期で前記所定キーの操作状態を検出し、前記所定キーの操作を検出した場合には、予め設定された第１変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新し、前記所定キーの非操作を検出した場合には、予め設定された第２変換曲線に基づいて、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転状態を更新する運転操作状態更新手段、前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成し、その動画データを前記端末装置へ送信する動画送信手段、として機能させる。
【００１６】
請求項９のプログラムは、  キーボードと表示装置とを備える運転シミュレーション装置のコンピュータを、仮想の車の運転操作状態を記憶する運転操作状態記憶手段、前記キーボードの所定キーの継続操作時間を記憶する継続操作時間記憶手段、前記キーボードの所定キーの継続非操作時間を記憶する継続非操作時間記憶手段、一定の更新周期で、前記所定キーの操作を検出して前記所定キーの継続操作時間を更新する継続操作時間更新手段、一定の更新周期で、前記所定キーの非操作を検出して前記所定キーの継続非操作時間を更新する継続非操作時間更新手段、前記更新周期で前記所定キーの操作状態を検出し、前記所定キーの操作を検出した場合には、予め設定された第１の変換曲線に基づいて、前記所定キーの継続操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転操作状態を更新し、前記所定キーの非操作を検出した場合には、予め設定された第２変換曲線に基づいて、前記所定キーの継続非操作時間を前記所定キーに対応する運転操作の変化量に変換し、その運転操作の変化量で前記仮想の車の運転状態を更新する運転操作状態更新手段、前記仮想の車の運転操作状態が更新される度に、更新された運転操作状態に基づいて前記仮想の車の挙動を表す動画データを生成する動画生成手段、前記動画データを再生して前記表示装置に表示する動画再生手段、として機能させる。
【発明の効果】
【００１７】
請求項１の運転シミュレーション装置によれば、仮想の車の運転操作状態は、一定の更新周期で、予め設定された第１変換曲線に基づいて所定キーの継続操作時間から求めた運転操作の変化量で更新される。つまり仮想の車の運転操作状態は、所定キーの継続操作に対して一定の変化量で変化するのではなく、その所定キーの継続操作時間の長さに応じて異なる変化量で変化することになる。現実の車におけるドライバーの運転操作の操作速度（単位時間当たりの変化量）は、常に一定ではない。例えばステアリングの回転操作においてステアリングの回転速度は、回転操作の開始直後や停止直前は比較的遅い傾向となる。したがって例えば現実の車におけるドライバーの運転操作に基づいて予め第１変換曲線を設定すれば、キーボードの所定キーの操作で仮想の車の滑らかな運転操作を行うことができる。また、仮想の車の運転操作状態は、一定の更新周期で、予め設定された第２変換曲線に基づいて所定キーの継続非操作時間から求めた運転操作の変化量で更新される。つまり仮想の車の運転操作状態は、所定キーの継続非操作に対して一定の変化量で変化するのではなく、その所定キーの継続非操作時間の長さに応じて異なる変化量で変化することになる。例えば現実の車においては、車の運転状態が急激に変化しないように、ドライバーが回転させたステアリングをゆっくり中立位置へ戻す操作や踏み込んだアクセルペダルをゆっくり戻す操作等が必要になる。したがって例えば現実の車におけるドライバーの運転操作に基づいて予め第２変換曲線を設定すれば、キーボードの所定キーの非操作で上記のような運転操作を模擬することが可能になる。それによって仮想の車の運転状態が急激に変化しないように滑らかに運転操作を行うことができる。
【００１８】
請求項２の運転シミュレーション装置によれば、第１変換曲線は、継続操作時間と運転操作の変化量との関係をロジスティック曲線で表している。
ロジスティック曲線は、当初は変化量が小さく、中途では変化量が大きくなり、その後変化量が小さくなる曲線であり、変曲点を中心に左右対称に表される。継続操作時間と運転操作の変化量との関係をロジスティック曲線で表すと、継続操作時間が短いと運転操作の変化量が小さく、継続操作時間が推移するにつれてこの変化量が大きくなり、その後再びこの変化量が小さくなる。従って例えば所定キー操作によるステアリングの回転操作は、ステアリングの回転速度が回転操作の開始直後や停止直前は比較的遅い傾向となるという現実の車におけるドライバーの運転操作に極めて近似することになる。それによってキーボードの所定キーの操作で仮想の車の滑らかな運転操作を行うことができる。
【００２０】
請求項３の運転シミュレーション装置によれば、第２変換曲線は、継続非操作時間と運転操作の変化量との関係をロジスティック曲線で表しているので、継続非操作時間が短いほど運転操作の変化量が小さくなる。このため、所定キーの非操作状態に対して仮想の車の運転操作が過敏に反応することを抑制することができ、より滑らかな運転操作を行うことができる。
【００２１】
請求項４の運転シミュレーション装置によれば、ステアリングの操作において、ステアリングの舵角が中立位置を含む所定の範囲内にあるときに、ステアリングの変化量を低減する補正を行う。従って、中立位置付近でのステアリングの操作の変化が緩やかになり、ステアリングの遊びを再現することができ、仮想の車の挙動がふらついてしまうことを抑制することができる。
【００２２】
請求項５の運転シミュレーション装置によれば、仮想の車の車速が高くなるに従って仮想の車のステアリングの変化量が減少するように、そのステアリングの変化量を補正するので、車速が速くなるほどステアリングの変化量が低減することになり、より現実に近い車の操作性を実現することができる。
【００２３】
請求項６の運転シミュレーション装置によれば、請求項１の運転シミュレーション装置と同様に、キーボードの所定キーの操作で仮想の車の滑らかな運転操作を再現することができる。
【００２４】
請求項７のサーバ装置によれば、このサーバ装置を用いて構成された運転シミュレーション装置において、前述した請求項１の運転シミュレーション装置と同様の作用効果が得られる。
【００２５】
請求項８のプログラムによれば、このプログラムを実行可能なコンピュータを備えたサーバ装置を用いて構成された運転シミュレーション装置において、前述した請求項１の運転シミュレーション装置と同様の作用効果が得られる。
【００２６】
請求項９のプログラムによれば、このプログラムを実行可能なコンピュータを備えた運転シミュレーション装置において、前述した請求項１の運転シミュレーション装置と同様の作用効果が得られる。
【図面の簡単な説明】
【００２７】
【図１】本発明の第１実施例に係る運転シミュレーション装置の概略図である。
【図２】表示装置に表示される運転シミュレーション画像の一例を示す概略図である。
【図３】第１実施例に係る運転シミュレーション装置の概略を示すブロック図である。
【図４】操作キーを設定する設定画面の一例を示す概略図である。
【図５】（Ａ）はステアリング操作に対応するキーが押下されている場合の変換曲線を設定する設定画面の一例を示す概略図、（Ｂ）はステアリング操作に対応するキーが離れている場合の変換曲線の一例を示すグラフである。
【図６】ステアリング操作の補正に用いる、操舵角補正係数とステアリングの舵角との関係を表すグラフの一例である。
【図７】ステアリング操作の補正に用いる、車速係数と補正係数との関係を表すグラフの一例である。
【図８】アクセル操作における変換曲線を設定する設定画面の一例を示す概略図である。
【図９】ブレーキ操作における変換曲線を設定する設定画面の一例を示す概略図である。
【図１０−１】キーが操作された場合に変換曲線を選択する方法を示すフローチャートである。
【図１０−２】キーが操作されていない場合に変換曲線を選択する方法を示すフローチャートである。
【図１１】ステアリング操作に対応するキーが押下されている場合に、仮想の車のステアリングを操作する方法を示すフローチャートである。
【図１２】ステアリング操作に対応するキーが離されている場合に、仮想の車のステアリングを操作する方法を示すフローチャートである。
【図１３】アクセル操作に対応するキーが押下されている場合に、仮想の車のアクセルを操作する方法を示すフローチャートである。
【図１４】アクセル操作に対応するキーが離されている場合に、仮想の車のアクセルを操作する方法を示すフローチャートである。
【図１５】ブレーキ操作に対応するキーが押下されている場合に、仮想の車のブレーキを操作する方法を示すフローチャートである。
【図１６】ブレーキ操作に対応するキーが離されている場合に、仮想の車のブレーキを操作する方法を示すフローチャートである。
【図１７】第１実施例の変形例に係る運転シミュレーション装置の概略を示すブロック図である。
【図１８】第１実施例の変形例に係るステアリングの操作を補正する方法を示すフローチャートである。
【図１９】本発明の第２実施例に係る運転シミュレーション装置の概略を示すブロック図である。
【発明を実施するための形態】
【００２８】
以下、本発明の実施形態について図面を参照しながら説明する。
＜第１実施例＞
図１は、本発明の第１実施例に係る運転シミュレーション装置の概略図である。図１に示すように、運転シミュレーション装置１は、複数の端末装置２とサーバ装置３とを備えている。各端末装置２とサーバ装置３とは、ネットワークＮで接続されている。ここで、ネットワークＮとは、インターネット、イントラネット等である。
【００２９】
端末装置２は、サーバ装置３から送信される、３次元の仮想空間に仮想の車の運転状態を描画した動画が再生される表示装置１０を備えており、３次元の仮想空間にある仮想の車は、ユーザがキーボード１１の所定キーを操作することによって運転操作される。
図２は、表示装置１０に表示される運転シミュレーション画像の一例を示している。図２に示すように、表示装置１０には、ユーザが仮想の車の運転席から見た画像が表示される。この画像では、ステアリングＨ、バックミラーＭ、サイドミラーＳが表示されており、仮想の車の前方の景色だけでなくバックミラーＭやサイドミラーＳに映る景色も変化させることで、より現実味のある運転シミュレーションを行うことができる。
【００３０】
図３は、運転シミュレーション装置１の概略を示すブロック図である。運転シミュレーション装置１を構成する各端末装置２及びサーバ装置３について、図３に基づいてより詳細に説明する。
端末装置２は、さらに端末処理部２０及び端末通信部２１を備えている。端末処理部２０は、キー操作検出部２０１、動画再生部（動画再生手段）２０２、及び画面表示部２０３を有している。キー操作検出部２０１では、キーボード１１のいずれかのキーが操作されたことによる操作信号（以下、「キーイベント」という。）を検出して操作されたキーを判別する。動画再生部２０２は、端末通信部２１でサーバ装置３から受信した動画データを表示装置１０で再生する。動画の再生は、ストリーミングで行ってもよい。画面表示部２０３では、サーバ装置３から受信したユーザ設定画面等を表示装置１０に表示する。
【００３１】
端末通信部２１は、ネットワークＮを介してサーバ装置３と通信を行うものであり、例えば、キー操作検出部２０１で判別したキーイベントの送信や、サーバ装置３から送信される動画データの受信等を行う。
【００３２】
次に、サーバ装置３について説明する。サーバ装置３は、サーバ通信部（動画送信手段）３０、サーバ処理部３１、及び記憶部３３を備えている。ここで、サーバ処理部３１、演算部３２、記憶部３３に示した各機能は、図示しないが記憶部３３に記憶されたプログラムを図示しないＣＰＵで実行することによって実現される。
サーバ通信部３０は、ネットワークＮを介して各端末装置２と通信を行うものであり、例えば、端末装置２からキーボード１１で操作されたキーイベントの受信や、後述するサーバ処理部３１で生成した動画データの送信等を行う。
【００３３】
サーバ処理部３１は、動画生成部３１１、画面生成部３１２、タイマ３１３、及び演算部３２を有している。動画生成部３１１は、演算部３２で処理された仮想の車の運転操作情報に基づいて、動画データを生成する。画面生成部３１２は、端末装置２を操作しているユーザが、仮想の車の運転操作に関する設定をサーバ装置３に要求した場合に、要求された設定画面を生成する。本実施例における運転操作の各種設定とは、詳細は後述するが、例えばステアリング、アクセル、ブレーキを操作するためのキーボード１１のキーの設定や、ステアリング操作に要する時間等である。生成された設定画面は、ネットワークＮを介して、設定要求を出した端末装置２へ画面データとして送信される。タイマ３１３は、所定の時間毎に演算部３２へ所定時間が経過したことを通知する。
【００３４】
演算部３２は、変化量算出部３２１、運転状態更新部（運転操作状態更新手段）３２２、操作時間更新部（継続操作時間更新手段、継続非操作時間更新手段）３２３を含む。
変化量算出部３２１は、タイマ３１３から通知される度に、所定キーの操作の操作時間に対する仮想の車の運転操作における変化量を算出する。運転状態更新部３２２は、後述する記憶部３３に記憶されている仮想の車の運転操作状態を、変化量算出部３２１で求めた変化量で更新する。操作時間更新部３２３は、運転操作に対応する所定キーが操作されている時間、または運転操作に対応するキーがユーザによって押下された後に離されてからの時間を積算し、後述する記憶部３３の操作時間情報を更新する。
【００３５】
記憶部３３は、サーバ処理部３１で仮想の車の運転状態を処理するために必要な各種情報を有しており、車種情報記憶部３３１、曲線情報記憶部３３２、運転操作情報記憶部（運転操作状態記憶手段）３３３、操作時間情報記憶部（継続操作時間記憶手段、継続非操作時間記憶手段）３３４、及びユーザ設定情報記憶部３３５を有している。
【００３６】
車種情報記憶部３３１には、車の車種と、車種毎にステアリング、アクセル、ブレーキの操作特性等がそれぞれ登録されている。曲線情報記憶部３３２には、所定キーの操作に対応する車のステアリング、アクセル、及びブレーキの運転操作へ変換する変換曲線が登録されている。運転操作情報記憶部３３３には、演算部３２で求められた車のステアリング、アクセル、及びブレーキの運転操作情報が登録されている。操作時間情報記憶部３３４には、キーボード１１が操作されている継続時間を表す情報が保存されている。ユーザ設定情報記憶部３３５には、画面生成部３１２で生成された設定画面にユーザが設定した情報が記憶されている。
【００３７】
画面生成部３１２で生成される各設定画面について、以下に説明する。なお、画面生成部３１２で生成される設定画面は、以下に説明するものに限られない。
図４に、ステアリング操作、アクセル、ブレーキにそれぞれ対応するキーボードのキーを設定する設定画面を示す。本実施例では、端末装置２のキーボード１１の所定キーを操作することによって、ステアリング、アクセル、ブレーキを操作するものであり、各操作をすることで仮想の車のステアリング操作、速度変化、制動等の運転操作に反映される。各操作に対応するキーの設定について、以下に詳しく説明する。
【００３８】
「Accelerator」に対応するテキストボックス４１４には、アクセル操作に割り当てるキーが設定される。図４に示すテキストボックス４１４には、アクセル操作のキーとして「Ｕｐ」が設定されており、これはキーボード１１の「↑」キーに相当する。「Brake」に対応するテキストボックス４１５には、ブレーキ操作に割り当てるキーが設定される。図４に示すテキストボックス４１５には、ブレーキ操作のキーとして「Ｄｏｗｎ」が設定されており、これはキーボード１１の「↓」キーに相当する。「Left Turn」に対応するテキストボックス４１６には、左方向へのステアリング操作に割り当てるキーが設定される。図４に示すテキストボックス４１６には、左方向のステアリング操作のキーとして「Ｌｅｆｔ」が設定されており、これはキーボード１１の「←」キーに相当する。「Right Turn」に対応するテキストボックス４１７には、右方向へのステアリング操作に割り当てるキーが設定される。図４に示すテキストボックス４１７には、右方向のステアリング操作のキーとして、「Ｒｉｇｈｔ」が設定されており、これはキーボード１１の「→」キーに相当する。このようなテキストボックス４１４〜４１７に設定される各キーは、ユーザが任意に設定することができる。
【００３９】
図５（Ａ）には、ステアリング操作で用いる変換曲線の設定を行う設定画面の一例を示す概略図、図５（Ｂ）にはステアリング操作に対応するキーが押下された後、当該キーが離された場合に用いる変換曲線の一例を示すグラフをそれぞれ示す。
【００４０】
図５（Ａ）に示すように、ステアリング操作の設定画面には、「Ｋｅｙ  ｏｎ」タブ、即ちステアリング操作に対応するキーが押下されている場合の変換曲線のグラフＧon及びテーブルＴonが表示されている。グラフＧonは、横軸が時間（秒）、縦軸が操舵ゲインを表しており、テーブルＴonには、グラフＧonから求められた時間（Time）と操舵ゲイン（Gain）が設定されている。テーブルＴonに表示されている時間及び操舵ゲインは、グラフＧonに表示されているロジスティック曲線から求められた値である。グラフＧonに点を追加する場合には、「Add new point」ボタンを押下するとテーブルＴonに新たな行が追加され、追加された行の時間と操舵ゲインとに任意の値を設定することで、追加された点のデータがグラフＧonに反映される。また、グラフＧonから点を削除する場合には、テーブルＴonの各行にある「×」ボタンを押下することで「×」ボタンが押下された行が削除されると共に、グラフＧonにも反映される。
【００４１】
図５（Ｂ）は、ステアリング操作に対応するキーが押下されていない場合の変換曲線のグラフＧoffを表している。グラフＧoffは、グラフＧonをｘ軸の中間値、例えばｘ＝０．５を対称軸として線対称で表したグラフである。グラフＧoffについても、点の追加や削除の方法は上述したグラフＧonと同様である。運転操作の変換曲線として用いているグラフＧon、Ｇoffは、ロジスティック曲線で表されているが、Ｓ字曲線であればこれに限られない。
【００４２】
スピンボックスＲtには、左方向の最大舵角から右方向の最大舵角までステアリングを操作するために要する時間が表示されている。ステアリングは構造上、回転できる範囲が定まっている。この範囲を「ロック・トゥ・ロック」という。このロック・トゥ・ロックを表すスピンボックスＲtの値を変更することで、各ユーザのステアリング操作性に対応することができる。
【００４３】
中立付近補正係数を表すスピンボックスＦstは、ステアリングの舵角が０°付近、即ち中立付近にあるときのステアリングの操舵量を低減するための補正係数である。スピンボックスＦstには任意の数値を入力することが可能であり、入力された数値によって中立付近におけるステアリングの操舵量の低減率が変化する。中立付近におけるステアリングの操舵量を補正して低減することによってステアリング操作における遊びを実現することができるので、仮想の車のふらつきを抑制することができる。詳しくは、図６に基づいて以下に説明する。
【００４４】
図６は、ステアリングの舵角が０°から左方向または右方向の最大舵角までの間の所定率における舵角ｒを規定し、中立位置０°から最大舵角の所定率であるステアリング舵角ｒの範囲でロジスティック曲線を描いた補正曲線の一例を示すグラフである。図６に示すように、ステアリングの舵角が０°近傍の操舵角補正係数ｆstの変化が少ないのでステアリングの遊びを再現することができる。このように、ロジスティック曲線を用いてステアリングの舵角０°から舵角ｒまでを滑らかに遷移させるので、ステアリングの遊びを実現することができ、中立位置付近でのふらつきが抑制される。従って、ステアリング操作時の違和感を抑制することができる。
【００４５】
車速補正係数を表すスピンボックスＦspは、車速が速くなると単位時間当たりの車の移動量が増加するため、車速が速くなるにつれて車の操舵量を小さくする補正を行うための補正係数である。スピンボックスＦspには任意の数値を入力することが可能であり、入力された数値によって車速に対する車の操舵量の変化特性を任意に設定することができる。詳しくは、図７に示す車速係数と補正係数との関係を示す補正曲線の一例を表すグラフに基づいて説明する。
【００４６】
図７に示す車速係数ｖは、例えばｖ＝０が時速０ｋｍ／ｈ、ｖ＝１が時速１００ｋｍ／ｈ、ｖ＝２が時速２００ｋｍ／ｈをそれぞれ表している。図７に示すように、このグラフは車速係数に応じて３つの領域に分かれている。
【００４７】
領域Iは、車速係数ｖ＝０〜１に相当する領域であり、ロジスティック曲線を用いている。領域Iの曲線は、ステアリングの操舵量を補正するために予め設定されたロジスティック曲線の数式を変形して求めた曲線を基準として、スピンボックスＦspに設定された補正係数ｃで除算することで求められる。ロジスティック曲線の数式を変形して求めた曲線は、例えば以下の式（１）から求められる。
【００４８】
【数１】
0005149426.tif 000002
【００４９】
上記式（１）で描かれる曲線を基準とし、スピンボックスＦspに設定された補正係数ｃを用いて以下の式（２）及び式（３）から補正係数ｆspを求める。
ｓ＝9.0−ｃ1.2      （２）
ｆsp＝ｙ／ｓ      （３）
車速係数ｖ＝０のときの補正係数ｆspが１となるように、上記式（３）で求められた補正係数ｆspを調整し、領域Iの補正係数ｆspとしている。
【００５０】
領域IIの補正係数ｆspは、車速係数ｖ＝１における補正係数ｆspを基準として、スピンボックスＦspに設定された補正係数ｃを用いて求めた一定の勾配で推移する。この勾配ａは、以下の式（４）から求められる。
ａ＝(c/10.0)2.5      （４）
【００５１】
領域IIIの補正係数ｆspは、車速係数ｖ＝２の値で推移する。このように、図７に示すグラフを用いて、車速に応じてステアリングの操舵角の補正を行う。
【００５２】
図８には、アクセル操作で用いる変換曲線の設定を行う設定画面の一例を示す概略図を示す。図８に示すように、アクセル操作の設定画面には、アクセルの操作に対応するキーが押下されている場合のテーブルＴa、グラフＧaが表示される。グラフＧaはロジスティック曲線で表され、横軸を時間、縦軸をゲインとして表される。テーブルＴaには、グラフＧaから求められた時間（Time）、ゲイン（Gain）が設定される。グラフＧaへの点の追加、削除は、上述したステアリング操作の場合と同様である。
【００５３】
図９は、ブレーキ操作で用いる変換曲線の設定を行う設定画面の一例を示す概略図である。図９に示すように、ブレーキの制動の設定画面には、ブレーキの制動に対応するキーが押下されている場合のテーブルＴb、グラフＧbが表示される。グラフＧbは、図８に示したアクセル操作の設定画面で表示されるグラフＧaと同様に、ロジスティック曲線で表される。また、テーブルＴbには、グラフＧbから求められた時間及びゲインが設定される。グラフＧbへの点の追加、削除は、上述したステアリング操作の場合と同様である。
このように、図５（Ａ）、図８、図９に示した設定画面に設定された項目は、ユーザ設定情報記憶部３３５に設定情報として記憶される。
【００５４】
次に、上述した構成の運転シミュレーション装置１の作用について説明する。まず、サーバ装置３の作用について、図１０〜図１３に示すフローチャートに基づいて以下に説明する。以下に述べる処理は、記憶部３３に格納されているプログラムを実行することにより行われる。
【００５５】
図１０は、変換曲線の選択方法を示すフローチャートを示している。図１０に示すフローチャートは、ユーザが端末装置２のキーボード１１のキーを押下または離すことにより発生するキーイベントを、サーバ装置３のサーバ通信部３０で受信することにより行われる。
【００５６】
ステップＳ１１では、操作時間情報記憶部３３４に記憶されている積算時間Ｔ、即ち後述するロジスティック曲線で表される変換曲線における積算時間Ｔに０を設定する。続くステップＳ１２では、受信したキーイベントが、キーが押下されたことによるキーイベントか否かを判定する。当該判定結果が真（Ｙｅｓ）の場合にはステップＳ１３へ進む。
【００５７】
ステップＳ１３では、受信したキーイベントから特定されるキーがステアリング操作に対応するキーか否かを判定する。当該判定結果が真（Ｙｅｓ）の場合には、ステアリング操作に対応するキーが押下されているとしてステップＳ１４へ進む。ステップＳ１４では、ステップＳ１３で特定されたキーがステアリングを右方向へ操作するキーか否かを判定する。当該判定結果が真（Ｙｅｓ）の場合には、特定されたキーがステアリングを右方向へ回転操作するキーであるとしてステップＳ１５へ進む。ステップＳ１５では、後述する変化量ｄＸを求めるときに用いる方向を表す変数directionに１を設定する。一方、上記ステップＳ１４で偽（Ｎｏ）と判定された場合には、特定されたキーがステアリングを左方向へ回転操作するキーであると判定してステップＳ１６へ進む。ステップＳ１６では、方向を表す変数directionに−１を設定する。
【００５８】
ステップＳ１７では、キー押下に対応する変換曲線（第１変換曲線）を選択する。一方、上記ステップＳ１３で偽（Ｎｏ）と判定された場合、キーイベントから特定されるキーはステアリング操作に対応するキーではないとして、ステップＳ１８へ進む。
【００５９】
ステップＳ１８では、キーイベントから特定されるキーがアクセル操作に対応するキーであるか否かを判定する。当該判定結果が真（Ｙｅｓ）の場合には、アクセル操作に対応するキーが押下されているとしてステップＳ１９へ進む。ステップＳ１９では、曲線情報記憶部３３２からアクセル操作に対応する変換曲線（第１変換曲線）を選択する。一方、上記ステップＳ１８で偽（Ｎｏ）と判定された場合、キーイベントから特定されるキーはアクセル操作に対応するキーではないとして、ステップＳ２０へ進む。
【００６０】
ステップＳ２０では、キーイベントから特定されるキーがブレーキ操作に対応するキーであるか否かを判定する。当該判定結果が真（Ｙｅｓ）の場合には、ブレーキ操作に対応するキーが押下されているとしてステップＳ２１へ進む。ステップＳ２１では、曲線情報記憶部３３２からブレーキ操作に対応する変換曲線（第１変換曲線）を選択する。一方、上記ステップＳ２０で偽（Ｎｏ）と判定された場合には、何れのキーにも該当しないとして本処理を終了する。
【００６１】
一方、上記ステップＳ１２で偽（Ｎｏ）と判定された場合には、ユーザがキーを離すことにより生成されたキーリリースのキーイベントであるとして、ステップＳ２２へ進む。ステップＳ２２では、キーイベントから特定されたキーがステアリング操作に対応するキーか否かを判定する。当該判定結果が真（Ｙｅｓ）の場合にはステップＳ２３へ進む。ステップＳ２３では、運転操作情報記憶部３３３に格納されているステアリングの位置currentＸを取得し、ステアリングの位置currentＸが正の値であるか否かを判定する。当該判定結果が真（Ｙｅｓ）の場合には、ステアリングが中立位置より右方向へ回転しているとしてステップＳ２４へ進む。ステップＳ２４では、後述する変化量ｄＸを求めるときに用いる方向を表す変数directionに−１を設定する。一方、上記ステップＳ２３の判定結果が偽（Ｎｏ）の場合には、ステアリングが中立位置より左方向へ回転しているとしてステップＳ２５へ進む。ステップＳ２５では、方向を表す変数directionに１を設定する。
【００６２】
ステップＳ２６では、ステアリング操作に対応するキーが離されることによるキーイベントであるとして、曲線情報記憶部３３２からステアリング操作キーのキーリリースに対応する変換曲線（第２変換曲線）を選択する。一方、ステップＳ２２で偽（Ｎｏ）と判定された場合には、ステップＳ２７へ進む。
【００６３】
ステップＳ２７では、キーイベントから特定されたキーがアクセル操作に対応するキーか否かを判定する。当該判定結果が真（Ｙｅｓ）の場合にはステップＳ２８へ進む。ステップＳ２８では、アクセル操作に対応するキーが離されることによるキーイベントであるとして、曲線情報記憶部３３２からアクセル操作キーのキーリリースに対応する変換曲線（第２変換曲線）を選択する。一方、ステップＳ２７で偽（Ｎｏ）と判定された場合には、ステップＳ２９へ進む。
【００６４】
ステップＳ２９では、キーイベントから特定されたキーがブレーキ操作に対応するキーか否かを判定する。当該判定結果が真（Ｙｅｓ）の場合にはステップＳ３０へ進む。ステップＳ３０では、ブレーキ操作に対応するキーが離されることによるキーイベントであるとして、曲線情報記憶部３３２からブレーキ操作キーのキーリリースに対応する変換曲線（第２変換曲線）を選択する。
【００６５】
次に、ステアリング操作方法を図１１に示すフローチャートに従って以下に説明する。図１１は、上述したステップＳ１３で特定されたキーがステアリング操作に対応する場合に行われる、ステアリング操作に対応するキーが押下されている場合のステアリング操作の方法を示すフローチャートである。本フローチャートは、サーバ処理部３１にあるタイマ３１３が、所定の時間間隔で出力するタイマ通知によって行われる。
【００６６】
ステップＳ１０１では、サーバ通信部３０を介して、ステアリング操作に対応するキーが押下されているキーイベントを受信しているか否かを判定する。当該判定結果が真（Ｙｅｓ）の場合にはステップＳ１０２へ進み、当該判定結果が偽（Ｎｏ）の場合には、本処理を終了する。
【００６７】
ステップＳ１０２では、今回計算する時間から前回計算したときの時間の差分である差分時間ｄＴを求める。ステップＳ１０３では、ステップＳ１０２で求めた差分時間ｄＴ、及び操作時間情報記憶部３３４に保存されている前回計算したときの積算時間Ｔから、上記ステップＳ１７で選択された変換曲線における積算時間（継続操作時間）Ｔを求め、操作時間情報記憶部３３４に保存する。積算時間Ｔは、以下の式（５）から求められる。
Ｔ＝Ｔ＋ｄＴ      （５）
【００６８】
続くステップＳ１０４では、積算時間Ｔに対応するゲインＧhを上記ステップＳ１７で選択された変換曲線（第１変換曲線）から取得する。
ステップＳ１０５では、上記ステップＳ１０２で求めた差分時間ｄＴ及び上記ステップＳ１０４で取得したゲインＧhから、変化量算出部３２１でステアリング操作における変化量ｄＸを求める。ここで、ｄＸは、以下に示す式（６）から求められる。
【００６９】
ｄＸ＝ｄＴ×Ｇ×Ｖmax×direction      （６）
上記式（６）の変数directionは、上記ステップＳ１５またはＳ１６で設定された値を用いる。変化量ｄＸを求めるときに、後述するステアリングの位置currentＸに対して加算するのか、または減算するのかという符号を決めるために変数directionを用いる。上記ステップＳ１３で特定されたキーがステアリングを右方向へ操作するキーであった場合、本ステップで求める変化量ｄＸは上記ステップＳ１５で設定された変数directionに従って正の値となる。一方、上記ステップＳ１３で特定されたキーがステアリングを左方向へ操作するキーであった場合、本ステップで求める変化量ｄＸは上記ステップＳ１６で設定された変数directionに従って負の値となる。
【００７０】
上記式（６）で変数Ｖmaxは、上述した図５（Ａ）に示した設定画面で設定されるスピンボックスＲtに設定された時間で、左方向の最大操舵角Ａmaxlから右方向の最大操舵角Ａmaxrまでステアリングを操作するときの移動速度、または右方向の最大操舵角Ａmaxrから左方向の最大操舵角Ａmaxlまでステアリングを操作するときの移動速度を表しており、以下の式（７）で求められる。
Ｖmax＝（Ａmaxl−Ａmaxr）／Ｒt      （７）
【００７１】
なお、ステアリングの中立位置を０として左方向へ旋回する角度、即ち後述するステアリング位置currentＸが負の値で表され、右方向へ旋回する角度、即ちステアリング位置currentＸが正の値で表される。従って左方向の最大操舵角Ａmaxlがステアリング位置currentＸの取り得る最小値となり、右方向の最大操舵角Ａmaxrがステアリング位置currentＸの取り得る最大値となる。また、左方向の最大操舵角Ａmaxl及び右方向の最大操舵角Ａmaxrは、予め車種情報記憶部３３１に記憶されており、運転シミュレーションに用いる仮想の車の車種に応じて適宜設定すればよい。
【００７２】
ステップＳ１０６では、運転操作情報記憶部３３３に記憶されている前回計算したステアリングの位置currentＸと上記ステップＳ１０５で求められたステアリング位置の変化量ｄＸから、運転状態更新部３２２で今回のキー操作に対応したステアリングの位置currentＸを以下の式（８）から求める。
currentＸ＝currentＸ＋ｄＸ      （８）
【００７３】
ステップＳ１０７では、上記ステップＳ１０６で求められたステアリングの位置currentＸが、ステアリングの右方向の最大操舵角Ａmaxrより大きいか否かを判定する。当該判定結果が真（Ｙｅｓ）の場合にはステップＳ１０８へ進む。ステップＳ１０８では、上記ステップＳ１０６で求められたステアリングの位置currentＸが、ステアリングの最大操舵角Ａmaxrより大きいとして、ステアリングの位置currentＸにステアリングの最大操舵角Ａmaxrを設定する。
【００７４】
一方、上記ステップＳ１０７で偽（Ｎｏ）と判定された場合には、ステップＳ１０９へ進む。ステップＳ１０９では、上記ステップＳ１０６で求められたステアリングの位置currentＸが、ステアリングの左方向の最大操舵角Ａmaxlより小さいか否かを判定する。当該判定結果が真（Ｙｅｓ）の場合にはステップＳ１１０へ進む。
【００７５】
ステップＳ１１０では、記ステップＳ１０６で求められたステアリングの位置currentＸが、ステアリングの最大操舵角Ａmaxlより小さいとして、ステアリングの位置currentＸにステアリングの最大操舵角Ａmaxlを設定する。このように求められたステアリングの位置currentＸを運転操作情報記憶部３３３へ格納する。
【００７６】
次に、図１２に示すフローチャートに基づいて以下に説明する。図１２は、ステアリング操作に対応するキーが押下された後、離された場合のステアリング操作の方法を示すフローチャートである。本処理は、上述したステップＳ２２でステアリング操作に対応するキーが離されたと判定され、対応する変換曲線が選択された後に行われる。ステアリング操作に対応するキーが離されると、仮想の車のステアリングは中立位置に戻るように制御され、本フローチャートでこの制御を実現する。
【００７７】
本フローチャートは、サーバ処理部３１にあるタイマ３１３が、所定の時間間隔で出力するタイマ通知によって行われる。なお、ステップＳ１２４、Ｓ１２６については、図１１に示したステップＳ１０４、Ｓ１０６と共通する処理であるので説明は省略し、異なる処理についてのみ以下に説明する。
【００７８】
ステップＳ１２１では、演算部３２が、サーバ通信部３０にステアリング操作に対応する所定キーが押下されているか否かを判定する。当該判定結果が偽（Ｎｏ）の場合にはステップＳ１２２へ進み、当該判定結果が真（Ｙｅｓ）の場合には、ステアリング操作に対応するキーが押下されているので本処理を終了する。ステップＳ１２２では、前回計算した時刻から経過した時間ｄＴを求める。
【００７９】
続くステップＳ１２３では、上記ステップＳ１２２で求めた時間ｄＴ、及び操作時間情報記憶部３３４に保存されている前回計算したときの積算時間Ｔから、上記ステップＳ２６で選択された変換曲線における経過時間（継続非操作時間）Ｔを求める。そして、積算時間Ｔを操作時間情報記憶部３３４へ保存する。
【００８０】
ステップＳ１２５では、上述した式（６）を用いて変化量ｄＸを求める。本ステップで用いる変数directionは、上記ステップＳ２４またはＳ２５で設定された値を用いる。上記ステップＳ２３で判定したステアリングの位置currentＸが中立位置より右方向であると、ステアリングは左方向へ旋回して中立位置へ戻るので、本ステップで求める変化量ｄＸは上記ステップ２４で設定された変数directionに従って負の値となる。一方、上記ステップＳ２３で判定したステアリングの位置currentＸが中立位置より左方向であると、ステアリングは右方向へ旋回して中立位置へ戻るので、本ステップで求める変化量ｄＸは上記ステップ２５で設定された変数directionに従って正の値となる。
【００８１】
ステップＳ１２７では、上述したステップＳ１２６で求めたステアリングの位置currentＸに上記ステップＳ１２５で求めたステアリングの変化量ｄＸを乗算した値が０より大きいか否かを判定する。本ステップは、左旋回されたステアリングを中立位置に戻していたものの、求めたステアリングの位置currentＸが中立位置を通過して右旋回に入ってしまっているか否か、或いは、右旋回されたステアリングを中立位置に戻していたものの、求めたステアリングの位置currentＸが中立位置を通過して左旋回に入ってしまっているか否かを判定する。
【００８２】
詳しくは、左旋回されたステアリングの位置currentＸは、上述したように負の値で表され、ステアリングの変化量ｄＸは中立位置、即ち０に戻るために正の値で表される。同様に、右旋回されたステアリングの位置currentＸは、上述したように正の値で表され、ステアリングの変化量ｄＸは中立位置に戻るために負の値で表される。このように、左旋回または右旋回から中立位置に戻すまでの間、何れの場合でもステップＳ１２６で求められたステアリングの位置currentＸとステップＳ１２５で求められた変化量ｄＸとを乗算した値は負の値となる。
【００８３】
一方、左旋回されたステアリングの位置currentＸが変化量ｄＸで中立位置に戻していったものの中立位置を通過して右旋回に入ってしまうと、上記ステップＳ１２６で求められたステアリングの位置currentＸは正の値となる。同様に、右旋回されたステアリングの位置currentＸを変化量ｄＸで中立位置に戻していったものの中立位置を通過して左旋回に入ってしまうと、上記ステップＳ１２６で求められたステアリングの位置currentＸは負の値となる。変化量ｄＸの符号は上述した通りであり、何れの場合でも、ステップＳ１２６で求められたステアリングの位置currentＸにステップＳ１２５で求められた変化量ｄＸを乗算した値は正の値となる。従って、ステアリングの位置currentＸにステアリングの変化量ｄＸを乗算した値が０より大きいと、中立位置を通過して反対方向に旋回していると判定される。当該判定結果が真（Ｙｅｓ）の場合にはステップＳ１２８へ進み、偽（Ｎｏ）と判定された場合には、本処理を終了する。
【００８４】
ステップＳ１２８では、ステアリングが中立位置を通過してしまったとして、ステアリングを中立位置、即ちステアリング舵角が０°となる位置へ戻すため、ステアリングの位置currentＸに０を設定する。
このように、ロジスティック曲線を用いて、ステアリング操作に対応するキーの操作をステアリング操作として求めることによって、キーボード１１を用いて仮想の車のステアリング操作を滑らかに模擬することができる。
【００８５】
次に、アクセル操作について図１３に示すフローチャートに基づいて以下に説明する。図１３は、上述したステップＳ１８で特定されたキーがアクセル操作に対応するキーであり、当該キーが押下されている場合のアクセル操作方法を示すフローチャートである。本フローチャートは、サーバ処理部３１にあるタイマ３１３が、所定の時間間隔で出力するタイマ通知によって行われる。
【００８６】
ステップＳ２０１では、アクセル操作に対応するキーが押下されているキーイベントを受信しているか否かを判定する。当該判定結果が真（Ｙｅｓ）の場合にはステップＳ２０２へ進み、当該判定結果が偽（Ｎｏ）の場合には、本処理を終了する。
【００８７】
ステップＳ２０２では、前回アクセル位置を計算した時間と今回計算する時間との差分時間ｄＴaを求める。ステップＳ２０３では、ステップＳ２０２で求めた差分時間ｄＴa、及び操作時間情報記憶部３３４に保存されている前回計算したときの積算時間Ｔaから、上記ステップＳ１９で選択された変換曲線における積算時間（継続操作時間）Ｔaを求め、操作時間情報記憶部３３４に保存する。積算時間Ｔaは、以下の式（９）から求められる。
Ｔa＝Ｔa＋ｄＴa      （９）
【００８８】
続くステップＳ２０４では、積算時間Ｔaに対応するゲインＧaを上記ステップＳ１９で選択された右肩上がりのロジスティック曲線で表される変換曲線から取得する。
ステップＳ２０５では、上記ステップＳ２０２で求めた差分時間ｄＴa及び上記ステップＳ２０４で取得したゲインＧaから、変化量算出部３２１でアクセル位置の変化量ｄＸaを以下の式（１０）から求める。
ｄＸa＝ｄＴa×Ｇa×Ｖmax      （１０）
【００８９】
上記式（１０）で用いる変数Ｖmaxは、アクセルが閉じている状態からアクセルペダルが全開するまでに要する最短時間をＴminとし、アクセル位置の範囲をvalveとすると、以下の式（１１）から求められる。
Ｖmax＝valve／Ｔmin      （１１）
なお、アクセルを全開するまでに要する最短時間は、車種情報記憶部３３１に登録されており、最短時間は運転シミュレーションに用いる車の車種に応じて適宜設定すればよい。
【００９０】
ステップＳ２０６では、運転操作情報記憶部３３３に記憶されている前回計算したアクセル位置currentＸaと上記ステップＳ２０５で求められたアクセル位置の変化量ｄＸaから、運転状態更新部３２２で今回のアクセル位置currentＸaを求める。アクセル位置currentＸaは、以下の式（１２）から求められる。
currentＸa＝currentＸa＋ｄＸa      （１２）
【００９１】
ステップＳ２０７では、上記ステップＳ２０６で求められたアクセル位置currentＸaが、アナログデバイスとしてのアクセルペダルが全開した位置Ｐmaxより大きいか否かを判定する。当該判定結果が真（Ｙｅｓ）の場合にはステップＳ２０８へ進む。ステップＳ２０８では、上記ステップＳ２０６で求められたアクセル位置currentＸaが、アクセルが全開した位置よりも大きいとして、アクセル位置currentＸaにアクセルが全開したときの位置Ｐmaxを設定する。なお、アクセルが全開したときの位置Ｐmaxは、０より大きい値である。このように求められたアクセル位置currentＸaを運転操作情報記憶部３３３へ格納する。
【００９２】
次に、アクセル操作に対応するキーが押下された後、当該キーが離された場合のアクセル操作について、図１４に基づいて説明する。図１４は、アクセル操作に対応するキーが押下された後、当該キーが離された場合のアクセル操作の方法を示すフローチャートである。本フローチャートは、上述したステップＳ２７でアクセル操作に対応するキーが離されたと判定され、対応する変換曲線が選択された後、サーバ処理部３１にあるタイマ３１３が、所定の時間間隔で出力するタイマ通知によって行われる。なお、図１４に示すステップＳ２２４〜Ｓ２２６については、図１３にて説明したステップＳ２０４〜Ｓ２０６と同様の処理であるので、共通箇所の説明は省略する。
【００９３】
ステップＳ２２１では、演算部３２が、サーバ通信部３０にアクセル操作に対応するキーが押下されているキーイベントを受信しているか否かを判定する。当該判定結果が偽（Ｎｏ）の場合にはステップＳ２２２へ進む。ステップＳ２２２では、前回計算した時刻から経過した時間ｄＴaを求め、操作時間情報記憶部３３４に保存する。
【００９４】
ステップＳ２２３では、上記ステップＳ２２２で求めた差分時間ｄＴa、及び操作時間情報記憶部３３４に保存されている前回計算したときの積算時間Ｔaから、上記ステップＳ２２で選択された右肩下がりのロジスティック曲線で表される変換曲線における積算時間（継続非操作時間）Ｔaを求め、操作時間情報記憶部３３４に保存する。
【００９５】
ステップＳ２２７では、ステップＳ２２６で求めたアクセル位置currentＸaが最小値Ｐminより小さいか否かを判定する。本ステップでは、段階的に小さくなるアクセル位置currentＸaが、アクセルが閉じている状態、即ちアクセル位置の最小値Ｐminより小さいか否かを判定する。
【００９６】
上述したようにステップＳ２２６で求められるアクセル位置currentＸaは、前回計算したアクセル位置currentＸaより変化量ｄＸaだけ小さくなる。この処理を繰り返していくとアクセル位置currentＸaは、やがてアクセルが閉じているときの位置である最小値Ｐminを通過してしまう。従って本ステップで求められるアクセル位置currentＸaが値が最小値Ｐminより大きい間は、アクセル位置currentＸaを変化量ｄＸaで戻していく。そしてアクセル位置currentＸaが最小値Ｐminより小さくなると、アクセルの操作可能範囲Ｐmin〜Ｐmaxを下回っていると判定される。
【００９７】
当該判定結果が真（Ｙｅｓ）の場合にはステップＳ２２８へ進み、偽（Ｎｏ）と判定された場合には、本処理を終了する。ステップＳ２２８では、アクセル位置が最小値Ｐminを通過してしまったとして、アクセル位置を最小値Ｐminへ戻すため、アクセル位置currentＸaに最小位置Ｐminを設定する。
このように、アクセル操作に対応するキーをユーザが操作すると、ロジスティック曲線で表される変換曲線を用いてアクセル位置を段階的に変化させていくことにより、仮想の車の加速、減速を滑らかに模擬することができる。
【００９８】
次に、ブレーキ操作について図１５に示すフローチャートに基づいて以下に説明する。図１５は、ブレーキ操作に対応するキーが押下されている場合のブレーキ操作方法を示すフローチャートである。本フローチャートは、上述したステップＳ２１で特定されたキーに対応する変換曲線が選択された後、サーバ処理部３１にあるタイマ３１３が所定の時間間隔で出力するタイマ通知によって行われる。
【００９９】
ステップＳ３０１では、ブレーキ操作に対応するキーが押下されているキーイベントを受信しているか否かを判定する。当該判定結果が真（Ｙｅｓ）の場合にはステップＳ３０２へ進み、当該判定結果が偽（Ｎｏ）の場合には、本処理を終了する。
【０１００】
ステップＳ３０２では、前回ブレーキ位置を計算した時間と今回の時間との差分時間ｄＴsを求める。ステップＳ３０３では、ステップＳ３０２で求めた差分時間ｄＴs、及び操作時間情報記憶部３３４に保存されている前回計算したときの積算時間Ｔsから、上記ステップＳ２１で選択された変換曲線における積算時間（継続操作時間）Ｔsを求め、操作時間情報記憶部３３４に保存する。積算時間Ｔsは、以下の式（１３）から求められる。
Ｔs＝Ｔs＋ｄＴs        （１３）
【０１０１】
続くステップＳ３０４では、上記ステップＳ２１で選択された右肩上がりのロジスティック曲線で表される変換曲線から、積算時間Ｔsに対応するゲインＧsを取得する。
ステップＳ３０５では、上記ステップＳ３０２で求めた差分時間ｄＴs及び上記ステップＳ３０４で取得したゲインＧsから、変化量算出部３２１でブレーキ位置の変化量ｄＸsを以下の式（１４）から求める。
ｄＸs＝ｄＴs×Ｇs×Ｖmax      （１４）
【０１０２】
変数Ｖmaxは、上述した式（９）から求められる。なお、ブレーキが操作されていない状態から踏み込まれる位置までに要する最短時間をＴminとし、ブレーキ位置の取り得る範囲をvalveとする。
ブレーキを踏み込むまでに要する最短時間は、車種情報記憶部３３１に登録されており、最短時間は運転シミュレーションに用いる車の車種に応じて適宜設定すればよい。
【０１０３】
ステップＳ３０６では、運転操作情報記憶部３３３に記憶されている前回計算したブレーキ位置currentＸsと上記ステップＳ３０５で求められたブレーキ位置の変化量ｄＸsから、運転状態更新部３２２で今回のブレーキ位置currentＸsを以下の式（１５）から求める。
currentＸs＝currentＸs＋ｄＸs      （１５）
【０１０４】
ステップＳ３０７では、上記ステップＳ３０６で求められたブレーキ位置currentＸsが、ブレーキが踏み込まれた位置Ｐmaxより大きいか否かを判定する。なお、ブレーキが踏み込まれた位置Ｐmaxは正の値である。当該判定結果が真（Ｙｅｓ）の場合にはステップＳ３０８へ進む。ステップＳ３０８では、上記ステップＳ３０６で求められたブレーキ位置currentＸsが、ブレーキを踏み込んだ位置よりも大きいとして、ブレーキ位置currentＸsにブレーキが踏み込まれたときの位置Ｐmaxを設定する。求められたブレーキ位置currentＸsを運転操作情報記憶部３３３に格納する。
【０１０５】
次に、ブレーキ操作に対応するキーが押下された後、当該キーが離された場合のブレーキ操作について、図１６に基づいて説明する。図１６は、ブレーキ操作に対応するキーが押下された後、当該キーが離された場合のブレーキ操作の方法を示すフローチャートである。本フローチャートは、上述したステップＳ２９でブレーキ操作に対応するキーが離されたと判定され、対応する変換曲線が選択された後、サーバ処理部３１にあるタイマ３１３が、所定の時間間隔で出力するタイマ通知によって行われる。なお、図１６に示すステップＳ３２４〜Ｓ３２６については、図１５にて説明したステップＳ３０４〜Ｓ３０６と同様の処理であるので説明は省略する。
【０１０６】
ステップＳ３２１では、演算部３２が、サーバ通信部３０にブレーキ操作に対応するキーが押下されているキーイベントを受信しているか否かを判定する。当該判定結果が偽（Ｎｏ）の場合にはステップＳ３２２へ進む。ステップＳ３２２では、前回計算した時刻から経過した差分時間ｄＴsを求める。
【０１０７】
ステップＳ３２３では、上記ステップＳ３２２で求めた差分時間ｄＴs、及び操作時間情報記憶部３３４に保存されている前回計算したときの積算時間Ｔsから、上記ステップＳ３０で選択された右肩下がりのロジスティック曲線で表される変換曲線における経過時間（継続非操作時間）Ｔsを求め、操作時間情報記憶部３３４に保存する。
【０１０８】
ステップＳ３２７では、ステップＳ３２６で求めたブレーキ位置currentＸsが、ブレーキ位置の最小値Ｐminより小さいか否かを判定する。本ステップは、段階的に小さくなるブレーキ位置currentＸsが、ブレーキ位置の最小値Ｐminより小さいか否かを判定する。
【０１０９】
上述したようにステップＳ３２６で求められるブレーキ位置currentＸsは、前回計算したブレーキ位置currentＸsより変化量ｄＸsだけ小さくなる。この処理を繰り返していくとブレーキ位置currentＸsは、やがてブレーキが操作されていないときの位置である最小値Ｐminを通過してしまう。従って本ステップで求められる値が最小値Ｐminである間は、ブレーキ位置currentＸsを変化量ｄＸsで戻していく。そしてブレーキ位置currentＸsが最小値Ｐminより小さくなるとブレーキの操作可能範囲Ｐmin〜Ｐmaxを下回っていると判定される。
【０１１０】
当該判定結果が真（Ｙｅｓ）の場合にはステップＳ３２８へ進み、偽（Ｎｏ）と判定された場合には、本処理を終了する。ステップＳ３２８では、ブレーキ位置が最小値Ｐminを通過してしまったとして、ブレーキ位置を最小値Ｐminへ戻すため、ブレーキ位置currentＸsに最小値Ｐminを設定する。
【０１１１】
このように、ブレーキ操作に対応するキーをユーザが操作すると、キー操作に対応する変化量をロジスティック曲線で表される変換曲線から求めることで、ブレーキ位置を段階的に変化させることができ、滑らかなブレーキ操作を模擬することができる。
【０１１２】
動画生成部３１１は、上述したフローチャートにより求めたステアリングの位置、アクセル位置、ブレーキ位置の情報に基づいて動画を生成し、端末装置２へ送信する。この処理は、タイマ３１３から所定の周期で通知される毎に、操作されるキーに応じて行われる。ユーザは、動画再生部２０２で再生されて表示装置１０に表示される動画を介して、ユーザの操作に応じた仮想の車の運転状態を見ることができる。
【０１１３】
ここで、仮想の車の運転状態を維持する場合について説明する。例として、ステアリングの位置を維持する場合には、ユーザは対応するキーを押下したり離したりする操作を繰り返す。これは、例えばステアリング操作に対応するキーを押下する積算時間Ｔ及び離してからの積算時間Ｔに対する各操作の位置の変化量ｄＸはロジスティック曲線で求められ、積算時間Ｔが短いほど、変化量ｄＸは小さい。従って、仮想の車のふらつきが抑制され、ユーザが運転操作に感じる違和感をなくすことができる。これは、アクセル操作、ブレーキ操作についても同様である。
【０１１４】
このように、本実施例では、仮想の車の運転操作、即ちステアリング操作、アクセル操作、ブレーキ操作にそれぞれ割り当てられたキーボード１１の所定のキーをユーザが操作すると、演算部３２で操作されたキーに対応する変換曲線を選択し、所定の更新周期で、当該変換曲線から各操作に応じた変化量を求め、当該変化量で前回求めた位置を更新して今回の位置を求める。
これにより、特定の操作用デバイスがなくても、キーボード１１を用いて端末装置２から仮想の車の運転操作を行うことができる。
【０１１５】
＜第１実施例の変形例＞
上記第１実施例の変形例について以下に説明する。この変形例では、演算部３２に、さらに位置補正部４２４を備えた点が異なっており、その他の構成については共通しているので説明を省略する。
【０１１６】
図１７は、運転シミュレーション装置１の変形例の概略を示すブロック図である。演算部３２は、さらに位置補正部（ステアリング中立位置補正手段、ステアリング変化量補正手段）３２４を備えている。位置補正部３２４は、運転状態更新部３２２で求められるステアリングの位置が中立位置付近にある場合に、ステアリングの変化量を低減する補正、及び車速に応じてステアリングの変化量を低減する補正をそれぞれ行うものである。
【０１１７】
図１８は、図１１または図１２で求めたステアリングの位置currentＸを補正する方法を示すフローチャートである。本フローチャートに示した手順は、図１１のステップＳ１１０または図１２のステップＳ１２８に続いて実行される手順である。以下に、図１８に示すフローチャートに基づいて、詳しく説明する。
【０１１８】
ステップＳ１３１では、求めたステアリングの位置currentＸが、中立位置から左方向または右方向における最大舵角に所定率を乗算して求めた舵角ｒより大きいか否かを判定する。当該判定結果が偽（Ｎｏ）の場合には、ステアリングの位置currentＸが舵角ｒ以下であるとしてステップＳ１３２へ進む。ステップＳ１３２では、位置補正部３２４で図６に示したような補正曲線を曲線情報記憶部３３２から取得し、ステアリングの位置currentＸに対応する操舵角係数ｆstを求め、以下の式（１６）でステアリングの位置currentＸを補正する。
correctＸ＝currentＸ×ｆst      （１６）
【０１１９】
一方、上記ステップＳ１３１で真（Ｙｅｓ）と判定された場合には、ステップＳ１３３へ進む。ステップＳ１３３では、仮想の車の車速に応じてステアリングの位置を補正する。本ステップで用いるステアリングの位置は、上記ステップＳ１３１から本ステップを行う場合にはcurrentＸ、上記ステップＳ１３２から本ステップを行う場合にはcorrectＸであるが、本ステップではステアリングの位置をcurrentＸとして説明する。位置補正部３２４では、操作情報記憶部３３３から仮想の車の車速を取得し、曲線情報記憶部３３２から図７に示したような補正曲線を取得する。取得した車速から車速係数ｖを求め、この補正曲線から車速係数ｖに対応する補正係数ｆspを求め、以下の式（１７）でステアリングの位置を補正し、最終的なステアリングの位置finalＸを求める。
finalＸ＝currentＸ×ｆsp      （１７）
【０１２０】
このように、ステアリングの位置や車速に応じてステアリングの位置currentＸを補正することによって、車両のふらつきを抑制したり車速に応じて仮想の車の移動量を変化させたりすることができる。従って、ユーザが行うステアリングの操作性を違和感なく再現することができる。なお、この変形例では、ステップＳ１３１のステアリングの位置が中立位置にある場合の補正から行っているが、ステップＳ１３３に示した車速に応じたステアリングの位置の補正から行うようにしてもよい。また、ステップＳ１３１、Ｓ１３２と、ステップＳ１３３とのいずれか一方の補正を行うようにしてもよい。
【０１２１】
＜第２実施例＞
次に、本発明に係る第２実施例について説明する。本実施例の運転シミュレーション装置は、端末装置のみの構成とした点が相違しており、その他の構成については共通しているので説明は省略する。
【０１２２】
図１９は、本発明の第２実施例に係る運転シミュレーション装置５１の概略構成図である。運転シミュレーション装置５１は端末装置５２からなる。端末装置５２は、表示装置６０、キーボード６１、処理部７１、演算部７２、及び記憶部７３を備えている。処理部７１は、キー検出部７１１、動画再生部７１２、動画生成部７１３、画面生成部７１４、タイマ７１５、及び演算部７２を含む。
【０１２３】
キー検出部７１１は、キーボード６１のキー操作を検出し、演算部７２へキー操作情報を出力する。演算部７２は、タイマ７１５から所定の周期で信号が通知される度に、信号キー操作に応じて仮想の車の運転操作を処理する。動画生成部７１３は、演算部７２で処理された仮想の車の運転操作情報に基づいて動画を生成する。動画再生部７１２は、動画生成部７１３で生成された動画を再生して表示装置６０に表示する。画面生成部７１４は、ユーザの要求に応じ、記憶部７３から取得した情報に基づいて、パラメータを設定する設定画面を生成して表示装置６０に表示する。
【０１２４】
このように、本実施例では、キーボード６１のキー操作に応じて、所定の周期で変換曲線に基づき演算部７２で仮想の車の運転状態を求め、求めた運転状態を動画生成部７１３で生成し、表示装置６０に表示させる。これにより、上記第１実施例と同様の効果を得ることができる。
【０１２５】
以上で実施形態の説明を終えるが、本発明は上述した実施形態に限定されるものではない。
例えば、上記第１実施例の変形例で述べたように、上記第２実施例でも上記第１実施例と同様にステアリングの位置補正を行うようにしてもよい。
【０１２６】
また、上記第１実施例では、ステアリングの操作に対応するキーを特定して設定した変数directionを用いて変数ｄＸを求めたが、ステアリングの右方向への操作、左方向への操作にそれぞれ対応した変換曲線を予め準備し、その変換曲線を上述したステップＳ１５、Ｓ１６、Ｓ２４、Ｓ２５に代えて選択するようにしてもよい。
また、上記各実施例のステアリング操作、アクセル操作、ブレーキ操作を行うためのプログラムの処理を図１０〜図１６、図１８にフローチャートで示したが、このプログラムを格納した記憶媒体も本発明の対象となり得る。
【符号の説明】
【０１２７】
１、５１  運転シミュレーション装置
２、５２  端末装置
３  サーバ装置
３０  サーバ通信部（動画送信手段）
３１１、７１２  動画生成部
３１３、７１５  タイマ
３２２、７２２  運転状態更新部（運転操作状態更新手段）
３２３、７２３  操作時間更新部（継続操作時間更新手段、継続非操作時間更新手段）
３３３、７３３  操作情報記憶部（運転操作状態記憶手段）
３３４、７３４  操作時間情報記憶部（継続操作時間記憶手段、継続非操作時間記憶手段）
【図１】
0005149426.tif 000003
【図２】
0005149426.tif 000004
【図３】
0005149426.tif 000005
【図６】
0005149426.tif 000006
【図７】
0005149426.tif 000007
【図１０−１】
0005149426.tif 000008
【図１０−２】
0005149426.tif 000009
【図１１】
0005149426.tif 000010
【図１２】
0005149426.tif 000011
【図１３】
0005149426.tif 000012
【図１４】
0005149426.tif 000013
【図１５】
0005149426.tif 000014
【図１６】
0005149426.tif 000015
【図１７】
0005149426.tif 000016
【図１８】
0005149426.tif 000017
【図１９】
0005149426.tif 000018
【図４】
0005149426.tif 000019
【図５】
0005149426.tif 000020
【図８】
0005149426.tif 000021
【図９】
0005149426.tif 000022