FiveM Map โหลดไม่ครบหรือโหลดช้า แก้อย่างไร เช็ก Streaming, Texture, LOD และ Memory

ปัญหา FiveM Map โหลดไม่ครบ โหลดช้า Object โผล่ทีหลัง Texture ไม่ขึ้น อาคารหาย หรือเข้าใกล้แล้ว Map ค่อยแสดง ไม่ได้มีสาเหตุจากอินเทอร์เน็ตเพียงอย่างเดียว เพราะระบบ Map ของ FiveM เกี่ยวข้องกับทั้ง Resource, Streaming Assets, YMAP/YTYP, Model, Texture, Collision, LOD และทรัพยากรของเครื่องผู้เล่น

FiveM มีเครื่องมือสำหรับตรวจระบบ Streaming โดยตรง เช่น strdbg, strlist และ strmem รวมถึง save_gta_cache สำหรับ Resource ที่มี Map หรือ Collision Files จำนวนมาก จึงควรวิเคราะห์จากข้อมูลจริงแทนการล้าง Cache หรือเพิ่ม RAM Server แบบเดาสุ่ม

บทความนี้จาก comsiam จะอธิบายวิธีแก้ FiveM Map โหลดไม่ครบหรือโหลดช้าแบบเป็นขั้นตอน ตั้งแต่การแยกอาการ ตรวจ Resource ไปจนถึงการ Optimize LOD และ Streaming Memory

FiveM Map โหลดไม่ครบคืออาการแบบไหน

อาการสามารถเป็นได้หลายแบบ เช่น

  • อาคารขึ้นเพียงบางส่วน

  • Props หาย

  • Texture เป็นสีขาว

  • พื้นหรือถนนโหลดช้า

  • เข้าใกล้แล้ว Object ค่อยโผล่

  • อยู่ไกลแล้วอาคารหายเร็วเกินไป

  • Interior โหลดช้า

  • Collision มาทีหลัง

  • Map บางส่วนหายเมื่อหมุนกล้อง

  • เข้าเมืองแล้วกระตุกระหว่าง Asset โหลด

  • ผู้เล่นบางคนเห็นครบแต่บางคนไม่เห็น

ก่อนแก้ต้องระบุให้ได้ว่าอาการเป็น Map ไม่โหลด, Texture ไม่โหลด, Collision ผิด, LOD ผิด หรือ Client Streaming ตัน

① แยก “โหลดช้า” ออกจาก “ไม่โหลดเลย”

ถ้า Resource ไม่ทำงานตั้งแต่ต้น จะมีอาการประมาณ

เข้า Map
↓
ไม่มีอะไรขึ้นเลย

ให้ตรวจ

  • Resource

  • fxmanifest.lua

  • ensure

  • YMAP

  • YTYP

  • Dependency

แต่ถ้า

เข้า Map
↓
รอสักพัก
↓
อาคารค่อยขึ้น

หรือ

เข้าใกล้
↓
Object ค่อยปรากฏ

มีแนวโน้มเกี่ยวข้องกับ Streaming, Asset Complexity หรือ LOD มากกว่า

② เช็กว่า Map Resource ทำงานอยู่หรือไม่

FiveM Resources สามารถมีทั้ง Scripts และ Streaming Assets และแต่ละ Resource สามารถ Start, Stop หรือ Restart แยกกันได้

ตรวจใน Server Console เช่น

ensure custom_map

FiveM ระบุว่า ensure จะ Start Resource หากยังไม่ทำงาน หรือ Restart หาก Resource ทำงานอยู่แล้ว

ถ้า Resource ไม่ได้ Start การแก้ Texture หรือ LOD จะไม่ช่วย

③ เพิ่งเพิ่ม Map ใหม่ให้ใช้ refresh

ถ้า Copy Map Resource เข้า Server ขณะ FXServer ยังเปิดอยู่ ให้ใช้

refresh

FiveM ระบุว่า refresh จะ Rescan Folder Resources และโหลด Resource Manifest ใหม่ ทำให้ Resource ที่เพิ่งเพิ่มพร้อมถูก Start

จากนั้นใช้

ensure custom_map

④ ตรวจ fxmanifest.lua

ทุก Resource ต้องมี Manifest เช่น

fxmanifest.lua

เพื่อให้ FiveM Parse Resource ได้อย่างถูกต้อง

ตัวอย่างโครงสร้าง

custom_map/
├── fxmanifest.lua
└── stream/

ถ้า Resource Folder ซ้อนผิดระดับ เช่น

custom_map/
└── custom_map/
    ├── fxmanifest.lua
    └── stream/

ให้ตรวจว่ากำลัง ensure Resource ชั้นที่ถูกต้อง

⑤ Map โหลดบางส่วนให้ตรวจ Asset ตามประเภท

