IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社Cygamesの特許一覧

特開2023-165541画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステム
<>
  • 特開-画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステム 図1
  • 特開-画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステム 図2
  • 特開-画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステム 図3
  • 特開-画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステム 図4
  • 特開-画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステム 図5
  • 特開-画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステム 図6
  • 特開-画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステム 図7
  • 特開-画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステム 図8
  • 特開-画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステム 図9
  • 特開-画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステム 図10
  • 特開-画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステム 図11
  • 特開-画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステム 図12
  • 特開-画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステム 図13
  • 特開-画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステム 図14
  • 特開-画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023165541
(43)【公開日】2023-11-16
(54)【発明の名称】画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステム
(51)【国際特許分類】
   G06T 19/00 20110101AFI20231109BHJP
   A63F 13/5252 20140101ALI20231109BHJP
【FI】
G06T19/00 A
A63F13/5252
【審査請求】有
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2022076714
(22)【出願日】2022-05-06
(11)【特許番号】
(45)【特許公報発行日】2023-09-29
(71)【出願人】
【識別番号】511249637
【氏名又は名称】株式会社Cygames
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100086771
【弁理士】
【氏名又は名称】西島 孝喜
(74)【代理人】
【識別番号】100120525
【弁理士】
【氏名又は名称】近藤 直樹
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(74)【代理人】
【識別番号】100196612
【弁理士】
【氏名又は名称】鎌田 慎也
(72)【発明者】
【氏名】花田 萌美
(72)【発明者】
【氏名】中村 大吾
(72)【発明者】
【氏名】芝 孝次
【テーマコード(参考)】
5B050
【Fターム(参考)】
5B050AA03
5B050BA06
5B050BA09
5B050CA07
5B050CA08
5B050EA19
5B050EA26
5B050FA02
5B050GA08
(57)【要約】
【課題】仮想カメラの角度に応じた3Dオブジェクトの画像を生成することが可能なプログラムを提供する。
【解決手段】本発明の一実施形態のプログラムは、仮想空間内の3Dオブジェクトの仮想カメラから見た画像を生成するためのプログラムであって、コンピュータに、カメラ基準位置から見たときの3Dオブジェクトの3Dデータと該カメラ基準位置とが関連付けて記憶された基準データに含まれる複数のカメラ基準位置から、仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定するステップと、決定されたカメラ基準位置の各々に関連付けられた3Dデータと、決定された重みとに基づいて、仮想カメラから見た3Dオブジェクトの画像を生成するステップと、を実行させる、プログラムである。
【選択図】図1
【特許請求の範囲】
【請求項1】
仮想空間内の3Dオブジェクトの仮想カメラから見た画像を生成するためのプログラムであって、コンピュータに、
カメラ基準位置から見たときの3Dオブジェクトの3Dデータと該カメラ基準位置とが関連付けて記憶された基準データに含まれる複数のカメラ基準位置から、仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定するステップと、
決定されたカメラ基準位置の各々に関連付けられた3Dデータと、決定された重みとに基づいて、仮想カメラから見た3Dオブジェクトの画像を生成するステップと、
を実行させる、プログラム。
【請求項2】
3Dデータは、3Dオブジェクトを構成するボーンデータ又はメッシュデータである、請求項1に記載のプログラム。
【請求項3】
前記プログラムは、仮想空間内に3Dオブジェクトを配置して進行するゲームのためのプログラムであり、コンピュータに、
ゲームの進行に応じて仮想カメラの位置を決定するステップを実行させ、
重みを決定するステップは、複数のカメラ基準位置から、決定された仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定する、
請求項1に記載のプログラム。
【請求項4】
3Dオブジェクトはローカル座標系により定められ、
カメラ基準位置は、ローカル座標系の一の方向に対応する3Dオブジェクトの正面向きベクトルに対するローカル座標系の基準点から仮想カメラへの方向ベクトルの水平方向における回転角αと水平方向となす角βとにより表されるαβ平面内の位置に対応付けられ、
重みを決定するステップは、取得された仮想カメラの位置に対応するαβ平面内の位置と、複数のカメラ基準位置が対応付けられたαβ平面内の複数の位置とに基づいて、取得された仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定する、
請求項1に記載のプログラム。
【請求項5】
αβ平面は、複数のカメラ基準位置により形成される複数の領域が設定され、
重みを決定するステップは、仮想カメラの位置に対応するαβ平面内の位置が属する領域から複数のカメラ基準位置を決定し、仮想カメラの位置に対応するαβ平面内の位置から決定されたカメラ基準位置が対応付けられた位置までの長さに応じて該カメラ基準位置の各々の重みを決定する、
請求項4に記載のプログラム。
【請求項6】
基準データは、3Dオブジェクトの正面方向ベクトル上のカメラ基準位置と、該カメラ基準位置に関連付けられた3Dオブジェクトの3Dデータである基本3Dデータとを含み、
基準データが含む基本3Dデータ以外の3Dデータは、基本3Dデータからの差分により表されるデータであり、
3Dオブジェクトの画像を生成するステップは、決定されたカメラ基準位置の各々に関連付けられた3Dオブジェクトの3Dデータを、各々決定された重みに基づいて基本3Dデータにブレンドすることにより、仮想カメラから見た3Dオブジェクトの画像を生成することを含む、請求項1に記載のプログラム。
【請求項7】
3Dオブジェクトは、3Dキャラクタの顔を表す顔オブジェクトであり、
基本3Dデータは、無表情のときの顔オブジェクトの3Dデータであり、
基準データは、所定の表情のときの顔オブジェクトの3Dデータの基本3Dデータからの差分を表す表情データを含み、
3Dオブジェクトの画像を生成するステップは、決定されたカメラ基準位置の各々に対応する3Dオブジェクトの3Dデータを、各々決定された重みに基づいて基本3Dデータにブレンドし、更に対応する表情データをブレンドすることにより、仮想カメラから見た3Dオブジェクトの画像を生成することを含む、請求項6に記載のプログラム。
【請求項8】
基準データは、右斜め下方向からのカメラ基準位置から見たときの3Dオブジェクトの3Dデータと、左斜め下方向からのカメラ基準位置から見たときの3Dオブジェクトの3Dデータとを含む、請求項1に記載のプログラム。
【請求項9】
コンピュータにより実行される、3Dオブジェクトの仮想カメラから見た画像を生成するための方法であって、
カメラ基準位置から見たときの3Dオブジェクトの3Dデータと該カメラ基準位置とが関連付けて記憶された基準データに含まれる複数のカメラ基準位置から、仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定するステップと、
決定されたカメラ基準位置の各々に関連付けられた3Dデータと、決定された重みとに基づいて、仮想カメラから見た3Dオブジェクトの画像を生成するステップと、
を含む、方法。
【請求項10】
3Dオブジェクトの仮想カメラから見た画像を生成する画像生成装置であって、
カメラ基準位置から見たときの3Dオブジェクトの3Dデータと該カメラ基準位置の各々とを関連付けて記憶し、
前記記憶された複数のカメラ基準位置から、仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定し、
決定されたカメラ基準位置の各々に関連付けられた3Dデータと、決定された重みとに基づいて、仮想カメラから見た3Dオブジェクトの画像を生成する、
ように構成される、画像生成装置。
【請求項11】
3Dオブジェクトの仮想カメラから見た画像を生成するゲームシステムであって、
カメラ基準位置から見たときの3Dオブジェクトの3Dデータと該カメラ基準位置の各々とを関連付けて記憶し、
前記記憶された複数のカメラ基準位置から、仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定し、
決定されたカメラ基準位置の各々に関連付けられた3Dデータと、決定された重みとに基づいて、仮想カメラから見た3Dオブジェクトの画像を生成する、
ように構成される、ゲームシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステムに関し、特に仮想空間内の3Dオブジェクトの仮想カメラから見た画像を生成するためのプログラム、方法、画像生成装置、及びゲームシステムに関する。
【背景技術】
【0002】
ゲームなどの様々なコンテンツにおいては、キャラクタなどの仮想オブジェクトの画像が生成される。例えば特許文献1には、3次元空間に配置されたキャラクタの顔画像生成に関する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第4244352号
【発明の概要】
【発明が解決しようとする課題】
【0004】
キャラクタの3Dモデルの顔画像生成において、キャラクタを斜め横等の正面以外の角度から見たときに違和感なく見えるように口や鼻などの位置を設定すると、正面から見たときに口や鼻などの位置がずれてしまうといった問題があった。例えば特許文献1は、マンガやアニメーションで広く用いられている描法を用いてキャラクタの画像を生成する技術を開示し、当該キャラクタを異なる視点から見たときに口や鼻などの位置がずれてしまうことを防ぐため、キャラクタの頭部に付加的に配置される口や鼻などのオブジェクトの位置を視点に近づくように修正する技術を開示している。しかしながら、特許文献1には、口や鼻などの顔のパーツを含むボーンやメッシュなどにより表される3Dモデル(3Dキャラクタ)を任意の角度の仮想カメラから見たときに、3Dモデルの一部を構成する顔のパーツの位置ずれなどの不具合(不整合)が生じないようにキャラクタの画像を生成する技術は開示されていない。このような中で、例えば顔のパーツを含む3Dキャラクタなどの3Dモデルを任意の角度の仮想カメラから見たときに、不具合が生じないように、仮想カメラの角度に応じた3Dモデル(3Dオブジェクト)の画像を生成することが可能な技術が求められていた。
【0005】
本発明は、このような課題を解決するためになされたものであり、仮想カメラの角度に応じた3Dオブジェクトの画像を生成することが可能なプログラム等を提供することを目的とする。
【課題を解決するための手段】
【0006】
〔1〕本発明の一実施形態のプログラムは、
仮想空間内の3Dオブジェクトの仮想カメラから見た画像を生成するためのプログラムであって、コンピュータに、
カメラ基準位置から見たときの3Dオブジェクトの3Dデータと該カメラ基準位置とが関連付けて記憶された基準データに含まれる複数のカメラ基準位置から、仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定するステップと、
決定されたカメラ基準位置の各々に関連付けられた3Dデータと、決定された重みとに基づいて、仮想カメラから見た3Dオブジェクトの画像を生成するステップと、
を実行させる、プログラムである。
【0007】
〔2〕本発明の一実施形態では、
3Dデータは、3Dオブジェクトを構成するボーンデータ又はメッシュデータである、〔1〕に記載のプログラムである。
【0008】
〔3〕本発明の一実施形態では、
前記プログラムは、仮想空間内に3Dオブジェクトを配置して進行するゲームのためのプログラムであり、コンピュータに、
ゲームの進行に応じて仮想カメラの位置を決定するステップを実行させ、
重みを決定するステップは、複数のカメラ基準位置から、決定された仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定する、
〔1〕又は〔2〕に記載のプログラムである。
【0009】
〔4〕本発明の一実施形態では、
3Dオブジェクトはローカル座標系により定められ、
カメラ基準位置は、ローカル座標系の一の方向に対応する3Dオブジェクトの正面向きベクトルに対するローカル座標系の基準点から仮想カメラへの方向ベクトルの水平方向における回転角αと水平方向となす角βとにより表されるαβ平面内の位置に対応付けられ、
重みを決定するステップは、取得された仮想カメラの位置に対応するαβ平面内の位置と、複数のカメラ基準位置が対応付けられたαβ平面内の複数の位置とに基づいて、取得された仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定する、
〔1〕から〔3〕のいずれか1つに記載のプログラムである。
【0010】
〔5〕本発明の一実施形態では、
αβ平面は、複数のカメラ基準位置により形成される複数の領域が設定され、
重みを決定するステップは、仮想カメラの位置に対応するαβ平面内の位置が属する領域から複数のカメラ基準位置を決定し、仮想カメラの位置に対応するαβ平面内の位置から決定されたカメラ基準位置が対応付けられた位置までの長さに応じて該カメラ基準位置の各々の重みを決定する、
〔4〕に記載のプログラムである。
【0011】
〔6〕本発明の一実施形態では、
基準データは、3Dオブジェクトの正面方向ベクトル上のカメラ基準位置と、該カメラ基準位置に関連付けられた3Dオブジェクトの3Dデータである基本3Dデータとを含み、
基準データが含む基本3Dデータ以外の3Dデータは、基本3Dデータからの差分により表されるデータであり、
3Dオブジェクトの画像を生成するステップは、決定されたカメラ基準位置の各々に関連付けられた3Dオブジェクトの3Dデータを、各々決定された重みに基づいて基本3Dデータにブレンドすることにより、仮想カメラから見た3Dオブジェクトの画像を生成することを含む、〔1〕から〔5〕のいずれか1つに記載のプログラムである。
【0012】
〔7〕本発明の一実施形態では、
3Dオブジェクトは、3Dキャラクタの顔を表す顔オブジェクトであり、
基本3Dデータは、無表情のときの顔オブジェクトの3Dデータであり、
基準データは、所定の表情のときの顔オブジェクトの3Dデータの基本3Dデータからの差分を表す表情データを含み、
3Dオブジェクトの画像を生成するステップは、決定されたカメラ基準位置の各々に対応する3Dオブジェクトの3Dデータを、各々決定された重みに基づいて基本3Dデータにブレンドし、更に対応する表情データをブレンドすることにより、仮想カメラから見た3Dオブジェクトの画像を生成することを含む、〔6〕に記載のプログラムである。
【0013】
〔8〕本発明の一実施形態では、
基準データは、右斜め下方向からのカメラ基準位置から見たときの3Dオブジェクトの3Dデータと、左斜め下方向からのカメラ基準位置から見たときの3Dオブジェクトの3Dデータとを含む、〔1〕から〔7〕のいずれか1つに記載のプログラムである。
【0014】
〔9〕本発明の一実施形態の方法は、
コンピュータにより実行される、3Dオブジェクトの仮想カメラから見た画像を生成するための方法であって、
カメラ基準位置から見たときの3Dオブジェクトの3Dデータと該カメラ基準位置とが関連付けて記憶された基準データに含まれる複数のカメラ基準位置から、仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定するステップと、
決定されたカメラ基準位置の各々に関連付けられた3Dデータと、決定された重みとに基づいて、仮想カメラから見た3Dオブジェクトの画像を生成するステップと、
を含む、方法である。
【0015】
〔10〕本発明の一実施形態の画像生成装置は、
3Dオブジェクトの仮想カメラから見た画像を生成する画像生成装置であって、
カメラ基準位置から見たときの3Dオブジェクトの3Dデータと該カメラ基準位置の各々とを関連付けて記憶し、
前記記憶された複数のカメラ基準位置から、仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定し、
決定されたカメラ基準位置の各々に関連付けられた3Dデータと、決定された重みとに基づいて、仮想カメラから見た3Dオブジェクトの画像を生成する、
ように構成される、画像生成装置である。
【0016】
〔11〕本発明の一実施形態のゲームシステムは、
3Dオブジェクトの仮想カメラから見た画像を生成するゲームシステムであって、
カメラ基準位置から見たときの3Dオブジェクトの3Dデータと該カメラ基準位置の各々とを関連付けて記憶し、
前記記憶された複数のカメラ基準位置から、仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定し、
決定されたカメラ基準位置の各々に関連付けられた3Dデータと、決定された重みとに基づいて、仮想カメラから見た3Dオブジェクトの画像を生成する、
ように構成される、ゲームシステムである。
【発明の効果】
【0017】
本発明によれば、仮想カメラの角度に応じた3Dオブジェクトの画像を生成することができる。
【図面の簡単な説明】
【0018】
図1】本発明の一実施形態のゲーム装置のハードウェア構成を示すブロック図である。
図2】本発明の一実施形態のゲーム装置の機能ブロック図である。
図3】予め作成された正面方向から見たときの対象キャラクタの顔画像の一例を示す図である。
図4】予め作成された左斜め下方向から見たときの対象キャラクタの顔画像の一例を示す図である。
図5図4に示す対象キャラクタの顔画像を正面方向から見たときの対象キャラクタの顔画像の一例を示す図である。
図6】対象キャラクタの顔に対する仮想カメラの位置を角度αとβを用いて説明した図である。
図7】カメラ基準位置の各々が対応付けられたαβ平面内の基準位置の一例を示す図である。
図8】αβ平面において複数の基準位置により形成される複数の領域の一例を示す図である。
図9】ゲーム制御部が決定した仮想カメラの位置に対応するαβ平面内の仮想カメラ位置の一例を示す図である。
図10】3つの基準位置P1、P2、P3内の仮想カメラ位置Qの各基準位置の重みを平面の関数により決定する様子を示す図である。
図11】ゲーム制御部が決定した仮想カメラの位置に対応するαβ平面内の仮想カメラ位置の一例を示す図である。
図12】ゲーム制御部が決定した仮想カメラの位置に対応するαβ平面内の仮想カメラ位置の一例を示す図である。
図13】本発明の一実施形態のゲーム装置の処理を示すフローチャートである。
図14】αβ平面において複数の基準位置により形成される複数の領域の一例を示す図である。
図15】所定の関数F1の一例を示す図である。
【発明を実施するための形態】
【0019】
以下、図面を参照して、本発明のゲーム装置10の実施形態について説明する。ゲーム装置10は、1又は複数の装置を含んで構成されるゲームシステムの1つの例である。本発明の実施形態のゲーム装置10は、仮想空間内に仮想キャラクタなどの仮想オブジェクトを配置して進行するゲーム(以下、ゲームA)を提供する。例えばゲームAでは、ユーザはコントローラを操作することで、仮想キャラクタを操作する。本実施形態では、仮想空間は3次元空間であり、仮想オブジェクトは仮想キャラクタの顔部分の3Dオブジェクト(3Dモデル)である。仮想キャラクタなどの仮想オブジェクトは、例えば既知のボーンとジョイントを含むボーンデータから構成される。本実施形態では、説明の便宜上、仮想空間内に配置される1つの3Dキャラクタ(以下、「対象キャラクタ」という。)の仮想カメラから見たときの顔画像の生成について説明する。
【0020】
図3は、予め作成された正面方向から見たときの対象キャラクタの顔画像の一例を示す図であり、図4は、予め作成された左斜め下方向から見たときの対象キャラクタの顔画像の一例を示す図である。図5は、図4に示す対象キャラクタの顔画像を正面方向から見たときの対象キャラクタの顔画像の一例を示す図である。換言すると、図5は、図4に示す対象キャラクタの顔を構成するボーンデータから生成される顔を、正面方向から見たときの顔を示す画像である。図5に示す対象キャラクタの顔画像は、図3に示すような所望の対象キャラクタの顔画像から口や鼻などの部分がずれたものとなっている。図3に示す対象キャラクタの顔画像を左斜め下方向などから見たときの対象キャラクタの顔画像なども同様に口や鼻などの部分がずれたものとなる。ゲーム装置10は、このような課題を解決するための画像生成処理を行うことができる。
【0021】
図1は本発明の一実施形態のゲーム装置10のハードウェア構成を示すブロック図である。ゲーム装置10は、プロセッサ11、入力装置12、表示装置13、記憶装置14、及び通信装置15を備える。これらの各構成装置はバス16によって接続される。なお、バス16と各構成装置との間には必要に応じてインタフェースが介在しているものとする。本実施形態では、ゲーム装置10は、家庭用ゲーム機及びゲームAを実現可能なゲームアプリケーション(ゲームソフト)を含んで構成される。ゲーム装置10は、一般的なPC等と同様の構成を含むことができる。
【0022】
プロセッサ11は、ゲーム装置10全体の動作を制御する。例えばプロセッサ11は、CPUである。プロセッサ11は、記憶装置14に格納されているプログラムやデータを読み込んで実行することにより、様々な処理を実行する。プロセッサ11は、複数のプロセッサから構成されてもよい。
【0023】
入力装置12は、ゲーム装置10に対するユーザからの入力を受け付けるユーザインタフェースであり、本実施形態では、家庭用ゲーム機に接続されたコントローラである。入力装置12は、例えば、タッチパネル、タッチパッド、キーボード、マウス、又はボタンであってもよい。表示装置13は、プロセッサ11の制御に従って、アプリケーション画面などをゲーム装置10のユーザに表示するディスプレイである。
【0024】
記憶装置14は、主記憶装置及び補助記憶装置を含む。主記憶装置は、例えば情報の高速な読み書きが可能な揮発性メモリであり、プロセッサ11が情報を処理する際の記憶領域及び作業領域として用いられる。補助記憶装置は、様々なプログラムや、各プログラムの実行に際してプロセッサ11が使用するデータを格納する。補助記憶装置は、不揮発性ストレージ又は不揮発性メモリであり、例えばeMMC、UFS、SSDのようなフラッシュメモリであり、着脱可能なものであってもよい。
【0025】
通信装置15は、ネットワークを介してユーザ端末又はサーバなどの他のコンピュータとの間でデータの授受を行うことが可能なモジュール、デバイス、又は装置である。通信装置15は、無線通信用のデバイスやモジュールなどとすることもできるし、有線通信用のデバイスやモジュールなどとすることもできる。ゲーム装置10が他の装置と通信を行わない場合、ゲーム装置10は通信装置15を備えなくてもよい。
【0026】
図2は本発明の一実施形態のゲーム装置10の機能ブロック図である。ゲーム装置10は、ゲーム制御部21を備え、ゲーム制御部21は、重み付け決定部23と、3Dモデル画像生成部24とを備える。本実施形態においては、記憶装置14に記憶されている又は通信装置15を介して受信したプログラムがプロセッサ11により実行されることによりこれらの機能が実現される。このように、各種機能がプログラム読み込みにより実現されるため、1つのパート(機能)の一部又は全部を他のパートが有していてもよい。ただし、各機能の一部又は全部を実現するための電子回路等を構成することによりハードウェアによってもこれらの機能は実現してもよい。
【0027】
ゲーム制御部21は、ゲームAを実現するにあたっての基本制御を行い、既知のゲームプログラムやゲームサーバが備える機能を備えることができる。ゲーム制御部21は、ゲームの進行に応じて(例えば元々ゲームに組み込まれたゲームの進行に応じて又はユーザからの入力に応じて)仮想空間内の仮想カメラの位置を決定する。1つの例では、ゲーム制御部21は、コントローラを介したユーザからの入力に応じて、仮想空間内に配置される仮想カメラの位置を変更したり、仮想空間内の3Dキャラクタを動作させたりすることができる。
【0028】
記憶装置14は、対象キャラクタの顔(顔オブジェクト)を構成するボーンデータを記憶する。対象キャラクタの顔を構成するボーンデータは、複数のボーンに関するデータである。対象キャラクタにはローカル座標系が設定され、各ボーンの位置はローカル座標系で表される。顔を構成するボーン(ボーンデータ)が定められると、顔を構成するメッシュ(ポリゴンメッシュ)も一意に定められる。メッシュは、スキンに対応するものである。1つの例では、対象キャラクタの顔を構成するボーンデータに含まれる各ボーンのデータは、既知のTranslation(位置)、Rotation(回転)、及びScale(スケール)により定められる。例えばこの場合、Translation(位置)は、ボーンの座標を表し、XとYとZの平行移動値で表され、Rotation(回転)は、ボーンの捻じれを表し、X軸とY軸とZ軸それぞれの回転角度で表され、Scale(スケール)は、ボーンの大きさを表し、X方向の倍率、Y方向の倍率、Z方向の倍率で表される。1つの例では、記憶装置14は、仮想空間を構成する仮想オブジェクトに関するデータや対象キャラクタのローカル座標系又は各ボーンデータが配置されるワールド座標の位置を含むゲーム関連データを記憶する。例えば、対象キャラクタの顔を構成するボーンデータは、ゲーム関連データに含まれる。
【0029】
ゲームAでは、対象キャラクタの顔31(顔オブジェクト31)に対する仮想カメラ32の位置が角度αとβを用いて定められる。図6は、対象キャラクタの顔31に対する仮想カメラ32の位置を角度αとβを用いて説明した図である。本実施形態では、ローカル座標系の基準点が対象キャラクタの顔31の中心位置(例えば顔を構成する複数のボーンデータの中心位置)に定められ、この基準点がローカル座標系の原点41である。図6に示すように、ローカル座標系は、z軸方向が対象キャラクタの正面方向となるように、xz平面が水平面(水平方向)となるように、かつy軸方向が垂直方向となるように設定される。正面向きベクトル42は、対象キャラクタの顔の正面方向(z軸方向)のベクトルであり、仮想カメラ位置ベクトル43は、基準点から仮想カメラ32の位置へのベクトルである。角度αは、正面向きベクトル42に対する仮想カメラ位置ベクトル43をxz平面に射影した射影ベクトル44のy軸周りの角度(回転角)であり、+z軸方向から+x軸方向への角度をプラスの角度、-x軸方向への角度をマイナスの角度として定めたものである。角度βは、仮想カメラ位置ベクトル43のxz平面(水平方向)とのなす角であり、基準点から+y軸方向への角度をプラスの角度、-y軸方向への角度をマイナスの角度として定めたものである。
【0030】
記憶装置14は、複数のカメラ基準位置の各々と、これらのカメラ基準位置の各々から見たときの対象キャラクタの顔を構成するボーンデータ(又は対象キャラクタの顔画像)の各々とを関連付けて記憶する。本実施形態では、上記の複数のカメラ基準位置の各々とボーンデータの各々とが関連付けて記憶されたデータを基準データと呼び、例えばゲーム開発者などにより予め作成される。例えば基準データは、ゲーム関連データに含まれる。基準データは、データベース形式で記憶されてもよい。対象キャラクタの顔を構成するボーンデータの各々が作成されると、顔を構成するメッシュが一意に定められるため、対象キャラクタの顔を構成するボーンデータは対象キャラクタの顔画像という形式で記憶することができる。カメラ基準位置は、予め設定された仮想カメラの位置であり、カメラ基準位置に関連付けて記憶される対象キャラクタの顔画像(ボーンデータ)は、当該カメラ基準位置に配置された仮想カメラから見た対象キャラクタの顔画像(ボーンデータ)である。例えばカメラ基準位置は、ゲーム開発者などにより設定される。カメラ基準位置は、基準点から所定距離離れた方向(角度)が異なる複数の位置に設定される。したがって、複数のカメラ基準位置は、基準点からの距離が同一の位置に設定される。
【0031】
本実施形態では、カメラ基準位置CRは、対象キャラクタの正面方向の位置CR1、右方向の位置CR2、左方向の位置CR3、正面斜め上方向(俯瞰方向)の位置CR4、正面斜め下方向(あおり方向)の位置CR5、右斜め下方向の位置CR6、及び左斜め下方向の位置CR7である。1つの例では、対象キャラクタの正面方向の位置CR1は、α=0°、β=0°の位置であり、右方向の位置CR2は、α=-90°、β=0°の位置であり、左方向の位置CR3は、α=90°、β=0°の位置であり、正面斜め上方向の位置CR4は、α=0°、β=60°の位置であり、正面斜め下方向の位置CR5は、α=0°、β=-60°の位置であり、右斜め下方向の位置CR6は、α=-70°、β=-55°の位置であり、左斜め下方向の位置CR7は、α=70°、β=-55°の位置である。例えばカメラ基準位置の各々から見たときの対象キャラクタの顔を構成するボーンデータの各々は、ゲーム開発者などにより予め作成される。
【0032】
基準データにおいて、対象キャラクタの正面方向のカメラ基準位置CR1に関連付けて記憶された対象キャラクタの顔を構成するボーンデータは、基本ボーンデータとして記憶される。基準データに含まれる、対象キャラクタの正面方向のカメラ基準位置CR1以外の位置に関連付けて記憶された対象キャラクタを構成するボーンデータは、基本ボーンデータからの差分により表されるデータである。
【0033】
重み付け決定部23は、基準データに含まれる複数のカメラ基準位置から、ゲーム制御部21が決定した仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定する。3Dモデル画像生成部24は、決定されたカメラ基準位置の各々に関連付けられたボーンデータと、決定された重みとに基づいて、仮想カメラから見た対象キャラクタの顔画像を生成する。なお、重み付け決定部23は、仮想カメラの位置に応じた複数のカメラ基準位置とそれらの各々の重みを同時に決定してもよい。
【0034】
前述のように、カメラ基準位置は、仮想空間内の位置であるが、αとβの角度で一意に決定されるため、カメラ基準位置の各々は、αβ平面上の位置で表現することができる。記憶装置14は、基準データに含まれるカメラ基準位置の各々をαβ平面内の位置に対応付けて記憶する。図7は、カメラ基準位置CR1~CR7の各々が対応付けられたαβ平面内の基準位置51~57の一例を示す図である。図7において、基準位置51は、対象キャラクタの正面方向のカメラ基準位置CR1に対応し、基準位置52は、対象キャラクタの右方向のカメラ基準位置CR2に対応し、基準位置53は、対象キャラクタの左方向のカメラ基準位置に対応し、基準位置54は、対象キャラクタの正面斜め上方向のカメラ基準位置に対応し、基準位置55は、対象キャラクタの正面斜め下方向のカメラ基準位置に対応し、基準位置56は、対象キャラクタの右斜め下方向のカメラ基準位置に対応し、基準位置57は、対象キャラクタの左斜め下方向のカメラ基準位置に対応する。
【0035】
αβ平面は、複数の基準位置51~57に基づいて、複数の領域61~72が設定される。記憶装置14は、αβ平面において複数の基準位置51~57により形成される複数の領域61~72を記憶する。図8は、αβ平面において複数の基準位置により形成される複数の領域の一例を示す図である。図8は、複数の基準位置51~57により形成される複数の領域61~72を示している。複数の領域61~72は、複数の基準位置51~57の内側に形成される内側領域61~66と、外側に形成される外側領域67~72とを含む。内側領域61~66は、複数の基準位置51~57のうちの3つの頂点から形成される三角形の領域を含み、外側領域67~72は、複数の基準位置51~57のうちの2つの頂点を含む多角形の領域を含む。
【0036】
本実施形態では、重み付け決定部23は、仮想カメラの位置に対応するαβ平面内の仮想カメラ位置と、複数の基準位置51~57とに基づいて、仮想カメラの位置に応じた複数のカメラ基準位置を決定する。
【0037】
図9は、ゲーム制御部21が決定した仮想カメラの位置に対応するαβ平面内の仮想カメラ位置81の一例を示す図である。図9が示すαβ平面内の仮想カメラ位置81は、内側領域61~66にある。重み付け決定部23は、ゲーム制御部21が決定した仮想カメラの位置に対応するαβ平面内の仮想カメラ位置81が属する領域61から複数の基準位置51、53、54を決定する。この場合、重み付け決定部23は、仮想カメラ位置81が属する領域を構成する3つの頂点である3つの基準位置51、53、54を決定している。重み付け決定部23は、αβ平面内の仮想カメラ位置81から基準位置51、53、54までの長さに応じて、基準位置51、53、54の各々の重み、すなわちカメラ基準位置CR1、CR3、CR4の各々の重みを決定する。
【0038】
なお、説明の便宜上、仮想空間内のカメラ基準位置とαβ平面内の基準位置とを分けて表現しているが、αβ平面内の基準位置は、カメラ基準位置を表すものであるから、同じものとして扱うことができる。例えば、複数の基準位置51、53、54を決定することは、複数のカメラ基準位置CR1、CR3、CR4を決定することを意味することができ、複数のカメラ基準位置CR1、CR3、CR4を決定することは、複数の基準位置51、53、54を決定することを意味することができる。また例えば、複数の基準位置51、53、54の各々の重みを決定することは、複数のカメラ基準位置CR1、CR3、CR4の各々の重みを決定することを意味することでき、複数のカメラ基準位置CR1、CR3、CR4の各々の重みを決定することは、複数の基準位置51、53、54の各々の重みを決定することを意味することができる。
【0039】
本実施形態では、重み付け決定部23は、3つの基準位置を決定した場合、αβ平面内の仮想カメラ位置から基準位置までの長さに応じた重みとなるように、かつ基準位置の重みの合計が1(100%)となるように、3つの基準位置(カメラ基準位置)の各々の重みを決定する。例えば重み付け決定部23は、αβ平面に垂直な重みw軸を追加したαβw座標を用いて、3つの基準位置P1(α1、β1)、P2(α2、β2)、P3(α3、β3)における基準位置P1の重みw1を、P1でw=1となり、P2とP3でw=0となる平面の関数の仮想カメラ位置Qにおける重みwの値により決定する。この場合、同様にして、基準位置P2の重みw2を、P2でw=1となり、P1とP3でw=0となる平面の関数の仮想カメラ位置Qにおける重みwの値により決定し、基準位置P3の重みw3を、P3でw=1となり、P1とP2でw=0となる平面の関数の仮想カメラ位置Qにおける重みwの値により決定する。図10は、3つの基準位置P1、P2、P3内の仮想カメラ位置Qの各基準位置の重みを平面の関数により決定する様子を示す図である。
【0040】
図11は、ゲーム制御部21が決定した仮想カメラの位置に対応するαβ平面内の仮想カメラ位置82の一例を示す図である。図11が示すαβ平面内の仮想カメラ位置82は、外側領域67~72にある。重み付け決定部23は、ゲーム制御部21が決定した仮想カメラの位置に対応するαβ平面内の仮想カメラ位置82が属する領域67から複数の基準位置53、54を決定する。この場合、重み付け決定部23は、仮想カメラ位置82が属する領域を構成する頂点の一部である2つの基準位置53、54を決定している。重み付け決定部23は、αβ平面内の仮想カメラ位置82の基準位置53、54を通る直線に対する垂線の交点から基準位置53、54の各々までの長さに応じて、基準位置53、54の各々の重み、すなわちカメラ基準位置CR3、CR4の各々の重みを決定する。
【0041】
図12は、ゲーム制御部21が決定した仮想カメラの位置に対応するαβ平面内の仮想カメラ位置83の一例を示す図である。重み付け決定部23は、仮想カメラ位置82の場合と同様に、ゲーム制御部21が決定した仮想カメラの位置に対応するαβ平面内の仮想カメラ位置83が属する領域67から複数の基準位置53、54を決定する。この場合、αβ平面内の仮想カメラ位置83の基準位置53、54を通る直線に対する垂線の交点は、基準位置53、54間ではなく基準位置53の外側であるため、重み付け決定部23は、基準位置53の重みを1、基準位置54の重みを0と決定する。
【0042】
本実施形態では、3Dモデル画像生成部24は、決定されたカメラ基準位置の各々に関連付けられた対象キャラクタの顔を構成するボーンデータを、各々決定された重みに基づいて基本ボーンデータにブレンドすることにより、仮想カメラから見た対象キャラクタの顔画像を生成する。例えば、カメラ基準位置CR1、CR3、CR4の各々の重みw1、w3、w4がそれぞれ0.7、0.2、0.1である場合、3Dモデル画像生成部24は、カメラ基準位置CR3に関連付けられたボーンデータにより表される差分の0.2倍の差分、及びカメラ基準位置CR4に関連付けられたボーンデータにより表される差分の0.1倍の差分を基本ボーンデータにブレンドする(例えば各差分を足す)ことによりボーンデータを生成し、該ボーンデータにより構成される対象キャラクタの顔画像を生成する。
【0043】
次に、本発明の一実施形態のゲーム装置10の処理について図13に示したフローチャートを用いて説明する。
【0044】
ステップ101において、重み付け決定部23は、複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定する。
【0045】
ステップ102において、3Dモデル画像生成部24は、決定された重みと、決定されたカメラ基準位置の各々に関連付けられたボーンデータとに基づいて、仮想カメラから見た対象キャラクタの顔画像を生成する。
【0046】
次に、本発明の実施形態のゲーム装置10の主な作用効果について説明する。本実施形態では、ゲーム装置10は、ゲーム開発者などにより作成された基準データを記憶する。重み付け決定部23は、基準データが含む複数のカメラ基準位置から、仮想カメラの位置に応じた複数のカメラ基準位置を決定するとともに該決定したカメラ基準位置の各々の重みを決定する。3Dモデル画像生成部24は、決定されたカメラ基準位置の各々に関連付けられたボーンデータと、決定された重みとに基づいて、仮想カメラから見た対象キャラクタの顔画像を生成する。
【0047】
従来、3Dモデルのキャラクタの顔を任意の角度の仮想カメラから見たときに生じうる口や鼻などの位置ずれの不具合(不整合)を解消することが難しいという問題があった。本実施形態のような構成とすることにより、仮想カメラが任意の角度(位置)に変更された場合であっても、口や鼻の部分がずれるなどの不具合を発生させないように、仮想カメラの角度に応じた対象キャラクタの顔画像を生成することができる。また、このような構成とすることにより、例えばリアルタイムで仮想カメラの位置が動くようなゲームにおいて、仮想カメラの角度に応じた3Dオブジェクトの画像を動的に生成することが可能となる。なお、本発明の実施形態では、カメラ基準位置及び関連付けて記憶するボーンデータを増やすと画像の精度は上がるが、重み付け決定部23などの処理速度は下がるため、図8に占めす7つのカメラ基準位置のように、適切な数のカメラ基準位置が設定される。
【0048】
また本実施形態では、基本ボーンデータ以外のボーンデータを基本ボーンデータとの差分のデータとして記憶し、3Dモデル画像生成部24が重みに応じた差分を基本ボーンデータにブレンドするように構成とすることにより、動的な処理を実現するために、より演算量を低減することが可能となる。
【0049】
上記の作用効果は、特に言及が無い限り、他の実施形態や変形例においても同様である。
【0050】
本発明の実施形態において説明した、対象キャラクタの顔を構成するボーンデータは、対象キャラクタの顔を表す3Dデータ(3Dモデルデータ)の一例である。例えば基本ボーンデータは基本3Dデータの一例である。本発明の1又は複数の実施形態では、対象キャラクタの顔を表す3Dデータは、対象キャラクタの顔を構成するメッシュデータ(例えばポリゴンメッシュデータ)であってもよい。この場合、記憶装置14は、対象キャラクタの顔を表すメッシュデータを記憶する。
【0051】
本発明の実施形態において説明した、ゲーム装置10(重み付け決定部23及び3Dモデル画像生成部24)による仮想空間内の3Dキャラクタの顔画像の生成は、ゲーム装置10による3Dオブジェクトの画像生成の一例である。本発明の1又は複数の実施形態では、ゲーム装置10は、任意の3Dオブジェクトに対して、上記の実施形態で説明した対象キャラクタの顔と同様にして仮想カメラから見た3Dオブジェクトの画像を生成することができる。例えばこの場合、記憶装置14は、基準データとして、複数のカメラ基準位置の各々と、当該カメラ基準位置の各々から見たときの3Dオブジェクトの3Dデータの各々とを関連付けて記憶する。3Dオブジェクトは、顔を含む3Dキャラクタの一部又は全部であってもよいし、仮想キャラクタ以外の任意の仮想オブジェクトであってもよい。本発明の1又は複数の実施形態では、ゲーム装置10(重み付け決定部23及び3Dモデル画像生成部24)は、操作対象ではない仮想キャラクタを含む任意の3Dオブジェクトの画像を生成することができ、また例えば、複数の仮想キャラクタの画像を同時に又は順次生成することができる。ゲーム装置10は、当該3Dオブジェクトを含む仮想空間の画像を生成することもできる。
【0052】
本発明の実施形態では、ゲーム装置10は、ゲームAにおいて、仮想空間内に配置される3Dオブジェクトの画像を生成するものとして説明するが、これに限定されない。ゲーム装置10は、ゲームA以外の任意のシステムにおいて、例えば任意のシミュレーションシステムにおいて、ゲームAにおける対象キャラクタと同様にして、仮想空間内に配置される3Dオブジェクトの画像を生成することができる。
【0053】
本発明の実施形態では、ゲーム制御部21は、ゲームプログラム全体が実現する機能部であり、重み付け決定部23及び3Dモデル画像生成部24は、ゲームプログラムのうちのメインプログラムが参照するゲームプログラムの一部を実現する機能部(ソフトウェアモジュール)であるものとして考えることができるが、これに限定されない。重み付け決定部23及び3Dモデル画像生成部24の機能は、メインプログラム内に組み込まれるものであってもよい。例えばゲーム制御部21は、ゲームの進行に応じて仮想カメラの位置を決定し、重み付け決定部23は決定された仮想カメラの位置を取得し、取得した仮想カメラの位置に応じた複数のカメラ基準位置を決定し、該決定されたカメラ基準位置の各々の重みを決定することができる。或いは、例えばゲーム制御部21は、ゲームの進行に応じて仮想カメラの位置を決定するとともに決定した仮想カメラの位置に応じた複数のカメラ基準位置を決定し、該決定されたカメラ基準位置の各々の重みを決定することができる。
【0054】
本発明の実施形態において説明した、図6に示すローカル座標系は対象キャラクタの顔31に設定されるローカル座標系の一例である。本発明の1又は複数の実施形態では、3Dオブジェクト(対象キャラクタの顔31)には任意のローカル座標系を設定することができる。例えばローカル座標系の原点41は、対象キャラクタの顔31の中心位置以外の任意の位置とすることができる。例えばローカル座標系の座標軸は、対象キャラクタの顔31に対して異なるように設定されてもよく、xy平面が水平方向でz方向が垂直方向であってもよく、又はyz平面が水平方向でx方向が垂直方向であってもよい。例えば、正面向きベクトル42がz軸と同一方向となるようにローカル座標系は設定されなくてもよい。また例えば、基準点と原点41は同じ位置でなくてもよい。また例えば、基準点は、顔31の中央あたりの位置であることが好ましいが、他の位置に設定されてもよい。
【0055】
本発明の1又は複数の実施形態では、本発明の実施形態の重み付け決定部23及び3Dモデル画像生成部24と同様の機能を備える場合、角度αや角度βを図6に示すものとは異なるように設定されてもよい。
【0056】
本発明の実施形態において説明した、図8に示す複数の基準位置に基づく複数の領域は、αβ平面において設定される領域の一例である。例えば、ゲーム開発者等は、基準データに含まれる複数のカメラ基準位置に対応する基準位置に基づいて、αβ平面において、図8に示す領域とは異なる領域を設定することができる。例えばαβ平面では、4つの基準位置を頂点とする領域が設定されてもよい。この場合において、この領域内に仮想カメラの位置に対応するαβ平面内の仮想カメラ位置がある場合、重み付け決定部23は、この領域を構成する4つの基準位置を決定し、4つの基準位置の各々の重みを決定し、3Dモデル画像生成部24は、4つの基準位置の各々に関連付けられた3Dデータ(ボーンデータ)と、決定された重みの各々とに基づいて、仮想カメラから見た3Dオブジェクトの画像(対象キャラクタの顔画像)を生成することができる。
【0057】
本発明の実施形態において説明した、基準データが含むカメラ基準位置CR1~CR7は、カメラ基準位置の一例である。ゲーム開発者等は、任意の複数のカメラ基準位置を選択し、これらのカメラ基準位置の各々と、カメラ基準位置の各々から見たときの対象キャラクタの顔を構成するボーンデータの各々とを関連付けて基準データとして記憶することができる。ただし、カメラ基準位置は、対象キャラクタの正面方向の位置CR1を含む。1つの好適な例では、基準データが含むカメラ基準位置CRは、対象キャラクタの正面方向の位置CR1、右方向の位置CR2、左方向の位置CR3、正面斜め上方向の位置CR4、正面斜め下方向の位置CR5、右斜め下方向の位置CR6、及び右斜め下方向の位置CR7を含む。本発明の実施形態においては、対象キャラクタの斜め下方向に配置された仮想カメラから見たときの対象キャラクタの顔と対象キャラクタの正面方向に配置された仮想カメラから見たときの対象キャラクタの顔は、特に口や鼻の部分がずれるなどの不具合が発生しやすいため、カメラ基準位置として、右斜め下方向の位置CR6及び左斜め下方向の位置CR7を含むように構成することにより、このような不具合の発生をより抑えることが可能となる。
【0058】
本発明の実施形態では、上で述べるように、カメラ基準位置の設定に応じて、カメラ基準位置に対応付けられたαβ平面内の基準位置が設定され、αβ平面において形成される複数の領域が設定される。したがって、異なるカメラ基準位置が設定されると、αβ平面内の基準位置は異なるものとなり、複数の基準位置に基づく複数の領域も異なるものとなる。図14は、αβ平面において複数の基準位置により形成される複数の領域の一例を示す図である。図14は、複数のカメラ基準位置の各々に対応付けられた複数の基準位置O、V、VO、D、DO、RF、R、RO、LF、L、LO、DR、DL、DRO、DLOにより形成される複数の領域a1~a26を示している。
【0059】
本発明の1又は複数の実施形態では、ゲーム制御部21は、αβ平面内の仮想カメラ位置が複数の基準位置の内側領域となるように、仮想カメラの位置を決定することができる又はカメラ基準位置を選択することができる。
【0060】
本発明の1又は複数の実施形態では、重み付け決定部23は、3つの基準位置を決定した場合、所定の関数を用いて、基準位置の重みの合計が1(100%)となるように、3つの基準位置(カメラ基準位置)の各々の重みを決定することができる。例えば重み付け決定部23は、αβ平面に垂直な重みw軸を追加したαβw座標を用いて、3つの基準位置P1(α1、β1)、P2(α2、β2)、P3(α3、β3)における基準位置P1の重みw1を、P1でw=1となり、P2とP3でw=0となる所定の関数F1の仮想カメラ位置Qにおける重みwの値により決定する。この場合、同様にして、基準位置P2の重みw2を、P2でw=1となり、P1とP3でw=0となる所定の関数F2の仮想カメラ位置Qにおける重みwの値により決定し、基準位置P3の重みw3を、P3でw=1となり、P1とP2でw=0となる所定の関数F3の仮想カメラ位置Qにおける重みwの値により決定する。図15は、所定の関数F1の一例を示す図である。所定の関数F1、F2、F3は、少なくとも3つの基準位置P1、P2、P3内の領域において、任意の位置Qに対して、F1(Q)+F2(Q)+F3(Q)=1となるような関数が設定される。なお、重み付け決定部23は、2つの基準位置又は4つ以上の基準位置を決定した場合においても、所定の関数を用いて、基準位置の重みの合計が1(100%)となるように、基準位置(カメラ基準位置)の各々の重みを決定することができる。
【0061】
本発明の1又は複数の実施形態では、重み付け決定部23は、αβ平面内の仮想カメラ位置が複数の領域間にある場合、予め設定されたルールに従って、いずれか一方の領域内に属するものとして複数のカメラ基準位置を決定することができる。本発明の1又は複数の実施形態では、重み付け決定部23が、αβ平面内の仮想カメラ位置が複数の領域間にある場合に、当該複数の領域のいずれの領域内に属するものとして重みを決定しても同じ値となるように、重みを決定する際の領域ごとに用いる関数を設定することができる。
【0062】
本発明の実施形態では、記憶装置14は、基準データとして、対象キャラクタの正面方向のカメラ基準位置CR1に関連付けて対象キャラクタの無表情の顔又は普通の表情の顔を構成するボーンデータを記憶する。
【0063】
本発明の1又は複数の実施形態では、記憶装置14は、基準データとして、対象キャラクタの正面方向のカメラ基準位置CR1に関連付けて対象キャラクタの無表情の顔を構成するボーンデータ及び1以上の所定の表情の顔に関する表情データを記憶することができる。この実施形態では、1以上の所定の表情の顔は、笑顔、怒った顔、悲しい顔などを含み、表情データは、対象キャラクタの所定の表情の顔を構成するボーンデータの対象キャラクタの無表情の顔を構成するボーンデータからの差分により表されるデータである。この実施形態では、例えばゲーム制御部21は、ゲームの進行に応じて、対象キャラクタの表情を決定する。この場合、3Dモデル画像生成部24は、決定されたカメラ基準位置の各々に関連付けられた対象キャラクタの顔を構成するボーンデータを、各々決定された重みに基づいて基本ボーンデータにブレンドし、更にゲーム制御部21が決定した対象キャラクタの表情に対応する表情データをブレンドする(例えば対応する表情データの差分を足す)ことにより、仮想カメラから見た対象キャラクタの顔画像を生成することができる。このように本実施形態のゲーム装置10の画像生成処理は、対象キャラクタの顔が複数の表情を有する場合であっても、適用することが可能である。
【0064】
本発明の1又は複数の実施形態では、基準データにおいて、対象キャラクタの正面方向のカメラ基準位置CR1に関連付けて記憶された対象キャラクタの顔を構成するボーンデータを基本ボーンデータとして記憶しなくてもよい。すなわち、基準データは、基本ボーンデータを含まなくてもよい。この場合、基準データに記憶される、対象キャラクタの正面方向のカメラ基準位置CR1以外のカメラ基準位置に関連付けて記憶された対象キャラクタを構成するボーンデータは、基本ボーンデータからの差分ではなく、それぞれのカメラ基準位置から見たときの対象キャラクタを構成するボーンデータそのものである。或いは、基準データにおいて、対象キャラクタの正面方向のカメラ基準位置CR1以外のカメラ基準位置に関連付けて記憶された対象キャラクタを構成するボーンデータが、基本ボーンデータとして記憶されてもよい。
【0065】
本発明の1又は複数の実施形態では、αβ平面内の仮想カメラ位置がカメラ基準位置と同一である場合、重み付け決定部23は、1つのカメラ基準位置を決定する。この場合、3Dモデル画像生成部24は、決定されたカメラ基準位置に関連付けられた3Dデータを用いて3Dオブジェクトの画像を生成する。
【0066】
本発明の1又は複数の実施形態では、カメラ基準位置は、基準点からの距離が同一でなくてもよい。この場合、3Dモデル画像生成部24は、仮想カメラの距離を考慮して、3Dオブジェクトの画像を生成する。
【0067】
本発明の実施形態では、ゲーム装置10は、1又は複数の装置を含んで構成されるゲームシステムの一例であるが、該ゲームシステムは、ユーザが操作するクライアント端末とゲームを提供するサーバとを備えるクライアントサーバシステムであってもよい。
【0068】
本発明の他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するプログラムや該プログラムを格納したコンピュータ読み取り可能な記憶媒体とすることもできる。また他の実施形態では、ゲームなどのメインプログラムとは独立した重み付け決定部23及び3Dモデル画像生成部24の機能を備えるプログラム、該機能を備える画像生成装置又は画像生成システムとすることもできる。
【0069】
また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現する方法とすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するプログラムをコンピュータに供給することができるサーバとすることもできる。また他の実施形態では、上記で説明した本発明の実施形態の機能やフローチャートに示す情報処理を実現するゲームシステムや画像生成システムは、仮想マシン又はクラウドシステムであってもよい。
【0070】
以上に説明した処理又は動作において、処理又は動作上の矛盾が生じない限りにおいて、処理又は動作を自由に変更することができる。また以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
【符号の説明】
【0071】
10 ゲーム装置
11 プロセッサ
12 入力装置
13 表示装置
14 記憶装置
15 通信装置
16 バス
21 ゲーム制御部
23 重み付け決定部
24 3Dモデル画像生成部
31 顔
32 仮想カメラ
41 原点
42 正面向きベクトル
43 仮想カメラ位置ベクトル
44 射影ベクトル
51~57 基準位置
61~72 領域
81~83 仮想カメラ位置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
【手続補正書】
【提出日】2023-05-18
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
仮想空間内の3Dオブジェクトの仮想カメラから見た画像を生成するためのプログラムであって、コンピュータに、
カメラ基準位置から見たときの3Dオブジェクトの3Dデータと該カメラ基準位置とが関連付けて記憶された基準データに含まれる複数のカメラ基準位置から、仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定するステップと、
決定されたカメラ基準位置の各々に関連付けられた3Dデータと、決定された重みとに基づいて、仮想カメラから見た3Dオブジェクトの画像を生成するステップと、
を実行させ
基準データは、3Dオブジェクトの正面方向ベクトル上のカメラ基準位置と、該カメラ基準位置に関連付けられた3Dオブジェクトの3Dデータである基本3Dデータとを含み、
基準データが含む基本3Dデータ以外の3Dデータは、基本3Dデータからの差分により表されるデータであり、
3Dオブジェクトの画像を生成するステップは、決定されたカメラ基準位置の各々に関連付けられた3Dオブジェクトの3Dデータを、各々決定された重みに基づいて基本3Dデータにブレンドすることにより、仮想カメラから見た3Dオブジェクトの画像を生成することを含む、
プログラム。
【請求項2】
3Dデータは、3Dオブジェクトを構成するボーンデータ又はメッシュデータである、請求項1に記載のプログラム。
【請求項3】
前記プログラムは、仮想空間内に3Dオブジェクトを配置して進行するゲームのためのプログラムであり、コンピュータに、
ゲームの進行に応じて仮想カメラの位置を決定するステップを実行させ、
重みを決定するステップは、複数のカメラ基準位置から、決定された仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定する、
請求項1に記載のプログラム。
【請求項4】
3Dオブジェクトはローカル座標系により定められ、
カメラ基準位置は、ローカル座標系の一の方向に対応する3Dオブジェクトの正面向きベクトルに対するローカル座標系の基準点から仮想カメラへの方向ベクトルの水平方向における回転角αと水平方向となす角βとにより表されるαβ平面内の位置に対応付けられ、
重みを決定するステップは、取得された仮想カメラの位置に対応するαβ平面内の位置と、複数のカメラ基準位置が対応付けられたαβ平面内の複数の位置とに基づいて、取得された仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定する、
請求項1に記載のプログラム。
【請求項5】
αβ平面は、複数のカメラ基準位置により形成される複数の領域が設定され、
重みを決定するステップは、仮想カメラの位置に対応するαβ平面内の位置が属する領域から複数のカメラ基準位置を決定し、仮想カメラの位置に対応するαβ平面内の位置から決定されたカメラ基準位置が対応付けられた位置までの長さに応じて該カメラ基準位置の各々の重みを決定する、
請求項4に記載のプログラム。
【請求項6】
3Dオブジェクトは、3Dキャラクタの顔を表す顔オブジェクトであり、
基本3Dデータは、無表情のときの顔オブジェクトの3Dデータであり、
基準データは、所定の表情のときの顔オブジェクトの3Dデータの基本3Dデータからの差分を表す表情データを含み、
3Dオブジェクトの画像を生成するステップは、決定されたカメラ基準位置の各々に対応する3Dオブジェクトの3Dデータを、各々決定された重みに基づいて基本3Dデータにブレンドし、更に対応する表情データをブレンドすることにより、仮想カメラから見た3Dオブジェクトの画像を生成することを含む、請求項1から5のいずれか1つに記載のプログラム。
【請求項7】
基準データは、右斜め下方向からのカメラ基準位置から見たときの3Dオブジェクトの3Dデータと、左斜め下方向からのカメラ基準位置から見たときの3Dオブジェクトの3Dデータとを含む、請求項1に記載のプログラム。
【請求項8】
コンピュータにより実行される、3Dオブジェクトの仮想カメラから見た画像を生成するための方法であって、
カメラ基準位置から見たときの3Dオブジェクトの3Dデータと該カメラ基準位置とが関連付けて記憶された基準データに含まれる複数のカメラ基準位置から、仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定するステップと、
決定されたカメラ基準位置の各々に関連付けられた3Dデータと、決定された重みとに基づいて、仮想カメラから見た3Dオブジェクトの画像を生成するステップと、
を含
基準データは、3Dオブジェクトの正面方向ベクトル上のカメラ基準位置と、該カメラ基準位置に関連付けられた3Dオブジェクトの3Dデータである基本3Dデータとを含み、
基準データが含む基本3Dデータ以外の3Dデータは、基本3Dデータからの差分により表されるデータであり、
3Dオブジェクトの画像を生成することは、決定されたカメラ基準位置の各々に関連付けられた3Dオブジェクトの3Dデータを、各々決定された重みに基づいて基本3Dデータにブレンドすることにより、仮想カメラから見た3Dオブジェクトの画像を生成することを含む、
方法。
【請求項9】
3Dオブジェクトの仮想カメラから見た画像を生成する画像生成装置であって、
カメラ基準位置から見たときの3Dオブジェクトの3Dデータと該カメラ基準位置の各々とを関連付けて記憶し、
前記記憶された複数のカメラ基準位置から、仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定し、
決定されたカメラ基準位置の各々に関連付けられた3Dデータと、決定された重みとに基づいて、仮想カメラから見た3Dオブジェクトの画像を生成する、
ように構成される、
基準データは、3Dオブジェクトの正面方向ベクトル上のカメラ基準位置と、該カメラ基準位置に関連付けられた3Dオブジェクトの3Dデータである基本3Dデータとを含み、
基準データが含む基本3Dデータ以外の3Dデータは、基本3Dデータからの差分により表されるデータであり、
3Dオブジェクトの画像を生成することは、決定されたカメラ基準位置の各々に関連付けられた3Dオブジェクトの3Dデータを、各々決定された重みに基づいて基本3Dデータにブレンドすることにより、仮想カメラから見た3Dオブジェクトの画像を生成することを含む、
画像生成装置。
【請求項10】
3Dオブジェクトの仮想カメラから見た画像を生成するゲームシステムであって、
カメラ基準位置から見たときの3Dオブジェクトの3Dデータと該カメラ基準位置の各々とを関連付けて記憶し、
前記記憶された複数のカメラ基準位置から、仮想カメラの位置に応じた複数のカメラ基準位置を決定し、決定されたカメラ基準位置の各々の重みを決定し、
決定されたカメラ基準位置の各々に関連付けられた3Dデータと、決定された重みとに基づいて、仮想カメラから見た3Dオブジェクトの画像を生成する、
ように構成され
基準データは、3Dオブジェクトの正面方向ベクトル上のカメラ基準位置と、該カメラ基準位置に関連付けられた3Dオブジェクトの3Dデータである基本3Dデータとを含み、
基準データが含む基本3Dデータ以外の3Dデータは、基本3Dデータからの差分により表されるデータであり、
3Dオブジェクトの画像を生成することは、決定されたカメラ基準位置の各々に関連付けられた3Dオブジェクトの3Dデータを、各々決定された重みに基づいて基本3Dデータにブレンドすることにより、仮想カメラから見た3Dオブジェクトの画像を生成することを含む、
ゲームシステム。