「ドラゴンクエストX TV 秋の大文化祭10時間スペシャル」に青山TDが出演し、「ポリゴン」のお話をしました。
ドラクエ10の画面は「ポリゴン」と呼ばれる「(三次元空間上の)三角形」の組み合わせで表現されています。実際にお話しされた順番と順序が逆になりますが、ドラクエ10の画面は数万~数十万のポリゴンの組み合わせで表現されているそうです(人数などによっても変わる)。
以前綺麗になった「手」の場合も・・・
※結構貴重な画像らしい
以前は指を「絵」で表現していたものを、指1本1本がちゃんと分かれているようにするために、ポリゴンで指を表現するようになりました。1つの手を170個のポリゴンで表現。
全種族、男女、大人/子供、特殊な体型のNPC、ポーズも?など、数千種類のポリゴンを増やしたと言ってた気がします。それは大変すぎる。
三次元の空間上のポリゴン(三角形)を画面上に表現するには・・・
ゲーム空間(三次元)のポリゴンとプレーヤーの「目」(実際にはどちらも仮想的なものだけど)を直線で結んで、ポリゴンの三角形の頂点の画面上の位置(交点)を求めます。
交点を求めるために方程式を解きます。1つのポリゴンにつき3つの交点を求めます。そうやって、やっと1つのポリゴンを画面上に描くことができます。数万~数十万のポリゴンについて方程式を解いて描画するとドラクエ10の画面を1枚描くことができます。
・・・というお話だったのさ。おしまい。
これは本当に基本的な原理の話で、私が理系だったからなのかスッと分かりましたが、実際に方程式を作って解くとなると結構面倒くさそうです。C言語だったら、三次元の座標(目の位置と対象の位置)を入力したら画面上の座標が出力される関数が必要です。1画面のために数万~数十万回関数呼び出し、それを1秒間に30回とか60回だなんて、コンピュータは速いですね。
※Googleで「ポリゴン 数学」で検索すると色んな式が見つかります。
そして、青山TDは本を執筆中だそうです。
「ドラゴンクエストXを支える技術」(仮題・発売日未定)
来年くらいに出版されるかも知れません。
ドラクエ10の画面はポリゴンだけではなく、例えばWindows版で太陽の方を見るとレンズの反射による「ゴースト」が画面に描画されます。ポリゴンだけではそれはできるようには思えませんよね。
夜のドルバイクなどで光が尾を引く効果や、ヘッドライトがこっちを向くと一瞬まぶしいと思うくらいのリアルな感じ・・・「光」の表現については色々技術がありそうです(本のネタになりそう)。以前の生放送で、光があふれる(回り込む)表現について仰っていましたし。