(57)【要約】【課題】オブジェクトの透過処理により開発者の意図しない画像が表示されることを防止する。【解決手段】情報処理装置３を、仮想的な３次元空間内において仮想カメラ３７から見える画像を生成する画像生成処理部１３、画像を生成する際に、３次元空間内に配置されたプレイヤキャラクタ２５の基準位置４１から仮想カメラ３７の基準位置４５までの範囲に亘って存在する透明化オブジェクト５１，５７，６１を設定する透明化オブジェクト設定処理部２１、画像を生成する際に、３次元空間内に配置された背景オブジェクト３５の透明化オブジェクト５１，５７，６１と接触する部分に透明化処理を実行する透明化実行処理部２３、として機能させる。【選択図】図２
2020116296.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置を、
仮想的な３次元空間内において仮想カメラから見える画像を生成する画像生成処理部、
前記画像を生成する際に、前記３次元空間内に配置された第１のオブジェクトの位置から前記仮想カメラの位置までの範囲に亘って存在する透明化オブジェクトを設定する透明化オブジェクト設定処理部、
前記画像を生成する際に、前記３次元空間内に配置された第２のオブジェクトの前記透明化オブジェクトと接触する部分に透明化処理を実行する透明化実行処理部、
として機能させる、ゲームプログラム。
【請求項２】
前記情報処理装置を、
前記第１のオブジェクトの位置から前記仮想カメラの位置までの範囲に亘って存在する直方体形状の第１の衝突判定用オブジェクトを設定する第１衝突判定用オブジェクト設定処理部、
前記第２のオブジェクトを包含する直方体形状の第２の衝突判定用オブジェクトを設定する第２衝突判定用オブジェクト設定処理部、
前記第１の衝突判定用オブジェクトと前記第２の衝突判定用オブジェクトとの衝突の有無を判定する衝突判定処理部、
としてさらに機能させ、
前記透明化実行処理部は、
前記衝突があったと判定された前記第２の衝突判定用オブジェクトに対応した前記第２のオブジェクトの前記透明化オブジェクトと接触する部分に前記透明化処理を実行する、
請求項１に記載のゲームプログラム。
【請求項３】
前記透明化オブジェクト設定処理部は、
前記第１のオブジェクトと前記仮想カメラとを結ぶ軸に対する径が前記第１のオブジェクトから前記仮想カメラに向けて大きくなる形状の前記透明化オブジェクトを設定する、
請求項１又は２に記載のゲームプログラム。
【請求項４】
前記透明化オブジェクト設定処理部は、
前記第１のオブジェクト側の先端が尖り、且つ、前記径が前記第１のオブジェクトから前記仮想カメラに向けて曲線状に拡大する形状の前記透明化オブジェクトを設定する、
請求項３に記載のゲームプログラム。
【請求項５】
前記透明化オブジェクト設定処理部は、
前記仮想カメラ側の端部に前記軸に垂直な楕円形状の端面を有する前記透明化オブジェクトを設定する、
請求項３又は４に記載のゲームプログラム。
【請求項６】
前記透明化実行処理部は、
前記軸に近づくにつれて透明度が高くなるように、前記第２のオブジェクトの前記透明化オブジェクトと接触する部分に前記透明化処理を実行する、
請求項３乃至５のいずれか１項に記載のゲームプログラム。
【請求項７】
請求項１乃至６のいずれか１項に記載のゲームプログラムを記録した、情報処理装置が読み取り可能な記録媒体。
【請求項８】
情報処理装置によって実行されるゲーム処理方法であって、
仮想的な３次元空間内において仮想カメラから見える画像を生成するステップと、
前記画像を生成する際に、前記３次元空間内に配置された第１のオブジェクトの位置から前記仮想カメラの位置までの範囲に亘って存在する透明化オブジェクトを設定するステップと、
前記画像を生成する際に、前記３次元空間内に配置された第２のオブジェクトの前記透明化オブジェクトと接触する部分に透明化処理を実行するステップと、
を有する、ゲーム処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲームプログラム、当該ゲームプログラムが記録された記録媒体、及びゲーム処理方法に関する。
【背景技術】
【０００２】
従来、仮想的な３次元空間であるオブジェクト空間内において仮想カメラから見える画像を生成する画像生成システムにおいて、プレイヤの視点とキャラクタとの間に障害物となるオブジェクトが入り込んだ場合に、プレイヤの視界がその障害物オブジェクトによりふさがれてしまいキャラクタの周辺がプレイヤから見えなくなることを防止する画像処理技術が知られている。
【０００３】
例えば特許文献１には、視点から見て第１のオブジェクトが第２のオブジェクトの奥側にあると判断され、第１のオブジェクトの透視変換画像が第２のオブジェクトの透視変換画像に重なった場合に、第２のオブジェクトを透過して第１のオブジェクトを視点から見えるようにした画像生成システムが記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４７０７０８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記従来技術では、オブジェクトの全体に対して透過処理を行うため、例えば壁や塀等のオブジェクトの全体が透過されてその向こう側が見えてしまう等、開発者がプレイヤに見せることを意図していない画像が表示されてしまう可能性があった。
【０００６】
本発明はこのような問題点に鑑みてなされたものであり、オブジェクトの透過処理により開発者の意図しない画像が表示されることを防止できるゲームプログラム、記録媒体、及びゲーム処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明のゲームプログラムは、情報処理装置を、仮想的な３次元空間内において仮想カメラから見える画像を生成する画像生成処理部、前記画像を生成する際に、前記３次元空間内に配置された第１のオブジェクトの位置から前記仮想カメラの位置までの範囲に亘って存在する透明化オブジェクトを設定する透明化オブジェクト設定処理部、前記画像を生成する際に、前記３次元空間内に配置された第２のオブジェクトの前記透明化オブジェクトと接触する部分に透明化処理を実行する透明化実行処理部、として機能させる。
【０００８】
上記目的を達成するために、本発明の記録媒体は、上記ゲームプログラムを記録した、情報処理装置が読み取り可能な記録媒体である。
【０００９】
上記目的を達成するために、本発明のゲーム処理方法は、情報処理装置によって実行されるゲーム処理方法であって、仮想的な３次元空間内において仮想カメラから見える画像を生成するステップと、前記画像を生成する際に、前記３次元空間内に配置された第１のオブジェクトの位置から前記仮想カメラの位置までの範囲に亘って存在する透明化オブジェクトを設定するステップと、前記画像を生成する際に、前記３次元空間内に配置された第２のオブジェクトの前記透明化オブジェクトと接触する部分に透明化処理を実行するステップと、を有する。
【発明の効果】
【００１０】
本発明のゲームプログラム等によれば、オブジェクトの透過処理により開発者の意図しない画像が表示されることを防止できる。
【図面の簡単な説明】
【００１１】
【図１】一実施形態に係るゲームシステムの全体構成の一例を表すシステム構成図である。
【図２】情報処理装置の機能的構成の一例を表すブロック図である。
【図３】仮想カメラと各オブジェクトの配置を説明するための説明図である。
【図４】第１の衝突判定用オブジェクトの一例を表す説明図である。
【図５】第２の衝突判定用オブジェクトの一例を表す説明図である。
【図６】透明化オブジェクトの形状の一例を表す説明図である。
【図７】図６に示す透明化オブジェクトの曲面形状を説明するためのグラフである。
【図８】透明化オブジェクトの形状の他の例を表す説明図である。
【図９】図８に示す透明化オブジェクトの曲面形状を説明するためのグラフである。
【図１０】透明化オブジェクトの形状のさらに他の例を表す説明図である。
【図１１】図１０に示す透明化オブジェクトの曲面形状を説明するためのグラフである。
【図１２】透明化処理を実行する際の接触判定手法の一例を表す説明図である。
【図１３】透明化処理が実行された場合の画像の一例を表す図である。
【図１４】情報処理装置のＣＰＵによって実行される処理手順の一例を表すフローチャートである。
【図１５】光軸に対する径が仮想カメラからプレイヤキャラクタに向けて大きくなる形状の透明化オブジェクトが設定された比較例を説明するための説明図である。
【図１６】図１５に示す仮想カメラによる画像の一例である。
【図１７】本実施形態の透明化オブジェクトの形状による効果を説明するための説明図である。
【図１８】図１７に示す仮想カメラによる画像の一例である。
【図１９】透明化オブジェクトの端面を楕円形状とする変形例において、透明化処理を実行する際の接触判定手法の一例を表す説明図である。
【図２０】透明化オブジェクトの端面を楕円形状とする変形例において、透明化処理が実行された場合の画像の一例を表す図である。
【図２１】情報処理装置のハードウェア構成の一例を表すブロック図である。
【発明を実施するための形態】
【００１２】
以下、本発明の一実施の形態について図面を参照しつつ説明する。
【００１３】
＜１．ゲームシステムの全体構成＞
まず、図１を用いて、本実施形態に係るゲームシステム１の全体構成の一例について説明する。図１に示すように、ゲームシステム１は、情報処理装置３と、ゲームコントローラ５と、表示装置７を有する。ゲームコントローラ５及び表示装置７の各々は、情報処理装置３と有線又は無線により通信可能に接続されている。
【００１４】
情報処理装置３は、例えば据え置き型のゲーム機である。但しこれに限定されるものではなく、例えば入力部や表示部等を一体に備えた携帯型のゲーム機でもよい。また、ゲーム機以外にも、例えば、サーバコンピュータ、デスクトップ型コンピュータ、ノート型コンピュータ、タブレット型コンピュータ等のように、コンピュータとして製造、販売等されているものや、スマートフォン、携帯電話、ファブレット等のように、電話機として製造、販売等されているものでもよい。
【００１５】
プレイヤは、ゲームコントローラ５を用いて各種の操作入力を行う。図１に示す例では、ゲームコントローラ５は例えば十字キー９や複数のボタン１１等を有する。なお、ゲームコントローラ５は上記に代えて又は加えて、例えばジョイスティックやタッチパッド等を有してもよい。
【００１６】
＜２．ゲームの概略内容＞
次に、本実施形態に係るゲーム、すなわち、本発明のゲームプログラム及びゲーム処理方法が情報処理装置３によって実行されることにより提供されるゲームの概略内容の一例について説明する。
【００１７】
本実施形態に係るゲームでは、プレイヤが操作可能なプレイヤキャラクタ（第１のオブジェクトの一例）が、仮想的な３次元空間であるゲームフィールド上を移動しながらステージを進めていく。仮想的な３次元空間内においては、プレイヤキャラクタを被写体としつつプレイヤの操作によっても移動可能な仮想カメラから見える画像が生成される。プレイヤキャラクタは、敵キャラクタと遭遇した場合には戦闘を行う。ゲームフィールドには、プレイヤキャラクタや敵キャラクタの背景を構成する多数の背景オブジェクト（第２のオブジェクトの一例）が配置される。
【００１８】
なお、「第１のオブジェクト」は、本実施形態のように例えば人間のキャラクタに限定されるものではなく、人間以外の動物、人間や動物以外の生物、仮想的な生物（例えば怪物、ゴースト、妖怪等）、ロボットやアンドロイド、物品や物体などのオブジェクト等でもよい。
【００１９】
本実施形態に係るゲームでは、仮想カメラとプレイヤキャラクタとの間に障害物となる背景オブジェクトが入り込んだ場合でも、背景オブジェクトを部分的に透明化して、プレイヤキャラクタがプレイヤの視界から見えなくなることを防止する。以下、この内容について詳細に説明する。
【００２０】
＜３．情報処理装置の機能的構成＞
次に、図２及び図３〜図１３を用いて、情報処理装置３の機能的構成の一例について説明する。
【００２１】
図２に示すように、情報処理装置３は、画像生成処理部１３と、第１衝突判定用オブジェクト設定処理部１５と、第２衝突判定用オブジェクト設定処理部１７と、衝突判定処理部１９と、透明化オブジェクト設定処理部２１と、透明化実行処理部２３とを有する。
【００２２】
画像生成処理部１３は、仮想的な３次元空間内において仮想カメラ（視点）から見える画像を生成する。仮想カメラは、プレイヤキャラクタを被写体とするように自動的に移動する。また、プレイヤの操作によって、例えばプレイヤキャラクタの周りを旋回したり、カメラの向きを変えたり、高さ方向やプレイヤキャラクタに対して遠近する方向等に移動することが可能である。
【００２３】
第１衝突判定用オブジェクト設定処理部１５は、プレイヤキャラクタの位置から仮想カメラの位置までの範囲に亘って存在する直方体形状の第１の衝突判定用オブジェクトを設定する。「プレイヤキャラクタの位置」は、処理上設定されるプレイヤキャラクタの基準となる位置であり、例えばプレイヤキャラクタの中心位置である。但し、プレイヤキャラクタの特定の部位（例えば顔）や、身体の表面、近傍位置等も含まれる。「仮想カメラの位置」は、処理上設定される仮想カメラ（視点）の基準となる位置であり、例えば仮想カメラのレンズの中心位置（光軸の位置）である。但し、仮想カメラの近傍位置等も含まれる。
【００２４】
第１の衝突判定用オブジェクトは、直方体形状の軸平行境界ボックス（ＡＡＢＢ：Ａｘｉｓ−Ａｌｉｇｎｅｄ  Ｂｏｕｎｄｉｎｇ  Ｂｏｘ）であり、直方体の各面の法線がゲームフィールドのワールド座標系のＸ軸、Ｙ軸、Ｚ軸のそれぞれと平行となるように設定される。第１の衝突判定用オブジェクトは、例えばプレイヤキャラクタの位置と仮想カメラの位置とをつなぐカプセルコリジョンを包含するように設定される。
【００２５】
第２衝突判定用オブジェクト設定処理部１７は、背景オブジェクトを包含する直方体形状の第２の衝突判定用オブジェクトを設定する。第２の衝突判定用オブジェクトは、第１の衝突判定用オブジェクトと同様、直方体形状の軸平行境界ボックスであり、直方体の各面の法線がゲームフィールドのワールド座標系のＸ軸、Ｙ軸、Ｚ軸のそれぞれと平行となるように設定される。ゲームフィールドには多様な形状の大小様々な背景オブジェクトが配置されるが、第２の衝突判定用オブジェクトは、各背景オブジェクトに対して設定される。
【００２６】
衝突判定処理部１９は、上記第１衝突判定用オブジェクト設定処理部１５により設定された第１の衝突判定用オブジェクトと、上記第２衝突判定用オブジェクト設定処理部１７により設定された第２の衝突判定用オブジェクトとの衝突の有無を、公知の軸平行境界ボックスによる衝突判定手法により判定する。
【００２７】
図３〜図５に、衝突判定用オブジェクトの一例を示す。図３は、仮想カメラと各オブジェクトの配置を説明するための説明図である。図３に示す例では、仮想的な３次元空間内に、プレイヤキャラクタ２５と、床２７、壁２９，３１，３３、柱３５等の背景オブジェクトと、仮想カメラ３７が配置されている。仮想カメラ３７は、光軸３９がプレイヤキャラクタ２５の基準位置４１を向くように配置されている。
【００２８】
図４に示すように、第１の衝突判定用オブジェクト４３は、プレイヤキャラクタ２５の基準位置４１から仮想カメラ３７の基準位置４５までの範囲に亘って存在するように、且つ、直方体の各面の法線がワールド座標系４７のＸ軸、Ｙ軸、Ｚ軸のそれぞれと平行となるように、設定される。
【００２９】
図５に示すように、第２の衝突判定用オブジェクト４９は、背景オブジェクトである柱３５をそれぞれ包含するように、且つ、直方体の各面の法線がワールド座標系４７のＸ軸、Ｙ軸、Ｚ軸のそれぞれと平行となるように、それぞれ設定される。なお、図５では図示を省略しているが、柱３５以外の床２７や壁２９，３１，３３についても第２の衝突判定用オブジェクトが設定されてもよい。
【００３０】
上述のようにして設定された第１の衝突判定用オブジェクト４３と第２の衝突判定用オブジェクト４９との衝突の有無が判定される。衝突判定用オブジェクト４３，４９はワールド座標系４７に対して同じ向きであるため、衝突判定の処理を高速に実行できると共に処理負荷を大幅に軽減できる。
【００３１】
図２に戻り、透明化オブジェクト設定処理部２１は、仮想カメラ３７による画像を生成する際に、３次元空間内に配置されたプレイヤキャラクタ２５の基準位置４１から仮想カメラ３７の基準位置４５までの範囲に亘って存在する透明化オブジェクトを設定する。透明化オブジェクトは、プレイヤキャラクタ２５の基準位置４１と仮想カメラ３７の基準位置４５とを結ぶ光軸３９（軸の一例）に対する径がプレイヤキャラクタ２５から仮想カメラ３７に向けて大きくなる形状となるように設定される。より詳細には、透明化オブジェクトは、プレイヤキャラクタ２５側の先端が尖り、且つ、光軸３９に対する径がプレイヤキャラクタ２５から仮想カメラ３７に向けて曲線状に拡大する形状となるように設定される。
【００３２】
透明化実行処理部２３は、仮想カメラ３７による画像を生成する際に、３次元空間内に配置された背景オブジェクトの、上記透明化オブジェクト設定処理部２１により設定された透明化オブジェクトと接触する部分に透明化処理を実行する。このとき、透明化実行処理部２３は、上述した衝突判定処理部１９により衝突があったと判定された第２の衝突判定用オブジェクト４９に対応した衝突オブジェクトに対してのみ透明化処理を実行する。
【００３３】
なお、「透明化処理」は透明化（透明度１００％）する処理と半透明化（透明度が１００％未満）する処理の両方を含む。透明化する場合には、本来描画される背景オブジェクトの該当するピクセルを描画しないようにする。また、半透明化する場合には、描画するピクセルと描画しないピクセルを透明度に応じた割合となるように配置することによって行う（いわゆるディザリング）。透明化実行処理部２３は、光軸３９に近づくにつれて透明度が高くなるように、背景オブジェクトの透明化オブジェクトと接触する部分に透明化処理を実行する。
【００３４】
なお、「背景オブジェクトの透明化オブジェクトと接触する部分」の判定は、両者の位置や形状の情報を使用して厳密に行ってもよいが、処理負荷を軽減するために簡易的な手法（後述の図１２参照）を採用してもよい。すなわち、当該簡易的手法により「厳密には透明化オブジェクトと接触していないが実質的に透明化オブジェクトと接触しているとみなせる部分」を含むものとする。
【００３５】
図６〜図１１に、透明化オブジェクトの形状の例を示す。図６に示す透明化オブジェクト５１は、光軸３９に対する径がプレイヤキャラクタ２５から仮想カメラ３７に向けて大きくなる形状であり、且つ、プレイヤキャラクタ２５側の先端が尖り、光軸３９に対する径がプレイヤキャラクタ２５から仮想カメラ３７に向けて曲線状に拡大する形状となるように設定されている。透明化オブジェクト５１は、仮想カメラ３７側の端部に光軸３９に垂直な円形状の端面５５を有する。
【００３６】
図７は、図６に示す透明化オブジェクト５１の曲面形状を説明するためのグラフである。図７に示す曲線は、透明化オブジェクト５１を、仮想カメラ３７のカメラ座標系５３（基準位置４５を原点としＺ軸が光軸３９と一致する）におけるＺ軸を含む断面で見た場合における曲面形状を表している。言い換えると、透明化オブジェクト５１は、図７に示す曲線を光軸３９周りに回転させることにより生成される回転体である。図７において、グラフの横軸ｘは、透明化オブジェクト５１のプレイヤキャラクタ２５側の先端（基準位置４１）から仮想カメラ３７側の端面５５への距離の割合を表しており、ｘ＝０で先端位置（基準位置４１）、ｘ＝１で端面５５の中心位置となる。グラフの縦軸ｙは、端面５５の半径に乗算する値である。
【００３７】
図７に示す曲線は、例えば次式の関数ｈ（ｘ）で表される。
ｆ（ｘ）＝−ｘ＋１
ｇ（ｘ）＝ｘ２
ｈ（ｘ）＝ｆ（ｇ（ｆ（ｘ）））
なお、ｌｏｇ（対数関数）を使うことでも同様の曲線を生成できるが、上記関数ｈ（ｘ）を使用することで計算負荷を軽減できる。
【００３８】
透明化オブジェクト５１の形状とする場合には、以下のような効果が得られる。すなわち、透明化オブジェクト５１のプレイヤキャラクタ２５側の先端を尖らせることができるので、プレイヤキャラクタ２５の近くにはあるが表示の障害とはならない背景オブジェクトを透明化の処理対象から除外し易くなる。また、透明化オブジェクト５１は例えば直線状に拡大する形状の場合に比べて膨らみがあるため、プレイヤキャラクタ２５の表示の障害とはならないがカメラ画像に割り込んで視界の煩雑さを招き易い、仮想カメラ３７から近い距離にある背景オブジェクトを、より透明化し易くなる。したがって、仮想カメラ３７の視界をより良好にできる。
【００３９】
図８に示す透明化オブジェクト５７も同様に、光軸３９に対する径がプレイヤキャラクタ２５から仮想カメラ３７に向けて大きくなる形状であり、且つ、プレイヤキャラクタ２５側の先端が尖り、光軸３９に対する径がプレイヤキャラクタ２５から仮想カメラ３７に向けて曲線状に拡大する形状となるように設定されている。透明化オブジェクト５７は、仮想カメラ３７側の端部に光軸３９に垂直な円形状の端面５９を有する。
【００４０】
図９は、図８に示す透明化オブジェクト５７の曲面形状を説明するためのグラフである。透明化オブジェクト５７は、図９に示す曲線を光軸３９周りに回転させることにより生成される回転体である。
【００４１】
図９に示す曲線は、例えば次式の関数ｇ（ｘ）で表される。
ｇ（ｘ）＝ｘ２
【００４２】
透明化オブジェクト５７の形状とする場合には、以下のような効果が得られる。すなわち、透明化オブジェクト５７のプレイヤキャラクタ２５側の先端をより一層尖らせることができるので、プレイヤキャラクタ２５の近くにはあるが表示の障害とはならない背景オブジェクトを透明化の処理対象からさらに除外し易くなる。したがって、プレイヤキャラクタ２５の近くにある重要な情報の表示を阻害しないようにできる。
【００４３】
図１０に示す透明化オブジェクト６１も同様に、光軸３９に対する径がプレイヤキャラクタ２５から仮想カメラ３７に向けて大きくなる形状であり、且つ、プレイヤキャラクタ２５側の先端が尖り、光軸３９に対する径がプレイヤキャラクタ２５から仮想カメラ３７に向けて曲線状に拡大する形状となるように設定されている。透明化オブジェクト６１は、仮想カメラ３７側の端部に光軸３９に垂直な円形状の端面６３を有する。
【００４４】
図１１は、図１０に示す透明化オブジェクト６１の曲面形状を説明するためのグラフである。透明化オブジェクト６１は、図１１に示す曲線を光軸３９周りに回転させることにより生成される回転体である。
【００４５】
図１１に示す曲線は、例えば次式の関数ｉ（ｘ）で表される。
ｉ（ｘ）＝−２ｘ３＋３ｘ２
【００４６】
透明化オブジェクト６１の形状とする場合には、上記透明化オブジェクト５１，５７の双方の効果が得られる。
【００４７】
図１２に、透明化処理を実行する際の接触判定手法の一例を示す。図１２に示す円は、上述した透明化オブジェクト５１，５７，６１をカメラ座標系５３のＺ軸に垂直な任意の位置の断面で見た形状を表している。円の半径ａは、上述した関数ｈ（ｘ）、ｇ（ｘ）、ｉ（ｘ）によりＺ軸位置に応じて求められる。
【００４８】
図１２において、例えばピクセルＰ１に対する処理は次のように行われる。まず、ピクセルＰ１と透明化オブジェクトの中心線（光軸３９）との間に垂線ベクトル６５を生成し、当該垂線ベクトル６５のカメラ座標系５３におけるＸＺ平面での長さをＸ１として、当該Ｘ１の値を用いて円の式（ｘ２＋ｙ２＝ａ２）よりＹ１を算出する。このＹ１の値と垂線ベクトル６５の長さＬ１とを比較し、Ｙ１がＬ１よりも大きい場合には透明化処理を実行する。ピクセルＰ１の場合にはＹ１がＬ１よりも大きいので、ピクセルＰ１には透明化処理が実行される。
【００４９】
ピクセルＰ２に対する処理も上記と同様である。まず、ピクセルＰ２と透明化オブジェクトの中心線（光軸３９）との間に垂線ベクトル６７を生成し、当該垂線ベクトル６７のカメラ座標系５３におけるＸＺ平面での長さをＸ２として、当該Ｘ２の値を用いて円の式（ｘ２＋ｙ２＝ａ２）よりＹ２を算出する。このＹ２の値と垂線ベクトル６７の長さＬ２とを比較すると、Ｙ２がＬ２よりも小さいので、ピクセルＰ２には透明化処理が実行されない。
【００５０】
図１３に、透明化処理が実行された場合の画像の一例を示す。図１３に示す例では、プレイヤキャラクタ２５と仮想カメラ３７との間に柱３５が存在しており、上述した画像処理によって柱３５が部分的に半透明化されている。半透明化は、プレイヤキャラクタ２５に近づくにつれて透明度が高くなるように行われる。
【００５１】
なお、以上説明した各処理部における処理等は、これらの処理の分担の例に限定されるものではなく、例えば、更に少ない数の処理部（例えば１つの処理部）で処理されてもよく、また、更に細分化された処理部により処理されてもよい。また、上述した各処理部の機能は、後述するＣＰＵ１０１（後述の図２１参照）が実行するゲームプログラムにより実装されるものであるが、例えばその一部がＡＳＩＣやＦＰＧＡ等の専用集積回路、その他の電気回路等の実際の装置により実装されてもよい。
【００５２】
＜４．情報処理装置が実行する処理手順＞
次に、図１４を用いて、情報処理装置３のＣＰＵ１０１によって実行される処理手順の一例について説明する。
【００５３】
ステップＳ１０では、情報処理装置３は、画像生成処理部１３により、仮想的な３次元空間内において仮想カメラ３７による画像を生成する。
【００５４】
ステップＳ２０では、情報処理装置３は、第１衝突判定用オブジェクト設定処理部１５により、プレイヤキャラクタ２５と仮想カメラ３７の間に直方体形状の第１の衝突判定用オブジェクト４３を設定する。
【００５５】
ステップＳ３０では、情報処理装置３は、第２衝突判定用オブジェクト設定処理部１７により、背景オブジェクトを包含する直方体形状の第２の衝突判定用オブジェクト４９を設定する。
【００５６】
ステップＳ４０では、情報処理装置３は、衝突判定処理部１９により、上記ステップＳ２０で設定された第１の衝突判定用オブジェクト４３と、上記ステップＳ３０で設定された第２の衝突判定用オブジェクト４９との衝突の有無を判定する。衝突がない場合には（ステップＳ４０：ＮＯ）、後述するステップＳ７０に直接移る。一方、衝突があった場合には（ステップＳ４０：ＹＥＳ）、ステップＳ５０に移る。
【００５７】
ステップＳ５０では、情報処理装置３は、透明化オブジェクト設定処理部２１により、プレイヤキャラクタ２５と仮想カメラ３７の間に透明化オブジェクト５１，５７，６１を設定する。
【００５８】
ステップＳ６０では、情報処理装置３は、透明化実行処理部２３により、背景オブジェクトの上記ステップＳ５０で設定された透明化オブジェクト５１，５７，６１と接触する部分に透明化処理を実行する。
【００５９】
ステップＳ７０では、情報処理装置３は、プレイヤによりゲーム終了の指示が行われたか否かを判定する。ゲーム終了の指示が行われていない場合には（ステップＳ７０：ＮＯ）、先のステップＳ１０に戻り、同様の手順を繰り返す。一方、ゲーム終了の指示が行われた場合には（ステップＳ７０：ＹＥＳ）、本フローチャートを終了する。
【００６０】
なお、上述した処理手順は一例であって、上記手順の少なくとも一部を削除又は変更してもよいし、上記以外の手順を追加してもよい。また、上記手順の少なくとも一部の順番を変更してもよいし、複数の手順が単一の手順にまとめられてもよい。
【００６１】
＜５．実施形態の効果＞
本実施形態のゲームプログラムは、情報処理装置３を、仮想的な３次元空間内において仮想カメラ３７から見える画像を生成する画像生成処理部１３、画像を生成する際に、３次元空間内に配置されたプレイヤキャラクタ２５の基準位置４１から仮想カメラ３７の基準位置４５までの範囲に亘って存在する透明化オブジェクト５１，５７，６１を設定する透明化オブジェクト設定処理部２１、画像を生成する際に、３次元空間内に配置された背景オブジェクト３５（上記実施形態では柱３５）の透明化オブジェクト５１，５７，６１と接触する部分に透明化処理を実行する透明化実行処理部２３、として機能させる。
【００６２】
これにより、仮想カメラ３７とプレイヤキャラクタ２５との間に障害物となる背景オブジェクト３５が入り込んだ場合でも、背景オブジェクト３５を部分的に透明化して、プレイヤキャラクタ２５が見えなくなることを防止できる。このとき、背景オブジェクト３５の全体について透明化を行うのではなく必要な部分のみについて透明化を行うので、開発者の意図しないオブジェクト等が見えてしまうことを防止できる。また、オブジェクト全体の透明化を回避するために例えばオブジェクトを細かく分断して作成しておく等の必要もなくなるので、開発工数やコストが増大することを防止できる。
【００６３】
また、本実施形態では特に、ゲームプログラムは、情報処理装置３を、プレイヤキャラクタ２５の基準位置４１から仮想カメラ３７の基準位置４５までの範囲に亘って存在する直方体形状の第１の衝突判定用オブジェクト４３を設定する第１衝突判定用オブジェクト設定処理部１５、背景オブジェクト３５を包含する直方体形状の第２の衝突判定用オブジェクト４９を設定する第２衝突判定用オブジェクト設定処理部１７、第１の衝突判定用オブジェクト４３と第２の衝突判定用オブジェクト４９との衝突の有無を判定する衝突判定処理部１９、としてさらに機能させ、透明化実行処理部２３は、衝突があったと判定された第２の衝突判定用オブジェクト４９に対応した背景オブジェクト３５の透明化オブジェクト５１，５７，６１と接触する部分に透明化処理を実行する。
【００６４】
本実施形態では、衝突判定により衝突があったと判定された背景オブジェクト３５に対してのみ透明化処理を実行する。これにより、プレイヤキャラクタ２５の表示の障害とならない背景オブジェクト３５に対しては透明化を行わず、障害となる背景オブジェクト３５に対してのみ透明化を行うことができるので、情報処理装置３の処理負荷を軽減できる。また、衝突判定をいわゆる軸平行境界ボックスにより行うので、衝突判定の処理を高速に実行できると共に処理負荷を大幅に軽減できる。
【００６５】
また、本実施形態では特に、透明化オブジェクト設定処理部２１は、プレイヤキャラクタ２５と仮想カメラ３７とを結ぶ光軸３９に対する径がプレイヤキャラクタ２５から仮想カメラ３７に向けて大きくなる形状の透明化オブジェクト５１，５７，６１を設定する。
【００６６】
これによる効果を比較例を用いて説明する。図１５は、光軸３９に対する径が仮想カメラ３７からプレイヤキャラクタ２５に向けて大きくなる形状の透明化オブジェクト６９が設定された比較例における配置の一例を説明するための説明図であり、図１６は図１５に示す仮想カメラ３７による画像の一例である。この場合、図１５及び図１６に示すように、プレイヤキャラクタ２５の近くにはあるがプレイヤキャラクタ２５の表示の障害とはならないオブジェクト７１（例えば宝箱等）を透明化してしまう可能性がある。また、仮想カメラ３７から近い距離にあるオブジェクト７３（例えば柱、壁、塀等）については透明化されず、図１６に示すようにカメラ画像に割り込んで視界の煩雑さを招く可能性がある。
【００６７】
一方、本実施形態では、透明化オブジェクト５１，５７，６１（図１７では代表して透明化オブジェクト５１を示す）を上述の形状に設定することにより、プレイヤキャラクタ２５の近くにはあるが表示の障害とならないオブジェクト７１を透明化の処理対象から除外し易くなる。その一方で、プレイヤキャラクタ２５の表示の障害とはならなくともカメラ画像に割り込んで視界の煩雑さを招き易い、仮想カメラ３７から近い距離にあるオブジェクト７３については、透明化の処理対象に含め易くなる。その結果、図１８に示すように、障害とならないオブジェクト７１の透明化を回避しつつ良好なカメラの視界を確保できる。
【００６８】
また、本実施形態では特に、透明化オブジェクト設定処理部２１は、プレイヤキャラクタ２５側の先端が尖り、且つ、光軸３９に対する径がプレイヤキャラクタ２５から仮想カメラ３７に向けて曲線状に拡大する形状の透明化オブジェクト５１，５７，６１を設定する。
【００６９】
透明化オブジェクト５１，５７，６１のプレイヤキャラクタ２５側の先端を尖らせることにより、プレイヤキャラクタ２５の近くにはあるが表示の障害とならないオブジェクトを透明化の処理対象からより除外し易くなる。また、透明化オブジェクト５１，５７，６１の径を仮想カメラ３７に向けて曲線状に拡大する形状とすることにより、特に透明化オブジェクト５１，６１の場合には、仮想カメラ３７から近い距離にあるオブジェクトをより透明化し易くなり、カメラの視界をより良好にできる。
【００７０】
また、本実施形態では特に、透明化実行処理部２３は、光軸３９に近づくにつれて透明度が高くなるように、背景オブジェクト３５の透明化オブジェクト５１，５７，６１と接触する部分に透明化処理を実行する。
【００７１】
これにより、仮想カメラ３７の視界の中央部分については透明度を高くしてプレイヤキャラクタ２５の視認性を確保することができる。また、視界の中央部分から離れるにつれて透明度を徐々に低くすることで、図１３に示すように、背景オブジェクト３５の描画の変化が連続的となり、半透明化が実行されている部分と実行されていない部分との境界を不明瞭にできる。その結果、見た目に不自然な透過画像（例えばオブジェクトに穴がぽっかり空いた画像）となるのを防止できる。
【００７２】
＜６．変形例等＞
なお、本発明は、上記の実施形態に限られるものではなく、その趣旨及び技術的思想を逸脱しない範囲内で種々の変形が可能である。
【００７３】
例えば、以上では透明化オブジェクトの仮想カメラ３７側の端面が円形である場合について説明したが、当該端面の形状を楕円形状としてもよい。本変形例では、透明化オブジェクト設定処理部２１は、仮想カメラ３７側の端部に光軸３９に垂直な楕円形状の端面（図示省略）を有する透明化オブジェクト５１Ａ，５７Ａ，６１Ａ（図示省略）を設定する。
【００７４】
図１９に、本変形例における透明化処理を実行する際の接触判定手法の一例を示す。図１９の楕円は、前述した透明化オブジェクト５１，５７，６１をカメラ座標系５３におけるＹ方向に長くした透明化オブジェクト５１Ａ，５７Ａ，６１Ａを、カメラ座標系５３のＺ軸に垂直な任意の位置の断面で見た形状を表している。楕円の短半径ａ及び長半径ｂは、上述した関数ｈ（ｘ）、ｇ（ｘ）、ｉ（ｘ）（但し楕円の半径に応じてｙの値を適宜変化させる必要がある）によりＺ軸位置に応じて求められる。
【００７５】
図１９において、例えばピクセルＰ３に対する処理は次のように行われる。まず、ピクセルＰ３と透明化オブジェクトの中心線（光軸３９）との間に垂線ベクトル７５を生成し、当該垂線ベクトル７５のカメラ座標系５３におけるＸＺ平面での長さをＸ３として、当該Ｘ３の値を用いて楕円の式（ｘ２／ａ２＋ｙ２／ｂ２＝１）よりＹ３を算出する。このＹ３の値と垂線ベクトル７５の長さＬ３とを比較し、Ｙ３がＬ３よりも大きい場合には透明化処理を実行する。ピクセルＰ３の場合にはＹ３がＬ３よりも大きいので、ピクセルＰ３には透明化処理が実行される。
【００７６】
ピクセルＰ４に対する処理も上記と同様である。まず、ピクセルＰ４と透明化オブジェクトの中心線（光軸３９）との間に垂線ベクトル７７を生成し、当該垂線ベクトル７７のカメラ座標系５３におけるＸＺ平面での長さをＸ４として、当該Ｘ４の値を用いて楕円の式（ｘ２／ａ２＋ｙ２／ｂ２＝１）よりＹ４を算出する。このＹ４の値と垂線ベクトル７７の長さＬ４とを比較すると、Ｙ４がＬ４よりも小さいので、ピクセルＰ４には透明化処理が実行されない。
【００７７】
図２０に、透明化処理が実行された場合の画像の一例を示す。図２０に示す例では、プレイヤキャラクタ２５と敵キャラクタ７９とが戦闘中であり、仮想カメラ３７から見て上下方向に並んで表示されている。そして、プレイヤキャラクタ２５と仮想カメラ３７との間に柱３５が存在しており、上述した画像処理によって柱３５が上下方向に長い楕円形状に半透明化されている。特に、リアルタイムに進行する戦闘においてはプレイヤによる一瞬一瞬の判断及び操作が重要となるため、仮に敵キャラクタ７９が見えなくなった場合には敵からの攻撃に対して適切な防御ができなかったり、効果的な攻撃のタイミングを逃す等により、戦闘において不利益を受ける可能性がある。本変形例によれば、プレイヤキャラクタ２５だけでなく敵キャラクタ７９についても合わせて視認性を確保することができるので、上記のような不利益を受けることを防止できる。なお、本変形例は、例えば敵をロックオンする機能等により、プレイヤキャラクタ２５と敵キャラクタ７９との画面上での配置が固定される場合に特に有効である。
【００７８】
以上の変形例によれば、プレイヤキャラクタ２５に関わる重要な情報（上記の例では敵キャラクタ７９）がプレイヤキャラクタ２５に対して特定の方向に表示されるような場合に、当該特定の方向に長い楕円形状の端面とすることで、重要な情報も合わせて視認性を確保することができる。
【００７９】
なお、本発明は、仮想カメラと被写体であるオブジェクトの間に他のオブジェクトが入り込む場合があるゲームであれば、様々なジャンルのゲームに適用可能である。例えば、シミュレーションゲーム、ロールプレイングゲーム、アクションゲーム、アクションロールプレイングゲーム、格闘ゲーム、アドベンチャーゲーム等にも、本発明は適用可能である。
【００８０】
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。その他、一々例示はしないが、上記実施形態や各変形例は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。
【００８１】
＜７．情報処理装置のハードウェア構成＞
次に、図２１を用いて、上記で説明したＣＰＵ１０１等が実行するプログラムにより実装された各処理部を実現する情報処理装置３のハードウェア構成の一例について説明する。
【００８２】
図２１に示すように、情報処理装置３は、例えば、ＣＰＵ１０１と、ＲＯＭ１０３と、ＲＡＭ１０５と、ＧＰＵ１０６と、例えばＡＳＩＣ又はＦＰＧＡ等の特定の用途向けに構築された専用集積回路１０７と、入力装置１１３と、出力装置１１５と、記録装置１１７と、ドライブ１１９と、接続ポート１２１と、通信装置１２３を有する。これらの構成は、バス１０９や入出力インターフェース１１１等を介し相互に信号を伝達可能に接続されている。
【００８３】
ゲームプログラムは、例えば、ＲＯＭ１０３やＲＡＭ１０５、記録装置１１７等に記録しておくことができる。
【００８４】
また、ゲームプログラムは、例えば、フレキシブルディスクなどの磁気ディスク、各種のＣＤ、ＭＯディスク、ＤＶＤ等の光ディスク、半導体メモリ等のリムーバブルな記録媒体１２５に、一時的又は永続的（非一時的）に記録しておくこともできる。このような記録媒体１２５は、いわゆるパッケージソフトウエアとして提供することもできる。この場合、これらの記録媒体１２５に記録されたゲームプログラムは、ドライブ１１９により読み出されて、入出力インターフェース１１１やバス１０９等を介し上記記録装置１１７に記録されてもよい。
【００８５】
また、ゲームプログラムは、例えば、ダウンロードサイト、他のコンピュータ、他の記録装置等（図示せず）に記録しておくこともできる。この場合、ゲームプログラムは、ＬＡＮやインターネット等のネットワークＮＷを介し転送され、通信装置１２３がこのプログラムを受信する。そして、通信装置１２３が受信したプログラムは、入出力インターフェース１１１やバス１０９等を介し上記記録装置１１７に記録されてもよい。
【００８６】
また、ゲームプログラムは、例えば、適宜の外部接続機器１２７に記録しておくこともできる。この場合、ゲームプログラムは、適宜の接続ポート１２１を介し転送され、入出力インターフェース１１１やバス１０９等を介し上記記録装置１１７に記録されてもよい。
【００８７】
そして、ＣＰＵ１０１が、上記記録装置１１７に記録されたプログラムに従い各種の処理を実行することにより、前述の画像生成処理部１３、透明化オブジェクト設定処理部２１、透明化実行処理部２３等による処理が実現される。この際、ＣＰＵ１０１は、例えば、上記記録装置１１７からプログラムを、直接読み出して実行してもよく、ＲＡＭ１０５に一旦ロードした上で実行してもよい。更にＣＰＵ１０１は、例えば、プログラムを通信装置１２３やドライブ１１９、接続ポート１２１を介し受信する場合、受信したプログラムを記録装置１１７に記録せずに直接実行してもよい。
【００８８】
また、ＣＰＵ１０１は、必要に応じて、前述のゲームコントローラ５を含む、例えばマウス、キーボード、マイク等（図示せず）の入力装置１１３から入力する信号や情報に基づいて各種の処理を行ってもよい。
【００８９】
ＧＰＵ１０６は、ＣＰＵ１０１からの指示に応じて例えばレンダリング処理などの画像表示のための処理を行う。
【００９０】
そして、ＣＰＵ１０１及びＧＰＵ１０６は、上記の処理を実行した結果を、例えば前述の表示装置７や音声出力部を含む、出力装置１１５から出力する。さらにＣＰＵ１０１及びＧＰＵ１０６は、必要に応じてこの処理結果を通信装置１２３や接続ポート１２１を介し送信してもよく、上記記録装置１１７や記録媒体１２５に記録させてもよい。
【符号の説明】
【００９１】
３              情報処理装置
１３            画像生成処理部
１５            第１衝突判定用オブジェクト設定処理部
１７            第２衝突判定用オブジェクト設定処理部
１９            衝突判定処理部
２１            透明化オブジェクト設定処理部
２３            透明化実行処理部
２５            プレイヤキャラクタ（第１のオブジェクト）
３５            柱（第２のオブジェクト）
３７            仮想カメラ
３９            光軸（軸）
４１            基準位置（第１のオブジェクトの位置）
４３            第１の衝突判定用オブジェクト
４５            基準位置（仮想カメラの位置）
４９            第２の衝突判定用オブジェクト
５１            透明化オブジェクト
５７            透明化オブジェクト
６１            透明化オブジェクト
１２５          記録媒体
【図１】
2020116296.tif 000003
【図２】
2020116296.tif 000004
【図３】
2020116296.tif 000005
【図４】
2020116296.tif 000006
【図５】
2020116296.tif 000007
【図６】
2020116296.tif 000008
【図７】
2020116296.tif 000009
【図８】
2020116296.tif 000010
【図９】
2020116296.tif 000011
【図１０】
2020116296.tif 000012
【図１１】
2020116296.tif 000013
【図１２】
2020116296.tif 000014
【図１３】
2020116296.tif 000015
【図１４】
2020116296.tif 000016
【図１５】
2020116296.tif 000017
【図１６】
2020116296.tif 000018
【図１７】
2020116296.tif 000019
【図１８】
2020116296.tif 000020
【図１９】
2020116296.tif 000021
【図２０】
2020116296.tif 000022
【図２１】
2020116296.tif 000023