(57)【要約】【課題】見易さを確保しつつ地形の表現を向上させることが可能な画像処理システムを提供する。【解決手段】画像処理装置の一例は、仮想空間に仮想カメラと地形オブジェクトとを配置し、仮想カメラから見た地形オブジェクトと、背景との境界である地平線を基準とした所定領域に、草オブジェクトを生成する。仮想カメラから見て手前側にはプレイヤキャラクタが表示され、地平線を基準とした所定領域に草オブジェクトが生成されるため、地形をリアルに表現することができるとともに、プレイヤキャラクタを見易くすることができる。【選択図】図５
2020154923.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置のコンピュータに、
仮想空間内において仮想カメラを制御させ、
前記仮想空間内に地形オブジェクトを配置させ、
前記地形オブジェクト上の、前記仮想カメラから見た前記地形オブジェクトと背景との境界線を基準とした所定範囲内に、所定のオブジェクトを生成させ、
前記仮想カメラに基づいた前記仮想空間の画像を、表示装置に表示させるために生成させる、画像処理プログラム。
【請求項２】
前記地形オブジェクトは円筒の側面の少なくとも一部または球面の少なくとも一部の形状を有する、請求項１に記載の画像処理プログラム。
【請求項３】
前記コンピュータにさらに、
平面的な地形に対して、少なくとも前記仮想カメラの視野に応じた範囲を変形させることによって曲面状の前記地形オブジェクトを生成させる、請求項１または２に記載の画像処理プログラム。
【請求項４】
前記境界線は、前記仮想カメラと前記地形オブジェクトとの位置関係に基づいて定められる、請求項１から３のいずれかに記載の画像処理プログラム。
【請求項５】
前記境界線は、前記仮想カメラから前記曲面への接線の接点に基づいて定められる線である、請求項３に記載の画像処理プログラム。
【請求項６】
前記コンピュータは頂点シェーダ機能を有するグラフィックプロセッサを含み、
前記地形の変形および前記所定のオブジェクトの生成は、前記頂点シェーダ機能の座標変換によって行われる、請求項３または５に記載の画像処理プログラム。
【請求項７】
前記所定のオブジェクトは草オブジェクトであって、前記地形オブジェクト上において当該草オブジェクトが生成され得ると設定された部分に対して、前記所定範囲内における前記仮想カメラに近い位置ほど草の長さを短くするように、前記草オブジェクトの頂点を座標変換して前記草オブジェクトを生成させる、請求項６に記載の画像処理プログラム。
【請求項８】
前記所定のオブジェクトは雪オブジェクトであって、前記地形オブジェクト上の当該雪オブジェクトが生成され得ると設定された部分に対して、前記所定範囲内における前記仮想カメラに近い位置ほど積雪の高さを低くするように、前記雪オブジェクトの頂点を座標変換して前記雪オブジェクトを生成させる、請求項６に記載の画像処理プログラム。
【請求項９】
前記所定のオブジェクトは高さを有するオブジェクトであり、
前記仮想カメラからの距離に応じて前記所定のオブジェクトの高さが異なるように、前記所定のオブジェクトを生成させる、請求項１から８の何れかに記載の画像処理プログラム。
【請求項１０】
前記コンピュータにさらに、
操作入力に基づいて、前記地形オブジェクト上でプレイヤキャラクタを移動させ、
前記仮想カメラの位置は、前記プレイヤキャラクタが前記仮想カメラの視線方向における手前側に位置し、前記境界線が前記仮想カメラの視線方向における奥側に位置するように、前記プレイヤキャラクタの位置に基づいて制御される、請求項１から９の何れかに記載の画像処理プログラム。
【請求項１１】
前記コンピュータにさらに、
前記地形オブジェクト上にアイテムオブジェクトを配置させ、
前記操作入力に基づいて、前記プレイヤキャラクタに、前記アイテムオブジェクトに対する所定のアクションを行わせる、請求項１０に記載の画像処理プログラム。
【請求項１２】
前記コンピュータにさらに、
操作入力に基づいて、仮想空間内の平面的な前記地形オブジェクト上においてプレイヤキャラクタを移動させ、
前記プレイヤキャラクタの位置に応じて前記仮想カメラの位置を制御させ、
前記仮想カメラの位置に基づいて、前記平面的な地形オブジェクト上の前記所定範囲に対応する位置に前記所定のオブジェクトを生成させ、
前記平面的な地形オブジェクトが曲面に変形するように、少なくとも前記仮想カメラの視野に含まれる前記地形オブジェクト、前記所定のオブジェクト、及び、前記プレイヤキャラクタの頂点を変位させる、請求項１に記載の画像処理プログラム。
【請求項１３】
少なくとも１つのプロセッサを備える画像処理システムであって、前記少なくとも１つのプロセッサが、
仮想空間内において仮想カメラを制御し、
前記仮想空間内に地形オブジェクトを配置し、
前記地形オブジェクト上の、前記仮想カメラから見た前記地形オブジェクトと背景との境界線を基準とした所定範囲内に、所定のオブジェクトを生成し、
前記仮想カメラに基づいた前記仮想空間の画像を生成し、
前記仮想空間の画像を表示装置に表示させる、画像処理システム。
【請求項１４】
前記地形オブジェクトは円筒の側面の少なくとも一部または球面の少なくとも一部の形状を有する、請求項１３に記載の画像処理システム。
【請求項１５】
前記少なくとも１つのプロセッサは、平面的な地形に対して、少なくとも前記仮想カメラの視野に応じた範囲を変形させることによって曲面状の前記地形オブジェクトを生成する、請求項１３または１４に記載の画像処理システム。
【請求項１６】
前記境界線は、前記仮想カメラと前記地形オブジェクトとの位置関係に基づいて定められる、請求項１３から１５のいずれかに記載の画像処理システム。
【請求項１７】
前記境界線は、前記仮想カメラから前記曲面への接線の接点に基づいて定められる線である、請求項１５に記載の画像処理システム。
【請求項１８】
前記少なくとも１つのプロセッサは、頂点シェーダ機能を有するグラフィックプロセッサを含み、
前記地形の変形および前記所定のオブジェクトの生成は、前記頂点シェーダ機能の座標変換によって行われる、請求項１５または１７に記載の画像処理システム。
【請求項１９】
前記所定のオブジェクトは草オブジェクトであり、
前記少なくとも１つのプロセッサは、前記地形オブジェクト上において当該草オブジェクトが生成され得ると設定された部分に対して、前記所定範囲内における前記仮想カメラに近い位置ほど草の長さを短くするように、前記草オブジェクトの頂点を座標変換して前記草オブジェクトを生成する、請求項１８に記載の画像処理システム。
【請求項２０】
前記所定のオブジェクトは雪オブジェクトであり、
前記少なくとも１つのプロセッサは、前記地形オブジェクト上の当該雪オブジェクトが生成され得ると設定された部分に対して、前記所定範囲内における前記仮想カメラに近い位置ほど積雪の高さを低くするように、前記雪オブジェクトの頂点を座標変換して前記雪オブジェクトを生成する、請求項１８に記載の画像処理システム。
【請求項２１】
前記所定のオブジェクトは高さを有するオブジェクトであり、
前記少なくとも１つのプロセッサは、前記仮想カメラからの距離に応じて前記所定のオブジェクトの高さが異なるように、前記所定のオブジェクトを生成する、請求項１３から２０の何れかに記載の画像処理システム。
【請求項２２】
前記少なくとも１つのプロセッサは、
操作入力に基づいて、前記地形オブジェクト上でプレイヤキャラクタを移動させ、
前記仮想カメラの位置を、前記プレイヤキャラクタが前記仮想カメラの視線方向における手前側に位置し、前記境界線が前記仮想カメラの視線方向における奥側に位置するように、前記プレイヤキャラクタの位置に基づいて制御する、請求項１３から２１の何れかに記載の画像処理システム。
【請求項２３】
前記少なくとも１つのプロセッサは、
前記地形オブジェクト上にアイテムオブジェクトを配置し、
前記操作入力に基づいて、前記プレイヤキャラクタに、前記アイテムオブジェクトに対する所定のアクションを行わせる、請求項２２に記載の画像処理システム。
【請求項２４】
前記少なくとも１つのプロセッサは、
操作入力に基づいて、仮想空間内の平面的な前記地形オブジェクト上においてプレイヤキャラクタを移動させ、
前記プレイヤキャラクタの位置に応じて前記仮想カメラの位置を制御し、
前記仮想カメラの位置に基づいて、前記平面的な地形オブジェクト上の前記所定範囲に対応する位置に前記所定のオブジェクトを生成し、
前記平面的な地形オブジェクトが曲面に変形するように、少なくとも前記仮想カメラの視野に含まれる前記地形オブジェクト、前記所定のオブジェクト、及び、前記プレイヤキャラクタの頂点を変位させる、請求項１３に記載の画像処理システム。
【請求項２５】
仮想空間内において仮想カメラを制御する仮想カメラ制御部と、
前記仮想空間内に地形オブジェクトを配置する配置部と、
前記地形オブジェクト上の、前記仮想カメラから見た前記地形オブジェクトと背景との境界線を基準とした所定範囲内に、所定のオブジェクトを生成するオブジェクト生成部と、
前記仮想カメラに基づいた前記仮想空間の画像を生成する画像生成部と、
前記画像生成部によって生成された仮想空間の画像を表示装置に表示させる表示制御部と、を備える、画像処理装置。
【請求項２６】
操作入力に基づいて、仮想空間内の平面的な前記地形オブジェクト上においてプレイヤキャラクタを移動させる移動制御部をさらに備え、
前記仮想カメラ制御部は、前記プレイヤキャラクタの位置に応じて前記仮想カメラの位置を制御し、
前記オブジェクト生成部は、前記仮想カメラの位置に基づいて、前記平面的な地形オブジェクト上の前記所定範囲に対応する位置に前記所定のオブジェクトを生成し、
前記平面的な地形オブジェクトが曲面に変形するように、少なくとも前記仮想カメラの視野に含まれる前記地形オブジェクト、前記所定のオブジェクト、及び、前記プレイヤキャラクタの頂点を変位させる頂点変位部をさらに備える、請求項２５に記載の画像処理装置。
【請求項２７】
画像処理システムに実行させる画像処理方法であって、前記画像処理システムに、
仮想空間内において仮想カメラを制御させ、
前記仮想空間内に地形オブジェクトを配置させ、
前記地形オブジェクト上の、前記仮想カメラから見た前記地形オブジェクトと背景との境界線を基準とした所定範囲内に、所定のオブジェクトを生成させ、
前記仮想カメラに基づいた前記仮想空間の画像を、表示装置に表示させるために生成させる、画像処理方法。
【請求項２８】
前記画像処理システムにさらに、
操作入力に基づいて、仮想空間内の平面的な前記地形オブジェクト上においてプレイヤキャラクタを移動させ、
前記プレイヤキャラクタの位置に応じて前記仮想カメラの位置を制御させ、
前記仮想カメラの位置に基づいて、前記平面的な地形オブジェクト上の前記所定範囲に対応する位置に前記所定のオブジェクトを生成させ、
前記平面的な地形オブジェクトが曲面に変形するように、少なくとも前記仮想カメラの視野に含まれる前記地形オブジェクト、前記所定のオブジェクト、及び、前記プレイヤキャラクタの頂点を変位させる、請求項２７に記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を生成することが可能な画像処理プログラム、画像処理システム、画像処理装置、および画像処理方法に関する。
【背景技術】
【０００２】
プレイヤキャラクタを仮想的な地形上に配置して、地形上でプレイヤキャラクタを操作することでゲームを行うゲーム装置がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３１４６３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、見易さを確保しつつ地形の表現を向上させるという観点では改善の余地があった。
【０００５】
それ故、本発明の目的は、見易さを確保しつつ地形の表現を向上させることが可能な画像処理プログラム、画像処理システム、画像処理装置、および画像処理方法を提供することである。
【課題を解決するための手段】
【０００６】
上記の課題を解決すべく、本発明は、以下の構成を採用した。
【０００７】
本発明の画像処理プログラムは、情報処理装置のコンピュータに、仮想空間内において仮想カメラを制御させ、前記仮想空間内に地形オブジェクトを配置させる。また、前記画像処理プログラムは、前記コンピュータに、前記地形オブジェクト上の、前記仮想カメラから見た前記地形オブジェクトと背景との境界線を基準とした所定範囲内に、所定のオブジェクトを生成させる。そして、前記画像処理プログラムは、前記コンピュータに前記仮想カメラに基づいた前記仮想空間の画像を、表示装置に表示させるために生成させる。
【０００８】
上記によれば、仮想カメラから見た地形オブジェクトと背景との境界線を基準として、所定範囲内に所定のオブジェクトが生成される。これにより、例えば、境界線を基準とした所定範囲の地形の表現を向上させることができるとともに、所定領域よりも手前側の領域を見易くすることができる。
【０００９】
また、前記地形オブジェクトは円筒の側面の少なくとも一部または球面の少なくとも一部の形状を有してもよい。
【００１０】
上記によれば、地形オブジェクトは円筒の側面又は球面であるため、仮想カメラから見たときの背景との境界を定め易くすることができる。
【００１１】
また、前記画像処理プログラムは、前記コンピュータにさらに、平面的な地形に対して、少なくとも前記仮想カメラの視野に応じた範囲を変形させることによって曲面状の前記地形オブジェクトを生成させてもよい。
【００１２】
上記によれば、平面的な地形を変形させることで曲面の地形オブジェクトを形成することができる。これにより、予め曲面状の地形オブジェクトを用意しなくてもよく、開発効率を向上させることができる。
【００１３】
また、前記境界線は、前記仮想カメラと前記地形オブジェクトとの位置関係に基づいて定められてもよい。
【００１４】
上記によれば、前記境界線は仮想カメラと地形オブジェクトとの位置関係に基づいて定められる。このため、例えば、仮想カメラが地形オブジェクトに対して移動した場合に、境界線も移動し、所定のオブジェクトを動的に生成することができる。
【００１５】
また、前記境界線は、前記仮想カメラから前記曲面への接線の接点に基づいて定められる線であってもよい。
【００１６】
上記によれば、仮想カメラから曲面への接線の接点に基づいて定められる線を境界線とすることができ、地形オブジェクトと背景との境界線を定めることができる。
【００１７】
また、前記コンピュータは頂点シェーダ機能を有するグラフィックプロセッサを含み、前記地形の変形および前記所定のオブジェクトの生成は、前記頂点シェーダ機能の座標変換によって行われてもよい。
【００１８】
上記によれば、グラフィックプロセッサの頂点シェーダ機能により各オブジェクトの頂点を変位させるため、高速に処理を行うことができる。
【００１９】
また、前記所定のオブジェクトは草オブジェクトであってもよい。前記画像処理プログラムは、前記コンピュータに、前記地形オブジェクト上において当該草オブジェクトが生成され得ると設定された部分に対して、前記所定範囲内における前記仮想カメラに近い位置ほど草の長さを短くするように、前記草オブジェクトの頂点を座標変換して前記草オブジェクトを生成させてもよい。
【００２０】
上記によれば、例えば、地形オブジェクト上に草が生えている様子を表現することができる。
【００２１】
また、前記所定のオブジェクトは雪オブジェクトであってもよい。前記画像処理プログラムは、前記コンピュータに、前記地形オブジェクト上の当該雪オブジェクトが生成され得ると設定された部分に対して、前記所定範囲内における前記仮想カメラに近い位置ほど積雪の高さを低くするように、前記雪オブジェクトの頂点を座標変換して前記雪オブジェクトを生成させてもよい。
【００２２】
上記によれば、例えば、地形オブジェクト上に雪が積もっている様子を表現することができる。
【００２３】
また、前記所定のオブジェクトは高さを有するオブジェクトであり、前記仮想カメラからの距離に応じて前記所定のオブジェクトの高さが異なるように、前記所定のオブジェクトを生成させてもよい。
【００２４】
上記によれば、所定のオブジェクトの高さを仮想カメラに近いほど低くすることができる。逆に、境界線に近いほど所定のオブジェクトの高さを高くすることができる。これにより、仮想カメラに近い領域を見易くするとともに、境界線に近い領域の表現を向上させることができる。
【００２５】
また、前記画像処理プログラムは、前記コンピュータにさらに、操作入力に基づいて、前記地形オブジェクト上でプレイヤキャラクタを移動させてもよい。前記仮想カメラの位置は、前記プレイヤキャラクタが前記仮想カメラの視線方向における手前側に位置し、前記境界線が前記仮想カメラの視線方向における奥側に位置するように、前記プレイヤキャラクタの位置に基づいて制御されてもよい。
【００２６】
上記によれば、仮想カメラから見て手前側にプレイヤキャラクタが位置し、奥側に境界線が位置し、境界線を基準とした所定領域に所定のオブジェクトが生成される。このため、仮想カメラから見て手前側のプレイヤキャラクタを見易くすることができるとともに、仮想カメラから見て奥側の所定領域の表現を向上させることができる。
【００２７】
また、前記画像処理プログラムは、前記コンピュータにさらに、前記地形オブジェクト上にアイテムオブジェクトを配置させ、前記操作入力に基づいて、前記プレイヤキャラクタに、前記アイテムオブジェクトに対する所定のアクションを行わせてもよい。
【００２８】
上記によれば、仮想カメラから見て手前側にプレイヤキャラクタが位置し、所定のアクションが行われる。奥側に境界線が位置し、境界線を基準とした所定領域に所定のオブジェクトが生成される。このため、仮想カメラから見て手前側で行われたプレイヤキャラクタの所定のアクションを見易くすることができるとともに、仮想カメラから見て奥側の所定領域の表現を向上させることができる。
【００２９】
また、前記画像処理プログラムは、前記コンピュータにさらに、操作入力に基づいて、仮想空間内の平面的な前記地形オブジェクト上においてプレイヤキャラクタを移動させ、前記プレイヤキャラクタの位置に応じて前記仮想カメラの位置を制御させてもよい。また、前記画像処理プログラムは、前記コンピュータにさらに、前記仮想カメラの位置に基づいて、前記平面的な地形オブジェクト上の前記所定範囲に対応する位置に前記所定のオブジェクトを生成させ、前記平面的な地形オブジェクトが曲面に変形するように、少なくとも前記仮想カメラの視野に含まれる前記地形オブジェクト、前記所定のオブジェクト、及び、前記プレイヤキャラクタの頂点を変位させてもよい。
【００３０】
上記によれば、平面的な地形オブジェクト上でプレイヤキャラクタを移動させるとともに、平面的な地形オブジェクト上の所定範囲に所定のオブジェクトを生成させ、その後、平面的な地形オブジェクト、所定のオブジェクト、及び、プレイヤキャラクタの頂点を変位させることで、平面的な地形オブジェクトを曲面に変形させることができる。
【００３１】
また、他の発明は、上記処理を実行する画像処理装置であってもよいし、画像処理システムであってもよいし、画像処理システムにおいて実行される画像処理方法であってもよい。
【発明の効果】
【００３２】
本発明によれば、境界線を基準とした所定範囲の地形の表現を向上させることができるとともに、所定領域よりも手前側の領域を見易くすることができる。
【図面の簡単な説明】
【００３３】
【図１】本実施形態におけるゲームシステム１の一例を示す図
【図２】ゲームシステム１の内部構成の一例を示すブロック図
【図３】本実施形態のゲームが行われた場合の仮想空間の一例を示す図
【図４】本実施形態のゲームの実行中にディスプレイ１２に表示される画像の一例を示す図であって、草オブジェクトを省略した図
【図５】本実施形態のゲームの実行中にディスプレイ１２に表示される画像の一例を示す図であって、草オブジェクト３２を表示した図
【図６】ドラム変形処理が行われる前の仮想空間の一例を示す図
【図７】ドラム変形処理が行われた後の仮想空間の一例を示す図
【図８】ドラム変形処理が行われる前の仮想空間をｘ軸と平行な方向から見たときの一例を示す図
【図９】ドラム変形処理が行われた後の仮想空間をｘ軸と平行な方向から見たときの一例を示す図
【図１０】草生成領域を決定する方法を説明するための図
【図１１】草オブジェクト３２の高さの一例を示す図
【図１２】図１０の状態から仮想カメラＶＣが地形オブジェクト３０に対して移動したときの一例を示す図
【図１３】本体装置２（のＤＲＡＭ２６）に記憶されるデータの一例を示す図
【図１４】本体装置２のプロセッサ２０において行われるゲーム処理の一例を示すフローチャート
【図１５】ステップＳ１０７の草生成処理の一例を示すフローチャート
【発明を実施するための形態】
【００３４】
（システム構成）
以下、図面を参照して、本実施形態のゲームシステム１（画像処理システムの一例）について説明する。図１は、本実施形態におけるゲームシステム１の一例を示す図である。図１に示すように、ゲームシステム１は、ゲーム装置としての本体装置（画像処理装置の一例）２と、左コントローラ３と、右コントローラ４とを備える。本体装置２は、ディスプレイ１２を備える。なお、左コントローラ３及び右コントローラ４は、本体装置２から着脱可能に装着されてもよい。
【００３５】
左コントローラ３は、ユーザの左手で操作されるコントローラであり、右コントローラ４は、ユーザの右手で操作されるコントローラである。左コントローラ３及び右コントローラ４は、複数の操作ボタンと、方向入力部としてのアナログスティックとを含む。
【００３６】
図２は、ゲームシステム１の内部構成の一例を示すブロック図である。図２に示すように、本体装置２は、プロセッサ２０と、スロットインターフェイス（Ｉ／Ｆ）２３と、スロット２４と、フラッシュメモリ２５と、ＤＲＡＭ２６とを備える。プロセッサ２０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１と、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２２とを含む。ＣＰＵ２１は、ゲームプログラムを実行可能であり、コントローラ３，４からの操作データを処理したり、操作データに基づいてゲーム処理を行ったり、ＧＰＵ２２に画像を生成させるための命令を送信したりする。ＧＰＵ２２は、画像処理を行うためのプロセッサである。ＧＰＵ２２は、仮想オブジェクトの頂点を座標変換するための頂点シェーダ機能を有する。なお、ＣＰＵ２１とＧＰＵ２２とは、それぞれ別々のチップ上に実装されてもよいし、これらはＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）として１つのチップ上に実装されてもよい。
【００３７】
プロセッサ２０には、スロットＩ／Ｆ２３、フラッシュメモリ２５、ＤＲＡＭ２６、ディスプレイ１２が接続される。また、プロセッサ２０には、左インターフェイス（Ｉ／Ｆ）を介して左コントローラ３が接続され、右インターフェイス（Ｉ／Ｆ）を介して右コントローラ４が接続される。スロット２４には、外部記憶媒体が着脱可能に挿入される。外部記憶媒体には、プログラム（後述するゲームプログラム）やデータ（後述する平面状の地面オブジェクト等）が記憶される。なお、これらプログラムやデータは、フラッシュメモリ２５に予め記憶されてもよいし、ネットワーク（例えばインターネット）からダウンロードされてフラッシュメモリ２５に記憶されてもよい。
【００３８】
外部記憶媒体（又はフラッシュメモリ２５）に記憶されたプログラムやデータは、後述するゲームが開始される際にＤＲＡＭ２６に読み込まれる。ＣＰＵ２１が当該プログラムを実行することにより、後述するゲーム処理が行われる。また、ＣＰＵ２１は、画像をディスプレイ１２に表示させるための命令をＧＰＵ２２に対して送り、ＧＰＵ２２は、当該命令に応じて画像を描画し、ディスプレイ１２に画像を表示させる。なお、本体装置２にはディスプレイ１２とは異なる外部の表示装置に接続され、ＧＰＵ２２によって生成された画像が、当該外部の表示装置に表示されてもよい。
【００３９】
（本実施形態のゲーム及び画像処理の概要）
次に、本実施形態のゲームの概要について説明する。図３は、本実施形態のゲームが行われた場合の仮想空間の一例を示す図である。本実施形態のゲームプログラムが実行された場合、本体装置２において仮想空間が定義され、仮想空間内に様々な仮想オブジェクトが配置される。ユーザ（プレイヤ）は、左コントローラ３及び右コントローラ４を用いてプレイヤキャラクタ４０を仮想空間内で移動させ、ゲームを進める。
【００４０】
図３に示すように、仮想空間にはｘｙｚ直交座標系が設定される。ｘ軸は、仮想空間の横方向の軸であり、ｚ軸は、仮想空間の奥行き方向の軸であり、ｙ軸は、仮想空間の高さ方向の軸である。仮想空間には、仮想オブジェクトとして、地面オブジェクト３０と、川オブジェクト３１とが配置される。地面オブジェクト３０は、平面的なオブジェクトであり、例えばｘｚ平面と平行な面である。なお、地面オブジェクト３０は、凹凸や起伏を有する実質的な平面（全体として概ね平面）であってもよいし、凹凸や起伏を有さない完全な平面であってもよい。地面オブジェクト３０及び川オブジェクト３１は、仮想空間の地形を表す地形オブジェクトである。
【００４１】
また、仮想空間の地形オブジェクト３０上には、仮想オブジェクトとして、家オブジェクト３５、木オブジェクト３６、及び、崖オブジェクト３７が配置される。崖オブジェクト３７も、仮想空間の地形を表す地形オブジェクトの１つである。また、地形オブジェクト上にはプレイヤキャラクタ４０が配置される。プレイヤキャラクタ４０の背後には、仮想カメラＶＣが配置される。
【００４２】
本実施形態のゲームでは、ユーザは、コントローラ（左コントローラ３又は右コントローラ４）を操作してプレイヤキャラクタ４０を地面オブジェクト３０上で移動させたり、プレイヤキャラクタ４０に所定の動作を行わせたりすることでゲームを進める。仮想カメラＶＣはプレイヤキャラクタ４０の背後の所定位置に配置され、プレイヤキャラクタ４０の移動に応じて移動する。ディスプレイ１２には仮想カメラＶＣから仮想空間を見た画像が表示される。
【００４３】
図４は、本実施形態のゲームの実行中にディスプレイ１２に表示される画像の一例を示す図であって、草オブジェクトを省略した図である。図５は、本実施形態のゲームの実行中にディスプレイ１２に表示される画像の一例を示す図であって、草オブジェクト３２を表示した図である。
【００４４】
図４に示すように、仮想カメラＶから仮想空間を見たゲーム画像の一例として、地面オブジェクト３０、川オブジェクト３１、家オブジェクト３５、木オブジェクト３６、及び、プレイヤキャラクタ４０を含む画像がディスプレイ１２に表示される。本実施形態では、後述するように、平面の地面オブジェクト３０が画像の生成時にドラム状に曲げられ、ドラム状に曲げられた地面オブジェクト３０を含む画像がディスプレイ１２に表示される。ゲーム画像では、地面オブジェクト３０と背景との境界が地平線として表示される。また、地面オブジェクト３０は、例えば、草原オブジェクト３０ａと、道オブジェクト３０ｂとを含む複数のオブジェクトに分けられる。草原オブジェクト３０ａは草が生えているように緑色を帯びた色である。また、道オブジェクト３０ｂは、草が生えていない土の領域であり、茶色を帯びた色である。
【００４５】
ユーザは、地面オブジェクト３０上でプレイヤキャラクタ４０を移動させたり、プレイヤキャラクタ４０に対して所定のアクションを行わせたりする。例えば、ユーザは、プレイヤキャラクタ４０を木オブジェクト３６の位置まで移動させ、プレイヤキャラクタ４０に所定の動作（例えば、木オブジェクト３６を揺する動作）をさせる。すると、木オブジェクト３６の果実３６ａが地面オブジェクト３０上に落ち、プレイヤキャラクタ４０は、果実３６ａを獲得する。このように、本実施形態では、プレイヤキャラクタ４０を移動させたり、プレイヤキャラクタ４０にアイテムオブジェクトに対する所定のアクション（例えば、果実３６ａを拾う動作）を行わせたりすることで、ゲームが進行する。
【００４６】
図４では草オブジェクト３２が省略されているが、本実施形態のゲームでは、図５に示すような草オブジェクト３２が表示される。
【００４７】
具体的には、図５に示すように、仮想カメラＶＣから見たときの地平線上およびその近傍に、草オブジェクト３２が生成され、表示される。草オブジェクト３２は、例えば、三角形のオブジェクトであり、緑色のオブジェクトである。草オブジェクト３２の底辺を構成する２つの頂点は地面オブジェクト３０上の頂点と一致するように配置され、残り１つの頂点（最頂部の頂点）は地面オブジェクト３０より高い位置に位置する。草オブジェクト３２は、地平線を基準とした所定領域（以下、「草生成領域」と言うことがある）に生成される。具体的には、地平線を含む仮想カメラＶＣ側の領域と、地平線よりも仮想カメラＶＣの視線方向側の領域とを含む草生成領域に、草オブジェクト３２が生成される。
【００４８】
草オブジェクト３２は、地平線を基準とした草生成領域に動的に生成される。例えば、ユーザの操作に応じてプレイヤキャラクタ４０が地面オブジェクト３０上を移動する場合、仮想カメラＶＣもプレイヤキャラクタ４０に追従して移動する。この場合、プレイヤキャラクタ４０の移動前と移動後とでは、仮想カメラＶＣから見た地平線の地面オブジェクト３０上の位置が異なる。例えば、図５に示す画面では、家オブジェクト３５はほぼ地平線上に位置するが、プレイヤキャラクタ４０が画面の奥行き方向（仮想カメラＶＣの視線方向における正方向）に移動した場合には、ディスプレイ１２上の地平線の位置は変わらないものの、家オブジェクト３５は地平線の手前に位置するようになる。言い換えると、プレイヤキャラクタ４０が画面の奥行き方向に移動した場合には、その移動に応じて、地平線の地面オブジェクト３０上の位置は家オブジェクト３５より奥行き方向に移動する。すなわち、プレイヤキャラクタ４０が仮想カメラＶＣの視線方向（奥行き方向、又は手前方向）に移動した場合、ディスプレイ１２上の地平線の位置は変わらないが、地面オブジェクト３０上の地平線の位置も移動する。地平線の位置が移動することに伴って、地平線を基準とした草生成領域も移動する。
【００４９】
プレイヤキャラクタ４０が地面オブジェクト３０上を移動する間も、草オブジェクト３２は、地平線を基準とした草生成領域に常に表示されるように動的に生成される。プレイヤキャラクタ４０が移動した場合、移動後の地平線を基準とした新たな草生成領域に草オブジェクト３２が生成される。プレイヤキャラクタ４０の移動前に生成されていた草オブジェクト３２は、移動後の地平線を基準とした草生成領域に位置しない場合は、消去される。すなわち、プレイヤキャラクタ４０が奥行き方向に移動する場合、その移動に応じて、地平線の地面オブジェクト３０上の位置が移動し、移動後の地平線を基準とした草生成領域に草オブジェクト３２が新たに生成される。なお、地面オブジェクト３０上に配置された草オブジェクト３２を取り除くことによって、草オブジェクト３２を消去してもよい。すなわち、地面オブジェクト３０上に配置された草オブジェクト３２の３つの頂点を除去することで、草オブジェクト３２を消去してもよい。また、地面オブジェクト３０上に配置された草オブジェクト３２の高さを「０」にして草オブジェクト３２が表示されないようにすることで、草オブジェクト３２を消去してもよい。
【００５０】
地平線を基準とした所定領域であっても、草原オブジェクト３０ａの領域以外には草オブジェクト３２は生成されない。具体的には、プレイヤキャラクタ４０が移動可能な地面オブジェクト３０上の道オブジェクト３０ｂの領域には、草オブジェクト３２は生成されない。例えば、図５では、家オブジェクト３５の周囲の領域に道オブジェクト３０ｂが形成されており、この道オブジェクト３０ｂの領域には草オブジェクト３２は生成されていない。また、図５の画面の手前方向にプレイヤキャラクタ４０が移動する場合でも、道オブジェクト３０ｂには草オブジェクト３２は生成されない。
【００５１】
また、プレイヤキャラクタ４０が移動可能な草原オブジェクト３０ａの領域のうち、地平線を基準とした所定領域以外の領域には、草オブジェクト３２は生成されない。すなわち、草原オブジェクト３０ａの領域のうち、地平線を基準とした所定領域よりも仮想カメラＶＣ側の領域（手前側の領域）には、草オブジェクト３２は生成されない。ゲームの実行中、プレイヤキャラクタ４０の移動に追従して仮想カメラＶＣも移動する。このため、プレイヤキャラクタ４０は、ゲームの実行中、ディスプレイ１２における所定位置（例えば、画面の中心）に位置する。草オブジェクト３２は、地平線を基準とした所定領域よりも手前側の領域には生成されないため、プレイヤキャラクタ４０は、草オブジェクト３２が生成されない領域で移動したり、所定のアクションを行ったりすることになる。
【００５２】
草オブジェクト３２が生成された領域にプレイヤキャラクタ４０が位置する場合、必要な部分が見え難くなったり、不自然な表示となったり、余計な計算が必要になったりすることがある。例えば、草オブジェクト３２の中にプレイヤキャラクタ４０の足が埋もれて足が見え難くなったり、プレイヤキャラクタ４０が所定のアイテムに対して所定のアクションを行う場合（例えば、地面上に落ちているアイテムを拾う）に所定のアイテムが見え難くなったりする場合がある。また、草オブジェクト３２の上でプレイヤキャラクタ４０の足が浮いて見えるようになったりする場合もある。また、自然な表示とするために、プレイヤキャラクタ４０の足と草オブジェクト３２との衝突を計算し、その計算結果に応じて表示を制御することも考えられる。例えば、プレイヤキャラクタ４０の足と草オブジェクト３２とが衝突した場合、草オブジェクト３２を変形させることも考えられる。しかしながら、このような計算は複雑であり、多数の草オブジェクト３２が存在する場合にはプロセッサ２０に大きな負荷がかかることになる。
【００５３】
しかしながら、本実施形態では、草オブジェクト３２は、地平線を基準とした所定領域に生成され、プレイヤキャラクタ４０が位置する領域には生成されない。このため、このような問題が発生しないようにすることができる。
【００５４】
このように、本実施形態では、地平線を基準とした草生成領域には、３次元の草オブジェクト３２が生成される。このため、地平線部分に所定の高さを有する草オブジェクト３２を表示させることができ、地平線部分をリアルに表現することができる。
【００５５】
なお、草原オブジェクト３０ａの領域のうち、地平線を基準とした所定領域よりも手前側の領域には、３次元の草オブジェクト３２は生成されないが、草原オブジェクト３０ａには草を模した緑色のテクスチャ画像が貼り付けられる。この草原オブジェクト３０ａ上の草の画像は、草オブジェクト３２とは異なり、３次元の仮想オブジェクトではない。このため、草生成領域の手前側の領域では平坦な画像になるが、仮想カメラＶＣから当該手前側の領域への方向と、地面オブジェクト３０との角度は大きいため、３次元の草オブジェクト３２がなくても違和感のない画像となる。一方、地平線部分では、仮想カメラＶＣから地平線に向かう方向と、地面オブジェクト３０との角度が小さい。このため、３次元の草オブジェクト３２が生成されなければ、地平線部分は平坦になり、リアルさに欠ける画像となってしまう可能性がある。しかしながら、本実施形態では、地平線部分に高さ方向に伸びる草オブジェクト３２を生成することで、地平線部分をリアルに表現することができる。
【００５６】
次に、草オブジェクト３２の生成方法について説明する。本実施形態では、仮想空間において、平面的な地面オブジェクト３０と地面オブジェクト３０上の他のオブジェクト（３２、３５〜３７、４０等）とが配置される。仮想カメラＶＣに基づいて仮想空間の画像を生成する際に、少なくとも仮想カメラＶＣの視野に含まれる、当該地面オブジェクト３０と他のオブジェクトとを含む仮想空間がドラム状に変形される。まず、仮想空間をドラム状に変形させるドラム変形処理について説明した後、草オブジェクト３２の生成方法について説明する。
【００５７】
（ドラム変形処理）
図６は、ドラム変形処理が行われる前の仮想空間の一例を示す図である。
【００５８】
図６に示すように、仮想空間には、地形オブジェクトとしての地面オブジェクト３０と、地面オブジェクト３０上の家オブジェクト３５とが配置されている。なお、図６では、地面オブジェクト３０及び家オブジェクト３５以外のオブジェクトについては表示を省略している。また、仮想空間には、仮想カメラＶＣが設定される。仮想カメラＶＣには、当該仮想カメラに固定のＣｘＣｙＣｚ座標系が設定される。Ｃｘ軸は、仮想カメラＶＣの横方向の軸である。Ｃｙ軸は、仮想カメラＶＣの上方向の軸である。Ｃｚ軸は、仮想カメラＶＣの視線方向の軸である。本実施形態では、Ｃｘ軸は、仮想空間のｘ軸に平行に設定される。また、仮想カメラＶＣは、仮想空間の高さ方向に移動可能であり、高さ方向に移動する場合にＣｘ軸回り（ピッチ方向）に回転する。Ｃｘ軸は仮想空間のｘ軸に平行に設定されるため、仮想カメラＶＣの視線方向の地面３４に沿った方向は、ｚ軸と平行になる。
【００５９】
図６に示す地面オブジェクト３０及び地面オブジェクト３０上の他のオブジェクトに対して、ドラム変形処理が行われる。図７は、ドラム変形処理が行われた後の仮想空間の一例を示す図である。
【００６０】
図７に示すように、ドラム変形処理では、地面オブジェクト３０が円筒（ドラム）の側面に沿うように地形全体が変形される。具体的には、地形を構成する地面オブジェクト３０が、仮想空間のｘ軸と平行な中心軸を有する半径Ｒの円筒の側面の少なくとも一部をなすように、地形全体が変形される。仮想カメラＶＣのＣｘ軸は仮想空間のｘ軸と平行になるように設定されるため、仮想カメラＶＣの視線方向（画像が表示された場合の画面の奥行き方向）に地面３０が下がるように、地形全体が変形される。また、地面オブジェクト３０上の家オブジェクト３５（及び、その他の木オブジェクト３６、プレイヤキャラクタ４０等）も地面オブジェクト３０に沿うように変形される。
【００６１】
具体的には、ドラム変形処理では、地面オブジェクト３０の各頂点、及び、地面オブジェクト３０上に配置された他のオブジェクトの各頂点がｘ軸回りに回転するように座標変換される。以下、図８及び図９を参照して、ドラム変形処理の詳細について説明する。
【００６２】
図８は、ドラム変形処理が行われる前の仮想空間をｘ軸と平行な方向から見たときの一例を示す図である。図９は、ドラム変形処理が行われた後の仮想空間をｘ軸と平行な方向から見たときの一例を示す図である。
【００６３】
図８に示すように、地面オブジェクト３０上の頂点Ｖ１のｙ座標値及びｚ座標値が（ｙ１，ｚ１）であるとする。また、家オブジェクト３５の頂点Ｖ２のｙ座標値及びｚ座標値が（ｙ２，ｚ２）であるとする。また、ｚ軸方向の所定距離がＬであるとする。なお、Ｌは固定の値である。
【００６４】
また、本実施形態では、ユーザの操作に応じて、仮想カメラＶＣの高さが変化する。例えば、仮想カメラＶＣは、「低」の位置と、「通常」の位置と、「高」の位置とに設定可能であるとする。仮想カメラＶＣが「低」の位置の場合は、仮想カメラＶＣの視線方向は第１の方向に設定され、ｚ軸とＣｚ軸との角度は比較的小さな値（例えば、０度〜２０度）に設定される。この場合、仮想空間を横から見たような画像がディスプレイ１２に表示される。また、仮想カメラＶＣが「通常」の位置の場合は、仮想カメラＶＣの視線方向は第１の方向よりも下向きの第２の方向に設定され、ｚ軸とＣｚ軸との角度は仮想カメラＶＣが「低」の位置の場合よりも大きな値（例えば、４５度）に設定される。この場合、仮想空間を斜め上方向から見たような画像が表示される。また、仮想カメラＶＣが「高」の位置の場合は、仮想カメラＶＣの視線方向は第２の方向よりも下向きの第３の方向に設定され、ｚ軸とＣｚ軸との角度は比較的大きな値（例えば、６０〜７０度）に設定される。この場合、仮想空間を上から見たような画像が表示される。
【００６５】
この場合、図８に示す頂点Ｖ１及びＶ２は、図９に示す頂点Ｖ１’及びＶ２’にそれぞれ変位される。具体的には、変位後の頂点Ｖ’のｙ座標値及びｚ座標値（ｙ’，ｚ’）は、変位前の頂点Ｖのｙ座標値及びｚ座標値（ｙ，ｚ）に基づいて、以下の式１〜式５により算出される。なお、各頂点のｘ座標値は変化されない。
【００６６】
ｒａｄ＝θ×（ｚ／Ｌ）                        （式１）
ｔｅｍｐ＿ｙ＝ｙ＋Ｒ                          （式２）
ｙ＿ｔ＝ｔｅｍｐ＿ｙ×ｃｏｓ（ｒａｄ）        （式３）
ｙ’＝ｙ＿ｔ−Ｒ                              （式４）
ｚ’＝ｔｅｍｐ＿ｙ×ｓｉｎ（ｒａｄ）          （式５）
【００６７】
ここで、θは、円弧の中心角であり、仮想カメラＶＣの高さに応じて定められる。また、Ｒは、円弧（円筒）の半径を示す。ｚ軸方向の距離Ｌは固定の値であり、θは仮想カメラＶＣの高さに応じて定められるため、Ｒは、Ｌとθとに基づいて定まる（Ｒθ＝Ｌ）。
【００６８】
地面オブジェクト３０および地面上のオブジェクトの全ての頂点に対して、式１〜式５に基づく座標変換が行われる。すなわち、各頂点のｚ軸方向の位置に応じて、各頂点に対して式１〜式５に基づく座標変換が行われる。言い換えると、各頂点の地面オブジェクト３０に沿った奥行き方向の位置に応じて、各頂点に対して式１〜式５に基づく座標変換が行われる。
【００６９】
図９に示すように、例えば地面オブジェクト３０上の頂点Ｖ１は、半径Ｒ、中心角θを有する円弧上の位置に変位される。地面オブジェクト３０上の全ての頂点に対して同様の座標変換が行われることにより、地面オブジェクト３０が、半径Ｒの円筒の側面の一部をなすように変形される。また、地面オブジェクト３０上の家オブジェクト３５の頂点Ｖ２も同様に座標変換され、図９に示す位置に変位される。家オブジェクト３５の全頂点に対して同様に座標変換が行われることにより、家オブジェクト３５は、円筒の側面上に配置される。
【００７０】
ドラム変形処理では、ＧＰＵ２２の頂点シェーダ機能により各頂点が変位される。具体的には、ＧＰＵ２２は、ＣＰＵ２１からの命令に応じて、上記式１〜式５に基づく座標変換を行う。そして、ＧＰＵ２２は、仮想カメラＶＣに基づいて描画処理を行い、ディスプレイ１２に画像を表示させる。すなわち、ディスプレイ１２に画像が表示される毎に（フレーム毎に）、ＧＰＵ２２の頂点シェーダ機能により地面オブジェクト３０及び地面上のオブジェクトの頂点が変位され、地形全体が変形される。
【００７１】
なお、θは、仮想カメラＶＣの視線方向（仮想カメラＶＣの高さ）によって定められる。例えば、仮想カメラＶＣの視線方向が第１の方向に設定される場合、θは第１の値に設定される。また、仮想カメラＶＣの視線方向が第２の方向に設定される場合、θは、第１の値よりも大きな第２の値に設定される。すなわち、仮想カメラＶＣの視線方向が第１の方向よりも下向きの第２の方向に設定される場合は、θの値は大きくなる。言い換えると、仮想カメラＶＣの視線方向が第１の方向よりも下向きの第２の方向である場合は、変形後の地面の曲率が大きくなる。
【００７２】
一方、仮想カメラＶＣの視線方向が第２の方向よりもさらに下向きの第３の方向である場合は、θの値は、第１の値および第２の値よりも小さな第３の値に設定される。言い換えると、仮想カメラＶＣの視線方向が第２の方向よりも下向きの第３の方向である場合は、変形後の地面の曲率は小さくなる。
【００７３】
なお、仮想カメラＶＣが図８に示す「高」の位置よりも更に高い位置（例えば、真上から仮想空間を見下ろす方向）にある場合、ドラム変形処理は行われなくてもよい。すなわち、マップのように仮想空間を俯瞰する位置に仮想カメラＶＣが設定されている場合、地形および地形上のオブジェクトをドラム状に変形させる処理は行われなくてもよい。
【００７４】
（草オブジェクト３２の生成方法）
図１０は、草生成領域を決定する方法を説明するための図である。図１１は、草オブジェクト３２の高さの一例を示す図である。
【００７５】
図１０に示すように、ＣＰＵ２１は、草生成領域を決定する場合に、仮想カメラＶＣの位置から、上述したドラム変形処理を行った場合の地面オブジェクト３０への接線を求める。この接線とドラム状の地面オブジェクト３０との接点をＰとする。この接点Ｐに基づいて定められる線が、仮想カメラＶＣから見える地平線（地面オブジェクト３０と背景との境界線）となる。例えば、仮想カメラＶＣの位置から、地面オブジェクト３０への接線（ｘ軸に垂直な線）を引き、その接線の接点Ｐを通るｘ軸に平行な直線を、地平線としてもよい。ＣＰＵ２１は、接点Ｐ（地平線）を含む仮想カメラＶＣ側の領域と、仮想カメラＶＣの視線方向側の領域とを含む所定領域を、草生成領域として決定する。なお、この草生成領域の決定は、実際にドラム変形処理が行われる前に、行われる。すなわち、ＣＰＵ２１は、平面的な地面オブジェクト３０に対してドラム変形処理を行った場合の円筒のオブジェクトに接する接線を計算する。
【００７６】
なお、仮想カメラＶＣの高さによっては、仮想カメラＶＣの視野内に地平線が含まれない場合がある。この場合は、接線を引くことができないため、草生成領域は存在せず、草オブジェクト３２は生成されない。例えば、仮想カメラＶＣが図８に示す「高」の位置にある場合、仮想カメラＶＣの視野内に地平線が含まれないため、草オブジェクト３２は生成されない。
【００７７】
ＣＰＵ２１は、草生成領域を決定すると、平面的な地形オブジェクト３０上の草生成領域に複数の草オブジェクト３２を配置するとともに、各草オブジェクト３２の高さを決定する。図１１に示すように、接点Ｐ（地平線）よりも仮想カメラＶＣ側の領域Ａでは、草オブジェクト３２の高さは、仮想カメラＶＣからの距離に応じて異なる。具体的には、領域Ａでは、草オブジェクト３２の高さは、仮想カメラＶＣに近いほど低くなるように決定される。すなわち、接点Ｐの手前側（仮想カメラＶＣ側）の位置から接点Ｐまでの範囲では、草オブジェクト３２の高さは、奥行き方向（仮想カメラＶＣの視線方向）に行くほど高くなる。草オブジェクト３２の高さは、接点Ｐ（地平線）において最大となり、接点Ｐよりも奥行き方向の領域Ｂでは、最大値が維持される。なお、領域Ａよりも更に手前側（仮想カメラＶＣ側）の領域Ｃでは、地面オブジェクト３０上に草オブジェクト３２が配置されるものの、草オブジェクト３２の高さは「０」に設定される。すなわち、草オブジェクト３２の３つの頂点が地面オブジェクト３０上に配置される。このため、この領域Ｃには、草オブジェクト３２が生えていないように見える。また、領域Ｃよりもさらに手前側の領域には、草オブジェクト３２は配置されない（すなわち、３つの頂点は配置されない）。
【００７８】
三角形の草オブジェクト３２の最頂部の頂点をＧＰＵ２２の頂点シェーダ機能によって変位させることで、草オブジェクト３２が生成、表示される。すなわち、ＣＰＵ２１が決定した草オブジェクト３２の高さをＧＰＵ２２に指定し、ＧＰＵ２２が草オブジェクト３２の最頂部の頂点の位置を座標変換により変位させる。これにより、草オブジェクト３２の最頂部の頂点が上下方向に移動し、草オブジェクト３２がシームレスに出現するように見せる。
【００７９】
草オブジェクト３２の最頂部の頂点を変位させた後、さらに、上記ドラム変形処理によって、地面オブジェクト３０と地面オブジェクト３０上に配置されたオブジェクト（草オブジェクト３２、家オブジェクト、木オブジェクト、プレイヤキャラクタ４０等）とを含む少なくとも仮想カメラＶＣの視野に含まれる仮想空間が、変形される。このドラム変形処理は、ＧＰＵ２２の頂点シェーダ機能によって各オブジェクトの各頂点を変位させることで行われる。そして、ＧＰＵ２２によって仮想空間の画像が生成され、図５に示したような画像がディスプレイ１２に表示される。
【００８０】
図１０に示した状態から仮想カメラＶＣが奥行き方向に移動した場合、草生成領域も移動する。図１２は、図１０の状態から仮想カメラＶＣが地形オブジェクト３０に対して移動したときの一例を示す図である。
【００８１】
例えば、図１０の状態から仮想カメラＶＣが奥行き方向に移動した場合、地面オブジェクト３０上の接点Ｐの位置が移動する。図１０では家オブジェクト３５の手前側に草生成領域が設定されていたが、図１２では、家オブジェクト３５の奥側に草生成領域が設定される。このように、草生成領域は、仮想カメラＶＣの奥行き方向への移動に応じて、移動する。仮想カメラＶＣが奥行き方向に移動した場合には、リアルタイムで仮想カメラＶＣから円筒状の地面オブジェクト３０に対する接線が求められ、草生成領域が設定される。これにより、仮想カメラＶＣの奥行き方向への移動に応じて、草オブジェクト３２が生成又は消去される。また、草オブジェクト３２の高さは、仮想カメラＶＣの奥行き方向への移動に応じて変化する。
【００８２】
なお、仮想空間内でプレイヤキャラクタ４０及び仮想カメラＶＣを奥行き方向に移動させることで、プレイヤキャラクタ４０及び仮想カメラＶＣを地面オブジェクト３０上で移動させてもよい。また、プレイヤキャラクタ４０及び仮想カメラＶＣの位置を固定したまま、ドラム状の地形全体を回転させることで、プレイヤキャラクタ４０及び仮想カメラＶＣを擬似的に奥行き方向に移動させてもよい。すなわち、プレイヤキャラクタ４０及び仮想カメラＶＣが地形上を移動するように制御されるのであれば、プレイヤキャラクタ４０及び仮想カメラＶＣを仮想空間内で移動させてもよいし、プレイヤキャラクタ４０及び仮想カメラＶＣの仮想空間における位置を固定したまま、ドラム状の地形を回転させてもよい。
【００８３】
例えば、ドラム状の地形を回転させる方法として、図９を参照して説明した座標変換を行う際に、奥行き方向への移動量に応じた角度を加える方法がある。具体的には、上記式１の代わりに、以下の式１’に基づいて「ｒａｄ」が算出される。
ｒａｄ＝θ×（（ｚ＋ＯＦＦＳＥＴ）／Ｌ）                        （式１’）
【００８４】
ここで、「ＯＦＦＳＥＴ」は、プレイヤキャラクタ４０の奥行き方向への移動に応じて定められる。式１’に示すように、ｚにＯＦＦＳＥＴ値を加えた値に基づいて「ｒａｄ」が算出される。そして、式１’に基づいて算出された「ｒａｄ」を上記式２及び式５に代入し、変換後の頂点Ｖの座標値が算出される。これにより、地形全体をドラム状に変形するとともに、ドラム状の地形全体を、ドラムの中心軸周りに回転させることができ、実際に仮想カメラＶＣを仮想空間で移動させることなく、擬似的な仮想カメラＶＣの移動を実現することができる。すなわち、式１’のようにｚ座標値にＯＦＦＳＥＴ値を加えることで、「ＯＦＦＳＥＴ」分だけ仮想カメラＶＣが奥行き方向に移動するように見える。
【００８５】
以上のように、本実施形態では、地面オブジェクト３０上の所定領域であって、仮想カメラＶＣから見える地面オブジェクト３０と背景との境界線（地平線）を基準とした所定領域に草オブジェクト３２が生成される。このため、地面オブジェクト３０上の境界線部分をリアルに表現することができる。また、プレイヤキャラクタ４０は所定領域の手前側（仮想カメラＶＣ側）に位置し、草オブジェクト３２が生成されない領域においてプレイヤキャラクタ４０が移動したり、所定のアクションを行ったりする。これにより、プレイヤキャラクタ４０を移動させたり所定のアイテムに対する所定のアクションを行わせたりする場合に、見易さを確保することができる。
【００８６】
また、草オブジェクト３２は、境界線の手前から境界線にかけて長くなるように生成される。地面オブジェクト３０上の境界線の草オブジェクト３２が長く形成されるため、地面オブジェクト３０から仮想空間の上方に向かって草オブジェクト３２が生えている様子を強調することができ、リアルさを増すことができる。
【００８７】
また、本実施形態では、地面オブジェクト３０が仮想カメラＶＣから見て円筒の周方向に沿うように変形されるため、地平線部分から草オブジェクト３２が生える様子を見やすくすることができる。
【００８８】
また、本実施形態では、ＧＰＵ２２の頂点シェーダ機能によりリアルタイムで草オブジェクト３２の高さが調整される。これにより、高さの異なる草オブジェクト３２を複数用意する必要がない。
【００８９】
また、ＧＰＵ２２の頂点シェーダ機能により草オブジェクト３２の頂点を変位させることで、草オブジェクト３２を動かすことができる。例えば、仮想空間内で風が吹く場合に、草オブジェクト３２の最頂部の頂点を左右方向に変位させることで、草オブジェクト３２が揺れる様子を表示することができる。例えば、草オブジェクト３２が揺れる様子を記録した動画像を表示する場合、データ量が大きくなったり、草の揺れが単調になったりすることがある。草オブジェクト３２の頂点をＧＰＵ２２の頂点シェーダ機能により変位させることで、このような動画像を用意する必要がない。また、例えば変位のパターンをランダムにすることで草の揺れを自然に表現することができる。
【００９０】
また、本実施形態では、ＧＰＵ２２の頂点シェーダ機能によりリアルタイムで平面的な地形及び地形上のオブジェクトの頂点が変位される。これにより、予め曲面状の地形を用意する必要がない。また、予め曲面状の地形を作成する場合には、地形上に配置される他のオブジェクト（家オブジェクト３５や木オブジェクト３６）もその曲面に合うように作成する必要があり、ゲーム製作者にとって手間がかかる。すなわち、曲面状の地形上にオブジェクトを配置する場合、地面に接するオブジェクトの底面も地形に沿って曲面状に形成する必要があり、その底面に合わせてオブジェクト全体も作成する必要がある。異なる曲率の地形を用意する場合には、その曲率毎にオブジェクトも作成する必要がある。しかしながら、本実施形態では、平面的な地形及び当該地形上に配置されるオブジェクトを予め用意し、平面的な地形及び地形上のオブジェクトの頂点をＧＰＵ２２の頂点シェーダ機能によりリアルタイムで変位させるため、予め曲面状の地形や曲面状の地形に合ったオブジェクトを用意する必要がない。したがって、ゲームの開発効率を向上させることができる。
【００９１】
また、本実施形態では、ドラム変形処理によって仮想カメラＶＣの視線方向が第１の方向の場合は、ドラムの曲率を小さく（θを小さく）し、仮想カメラＶＣの視線方向が第１の方向より下向きの第２の方向の場合は、ドラムの曲率を大きく（θを大きく）する。これにより、ユーザにとって見やすい画像にすることができる。例えば、奥行き方向の遠い位置については地面が曲げられて表示されないため、ユーザにとって、プレイヤキャラクタ４０から近い範囲を見やすくなり、よりゲームを楽しむことができる。また、仮想カメラＶＣの視線方向が第１の方向（横向き）の場合は曲率が小さくなるため、地形全体をドラム状に変形させる場合でもユーザにとって違和感のない画像にすることができる。例えば、曲率が大きすぎると地形全体が大きく曲がっているように見え、ユーザにとって違和感のある画像になるおそれがある。しかしながら、本実施形態では、仮想カメラＶＣの視線方向が第１の方向（横向き）の場合にはドラムの曲率が小さく設定されるため、そのような違和感を生じさせ難くすることができる。
【００９２】
（ゲーム処理の詳細）
次に、本体装置２において行われるゲーム処理の一例について具体的に説明する。まず、本体装置２に記憶されるデータについて説明する。
【００９３】
図１３は、本体装置２（のＤＲＡＭ２６）に記憶されるデータの一例を示す図である。図１３に示すように、本体装置２には、ゲームプログラムと、地形オブジェクトデータと、キャラクタデータと、仮想カメラデータと、草オブジェクトデータとが記憶される。これらの他にも、ユーザの操作に応じた操作データ、ゲームに用いられるアイテム等の他のデータ等、様々なデータが記憶される。
【００９４】
ゲームプログラムは、本実施形態のゲームを実行するためのプログラムである。ゲームプログラムは、例えば外部記憶媒体に記憶されており、ゲームが開始されると、外部記憶媒体からＤＲＡＭ２６に読み込まれる。
【００９５】
地形オブジェクトデータは、仮想空間の地形を表すオブジェクトに関するデータである。地形オブジェクトデータは、平面的な地面オブジェクト３０や草オブジェクト３２が生成され得ない平面的な川オブジェクト３１等を含む。また、地形オブジェクトデータは、草オブジェクト３２が生成され得る草原オブジェクト３０ａ、および、草オブジェクト３２が生成され得ない道オブジェクト３０ｂに関するデータを含む。また、地面オブジェクト３０に関するデータは、複数の頂点を含む。
【００９６】
オブジェクトデータは、地形上に配置される他のオブジェクト（家オブジェクト３５や木オブジェクト３６、崖オブジェクト３７等）を示すデータである。各オブジェクトデータは、複数の頂点を含む。１つのオブジェクトデータは、各頂点を表すデータとして、代表的な頂点からの相対位置を表すデータを含む。オブジェクト（例えば家オブジェクト３５）が仮想空間に配置された場合、相対位置を表すデータに基づいて、当該オブジェクトの各頂点の仮想空間における座標値が定まる。オブジェクトデータは、例えば外部記憶媒体に予め記憶されており、ゲームの開始の際に、外部記憶媒体からＤＲＡＭ２６に読み込まれる。
【００９７】
キャラクタデータは、地形上に配置されるプレイヤキャラクタ４０を示すデータを含む。プレイヤキャラクタ４０を示すデータは、複数の頂点を含み、各頂点を表すデータとして、代表的な頂点からの相対位置を表すデータを含む。なお、キャラクタデータは、ＣＰＵ２１によって制御されるキャラクタ（いわゆる、ＣＰＵキャラクタ）を示すデータを含んでもよい。
【００９８】
仮想カメラデータは、仮想カメラＶＣの状態に関連するデータであり、仮想カメラＶＣの仮想空間における位置、視線方向等を表すデータである。
【００９９】
草オブジェクトデータは、各草オブジェクト３２に関するデータである。各草オブジェクト３２に関するデータは、各草オブジェクト３２の位置を示すデータと、各草オブジェクト３２の高さを示すデータとを含む。
【０１００】
次に、本体装置２において行われるゲーム処理の詳細について説明する。図１４は、本体装置２のプロセッサ２０において行われるゲーム処理の一例を示すフローチャートである。図１４に示す処理は、本体装置２のＣＰＵ２１又はＧＰＵ２２がゲームプログラムを実行することによって行われる。なお、図１４では、上述した草オブジェクト３２の生成及びドラム変形処理に関連する処理のみが示されており、他の処理（例えば、プレイヤキャラクタ４０に所定の動作を行わせる処理等）は省略されている。
【０１０１】
図１４に示すように、ＣＰＵ２１は、まず、初期処理を行う（ステップＳ１００）。初期処理では、仮想空間に固定のｘｙｚ座標系が設定され、各オブジェクトが仮想空間内に配置される。これにより、仮想空間において、平面的な地面オブジェクト、川オブジェクト等を含む地形が構成され、地形上に他のオブジェクト（家オブジェクト３５、木オブジェクト３６、プレイヤキャラクタ４０等）が配置される。各オブジェクトの仮想空間内における位置が定まることで、各オブジェクトの各頂点の仮想空間における位置が定まる。また、仮想空間内に仮想カメラＶＣが配置される。
【０１０２】
ステップＳ１００の処理の後、ＣＰＵ２１は、ステップＳ１０１の処理を実行する。以降、ＣＰＵ２１は、ステップＳ１０１〜ステップＳ１１０の処理を、所定のフレーム時間（例えば、１／６０秒）毎に繰り返し実行する。
【０１０３】
ステップＳ１０１において、ＣＰＵ２１は、コントローラ（左コントローラ３又は右コントローラ４）から操作データを取得し、操作データに基づいてプレイヤキャラクタ４０の移動操作が行われたか否かを判定する（ステップＳ１０１）。
【０１０４】
プレイヤキャラクタ４０の移動操作が行われたと判定した場合（ステップＳ１０１：ＹＥＳ）、ＣＰＵ２１は、プレイヤキャラクタ４０の移動処理を行う（ステップＳ１０２）。例えば、ユーザによって奥行き方向（ｚ軸方向）への移動が指示された場合、ＣＰＵ２１は、プレイヤキャラクタ４０を奥行き方向に移動させる。
【０１０５】
ステップＳ１０２の処理を実行した場合、又は、ステップＳ１０１でＮＯと判定した場合、ＣＰＵ２１は、仮想カメラ設定処理を行う（ステップＳ１０３）。具体的には、ＣＰＵ２１は、ユーザの操作に応じて、仮想カメラＶＣの高さ（視線方向）を設定する。ユーザによって仮想カメラＶＣの高さの変更が行われた場合は、ＣＰＵ２１は、仮想カメラＶＣの高さ（位置及び視線方向）を設定する。
【０１０６】
ステップＳ１０３に続いて、ＣＰＵ２１は、仮想カメラＶＣの状態に応じて、中心角θを設定する（ステップＳ１０４）。具体的には、ＣＰＵ２１は、ステップＳ１０３で設定された仮想カメラＶＣの視線方向（高さ）に応じて、中心角θを設定する。
【０１０７】
次に、ＣＰＵ２１は、ユーザの操作に応じてプレイヤキャラクタ４０が奥行き方向（ｚ軸方向）に移動したか否かを判定する（ステップＳ１０５）。
【０１０８】
プレイヤキャラクタ４０が奥行き方向に移動したと判定した場合（ステップＳ１０５：ＹＥＳ）、ＣＰＵ２１は、オフセット値を設定する（ステップＳ１０６）。ここで設定されるオフセット値は、上記式１’の「ＯＦＦＳＥＴ」である。具体的には、ＣＰＵ２１は、プレイヤキャラクタ４０のｚ軸方向への移動に応じて、オフセット値を設定する。例えば、ＣＰＵ２１は、プレイヤキャラクタ４０がｚ軸正方向に移動した場合、負のオフセット値を設定し、プレイヤキャラクタ４０がｚ軸負方向に移動した場合、正のオフセット値を設定する。
【０１０９】
ステップＳ１０６の処理を実行した場合、又は、ステップＳ１０５でＮＯと判定した場合、ＣＰＵ２１は、草生成処理を行う（ステップＳ１０７）。以下、ステップＳ１０７の草生成処理の詳細について説明する。
【０１１０】
図１５は、ステップＳ１０７の草生成処理の一例を示すフローチャートである。
【０１１１】
ＣＰＵ２１は、まず、仮想カメラＶＣの視野内において、仮想カメラＶＣの位置からドラム状に変形させた場合の地面オブジェクト３０への接線を計算する（ステップＳ１２０）。
【０１１２】
次に、ＣＰＵ２１は、草生成領域を決定する（ステップＳ１２１）。具体的には、ＣＰＵ１２１は、地面オブジェクト３０上の、接点Ｐを含む所定領域（接点Ｐよりも手前側の領域と、接点Ｐよりも奥行き側の領域とを含む領域）を、草生成領域として決定する。
【０１１３】
続いて、ＣＰＵ２１は、決定した草生成領域に複数の草オブジェクト３２を配置する（ステップＳ１２２）。例えば、ＣＰＵ２１は、草生成領域に等間隔に複数の草オブジェクト３２を配置してもよい。ここでは、平面的な地形オブジェクト３０の草生成領域に複数の草オブジェクト３２が配置される。なお、ＣＰＵ２１は、ステップＳ１２１で決定した草生成領域において、草が生成されない領域（例えば、道オブジェクト３０ｂの領域）には、草オブジェクト３２を配置しない。
【０１１４】
ステップＳ１２２に続いて、ＣＰＵ２１は、各草オブジェクト３２の高さを決定する（ステップＳ１２３）。草オブジェクト３２の高さの決定方法については、図１１を参照して説明した通りである。
【０１１５】
次に、ＣＰＵ２１は、草生成領域に草オブジェクト３２を生成させる（ステップＳ１２４）。具体的には、ＣＰＵ２１は、決定した各草オブジェクト３２の高さに応じて各草オブジェクト３２の最頂部の頂点を変位させるために、ＧＰＵ２２に命令を送る。ＧＵＰ２２は、当該命令に応じて、頂点シェーダ機能を用いて草オブジェクト３２の最頂部の頂点に対する座標変換を行うことで、各草オブジェクト３２の最頂部の頂点を変位させる。これにより、草オブジェクト３２が地面オブジェクト３０上の草生成領域に生成される。
【０１１６】
ステップＳ１２４の処理を実行した後、ＣＰＵ２１は、処理を図１４に戻す。
【０１１７】
図１４に戻り、ステップＳ１０７に続いて、ＣＰＵ２１は、ＧＰＵ２２に、地形及び地形上の各オブジェクトを変形させるドラム変形処理を実行させる（ステップＳ１０８）。具体的には、ＧＰＵ２２は、地面オブジェクト３０及び地面オブジェクト３０上の各オブジェクト（草オブジェクト３２、家オブジェクト３５、木オブジェクト３６、プレイヤキャラクタ４０等）の各頂点を、頂点シェーダ機能を用いて変位させる。このドラム変形処理が行われることにより、平面的な地面が円筒の側面の一部をなすように変形され、地面上のオブジェクトも当該円筒の側面上に合うように変形される。なお、ステップＳ１０６でオフセット値が設定されている場合、頂点の変位の計算には、式１’が用いられる。
【０１１８】
そして、ＣＰＵ２１は、ＧＰＵ２２に、仮想カメラＶＣに基づく描画処理を行わせる（ステップＳ１０９）。これにより、ドラム変形処理で変形された地形及び地形上のオブジェクトを仮想カメラＶＣから見た画像が生成される。そして、生成された画像がディスプレイ１２に出力され、ディスプレイ１２において仮想空間の画像が表示される（ステップＳ１１０）。
【０１１９】
なお、ステップＳ１０８のドラム変形処理は、仮想カメラＶＣの視野（撮像範囲）に含まれる頂点についてのみ行われる。すなわち、仮想カメラＶＣの視野に含まれない頂点については、ドラム変形処理は行われない。
【０１２０】
ステップＳ１１０の処理が行われた場合、ＣＰＵ２１は、再びステップＳ１０１の処理を実行する。以上で図１４の説明を終了する。
【０１２１】
このように、ステップＳ１０７の草生成処理、及び、ステップＳ１０８のドラム変形処理は、フレーム時間毎に繰り返し実行される。プレイヤキャラクタ４０がｚ軸方向に移動することによって地面オブジェクト３０上の地平線の位置が変わっても、リアルタイムで草生成処理が行われる。
【０１２２】
以上のように、本実施形態では、仮想カメラＶＣからドラム状に変形させた場合の地面オブジェクト３０への接線を計算し、接点Ｐに基づいて草生成領域を決定する。そして、草生成領域に複数の草オブジェクト３２を配置するとともに草オブジェクト３２の高さを決定し、草オブジェクト３２の頂点を変位させることで、草オブジェクト３２を生成する。このようにして、草オブジェクト３２を、仮想カメラＶＣから見える地面オブジェクト３０と背景との境界線を基準とした所定領域に生成する。これにより、地表をリアルに表現することができる。
【０１２３】
（変形例）
以上、本実施形態の画像処理ついて説明したが、上記実施形態は単なる一例であり、例えば以下のような変形が加えられてもよい。
【０１２４】
例えば、上記実施形態では、草原オブジェクト３０ａ上に草オブジェクト３２を生成させたが、生成するオブジェクトは草オブジェクトに限らない。例えば、雪が積もっているゲームのシーンでは、高さを有する雪オブジェクトが、地面オブジェクト３０と背景との境界線を基準とした所定領域に生成されてもよい。雪オブジェクトは、草オブジェクトと同様に１つの三角形のポリゴンで構成されるオブジェクトであってもよいし、複数の三角形を組み合わせたオブジェクトであってもよい。また、雪オブジェクトの高さ（積雪の高さ）は、上記草オブジェクト３２と同様に、境界線において最大となり、境界線よりも手前側（仮想カメラＶＣ側）の領域では、手前側ほど低くなるようにしてもよい。また、この場合、雪オブジェクトが配置され得る領域（例えば上記草原オブジェクト３０ａの領域）と、雪オブジェクトが配置され得ない領域（例えば上記道オブジェクト３０ｂの領域）とがあってもよい。
【０１２５】
また、草オブジェクトや雪オブジェクトに限らず、高さを有する任意の所定のオブジェクトを上記所定領域に生成させてもよい。
【０１２６】
また、上記実施形態では、地平線を基準とした所定領域に草オブジェクト３２を生成させた。地平線を基準とした所定領域は、地平線を含む領域であってもよいし、地平線を含まない領域（例えば、地平線よりも仮想カメラＶＣ側の領域）であってもよい。
【０１２７】
また、上記実施形態では、仮想カメラＶＣから見える地面オブジェクト３０と背景との境界線である地平線を基準とした所定領域に、オブジェクトを生成させた。他の実施形態では、仮想カメラＶＣから見える任意の地形オブジェクトと背景との境界線を基準とした所定領域に、高さを有する所定のオブジェクトを生成させてもよい。例えば、海や湖、川を示す地形オブジェクトと背景との境界線である水平線を基準とした所定領域に、所定のオブジェクトを生成してもよい。例えば、所定のオブジェクトとして、水平線を基準とした所定領域に、所定の高さを有する波オブジェクトを生成させることで、水平線部分が波打つ様子を表現してもよい。また、平面的な地面に限らず、高さを有する山又は丘オブジェクトを仮想空間に配置し、山又は丘オブジェクトと背景との境界線（仮想カメラＶＣから見える境界線）を基準とした所定領域に、所定のオブジェクトを生成させてもよい。
【０１２８】
すなわち、任意の地形を表す地形オブジェクト（例えば、地面オブジェクト、海や川オブジェクト、山オブジェクト等）を仮想空間に配置し、地形オブジェクトと背景との境界線（「稜線」とも言う）を基準とした所定領域に、所定のオブジェクトを生成させてもよい。ここでいう境界線（稜線）とは、仮想カメラＶＣから見たときの地形オブジェクトと背景との境界であり、例えば、地平線、水平線、背景の手前に山が見える場合の山の輪郭等を含む。
【０１２９】
また、上記実施形態では、地面オブジェクト３０の形状はドラム状（円筒の側面）であるとした。他の実施形態では、地形オブジェクトの形状は、球面や任意の曲面であってもよい。
【０１３０】
また、上記実施形態では、地面オブジェクト３０をドラム状に変形させるドラム変形処理を行うこととしたが、必ずしもドラム変形処理は行われなくてもよい。すなわち、平面的な地形が表示される場合に、平面的な地形と背景との境界線を基準とした所定領域に、所定のオブジェクトを生成させてもよい。
【０１３１】
また、上記実施形態では、草生成処理およびドラム変形処理において、ＧＰＵ２２の頂点シェーダ機能により各頂点に対して座標変換が行われた。他の実施形態では、ＣＰＵ２１が各頂点に対して座標変換を行ってもよい。
【０１３２】
また、上記フローチャートで示した処理は単なる例示に過ぎず、処理の順番や内容は適宜変更されてもよい。
【０１３３】
また、上記ゲームは単なる一例であり、他の任意のゲームにおいて上述した処理が行われてもよい。
【０１３４】
また、上記実施形態では、ゲームシステム１における本体装置２において上述した処理が行われることとしたが、上述した処理は他の任意の画像処理装置（例えば、パーソナルコンピュータ、スマートフォン、タブレット端末）等において実行されてもよい。また、他の実施形態では、複数の装置を含む画像処理システム（例えば端末とサーバとを含むシステム）において上述した処理が行われてもよい。
【０１３５】
以上、本発明について説明したが、上記説明は本発明の例示に過ぎず、種々の改良や変形が加えられてもよい。
【符号の説明】
【０１３６】
１  ゲームシステム
２  本体装置
３  左コントローラ
４  右コントローラ
１２  ディスプレイ
２０  プロセッサ
２１  ＣＰＵ
２２  ＧＰＵ
３０  地面オブジェクト
３１  川オブジェクト
３２  草オブジェクト
３５  家オブジェクト
３６  木オブジェクト
４０  プレイヤキャラクタ
【図１】
2020154923.tif 000003
【図２】
2020154923.tif 000004
【図３】
2020154923.tif 000005
【図４】
2020154923.tif 000006
【図５】
2020154923.tif 000007
【図６】
2020154923.tif 000008
【図７】
2020154923.tif 000009
【図８】
2020154923.tif 000010
【図９】
2020154923.tif 000011
【図１０】
2020154923.tif 000012
【図１１】
2020154923.tif 000013
【図１２】
2020154923.tif 000014
【図１３】
2020154923.tif 000015
【図１４】
2020154923.tif 000016
【図１５】
2020154923.tif 000017