あいぼりー日記

Jimbaのあれこれをゆるくつづった不定期日記帳。

路線データの質を高める工夫 ①視覚的なクオリティを向上させる

※ある程度データを作れる方向けの解説です。線路の引き方などの初歩的な部分はその他のブログやサイトをご参照ください

 

【追記:2018年5月30日】

当記事について、知人などから「富士急行線のデータへの批判とも取れるのではないか」という意見をいただきました。私としてはそのような意図を持って書いたつもりは毛頭ございませんが、他人のデータをこのような形で使用することは許されないことと深く反省しております。

当該箇所の画像についてはすべて当方で作成したデータのものに差し替え済みです。

今後もこのような事態が起こらないよう、他の方の制作されたデータの扱いについては細心の注意を払っていく所存です。

富士急行線データの作成者であるroot5様へは心よりお詫び申し上げます。

 

 

 最近は木々もすっかり青くなり、いよいよ夏という雰囲気になってきました。まだまだ気温が高すぎず、出かけやすいこの時期は路線データ制作にはぴったりの時期です。車両製作の方は徐々に空調が入り始めるようになってきて、オフシーズン入りといったところでしょうか。

 さて、そんな路線データですが、クオリティを高めるためにいくつか気をつけるべきポイントというものがあります。単純に解像度の高いテクスチャを使用し、頂点数の多い精密なモデルを配置していればリアルに見えるというものではないのです。

今回は、様々な面におけるクオリティ向上策のうち、主に視覚的観点に絞って紹介していきます。

①適切なサイズのテクスチャを使用し、解像度を揃える

 これが一番ありがちなパターンかと思います。せっかく大きく作ったテクスチャを小さくするのに抵抗がある人も多いかと思います。確かに大きなテクスチャは近づいてもディティールが崩れず、製作中にズームしたときの満足度は高いでしょう。

 しかし、運転するとなると話は別です。BVEにはミップマップ機能(オブジェクトとの距離に応じてテクスチャの解像度を切り替えるシステム。詳細は省きます)が搭載されていないため、遠くから見たときに細かい部分がちらつきを起こします。

 オブジェクト全体が運転台から自然に見える位置でサイズを少しずつ小さくしてみて、描画の崩れないぎりぎり辺りがちょうどいいと言えるでしょう。電◯でGO!!のような高解像度路線が作りたい気持ちもわかりますが、本体の機能上厳しいと思われます。

f:id:Jimba:20180530013242p:plain

SSでは緑森急行さまの西武新101系を使用させていただきました

 例えばこの画像の場合、上下では道床の解像度が4倍も違いますが遠目に見る分には大した差は見られません。つまり、下の画像分以上に解像度を高めたとしても、視覚的効果は薄いということです。

 そして、解像度を全体で揃えることも大切です。すれ違う車両だけ妙に輪郭がはっきりとしている、あの駅の看板だけ妙に解像度が低い…などなど、人の目はちょっとした違和感にとても敏感です。素材集めの難しい場所などある程度はどうしようもない面もありますが、線路周りやすれ違う車両、駅のホームなどプレイヤーの目が行きやすい場所はできるだけ揃えるようにしましょう。

 

②透過不良をできるだけなくす

 これも非常によく見られる症状です。ある種3Dゲームの宿命のような現象です。

f:id:Jimba:20180530012608p:plain

 透過PNGを使用した床下の縁が半透明板の影オブジェクトと透過不良を起こし、下の地面が透けていることがわかります。

 3Dゲームは基本的に奥から手前へと描画されるものなのですが、何らかの原因で手前が描画されたのちに奥が描画されるときに起こるのがこの透過不良です。原因は様々ですが、基本的にこの原理は変わりません。

 非常によく見られる現象故に解決法も多様かつ複雑で、この項だけで一本の記事になるレベルなので第二回以降で解説します。

 

③オブジェクトの重なりを解消する

 分岐器を通過するとき、レールや道床が妙にちらついて見えることがあると思います。他にも曲線を描くホームや、地面などでも見られる現象です。これは面同士がぴったり重なっているときに起こります。すなわち、同じ座標に2つの面が存在しているために見る角度によってどちらが先に描画されるかが変わり、ちらつきが発生するのです。

f:id:Jimba:20180530011621g:plain

微妙に重なった道床部分がちらつきを起こしていることがわかります

 座標が少しでもずれていればこの問題は発生しません。レールや地面、道床やホームなどRepeater構文で後ろのオブジェクトと重なりうるストラクチャは後ろ側を少しだけ(1cm程度で十分です)高くすると良いでしょう。縦向きのストラクチャであれば視界の中心側に少し寄せる形になります。(右側の壁は後ろをやや左に寄せ、左側はその逆)

f:id:Jimba:20180526195749p:plain

やや誇張した図ですが概念としてはこのようなものです

 

④細かい立体化は大切。ただし程々に

 筆者は3Dが非常に不得手です。Railsimのようなどの方向からも見られる精密なモデルを作ることはできません。しかし、そのような人でもBVEでは十二分に戦えます。視点が単一なため、板ポリゴンにテクスチャを貼っただけでも立体感を得ることができるのです。

 ところが、最近は少し状況が変わってきました。PC性能の急速な向上により多少頂点数を増やしたところでゲームのパフォーマンスに影響が出にくくなったのです。それと同時に、BVEにも立体至上主義の波が押し寄せてきつつあります。

 解像度が上がったことで細かい立体感というものを感じやすくなったため、ちょっとしたところを立体化するとリアルさが増すようになりました。

f:id:Jimba:20180527125158p:plain

製作中のとある路線より。ロッカーが目立ちにくいように立体化されているのがわかるでしょうか?

 しかし、どんなものでも立体にすればいいというものでもありません。草や木、複雑な建造物などを周囲に溶け込むように立体化させるのは難しいです。そのような場合には、古くから使われてきた板ポリゴンが有用でしょう。少なくとも、不自然に立体化されたモデルよりよほど自然です。地面との境界などが気になるときは、草や木でごまかしてあげましょう。

 このあたりの表現に関しては、飯田保線区さんが非常に卓越した技術を持っており、細かい表現法に関してはそちらのブログやツイートが大変参考になります。

 

 まだまだ書ききれていないことがたくさんありますが、今回はここで一旦止めておきます。次回はメモリの節約を中心にした解説になるかと思います。透過不良の改善については第三回以降になります。