FiveM Livery คืออะไร และวิธีเพิ่มลายรถ Custom ให้ใช้งานได้

 ถ้าเคยเห็นรถตำรวจ FiveM คันเดียวกันแต่สามารถเปลี่ยนได้หลายหน่วยงาน หรือรถแข่งที่เปลี่ยนลาย Sponsor ได้หลายแบบ สิ่งเหล่านี้มักเกี่ยวข้องกับ Livery

Livery คือระบบลวดลายหรือกราฟิกที่แสดงบนพื้นผิวรถ โดยช่วยให้สามารถใช้ Vehicle Model เดิม แต่เปลี่ยนรูปลักษณ์ภายนอกได้หลายแบบโดยไม่จำเป็นต้องสร้างรถใหม่หนึ่ง Model สำหรับทุกลาย

FiveM มี Native สำหรับระบบ Livery โดยตรง เช่น GET_VEHICLE_LIVERY_COUNT สำหรับตรวจจำนวน Livery และ SET_VEHICLE_LIVERY สำหรับเลือก Livery ของ Vehicle ที่รองรับระบบนี้

บทความนี้จาก comsiam จะอธิบายว่า FiveM Livery คืออะไร ทำงานอย่างไร วิธีเพิ่มลายรถ วิธีเปลี่ยนลายด้วย Script และวิธีแก้เมื่อ Livery ไม่ขึ้นหรือเลือกแล้วรถไม่เปลี่ยน

FiveM Livery คืออะไร

FiveM Livery คือ Texture หรือลวดลายที่ถูกออกแบบให้แสดงบน Vehicle Model เพื่อเปลี่ยนรูปลักษณ์ของรถโดยไม่ต้องเปลี่ยน Model หลัก

ตัวอย่างเช่นรถตำรวจ Model เดียว

policecustom

สามารถมี Livery หลายชุด เช่น

Livery 0 = Police
Livery 1 = Sheriff
Livery 2 = Highway Patrol
Livery 3 = Tactical Unit

ผู้เล่นยังใช้รถ Model เดิม แต่เปลี่ยนเพียง Texture/Livery ที่แสดงอยู่บน Body ของรถ

วิธีนี้ช่วยลดความจำเป็นในการทำ Vehicle Model ซ้ำหลายคันเพียงเพื่อเปลี่ยนลาย

① Livery ต่างจากสีรถอย่างไร

สองอย่างนี้ไม่เหมือนกัน

สีรถ

เป็นสีพื้นฐานของ Body เช่น

  • ดำ

  • ขาว

  • แดง

  • น้ำเงิน

  • เขียว

สามารถเปลี่ยนผ่านระบบ Vehicle Color

Livery

เป็นรูปภาพหรือลวดลายที่วางบนตัวรถ เช่น

  • Logo

  • ตัวอักษร

  • หมายเลข

  • Sponsor

  • ลายตำรวจ

  • ลาย EMS

  • ลายบริษัท

  • Racing Graphic

ตัวอย่างรถตำรวจอาจใช้ Body สีดำ แต่มี Livery เป็นตัวอักษร

POLICE

และ Logo ของหน่วยงานอยู่บนประตู

ดังนั้นการเปลี่ยนสีรถไม่ได้หมายความว่าจะเปลี่ยน Livery ด้วย

② รถหนึ่งคันมีหลาย Livery ได้หรือไม่

ได้ ถ้า Vehicle Asset ถูกสร้างให้รองรับ

FiveM มี Native

GET_VEHICLE_LIVERY_COUNT

สำหรับตรวจจำนวน Livery ของ Vehicle โดย Native Reference ระบุว่าค่าที่คืนมาจะบอกจำนวน Livery ที่รถรองรับ และสามารถคืน -1 หาก Vehicle ไม่มีระบบ Livery ประเภทนั้น

ตัวอย่างแนวคิด

local count = GetVehicleLiveryCount(vehicle)

print(count)

ถ้ารถรองรับ 5 ลาย ระบบก็สามารถนำจำนวนดังกล่าวไปสร้างเมนูเลือก Livery ได้

③ วิธีเปลี่ยน Livery รถ FiveM

FiveM มี Native

SET_VEHICLE_LIVERY

รูปแบบคือ

SetVehicleLivery(vehicle, livery)

โดย Parameter livery คือ Index ของลายที่ต้องการใช้

ตัวอย่าง

SetVehicleLivery(vehicle, 0)

เลือกลายที่ 0

หรือ

SetVehicleLivery(vehicle, 1)

เลือกลายที่ 1

และ

SetVehicleLivery(vehicle, 2)

เลือกลายที่ 2

ต้องจำว่า Index ใน Script มักเริ่มที่

0

ไม่ใช่ 1

ดังนั้นรถที่มี 3 Livery อาจใช้ Index

0
1
2

④ ตัวอย่าง Script เปลี่ยน Livery

