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

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

▶ 任天堂株式会社の特許一覧

特許7293036情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法
<>
  • 特許-情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 図1
  • 特許-情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 図2
  • 特許-情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 図3
  • 特許-情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 図4
  • 特許-情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 図5
  • 特許-情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 図6
  • 特許-情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 図7
  • 特許-情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 図8
  • 特許-情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 図9
  • 特許-情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 図10
  • 特許-情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 図11
  • 特許-情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 図12
  • 特許-情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 図13
  • 特許-情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 図14
  • 特許-情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 図15
  • 特許-情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-06-09
(45)【発行日】2023-06-19
(54)【発明の名称】情報処理装置、情報処理プログラム、情報処理システム及び情報処理方法
(51)【国際特許分類】
   G06T 13/40 20110101AFI20230612BHJP
   A63F 13/55 20140101ALI20230612BHJP
【FI】
G06T13/40
A63F13/55
【請求項の数】 22
(21)【出願番号】P 2019147332
(22)【出願日】2019-08-09
(65)【公開番号】P2021028752
(43)【公開日】2021-02-25
【審査請求日】2021-03-09
【審判番号】
【審判請求日】2022-11-09
(73)【特許権者】
【識別番号】000233778
【氏名又は名称】任天堂株式会社
(74)【代理人】
【識別番号】100158780
【弁理士】
【氏名又は名称】寺本 亮
(74)【代理人】
【識別番号】100121359
【弁理士】
【氏名又は名称】小沢 昌弘
(74)【代理人】
【識別番号】100130269
【弁理士】
【氏名又は名称】石原 盛規
(72)【発明者】
【氏名】堂田 卓宏
(72)【発明者】
【氏名】小林 竜二
【合議体】
【審判長】五十嵐 努
【審判官】木方 庸輔
【審判官】千葉 輝久
(56)【参考文献】
【文献】特開2012-208536(JP,A)
【文献】特開平10-74270(JP,A)
【文献】特開2002-92641(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 13/00 - 13/80 ,
G06T 19/00 - 19/20 ,
A63F 13/00 - 13/98
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサと少なくとも1つの記憶媒体を備え、
前記少なくとも1つの記憶媒体は、
キャラクタオブジェクトのデータと、
前記キャラクタオブジェクトが装着する複数の装着アイテムオブジェクトのデータと、
前記装着アイテムオブジェクトの種類毎に、前記キャラクタオブジェクトの少なくとも1つの部位に関連付けた第1パラメータを少なくとも記憶し、
前記少なくとも1つのプロセッサは、
仮想空間内において、前記複数の装着アイテムオブジェクトから、前記キャラクタオブジェクトに装着させる装着アイテムオブジェクトを設定し、
前記仮想空間内において前記キャラクタオブジェクトを制御し、
設定された前記装着アイテムオブジェクトに対応する前記第1パラメータに応じた度合いで前記キャラクタオブジェクトの前記部位の表面の形状変化させて、前記装着アイテムオブジェクトを装着した前記キャラクタオブジェクトを含む前記仮想空間の画像を仮想カメラに基づいて生成する、
情報処理装置。
【請求項2】
前記少なくとも1つのプロセッサは、頂点シェーダ機能を有するGPUを含み、
前記第1パラメータに応じた度合いで前記キャラクタオブジェクトの前記部位に含まれる頂点をオフセットさせることで前記部位の表面の形状変化させる、請求項1記載の情報処理装置。
【請求項3】
前記頂点の前記オフセットは、法線方向の正または負方向に行われる、請求項2記載の情報処理装置。
【請求項4】
前記記憶媒体はさらに、前記キャラクタオブジェクトの頂点毎に前記キャラクタオブジェクトの少なくとも1つの部位に関連付けた第2パラメータを記憶し、
前記プロセッサは、前記第1パラメータと前記第2パラメータに基づいた度合いで前記頂点をオフセットさせる、請求項2または3記載の情報処理装置。
【請求項5】
前記記憶媒体は、前記部位を色に対応させて、前記キャラクタオブジェクトの頂点カラー情報の少なくとも1つのチャンネルとして前記第2パラメータを記憶し、
前記第1パラメータは、前記頂点カラー情報として記憶される前記第2パラメータのそれぞれの色に対応する値として記憶され、
前記プロセッサは、前記第2パラメータを前記キャラクタオブジェクトの色の決定に用いずに、前記部位情報において前記頂点カラーの設定された頂点に対して、当該頂点に対する第2パラメータおよび対応する色の前記第1パラメータに基づいた度合いで頂点を移動させることで色に対応する部位の表面の形状を変化させる、請求項4記載の情報処理装置。
【請求項6】
前記少なくとも1つの記憶媒体はさらに、
複数のキャラクタオブジェクトのデータを記憶し、
前記第1パラメータを、前記複数のキャラクタオブジェクトの種類毎かつ前記装着アイテムオブジェクトの種類毎に記憶し、
前記少なくとも1つのプロセッサは、
対象となる前記キャラクタオブジェクトおよび設定された前記装着アイテムオブジェクトに対応する前記第1パラメータに少なくとも基づいて前記表面の形状の変化度合いを決定し、
前記装着アイテムオブジェクトを装着した複数の前記キャラクタオブジェクトを含む前記仮想空間の画像を仮想カメラに基づいて生成する、請求項1から5のいずれか1項記載の情報処理装置。
【請求項7】
前記装着アイテムオブジェクトは、前記キャラクタオブジェクトが着る服オブジェクトである、請求項1から6のいずれか1項記載の情報処理装置。
【請求項8】
情報処理装置のコンピュータに、
仮想空間内において、キャラクタオブジェクトに装着させる装着アイテムオブジェクトを設定させ、
前記仮想空間内において前記キャラクタオブジェクトを制御させ、
前記装着アイテムオブジェクトの種類毎に予め設定された、前記キャラクタオブジェクトの少なくとも1つの部位に関連付けられた第1パラメータに基づき決定される度合いで前記キャラクタオブジェクトの当該少なくとも1つの部位の表面の形状を変化させて、前記装着アイテムオブジェクトを装着した前記キャラクタオブジェクトを含む前記仮想空間の画像を仮想カメラに基づいて生成させる、
情報処理プログラム。
【請求項9】
前記第1パラメータに応じた度合いで前記キャラクタオブジェクトの前記部位に含まれる頂点をオフセットさせることで前記部位の表面の形状変化させる、請求項8記載の情報処理プログラム。
【請求項10】
前記頂点の前記オフセットは、法線方向の正または負方向に行われる、請求項9記載の情報処理プログラム。
【請求項11】
前記第1パラメータと、前記キャラクタオブジェクトの頂点毎に前記キャラクタオブジェクトの少なくとも1つの部位に関連付けた第2パラメータとに基づいた度合いで前記頂点をオフセットさせる、請求項9または10記載の情報処理プログラム。
【請求項12】
前記第2パラメータは、前記部位を色に対応させて、前記キャラクタオブジェクトの頂点カラー情報の少なくとも1つのチャンネルとして設定され、
前記第1パラメータは、前記頂点カラー情報として記憶される前記第2パラメータのそれぞれの色に対応する値として設定され、
前記第2パラメータを前記キャラクタオブジェクトの色の決定に用いずに、前記部位情報において前記頂点カラーの設定された頂点に対して、当該頂点に対する第2パラメータおよび対応する色の前記第1パラメータに基づいた度合いで頂点を移動させることで色に対応する部位の表面の形状を変化させる、請求項11記載の情報処理プログラム。
【請求項13】
前記第1パラメータは、複数のキャラクタオブジェクトの種類毎かつ前記装着アイテムオブジェクトの種類毎に設定され、
対象となる前記キャラクタオブジェクトおよび設定された前記装着アイテムオブジェクトに対応する前記第1パラメータに少なくとも基づいて前記表面の形状の変化度合いを決定させ、
前記装着アイテムオブジェクトを装着した複数の前記キャラクタオブジェクトを含む前記仮想空間の画像を仮想カメラに基づいて生成させる、請求項8から12のいずれか1項記載の情報処理プログラム。
【請求項14】
前記装着アイテムオブジェクトは、前記キャラクタオブジェクトが着る服オブジェクトである、請求項8から13のいずれか1項記載の情報処理プログラム。
【請求項15】
少なくとも1つのプロセッサと少なくとも1つの記憶媒体を備え、
前記少なくとも1つの記憶媒体は、
キャラクタオブジェクトのデータと、
前記キャラクタオブジェクトが装着する複数の装着アイテムオブジェクトのデータと、
前記装着アイテムオブジェクトの種類毎に、前記キャラクタオブジェクトの少なくとも1つの部位に関連付けた第1パラメータを少なくとも記憶し、
前記少なくとも1つのプロセッサは、
仮想空間内において、前記複数の装着アイテムオブジェクトから、前記キャラクタオブジェクトに装着させる装着アイテムオブジェクトを設定し、
前記仮想空間内において前記キャラクタオブジェクトを制御し、
設定された前記装着アイテムオブジェクトに対応する前記第1パラメータに応じた度合いで前記キャラクタオブジェクトの前記部位の表面の形状変化させて、前記装着アイテムオブジェクトを装着した前記キャラクタオブジェクトを含む前記仮想空間の画像を仮想カメラに基づいて生成する、
情報処理システム。
【請求項16】
少なくとも1つの記憶媒体に、
キャラクタオブジェクトのデータと、
前記キャラクタオブジェクトが装着する複数の装着アイテムオブジェクトのデータと、
前記装着アイテムオブジェクトの種類毎に、前記キャラクタオブジェクトの少なくとも1つの部位に関連付けた第1パラメータを少なくとも記憶させ、
少なくとも1つのプロセッサに、
仮想空間内において、前記複数の装着アイテムオブジェクトから、前記キャラクタオブジェクトに装着させる装着アイテムオブジェクトを設定させ、
前記仮想空間内において前記キャラクタオブジェクトを制御させ、
設定された前記装着アイテムオブジェクトに対応する前記第1パラメータに応じた度合いで前記キャラクタオブジェクトの前記部位の表面の形状変化させて、前記装着アイテムオブジェクトを装着した前記キャラクタオブジェクトを含む前記仮想空間の画像を仮想カメラに基づいて生成させる、
情報処理方法。
【請求項17】
前記少なくとも1つのプロセッサは、頂点シェーダ機能を有するGPUを含み、
前記第1パラメータに応じた度合いで前記キャラクタオブジェクトの前記部位に含まれる頂点をオフセットさせることで前記部位の表面の形状変化させる、請求項16記載の情報処理方法。
【請求項18】
前記頂点の前記オフセットは、法線方向の正または負方向に行われる、請求項17記載の情報処理方法。
【請求項19】
前記記憶媒体にさらに、前記キャラクタオブジェクトの頂点毎に前記キャラクタオブジェクトの少なくとも1つの部位に関連付けた第2パラメータを記憶させ、
前記プロセッサは、前記第1パラメータと前記第2パラメータに基づいた度合いで前記頂点をオフセットさせる、請求項17または18記載の情報処理方法。
【請求項20】
前記記憶媒体は、前記部位を色に対応させて、前記キャラクタオブジェクトの頂点カラー情報の少なくとも1つのチャンネルとして前記第2パラメータを記憶し、
前記第1パラメータは、前記頂点カラー情報として記憶される前記第2パラメータのそれぞれの色に対応する値として記憶され、
前記プロセッサは、前記第2パラメータを前記キャラクタオブジェクトの色の決定に用いずに、前記部位情報において前記頂点カラーの設定された頂点に対して、当該頂点に対する第2パラメータおよび対応する色の前記第1パラメータに基づいた度合いで頂点を移動させることで色に対応する部位の表面の形状を変化させる、請求項19記載の情報処理方法。
【請求項21】
前記少なくとも1つの記憶媒体にさらに、
複数のキャラクタオブジェクトのデータを記憶させ、
前記第1パラメータを、前記複数のキャラクタオブジェクトの種類毎かつ前記装着アイテムオブジェクトの種類毎に記憶させ、
前記少なくとも1つのプロセッサは、
対象となる前記キャラクタオブジェクトおよび設定された前記装着アイテムオブジェクトに対応する前記第1パラメータに少なくとも基づいて前記表面の形状の変化度合いを決定し、
前記装着アイテムオブジェクトを装着した複数の前記キャラクタオブジェクトを含む前記仮想空間の画像を仮想カメラに基づいて生成する、請求項16から20のいずれか1項記載の情報処理方法。
【請求項22】
前記装着アイテムオブジェクトは、前記キャラクタオブジェクトが着る服オブジェクトである、請求項16から21のいずれか1項記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理技術に関する。
【背景技術】
【0002】
従来、ゲームキャラクタが装着している服を変更可能なゲームが知られている。例えば、非特許文献1には、3次元空間に配置されるキャラクタの服、帽子、アクセサリー等を自由に変更できる機能が記載されている。
【先行技術文献】
【非特許文献】
【0003】
【文献】“個性を演出 お家やファッションを自分らしくアレンジ!”、[online]、任天堂株式会社(登録商標)、[令和1年7月19日検索]、インターネット<URL: https://www.nintendo.co.jp/3ds/egdj/life/lifebox3.html>
【発明の概要】
【発明が解決しようとする課題】
【0004】
キャラクタが装着する服の形状によっては、キャラクタが特定のモーションをした時に服がキャラクタの素体にめり込んでしまうことが想定される。この場合、服からキャラクタの身体が突き出ることになり、不自然な見た目になる。このような現象に対して服ごとに調整されたキャラクタモデルを用意するなどの対処をする場合、服の種類が多くなると対応が困難になる。
【0005】
本発明は、このような事情に鑑みてなされたものであり、キャラクタが装着するアイテムを変更しても描画時に違和感を生じさせないための処理を簡易な方法で実現することを目的とする。
【課題を解決するための手段】
【0006】
上記の課題を解決するため、本発明の一実施形態に係る情報処理装置は、少なくとも1つのプロセッサと少なくとも1つの記憶媒体を備え、前記少なくとも1つの記憶媒体は、キャラクタオブジェクトのデータと、前記キャラクタオブジェクトが装着する複数の装着アイテムオブジェクトのデータと、前記装着アイテムオブジェクトの種類毎に、前記キャラクタオブジェクトの少なくとも1つの部位に関連付けた第1パラメータを少なくとも記憶し、前記少なくとも1つのプロセッサは、仮想空間内において、前記複数の装着アイテムオブジェクトから、前記キャラクタオブジェクトに装着させる装着アイテムオブジェクトを設定し、前記仮想空間内において前記キャラクタオブジェクトを制御し、設定された前記装着アイテムオブジェクトに対応する前記第1パラメータに応じた度合いで前記キャラクタオブジェクトの前記部位を変形させて、前記装着アイテムオブジェクトを装着した前記キャラクタオブジェクトを含む前記仮想空間の画像を仮想カメラに基づいて生成する。
この情報処理装置によれば、適切な第1パラメータを設定することで、例えば、装着アイテムオブジェクトがキャラクタオブジェクトにめり込むことを抑制することができる。そのため、めり込みを回避するために、装着アイテムオブジェクトの種類ごとにキャラクタオブジェクトを生成しなければならないといった不都合が解消される。
【0007】
上記の情報処理装置において、前記少なくとも1つのプロセッサは、頂点シェーダ機能を有するGPUを含み、前記第1パラメータに応じた度合いで前記キャラクタオブジェクトの前記部位に含まれる頂点をオフセットさせることで前記部位を変形させてもよい。
この情報処理装置によれば、変形処理を高速化できる。
【0008】
上記の情報処理装置において、前記頂点の前記オフセットは、法線方向の正または負方向に行われてもよい。
【0009】
上記の情報処理装置において、前記記憶媒体はさらに、前記キャラクタオブジェクトの頂点毎に前記キャラクタオブジェクトの少なくとも1つの部位に関連付けた第2パラメータを記憶し、前記プロセッサは、前記第1パラメータと前記第2パラメータに基づいた度合いで前記頂点をオフセットさせてもよい。
【0010】
上記の情報処理装置において、前記記憶媒体は、前記部位を色に対応させて、前記キャラクタオブジェクトの頂点カラー情報の少なくとも1つのチャンネルとして前記第2パラメータを記憶し、前記第1パラメータは、前記頂点カラー情報として記憶される前記第2パラメータのそれぞれの色に対応する値として記憶され、前記プロセッサは、前記第2パラメータを前記キャラクタオブジェクトの色の決定に用いずに、前記部位情報において前記頂点カラーの設定された頂点に対して、当該頂点に対する第2パラメータおよび対応する色の前記第1パラメータに基づいた度合いで頂点を移動させることで色に対応する部位の変形を行ってもよい。
この情報処理装置によれば、既存の画像処理の枠組みを利用して変形処理を実行することができる。
【0011】
上記の情報処理装置において、前記少なくとも1つの記憶媒体はさらに、複数のキャラクタオブジェクトのデータを記憶し、前記第1パラメータを、前記複数のキャラクタオブジェクトの種類毎かつ前記装着アイテムオブジェクトの種類毎に記憶し、前記少なくとも1つのプロセッサは、対象となる前記キャラクタオブジェクトおよび設定された前記装着アイテムオブジェクトに対応する前記第1パラメータに少なくとも基づいて前記変形度合いを決定し、前記装着アイテムオブジェクトを装着した複数の前記キャラクタオブジェクトを含む前記仮想空間の画像を仮想カメラに基づいて生成してもよい。
【0012】
上記の情報処理装置において、前記装着アイテムオブジェクトは、前記キャラクタオブジェクトが着る服オブジェクトであってもよい。
この情報処理装置は、キャラクタの服の着せ替えに適している。
【0013】
また、本発明の一実施形態に係る情報処理プログラムは、情報処理装置のコンピュータに、仮想空間内において、キャラクタオブジェクトに装着させる装着アイテムオブジェクトを設定させ、前記仮想空間内において前記キャラクタオブジェクトを制御させ、前記装着アイテムオブジェクトの種類毎に予め設定された、前記キャラクタオブジェクトの少なくとも1つの部位に関連付けられた第1パラメータに基づき決定される度合いで前記キャラクタオブジェクトの当該少なくとも1つの部位を変形させて、前記装着アイテムオブジェクトを装着した前記キャラクタオブジェクトを含む前記仮想空間の画像を仮想カメラに基づいて生成させる。
【0014】
また、本発明の一実施形態に係る情報処理システムは、少なくとも1つのプロセッサと少なくとも1つの記憶媒体を備え、前記少なくとも1つの記憶媒体は、キャラクタオブジェクトのデータと、前記キャラクタオブジェクトが装着する複数の装着アイテムオブジェクトのデータと、前記装着アイテムオブジェクトの種類毎に、前記キャラクタオブジェクトの少なくとも1つの部位に関連付けた第1パラメータを少なくとも記憶し、前記少なくとも1つのプロセッサは、仮想空間内において、前記複数の装着アイテムオブジェクトから、前記キャラクタオブジェクトに装着させる装着アイテムオブジェクトを設定し、前記仮想空間内において前記キャラクタオブジェクトを制御し、設定された前記装着アイテムオブジェクトに対応する前記第1パラメータに応じた度合いで前記キャラクタオブジェクトの前記部位を変形させて、前記装着アイテムオブジェクトを装着した前記キャラクタオブジェクトを含む前記仮想空間の画像を仮想カメラに基づいて生成する。
【0015】
また、本発明の一実施形態に係る情報処理方法は、少なくとも1つの記憶媒体に、キャラクタオブジェクトのデータと、前記キャラクタオブジェクトが装着する複数の装着アイテムオブジェクトのデータと、前記装着アイテムオブジェクトの種類毎に、前記キャラクタオブジェクトの少なくとも1つの部位に関連付けた第1パラメータを少なくとも記憶させ、少なくとも1つのプロセッサに、仮想空間内において、前記複数の装着アイテムオブジェクトから、前記キャラクタオブジェクトに装着させる装着アイテムオブジェクトを設定させ、前記仮想空間内において前記キャラクタオブジェクトを制御させ、設定された前記装着アイテムオブジェクトに対応する前記第1パラメータに応じた度合いで前記キャラクタオブジェクトの前記部位を変形させて、前記装着アイテムオブジェクトを装着した前記キャラクタオブジェクトを含む前記仮想空間の画像を仮想カメラに基づいて生成させる。
【発明の効果】
【0016】
本発明は、キャラクタが装着するアイテムを変更しても描画時に違和感を生じさせないための処理を簡易な方法で実現する。
【図面の簡単な説明】
【0017】
図1】ゲームシステム1の外観の一例を示す図
図2】本体装置2の内部構成の一例を示すブロック図
図3】左コントローラ3及び右コントローラ4の内部構成の一例を示すブロック図
図4】ゲームのプレイ画面の一例を示す図
図5】仮想カメラの位置及び姿勢の制御について説明するための図
図6】変形処理の結果、特定の部位が変形したキャラクタオブジェクトの一例を示す図
図7】DRAM203のメモリマップの一例を示す図
図8】キャラクタオブジェクトのポリゴンモデルデータの一例を示す図
図9】キャラクタオブジェクトのスケルトンモデルデータの一例を示す図
図10】服オブジェクトのポリゴンモデルデータの一例を示す図
図11】背景オブジェクトのポリゴンモデルデータの一例を示す図
図12】服情報テーブルの一例を示す図
図13】ゲームプログラムにより実現される機能の一例を示す図
図14】描画処理の一例を示すフローチャート
図15】変形処理の一例を示すフローチャート
図16】座標変換処理の一例を示すフローチャート
【発明を実施するための形態】
【0018】
1.実施形態
1-1.構成
本発明の一実施形態に係るゲームシステム1について説明する。図1は、ゲームシステム1の外観の一例を示す図である。同図に示すゲームシステム1は、本体装置2、左コントローラ3及び右コントローラ4を備える。左コントローラ3及び右コントローラ4(以下、総称して「コントローラ」と呼ぶ場合がある。)は本体装置2に対して着脱可能である。ゲームシステム1は、左コントローラ3及び右コントローラ4を本体装置2に装着した状態であっても取り外した状態であっても利用可能である。
【0019】
図2は、本体装置2の内部構成の一例を示すブロック図である。同図に示す本体装置2は、プロセッサ201を備える。プロセッサ201は、各種の情報処理を実行する情報処理部であって、CPU51とGPU52を備える。このプロセッサ201は、後述する内部記憶媒体や、スロット204に装着された外部記憶媒体に記憶されるプログラムを実行することによって、各種の情報処理を実行する。
【0020】
本体装置2は、内部記憶媒体の一例として、フラッシュメモリ202及びDRAM203を備える。フラッシュメモリ202は、各種のデータを記憶するために用いられる不揮発性のメモリである。DRAM203は、各種のデータを一時的に記憶するために用いられる揮発性のメモリである。
【0021】
本体装置2は、スロット204及びスロットインターフェース(以下、「I/F」と略記する。)205を備える。スロット204は、本体装置2のハウジングの上側面に設けられ、メモリカード等の外部記憶媒体を装着可能な形状を有する。スロットI/F205は、スロット204に装着された外部記憶媒体に対するデータの読み書きを、プロセッサ201の指示に応じて行う。
【0022】
本体装置2は、ネットワーク通信部206を備える。ネットワーク通信部206は、無線LAN方式により又は赤外線通信により外部装置と無線通信を行う。
【0023】
本体装置2は、コントローラ通信部207を備える。コントローラ通信部207は、Bluetooth(登録商標)等の近距離無線通信技術を用いて左コントローラ3及び右コントローラ4と無線通信を行う。
【0024】
本体装置2は、左側端子208、右側端子209及び下側端子210を備える。左側端子208は、本体装置2が左コントローラ3と有線通信を行うための端子である。右側端子209は、本体装置2が右コントローラ4と有線通信を行うための端子である。下側端子210は、本体装置2がクレードルと通信を行うための端子である。本体装置2は、クレードルと接続されると、クレードルを介して外部の据置型モニタに画像や音声を出力することができる。
【0025】
本体装置2は、ディスプレイ211を備える。ディスプレイ211は、液晶ディスプレイや有機ELディスプレイ等の表示装置である。
【0026】
本体装置2は、タッチパネル212及びタッチパネルコントローラ213を備える。タッチパネル212は、静電容量方式等のタッチパネルであり、ディスプレイ211上に配置される。タッチパネルコントローラ213は、タッチパネル212を制御する回路である。タッチパネルコントローラ213は、タッチパネル212から出力される信号に基づいて、タッチ入力が行われた位置を示すデータを生成して、プロセッサ201に出力する。
【0027】
本体装置2は、コーデック回路214、スピーカ215及び音声入出力端子216を備える。コーデック回路214は、スピーカ215および音声入出力端子216に対する音声データの入出力を制御する回路である。
【0028】
本体装置2は、電力制御部217、バッテリ218及び電源ボタン219を備える。電力制御部217は、プロセッサ201からの指令に基づいて、バッテリ218から本体装置2の各部への電力供給を制御する。
【0029】
次に、図3は、左コントローラ3及び右コントローラ4の内部構成の一例を示すブロック図である。同図に示す左コントローラ3は、端子31を備える。端子31は、左コントローラ3が本体装置2と有線通信を行うための端子である。
【0030】
左コントローラ3は、通信制御部32を備える。通信制御部32は、マイクロプロセッサにより構成され、本体装置2との間の通信を制御する。通信制御部32は、本体装置2との間で、端子31を介した有線通信と、端子31を介さない無線通信の両方が可能である。通信制御部32は、左コントローラ3が本体装置2に装着されているときには、端子31を介して本体装置2と有線通信を行う。一方、左コントローラ3が本体装置2に装着されていないときには、本体装置2との間で無線通信を行う。
【0031】
左コントローラ3は、例えばフラッシュメモリ等のメモリ33を備える。通信制御部32は、メモリ33に記憶されるファームウェアを実行することにより、各種の処理を実行する。
【0032】
左コントローラ3は、各種の操作ボタン34及びアナログスティック35を備える。操作ボタン34及びアナログスティック35は、自身に対して行われた操作に関するデータを、適宜、通信制御部32へ出力する。通信制御部32は、取得した操作データを本体装置2へ送信する。
【0033】
左コントローラ3は、電力供給部36を備える。電力供給部36は、バッテリ及び電力制御回路を有する。
【0034】
次に、右コントローラ4は、端子41を備える。端子41は、右コントローラ4が本体装置2と有線通信を行うための端子である。
【0035】
右コントローラ4は、通信制御部42を備える。通信制御部42は、マイクロプロセッサにより構成され、本体装置2との間の通信を制御する。通信制御部42は、本体装置2との間で、端子41を介した有線通信と、端子41を介さない無線通信の両方が可能である。通信制御部42は、右コントローラ4が本体装置2に装着されているときには、端子41を介して本体装置2と有線通信を行う。一方、右コントローラ4が本体装置2に装着されていないときには、本体装置2との間で無線通信を行う。
【0036】
右コントローラ4は、例えばフラッシュメモリ等のメモリ43を備える。通信制御部42は、メモリ43に記憶されるファームウェアを実行することにより、各種の処理を実行する。
【0037】
右コントローラ4は、各種の操作ボタン44及びアナログスティック45を備える。操作ボタン44及びアナログスティック45は、自身に対して行われた操作に関するデータを、適宜、通信制御部42へ出力する。通信制御部42は、取得した操作データを本体装置2へ送信する。
【0038】
右コントローラ4は、電力供給部46を備える。電力供給部46は、バッテリ及び電力制御回路を有する。
【0039】
次に、ゲームシステム1で実行されるゲームの概要について説明する。
ゲームシステム1で実行されるゲームは、プレイヤが3次元の仮想空間内でキャラクタを操作するゲームである。図4は、このゲームのプレイ画面の一例を示す図である。このゲームでは、同図に示すように、3次元の仮想空間が定義され、この仮想空間内の仮想カメラにより撮影された画像がディスプレイ211に表示される。同図に示す仮想空間には、表示オブジェクトとして、プレイヤによって操作されるプレイヤキャラクタE1、プロセッサ201により制御されるノンプレイヤキャラクタE2及びE3、タワーオブジェクトE4並びにビルオブジェクトE5及びE6が配置されている。プレイヤキャラクタE1は、服を着ており、プレイヤキャラクタE1が装着する服はゲーム中において変更可能であるものとする。なお、少なくともいずれかのノンプレイヤキャラクタについても服の変更が可能であってもよい。
【0040】
この仮想空間内の仮想カメラは、プレイヤの操作に応じて制御される。図5は、仮想カメラの位置及び姿勢の制御について説明するための図である。同図に示す仮想空間には、固定のXYZ直交座標系(以下、「ワールド座標系」という。)が設定される。Y軸は仮想空間の上方向に延びる軸であり、X軸はY軸に対して垂直な軸であり、Z軸はY軸及びX軸に対して垂直な軸である。XZ平面上に地面オブジェクトE7が配置され、地面オブジェクトE7上にプレイヤキャラクタE1等が配置される。
【0041】
この仮想空間には、仮想カメラVCが配置される。この仮想カメラVCには、仮想カメラVCに固定のXcYcZc直交座標系(以下、「カメラ座標系」という。)が設定される。Xc軸は、仮想カメラVCの右方向の軸であり、Yc軸は仮想カメラVCの上方向の軸であり、Zc軸は、仮想カメラVCの視線方向の軸である。この仮想カメラVCは、プレイヤの操作に応じてZc軸周り(ロール方向)、Yc軸回り(ピッチ方向)又はXc軸回り(ヨー方向)に回転する。また、仮想カメラVCは、プレイヤの操作に応じてズーム設定を変更する。
【0042】
この仮想空間において、服の装着にかかる各キャラクタオブジェクトに対して変形処理が行われる。この変形処理は、キャラクタオブジェクトが服オブジェクトを装着した場合に、特定のアクション中などにおいて服オブジェクトがキャラクタオブジェクトにめり込むことを抑制するための処理である。
【0043】
図6は、この変形処理の結果、特定の部位が変形したキャラクタオブジェクトの一例を示す図である。同図において、キャラクタオブジェクトCH1は変形前のキャラクタオブジェクトであり、キャラクタオブジェクトCH2は変形後のキャラクタオブジェクトである。いずれのキャラクタオブジェクトも、半袖の服オブジェクトCLを装着している。同図に示す変形例では、キャラクタオブジェクトCH2の腹周りがキャラクタオブジェクトCH1よりも引っ込められている。
なお、この変形処理は、キャラクタオブジェクトが複数の服オブジェクトを装着している場合には、服オブジェクトごとに実行される。
【0044】
次に、上記のゲームを実行するために使用されるプログラムとデータについて説明する。
図7は、上記のDRAM203のメモリマップの一例を示す図である。同図に示すDRAM203には、ゲームプログラム、キャラクタデータ、服データ、背景データ、服情報テーブル、使用キャラクタデータ、装着服データ、使用背景データ及び仮想カメラデータが記憶される。
【0045】
ゲームプログラムは、上記のゲームを実行するためのプログラムである。このゲームプログラムは、フラッシュメモリ202又は外部記憶媒体からDRAM203に読み込まれる。このゲームプログラムは、インターネット等のネットワークや非一時的な記録媒体を介して頒布可能なプログラムである。
【0046】
次に、キャラクタデータは、ゲームのキャラクタオブジェクトを表すデータである。キャラクタデータは、キャラクタオブジェクトごとに用意される。このキャラクタデータは、ポリゴンモデルデータ、スケルトンモデルデータ及びキャラクタIDにより構成される。
【0047】
ポリゴンモデルデータは、キャラクタオブジェクトのポリゴンモデルを表すデータである。図8は、このポリゴンモデルデータの一例を示す図である。同図に示すポリゴンモデルデータは、複数の頂点データにより構成される。各頂点データは、座標情報、法線ベクトル情報、カラー情報、UV座標情報及びジョイント情報により構成される。これらの情報のうち特に、座標情報、カラー情報及びジョイント情報について説明する。
【0048】
座標情報は、ローカル座標系で表される頂点座標の情報である。
【0049】
カラー情報は、後述するキャラクタオブジェクトの変形処理に用いられるパラメータセットの情報である。ここで、キャラクタオブジェクトの変形処理とは、キャラクタオブジェクトが服オブジェクトを装着した際に、服オブジェクトがキャラクタオブジェクトにめり込みことを抑制するための処理である。詳細については後述する。
このカラー情報は、通常のグラフィックシステムにおいて、頂点ごとにカラーを設定するために用いられるデータであるが、本実施形態においては、当該カラー情報のデータをこの変形処理のパラメータを設定するのに用いて、キャラクタオブジェクトの色の決定には用いない。このように頂点ごとのカラー情報を変形処理に使うことで、既存のデータ構造を用いて頂点ごとに変形を制御することができる。また、たとえば開発ツール等において、変形処理のためのカラー情報によって通常のように頂点に色をつけて表示するようにすれば、変形対象の部位に色がつけられるので、どの部位が変形の対象となっているかを見易く表示させることができる。なお、カラー情報は複数チャンネル設けることができるので、変形処理とは別に、頂点のカラーを設定する場合には、カラー情報のチャンネルを増やせばよい。
【0050】
カラー情報は、RGBA形式で表現される。RGBAの各色情報は0から1の範囲の値をとる。また、RGBAの各色情報は、キャラクタオブジェクトの特定の部位に対応付けられている。Rは腹周りに対応付けられ、Gは肩周りに対応付けられ、Bは肘周りに対応付けられ、Aは足の付け根周りに対応付けられている。変形処理を行う部位を増やしたい場合には、RGBAのカラー情報のチャンネルをさらに増やしてもよい。
【0051】
これらの部位のうち、腹周りを変形対象とするときには、腹周りの頂点のR値が0以外の値に設定される。肩周りを変形対象とするときには、肩周りの頂点のG値が0以外の値に設定される。肘周りを変形対象とするときには、肘周りの頂点のB値が0以外の値に設定される。足の付け根周りを変形対象とするときには、足の付け根周りの頂点のA値が0以外の値に設定される。設定される値は、変形の度合いを表す。
【0052】
次に、ジョイント情報は、ジョイント番号情報とウェイト値情報により構成される。ジョイント番号は、スケルトンモデルの姿勢が変化したときに影響を受けるジョイントの番号を示す情報であり、ウェイト値情報は、その際の影響度を示す情報である。
【0053】
次に、スケルトンモデルデータは、キャラクタオブジェクトのスケルトンモデルを表すデータである。図9は、このスケルトンモデルデータの一例を示す図である。同図に示すスケルトンモデルデータは、複数のジョイントデータにより構成される。各ジョイントデータは、座標情報とリンク情報により構成される。座標情報は、ローカル座標系で表されるジョイントの座標情報である。リンク情報は、連結されている上位のジョイントの番号を示す情報である。
【0054】
以上説明したキャラクタデータは、フラッシュメモリ202又は外部記憶媒体からDRAM203に読み込まれる。
【0055】
次に、服データは、キャラクタオブジェクトが装着する服オブジェクトを表すデータである。服データは、服オブジェクトごとに用意され、各服オブジェクトは、キャラクタオブジェクトごとに用意される。
【0056】
服データは、ポリゴンモデルデータと服IDにより構成される。ポリゴンモデルデータは、服オブジェクトのポリゴンモデルを表すデータである。図10は、このポリゴンモデルデータの一例を示す図である。同図に示すポリゴンモデルデータは、複数の頂点データにより構成される。各頂点データは、座標情報、法線ベクトル情報、カラー情報、UV座標情報及びジョイント情報により構成される。これらの情報のうち特に、座標情報、カラー情報及びジョイント情報について説明する。
【0057】
座標情報は、ローカル座標系で表される頂点座標の情報である。
【0058】
カラー情報は、頂点に割り当てられるカラーを示す情報である。
【0059】
ジョイント情報は、ジョイント番号情報とウェイト値情報により構成される。ジョイント番号は、スケルトンモデルの姿勢が変化したときに影響を受けるジョイントの番号を示す情報であり、ウェイト値情報は、その際の影響度を示す情報である。ここで、スケルトンモデルとは、服オブジェクトを装着しているキャラクタオブジェクトのスケルトンモデルである。
【0060】
この服データは、フラッシュメモリ202又は外部記憶媒体からDRAM203に読み込まれる。
【0061】
次に、背景データは、背景オブジェクトを表すデータである。ここで背景オブジェクトとは、地面オブジェクト、川オブジェクト、家オブジェクトといった背景を構成するオブジェクトである。背景データは、背景オブジェクトごとに用意される。
【0062】
背景データは、ポリゴンモデルデータと背景IDにより構成される。ポリゴンモデルデータは、背景オブジェクトのポリゴンモデルを表すデータである。図11は、このポリゴンモデルデータの一例を示す図である。同図に示すポリゴンモデルデータは、複数の頂点データにより構成される。各頂点データは、座標情報、法線ベクトル情報、カラー情報及びUV座標情報により構成される。これらの情報のうち特に、座標情報及びカラー情報について説明する。
【0063】
座標情報は、ローカル座標系で表される頂点座標の情報である。
【0064】
カラー情報は、頂点に割り当てられるカラーを示す情報である。
【0065】
この背景データは、フラッシュメモリ202又は外部記憶媒体からDRAM203に読み込まれる。
【0066】
次に、服情報テーブルは、上記の変形処理で用いられるパラメータセット(以下、「服情報」という。)を格納するテーブルである。図12は、この服情報テーブルの一例を示す図である。同図に示す服情報テーブルは、服情報として、RGBA値と最大縮小量の組を格納する。
【0067】
これらの情報のうち、RGBA値は、0から1の範囲の値をとる。RGBA値の各色情報は、キャラクタデータのカラー情報と同様に、それぞれ、腹周り、肩周り、肘周り、足の付け根周りに対応付けられている。これらの部位のうち、腹周りを変形対象とするときには、R値が0以外の値に設定され、肩周りを変形対象とするときには、G値が0以外の値に設定され、肘周りを変形対象とするときには、B値が0以外の値に設定され、足の付け根周りを変形対象とするときには、A値が0以外の値に設定される。設定される値は、変形の度合いを表す。一方、最大縮小量は、0から1の範囲の値をとり、設定される値は、変形の度合いを表す。
【0068】
同図に示す服情報テーブルでは、服オブジェクトの種類IDごとに服情報が設定されている。ここで、服オブジェクトの種類には、袖なし、半袖、長袖及びボトムスが含まれる。また、同図に示す服情報テーブルでは、キャラクタオブジェクトのキャラクタIDごとに服情報が設定されている。
【0069】
次に、使用キャラクタデータは、仮想空間に配置されているキャラクタオブジェクトを表すデータである。この使用キャラクタデータは、上記のキャラクタデータにより表されるキャラクタオブジェクトのうち、プレイヤの操作に応じて選択されたキャラクタオブジェクトを表すデータである。この使用キャラクタデータは、キャラクタオブジェクトごとに記憶される。この使用キャラクタデータは、上記のキャラクタデータと同様に、ポリゴンモデルデータ、スケルトンモデルデータ及びキャラクタIDにより構成される。ただし、ポリゴンモデルデータを構成する各座標情報とスケルトンモデルデータを構成する各座標情報は、ワールド座標系で表される座標の情報に変換されている。
この使用キャラクタデータは、プレイヤの操作に応じて、後述するゲーム制御部512によりフレーム(例えば、1/60秒)単位で更新される。
【0070】
装着服データは、仮想空間に配置されているキャラクタオブジェクトに装着されている服オブジェクトを表すデータである。この装着服データは、上記の服データにより表される服オブジェクトのうち、プレイヤの操作に応じて選択された服オブジェクトを表すデータである。この装着服データは、服オブジェクトごとに記憶される。この装着服データは、服データと同様に、ポリゴンモデルデータと服IDにより構成される。ただし、ポリゴンモデルデータを構成する各座標情報は、ワールド座標系で表される位置座標の情報に変換されている。
この装着服データは、プレイヤの操作に応じて、ゲーム制御部512によりフレーム単位で更新される。
【0071】
使用背景データは、仮想空間に配置されている背景オブジェクトを表すデータである。この使用背景データは、上記の背景データにより表される背景オブジェクトのうち、プレイヤの操作に応じて選択された背景オブジェクトを表すデータである。この使用背景データは、背景オブジェクトごとに記憶される。この使用背景データは、背景データと同様に、ポリゴンモデルデータと背景IDにより構成される。ただし、ポリゴンモデルデータを構成する各座標情報は、ワールド座標系で表される位置座標の情報に変換されている。
この使用背景データは、プレイヤの操作に応じて、ゲーム制御部512によりフレーム単位で更新される。
【0072】
仮想カメラデータは、仮想空間に配置されている仮想カメラの位置、視線方向及びズーム設定を示すデータである。この仮想カメラデータは、プレイヤの操作に応じて、ゲーム制御部512によりフレーム単位で更新される。
以上が、DRAM203のメモリマップについての説明である。
【0073】
DRAM203に読み込まれたゲームプログラムは、プロセッサ201により実行される。この実行の結果、図13に示す機能が実現される。同図に示す機能うち、仮想空間設定部511、ゲーム制御部512及び変形情報取得部513は、CPU51により実現され、頂点シェーダ部521、ラスタライズ部522及びピクセルシェーダ部523は、GPU52により実現される。以下、各機能について説明する。
【0074】
仮想空間設定部511は、ゲーム開始時に、プレイヤの操作に応じて仮想空間を設定する。具体的には、仮想空間に、キャラクタオブジェクト、服オブジェクト、背景オブジェクト及び仮想カメラを配置する。その際、服オブジェクトは、キャラクタオブジェクトにより装着されるように配置される。配置された各オブジェクトのデータは、それぞれ、使用キャラクタデータ、装着服データ、使用背景データ、仮想カメラデータとして、DRAM203に記憶される。
【0075】
ゲーム制御部512は、ゲーム実行中に、プレイヤの操作に応じて、使用キャラクタデータ、装着服データ、使用背景データ及び仮想カメラデータをフレーム単位で更新する。具体的には、仮想空間に配置されているキャラクタオブジェクト、服オブジェクト、背景オブジェクト及び仮想カメラの位置、姿勢、色等を変更する。
【0076】
変形情報取得部513は、仮想空間に配置されているキャラクタオブジェクトについて、上記の変形処理に用いられる情報を取得する。具体的には、そのキャラクタオブジェクトの使用キャラクタデータ(特に、ポリゴンモデルデータ)と、そのキャラクタオブジェクトが装着している服オブジェクトの服情報を取得する。
【0077】
これらの情報のうち、使用キャラクタデータについては、DRAM203から取得する。取得した使用キャラクタデータは、GPU52に渡される。
【0078】
一方、服情報については、まず、DRAM203に記憶されている装着服データを参照して、そのキャラクタオブジェクトが装着している服オブジェクトの服IDを特定する。そして、図示せぬ変換テーブルを参照して、特定した服IDに対応する種類IDを特定する。種類IDを特定すると、服情報テーブルを参照して、特定した種類IDとそのキャラクタオブジェクトのキャラクタIDとに対応付けられている服情報を取得する。取得した服情報は、GPU52に渡される。
【0079】
次に、頂点シェーダ部521は、オブジェクトの座標変換を実行する。具体的には、モデル変換処理、変形処理及びビュー変換処理を実行する。
【0080】
これらの処理のうち、モデル変換処理は、仮想空間に配置されるオブジェクトの座標をローカル座標系からワールド座標系に変換するための処理である。
【0081】
変形処理は、仮想空間に配置されているキャラクタオブジェクトの特定の部位を変形させるための処理である。この変形処理は、上記の通り、服オブジェクトがキャラクタオブジェクトにめり込みことを抑制するために行われる。
【0082】
この変形処理を実行する頂点シェーダ部521は、変形処理の対象となるキャラクタオブジェクトの使用キャラクタデータを取得する。この使用キャラクタデータは、上記の変形情報取得部513から取得される。また、そのキャラクタオブジェクトが装着している服オブジェクトの服情報を取得する。この服情報は、上記の変形情報取得部513から取得される。そして、取得したポリゴンモデルデータを構成する各頂点データについて、取得した服情報を用いて、座標変換処理を実行する。
【0083】
この座標変換処理を実行する頂点シェーダ部521は、処理対象の頂点データについて、カラー情報を特定する。カラー情報を特定すると、特定したカラー情報と、取得した服情報に基づいて、頂点座標の変位量を算出する。具体的には、まず、カラー情報をなすRGBA値と服情報をなすRGBA値の間で、同じ色に対応する値同士を乗算する。例えば、カラー情報をなすRGBA値が(1,0,0,0)であり、服情報をなすRGBA値が(1,0,0,0)である場合、R値の乗算値は1となり、G値、B値及びA値の乗算値は0となる。別の例として、カラー情報をなすRGBA値が(1,0,0,0)であり、服情報をなすRGBA値が(0,0,0,1)である場合には、算出されるすべての乗算値は0となる。この乗算値の計算では、カラー情報と服情報の間で、同じ色に対応する値のいずれもが0以外の値である場合に限り、0以外の乗算値が算出されるようになっている。そのため、頂点データのうち、服情報において変形対象とされている部位に相当するもののみ、0以外の乗算値が算出されるようになっている。
【0084】
各色情報について乗算値を算出すると、算出した乗算値のうち、0以外の値に、カラー情報をなす最大縮小量を乗じて、変位量を算出する。例えば、算出した乗算値のうち、0以外の値が1であり、最大縮小量が0.35である場合には、算出される変位量は0.35になる。
【0085】
変位量を算出すると、次に、頂点シェーダ部521は、処理対象の頂点データについて、法線ベクトル情報を特定する。法線ベクトル情報を特定すると、特定した法線ベクトル情報と、算出した変位量に基づいて、変位後の頂点座標を算出する。具体的には、現在の頂点座標を、法線方向の負の方向に、算出した変位量だけ変位させた頂点座標を算出する。算出される頂点座標は、現在の頂点座標よりも内側に引っ込んだ位置の座標となる。
【0086】
頂点座標の算出後、算出した頂点座標で現在の頂点座標を置換する。その結果、処理対象の頂点がオフセットされることになる。
【0087】
以上説明した座標変換処理は、ポリゴンモデルデータを構成する各頂点データについて実行される。その結果、キャラクタオブジェクトの特定の部位が、服オブジェクトがめり込まないように変形する。
【0088】
次に、ビュー変換処理は、仮想空間に配置されているオブジェクトの座標をワールド座標系からカメラ座標系に変換するための処理である。このビュー変換処理を実行する頂点シェーダ部521は、上記の変形処理により座標が変換されたキャラクタデータと、DRAM203に記憶されている装着服データ、使用背景データ及び仮想カメラデータとに基づいて、仮想空間に配置されている各オブジェクトの座標を、ワールド座標系からカメラ座標系に変換する。
以上が、頂点シェーダ部521についての説明である。
【0089】
次に、ラスタライズ部522は、上記のビュー変換処理により座標が変換されたキャラクタデータ、装着服データ及び使用背景データに基づいて、仮想空間を表すピクセルデータを生成する。
【0090】
ピクセルシェーダ部523は、ラスタライズ部522により生成されたピクセルデータに基づいて、仮想空間を表す画像をフレームバッファに描画する。
【0091】
1-2.動作
次に、ゲームシステム1の動作について説明する。以下では特に、ゲームプレイ中に実行される描画処理について説明する。
【0092】
図14は、この描画処理一例を示すフローチャートである。同図に示す描画処理はフレーム単位で実行される。
【0093】
この描画処理のステップS1において、頂点シェーダ部521は、仮想空間に配置されている各キャラクタオブジェクトについて、変形処理を実行する。
【0094】
図15は、この変形処理の一例を示すフローチャートである。
この変形処理のステップS11において、変形情報取得部513は、処理対象のキャラクタオブジェクトの使用キャラクタデータ(特に、ポリゴンモデルデータ)をDRAM203から取得する。使用キャラクタデータを取得すると、次に、変形情報取得部513は、そのキャラクタオブジェクトが装着している服オブジェクトの服IDを、DRAM203に記憶されている装着服データを参照して特定する。そして、図示せぬ変換テーブルを参照して、特定した服IDに対応する種類IDを特定する(ステップS12)。種類IDを特定すると、次に、変形情報取得部513は、服情報テーブルを参照して、そのキャラクタオブジェクトのキャラクタIDと、特定した種類IDとに対応付けられている服情報を取得する(ステップS13)。
【0095】
服情報が取得されると、頂点シェーダ部521は、取得されたポリゴンモデルデータを構成する各頂点データについて、取得された服情報を用いて、座標変換処理を実行する(ステップS14)。
【0096】
図16は、この座標変換処理の一例を示すフローチャートである。
この座標変換処理のステップS141において、頂点シェーダ部521は、処理対象の頂点データについて、カラー情報を特定する。カラー情報を特定すると、特定したカラー情報と、取得された服情報に基づいて、頂点座標の変位量を算出する(ステップS142)。具体的には、まず、カラー情報をなすRGBA値と服情報をなすRGBA値の間で、同じ色に対応する値同士を乗算する。そして、各色情報について乗算値を算出すると、算出した乗算値のうち、0以外の値に、カラー情報をなす最大縮小量を乗じて、変位量を算出する。変位量を算出すると、処理対象の頂点データについて、法線ベクトル情報を特定する(ステップS143)。法線ベクトル情報を特定すると、特定した法線ベクトル情報と、算出した変位量に基づいて、変位後の頂点座標を算出する(ステップS144)。具体的には、現在の頂点座標を、法線方向の負の方向に、算出した変位量だけ変位させた頂点座標を算出する。頂点座標を算出すると、算出した頂点座標で現在の頂点座標を置換する(ステップS145)。
【0097】
以上説明した座標変換処理は、ポリゴンモデルデータを構成する各頂点データについて実行される。その結果、キャラクタオブジェクトの特定の部位が、服オブジェクトがめり込まないように変形する。
【0098】
仮想空間に配置されているすべてのキャラクタオブジェクトについて、変形処理を実行されると、頂点シェーダ部521は、上記の変形処理により座標が変換されたキャラクタデータと、DRAM203に記憶されている装着服データ、使用背景データ及び仮想カメラデータとに基づいて、仮想空間に配置されている各オブジェクトの座標を、ワールド座標系からカメラ座標系に変換する(ステップS2)。
【0099】
ビュー変換処理が実行されると、ラスタライズ部522は、上記のビュー変換処理により座標が変換されたキャラクタデータ、装着服データ及び使用背景データに基づいて、仮想空間を表すピクセルデータを生成する(ステップS3)。
【0100】
ラスタライズ処理が実行されると、ピクセルシェーダ部523は、ラスタライズ部522により生成されたピクセルデータに基づいて、仮想空間を表す画像をフレームバッファに描画する(ステップS4)。このフレームバッファに描画された画像は、ディスプレイ211に表示される。
以上が、描画処理についての説明である。
【0101】
以上説明した描画処理によれば、キャラクタデータのカラー情報と服情報を適切に設定することで、装着アイテムオブジェクトがキャラクタオブジェクトにめり込むことを抑制することができる。そのため、めり込みを回避するために、装着アイテムオブジェクトの種類ごとにキャラクタオブジェクトを生成しなければならないといった不都合が解消される。
【0102】
また、上記の描画処理において、頂点シェーダ処理はGPU52により実行されるため、CPU51により実行される場合と比較して処理が高速化される。
【0103】
また、上記の描画処理では、カラー情報をなすRGBA値を用いて変形処理が実行されるため、既存の画像処理の枠組みを利用して変形処理を実行することができる。
【0104】
2.変形例
上記の実施形態は、以下に説明するように変形してもよい。なお、以下に説明する2以上の変形例は互いに組み合わせてもよい。
【0105】
2-1.変形例1
上記の実施形態では、キャラクタオブジェクトが装着する装着アイテムオブジェクトとして、服オブジェクトが想定されている。しかし、他の装着アイテムオブジェクトをキャラクタオブジェクトに装着させてもよい。例えば、帽子、靴、手袋、鎧、武器等の装着アイテムオブジェクトを装着させてもよい。
【0106】
2-2.変形例2
上記の実施形態では、キャラクタオブジェクトの変形対象部位として、腹周り、肩周り、肘周り及び足の付け根周りが想定されている。しかし、他の部位を変形対象としてもよい。例えば、首周り、手首周り、指の付け根周り等の部位を変形対象としてもよい。
【0107】
2-3.変形例3
上記の服情報テーブルでは、服オブジェクトの種類ごとに服情報が設定されている。具体的には、袖なし、半袖、長袖、ボトムスという種類ごとに服情報が設定されている。しかし、服オブジェクトの種類の分類の仕方は、これよりも詳細にしてもよいし、逆に粗くしてもよい。例えば、服オブジェクトごとに個別に服情報を設定してもよい。
【0108】
上記の実施形態では、キャラクタオブジェクトごとに個別に服情報が設定されている。しかし、キャラクタオブジェクトの種類の分類の仕方は、これよりも粗くしてもよい。すなわち、形状が類似するキャラクタオブジェクトの種類ごとに服情報を設定してもよい。
【0109】
2-4.変形例4
上記の変形処理では、カラー情報と服情報の間で、同じ色に対応する値同士を乗算し、求めた乗算値に最大縮小量を乗じることで頂点座標の変位量を算出している。しかし、この計算で乗算値に乗じられる最大縮小量は、必ずしも用いなくてもよい。
【0110】
2-5.変形例5
上記の変形処理では、カラー情報と服情報の間で、同じ色に対応する値同士を乗算し、求めた値に最大縮小量を乗じることで頂点座標の変位量を算出している。しかし、これに代えて、同じ色に対応する値同士を加算し、求めた値に最大縮小量を乗じる又は加算することで頂点座標の変位量を算出するようにしてもよい。
【0111】
2-6.変形例6
上記の変形処理では、頂点座標の変位量の算出後、その頂点座標を法線方向の負の方向に変位させている。しかし、他の実施形態においては、頂点を法線方向の正の方向に変位させるようにしてもよい。すなわち、頂点を元の位置よりも外側に移動させるようにしてもよい。この場合は、変形していない状態のキャラクタオブジェクトは予め細めの形状になるよう設定され、服ごとにどの程度まで法線方向に変形させてよいかという観点で服情報が設定されることになる。ここで、頂点を変位させる方向の正負は、服情報において色情報ごとに設定されてもよい。
【0112】
2-7.変形例7
上記の実施形態では、カラー情報と服情報がRGBA形式で表現されている。しかし、必ずしもRGBA形式で表現される必要はなく、他の表現形式で表現されてもよい。
【0113】
2-8.変形例8
上記の実施形態では、頂点シェーダ処理はGPU52により実行されている。しかし、必ずしもGPU52により実行される必要はなく、CPU51により実行されてもよい。
【0114】
2-9.変形例9
ゲームシステム1は、上記のゲームプログラムを実行可能な情報処理装置の一例である。ゲームプログラムは、スマートフォンやPC等の他の情報処理装置で実行されてもよい。また、ゲームプログラムにより実現される各機能は、ネットワーク接続された複数の情報処理装置に分散して配置されてもよい。
【符号の説明】
【0115】
1…ゲームシステム、2…本体装置、3…左コントローラ、4…右コントローラ、31…端子、32…通信制御部、33…メモリ、34…操作ボタン、35…アナログスティック、36…電力供給部、41…端子、42…通信制御部、43…メモリ、44…操作ボタン、45…アナログスティック、46…電力供給部、51…CPU、52…GPU、201…プロセッサ、202…フラッシュメモリ、203…DRAM、204…スロット、205…スロットI/F、206…ネットワーク通信部、207…コントローラ通信部、208…左側端子、209…右側端子、210…下側端子、211…ディスプレイ、212…タッチパネル、213…タッチパネルコントローラ、214…コーデック回路、215…スピーカ、216…音声入出力端子、217…電力制御部、218…バッテリ、219…電源ボタン、511…仮想空間設定部、512…ゲーム制御部、513…変形情報取得部、521…頂点シェーダ部、522…ラスタライズ部、523…ピクセルシェーダ部、CH1、CH2…キャラクタオブジェクト、CL…服オブジェクト、E1…プレイヤキャラクタ、E2、E3…ノンプレイヤキャラクタ、E4…タワーオブジェクト、E5、E6…ビルオブジェクト、E7…地面オブジェクト
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16