概要:現役ゲームプランナーの視点から「ゲームにおけるカリング処理」について紹介!
プロフィール:わたなべ りょう
▼略歴
・明治大学政治経済学部卒
・株式会社カプコンに4年半勤務
・ゲームプランナー/アクションプランナー
・フリーランスとして独立
・特技は「テコンドー」「カポエイラ」
▼制作実績
・モンスターハンター ライズ
・モンスターハンター エクスプロア
・小説「LANCASTER《ランカスター》」
ゲームの描画処理「カリング」とは
ゲームにおけるカリングとは、描画する必要がないポリゴンは描画しないようにする設定のことです。描画を省くことで、メモリの負荷を軽減することができる感じですね。現実世界では、目に見えていない建物の裏側もあります。でも、ゲームでは、目(カメラ)に映ってないポリゴンは省くことがあります。
— わたなべ りょう@GamePlanner (@Studio_Creeat) September 4, 2021
ゲームにおけるカリングとは、描画する必要がないポリゴンは描画しないようにする設定のことです。描画を省くことで、メモリの負荷を軽減することができる感じですね。現実世界では、目に見えていない建物の裏側もあります。でも、ゲームでは、目(カメラ)に映ってないポリゴンは省くことがあります。
ゼルダの伝説 ブレスオブザワイルドの場合
引用元:Nintendo 公式チャンネル
『ゼルダの伝説Botw』は、見渡すかぎり続く広いステージから成るオープンワールドゲームです。
でも、ゲームをプレイしている最中に、全ての風景を描画するわけにはいかないです。
メモリに掛かる負荷が大きくなるからです。
そこで、カリングが必要になるわけです。
ゲームにおけるカリング設定の種類①:背面カリング
"ゲーム内のカメラに対して背を向けている面の描画は省く"という設定です。
簡単に言えば、オブジェクトの表裏の内、裏面は描かないといった具合です。
例えば、以下の通りです。
・ゲームをプレイしていると目の前に大きな岩が見えてきた
・背面カリング処理がされている場合、岩の裏側は描画されていない
・プレイヤーの視点(カメラ)は岩の表しか見えていないので、見た目上は何も変わっていないように見える
ざっくりこんな感じですね。
ゲームにおけるカリング設定の種類②:視錐台カリング
"カメラの視錐台の中にオブジェクトがあるかどうかによって描画対象を判定する設定"のことです。
簡単に言えば、ゲームをプレイしていて、カメラ(目)に映っていないオブジェクトの描画はしないということです。
具体的には、以下の通りです。
こんな感じですね。
正方形と三角形は描画されるけれど、球体は描画されないといった具合です。
どうやってオブジェクトの有無の判定を取るのか
基本的には、カメラにコリジョンを仕込むことで、当たり判定を取る感じです。
具体的には、以下の通りです。
- カメラのコリジョンにオブジェクトが当たっている=描画する
- カメラのコリジョンにオブジェクトが当たっていない=描画しない
ゲームにおけるカリング設定の種類③:オクルージョンカリング
カメラの視錐台の中にオブジェクトは入っているけれど、別のオブジェクトによって隠されている場合、隠されている側のオブジェクトの描画はしないという設定です。
具体的には、以下の通りです。
三角形はカメラの視錐台の中に入っているけれど、カメラの前に正方形が立ち塞がっているので、三角形は描画対象外として処理されます。
ゲームにおけるカリング処理
最後にもう一度まとめておきますね。
カリング=描画する必要がないポリゴンは描画しないようにする設定
背面カリング=ゲーム内のカメラに対して背を向けている面の描画は省く
視錐台カリング=カメラの視錐台の中にオブジェクトがあるかどうかによって描画対象を判定する
オクルージョンカリング=別のオブジェクトによって隠されている場合、隠されている側のオブジェクトの描画はしない
ゲーム開発に興味がある人へ
これからゲームを作ろうと思っている方は、Unity2020入門もしくはUnreal Engine 4で極めるゲーム開発を読んでおくとイイと思います。
開発現場では、基本的に「Unity」もしくは「Unreal」と呼ばれるゲームエンジンを使っているので、勉強しておくと役に立ちますよ。
今回はこんな感じで終わりたいと思います。