(57)【特許請求の範囲】
【請求項１】
対象物の３Ｄモデルを表す３Ｄモデリングデータを取得する取得手段と、
前記３Ｄモデリングデータに対応する付属データに基づいて、前記３Ｄモデリングデータを構成する要素のうち、修正される要素を自動的に特定する特定手段と、
前記特定された要素を自動的に修正する修正手段と
を有し、
前記３Ｄモデリングデータが、前記対象物の形状を定義するデータ及びテクスチャを含み、
前記付属データが、前記３Ｄモデリングデータの生成に用いられた画像が撮影された日時を示すタイムスタンプを含み、
前記特定手段は、前記タイムスタンプと現在日時との差が所定の条件を満たした場合、前記形状を定義するデータ及びテクスチャを前記修正される要素として特定する
情報処理装置。
【請求項２】
前記修正手段は、前記タイムスタンプと現在日時との差に基づいて前記３Ｄモデルを老化させる修正を行う
請求項１に記載の情報処理装置。
【請求項３】
前記付属データが、前記対象物の生活習慣に関する生活習慣情報を含み、
前記生活習慣情報に基づいて前記対象物の体型の変化についてのシミュレーションを行うシミュレーション手段を有し、
前記特定手段は、前記シミュレーションの結果に基づいて前記修正される要素を特定する
請求項１又は２に記載の情報処理装置。
【請求項４】
それぞれ異なる複数の時期に前記対象物をスキャンしたデータから生成された３Ｄモデリングデータを記憶する記憶手段を有し、
前記シミュレーション手段は、前記複数の３Ｄモデリングデータを用いて前記シミュレーションを行う
請求項３に記載の情報処理装置。
【請求項５】
前記修正手段は、複数の他の対象物から抽出された特徴を組み合わせて前記対象物の３Ｄモデリングデータを修正する
請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
対象物の３Ｄモデルを表す３Ｄモデリングデータであって当該対象物の付属データを含む３Ｄモデリングデータを取得するステップと、
前記付属データに基づいて、前記３Ｄモデリングデータを構成する要素のうち、修正される要素を自動的に特定するステップと、
前記特定された要素を自動的に修正するステップと
を有し、
前記３Ｄモデリングデータが、前記対象物の形状を定義するデータ及びテクスチャを含み、
前記付属データが、前記３Ｄモデリングデータの生成に用いられた画像が撮影された日時を示すタイムスタンプを含み、
前記特定するステップにおいて、前記タイムスタンプと現在日時との差が所定の条件を満たした場合、前記形状を定義するデータ及びテクスチャが前記修正される要素として特定される
情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３Ｄモデリングデータを修正又は編集する技術に関する。
【背景技術】
【０００２】
対象物の３Ｄモデルを示す３Ｄモデリングデータを処理するシステムが知られている。例えば特許文献１は、３Ｄモデリングデータの動的な個性を推定し、推定された個性を示すデータを３Ｄモデリングデータに付加する技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第６４８９７２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の技術においては、一度生成された３Ｄモデリングデータを修正するには手間がかかった。これに対し本発明は、生成された３Ｄモデリングデータをより簡単に修正する技術を提供する。
【課題を解決するための手段】
【０００５】
本開示の一態様は、対象物の３Ｄモデルを表す３Ｄモデリングデータを取得する取得手段と、前記３Ｄモデリングデータに対応する付属データに基づいて、前記３Ｄモデリングデータを構成する要素のうち、修正される要素を自動的に特定する特定手段と、前記特定された要素を自動的に修正する修正手段とを有する情報処理装置を提供する。【０００６】
前記付属データが、前記３Ｄモデルを動かすための動きデータを含み、前記特定手段が、前記対象物を代表する動き示す動きデータを前記修正される要素として特定し、前記修正手段が、前記特定された特徴を誇張した動きを前記動きデータに与える修正を行ってもよい。【０００７】
前記誇張した動きは、前記対象物の骨格及び筋肉の構造上ありえない動きであってもよい。【０００８】
前記３Ｄモデリングデータが、前記対象物の形状を定義するデータ及びテクスチャを含み、前記付属データが、前記付属データが、前記３Ｄモデリングデータの生成に用いられた画像が撮影された日時を示すタイムスタンプを含み、前記特定手段は、前記タイムスタンプと現在日時との差が所定の条件を満たした場合、前記形状を定義するデータ及びテクスチャを前記修正される要素として特定してもよい。【０００９】
前記修正手段は、前記タイムスタンプと現在日時との差に基づいて前記３Ｄモデルを老化させる修正を行ってもよい。【００１０】
前記付属データが、前記対象物の生活習慣に関する生活習慣情報を含み、この情報処理装置は、前記生活習慣情報に基づいて前記対象物の体型の変化についてのシミュレーションを行うシミュレーション手段を有し、前記特定手段は、前記シミュレーションの結果に基づいて前記修正される要素を特定してもよい。【００１１】
この情報処理装置は、それぞれ異なる複数の時期に前記対象物をスキャンしたデータから生成された３Ｄモデリングデータを記憶する記憶手段を有し、前記シミュレーション手段は、前記複数の３Ｄモデリングデータを用いて前記シミュレーションを行ってもよい。【００１２】
前記修正手段は、複数の他の対象物から抽出された特徴を組み合わせて前記対象物の３Ｄモデリングデータを修正してもよい。【００１３】
本開示の別の一態様は、対象物の３Ｄモデルを表す３Ｄモデリングデータであって当該対象物の付属データを含む３Ｄモデリングデータを取得するステップと、前記付属データに基づいて、前記３Ｄモデリングデータを構成する要素のうち、修正される要素を自動的に特定するステップと、前記特定された要素を自動的に修正するステップとを有する情報処理方法を提供する。
【発明の効果】
【００１４】
本発明によれば、生成された３Ｄモデリングデータをより簡単に修正することができる。
【図面の簡単な説明】
【００１５】
【図１】一実施形態に係る３Ｄデータシステム１の構成を例示する図。
【図２】３Ｄデータシステム１の機能構成を例示する図。
【図３】サーバ１０のハードウェア構成を例示する図。
【図４】サーバ１０の動作を例示するフローチャート。
【図５】データベース１１１における３Ｄモデリングデータの構造を例示する図。
【符号の説明】
【００１６】
１…３Ｄデータシステム、３Ｄ…ユーザＩＤ、９…３Ｄデータセット、１０…サーバ、１１…記憶手段、１２…取得手段、１３…特定手段、１４…修正手段、１５…制御手段、２０…サーバ、３０…端末装置、３１…アプリケーション、４０…３Ｄスキャナー、９１…ユーザＩＤ、９２…３Ｄモデリングデータ、９３…付属データ、１０１…ＣＰＵ、１０２…メモリ、１０３…ストレージ、１０４…通信ＩＦ、１１１…データベース、９２１…３Ｄモデリングデータ、９２２…３Ｄモデリングデータ、９２３…３Ｄモデリングデータ。
【発明を実施するための形態】
【００１７】
１．構成
図１は、一実施形態に係る３Ｄデータシステム１の構成を例示する図である。３Ｄデータシステム１は、３Ｄモデリングデータを提供する。ここで、３Ｄモデリングデータとは、人間、動物、物品等の対象物の３Ｄモデルを表すデータをいう。３Ｄモデルとは対象物の三次元的な外観を表すモデルをいう。一例において、３Ｄモデリングデータの外表面には、対象物を撮影した写真から生成された画像が貼り付けられる。３Ｄモデルは、例えば、仮想空間においてユーザ自身の、又はユーザとは別の人物のアバターとして用いられる。３Ｄモデルは、例えば、ビデオゲーム、ビデオ通話、ビデオ会議、ショッピング、又はフィットネスなど、様々なアプリケーション又は用途において用いられる。
【００１８】
３Ｄデータシステム１は、サーバ１０、サーバ２０、端末装置３０、及び３Ｄスキャナー４０を有する。サーバ１０は、３Ｄモデリングデータを管理するサーバである。サーバ１０は、３Ｄデータシステム１の管理事業者により管理される。サーバ２０は、３Ｄモデルを用いたアプリケーションを提供するサーバである。このアプリケーションは、３Ｄデータシステム１の管理事業者自身により提供されてもよいし、別の事業者により提供されてもよい。端末装置３０はアプリケーションを利用する（すなわち３Ｄモデルを利用する）ユーザ端末である。端末装置３０は、スマートフォン、タブレット端末、又はパーソナルコンピュータ等の情報処理装置である。なおここでは図面を簡単にするため、サーバ２０、端末装置３０、及び３Ｄスキャナー４０をそれぞれ１台のみ図示しているが、３Ｄデータシステム１は、複数のサーバ２０及び／又は複数の端末装置３０を有してもよい。
【００１９】
３Ｄスキャナー４０は、対象物をスキャンして３Ｄモデリングデータを生成する装置である。３Ｄスキャナー４０は、対象物の外観の画像（すなわち写真）を撮影し、基準位置（例えばセンサーの位置）から対象物の表面までの距離を測定し、画像データ及び距離データを得る。さらに、３Ｄスキャナー４０は、この画像データ及び距離データに対し所定のアルゴリズムを適用し、対象物の３Ｄモデリングデータを生成する。３Ｄスキャナー４０は、生成された３Ｄモデリングデータをサーバ１０にアップロードする。
【００２０】
サーバ２０は、端末装置３０にアプリケーションプログラムを提供する。このアプリケーションプログラムは、サーバ１０にＡＰＩ（Application Programming Interface）リクエストを送信するためのソフトウェアモジュールを含む。例えば端末装置３０がこのアプリケーションプログラムを実行すると、端末装置３０は、このプログラムに従ってサーバ１０にＡＰＩリクエストを送信する。このＡＰＩリクエストは、３Ｄモデルを出力するためのデータ（例えば３Ｄモデリングデータそのもの）の送信を要求するものである。サーバ１０は、このＡＰＩリクエストに対しＡＰＩレスポンスを送信する。このＡＰＩレスポンスは、要求されたデータを含む。３Ｄモデルを出力するためのデータは、３Ｄモデリングデータそのものであってもよいし、３Ｄモデリングデータを処理した結果を示すデータ（例えば、３Ｄモデルを動かした動画データ）であってもよい。端末装置３０は、この３Ｄデータを用いたアプリケーションをユーザに提供する。
【００２１】
図２は、３Ｄデータシステム１の機能構成を例示する図である。３Ｄデータシステム１は、記憶手段１１、取得手段１２、特定手段１３、修正手段１４、及び制御手段１５を有する。記憶手段１１は、各種のデータを記憶する。この例において、記憶手段１１は、データベース１１１を記憶する。データベース１１１は、対象物の３Ｄモデルを表す３Ｄモデリングデータ及び対応する付属データを記憶する。特定手段１３は、３Ｄモデリングデータに対応する付属データに基づいて、前記３Ｄモデリングデータを構成する要素のうち、修正される要素を自動的に特定する。ここで、「修正される要素を自動的に特定する」とはユーザからの明示的な指示がなくても、修正される要素を最終的に決定することをいう。修正手段１４は、特定手段１３により特定された要素を自動的に修正する。ここで、「自動的に修正する」とはユーザからの明示的な指示がなくても修正処理を行うことをいう。
【００２２】
図３は、サーバ１０のハードウェア構成を例示する図である。サーバ１０は、ＣＰＵ（Central Processing Unit）１０１、メモリ１０２、ストレージ１０３、及び通信ＩＦ１０４を有するコンピュータ装置又は情報処理装置である。ＣＰＵ１０１は、プログラムに従って各種の演算を行う制御装置である。メモリ１０２は、ＣＰＵ１０１が処理を実行する際のワークエリアとして機能する主記憶装置である。メモリ１０２は、例えばＲＡＭ（Random Access Memory）及びＲＯＭ（Read Only Memory）を含む。ストレージ１０３は、各種のデータ及びプログラムを記憶する補助記憶装置である。ストレージ１０３は、例えばＳＳＤ（Solid State Drive）及び／又はＨＤＤ（Hard Disc Drive）を含む。通信ＩＦ１０４は、所定の通信規格（例えばイーサネット）に従って他の装置と通信する装置であり、例えばＮＩＣ（Network Interface Card）を含む。
【００２３】
この例において、ストレージ１０３が記憶するプログラムには、コンピュータ装置を３Ｄデータシステム１におけるサーバ１０として機能させるためのプログラム（以下「管理サーバプログラム」という）が含まれる。ＣＰＵ１０１が管理サーバプログラムを実行している状態において、メモリ１０２及びストレージ１０３の少なくとも一方が記憶手段１１の一例である。ＣＰＵ１０１が取得手段１２、特定手段１３、修正手段１４、及び制御手段１５の一例である。
【００２４】
２．動作
２−１，動作の概要
図４は、サーバ１０の動作を例示するフローチャートである。ステップＳ１０１において、取得手段１２は対象物の３Ｄモデリングデータを取得する。この例において、サーバ１０は、３Ｄスキャナー４０から３Ｄモデリングデータを取得する。サーバ１０は、３Ｄモデリングデータに加えて、付属データを取得する。付属データは、例えば、対象物をスキャンする際に対象物（すなわちユーザ）により入力される。ステップＳ１０２において、記憶手段１１は、取得手段１２が取得した３Ｄモデリングデータ及び付属データをデータベース１１１に記録する。
【００２５】
図５は、データベース１１１における３Ｄモデリングデータの構造を例示する図である。データベース１１１は、複数の３Ｄデータセット９を含む。３Ｄデータセットとは、少なくとも３Ｄモデリングデータを含むデータ群をいう。各３Ｄデータセット９は、ユーザＩＤ９１、３Ｄモデリングデータ（又は３Ｄモデリングデータ本体）９２、及び付属データ９３を含む。付属データ９３は、例えば、ユーザ属性及び更新日を含む。ユーザ属性は、ユーザＩＤ、ユーザ名、生年月日、性別、身長、及び体重などユーザの属性を示す。更新日は、３Ｄデータセットが更新された日時を示す。
【００２６】
この例において、３Ｄモデリングデータ９２は、同じ対象物を表す複数（図では３つ）の３Ｄモデリングデータ９２１、３Ｄモデリングデータ９２２、及び３Ｄモデリングデータ９２３を含む。３Ｄモデリングデータ９２１は、対象物の形状を定義するデータを含む。対象物の形状は、ポリゴン又は自由曲面により定義される。３Ｄモデリングデータ９２１は、さらに対象物の材質に関する情報を含む。材質に関する情報は、色、透明度、反射、屈折率、自己発光、バンプ、及びディスプレイスメントのうち少なくとも１種を含む。３Ｄモデリングデータ９２１は、さらにテクスチャを含む。テクスチャはモデルに貼り付けられる画像である。同様に３Ｄモデリングデータ９２２及び３Ｄモデリングデータ９２３も、モデルの形状を定義するデータ、材質に関する情報、及びテクスチャを含む。モデルの形状を定義するデータ、材質に関する情報、及びテクスチャは、３Ｄモデリングデータ９２の複数の要素の一例である。
【００２７】
一例において、これら複数のデータはそれぞれ品質が異なる。この例において、３Ｄモデリングデータ９２１は高品質（すなわちデータ量大）であり、３Ｄモデリングデータ９２２は中品質（すなわちデータ量中）であり、３Ｄモデリングデータ９２３は低品質（すなわちデータ量小）である。これら、高品質、中品質、及び低品質の３Ｄモデリングデータは、３Ｄモデリングデータ９２を構成する複数の要素の一例である。
【００２８】
この例において、３Ｄモデリングデータ９２１は、複数の部位に区分される。すなわち、形状、材質、及びテクスチャはそれぞれ、複数の部位に区分される。複数の部位とは、対象物の身体構造に基づく区分であり、例えば、頭、胸、腹、腰、腕、手、脚、及び脚を含む。これら複数の部位の少なくとも一部は、さらに複数の副部位に細分化されてもよい。例えば、頭は、髪、目、鼻、口、及び耳に区分されてもよい。これら複数の部位は、３Ｄモデリングデータ９２を構成する複数の要素の別の一例である。
【００２９】
付属データ９３は、ボーンデータを含む。ボーンは、３Ｄモデルを動かすための、動きの単位となる要素を示す。例えば３Ｄモデルがポリゴンにより表される場合、ポリゴンの頂点とボーンとの対応関係（いわゆるスキンウェイト）が設定される（いわゆるスキニング）。ボーンが動くと対応するポリゴンがボーンの動きに追従して動き、全体として３Ｄモデルが動く。ボーンデータも、３Ｄモデリングと同様、品質が異なる複数セットのデータを含んでもよい。なお、ボーンデータは３Ｄモデリングデータに含まれてもよく、その場合、ボーンデータは３Ｄモデリングデータ９２を構成する複数の要素の一例である。
【００３０】
この例において、付属データ９３は、３Ｄモデルの動きを規定する動きデータを含む。一例において、動きデータは、例えば、歩く、走る、ジャンプする、止まる、物を投げる、泳ぐ、及びダンスする等、動作毎に、ボーンの動きとして定義される。例えば走るための動きデータは、歩幅、脚の上げ方、及び腕の振り方等を定義する。別の例において、動きデータは、３Ｄモデリングデータの特定の部位の動き、例えば顔の表情を規定するものであってもよい。例えば表情の動きデータは、口の開け方、目の開け方、及び眉毛の動かし方等を定義する。
【００３１】
動きデータは、例えば、対象物を撮影した動画から抽出されてもよい。例えば、動きデータは、いわゆるモーションキャプチャ技術を用いて生成されてもよい。あるいは、動きデータは、３Ｄデータシステム１においてテンプレートとして用意され、ユーザの選択に従って又はシステムにより自動的に、その３Ｄモデリングデータと対応づけられてもよい。
【００３２】
３Ｄモデリングデータは、３Ｄモデル生成エンジンにより生成される。３Ｄモデル生成エンジンとは、対象物の画像データ及び距離データからその対象物の３Ｄモデルを生成する生成手段の一例であり、例えばソフトウェアモジュールである。この例において、３Ｄモデル生成エンジンは３Ｄスキャナー４０に実装される。３Ｄモデル生成エンジンは、３Ｄスキャナー４０に加えて、又は代えて、サーバ１０に実装されてもよいし、他の装置に実装されてもよい。
【００３３】
再び図４を参照する。ステップＳ１０３において、特定手段１３は、データベース１１１に記録されている複数の３Ｄモデリングデータ９２のうち、修正の対象となる３Ｄモデリングデータ９２（以下「対象データ」という）を特定する。一例において、特定手段１３は、複数のユーザのうち対象となるユーザを特定し、そのユーザの３Ｄモデリングデータ９２を対象データとして特定する。対象となるユーザは、例えば、そのユーザ自身又は別のユーザからの明示的な指示によって特定される。あるいは、特定手段１３は、所定のタイミング（例えば定期的に）において、データベース１１１に含まれる３Ｄモデリングデータ９２のうち特定のグループに属する３Ｄモデリングデータ９２を対象データとして特定してもよい。この場合、複数の３Ｄモデリングデータはあらかじめ何らかの基準に従ってグループ分けされる。
【００３４】
ステップＳ１０４において、特定手段１３は、対象データを構成する複数の要素のうち、修正の対象となる要素（以下「対象要素」という）を自動的に特定する。特定手段は、対象データに対応する付属データに基づいて対象要素を特定する。ステップＳ１０５において、修正手段１４は、対象要素を自動的に修正する。修正の手法は、例えば対象要素に応じてあらかじめ決められている。制御手段１５は、修正された３Ｄモデリングデータを記憶手段１１に通知する。記憶手段１１は、修正された要素を含む３Ｄモデリングデータをデータベース１１１に書き込む（ステップＳ１０６）。こうして、自動的に修正された３Ｄモデリングデータがデータベース１１１に書き込まれる。
【００３５】
以下、ステップＳ１０４及びステップＳ１０５の具体例をいくつか説明する。以下の処理は、少なくとも２つ以上が組み合わせて適用されてもよい。
【００３６】
２−２．動きを誇張する修正
この例において、対象要素は３Ｄモデルの動きを規定する動きデータであり、修正によってその動きが誇張される。
【００３７】
例えばユーザからの指示に応じて、特定手段１３は、対象データに含まれる各種データの中から動きデータを対象要素の候補として特定する。さらに、特定手段１３は、対象要素の候補のうちそのユーザを代表する動きデータを対象要素として特定する（ステップＳ１０４）。ユーザを代表する動きデータは、例えば、複数の動きデータのうち最も使用頻度の高い動きデータである。なおこの場合、データベース１１１において動きデータ毎に使用履歴が記録される。あるいは、ユーザを代表する動きデータは、複数の動きデータのうち、基準となる動きデータとの乖離が最も大きいデータである。なおこの場合の動きデータは対象物のモーションキャプチャから得られた動きデータ、対象物の属性（例えば、年齢、性別、及び体格）等から推定された動きデータ、又はユーザにより編集されたデータ等、テンプレート以外の動きデータである。データベース１１１において、動き毎に基準となるデータが定められる。基準となるデータは、例えば、運営事業者によって決められたテンプレートの動きデータ、又は複数の対象物の動きデータを統計的に処理して得られた、統計的な代表値を反映した動きデータである。
【００３８】
ステップＳ１０５において、修正手段１４は、対象要素である動きデータにより示される動きを誇張した動きを与えるよう、対象要素のデータを修正する。ここで、誇張した動きとは、対象物の骨格及び筋肉の構造上ありえない動きをいう。一例においては、誇張した動きは、走るときに脚が垂直方向に３６０°回転する、腕が水平方向に３６０°回転する、歩幅が身長を超える、（驚いたとき）眼球が顔から飛び出す、（怒ったとき）頭から蒸気が出る等、マンガ的な表現を含む。誇張した動きは、例えば、動き毎にテンプレートとしてあらかじめ定義される。
【００３９】
この例によれば、例えば、ユーザは自身のアバターにマンガ的な表現を与えることができる。
【００４０】
２−３．年齢を変化させる修正
この例において、対象要素は３Ｄモデルの形状を定義するデータ及びテクスチャであり、対象物を撮影したときからの時間の経過に応じて歳を取るよう修正される。
【００４１】
特定手段１３は、対象データの生成に用いられた画像データの生成日時（すなわちタイムスタンプ）と現在日時との対比に基づいて対象要素を特定する。具体的には、両者の差がしきい値を超えた場合、特定手段１３は、対象データに含まれる各種データの中から形状を定義するデータ及びテクスチャを対象要素として特定する（ステップＳ１０４）。画像データの生成日時は付属データ９３により示される。しきい値は、例えば運営事業者によりあらかじめ決められる。あるいは、しきい値は、ユーザにより指定されてもよい。
【００４２】
ステップＳ１０５において、修正手段１４は、タイムスタンプと現在日時との差に基づいて３Ｄモデルを老化させる。具体的には、修正手段１４は、その差に想到する時間を進行させるよう、３Ｄモデルの形状及びテクスチャを変化させる（すなわち３Ｄモデルの老化をシミュレーションする）。例えば、顔の３Ｄモデルを老化させると、皺が増え、頬の肉は下がり、肌の色は暗くなる。
【００４３】
一例において、時間の経過に伴う老化のシミュレーションには、機械学習の技術が用いられる。この例において、修正手段１４は機械学習モデルを有する。この機械学習モデルは、複数のユーザの各々について、第１時点における３Ｄモデルの形状を定義するデータ及びテクスチャ、並びに第１時点から第２時点までの時間を入力層に、第２時点における３Ｄモデルの形状を定義するデータ及びテクスチャを出力層に教師データとして与えて機械学習をさせた学習済モデルである。例えば、データベース１１１に記録されるデータが教師データとして用いられる。修正手段１４は、ステップＳ１０４において特定された対象要素である、形状を定義するデータ及びテクスチャ、及びそのタイムスタンプと現在日時との差を、機械学習モデルの入力層に与える。機械学習モデルは、これらのデータに対応する、形状を定義するデータ及びテクスチャを出力する。この形状を定義するデータ及びテクスチャデータにより示される３Ｄモデルは、現在日時において予想される３Ｄモデルを示す。修正手段１４は、機械学習モデルから出力された形状を定義するデータ及びテクスチャを用いて３Ｄモデリングデータを修正する。
【００４４】
この例によれば、例えば、ユーザは自身のアバターを生成したときから時間が経ってしまった場合でも、アバターに歳を取らせることができる。
【００４５】
２−４．生活習慣によるシミュレーション
この例において、対象要素は３Ｄモデルの形状を定義するデータである。修正手段１４は、対象物の生活習慣が継続したと仮定した場合のシミュレーション結果を反映するよう、３Ｄモデリングデータを修正する。この例において、付属データ９３はユーザの生活習慣に関する情報（以下「生活習慣情報」という）を含む。
【００４６】
生活習慣とは、食事、運動、睡眠、仕事、飲酒、及び喫煙など、対象物の習慣的な行動をいう。食事に関する情報は、例えば、食事の回数、時間、摂取カロリー、及び栄養価の情報を含む。運動に関する情報は、例えば、運動の回数、時間、運動強度、及び運動の種類の情報を含む。睡眠に関する情報は、例えば、就寝時刻、起床時刻、及び眠りの深さの情報を含む。仕事に関する情報は、例えば、始業時刻及び終業時刻の情報を含む。飲酒に関する情報は、例えば、飲酒の回数及び量の情報を含む。喫煙に関する情報は、例えば、喫煙の回数及び量の情報を含む。生活習慣情報は、例えば、３Ｄモデリングデータを生成する際、又は３Ｄモデリングデータをデータベース１１１に登録する際にユーザにより入力される。あるいは、端末装置３０においてアプリケーションにより収集された情報が所定のタイミングで（例えば定期的に）、生活習慣情報としてデータベース１１１にアップロードされる。
【００４７】
あるユーザに関し、付属データ９３により示される生活習慣が所定の条件を満たした場合、特定手段１３は、そのユーザの３Ｄモデルの形状を定義するデータを対象要素として特定する。より具体的には、生活習慣があらかじめ決められた条件を満たした場合、特定手段１３は、その条件と対応づけてあらかじめ決められた要素を対象要素として特定する（ステップＳ１０４）。例えば、飲酒量が警告レベルに達する（一例として週あたりの飲酒量がしきい値を超える）という条件が定義されており、さらにこの条件が３Ｄモデルのお腹回りの形状と対応づけられている例を考える。この例においてユーザの週あたりの飲酒量がしきい値を超えた場合、特定手段１３は、ステップＳ１０４においてお腹回りの形状を対象要素として特定する。別の例として、運動量が推奨レベルを超える（一例として１日あたりの運動量がしきい値を超える）という条件が定義されており、さらにこの条件が３Ｄモデルの全身と対応付けられている例を考える。この例においてユーザの１日あたりの運動量がしきい値を超えた場合、特定手段１３は、ステップＳ１０４において全身の形状を対象要素として特定する。さらにこの条件は、ジョギング、ベンチプレス、スクワット等、具体的な運動の項目に細分化されてもよい。
【００４８】
ステップＳ１０５において、修正手段１４は、ユーザの生活習慣に基づいて３Ｄモデルの変化をシミュレーションする。具体的には、修正手段１４は、ユーザがその生活習慣をある期間継続した場合、体型にどういう変化が起きるかをシミュレーションする。例えば、警告レベル以上の飲酒を１月継続すると、お腹回りが太くなる。
【００４９】
一例において、生活習慣に応じた体型の変化のシミュレーションには、機械学習の技術が用いられる。この例において、修正手段１４は機械学習モデルを有する（シミュレーション手段の一例）。この機械学習モデルは、複数のユーザの各々について、第１時点における３Ｄモデルの形状を定義するデータ、並びに第１時点から第２時点までの生活習慣を入力層に、第２時点における３Ｄモデルの形状を定義するデータを出力層に教師データとして与えて機械学習をさせた学習済モデルである。例えば、データベース１１１に記録されるデータが教師データとして用いられる。修正手段１４は、ステップＳ１０４において特定された対象要素である、形状を定義するデータ、そのユーザの生活習慣、及びその生活習慣を継続する期間を、機械学習モデルの入力層に与える。生活習慣を継続する期間は、例えば修正手段１４によりあらかじめ決められている。機械学習モデルは、これらのデータに対応する、形状を定義するデータを出力する。この形状を定義するデータにより示される３Ｄモデルは、この生活習慣をある期間継続した場合に予想される体型を示す。修正手段１４は、機械学習モデルから出力された形状を定義するデータを用いて３Ｄモデリングデータを修正する。
【００５０】
この例によれば、例えば、ある生活習慣を一定期間継続した場合、そのユーザの体型にどのような影響があるかをシミュレーションすることができる。
【００５１】
２−５．過去の変化実績に基づく将来予測
この例において、対象要素は３Ｄモデルの形状を定義するデータ及びテクスチャであり、過去の変化の実績に基づくシミュレーション結果を反映するよう修正される。この例において、付属データ９３は、過去において異なる複数の時期又はタイミングで（例えば毎月）その対象物をスキャンしたデータ（すなわち対象物を撮影した画像を含むデータ）から生成された３Ｄモデリングデータを含む。例えばユーザは、毎月１回、その対象物（例えば自分自身）を３Ｄスキャナー４０でスキャンする。３Ｄスキャナー４０は、３Ｄモデリングデータを生成し、データベース１１１にアップロードする。記憶手段１１は、新たな３Ｄモデリングデータが追加されると、過去の３Ｄモデリングデータを付属データ９３として記録する。
【００５２】
あるユーザに関し、付属データ９３に含まれる過去の３Ｄモデリングデータが所定の条件を満たした場合、特定手段１３は、そのユーザの３Ｄモデルの形状を定義するデータ及びテクスチャを対象要素として特定する（ステップＳ１０４）。ステップＳ１０５において、修正手段１４は、ユーザの過去の３Ｄモデルに基づいて将来における３Ｄモデルの変化をシミュレーションする。
【００５３】
一例において、過去の変化の実績に基づく将来の変化のシミュレーションには、機械学習の技術が用いられる。この例において、修正手段１４は機械学習モデルを有する。この機械学習モデルは、複数のユーザの各々について、一連の時系列データのうち相対的に過去の複数時点における３Ｄモデリングデータ及びそのタイムスタンプを入力層に、その時系列データのうち相対的に新しい複数時点における３Ｄモデリングデータ及びそのタイムスタンプを出力層に教師データとして与えて機械学習をさせた学習済モデルである。例えば、データベース１１１に記録されるデータが教師データとして用いられる。修正手段１４は、ステップＳ１０４において特定された対象要素である、過去の３Ｄモデリングデータ及びそのタイムスタンプ、並びに予想したい日時（１ヶ月後か１年後か）を、機械学習モデルの入力層に与える。機械学習モデルは、これらのデータに対応する３Ｄモデリングデータを出力する。この３Ｄモデルは、過去の変化の傾向から予想される３Ｄモデルを示す。修正手段１４は、機械学習モデルから出力された３Ｄモデリングデータを用いて３Ｄモデリングデータを修正する。
【００５４】
この例によれば、例えば、直近１年間の外観の変化に基づいて、次の１ヶ月の外観にどのような変化があるかをシミュレーションすることができる。
【００５５】
２−６．他人の動きを取り込み
この例において、対象要素は動きデータであり、他人の動きを取り込むように修正される。この例において付属データは他人を特定する情報（例えば、好きな俳優又は好きなスポーツ選手の情報）を含む。
【００５６】
あるユーザに関し、付属データ９３に含まれる他人を特定する情報が所定の条件を満たした場合、特定手段１３は、そのユーザの動きデータを対象要素として特定する（ステップＳ１０４）。所定の条件は、例えば、その他人を特定する情報がアプリケーション３１により指定される人物と一致するという条件である。これらの俳優又はスポーツ選手においては、他人に提供するための特徴的な動きが定義されている。例えば、俳優Ｘについては笑い方、サッカー選手Ｙについてはキックのフォーム、野球選手Ｚについては投球のフォームが、他人に提供するための動きとして定義されている。あるユーザの付属データが、そのユーザが俳優Ｘを好きだということを示していた場合、特定手段１３は、そのユーザの動きデータのうち、笑うための動きデータを対象要素として特定する。また、特定手段１３は、付属データ９３により特定される他人の動きデータを、修正に用いるデータとして特定する。
【００５７】
ステップＳ１０５において、修正手段１４は、付属データ９３により特定される他人の動きデータを、そのユーザの動きデータに取り込む。このとき、修正手段１４は、この他人の動きデータをそのまま（すなわち１００％）、そのユーザの動きデータとして採用してもよいし、その他人の動きデータとそのユーザの動きデータとをモーフィングにより合成してもよい。
【００５８】
また、特定手段１３は、複数の他人の動きデータを用いてユーザの動きデータを修正してもよい。例えば、付属データ９３により、そのユーザが俳優Ａ及び俳優Ｂ（いずれも笑うための動きデータが他人に提供するための動きとして定義されている）が好きであることが示されている例を考える。この場合、特定手段１３は、俳優Ａの笑うための動きデータ、及び俳優Ｂの笑うための動きデータを、修正に用いるデータとして特定する。修正手段１４は、俳優Ａ及び俳優Ｂの動きデータをモーフィングにより合成し、これを用いてそのユーザの動きデータを修正する。
【００５９】
この例によれば、例えば、ユーザは、自分のアバターに他人の動きや表情を真似させることができる。
【００６０】
３．変形例
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。以下、変形例をいくつか説明する。以下の変形例に記載した事項のうち２つ以上のものが組み合わせて用いられてもよい。
【００６１】
実施形態においては修正手段１４自身が３Ｄモデリングデータの修正を行う例を説明したが、修正手段１４は、３Ｄモデル生成エンジンに対し、修正の依頼をし、３Ｄモデル生成エンジンから修正された３Ｄモデリングデータを取得してもよい。本稿でいう「修正する」は、このように、３Ｄモデリングデータを修正するソフトウェアモジュールに対し修正の依頼をし、修正されたデータを受け取ることを含む。
【００６２】
修正手段１４は、自動的に修正された３Ｄモデリングデータをアプリケーション３１（すなわちユーザ）に提示した後、その３Ｄモデリングデータに対するさらなる修正の指示を受け付けてもよい。例えば、修正手段１４は、将来の変化をシミュレーションする場合において、どの時点の変化を予測するのか、その時期をユーザの指示に応じて変更してもよい。別の例で、他人の動きデータとそのユーザの動きデータとをモーフィングする場合において、モーフィングの割合をユーザの指示に応じて変更してもよい。
【００６３】
３Ｄモデリングデータの変化をシミュレーションする手法は、機械学習を用いるものに限定されない。機械学習に加えて、又は代えて、ヒューリスティックな手法が用いられてもよい。
【００６４】
実施形態においては、端末装置３０すなわちユーザ端末からＡＰＩリクエストを送信する例（すなわち、いわゆるＢｔｏＣのサービスの例）を説明したが、サーバ１０にＡＰＩリクエストを送信する情報処理装置は端末装置３０に限定されない。サーバ２０等、他の事業者が運営するサーバが、端末装置３０のユーザの３Ｄモデルを出力するためのデータの送信を要求するＡＰＩリクエストをサーバ１０に送信してもよい。すなわちＢｔｏＢのサービスに本願発明が適用されてもよい。
【００６５】
サーバ１０、サーバ２０、及び端末装置３０のハードウェア構成は実施形態において例示されたものに限定されない。例えば、サーバ１０は物理サーバであってもよいし、いわゆるクラウド上の仮想サーバであってもよい。
【００６６】
実施形態においてサーバ１０が有するものとして説明した機能の少なくとも一部を、端末装置３０等の他の装置に実装してもよい。また、サーバ１０は物理サーバであってもよいし、仮想サーバであってもよい。
【００６７】
ＣＰＵ１０１等が実行するプログラムは、インターネットを介してサーバからダウンロード可能な状態で提供されてもよいし、ＣＤ−ＲＯＭ等の記録媒体に記憶された状態で提供されてもよい。
【要約】
情報処理装置は、対象物の３Ｄモデルを表す３Ｄモデリングデータを取得する取得手段と、前記３Ｄモデリングデータに対応する付属データに基づいて、前記３Ｄモデリングデータを構成する要素のうち、修正される要素を自動的に特定する特定手段と、前記特定された要素を自動的に修正する修正手段とを有する。【図１】
0006826747.tif 000002
【図２】
0006826747.tif 000003
【図３】
0006826747.tif 000004
【図４】
0006826747.tif 000005
【図５】
0006826747.tif 000006