จำง่าย ๆ

YMAP = Placement
YTYP = Archetype
YDR  = Model
YTD  = Texture
YBN  = Collision

ดังนั้นอาการแต่ละแบบควรตรวจคนละจุด

Object ไม่อยู่

ตรวจ YMAP/YTYP

Model ขึ้น แต่ขาว

ตรวจ YTD/Texture

มองเห็นแต่เดินทะลุ

ตรวจ Collision/YBN

ไกลแล้วหายเร็ว

ตรวจ LOD/Streaming Distance

อย่าแก้ทุกไฟล์พร้อมกัน

⑥ YMAP โหลดไม่ครบเกิดอะไรได้บ้าง

YMAP ใช้กับการวาง Entities ใน World โดย Official Cfx.re Map Workflow แสดงการสร้าง YMAP แล้วเพิ่ม Entity, Archetype และกำหนดตำแหน่งของ Asset โดยตรง

ถ้า Objects บางตัวหาย ให้ตรวจ

  • Entity อยู่ใน YMAP หรือไม่

  • Archetype ถูกหรือไม่

  • Custom Asset อยู่ครบหรือไม่

  • YMAP ถูก Merge ครบหรือไม่

  • Map Version เก่าชนกันหรือไม่

⑦ YTYP หายทำให้ Map โหลดไม่ครบได้หรือไม่

ได้สำหรับ Custom Archetypes ที่ Resource ต้องใช้

ตัวอย่าง

custom_building.ydr

อาจต้องมีข้อมูล Archetype ที่สัมพันธ์กันก่อนถูก YMAP นำไปใช้

ถ้า Copy เฉพาะ YMAP/YDR แต่ลืม Asset Definition ที่ Resource ต้นฉบับใช้ Map อาจขึ้นเพียงบางส่วน

ดังนั้นไม่ควรเลือก Copy เฉพาะไฟล์ที่ดูคุ้นเคย

⑧ Model ขึ้นช้าควรตรวจ YDR หรือไม่

ควรตรวจ Model Complexity และ Asset Streaming

ถ้า Custom Building ใหญ่หรือมี Geometry จำนวนมาก การโหลดและ Render ย่อมมีภาระมากกว่า Asset ที่เรียบง่ายกว่า

แต่ก่อน Optimize YDR ควรตรวจว่า

  • Resource ทำงานปกติ

  • LOD มีหรือไม่

  • Texture ใหญ่เกินไปหรือไม่

เพราะปัญหาอาจไม่ได้มาจาก Model เพียงอย่างเดียว

⑨ Texture ขึ้นช้าควรตรวจ YTD

ถ้า Model ขึ้นทันทีแต่ Texture ค่อย ๆ มา

เช่น

อาคารขึ้น
↓
ขาว
↓
Texture ค่อยชัด

ให้สงสัย Texture Streaming/Memory ก่อน

โดยเฉพาะ Server ที่มี

  • รถ Custom จำนวนมาก

  • MLO หลายตัว

  • เสื้อผ้า

  • Props

  • Map Textures ความละเอียดสูง

ทำงานพร้อมกัน

⑩ Texture 4K ทุกไฟล์ทำให้ Map หนักไหม

ความละเอียด Texture สูงเพิ่ม Asset Memory Requirement ดังนั้นไม่ควรใช้ 4K กับทุกพื้นผิวเพียงเพราะภาพต้นฉบับมีขนาดใหญ่

ตัวอย่าง

ป้ายอาคารขนาดใหญ่

อาจต้องการรายละเอียดสูง

ขวดบนโต๊ะ

ไม่จำเป็นต้องใช้ Texture ใหญ่เท่าผนังทั้งอาคาร

พื้นผิวที่อยู่ไกลตลอด

ควรดูระยะที่ผู้เล่นเห็นจริง

Optimization ต้องดูคุณภาพที่เห็นจริงในเกม ไม่ใช่เลือก Resolution สูงสุดทุกไฟล์

⑪ รถ Custom ก็ทำให้ Map โหลดช้าลงทางอ้อมได้หรือไม่

ฝั่ง Client มี Streaming Memory ร่วมกับ Assets หลายประเภท

FiveM มีคำสั่ง strmem ซึ่งแสดง Streaming Memory ที่ใช้โดย Streaming Assets รายตัวพร้อมภาพรวมทั้งหมด

ดังนั้นหากพื้นที่เดียวกันมี

MLO
+
รถ Custom หลายคัน
+
Clothes
+
Props
+
Map

จำนวน Assets โดยรวมอาจมีความสำคัญกว่าดู Map Resource เดียว

⑫ ใช้ strmem ตรวจ Streaming Memory

สำหรับการ Debug ขั้นสูง FiveM มี

