(57)【特許請求の範囲】
【請求項１】
複数の対象物についての３Ｄデータセットを記憶したデータベースにアクセスするアクセス手段であって、前記３Ｄデータセットが複数の対象物の各々について当該対象物の３Ｄモデリングデータ及び付随データを含み、前記３Ｄモデリングデータが複数の要素を含むアクセス手段と、
情報処理装置から、対象物及び複数の要素のうち使用する要素を特定する要求情報を含むＡＰＩリクエストを受信する受信手段と、
前記データベースから抽出された、前記要求情報により特定された対象物の、特定された要素からなる３Ｄモデリングデータにより示される３Ｄモデルを出力するためのデータを、前記ＡＰＩリクエストに対するＡＰＩレスポンスとして前記情報処理装置に送信する送信手段と
を有するサーバ。
【請求項２】
前記付随データが、前記対象物を撮影した画像を含み、
対象物の画像からアルゴリズムに従って３Ｄモデリングデータを生成する生成手段に対し前記画像及び前記アルゴリズムを用いた３Ｄモデリングデータの生成を要求するデータ要求手段と、
前記画像及び前記アルゴリズムを用いて生成された３Ｄモデリングデータを前記生成手段から取得する取得手段と
を有する請求項１に記載のサーバ。
【請求項３】
前記データ要求手段は、前記生成手段において前記アルゴリズムが更新されたことを示すイベントの発生に応じて、当該生成手段に対し前記画像及び当該更新されたアルゴリズムを用いた３Ｄモデリングデータの再生成を要求し、
前記取得手段は、前記更新されたアルゴリズムを用いた３Ｄモデリングデータを取得する
請求項２に記載のサーバ。
【請求項４】
前記付随データが、前記画像が撮影された日から現時点までの期間における前記対象物の行動を示す行動情報を含み、
前記要求手段は、前記生成手段に対し、前記画像、前記行動情報、及び前記更新されたアルゴリズムを用いた３Ｄモデリングデータの生成を要求し、
前記取得手段は、前記生成手段から、前記画像、前記行動情報、及び前記更新されたアルゴリズムを用いた３Ｄモデリングデータを取得する
請求項３に記載のサーバ。
【請求項５】
前記生成手段は、異なる複数のアルゴリズムの中から選択された一のアルゴリズムに従って３Ｄモデリングデータを生成し、
前記ＡＰＩリクエストが、前記複数のアルゴリズムの中から一のアルゴリズムを指定する情報を含み、
前記データ要求手段は、前記ＡＰＩリクエストにより指定されるアルゴリズムを選択して３Ｄモデリングデータの生成を要求する
請求項２に記載のサーバ。
【請求項６】
前記受信手段は、前記３Ｄモデリングデータが情報処理装置において編集されたことを示す情報を受信し、
前記編集されたことを示す編集履歴の記録を要求する記録要求手段を有する
請求項１乃至５のいずれか一項に記載のサーバ。
【請求項７】
前記編集履歴を用いて生成された暗号鍵を用いて前記３Ｄモデルを出力するためのデータを暗号化する暗号化手段を有する
請求項６に記載のサーバ。
【請求項８】
前記受信手段は、情報処理装置から３Ｄモデリングデータが真正なものであるか確認の要求であって、当該３Ｄモデリングデータの編集履歴を示すデータを含む要求を受信し、
前記記録を参照して前記３Ｄモデリングデータが真正なものであるか判断する
請求項６に記載のサーバ。
【請求項９】
前記サーバの管理事業者の秘密鍵、及び複数のユーザの公開鍵を記憶する記憶手段を有し、
前記ＡＰＩリクエストが、前記情報処理装置を使用するユーザの公開鍵を特定する情報を含み、
前記ＡＰＩリクエストにより要求された前記３Ｄモデルを出力するためのデータを、前記管理事業者の秘密鍵及び前記情報処理装置を使用するユーザの公開鍵で暗号化する暗号化手段を有し、
前記送信手段は、前記暗号化手段により暗号化された前記３Ｄモデルを出力するためのデータを前記ＡＰＩレスポンスとして前記情報処理装置に送信する
請求項１乃至６及び８のいずれか一項に記載のサーバ。
【請求項１０】
前記管理事業者の秘密鍵に対応する公開鍵であって、有効期限が設定された公開鍵を配布する配布手段を有する
請求項９に記載のサーバ。
【請求項１１】
複数の対象物についての３Ｄデータセットを記憶したデータベースであって、前記３Ｄデータセットが複数の対象物の各々について当該対象物の３Ｄモデリングデータ及び付随データを含み、前記３Ｄモデリングデータが複数の要素を含むデータベースにアクセスするステップと、
情報処理装置から、対象物及び複数の要素のうち使用する要素を特定する要求情報を含むＡＰＩリクエストを受信するステップと、
前記データベースから抽出された、前記要求情報により特定された対象物の、特定された要素からなる３Ｄモデリングデータにより示される３Ｄモデルを出力するためのデータを、前記ＡＰＩリクエストに対するＡＰＩレスポンスとして前記情報処理装置に送信するステップと
を有する情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３Ｄモデリングデータを処理する技術に関する。
【背景技術】
【０００２】
対象物の３Ｄモデルを示す３Ｄモデリングデータを処理するシステムが知られている。例えば特許文献１は、３Ｄモデリングデータの動的な個性を推定し、推定された個性を示すデータを３Ｄモデリングデータに付加する技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６４８９７２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
３Ｄモデリングデータは様々なアプリケーションにおいて利用が可能である。本発明は、３Ｄモデリングデータを様々なアプリケーションから容易に利用することができるようにする技術を提供する。
【課題を解決するための手段】
【０００５】
本開示の一態様は、複数の対象物についての３Ｄデータセットを記憶したデータベースにアクセスするアクセス手段であって、前記３Ｄデータセットが複数の対象物の各々について当該対象物の３Ｄモデリングデータ及び付随データを含み、前記３Ｄモデリングデータが複数の要素を含むアクセス手段と、情報処理装置から、対象物及び複数の要素のうち使用する要素を特定する要求情報を含むＡＰＩリクエストを受信する受信手段と、前記データベースから抽出された、前記要求情報により特定された対象物の、特定された要素からなる３Ｄモデリングデータにより示される３Ｄモデルを出力するためのデータを、前記ＡＰＩリクエストに対するＡＰＩレスポンスとして前記情報処理装置に送信する送信手段とを有するサーバを提供する。【０００６】
前記付随データが、前記対象物を撮影した画像を含み、このサーバは、対象物の画像からアルゴリズムに従って３Ｄモデリングデータを生成する生成手段に対し前記画像及び前記アルゴリズムを用いた３Ｄモデリングデータの生成を要求するデータ要求手段と、前記画像及び前記アルゴリズムを用いて生成された３Ｄモデリングデータを前記生成手段から取得する取得手段とを有してもよい。【０００７】
前記データ要求手段は、前記生成手段において前記アルゴリズムが更新されたことを示すイベントの発生に応じて、当該生成手段に対し前記画像及び当該更新されたアルゴリズムを用いた３Ｄモデリングデータの再生成を要求し、前記取得手段は、前記更新されたアルゴリズムを用いた３Ｄモデリングデータを取得してもよい。【０００８】
前記付随データが、前記画像が撮影された日から現時点までの期間における前記対象物の行動を示す行動情報を含み、前記要求手段は、前記生成手段に対し、前記画像、前記行動情報、及び前記更新されたアルゴリズムを用いた３Ｄモデリングデータの生成を要求し、前記取得手段は、前記生成手段から、前記画像、前記行動情報、及び前記更新されたアルゴリズムを用いた３Ｄモデリングデータを取得してもよい。【０００９】
前記生成手段は、異なる複数のアルゴリズムの中から選択された一のアルゴリズムに従って３Ｄモデリングデータを生成し、前記ＡＰＩリクエストが、前記複数のアルゴリズムの中から一のアルゴリズムを指定する情報を含み、前記データ要求手段は、前記ＡＰＩリクエストにより指定されるアルゴリズムを選択して３Ｄモデリングデータの生成を要求してもよい。【００１０】
前記受信手段は、前記３Ｄモデリングデータが情報処理装置において編集されたことを示す情報を受信し、このサーバは、前記編集されたことを示す編集履歴の記録を要求する記録要求手段を有してもよい。【００１１】
前記編集履歴を用いて生成された暗号鍵を用いて前記３Ｄモデルを出力するためのデータを暗号化する暗号化手段を有してもよい。【００１２】
前記受信手段は、情報処理装置から３Ｄモデリングデータが真正なものであるか確認の要求であって、当該３Ｄモデリングデータの編集履歴を示すデータを含む要求を受信し、前記記録を参照して前記３Ｄモデリングデータが真正なものであるか判断してもよい。【００１３】
このサーバは、前記サーバの管理事業者の秘密鍵、及び複数のユーザの公開鍵を記憶する記憶手段を有し、前記ＡＰＩリクエストが、前記情報処理装置を使用するユーザの公開鍵を特定する情報を含み、前記ＡＰＩリクエストにより要求された前記３Ｄモデルを出力するためのデータを、前記管理事業者の秘密鍵及び前記情報処理装置を使用するユーザの公開鍵で暗号化する暗号化手段を有し、前記送信手段は、前記暗号化手段により暗号化された前記３Ｄモデルを出力するためのデータを前記ＡＰＩレスポンスとして前記情報処理装置に送信してもよい。【００１４】
このサーバは、前記管理事業者の秘密鍵に対応する公開鍵であって、有効期限が設定された公開鍵を配布する配布手段を有してもよい。【００１５】
本開示の別の一態様は、複数の対象物についての３Ｄデータセットを記憶したデータベースであって、前記３Ｄデータセットが複数の対象物の各々について当該対象物の３Ｄモデリングデータ及び付随データを含み、前記３Ｄモデリングデータが複数の要素を含むデータベースにアクセスするステップと、情報処理装置から、対象物及び複数の要素のうち使用する要素を特定する要求情報を含むＡＰＩリクエストを受信するステップと、前記データベースから抽出された、前記要求情報により特定された対象物の、特定された要素からなる３Ｄモデリングデータにより示される３Ｄモデルを出力するためのデータを、前記ＡＰＩリクエストに対するＡＰＩレスポンスとして前記情報処理装置に送信するステップとを有する情報処理方法を提供する。
【発明の効果】
【００１６】
本発明によれば、３Ｄモデリングデータを様々なアプリケーションから容易に利用することができる。
【図面の簡単な説明】
【００１７】
【図１】一実施形態に係る３Ｄデータシステム１の概要を示す図。
【図２】サーバ１０の機能構成を例示する図。
【図３】サーバ１０のハードウェア構成を例示する図。
【図４】３Ｄデータシステム１の動作を示すシーケンスチャート。
【図５】データベース１１１における３Ｄモデリングデータの構造を例示する図。
【図６】暗号化されたデータを例示する図。
【図７】３Ｄモデリングデータの再生成処理を例示するフローチャート。
【図８】仮説のシミュレーション処理を例示するフローチャート。
【図９】ブロックチェーンに編集履歴を記録する処理を例示するフローチャート。
【図１０】３Ｄモデリングデータを検証する処理を例示するフローチャート。
【符号の説明】
【００１８】
１…３Ｄデータシステム、９…３Ｄデータセット、１０…サーバ、１１…記憶手段、１２…アクセス手段、１３…受信手段、１４…送信手段、１５…制御手段、２０…サーバ、３０…端末装置、３１…アプリケーション、９１…ユーザＩＤ、９２…３Ｄモデリングデータ、９３…付属データ、１０１…ＣＰＵ、１０２…メモリ、１０３…ストレージ、１０４…通信ＩＦ、１１１…データベース、３３０…端末装置、９２１…３Ｄモデリングデータ、９２１…３Ｄモデリングデータ、９２２…３Ｄモデリングデータ、９２３…３Ｄモデリングデータ、Ｋｍ１…秘密鍵、Ｋｍ２…公開鍵、Ｋｕ１…秘密鍵、Ｋｕ２…公開鍵。
【発明を実施するための形態】
【００１９】
１．構成
図１は、一実施形態に係る３Ｄデータシステム１の概要を示す図である。３Ｄデータシステム１は、３Ｄモデリングデータを提供する。ここで、３Ｄモデリングデータとは、人間、動物、物品等の対象物の３Ｄモデルを表すデータをいう。３Ｄモデルとは対象物の三次元的な外観を表すモデルをいう。一例において、３Ｄモデリングデータの外表面には、対象物を撮影した写真から生成された画像が貼り付けられる。３Ｄモデルは、例えば、仮想空間においてユーザ自身の、又はユーザとは別の人物のアバターとして用いられる。３Ｄモデルは、例えば、ビデオゲーム、ビデオ通話、ビデオ会議、ショッピング、又はフィットネスなど、様々なアプリケーション又は用途において用いられる。
【００２０】
３Ｄデータシステム１は、サーバ１０、サーバ２０、端末装置３０、及び３Ｄスキャナー４０を有する。サーバ１０は、３Ｄモデリングデータを管理するサーバである。サーバ１０は、３Ｄデータシステム１の管理事業者により管理される。サーバ２０は、３Ｄモデルを用いたアプリケーションを提供するサーバである。このアプリケーションは、３Ｄデータシステム１の管理事業者自身により提供されてもよいし、別の事業者により提供されてもよい。端末装置３０はアプリケーションを利用する（すなわち３Ｄモデルを利用する）ユーザ端末である。端末装置３０は、スマートフォン、タブレット端末、又はパーソナルコンピュータ等の情報処理装置である。なおここでは図面を簡単にするため、サーバ２０、端末装置３０、及び３Ｄスキャナー４０をそれぞれ１台のみ図示しているが、３Ｄデータシステム１は、複数のサーバ２０及び／又は複数の端末装置３０を有してもよい。
【００２１】
３Ｄスキャナー４０は、対象物をスキャンして３Ｄモデリングデータを生成する装置である。３Ｄスキャナー４０は、対象物の外観の画像（すなわち写真）を撮影し、基準位置（例えばセンサーの位置）から対象物の表面までの距離を測定し、画像データ及び距離データを得る。さらに、３Ｄスキャナー４０は、この画像データ及び距離データに対し所定のアルゴリズムを適用し、対象物の３Ｄモデリングデータを生成する。３Ｄスキャナー４０は、生成された３Ｄモデリングデータをサーバ１０にアップロードする。
【００２２】
サーバ２０は、端末装置３０にアプリケーションプログラムを提供する。このアプリケーションプログラムは、サーバ１０にＡＰＩ（Application Programming Interface）リクエストを送信するためのソフトウェアモジュールを含む。例えば端末装置３０がこのアプリケーションプログラムを実行すると、端末装置３０は、このプログラムに従ってサーバ１０にＡＰＩリクエストを送信する。このＡＰＩリクエストは、３Ｄモデルを出力するためのデータ（例えば３Ｄモデリングデータ）の送信を要求するものである。サーバ１０は、このＡＰＩリクエストに対しＡＰＩレスポンスを送信する。このＡＰＩレスポンスは、要求された３Ｄデータを含む。端末装置３０は、この３Ｄデータを用いたアプリケーションをユーザに提供する。
【００２３】
図２は、サーバ１０の機能構成を例示する図である。サーバ１０は、記憶手段１１、アクセス手段１２、受信手段１３、送信手段１４、及び制御手段１５を有する。記憶手段１１は各種のデータを記憶する。この例において記憶手段１１はデータベース１１１を記憶する。データベース１１１は、複数の対象物（すなわち対象物）についての３Ｄデータセットを記憶したデータベースである。３Ｄデータセットは、複数の対象物の各々について、その対象物の３Ｄモデリングデータ及び付随データを含む。３Ｄモデリングデータは複数の要素を含む。アクセス手段１２は、データベース１１１にアクセスする。
【００２４】
受信手段１３は、端末装置３０からＡＰＩリクエストを受信する。このＡＰＩリクエストは、３Ｄモデリングデータの提供を要求するためのものである。このＡＰＩリクエストは、対象物及び３Ｄモデリングデータに含まれる複数の要素のうち使用する要素を特定する要求情報を含む。送信手段１４は、このＡＰＩリクエストに対するＡＰＩレスポンスを、そのＡＰＩリクエストの送信元の端末装置に送信する。このＡＰＩレスポンスは、データベース１１１から抽出された、要求情報により特定された対象物の、特定された要素からなる３Ｄモデリングデータにより示される３Ｄモデルを出力するためのデータを含む。３Ｄモデルを出力するためのデータは、３Ｄモデリングデータそのものであってもよいし、３Ｄモデリングデータを処理した結果を示すデータ（例えば、３Ｄモデルを動かした動画データ）であってもよい。制御手段１５は、各種の制御を行う。
【００２５】
図３は、サーバ１０のハードウェア構成を例示する図である。サーバ１０は、ＣＰＵ（Central Processing Unit）１０１、メモリ１０２、ストレージ１０３、及び通信ＩＦ１０４を有するコンピュータ装置又は情報処理装置である。ＣＰＵ１０１は、プログラムに従って各種の演算を行う制御装置である。メモリ１０２は、ＣＰＵ１０１が処理を実行する際のワークエリアとして機能する主記憶装置である。メモリ１０２は、例えばＲＡＭ（Random Access Memory）及びＲＯＭ（Read Only Memory）を含む。ストレージ１０３は、各種のデータ及びプログラムを記憶する補助記憶装置である。ストレージ１０３は、例えばＳＳＤ（Solid State Drive）及び／又はＨＤＤ（Hard Disc Drive）を含む。通信ＩＦ１０４は、所定の通信規格（例えばイーサネット）に従って他の装置と通信する装置であり、例えばＮＩＣを含む。
【００２６】
この例において、ストレージ１０３が記憶するプログラムには、コンピュータ装置を３Ｄデータシステム１におけるサーバ１０として機能させるためのプログラム（以下「管理サーバプログラム」という）が含まれる。ＣＰＵ１０１が管理サーバプログラムを実行している状態において、メモリ１０２及びストレージ１０３の少なくとも一方が記憶手段１１の一例である。ＣＰＵ１０１がアクセス手段１２及び制御手段１５の一例である。通信ＩＦ１０４が受信手段１３及び送信手段１４の一例である。
【００２７】
２．動作
２−１．基本動作
図４は、３Ｄデータシステム１の動作を示すシーケンスチャートである。以下において、アクセス手段１２等の機能要素を処理の主体として記載することがあるが、これは、管理サーバプログラムを実行しているＣＰＵ１０１等のハードウェア要素が他のハードウェア要素と協働して処理を実行することを意味する。
【００２８】
端末装置３０のユーザは、端末装置３０においてアプリケーションプログラムのダウンロードを指示する。このアプリケーションプログラムは、例えば、ユーザの３Ｄモデルをプレイヤーキャラクターとするビデオゲームのアプリケーションプログラムである。端末装置３０は、サーバ２０からアプリケーションプログラムをダウンロードする（ステップＳ１０１）。ダウンロードが完了すると、ユーザは、アプリケーションプログラムの起動を指示する。端末装置３０は、アプリケーションプログラムを起動する（ステップＳ１０２）。以下このアプリケーションプログラムにより実装されるアプリケーションをアプリケーション３１という。
【００２９】
アプリケーション３１は、３Ｄデータの取得に関しては、サーバ１０により提供されるＡＰＩを用いる。アプリケーション３１は、サーバ１０にＡＰＩリクエストを送信する（ステップＳ１０３）。このＡＰＩリクエストは、ユーザＩＤ及び要素ＩＤを含む。ユーザＩＤは、３Ｄデータシステム１のユーザを一意に特定する識別情報である。要素ＩＤは、データベース１１１に記録されている３Ｄモデリングデータ（後述）に含まれる要素のうち少なくとも一部を特定する識別情報である。
【００３０】
サーバ１０において、受信手段１３は端末装置３０からＡＰＩリクエストを受信する（ステップＳ１０４）。アクセス手段１２は、受信したＡＰＩリクエストからユーザＩＤ及び要素ＩＤを抽出する（ステップＳ１０５）。アクセス手段１２は、データベース１１１にアクセスし、このユーザＩＤ及び要素ＩＤに対応する３Ｄモデリングデータを抽出する（ステップＳ１０６）。
【００３１】
図５は、データベース１１１における３Ｄモデリングデータの構造を例示する図である。データベース１１１は、複数の３Ｄデータセット９を含む。３Ｄデータセットとは、少なくとも３Ｄモデリングデータを含むデータ群をいう。各３Ｄデータセット９は、ユーザＩＤ９１、３Ｄモデリングデータ（又は３Ｄモデリングデータ本体）９２、及び付属データ９３を含む。付属データ９３は、例えば、ユーザ属性及び更新日を含む。ユーザ属性は、ユーザＩＤ、ユーザ名、生年月日、性別、身長、及び体重などユーザの属性を示す。更新日は、３Ｄデータセットが更新された日時を示す。
【００３２】
この例において、３Ｄモデリングデータ９２は、同じ対象物を表す複数（図では３つ）の３Ｄモデリングデータ９２１、３Ｄモデリングデータ９２２、及び３Ｄモデリングデータ９２３を含む。３Ｄモデリングデータ９２１は、対象物の形状を定義するデータを含む。対象物の形状は、ポリゴン又は自由曲面により定義される。３Ｄモデリングデータ９２１は、さらに対象物の材質に関する情報を含む。材質に関する情報は、色、透明度、反射、屈折率、自己発光、バンプ、及びディスプレイスメントのうち少なくとも１種を含む。３Ｄモデリングデータ９２１は、さらにテクスチャを含む。テクスチャはモデルに貼り付けられる画像である。同様に３Ｄモデリングデータ９２２及び３Ｄモデリングデータ９２３も、モデルの形状を定義するデータ、材質に関する情報、及びテクスチャを含む。モデルの形状を定義するデータ、材質に関する情報、及びテクスチャは、３Ｄモデリングデータ９２を構成する複数の要素の一例である。
【００３３】
一例において、これら複数のデータはそれぞれ品質が異なる。この例において、３Ｄモデリングデータ９２１は高品質（すなわちデータ量大）であり、３Ｄモデリングデータ９２２は中品質（すなわちデータ量中）であり、３Ｄモデリングデータ９２３は低品質（すなわちデータ量小）である。これら、高品質、中品質、及び低品質の３Ｄモデリングデータは、３Ｄモデリングデータ９２を構成する複数の要素の一例である。
【００３４】
この例において、３Ｄモデリングデータ９２１は、複数の部位に区分される。すなわち、形状、材質、及びテクスチャはそれぞれ、複数の部位に区分される。複数の部位とは、対象物の身体構造に基づく区分であり、例えば、頭、胸、腹、腰、腕、手、脚、及び足を含む。これら複数の部位の少なくとも一部は、さらに複数の副部位に細分化されてもよい。例えば、頭は、髪、目、鼻、口、及び耳に区分されてもよい。これら複数の部位は、３Ｄモデリングデータ９２を構成する複数の要素の別の一例である。
【００３５】
付属データ９３は、ボーンデータを含む。ボーンは、３Ｄモデルを動かすための、動きの単位となる要素を示す。例えば３Ｄモデルがポリゴンにより表される場合、ポリゴンの頂点とボーンとの対応関係（いわゆるスキンウェイト）が設定される（いわゆるスキニング）。ボーンが動くと対応するポリゴンがボーンの動きに追従して動き、全体として３Ｄモデルが動く。ボーンデータも、３Ｄモデリングデータと同様、品質が異なる複数セットのデータを含んでもよい。なお、ボーンデータは３Ｄモデリングデータに含まれてもよく、その場合、ボーンデータは３Ｄモデリングデータ９２を構成する複数の要素の一例である。
【００３６】
この例において、付属データ９３は、３Ｄモデルの動きを規定する動きデータを含む。一例において、動きデータは、例えば、歩く、走る、ジャンプする、止まる、物を投げる、泳ぐ、及びダンスする等、動作毎に、ボーンの動きとして定義される。例えば走るための動きデータは、歩幅、脚の上げ方、及び腕の振り方等を定義する。別の例において、動きデータは、３Ｄモデリングデータの特定の部位の動き、例えば顔の表情を規定するものであってもよい。例えば表情の動きデータは、口の開け方、目の開け方、及び眉毛の動かし方等を定義する。
【００３７】
動きデータは、例えば、対象物を撮影した動画から抽出されてもよい。例えば、動きデータは、いわゆるモーションキャプチャ技術を用いて生成されてもよい。あるいは、動きデータは、３Ｄデータシステム１においてテンプレートとして用意され、ユーザの選択に従って又はシステムにより自動的に、その３Ｄモデリングデータと対応づけられてもよい。
【００３８】
３Ｄモデリングデータは、３Ｄモデル生成エンジンにより生成される。３Ｄモデル生成エンジンとは、対象物の画像データ及び距離データからその対象物の３Ｄモデルを生成する生成手段の一例であり、例えばソフトウェアモジュールである。この例において、３Ｄモデル生成エンジンは３Ｄスキャナー４０に実装される。３Ｄモデル生成エンジンは、３Ｄスキャナー４０に加えて、又は代えて、サーバ１０に実装されてもよいし、他の装置に実装されてもよい。
【００３９】
再び図４を参照する。この例において、ＡＰＩリクエストから抽出された要素ＩＤは、高品質、中品質、及び低品質のうちいずれかを指定する。アクセス手段１２は、ＡＰＩリクエストにより指定されたユーザＩＤを含む３Ｄデータセット９の中から、要素ＩＤにより指定されるデータを抽出する。例えば、要素ＩＤにより高品質が指定された場合、アクセス手段１２は、データベース１１１から、３Ｄモデリングデータ９２１及びボーンデータを読み出す。
【００４０】
ステップＳ１０７において、制御手段１５は、データベース１１１から読み出したデータに対し、端末装置３０における使用を可能にするための処理を行う。使用を可能にするための処理には、例えば、ファイル形式の変換が含まれる。ファイル形式の変換は、例えば、３Ｄモデリングデータから他の形式の３Ｄモデリングデータへの変換である。あるいは、ファイル形式の変換は、３Ｄモデリングデータから他の種類のデータ（例えば、動画データ又は画像データ）への変換であってもよい。ステップＳ１０７において処理されたデータを以下「対象データ」という。なお、ステップＳ１０７の処理は省略されてもよい。
【００４１】
制御手段１５は、対象データを暗号化する（ステップＳ１０８）。この処理に関し、制御手段１５は、３Ｄモデルを出力するためのデータを暗号化する暗号化手段の一例である。暗号化には２つの暗号鍵が用いられる。１つは、サーバ１０の管理事業者の秘密鍵Ｋｍ１である。もう１つは、ＡＰＩリクエストを送信した端末装置３０（又はそのユーザ）の公開鍵Ｋｕ２である。
【００４２】
図６は、暗号化された対象データを例示する図である。制御手段１５は、データベース１１１から読み出されたデータを、まず秘密鍵Ｋｍ１で暗号化する。制御手段１５はこのデータをさらに公開鍵Ｋｕ２で暗号化する。公開鍵Ｋｕ２は、例えばユーザ登録の際にサーバ１０においてユーザデータベースに登録される。あるいは、公開鍵Ｋｕ２はＡＰＩリクエストに含まれてもよい。なお、秘密鍵Ｋｍ１及び公開鍵Ｋｕ２を適用する順番はこの逆、すなわち先に公開鍵Ｋｕ２で暗号化し、次に秘密鍵Ｋｍ１で暗号化するものであってもよい。
【００４３】
再び図４を参照する。制御手段１５は、ＡＰＩレスポンスを生成する（ステップＳ１０９）。このＡＰＩレスポンスは、ステップＳ１０６において二重に暗号化された対象データを含む。送信手段１４は、生成されたＡＰＩレスポンスを、ＡＰＩリクエストの送信元である端末装置３０に送信する（ステップＳ１１０）。
【００４４】
制御手段１５は、ＡＰＩの使用履歴、すなわちＡＰＩリクエストを処理した回数をデータベース（図示略）に記録する。制御手段１５は、この記録に基づいてアプリケーション３１の運営事業者にＡＰＩの利用料を課金することができる。
【００４５】
なおここではＡＰＩレスポンスが３Ｄモデリングデータを含む例を説明したが、先に述べたようにＡＰＩレスポンスは３Ｄモデリングデータ自体を含んでいなくてもよい。例えば、サーバ１０は、３Ｄモデリングデータを処理する処理手段（図示略）を有する。処理手段は、例えば、３Ｄモデリングデータにより示される３Ｄモデルに、仮想空間において指定された動き（例えば、ダンスやスポーツなど）をさせる動画を生成する。制御手段１５は、この動画データを含むＡＰＩレスポンスを生成する。
【００４６】
端末装置３０において、アプリケーション３１はＡＰＩレスポンスを受信する（ステップＳ１１１）。ＡＰＩリクエストを受信すると、アプリケーション３１は、端末装置３０（又はそのユーザ）の秘密鍵Ｋｕ１で復号し、その後さらに管理事業者の公開鍵Ｋｍ２で復号する。管理事業者の公開鍵Ｋｍ２は、例えば、アプリケーション３１をインストールする際に端末装置３０にインストールされる。アプリケーション３１のインストール用ファイルを提供するため、サーバ１０の制御手段１５は、サーバ２０に対し公開鍵Ｋｍ２を配布する（配布手段の一例）。こうして、アプリケーション３１は、そのユーザの３Ｄモデリングデータを使用することができる。
【００４７】
この例において、公開鍵Ｋｍ２には有効期限が設定される。アプリケーション３１からサーバ１０のＡＰＩを利用可とすることは、例えばサーバ１０の運営事業者とサーバ２０の運営事業者との間の契約に依存する。サーバ１０の運営事業者は、この契約に合わせて公開鍵Ｋｍ２の有効期限を設定することができる。サーバ１０の運営事業者とサーバ２０の運営事業者との契約が満了すると３Ｄモデリングデータは復号できなくなり、アプリケーション３１において３Ｄモデリングデータを使用することができなくなる。引き続き３Ｄモデリングデータを使用するには契約の更新及びそれに伴う新たな有効期限を有する公開鍵のインストールが必要である。
【００４８】
２−２．３Ｄモデルの再生成処理
この例において、３Ｄモデル生成エンジンは、３Ｄモデリングデータを生成するアルゴリズムがアップデートされるのに伴って、３Ｄモデリングデータを再生成（又は更新）する。
【００４９】
この例において、付属データ９３は、元画像データ、距離データ、及びアルゴリズムＩＤを含む。元画像データは、その３Ｄモデリングデータを生成する際に用いられた画像データ、すなわち対象物を撮影した画像（又は写真）のデータである。距離データは、基準位置（例えばセンサーの位置）からの距離（又は深さ）を、対象物の表面にマッピングしたデータである。アルゴリズムＩＤは、元画像データから３Ｄモデリングデータを生成する際に用いられたアルゴリズム（以下「３Ｄモデル化アルゴリズム」という）を特定する識別情報である。元画像データ、距離データ、及びアルゴリズムＩＤは、３Ｄモデリングデータを生成したときにデータベース１１１に書き込まれる。その後、時間の経過とともに３Ｄモデル化アルゴリズムは次々に更新されて改善されていく。しかし、アルゴリズムが更新されるたびに対象物を撮影し直していたのでは手間である。そこでこの例は、更新されたアルゴリズムを用いた３Ｄモデルの再生成を容易にする。
【００５０】
図７は、３Ｄモデリングデータの再生成処理を例示するフローチャートである。ステップＳ２０１において、制御手段１５は、このフローのトリガとなるイベントが発生したか判断する。このフローのトリガとなるイベントは、例えば、前回この処理を行ってから所定の時間が経過したというイベント、又は３Ｄモデル生成エンジンから３Ｄモデル化アルゴリズムが更新されたことの通知を受けたというイベントである。このフローのトリガとなるイベントが発生したと判断された場合、制御手段１５は、処理をステップＳ２０２に移行する。このフローのトリガとなるイベントが発生していないと判断した場合、制御手段１５は待機する。
【００５１】
ステップＳ２０２において、制御手段１５は、３Ｄモデルの再生成要求を３Ｄモデル生成エンジンに送信する。この処理に関し、制御手段１５は、３Ｄモデリングデータの再生成を要求する要求手段の一例である。この再生成要求は、ユーザＩＤ、元画像データ、及び距離データを含む。３Ｄモデル生成エンジンは、この再生成要求に含まれる元画像データ及び距離データを用いて３Ｄモデリングデータを生成する。この例において、３Ｄモデル生成エンジンは、高品質、中品質、及び低品質の３つの３Ｄモデリングデータを生成する。３Ｄモデル生成エンジンは、生成された３Ｄモデリングデータを制御手段１５に送信する。
【００５２】
ステップＳ２０３において、制御手段１５は、更新された３Ｄモデリングデータを受信する。すなわち制御手段１５は、更新された３Ｄモデリングデータを取得する取得手段の一例である。ステップＳ２０４において、アクセス手段１２は、３Ｄモデリングデータの更新要求をデータベース１１１に出力する。この更新要求は、ユーザＩＤ及び更新された３Ｄモデリングデータを含む。データベース１１１は、この更新要求に含まれるユーザＩＤに対応する３Ｄデータセット９に含まれる３Ｄモデリングデータを、この更新要求に含まれる３Ｄモデリングデータで上書きする。
【００５３】
この例によれば、サーバ１０は、最新の３Ｄモデル化アルゴリズムで生成された３Ｄモデリングデータを、新しい画像を撮影することなく得ることができる。
【００５４】
２−３．仮説のシミュレーション処理
この例において、３Ｄモデル生成エンジンは、対象物（すなわちユーザ）の行動情報を考慮して３Ｄモデルを生成する。すなわち、３Ｄモデル生成エンジンは、仮説に基づくユーザの姿をシミュレーションする。
【００５５】
付属データ９３は行動情報を含む。行動情報は、元画像が撮影された日から現時点までの期間における対象物の行動を示す情報である。行動情報は、例えば、対象物の生活習慣に関する情報を含む。生活習慣とは、食事、運動、睡眠、仕事、飲酒、及び喫煙など、対象物の習慣的な行動をいう。食事に関する行動情報は、例えば、食事の回数、時間、摂取カロリー、及び栄養価の情報を含む。運動に関する行動情報は、例えば、運動の回数、時間、運動強度、及び運動の種類の情報を含む。睡眠に関する行動情報は、例えば、就寝時刻、起床時刻、及び眠りの深さの情報を含む。仕事に関する行動情報は、例えば、始業時刻及び終業時刻の情報を含む。飲酒に関する行動情報は、例えば、飲酒の回数及び量の情報を含む。喫煙に関する行動情報は、例えば、喫煙の回数及び量の情報を含む。行動情報は、例えば、３Ｄモデリングデータを生成する際、又は３Ｄモデリングデータをデータベース１１１に登録する際にユーザにより入力される。あるいは、端末装置３３０が、アプリケーション３１とは別のアプリケーション（例えば健康管理アプリケーション）により収集された情報を所定のタイミングで（例えば定期的に）データベース１１１にアップロードする。
【００５６】
図８は、仮説のシミュレーション処理を例示するフローチャートである。ステップＳ３０１において、制御手段１５は、このフローのトリガとなるイベントが発生したか判断する。このフローのトリガとなるイベントは、例えば、前回この処理を行ってから所定の時間が経過したというイベント、又はユーザからのフローを開始する指示を受け付けたというイベントである。このフローのトリガとなるイベントが発生したと判断された場合、制御手段１５は、処理をステップＳ３０２に移行する。このフローのトリガとなるイベントが発生していないと判断した場合、制御手段１５は待機する。
【００５７】
ステップＳ３０２において、制御手段１５は、３Ｄモデルの生成要求を３Ｄモデル生成エンジンに送信する。この生成要求は、ユーザＩＤ及びデータベース１１１に記録されている行動情報の少なくとも一部、現状の３Ｄモデリングデータ、及び時間に関する情報を含む。制御手段１５は、データベース１１１に記録されている行動情報のうち生成要求に含む行動情報を選択する。制御手段１５は、例えば、ユーザの指示に応じて行動情報を選択する。時間に関する情報は、いつの時点の状態をシミュレーションするのか（例えば１年後なのか１０年後なのか）を指定する情報である。制御手段１５は、例えば、ユーザの指示に応じて時間に関する情報を指定する。
【００５８】
３Ｄモデル生成エンジンは、この生成要求に含まれる３Ｄモデリングデータ及び行動情報を用いて新たな３Ｄモデリングデータを生成する。一例において、行動情報に基づく３Ｄモデルの時間変化のシミュレーションには、機械学習の技術が用いられる。３Ｄモデル生成エンジンは機械学習モデルを有する。この機械学習モデルは、複数のユーザの各々について、第１時点におけるユーザの３Ｄモデリングデータ、第１時点から第２時点までに期間におけるユーザの行動情報、及び第１時点から第２時点までの時間を入力層に、第２時点におけるユーザの３Ｄモデリングデータを出力層に教師データとして与えて機械学習をさせた学習済モデルである。例えば、データベース１１１に記録されるデータが教師データとして用いられる。３Ｄモデル生成エンジンは、この生成要求に含まれる、現状の３Ｄモデリングデータ、行動情報、及び時間に関する情報を、機械学習モデルの入力層に与える。機械学習モデルは、これらのデータに対応する３Ｄモデリングデータを出力する。この３Ｄモデリングデータは、時間に関する情報により示される日時又は時刻において予想される３Ｄモデルを示す。
【００５９】
ここで、行動情報としてスポーツジムで定期的に筋力トレーニングを行うことを示す情報が、時間に関する情報として１年後を示す情報が入力される例を考える。この場合、機械学習モデルは、そのユーザが１年間その筋力トレーニングを続けた場合に予想される体型の変化を反映した３Ｄモデリングデータを出力する。
【００６０】
ステップＳ３０３において、制御手段１５は、３Ｄモデル生成エンジンから、シミュレーション結果として得られた３Ｄモデリングデータを取得する。制御手段１５は、アプリケーション３１等の要求に応じてこの３Ｄモデリングデータを出力する。
【００６１】
この例によれば、サーバ１０は、行動情報に基づくシミュレーション結果を示す（すなわち未来の予想を示す）３Ｄモデリングデータを得ることができる。
【００６２】
２−４．ブロックチェーンに編集履歴を記録する処理
この例において、アプリケーション３１は、３Ｄモデリングデータを編集をする機能を有する。３Ｄモデリングデータの編集は、例えば、髪の色を変える、髪の長さを変える、髭の有無を変える、髭の長さを変える、肌の色を変える、太らせる、痩せさせる、歳を取らせる、若返らせる、性別を変える、服を変える、眼鏡を着ける／外す、眼鏡を変える、メイクを変える、アクセサリを変える、等の処理を含む。この例においては、これらの処理による編集が正当なものであるかブロックチェーン技術を用いて検証できるようにする。
【００６３】
図９は、ブロックチェーンに編集履歴を記録する処理を例示するフローチャートである。ステップＳ４０１において、制御手段１５は、このフローのトリガとなるイベントが発生したか判断する。このフローのトリガとなるイベントは、例えば、ユーザからのフローを開始する指示を受け付けたというイベントである。このフローのトリガとなるイベントが発生したと判断された場合、制御手段１５は、処理をステップＳ４０２に移行する。このフローのトリガとなるイベントが発生していないと判断した場合、制御手段１５は待機する。
【００６４】
ステップＳ４０１の処理に先立ち、又はその処理の後で、端末装置３０は、ユーザから、３Ｄモデリングデータの編集指示を受け付ける。端末装置３０は、受け付けた編集指示を示す編集履歴をサーバ１０に送信する。この編集履歴は、３ＤモデリングデータのＩＤ及び編集の内容を示す情報を含む。
【００６５】
ステップＳ４０２において、サーバ１０の受信手段１３は、端末装置３０から編集履歴を受信する。制御手段１５は、受信した編集履歴に従って３Ｄモデリングデータを編集（又は修正）するように、３Ｄモデル生成エンジンに要求する（ステップＳ４０３）。この要求は、編集履歴を含む。３Ｄモデル生成エンジンは、この要求に従って３Ｄモデリングデータを修正する。３Ｄモデル生成エンジンは、修正された３Ｄモデリングデータをサーバ１０に送信する。サーバ１０の制御手段１５は、修正された３Ｄモデリングデータを受信する（ステップＳ４０４）。
【００６６】
なお、３Ｄモデリングデータを修正する前に、制御手段１５は、３Ｄモデリングデータの対象物であるユーザに、３Ｄモデリングデータの編集をしてよいか合意を求めてもよい。対象物であるユーザの合意が得られなかった場合、制御手段１５は、この変種指示は対象物の意に沿わないものであるとして、３Ｄモデリングデータの編集を却下する。対象物であるユーザの合意が得られた場合、制御手段１５は、受信した編集履歴に従って３Ｄモデリングデータを編集（又は修正）するように、３Ｄモデル生成エンジンに要求する。
【００６７】
この場合において、対象物であるユーザは、自身の３Ｄモデリングデータを編集してよいか、包括的な許可を与えてもよい。許可を与える範囲は、例えば、対象物であるユーザにより指定される。例えば、包括的な許可は、３Ｄモデリングデータにおける編集対象部位を限定するものであってもよい。具体的には、ユーザは、「髪の毛の色は変更可」、「肌の色は変更不可」、及び「服装は変更不可」等、３Ｄモデリングデータを編集できる範囲を制限する。あるいは、包括的な許可は、編集をしようとするユーザの属性を限定するものであってもよい。具体的には、ユーザは、「編集しようとする者が男性場合は不許可」、「編集しようとする者が１３歳未満の場合は許可」、及び「編集しようとする者が日本在住の場合は許可」等、３Ｄモデリングデータを編集できるユーザを制限する。
【００６８】
制御手段１５は、修正された３Ｄモデリングデータを、編集指示の送信元である端末装置３０に送信する（ステップＳ４０５）。さらに、制御手段１５は、３ＤモデリングデータのＩＤ及びこの編集に係る編集履歴を台帳へ書き込むことを、所定のブロックチェーンのネットワークに対して要求する（ステップＳ４０６）。この処理に関し、制御手段１５は、編集履歴を台帳すなわちブロックチェーンに書き込むことを要求する要求手段の一例である。このブロックチェーンのネットワークに属するマイナーノードは、この編集履歴を受信するとマイニングを試みる。マイニングに成功したノードは、この編集履歴を含む新たなブロックを生成してこのネットワークに提供する。マイニングに成功したノード以外のノードは、新たなブロックを受信すると、そのブロックが正しい手順で生成されたものかどうか検証する。そのノードは、そのノードが正しいと認めたブロックを、そのノードが保有するブロックチェーンに追加する。このようにして、３Ｄモデリングデータの編集履歴がブロックチェーンに記録される。なおこの例において、ブロックチェーンに記録されるのは編集履歴だけであり、３Ｄモデリングデータ本体はブロックチェーンに記録されない。
【００６９】
図１０は、３Ｄモデリングデータを検証する処理を例示するフローチャートである。ステップＳ５０１において、制御手段１５は、このフローのトリガとなるイベントが発生したか判断する。このフローのトリガとなるイベントは、例えば、アプリケーション３１から編集履歴が真正なものであるかの確認要求を受信したというイベント、又は前回、編集履歴が真正なものであるか確認してから所定の時間が経過したというイベントである。例えば、アプリケーション３１は、他のユーザからシェアされた編集履歴が真正なものであるか、サーバ１０に確認を要求する。この確認要求は、例えば、３ＤモデリングデータのＩＤ及び検証の対象となる編集履歴を含む。このフローのトリガとなるイベントが発生したと判断された場合、制御手段１５は、処理をステップＳ５０２に移行する。このフローのトリガとなるイベントが発生していないと判断した場合、制御手段１５は待機する。
【００７０】
ステップＳ５０２において、制御手段１５は、ブロックチェーンのネットワークに台帳の開示を要求する。このブロックチェーンは、パブリックチェーン、プライベートチェーン、及びコンソーシアムチェーンのいずれであってもよい。制御手段１５は、ネットワークから開示された台帳において、要求に含まれる３Ｄモデリングデータの編集履歴を検索する。制御手段１５は、検索により得られた編集履歴と、確認要求に含まれる編集履歴とを対比する（ステップＳ５０３）。両者が一致していた場合（Ｓ５０３：ＹＥＳ）、制御手段１５は、確認要求に含まれる編集履歴が真正なものであると判断する（ステップＳ５０４）。両者が一致していなかった場合（Ｓ５０３：ＮＯ）、制御手段１５は、確認要求に含まれる編集履歴が改ざんされたと判断する（ステップＳ５０５）。
【００７１】
制御手段１５は、検証の結果を確認要求の送信元である端末装置３０に送信する（ステップＳ５０６）。こうして、アプリケーション３１は、取得した編集履歴が真正なものであるか確認をすることができる。
【００７２】
３Ｄモデリングデータの編集に関し、ブロックチェーンを利用した処理はこれに限定されない。例えば、制御手段１５は、ブロックチェーンに記録されている編集履歴から、対象となる３Ｄモデリングデータを過去に編集したユーザ名（及びその日時）を抽出し、これを端末装置３０に提供してもよい。あるいは、制御手段１５は、対象となる３Ｄモデリングデータのうち過去に編集された部分（及びその日時）を抽出し、これを端末装置３０に提供してもよい。
【００７３】
なおここでサーバ１０が行うものとして説明した処理の少なくとも一部を、アプリケーション３１が行ってもよい。例えば、サーバ１０に代わりアプリケーション３１がブロックチェーンのネットワークに台帳の開示を要求してもよい。
【００７４】
３．変形例
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。以下、変形例をいくつか説明する。以下の変形例に記載する事項の一部が、他の一部と組み合わせて適用されてもよい。
【００７５】
実施形態においてはデータベース１１１に３Ｄモデリングデータが記録される例を説明した。しかし、３Ｄモデリングデータはデータベース１１１に記録されず、要求に応じて生成されてもよい。端末装置３０からＡＰＩリクエストを受信すると、サーバ１０は、モデル生成エンジンに対し３Ｄモデリングデータの生成を要求する（データ要求手段としての処理の一例）。この要求は、対象物の画像データ及び距離データを含む。モデル生成エンジンは、この画像データ及び距離データをアルゴリズムに従って処理し、対象物の３Ｄモデリングデータを生成する。サーバ１０は、こうして生成された３Ｄモデリングデータを取得する。この例においては、端末装置３０からＡＰＩリクエストを受信する都度、要求された３Ｄモデリングデータが生成される。
【００７６】
上記の例において、モデル生成エンジンは異なる複数のアルゴリズムを有してもよい。モデル生成エンジンは、これら複数のアルゴリズムの中から選択された一のアルゴリズムに従って３Ｄモデリングデータを生成する。この場合、端末装置３０から送信されるＡＰＩリクエストは、複数のアルゴリズムの中から一のアルゴリズムを指定する情報を含む。サーバ１０は、モデル生成エンジンに対して、ＡＰＩリクエストにより指定されるアルゴリズムを選択して３Ｄモデリングデータの生成を要求する。
【００７７】
編集履歴を記録する台帳はブロックチェーンに限定されない。編集履歴は、例えばサーバ１０におけるデータベース等、ブロックチェーン以外の形態で記録されてもよい。編集履歴がデータベースに記録される場合において、サーバ１０は、秘密鍵Ｋｍ１及び公開鍵Ｋｕ２を用いた暗号化に代えて、又は加えて、編集履歴を用いて生成された情報（例えば、編集履歴のハッシュ値）を暗号鍵として用いて、対象データを暗号化してもよい。この場合、編集履歴を保持している装置のみが対象データを復号できる。
【００７８】
実施形態においては、秘密鍵Ｋｍ１及び公開鍵Ｋｕ２で二重に暗号化した対象データを端末装置３０に送信する例を説明した。この例によれば、公開鍵Ｋｍ２及び秘密鍵Ｋｕ１を有する端末でなければ対象データを復号することができない。しかし、サーバ１０は、対象データの送信に先立って、端末装置３０（及び／又はそのユーザ）の認証を行ってもよい。この場合において、サーバ１０は、端末装置３０（及び／又はそのユーザ）が認証されるまでは対象データを送信しない。
【００７９】
実施形態においては、端末装置３０すなわちユーザ端末からＡＰＩリクエストを送信する例（すなわち、いわゆるＢｔｏＣのサービスの例）を説明したが、サーバ１０にＡＰＩリクエストを送信する情報処理装置は端末装置３０に限定されない。サーバ２０等、他の事業者が運営するサーバが、端末装置３０のユーザの３Ｄモデルを出力するためのデータの送信を要求するＡＰＩリクエストをサーバ１０に送信してもよい。すなわちＢｔｏＢのサービスに本願発明が適用されてもよい。この場合において、Ｋｕ１及びＫｕ２はそのサーバの事業者の秘密鍵及び公開鍵である。
【００８０】
暗号鍵の有効期限は実施形態において例示したものに限定されない。例えば、端末装置３０に３Ｄモデリングデータを送信する場合（すなわちＢｔｏＣのサービスの場合）とサーバ２０に３Ｄモデリングデータを送信する場合（すなわちＢｔｏＢのサービスの場合）とで、公開鍵Ｋｍ２の有効期限が異なっていてもよい。具体的には、前者の場合は有効期限がより長く（例えば、無期限）、後者の場合は有効期限がより短く（例えば、１年や２年等の有限）てもよい。
【００８１】
実施形態においては３Ｄモデリングデータが、サーバ１０が提供するＡＰＩにより提供される例を説明したが、３Ｄモデリングデータを提供する手法はＡＰＩを用いるものに限定されない。
【００８２】
実施形態において説明された機能又は処理の一部は省略されてもよい。例えば、３Ｄモデリングデータが端末装置３０に送信される際、暗号化されなくてもよい。
【００８３】
サーバ１０、サーバ２０、及び端末装置３０のハードウェア構成は実施形態において例示されたものに限定されない。例えば、サーバ１０は物理サーバであってもよいし、いわゆるクラウド上の仮想サーバであってもよい。
【００８４】
実施形態においてサーバ１０が行うものとして説明した処理の少なくとも一部を、端末装置３０（例えばアプリケーション３１）が行ってもよい。また、これらの機能の一部は省略されてもよい。
【００８５】
ＣＰＵ１０１等が実行するプログラムは、インターネットを介してサーバからダウンロード可能な状態で提供されてもよいし、ＣＤ−ＲＯＭ等の記録媒体に記憶された状態で提供されてもよい。
【要約】
サーバは、複数の対象物についての３Ｄデータセットを記憶したデータベースにアクセスするアクセス手段であって、前記３Ｄデータセットが複数の対象物の各々について当該対象物の３Ｄモデリングデータ及び付随データを含み、前記３Ｄモデリングデータが複数の要素を含むアクセス手段と、情報処理装置から、対象物及び複数の要素のうち使用する要素を特定する要求情報を含むＡＰＩリクエストを受信する受信手段と、前記データベースから抽出された、前記要求情報により特定された対象物の、特定された要素からなる３Ｄモデリングデータにより示される３Ｄモデルを出力するためのデータを、前記ＡＰＩリクエストに対するＡＰＩレスポンスとして前記情報処理装置に送信する送信手段とを有する。【図１】
0006799883.tif 000002
【図２】
0006799883.tif 000003
【図３】
0006799883.tif 000004
【図４】
0006799883.tif 000005
【図５】
0006799883.tif 000006
【図６】
0006799883.tif 000007
【図７】
0006799883.tif 000008
【図８】
0006799883.tif 000009
【図９】
0006799883.tif 000010
【図１０】
0006799883.tif 000011