วิธี Optimize รถ FiveM ลด Server Lag และ FPS ตก รถเยอะแต่ยังลื่น
Server FiveM ที่เริ่มมี Custom Cars จำนวนมากมักเจอปัญหาคล้ายกัน เช่น FPS ตก Texture โหลดช้า รถกลายเป็นสีขาว Map โหลดไม่ทัน ใช้ RAM/VRAM สูง เข้า Server ช้า หรือกระตุกหนักเมื่อมีรถหลายคันรวมกัน
หลายคนแก้ด้วยการลดจำนวนรถทันที แต่ความจริงรถ Custom ไม่ได้หนักเท่ากันทุกคัน รถบางคันถูกสร้างและ Optimize มาดี ขณะที่อีกคันอาจมี Model ละเอียดเกินจำเป็น Texture จำนวนมาก หรือไม่มี LOD ที่เหมาะสม
FiveM รองรับ Streaming Assets ภายใน Resource และมีเครื่องมือสำหรับตรวจทั้ง Resource Performance และ Streaming ฝั่ง Client เช่น Resource Monitor, Profiler และคำสั่งเกี่ยวกับ Vehicle Texture Resolution ดังนั้นการ Optimize ควรเริ่มจากการวัดว่า ปัญหาเกิดจาก Model, Texture, Script หรือ Server ก่อนแก้แบบเดา
บทความนี้จาก comsiam จะอธิบายวิธี Optimize รถ FiveM ตั้งแต่ YFT, YTD, Polygon, Texture, LOD, Car Pack ไปจนถึงการตรวจ Performance จริงในเกม
Optimize รถ FiveM คืออะไร
การ Optimize รถ FiveM คือการทำให้ Vehicle Asset ใช้ทรัพยากรเท่าที่จำเป็น โดยยังรักษาคุณภาพของรถให้อยู่ในระดับที่เหมาะสม
เป้าหมายไม่ใช่เพียง
ลดขนาดไฟล์ให้เล็กที่สุด
แต่ต้องสมดุลระหว่าง
คุณภาพ Model
จำนวน Geometry
Texture
LOD
Streaming
Memory
FPS
จำนวนรถที่ใช้งานจริง
Script ที่ทำงานกับรถ
เพราะรถที่ไฟล์เล็กกว่าไม่ได้หมายความว่าจะทำงานดีกว่าเสมอ ถ้า Asset Structure ถูกทำผิด
① แยกก่อนว่า FPS ตกหรือ Server Lag
นี่เป็นจุดสำคัญที่สุด
คำว่า “Server Lag” มักถูกใช้รวมทุกอาการ ทั้งที่จริงอาจเป็นคนละปัญหา
FPS ตก
อาการเช่น
ภาพกระตุก
FPS จาก 100 เหลือ 40
เข้า Car Meet แล้ว FPS ลด
GPU/VRAM ใช้สูง
รถเยอะแล้วภาพหน่วง
ให้สงสัยฝั่ง Client Rendering/Streaming ก่อน
Server Lag
อาการเช่น
Entity ตอบสนองช้า
Script Delay
Server Tick มีปัญหา
ผู้เล่นหลายคนเจอความหน่วงพร้อมกัน
Resource ใช้ CPU สูง
ควรตรวจ Script และ Server Performance
Cfx.re มี Resource Monitor สำหรับดู CPU time และ Memory ของ Resource ฝั่ง Client รวมถึง Profiler สำหรับวิเคราะห์ Performance ของ Script/Resource โดยละเอียด
ดังนั้นอย่าเห็น FPS ต่ำแล้วสรุปว่า CPU Server ไม่พอทันที
② รถ Custom หนักตรงไหนได้บ้าง
รถ Custom หนึ่งคันสามารถมี Asset หลายส่วน เช่น
vehicle.yft
vehicle_hi.yft
vehicle.ytd
รวมถึง
Livery
Custom Wheels
Shared Textures
Custom Sound
Meta Files
Mod Parts
FiveM Resources สามารถประกอบด้วย Streaming Assets ซึ่ง Client ต้องโหลดเพื่อนำไปใช้งานในเกม
ดังนั้นรถหนึ่งคันที่มี Asset หนักมากอาจสร้างผลกระทบมากกว่ารถ Optimize ดีหลายคันรวมกัน
③ YFT คืออะไรในการ Optimize รถ
ไฟล์ .yft เป็น Vehicle Fragment Asset ที่เกี่ยวข้องกับ Model รถ
ในเชิงการ Optimize สิ่งที่ต้องสนใจคือความซับซ้อนของ Model และชิ้นส่วนที่รถมี
ตัวอย่างรถอาจมี
supercar.yft
supercar_hi.yft
อย่าดูเพียงขนาดไฟล์จาก Windows แล้วตัดสินว่ารถดีหรือไม่
ควรตรวจ Geometry และโครงสร้าง Asset จริงด้วยเครื่องมือสำหรับ GTA V Asset Workflow
Cfx.re มี Assets Manual ที่สอน Workflow ผ่าน CodeWalker, Blender และ Sollumz สำหรับการ Import, แก้ และ Export GTAV Assets
④ Polygon เยอะเกินไปมีผลอย่างไร
Model ที่มี Geometry ซับซ้อนกว่าจำเป็นเพิ่มภาระในการ Render
โดยเฉพาะเมื่อไม่ได้แสดงเพียงรถคันเดียว แต่มีรถจำนวนมากอยู่ใน Scene เดียวกัน
ตัวอย่างเช่น
1 รถละเอียดมาก → อาจยังลื่น
20 รถละเอียดมาก → ภาระเพิ่มอย่างชัดเจน
ดังนั้นอย่าทดสอบ Performance ด้วยการ Spawn รถเพียงหนึ่งคันแล้วสรุปว่า Asset เบา
ควรทดสอบในสถานการณ์ใกล้เคียงการเล่นจริง
⑤ อย่าถามแค่ว่า “รถกี่ Polygon ถึงดี”
ไม่มีตัวเลขเดียวที่เหมาะกับ Custom Vehicle ทุกประเภท
เพราะต้องดูด้วยว่า
รถมี Interior หรือไม่
Engine Bay ละเอียดแค่ไหน
มี Mod Parts กี่ชิ้น
มี Custom Wheels หรือไม่
มี LOD หรือไม่
รถถูกใช้พร้อมกันกี่คัน
เป้าหมายควรเป็นการลบ Geometry ที่ผู้เล่นแทบไม่เห็น โดยไม่ทำลายรูปร่างสำคัญของ Vehicle
⑥ ชิ้นส่วนที่มองไม่เห็นควรลดหรือไม่
ควรตรวจ
รถที่ Convert จากเกมหรือ 3D Model อื่นอาจมี Geometry ภายในจำนวนมาก เช่น
ชิ้นส่วนใต้รถละเอียดเกินไป
Engine Detail ที่มองไม่เห็น
Geometry ซ้อนกัน
Interior Detail จุดเล็กมาก
Parts ที่ไม่ได้ใช้
ถ้า Geometry ไม่มีผลกับภาพที่ผู้เล่นเห็นจริง การลดความซับซ้อนสามารถช่วยทำ Asset ให้มีประสิทธิภาพขึ้น
แต่ต้องตรวจ Bone, Material, Collision และ Vehicle Functions หลังแก้ทุกครั้ง
⑦ LOD สำคัญมากแค่ไหน
LOD ย่อมาจาก Level of Detail
แนวคิดคือใช้ Model ที่มีรายละเอียดแตกต่างกันตามระยะการมอง
Cfx.re Assets Manual อธิบายการสร้าง LOD โดยใช้ Model รายละเอียดเต็มสำหรับระยะใกล้ และ Model Geometry/Materials ที่ง่ายลงสำหรับระยะไกล
แนวคิดคือ
ใกล้ → รายละเอียดสูง
ไกล → รายละเอียดลดลง
ทำให้ไม่จำเป็นต้อง Render รายละเอียดสูงสุดตลอดเวลา
⑧ รถไม่มี LOD มีปัญหาอย่างไร
ถ้า Asset ไม่มี Level of Detail ที่เหมาะสม ระบบอาจต้องจัดการ Model ที่มีรายละเอียดสูงกว่าที่จำเป็นแม้ผู้เล่นอยู่ห่างออกไป
ผลกระทบจะชัดขึ้นเมื่อมี Vehicle จำนวนมาก
เช่น
Car Meet
Police Chase
Racing Event
Vehicle Showroom
Parking Area
จึงควรตรวจ LOD เป็นส่วนหนึ่งของ Asset Optimization ไม่ใช่ดูแต่ Texture
Cfx.re แนะนำหลักการสร้าง HD และ LOD Models แยกกัน โดย LOD ใช้ Geometry และ Materials ที่ง่ายกว่า
⑨ อย่าลด Polygon ของ Model หลักจนเสียรูป
Optimization ไม่ได้หมายถึง
500,000 polygons
↓
10,000 polygons
โดยไม่สนคุณภาพ
ควรลดส่วนที่ไม่จำเป็นและรักษา Silhouette สำคัญของรถ
เช่น
เส้นตัวถัง
ไฟ
กระจังหน้า
ล้อ
Interior ที่ผู้เล่นมองเห็น
เอาไว้
จากนั้นใช้ LOD เพื่อจัดการรายละเอียดตามระยะ
⑩ YTD สำคัญต่อ Performance อย่างไร
YTD คือ Texture Dictionary ซึ่งอาจเก็บ Texture จำนวนมากของ Vehicle
เช่น
Body
Interior
Dashboard
Wheels
Badge
Glass
Lights
Livery
Cfx.re Assets Manual แนะนำ Workflow สำหรับ Texture และระบุการใช้งาน Texture แบบ DDS ในการสร้าง GTAV Assets
ดังนั้น Vehicle Optimization ต้องตรวจ Texture ควบคู่กับ Model
⑪ Texture 4K ทุกไฟล์จำเป็นไหม
ไม่จำเป็น
สมมติรถมี
Body 4096×4096
Interior 4096×4096
Wheel 4096×4096
Badge 4096×4096
Livery 4096×4096
ถ้าทุก Asset ใช้ Resolution สูงโดยไม่มีเหตุผล Memory Requirement ก็สูงขึ้น
FiveM มีคำสั่ง str_maxVehicleTextureRes สำหรับจำกัด Maximum Vehicle Texture Resolution และเอกสารระบุชัดว่าคำสั่งนี้สามารถช่วยลดโอกาสที่ Physical Memory จะหมด โดยแลกกับคุณภาพภาพที่ลดลง
นี่เป็นหลักฐานชัดว่าความละเอียดของ Vehicle Textures มีความสัมพันธ์กับ Memory Pressure ฝั่ง Client
⑫ str_maxVehicleTextureRes คืออะไร
FiveM มี Client Console Setting
str_maxVehicleTextureRes
เอกสาร Cfx.re ระบุว่าใช้จำกัด Maximum Resolution ของ Vehicle Textures เพื่อช่วยลดปัญหา Physical Memory ไม่เพียงพอ โดยค่า Default ที่เอกสารปัจจุบันระบุคือ 1024
อย่างไรก็ตาม การใช้คำสั่งนี้ควรมองเป็นเครื่องมือฝั่ง Client หรือ Diagnostic Aid
ไม่ใช่ข้ออ้างให้ Server ใส่ Texture ขนาดใหญ่มากโดยไม่ Optimize Asset ต้นทาง
⑬ ควรลด Texture อะไรก่อน
ให้ดูจากความสำคัญของภาพจริง
ตัวอย่าง
Body Texture
ผู้เล่นมองเห็นชัด ควรรักษาคุณภาพให้เหมาะสม
Badge เล็กมาก
อาจไม่ต้องใช้ Resolution สูงมาก
Interior Detail เล็ก
ควรพิจารณาตามระยะมองจริง
Livery
ดูตามขนาดตัวหนังสือและ Logo
Texture ที่ไม่ใช้
ควรตรวจ Reference และเอาออกเมื่อยืนยันแล้วว่าไม่ถูกใช้งาน
อย่าลดทุก Texture เหลือขนาดเดียวกัน
⑭ Texture ซ้ำควรตรวจหรือไม่
ควร
Car Pack ที่รวมรถจากหลาย Developer อาจมี Texture หรือ Shared Assets หลายชุด
ก่อนลบต้องตรวจ Reference ให้ชัด
เพราะรถบางคันอาจใช้ Shared Texture ร่วมกัน
การลบเพียงเพราะเห็นชื่อคล้ายกันอาจทำให้
รถขาว
Interior หาย
Wheels ไม่มี Texture
Livery หาย
ดังนั้น Optimize ต้องมี Backup เสมอ
⑮ DDS Compression สำคัญหรือไม่
สำคัญใน Asset Pipeline
Cfx.re Assets Manual ระบุการใช้ Texture ที่บีบอัดใน .dds และแนะนำ Nvidia Texture Tools เป็นหนึ่งในเครื่องมือสำหรับสร้าง DDS Textures ใน Workflow ตัวอย่าง
การเลือก Compression ต้องสัมพันธ์กับ Texture Type และ Alpha
อย่าใช้ Compression Setting เดียวกับ Texture ทุกประเภทโดยไม่ดูว่าเป็น
Diffuse
Normal
Specular
Alpha
เพราะคุณภาพและการแสดงผลอาจเสียได้
⑯ Mipmap ควรมีหรือไม่
สำหรับ Texture ที่ต้องแสดงผลหลายระยะ Mipmap เป็นส่วนสำคัญของ Texture Workflow โดยทั่วไป
เป้าหมายคือให้ระบบสามารถใช้รายละเอียดที่เหมาะสมตามระยะ แทนการใช้ภาพความละเอียดสูงสุดตลอด
อย่างไรก็ตาม ต้อง Export ตาม Asset Workflow ที่ถูกต้อง
ถ้า Mipmap หรือ Texture ถูกสร้างผิด อาจเห็นอาการ
ลายเบลอผิดปกติ
Texture กระพริบ
ระยะใกล้/ไกลเปลี่ยนแปลก
ดังนั้นหลัง Optimize Texture ต้องทดสอบในเกมจริง
⑰ Livery จำนวนมากเพิ่มภาระหรือไม่
Livery ก็คือ Texture Asset
รถตำรวจหนึ่ง Model อาจมี
10 Liveries
รถอีก 20 Model ก็มีหลาย Livery เช่นกัน
เมื่อ Content Library โตขึ้น ปริมาณ Resource ที่ Client ต้องเข้าถึงก็เพิ่มขึ้นตาม Asset ที่ Server ใช้
ดังนั้นควร
ลดลายที่ไม่ใช้
เลือก Resolution เหมาะสม
หลีกเลี่ยง Texture ซ้ำ
ตรวจ Alpha/Compression
แทนการเก็บทุกไฟล์ที่เคยสร้างไว้ใน Production Pack
⑱ Custom Wheels ต้อง Optimize ด้วยหรือไม่
ต้อง
รถบางคัน Model หลักไม่ได้หนักมาก แต่ Custom Wheels มีรายละเอียดสูงมาก
และรถหนึ่งคันมี 4 ล้อ
เมื่อมีรถจำนวนมากใน Scene ภาระ Geometry จาก Wheels สามารถสะสมได้
ควรตรวจ
Wheel Geometry
Wheel Texture
LOD
Parts ที่ซ้ำ
Custom Wheel Pack
ร่วมกับตัวรถ
⑲ Interior ต้องละเอียดที่สุดหรือไม่
ขึ้นอยู่กับ Gameplay
ถ้า Server เน้น
First Person
Racing Cockpit
Car Photography
Interior Detail มีความสำคัญ
แต่ถ้าผู้เล่นส่วนใหญ่ขับ Third Person รายละเอียดเล็กมากภายในรถอาจไม่ต้องสูงสุดทุกส่วน
Optimization ที่ดีต้องดู สิ่งที่ผู้เล่นเห็นจริง
ไม่ใช่รักษา Geometry ทุก Polygon จาก Source Model
⑳ Engine Bay ต้องละเอียดมากไหม
หลักเดียวกัน
ถ้ารถมี
Hood Opening
Mechanic Inspection
Car Show
Engine Customization
Engine Bay มีความสำคัญ
แต่ถ้า Hood ไม่เคยเปิดและผู้เล่นไม่เห็น Engine Model ส่วนใหญ่ การเก็บ Geometry ละเอียดมากอาจไม่คุ้มกับทรัพยากร
ควร Optimize ตาม Gameplay ของ Server
㉑ Collision ต้อง Optimize หรือไม่
ต้องพิจารณาเช่นกัน
Cfx.re Assets Manual อธิบายการสร้าง Collision ผ่าน Bound Geometry และ Primitive Shapes โดยแยก Collision Geometry ออกจาก Visual Drawable Workflow
หลักสำคัญคือ Collision ไม่ควรซับซ้อนกว่าที่ Gameplay ต้องการ
แต่การลดผิดอาจทำให้
รถชนทะลุ
Collision ไม่ตรง Body
Vehicle Physics แปลก
ดังนั้นควรทดสอบหลังแก้
㉒ ไม่ควรใช้ Visual Mesh ทั้งหมดเป็น Collision แบบไม่ตรวจ
Visual Model อาจมีรายละเอียดมากกว่าที่ Collision ต้องใช้มาก
แนวคิดของ Asset Workflow คือ Collision สามารถสร้างจาก Mesh หรือ Primitive ที่เหมาะสมแยกจาก Drawable ได้
จึงควรใช้ Collision ที่มีรายละเอียดพอสำหรับ Gameplay แทนการพยายามจำลองรายละเอียดเล็กทุกจุดของ Body
㉓ Car Pack ใหญ่ทำให้ FPS ตกเสมอไหม
ไม่เสมอ
Car Pack 200 คันที่จัด Asset ดีอาจทำงานดีกว่า Pack 50 คันที่มี Texture และ Model หนักมาก
สิ่งที่ต้องดูคือ
Asset ที่กำลังถูกโหลด
รถที่อยู่ใน Scene
Texture Memory
Geometry
Scripts
จำนวน Entity
ไม่ใช่ดูจำนวน Folder รถเพียงอย่างเดียว
㉔ รวมรถทั้งหมด Resource เดียวดีที่สุดไหม
ไม่จำเป็น
FiveM Server ทำงานจาก Resources ซึ่งสามารถ Start, Stop และ Restart แยกกัน และ Resource สามารถประกอบด้วยทั้ง Scripts และ Streaming Assets
สำหรับ Server ใหญ่สามารถแบ่ง เช่น
[cars]/
├── civilian_pack_01/
├── civilian_pack_02/
├── police_pack/
├── ems_pack/
├── jdm_pack/
└── supercar_pack/
ข้อดีคือ
Debug ง่าย
Update ง่าย
ปิด Pack ทดสอบง่าย
หา Asset เสียง่าย
ลดความเสี่ยงจากการ Merge Meta ทั้งหมดเข้าก้อนเดียว
㉕ Resource เยอะทำให้ Lag เสมอไหม
จำนวน Resource เพียงอย่างเดียวไม่เพียงพอที่จะตัดสิน Performance
ต้องดูว่า Resource เหล่านั้นทำอะไร
Resource ที่มีเฉพาะ Data/Streaming Asset ต่างจาก Resource ที่มี Script Loop ทำงานตลอดเวลา
Cfx.re Resource Monitor สามารถแสดง CPU usage และ Memory ของแต่ละ Resource ฝั่ง Client จึงควรใช้ข้อมูลจริงก่อนสรุปว่า Resource ใด “หนัก”
㉖ ใช้ resmon ตรวจรถได้ไหม
resmon เหมาะสำหรับตรวจ Resource Runtime Performance มากกว่าใช้วัดจำนวน Polygon ของรถ
Resource Monitor สามารถช่วยดูได้ว่า Resource ใดใช้ CPU time และ Memory มากผิดปกติ
ถ้าเพิ่ม Car Pack แล้ว FPS ตก แต่ resmon แสดง Script Resource หนึ่งใช้ CPU สูงมาก ปัญหาอาจไม่ใช่ Model รถเลย
ดังนั้นต้องแยก
Asset Performance
กับ
Script Performance
ออกจากกัน
㉗ FiveM Profiler ใช้ทำอะไร
FiveM มี Profiler สำหรับ Capture Performance Profile ของ Client หรือ Server Resource
Cfx.re มีคู่มือการใช้ Profiler โดยตรงสำหรับวิเคราะห์ Performance และ Resource Code
เหมาะเมื่อ Server มีอาการ
Script หน่วง
Resource ใช้เวลาประมวลผลสูง
ต้องการหาว่า Function ใดหนัก
แต่ Profiler ไม่ใช่เครื่องมือแทนการตรวจ Geometry/YTD ของ Vehicle Model
㉘ Asset กับ Script ต้อง Debug แยกกัน
ตัวอย่างรถหนึ่งคันอาจมาพร้อม Script เช่น
Engine Sound Controller
Vehicle Control
Extra Controller
Drift Script
Vehicle Damage Script
ถ้า FPS ลดหลังลง Pack อย่าลบ YTD ทันที
ลองปิด Script ที่เกี่ยวข้องแล้ว Test Asset ก่อน
จากนั้นจึงแยกได้ว่า
Model/Texture หนัก
หรือ
Script หนัก
Resource Monitor และ Profiler ของ FiveM ถูกสร้างมาเพื่อช่วยวิเคราะห์ Resource Runtime ในสถานการณ์ลักษณะนี้
㉙ รถคันเดียวลื่น แต่ Spawn 20 คันแล้วกระตุก
นี่เป็น Test ที่มีประโยชน์มาก
หนึ่ง Asset อาจดูไม่มีปัญหาเมื่ออยู่คนเดียว
แต่ Server จริงอาจมี
Police 10 คัน
Civilian 30 คัน
NPC Vehicles
Map
MLO
Clothes
Props
HUD
อยู่พร้อมกัน
ดังนั้นควรทดสอบ Stress Scenario เช่น
10 คัน
20 คัน
หลาย Model
หลาย Livery
แล้วดู FPS และ Memory
㉚ Car Meet เป็นจุดทดสอบที่ดี
สร้างพื้นที่ Test ที่ Spawn Custom Vehicles หลายรุ่นพร้อมกัน
จากนั้นลอง
เดินเข้าใกล้
ขับผ่าน
หมุนกล้อง
เข้า First Person
ขึ้นรถ
ออกห่าง
กลับเข้าพื้นที่
ดูว่าเกิด
FPS Drop
Texture Loss
Stutter
Model Pop-in
Memory Pressure
หรือไม่
Test แบบนี้สะท้อนสถานการณ์ Server จริงได้ดีกว่า Spawn รถหนึ่งคันหน้า Garage
㉛ Texture หายเมื่อรถเยอะคือสัญญาณอะไร
ถ้ารถหนึ่งคัน Texture ปกติ แต่เมื่อมีรถ Custom จำนวนมากแล้วเริ่มเห็น
Texture ขาว
Texture เบลอ
Map โหลดช้า
Asset โผล่ช้า
ให้ตรวจ Streaming/Memory ภาพรวม
FiveM มี str_maxVehicleTextureRes โดยระบุว่าการลด Maximum Vehicle Texture Resolution สามารถช่วยลดปัญหา Physical Memory หมดได้ จึงเป็นเครื่องมือหนึ่งที่ช่วยยืนยันว่าความละเอียด Texture และ Memory Pressure มีความสัมพันธ์กัน
㉜ อย่าให้ผู้เล่นแก้ str_maxVehicleTextureRes เพื่อชดเชย Asset ที่แย่
คำสั่งดังกล่าวมีประโยชน์สำหรับ Client Configuration และการวิเคราะห์ปัญหา
แต่ Server Owner ควร Optimize Asset ต้นทางด้วย
แนวคิดที่ดีกว่าคือ
Asset ดี
+
Texture เหมาะสม
+
LOD
+
Client Settings เหมาะสม
ไม่ใช่
Asset หนักมาก
+
บังคับผู้เล่นลดคุณภาพ
㉝ รถบางคันหนักมากควรลบออกเลยไหม
ไม่จำเป็นต้องลบทันที
ให้ทดสอบก่อนว่า Optimize ได้หรือไม่
ลำดับที่ควรทำ เช่น
Backup
ตรวจ Model
ตรวจ Texture
ตรวจ LOD
ตรวจ Livery
ตรวจ Custom Wheels
ตรวจไฟล์ไม่ได้ใช้
Optimize
Test เปรียบเทียบ
ถ้าใช้เวลาแก้มากเกินไปเมื่อเทียบกับคุณค่าของรถ จึงค่อยพิจารณาเปลี่ยน Asset
㉞ อย่าลด Texture ทั้ง Pack อัตโนมัติแบบไม่ตรวจ
การ Batch Resize ทุก YTD ลงครึ่งหนึ่งอาจเร็ว แต่ไม่ใช่ Optimization ที่ดีที่สุดเสมอ
เพราะ Texture มีหน้าที่ต่างกัน
บางไฟล์ต้องการรายละเอียด
บางไฟล์ไม่ต้องการมาก
บางไฟล์มี Alpha
บางไฟล์เป็น Normal Map
บางไฟล์เป็น Specular
Cfx.re Assets Manual แสดงให้เห็นว่า Asset Workflow สามารถมี Diffuse, Normal และ Specular Textures ที่ถูกนำไปใช้กับ Shader ต่างกัน
ดังนั้นควรตรวจ Texture Type ก่อนแก้
㉟ ลบไฟล์ที่ไม่ใช้ได้ไหม
ได้เมื่อยืนยันแล้วว่าไม่มี Reference
ตัวอย่าง Resource ที่ผ่านการแก้หลายครั้งอาจมี
old_livery.ytd
backup.ytd
test_model.yft
unused_texture.ytd
ถ้าไฟล์ถูก Streaming โดยไม่จำเป็นก็ควรจัด Production Resource ให้สะอาด
แต่ต้อง Backup ก่อน
และไม่ควรลบ Shared Asset เพียงเพราะชื่อดูเหมือนไม่เกี่ยวกับ Vehicle Model
㊱ ไฟล์ Backup ควรอยู่ใน Resource Production ไหม
ไม่ควรเก็บไฟล์สำรองแบบที่อาจถูกระบบ Resource/Streaming มองเป็น Content ที่ใช้งานอยู่โดยไม่จำเป็น
ควรแยก Backup ออกจาก Production Resource เช่น
backup/
development/
source/
ไว้นอก Folder ที่ Server ใช้งานจริงตาม Workflow ของทีม
Production Resource ควรมีเฉพาะไฟล์ที่ต้องใช้งาน
㊲ Custom Sound ต้อง Optimize ด้วยหรือไม่
ควรจัดการเช่นกัน
รถที่มี Custom Sound จำนวนมากจะมี Audio Assets เพิ่ม
แม้เสียงไม่ได้ใช้ทรัพยากรในรูปแบบเดียวกับ Model/Texture แต่ควร
ลบ Sound ที่ไม่ได้ใช้
ไม่ Duplicate Pack โดยไม่จำเป็น
รวม/แยก Resource อย่างมีระบบ
ตรวจ Dependency
ตรวจไฟล์ซ้ำ
เพื่อไม่ให้ Resource Library เติบโตแบบควบคุมไม่ได้
㊳ Meta Files ทำให้ FPS ตกมากไหม
ไฟล์เช่น
handling.meta
vehicles.meta
carcols.meta
carvariations.meta
ไม่ใช่ Visual Asset แบบ YFT/YTD
ดังนั้นถ้าปัญหาหลักคือ FPS ตกเมื่อมองรถ ให้เริ่มตรวจ
Model
Texture
LOD
จำนวนรถ
Script
ก่อน
Meta File ควรตรวจเมื่อพฤติกรรมหรือ Configuration ของรถผิด
㊴ handling.meta ทำให้ Server Lag ไหม
Base Handling Data ไม่ควรถูกมองเป็นตัวการหลักของ Server Performance
แต่ถ้ามี Script เรียก Native ปรับ Handling ของรถจำนวนมากทุก Frame โดยไม่จำเป็น ปัญหานั้นเป็น Script Runtime Problem
จึงควรตรวจ Resource ด้วย resmon หรือ Profiler แทนการลดขนาด handling.meta
㊵ Car Script ที่ Loop ทุก Frame ต้องระวัง
Script ตัวอย่างแนวคิด
while true do
Wait(0)
-- ค้นหารถจำนวนมาก
-- ตรวจค่าจำนวนมาก
-- เปลี่ยนค่าทุก Frame
end
ไม่ควรถูกถือว่า Optimize เพียงเพราะไฟล์ .lua มีขนาดไม่กี่ KB
Performance ของ Script ขึ้นกับสิ่งที่มันทำตอน Runtime
FiveM Profiler และ Resource Monitor จึงมีประโยชน์กว่าการดู File Size ของ Script
㊶ รถ Enhanced ต้องตรวจ Compatibility ด้วย
FiveM มีเครื่องมือ Alchemist สำหรับ Convert Assets เดิมจาก GTAV Legacy ไปยัง GTAV Enhanced และ Refine Legacy Assets ที่อาจมี Format หรือ Compatibility Issues จากเครื่องมือรุ่นเก่า
Alchemist รองรับไฟล์หลายประเภท รวมถึง YFT และ YTD ซึ่งเกี่ยวข้องโดยตรงกับ Vehicle Assets
ดังนั้นใน Server ที่รองรับ Asset Workflow ใหม่ ควรแยก
ปัญหา Optimization
ออกจาก
ปัญหา Asset Compatibility
ด้วย
㊷ Alchemist ใช้ลด Polygon รถหรือไม่
ไม่ควรมองว่า Alchemist เป็นปุ่ม Optimize รถทุกอย่างอัตโนมัติ
เอกสาร Cfx.re ระบุจุดประสงค์หลักว่าใช้ Convert Legacy Assets ให้เข้ากับ GTAV Enhanced และ Refine Formatting/Compatibility Issues ของ Legacy Assets โดยรองรับ YDR, YTD, YFT, YPT และ YDD
ถ้าต้องการแก้ Geometry, LOD หรือ Texture จริง ยังต้องใช้ Asset Editing Workflow ที่เหมาะสม
㊸ วิธีหา “รถตัวปัญหา” ใน Car Pack
อย่า Optimize 200 คันพร้อมกัน
ใช้วิธีแบ่งกลุ่ม
ตัวอย่างมี 100 คัน
Pack A = 1–25
Pack B = 26–50
Pack C = 51–75
Pack D = 76–100
ทดสอบทีละกลุ่ม
ถ้า Pack C มีปัญหาชัด ให้แบ่ง Pack C ต่อ
51–62
63–75
จนหารุ่นที่สร้างปัญหาได้
นี่ช่วยลดขอบเขตการ Debug ได้มาก
㊹ จัดอันดับรถก่อน Optimize
สามารถสร้างรายการง่าย ๆ เช่น
Vehicle
YFT Size
YTD Size
Livery Count
Custom Sound
LOD
Status
จากนั้นเรียงรถที่มี Asset ใหญ่ผิดปกติขึ้นมาตรวจก่อน
อย่าตัดสินจาก File Size เพียงตัวเดียว แต่ใช้เป็นจุดเริ่มต้นสำหรับหา Outlier ได้
㊺ ทดสอบก่อนและหลัง Optimize
ควรมี Baseline
ตัวอย่าง
ก่อน Optimize
FPS = ...
Memory = ...
Texture Load = ...
จำนวนรถ = 20
จากนั้นทดสอบสภาพเดียวกันหลังแก้
หลัง Optimize
FPS = ...
Memory = ...
Texture Load = ...
จำนวนรถ = 20
ถ้าปรับ Asset แล้วไม่มีความแตกต่าง อย่าสรุปทันทีว่า Optimize สำเร็จ
ต้องดูว่าปัญหาจริงอาจมาจาก Resource อื่น
㊻ อย่าทดสอบคนละสถานที่
Performance Test ควรควบคุมตัวแปรให้ใกล้เคียงกัน
ใช้
จุดเดียวกัน
เวลาใกล้เคียงกัน
จำนวนรถเท่ากัน
รถชุดเดียวกัน
Graphic Settings เดิม
Client เครื่องเดิม
เพื่อลด Noise ของผลทดสอบ
ไม่เช่นนั้นอาจคิดว่า Optimize ดีขึ้นเพียงเพราะทดสอบในพื้นที่ที่ Map เบากว่า
㊼ ควรทดสอบกับคอมสเปกกลาง
Developer มักใช้เครื่องแรง
ถ้าทดสอบเฉพาะ
GPU ระดับสูง
RAM เยอะ
VRAM สูง
SSD เร็ว
Asset ที่หนักอาจไม่แสดงปัญหาชัด
แต่ผู้เล่นส่วนใหญ่ไม่ได้ใช้เครื่องระดับเดียวกัน
จึงควรมี Test Client ระดับกลางด้วย โดยเฉพาะ Server ที่ต้องการรองรับผู้เล่นจำนวนมาก
㊽ อย่า Optimize จนรถเสีย Feature
หลังแก้ทุกคันต้องทดสอบ
Spawn
Texture
Interior
Lights
Doors
Windows
Wheels
Livery
Mods
Extras
Collision
Damage
Sound
Driving
รถที่ FPS ดีขึ้นแต่
ประตูเปิดไม่ได้
Livery หาย
ล้อหาย
Collision พัง
ถือว่า Optimize ไม่สำเร็จ
㊾ Checklist Optimize รถ FiveM
ใช้ Checklist นี้ได้
Model
Geometry เหมาะสม
ไม่มีรายละเอียดเกินจำเป็น
Parts ที่ไม่ใช้ถูกตรวจแล้ว
LOD เหมาะสม
Texture
Resolution เหมาะกับขนาดที่มองเห็น
ไม่มี 4K โดยไม่มีเหตุผล
Compression ถูกต้อง
Mipmap เหมาะสม
ไม่มี Texture ซ้ำที่ไม่จำเป็น
Livery
เก็บเฉพาะลายที่ใช้
Resolution ไม่สูงเกิน
Alpha ถูก
ไม่มี Duplicate
Collision
ไม่ซับซ้อนเกิน Gameplay
Collision ยังตรงกับรถ
Resources
ไม่มี Test Files
ไม่มี Backup Files ปน Production
ไม่มีรถซ้ำ
Resource แบ่งเป็นระบบ
Scripts
ตรวจ
resmonตรวจ Profiler หากจำเป็น
หลีกเลี่ยง Runtime Loop ที่ไม่จำเป็น
Cfx.re มีทั้ง Resource Monitor และ Profiler สำหรับช่วยแยกปัญหา Script Performance ออกจาก Asset Performance
㊿ วิธี Optimize Car Pack FiveM แบบเป็นขั้นตอน
ถ้ามี Car Pack ใหญ่ ให้ใช้ Workflow นี้
ขั้นที่ 1 — Backup
เก็บ Original Pack ก่อนแก้
ขั้นที่ 2 — ตรวจรถทีละกลุ่ม
อย่าเริ่ม 200 คันพร้อมกัน
ขั้นที่ 3 — ตรวจ YFT
หา Model ที่ซับซ้อนผิดปกติ
ขั้นที่ 4 — ตรวจ YTD
หา Texture ความละเอียดสูงหรือ Dictionary ที่ใหญ่ผิดปกติ
ขั้นที่ 5 — ตรวจ Livery
เอาลายที่ไม่ใช้และ Duplicate ออกจาก Production เมื่อยืนยัน Reference แล้ว
ขั้นที่ 6 — ตรวจ LOD
หลักการ LOD คือใช้ Geometry/Materials ที่ง่ายลงเมื่อไม่ต้องแสดงรายละเอียดเต็ม ซึ่ง Cfx.re มี Workflow สำหรับ HD/LOD Assets โดยตรง
ขั้นที่ 7 — ตรวจ Collision
ให้เหมาะสมกับ Vehicle
ขั้นที่ 8 — ตรวจ Resource
ลบ Development Files ออกจาก Production
ขั้นที่ 9 — ตรวจ Script
ใช้ Resource Monitor
ขั้นที่ 10 — ใช้ Profiler เมื่อปัญหามาจาก Runtime
FiveM มี Profiler สำหรับ Capture และวิเคราะห์ Resource Performance โดยตรง
ขั้นที่ 11 — Stress Test
Spawn รถหลายคัน
ขั้นที่ 12 — Compare ก่อน/หลัง
เก็บผลจริง
ตารางสรุปปัญหารถ FiveM กับจุดที่ควร Optimize
| อาการ | จุดที่ควรตรวจ |
|---|---|
| มองรถแล้ว FPS ตก | Model / Texture |
| รถเยอะแล้ว FPS ตก | Geometry / LOD / Texture |
| Texture รถหาย | YTD / Streaming / Memory |
| รถกลายเป็นขาวเมื่อรถเยอะ | Streaming / Vehicle Texture Memory |
| เข้า Car Meet แล้วกระตุก | จำนวน Asset ใน Scene |
| รถคันเดียวหนักมาก | YFT / YTD / Mods |
| Livery เยอะมาก | Texture/Livery |
| Model ไกล ๆ ยังหนัก | LOD |
| รถชนแล้ว Physics แปลก | Collision / Handling |
| Resource CPU สูง | Script / resmon |
| Server Runtime หน่วง | Script / Profiler |
| Enhanced แล้ว Asset ผิด | Compatibility / Alchemist |
| Pack เดี่ยวดี รวมแล้วหนัก | Asset Aggregate / Conflict |
| เครื่องแรงลื่น เครื่องกลางกระตุก | Client Resource Budget |
Optimize รถหรือเพิ่มสเปก Server ก่อน
ต้องดูต้นเหตุ
ถ้าอาการคือ
GPU/VRAM Client เต็ม + FPS ลดเมื่อมองรถ
เพิ่ม CPU/RAM ของ Dedicated Server อาจไม่แก้ปัญหาหลัก
แต่ถ้าอาการคือ
Server Script ใช้ CPU สูง
ลด Texture รถก็ไม่แก้ Script Loop เช่นกัน
จึงต้องแยก
Rendering
Streaming
Client Script
Server Script
Network
ก่อนใช้เงิน Upgrade Hardware
Resource Monitor และ Profiler ของ FiveM มีไว้ช่วยวิเคราะห์ส่วนของ Resource Runtime แทนการคาดเดา
รถ FiveM ที่ Optimize ดีควรเป็นอย่างไร
รถที่ดีไม่จำเป็นต้องเป็นรถที่ File Size เล็กที่สุด
แต่ควรมีลักษณะประมาณนี้
ภาพสวยในระยะใช้งานจริง
Texture ไม่ใหญ่เกินเหตุ
Geometry สมเหตุสมผล
มี LOD ตามความเหมาะสม
Collision ถูกต้อง
ไม่มีไฟล์ซ้ำโดยไม่จำเป็น
Livery ถูกจัดการดี
Function รถยังครบ
ใช้ร่วมกับรถหลายคันแล้ว FPS ไม่ตกผิดปกติ
-ไม่มี Script หนักโดยไม่จำเป็น
ควร Optimize รถก่อนเพิ่มเข้า Production หรือไม่
ควร
Workflow ที่ปลอดภัยคือ
Download/ซื้อ Asset
↓
License Check
↓
Test Resource
↓
ตรวจ Model
↓
ตรวจ Texture
↓
ตรวจ LOD
↓
ตรวจ Meta
↓
Performance Test
↓
Optimize
↓
Stress Test
↓
Production
ไม่ควรนำรถทุกคันเข้า Production ก่อนแล้วค่อย Optimize เมื่อผู้เล่นเริ่มแจ้งว่า Texture หาย
สรุป วิธี Optimize รถ FiveM ลด Server Lag และ FPS ตก
ถ้าต้องการ Optimize รถ FiveM ให้ได้ผลจริง อย่าเริ่มจากลด Texture ทุกไฟล์หรือรวมรถทั้งหมดเป็น Resource เดียว
ให้แยกก่อนว่าเป็น
Client FPS/Streaming Problem
หรือ
Server/Script Performance Problem
ถ้าเป็นปัญหาฝั่ง Asset ให้ตรวจตามลำดับ
YFT → Geometry → LOD → YTD → Texture Resolution → Livery → Wheels → Collision → จำนวนรถที่อยู่ใน Scene
Cfx.re มีเอกสารเกี่ยวกับ LOD ที่แนะนำการใช้ Model รายละเอียดลดลงสำหรับระยะไกล และ FiveM ยังมี str_maxVehicleTextureRes ซึ่งถูกออกแบบมาเพื่อจำกัด Vehicle Texture Resolution และช่วยลดโอกาส Physical Memory หมดฝั่ง Client
ถ้าสงสัย Script ให้ใช้
Resource Monitor → Profiler
เพราะ Cfx.re มีเครื่องมือทั้งสองสำหรับตรวจ CPU/Memory และ Performance ของ Resources โดยตรง
แนวทางของ comsiam คืออย่าตัดสินคุณภาพ Car Pack จากจำนวนรถหรือขนาด ZIP เพียงอย่างเดียว แต่ให้ทดสอบรถหลายคันพร้อมกันในสถานการณ์จริง เพราะเป้าหมายของการ Optimize ที่ดีคือ รถยังสวย Feature ครบ แต่ใช้ทรัพยากรเท่าที่จำเป็นและไม่ทำลายประสบการณ์ของผู้เล่นเมื่อ Server มี Custom Assets จำนวนมาก
Comments
Post a Comment