FiveM carvariations.meta คืออะไร มีหน้าที่อะไร และแก้อย่างไรเมื่อสี Livery หรือ Mod รถผิด
ถ้ารถ Add-on ใน FiveM Spawn ได้ตามปกติ แต่สีเริ่มต้นผิด Livery ไม่ตรง Mod Kit ไม่สัมพันธ์ หรือรถมี Variation แปลกหลัง Merge Car Pack หนึ่งในไฟล์ที่ควรตรวจคือ carvariations.meta
FiveM รองรับไฟล์นี้โดยตรงผ่าน Data File Type ชื่อ VEHICLE_VARIATION_FILE และเอกสาร Cfx.re ยก carvariations.meta เป็นตัวอย่างของไฟล์ประเภทนี้โดยตรง
บทความนี้จาก comsiam จะอธิบายว่า carvariations.meta คืออะไร แตกต่างจาก carcols.meta อย่างไร มีความสัมพันธ์กับสี Livery Mod Kit และรถตำรวจอย่างไร รวมถึงวิธี Debug เมื่อรถทำงานปกติก่อน Merge แต่เกิดปัญหาหลังรวมเข้า Car Pack
FiveM carvariations.meta คืออะไร
carvariations.meta คือไฟล์ Vehicle Variation Data ที่ใช้กำหนดข้อมูล Variation ของ Vehicle Model บางส่วน
FiveM โหลดข้อมูลประเภทนี้ผ่าน
VEHICLE_VARIATION_FILE
โดย Cfx.re ระบุว่า Data File Type นี้ใช้ CVehicleVariationDataFileMounter และยก carvariations.meta เป็นไฟล์ตัวอย่างโดยตรง
ในทางใช้งาน รถ Custom มักมี carvariations.meta ทำงานร่วมกับไฟล์อื่น เช่น
vehicles.metacarcols.metahandling.metaModel YFT
Texture YTD
ดังนั้นถ้ารถมีปัญหาเรื่อง Variation ไม่ควรแก้ไฟล์นี้โดยแยกขาดจาก Asset อื่นทั้งหมด
① carvariations.meta อยู่ตรงไหน
โครงสร้าง Vehicle Resource ที่พบได้บ่อยอาจเป็น
mycar/
│
├── fxmanifest.lua
├── stream/
│ ├── mycar.yft
│ ├── mycar_hi.yft
│ └── mycar.ytd
│
└── data/
├── vehicles.meta
├── handling.meta
├── carcols.meta
└── carvariations.meta
นี่ไม่ใช่โครงสร้างบังคับ เพราะ Developer สามารถจัด Folder ต่างจากนี้ได้
สิ่งสำคัญคือ Path ที่ประกาศใน fxmanifest.lua ต้องตรงกับไฟล์จริง เพราะ data_file ใน Resource Manifest ใช้เพิ่ม Data File เข้า Extra Content System ของเกม
② วิธีโหลด carvariations.meta ใน fxmanifest.lua
ตัวอย่างพื้นฐาน
files {
'data/carvariations.meta'
}
data_file 'VEHICLE_VARIATION_FILE' 'data/carvariations.meta'
FiveM ระบุ VEHICLE_VARIATION_FILE เป็น Data File Type สำหรับ carvariations.meta โดยตรง
ถ้าไฟล์จริงอยู่
metas/carvariations.meta
ก็ต้องแก้เป็น
files {
'metas/carvariations.meta'
}
data_file 'VEHICLE_VARIATION_FILE' 'metas/carvariations.meta'
อย่า Copy Path จากรถอีกคันโดยไม่ตรวจโครงสร้าง Resource ตัวเอง
③ ตัวอย่าง fxmanifest.lua สำหรับรถหนึ่ง Pack
Vehicle Resource หนึ่งชุดอาจประกาศ Meta หลักดังนี้
fx_version 'cerulean'
game 'gta5'
files {
'data/vehicles.meta',
'data/handling.meta',
'data/carcols.meta',
'data/carvariations.meta'
}
data_file 'VEHICLE_METADATA_FILE' 'data/vehicles.meta'
data_file 'HANDLING_FILE' 'data/handling.meta'
data_file 'CARCOLS_FILE' 'data/carcols.meta'
data_file 'VEHICLE_VARIATION_FILE' 'data/carvariations.meta'
FiveM แยก Vehicle Metadata, Handling, Carcols และ Vehicle Variation เป็นคนละ Data File Type จึงไม่ควรถือว่า Meta ทั้ง 4 ตัวทำหน้าที่เหมือนกัน
④ carvariations.meta ต่างจาก vehicles.meta อย่างไร
จำง่าย ๆ แบบนี้
vehicles.meta
เป็น Vehicle Metadata หลัก
ใช้เชื่อมข้อมูลของ Vehicle Model กับส่วนต่าง ๆ เช่น
Model
Handling
Audio
Layout
FiveM Mount ผ่าน
VEHICLE_METADATA_FILE
carvariations.meta
เป็น Vehicle Variation Data
FiveM Mount ผ่าน
VEHICLE_VARIATION_FILE
ทั้งสองถูกแยกเป็นคนละ Data File Type ในเอกสาร Cfx.re อย่างชัดเจน
ดังนั้นถ้ารถ Spawn ไม่ได้เลย มักควรตรวจ Resource, Model และ vehicles.meta ก่อน
แต่ถ้ารถ Spawn ได้แล้วแต่ Variation ผิด จึงค่อยเน้น carvariations.meta
⑤ carvariations.meta ต่างจาก carcols.meta อย่างไร
สองไฟล์นี้มักทำงานใกล้กันจนคนเริ่มทำรถสับสน
FiveM ระบุ
CARCOLS_FILE
สำหรับ Vehicle Model Variation Data ชุดหนึ่ง และ
VEHICLE_VARIATION_FILE
สำหรับ carvariations.meta แยกต่างหาก
ในทางปฏิบัติ รถที่มี Customization ซับซ้อนอาจต้องให้ข้อมูลจากทั้งสองไฟล์สัมพันธ์กัน
โดยเฉพาะเมื่อเกี่ยวกับ
Mod Kit
Vehicle Variation
Light/Siren Configuration
สีหรือ Configuration บางส่วน
ดังนั้นปัญหาหลัง Merge Car Pack มักต้องตรวจทั้งสองไฟล์ร่วมกัน
⑥ modelName ใน carvariations.meta สำคัญอย่างไร
Vehicle Variation แต่ละ Entry ต้องสัมพันธ์กับรถที่ถูกต้อง
ตัวอย่างเชิงโครงสร้าง
<modelName>mycar</modelName>
หากคุณ Rename Vehicle Model หรือ Merge Entry แล้ว Model Name ไม่ตรงกับรถจริง Variation นั้นอาจไม่ถูกนำไปใช้กับรถตามที่ตั้งใจ
จึงควรตรวจความสัมพันธ์
Model
↓
vehicles.meta
↓
carvariations.meta
ให้ตรงกัน
โดยเฉพาะ Add-on Car ที่ผ่านการ Rename หรือ Merge หลายครั้ง
⑦ รถ Spawn ได้แต่ Variation ไม่ขึ้น เกิดจากอะไร
ตรวจตามลำดับ
carvariations.metaถูก Mount หรือไม่Model Name ตรงหรือไม่
Entry ของรถอยู่ครบหรือไม่
XML Structure เสียหรือไม่
carcols.metaที่เกี่ยวข้องอยู่ครบหรือไม่Model/Texture รองรับ Feature นั้นจริงหรือไม่
Script ไป Override ค่า Vehicle หลัง Spawn หรือไม่
อย่ารีบแก้ Model ถ้ารถต้นฉบับทำงานสมบูรณ์ก่อน Merge
⑧ สีเริ่มต้นของรถเกี่ยวข้องกับ carvariations.meta หรือไม่
Vehicle Variation สามารถเกี่ยวข้องกับการกำหนดชุดสีหรือ Variation ที่ Vehicle ใช้เมื่อถูกสร้างขึ้นตาม Asset ที่ออกแบบไว้
แต่ระบบสีรถ FiveM ยังสามารถถูกเปลี่ยนภายหลังด้วย Native และ Script ได้
FiveM มีรายการ Vehicle Color Index อย่างเป็นทางการ เช่น Index 0 คือ Black, 1 คือ Graphite และ 27 คือ Red
และ Native
SET_VEHICLE_COLOURS
ใช้ Primary/Secondary Paint Index โดยตรง
ดังนั้นถ้ารถสีผิด ต้องแยกว่า
สีผิดตั้งแต่ Base Variation
หรือ
Script เปลี่ยนสีหลัง Spawn
ก่อน
⑨ รถ Spawn มาสีผิดทุกครั้งต้องตรวจอะไร
ทดสอบก่อนโดย Spawn รถตรง ๆ ไม่ผ่าน
Vehicle Shop
Garage
Mechanic
Persistent Vehicle Script
ถ้ายังได้สีผิด ให้ตรวจ Base Asset และ Variation
แต่ถ้า Spawn ตรง ๆ สีปกติ แล้วซื้อจาก Vehicle Shop สีผิด ให้ตรวจ Script และ Vehicle Properties ก่อน
FiveM รองรับทั้ง Paint Index และ Custom RGB จึงเป็นไปได้ที่ Script จะ Override สีจาก Base Vehicle หลัง Spawn
⑩ รถมีหลายสี Default ได้หรือไม่
Vehicle Asset สามารถมี Variation หลายชุดตามการออกแบบของรถ
เช่นรถเดียวกันอาจถูก Spawn ด้วยสี Default ต่างกันได้ตาม Configuration ที่กำหนดไว้
แต่ถ้า Server ต้องการรถสีเฉพาะ เช่น
Police = ดำ
EMS = ขาว
Taxi = เหลือง
Script ก็สามารถ Apply สีหลัง Spawn ได้เช่นกัน
ดังนั้นอย่าพึ่ง Base Variation เพียงอย่างเดียวหาก Gameplay ต้องการค่าที่แน่นอนทุกครั้ง
⑪ Primary และ Secondary Color ต่างกันอย่างไร
FiveM Native
SET_VEHICLE_COLOURS
รับค่า
colorPrimary
colorSecondary
โดยทั้งสองเป็น Paint Index
ดังนั้นถ้ารถ Spawn จาก Base Variation แล้ว Script Apply
SetVehicleColours(vehicle, 0, 27)
สีที่เห็นสุดท้ายอาจต่างจาก Variation ที่กำหนดมาใน Meta
นี่เป็นเหตุผลว่าทำไม Debug สีรถต้องดู Script ด้วย
⑫ Custom RGB เกี่ยวกับ carvariations.meta หรือไม่
Custom RGB เป็นอีกระบบหนึ่งที่ Script สามารถใช้เปลี่ยนสี Vehicle ได้
FiveM มี
SET_VEHICLE_CUSTOM_PRIMARY_COLOUR
ซึ่งรับค่า RGB เช่น 255,0,0 สำหรับแดง
ดังนั้นหาก Vehicle Spawn จาก carvariations.meta สีถูก แต่ Script Customization Apply RGB หลังจากนั้น สีที่เห็นสุดท้ายจะถูกเปลี่ยน
จึงต้องดู Timeline ว่า
Spawn
↓
Base Variation
↓
Garage Properties
↓
Mechanic Customization
↓
สีสุดท้าย
ระบบใดทำงานทีหลัง
⑬ Pearlescent และ Wheel Color เกี่ยวข้องไหม
FiveM มี Native
SET_VEHICLE_EXTRA_COLOURS
สำหรับกำหนด Pearlescent Color และ Wheel Color โดยใช้ Color Index ชุดเดียวกับ Vehicle Colours
ดังนั้นบางครั้งผู้เล่นบอกว่า
“สีรถเพี้ยน”
แต่ Primary/Secondary ถูกแล้ว
สิ่งที่ผิดอาจเป็น
Pearlescent
Wheel Color
ซึ่ง Script Apply หลัง Spawn
อย่าแก้ carvariations.meta จนกว่าจะตรวจส่วนนี้
⑭ carvariations.meta เกี่ยวกับ Mod Kit อย่างไร
รถ Custom ที่มี Mod Kit มักต้องให้ข้อมูล Variation และ carcols.meta ทำงานสัมพันธ์กัน
CitizenFX มี Issue อย่างเป็นทางการที่กล่าวถึงปัญหา Game Build ซึ่งมีชื่อ Mod Kit ใน carcols และ carvariations และเมื่อความสัมพันธ์ไม่ถูกต้อง รถอาจไม่มี Mod Kit หรือ Mods ที่ควรมี
ดังนั้นหากเกิดอาการ
รถเข้าแต่งไม่ได้
Mod Kit หาย
Modification บางส่วนหาย
หลัง Merge ให้ตรวจทั้ง
carcols.meta
carvariations.meta
ร่วมกัน
⑮ รถแต่งไม่ได้หลัง Merge Car Pack
นี่เป็นอาการที่พบบ่อยมากใน Resource ที่นำหลาย Pack มารวมกัน
ให้ตรวจ
Entry ของรถครบหรือไม่
Model Name ถูกหรือไม่
Mod Kit Reference ยังตรงหรือไม่
carcols.metaถูก Merge ครบหรือไม่Identifier ซ้ำหรือไม่
XML Structure ถูกหรือไม่
File ถูก Replace ทั้งไฟล์โดยไม่ตั้งใจหรือไม่
ถ้ารถเดี่ยวทำงาน แต่พอรวม Pack แล้วเสีย ให้สงสัยขั้นตอน Merge ก่อน Asset Model
⑯ อย่า Replace carvariations.meta ทั้งไฟล์
สมมติ Pack เดิมมีรถ
car01
car02
car03
จากนั้นเพิ่มรถ
car04
รถใหม่มีไฟล์
carvariations.meta
เช่นเดียวกัน
หาก Copy แล้วกด
Replace file
คุณอาจลบ Variation Entries ของรถเดิมทั้งหมด
แนวทางที่ถูกต้องอาจเป็นการ Merge Entry หรือแยก Meta File ตามโครงสร้าง Resource
ไม่ใช่ Replace แบบอัตโนมัติ
⑰ แยก carvariations.meta หลายไฟล์ได้หรือไม่
FiveM Resource Manifest รองรับการประกาศ data_file ได้หลายรายการ และ Field ของ data_file รองรับ Glob Pattern ด้วย
จึงสามารถออกแบบ Resource เช่น
metas/
├── civilian_variations.meta
├── police_variations.meta
└── ems_variations.meta
แล้ว Mount แต่ละไฟล์ตามโครงสร้างที่กำหนด
สำหรับ Server ใหญ่ การแยกเป็นกลุ่มมัก Debug ง่ายกว่ารวมรถทุกคันไว้ไฟล์เดียว
⑱ รวมรถทั้งหมดไว้ carvariations.meta เดียวดีไหม
ทำได้ในบาง Workflow แต่มีข้อเสีย
ข้อดี
Search รถจากไฟล์เดียว
จำนวนไฟล์น้อย
เห็นข้อมูลรวม
ข้อเสีย
Merge ยาก
XML ยาว
Conflict หายาก
แก้ผิดอาจกระทบหลายคัน
Version Control Conflict ง่าย
Update รถหนึ่งคันยุ่งยาก
สำหรับ Server ที่มีรถหลายร้อยคัน การแยกตาม Car Pack มักจัดการได้ง่ายกว่า
⑲ รถบางคันใน Pack สีผิด แต่รถอื่นปกติ
ถ้ามีรถ 50 คันและเสียเพียงคันเดียว อย่าแก้ไฟล์ทั้ง Pack ใหม่
ให้หา Entry ของรถนั้น เช่น
car27
แล้วเทียบกับ Resource ต้นฉบับ
ตรวจ
Model Name
Color/Variation Data
Mod Kit Reference
Light/Siren Reference ถ้ามี
XML
Asset Dependency
รถอื่นทำงานปกติเป็นหลักฐานว่า Resource ระดับใหญ่มีโอกาสยังทำงานอยู่
⑳ รถทุกคันใน Pack Variation ผิด
ถ้าทั้ง Pack เสียพร้อมกัน ให้ตรวจระดับ Resource
เช่น
VEHICLE_VARIATION_FILEไม่ถูก MountPath ผิด
fxmanifest.luaผิดFile ที่ใช้อยู่ไม่ใช่ไฟล์ล่าสุด
Resource เก่า/ใหม่ชนกัน
FiveM ระบุ VEHICLE_VARIATION_FILE เป็น Data File Type สำหรับ carvariations.meta โดยเฉพาะ ดังนั้นหาก Resource ไม่ Mount ไฟล์นี้ การแก้ Entry ภายในอย่างเดียวก็ไม่ช่วย
㉑ Livery เกี่ยวข้องกับ carvariations.meta หรือไม่
Livery ของรถอาจเกี่ยวข้องกับหลายส่วน
YTD
Model
Mod Kit
carcols.metacarvariations.metaScript
ดังนั้นถ้า Livery หาย อย่าเปิด carvariations.meta แล้วแก้ทันที
ให้ตรวจว่า
Livery Asset มีอยู่จริงหรือไม่
ก่อน
ถ้า Texture/Livery File หาย Meta ที่ถูกต้องก็ไม่สามารถสร้างภาพที่ไม่มี Asset ได้
㉒ Livery หายหลัง Merge Pack
ตรวจตามลำดับ
YTD อยู่ครบหรือไม่
Shared Texture อยู่หรือไม่
Model รองรับ Livery หรือไม่
carcols.metaEntry ครบหรือไม่carvariations.metaถูก Merge หรือไม่Mechanic Script เปลี่ยน Livery ได้หรือไม่
ถ้าต้นฉบับทำงาน แต่ Pack ที่ Merge แล้วหาย ให้เน้นข้อ 4–5 ก่อน
㉓ Livery Default ผิดแต่เปลี่ยนเองได้
ถ้ารถ Spawn มา Livery ผิด แต่ใช้ Menu เปลี่ยน Livery ได้ครบ แปลว่า Asset ของ Livery มีโอกาสทำงานอยู่
ควรตรวจ
Default Variation
Vehicle Properties
Script ที่ Apply Livery หลัง Spawn
มากกว่าการแก้ YTD
นี่ช่วยแยกได้ว่า Asset “ไม่มี Livery” หรือเพียง “เลือก Livery เริ่มต้นผิด”
㉔ Extras เกี่ยวกับ carvariations.meta หรือไม่
Vehicle Extras สามารถเกี่ยวข้องกับ Model และ Configuration หลายส่วน
FiveM มี Data File Type แยกชื่อ
VEHICLEEXTRAS_FILE
สำหรับ vehicleextras.dat ด้วย
ดังนั้นถ้า Extra ไม่ทำงาน อย่าสรุปว่า carvariations.meta เป็นสาเหตุทั้งหมด
ให้ตรวจ
Model Extras
Vehicle Metadata
Variation
Script
Asset อื่น
ร่วมกัน
㉕ รถตำรวจต้องระวัง carvariations.meta เป็นพิเศษหรือไม่
ควรตรวจละเอียด เพราะ Emergency Vehicle มักมี Configuration ซับซ้อน
เช่น
Siren
Light
Livery
Extras
Mod Kit
Vehicle Variations
ใน CitizenFX Issue มีการกล่าวถึงความสัมพันธ์ระหว่าง carcols ID และ carvariations sirensettings สำหรับ Emergency Vehicles และเมื่อ ID ชน/เกินข้อจำกัดที่รายงานไว้ อาจทำให้ Lighting ทำงานผิด
จึงไม่ควรสุ่มเปลี่ยน Siren/Light IDs โดยไม่เข้าใจความสัมพันธ์ของข้อมูลทั้งสองไฟล์
㉖ sirenSettings คืออะไร
ใน Emergency Vehicle Assets อาจพบค่า sirenSettings ที่ใช้สัมพันธ์กับ Configuration ของ Siren/Lighting
CitizenFX Issue อย่างเป็นทางการยืนยันว่ามีการใช้ sirensettings ใน carvariations เชื่อมกับ ID ใน carcols สำหรับ Emergency Vehicles
ดังนั้นหากเกิด
ไฟฉุกเฉินผิด
Siren Light ชนรถคันอื่น
Police Vehicle Lighting เสียหลัง Merge
ควรตรวจการอ้าง ID ระหว่าง carcols.meta และ carvariations.meta
㉗ รถตำรวจไฟของรถ A ไปขึ้นรถ B
อาการนี้มักต้องสงสัย Identifier/Configuration Conflict หลัง Merge
โดยเฉพาะถ้า
Police Pack A
และ
Police Pack B
ทำงานปกติเมื่อแยก Resource
แต่เกิดปัญหาเมื่อนำมารวมกัน
ให้ย้อนตรวจ ID และ Reference ที่ใช้ใน
carcols.meta
carvariations.meta
ก่อนแก้ Model หรือ Texture
㉘ รถตำรวจไฟพังหลังเพิ่มรถใหม่
ถ้าปัญหาเกิดทันทีหลังเพิ่ม Emergency Vehicle คันใหม่ ให้ Disable รถใหม่ชั่วคราวแล้ว Test Pack เดิม
หากไฟกลับมาปกติ แสดงว่ารถใหม่หรือข้อมูลที่ Merge เข้าไปมีโอกาส Conflict
วิธีนี้เร็วกว่าการแก้รถตำรวจทุกคันพร้อมกัน
และควรเก็บ Backup ก่อนเพิ่มรถใหม่ทุกครั้ง
㉙ carvariations.meta ทำให้รถไม่มีเสียงได้หรือไม่
ไม่ใช่ไฟล์หลักของ Engine Audio
ถ้ารถไม่มีเสียง ให้ตรวจ
vehicles.metaaudioNameHashAudio Resource
AUDIO_GAMEDATAAUDIO_SOUNDDATAAUDIO_WAVEPACK
ก่อน
อย่าแก้ Vehicle Variation เพราะอาการ Engine Sound หายเพียงอย่างเดียว
㉚ carvariations.meta ทำให้ Handling ผิดไหม
ไม่ใช่ไฟล์หลักของ Handling
FiveM มี Data File Type แยก
HANDLING_FILE
สำหรับ Handling Data และ
VEHICLE_VARIATION_FILE
สำหรับ Vehicle Variation
ถ้ารถ
ช้า
เร็ว
เบรกไม่อยู่
ลื่น
พลิกง่าย
ให้ตรวจ handling.meta และ Handling Reference ก่อน
㉛ carvariations.meta ทำให้รถ Spawn ไม่ได้หรือไม่
หาก Data File เสียรุนแรงหรือ Resource มีปัญหา ก็ไม่ควรตัดออกจากการตรวจสอบ
แต่สำหรับอาการ Add-on Car Spawn ไม่ได้ ให้เริ่มจาก
Resource
Spawn Name
vehicles.metaModel YFT
fxmanifest.luaData Files อื่น
ก่อน
แล้วจึงตรวจ Variation ตาม Error ที่พบ
㉜ รถ Spawn ได้แต่ carvariations ไม่ทำงาน
ตรวจ Manifest ก่อน
ต้องมี
data_file 'VEHICLE_VARIATION_FILE' 'data/carvariations.meta'
ตาม Path จริง
FiveM ระบุว่าคำสั่ง data_file ใช้เพิ่ม Data File เข้า Extra Content System และรองรับ Glob Pattern ใน Filename Field ด้วย
ดังนั้น Path ที่ผิดจะทำให้ข้อมูลไม่ถูกโหลดตามที่ตั้งใจ
㉝ แก้ carvariations แล้วไม่เปลี่ยน
ตรวจว่า
แก้ถูก Resource หรือไม่
Resource ถูก Reload หรือไม่
File Path ตรงหรือไม่
มี Resource อื่นมี Model เดียวกันหรือไม่
Vehicle Entity เดิมยังถูกใช้อยู่หรือไม่
Script Apply Properties หลัง Spawn หรือไม่
ควร Spawn Vehicle ใหม่หลัง Reload Resource เพื่อทดสอบ Base Variation ใหม่อย่างชัดเจน
㉞ Script สามารถ Override Variation หลัง Spawn ได้หรือไม่
สามารถเปลี่ยนคุณสมบัติ Vehicle หลายส่วนหลัง Entity ถูกสร้างขึ้นได้
ตัวอย่างเรื่องสี FiveM มี Native สำหรับ Primary/Secondary Color, Custom RGB และ Extra Colours โดยตรง
ดังนั้น Base Variation ที่ถูกต้องอาจดูเหมือน “ไม่ทำงาน” หาก Script Garage หรือ Mechanic เปลี่ยนค่าทันทีหลัง Spawn
การ Debug จึงควรทดสอบรถโดยไม่ผ่าน Script เหล่านั้นก่อน
㉟ carvariations ผิดเฉพาะหลังเข้า Garage
กรณีนี้ให้ตรวจ Garage มากกว่า Base Meta
ตัวอย่าง
Spawn ใหม่ → ถูก
เก็บ Garage
เรียกออกมา → ผิด
แสดงว่า Database หรือ Vehicle Properties มีโอกาสเป็นสาเหตุ
ตรวจ
สี
Livery
Mods
Extras
Wheel Color
Pearlescent
Vehicle Properties
ที่ถูก Save และ Restore
㊱ carvariations ผิดหลัง Vehicle Shop
ถ้า Preview รถถูก แต่รถที่ซื้อจริงผิด ให้ดูว่า Vehicle Shop สร้าง Entity ใหม่อีกคันหรือไม่
อาจเกิด
Preview Vehicle
↓
Variation ถูก
Purchase
↓
สร้าง Vehicle ใหม่
↓
Apply Properties ไม่ครบ
↓
Variation ผิด
นี่เป็นปัญหา Script ไม่ใช่ carvariations.meta เสมอไป
㊲ XML Structure ผิดมีผลอย่างไร
Meta File ต้องถูก Parse อย่างถูกต้อง
หาก Merge แล้ว
Tag ไม่ครบ
Item ซ้อนผิด
Copy Entry ไม่ครบ
Paste ผิดระดับ
ลบส่วนสำคัญของ XML
ข้อมูล Variation อาจโหลดผิดหรือไม่โหลดเลย
ควรใช้ Code Editor ที่ช่วยตรวจ XML Structure และ Backup ก่อน Save
㊳ อย่าแก้ Identifier แบบสุ่ม
ถ้าพบ ID ซ้ำหลัง Merge อย่าเปลี่ยนตัวเลขแบบสุ่มเพียงเพื่อให้ไม่ซ้ำ
โดยเฉพาะ Emergency Vehicle ที่อาจมี Reference เชื่อมระหว่าง carcols และ carvariations
CitizenFX มี Issue ที่แสดงให้เห็นว่าค่า ID ใน carcols และ sirensettings ใน carvariations มีความสัมพันธ์กัน
การเปลี่ยนด้านเดียวอาจทำให้ Configuration เสียมากกว่าเดิม
㊴ รถเดี่ยวปกติ แต่ Pack รวมแล้วเสีย
นี่คือวิธีแยกปัญหาที่มีประโยชน์มาก
ถ้า
carA resource → ปกติ
carB resource → ปกติ
แต่
carA + carB ใน resource เดียว → ผิด
ให้สงสัย
ID Conflict
Model Name Conflict
Meta Merge
File ถูกเขียนทับ
XML
Shared Configuration
ก่อน
เพราะ Asset ทั้งสองทำงานเมื่อแยกอยู่แล้ว
㊵ แยกรถออกมาทดสอบอย่างไร
สมมติ
police_pack
มี 50 คัน และ police27 มีปัญหา
สร้าง Test Resource
police27_test
แล้วนำไฟล์ต้นฉบับของรถคันนั้นมาให้ครบ
เช่น
stream/
vehicles.meta
handling.meta
carcols.meta
carvariations.meta
จากนั้น Test แบบไม่ผ่าน Garage หรือ Mechanic
ถ้าปกติ แสดงว่าควรกลับไปตรวจ Pack ที่ Merge
㊶ carvariations.meta หลาย Resource ชนกันได้หรือไม่
ควรระวังเมื่อหลาย Resource ใช้ Vehicle Model หรือ Identifier เดียวกัน
Server ที่ผ่านการแก้มาหลายปีอาจมี
[cars]/police_pack
[old]/police_old
[test]/police_test
และเผลอ ensure ทั้งหมด
ควรปิด Resource เก่าที่ไม่ต้องใช้ระหว่าง Debug เพื่อให้รู้ว่า Data จากชุดใดกำลังมีผลกับรถจริง
㊷ Restart Resource หลังแก้พอหรือไม่
หลังแก้ Data File ควร Reload Resource และสร้าง Vehicle ใหม่เพื่อทดสอบ
หากมี Script หลายตัว Apply Vehicle Properties ควร Reconnect หรือ Restart Test Environment เมื่อจำเป็น เพื่อให้แน่ใจว่าไม่ได้ดู State เก่าของ Vehicle Entity
แต่ถ้า XML หรือ Path ยังผิด การ Restart อย่างเดียวจะไม่แก้ต้นเหตุ
㊸ carvariations.meta มีผลต่อ FPS หรือไม่
ตัว Meta ไม่ใช่ Model หรือ Texture ที่ GPU ต้อง Render
ถ้ารถทำให้ FPS ตก ควรตรวจ
YFT
YTD
Polygon
LOD
Texture Resolution
จำนวน Vehicle
Scripts
ก่อน
carvariations.meta เหมาะกับการ Debug Configuration มากกว่าปัญหา Rendering Performance
㊹ carvariations.meta ทำให้ Server Lag หรือไม่
ไม่ควรถือเป็นสาเหตุหลักของ Server CPU Lag
ถ้า Server Lag ให้ตรวจ
Resource CPU
Script Loops
Entity Count
Network
Database
Hardware
ส่วน carvariations.meta เป็น Data File ที่ Mount ผ่าน Resource System
จึงเป็นคนละประเภทของปัญหากับ Script ที่รันทุก Tick
㊺ วิธี Backup carvariations.meta
ก่อนแก้สร้าง
carvariations.meta
carvariations_original.meta
หรือ
backup/
├── carvariations_before_merge.meta
└── carvariations_working.meta
ถ้ามี Server ใหญ่ควรใช้ Version Control
เพราะ Meta File มีขนาดเล็กเมื่อเทียบกับ Model/Texture แต่การเสียข้อมูลหนึ่ง Entry อาจทำให้ใช้เวลาหาสาเหตุนานมาก
㊻ วิธี Merge carvariations.meta ที่ปลอดภัยกว่า
แนวทางพื้นฐาน
ขั้นที่ 1
Backup ทั้ง Pack เดิมและรถใหม่
ขั้นที่ 2
เปิดไฟล์สองชุดแบบ Compare
ขั้นที่ 3
หา Vehicle Entry ของรถใหม่
ขั้นที่ 4
เพิ่ม Entry โดยรักษา XML Structure
ขั้นที่ 5
ตรวจ Model Name
ขั้นที่ 6
ตรวจ Reference ที่เชื่อมกับ carcols.meta
ขั้นที่ 7
Save
ขั้นที่ 8
Reload Resource
ขั้นที่ 9
Spawn รถใหม่
ขั้นที่ 10
ทดสอบสี Mod Livery และ Extras ที่เกี่ยวข้อง
อย่า Merge รถ 100 คันแล้วทดสอบครั้งเดียว
㊼ วิธี Debug carvariations.meta แบบเร็วที่สุด
ใช้ลำดับนี้
ขั้นที่ 1
ยืนยันว่ารถ Spawn ได้
ขั้นที่ 2
ระบุว่าอะไรผิด
เช่น
สี
Livery
Mod Kit
ไฟ
Siren
Variation
ขั้นที่ 3
Spawn รถตรง ๆ ไม่ผ่าน Shop/Garage
ขั้นที่ 4
เทียบ Resource ต้นฉบับ
ขั้นที่ 5
ตรวจ fxmanifest.lua
ขั้นที่ 6
ตรวจ
VEHICLE_VARIATION_FILE
FiveM ใช้ Type นี้สำหรับ carvariations.meta โดยตรง
ขั้นที่ 7
ตรวจ Model Entry
ขั้นที่ 8
ตรวจ carcols.meta
ขั้นที่ 9
ตรวจ XML
ขั้นที่ 10
ตรวจ Script Override
ขั้นที่ 11
แยกรถเป็น Resource เดี่ยว
ขั้นที่ 12
ถ้าเป็น Emergency Vehicle ให้ตรวจ ID/Siren Configuration เพิ่ม
ตารางสรุปปัญหา carvariations.meta
| อาการ | จุดที่ควรตรวจ |
|---|---|
| รถ Spawn ได้แต่ Variation ผิด | carvariations.meta |
| สี Default ผิด | Variation / Script Color |
| Garage แล้วสีเปลี่ยน | Vehicle Properties |
| Livery หาย | YTD / Variation / Mod Kit |
| Mod Kit หาย | carcols + carvariations |
| รถตำรวจไฟผิด | Carcols/Siren Configuration |
| รถ A ได้ Configuration รถ B | ID Conflict |
| หลัง Merge แล้วเสีย | Meta Merge |
| รถเดี่ยวดี Pack เสีย | Conflict |
| Resource ทั้ง Pack Variation หาย | Manifest / Data File |
| แก้แล้วไม่เปลี่ยน | Resource/Path/Script Override |
| Handling ผิด | handling.meta |
| ไม่มีเสียง | vehicles.meta / Audio Resource |
ความสัมพันธ์ของ Meta รถ FiveM แบบจำง่าย
สามารถมองภาพรวมได้แบบนี้
Vehicle Model
↓
vehicles.meta
↓
┌───────────────┐
↓ ↓
Handling Audio
↓ ↓
handling.meta Audio Resource
Vehicle Customization / Variation
↓
carcols.meta
↕
carvariations.meta
นี่ไม่ใช่ Diagram ของ Engine ภายในทั้งหมด แต่เป็นวิธีช่วยจำว่าแต่ละไฟล์ควรเริ่มตรวจเมื่อเกิดปัญหาประเภทใด
carvariations.meta ควรแยกตาม Car Pack หรือไม่
สำหรับ Server เล็กสามารถใช้ตามโครงสร้างที่ Asset ให้มาได้เลย
แต่ Server ใหญ่ comsiam แนะนำให้เก็บรถเป็น Resource หรือ Pack ที่มีขอบเขตชัดเจน เช่น
civilian_pack
police_pack
ems_pack
jdm_pack
supercar_pack
เพราะถ้า Police Pack มีปัญหาเรื่อง Siren หรือ Variation คุณสามารถ Debug เฉพาะ Resource นั้นได้
FiveM ออกแบบ Resource Manifest ให้ Mount Data Files แยกเป็น Resource และรองรับ data_file หลายชุดอยู่แล้ว
เป้าหมายจึงไม่ควรเป็น “รวมทุกอย่างให้เหลือไฟล์เดียว” แต่ควรเป็น ทำให้ Update และ Debug ได้ง่ายที่สุด
สรุป FiveM carvariations.meta คืออะไร
FiveM carvariations.meta คือ Vehicle Variation Data File ที่ใช้เก็บ Configuration Variation ของ Vehicle และถูกโหลดผ่าน Data File Type VEHICLE_VARIATION_FILE ซึ่ง Cfx.re ระบุและยก carvariations.meta เป็นตัวอย่างโดยตรง
ถ้ารถ Spawn ได้แต่เกิดปัญหาเรื่อง
สีเริ่มต้น
Variation
Livery
Mod Kit
Emergency Light/Siren Configuration
ให้ตรวจ carvariations.meta ร่วมกับ
carcols.meta
vehicles.meta
YTD/YFT
Vehicle Script
โดยเฉพาะหลัง Merge Car Pack
ถ้ารถทำงานดีเมื่ออยู่ Resource เดี่ยว แต่เสียหลังรวม Pack อย่ารีบแก้ Model เพราะต้นเหตุมักควรเริ่มตรวจที่ Meta Merge, Identifier Conflict และ Reference ระหว่างไฟล์
สิ่งสำคัญที่สุดคือ Backup ก่อนแก้ เพิ่มรถทีละชุด และทดสอบหลัง Merge ทุกครั้ง เพราะการจัด carvariations.meta ให้เป็นระบบตั้งแต่ต้นจะง่ายกว่าการไล่แก้รถหลายร้อยคันเมื่อ Server เปิดใช้งานจริงแล้ว
Comments
Post a Comment