マップ作成指針

さて、新しいマップの細かいところを作りこむ前に、これまでに得たいい加減な知見を適当に羅列してみよう。


全般

  • ダイナミックライティングが正常に機能するとは限らないケースがいくつかある。
    • func_illusionaryがダイナミックライトを受けると、照らされたはずの部分が照らされなかったり、光が当たっているはずのところに影が落ちる。
    • func_physbox、func_breakable、func_door等々、動かせるbrush全般、同上。
    • player model が別の geometry model(ドアとか)と重なってしまった場合、そのmodelが player model の影を受け、かつそのmodelがbrushに一部分でも重なっていると、光源の位置に関係なく player model の影がそのbrushに落ちる。
  • displacementの場合、無理な形にするとコンパイルの際に vertex transform のエラーがでて止まるが、通常のbrushでは、特にbumpmapやspecularに悪影響がでるような変形があっても何の警告も出ずにコンパイルが終了し、ゲーム内での映像表現が破綻する。
  • 暗いマップは嫌われる。人によって使っているディスプレーの性能に差があるので、暗いディスプレーでもきちんと見える明るさにし、相対的な明度をコントロールすることで暗い所に目が慣れた状態での映像を再現する。この際、同じものでも人種によって多少見え方が違うことをある程度意識する。fogや dust smoke 等のeffectsは、現実世界で見られるものよりも大げさにしておかないと効果を感じない人が多い。
  • cubemapは、プレーヤから一番近いものが使用される。このとき、visibilityをブロックするオブジェクトが間にあっても直線距離が近いものになる。
  • cubemapで面をpickした場合、その面の合計が大きすぎると対応する cubemap texture に問題が生じ、最悪の場合マップ内のすべてのcubemapが機能しなくなる。
  • 公式マテリアルには多分にミスが含まれていて適宜手直ししたものを用意する必要がある。
  • 消費するリソースは、displacement < model geometry < brush geometry。
  • プレーヤーの年齢層や空間認識能力をはじめとする理解力に配慮する。
  • ラウンド開始から10秒以内に銃撃が始まるようにし、2分程度で決着がつくようにする。
  • 〜〜されたら一巻の終わりで対処できなくなり諦めるしかない、という構造はCS:Sでは歓迎されない。CS:Sは一般に射殺ゲーだと思われていて戦略に楽しみを見出す人は少数派で、世界的な大会で見られるような実質的陣取りゲーとして認識している人は極々少数派。


de_mapの場合

  • bomb sites は2個。
  • 各bomb site には、進入経路を3つ作る。
  • bomb site 間には2つか3つの連絡通路を作る。
  • マップ内のどこにいても、爆弾を仕掛けられた場合少なくともそのbomb siteまではたどりつける距離にしておく。このとき、仕掛けてから爆発までの時間はサーバで個別に設定できることにも留意する。


cs_mapの場合

  • 人質を連れてレスキューゾーンに行く過程で、側面から狙われる/狙える場所を複数箇所作る。
等々。


ほかにもマップを作るうえで押さえておいたほうがいいことがいくつかある。
自分が作った以外のカスタムマップを見て感じることは、ライティング。舞台になっている場所ははっきりいってしまえばゲームの中だけのものであって、その造形は意外と許容範囲が広いものだが、日常生活で光を感じたことがない人はいないわけで、無意識ながらも結構シビアに感じ取っている。光の色や大気中での拡散をうまく再現するだけで時間やマップの立地や地形を感じさせリアリティを増すことができる。
もっとも、色を正確に再現しようとするならば一定以上の性能を持ったディスプレーが必要になるわけで、特に安価な液晶ディスプレーではどうしても黄色っぽく色を作ってしまうのは仕方のないところだとは思うが。
これと似たような話になるが、"雰囲気"がいいマップを作るにはどうすれば良いか。
"雰囲気"が雰囲気と呼ばれるのは、その構成要素を個別に認識できない、ということが理由にある。違う言い方をすると、誰でもがすぐ気付いてそれを簡単に言葉で説明できるような方向に力を注ぎすぎると雰囲気のないマップ、すなわち以前に書いた prop drop map になってしまう。


マニアックすぎるか。