strmem true

ซึ่งแสดงรายการ Streaming Memory ที่ Assets ใช้และภาพรวมของ Memory

ใช้เมื่อสงสัยว่า

  • Texture โหลดไม่ทัน

  • Map หายเมื่อ Assets เยอะ

  • เข้า Car Meet แล้ว Map เริ่มเบลอ

  • Objects Pop-in มากขึ้น

อย่างไรก็ตามคำสั่ง Developer บางตัวอาจต้องใช้ Developer Mode ตาม Client Build ที่ใช้งาน

⑬ strdbg คืออะไร

FiveM มีคำสั่ง

strdbg true

สำหรับดูสิ่งที่ GTA Streamer กำลังโหลด และ Cfx.re ระบุว่าใช้ช่วยตรวจ Streaming Issues เช่นกรณี World หยุดโหลดได้

นี่มีประโยชน์มากกว่าการเดาว่า Internet ช้าทุกครั้งที่ Map ไม่ขึ้น

⑭ strlist คืออะไร

ใช้

strlist true

เพื่อเปิด Interface ที่แสดง Entries ที่ลงทะเบียนใน GTA Streamer พร้อมสถานะปัจจุบัน

เหมาะสำหรับ Developer ที่ต้องการตรวจว่า Asset

  • ถูกลงทะเบียนหรือไม่

  • อยู่ในสถานะอะไร

  • มีรายการ Streaming หรือไม่

⑮ Developer Commands ใช้ไม่ได้ทำอย่างไร

Cfx.re ระบุว่า Developer Commands เช่น resmon และ strdbg อาจแสดง Access Denied ใน Production Mode และต้องเปิด Client Developer Mode ตามวิธีที่ Documentation ระบุ

ดังนั้นถ้าพิมพ์

strdbg true

แล้วไม่ทำงาน ไม่ได้หมายความว่า FiveM ไม่มีคำสั่งนี้

⑯ LOD คือสาเหตุใหญ่ของ Map Pop-in

LOD คือ Level of Detail

Official FiveM Assets Manual แนะนำให้สร้าง

HD Model
+
LOD Model

โดย LOD ใช้ Geometry และ Materials ที่เรียบง่ายกว่า และกำหนดระยะ Streaming ผ่าน LodDist/ChildLodDist

ถ้า LOD ไม่ถูกต้องอาจเกิด

  • อาคารหายเมื่ออยู่ไกล

  • Object โผล่กะทันหัน

  • Map เปลี่ยนรายละเอียดชัดเกิน

  • HD Model โหลดช้า

⑰ Map อยู่ไกลแล้วหายเร็วแก้อย่างไร

อย่าเริ่มด้วยการเพิ่ม LodDist ของทุก Object เป็นค่ามหาศาล

ควรตรวจว่า Asset มี

HD
↓
LOD

ทำงานสัมพันธ์กันหรือไม่

Cfx.re Workflow กำหนดให้ LOD Entity มี LodDist สูงขึ้นตาม Streaming Distance ที่ต้องการ และ HD/LOD ถูกเชื่อมผ่าน YMAP Hierarchy

ค่าที่สูงเกินโดยไม่มี LOD เหมาะสมอาจเพิ่มภาระ Rendering โดยไม่จำเป็น

⑱ LOD Model ควรเบากว่า HD

ใช่

Official Documentation ระบุให้ LOD Model เป็น Version ที่มี Geometry และ Materials เรียบง่ายกว่า HD Model

แนวคิดคือ

ใกล้ → สวยเต็ม
ไกล → ลดรายละเอียด

ถ้า LOD มี Polygon และ Materials แทบเท่า HD ก็ลดประโยชน์ของระบบ LOD ลง

⑲ Map ไม่มี LOD ควรทำไหม

ถ้าเป็น Prop เล็ก ๆ อาจไม่ต้องการโครงสร้างซับซ้อนเท่าอาคารใหญ่

แต่สำหรับ

  • อาคารใหญ่

  • Island

  • Airport

  • Racetrack

  • City Expansion

  • Industrial Complex

ควรตรวจ LOD อย่างจริงจัง

เพราะ Asset เหล่านี้มองเห็นจากระยะไกลและอาจอยู่ใน Scene จำนวนมาก

⑳ _manifest.ymf สำคัญกับ LOD หรือไม่

ใน Official FiveM LOD Workflow หลังเชื่อม HD/LOD YMAP Cfx.re ให้ใช้ CodeWalker Manifest Generator เพื่อสร้าง _manifest.ymf และสรุปว่า Manifest ถูกสร้างเพื่อให้ Setup โหลดในเกมอย่างถูกต้อง

ดังนั้นถ้ากำลังสร้างหรือแก้ Custom Map เอง อย่าลบไฟล์ที่ Workflow ต้นฉบับกำหนดโดยไม่เข้าใจผล

