(57)【要約】【課題】視点に応じたシーン内に配置される描画オブジェクトの属性を考慮した好適な画面を提供する。【解決手段】情報処理装置は、シーンを描画する視点位置と描画の基準となる基準オブジェクトとの間に規定される所定の体積内に背景オブジェクトが含まれるか否かを判断し、所定の体積内に背景オブジェクトが含まれると判断した場合には、該背景オブジェクトに基づいて定まる視点候補位置に視点位置を変更する。また装置は、シーンを描画する視点位置から所定の範囲内に、キャラクタオブジェクトが存在するかを判断し、視点位置から所定の範囲内に存在すると判断した対象キャラクタオブジェクトについて、該対象キャラクタオブジェクト全体の透過率を設定する。【選択図】図５
2016171989.tif 000002
【特許請求の範囲】
【請求項１】
シーン内にオブジェクトを配置した画面を描画する描画手段に接続されたコンピュータに、
前記シーンを描画する視点位置を取得する処理と、
取得された前記視点位置と描画の基準となる基準オブジェクトとの間に規定される所定の体積内に背景オブジェクトが含まれるか否かを判断する第１の判断処理と、
前記第１の判断処理により前記所定の体積内に背景オブジェクトが含まれると判断された場合に、該背景オブジェクトに基づいて定まる視点候補位置に前記視点位置を変更する処理と、
を実行させるプログラム。
【請求項２】
前記第１の判断処理は、前記基準オブジェクトの位置と前記描画する画角とに基づいて定まる矩形の各頂点から、前記基準オブジェクトの位置から前記視点位置に向かう方向に延ばした平行な直線が背景オブジェクトの衝突判定体積と交差するか否かに応じて、前記所定の体積内に背景オブジェクトが含まれるか否かを判断する請求項１に記載のプログラム。
【請求項３】
前記矩形は、描画に係る近平面を拡張した大きさを有する請求項２に記載のプログラム。
【請求項４】
前記変更する処理は、前記平行な直線上の背景オブジェクトの衝突判定体積との交差点のうち、最も前記基準オブジェクトに近い交差点を前記視点候補位置として設定する請求項２または３に記載のプログラム。
【請求項５】
前記プログラムは、前記第１の判断処理により前記所定の体積内に背景オブジェクトが含まれると判断された場合に、該背景オブジェクトを横方向に迂回する視点移動が左右いずれの方向にも可能であるかを判断する第２の判断処理をさらに前記コンピュータに実行させ、
前記変更する処理は、前記第２の判断処理により前記迂回する視点移動が左右いずれの方向にも可能と判断された場合は前記視点位置を変更しない請求項１乃至４のいずれか１項に記載のプログラム。
【請求項６】
前記第２の判断処理は、前記基準オブジェクトの位置を基準とする前記基準オブジェクトの周囲の前記視点位置を通る所定の軌道上に、前記視点位置から左方向及び右方向の各々に複数配置した点について、該複数配置した点の各々と前記基準オブジェクトとを結ぶ直線と、該複数配置した点及び前記視点位置のうちの隣り合う点を結ぶ直線とのいずれもが背景オブジェクトの衝突判定体積と交差しない場合に、前記迂回する視点移動が左右いずれの方向にも可能と判断する請求項５に記載のプログラム。
【請求項７】
前記第２の判断処理は、前記視点位置について定められる衝突判定体積と背景オブジェクトの衝突判定体積との間で衝突を有すると判断する場合に、前記迂回する視点移動が不可能と判断する請求項５または６に記載のプログラム。
【請求項８】
前記プログラムは、
前記基準オブジェクトの位置に基づいて前記シーンの描画に係る注視点を決定する処理と、
前記視点候補位置と前記注視点との距離が所定の距離を下回る場合に、前記視点候補位置と前記基準オブジェクトの距離を離間させるように前記視点候補位置を垂直方向に移動する処理と、
をさらに前記コンピュータに実行させ、
前記変更する処理は、垂直方向に移動後の前記視点候補位置に前記視点位置を変更する請求項１乃至７のいずれか１項に記載のプログラム。
【請求項９】
前記決定する処理は、前記移動する処理により前記視点候補位置が垂直方向に移動される場合に、移動前の前記視点候補位置と前記注視点とで規定されるベクトルが維持されるように新たな注視点を決定する請求項８に記載のプログラム。
【請求項１０】
前記プログラムは、前記基準オブジェクトの位置とは異なる位置にシーンの描画に係る注視点を決定する処理をさらに前記コンピュータに実行させ、
前記決定する処理は、前記基準オブジェクトの位置と前記注視点とを結ぶ直線が背景オブジェクトの衝突判定体積と交差する場合に、該注視点よりも前記基準オブジェクトの位置に近い位置に新たな注視点を決定する請求項１乃至９のいずれか１項に記載のプログラム。
【請求項１１】
前記決定する処理は、前記基準オブジェクトの位置を基準とする前記基準オブジェクトの周囲の前記視点位置を通る所定の軌道上に、前記視点位置から左方向及び右方向の各々に複数配置した点について、該複数配置した点のうちの少なくとも２つ以上の点について定められる衝突判定体積が背景オブジェクトの衝突判定体積と衝突を有すると判断する場合に、前記注視点よりも前記基準オブジェクトの位置に近い位置に新たな注視点を決定する請求項１０に記載のプログラム。
【請求項１２】
シーン内にオブジェクトを配置した画面を描画する描画手段に接続されたコンピュータに、
前記シーンを描画する視点位置を取得する処理と、
取得された前記視点位置から所定の範囲内に、キャラクタオブジェクトが存在するかを判断する処理と、
前記判断する処理により前記視点位置から前記所定の範囲内に存在すると判断された対象キャラクタオブジェクトについて、該対象キャラクタオブジェクト全体の透過率を設定する処理と、
を実行させるプログラム。
【請求項１３】
前記判断する処理は、取得された前記視点位置について前記所定の範囲を半径とする球状の衝突判定体積と、キャラクタオブジェクトの衝突判定体積との間で衝突を有するか否かに基づいて前記判断を行う請求項１２に記載のプログラム。
【請求項１４】
キャラクタオブジェクトの衝突判定体積は球状であり、
前記設定する処理は、前記視点位置と前記対象キャラクタオブジェクトとの距離、及び前記対象キャラクタオブジェクトの衝突判定体積の半径に基づいて、前記対象キャラクタオブジェクトの透過率を設定する請求項１３に記載のプログラム。
【請求項１５】
前記設定する処理は、前記対象キャラクタオブジェクトに従属しているオブジェクトについても同一の透過率を設定する請求項１２乃至１４のいずれか１項に記載のプログラム。
【請求項１６】
前記設定する処理は、前記視点位置と前記対象キャラクタオブジェクトとの間に描画の基準となる基準キャラクタオブジェクトが存在する場合に、前記対象キャラクタオブジェクト全体の透過率を透過しない値に設定する請求項１２乃至１５のいずれか１項に記載のプログラム。
【請求項１７】
前記プログラムは、前記視点位置と描画の基準となる基準キャラクタオブジェクトとの間に前記対象キャラクタオブジェクトが存在する場合に、前記対象キャラクタオブジェクトの大きさに応じて、前記基準キャラクタオブジェクト及び前記対象キャラクタオブジェクトから離間する方向に前記視点位置を変更する処理をさらに前記コンピュータに実行させる請求項１２乃至１６のいずれか１項に記載のプログラム。
【請求項１８】
前記プログラムは、前記基準キャラクタオブジェクトについて定められた正面方向と、前記視点位置から前記基準キャラクタオブジェクトに向かう方向とがなす角度が所定の角度以上である場合に、該なす角度が小さくなる方向にさらに前記視点位置を変更する処理をさらに前記コンピュータに実行させる請求項１２乃至１７のいずれか１項に記載のプログラム。
【請求項１９】
前記設定する処理は、前記対象キャラクタオブジェクトが予め定められたキャラクタに対応するオブジェクトである場合に、設定する透過率の最大値を制限する請求項１２乃至１８のいずれか１項に記載のプログラム。
【請求項２０】
請求項１乃至１９のいずれか１項に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項２１】
シーン内にオブジェクトを配置した画面を描画する描画手段に接続された情報処理装置であって、
前記シーンを描画する視点位置を取得する取得手段と、
前記取得手段により取得された前記視点位置と描画の基準となる基準オブジェクトとの間に規定される所定の体積内に背景オブジェクトが含まれるか否かを判断する判断手段と、
前記判断手段により前記所定の体積内に背景オブジェクトが含まれると判断された場合に、該背景オブジェクトに基づいて定まる視点候補位置に前記視点位置を変更する変更手段と、
を有する情報処理装置。
【請求項２２】
シーン内にオブジェクトを配置した画面を描画する描画手段に接続された情報処理装置であって、
前記シーンを描画する視点位置を取得する取得手段と、
前記取得手段により取得された前記視点位置から所定の範囲内に、キャラクタオブジェクトが存在するかを判断する判断手段と、
前記判断手段により前記視点位置から前記所定の範囲内に存在すると判断された対象キャラクタオブジェクトについて、該対象キャラクタオブジェクト全体の透過率を設定する設定手段と、
を有する情報処理装置。
【請求項２３】
シーン内にオブジェクトを配置した画面を描画する描画手段に接続された情報処理装置の制御方法であって、
前記シーンを描画する視点位置を取得する工程と、
取得された前記視点位置と描画の基準となる基準オブジェクトとの間に規定される所定の体積内に背景オブジェクトが含まれるか否かを判断する工程と、
前記判断する工程において前記所定の体積内に背景オブジェクトが含まれると判断された場合に、該背景オブジェクトに基づいて定まる視点候補位置に前記視点位置を変更する工程と、
を有する情報処理装置の制御方法。
【請求項２４】
シーン内にオブジェクトを配置した画面を描画する描画手段に接続された情報処理装置の制御方法であって、
前記シーンを描画する視点位置を取得する工程と、
取得された前記視点位置から所定の範囲内に、キャラクタオブジェクトが存在するかを判断する工程と、
前記判断する工程において前記視点位置から前記所定の範囲内に存在すると判断された対象キャラクタオブジェクトについて、該対象キャラクタオブジェクト全体の透過率を設定する工程と、
を有する情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、記録媒体、情報処理装置及び制御方法に関し、特に３次元シーンの描画の基準となる視点パラメータの制御技術に関する。
【背景技術】
【０００２】
近年、３次元（３Ｄ）シーンをコンピュータグラフィックス（ＣＧ）として描画する技術が、電子ゲームの分野に限らず、様々な分野に用いられている。これらのＣＧは、３Ｄシーン内に描画オブジェクトを所定の位置や姿勢等のパラメータを反映して配置し、任意の視点について該シーンを描画することにより生成される。
【０００３】
ところで、ゲームコンテンツ等では、プレイヤによる操作に応じて所望の視点位置が選択可能に構成されるものがある。このようなコンテンツでは、例えば操作対象であるキャラクタを画角内に捉えるような注視点が設定され、プレイヤは該キャラクタの外周を移動するように変更した視点位置に応じて描画された画面でゲームプレイを行うことができる。しかしながら、変更された視点位置によっては、注視点との間に遮蔽物が存在する場合があり、プレイヤにとって好適ではない画面が提示される可能性がある。特許文献１には、画角内に捉えるよう指定された被写体を参照しやすいように決定した参照点（注視点）と視点とを結ぶ直線が障害物によって遮られる場合に、被写体を捉えることが可能な視点位置に変更する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０７−０８５３１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載の技術では注視点と視点とを結ぶ直線が障害物によって遮られていない場合には視点の移動を行わないため、次のようなプレイヤにとって好適でない画面が提示される場合がある。
【０００６】
例えば図９（ａ）に示されるように視点に近い位置に背景（ＢＧ）オブジェクトが存在する場合、注視点と視点とを結ぶ直線は遮られていないため特許文献１に記載の技術では視点の変更は行われないが、このような視点について描画された画面は図９（ｂ）に示されるように画面内の多くの領域が該ＢＧオブジェクトによって占有された画面が出力されることになる。即ち、このような画面はプレイヤが画面右方向の状態を把握可能に構成されたものではなく、ゲームプレイが好適に行える画面でない印象をプレイヤに与える可能性があった。
【０００７】
また図９（ａ）のような視点とＢＧオブジェクトの関係にある場合、ＢＧオブジェクトのモデルデータの構成によっては一部の頂点が画角内に含まれないために、該頂点を含んで構成される面が描画されず、ＢＧオブジェクトの内部が透けて見えてしまう等、破綻した描画表現の画面が提示される可能性があった。
【０００８】
一方で、特許文献１のように注視点と視点とを結ぶ直線が障害物によって遮られた場合に視点の移動を行う場合にも、特に所謂３次元アクションゲームのようなプレイヤの操作対象ではないキャラクタオブジェクトが操作対象のキャラクタオブジェクトの周囲に配置されるようなゲームコンテンツにおいて、プレイヤにとって好適でない画面が提示される場合がある。
【０００９】
特許文献１に記載の技術に依れば例えば操作対象のキャラクタオブジェクトの背後に存在するキャラクタオブジェクトが障害物として判断された場合、該キャラクタオブジェクトによる遮蔽が生じない位置に視点位置が変更される。しかしながら、３次元アクションゲームのようなゲームコンテンツでは、操作対象のキャラクタオブジェクトの周囲に配置された戦闘相手のキャラクタオブジェクトが視認できなくなるような位置への視点変更は、ゲームプレイに支障をきたす可能性があった。
【００１０】
本発明の少なくとも１つの実施形態は、上述の少なくとも１つの問題点に鑑みてなされたものであり、視点に応じたシーン内に配置される描画オブジェクトの属性を考慮した好適な画面を提供するプログラム、記録媒体、情報処理装置及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
前述の目的を達成するために、本発明の１つの実施形態に係るプログラムは、シーン内にオブジェクトを配置した画面を描画する描画手段に接続されたコンピュータに、シーンを描画する視点位置を取得する処理と、取得された視点位置と描画の基準となる基準オブジェクトとの間に規定される所定の体積内に背景オブジェクトが含まれるか否かを判断する第１の判断処理と、第１の判断処理により所定の体積内に背景オブジェクトが含まれると判断された場合に、該背景オブジェクトに基づいて定まる視点候補位置に視点位置を変更する処理と、を実行させる。
【００１２】
前述の目的を達成するために、本発明の別の実施形態に係るプログラムは、シーン内にオブジェクトを配置した画面を描画する描画手段に接続されたコンピュータに、シーンを描画する視点位置を取得する処理と、取得された視点位置から所定の範囲内に、キャラクタオブジェクトが存在するかを判断する処理と、判断する処理により視点位置から所定の範囲内に存在すると判断された対象キャラクタオブジェクトについて、該対象キャラクタオブジェクト全体の透過率を設定する処理と、を実行させる。
【発明の効果】
【００１３】
このような構成により本発明の少なくとも１つの実施形態によれば、視点に応じたシーン内に配置される描画オブジェクトの属性を考慮した好適な画面を提供することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係るゲームコンソール１００の機能構成を示したブロック図
【図２】本発明の実施形態に係るゲームコンソール１００において実行される視点パラメータ決定処理を例示したフローチャート
【図３】本発明の実施形態に係るゲームコンテンツにおいて通常提示されるゲーム画面の画面構成を例示した図
【図４】本発明の実施形態に係る判定用ＢＩＴの配置を説明するための図
【図５】本発明の実施形態に係るＢＧ回避処理を例示したフローチャート
【図６】本発明の実施形態に係る垂直方向の上下動を行う場合の、視点候補位置の移動遷移を例示した図
【図７】本発明の実施形態に係るフェード処理を例示したフローチャート
【図８】本発明の実施形態３に係る敵キャラクタ回避処理を例示したフローチャート
【図９】従来技術において生じうる好適なゲームプレイを困難にし得る状況を説明するための図
【発明を実施するための形態】
【００１５】
［実施形態１］
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、情報処理装置の一例としての、ゲームコンテンツに係るシーン内に描画オブジェクトを配置した画面を描画する描画部を有するゲームコンソールに、本発明を適用した例を説明する。しかし、本発明は、シーン内に描画オブジェクトを配置した画面の描画機能を有する装置を一体として有している機器に限らず、該機能を有する機器が直接または間接的に接続された、演算及びデータ保持のいずれかに使用するハードウェアリソースを有する任意の機器に適用可能である。
【００１６】
また、本明細書において、「ＰＣ」とは、プレイヤが操作入力インタフェースに対して行った操作に応じて直接的に動作制御がなされるプレイヤキャラクタ（Player Character）を指し、「ＮＰＣ」とはＰＣとは異なり、プレイヤが行った操作に基づかず、またはプレイヤが行った操作に応じて間接的に動作制御がなされる、ＰＣと行動を共にする仲間キャラクタや、ＰＣの戦闘相手である敵キャラクタ等の非プレイヤキャラクタ（Non-Player Character）を指すものとする。以下では、描画対象のシーン内に配置される描画オブジェクトのうちＰＣ及びＮＰＣに対応する描画オブジェクトを「キャラクタオブジェクト」と称し、キャラクタオブジェクトを除く、建造物や地形、その他の物体に係る描画オブジェクトを総じて「背景（ＢＧ）オブジェクト」と称して説明する。
【００１７】
《ゲームコンソール１００の構成》
図１は、本発明の実施形態に係るゲームコンソール１００の機能構成を示すブロック図である。
【００１８】
制御部１０１は、例えばＣＰＵ等であり、ゲームコンソール１００が有する各ブロックの動作の制御、及び提供するゲームコンテンツに係る処理を実行する。制御部１０１は、例えば記録媒体１０２に記録されている各ブロックの動作プログラムやゲームプログラムを読み出し、メモリ１０３に展開して実行することにより、各ブロックの動作制御やゲームコンテンツの提供に係る動作を行う。
【００１９】
記録媒体１０２は、例えばゲームコンソール１００が内蔵する不揮発性のＲＯＭ、ゲームコンソール１００に着脱可能に接続されるＨＤＤ、光学ドライブに挿入されることで読み出しが可能となる記録メディア等の記録装置である。記録媒体１０２は、ゲームコンソール１００が有する各ブロックの動作プログラムやゲームプログラムに限らず、各ブロックの動作において必要となる各種パラメータや描画オブジェクトのデータ等を記録する。描画オブジェクトのデータは、例えばオブジェクトを一意に特定する識別情報であるオブジェクトＩＤに関連付けて、モデルデータ、テクスチャデータ、シェーダ等の描画用プログラムを有するものとする。
【００２０】
メモリ１０３は、例えば揮発性メモリである。メモリ１０３は、各ブロックの動作プログラムやゲームプログラムの展開に限らず、各ブロックの動作において出力された中間データ、ゲームプログラムの実行において定義された各種情報を一時的に記憶する格納領域としても用いられる。本実施形態では、各々の特性から後述の描画メモリ１０５とメモリ１０３とは峻別して説明する。
【００２１】
描画部１０４は、例えばＧＰＵ等の、描画に係る各種演算及び最終出力である外部の表示装置に提示するためのゲーム画面の生成を行う描画装置である。描画部１０４は、例えばＧＰＵメモリであってよい描画メモリ１０５に必要な描画オブジェクトのデータを読み出して展開し、必要な演算を適用しながら描画を行い、毎フレームのゲーム画面を生成する。
【００２２】
表示出力部１０６は、ゲームコンソール１００が有する表示出力インタフェースであり、接続された不図示の表示装置に対し、描画部１０４により生成されたゲーム画面を所定のタイミングで出力し、プレイヤにゲームコンテンツの提供を行うことができる。表示装置はゲームコンソール１００の外部に存在し、有線または無線でゲームコンソール１００に接続されるものであってもよいし、ゲームコンソール１００の筐体内に一体に設けられるものであってもよい。
【００２３】
操作入力部１０７は、例えばゲームパッド、キーボード、マウス等のゲームコンソール１００が有するユーザインタフェースである。操作入力部１０７は、これらの種々のユーザインタフェースにより受け付けられたプレイヤによる操作入力を解析し、対応する制御信号を制御部１０１に伝送する。あるいは操作入力部１０７は、解析した操作入力に対応するイベントの発生を制御部１０１に通知する。
【００２４】
《視点パラメータ決定処理》
このような構成をもつ本実施形態のゲームコンソール１００で実行される、描画する画面に係る視点パラメータを決定する視点パラメータ決定処理について、図２のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、制御部１０１が、例えば記録媒体１０２に記憶されている対応する処理プログラムを読み出し、メモリ１０３に展開して実行することにより実現することができる。なお、本視点パラメータ決定処理は、例えばゲームコンテンツのプレイ開始後、各種描画オブジェクトが配置されることにより該コンテンツのプレイフィールドである３次元シーンが構築された際に開始され、以降、毎フレームに係る画面生成に際し実行されるものとして説明する。また以下の説明では簡単のため、ＰＣの位置と注視点の位置は同一の高さ座標を有して定められているものとして説明する。
【００２５】
Ｓ２０１で、制御部１０１は、視点位置及び注視点位置を設定する。本実施形態のゲームコンソール１００において実行されるゲームコンテンツでは、プレイヤの操作入力に従った手動の視点位置の変更がなされない場合、操作対象であるＰＣの背後から、ＰＣを画角内に捉えつつＰＣの進行方向（正面方向）が視認できるよう、ＰＣを画面中心から水平左方向にＰＣがシフトした図３のような画面が通常の視点制御に係るゲーム画面として出力される。即ち、制御部１０１は注視点位置を、基本的にはＰＣを基準として、視点から見て水平右方向にシフトした位置の所定の高さに設定する。一方で、視点位置は、プレイヤの視点移動に係る操作入力に従った手動の視点位置の変更以外に、ＰＣの移動に係る操作入力を基準として、上記通常のゲーム画面に近づくよう制御部１０１が視点位置を制御するよう構成されている。故に、本ステップで制御部１０１は、手動操作による視点位置の直接的な変更、またはＰＣの移動操作に伴う視点位置の間接的な変更のいずれかにより定まる視点位置と、該視点位置を基準として定まる注視点位置とを、例えばメモリ１０３に格納することにより、現在のフレームに係る本来の視点及び注視点位置として設定する。該本来の視点位置は、後続するフレームにおいても視点制御に使用するため、メモリ１０３に保持され、実際に画面描画に使用される視点位置とは別に管理されるものとする。即ち、Ｓ２０１から後述のＳ２０６までの視点位置は、本来の視点位置を順次変更しながら判断する。なお、本ステップにおける本来の視点位置の変更が行われた後も、少なくとも前のフレームに係る本来の視点位置、前のフレームの画面描画に使用された視点位置及びＰＣ位置の情報は本フレームに係る視点パラメータ決定処理の間保持されるものとする。
【００２６】
Ｓ２０２で、制御部１０１は、設定された視点位置が手動操作によって直接的に定められた視点位置であるか否かを判断する。本ステップの判断は、予め定められた視点変更に係る操作入力がなされたか否かに基づいて判断すればよい。制御部１０１は、設定された視点位置が手動操作によって直接的に定められた視点位置であると判断した場合は処理をＳ２０３に移し、それ以外の処理により定められた視点位置であると判断した場合は処理をＳ２０６に移す。
【００２７】
Ｓ２０３で、制御部１０１は、ＰＣと注視点との間にＢＧオブジェクトによる遮蔽があるか否かを判断する。本実施形態ではＢＧオブジェクトには衝突判定用にコリジョン（衝突判定体積）が予め定められているものとし、各種の判断において該コリジョンへの衝突判定に基づいて、該ＢＧオブジェクトによる遮蔽があるか否かを判断する。制御部１０１は、ＰＣ位置から注視点位置に向かう直線を定義するレイキャスト機能により、キャストしたレイ上にコリジョンによる衝突があったか否か、また衝突があった場合はレイの起点から衝突位置までの距離を取得する。制御部１０１は、ＰＣと注視点との間にＢＧオブジェクトによる遮蔽があると判断した場合は処理をＳ２０５に移し、ないと判断した場合は処理をＳ２０４に移す。
【００２８】
Ｓ２０４で、制御部１０１は、現在の視点の配置されている空間が狭所であるか否かを判断する。本実施形態では狭所とは、例えば洞窟等のような視点の水平方向の左右各々に存在する壁と壁との幅が所定の間隔を下回る空間だけでなく、視点の位置が水平方向の左右いずれかの方向に存在する壁との距離が近く、該方向への視点の移動が制限されうる空間も狭所として判断する。制御部１０１は、狭所であるかの判断のために、ＰＣ位置に仮想的に規定した垂直方向の直線を回転軸とし、図４のようにＰＣ位置と視点位置とを半径とした円弧の軌道上であって、視点位置から水平方向の左右各々の方向に３０度刻みの回転で定義した６点（各方向３点）を判定用ＢＩＴとして定義する。そして制御部１０１は該判定用ＢＩＴを中心に定めた所定の大きさの衝突判定体積とＢＧオブジェクトの衝突判定体積との間で衝突があったか否かを判断し、いずれか２つの判定用ＢＩＴがＢＧオブジェクトと衝突したと判断した場合に、現在の視点の配置されている空間が狭所であると判断する。制御部１０１は、現在の視点の配置されている空間が狭所であると判断した場合は処理をＳ２０５に移し、狭所ではないと判断した場合は処理をＳ２０６に移す。
【００２９】
Ｓ２０５で、制御部１０１は、注視点位置を変更する。Ｓ２０３においてＰＣと注視点との間にＢＧオブジェクトによる遮蔽がある場合は、注視点がＢＧオブジェクト内に配置されたことを意味する。このような状況ではゲーム画面を描画した場合にＢＧオブジェクトにフォーカスすることになるため好ましくなく、制御部１０１は注視点位置をＢＧオブジェクトの外側に存在し、かつＰＣ位置に近い位置に変更する。またＳ２０４において狭所と判定された場合も、プレイヤによるＰＣの移動操作に応じて同様の状況に至りうるため、制御部１０１は例えばＢＧオブジェクトとの間隔に応じて注視点をＰＣ寄りの位置に変更する。
【００３０】
Ｓ２０６で、制御部１０１は、ＰＣと視点との間の視界の妨げになり得るＢＧオブジェクトを回避するための、ＢＧ回避処理を実行する。
【００３１】
〈ＢＧ回避処理〉
ここで、図５のフローチャートを用いてＢＧ回避処理の詳細を説明する。
【００３２】
Ｓ５０１で、制御部１０１は、ＰＣ位置と視点位置との間に規定される所定の体積内に、視界の妨げになり得るＢＧオブジェクトが存在するかを判断する。本実施形態では簡単のため、制御部１０１は、ＰＣ位置と視点位置との間に規定される四角柱の、ＰＣ位置→視点位置方向に延びる辺上にＢＧオブジェクトが存在するかを判断することにより、簡易的に所定の体積内におけるＢＧオブジェクトの存在を判断する。視点と画角と近平面（ニアクリッピング平面）で規定される四角錐台について画面の描画がなされる故、このとき規定される四角柱は、例えば該四角錐台に侵入し得るＢＧオブジェクトの検出するために近平面の矩形を拡張した矩形を基準とする。具体的には拡張した矩形面を、ＰＣ位置→視点位置のベクトルが法線となるようにＰＣ位置を基準に定義（ＰＣ位置が面内に含まれる）し、該矩形面を法線方向に延ばすことにより定義できる。本実施形態では簡易的に判断を行うため、ＰＣ位置を基準に定義した該矩形面の頂点の座標からＰＣ位置→視点位置方向に視点位置の面までの４つのレイキャストを行い、各レイ上でＢＧオブジェクトによる遮蔽があるか否かにより制御部１０１は本ステップの判断を行う。制御部１０１は、視界の妨げになり得るＢＧオブジェクトが存在すると判断した場合は処理をＳ５０２に移し、存在しないと判断した場合は処理をＳ５０６に移す。
【００３３】
Ｓ５０２で、制御部１０１は、Ｓ５０１で行った４つのレイキャストのうち、最も起点から近い位置でＢＧオブジェクトのコリジョンとの衝突が検出された座標を、視界の妨げになり得るＢＧオブジェクトを回避するための視点移動の候補位置（視点候補位置）として設定する。
【００３４】
Ｓ５０３で、制御部１０１は、視点候補位置が注視点位置に所定の距離より近接しているか否かを判断する。本ステップでは視点候補位置に視点位置を置いた場合に注視点位置に近接することによって、ＰＣ位置とＢＧオブジェクトとの間に好適な視点を提供できない、即ちＰＣが画角内に収まらない可能性がある、該視点位置について生成した画面においてＰＣが大部分を占有し得る、あるいはＰＣと視点位置とが接触し得る状況にあるか否かを判断する。制御部１０１は、視点候補位置が注視点位置に所定の距離より近接していると判断した場合は処理をＳ５０５に移す。また制御部１０１は、視点候補位置と注視点位置との間が所定の距離より長く離間していると判断した場合は、Ｓ５０４で視点候補位置を本フレームの画面描画に係る新たな視点位置として決定し、本ＢＧ回避処理を完了する。
【００３５】
Ｓ５０５で、制御部１０１は、視界の妨げになり得るＢＧオブジェクトを回避することでＰＣ位置に近づきすぎてしまうことを防ぐために、ＰＣ位置と視点候補位置との距離に応じて視点候補位置を垂直上方向に移動させた位置を本フレームの画面描画に係る新たな視点位置として決定し、ＰＣとの距離を離間させて本ＢＧ回避処理を完了する。このとき、垂直上方向への移動は滑らかな移動となるように補間処理を行って移動し、かつ画面が提示された際に視点変更の操作に応じないアングル変更によってプレイヤが方向感覚を失わないよう、視点候補位置→注視点位置のベクトルを維持するために、制御部１０１は注視点位置も同様に垂直上方向に移動する。なお、このような垂直方向による視点候補位置の移動は、ＰＣ位置と視点候補位置との距離に応じて線形的に移動させてしまうと、ＰＣ位置とＢＧオブジェクトとの位置関係に応じてはＰＣオブジェクト内に描画に係る視点位置が入り込む可能性があるため、例えば図６に示されるように、垂直方向の移動は急峻となるよう上下動が制御されてよい。
【００３６】
一方、Ｓ５０１において視界の妨げになり得るＢＧオブジェクトが存在しないと判断した場合、制御部１０１はＳ５０６で、前のフレームの画面描画に係る視点位置とＰＣ位置との距離が、前のフレームに係る本来の視点位置とＰＣ位置との距離よりも短い、即ち前のフレームにおいて視点の妨げとなり得るＢＧオブジェクトの回避に係る視点位置変更がなされたか否かを判断する。制御部１０１は、ＢＧオブジェクトの回避に係る視点位置変更が前のフレームにおいてなされたと判断した場合はＳ５０７で本フレームに係る本来の視点位置に戻す方向に近づけた位置を補間処理により算出し、算出した位置を本フレームの画面描画に係る新たな視点位置として決定し、本ＢＧ回避処理を完了する。なお、Ｓ５０７で算出する本来の視点位置に近づけた位置は収束させてよいと判断した場合には、本来の視点位置をそのまま使用するものとして決定してもよい。また、本来の視点位置に近づけるものとして算出した位置が、ＢＧオブジェクト内を示す場合は、移動させない、あるいはＢＧオブジェクトを回避してさらに本来の視点位置に近づけた位置に変更するよう制御してもよい。
【００３７】
またＳ５０６において前のフレームにおいて視点の妨げとなり得るＢＧオブジェクトの回避に係る視点位置変更がなされていないと判断した場合、制御部１０１は本フレームの本来の視点位置をそのまま描画に使用するものとして、本ＢＧ回避処理を完了すればよい。
【００３８】
このようにＢＧ回避処理により、視界の妨げになり得るＢＧオブジェクトが存在するか否かの判断を含む処理に基づいて本フレームの画面描画に係る視点位置を決定した後、制御部１０１は視点パラメータ決定処理のＳ２０７に処理を移す。
【００３９】
Ｓ２０７で、制御部１０１は、本フレームの画面描画に係る視点位置に近接して存在するキャラクタオブジェクトの描画のパラメータを決定するフェード処理を実行する。
【００４０】
〈フェード処理〉
以下、本実施形態のフェード処理について図７のフローチャートを用いて詳細を説明する。
【００４１】
Ｓ７０１で、制御部１０１は、本フレームの画面描画において描画を考慮すべき、視点位置に近接するキャラクタオブジェクトの有無を判断する。本実施形態ではこのようにして視点位置に近接して存在するキャラオブジェクトについては、該キャラクタをプレイヤが認識できるよう画面に描画はするが、一方でＰＣの視認性を妨げぬよう、また該キャラクタオブジェクトの内部等が目立って描画されぬよう、該キャラクタオブジェクトの透過率を制御する（フェードさせる）。描画を考慮すべきキャラクタオブジェクト（フェードキャラクタ）の判断は、各キャラクタオブジェクトについて定められた、ＢＧオブジェクトとは異なる特性のフェード判定用の球状コリジョンを考慮することにより決定する。制御部１０１は、本フレームの画面描画に係る視点位置を中心に定義した、所定の距離を半径とする球体内に侵入するキャラクタオブジェクトが存在するか否か、即ちフェード判定用のコリジョンと該球体が衝突する点の有無を、スフィアキャストの機能を用いることで本ステップの判断を行う。制御部１０１は、フェードキャラクタが存在すると判断した場合は処理をＳ７０２に移し、存在しないと判断した場合は処理をＳ７０４に移す。
【００４２】
Ｓ７０２で、制御部１０１は、Ｓ７０１における判断で検出されたフェードキャラクタが、ＰＣ位置と視点位置の間に存在するキャラクタであるかを判断する。フェード判定用のコリジョンは、対象のキャラクタの大きさに基づいて定められるため、例えばＰＣよりも全長が大きいものとして定められたキャラクタ等は、ＰＣ位置と視点位置の距離やＰＣ位置と該キャラクタとの距離によっては、ＰＣ位置よりも視点位置から遠離した位置に存在していた場合であってもフェードキャラクタとして判定される可能性がある。本ステップではこのような本来の位置関係ではフェード対象として判断されるべきではないキャラクタオブジェクトを除外するための判断を行う。制御部１０１は、検出されたフェードキャラクタがＰＣ位置と視点位置の間に存在するキャラクタであると判断した場合は処理をＳ７０３に移し、ＰＣ位置よりも視点位置から遠離した位置に存在するキャラクタであると判断した場合は処理をＳ７０４に移す。
【００４３】
Ｓ７０３で、制御部１０１は、Ｓ７０１における判断で検出されたフェードキャラクタを、フェード対象として管理する管理リストに登録する。そして制御部１０１はＳ７０４で、管理リストに登録されているフェードキャラクタについて、フェード処理に係る透過率を設定し、本フェード処理を完了する。本実施形態のフェード処理に係るフェードキャラクタの透過率は、透過率が急激に変化することが回避されるように、視点位置と対象のフェードキャラクタとの距離、及び該フェードキャラクタのフェード判定用コリジョンの半径に応じて定められてよく、時間経過及び該キャラクタと視点位置との位置関係の変化に応じて変化するよう制御される。また、仲間キャラクタや敵キャラクタ等、プレイヤにその存在を通知することを目的としたキャラクタについては、透過率の最大値が所定の値に制限される、即ち完全な透明状態とならぬよう設定される透過率が制御される。
【００４４】
また本実施形態に係るフェード処理は、例えばキャラクタオブジェクトの一部の部位のみが透過している等の不自然な描画表現を避けるために、フェードキャラクタについて決定された透過率は、該フェードキャラクタ全体について描画時に適用されるものとする。またキャラクタオブジェクトは、装備品や登場している乗り物等、従属させられたオブジェクトと一体となって描画されるものであるため、これらの従属関係にあるオブジェクトについても同様に、主従関係にあるキャラクタオブジェクトがフェードキャラクタとされた場合には、一律の透過率が適用されて描画されることで不自然な描画表現を避けるよう制御部１０１は描画部１０４への描画命令時に制御する。
【００４５】
このようにフェード処理を行うことで、本フレームの画面描画に係る視点位置との位置関係で視界内に進入するキャラクタオブジェクトについては、ＢＧオブジェクトとは異なりその描画を排除するのではなく、適切な透過率を設定して、画面に描画されるよう制御することができる。
【００４６】
以上説明したように、本実施形態の情報処理装置は、視点に応じたシーン内に配置される描画オブジェクトの属性を考慮した好適な画面を提供することができる。具体的には情報処理装置は、シーンを描画する視点位置と描画の基準となる基準オブジェクトとの間に規定される所定の体積内に背景オブジェクトが含まれるか否かを判断し、所定の体積内に背景オブジェクトが含まれると判断した場合には、該背景オブジェクトに基づいて定まる視点候補位置に視点位置を変更する。また装置は、シーンを描画する視点位置から所定の範囲内に、キャラクタオブジェクトが存在するかを判断し、視点位置から所定の範囲内に存在すると判断した対象キャラクタオブジェクトについて、該対象キャラクタオブジェクト全体の透過率を設定する。
【００４７】
［実施形態２］
上述した実施形態では、ＢＧ回避処理において視点の妨げになり得るＢＧオブジェクトと判断された場合には、該オブジェクトよりもＰＣに近い位置に視点候補位置を設け、基本的には該視点候補位置もしくは視点候補位置に基づく位置について、フレームの画面描画に係る視点位置を決定するものとして説明したが、本発明の実施はこれに限られるものではない。
【００４８】
例えば視界の妨げになり得ると判断されたＢＧオブジェクトが、柱や看板等の、水平方向の幅が比較的短く、単に垂直方向に延びた形状のオブジェクトである場合、プレイヤはキャラクタを移動させるか、視点位置を移動させることにより、該ＢＧオブジェクトを迂回して視認可能な状態に容易にさせることができる可能性が高い。即ち、視界の妨げになり得ると判断されたＢＧオブジェクトがこのような形状である場合に、該オブジェクトよりもＰＣ位置寄りに視点移動したとしても、キャラクタの移動あるいは視点の移動がなされることで、かえって視点の不自然な変動が生じ、好適でない画面遷移がプレイヤに提示される可能性がある。故に、本実施形態ではこのような好適でない画面遷移がプレイヤに提示されることを回避するために、ＢＧ回避処理のＳ５０１とＳ５０２の処理の間で、次のような処理を行う。
【００４９】
視界の妨げになり得るＢＧオブジェクトが、迂回する視点移動によって視界を妨げる状態になることを解除できるの判断には、視点パラメータ決定処理のＳ２０４において用いた判定用ＢＩＴを利用する。判定用ＢＩＴは、上述したようにＰＣ位置を中心した、視点位置を通る円弧の軌跡上に配置されるものであるため、各ＢＩＴからＰＣを視認できるかは、各判定用ＢＩＴからＰＣ位置に向かうレイキャストを行い、ＢＧオブジェクトとの衝突がないかにより判断することができる。また、水平方向の左及び右の双方向について迂回した視点移動を行えるか否かも、円弧の軌跡上において隣り合う判定用ＢＩＴもしくは視点位置との間のレイキャストにおいてＢＧオブジェクトとの衝突がないかにより判断することができる。なお、本来の視点位置そのものがＢＧオブジェクトに侵入している状態では視点位置の変更を行わざるを得ないため、この状態を除き、各判定用ＢＩＴを起点として行う上記レイキャストのいずれにおいても衝突がないと判断される場合には、制御部１０１はＢＧ回避処理におけるＳ５０２以降の処理を行わず、本来の視点位置をそのまま使用するものとして該ＢＧ回避処理を完了してよい。
【００５０】
これにより、視界の妨げになり得ると判断されたＢＧオブジェクトがあったとしても、その後のキャラクタ移動や視点移動によって、不自然な視点位置の変動を生じさせないよう制御することができる。
【００５１】
［実施形態３］
上述した実施形態１及び２では、単に視点位置とＢＧオブジェクトとの関係に応じて視点位置の制御を行う例について説明したが、本発明はさらに敵キャラクタとの戦闘が行われる場合において、視点位置からのＰＣ位置の視認性を考慮して視点位置の移動制御を行うものであってもよい。例えば、特に大型の敵キャラクタ等は、ＰＣ位置よりも視点位置よりに存在するような状況になった場合、プレイヤはＰＣを視認することができず、どのような操作を行えばよいか判断しかねる状況に陥る可能性がある。従って、このような状態に陥った場合の視点制御は、例えば視点パラメータ決定処理のＳ２０６の後、敵キャラクタとの戦闘ステートにあると判断した場合に、制御部１０１が図８の敵キャラクタ回避処理を実行することにより実現されてよい。
【００５２】
〈敵キャラクタ回避処理〉
以下、敵キャラクタの存在に応じた視点位置の制御に係る敵キャラクタ回避処理の詳細について、図８のフローチャートを用いて詳細を説明する。
【００５３】
Ｓ８０１で、制御部１０１は、視点位置とＰＣ位置との間に敵キャラクタが存在するか否かを判断する。本ステップの判断は、ＢＧ回避処理のＳ５０１と同様に、ＰＣ位置に定義した近平面を拡張した矩形の頂点からの４つのレイキャストが、キャラクタオブジェクトによる遮蔽を判定するために設けられた判定コリジョンと衝突したかによりなされてよい。制御部１０１は、視点位置とＰＣ位置との間に敵キャラクタが存在すると判断した場合は処理をＳ８０２に移し、存在しないと判断した場合は処理をＳ８０３に移す。
【００５４】
Ｓ８０２で、制御部１０１は、視点位置とＰＣ位置との間に存在する敵キャラクタとＰＣとの距離を、Ｓ８０１におけるレイキャストの起点から衝突点までが最も短い距離として取得し、該距離と戦闘相手である敵キャラクタの大きさに応じて、視点位置をＰＣ位置から遠離させる方向に移動させる。即ち、敵キャラクタとの距離が近い場合は敵キャラクタによってＰＣの視認性が下がり得、またさらに敵キャラクタが大きい場合は特にＰＣの視認性が下がり得る。
【００５５】
またＳ８０３で、制御部１０１は、敵キャラクタが例えばＰＣよりも垂直方向の高さが大きいような大型として定められるキャラクタであるか、及びＰＣの周囲に存在する同種の敵キャラクタの数に応じて、視点位置の高さを上昇させティルト角度を変更する。即ち、大型の敵キャラクタである場合は単にＳ８０２の処理により遠離するだけではＰＣを視認させることができず、さらに同種の敵キャラクタが密集して存在するような場合は、俯瞰の視点でなければ、特に敵キャラクタよりも視点位置から遠離して存在するプレイヤキャラクタを視認することができない。従って、制御部１０１は、敵キャラクタの大きさ及び密集度に応じて視点位置の垂直位置を変更する。
【００５６】
また、視点位置とＰＣ位置との間に敵キャラクタが存在する場合や、ＰＣが視点位置方向を向いている場合等はプレイヤにとって操作がしづらい状況となるため、Ｓ８０４で制御部１０１は、ＰＣの正面方向を規定するベクトルと、視点位置からＰＣ位置に向かう方向ベクトルとが、水平面内において９０度以上等、所定値以上の角度をなして配置される場合は、順次該角度が小さくなる方向に視点位置を移動するよう制御する。
【００５７】
このようにすることで、戦闘相手等のキャラクタをフェードさせるべきではないような状況下においても、好適な画面描画がなされるよう、視点位置の制御を行うことができる。
【００５８】
［その他の実施形態］
本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。また本発明に係る情報処理装置は、１以上のコンピュータを該情報処理装置として機能させるプログラムによっても実現可能である。該プログラムは、コンピュータが読み取り可能な記録媒体に記録されることにより、あるいは電気通信回線を通じて、提供／配布することができる。
【符号の説明】
【００５９】
１００：ゲームコンソール１００、１０１：制御部、１０２：記録媒体、１０３：メモリ、１０４：描画部、１０５：描画メモリ、１０６：表示出力部、１０７：操作入力部
【図１】
2016171989.tif 000003
【図２】
2016171989.tif 000004
【図４】
2016171989.tif 000005
【図５】
2016171989.tif 000006
【図６】
2016171989.tif 000007
【図７】
2016171989.tif 000008
【図８】
2016171989.tif 000009
【図９】
2016171989.tif 000010
【図３】
2016171989.tif 000011