ตัวอย่างแนวคิดพื้นฐาน

local ped = PlayerPedId()
local vehicle = GetVehiclePedIsIn(ped, false)

if vehicle ~= 0 then
    SetVehicleLivery(vehicle, 1)
end

Script นี้พยายามเปลี่ยน Vehicle ที่ผู้เล่นกำลังนั่งอยู่ไปใช้ Livery Index 1

ก่อนใช้จริงควรตรวจด้วยว่ารถมี Livery หรือไม่ และ Index ที่ต้องการอยู่ในช่วงที่ถูกต้อง

ตัวอย่างเช่น

local count = GetVehicleLiveryCount(vehicle)

if count > 0 then
    SetVehicleLivery(vehicle, 0)
end

แนวทางนี้ปลอดภัยกว่าการ Assume ว่ารถทุกคันมี Livery

⑤ วิธีตรวจว่ารถมี Livery กี่ลาย

สามารถใช้

local count = GetVehicleLiveryCount(vehicle)

FiveM Native Reference ระบุ GET_VEHICLE_LIVERY_COUNT(Vehicle vehicle) สำหรับตรวจจำนวน Livery ของ Vehicle

จากนั้นสามารถ Debug เช่น

print('Livery count:', count)

ถ้าคืน

4

แสดงว่ารถมีจำนวน Livery ตามระบบที่ Native ตรวจพบ

ถ้าคืน

-1

อาจหมายความว่ารถไม่ได้ใช้ระบบ Livery แบบนี้

ตรงนี้สำคัญมาก เพราะรถ Custom บางคันใช้ Vehicle Mod Livery แทนระบบ SET_VEHICLE_LIVERY

⑥ FiveM มี Livery มากกว่าหนึ่งระบบหรือไม่

ในทางปฏิบัติ Vehicle Asset สามารถพบวิธีจัด Livery ต่างกัน

แบบหนึ่งใช้ Native

SET_VEHICLE_LIVERY

แต่อีกแบบสามารถนำ Livery ไปอยู่ในระบบ Vehicle Mods

FiveM มี SET_VEHICLE_MOD สำหรับเลือก Vehicle Modification โดยรับ modType และ modIndex

ดังนั้นถ้ารถ

GetVehicleLiveryCount()

ไม่พบ Livery แต่ใน Mechanic Menu ยังมีลายให้เลือก รถอาจใช้ระบบ Mod Kit/Livery Mod แทน

นี่เป็นสาเหตุหนึ่งที่ Script Livery บางตัวใช้กับรถหนึ่งคันได้ แต่ใช้กับอีกคันไม่ได้

⑦ Livery แบบ Texture อยู่ไฟล์ไหน

รถ Custom มักเก็บ Texture ไว้ในไฟล์ประเภท

.ytd

ตัวอย่าง

police01.ytd

และบาง Asset อาจแยก Livery Dictionary เพิ่ม เช่น

police01_sign_1.ytd
police01_sign_2.ytd

ชื่อจริงขึ้นอยู่กับวิธีที่ผู้สร้างรถออกแบบไว้

ดังนั้นหากย้ายรถจาก Resource หนึ่งไปอีก Resource ต้อง Copy Livery Assets ที่รถต้องใช้ให้ครบ

ไม่ควร Copy เพียง

YFT
+
YTD หลัก

แล้วทิ้งไฟล์อื่นเพราะคิดว่าไม่สำคัญ

⑧ YTD คืออะไรในระบบ Livery

YTD หรือ Texture Dictionary เป็น Asset ที่สามารถเก็บ Texture ต่าง ๆ ที่ Model ใช้

สำหรับรถหนึ่งคัน อาจมี Texture เช่น

  • Body Detail

  • Interior

  • Badge

  • Logo

  • Livery

  • Decal

ดังนั้นอาการ

รถขึ้นปกติแต่ลายหาย

ควรตรวจ .ytd และ Livery Texture ก่อน

ไม่ต้องไปแก้ handling.meta เพราะ Handling ไม่เกี่ยวกับภาพลายรถ

⑨ วิธีเพิ่ม Livery ใหม่ต้องทำอะไรบ้าง

ขั้นตอนจริงขึ้นอยู่กับ Vehicle Asset แต่แนวทางทั่วไปคือ

ขั้นที่ 1

ตรวจว่ารถรองรับ Livery อยู่แล้วหรือไม่

ขั้นที่ 2

หา Template ของรถ

ขั้นที่ 3

สร้างลายใหม่ตาม UV Layout

ขั้นที่ 4

Export Texture ด้วย Format ที่เหมาะสม

ขั้นที่ 5

นำ Texture เข้า YTD หรือ Livery Dictionary ตามระบบเดิมของรถ

ขั้นที่ 6

ตั้งชื่อ Texture ตาม Pattern ที่ Asset ใช้

ขั้นที่ 7

ใส่ไฟล์กลับเข้า Resource

