kidoOooOoooOOom

ゲーム開発やってます

Witcher3 WildHunt 拡張DLC「Blood and Wine」の美しい城下街がどうやって作られたのか

Witcher3 のGDC講演資料を見ることで、英語とゲーム開発とWitcher自体を楽しんで学ぶシリーズ。

今回の題材はこちら。

・講演動画

www.youtube.com

・講演資料 www.gdcvault.com

Building-Beauclair-Capital-City

この講演では、「Witcher3 WildHunt」の拡張パック「Blood and Wine」で追加されたトゥサン国と非常に美しいBeauclair城下町をいかにしてデザインして実装したかを話している。

(本当に美しい!) www.youtube.com

landmark が見えるように

まず、プロトタイプとして作った城下町のデザインでゲラルトを歩かせてみたところ、Landmarkである城が見えないことが多々あることが分かった。

f:id:gidooom:20191020102519p:plain
最初の城下町デザイン

f:id:gidooom:20191020102546p:plain
Landmarkが見えない・・・

そこで、城と城下町の全体位置を再配置しつつ、中間的なLandmarkとして高い建物も設置するようにした。

f:id:gidooom:20191020102850p:plain
変更後のデザイン

f:id:gidooom:20191020102916p:plain
Landmarkが見える

この再配置により、プレイヤーが今どのあたりを歩いているのかをLandmarkから判断しやすくなった。

情報量が多い領域の描画準備をする

main square(大広間)は、NPCや売り物が多く、イベントなども発生するため、描画負荷が高い空間領域になっている。

f:id:gidooom:20191020103127p:plain
広場

その情報量が多い広場がひらかれた場所にあると、遠景における描画負荷も高くなるためvisual blockerとして導線となる箇所に視界を狭くするトンネル的な道を用意し、近づかないと見えないように工夫をしている。

f:id:gidooom:20191020103205p:plain
広場周辺を上から

上の画像で、黄色の箇所が広場で、緑の箇所がvisual blockerとなる通路。

こうすることで、visual blocker となっている道を歩いている間に広場の描画準備もできてリッチな表現が実現しやすくなる。

f:id:gidooom:20191020103316p:plain

また、真っ直ぐな道にするのではなく、あえて少し曲がる必要がある道にすることで、視界を段階的に広げて描画準備の時間を稼ぐ工夫もしている。

f:id:gidooom:20191020103417p:plain

f:id:gidooom:20191020103442p:plain

プロトタイプを通して分かる利便性のある道作り

実際にテストプレイをしながらショートカットとなる道や便利な道作りをした結果、最初の計画していた道とは大きく異なるデザインになった。

f:id:gidooom:20191020103537p:plain
道のデザイン、左がold, 右がnew

テストプレイを通して改良を続けていくことが大切なことが分かる。

街の世界観を意識したアセットのグループ分け

今回の城下町では、住む人々やゲームの世界観という背景を考慮して、大きく4つのグループに分けて塊を用意し、それぞれで建築物のアセットの雰囲気を変えるようにしている。

f:id:gidooom:20191020103623p:plain

アセットの予算

もちろんゲームなので、アセットに回せるリソースのbudgetは決まっている。今回の背景アセットに回せるリソースは下記の通りだったとのこと。

f:id:gidooom:20191020103919p:plain

QAチームに、この制限をチェックしてもらっているが、やはり高品質でバラエティ豊かな環境を作りたいので制限を超えてしまうアセットは多かった。

f:id:gidooom:20191020103940p:plain

Rich Houseの工夫

上流階級が住んでそうな綺麗なこの家の外観の使用リソースがこんな感じ。

f:id:gidooom:20191020104115p:plain

2階建ての内観の使用リソースがこんな感じ。

f:id:gidooom:20191020104133p:plain

f:id:gidooom:20191020104151p:plain

この建物だけで制限をかなりオーバーしてしまっている・・・。

f:id:gidooom:20191020104214p:plain

解決するために何をしたか?

ここで登場してくるのが、前にWitcher GDC記事でも書いた「Streaming」や「LOD」による解決。

kidooom.hatenadiary.jp

f:id:gidooom:20191020104242p:plain

f:id:gidooom:20191020104305p:plain

家の壁紙のために使うテクスチャーだけでも結構なメモリを消費しているため、

f:id:gidooom:20191020104330p:plain

テクスチャを使わずに、shaderのパラメータ変更だけで様々なバリエーションの壁を表現できるようにした。

f:id:gidooom:20191020104349p:plain

f:id:gidooom:20191020104417p:plain

f:id:gidooom:20191020104442p:plain

これは、アートチームだけでは悩んでいたところを、techチームに相談して協力することで実現できたとのこと。

まとめ

f:id:gidooom:20191020104533p:plain

f:id:gidooom:20191020104555p:plain

後半のテクニカルな解決部分は、今まで勉強してきた項目の組み合わせなので理解はできた(現場で実践はできてないけれど・・・)。

前半の城下町デザインのプロセスが、自分にとって新鮮でとても学びになった。

ただ単に最初に地図を作ってそれを実現しているのではなく、プロトタイプを作ってみて、

  • LandMarkが常に見えるかどうか
  • プレイヤーが移動するのに便利な導線になっているどうか
  • 描画のためのsteaming時間を稼げているかどうか

などを考慮して、改良を重ねられているのだと知れて良かった。

そしてまたWitcher3プレイ欲も湧いてきてしまった。時間が足りない・・・。