Oluşturmak, dışa aktarmak, paketlemek, test etmek, optimize etmek ve göndermek için adım adım bir kılavuz FiveM MLOs Blender, Sollumz, CodeWalker ve OpenIV ile sorun giderme, QA ve performans bütçeleri.
Özetle: Araçları (Blender + Sollumz, CodeWalker, OpenIV) kuracak, uygun topoloji ve texel yoğunluğuna sahip bir iç mekan modelleyecek, çarpışmalar (YBN), portallar/odalar/kapatma (YTYP) oluşturacak, Sollumz ile dışa aktaracak, bir kaynak paketleyecek ve manifestleri düzenleyeceksiniz. fxmanifest.lua, oyunda doğrulayın ve Resmon'u kullanarak performans bütçelerini karşılayın.
Bu kılavuz kimler için
FiveM Server Owners and Asset Creators
Başlamadan önce: araçlar ve indirmeler
Gerekli
- Karıştırıcı (3.x veya daha yenisi): https://www.blender.org/download/
- Sollumz (RDR2/GTAV formatları için Blender eklentisi): https://github.com/Skylumz/Sollumz
- Kod Yürüteci (harita düzenleyici / YTYP / portal araçları): GTAForum başlığı → https://github.com/dexyfex/CodeWalker
- AçıkIV (varlık keşfi, doku yolları):
- FiveM belgeleri (kaynak manifesti, akış): https://docs.fivem.net/
Olması iyi olur
- Görsel Stüdyo Kodu manifestleri düzenlemek için.
- Resim düzenleyici (Photoshop, Affinity, GIMP) dokular için.
Lisanslama notu: Rockstar/Cfx politikalarına ve üçüncü taraf lisanslarına saygı gösterin. Ticari oyun varlıklarını izin verilenden fazla yeniden dağıtmayın.
Hızlı Başlangıç (10 dakikalık genel bakış)
- Düzenlemek Blender + Sollumz ve eklentiyi etkinleştirin.
- Metre cinsinden yeni bir sahne oluşturun (1 Blender birimi = 1 metre). Gerekirse referans ağlarını içe aktarın.
- İç mekanınızı modüler olarak modelleyin; texel yoğunluğunu tutarlı tutun; görülmeyen yüzlerden kaçının.
- Yaratmak çarpışma ağları (basit ilkelere) ve bunları YBN dışa aktarma için işaretleyin.
- İçinde Kod Yürüteci, tanımla odalar/portallar/engelleyiciler ve oluştur YTYP girişler.
- ile dışa aktarın Sollumz → YDR/YDD/YBN/YTYP uygun olduğunda.
- Bir tane oluşturun kaynak klasörü ile
streamve birfxmanifest.lua. - Kaynak ekle
server.cfg, sunucuyu başlat, oyun içinde doğrula. - ile Profil Resmon; sızıntıları, aşırı çizimi ve ağır malzemeleri düzeltin.
Bak, oradaydım.
Sunucunuzda dolaşıyorsunuz, bir bina görüyorsunuz ki bu mükemmel bir tamirci dükkanı veya gizli bir kartel sığınağı için yer var ve kapıya doğru yürüyorsunuz… ve hiçbir şey. Sadece düz bir doku. Sahte bir kapı. Çıldırtıyor, değil mi?
Tam olarak bu yüzden MLOs (Harita Yükleyici Nesneleri) yapmaya başladım. Sadece lanet olası kapıyı açmak istedim.
Ama sonra eğitimleri açtım ve aniden insanlar “vertex boyaları”, “ytyps” ve “portallar” hakkında bağırıyordu ve dürüst olmak gerekirse neredeyse oracıkta bırakıyordum. Sanki bir video oyununa bir kutu koymak için mimarlık diplomasına ihtiyacım varmış gibi hissettim.
Yani, derin bir nefes alın. Bir kahve (veya bir Red Bull, yargılamıyorum) alın. Bunu bana birinin açıkladığını dilediğim gibi size anlatacağım—dağınık, kusurlu ama anlaşılır.
FiveM için aslında iç mekanlar oluşturmaya nasıl başlayacağınız aşağıda açıklanmıştır.
Araç Seti (Bunu atlamayın)
Çekiç olmadan ev inşa edemezsin. GTA V iç mekanlar için belirli bir araç setine ihtiyacın var. Kurulumu sinir bozucu, biliyorum ama bunu yalnızca bir kez yapman gerekiyor.
- Blender: 3B modelleme için endüstri standardı. Ücretsiz. Başlangıçta göz korkutucu, ancak yapabildiklerinin yalnızca küçük bir kısmına ihtiyacımız var.
- Sollumz: Bu Blender için bir eklentidir. Bunu çevirmen gibi düşünün. Blender “3D” konuşur, ancak GTA V “Rage Engine” konuşur. Sollumz, modelinizi oyunun anlayabileceği şekilde çevirir.
- KodYürüyüşü: Harita editörü. Bunu, binanızı dünyaya yerleştirmek ve oyuna, “Hey, bu bir iç mekan” demek için kullanacaksınız.”
- AçıkIV: Muhtemelen zaten buna sahipsiniz. Dosya yöneticisi/görüntüleyicisidir.
Kısa bir not: Eğer henüz Sollumz'u yüklemediysen, önce onu yap. Bunu nasıl kuracağına dair milyonlarca YouTube video var. Burada bekleyeceğim.
Adım 1: “Kabuk” (Kutuyu İnşa Etme)
Tamam, yani bir MLO sadece bir oda değil. Bir kabuk.
Bir oyuncak ev inşa ettiğinizi hayal edin. Dış duvarlarınız (sokaktan gördüğünüz bina) ve iç odanız var.
- Blender'ı açın. Varsayılan küpü silin. (Bu bir gelenektir. Üzgünüm, küp.)
- Orijinal Modeli İçe Aktarın: Mevcut bir GTA binasını değiştiriyorsanız, kapı için deliği nereye keseceğinizi bilmeniz için o binayı Sollumz kullanarak içe aktarmanız gerekir.
- Delik Açın: Kapının olması gereken yerdeki yüzleri kelimenin tam anlamıyla silin.
- Odayı Modelle: O deliğin arkasına basit bir kutu oluşturun. Henüz ayrıntılarla çıldırmayın. Sadece bir zemin, duvarlar ve bir tavan yapın.
“İçten Dışa” Gömlek Sorunu
İşte bir hafta boyunca saçımı başımı yolduğum bir şey: Normaller.
3D'de bir duvarın yalnızca bir yüzü vardır. Eğer “Normal” (ön yüz) dışarıyı gösteriyorsa ve siz odanın içindeyken, duvar görünmez olacaktır. Mavi çizgilerin (normalar) odayı gösterecek şekilde olduğundan emin olmanız gerekir.
Oyuna girdiğinizde duvarlarınız görünmezse, sorun normal'lerinizdedir. Her zaman normal'lerdir.
Adım 2: Doku Kaplama (Duvarları Boyama)
Onu gri bırakamazsın. GTA dokusuz modellerden nefret eder.
Blender/Sollumz'da shader'lar uygularsınız. Genellikle standart GTA shader'ları (gibi gta_default). Bir dokuyu—tuğla duvar veya beton zemin gibi—ağınıza eşlersiniz.
Profesyonel İpucu: Doku dosyalarınızı “İki'nin Kuvvetleri” olarak tutun. $512 çarpı 512$, $1024 çarpı 1024$, vb. Eğer $500 çarpı 500$ boyutunda bir resim kullanmaya çalışırsanız, oyun çıldırır ve çöker. Bunu zor yoldan öğrendim.
Adım 3: Korkutucu Kısım (Portallar)
İşte herkesin beynini yakan kısım burası.
A Portal temelde görünmez bir perdedir. Oyun motoruna şunu söyler: “Oyuncu bu kapıdan baktığında, odanın içini işlemeye başla. Ayrıldığında, bellekten tasarruf etmek için işlemeyi durdur.”
Portallar olmadan, “boşluk” elde edersiniz. Hani, kapıdan içeri bakarsınız ve haritanın altındaki Mavi Cehennem'e baktığınız gibi görünür? Evet.
Sollumz'da portal oluşturmak şunları içerir:
- Kapınızın köşe noktalarını seçme.
- Dışarısı (Limbo) için bir “Oda Kimliği” ve içerisi (Oda 1) için bir “Oda Kimliği” oluşturma.
- Bunları bağlamak.
Bunu bir uzay gemisindeki hava kilidi gibi düşünün. “Dış Dünya” ile “İç Oda” arasındaki geçişi kapatmanız gerekiyor.”
Adım 4: Dışa Aktarma ve “YTYP”
Modeliniz hazır olduğunda, şunu dışa aktarın: .ydr (çizilebilir) ve bir .ybn (çarpışma). Ancak oyun henüz var olduğunu bilmiyor.
Gereklidir .ytip dosya. Bu temelde bir manifestodur—bir listedir—GTA'ye şunu söyler: “Yeni bir nesnem var, adı bu ve özellikleri bunlar.”
- CodeWalker'ı açın.
- Yeni bir YTYP oluşturun.
- Yeni modelinizi MLO Archetype tanımı aracılığıyla ekleyin.
- Burada MLO bayraklarını tanımlarsınız.
Dürüst olmak gerekirse? Bunu ilk yaptığınızda işe yaramayacak. İşe yaramayacak. Yükleyeceksiniz, binanıza yürüyeceksiniz ve zeminden düşeceksiniz. Bu bir geçiş töreni.
Genellikle, bu sizin Çarpışma (.ybn) görsel modelinizle aynı hizada değil. Ya da Sollumz'daki dışa aktarma ayarlarında “Gömülü Çarpışma”yı kapatmayı unuttunuz. O kutuyu işaretleyin.
Adım 5: Dünyaya Yerleştirme (YMAP)
Son adım. Nesneye sahipsiniz. Şimdi onu yerleştirmeniz gerekiyor.
CodeWalker'da:
- Projeyi açın.
- Yeni bir tane oluştur .ymap.
- Yeni MLO nesnenizi haritada tam olarak oturduğu yere yerleştirin.
- Her şeyi kaydedin.
Son Bir Düşünce
Bunu doğrusal yapıyormuş gibi anlatıyorum ama aslında çok karmaşık. Titreyen bir ışık dokusunu düzeltmek için saatler harcayacaksınız veya yağmurun neden oturma odanıza yağdığını anlamaya çalışacaksınız (bu bir “Gizlenme” sorunudur, ama onu başka bir güne saklayalım).
Küçük başlayın. Cidden. İlk projeniz için bir polis karakolu inşa etmeye çalışmayın. Kapılı, kelimenin tam anlamıyla bir kutu yapın. O kutunun içine dünyadan düşmeden girebildiğinizde, resmi olarak bir MLO geliştiricisisiniz.
Bir odaya girme hissi Sen inşa etmek, arkadaşlarınızın dün var olmayan bir alanda rol yapmasını görmek? Bu dünyadaki en iyi duygu. Baş ağrısına değer.
Şimdi ne yapmalısınız?
İşin içine girmen gerekiyor.
Blender'daki Sollumz eklentisi için belirli kurulum ayarlarında size rehberlik etmemi ister misiniz, yoksa zaten gördüğünüz belirli bir hatanın sorunlarını gidermeye mi odaklanmalıyız?
MLOs Oluşturma İpuçları
- Ölçek: Metre olarak çalışın. Kapılar ~2.0–2.2m yüksekliğinde; tezgahlar ~0.9m; merdiven yükselişi ~0.17m.
- Koleksiyonlar:
INT_MLO,COLLISIONS,LIGHTS,PROPS_STATIC,PROPS_INSTANCED. - Adlandırma:
int_shop_main_wall_A,coll_floor_A,door_backroom_A. Tutarlı önekler daha sonra saatler kazandıracaktır. - Pivot/orijin: Anlamlı kökenler (kapılar için menteşeler) ayarlayın, dışa aktarmadan önce dönüşümleri uygulayın (Ctrl‑A).
Model ve topoloji en iyi uygulamaları
- Modüler: Yeniden kullanmak ve bakımını yapmak için duvarları/zeminleri/tavanları modüller olarak oluşturun.
- Topoloji: Dörtgenleri tercih edin, kenar akışını temiz tutun, gereksiz döngülerden kaçının.
- Teksel yoğunluğu: Hedef ~512–1024 piksel/m ana yüzeyler için; 256–512 piksel/m arka plan için.
- Kesme levhaları ve atlasları: Malzeme sayısını azaltın; nesneleri atlaslara gruplandırın.
- Gizli yüzleri temizle: Görünmeyen geometriyi (duvarların arkası, zeminlerin altı) aşırı çizimi azaltmak için silin.
Malzemeler, dokular ve aydınlatma
- PBR: BaseColor/Roughness/Metallic/Normal kullanın. Malzemeleri az tutun (küçük iç mekanlar için ≤ 8).
- Doku boyutları: 1k–2k tercih edin; kesinlikle gerekmedikçe devasa 4k'dan kaçının. Kullanın BC7 veya DXT uygun olduğu durumlarda.
- Yayılanlar: Tabelalar/LED'ler için; parlama sorunlarından kaçınmak için yoğunluğu makul tutun.
- Önceden işlenmiş ışıklandırma: İsteğe bağlı ışık haritaları, günün farklı saatlerinde iç mekan görünümünü stabilize edebilir.
- Vanilla'yı yeniden kullan: OpenIV ile, lisans izin verdiğinde mevcut dokuları/gölgelendiricileri referans alın.
Çarpışmalar (YBN)
- Kullanmak düşük poligonlu ilkel nesneler (kutular/silindirler) yürünebilir yüzeyleri ve engelleri yaklaştırmak için.
- Ayrı çarpışma koleksiyonu (
COLLISIONS) ve isimleri uyumlu tutun (örn.,coll_wall_A). - Geçilmemesi gereken kapılar/pencereler: çarpışmanın açıklığı kapladığından veya kapı mantığıyla değiştirildiğinden emin olun.
- Yaygın hata: yüksek ayrıntılı çarpışma fizik sorunlarına neden olur—basitleştir.
Odalar, portallar, tıkanma ve YTYP
- Odalar: Mantıksal alanlar (dükkan, arka oda, koridor) kapılarda portallarla.
- Portallar: Görünürlük kapıları; göremediğiniz odaların oluşturulmasını önleyin.
- Engelleyiciler: Arkalarını render etmeyi engelleyen büyük yüzeyler (örneğin, katı duvarlar).
- YTYP: Arketip, LOD mesafeleri, oda/portal bağlantılarını tanımlar.
- İçinde Kod Yürüteci: odaları ata, portalları yerleştir, engelleyiciler ekle, oluştur YTYP. CW'nin görselleştirme araçlarıyla doğrulayın (oda renkleri, portal çizgileri).
Sollumz ile Dışa Aktarma
- GitHub'den yükleyin, Blender tercihlerinde eklentiyi etkinleştirin.
- Atamak Sollumz shader'ları ve gerektiğinde dışa aktarma bayrakları.
- Kontrol etmek ölçek ve döndürmeler uygulanır (Ctrl‑A) dışa aktarmadan önce.
- Dışa aktarma hedefi/hedefleri:
- YDR/YDD çizilebilir modeller / iskeletli çizilebilirler için.
- YBN çarpışmalar için.
- YTYP arketipler/odalar/portallar tanımları için (genellikle CodeWalker aracılığıyla sonlandırılır).
Kaynak paketleme (fx bildirimi)
Klasör yapısı
[mlo-yourinterior] ├─ fxmanifest.lua └─ stream/ ├─ mlo_shop.ydr ├─ mlo_shop.ybn ├─ mlo_shop.ytyp └─ props/ └─ ...
Minimal fxmanifest.lua
fx_version 'cerulean'
game 'gta5'
name 'mlo-yourinterior'
description 'Custom MLO: YourInterior'
version '1.0.0'
files {
'stream/*.ytd',
'stream/*.ydr',
'stream/*.ydd',
'stream/*.ybn',
'stream/*.yft',
'stream/*.ytyp',
'stream/props/*'
}
-- Ensure YTYPs are loaded
this_is_a_map 'yes'
Sunucu yapılandırması
Şuna ekleyin: server.cfg:
ensure mlo-yourinterior
Manifestler ve akış için resmi belgelere bakın: https://docs.fivem.net/docs/scripting-reference/resource-manifest/resource-manifest/
Oyunda doğrulama kontrol listesi
- ☐ İç mekana ışınlanın; doğrulayın doğma yüksekliği ve zeminlerden düşme olmaz.
- ☐ Her odayı yürü; kapı geçitlerini kontrol et; yok görünmez duvarlar.
- ☐ Her birini gözden geçirin portal; oluşturma elemesinin çalıştığını onaylayın.
- ☐ Kontrol et Z-dövüşü duvar/döşeme kesişimlerinde.
- ☐ Döngü gün ışığı; aydınlatma/yayıcıların doğal göründüğünü onaylayın.
- ☐ Her odada durun; kamerayı 360° döndürün; izleyin Resmon sivri uçlar.
- ☐ Test et 3–10 oyuncu; ağ ve istemci performansını izleyin.
Performans bütçeleri ve Resmon
Küçük/orta ölçekli bir MLO için tipik hedefler:
- Malzemeler: ≤ 8–12 benzersiz malzeme.
- Çizim çağrıları: örnekleme ve atlaslar aracılığıyla düşük tutun.
- Doku: çoğunlukla 1k–2k; mümkün olduğunda atlas.
- Akış boyutu: hedef ≤ 30–80 MB MLO başına (bağlama bağlı olarak).
- Portallar: Odaları izole etmek için yeterince ekleyin ancak aşırıya kaçmayın.
Profilleme
- Kullanmak Resmon (
F8 → resmon 1CPU/MS ve belleği kontrol etmek için). - İç mekanları değiştirin, darboğazları izole etmek için nesneleri gizleyin.
- Kapıya doğru bakıldığında sivrilikler görünüyorsa, tekrar ziyaret edin portallar/kapatıcılar.
Daha geniş bir sunucu çapında ayarlama kılavuzu için bkz. Performansı Optimize Edin FiveMX üzerinde → \/fivem-sunucu-optimizasyonu\/.
Sorun giderme
| Belirti | Olası neden | Düzeltmek |
|---|---|---|
| Zeminden düşme | Eksik/kaymış YBN | Çarpışmayı render ağına hizalayın; dönüşümleri uygulayın; YBN'yi yeniden dışa aktarın |
| Duvarların içinden diğer odaları görün | Eksik/yanlış portal/occluder | CodeWalker'da odaları düzgün tanımlayın; engelleyiciler ekleyin; YTYP'yi güncelleyin |
| Siyah/görünmez ağlar | Shader/doku yolu sorunu | Doğru Sollumz gölgelendiricisini kullanın; doku yollarını doğrulayın; YTD'lerin mevcut olduğundan emin olun |
| Titreşim (Z-fighting) | Eş düzlemli yüzeyler | Yüzleri kaydırın veya birleştirin; kenar kalınlığını ayarlayın |
| FPS kapıya bakan tank | Portal boşluğundan kaynaklanan aşırı çizim | Portalı yeniden boyutlandırın/yeniden hizalayın; tıkayıcılar ekleyin; malzemeleri basitleştirin |
| Kapılar oyuncuyu engelliyor | Çarpışma çakışmaları | Geçişi temizlemek için YBN'yi düzenleyin; kapı çarpışmasını ayırın |
| Yayıcılar çok parlak | Yoğunluk/ton eşleme | Düşük parlaklık değerleri; saf beyaz/parlaklık spam'ından kaçının |
SSS
Her ağ için bir çarpışma (YBN) gerekli mi?
Hayır. Sadece yürünebilir veya etkileşimli yüzeyler. Dekoratif öğeler çarpışmasız kalabilir.
Bir iç mekanın kaç tane portalı olmalı?
Mantıksal odaları/holleri bölmek ve oda arası işlemeyi engellemek için yeterli—genellikle her kapı/açıklık için bir tane.
GTA V dokularını yeniden kullanabilir miyim?
Genellikle oyun içi kullanım için evet, ancak yeniden dağıtmayın izin verilen şartların ötesindeki varlıklar. OpenIV yollarını ve lisanslarını kontrol edin.
YTYP'm yüklenmiyor.
Manifest dosyasını listeleyin, dosya adlarını kontrol edin ve emin olun this_is_a_map 'yes' ayarlanmıştır.
Hangi Blender sürümü Sollumz ile en iyi çalışır?
Mevcut 3.x sürümleri yaygın olarak kullanılır; Sollumz GitHub üzerinde uyumluluğu doğrulayın.
Kaynaklar ve daha fazla okuma
- FiveM Belgeler (kaynak manifestoları, akış): https://docs.fivem.net/
- Sollumz (GitHub): https://github.com/Skylumz/Sollumz
- Kod Yürüteci (GTAForum başlığı ve derlemeleri): https://github.com/dexyfex/CodeWalker
- AçıkIV:
- GTAV Modlama (genel wiki): https://gtamods.com/wiki/Main_Page
Sıradaki ne? (Dahili bağlantılar ve Eyleme Çağrıları)
- MLO'lara Göz At → /fivem-mlos/ (Örnekler, ilham kaynakları ve kullanıma hazır haritalar.)
- En İyi MLOs Rehberi → /free-fivem-mlos/ (Seçilmiş ürünler, artı/eksileri, performans notları.)
- Sunucunuzu Optimize Edin → \/fivem-sunucu-optimizasyonu\/ (Resmon kullanımı, varlık akış ipuçları.)
- Haritalama konusunda yardıma mı ihtiyacınız var? → FiveMX ile İletişim (özel iç mekanlar, optimizasyon incelemeleri).
Varlıkları kopyalayıp yapıştırın (isteğe bağlı başlangıç)
Bunları projenize temel olarak ekleyin ve özelleştirin.
Başlangıç fxmanifest.lua (genişletilmiş)
fx_version 'cerulean'
game 'gta5'
name 'mlo-yourinterior'
author 'YourName @ FiveMX'
version '1.0.0'
this_is_a_map 'yes'
files {
'stream/**.ytd',
'stream/**.ydr',
'stream/**.ydd',
'stream/**.ybn',
'stream/**.yft',
'stream/**.ytyp'
}
Önerilen koleksiyonlar (Blender)
INT_MLO ├─ STRUCTURE ├─ PROPS_STATIC ├─ PROPS_INSTANCED ├─ LIGHTS └─ COLLISIONS
KredilerSollumz, CodeWalker ve Cfx.re belgelerinin olağanüstü araçları ve belgeleri için bakımcılarına teşekkürler.