㉑ Map โหลดช้าเพราะ Collision ได้หรือไม่

Resource ที่มี Collision หรือ Map Files จำนวนมากสามารถใช้เวลา Initial Loading มากขึ้นจน FiveM มีคำสั่งเฉพาะชื่อ

save_gta_cache

สำหรับกรณีนี้

จึงไม่ควรมองเฉพาะ Texture เมื่อ Map Resource ขนาดใหญ่โหลดช้า

㉒ save_gta_cache คืออะไร

FiveM ระบุว่า

save_gta_cache <resource name>

จะสร้าง Cache Data สำหรับ Resource ที่มี Collision หรือ Map Files จำนวนมาก เพื่อช่วยให้ Initial Loading ของผู้เล่นเร็วขึ้น

ตัวอย่าง

save_gta_cache city_map

จากนั้น Cache File ต้องถูกนำไปวางที่ Root ของ Resource และเพิ่มใน Resource Manifest ตาม Workflow ที่ Documentation กำหนด

㉓ ต้องใช้ save_gta_cache กับทุก Map ไหม

ไม่

FiveM ระบุวัตถุประสงค์สำหรับ Resources ที่มี Significant Amount of Collision or Map Files

Map ร้านเล็ก ๆ หรือ MLO ธรรมดาไม่ควรใช้ Cache Workflow เป็น Default เพียงเพราะโหลดช้าหนึ่งครั้ง

ต้องหา Root Cause ก่อน

㉔ save_gta_cache ไม่ได้ Optimize Map ให้เอง

ถูกต้อง

มันไม่ได้

  • ลด Polygon

  • ลด Texture

  • สร้าง LOD

  • แก้ YTYP

  • ซ่อม Collision

  • แก้ Map Conflict

หน้าที่ที่ Cfx.re ระบุคือช่วย Initial Loading ของ Resource ที่มี Map/Collision จำนวนมาก

ดังนั้น Asset ที่หนักเกินก็ยังควร Optimize ต้นทาง

㉕ Map โหลดช้าตอนเข้า Server กับเดินเข้า Map ช้าไม่เหมือนกัน

เข้า Server ครั้งแรกช้า

ตรวจ

  • Resource Download

  • Map Files จำนวนมาก

  • Collision

  • Client Storage

เข้า Server แล้ว แต่เดินเข้า Map จึงค่อยกระตุก

ตรวจ

  • Streaming

  • Texture

  • Geometry

  • LOD

  • Memory

Object หายตลอด

ตรวจ

  • Resource

  • YMAP

  • YTYP

  • Asset Files

ต้องแยกสามอาการนี้ออกจากกันก่อน

㉖ Map ใหญ่ควรแยก Resource หรือไม่

FiveM Resources เป็นหน่วย Content ที่สามารถ Start/Stop/Restart แยกกัน และสามารถประกอบด้วย Streaming Assets ได้

สำหรับ Server ใหญ่ อาจจัด

[maps]/
├── city_core/
├── police/
├── hospital/
├── island/
└── racetrack/

แทนการ Merge ทุก Map เป็น Resource เดียว

ข้อดีคือหา Map ที่มีปัญหาได้ง่ายกว่า

㉗ Resource เยอะทำให้ Map โหลดช้าเสมอไหม

ไม่ควรตัดสินจากจำนวน Resource เพียงอย่างเดียว

Resource หนึ่งอาจมีเพียง Map Asset

อีก Resource อาจมี Script Loop หนักตลอดเวลา

ดังนั้นต้องแยก

Streaming Asset Load

จาก

Script Runtime Load

ก่อน

㉘ ใช้ resmon ตรวจได้หรือไม่

ได้ในส่วนของ Resource Runtime

FiveM Resource Monitor แสดง CPU และ Memory Usage ของ Resources และสามารถเปิดด้วย

resmon true

ใน Environment ที่อนุญาต

ถ้า Map Package มี Script มาด้วยและ Resource ใช้ CPU สูงผิดปกติ ให้ตรวจ Script เพิ่ม

แต่ resmon ไม่ได้บอกจำนวน Polygon ของ YDR โดยตรง

㉙ Map โหลดช้าจาก Script ได้ไหม

ได้ถ้า Map Package มี Script เช่น

  • Door Logic

  • Dynamic Props

  • IPL Management

  • Teleport

  • Elevator

  • Interaction

และ Script ทำงานไม่มีประสิทธิภาพ

FiveM ระบุว่า Hitch Warnings อาจเกิดจาก Resources ที่ทำงานไม่ดี เช่น Loop ที่ไม่ได้ Optimize และ Profiler สามารถใช้ตรวจได้ทั้ง Client และ Server

