MENU
Top
Maps
Models
Tips
Tutorials
FAQ
Entities
Dictionary
Files
Archives
Forum
Links
About
Quick Link
Counter-map
VERC
CS-Nation
HalfLife2.Net




Laggggggy Part I
軽いマップを作るには・・・ (内容を変更する場合があります)

r_speeds

r_speedsはHalf-Lifeのコマンドの一つで、CSマッピングにおいて非常に重要なものです。

簡単に言うとマップ内のBrush(オブジェクト)のポリゴン数(面の数)をカウントするもので、この数値が大きいとプレイ中のラグに繋がります。

カウントするのは主に目に見える部分で、マップ全体のポリゴン数をカウントするわけではありません。

勉強不足のせいもあって詳しい仕組みがよく理解出来ていないのですが、簡単に言うとオブジェクトを一箇所に集中して置かないようにしなくてはなりません。

CSプレイ中に、このコマンドを使用します。
画面に出る数値を見ながら、どの部分にポリゴンが集中しているのかチェックしていきます。

下に使用方法を紹介します。



プレイ中、〜ボタンでコンソールを開き、以下のコマンドを打ちます。

developer 1

r_speeds 1


最初のコマンドで開発用モードに入り、次のコマンドで実際にポリゴンをカウントします。

表示をオフにする時は、

r_speeds 0

です

バインドしたい方は以下を参考に。
下の例ですと、「K」キーを押すごとに表示/非表示を繰り返します。

alias rspeeds "rspeedson"
alias rspeedson "developer 1; wait; r_speeds 1; wait; alias rspeeds rspeedsoff"
alias rspeedsoff "developer 0; wait; r_speeds 0; wait; alias rspeeds rspeedson"


bind "k" "rspeeds"


カウント数表示は、ビデオモードによって違うのですが、ここではソフトウェアモードだけの説明に限ります(詳細は後述)。

普通はハードウェアモード(OpenGL)になっていると思うので、CSのメニューからソフトウェアモードに変更して下さい。

ゲーム時とマッピング時でモードを変えるのが面倒だ、と言う人は該当レジストリを見て下さい。

レジストリ書き出し用ファイルを作成すれば、Wクリックで変更が可能になると思います。


r_speedコマンド実行時の状態

左上の数値に注目してください。
45.4ms 263/236/ 67 poly 0 surf

それぞれの数値の意味は以下のようになります。

45.4ms:  1ゲームサイクルあたりの描画秒数。単位はミリセカンド。
263: 見えているポリゴンの数。
236: 描画されたポリゴンの数。
67: 描画されなかったポリゴンの数。

最も重要なのは263とある部分の数値で、これがr_speedsそのものです。
この数値が高い場所は構造を見直して、削除できる所は削除するようにします。



r_draworder

r_speedsがどの部分を描画しているのか、これが実は簡単な事ではありません。
上のr_speedsの例のスクリーンショットで見えている部分だけではなく、目には見えない部分も描画してしまっているのです。
CSでは薄い壁はアサルトライフルなら貫通しますし、足音なども聞こえます。
これはつまり壁の向こう側、目に見えない部分の構造もHalf-Lifeエンジンが描画する必要があるのです。

ではどこからどこまでを描画するのか、それを確認するには別のコマンドを使用します。




プレイ中、〜ボタンでコンソールを開き、以下のコマンドを打ちます。

developer 1

r_draworder 1

表示をオフにする時は、

r_draworder 0

です


バインドしたい方は以下を参考に。
下の例ですと、「L」キーを押すごとに表示/非表示を繰り返します。

alias rdraworder "rdraworderon"
alias rdraworderon "developer 1; wait; r_draworder 1; wait; alias rdraworder rdraworderoff"
alias rdraworderoff "developer 0; wait; r_draworder 0; wait; alias rdraworder rdraworderon"

bind "l" "rdraworder"

これらのコマンドを使用する際、ビデオカードのオプションを普段プレイ中に使用しているハードウェアモードからソフトウェアモードに切り替えるのは何故か。

それはこのコマンドが、ソフトウェアモードでないと働かないからです。

上述したr_speedsは少し表示内容は異なりますがハードウェアモードでもポリゴン数をカウントしますので、プレイサーバーでr_speedsを表示させて色んなマップの数値を見るのも面白いでしょう。


r_draworderコマンド実行時の状態

CheatでWall Hackというのがありますが、こんな感じでしょうか?
上の画面と比べて、壁が透けているのが分かると思います。

Half-Lifeエンジンは、実はかなり向こう側までポリゴンをカウントしているのです。

場面によって透ける範囲は違ってきますので、左上のr_speedsと併せて、どの部分を改良すべきかを検討してください。



r_drawflat

最後にこのコマンドをご紹介します。

このコマンドはHalf-Lifeエンジンが実際にポリゴンをどのように描画しているのか分かります。

複雑な構造の部分が分かる、という程度であまり必要じゃないかも知れません。

これも、ソフトウェアモードのみで実行可能なコマンドです。



プレイ中、〜ボタンでコンソールを開き、以下のコマンドを打ちます。

developer 1

r_drawflat 1


表示をオフにする時は、

r_drawflat 0

です

バインドしたい方は以下を参考に。
下の例ですと、「P」キーを押すごとに表示/非表示を繰り返します。

alias rdrawflat "rdrawflaton"
alias rdrawflaton "developer 1; wait; r_drawflat 1; wait; alias rdrawflat rdrawflatoff"
alias rdrawflatoff "developer 0; wait; r_drawflat 0; wait; alias rdrawflat rdrawflaton"


bind "p" "rdrawflat"



r_drawflatコマンド実行時の状態




最後に

もしこれらのコマンドをマルチプレイ中に使えたら、、、
ご安心下さい。
先に述べた通り、r_speedsはマルチプレイ中でもポリゴンをカウントする事は可能ですが、後の二つは開発者モードでしか使えません。

そこで開発者モードへ簡単に入る為に、BATファイルを用いる方法をご紹介します。

C:\SIERRA\Half-Life\hl.exe +map test.bsp -game cstrike -dev -console +deathmatch 1

以上の内容をテキストエディタを使って入力し、devmode.batなど、ファイル名を付けて保存し、BATファイルを実行します。
最初のHalf-Lifeインストールフォルダと、
test.bspの部分は、各自で変更してください。

また、これはHammerでコンパイルしてすぐテストプレイする場合のオプションを有効にした場合と全く同じ事をしているだけです(参考)。

コンパイルはしたくないが、マップの内容を確認したい・・そんな時に使用します。



このコンテンツは以下のリンクを参考にしました。
Half-Lifeエンジンについて、詳しく説明してありますので興味がある方はご覧下さい。
そしてもしこのコンテンツ内容に間違いがある、また追加したい事、気づいた点などがありましたら是非Forumまで投稿をお願いします。

tommy14
gamedesign.net
lacos

Copyright (C) 2003, 2004 CSEC All rights reserved.