ขั้นที่ 8

Restart Resource

ขั้นที่ 9

ทดสอบ Livery ทุก Index

อย่าเริ่มด้วยการตั้งชื่อไฟล์ตามความคิดของตัวเอง เพราะ Model อาจอ้าง Texture Name ที่กำหนดไว้แล้ว

⑩ Template รถคืออะไร

Template คือภาพ Layout ของพื้นผิวรถที่ช่วยให้คนออกแบบรู้ว่าแต่ละตำแหน่งในภาพตรงกับส่วนใดของรถ

ตัวอย่างอาจมี

  • ประตูซ้าย

  • ประตูขวา

  • ฝากระโปรง

  • หลังคา

  • ท้ายรถ

  • กันชน

นักออกแบบจึงสามารถวาง

  • Logo

  • ตัวหนังสือ

  • หมายเลข

  • Pattern

ลงตำแหน่งที่ต้องการ

จากนั้นจึง Export เป็น Texture สำหรับ Livery

⑪ ถ้าไม่มี Template ทำ Livery ได้ไหม

ทำได้แต่ยากขึ้น

อาจต้อง Export หรือเปิด Texture/UV ของ Vehicle Asset ด้วยเครื่องมือที่รองรับ GTA V Assets

หากเป็นรถที่ซื้อจาก Developer ควรตรวจ Package ก่อน เพราะบางรายมี Template ให้แล้ว

การใช้ Template จากผู้สร้างรถจะช่วยลดปัญหา

  • Logo กลับด้าน

  • ลายไม่ตรงประตู

  • ตัวหนังสือเบี้ยว

  • Graphic ขาดกลาง Body Panel

⑫ ทำ Livery ด้วย Photoshop ได้หรือไม่

ได้ หากมี Template หรือ Texture ที่เหมาะสม

โปรแกรมที่ใช้ทำภาพสามารถเป็น

  • Adobe Photoshop

  • GIMP

  • Affinity Photo

  • โปรแกรม Graphic Editor อื่นที่รองรับ Workflow ที่ต้องการ

สิ่งสำคัญไม่ใช่โปรแกรม แต่คือ

  • Resolution

  • Alpha Channel

  • Compression

  • Texture Format

  • UV Layout

ต้องเหมาะกับ Asset

⑬ Livery ควรใช้ความละเอียดเท่าไร

ไม่มีขนาดเดียวที่ดีที่สุดสำหรับรถทุกคัน

ตัวอย่างที่พบใน Asset ต่าง ๆ อาจเป็น

1024×1024
2048×2048
4096×4096

แต่ไม่ควรเลือก 4K เพียงเพราะภาพชัดกว่า

Server ที่มีรถ Custom จำนวนมากต้องคำนึงถึง VRAM และ Streaming ด้วย

ถ้าลายเป็นเพียง Logo ขนาดเล็กหรือ Graphic ที่ผู้เล่นแทบไม่มองใกล้มาก การใช้ Resolution สูงเกินจำเป็นอาจเพิ่ม Memory โดยไม่ได้เพิ่มคุณภาพที่เห็นจริงอย่างคุ้มค่า

⑭ Livery 4K ทำให้ FiveM กระตุกได้หรือไม่

หนึ่ง Texture อาจไม่เห็นผลมาก แต่ถ้ามี

  • รถ 200 คัน

  • Livery หลายชุดต่อรถ

  • Map

  • MLO

  • Clothes

  • Props

รวมกัน Server Content จะมี Streaming Assets จำนวนมาก

ดังนั้นควร Optimize Livery ตามความเหมาะสม

โดยเฉพาะรถตำรวจที่รถหนึ่งคันอาจมี Livery 5–20 แบบ

ไม่จำเป็นว่าทุกลายต้องใช้ Resolution สูงที่สุด

⑮ Alpha Channel สำคัญไหม

สำคัญสำหรับ Texture ที่ต้องใช้ Transparency ตาม Asset ที่ออกแบบไว้

เช่นบางส่วนของ Livery อาจต้องให้พื้นที่ที่ไม่มี Graphic โปร่งเพื่อแสดงสีรถด้านล่าง

ถ้า Alpha ผิด อาจเกิด

  • รถถูกลายคลุมทั้งคัน

  • พื้นหลังดำ

  • พื้นหลังขาว

  • Graphic โปร่งผิด

  • สี Body ถูกบัง

ดังนั้นต้องตรวจ Format และ Alpha จาก Texture ต้นฉบับก่อน Export

⑯ รถลายขึ้นแต่พื้นหลังขาวเกิดจากอะไร

มักควรตรวจ

  • Alpha Channel

  • Texture Export

  • Compression

  • Material

  • Livery Texture ต้นฉบับ

ถ้าแก้ Graphic ใน Photoshop แล้วปัญหาเริ่มทันทีหลัง Export มีโอกาสสูงว่าขั้นตอน Export ทำข้อมูล Transparency เปลี่ยน

