(57)【要約】【課題】設計変更された部品データが三次元モデルに複数含まれている場合であっても、当該部品データを仮想空間上で閲覧しやすくすること可能な仕組みを提供すること。【解決手段】複数の部品データから構成される三次元モデルが配置される仮想空間を提示するための仮想空間制御装置において、設計変更前の三次元モデルを構成する複数の部品データと、設計変更後の三次元モデルを構成する複数の部品データとを比較し、設計変更がなされた部品データを特定する。そして、三次元モデルを仮想空間に配置し、仮想空間におけるユーザの現在位置から所定範囲内に存在する、特定された部品データの表示状態を、配置された三次元モデルにおいて識別可能な状態に設定する。【選択図】図１０
2018018362.tif 000002
【特許請求の範囲】
【請求項１】
複数の部品データから構成される三次元モデルが配置される仮想空間を提示するための仮想空間制御装置であって、
設計変更前の前記三次元モデルを構成する複数の部品データと、設計変更後の前記三次元モデルを構成する複数の部品データとを比較し、設計変更がなされた部品データを特定する特定手段と、
前記三次元モデルを前記仮想空間に配置する配置手段と、
前記仮想空間におけるユーザの現在位置から所定範囲内に存在する前記特定手段で特定された部品データの表示状態を、前記配置手段で配置された三次元モデルにおいて識別可能な状態に設定する設定手段と
を備えることを特徴とする仮想空間制御装置。
【請求項２】
前記設定手段は、設計変更の内容に応じた表示状態を前記特定手段で特定された部品データに対して設定することを特徴とする請求項１に記載の仮想空間制御装置。
【請求項３】
前記設定手段は、前記仮想空間におけるユーザの現在位置から所定範囲内に存在し、かつ当該ユーザが閲覧可能な範囲内に存在する前記特定手段で特定された部品データの表示状態を、前記配置手段で配置された三次元モデルにおいて識別可能な状態に設定することを特徴とする請求項１または２に記載の仮想空間制御装置。
【請求項４】
前記設定手段で表示状態の設定がなされた部品データに対する選択を受け付ける選択受付手段
を更に備え、
前記配置手段は、設計変更前後の前記選択受付手段で選択を受け付けた部品データを前記仮想空間に配置することを特徴とする請求項１乃至３のいずれか１項に記載の仮想空間制御装置。
【請求項５】
前記配置手段は、設計変更前後の前記選択受付手段で選択を受け付けた部品データをそれぞれ重畳して前記仮想空間に配置することを特徴とする請求項４に記載の仮想空間制御装置。
【請求項６】
複数の部品データから構成される三次元モデルが配置される仮想空間を提示するための仮想空間制御装置の制御方法であって、
前記仮想空間制御装置の特定手段が、設計変更前の前記三次元モデルを構成する複数の部品データと、設計変更後の前記三次元モデルを構成する複数の部品データとを比較し、設計変更がなされた部品データを特定する特定ステップと、
前記仮想空間制御装置の配置手段が、前記三次元モデルを前記仮想空間に配置する配置ステップと、
前記仮想空間制御装置の設定手段が、前記仮想空間におけるユーザの現在位置から所定範囲内に存在する前記特定ステップで特定された部品データの表示状態を、前記配置ステップで配置された三次元モデルにおいて識別可能な状態に設定する設定ステップと
を備えることを特徴とする仮想空間制御装置の制御方法。
【請求項７】
複数の部品データから構成される三次元モデルが配置される仮想空間を提示するための仮想空間制御装置の制御方法を実行可能なプログラムであって、
前記仮想空間制御装置を、
設計変更前の前記三次元モデルを構成する複数の部品データと、設計変更後の前記三次元モデルを構成する複数の部品データとを比較し、設計変更がなされた部品データを特定する特定手段と、
前記三次元モデルを前記仮想空間に配置する配置手段と、
前記仮想空間におけるユーザの現在位置から所定範囲内に存在する前記特定手段で特定された部品データの表示状態を、前記配置手段で配置された三次元モデルにおいて識別可能な状態に設定する設定手段
として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、設計変更された部品データが三次元モデルに複数含まれている場合であっても、当該部品データを仮想空間上で閲覧しやすくすること可能な仮想空間制御装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
従来、組立系製造業では業務のフロントローディングが行われている。フロントローディングは、後工程で発生する可能性のある問題を初期工程で検討することにより、品質向上を目指す取り組みである。例えば、設計部門で作成中のＣＡＤデータを三次元ＣＡＤソフトウェアで表示し、組立部門や品質保証部門といった下流部門が部品の干渉チェックをシミュレーションしている。
【０００３】
しかしながら、設計部門から取得するＣＡＤデータは未完成である。設計部門と下流部門とが協力して製品設計を進めていくため、設計部門と下流部門との間でＣＡＤデータのやり取りが何度も行われる。つまり、下流部門は設計部門が改善したＣＡＤデータを何度も取得し、その都度シミュレーション等を行う必要がある。
【０００４】
その際に、設計部門から下流部門に対して設計変更の内容をきちんと伝えることが重要であるが、設計変更した箇所が多いと、設計変更箇所を伝え忘れてしまう可能性がある。そのため、下流部門は前回取得したＣＡＤデータから何がどのように変更されたのかを、設計変更前のＣＡＤデータと設計変更後のＣＡＤデータとを比較して、確認しなければならない。
【０００５】
そこで特許文献１には、設計変更前のＣＡＤデータと設計変更後のＣＡＤデータとをそれぞれ一定形状の複数のエリアに分割し、そのエリアごとに体積を算出して設計変更前後で比較することにより、形状が変更された箇所を特定する仕組みが開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平１１−３４５２５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の仕組みや三次元ＣＡＤソフトウェアの従来機能により、設計変更された箇所を自動的に特定する仕組みが存在するため、下流部門の作業者は容易に設計変更された箇所を確認することができる。
【０００８】
設計変更された箇所をユーザに確認させる方法としては、組立品のＣＡＤデータを表示し、そのＣＡＤデータの中で設計変更された箇所を色づけする等して識別表示する方法が考えられる。しかしながら、設計変更された箇所が多数存在すると、それらがすべて識別表示されてしまうので、ユーザは視認しにくいという問題があった。
【０００９】
本発明の目的は、設計変更された部品データが三次元モデルに複数含まれている場合であっても、当該部品データを仮想空間上で閲覧しやすくすること可能な仕組みを提供することである。
【課題を解決するための手段】
【００１０】
上記の目的を達成するために本発明の仮想空間制御装置は、複数の部品データから構成される三次元モデルが配置される仮想空間を提示するための仮想空間制御装置であって、設計変更前の前記三次元モデルを構成する複数の部品データと、設計変更後の前記三次元モデルを構成する複数の部品データとを比較し、設計変更がなされた部品データを特定する特定手段と、前記三次元モデルを前記仮想空間に配置する配置手段と、前記仮想空間におけるユーザの現在位置から所定範囲内に存在する前記特定手段で特定された部品データの表示状態を、前記配置手段で配置された三次元モデルにおいて識別可能な状態に設定する設定手段とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、設計変更された部品データが三次元モデルに複数含まれている場合であっても、当該部品データを仮想空間上で閲覧しやすくすることが可能となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態における情報処理システムのシステム構成の一例を示す図である。
【図２】情報処理装置１０１とＨＭＤ１０２のハードウェア構成の一例を示す図である。
【図３】情報処理装置１０１の機能構成の一例を示す図である。
【図４】全体的な処理の流れの一例を示すフローチャートである。
【図５】差分特定処理の詳細な処理の流れの一例を示すフローチャートである。
【図６】旧組立品データと新組立品データの参照構造と、比較表６１０のデータ構造の一例とを示す図である。
【図７】差分リスト７００のテーブル構成の一例を示す図である。
【図８】ＨＭＤ１０２を装着したユーザと、仮想空間に配置された新組立品データの三次元モデルとを示す図である。
【図９】差分データ識別処理の詳細な処理の流れの一例を示すフローチャートである。
【図１０】ＨＭＤ１０２を装着したユーザから所定範囲内に存在する、設計変更された差分データを識別表示した場合の一例を示す図である。
【図１１】差分データ配置処理の詳細な処理の流れの一例を示すフローチャートである。
【図１２】設計変更された差分データを選択した場合の一例を示す図である。
【図１３】設計変更された差分データを選択した場合の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、図面を参照しながら、本発明の実施形態について説明する。
【００１４】
図１は、本実施形態における情報処理システムのシステム構成の一例を示す図である。図１に示す情報処理システムは、複合現実感技術（以下、ＭＲ技術という。）を用いた、ユーザに仮想空間を閲覧させるためのシステムである。情報処理システムは、情報処理装置１０１にＨＭＤ１０２が相互にデータ通信可能に接続されている。情報処理装置１０１とＨＭＤ１０２との接続は、有線接続であってもよいし、無線接続であってもよい。尚、図１のシステム上に接続される各種端末の構成は一例であり、用途や目的に応じて様々な構成例がある。例えば、本実施形態はＭＲ技術を前提として説明を行うが、仮想現実（Ｖｉｒｔｕａｌ  Ｒｅａｌｉｔｙ）や拡張現実（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）といった技術を用いることでも実現可能である。
【００１５】
情報処理装置１０１（仮想空間制御装置）は、汎用的なコンピュータである。情報処理装置１０１は、ＨＭＤ１０２で撮影（撮像）された現実空間の画像（以下、現実空間画像という。）と、情報処理装置１０１で生成された仮想空間の画像（以下、仮想空間画像という。）とを重畳する。こうして生成された画像（以下、複合現実画像という。）を、ＨＭＤ１０２に送信する。尚、ＭＲ技術に関しては従来技術を用いるため、詳細な説明は省略する。また、情報処理装置１０１は、パーソナルコンピュータであってもよいし、サーバのような大型のコンピュータであってもよい。更には、携帯電話やタブレット端末といった携帯端末であってもよい。コンピュータの種類は特に問わない。
【００１６】
ＨＭＤ１０２は、ヘッドマウントディスプレイである。ＨＭＤ１０２は、ユーザの頭部に装着する装置であり、右目用と左目用のビデオカメラと、右目用と左目用のディスプレイを備えている。ＨＭＤ１０２は、ＨＭＤ１０２のビデオカメラで撮影された現実空間画像を情報処理装置１０１に送信する。そして、情報処理装置１０１から複合現実画像を受信し、ディスプレイに表示する。ＨＭＤ１０２では、右目用と左目用のディスプレイを設けているので、視差によって立体感を得ることができる。尚、ＨＭＤ１０２で撮影する現実空間画像とＨＭＤ１０２で表示する複合現実画像は、動画（映像）が望ましいが、所定の間隔で撮影された静止画であってもよい。また、スマートフォンのようにディスプレイとビデオカメラがハードウェアの前面と背面に設置されている装置を、ヘッドマウントディスプレイの代用としてもよい。
【００１７】
本実施形態では、情報処理装置１０１とＨＭＤ１０２とを含むシステムとして説明を行うが、情報処理装置１０１とＨＭＤ１０２とが一体化したデバイス（仮想空間制御装置）であってもよい。すなわち、ＨＭＤ１０２に情報処理装置１０１の各種ハードウェアを搭載し、ＨＭＤ１０２だけで動作するようにしてもよい。
【００１８】
また、情報処理装置１０１には赤外線カメラ１０４が接続されている。赤外線カメラ１０４は、赤外線を用いた光学式のセンサである。赤外線カメラ１０４は、現実空間に赤外線を照射し、現実空間の物体で反射した赤外線を撮影することにより、赤外線カメラ１０４が定義する座標系における、現実空間の物体の位置及び姿勢を特定する。この赤外線カメラ１０４を用いて、現実空間におけるＨＭＤ１０２（すなわちユーザ）の位置及び姿勢（向きや傾き、視線の方向等。以下、同じ。）を特定する。ＨＭＤ１０２には、オプティカルマーカ１０３という赤外線を反射する物体を備えており、赤外線カメラ１０４はこのオプティカルマーカ１０３で反射した赤外線を撮影することで、ＨＭＤ１０２の位置及び姿勢を特定できるようになっている。ユーザがどのような位置や姿勢であっても、当該ユーザが装着するＨＭＤ１０２のオプティカルマーカ１０３を撮影または検知できるように、情報処理システムでは赤外線カメラ１０４を複数台設置することが望ましい。また、位置及び姿勢を特定可能なＨＭＤ１０２は、赤外線カメラ１０４の撮影範囲に存在するものとして説明を行う。
【００１９】
尚、本実施形態においては、現実空間におけるＨＭＤ１０２の位置及び姿勢を特定するために、赤外線カメラ１０４を用いるが、これらの現実空間における位置及び姿勢を特定できるのであれば、これに限らない。例えば、磁気センサを用いてもよいし、ＨＭＤ１０２が撮影した画像を解析して位置及び姿勢を特定してもよい。
【００２０】
本実施形態においては、ＨＭＤ１０２を装着したユーザは、ターゲットマーカ１０５を用いて各種操作を行う。ターゲットマーカ１０５は、二次元マーカから構成される。情報処理装置１０１はこの二次元マーカの傾きやＨＭＤ１０２との距離を画像認識により特定することにより、現実空間上のターゲットマーカ１０５が仮想空間上においてはどういった位置・姿勢であるのかを特定することができる。尚、二次元マーカの種類は特に問わないが、画像認識により二次元マーカの形状が取得しやすい種類である方が望ましい。
【００２１】
図２は、情報処理装置１０１とＨＭＤ１０２の各ハードウェア構成の一例を示す図である。
【００２２】
ＣＰＵ２０１は、システムバス２０４に接続される各デバイスやコントローラを統括的に制御する。
【００２３】
また、ＲＯＭ２０２あるいは外部メモリ２１１には、ＣＰＵ２０１の制御プログラムであるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  ／  ＯｕｔｐｕｔＳｙｓｔｅｍ）やオペレーティングシステムが記憶されている。更には、情報処理装置１０１の実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。ＲＡＭ２０３は、ＣＰＵ２０１の主メモリ、ワークエリア等として機能する。
【００２４】
ＣＰＵ２０１は、処理の実行に際して必要なプログラム等をＲＡＭ２０３にロードして、プログラムを実行することで各種動作を実現するものである。
【００２５】
また、入力コントローラ（入力Ｃ）２０５は、キーボードやマウス等のポインティングデバイス（入力デバイス２１０）からの入力を制御する。
【００２６】
情報処理装置１０１のビデオコントローラ（ＶＣ）２０６は、ＨＭＤ１０２が備える右目・左目ディスプレイ２２２やディスプレイ２１２等の表示器への表示を制御する。右目・左目ディスプレイ２２２に対しては、例えば外部出力端子（例えば、Ｄｉｇｉｔａｌ  Ｖｉｓｕａｌ  Ｉｎｔｅｒｆａｃｅ）を用いて出力される。また、右目・左目ディスプレイ２２２は、右目用のディスプレイと左目用のディスプレイとから構成されている。また、ディスプレイ２１２は、液晶ディスプレイ等であり、右目・左目ディスプレイ２２２と同様の表示、または仮想空間を操作するためのＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）が表示される。
【００２７】
メモリコントローラ（ＭＣ）２０７は、ブートプログラム、ブラウザソフトウエア、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する外部メモリ２１１（記憶手段）へのアクセスを制御する。外部メモリ２１１は、例えばハードディスク（ＨＤ）やフレキシブルディスク（ＦＤ）或いはＰＣＭＣＩＡカードスロットにアダプタを介して接続されるカード型メモリ等がある。
【００２８】
通信Ｉ／Ｆコントローラ（通信Ｉ／ＦＣ）２０８は、ネットワークを介して、外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、ＴＣＰ／ＩＰを用いたインターネット通信等が可能である。特に、情報処理装置１０１の通信Ｉ／Ｆコントローラ２０８は、赤外線カメラ１０４との通信も制御する。
【００２９】
情報処理装置１０１の汎用バス２０９は、情報処理装置１０１に接続されるＨＭＤ１０２の右目・左目ビデオカメラ２２１で撮影した画像を取り込むために使用される。右目・左目ビデオカメラ２２１からは、外部入力端子（例えば、ＩＥＥＥ１３９４端子）を用いて入力される。また、右目・左目ビデオカメラ２２１は、右目用のビデオカメラと左目用のビデオカメラとから構成されている。
【００３０】
尚、ＣＰＵ２０１は、例えばＲＡＭ２０３内の表示情報用領域へアウトラインフォントの展開（ラスタライズ）処理を実行することにより、ディスプレイ上での表示を可能としている。また、ＣＰＵ２０１は、ディスプレイ上の不図示のマウスカーソル等でのユーザ指示を可能とする。
【００３１】
本発明の情報処理装置１０１が後述する各種処理を実行するために用いられる各種プログラム等は外部メモリ２１１に記録されており、必要に応じてＲＡＭ２０３にロードされることによりＣＰＵ２０１によって実行されるものである。さらに、本発明に係わるプログラムが用いる定義ファイルや各種情報テーブルは外部メモリ２１１に格納されている。
【００３２】
図３は、情報処理装置１０１の機能構成を示す機能構成図である。尚、図３の情報処理装置１０１の機能構成は一例であり、用途や目的に応じて様々な構成例がある。
【００３３】
情報処理装置１０１は機能部として、通信制御部３０１、位置・姿勢特定部３０２、現実空間画像取得部３０３、仮想空間生成部３０４、三次元モデル制御部３０５、仮想空間画像取得部３０６、複合現実画像生成部３０７を備える。更に情報処理装置１０１は機能部として、表示制御部３０８、データ管理部３０９、変数制御部３１０、データ比較部３１１、操作受付部３１２、距離算出部３１３を備える。
【００３４】
通信制御部３０１は、情報処理装置１０１と通信可能なＨＭＤ１０２と赤外線カメラ１０４との各種情報の送受信を行う機能部である。通信制御部３０１は、前述したビデオコントローラ２０６、通信Ｉ／Ｆコントローラ２０８、汎用バス２０９等を通じてこれらの装置と情報の送受信を行う。
【００３５】
位置・姿勢特定部３０２は、赤外線カメラ１０４から取得したＨＭＤ１０２の現実空間における位置及び姿勢（向き）を示す情報に基づいて、仮想空間における位置及び姿勢を特定するための機能部である。本実施形態では、ＨＭＤ１０２にオプティカルマーカ１０３が装着されているため、現実空間におけるオプティカルマーカ１０３の位置及び姿勢をまず取得する。そして、現実空間の座標系（赤外線カメラ１０４の座標系）と仮想空間の座標系とはあらかじめキャリブレーション（位置合わせ）がなされているので、これに基づいて現実空間における位置及び姿勢に対応する仮想空間上の位置及び姿勢を特定する。尚、現実空間画像取得部３０３で右目・左目ビデオカメラ２２１から取得した右目用の現実空間画像と左目用の現実空間画像とを用いて、三角測量等の方法により、現実空間の物体の位置及び姿勢を特定してもよい。
【００３６】
また、位置・姿勢特定部３０２は、現実空間画像取得部３０３が取得した現実空間画像を解析して、現実空間画像に写る二次元マーカの位置や形状を特定し、現実空間におけるターゲットマーカの位置及び姿勢を特定することも可能である。また、位置・姿勢特定部３０２は、この現実空間画像におけるターゲットマーカの位置及び姿勢から、仮想空間における位置及び姿勢も特定する。
【００３７】
現実空間画像取得部３０３は、ＨＭＤ１０２の右目・左目ビデオカメラ２２１で撮影された現実空間画像を取得する機能部である。
【００３８】
仮想空間生成部３０４は、情報処理装置１０１の外部メモリ２１１に記憶されている情報に基づいて仮想空間を生成する機能部である。仮想空間は情報処理装置１０１の内部に生成される仮想的な空間であるので、その空間の形や大きさに関する情報が外部メモリ２１１に記憶されており、これに基づいて仮想空間を生成する。仮想空間には三次元モデルを配置可能である。三次元モデルは三次元モデル制御部３０５によって配置される。
【００３９】
三次元モデル制御部３０５は、三次元モデルを仮想空間に配置するための機能部である。仮想空間が生成された場合には、あらかじめ定義された位置及び姿勢で仮想空間上に三次元モデルを配置する。必要に応じて、配置された三次元モデルを異なる位置及び姿勢で再配置（移動）する。また、三次元モデル制御部３０５は、位置・姿勢特定部３０２で特定した、仮想空間におけるターゲットマーカ１０５の位置及び姿勢に基づいて、三次元モデルを仮想空間上に配置することができる。すなわち、複合現実画像を生成したときに、ターゲットマーカ１０５に重畳させるようにして三次元モデルを配置させることが可能である。更には、三次元モデル制御部３０５は、仮想空間に配置した三次元モデルの表示状態（表示形態）を変更することができる。例えば、三次元モデルの色を変更したり、形状を変更したりすることができる。
【００４０】
仮想空間画像取得部３０６は、仮想空間生成部３０４で生成した仮想空間の画像を取得する機能部である。仮想空間画像取得部３０６が仮想空間の画像を取得する場合には、位置・姿勢特定部３０２で特定した仮想空間におけるＨＭＤ１０２の位置及び姿勢に基づいて仮想空間上に視点を設定する。そして、当該視点から見た場合の仮想空間画像を生成し、これを取得する。この視点に仮想的なカメラを設置し、仮想空間を撮像するようにすればよい。すなわちレンダリングするということである
【００４１】
複合現実画像生成部３０７は、現実空間画像取得部３０３で取得した現実空間画像に仮想空間画像取得部３０６で取得した仮想空間画像を重畳することにより、複合現実画像を生成する機能部である。
【００４２】
表示制御部３０８は、情報処理装置１０１に接続されたＨＭＤ１０２の右目・左目ディスプレイ２２２や情報処理装置１０１に接続されたディスプレイ２１２における各種情報の表示制御を行う機能部である。特に、複合現実画像生成部３０７で生成された複合現実画像をＨＭＤ１０２の右目・左目ディスプレイ２２２に表示させる機能を有する。
【００４３】
データ管理部３０９は、情報処理装置１０１のＲＡＭ２０３や外部メモリ２１１等の記憶部に記憶されるデータを管理するための機能部である。必要に応じて、データの追加・更新・削除等を行う。
【００４４】
変数制御部３１０は、情報処理装置１０１が実行するプログラムで利用する変数の制御を行うための機能部である。変数の宣言や代入等の処理を実行する。
【００４５】
データ比較部３１１は、外部メモリ２１１等に記憶された複数の三次元モデルを比較し、その差分を特定するための機能部である。三次元モデルは、自身のポリゴン数や位置・姿勢の情報を有しているので、この情報を用いて比較することにより差分があるか否かを特定する。また、従来技術の通り、体積や面積による比較や画像処理による比較であってもよい。
【００４６】
操作受付部３１２は、三次元モデル制御部３０５によって配置された三次元モデルに対する選択操作を受け付けるための機能部である。仮想空間上に配置された三次元モデルに対する操作は、ターゲットマーカ１０５を用いて行う。ターゲットマーカ１０５の仮想空間における位置及び姿勢が位置・姿勢特定部３０２によって特定されるので、この位置及び姿勢に基づいて、ターゲットマーカ１０５の上部にカーソルオブジェクトを配置する。このカーソルオブジェクトと三次元モデルとが一定時間接触した場合に、三次元モデルが選択されたと判断する。三次元モデルに対する選択操作の方法はこれに限らず、ＨＭＤ１０２を装着するユーザの指によって選択されてもよいし、情報処理装置１０１のディスプレイ２１２に操作画面を表示して入力デバイス２１０によって選択操作を受け付けてもよい。
【００４７】
距離算出部３１３は、仮想空間上の二点間の距離を算出するための機能部である。三平方の定理等を用いて、仮想空間上の座標系における二点間の距離を算出する。
【００４８】
次に、本発明の実施形態における全体的な処理の流れの一例について、図４に示すフローチャートを用いて説明する。以下説明する、Ｓ４０１乃至Ｓ４１１の各ステップは、情報処理装置１０１のＣＰＵ２０１が各機能部を動作することにより実行される処理である。
【００４９】
ステップＳ４０１では、情報処理装置１０１は、設計変更前の組立品と設計変更後の組立品との差分を特定するための処理を実行する。図５に差分特定処理の詳細な処理の流れを示す。
【００５０】
図５は、差分特定処理の詳細な処理の流れの一例を示すフローチャートである。以下説明する、Ｓ５０１乃至Ｓ５０９の各ステップは、情報処理装置１０１のＣＰＵ２０１が各機能部を動作することにより実行される処理である。
【００５１】
ステップＳ５０１では、情報処理装置１０１のデータ管理部３０９は、外部メモリ２１１に記憶されている設計変更前の組立品データ（以下、旧組立品データという。）と、設計変更後の組立品データ（以下、新組立品データという。）とを取得する。ユーザはあらかじめこれらのデータを外部メモリ２１１に記憶しておく。そして、データ管理部３０９は、ユーザから指定された旧組立品データと新組立品データとを取得する。本実施形態において組立品データとは、ＣＡＤデータのうちのアセンブリデータである。
【００５２】
図６（ａ）では、旧組立品データと新組立品データ（以下、これらを新旧組立品データという。）の参照構造の一例を、それぞれ６０１と６０２に示す。新旧組立品データはトップアセンブリであるので、複数の部品やサブアセンブリから構成されている。例えば、旧組立品データＡは、部品データＢと部品データＣとアセンブリデータＤから構成されており、更にサブアセンブリであるアセンブリデータＤは、部品データＥ・Ｆ・Ｇから構成されている。以下、アセンブリデータの参照先の部品やサブアセンブリを参照先データと称する。
【００５３】
ステップＳ５０２では、情報処理装置１０１のデータ管理部３０９は、ステップＳ５０１で取得した新旧組立品データの参照先である参照先データに関する情報を取得し、図６（ｂ）に示すような比較表６１０を作成する。比較表６１０は、旧参照先データ名６１１と新参照先データ名６１２を備えており、それぞれ比較元と比較先の参照先データの名称を示している。旧組立品データの参照先データに対応する新組立品データの参照先データがあれば同じ行に並べて格納し、どちらか一方にしかない参照先データの場合には、当該参照先データが存在しない組立品データの項目は空欄にする。このようにして、図６（ａ）に示す旧組立品データＡと新組立品データＡの比較表６１０を作成した結果が図６（ｂ）である。
【００５４】
ステップＳ５０３では、情報処理装置１０１のデータ管理部３０９は、図７に示すような差分リスト７００を生成する。ステップＳ５０３の処理では、空の状態の差分リスト７００を生成する。
【００５５】
図７の差分リスト７００は、設計変更前後でどのような差分があるのかを示すためのデータテーブルである。差分リスト７００は、差分データ名７０１、追加フラグ７０２、形状変更フラグ７０３、位置姿勢変更フラグ７０４、削除フラグ７０５を備える。データテーブルのテーブル構成はこれに限らない。
【００５６】
差分データ名７０１は、設計変更前後で差分のあった参照先データの名称が格納される項目である。本実施形態でいう差分とは、設計変更前後の相違点のことをいう。例えば、旧組立品データに対する新たな参照先データの追加、参照先データの形状変更、参照先データの位置または姿勢の変更、旧組立品データからの参照先データの削除を指す。追加フラグ７０２、形状変更フラグ７０３、位置姿勢変更フラグ７０４、削除フラグ７０５は、これらの差分があった場合にフラグが立てられる項目である。
【００５７】
図５の説明に戻る。ステップＳ５０４では、情報処理装置１０１の変数制御部３１０は、カウンタの変数ｉを宣言し、初期値として０を代入する。そして、ステップＳ５０５では、情報処理装置１０１の変数制御部３１０は、変数ｉをインクリメントする。
【００５８】
ステップＳ５０６では、情報処理装置１０１のデータ管理部３０９は、比較表６１０のレコードのうち、ｉ行目のレコードの参照先データを外部メモリ２１１等から取得し、これを参照する。ここで取得するのは、旧参照先データ名６１１が示す、旧組立品データを構成する参照先データと、新参照先データ名６１２が示す、新組立品データを構成する参照先データである。旧参照先データ名６１１と新参照先データ名６１２のいずれかが空欄の場合には、名称が入力されている参照先データのみ取得する。
【００５９】
ステップＳ５０７では、情報処理装置１０１のデータ比較部３１１は、ステップＳ５０６で取得した、旧組立品データを構成する参照先データと、新組立品データを構成する参照先データとを比較する。ここでいう比較は、新たに参照先データが追加されたか、参照先データの形状が変更されたか、参照先データの位置または姿勢が変更されたか、参照先データが削除されたか等を、ステップＳ５０６で取得した参照先データ同士を比較することで特定する。換言すれば、設計変更前の三次元モデルを構成する複数の部品データと、設計変更後の三次元モデルを構成する複数の部品データとを比較し、設計変更がなされた部品データを特定するということである（特定手段）。
【００６０】
例えば、旧組立品データには存在しないが、新組立品データに存在する参照先データの場合（ステップＳ５０６で旧組立品データを構成する参照先データが取得できなかった場合）には、新たに追加された参照先データであると特定する。ステップＳ５０６で取得した旧組立品データの参照先データが有するポリゴン数と新組立品データの参照先データが有するポリゴン数とが一致しない場合には、形状変更がなされた参照先データであると特定する。一致不一致の判定はポリゴン数に限らず、体積や面積といった別の要素を用いた比較によってもよい。また、旧組立品データの参照先データの親であるアセンブリデータと新組立品データの参照先データの親であるアセンブリデータとが示すそれぞれの位置または姿勢を示す情報が一致しない場合、位置または姿勢が変更された参照先データであると特定する。旧組立品データには存在するが新組立品データには存在しない参照先データの場合（ステップＳ５０６で新組立品データを構成する参照先データが取得できなかった場合）には、削除された参照先データであると特定する。このいずれにも該当しないのであれば、取得した参照先データについては設計変更がなかったと特定する。
【００６１】
このように比較した結果、ステップＳ５０６で参照した、新旧組立品データにおける参照先データに設計変更があったか、すなわち差分があるか否かを判定する。差分がある（追加、形状変更、位置または姿勢変更、削除があった）と判定した場合には、ステップＳ５０８に処理を進める。差分がないと判定した場合には、ステップＳ５０９に処理を進める。
【００６２】
ステップＳ５０８では、情報処理装置１０１のデータ管理部３０９は、ステップＳ５０３で生成された差分リスト７００に新たなレコードを追加し、ステップＳ５０６で参照した参照先データの名称を差分データ名７０１に追加する。そして、その差分内容に対応するフラグに“１”を格納する。つまりフラグを立てる。それ以外のフラグには“０”を格納する。このようにすることで、設計変更のあった参照先データに関する情報を差分リスト７００に追加していく。すべての参照先データに対してステップＳ５０８を実行した結果が、図７に示す差分リスト７００である。以下、設計変更のあった参照先データのことを、差分データと称する。
【００６３】
ステップＳ５０９では、情報処理装置１０１のデータ管理部３０９は、比較表６１０のｉ行目が最終行（最終レコード）であるか否かを判定する。最終行であると判定した場合には、差分特定処理を終了し、ステップＳ４０１の次のステップに処理を進める。最終行でないと判定した場合には、ステップＳ５０５に処理を戻す。
【００６４】
このようにして、旧組立品データを構成する複数の参照先データと、新組立品データを構成する複数の参照先データとを比較し、設計変更がなされた参照先データとその変更内容を特定する。
【００６５】
図４に説明を戻す。ステップＳ４０１が完了すると、ステップＳ４０２では、情報処理装置１０１の仮想空間生成部３０４は、外部メモリ２１１に記憶された仮想空間情報を取得する。仮想空間情報とは、仮想空間を生成するための各種情報のことである。具体的には、仮想空間の形やその大きさ、また配置する三次元モデルやその配置場所といった、仮想空間を形作るために必要な情報である。そして、仮想空間生成部３０４は、取得した仮想空間情報を用いて、仮想空間を生成する。生成される仮想空間は、仮想空間情報が示す形や大きさの仮想空間であり、更には仮想空間情報が示す三次元モデルが仮想空間上に配置される。本実施形態では、仮想空間生成部３０４は、ステップＳ５０１で取得した新組立品データを仮想空間上に配置する（配置手段）。新組立品データは、前述した通りアセンブリデータであるので、参照先データを三次元モデルとして表示し、当該アセンブリデータに定義された位置や姿勢で配置する。これにより新組立品データを示す三次元モデルが仮想空間上に配置される。
【００６６】
尚、本実施形態では新組立品データを仮想空間に配置し、新組立品データを構成する部品データに対する表示制御や選択の受付を行うものとして説明を行うが、旧組立品データを仮想空間に配置してもよい。この場合は、旧組立品データを構成する部品データに対する表示制御や選択の受付を行うことになる。
【００６７】
図８は、ＨＭＤ１０２を装着するユーザの目の前に新組立品データの三次元モデル８００が配置された様子を示す図である。ＨＭＤ１０２を装着するユーザは現実空間に存在し、新組立品データの三次元モデル８００は仮想空間に配置されるので、客観的に見たときにこれらは同一の空間に存在しないが、当該ユーザから見たときには図８のような状態となる。ユーザと三次元モデル８００との位置関係をわかりやすく説明するために、以下、図１０、図１２、図１３においても同様の図を用いて説明する。
【００６８】
ステップＳ４０３では、情報処理装置１０１の現実空間画像取得部３０３は、ＨＭＤ１０２の右目・左目ビデオカメラ２２１から現実空間画像を取得し、これらをＲＡＭ２０３に記憶する。
【００６９】
ステップＳ４０４では、情報処理装置１０１の位置・姿勢特定部３０２は、ＨＭＤ１０２の現実空間における位置及び姿勢を示す情報を取得する。前述した通り、ＨＭＤ１０２が備えるオプティカルマーカ１０３を赤外線カメラ１０４が検知することで特定した位置及び姿勢を示す情報を、赤外線カメラ１０４から取得する。そして、位置・姿勢特定部３０２は、取得した位置及び姿勢を示す情報から仮想空間における位置及び姿勢を特定する。特定した位置及び姿勢は、ＨＭＤ位置・姿勢情報としてＲＡＭ２０３に記憶する。この情報は現在のフレームにおけるＨＭＤ１０２の位置及び姿勢であるので、フレームが切り替わるごとにこの情報が更新される。
【００７０】
ステップＳ４０５では、情報処理装置１０１の位置・姿勢特定部３０２は、ターゲットマーカ１０５の現実空間における位置及び姿勢を示す情報を特定する。具体的には、前述した通り、ターゲットマーカ１０５をＨＭＤ１０２が撮影した現実空間画像から検出する。そして、その現実空間画像に写るターゲットマーカ１０５の形状や右目・左目ビデオカメラ２２１で取得した２枚の現実空間画像から特定される視差によって、ターゲットマーカ１０５の現実空間における位置及び姿勢を推定する。そして、この現実空間における位置及び姿勢から仮想空間における位置及び姿勢を特定する。換言すれば、現実空間においてＨＭＤ１０２を装着するユーザから指定された位置に対応する仮想空間上の位置を特定するということである。特定した位置及び姿勢は、ターゲットマーカ位置・姿勢情報としてＲＡＭ２０３に記憶する。この情報は現在のフレームにおけるＨＭＤ１０２の位置及び姿勢であるので、フレームが切り替わるごとにこの情報が更新される。
【００７１】
ステップＳ４０６では、情報処理装置１０１は、ユーザの近傍に存在する差分データの三次元モデルを識別表示するための処理を実行する。図９に差分データ識別処理の詳細な処理の流れを示す。
【００７２】
図９は、差分データ識別処理の詳細な処理の流れの一例を示すフローチャートである。以下説明する、Ｓ９０１乃至Ｓ９０９の各ステップは、情報処理装置１０１のＣＰＵ２０１が各機能部を動作することにより実行される処理である。
【００７３】
ステップＳ９０１では、情報処理装置１０１の変数制御部３１０は、カウンタの変数ｉを宣言し、初期値として０を代入する。そして、ステップＳ９０２では、情報処理装置１０１の変数制御部３１０は、変数ｉをインクリメントする。
【００７４】
ステップＳ９０３では、情報処理装置１０１のデータ管理部３０９は、差分リスト７００のレコードのうち、ｉ行目のレコードの差分データを参照する。ここでいう参照とは、処理対象として特定することを意味する。よって、以下この差分データを参照差分データと称する。
【００７５】
ステップＳ９０４では、情報処理装置１０１の位置・姿勢特定部３０２は、参照差分データが示す三次元モデルの表示位置を取得する。取得する表示位置は、仮想空間に配置された当該三次元モデルの中心点のワールド座標系における座標とする。本実施形態では中心点とするが、当該三次元モデルを囲むバウンディングボックスの頂点の座標を取得してもよいし、それ以外の任意の点の座標を取得する形態であってもよい。
【００７６】
ステップＳ９０５では、情報処理装置１０１の距離算出部３１３は、ステップＳ４０４で取得した仮想空間におけるＨＭＤ１０２の位置から、ステップＳ９０４で取得した位置までの距離を算出し、これを取得する。すなわち、仮想空間におけるユーザの視点から参照差分データが示す三次元モデルまでの距離を取得するということである。
【００７７】
ステップＳ９０６では、情報処理装置１０１の距離算出部３１３は、取得した距離が所定距離以下（または所定距離より小さい）であるか否かを判定する。すなわち、仮想空間におけるユーザの現在位置から所定範囲内に参照差分データの三次元モデルが存在するか否かを判定するということである。または、取得した距離が所定距離以上（または所定距離より大きい）でないか否かを判定してもよい。ユーザの近傍に存在する差分データの三次元モデルだけを抽出することにより、差分データが多数存在する場合であっても、組立品の外観を損ねることなく、これから確認したい差分データだけを識別表示することが可能となる。
【００７８】
図１０（ａ）に示すように、ＨＭＤ１０２の仮想空間における現在位置、すなわちユーザの仮想空間における現在位置から参照差分データの三次元モデルまでの距離を算出し、この距離が１０００に示すような所定距離に収まっているものを抽出する。例えば、１００２に示す車のホイールは、差分データの三次元モデルであるので、この仮想空間におけるユーザの視点からこの三次元モデルの中心点までの距離を算出する。そして、算出した距離が所定距離以下であるか否か、すなわち、所定距離である１００１を半径とする１０００の球体の範囲内に存在するか否かを判定する。図１０（ａ）の例では、差分データである車のホイールは、この範囲内に含まれていると判定されることになる。１００３、１００４、１００５も差分データであるが、このうち１００３のドアミラーは図１０（ａ）では所定範囲内に存在するが、１００４のウィングや１００５のマフラーは所定範囲外であると判定される。このようにして、ユーザの近傍に存在する差分データの三次元モデルが抽出される。
【００７９】
ステップＳ９０６の変形例としては、ユーザの視野も考慮して、ユーザの近傍に存在する差分データを抽出する方法が考えられる。図１０（ｂ）に示すように、ステップＳ４０４で取得した仮想空間におけるＨＭＤ１０２（ユーザ）の位置及び姿勢を用いて、仮想空間におけるユーザの視野の範囲を特定する。そして、この視野の範囲と所定距離の範囲とを組み合わせて、１０１０に示すような範囲を特定する。図１０（ｂ）の１０１１が所定距離であり、１０１０が所定距離内に収まるユーザの視野の範囲である。このように、ユーザが閲覧可能な範囲内で、かつ所定距離以内に存在する差分データを抽出することにより、ユーザが閲覧できない範囲の差分データは、後述する処理で識別表示されないことになるので、情報処理装置１０１の処理負荷を軽減することが可能となる。
【００８０】
図９に説明を戻す。ステップＳ９０７では、情報処理装置１０１のデータ管理部３０９は、参照差分データのフラグの状態を参照する。すなわち、参照差分データに対応する、追加フラグ７０２から削除フラグ７０５までの４つのフラグの状態を参照する。
【００８１】
ステップＳ９０８では、情報処理装置１０１の三次元モデル制御部３０５は、ステップＳ９０７で参照したフラグの状態に応じて、参照差分データの三次元モデルをどのような表示状態にするのかを決定する。そして、決定された表示状態を参照差分データの三次元モデルに対して設定する。換言すれば、仮想空間におけるユーザの現在位置から所定範囲内に存在する、特定された部品データの表示状態を、配置された三次元モデルにおいて識別可能な状態に設定するということである（設定手段）。図１０（ａ）でいうと、ホイール部分の１００２とドアミラー部分の１００３が、所定範囲内にある差分データの三次元モデルであるので、これらが他の部品データとは識別可能に表示される。
【００８２】
例えば、追加フラグ７０２に“１”が格納されていた場合には、参照差分データの三次元モデルを紫色に着色し、形状変更フラグ７０３に“１”が格納されていた場合には、参照差分データの三次元モデルを青色に着色する。また、位置姿勢変更フラグ７０４に“１”が格納されていた場合には、参照差分データの三次元モデルを黄色に着色し、削除フラグ７０５に“１”が格納されていた場合には、参照差分データの三次元モデルを赤色で着色する。更には、形状変更フラグ７０３と位置姿勢変更フラグ７０４にそれぞれ“１”が格納されていた場合には、参照差分データの三次元モデルを、青色と黄色とを合成した色である緑色に着色する。このように、設計変更された内容に応じて表示状態を決定することにより、どのような変更がなされたのかをユーザに認識させることが可能となる。
【００８３】
尚、仮想空間に新組立品データの三次元モデルが配置されているのであれば、削除された差分データは表示されていない。そのため、本来差分データが存在していた位置に、その差分データのエッジを破線等で表現し、そのエッジを着色することでユーザに削除されたことを認識させる。または、仮想空間に旧組立品データの三次元モデルが配置されているのであれば、追加された差分データは表示されていない。そのため、差分データが追加された位置に、その差分データのエッジを破線等で表現し、そのエッジを着色することでユーザに追加されたことを認識させる。
【００８４】
また、参照差分データの表示状態の設定は色に限らない。例えば、輝度を変えたり点滅させたりすることによってユーザに設計変更箇所を認識させてもよい。
【００８５】
ステップＳ９０９では、情報処理装置１０１のデータ管理部３０９は、差分リスト７００のｉ行目が最終行（最終レコード）であるか否かを判定する。最終行であると判定した場合には、差異データ識別処理を終了し、ステップＳ４０６の次のステップに処理を進める。最終行でないと判定した場合には、ステップＳ９０２に処理を戻す。こうしてすべての差分データに対してステップＳ９０２乃至ステップＳ９０９の処理を実行する。
【００８６】
図４に説明を戻す。ステップＳ４０７では、情報処理装置１０１は、ユーザから選択された差分データの三次元モデルをターゲットマーカ１０５に配置するための処理を実行する。図１１に差分データ配置処理の詳細な処理の流れを示す。
【００８７】
図１１は、差分データ配置処理の詳細な処理の流れの一例を示すフローチャートである。以下説明する、Ｓ１１０１乃至Ｓ１１１２の各ステップは、情報処理装置１０１のＣＰＵ２０１が各機能部を動作することにより実行される処理である。
【００８８】
ステップＳ１１０１では、情報処理装置１０１の操作受付部３１２は、ターゲットマーカ１０５を用いたユーザからの操作内容を特定する。本実施形態においては、ＨＭＤ１０２を装着するユーザの操作は、ターゲットマーカ１０５を用いて行われる。ターゲットマーカ１０５が指し示す方向にカーソルオブジェクトが重畳表示され、このカーソルオブジェクトを用いて選択操作を行う。
【００８９】
ステップＳ１１０２では、情報処理装置１０１の操作受付部３１２は、ステップＳ１１０１で特定された操作内容が、仮想空間に配置された新組立品データを構成する差分データのうち、識別表示されている差分データに対する選択操作であるか否かを判定する。具体的には、ターゲットマーカ１０５に重畳表示されたカーソルオブジェクトが、識別表示中の差分データの三次元モデルと一定時間接触した場合に、当該差分データに対する選択操作が行われたと判定する（選択受付手段）。選択の方法はこれに限らず、差分データの一覧を含む画面を表示して、これに対する選択操作を受け付けてもよい。識別表示されている差分データに対する選択操作であると判定した場合には、ステップＳ１１０３に処理を進める。そうでない場合には、ステップＳ１１０８に処理を進める。
【００９０】
ステップＳ１１０３では、情報処理装置１０１の仮想空間生成部３０４は、ターゲットマーカ１０５の位置・姿勢に応じて、いずれかの差分データが表示中であるか否かを判定する。選択された差分データとは異なる差分データの三次元モデルがターゲットマーカ１０５に重畳表示されている場合、この表示を終了しなければ、複数の差分データが重畳表示されてしまい、視認しづらい。そのため、こうした判定を行っている。いずれかの差分データが表示中であると判定した場合には、ステップＳ１１０４に処理を進める。いずれの差分データも表示中ではないと判定した場合には、ステップＳ１１０５に処理を進める。
【００９１】
ステップＳ１１０４では、情報処理装置１０１の仮想空間生成部３０４は、ターゲットマーカ１０５に重畳表示されている差分データの三次元モデルを非表示にする。ユーザが視認できなくなればよいので、ターゲットマーカ１０５の位置に配置されていた差分データの三次元モデルを取り除いてもよいし、透明度を１００％にして不可視の状態にしてもよい。
【００９２】
ステップＳ１１０５では、情報処理装置１０１のデータ管理部３０９は、選択された差分データの形状変更フラグ７０３が“１”であるか否かを判定する。すなわち、選択された差分データの設計変更内容は、形状変更であるか否かを判定する。形状変更フラグ７０３が“１”であると判定した場合には、ステップＳ１１０６に処理を進める。そうでない場合、すなわち形状変更フラグ７０３が“０”であると判定した場合には、ステップＳ１１０７に処理を進める。
【００９３】
ステップＳ１１０６では、情報処理装置１０１の三次元モデル制御部３０５は、選択された差分データの設計変更前後の三次元モデルを、ターゲットマーカ１０５の位置及び姿勢に応じて、ターゲットマーカ１０５に重畳表示されるように透過状態で配置する。すなわち、設計変更前後の差分データの三次元モデルを重ね合わせて透過表示するということである。こうすることで、設計変更前後でどういう形状に変更したのかを確認しやすくなる。例えば、図１２（ａ）のように、識別表示されているホイールに対して、１２０１に示すようなカーソルオブジェクトを一定時間接触させると、このホイールの設計変更前後の三次元モデルを図１２（ｂ）の１２０２のように重ね合わせて、それぞれを透過させる。こうして配置された結果が、図１２（ａ）の１２０２である。本実施形態では透過させた上で重畳表示しているが、設計変更前後のいずれかを透過させて、もう一方を透過させない形態であってもよい。また、設計変更前後の差分データを透過させた上でそれぞれ異なる色で着色してもよい。
【００９４】
ステップＳ１１０７では、情報処理装置１０１の三次元モデル制御部３０５は、選択された差分データの設計変更前または後の三次元モデルを、ターゲットマーカ１０５の位置及び姿勢に応じて、ターゲットマーカ１０５に重畳表示されるように配置する。追加フラグ７０２が“１”の差分データの場合には、設計変更後の差分データを配置し、削除フラグ７０５が“１”の差分データの場合には、設計変更前の差分データを配置する。位置姿勢変更フラグ７０４が“１”の差分データについては、設計変更前後のいずれを配置してもよい。ステップＳ１１０６またはステップＳ１１０７の処理が完了したら、差分データ配置処理を終了し、ステップＳ４０７の次のステップに処理を進める。
【００９５】
ステップＳ１１０８では、情報処理装置１０１の操作受付部３１２は、ステップＳ１１０６で透過表示された設計変更前後の差分データの表示状態を切り替える指示を受け付けたか否かを判定する。この切り替え指示は、当該差分データの三次元モデルに対する選択操作を再度受け付けることにより、切り替え指示があったと判定する。これに限らず、ターゲットマーカ１０５を所定の軌跡で動かされた場合に切り替え指示があったと判定してもよいし、物理的または仮想的ボタンに対する押下を受け付けることによって切り替え指示があったと判定してもよい。切り替え指示を受け付けたと判定した場合には、ステップＳ１１０９に処理を進める。そうでない場合には、差分データ配置処理を終了し、ステップＳ４０７の次のステップに処理を進める。
【００９６】
ステップＳ１１０９では、情報処理装置１０１のデータ管理部３０９は、切り替え指示のあった差分データの形状変更フラグ７０３が“１”であるか否かを判定する。すなわち、切り替え指示のあった差分データの設計変更内容は、形状変更であるか否かを判定する。形状変更フラグ７０３が“１”であると判定した場合には、ステップＳ１１１０に処理を進める。そうでない場合、すなわち形状変更フラグ７０３が“０”であると判定した場合には、差分データ配置処理を終了し、ステップＳ４０７の次のステップに処理を進める。
【００９７】
ステップＳ１１１０では、情報処理装置１０１の三次元モデル制御部３０５は、ターゲットマーカ１０５に重畳表示されている差分データの三次元モデルが、透過表示中であるか否かを判定する。当該三次元モデルの透過度を確認すればよい。透過表示中であると判定した場合には、ステップＳ１１１２に処理を進める。透過表示中ではないと判定した場合には、ステップＳ１１１１に処理を進める。
【００９８】
ステップＳ１１１１では、情報処理装置１０１の三次元モデル制御部３０５は、選択された差分データの設計変更前後の三次元モデルを、ターゲットマーカ１０５の位置及び姿勢に応じて、ターゲットマーカ１０５に重畳表示されるように透過状態で配置する。すなわち、ステップＳ１１０６と同様の処理を行う。
【００９９】
一方、ステップＳ１１１２では、情報処理装置１０１の仮想空間生成部３０４は、選択された差分データの設計変更前後の三次元モデルを、ターゲットマーカ１０５の位置及び姿勢に応じて、ターゲットマーカ１０５に重畳表示されるように配置する。こちらは透過させずに配置する。また、設計変更前後の差分データの三次元モデルを並べて配置する。例えば、図１３に示すように、設計変更前の差分データの三次元モデルと、設計変更後の差分データの三次元モデルとを１３０１及び１３０２に示すように、並べて透過させずに表示する。このように、ユーザが設計変更前後を比較しやすく表示することで、差分の確認を手助けすることが可能となる。尚、本実施形態では、透過させずに配置するが透過させてしまってもよい。ただし、視認性が低くなってしまうので透過させないことが望ましい。
【０１００】
ステップＳ１１１１またはステップＳ１１１２の処理が完了したら、差分データ配置処理を終了し、ステップＳ４０７の次のステップに処理を進める。
【０１０１】
図４に説明を戻す。ステップＳ４０８では、情報処理装置１０１の仮想空間画像取得部３０６は、仮想空間上に設定された視点から仮想空間を撮像することにより仮想空間画像を取得し、これをＲＡＭ２０３等に記憶する。尚、ＨＭＤ１０２の右目・左目ディスプレイ２２２のそれぞれに表示するために右目用の仮想空間画像と左目用の仮想空間画像の２枚を取得する。
【０１０２】
ステップＳ４０９では、情報処理装置１０１の複合現実画像生成部３０７は、ステップＳ４０３で取得した現実空間画像とステップＳ４０８で取得した仮想空間画像とをＲＡＭ２０３等から読み出す。そして、当該現実空間画像に当該仮想空間画像を重畳し、複合現実画像を生成する。生成した複合現実画像はＲＡＭ２０３等に記憶する。尚、前述した通り、現実空間画像と仮想空間画像とは右目用と左目用の２枚ずつがＲＡＭ２０３等に記憶されているので、右目用の現実空間画像に右目用の仮想空間画像を重畳し、左目用の現実空間画像に左目用の仮想空間画像を重畳する。
【０１０３】
ステップＳ４１０では、情報処理装置１０１の表示制御部３０８は、ステップＳ４０９で生成した複合現実画像をＲＡＭ２０３等から読み出し、ビデオコントローラ２０６を通じてＨＭＤ１０２の右目・左目ディスプレイ２２２に表示する。ＲＡＭ２０３等に記憶された複合現実画像は、右目用と左目用の２枚が存在する。そのため、右目用の複合現実画像を右目・左目ディスプレイ２２２の右目のディスプレイに表示するよう制御し、左目用の複合現実画像を右目・左目ディスプレイ２２２の左目のディスプレイに表示するよう制御する。
【０１０４】
ステップＳ４１１では、情報処理装置１０１の操作受付部３１２は、ＨＭＤ１０２を装着しているユーザに複合現実感を提示する処理の終了指示があったか否かを判定する。例えば、前述したステップＳ４０１乃至ステップＳ４１１の処理を実行する情報処理装置１０１のアプリケーションの停止指示や終了指示があったか否かを判定する。終了指示があったと判定した場合には、本一連の処理を終了する。終了指示があったと判定しなかった場合、すなわち終了指示がなかった場合にはステップＳ４０３に処理を戻し、終了指示があるまでステップＳ４０３乃至ステップＳ４１１の処理を繰り返す。
【０１０５】
以上説明したように、設計変更された部品データが三次元モデルに複数含まれている場合であっても、当該部品データを仮想空間上で閲覧しやすくすることが可能となる。
【０１０６】
本発明は、例えば、システム、装置、方法、プログラム若しくは記憶媒体等としての実施形態も可能であり、具体的には、複数の機器から構成されるシステムに適用してもよいし、また、１つの機器からなる装置に適用してもよい。
【０１０７】
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接、或いは遠隔から供給するものを含む。そして、そのシステム或いは装置のコンピュータが前記供給されたプログラムコードを読み出して実行することによっても達成される場合も本発明に含まれる。
【０１０８】
したがって、本発明の機能処理をコンピュータで実現（実行可能と）するために、前記コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
【０１０９】
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、ＯＳに供給するスクリプトデータ等の形態であってもよい。
【０１１０】
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどがある。また、磁気テープ、不揮発性のメモリカード、ＲＯＭ、ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−Ｒ）などもある。
【０１１１】
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続する。そして、前記ホームページから本発明のコンピュータプログラムそのもの、若しくは圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによっても供給できる。
【０１１２】
また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるＷＷＷサーバも、本発明に含まれるものである。
【０１１３】
また、本発明のプログラムを暗号化してＣＤ−ＲＯＭ等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせる。そして、ダウンロードした鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
【０１１４】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。その他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが、実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
【０１１５】
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によっても前述した実施形態の機能が実現される。
【０１１６】
なお、前述した実施形態は、本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【０１１７】
１０１  情報処理装置
１０２  ＨＭＤ
１０３  オプティカルマーカ
１０４  赤外線カメラ
１０５  ターゲットマーカ
【図１】
2018018362.tif 000003
【図２】
2018018362.tif 000004
【図３】
2018018362.tif 000005
【図４】
2018018362.tif 000006
【図５】
2018018362.tif 000007
【図６】
2018018362.tif 000008
【図７】
2018018362.tif 000009
【図８】
2018018362.tif 000010
【図９】
2018018362.tif 000011
【図１０】
2018018362.tif 000012
【図１１】
2018018362.tif 000013
【図１２】
2018018362.tif 000014
【図１３】
2018018362.tif 000015