(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2024-11-27
(45)【発行日】2024-12-05
(54)【発明の名称】プログラム、情報処理装置、方法及びシステム
(51)【国際特許分類】
G06T 19/20 20110101AFI20241128BHJP
【FI】
G06T19/20
(21)【出願番号】P 2023193154
(22)【出願日】2023-11-13
【審査請求日】2023-11-13
【早期審査対象出願】
(73)【特許権者】
【識別番号】523429405
【氏名又は名称】エクスアールジョン株式会社
(74)【代理人】
【識別番号】110002815
【氏名又は名称】IPTech弁理士法人
(72)【発明者】
【氏名】島藤 真澄
(72)【発明者】
【氏名】島藤 利光
(72)【発明者】
【氏名】田中 直樹
(72)【発明者】
【氏名】ホルヘ ルイス コペテ バスコ
【審査官】岡本 俊威
(56)【参考文献】
【文献】特開2023-022222(JP,A)
【文献】特開2011-113135(JP,A)
【文献】特開2009-199438(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 13/00-19/20
(57)【特許請求の範囲】
【請求項1】
プロセッサとメモリとを備えるコンピュータを動作させるためのプログラムであって、
前記メモリには、ボーンモデルが予め定義された3Dモデルのテンプレートが予め格納されており、このテンプレートは、前記3Dモデルの各部位を規定するパラメータ及びこのパラメータの数値を有し、前記パラメータの数値は予め定められた所定値を有し、変更可能であり、
さらに、前記メモリには、ユーザが生成を希望するキャラクタを表す第1の情報を入力とし、特定の前記パラメータの前記数値を有する前記3Dモデルを出力とする第2の学習モデルが予め格納されており、
前記プログラムは、前記プロセッサに、
前記第1の情報を受け入れる第1ステップと、
前記ユーザが前記3Dモデルの各部位を規定する前記パラメータの前記数値を前記部位ごとにそれぞれ設定する操作によらずとも、前記ユーザから受け付けた前記第1の情報に応じて、前記3Dモデルの各部位を規定する前記パラメータの前記数値を特定する第2ステップと、
前記メモリに格納された前記テンプレートを用いて、前記予め定められた所定値から前記第2ステップにより特定された前記パラメータの前記数値に変更した前記3Dモデルを出力する第3ステップとを実行させ
、
前記第2ステップ及び前記第3ステップにおいて、前記第1の情報を前記第2の学習モデルに入力し、出力として得られた特定の前記パラメータの前記数値を有する前記3Dモデルを出力する、プログラム。
【請求項2】
前記第1の情報は、前記3Dモデルを特徴付けるキーワードを含む単語、前記3Dモデルを特徴付ける性別、人種、年齢、及びフリーテキストの少なくとも一つを含む文章の少なくとも一つである、請求項1に記載のプログラム。
【請求項3】
前記メモリには、前記ユーザから受け入れた前記第1の情報の履歴が格納されており、
前記プログラムは、前記プロセッサに、さらに、前記履歴に基づいて、所定回数以上前記ユーザから受け入れた前記第1の情報を前記ユーザに提示する第4ステップを実行させ、
前記第1ステップにおいて、前記第4ステップによって提示された前記第1の情報の指定を受け入れる、請求項2に記載のプログラム。
【請求項4】
前記3Dモデルのテンプレートは、前記ボーンモデルとこのボーンモデルを基準として設定されたメッシュモデルとを有する、請求項1に記載のプログラム。
【請求項5】
前記パラメータ及び前記パラメータの前記数値は、前記メッシュモデルの少なくとも一部を規定するものである、請求項4に記載のプログラム。
【請求項6】
前記3Dモデルのテンプレートには前記パラメータの前記数値が予め設定されており、前記パラメータの前記数値は前記第1の情報に基づいて予め設定されている、請求項1に記載のプログラム。
【請求項7】
前記メモリには、前記パラメータの前記数値が予め設定された前記3Dモデルのテンプレートが複数格納されており、
前記第3ステップにおいて、前記第1の情報に基づいて、複数の前記3Dモデルのテンプレートからいずれかの前記3Dモデルのテンプレートを選択し、選択した前記3Dモデルのテンプレートを用いて、前記第2ステップにより特定された前記パラメータの前記数値を有する前記3Dモデルを出力する、請求項6に記載のプログラム。
【請求項8】
前記メモリには、それぞれ異なる複数の前記ボーンモデルを有する複数の前記3Dモデルのテンプレートが格納されている、請求項4に記載のプログラム。
【請求項9】
前記メモリには、前記第1の情報を入力とし、前記ボーンモデルを出力とする第1の学習モデルが格納されており、
前記第3ステップにおいて、前記第1の情報を前記第1の学習モデルに入力し、出力として得られた前記ボーンモデルを有する前記3Dモデルのテンプレートを選択し、選択した前記3Dモデルのテンプレートを用いて、前記第2ステップにより特定された前記パラメータの前記数値を有する前記3Dモデルを出力する、請求項8に記載のプログラム。
【請求項10】
前記メモリには、前記ユーザから受け入れた前記第1の情報の履歴が格納されており、
前記プログラムは、前記プロセッサに、さらに、前記履歴に基づいて前記メモリに格納されている前記3Dモデルのテンプレートの前記パラメータの前記数値を変更する第4ステップを実行させる、請求項6に記載のプログラム。
【請求項11】
前記プログラムは、前記プロセッサにさらに、
前記ユーザから、前記第3ステップにおいて出力した前記3Dモデルに対して、前記パラメータの前記数値の修正指示を受け入れる第5ステップと、
前記第5ステップで受け入れた前記パラメータの前記数値の修正指示に基づいて、前記3Dモデルの前記パラメータの前記数値を修正する第6ステップとを実行させる、請求項1に記載のプログラム。
【請求項12】
プロセッサとメモリとを備えた情報処理装置であって、
前記メモリには、ボーンモデルが予め定義された3Dモデルのテンプレートが予め格納されており、このテンプレートは、前記3Dモデルの各部位を規定するパラメータ及びこのパラメータの数値を有し、前記パラメータの数値は予め定められた所定値を有し、変更可能であり、
さらに、前記メモリには、ユーザが生成を希望するキャラクタを表す第1の情報を入力とし、特定の前記パラメータの前記数値を有する前記3Dモデルを出力とする第2の学習モデルが予め格納されており、
前記プロセッサは、
前記第1の情報を受け入れる第1ステップと、
前記ユーザが前記3Dモデルの各部位を規定する前記パラメータの前記数値を前記部位ごとにそれぞれ設定する操作によらずとも、前記ユーザから受け付けた前記第1の情報に応じて、前記3Dモデルの各部位を規定する前記パラメータの前記数値を特定する第2ステップと、
前記メモリに格納された前記テンプレートを用いて、前記予め定められた所定値から前記第2ステップにより特定された前記パラメータの前記数値に変更した前記3Dモデルを出力する第3ステップとを実行
し、
前記第2ステップ及び前記第3ステップにおいて、前記第1の情報を前記第2の学習モデルに入力し、出として得られた特定の前記パラメータの前記数値を有する前記3Dモデルを出力する、情報処理装置。
【請求項13】
プロセッサとメモリとを備えるコンピュータにより実行される方法であって、
前記メモリには、ボーンモデルが予め定義された3Dモデルのテンプレートが予め格納されており、このテンプレートは、前記3Dモデルの各部位を規定するパラメータ及びこのパラメータの数値を有し、前記パラメータの数値は予め定められた所定値を有し、変更可能であり、
さらに、前記メモリには、ユーザが生成を希望するキャラクタを表す第1の情報を入力とし、特定の前記パラメータの前記数値を有する前記3Dモデルを出力とする第2の学習モデルが予め格納されており、
前記プロセッサは、
前記第1の情報を受け入れる第1ステップと、
前記ユーザが前記3Dモデルの各部位を規定する前記パラメータの前記数値を前記部位ごとにそれぞれ設定する操作によらずとも、前記ユーザから受け付けた前記第1の情報に応じて、前記3Dモデルの各部位を規定する前記パラメータの前記数値を特定する第2ステップと、
前記メモリに格納された前記テンプレートを用いて、前記予め定められた所定値から前記第2ステップにより特定された前記パラメータの前記数値に変更した前記3Dモデルを出力する第3ステップとを実行
し、
前記第2ステップ及び前記第3ステップにおいて、前記第1の情報を前記第2の学習モデルに入力し、出力として得られた特定の前記パラメータの前記数値を有する前記3Dモデルを出力する、方法。
【請求項14】
ボーンモデルが予め定義された3Dモデルのテンプレートが予め格納された
第1のメモリであって、前記テンプレートは、前記3Dモデルの各部位を規定するパラメータ及びこのパラメータの数値を有し、前記パラメータの数値は予め定められた所定値を有し、変更可能である
第1のメモリと、
ユーザが生成を希望するキャラクタを表す第1の情報を入力とし、特定の前記パラメータの前記数値を有する前記3Dモデルを出力とする第2の学習モデルが予め格納された第2のメモリと、
前記第1の情報を受け入れる手段と、
前記ユーザが前記3Dモデルの各部位を規定する前記パラメータの前記数値を前記部位ごとにそれぞれ設定する操作によらずとも、前記ユーザから受け付けた前記第1の情報に応じて、前記3Dモデルの各部位を規定する前記パラメータの前記数値を特定する手段と、
前記
第1のメモリに格納された前記テンプレートを用いて、前記予め定められた所定値から前記特定する手段により特定された前記パラメータの前記数値に変更した前記3Dモデルを出力する手段とを有
し、
前記パラメータの前記数値を特定する手段及び前記3Dモデルを出力する手段は、前記第1の情報を前記第2の学習モデルに入力し、出力として得られた特定の前記パラメータの前記数値を有する前記3Dモデルを出力する、システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、プログラム、情報処理装置、方法及びシステムに関する。
【背景技術】
【0002】
仮想空間内において動作可能な3D(3次元)モデルに対するニーズがある。一例として、VTuberと呼ばれる、3Dモデルであるアバターを自身の動作に合わせて手足、表情等を動作させ、動画配信する人々は、自身のキャラクタに合わせた3Dモデルの使用を希望する。
【0003】
上述した技術に関連して、テキストを入力するとこのテキストにマッチした画像を生成する技術が知られている(特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載された技術では、生成した画像をその後ユーザが変形等を施すためには、ユーザが再度テキストを入力する必要があった。
【0006】
そこで、本開示は、ユーザが後々自由に活用可能な3Dモデルを簡易に提供する技術を提供することである。
【課題を解決するための手段】
【0007】
プロセッサとメモリとを備えるコンピュータを動作させるためのプログラムである。メモリには、ボーンモデルが予め定義された3Dモデルのテンプレートであって、3Dモデルの各部位を規定するパラメータ及びこのパラメータの値が変更可能な3Dモデルのテンプレートが予め格納されている。プログラムは、プロセッサに、ユーザが生成を希望するキャラクタを表す第1の情報を受け入れる第1ステップと、ユーザが3Dモデルの各部位を規定するパラメータ値を部位ごとにそれぞれ設定する操作によらずとも、ユーザから受け付けた第1の情報に応じて、3Dモデルの各部位を規定するパラメータ値を特定する第2ステップと、メモリに格納された3Dモデルのテンプレートを用いて、第2ステップにより特定されたパラメータ値を有する3Dモデルを出力する第3ステップとを実行させる。
【発明の効果】
【0008】
本開示によれば、ユーザが後々自由に活用可能な3Dモデルを簡易に提供する技術を提供することができる。
【図面の簡単な説明】
【0009】
【
図1】一実施形態に係るシステムの全体の構成を示す図である。
【
図2】一実施形態に係る端末装置の機能的な構成を示す図である。
【
図3】一実施形態に係るサーバの機能的な構成を示す図である。
【
図4】一実施形態に係るユーザデータベースのデータ構造の一例を示す図である。
【
図5】一実施形態に係る3Dモデルテンプレートデータベースのデータ構造の一例を示す図である。
【
図6】一実施形態に係るユーザ生成3Dモデルデータベースのデータ構造の一例を示す図である。
【
図7】一実施形態に係るシステムにおける処理流れの一例を示すフローチャートである。
【
図8】一実施形態に係るシステムにおける処理流れの一例を示すフローチャートであり、
図7の処理流れに続く処理流れの一例を示すフローチャートである。
【
図9】一実施形態に係る端末装置で表示される画面の一例を表す模式図である。
【
図10】一実施形態に係る端末装置で表示される画面の別の一例を表す模式図である。
【
図11】一実施形態に係る端末装置で表示される画面のまた別の一例を表す模式図である。
【発明を実施するための形態】
【0010】
以下、本開示の実施形態について図面を参照して説明する。実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。なお、以下の実施形態は、特許請求の範囲に記載された本開示の内容を不当に限定するものではない。また、実施形態に示される構成要素のすべてが、本開示の必須の構成要素であるとは限らない。また、各図は模式図であり、必ずしも厳密に図示されたものではない。
【0011】
また、以下の説明において、「プロセッサ」は、1以上のプロセッサである。少なくとも1つのプロセッサは、典型的には、CPU(Central Processing Unit)のようなマイクロプロセッサであるが、GPU(Graphics Processing Unit)のような他種のプロセッサでもよい。少なくとも1つのプロセッサは、シングルコアでもよいしマルチコアでもよい。
【0012】
また、少なくとも1つのプロセッサは、処理の一部又は全部を行うハードウェア回路(例えばFPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit))といった広義のプロセッサでもよい。
【0013】
また、以下の説明において、「xxxテーブル」といった表現により、入力に対して出力が得られる情報を説明することがあるが、この情報は、どのような構造のデータでもよいし、入力に対する出力を発生するニューラルネットワークのような学習モデルでもよい。従って、「xxxテーブル」を「xxx情報」と言うことができる。
【0014】
また、以下の説明において、各テーブルの構成は一例であり、1つのテーブルは、2以上のテーブルに分割されてもよいし、2以上のテーブルの全部又は一部が1つのテーブルであってもよい。
【0015】
また、以下の説明において、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサによって実行されることで、定められた処理を、適宜に記憶部及び/又はインターフェース部などを用いながら行うため、処理の主語が、プロセッサ(或いは、そのプロセッサを有するコントローラのようなデバイス)とされてもよい。
【0016】
プログラムは、計算機のような装置にインストールされてもよいし、例えば、プログラム配布サーバ又は計算機が読み取り可能な(例えば非一時的な)記録媒体にあってもよい。また、以下の説明において、2以上のプログラムが1つのプログラムとして実現されてもよいし、1つのプログラムが2以上のプログラムとして実現されてもよい。
【0017】
本明細書中に記載されている構成要素により実現される機能は、当該記載された機能を実現するようにプログラムされた、汎用プロセッサ、特定用途プロセッサ、集積回路、ASICs、CPU、従来型の回路、および/又はそれらの組合せを含む、circuitry又はprocessing circuitryにおいて実装されてもよい。プロセッサは、トランジスタやその他の回路を含み、circuitry又はprocessing circuitryとみなされる。プロセッサは、メモリに格納されたプログラムを実行する、programmed processorであってもよい。
【0018】
本明細書において、circuitry、ユニット、手段は、記載された機能を実現するようにプログラムされたハードウェア、又は実行するハードウェアである。当該ハードウェアは、本明細書に開示されているあらゆるハードウェア、又は、当該記載された機能を実現するようにプログラムされた、又は、実行するものとして知られているあらゆるハードウェアであってもよい。
【0019】
当該ハードウェアがcircuitryのタイプであるとみなされるプロセッサである場合、当該circuitry、手段、又はユニットは、ハードウェアと、当該ハードウェア及び又はプロセッサを構成する為に用いられるソフトウェアの組合せである。
【0020】
また、以下の説明において、種々の対象の識別情報として、識別番号が使用されるが、識別番号以外の種類の識別情報(例えば、英字や符号を含んだ識別子)が採用されてもよい。
【0021】
また、以下の説明において、同種の要素を区別しないで説明する場合には、参照符号(又は、参照符号のうちの共通符号)を使用し、同種の要素を区別して説明する場合は、要素の識別番号(又は参照符号)を使用することがある。
【0022】
また、以下の説明において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【0023】
<0 システムの概要>
【0024】
以下、本開示に係るシステムの骨子について説明するが、以下の説明により本開示に係るシステムが限定的に解釈される必要はなく、本明細書の開示及び当業者が有する通常の技術的知識及び常識に基づいて本開示の内容を理解すべきである。
【0025】
本開示に係るシステムは、システムの利用者であるユーザが、ユーザが希望する3Dモデルを生成し、この3Dモデルを構成するデータを入手するものである。
【0026】
本明細書における3Dモデルとは、人体を模した形状を有する生命体(人間に限らず仮想的な生命体であってもよい)、動物、植物などの生命体(これも仮想的な生命体であってもよい)、さらには、建物、箱などの無生物の外観を有する物体であり、3次元空間上で所定の領域を占める物体を、この3次元空間上で表現するためのモデルである。好ましくはこの物体は3次元空間上で3次元の領域を占めるものであるが、例えば2次元の領域を占める(画像など)物体が3次元空間上に存在する場合であっても、かかる物体を3次元空間上で表現するためのモデルであってもよい。
【0027】
3Dモデルは、好ましくは、3次元空間上で表現された際に、上述した生命体等の一部が動作可能である。ここにいう動作可能とは、例えば、生命体が人体を模した形状を有する生命体であれば、人体の頭部、胴体、四肢の少なくとも一部が動作可能なことをいう。特に好ましくは、生命体等の一部を、ユーザからの指示(ここにいう指示は直接的なものではなく、概念的、例えば「バンザイして」なども含まれる)により動作可能な3Dモデルである。さらに好ましくは、ユーザの一部の動作をセンサ等によりトレースし、この動作と同様または類似の動作を生命体等に行わせることが可能な3Dモデルである。ユーザの一部の動作をトレースして3Dモデルの動作に反映させる技術は既知であるので、ここでは詳細な説明を省略する。
【0028】
以下の説明では、3Dモデルは人体を模した形状を有する生命体についての3Dモデルであるものとして詳細な説明を行うが、本開示が、3Dモデルとして人体を模した形状を有する生命体についての3Dモデルであることには限定されない。
【0029】
3Dモデルは、いわゆるVTuberのようにアバターを用いて、より詳細にはアバターに対してVTuberが所定の動作指示を行うことでこのアバターに所定の動作を行わせる、また、ゲーム制作者が、自身が制作するゲーム空間に存在するゲームキャラクターに対して、ゲームのプレイヤー、またはゲームプログラム・システムが所定の動作指示を行うことで、このゲーム空間内において所定の動作を行わせる際に、このアバターやゲームキャラクターとして用いられる。当然、これ以外の用途で3Dモデルを用いてもよいことは言うまでもない。
【0030】
この際、VTuberやゲーム制作者が、自分の表現意図や趣向等を反映した3Dモデルを制作するには相当の手間を要する。3Dモデルを生成するアプリケーションやツールは市販されており、一般的には、VTuberやゲーム制作者は、これらアプリケーションやツールを用いて、各種設定を行うことで、自分の表現意図や趣向等を反映した3Dモデルを制作する。しかしながら、自分の表現意図や趣向等を反映した3Dモデルを制作するためにはVTuberたちが相当のスキルを確保する必要があり、また、スキルがあったとしても、実際にアプリケーションやツールを使用して3Dモデルを生成させるためには相当の時間を要する。
【0031】
特に、ゲームには、モブキャラ(ノンプレイヤーキャラクター)と呼ばれる、個々の名称が設定されていないキャラクターを大量に発生させて動作させる場面が設定されることがあり、このようなモブキャラについて、一体一体上述の手間と時間をかけて3Dモデルを生成させることは時間的、経済的なメリットに欠ける結果になりかねない。
【0032】
そこで、本開示に係るシステムでは、ユーザが、生成を希望するキャラクタを表すキーワード、性別、人種、年齢、フリーテキストを含む第1の情報を入力すると、サーバが、この第1の情報に基づいて、3Dモデルの各部位を規定するパラメータ及びパラメータの値を特定し、特定したパラメータの値を有する3Dモデルを生成して出力する。
【0033】
このような、ユーザから入力された第1の情報に基づいて3Dモデルを出力するために、サーバには、ボーンモデルが予め定義され、3Dモデルの各部位を規定するパラメータ及びパラメータの値が変更可能な3Dモデルのテンプレートが格納されている。サーバは、ユーザから入力された第1の情報に基づいて、3Dモデルのテンプレートに対して、第1の情報から特定したパラメータの値を変更した3Dモデルを出力する。
【0034】
これにより、ユーザには、第1の情報を入力するだけで、ユーザが後々自由に活用可能な3Dモデルが簡易に提供される。ここにいう簡易とは、ユーザが3Dモデルのパラメータの値を自身で種々調整することなく、ユーザの表現意図や趣向等を反映した3Dモデルが提供されるということであり、その後、ユーザは、提供された3Dモデルのパラメータの値を調整することで、さらにユーザの表現意図や趣向等を反映した3Dモデルを実現でき、その意味で、後々自由に活用可能な3Dモデルがユーザに提供されることになる。
【0035】
<一実施形態>
<1 システム全体の構成図>
図1は、本実施形態の3Dモデル提供システム(以下、単に「システム」と称する)1の全体の構成を示す図である。
図1に示すように、システム1は、複数の端末装置(
図1では、端末装置10A及び端末装置10Bを示している。以下、総称して「端末装置10」ということもある)と、サーバ20とを含む。端末装置10とサーバ20とは、ネットワーク80を介して相互に通信可能に接続されている。ネットワーク80は、有線または無線ネットワークにより構成される。本実施形態では、サーバ20はWebサーバ(クラウドサーバを含む)としての機能を有するサーバであり、端末装置10との間でWebページにより情報のやり取りを行う。また、端末装置10にはWebページを閲覧するためのWebページブラウザがインストールされているが、サーバ20のサービスを提供するための専用アプリケーションがインストールされ、専用アプリケーションにより閲覧可能に構成してもよい。
【0036】
端末装置10は、本開示に係るシステム1を使用して電子商取引サイトの構築の支援を受けるユーザが操作する装置である。端末装置10のユーザは、電子商取引サイトへの出品を行うアイテムについて商品名、商品写真等を入力し、システム1のサーバ20が構築を支援する電子商取引サイトへの出品を行う。端末装置10は、据え置き型のPC(Personal Computer)、ラップトップPC等により実現される。この他、端末装置10は、例えば移動体通信システムに対応したタブレットや、スマートフォン等の携帯端末であるとしてもよい。
【0037】
端末装置10は、ネットワーク80を介してサーバ20と通信可能に接続される。端末装置10は、4G、5G、LTE(Long Term Evolution)等の通信規格に対応した無線基地局81、IEEE(Institute of Electrical and Electronics Engineers)802.11等の無線LAN(Local Area Network)規格に対応した無線LANルータ82等の通信機器と通信することにより、ネットワーク80に接続される。
図2に示すように、端末装置10は、通信IF(Interface)12と、入力装置13と、出力装置14と、メモリ15と、記憶部16と、プロセッサ19とを備える。
【0038】
通信IF12は、端末装置10が外部の装置と通信するため、信号を入出力するためのインターフェースである。入力装置13は、ユーザからの入力操作を受け付けるための入力装置(例えば、キーボードや、タッチパネル、タッチパッド、マウス等のポインティングデバイス等)である。出力装置14は、ユーザに対し情報を提示するための出力装置(ディスプレイ、スピーカ等)である。メモリ15は、プログラム、及び、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)等の揮発性のメモリである。記憶部16は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD(Hard Disc Drive)である。プロセッサ19は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路等により構成される。
【0039】
サーバ20は、本実施形態のシステム1の管理者により管理され、端末装置10の利用者であるユーザにより適宜格納内容が修正/追加/削除がされる。
【0040】
サーバ20は、ネットワーク80に接続されたコンピュータである。サーバ20は、通信IF22と、入出力IF23と、メモリ25と、ストレージ26と、プロセッサ29とを備える。
【0041】
通信IF22は、サーバ20が外部の装置と通信するため、信号を入出力するためのインターフェースである。入出力IF23は、ユーザからの入力操作を受け付けるための入力装置、及び、ユーザに対し情報を提示するための出力装置とのインターフェースとして機能する。メモリ25は、プログラム、及び、プログラム等で処理されるデータ等を一時的に記憶するためのものであり、例えばDRAM(Dynamic Random Access Memory)等の揮発性のメモリである。ストレージ26は、データを保存するための記憶装置であり、例えばフラッシュメモリ、HDD(Hard Disc Drive)である。プロセッサ29は、プログラムに記述された命令セットを実行するためのハードウェアであり、演算装置、レジスタ、周辺回路等により構成される。
【0042】
<1.1 端末装置10の機能的な構成>
図2は、実施の形態1のシステム1を構成する端末装置10の機能的な構成を示すブロック図である。
図3に示すように、端末装置10は、複数のアンテナ(アンテナ111、アンテナ112)と、各アンテナに対応する無線通信部(第1無線通信部121、第2無線通信部122)と、操作受付部130(キーボード131及びマウス132を含む)と、音声処理部140と、マイク141と、スピーカ142と、ディスプレイ150と、記憶部170と、制御部180とを含む。端末装置10は、
図3では特に図示していない機能及び構成(例えば、電力を保持するためのバッテリー、バッテリーから各回路への電力の供給を制御する電力供給回路等)も有している。
図2に示すように、端末装置10に含まれる各ブロックは、バス等により電気的に接続される。
【0043】
アンテナ111は、端末装置10が発する信号を電波として放射する。また、アンテナ111は、空間から電波を受信して受信信号を第1無線通信部121へ与える。
【0044】
アンテナ112は、端末装置10が発する信号を電波として放射する。また、アンテナ112は、空間から電波を受信して受信信号を第2無線通信部122へ与える。
【0045】
第1無線通信部121は、端末装置10が他の無線機器と通信するため、アンテナ111を介して信号を送受信するための変復調処理等を行う。第2無線通信部122は、端末装置10が他の無線機器と通信するため、アンテナ112を介して信号を送受信するための変復調処理等を行う。第1無線通信部121と第2無線通信部122とは、チューナー、RSSI(Received Signal Strength Indicator)算出回路、CRC(Cyclic Redundancy Check)算出回路、高周波回路等を含む通信モジュールである。第1無線通信部121と第2無線通信部122とは、端末装置10が送受信する無線信号の変復調や周波数変換を行い、受信信号を制御部180へ与える。
【0046】
操作受付部130は、ユーザの入力操作を受け付けるための機構を有する。具体的には、操作受付部130は、キーボード131と、マウス132とを含む。なお、操作受付部130は、例えば静電容量方式のタッチパネルを用いることによって、タッチパネルに対するユーザの接触位置を検出する、タッチスクリーンとして構成してもよい。
【0047】
キーボード131は、端末装置10のユーザの入力操作を受け付ける。キーボード131は、文字入力を行う装置であり、入力された文字情報を入力信号として制御部180へ出力する。
【0048】
マウス132は、端末装置10のユーザの入力操作を受け付ける。マウス132は、ディスプレイ150に表示されている表示物を選択等するためのポインティングデバイスであり、画面上で選択された位置情報と、ボタン押下されていることを示す情報とを入力信号として制御部180へ出力する。
【0049】
音声処理部140は、音声信号の変復調を行う。音声処理部140は、マイク141から与えられる信号を変調して、変調後の信号を制御部180へ与える。また、音声処理部140は、音声信号をスピーカ142へ与える。音声処理部140は、例えば音声処理用のプロセッサによって実現される。マイク141は、音声入力を受け付けて、当該音声入力に対応する音声信号を音声処理部140へ与える。スピーカ142は、音声処理部140から与えられる音声信号を音声に変換して当該音声を端末装置10の外部へ出力する。
【0050】
ディスプレイ150は、制御部180の制御に応じて、画像、動画、テキストなどのデータを表示する。ディスプレイ150は、例えばLCD(Liquid Crystal Display)、または有機EL(Electro-Luminescence)ディスプレイによって実現される。
【0051】
記憶部170は、例えばフラッシュメモリ等により構成され、端末装置10が使用するデータ及びプログラムを記憶する。ある局面において、記憶部170は、ユーザ情報1701を記憶する。
【0052】
ユーザ情報1701は、端末装置10を使用してシステム1の機能である3Dモデル生成を行うユーザの情報である。
【0053】
制御部180は、記憶部170に記憶されるプログラムを読み込んで、プログラムに含まれる命令を実行することにより、端末装置10の動作を制御する。制御部180は、例えば予め端末装置10にインストールされているアプリケーションである。制御部180は、プログラムに従って動作することにより、入力操作受付部1801と、送受信部1802と、データ処理部1803と、報知制御部1804としての機能を発揮する。
【0054】
入力操作受付部1801は、キーボード131等の入力装置に対するユーザの入力操作を受け付ける処理を行う。
【0055】
送受信部1802は、端末装置10が、サーバ20等の外部の装置と、通信プロトコルに従ってデータを送受信するための処理を行う。
【0056】
データ処理部1803は、端末装置10が入力を受け付けたデータに対し、プログラムに従って演算を行い、演算結果をメモリ等に出力する処理を行う。
【0057】
報知制御部1804は、ユーザに対し情報を提示する処理を行う。報知制御部1804は、表示画像をディスプレイ150に表示させる処理、音声をスピーカ142に出力させる処理等を行う。
【0058】
<1.2 サーバ20の機能的な構成>
図3は、サーバ20の機能的な構成の例を示す図である。図3に示すように、サーバ20は、通信部201と、記憶部202と、制御部203としての機能を発揮する。
【0059】
通信部201は、サーバ20が外部の装置と通信するための処理を行う。
【0060】
記憶部202は、サーバ20が使用するデータ及びプログラムを記憶する。記憶部202は、ユーザデータベース(DB:DataBase)2022と、3DモデルテンプレートDB2023と、3Dモデルテンプレート2024と、パラメータリスト2025と、ユーザ生成3DモデルDB2026と、ユーザ生成3Dモデル2027と、プロンプト履歴2028等を記憶する。
【0061】
ユーザDB2022は、本実施形態のシステム1を利用するユーザに関する情報が格納されたデータベースである。サーバ20は、ユーザが使用する端末装置10を用いた、サーバ20へのログインの際にユーザが端末装置10を用いて入力した情報と、ユーザDB2022に格納されたユーザの情報とに基づいて、端末装置10を用いるユーザが既に登録済みのユーザであるか否かの認証を、後述する認証モジュール2033により行い、登録済みのユーザであるとの認証結果を得られたら、サーバ20を用いた3Dモデルの生成処理を許可する。あるいは、サーバ20は、ユーザが使用する端末装置10の記憶部170に格納されたユーザ情報1701と、ユーザDB2022に格納されたユーザの情報とに基づいて、端末装置10を用いるユーザが既に登録済みのユーザであるか否かの認証を認証モジュール2033により行ってもよい。ユーザDB2022の詳細については後述する。
【0062】
3DモデルテンプレートDB2023は、記憶部202に格納された3Dモデルテンプレート2024を管理するためのデータベースである。後述するように、3Dモデルテンプレートは、ボーンモデルと、3Dモデルの各部位を規定するパラメータ及びその値を有する。3DモデルテンプレートDB2023は、個々の3Dモデルテンプレート2024がどのボーンモデルを用い、また、個々のパラメータについて予め設定された(プリセットされた)パラメータの値がどの値であるかを管理するためのデータベースである。3DモデルテンプレートDB2023の詳細についても後述する。
【0063】
3Dモデルテンプレート2024は、ユーザに提示する3Dモデルのテンプレートとなるデータである。上述したように、3Dモデルテンプレート2024は、ボーンモデルと、3Dモデルの各部位を規定するパラメータ及びその値を有する。本実施形態のシステム1では、3Dモデルテンプレート2024に設定されたパラメータの値は予め所定の値に設定されている。
【0064】
1つの3Dモデルテンプレート2024は複数のパラメータを有し、それぞれのパラメータはその値を有する。3Dモデルテンプレート2024に設定されたパラメータ及びその値は、3Dモデルの各部位を規定するものである。どのようなパラメータが3Dモデルテンプレート2024に設定されているかの具体的な説明は省略するが、一例として、数十、数百単位のパラメータ及びその値が1つの3Dモデルテンプレート2024に設定可能である。パラメータの一例としては、3Dモデルの上唇の厚さ、幅、などであり、本実施形態のシステム1では、数多くのパラメータが3Dモデルテンプレート2024に設定されることで、3Dモデルの微細な形状等を規定することができる。
【0065】
本明細書において、「パラメータ」「パラメータの値」は複数種類あることを前提とするので、以下の説明では、パラメータが複数種類あることを個々に明示しない。当然、1つの3Dモデルテンプレート2024が単一のパラメータ及びその値を有する可能性は排除しないが、3Dモデルテンプレート2024に単一のパラメータ及びその値のみ設定可能であると、3Dモデルを入手したユーザが、後日パラメータの値の設定変更により、ユーザ好みの3Dモデルに変更することが難しい。
【0066】
本実施形態のシステム1では、3Dモデルテンプレート2024は1種類記憶部202に格納されていてもよいし、複数種類の3Dモデルテンプレート2024が記憶部202に格納されていてもよい。ここにいう複数種類とは、ボーンモデルが異なる3Dモデルテンプレート2024が複数種類あってもよいし、ボーンモデルは共通でも、予め設定されたパラメータの値が複数種類あってもよいという意味である。また、予め設定されたパラメータが複数種類あるということは、上述したように、パラメータは複数種類あることを前提とするので、異なるパラメータの値を有するパラメータの組が複数種類あるという意味である。
【0067】
好ましくは、3Dモデルテンプレート2024は、ボーンモデルを基準として設定されたメッシュモデルを有する。3Dモデルテンプレート2024がメッシュモデルを有する場合、パラメータ及びその値は、このメッシュモデルの少なくとも一部を規定するものであることが好ましい。
【0068】
さらに好ましくは、3Dモデルテンプレート2024に予め設定されたパラメータの値は、後述する、ユーザが端末装置10を介して入力する第1の情報に基づいて設定されている。
【0069】
パラメータリスト2025は、3Dモデルテンプレート2024に設定可能なパラメータのリストである。
【0070】
ユーザ生成3DモデルDB2026は、後述する3Dモデル生成モジュール2035が生成した、ユーザが端末装置10を介して入力した第1の情報に基づく3Dモデルを管理するためのデータベースである。ユーザ生成3DモデルDB2026の詳細については後述する。
【0071】
ユーザ生成3Dモデル2027は、後述する3Dモデル生成モジュール2035が生成した、ユーザが端末装置10を介して入力した第1の情報に基づく3Dモデルである。このユーザ生成3Dモデル2027は、既に説明したように、パラメータ及びパラメータ値が設定されており、ユーザは、ユーザ生成3Dモデル2027を入手した後、パラメータ値を自身で変更することにより、よりユーザ好みの3Dモデルにすることができる。
【0072】
プロンプト履歴2028は、ユーザが入力した第1の情報の履歴である。好ましくは、プロンプト履歴2028はDB化されている。DB化に必要な情報としては、第1の情報に加えて、後述するユーザIDのようにユーザを特定する情報、ユーザが入力した日時などが挙げられる。加えて、ユーザが同一あるいは類似の単語を複数回入力した場合は、単語の出現回数もDB化してもよい。
【0073】
制御部203は、サーバ20のプロセッサが、記憶部202に格納されたアプリケーションプログラム2021に従って処理を行うことにより、各種モジュールとして受信制御モジュール2031、送信制御モジュール2032、認証モジュール2033、情報受入モジュール2034、3Dモデル生成モジュール2035、3Dモデル修正モジュール2036、3Dモデル出力モジュール2037、提示制御部2038に示す機能を発揮する。
【0074】
受信制御モジュール2031は、サーバ20が外部の装置から通信プロトコルに従って信号を受信する処理を制御する。
【0075】
送信制御モジュール2032は、サーバ20が外部の装置に対し通信プロトコルに従って信号を送信する処理を制御する。
【0076】
認証モジュール2033は、本実施形態のシステム1のユーザが端末装置10を介して入力した、ユーザの認証情報に基づいて認証を行い、認証に成功したら本実施形態のシステム1の利用を許可する。認証モジュール2033による認証動作そのものは既知であるので、詳細な説明は省略するが、一例として、記憶部202のユーザDB2022に格納されているユーザ情報と、ユーザが端末装置10を介して入力したユーザ情報とが一致したら認証に成功したと判定し、一致しなかったら認証に失敗したと判定する手法が挙げられる。また、端末装置10の記憶部170に格納されたユーザ情報1701をサーバ20に送出し、送出されたユーザ情報1701とユーザDB2022に格納されたユーザ情報との一致を判定してもよい。
【0077】
情報受入モジュール2034は、ユーザが端末装置10を介して入力した、このユーザがサーバ20に生成を希望するキャラクタを表す第1の情報を受け入れ、受け入れた第1の情報を一時的に記憶部202に格納する。
【0078】
情報受入モジュール2034が第1の情報を受け入れる手法は任意であり、周知の情報受入手法に基づいて第1の情報を受け入れればよい。一般的な手法としては、ユーザが端末装置10の操作受付部130を介してテキストベースで第1の情報を入力し、端末装置10の送受信部1802が、ユーザが入力した第1の情報をサーバ20に送出する手法である。あるいは、端末装置10の音声処理部140のマイク141を用いてユーザが第1の情報を音声入力し、この第1の情報を制御部180が音声認識を行ってテキストに変換し、送受信部1802が同様にサーバ20に送出する手法も可能である。
【0079】
情報受入モジュール2034は、テキスト以外にも画像を受け入れることも可能である。この写真は、ユーザがサーバ20に生成を希望するキャラクタのテンプレートとしてユーザが認識しているキャラクタが表現された画像である。この場合、情報受入モジュール2034は、入力を受け入れた画像を表すテキストを生成する。
【0080】
画像からこの画像を表すテキストを生成する手法は任意であり、一例として、システム1の外にある検索データベース(
図1で図略)に画像を入力し、この画像の特徴を表すテキストを取得する手法がある。あるいは、機械学習モデル(図示略)を記憶部202に用意し、商品写真の特徴量を算出して、この特徴量に基づいて物体の分別、検出を行う手法がある。このような手法の一例として、R-CNN(Region Based Convolutional Neural Networks)を機械学習モデルとして用いたもの、YOLO(You Only Look Once)、SSD(Single Shot MultiBox Detector)などが知られている。
【0081】
ユーザが入力した第1の情報は、ユーザが生成を希望するキャラクタを表すものであり、ユーザがサーバ20により生成を希望する3Dモデルを特徴付けるキーワードを含む単語、3Dモデルを特徴付ける性別、人種、年齢、及びフリーテキストの少なくとも一つを含む文章が代表として挙げられるが、このような具体例以外であっても、後述する3Dモデル生成モジュール2035が3Dモデルを生成可能なものであれば、特段の限定はない。
【0082】
例えば、ユーザが第1の情報として、キャラクタを表す自然文を入力することも可能である。この場合、情報受入モジュール2034は、入力された第1の情報である自然文から単語を抽出し、記憶部202に一時的に格納する。単語抽出手法は既知のものが好適に適用可能であるので、ここでは詳細な説明を省略する。一例として、かな漢字変換システムで用いられている単語抽出手法や、形態素解析器による単語抽出手法などが挙げられる。また、あるいはさらに、構文解析器を用いて自然言語処理を行い、ユーザが入力した第1の情報から不要な(つまり意味解釈にあまり関係のない)情報を削除してもよい。
【0083】
ここで、情報受入モジュール2034は、ユーザが入力した第1の情報を記憶部202に格納する際に、プロンプト履歴2028としてDB化して格納する。
【0084】
3Dモデル生成モジュール2035は、情報受入モジュール2034が受け入れた第1の情報に基づいて、ユーザが3Dモデルの各部位を規定するパラメータ値を部位ごとにそれぞれ設定する操作によらずとも、3Dモデルの各部位を規定するパラメータ値を特定し、記憶部202に格納された3Dモデルテンプレート2024を用いて、特定したパラメータ値を有する3Dモデルを生成する。そして、3Dモデル生成モジュール2035は、生成した3Dモデルをユーザ生成3Dモデル2027として記憶部202に格納するとともに、記憶部202に格納したユーザ生成3Dモデル2027についての情報をユーザ生成3DモデルDB2026に格納する。
【0085】
まず、3Dモデル生成モジュール2035は、情報受入モジュール2034が受け入れた第1の情報、さらには、この第1の情報に基づいて情報受入モジュール2034が生成した単語等に基づいて、3Dモデルの各部位を規定するパラメータ値を特定する。
【0086】
3Dモデル生成モジュール2035が第1の情報等に基づいてパラメータ値を特定する手法に特段の限定はなく、種々の手法が適用可能である。一例として、記憶部202にルールベースのDBを格納しておき、第1の情報として特定の単語をユーザが入力したら、3Dモデル生成モジュール2035がDBを検索し、この単語に対して予め規定されたパラメータ及びパラメータの値を出力する手法が一例として挙げられる。
【0087】
次いで、3Dモデル生成モジュール2035は、記憶部202に格納された3Dモデルテンプレート2024を用いて、特定したパラメータ値を有する3Dモデルを生成する。より具体的には、3Dモデルテンプレート2024には複数のパラメータ及びパラメータの値が設定されているので、3Dモデル生成モジュール2035は、設定されたパラメータ値を、特定されたパラメータの値に変更することで、第1の情報に基づいた3Dモデルを生成する。
【0088】
3Dモデルテンプレート2024がボーンモデルとこのボーンモデルを基準として設定されたメッシュモデルを有する場合、パラメータ及びパラメータの値は、このメッシュモデルの少なくとも一部を規定するものとされている。従って、3Dモデル生成モジュール2035によるパラメータ値変更(特定したパラメータ値への設定)は、パラメータ値に基づくメッシュモデルの少なくとも一部の変更に相当する。
【0089】
また、記憶部202に格納されている3Dモデルテンプレート2024が、パラメータ値が予め設定された複数の3Dモデルテンプレート2024が複数である場合、3Dモデル生成モジュール2035は、第1の情報に基づいて、複数の3Dモデルテンプレート2024からいずれかの3Dモデルテンプレート2024を選択し、選択した3Dモデルテンプレート2024を用いて、特定されたパラメータ値を有する3Dモデルを出力する。
【0090】
あるいは、また、記憶部202に格納されている3Dモデルテンプレート2024が、それぞれ異なる複数のボーンモデルを有する複数の3Dモデルテンプレート2024であり、また、記憶部202に、第1の情報を入力とし、ボーンモデルを出力とする第1の学習モデル(図略)が格納されている場合、3Dモデル生成モジュール2035は、ユーザが入力した第1の情報を第1の学習モデルに入力し、出力として得られたボーンモデルを有する3Dモデルテンプレート2024を選択し、選択した3Dモデルテンプレート2024を用いて、特定されたパラメータの値を有する3Dモデルを生成する。
【0091】
あるいは、さらに、記憶部202に、第1の情報を入力とし、特定のパラメータの値を有する3Dモデルを出力とする第2の学習モデル(図略)が格納されている場合、3Dモデル生成モジュール2035は、ユーザが入力した第1の情報を第2の学習モデルに入力し、出力として得られた特定のパラメータ値を有する3Dモデルを生成する。
【0092】
第1及び第2の学習モデルは、教師データに基づき、図略のモデル学習プログラムに従って機械学習モデルに機械学習を行わせることにより得られる。第1の学習モデルは、第1の情報を説明変数とし、特定のボーンモデルを有する3Dモデルテンプレート2024を目的変数とする学習モデルである。従って、第1の学習モデルに対して第1の情報を入力すると、特定のボーンモデルを有する3Dモデルテンプレート2024が出力される。また、第2の学習モデルは、第1の情報を説明変数とし、特定のパラメータ値を有する3Dモデルテンプレート2024を目的変数とする学習モデルである。従って、第1の学習モデルに対して第1の情報を入力すると、特定のパラメータ値を有する3Dモデルテンプレート2024が出力される。
【0093】
本実施形態に係る学習モデルは、例えば、複数の関数が合成されたパラメータ付き合成関数である。パラメータ付き合成関数は、複数の調整可能な関数、及びパラメータの組合せにより定義される。本実施形態に係る予測モデルは、上記の要請を満たす如何なるパラメータ付き合成関数であってもよいが、多層のネットワークモデル(以下、多層化ネットワークと呼ぶ)であるとする。多層化ネットワークを用いる予測モデルは、入力層と、出力層と、入力層と出力層との間に設けられる少なくとも1層の中間層あるいは隠れ層とを有する。予測モデルは、人工知能ソフトウェアの一部であるプログラムモジュールとしての使用が想定される。
【0094】
本実施形態に係る多層化ネットワークとしては、例えば、深層学習(Deep Learning)の対象となる多層ニューラルネットワークである深層ニューラルネットワーク(Deep Neural Network:DNN)が用いられ得る。DNNとしては、例えば、画像を対象とする畳み込みニューラルネットワーク(Convolution Neural Network:CNN)を用いてもよい。
【0095】
また、上記はあくまで予測モデルの例示であり、予測モデルとしては、他の構成を備えてもよい。
【0096】
また、3Dモデル生成モジュール2035は、プロンプト履歴2028としてDB化された第1の情報の履歴に基づいて、3Dモデルテンプレート2024のパラメータの値を変更する。
【0097】
3Dモデル修正モジュール2036は、3Dモデル生成モジュール2035が生成した3Dモデルに対して、ユーザからの指示に基づいて3Dモデルのパラメータ値を変更することで、3Dモデル生成モジュール2035が生成した3Dモデルに対して微調整を行う。
【0098】
3Dモデル出力モジュール2037は、3Dモデル生成モジュール2035が生成し、必要に応じて3Dモデル修正モジュール2036がパラメータの値を修正した、ユーザ生成3Dモデル2027を出力する。3Dモデル出力モジュール2037によるユーザ生成3Dモデル2027の出力手法は任意であり、一例として、ユーザ生成3Dモデル2027を構成するデータを端末装置10に送出する手法が挙げられる。但し、ユーザ生成3Dモデル2027が大容量のデータであるので、データ圧縮手法等を用いてデータ量の削減を行ってもよい。
【0099】
提示制御部2038は、端末装置10のディスプレイ150に所定の画面を表示させるための表示制御信号を生成して端末装置10に送信し、端末装置10の操作受付部130をユーザが操作することで入力された操作入力を取得する。特に、本実施形態のシステム1における提示制御部2038は、情報受入モジュール2034によりユーザから第1の情報を受け入れる際に、プロンプト履歴2028を参照して、ユーザが頻繁に、より詳細には所定回数以上入力した第1の情報を、ユーザが入力する第1の情報の候補として端末装置10のディスプレイ150に表示させる。そして、ユーザが例えばディスプレイ150をクリックする等の操作を行うことにより、候補として表示した第1の情報のうち、クリック入力された第1の情報を、ユーザが入力した第1の情報として情報受入モジュール2034が受け入れてもよい。
【0100】
<2 データ構造>
図4~
図6は、サーバ20が記憶するデータベースのデータ構造を示す図である。なお、
図4~
図6は一例であり、記載されていないデータを除外するものではない。
【0101】
図4~
図6に示すデータベースは、リレーショナルデータベースを指し、行と列によって構造的に規定された表形式のテーブルと呼ばれるデータ集合を、互いに関連づけて管理するためのものである。データベースでは、表をテーブル、表の列をカラム、表の行をレコードと呼ぶ。リレーショナルデータベースでは、テーブル同士の関係を設定し、関連づけることができる。
【0102】
通常、各テーブルにはレコードを一意に特定するための主キーとなるカラムが設定されるが、カラムへの主キーの設定は必須ではない。サーバ20の制御部203は、各種プログラムに従ってプロセッサ29に、記憶部202に記憶された特定のテーブルにレコードを追加、削除、更新を実行させることができる。
【0103】
図4は、ユーザDB2022のデータ構造の一例を示す図である。
図4に示すように、ユーザDB2022のレコードの各々は、例えば、項目「ユーザID」と、項目「ユーザ名称」と、項目「ユーザパスワード」と、項目「ユーザアドレス」とを含む。ユーザDB2022の各項目のうち、項目「ユーザ名称」と項目「ユーザパスワード」と項目「ユーザアドレス」とは、端末装置10のユーザが本実施形態のシステム1に対してユーザ登録する際に、ユーザ登録を希望するユーザが入力して受信制御モジュール2031が受け入れ、この受信制御モジュール2031により入力される。また、項目「ユーザID」は、項目「ユーザ名称」等を受信制御モジュール2031が受け入れてユーザDB2022に入力する際に、この受信制御モジュール2031が生成して入力する。ユーザDB2022が記憶する情報は、適宜変更・更新することが可能である。
【0104】
項目「ユーザID」は、本実施形態のシステム1(正確にはサーバ20)にユーザ登録をしたユーザを識別するための情報である。項目「ユーザ名称」は、「ユーザID」により特定されるユーザのシステム1における名称を示す情報である。項目「ユーザパスワード」は、「ユーザID」により特定されるユーザがシステム1にログインする際に用いるパスワードを示す情報である。なお、本実施形態のシステム1では、ユーザ登録時にユーザが入力したパスワードは暗号化されてユーザDB2022に格納されているので、
図4においてパスワードそのものは特定化されない表現をしている。項目「ユーザアドレス」は、「ユーザID」により特定されるユーザが使用しているメールアドレスアイテムを示す情報である。
【0105】
図5は、3DモデルテンプレートDB2023のデータ構造の一例を示す図である。
図5に示すように、3DモデルテンプレートDB2023のレコードの各々は、例えば、項目「テンプレートID」と、項目「ボーンモデルID」と、項目「パラメータ」とを含む。また、項目「パラメータ」は、項目「パラメータID」と、項目「パラメータ数値」とを含む。3DモデルテンプレートDB2023の各項目は、本実施形態のシステム1の管理者が事前に生成して3DモデルテンプレートDB2023に格納する。3DモデルテンプレートDB2023が記憶する情報は、適宜変更・更新することが可能である。
【0106】
項目「テンプレートID」は、3DモデルテンプレートDB2023により管理される3Dモデルテンプレート2024を識別するための情報である。項目「ボーンモデルID」は、「テンプレートID」により特定される3Dモデルテンプレート2024が有するボーンモデルを識別するための情報である。項目「パラメータID」は、「テンプレートID」により特定される3Dモデルテンプレート2024が有するパラメータを識別するための情報である。項目「パラメータ数値」は、「パラメータID」により特定されるパラメータの値を示す情報である。
【0107】
図6は、ユーザ生成3DモデルDB2026のデータ構造の一例を示す図である。
図6に示すように、ユーザ生成3DモデルDBのレコードの各々は、例えば、項目「モデルID」と、項目「ユーザID」と、項目「テンプレートID」と、項目「ボーンモデルID」と、項目「パラメータ」とを含む。また、項目「パラメータ」は、項目「パラメータID」と、項目「パラメータ数値」とを含む。ユーザ生成3DモデルDB2026の各項目は、3Dモデル生成モジュール2035が3Dモデルを生成する際に、生成した3Dモデルについて3Dモデル生成モジュール2035が格納する。ユーザ生成3DモデルDB2026が記憶する情報は、適宜変更・更新することが可能である。
【0108】
項目「モデルID」は、ユーザ生成3DモデルDB2026により管理されるユーザ生成3Dモデル2027を識別するための情報である。項目「ユーザID」は、「モデルID」により特定されるユーザ生成3Dモデル2027を生成した(正確にはユーザ生成3Dモデル2027の生成の元となる第1の情報を入力した)ユーザを特定するための情報であり、ユーザDB2022の項目「ユーザID」と共通する。項目「ボーンモデルID」は、「モデルID」により特定されるユーザ生成3Dモデル2027が有するボーンモデルを識別するための情報である。項目「パラメータID」は、「モデルID」により特定されるユーザ生成3Dモデル2027が有するパラメータを識別するための情報である。項目「パラメータ数値」は、「パラメータID」により特定されるパラメータの値を示す情報である。
【0109】
<3 動作例>
以下、サーバ20及び端末装置10の動作の一例について説明する。
【0110】
図7は、サーバ20及び端末装置10の動作の一例を表すフローチャートである。
【0111】
ステップS700において、サーバ20の制御部203は、本実施形態のシステム1にログインしようとするユーザが所持する端末装置10のディスプレイ150に対して、ログイン画面を表示させるための表示制御信号を送出し、端末装置10の制御部180は、サーバ20から送出された表示制御信号に基づいて、ディスプレイ150にログイン画面を表示させる。
【0112】
具体的には、例えば、制御部203の認証モジュール2033は、本実施形態のシステム1にログインしようとするユーザが所持する端末装置10のディスプレイ150に対して、ログイン画面を表示させるための表示制御信号を送出し、端末装置10の制御部180は、サーバ20から送出された表示制御信号に基づいて、ディスプレイ150にログイン画面を表示させる。なお、端末装置10とサーバ20との間の通信は所定の暗号化処理がされており、端末装置10とサーバ20との間の通信のセッション間は、外部の者が通信内容を窃取することはできないものとする。
【0113】
そして、ユーザは、端末装置10の操作受付部130を介してユーザ情報をログイン画面に入力するので、制御部180の入力操作受付部1801が入力内容を受け付け、入力されたユーザ情報を送受信部1802がサーバ20に送出する。サーバ20の制御部203、より詳細には、例えば認証モジュール2033は、端末装置10から送出されたユーザ情報と、ユーザDB2022に格納されているユーザ情報とを照合することで認証動作を行い、認証が成功した場合、ユーザによるログインが成功したものとして、以降のユーザの動作を許可する。
図7に示すフローチャートでは、ユーザが入力したユーザ情報により認証が成功したものとしている。
【0114】
ステップS701において、サーバ20の制御部203は、認証が成功したユーザが所持する端末装置10のディスプレイ150に対して、第1の情報の入力画面を表示させるための表示制御信号を送出し、端末装置10の制御部180は、サーバ20から送出された表示制御信号に基づいて、ディスプレイ150にログイン画面を表示させる。
【0115】
具体的には、例えば制御部203の情報受入モジュール2034は、認証が成功したユーザが所持する端末装置10のディスプレイ150に対して、第1の情報の入力画面を表示させるための表示制御信号を送出し、端末装置10の制御部180は、サーバ20から送出された表示制御信号に基づいて、ディスプレイ150にログイン画面を表示させる。
【0116】
そして、ユーザは、端末装置10の操作受付部130を介して第1の情報を入力画面に入力するので、制御部180の入力操作受付部1801が入力内容を受け付け、入力された第1の情報を送受信部1802がサーバ20に送出する。サーバ20の制御部203、より詳細には、例えば情報受入モジュール2034は、ステップS702において、端末装置10から送出された第1の情報を受け入れ、プロンプト履歴2028として記憶部202に格納する。
【0117】
ステップS703において、サーバ20の制御部203は、記憶部202に格納されている3Dモデルテンプレート2024を読み込む。具体的には、例えば制御部203の3Dモデル生成モジュール2035は、記憶部202に格納されている3Dモデルテンプレート2024を読み込む。この際、3Dモデル生成モジュール2035は、記憶部202に3Dモデルテンプレート2024が複数格納されている場合、ステップS702において受け入れた第1の情報に基づいて、いずれかの3Dモデルテンプレート2024を選択する。
【0118】
ステップS704において、サーバ20の制御部203は、ステップS703で読み込んだ3Dモデルテンプレート2024に対して、ステップS702で受け入れた第1の情報に基づいて、3Dモデルテンプレート2024に対して設定すべきパラメータ値を特定し、特定したパラメータ値を用いて、ステップS703で読み込んだ3Dモデルテンプレート2024のパラメータ値を調整する。具体的には、例えば制御部203の3Dモデル生成モジュール2035は、テップS703で読み込んだ3Dモデルテンプレート2024に対して、ステップS702で受け入れた第1の情報に基づいて、3Dモデルテンプレート2024に対して設定すべきパラメータ値を特定し、特定したパラメータ値を用いて、ステップS703で読み込んだ3Dモデルテンプレート2024のパラメータ値を調整する。
【0119】
ステップS705において、サーバ20の制御部203は、ステップS704でパラメータ値を調整した3Dモデルテンプレート2024(これはユーザが生成したユーザ生成3Dモデル2027でもある)を端末装置10のディスプレイ150に表示させるための表示制御信号を生成し、この表示制御信号を端末装置10に送出して、端末装置10のディスプレイ150にユーザ生成3Dモデル2027を表示させる。具体的には、例えば制御部203の3Dモデル生成モジュール2035は、ステップS704でパラメータ値を調整したユーザ生成3Dモデル2027を端末装置10のディスプレイ150に表示させるための表示制御信号を生成し、この表示制御信号を端末装置10に送出して、端末装置10のディスプレイ150にユーザ生成3Dモデル2027を表示させる。
【0120】
ステップS706において、端末装置10の制御部180は、操作受付部130を介して、ディスプレイ150に表示されているユーザ生成3Dモデル2027に対して、修正を求めるパラメータ値の入力があったか否かの判定を行う。そして、判定が肯定されたら(ステップS706においてYES)、プログラムはステップS707に移行し、判定が否定されたら(ステップS706においてNO)、プログラムは
図8のステップS800に移行する。
【0121】
ステップS707において、端末装置10の制御部180は、ステップS706において入力されたパラメータ値をサーバ20に送出し、サーバ20の制御部203は、送出されたパラメータ値を受け入れ、受け入れたパラメータ値に基づいて、ユーザ生成3Dモデル2027を修正する。具体的には、例えば制御部203の3Dモデル修正モジュール2036は、送出されたパラメータ値を受け入れ、受け入れたパラメータ値に基づいて、ユーザ生成3Dモデル2027を修正する。この後、プログラムはステップS706に戻って、ユーザからのパラメータ値の修正入力の有無を判定する。
【0122】
図8に移行して、ステップS800では、端末装置10の制御部180は、操作受付部130を介して、ディスプレイ150に表示されているユーザ生成3Dモデル2027に対して出力指示があったかか否かの判定を行う。そして、判定が肯定されたら(ステップS800においてYES)、プログラムはステップS801に移行し、判定が否定されたら(ステップS800においてNO)、プログラムは
図7のステップS706に戻る。
【0123】
ステップS801において、サーバ20の制御部203は、ステップS800において出力指示があったユーザ生成3Dモデル2027を端末装置10に送出することで、このユーザ生成3Dモデル2027を出力する。具体的には、例えば制御部203の3Dモデル出力モジュール2037は、ステップS800において出力指示があったユーザ生成3Dモデル2027を端末装置10に送出することで、このユーザ生成3Dモデル2027を出力する。
【0124】
<4 画面例>
以下、端末装置10に出力される画面の一例を、
図9~
図11を参照して説明する。
【0125】
図9は、本実施形態のシステム1における端末装置10のディスプレイ150に表示された画面の一例を示す図である。
図9に示す画面は、
図7のステップS701において、第1の情報を端末装置10のユーザに入力させるための入力画面である。画面900には、第1の情報を入力するための入力窓901が設けられている。端末装置10のユーザは、操作受付部130を用いて第1の情報をこの入力窓901に入力し、図略の入力ボタンをクリックすることにより、サーバ20への第1の情報の送出、及び、この第1の情報に基づくユーザ生成3Dモデル2027の生成をサーバ20に指示する。
【0126】
図10は、本実施形態のシステム1における端末装置10のディスプレイ150に表示された画面の他の例を示す図である。
図10に示す画面は、サーバ20に用意されている、本実施形態のシステム1により生成されるユーザ生成3Dモデル2027の凡例が表示されている画面である。画面1000には、ユーザ生成3Dモデル2027の各パーツ(例えば顔の形、髪の毛など)を指定する指定領域1001、各パーツに設定可能なパラメータが表示される領域1002、及び、領域1002に表示されているパラメータの個々の値がスライドバー形式で表示される領域1003、及び、現時点でのユーザ生成3Dモデル2027が表示される領域1004が設けられている。
【0127】
ユーザは、パラメータ値を設定すべきパーツを、指定領域1001に表示されているパーツのアイコンを操作受付部130を介してクリック等することでパーツを指定し、指定されたパーツについてのパラメータを、領域1002に表示されているパラメータの名称を操作受付部130を介してクリック等することで指定し、さらに、指定されたパラメータについての詳細なパラメータ値を、領域1003に表示されているパラメータ値のスライドバーを操作受付部130を介して調整することで指定する。
【0128】
図11は、本実施形態のシステム1における端末装置10のディスプレイ150に表示された画面のまた他の例を示す図である。
図11に示す画面は、
図7のステップS705における、第1の情報に基づいて生成されたユーザ生成3Dモデル2027を表示している画面である。
【0129】
<5 一実施形態の効果>
以上詳細に説明したように、本実施形態のシステム1によれば、ユーザが入力した第1の情報に基づいて、ユーザが3Dモデルの各部位を規定するパラメータ値を部位ごとにそれぞれ設定する操作によらずとも、ユーザの意図に沿ったユーザ生成3Dモデル2027を生成してこれを出力することができる。そして、本実施形態のシステム1により生成されたユーザ生成3Dモデル2027は、出力後においても、ユーザがパラメータの値を変更することで、より自分の意図に沿ったユーザ生成3Dモデル2027にすることができる。従って、本実施形態によれば、ユーザが後々自由に活用可能な3Dモデルを簡易に提供する技術を提供することができる。
【0130】
<6 付記>
なお、上記した実施形態は本開示を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施形態の構成の一部について、他の構成に追加、削除、置換することが可能である。
【0131】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD-ROM、DVD-ROM、ハードディスク、SSD、光ディスク、光磁気ディスク、CD-R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
【0132】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
【0133】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD-RW、CD-R等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
【0134】
以上の各実施形態で説明した事項を以下に付記する。
(付記1)
プロセッサ(29)とメモリ(25、26)とを備えるコンピュータ(20)を動作させるためのプログラムであって、メモリ(25、26)には、ボーンモデルが予め定義された3Dモデルのテンプレート(2024)であって、3Dモデルの各部位を規定するパラメータ及びこのパラメータの値が変更可能な3Dモデルのテンプレート(2024)が予め格納されており、プログラムは、プロセッサ(29)に、ユーザが生成を希望するキャラクタを表す第1の情報を受け入れる第1ステップ(S702)と、ユーザが3Dモデル(2027)の各部位を規定するパラメータ値を部位ごとにそれぞれ設定する操作によらずとも、ユーザから受け付けた第1の情報に応じて、3Dモデル(2027)の各部位を規定するパラメータ値を特定する第2ステップ(S704)と、メモリ(25、26)に格納された3Dモデルのテンプレート(2024)を用いて、第2ステップ(S704)により特定されたパラメータ値を有する3Dモデル(2027)を出力する第3ステップ(S801)とを実行させる、プログラム。
(付記2)
第1の情報は、3Dモデル(2027)を特徴付けるキーワードを含む単語、3Dモデル(2027)を特徴付ける性別、人種、年齢、及びフリーテキストの少なくとも一つを含む文章の少なくとも一つである、付記1に記載のプログラム。
(付記3)
メモリ(25、26)には、ユーザから受け入れた第1の情報の履歴が格納されており、プログラムは、プロセッサ(29)に、さらに、履歴に基づいて、所定回数以上ユーザから受け入れた第1の情報をユーザに提示する第4ステップを実行させ、第1ステップ(S702)において、第4ステップによって提示された第1の情報の指定を受け入れる、付記1または2に記載のプログラム。
(付記4)
3Dモデルのテンプレート(2024)は、ボーンモデルとこのボーンモデルを基準として設定されたメッシュモデルとを有する、付記1~3のいずれかに記載のプログラム。
(付記5)
パラメータ及びパラメータの値は、メッシュモデルの少なくとも一部を規定するものである、付記4に記載のプログラム。
(付記6)
3Dモデルのテンプレート(2024)にはパラメータの値が予め設定されており、パラメータの値は第1の情報に基づいて予め設定されている、付記1~5のいずれかに記載のプログラム。
(付記7)
メモリ(25、26)には、パラメータの値が予め設定された3Dモデルのテンプレート(2024)が複数格納されており、第3ステップ(S801)において、第1の情報に基づいて、複数の3Dモデルのテンプレート(2024)からいずれかの3Dモデルのテンプレート(2024)を選択し、選択した3Dモデルのテンプレート(2024)を用いて、第2ステップ(S704)により特定されたパラメータの値を有する3Dモデル(2027)を出力する、付記6に記載のプログラム。
(付記8)
メモリ(25、26)には、それぞれ異なる複数のボーンモデルを有する複数の3Dモデルのテンプレート(2024)が格納されている、付記4に記載のプログラム。
(付記9)
メモリ(25、26)には、第1の情報を入力とし、ボーンモデルを出力とする第1の学習モデルが格納されており、第3ステップ(S801)において、第1の情報を第1の学習モデルに入力し、出力として得られたボーンモデルを有する3Dモデルのテンプレート(2024)を選択し、選択した3Dモデルのテンプレート(2024)を用いて、第2ステップ(S704)により特定されたパラメータの値を有する3Dモデル(2027)を出力する、付記8に記載のプログラム。
(付記10)
メモリ(25、26)には、第1の情報を入力とし、特定のパラメータの値を有する3Dモデル(2027)を出力とする第2の学習モデルが格納されており、第2ステップ(S704)及び第3ステップ(S801)において、第1の情報を第2の学習モデルに入力し、出力として得られた特定のパラメータの値を有する3Dモデル(2027)を出力する、付記1~9のいずれかに記載のプログラム。
(付記11)
メモリ(25、26)には、ユーザから受け入れた第1の情報の履歴が格納されており、プログラムは、プロセッサ(29)に、さらに、履歴に基づいてメモリ(25、26)に格納されている3Dモデルのテンプレート(2024)のパラメータの値を変更する、付記6に記載のプログラム。
(付記12)
プロセッサ(29)とメモリ(25、26)とを備えた情報処理装置(20)であって、メモリ(25、26)には、ボーンモデルが予め定義された3Dモデルのテンプレート(2024)であって、3Dモデル(2027)の各部位を規定するパラメータ及びこのパラメータの値が変更可能な3Dモデルのテンプレート(2024)が予め格納されており、プロセッサ(29)は、ユーザが生成を希望するキャラクタを表す第1の情報を受け入れる第1ステップ(S702)と、ユーザが3Dモデル(2027)の各部位を規定するパラメータ値を部位ごとにそれぞれ設定する操作によらずとも、ユーザから受け付けた第1の情報に応じて、3Dモデル(2027)の各部位を規定するパラメータ値を特定する第2ステップ(S704)と、メモリ(25、26)に格納された3Dモデルのテンプレート(2024)を用いて、第2ステップ(S704)により特定されたパラメータ値を有する3Dモデル(2027)を出力する第3ステップ(S801)と
を実行する、情報処理装置(20)。
(付記13)
プロセッサ(29)とメモリ(25、26)とを備えるコンピュータ(20)により実行される方法であって、メモリ(25、26)には、ボーンモデルが予め定義された3Dモデルのテンプレート(2024)であって、3Dモデル(2027)の各部位を規定するパラメータ及びこのパラメータの値が変更可能な3Dモデルのテンプレート(2024)が予め格納されており、プロセッサ(29)は、ユーザが生成を希望するキャラクタを表す第1の情報を受け入れる第1ステップ(S702)と、ユーザが3Dモデル(2027)の各部位を規定するパラメータ値を部位ごとにそれぞれ設定する操作によらずとも、ユーザから受け付けた第1の情報に応じて、3Dモデル(2027)の各部位を規定するパラメータ値を特定する第2ステップ(S704)と、メモリ(25、26)に格納された3Dモデルのテンプレート(2024)を用いて、第2ステップ(S704)により特定されたパラメータ値を有する3Dモデル(2027)を出力する第3ステップ(S801)とを実行する、方法。
(付記14)
ボーンモデルが予め定義された3Dモデルのテンプレート(2024)であって、3Dモデル(2027)の各部位を規定するパラメータ及びこのパラメータの値が変更可能な3Dモデルのテンプレート(2024)が予め格納されたメモリ(25、26)と、ユーザが生成を希望するキャラクタを表す第1の情報を受け入れる手段(2034)と、ユーザが3Dモデル(2027)の各部位を規定するパラメータ値を部位ごとにそれぞれ設定する操作によらずとも、ユーザから受け付けた第1の情報に応じて、3Dモデル(2027)の各部位を規定するパラメータ値を特定する手段(2035)と、メモリ(25、26)に格納された3Dモデルのテンプレート(2024)を用いて、特定する手段(2035)により特定されたパラメータ値を有する3Dモデル(2027)を出力する手段(2037)とを有する、システム。
【符号の説明】
【0135】
1:システム、10:端末装置、20:サーバ、25:メモリ、26:ストレージ、29:プロセッサ、2021:アプリケーションプログラム、2022:ユーザDB、2023:3DモデルテンプレートDB、2024:3Dモデルテンプレート、2025:パラメータリスト、2026:ユーザ生成3DモデルDB、2027:ユーザ生成3Dモデル、2028:プロンプト履歴、2031:受信制御モジュール、2032:送信制御モジュール、2033:認証モジュール、2034:情報受入モジュール、2035:3Dモデル生成モジュール、2036:3Dモデル修正モジュール、2037:3Dモデル出力モジュール、2038:提示制御部
【要約】 (修正有)
【課題】ユーザが後々自由に活用可能な3Dモデルを簡易に提供するプログラム、情報処理装置、方法及びシステムを提供する。
【解決手段】システム1において、コンピュータ20のメモリ25、ストレージ26にはボーンモデルが予め定義された3Dモデルのテンプレートが予め格納されており、このテンプレートは、3Dモデルの各部位を規定するパラメータ及びこのパラメータの値が変更可能であり、プロセッサ29に、ユーザが生成を希望するキャラクタを表す第1の情報を受け入れる第1ステップと、ユーザが3Dモデルの各部位を規定するパラメータ値を部位ごとにそれぞれ設定する操作によらずとも、第1の情報に応じて、3Dモデルの各部位を規定するパラメータ値を特定する第2ステップと、3Dモデルのテンプレートを用いて、特定されたパラメータ値を有する3Dモデルを出力する第3ステップと、を実行させる。
【選択図】
図1