ควรเปรียบเทียบกับ Livery เดิมที่ทำงานได้

⑰ รถลายขึ้นกลับด้านเกิดจากอะไร

มักเกี่ยวข้องกับ UV Mapping หรือ Template

รถบาง Model ใช้พื้นที่ Texture ร่วมกันทั้งสองด้าน

เช่น Graphic บนประตูซ้ายอาจถูก Mirror ไปยังประตูขวา

ถ้า Model ถูกสร้างแบบนั้น การแก้รูปภาพอย่างเดียวอาจไม่สามารถทำข้อความทั้งสองด้านให้อ่านถูกได้

ต้องดู UV Layout ของรถ

นี่เป็นข้อจำกัดของ Vehicle Asset ไม่ใช่ปัญหา FiveM Server

⑱ Logo เบี้ยวหรือล้นประตูแก้อย่างไร

กลับไปแก้บน Template

อย่าแก้ Scale ของ Vehicle Model เพียงเพราะ Logo บน Livery ใหญ่เกิน

ขั้นตอนง่ายที่สุดคือ

  1. เปิด Template

  2. ลด Logo

  3. ปรับตำแหน่ง

  4. Export ใหม่

  5. Replace Texture

  6. Reload Resource

  7. Spawn รถทดสอบ

ควรดูทั้งด้านซ้าย ขวา หน้า หลัง และมุมเฉียง

⑲ เพิ่ม Livery แล้วเกมยังเห็นลายเดิม

ให้ตรวจก่อนว่า Resource โหลดไฟล์ใหม่หรือยัง

สามารถ Reload Resource ตาม Workflow ของ Server แล้ว Spawn Vehicle ใหม่เพื่อทดสอบ

หากใช้ Vehicle Entity เดิม อาจทำให้เข้าใจผิดว่าการแก้ Asset ไม่ทำงาน

ควร

  • Reload Resource

  • Reconnect ถ้าจำเป็น

  • Spawn รถใหม่

  • เลือก Livery ใหม่

แล้วตรวจอีกครั้ง

⑳ Livery ใหม่ไม่ขึ้นเลยเกิดจากอะไร

สาเหตุที่ควรตรวจ ได้แก่

  • Texture Name ผิด

  • YTD ผิด

  • File ไม่อยู่ใน Resource

  • Asset ไม่ได้ถูก Stream

  • Model ไม่รองรับ Livery เพิ่ม

  • Index ไม่ถูกต้อง

  • Resource ยังใช้ File เก่า

  • Livery ใช้ Mod Kit คนละระบบ

  • Alpha/Texture Format ผิด

อย่าแก้ทุกจุดพร้อมกัน

เริ่มจาก Livery เดิมที่ทำงานได้แล้ว Compare กับไฟล์ใหม่

㉑ วิธีเช็กว่า Index ถูกหรือไม่

หากรถใช้ Native Livery สามารถตรวจจำนวนก่อน

local count = GetVehicleLiveryCount(vehicle)

แล้วใช้ Index ตั้งแต่

0

จนถึง

count - 1

โดย GET_VEHICLE_LIVERY_COUNT เป็น Native ที่ FiveM มีให้สำหรับตรวจจำนวน Livery ของ Vehicle

อย่าเรียก Index ที่เกินจำนวน

เช่นรถมี 3 ลาย

0
1
2

แล้ว Script สั่ง

5

ย่อมไม่ใช่ Livery ที่มีอยู่จริง

㉒ GET_LIVERY_NAME ใช้ทำอะไร

FiveM มี Native

GET_LIVERY_NAME

สำหรับดึง Label/Name ที่สัมพันธ์กับ Livery Index และเอกสารยกตัวอย่างการวนตั้งแต่ 0 ถึงจำนวน Livery เพื่ออ่านชื่อแต่ละลาย

สิ่งนี้มีประโยชน์กับ Script Menu

แทนที่จะแสดง

Livery 0
Livery 1
Livery 2

สามารถพยายามใช้ชื่อที่ Vehicle Data มีให้ หาก Asset กำหนดไว้

㉓ รถไม่มี Livery Count แต่มีลายใน Mechanic

กรณีนี้เป็นสัญญาณว่ารถอาจใช้ Livery ผ่าน Vehicle Mods มากกว่าระบบ SET_VEHICLE_LIVERY

FiveM มี Native

SET_VEHICLE_MOD

ที่ใช้เลือก Modification ตาม modType และ modIndex

ดังนั้น Script Livery ที่รองรับเฉพาะ SET_VEHICLE_LIVERY อาจไม่เห็นลายของรถประเภทนี้

สำหรับ Server ที่มีรถจากหลาย Developer ควรทำระบบ Menu ให้ตรวจทั้งสองรูปแบบหากจำเป็น

㉔ SetVehicleModKit สำคัญกับ Mod Livery หรือไม่