ดังนั้นอย่าโทษ YTD ทุกครั้ง

㉚ Profiler ใช้เมื่อไร

ใช้เมื่อสงสัยว่า Runtime Code เป็นสาเหตุ

ตัวอย่าง

Map OFF → ปกติ
Map ON → Resource CPU สูง

แต่ Streaming Assets ไม่ได้ใหญ่ผิดปกติ

กรณีนี้ให้ใช้ Profiler หา Function หรือ Resource ที่ใช้เวลาประมวลผลสูง FiveM มี Profiler สำหรับทั้ง Client และ Server

㉛ Texture เบลอแล้วค่อยชัดเกิดจากอะไร

มีแนวโน้มเกี่ยวกับการ Streaming Texture และ Memory Budget ฝั่ง Client

ควรตรวจ

  • YTD ใหญ่หรือไม่

  • Texture Resolution

  • Assets อื่นใน Scene

  • strmem

  • Client Hardware

ถ้าเกิดเฉพาะเมื่อมีรถ Custom จำนวนมากด้วย ให้ทดสอบพื้นที่เดิมโดยนำรถออกแล้วเปรียบเทียบ

㉜ ผู้เล่นเครื่องแรงโหลดครบ แต่เครื่องกลางโหลดช้า

นี่เป็นสัญญาณว่าควรตรวจ Asset Budget ฝั่ง Client

เพราะ Client แต่ละเครื่องมี

  • RAM

  • VRAM

  • Storage

  • GPU

  • CPU

ต่างกัน

Server Developer จึงไม่ควร Test Map เฉพาะคอมระดับสูง

ควรมี Client Test ระดับกลางเพื่อดูประสบการณ์ของผู้เล่นจริง

㉝ SSD มีผลกับ Asset Loading ไหม

Storage Performance สามารถมีผลกับเวลาการอ่านข้อมูลฝั่ง Client แต่ถ้าผู้เล่นหลายเครื่องเจอ Object เดียวกันหาย ณ จุดเดียวกัน ควรตรวจ Map Asset/LOD/Resource ก่อน

อย่าสรุปทันทีว่า HDD หรือ SSD เป็นสาเหตุ หากอาการมี Pattern เหมือนกันทุกคน

㉞ Internet ช้าทำให้ Map ไม่ครบไหม

ระหว่างการ Download Resource หรือ Join Server Network สามารถมีผลต่อเวลาโหลด Content ได้

แต่หลัง Client มี Resource แล้วและอาการเกิดซ้ำ ณ Location เดิมทุกครั้ง ควรตรวจ Streaming และ Asset Configuration เพิ่ม

ดังนั้น

Map โหลดช้า
≠
Internet ช้าเสมอ

㉟ Ping สูงทำให้ Texture ช้าเสมอไหม

ไม่

Ping เป็น Round-trip Network Latency ส่วน Texture/Model Streaming หลัง Content พร้อมอยู่ฝั่ง Client มีปัจจัยจาก Asset และ Client Rendering/Memory ด้วย

FiveM มี cl_drawperf ที่แสดง FPS, Ping, Packet Loss, CPU และ GPU Usage เพื่อช่วยแยก Performance Metrics ได้

ใช้

cl_drawperf true

เพื่อดูภาพรวมระหว่างทดสอบ

㊱ cl_drawperf มีประโยชน์อย่างไร

FiveM แสดงผ่าน cl_drawperf

  • FPS

  • Ping

  • Packet Loss

  • CPU Usage

  • GPU Usage

  • GPU Temperature

ตาม Documentation ปัจจุบัน

ถ้า

Ping ปกติ
แต่ FPS ตกหนักเมื่อหันไปหา Map

ควรตรวจ Rendering/Asset มากกว่า Network Latency

㊲ Map โหลดไม่ครบเฉพาะบริเวณที่มีรถเยอะ

ให้ทดสอบแบบ A/B

รอบที่ 1

พื้นที่ Map + ไม่มี Custom Cars

รอบที่ 2

พื้นที่ Map + Custom Cars จำนวนมาก

ถ้ารอบสองเกิด Texture Loss/Pop-in ชัดขึ้น ให้ตรวจ Streaming Memory ภาพรวมด้วย strmem เพราะ FiveM สามารถแสดง Memory ที่ Streaming Assets ใช้ได้

㊳ Map โหลดไม่ครบหลังเพิ่ม Clothes Pack

หลักเดียวกัน

อย่าคิดว่า Map Resource เสียทันที

ถ้า

ก่อนเพิ่ม Clothes → Map ปกติ
หลังเพิ่ม Clothes → Streaming แย่

ให้ย้อน Test Clothes Resource ออก

