Compile log nasıl okunur: Hammer'da VBSP, VVIS ve VRAD
Compile log nasıl okunur: Hammer log'unda VBSP, VVIS ve VRAD bölümleri, önemli mesajlar ve bir hatanın ilk gerçek nedenini bulmanın yolu.
Bir compile log'u yukarıdan aşağıya okur ve hata bildiren ilk mesajı ararsın. Log'un VBSP, VVIS ve VRAD için birer tane olmak üzere üç bölümü vardır ve sonraki mesajların çoğu yalnızca ilk sorunun sonucudur. Üç bölümü birbirinden ayırt edebildiğinde ve bir avuç tipik mesajı tanıdığında, nedeni çoğunlukla birkaç dakika içinde bulursun.
Log nerede durur ve nasıl yapılandırılmıştır
Hammer, log'u derleme sürerken derleme penceresinde gösterir; derleme araçları da onu ayrıca VMF dosyanla aynı klasöre <mapname>.log adıyla yazar. GMod'un araçları bu dosyayı yenisiyle değiştirmez, sonuna ekler; yani en yeni derleme dosyanın sonundadır. Dosyada okumaya son derlemenin başladığı yerden başla.
Oyunla gelen Hammer'ın derleme penceresinde üç aracın her biri aşağıdaki blokla başlar; Hammer++ bunun yerine Running command: ile başlayan bir satır yazar. .log dosyasında bu başlık yoktur; orada bölümleri tablodaki tipik satırlardan ayırt edersin:
** Executing...
** Command: "...\bin\vbsp.exe"
** Parameters: -game "...\garrysmod" "...\rp_example"
| Bölüm | Görevi | Başarılı çalışmada tipik satırlar |
|---|---|---|
| VBSP | VMF'den geometriyi, entity'leri ve portal'ları oluşturur | ProcessBlock_Thread, Building Faces, WriteBSP |
| VVIS | Hangi alanların nereden görünür olduğunu hesaplar | BasePortalVis, PortalFlow, Average clusters visible |
| VRAD | Lightmap'leri ve prop ışıklandırmasını hesaplar | BuildFacelights, GatherLight, FinalLightFace |
Üç aracın ayrıntılı olarak ne yaptığı VBSP, VVIS ve VRAD nedir? yazısında anlatılıyor. Log'u okumak için tek bir kural yeter: her araç bir öncekinin çıktısıyla çalışır. VBSP başarısız olursa VVIS ve VRAD'ın elinde üzerinde çalışabileceği işe yarar bir şey kalmaz.
Hata mı, uyarı mı, zararsız mı
Göze çarpan her satır bir sorun değildir. Üç seviye vardır.
- Hata: Araç durur ya da işe yarar bir çıktı yazmaz. VBSP durursa yeni bir BSP oluşmaz. O zaman Hammer çoğu kez son kopyalama adımında
The command failedder ya da oyun eski dosyayla açılır ve yaptığın değişiklikler ortada yoktur. - Uyarı: Araç çalışmaya devam eder ama sonuç bir noktada kusurludur. VRAD'ın verdiği
WARNING: Too many light styles on a facebuna bir örnektir. Harita çalışır ama bildirilen konumda ışıklandırma yanlıştır. - Zararsız: Source derleme araçlarının log'larından bilinen
Memory leak: mempool blocks left in memorygibi bir satırın haritandaki bir leak ile hiçbir ilgisi yoktur. Aracın kendisiyle ilgilidir ve görmezden gelinebilir.
En önemli mesajlar ve anlamları
| Mesaj | Bölüm | Anlamı | Ne yaparsın |
|---|---|---|---|
**** leaked **** | VBSP | Harita tam olarak kapalı değil. Bir entity'nin dışarıdaki boşlukla bağlantısı var. Bir sonraki satır entity'yi ve koordinatlarını verir. | Kırmızı çizgiyi Hammer'da Map > Load Pointfile ile yükle ve deliğe kadar takip et. |
areaportal brush doesn't touch two areas | VBSP | Bir areaportal iki alanı ayırmıyor, çünkü alanlar başka bir yerden hâlâ birbirine bağlı. Satır brush'ın numarasıyla başlar. | Çizgiyi Map > Load Pointfile ile yükle ve alanlar arasında açık kalan bağlantıyı kapat. |
material ... not found | VBSP | VMF'de kullanılan bir materyal oyunun arama yollarında bulunamadı. | Yolu ve yazımı kontrol et, içeriğin doğru oyun klasöründe durduğundan emin ol. |
MAX_MAP_... veya Too many ... | VBSP, VRAD | Bir motor limiti aşıldı, örneğin brush side ya da plane sayısı. | Geometriyi sadeleştir ve detayları modellere taşı. |
LoadPortals: couldn't read | VVIS | VBSP bir portal dosyası yazmadı. Bu neredeyse her zaman bir leak'in sonucudur. | Nedeni burada arama. VBSP bölümündeki leak'i düzelt. |
The map overflows the max portal count | VVIS | Haritada VVIS'in işleyebileceğinden fazla portal var ve araç duruyor. | Küçük parçaları func_detail yap ve dünya geometrisini sadeleştir. |
No vis information, direct lighting only | VRAD | VRAD görünürlük verisi alamadı ve yansıyan ışık olmadan hesap yapıyor. | Nedeni daha yukarıda ara; genellikle bir leak ya da atlanmış bir VVIS çalıştırmasıdır. |
En sık görülen durumların kendi rehberleri var: harita leak hatasını düzeltme ve Source Engine harita limitleri.
VRAD'ın sonundaki tablo
VRAD en sonda, BSP'nin brush'lar, plane'ler ya da entity'ler gibi tek tek veri alanlarının ne kadar dolu olduğunu gösteren bir özet yazdırır. Bir satır VERY FULL! ile işaretlenmişse bir limite yaklaşmışsın demektir. Büyük haritalarda darboğazları erkenden görmek için bu tabloya her tam derlemeden sonra bak.
Nasıl ilerlemeli: önce ilk hata
- Üç aracın da çalıştığını kontrol et. Derleme penceresinde
vbsp.exe,vvis.exevevrad.exeifadelerini,.logdosyasında ise yukarıdaki tablodaki tipik satırları ara. - Yukarıdan başlayarak
leaked,Error,WARNING,failedvenot foundifadelerini ara. - Yalnızca ilk gerçek hatayı düzelt. Ondan sonraki her şey onun sonucu olabilir.
- Yeniden derle ve log'u bir kez daha baştan oku. Kalan mesajlar ancak ilk hata ortadan kalktığında bir anlam taşır.
- Ardından uyarıları sırayla ele al. Birçok mesaj koordinat ya da bir brush numarası verir. Hammer'da View menüsü, doğrudan koordinatlara ya da bir brush numarasına atlamanı sağlar.
- Son olarak limitleri gözden kaçırmamak için VRAD tablosuna bir göz at.
Log'u değerlendirmeyi bir araca bırak
Mesajları henüz tanımıyorsan uzun log'lar yorucudur. Map Scanner bunun için bir compile log moduna sahiptir: bir Hammer, VBSP, VVIS ya da VRAD log'unu yapıştırırsın veya .txt ya da .log olarak yüklersin. Sonuç; olası temel nedenler, diğer hatalar, zincirleme hatalar ve uyarılar olarak sıralanır, her birinin yanında nedeni ve düzeltme adımları yer alır. Scanner'ın henüz tanımadığı mesajlar bildirilebilir. Scanner beta olarak işaretlenmiştir ve ücretsizdir.
Tek bir mesaja bakmak istersen hata veritabanını kullan. İçinde Hammer'dan ve derleme araçlarından gelen, incelenmiş hata mesajları nedenleri ve çözümleriyle birlikte yer alır.
Sık sorulan sorular
Pencere kapandıktan sonra compile log'u nerede bulurum?
Derleme araçları log'u VMF dosyanın yanına <mapname>.log olarak yazar. Dosyayı herhangi bir metin düzenleyiciyle açabilirsin. GMod'un araçları her yeni derlemeyi dosyanın sonuna ekler.
Her uyarıyı düzeltmem gerekir mi?
Hayır. Uyarılar derlemeyi durdurmaz ve bazılarının görünür bir etkisi yoktur. Oynanabilir alanlardaki koordinatları veren uyarıları ise düzeltmelisin, çünkü oralarda ışıklandırma ya da görünürlük çoğunlukla gözle görülür biçimde yanlıştır.
Derleme bittiği halde değişikliklerim oyunda neden yok?
Büyük ihtimalle VBSP durdu ve yeni bir BSP yazılmadı. Oyun da bu durumda eski dosyayı yükler. VBSP bölümündeki ilk hata mesajını ara.
"Memory leak: mempool blocks left in memory" ne anlama geliyor?
Bu satır Source derleme araçlarından gelir ve aracın kapanırken serbest bırakmadığı belleği anlatır. Haritadaki bir leak ile hiçbir ilgisi yoktur ve bir şey yapmana gerek yok. GMod'un güncel araçlarıyla yaptığımız test derlemelerinde bu satır hiç çıkmadı.