รถที่ใช้ระบบ Modification มักต้องตั้ง Vehicle Mod Kit ให้ถูกต้องก่อนอ่านหรือ Apply Mods

FiveM มี Native

SET_VEHICLE_MOD_KIT

สำหรับตั้ง Mod Kit ของ Vehicle

หาก Mechanic Script อ่าน Mods ไม่ครบ ควรตรวจ Mod Kit และระบบ Vehicle Mod ของรถ ไม่ใช่ดูเฉพาะ Texture

㉕ Livery กับ carcols.meta เกี่ยวข้องกันหรือไม่

สามารถเกี่ยวข้องได้หากรถใช้ Livery ในฐานะ Vehicle Mod หรือมี Mod Kit Configuration

carcols.meta ใช้ข้อมูล Vehicle Model Variation/Customization บางส่วน

ดังนั้นถ้ารถ

  • Mod Livery ไม่ขึ้น

  • Mechanic ไม่เห็นลาย

  • ลายหายหลัง Merge Pack

ควรตรวจ

carcols.meta
carvariations.meta
YTD
Model

ร่วมกัน

㉖ Livery กับ carvariations.meta เกี่ยวข้องกันหรือไม่

สามารถเกี่ยวข้องกับ Vehicle Variation ตาม Asset ที่ใช้

ถ้าปัญหาเริ่มหลัง Merge Vehicle Pack ให้ย้อนตรวจ

carvariations.meta

ร่วมกับ carcols.meta

โดยเฉพาะรถที่มี Variation/Mod Kit ซับซ้อน

แต่ถ้าไฟล์ Livery .ytd หายจริง การแก้ Meta อย่างเดียวก็ไม่สามารถทำให้ Texture ที่หายกลับมาได้

㉗ รถตำรวจควรใช้ Livery หลายแบบหรือหลาย Model

ถ้ารถมี Model เดียวกันทุกอย่างและต่างเพียง Logo/หน่วยงาน การใช้ Livery หลายแบบมักจัดการง่ายกว่า

ตัวอย่าง

police01

มี

Livery 0 = City Police
Livery 1 = Sheriff
Livery 2 = Highway Patrol

แทนการสร้าง

police_city
police_sheriff
police_highway

สาม Model ที่ Asset หลักเหมือนกันเกือบทั้งหมด

แต่ถ้ารถแต่ละหน่วยมี

  • Lightbar ต่างกัน

  • Body ต่างกัน

  • Equipment ต่างกัน

  • Extra ต่างกันมาก

แยก Model หรือ Variation อื่นอาจเหมาะกว่า

㉘ EMS ใช้ Livery ได้หรือไม่

ได้ถ้า Vehicle Model ถูกสร้างให้รองรับ

ตัวอย่างรถพยาบาลหนึ่ง Modelสามารถมี

  • EMS

  • Fire Department

  • Rescue

  • Hospital

  • Private Medical

เป็นคนละ Livery

เหมาะกับ Server ที่ต้องการใช้ Vehicle Base เดียวกันหลายหน่วยงาน

㉙ Taxi และบริษัทใช้ Livery ได้หรือไม่

ได้เช่นกัน

ตัวอย่าง

Livery 0 = Taxi Company A
Livery 1 = Taxi Company B
Livery 2 = Driving School
Livery 3 = Rental Company

ระบบเดียวกันสามารถนำไปใช้กับ

  • Delivery

  • Logistics

  • Mechanic

  • Security

  • Bus

  • Racing Team

ได้ตาม Vehicle Asset

㉚ Livery รถแข่งมีประโยชน์อย่างไร

รถ Racing มักใช้ Livery เพื่อให้แต่ละทีมมี

  • Sponsor

  • Number

  • Team Logo

  • Driver Name

  • Color Scheme

ต่างกัน

รถ Model เดียวจึงสามารถมีหลาย Team Design ได้โดยไม่จำเป็นต้องสร้าง Vehicle Model ใหม่

เหมาะมากกับ Racing Server หรือ Event

㉛ Vehicle Shop สามารถเลือก Livery ตอนซื้อได้หรือไม่

ทำได้ถ้า Script รองรับ

Workflow อาจเป็น

เลือกรถ
↓
เลือกสี
↓
เลือก Livery
↓
ซื้อ
↓
Save Properties

สิ่งสำคัญคือ Vehicle Shop ต้อง Save Livery Index ลง Database หรือ Vehicle Properties

ไม่เช่นนั้นผู้เล่นอาจเลือก Livery ได้ตอน Preview แต่เมื่อซื้อจริงรถกลับเป็นลาย Default

㉜ Livery หายหลังเก็บ Garage

อาการนี้มักชี้ไปที่ระบบ Persistence

ตัวอย่าง

เลือก Livery 3
↓
เก็บ Garage
↓
Vehicle ถูก Delete
↓
เรียกรถออกใหม่
↓
Livery กลับเป็น 0