Server Content ทั้งระบบต้องถูกมองเป็น Asset Budget รวม ไม่ใช่แยกแต่ละหมวดโดยไม่สนกัน

㊴ Map โหลดไม่ครบหลังเพิ่ม MLO ใหม่

ทดสอบ

Old Maps ON
New MLO OFF

แล้ว

Old Maps ON
New MLO ON

ถ้าอาการเกิดทันทีเมื่อเปิด MLO ใหม่ ให้ตรวจทั้ง

  • Asset Weight

  • Map Conflict

  • Texture

  • LOD

  • Collision

อย่าเพิ่ง Optimize Map เก่าทั้งหมด

㊵ Map Conflict ทำให้ดูเหมือนโหลดไม่ครบได้ไหม

ได้

ถ้า Maps สองตัวแก้พื้นที่เดียวกัน อาจเกิด

  • Object ทับ

  • Geometry ซ้อน

  • Collision ซ้อน

  • Texture กระพริบ

  • Interior หาย

  • Map ดูเหมือนโหลดไม่ครบ

วิธีพิสูจน์ง่ายที่สุดคือเปิด Map ทีละ Resource

㊶ Map กระพริบไม่ใช่ Streaming เสมอไป

ถ้า Texture หรือพื้นผิวกระพริบตามมุมกล้อง อาจเป็น Z-fighting จาก Geometry สองชั้น

เช่น

Vanilla Floor
+
Custom Floor

อยู่ตำแหน่งเกือบเดียวกัน

กรณีนี้ต่อให้เพิ่ม Memory ก็ไม่แก้

ต้องแก้ Map Conflict/Geometry

㊷ Object หายเมื่อหมุนกล้อง

อาจเกี่ยวข้องกับ

  • LOD

  • Bounds

  • YMAP Configuration

  • Asset Culling

  • Map Conflict

ถ้า Object หายเฉพาะมุมมอง ไม่ใช่ค่อย ๆ โหลดตามเวลา ควรตรวจ Asset/Map Setup มากกว่า Internet

㊸ Collision โหลดช้าหรือเดินตก

ถ้า Map Visual ขึ้นก่อน แต่ผู้เล่นเดินแล้วตกพื้น ให้ตรวจ Collision Asset และ Initial Loading ของ Resource

สำหรับ Resource ที่มี Collision/Map Files จำนวนมาก save_gta_cache เป็นหนึ่งในเครื่องมือที่ FiveM มีไว้ช่วย Initial Loading

แต่ถ้าผู้เล่นตกจุดเดิมทุกครั้งแม้รอนานแล้ว ให้ตรวจ YBN/Collision จริง ไม่ใช่ Cache อย่างเดียว

㊹ อย่าใส่ Props มากเกินจำเป็น

พื้นที่เล็กสามารถหนักได้หากมี Objects จำนวนมาก

ตัวอย่างร้านหนึ่งแห่งอาจมี

ขวด 300
เก้าอี้ 100
ของตกแต่ง 500

แม้ Map ขนาดเล็กก็อาจสร้าง Scene Complexity สูงได้

ควรพิจารณารวม/ลด Decoration ที่ผู้เล่นแทบไม่สังเกต

㊺ Materials จำนวนมากมีผลไหม

LOD Workflow ของ Cfx.re ระบุให้ LOD Model ใช้ทั้ง Geometry และ Materials ที่เรียบง่ายลง

ดังนั้นการ Optimize Map ไม่ควรดู Polygon เพียงอย่างเดียว

Asset ที่มี Material/Texture Sets จำนวนมากก็สมควรถูกตรวจเช่นกัน

㊻ Map Texture ควรลดอย่างไร

อย่าลดทุกไฟล์เท่ากัน

ให้แบ่งตาม

ใหญ่และเห็นใกล้

รักษารายละเอียดมากกว่า

เล็กและอยู่ไกล

ลดได้มากกว่า

Logo/ตัวหนังสือ

ต้องทดสอบว่าอ่านได้

Normal/Material Texture

ต้องรักษา Format ที่เหมาะสม

ทุกครั้งที่ลด Texture ต้องเข้าเกม Test จริง

㊼ อย่า Optimize Production โดยไม่มี Backup

ก่อนแก้สร้าง

map_original/
map_test/

หรือใช้ Version Control

เพราะ Map Resource สามารถมีความสัมพันธ์หลายส่วน

YMAP
YTYP
YDR
YTD
YBN

การแก้ File หนึ่งอาจทำให้ปัญหาแสดงในอีกส่วน

㊽ อย่า Merge Map ก่อนยืนยันว่าต้นฉบับปกติ

Workflow ที่ปลอดภัยคือ

Original Map
↓
ทดสอบ
↓
ยืนยันว่าปกติ
↓
ค่อย Merge/Optimize

