テクニカルジャーナリスト 西川善司氏による「西川善司が語る”ゲームの仕組み”」連載がスタートします!第1回は、普段から何気なく遊んでいる3Dゲームがどのように作られ、どのように描画されて私たちの目に届いているかを、イラスト付きで説明していきます。
TEXT / 西川 善司
EDIT / 神山 大輝
目次
西川善司
読者には若い学生さんも多くいるということで、初回は「今の3Dグラフィックスベースのゲームがどのような技術でできているか」という基礎的なお話をしたいと思います。
軽く自己紹介をします
私は、コンピュータ技術や半導体技術、ディスプレイ技術、自動車技術、人工知能、そしてゲーム開発技術や3Dグラフィックス技術などをテーマにした記事を執筆しているジャーナリストです。10年以上プログラマーをやっていましたが、興味のある分野が広がり、色々なことに手を出しているうちに、関連業界全体を俯瞰的な視点で見る方が楽しくなって現在にいたっています。
編集部の方からは「ゲームを形作っている基礎技術を解説してください」と言われていますので、最初はゲームの話題を取り扱っていきたいと思いますが、昨今の「ゲーム技術のノンゲーム分野応用への広がり」が盛んになっている世相を考えると、いずれはゲーム周辺技術の話などの話題を取り扱うこともあるかもしれません。
また、新しいゲーム機が登場するようなタイミングでは「ゲームを動かすハードウェア技術」などにも話が及ぶこともあるかもしれません。読者の皆さんの反響に耳を傾けながら、楽しい連載にしていけたらと思います。
極論、世の中って大体3Dグラフィックスベースのゲーム技術でできています
最近、耳にする機会が増えた「メタバース」というキーワード。
メタバースという単語自体にはデジタルツイン技術などの関連も深く、さまざまな捉え方があるので、ここではあえて一般的に連想されるようなイメージを述べますが、大体「CGで出来た3D仮想空間にユーザーが没入することができる体験や技術」といった感じで説明されることが多いと思います。
この説明だと「VR」と何が違うの?ということになりますが、とにかく「3DCG世界に入り込める”ああいった”技術」群は、基本的な技術基盤は現在の3Dグラフィックスベースのゲームと全く同じもので成り立っています。極端なことをいえば「ゲームとして遊べるか、遊べないか」程度の違いしかない…といっても過言ではありません。
我々が普段劇場で鑑賞している映画作品達はどうでしょうか?あれらにもCG、つまりは3Dグラフィックスが利用されていることを知っている人も多いと思います。実際のところ、こうした映画制作に用いられる3DCG技術も3Dグラフィックスベースのゲームの技術と共通点が多いです。
どんどんエスカレートしていきましょう。
我々が暮らしている現実世界。空を見あげれば太陽が光っていますし、その光で建物や木々が照らされています。目線を下げれば道行く人の姿や、車道を走り抜ける自動車も目に入ります。
現実世界に住む我々は、頭を動かせばその方向の情景を自分の目で見ることが出来ますが、この時に起きている事象はだいたい「3Dグラフィックスベースのゲーム」と同じです。まあ、「3Dグラフィックスベースのゲーム」の方が「現実世界の成り立ち」を模してコンピュータに実装しているので、オリジナルは現実世界の方なワケですけれどもね。
3Dグラフィックスベースのゲーム開発は天地創造!?
3Dグラフィックスを説明する際、「ポリゴンで出来た3Dモデル」とか「光源からの光の当たり具合の照明計算をして」といった話になることが多いですよね。確かに、その説明は正しいですが、本稿ではちょっと順番を変えて説明したいと思います。
ファミコン時代の2Dゲームでは、「ゲーム世界の構築」と「テレビに表示するゲーム画面のデザイン」は同義でした。
しかし、現在の3Dグラフィックスベースのゲームは、「テレビ画面に描画されるゲーム画面をどう作るか」という感じで制作しておらず、「ゲーム世界の構築」から行っています。
たとえば、最初は、何もない虚無の3D空間に対して「ゲーム世界はこのくらいの広さで」と、「ゲームシステムで取り扱えるゲーム世界」を定義したりします。
「どれくらい大きな世界にするか(≒できるか)」は、そのコンピュータやゲーム機(以下、ゲーム機に統一)が取り扱えるメモリー容量に依存したりします。大容量なストレージトステム(SSDやハードディスク)が利用出来るゲーム機であれば、そのメモリー容量より大きいゲーム世界を取り扱うことだってできます。
ちなみに、「ゲーム世界の構築」というと、プログラマ、アーティスト、プランナー(ゲームデザイナー)といった複数のゲーム開発者が「ゲーム内容そのものを制作する」ことをイメージすると思います。
しかし、それだけでなく、実際には買ってきたゲームをゲーム機上で起動して、ゲーム機がゲーム画面を描画するまでの流れ(≒ランタイム時)においても、「ゲーム世界の構築」は起きています。
たとえば、ゲーム機の中では、CPUがゲームプログラムに従って、前述したような「ゲーム世界」のデータをストレージシステムから読み出してメモリー上に展開しますので、「局所的なゲーム世界の構築」は常にゲーム機の中でリアルタイムに実行されています。
ゲーム制作フェーズの「ゲーム世界の構築」は、現実世界で喩えれば地球や宇宙みたいなものを創造することに相当し、ゲーム機がゲーム実行中に行っている「局所的なゲーム世界の構築」は、今、自分が見ている視界内の情景をレイアウトしている…といったイメージに近いです。
「カメラ」の配置で"見えてくる"ゲーム映像
「ゲーム世界の構築」だけでは、テレビ画面にゲームの映像は出てきません。ゲーム機が、そのゲーム世界のデータからゲーム画面を作り出すわけですが、プレイヤーが見ることになるゲーム画面はどのような仕組みで作られるのでしょうか?
このためには、大前提として、ゲーム画面を作るために不可欠な要素である「カメラ」(視点)を配置する必要があります。カメラというと「写真を撮る機械」のイメージがありますが、ここでいうカメラは「そのゲーム世界を誰がどこからどう見ているのか」を定義づけるもの、という感じです。
たとえば、その”カメラ“の位置を「戦士」の目玉のところに配置すれば、その戦士が「一人称視点」で見たゲーム画面が作り出されることになります。いわゆるファーストパーソン視点ですね。
カメラの位置を「戦士」の後頭部の上あたりに配置した場合は、プレイヤーキャラクターの後ろ姿を中心に捉えつつ、ゲーム世界をその背中越しに見るようなゲーム世界を作り出せます。そう、サードパーソン視点というやつです。
このカメラの位置を5メートルくらい上空に上げて、カメラの向きを地面の方に向けたらどうなるでしょうか。そう。リアルタイムストラテジーゲームに採用されることの多い、見下ろし視点のゲーム画面になりますね。昔のファミコン時代によく見られた2Dゲームに近い画面と言い換えることもできるかもしれません。
こうして見てくると、薄々気が付いてきたのではないでしょうか。現実世界に住む我々が普段見ている情景は、我々一人一人にカメラが設定された一人称視点のゲーム画面と大差がないわけです。
上でメタバース/VRの事例も挙げましたが、話は同じです。メタバース空間としての3D世界に3Dオブジェクトを配置しているところは「ゲーム世界の構築」と全く同じですし、VR被験者たるユーザーがVR-HMDを通して見ることになる情景は、そのユーザーが存在することになっている3D空間上のユーザーの身長の頭部あたりにカメラを置いて作り出された一人称視点のゲーム画面の成り立ちと完全に同義です。
また、上で映画の3DCGにも触れましたが、もう説明は不要でしょう。たとえば、実際の人間の主役俳優がモンスターと戦っているシーンをデジタルカメラで先に撮影しておき、このシーンに、敵役のモンスターをCGで描画して合成するケースを考えてみます。
この場合、そのシーンを撮影した現実世界と合致する3D空間を定義して、人間俳優がいた場所に対応する3D座標に3Dモデルのモンスターを配置します。この3Dシーンにおいて「どこにカメラを置くべきか?」はもうわかりますよね。そうです。そのシーンを撮影したデジタルカメラの位置に対応する3D座標に、「CGを描画するためのカメラ」を配置します。
もちろん、カメラの位置だけでなく向きも、現実世界を撮影したデジタルカメラの向きに合わせる必要があります。できあがったCGと人間俳優の実写映像を合成すれば、めでたく人間俳優とCGモンスターが戦闘を行うシーンの完成です。
ちなみに、この事例で出てきた「現実世界の情景に合致した3D空間を定義する」とか「実写映像とCG世界をうまく合成する」といった概念は、これまた最近、注目を集めているAR(Augmented Reality:拡張現実)やMR(Mixed Reality:複合現実)といった分野の実現と直結している、ということも見えてくると思います。
「カメラ」を工夫すると「見え方」を変えられる
「3Dグラフィックスベースのゲーム」において、”カメラ“がとても大事だということは分かってきたと思います。「3Dグラフィックスベースのゲーム」は、現実世界と同じように「世界を構成する色んなモノが配置された3D空間」があって、「そこに置いたカメラから見える情景」がゲーム画面(ゲーム映像)となるわけです。
この”カメラ“そのものに工夫をすると、一風変わったゲーム映像を作り出すことが出来ます。たとえば、3D空間に配置するカメラを2つにしたらどうでしょうか?2つ横にカメラを並べて、そこからゲーム映像を生成するのです。左右に並べたカメラの間隔を我々人間の左右の目の間隔に合わせると?…そうです。3D映像(立体視)のゲーム映像が生成できることになります。
最近はもう3Dテレビが販売されていないので、このアイデアを使う場面がなさそうに思えるかもしれませんが、実はそうでもないんです。実は、この3D映像を作るアイディアはそのまま、VR-HMD用の映像生成技術に応用できます。VR-HMDは、左右の目、それぞれに見せる二枚1組の3Dグラフィックスを見せていますよね。仕組みとしては3Dテレビというか、3D映像の表示の仕組みと全く同じですから、「2台のカメラを横並びにして2枚一組のゲーム映像を作る」アイデアはVR映像生成に使われています。ただ、2枚分の映像を作ることになるので、単純に考えるとグラフィックス描画の負荷は2倍になります。
もう一つ、”カメラ“に工夫するアイディアがあります。それは「画角」をアレンジする工夫です。初代プレイステーションの時代はテレビの画面の「横辺対縦辺の比率」いわゆるアスペクト比が4:3でした。2003年から2011年テレビ放送の地デジ移行期に連動して、テレビのアスペクト比は横長の16:9になりました。いま市販されているテレビ製品は、特殊製品を除けば全てアスペクト比16:9で作られています。だから、家庭用ゲーム機のゲーム映像は、一般的な市販テレビを想定してアスペクト比16:9で生成されます。
もうお分かりかと思いますが、これは「3D空間に置いたカメラ」の画角をアスペクト比16:9としてゲーム映像を生成しているからそうなっているわけです。だったら、これを別のアスペクト比にしたらどうなりますか?という話です。
最近、ゲーミングモニター製品で、アスペクト比が21:9や32:9といったウルトラワイドモデルが登場していますが、「3Dグラフィックスベースのゲーム」ならば、ああした超横長ゲーミングモニター製品にぴったりな超広画角なゲーム映像の生成ができます。
家庭用ゲーム機では意図的にアスペクト比16:9固定のゲーム映像しか出力できない仕様になっていますが、PCゲームであれば多くのタイトルが標準で超横長アスペクトに対応しています。横長になって何が嬉しいかといえば、画角が広がることで、アスペクト比16:9では見えなかった領域の映像がちゃんと描かれることです。
ゲームそのものを作り直す必要はほぼ不要で、やることはゲーム世界に配置するカメラの画角を広げるだけです(実際のPCゲームではグラフィックスオプションで設定できます)。
なぜなら、「3Dグラフィックスベースのゲーム」の場合、カメラが見えない範囲にまで、ゲーム世界自体は構築できているからです。我々人間も、現実世界において同じ場所から景色を見るにしても、ウインク状態で片目で見るときよりも、両目を開けて見たときの方が広い範囲を見られますよね。あれと同じ理屈です。
おわりに
第一回ということで、まずは「ゲームグラフィックスの入口」の話題をお届けしました。
知っている人にとっては当たり前の話ばかりだったと思いますが、今回話したような内容は、「ゲーム作り」に関心はあるけど、実際にどのようにしてゲームの映像が作られているのかを考えたこともないというような学生さんに話すと驚かれることが多いです。
最後に紹介した「超横長アスペクト比のゲーム映像」の話題は、実際に筆者がアスペクト比32:9でゲームプレイ実況配信を行っていたときに受けた「なんでゲームを作り直さずに16:9や32:9のゲーム映像が表示できるのですか?」という質問がきっかけになっています。3Dゲームグラフィックスが当たり前になりすぎていて、根本的な部分が逆に不思議に思えてしまうんだと思います。
こうした基本的なことが分かってくると、実際にゲーム制作に携わったときにも、ゲーム機やゲームエンジン、あるいはゲーム開発の各工程がどんな意味を持ち、どんな技術で成り立っているのかがイメージしやすくなり、深く理解ができるようになると思います。
というわけで、今回を踏まえて、次回からは「3Dグラフィックスベースのゲームの映像が、ゲーム機の中でどのように描画されているのか?」そんな話題をお届けしようかと思っています。
ゲーム制作者になるための3Dグラフィックス技術
3Dゲームグラフィックスの成り立ちや、そこで使われている技術について、もう少し開発者に近い目線で書いた書籍も出しています。
といっても、今回の連載記事と同様に、こちらの書籍にもプログラムコードはほとんどなくて、「アルゴリズムの解説」や「概念の理解」に焦点をあてた内容になっています。
今回の連載でもそうなのですが、誌面の要所要所に挿入されている解説イラストは、西川善司が全てラフ画を描いておりますので、今回の連載記事の図解に好感触を抱いていただけたら、この書籍も楽しめるかと思います。
3Dゲームグラフィックス表現の実例として、実在のゲーム画面を許可を取得して掲載していますので「あのゲームの映像表現は、こういう仕掛けだったのか」という種明かしも楽しめます。紙の書籍と電子書籍版がありますので、機会があれば手に取ってご覧下さい!
プログラマーを経て技術系ジャーナリストへと転身。以降、半導体、ソフトウェア、グラフィックス、ディスプレイ、自動車、人工知能、ゲーム開発などの分野に注力した取材を行っている。
関連記事
注目記事ランキング
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
連載・特集ピックアップ
西川善司が語る“ゲームの仕組み”の記事をまとめました。
Blenderを初めて使う人に向けたチュートリアル記事。モデル制作からUE5へのインポートまで幅広く解説。
アークライトの野澤 邦仁(のざわ くにひと)氏が、ボードゲームの企画から制作・出展方法まで解説。
ゲーム制作の定番ツールやイベント情報をまとめました。
CEDEC2024で行われた講演レポートをまとめました。
BitSummitで展示された作品のプレイレポートをまとめました。
ゲームメーカーズ スクランブル2024で行われた講演のアーカイブ動画・スライドをまとめました。
CEDEC2023で行われた講演レポートをまとめました。
東京ゲームショウ2023で展示された作品のプレイレポートやインタビューをまとめました。
UNREAL FEST 2023で行われた講演レポートをまとめました。
BitSummitで展示された作品のプレイレポートをまとめました。
ゲームメーカーズ スクランブルで行われた講演のアーカイブ動画・スライドをまとめました。
UNREAL FEST 2022で行われた講演レポートやインタビューをまとめました。
CEDEC2022で行われた講演レポートをまとめました。