ให้ตรวจว่า Garage Save ค่า Livery หรือไม่

หาก Script ใช้ Vehicle Properties ควรมีข้อมูลเกี่ยวกับ Livery/Mods ตาม Architecture ของระบบ

กรณีนี้ไม่ควรแก้ YTD หากก่อนเก็บรถ Livery ทำงานปกติ

㉝ Restart Server แล้ว Livery กลับค่าเดิม

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

ถ้า Livery ถูก Apply เฉพาะกับ Entity แต่ไม่ได้ Persist ใน Database หลัง Server Restart รถใหม่จะไม่มีข้อมูลว่าผู้เล่นเคยเลือก Livery ไหน

ควร Save

Vehicle ID
Plate
Livery

หรือ Vehicle Properties ตามระบบ Garage ที่ใช้

㉞ Livery Preview ถูกแต่รถจริงผิด

Vehicle Shop บางตัวสร้าง Preview Vehicle ก่อน

จากนั้นตอนผู้เล่นซื้อจะสร้าง Vehicle Entity ใหม่

หาก Apply Livery เฉพาะ Preview

รถจริงอาจกลับเป็น Default

ให้ตรวจว่า Purchase Logic ส่ง Livery Index ไปยัง Vehicle ตัวใหม่ด้วยหรือไม่

นี่เป็นปัญหา Script มากกว่า Asset

㉟ Livery เปลี่ยนแล้วคนอื่นเห็นไหม

Vehicle Properties ที่ใช้กับ Networked Vehicle ควรถูกจัดการให้สอดคล้องกับระบบ Network/Ownership ของ Server

หาก Script เปลี่ยนบางอย่างแบบ Local Only หรือ Apply ตอน Entity ยังไม่ได้อยู่ใน State ที่ถูกต้อง ผู้เล่นคนอื่นอาจเห็นผลต่างกันได้ในบาง Architecture

ดังนั้น Server ที่มีระบบ Garage หรือ Vehicle Customization ควรให้ค่าที่ต้อง Persist ถูก Save และ Restore จากข้อมูลส่วนกลาง

㊱ Livery ควรบันทึกใน Database หรือไม่

ถ้าผู้เล่นสามารถเลือกและเป็นเจ้าของรถเอง ควรบันทึกหากต้องการให้ลายอยู่ถาวร

ตัวอย่างข้อมูล

plate
model
color
mods
livery

โครงสร้างจริงขึ้นอยู่กับ Framework/Vehicle Script

หากเป็นรถ Job ที่ต้องใช้ Livery คงที่ อาจกำหนดผ่าน Config ทุกครั้งตอน Spawn โดยไม่จำเป็นต้องให้ผู้เล่นเลือกเอง

㊲ Police Job ควรกำหนด Livery อัตโนมัติไหม

เหมาะมากในบาง Server

ตัวอย่าง

Police Rank 1 → Livery 0
Sheriff → Livery 1
Highway → Livery 2

หรือเลือกตาม Station

Script สามารถ Apply Livery หลัง Vehicle Spawn

แต่ต้องตรวจว่ารถแต่ละ Model มีจำนวน Livery เท่ากันหรือไม่

อย่า Assume ว่า Livery 2 ของรถทุกคันคือ Highway

ควรสร้าง Config แยกตาม Model

㊳ วิธีทำ Config Livery รถหลายคัน

ตัวอย่างแนวคิด

local liveries = {
    police01 = {
        patrol = 0,
        sheriff = 1,
        highway = 2
    },

    police02 = {
        patrol = 1,
        sheriff = 3,
        highway = 4
    }
}

ข้อดีคือไม่ต้อง Hard-code Index กระจายอยู่หลาย Script

เมื่อรถ Pack Update สามารถแก้ Config กลางได้

โค้ดจริงต้องปรับตาม Resource ของ Server

㊴ Car Pack หลายคันใช้ Livery Name เหมือนกันได้ไหม

ชื่อที่แสดงใน Menu สามารถเหมือนกันได้ เช่น

Police
Sheriff
Highway

แต่ Index ของรถแต่ละ Modelอาจไม่เหมือนกัน

รถ A

Police = 0
Sheriff = 1

รถ B

Police = 2
Sheriff = 3

จึงควร Mapping ตาม Vehicle Model มากกว่ากำหนด Index กลางหนึ่งชุดให้รถทั้งหมด

㊵ Livery หายหลัง Merge Car Pack

ตรวจตามลำดับ

1. YTD

Livery Texture อยู่ครบหรือไม่

2. Shared Texture

มีไฟล์ที่ลายใช้ร่วมกับ Pack เดิมหรือไม่

3. carcols.meta

Mod Kit/Customization ถูก Merge หรือไม่

4. carvariations.meta

Vehicle Variation Entry ครบหรือไม่

5. Model

ยังรองรับ Livery อยู่หรือไม่