ถ้า Original ทำงานดีแต่ Merged Version โหลดไม่ครบ คุณจะรู้ทันทีว่าต้นเหตุอยู่ที่ขั้นตอน Merge

㊾ วิธีหา Asset ตัวหนักใน Map ใหญ่

ถ้า Map ใหญ่มาก ให้แบ่ง Resource หรือ Asset เป็นกลุ่มในการ Test

ตัวอย่าง

Buildings
Props
Interior
Decorations
Collision

Disable สิ่งที่สามารถแยกทดสอบได้ทีละกลุ่ม

จากนั้นดู

  • FPS

  • Streaming

  • Texture Load

  • strmem

เพื่อหาส่วนที่สร้างผลกระทบชัดที่สุด

㊿ วิธีทดสอบ Map Loading ให้ได้ผลจริง

ใช้สถานการณ์เดิมทุกครั้ง

ก่อน Optimize

บันทึก

Location
FPS
เวลาที่ Texture ชัด
จำนวน Objects ที่หาย
Client Spec

หลัง Optimize

ทดสอบ

Location เดิม
มุมเดิม
Graphic เดิม
Client เดิม

อย่าทดสอบก่อนและหลังคนละพื้นที่ เพราะผลเปรียบเทียบจะไม่มีความหมายมากนัก

51. Stress Test Map

อย่าทดสอบ Map ตอน Server ว่างอย่างเดียว

ลอง

  • ผู้เล่นหลายคน

  • รถหลายคัน

  • Clothes Custom

  • HUD

  • MLO Nearby

  • Props

พร้อมกัน

เพราะ Production Server มี Content หลายประเภททำงานร่วมกัน

Map ที่ดูปกติใน Development Server เปล่า ๆ อาจมีปัญหาเมื่อ Asset Budget รวมสูงขึ้น

52. วิธี Debug Map โหลดไม่ครบแบบเร็วที่สุด

ใช้ลำดับนี้

ขั้นที่ 1

ยืนยัน Resource Started

ensure map_name

ขั้นที่ 2

ดู Server Console

ขั้นที่ 3

เปิด F8

FiveM Client Console เปิดผ่าน F8 และใช้ Debug Resource Issues ได้

ขั้นที่ 4

แยกอาการ

Model
Texture
Collision
LOD

ขั้นที่ 5

ตรวจ YMAP/YTYP

ขั้นที่ 6

ตรวจ YDR/YTD/YBN

ขั้นที่ 7

ปิด Map อื่นบริเวณเดียวกัน

ขั้นที่ 8

ใช้

strdbg true

เพื่อตรวจ GTA Streamer ใน Developer Environment

ขั้นที่ 9

ใช้

strlist true

ดู Registered Streaming Entries

ขั้นที่ 10

ใช้

strmem true

ดู Streaming Memory

ขั้นที่ 11

ตรวจ LOD

ขั้นที่ 12

ใช้ resmon หาก Resource มี Scripts

ขั้นที่ 13

ใช้ Profiler หาก Runtime Resource หนักผิดปกติ

ขั้นที่ 14

สำหรับ Map/Collision Resource ขนาดใหญ่มาก พิจารณา save_gta_cache ตาม Official Workflow

ตารางสรุป FiveM Map โหลดไม่ครบหรือโหลดช้า

อาการจุดที่ควรตรวจ
Map ไม่ขึ้นเลยResource / YMAP / YTYP
อาคารขึ้นบางส่วนYMAP / YTYP / YDR
Texture ขาวYTD / Streaming
Texture ค่อย ๆ ชัดMemory / Texture Streaming
เดินทะลุCollision / YBN
Collision มาช้าMap/Collision Loading
อาคารโผล่เมื่อเข้าใกล้LOD / Streaming Distance
ไกลแล้วหายเร็วLOD
หมุนกล้องแล้ว Object หายBounds / LOD / Map Setup
Texture กระพริบGeometry/Map Conflict
Map โหลดแย่เมื่อรถเยอะStreaming Memory
Resource CPU สูงScript / resmon
Server HitchScript / Profiler
Map ใหญ่เข้า Server ช้าResource/Map/Collision Cache
เปิดเดี่ยวปกติ เปิดหลาย Map แล้วเสียMap Conflict
บาง Client ช้าClient Hardware/Streaming

Checklist Map Optimization

ตรวจอย่างน้อย

☐ Resource ทำงาน
☐ ไม่มี Console Error
☐ YMAP/YTYP ครบ
☐ YDR ครบ
☐ YTD ไม่ใหญ่เกินจำเป็น
☐ Collision ถูกต้อง
☐ มี LOD ตามความเหมาะสม
☐ LOD Geometry เบากว่า HD
☐ Material ของ LOD ไม่ซับซ้อนเกินไป
☐ ไม่มี Map ซ้อน
☐ ไม่มี Test Assets ปน Production
☐ ทดสอบ strmem
☐ ทดสอบ FPS
☐ ทดสอบ Client สเปกระดับกลาง

