2024年8月22日,ゲーム開発者向けカンファレンス「CEDEC 2024」にて,セッション「『ゼルダの伝説 ティアーズ オブ ザ キングダム』の世界をつなぐ技術 ~空、地上、地底、そして制作もシームレスに~」が行われた。
このセッションでは,「ゼルダの伝説 ティアーズ オブ ザ キングダム」におけるフィールド,およびその制作過程をいかにしてシームレスにつないだのか,その手法が紹介された。スピーカーは,以下の3名である。
セッションの冒頭,「ゼルダの伝説 ティアーズ オブ ザ キングダム」(以下,TotK)の開発に採用した技術を紹介するための前提として,前作「ゼルダの伝説 ブレス オブ ザ ワイルド」(以下,BotW)の開発について説明が行われた。
それによると,BotWはシームレスで広大な世界の表現と自由度の高いゲームプレイを実現するべく,最初に必要な技術を選定したとのこと。たとえば「広大な世界を表現するため」にポリゴン性能的に有利なデファードレンダリングが,「自由度の高いアクションを実現するため」にどんな状況でも破綻しにくい物理計算を行える物理エンジンが採用された。
そのように,実現したいゲーム要素から逆算し,技術を選定していく過程で大きな課題となったのが,「広大な世界」と「シームレスな移動」だった。前者に関しては,BotWの開発初期に行われたブレインストーミングにて,チームが着目していたのが「平面としての広大な世界」ということが判明したため,フィールドの仕組みを考えるうえでは世界を平面,つまり二次元として捉えることにした。
また,その考え方はシームレスな移動の設計をシンプルにすることにもつながったという。結果,BotWのフィールドは「遠くのオブジェクトを粗く,近くのオブジェクトを精細に描く」「重要なオブジェクトは遠い位置でも出現させ,細かいオブジェクトは近づかないと現れない」といったLOD(Level of Detail)を,プレイヤーの二次元の移動に合わせてデータを読み込んでいく手法で表現することにした。
そうした実現したいことのための技術の選定は,同時に「できないこと」も生み出す。フィールドにおける二次元のデータロードの仕組みを採用したことによって,何ができなくなったのか。それは「三次元の立体構造」である。
すなわち,BotWは壁を登ったりパラセールで滑空したりとプレイフィールは3Dアクションゲームだが,ゲームデザインや実装に注目すれば,二次元という制約のもとで開発されたゲームだったと説明されている。
それに対してTotKは,開発初期のブレストの段階から地面,空,地底という縦方向の広がりから考え始めたとのこと。そこには,何よりもBotWではできなかったことにチャレンジしたいという思いがあったそうだ。
また,BotWはWii Uのスペックを踏まえて開発しなければならなかったが,TotKはSwitch専用なのでハード的な制約も少なくなる。堂田氏は「BotWで実現した二次元の処理を,いかに三次元に拡張するか。それがTotKの具体的な技術課題だった」と振り返った。
TotKの世界が三次元となり,地上のほかに空島や洞窟,地底が存在することになった結果,データの読み込みやLODに関しても三次元で考え直す必要が生じた。
そのためにまずフォーカスしたのが,地面だけでなく壁や天井もある洞窟だったという。三次元空間である洞窟をデータの読み込みやLODを可能にしたうえで,シームレスに描画するためにチームは新たな地形システムである「洞窟システム」を開発した。
洞窟システムを使えば,立体的で大きな空間をシームレスに表現できるという手応えを得たチームは大きな洞窟を作成。それを地下に配置したところ,地上からシームレスにつながる巨大なフィールドを実現できたそうだ。その広い空間でどんな遊びができるか検証していくうちに,暗闇の探索や地底にしかない強敵とのバトル,乗物同士のバトルといったアイデアが生まれていった。
そうして検証を重ねていく中で,地底に1つの巨大なフィールドがあると,そうした遊びを作りやすいという話が出てきたそうだ。さらに地底と地上に相関関係があれば,発見と遊びのサイクルをより膨らませられるという話になり,実際に地上と地底を交互に探索することで互いのヒントを得られるという遊びが生まれている。
TotKの世界が三次元へ拡張されていくのと並行して,システム面ではオブジェクトの読み込みをBotWより柔軟に行えるようにロードシステムを作り直した。その1つがゲームフラグに応じたオブジェクトの入れ替えを柔軟に行える仕組みで,ゲームの進行に応じて村の地形が大きく変わるところで使われている。
また,BotWでは大規模ダンジョンに入場する際にロード画面を挟んだが,TotKではあらかじめ独立した領域にデータを読み込んでおけるような汎用処理を用意し,シームレスな入場を実現したという。
その一方で,ロードシステムのアルゴリズム自体はBotWのものをそのまま使っていたため,地底や空をどうやって読み込むかについては新たなチャレンジとなった。たとえば地底の場合,地上とはかなり離れた深いところにあるため,同時に目に入る機会はない。
そのため,地上にいるときは地上だけ,地底にいるときは地底だけを読み込んだほうが密度が高く,広い世界を表現できると考え,まずは一定の深さに到達したとき,地上をアンロードし,地底をロードすることにした。
ところが最初の実装では,アンロードとロードが間に合わず,プレイヤーが地底へと落下していく途中で画面が一時的に止まってしまう。地底は地上とつながっており,地上から直接向かうことを伝えるためにはこれでも十分だが,ゲームという製品としては不十分であるため,シームレスな落下を実現するためにアンロードとロードを間に合わせる必要が生じた。
そこでチームは,4つの手法を用いて改善に取り組んだ。1つめは「プロファイラーによる可視化と処理の並び替え」で,ボトルネックとなる時間のかかる処理を,すぐに必要な部分とそうでない部分に分割して,前者をロードを行っていない隙間時間に回し,後者を後回しにするなどの並び替えを行った。
そうした並び替えによるボトルネックの解消をしていくうちに,ファイルのロード自体が間に合わなくなりがちなことが判明したため,「ロードすべきファイルの数を減らす」ことを考えたという。
二次元ベースのロードシステムでは,オブジェクトごとに設定された表示距離に応じて読み込みが行われるが,崖の下など実際には見えないものまで読み込まれている。そこでプレイヤーが到達しうる複数の場所に撮影点を設定し,それらから見えていないオブジェクトを判定したデータを用いて,ロードすべきファイルの数を減らしていった。
また「ロードすべきファイルのサイズを減らす」ことも行った。その一例として,モデルに用いられているテクスチャの解像度が適切であるかどうかを判定し,解像度を下げても問題ない場合には自動で下げるようにしたことが挙げられた。
しかし,以上の手法3つを駆使しても,まだロードが間に合わないケースがあることが判明したため,今度は「ロードの開始を早める」ことに取り組んだ。具体的には,まず地底に入るための穴のすべてにおいて,地底に入ったときに必要となるファイルをリスト化する。そしてプレイヤーがその穴に近づいたら,それらのファイルをメモリが許す限り読み込んでおくことにした。
こうした取り組みの結果,製品版では地底へのシームレスな移動が実現したというわけである。
それでは空世界の読み込みはどうだったかというと,試作配置された当時の空島はゲームデザイナーが試行錯誤している段階だったため,「積極的放置作戦」を採ったそうだ。これは,仮に空島の仕様が固まりきる前にロードの実装をしてしまうと,その実装を適用できないアイデアを空島の仕様に盛り込めなくなるからである。
そこで,BotWのロードシステムを使ってゲームデザイナーが制約なく空島を試し,本当に必要なものを絞り込める環境を用意した。その結果,空島はオブジェクトやギミックが多く配置され,メインストーリーにも関わる大きなものと,空の移動の経由地になる小さめのもの,どうやってたどり着くか模索する必要があるものといったように役割が整理されたという。
その役割を踏まえて,プレイヤーの行動に応じて大きな空島は1つだけ,小さな空島であれば複数ロードしてメモリに置いておき,またロードしなかった空島は配置情報から事前に生成したLODのローモデルを表示するような実装を行ったとのこと。このように単位を定義し,事前に割り当てを決めておくことで,空島をアンロードして別の空島に入れ替える処理を高速化することができたそうだ。
セッションの終盤では,「世界をシームレスにつなぐために必要だったこと」や「制作をシームレスにするためのワークフローの改善」などにも話題が及んだ。
最後に堂田氏は,TotKをプレイしている中で世界を俯瞰しているシーンもあれば,目の前の対象だけに集中しているシーンもあり,その切り替えを繰り返すことにより,プレイヤーの頭の中でゲームの世界がつながっていくと述べた。
ゲーム開発においても,制作のサイクルという長い時間単位で考えることもあれば,1000分の1秒というごく短い時間単位の最適化を考えることもあったり,あるいはチーム全体のイテレーションを考えることもあれば,ポリゴン単位にフォーカスすることもあったりすることに言及し,「マクロな視点とミクロな視点を行ったり来たりすることがTotKのエンジニアリングに求められたことであり,シームレスで広大なフィールドの実装のために必要なことだったのではないか」とまとめていた。
このセッションでは,「ゼルダの伝説 ティアーズ オブ ザ キングダム」におけるフィールド,およびその制作過程をいかにしてシームレスにつないだのか,その手法が紹介された。スピーカーは,以下の3名である。
- 任天堂 企画制作部 テクニカルディレクター 堂田卓宏氏
- 任天堂 企画制作部 プログラミングディレクター 奥田貴洋氏
- 任天堂 企画制作部 地形プログラミング担当 斎藤智久氏
「ゼルダの伝説 ティアーズ オブ ザ キングダム」公式サイト
「ゼルダの伝説 ブレス オブ ザ ワイルド」は二次元だった
セッションの冒頭,「ゼルダの伝説 ティアーズ オブ ザ キングダム」(以下,TotK)の開発に採用した技術を紹介するための前提として,前作「ゼルダの伝説 ブレス オブ ザ ワイルド」(以下,BotW)の開発について説明が行われた。
それによると,BotWはシームレスで広大な世界の表現と自由度の高いゲームプレイを実現するべく,最初に必要な技術を選定したとのこと。たとえば「広大な世界を表現するため」にポリゴン性能的に有利なデファードレンダリングが,「自由度の高いアクションを実現するため」にどんな状況でも破綻しにくい物理計算を行える物理エンジンが採用された。
そのように,実現したいゲーム要素から逆算し,技術を選定していく過程で大きな課題となったのが,「広大な世界」と「シームレスな移動」だった。前者に関しては,BotWの開発初期に行われたブレインストーミングにて,チームが着目していたのが「平面としての広大な世界」ということが判明したため,フィールドの仕組みを考えるうえでは世界を平面,つまり二次元として捉えることにした。
また,その考え方はシームレスな移動の設計をシンプルにすることにもつながったという。結果,BotWのフィールドは「遠くのオブジェクトを粗く,近くのオブジェクトを精細に描く」「重要なオブジェクトは遠い位置でも出現させ,細かいオブジェクトは近づかないと現れない」といったLOD(Level of Detail)を,プレイヤーの二次元の移動に合わせてデータを読み込んでいく手法で表現することにした。
そうした実現したいことのための技術の選定は,同時に「できないこと」も生み出す。フィールドにおける二次元のデータロードの仕組みを採用したことによって,何ができなくなったのか。それは「三次元の立体構造」である。
すなわち,BotWは壁を登ったりパラセールで滑空したりとプレイフィールは3Dアクションゲームだが,ゲームデザインや実装に注目すれば,二次元という制約のもとで開発されたゲームだったと説明されている。
それに対してTotKは,開発初期のブレストの段階から地面,空,地底という縦方向の広がりから考え始めたとのこと。そこには,何よりもBotWではできなかったことにチャレンジしたいという思いがあったそうだ。
また,BotWはWii Uのスペックを踏まえて開発しなければならなかったが,TotKはSwitch専用なのでハード的な制約も少なくなる。堂田氏は「BotWで実現した二次元の処理を,いかに三次元に拡張するか。それがTotKの具体的な技術課題だった」と振り返った。
三次元のシームレスな表現を実現する「洞窟システム」
TotKの世界が三次元となり,地上のほかに空島や洞窟,地底が存在することになった結果,データの読み込みやLODに関しても三次元で考え直す必要が生じた。
そのためにまずフォーカスしたのが,地面だけでなく壁や天井もある洞窟だったという。三次元空間である洞窟をデータの読み込みやLODを可能にしたうえで,シームレスに描画するためにチームは新たな地形システムである「洞窟システム」を開発した。
洞窟システムを使えば,立体的で大きな空間をシームレスに表現できるという手応えを得たチームは大きな洞窟を作成。それを地下に配置したところ,地上からシームレスにつながる巨大なフィールドを実現できたそうだ。その広い空間でどんな遊びができるか検証していくうちに,暗闇の探索や地底にしかない強敵とのバトル,乗物同士のバトルといったアイデアが生まれていった。
そうして検証を重ねていく中で,地底に1つの巨大なフィールドがあると,そうした遊びを作りやすいという話が出てきたそうだ。さらに地底と地上に相関関係があれば,発見と遊びのサイクルをより膨らませられるという話になり,実際に地上と地底を交互に探索することで互いのヒントを得られるという遊びが生まれている。
フィールドをシームレスにつなげるために作り直したロードシステム
TotKの世界が三次元へ拡張されていくのと並行して,システム面ではオブジェクトの読み込みをBotWより柔軟に行えるようにロードシステムを作り直した。その1つがゲームフラグに応じたオブジェクトの入れ替えを柔軟に行える仕組みで,ゲームの進行に応じて村の地形が大きく変わるところで使われている。
また,BotWでは大規模ダンジョンに入場する際にロード画面を挟んだが,TotKではあらかじめ独立した領域にデータを読み込んでおけるような汎用処理を用意し,シームレスな入場を実現したという。
その一方で,ロードシステムのアルゴリズム自体はBotWのものをそのまま使っていたため,地底や空をどうやって読み込むかについては新たなチャレンジとなった。たとえば地底の場合,地上とはかなり離れた深いところにあるため,同時に目に入る機会はない。
そのため,地上にいるときは地上だけ,地底にいるときは地底だけを読み込んだほうが密度が高く,広い世界を表現できると考え,まずは一定の深さに到達したとき,地上をアンロードし,地底をロードすることにした。
ところが最初の実装では,アンロードとロードが間に合わず,プレイヤーが地底へと落下していく途中で画面が一時的に止まってしまう。地底は地上とつながっており,地上から直接向かうことを伝えるためにはこれでも十分だが,ゲームという製品としては不十分であるため,シームレスな落下を実現するためにアンロードとロードを間に合わせる必要が生じた。
そこでチームは,4つの手法を用いて改善に取り組んだ。1つめは「プロファイラーによる可視化と処理の並び替え」で,ボトルネックとなる時間のかかる処理を,すぐに必要な部分とそうでない部分に分割して,前者をロードを行っていない隙間時間に回し,後者を後回しにするなどの並び替えを行った。
そうした並び替えによるボトルネックの解消をしていくうちに,ファイルのロード自体が間に合わなくなりがちなことが判明したため,「ロードすべきファイルの数を減らす」ことを考えたという。
二次元ベースのロードシステムでは,オブジェクトごとに設定された表示距離に応じて読み込みが行われるが,崖の下など実際には見えないものまで読み込まれている。そこでプレイヤーが到達しうる複数の場所に撮影点を設定し,それらから見えていないオブジェクトを判定したデータを用いて,ロードすべきファイルの数を減らしていった。
また「ロードすべきファイルのサイズを減らす」ことも行った。その一例として,モデルに用いられているテクスチャの解像度が適切であるかどうかを判定し,解像度を下げても問題ない場合には自動で下げるようにしたことが挙げられた。
しかし,以上の手法3つを駆使しても,まだロードが間に合わないケースがあることが判明したため,今度は「ロードの開始を早める」ことに取り組んだ。具体的には,まず地底に入るための穴のすべてにおいて,地底に入ったときに必要となるファイルをリスト化する。そしてプレイヤーがその穴に近づいたら,それらのファイルをメモリが許す限り読み込んでおくことにした。
こうした取り組みの結果,製品版では地底へのシームレスな移動が実現したというわけである。
それでは空世界の読み込みはどうだったかというと,試作配置された当時の空島はゲームデザイナーが試行錯誤している段階だったため,「積極的放置作戦」を採ったそうだ。これは,仮に空島の仕様が固まりきる前にロードの実装をしてしまうと,その実装を適用できないアイデアを空島の仕様に盛り込めなくなるからである。
そこで,BotWのロードシステムを使ってゲームデザイナーが制約なく空島を試し,本当に必要なものを絞り込める環境を用意した。その結果,空島はオブジェクトやギミックが多く配置され,メインストーリーにも関わる大きなものと,空の移動の経由地になる小さめのもの,どうやってたどり着くか模索する必要があるものといったように役割が整理されたという。
その役割を踏まえて,プレイヤーの行動に応じて大きな空島は1つだけ,小さな空島であれば複数ロードしてメモリに置いておき,またロードしなかった空島は配置情報から事前に生成したLODのローモデルを表示するような実装を行ったとのこと。このように単位を定義し,事前に割り当てを決めておくことで,空島をアンロードして別の空島に入れ替える処理を高速化することができたそうだ。
セッションの終盤では,「世界をシームレスにつなぐために必要だったこと」や「制作をシームレスにするためのワークフローの改善」などにも話題が及んだ。
最後に堂田氏は,TotKをプレイしている中で世界を俯瞰しているシーンもあれば,目の前の対象だけに集中しているシーンもあり,その切り替えを繰り返すことにより,プレイヤーの頭の中でゲームの世界がつながっていくと述べた。
ゲーム開発においても,制作のサイクルという長い時間単位で考えることもあれば,1000分の1秒というごく短い時間単位の最適化を考えることもあったり,あるいはチーム全体のイテレーションを考えることもあれば,ポリゴン単位にフォーカスすることもあったりすることに言及し,「マクロな視点とミクロな視点を行ったり来たりすることがTotKのエンジニアリングに求められたことであり,シームレスで広大なフィールドの実装のために必要なことだったのではないか」とまとめていた。
0 コメント:
コメントを投稿