6. Resource Conflict

มี Model ชื่อซ้ำหรือไม่

7. Script

อ่าน Livery ผ่านวิธีที่รถรองรับหรือไม่

ถ้ารถต้นฉบับทำงาน แต่หลัง Merge เสีย ให้สงสัยกระบวนการ Merge ก่อน

㊶ Livery ของรถ A ไปขึ้นรถ B

นี่เป็นอาการ Conflict ที่ต้องตรวจทันที

อาจเกิดจาก

  • Texture Dictionary ชื่อซ้ำ

  • Model Name Conflict

  • Shared YTD ผิด

  • Merge Asset ผิด

  • Mod Kit Conflict

  • Resource ซ้ำ

ให้ปิด Resource อื่นชั่วคราวและทดสอบรถแยก

ถ้ารถสองคันทำงานเมื่ออยู่คนละ Resource แต่ผิดเมื่อรวม Pack ควรตรวจชื่อและ Reference ที่ชนกัน

㊷ Livery ไม่ขึ้นเฉพาะผู้เล่นบางคน

ถ้าผู้เล่นส่วนใหญ่เห็นลายปกติ แต่เครื่องหนึ่งเห็นผิด ให้ตรวจฝั่ง Client เพิ่ม

เช่น

  • Streaming

  • Error ใน F8

  • Asset Loading

  • Memory

  • Client State

แต่ถ้าผู้เล่นทุกคนเห็น Livery คันเดียวกันเสียเหมือนกัน ให้ตรวจ Resource/Asset ก่อน

แยก

เสียคนเดียว

กับ

เสียทุกคน

ให้ได้ก่อน Debug

㊸ Livery ทำให้ FPS ตกไหม

Livery เป็น Texture Asset จึงมีผลต่อการใช้ Memory ตามขนาด Resolution, Format และจำนวน Asset ที่ถูกโหลด

รถหนึ่งคันมี Livery 2–3 แบบอาจไม่ใช่ปัญหาใหญ่ แต่ Server ที่มีรถหลายร้อยคันพร้อม Livery 4K จำนวนมากควรตรวจ Asset Budget โดยรวม

ไม่ควร Optimize เฉพาะ Model แล้วปล่อย Texture ทุกไฟล์มีขนาดสูงสุด

㊹ ควร Optimize Livery อย่างไร

หลักสำคัญคือ

  • ใช้ Resolution เท่าที่จำเป็น

  • ลบ Texture ที่ไม่ได้ใช้

  • ตรวจ Alpha

  • ใช้ Compression ให้เหมาะสม

  • ตรวจ Mipmap

  • หลีกเลี่ยงไฟล์ซ้ำ

  • ทดสอบความคมในเกมจริง

  • ทดสอบเมื่อมีรถหลายคันพร้อมกัน

เป้าหมายคือให้ลายดูดีในระยะที่ผู้เล่นมองเห็นจริง พร้อมไม่ใช้ทรัพยากรมากเกินจำเป็น

㊺ อย่าลบ Livery ที่คิดว่าไม่ได้ใช้ทันที

ก่อนลบ

sign_1
sign_2
sign_3

ให้ตรวจว่า

  • Vehicle Job ใช้อยู่หรือไม่

  • Garage Save Index ใดอยู่

  • Player-Owned Vehicles มี Livery นั้นหรือไม่

  • Event ใช้หรือไม่

  • Script อ้าง Index อยู่หรือไม่

ถ้าลบ Livery จาก Pack แต่ Database ยัง Save Index เก่าไว้ ผู้เล่นบางรายอาจเจอรถแสดงผลไม่ตรงกับเดิม

㊻ วิธีทดสอบ Livery ก่อนขึ้น Production

ควรทดสอบครบทุกลาย

ตัวอย่างรถมี 5 Livery

0
1
2
3
4

อย่าทดสอบเพียง Livery 0

ตรวจแต่ละลายว่า

  • Logo ถูกด้าน

  • ตัวหนังสืออ่านถูก

  • ไม่มีรอยต่อ

  • หลังคาถูก

  • ฝากระโปรงถูก

  • ประตูถูก

  • สีสัมพันธ์กับ Body

  • Alpha ถูก

  • ไม่เบลอผิดปกติ

รวมถึงทดสอบทั้งกลางวันและกลางคืน

㊼ วิธี Debug Livery FiveM แบบเร็วที่สุด

ทำตามนี้

ขั้นที่ 1

Spawn รถตรง ๆ

ขั้นที่ 2

ตรวจจำนวน Livery

GetVehicleLiveryCount(vehicle)

Native นี้มีอยู่ใน FiveM สำหรับตรวจจำนวน Livery โดยตรง

ขั้นที่ 3

ลอง

SetVehicleLivery(vehicle, 0)
SetVehicleLivery(vehicle, 1)

ตามจำนวนจริง

ขั้นที่ 4