ควรล้าง Cache เมื่อ Map โหลดช้าหรือไม่

ไม่ควรเป็นคำตอบแรก

ถ้า

ผู้เล่นทุกคน
+
Map เดียวกัน
+
จุดเดียวกัน

โหลดผิดเหมือนกัน ให้ตรวจ Resource/Asset ก่อน

แต่ถ้า Server ปกติและเกิดกับ Client เครื่องเดียว จึงค่อยตรวจ Client State หรือ Cache เพิ่ม

FiveM มีเครื่องมือ Streaming Debug โดยตรง เช่น strdbg, strlist และ strmem จึงควรใช้ข้อมูลเหล่านี้ก่อนแก้แบบสุ่มในงาน Developer

ต้องเพิ่ม RAM Server ไหม

ไม่ควรตัดสินก่อนรู้ว่าปัญหาอยู่ฝั่งไหน

ถ้า

FPS ผู้เล่นตก
Texture โหลดช้า
Object Pop-in

ปัญหามีแนวโน้มเกี่ยวข้องกับ Client Rendering/Streaming มากกว่า RAM Dedicated Server เพียงอย่างเดียว

แต่ถ้ามี

Hitch Warning
Resource CPU สูง
Server Script หน่วง

จึงตรวจ Server Runtime/Script เพิ่ม FiveM แนะนำ Profiler สำหรับ Resources ที่ใช้เวลาทำงานสูงผิดปกติ

FiveM Map ที่โหลดดีควรเป็นอย่างไร

Map ที่ Optimize ดีควรมี

  • Model เหมาะสม

  • Texture Resolution สมเหตุสมผล

  • LOD สำหรับ Assets ที่ควรมี

  • Collision ไม่ซับซ้อนเกินจำเป็น

  • ไม่มี Duplicate Objects

  • ไม่มี Resource Conflict

  • Streaming ไม่ตันเมื่อมี Assets อื่น

  • Scripts ไม่กิน CPU ผิดปกติ

  • Initial Loading อยู่ในระดับเหมาะสม

ไม่จำเป็นต้องทำ Map ให้ File Size เล็กที่สุด แต่ต้องให้คุณภาพสัมพันธ์กับทรัพยากรที่ใช้

สรุป FiveM Map โหลดไม่ครบหรือโหลดช้า แก้อย่างไร

ถ้า FiveM Map โหลดไม่ครบหรือโหลดช้า ให้เลิกมองปัญหาเป็นเรื่องเดียว แล้วแบ่งออกเป็น

Resource
Streaming
Model
Texture
Collision
LOD
Memory
Script
Map Conflict

ก่อน

FiveM มีเครื่องมือ Streaming Debug อย่าง

strdbg
strlist
strmem

สำหรับดูสิ่งที่ GTA Streamer กำลังโหลด รายการ Asset ที่ลงทะเบียน และ Streaming Memory โดยตรง

หาก Map มีอาการ ไกลแล้วหายเร็วหรือโผล่เมื่อเข้าใกล้ ให้ตรวจ LOD เพราะ Cfx.re แนะนำให้ใช้ HD และ LOD Models ที่ต่างระดับรายละเอียด พร้อมเชื่อม YMAP Hierarchy และกำหนด Streaming Distance ให้เหมาะสม

หาก Map Resource มี Collision หรือ Map Files จำนวนมากมาก FiveM ยังมี save_gta_cache สำหรับช่วย Initial Loading ตาม Workflow อย่างเป็นทางการ แต่ไม่ได้ใช้แทนการ Optimize Asset

แนวทางของ comsiam คือทดสอบ Map เดี่ยวก่อน จากนั้นเพิ่มรถ MLO เสื้อผ้า และ Maps อื่นกลับเข้ามาทีละกลุ่ม พร้อมดู strmem, FPS และ Resource Performance เพราะ Map ที่ทำงานดีเมื่ออยู่เดี่ยวแต่เริ่มโหลดไม่ครบเมื่อ Server มี Assets จำนวนมาก มักต้องแก้จาก Asset Budget และ Streaming ภาพรวม ไม่ใช่ปรับ Map เพียงไฟล์เดียว

Comments

Popular posts from this blog

FiveM ยังน่าเล่นไหม? Enhanced เปลี่ยน FiveM แค่ไหน

FiveM คืออะไร เล่นอย่างไร สำหรับมือใหม่ เริ่มต้นตั้งแต่ศูนย์

วิธีตั้ง Admin Permission ด้วย add_ace และ add_principal FiveM แบบละเอียด