ถ้าไม่พบ Livery ให้ตรวจระบบ Vehicle Mods

FiveM มี SET_VEHICLE_MOD สำหรับเลือก Mod Index ของ Vehicle

ขั้นที่ 5

ตรวจ YTD

ขั้นที่ 6

ตรวจ Livery Texture

ขั้นที่ 7

ตรวจ carcols.meta

ขั้นที่ 8

ตรวจ carvariations.meta

ขั้นที่ 9

เทียบ Resource ต้นฉบับ

ขั้นที่ 10

ทดสอบโดยไม่ผ่าน Garage/Mechanic

ขั้นที่ 11

ถ้าใช้งานได้ตรง ๆ แต่หลัง Garage หาย ให้ตรวจ Persistence

ขั้นที่ 12

ถ้าหลัง Merge เสีย ให้แยก Resource Test

ตารางสรุปปัญหา FiveM Livery

อาการจุดที่ควรตรวจ
ไม่มี Livery เลยModel / YTD / ระบบ Livery
Livery Count = -1ตรวจว่าเป็น Mod Livery หรือไม่
เลือก Livery แล้วไม่เปลี่ยนIndex / Vehicle System
ลายหายYTD / Texture
ลายพื้นหลังขาวAlpha
Logo กลับด้านUV Mapping
Logo เบี้ยวTemplate
Mechanic ไม่มี LiveryMod Kit / Script
Spawn ตรงได้ แต่ Garage หายPersistence
Preview ถูก รถจริงผิดVehicle Shop Logic
หลัง Merge หายMeta / YTD / Conflict
รถ A ได้ลายรถ BTexture/Model Conflict
ผู้เล่นบางคนไม่เห็นClient Streaming
ลายเบลอResolution / Mipmap
FPS ลดเมื่อรถเยอะTexture/Asset Load

Livery กับ Vehicle Color ใช้ร่วมกันอย่างไร

รถที่ออกแบบดีสามารถใช้

Vehicle Color + Livery

ร่วมกันได้

ตัวอย่าง

Body Color = Black
Livery = POLICE สีขาว

หรือ

Body Color = Red
Livery = Racing Sponsor

ข้อดีคือรถหนึ่งลายสามารถใช้กับ Body Color หลายสีได้ ถ้า Texture มี Transparency และ Material ถูกออกแบบอย่างเหมาะสม

แต่รถบาง Asset Bake สี Body ไว้ใน Livery แล้ว ทำให้เปลี่ยน Vehicle Color ได้ผลน้อยกว่าที่คาด

Livery แบบไหนเหมาะกับ FiveM Server

เหมาะมากกับ Server ที่มี

  • Police

  • EMS

  • Fire Department

  • Taxi

  • Mechanic

  • Logistics

  • Racing

  • Gang Vehicles

  • Company Cars

  • Event Vehicles

เพราะ Vehicle Model เดียวสามารถให้หลายหน่วยงานหรือหลายทีมใช้ได้

สำหรับ Server ใหญ่ วิธีนี้ยังช่วยลดการสร้าง Model ซ้ำที่ต่างกันเพียงลายภายนอก

สรุป FiveM Livery คืออะไร และวิธีเพิ่มลายรถ

FiveM Livery คือ Texture หรือลวดลายสำหรับเปลี่ยนรูปลักษณ์ของ Vehicle Model โดยไม่จำเป็นต้องสร้างรถใหม่ทุกลาย

FiveM มี Native

GET_VEHICLE_LIVERY_COUNT
SET_VEHICLE_LIVERY
GET_LIVERY_NAME

สำหรับตรวจและควบคุมระบบ Livery ของรถที่รองรับโดยตรง

ขณะเดียวกันรถ Custom บางประเภทอาจใช้ Livery ผ่านระบบ Vehicle Mods จึงต้องตรวจ Asset จริงก่อนสรุปว่า Livery หายเพียงเพราะ GET_VEHICLE_LIVERY_COUNT ไม่พบลาย

ถ้าจะเพิ่ม Livery ใหม่ ให้เริ่มจาก

Template → ออกแบบลาย → Texture/YTD → Resource → ตรวจ Livery Index → ทดสอบในเกม

และหากรถทำงานก่อน Merge แต่ Livery หายหลังรวม Car Pack ให้ตรวจ

YTD → carcols.meta → carvariations.meta → Mod Kit → Resource Conflict

แนวทางของ comsiam คือใช้รถ Model เดียวกับหลาย Livery เมื่อความแตกต่างมีเพียง Graphic เพราะช่วยให้ระบบรถเป็นระเบียบกว่าการสร้าง Vehicle Model ซ้ำจำนวนมาก และควร Optimize Texture ทุกลายโดยคำนึงถึง Server Asset ทั้งหมด ไม่ใช่ดูความคมของ Livery เพียงอย่างเดียว

Comments

Popular posts from this blog

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

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

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