FiveM เสื้อผ้า Custom คืออะไร ต่างจาก Add-on Clothes และ Props อย่างไร
FiveM เสื้อผ้า Custom คือเสื้อผ้า เครื่องแต่งกาย หรือส่วนประกอบของตัวละครที่ถูกเพิ่มหรือปรับแต่งจาก Content เดิมของ GTA V เพื่อให้ผู้เล่นใน FiveM สามารถสร้างตัวละครที่มีรูปลักษณ์เฉพาะ Server เช่น เสื้อแก๊ง ชุดตำรวจ เสื้อร้านค้า ชุดหน่วยแพทย์ รองเท้า กางเกง หมวก หรือเครื่องประดับต่าง ๆ
ในระบบ Ped ของ GTA V/FiveM เสื้อผ้าและเครื่องแต่งกายถูกจัดการผ่านแนวคิดอย่าง Components, Drawables, Textures และ Props โดย FiveM มี Native เช่น SET_PED_COMPONENT_VARIATION สำหรับเปลี่ยน Component Variation ของ Ped และระบุ componentId, drawableId, textureId และ paletteId โดยตรง.
FiveM รุ่นปัจจุบันยังมี Collection-based natives ซึ่งจัด Drawable Components และ Props เป็น Collections และช่วยให้ Local Index ภายใน Collection คงที่เมื่อมี GTA Title Update มากกว่าการอ้าง Global Index เพียงอย่างเดียว.
บทความนี้จาก comsiam จะอธิบายว่า FiveM Custom Clothes คืออะไร ต่างจาก Add-on Clothes, Replace Clothes และ Props อย่างไร พร้อมพื้นฐาน Component ID, Drawable, Texture และวิธีคิดที่ถูกต้องก่อนติดตั้งเสื้อผ้าจำนวนมากใน Server
FiveM เสื้อผ้า Custom คืออะไร
พูดแบบง่ายที่สุด
FiveM Custom Clothes
=
เสื้อผ้า/เครื่องแต่งกายที่ปรับแต่งหรือเพิ่มเข้ามา
เพื่อใช้กับ Ped ของผู้เล่นใน FiveM
ตัวอย่างเช่น
เสื้อยืด Server
เสื้อแก๊ง
ชุดตำรวจ
ชุด EMS
ชุด Mechanic
กางเกง Custom
รองเท้า Custom
แจ็กเก็ต
หมวก
แว่น
เครื่องประดับ
เสื้อผ้าเหล่านี้สามารถมีหลาย Drawable และหลาย Texture Variation ได้ โดย FiveM Native API มี Functions สำหรับนับและกำหนด Drawable/Texture Variations ของ Ped โดยตรง.
① Component คืออะไร
ใน GTA V/FiveM ตัวละครไม่ได้มี “เสื้อผ้าหนึ่งชุด” เป็นไฟล์เดียวเสมอไป แต่แบ่งเป็น Ped Components
SET_PED_COMPONENT_VARIATION ใช้ componentId เพื่อเลือกว่าเรากำลังเปลี่ยนส่วนใดของ Ped.
ตัวอย่าง Component ที่ Native Reference ระบุ ได้แก่
0 Face
1 Mask
2 Hair
3 Torso
4 Legs
5 Bags/Parachutes
6 Shoes
7 Accessories
8 Undershirts
9 Body Armor
10 Decals
11 Tops
รายการ Component เหล่านี้อ้างอิงตาม Ped Model และ Drawable/Texture IDs ก็สัมพันธ์กับ Ped Model ที่กำลังใช้.
② Drawable คืออะไรในเสื้อผ้า FiveM
Drawable คือ Variation หลักของ Component นั้น
ตัวอย่าง
Component 11 = Tops
อาจมี Drawable
Drawable 0
Drawable 1
Drawable 2
Drawable 3
...
แต่ละ Drawable อาจเป็นเสื้อคนละทรง เช่น
เสื้อยืด
เสื้อเชิ้ต
แจ็กเก็ต
เสื้อ Hoodie
เสื้อ Uniform
FiveM Native SET_PED_COMPONENT_VARIATION รับ drawableId โดยตรงเพื่อกำหนด Variation ของ Component.
③ Texture คืออะไร
Drawable หนึ่งตัวสามารถมีหลาย Texture Variations
ตัวอย่าง
Drawable = เสื้อ Hoodie
แต่ Texture อาจเป็น
Texture 0 = สีดำ
Texture 1 = สีแดง
Texture 2 = สีน้ำเงิน
Texture 3 = Logo Gang A
Texture 4 = Logo Gang B
FiveM Native API แยก drawableId และ textureId ออกจากกัน และมี Functions สำหรับตรวจจำนวน Texture Variations ของ Drawables/Props.
④ Drawable กับ Texture ต่างกันอย่างไร
จำง่าย ๆ
Drawable
= รูปทรง/Variation หลัก
Texture
= รูปแบบพื้นผิวของ Drawable นั้น
ตัวอย่าง
เสื้อ Hoodie
= Drawable
Hoodie สีดำ
Hoodie สีแดง
Hoodie Logo Police
= Texture Variations
ดังนั้นถ้าต้องการเปลี่ยนเพียงสีหรือ Logo อาจไม่จำเป็นต้องสร้าง Drawable ใหม่ทุกครั้ง ขึ้นอยู่กับ Asset Design
⑤ Custom Clothes ต่างจาก GTA V Clothes เดิมอย่างไร
GTA V มี Drawable Components และ Props ของ Ped อยู่แล้ว ส่วน Custom Clothes คือ Content ที่ Server เพิ่มหรือปรับแต่งเพื่อขยายตัวเลือกจากของเดิม
FiveM Documentation อธิบายว่า GTAV Ped Drawables และ Props ถูกจัดเป็น Collections และ FiveM มี Collection-based APIs สำหรับเข้าถึง Content เหล่านี้.
Server จึงสามารถมีทั้ง
GTA V Clothes เดิม
+
Custom Clothes
อยู่ร่วมกัน
⑥ FiveM Add-on Clothes คืออะไร
โดยแนวคิด Add-on Clothes คือการเพิ่ม Content เสื้อผ้าใหม่เข้าระบบแทนการเขียนทับ Variation เดิมที่มีอยู่
ภาพรวม
ของเดิม
0
1
2
3
เพิ่ม Custom
4
5
6
...
อย่างไรก็ตามการอ้าง Index แบบ Global มีข้อควรระวัง เพราะ Cfx.re ระบุว่า GTA Title Updates สามารถทำให้ Global Index ของ Custom Drawable Components และ Props เปลี่ยนได้.
นี่เป็นหนึ่งในเหตุผลที่ FiveM เพิ่ม Collection-based natives
⑦ Replace Clothes คืออะไร
Replace Clothes คือแนวทางที่ Custom Asset เข้าไปแทน Variation เดิม
ภาพรวมเชิงแนวคิด
เสื้อเดิม Drawable 10
↓
Replace
↓
เสื้อ Custom ใช้ตำแหน่งเดิม
ข้อเสียคือ Content ต้นฉบับใน Slot นั้นอาจไม่สามารถใช้ในรูปเดิมได้ และการดูแล Asset Pack ขนาดใหญ่จะซับซ้อนกว่าเมื่อมี Resources หลายชุดเข้ามาแก้ตำแหน่งเดียวกัน
สำหรับ Server ใหญ่จึงควรแยกให้ได้ว่า Pack ที่ใช้เป็น Add-on หรือ Replace ก่อนติดตั้ง
⑧ Add-on กับ Replace แบบไหนดีกว่า
สำหรับ Server ที่ต้องการมีเสื้อผ้าจำนวนมาก Add-on มักจัดการ Content ได้เป็นระบบกว่า เพราะไม่ต้องตั้งใจเขียนทับ Drawable เดิมทุกชิ้น
แต่ไม่ได้หมายความว่า Replace ใช้ไม่ได้
ควรดู
จำนวนเสื้อผ้า
Compatibility
ระบบ Clothing Menu
Ped Model
Resource Structure
วิธีที่ Creator ออกแบบ
ก่อนเลือก
⑨ Props คือเสื้อผ้าหรือไม่
ใน GTA/FiveM Props ถูกแยกจาก Drawable Components
FiveM มี Native SET_PED_PROP_INDEX สำหรับกำหนด Prop Variation และ Documentation ระบุว่า Components, Drawables และ Texture IDs สัมพันธ์กับ Ped Model.
ตัวอย่าง Props มักรวมสิ่งที่ติดกับ Ped ในระบบ Prop Slots เช่นหมวกหรือแว่นตาม Ped/Slot ที่ใช้งาน
⑩ Component กับ Prop ต่างกันอย่างไร
จำแบบง่าย
Component
→ เสื้อ กางเกง รองเท้า Torso ฯลฯ
Prop
→ Accessory ที่อยู่ใน Prop Slots
และ FiveM แยก Native ระหว่าง
SET_PED_COMPONENT_VARIATION
กับ
SET_PED_PROP_INDEX
อย่างชัดเจน.
⑪ หมวกเป็น Component หรือ Prop
ในการทำระบบแต่งตัว FiveM หมวกมักถูกจัดการผ่าน Ped Prop Variation มากกว่าผ่าน Component Variation
จึงพบการใช้
SetPedPropIndex(...)
สำหรับ Accessory ประเภทนี้
Native ดังกล่าวรับ propIndex, drawableId, textureId และค่าที่กำหนดว่าจะ Attach Prop หรือไม่.
⑫ แว่นเป็น Prop หรือไม่
ในระบบ Ped Variation แว่นเป็นอีกตัวอย่างของ Item ที่ระบบแต่งตัวมักจัดการผ่าน Props
สิ่งสำคัญคือไม่ควรนำ Component Index และ Prop Index มาปนกัน เพราะ API แยกออกเป็นคนละชุด.
⑬ เสื้อด้านนอกกับ Torso เกี่ยวข้องกันอย่างไร
เสื้อ FiveM บางตัวต้องจับคู่
Top
+
Torso/Arms
+
Undershirt
ให้เหมาะสม
ถ้าเลือก Combination ผิดอาจเห็น
แขนทะลุเสื้อ
แขนหาย
เสื้อด้านในทะลุออกมา
Skin โผล่ผิดตำแหน่ง
ดังนั้นระบบ Clothing Menu ที่ดีต้องเก็บ Combination ที่เข้ากัน ไม่ใช่สุ่ม Drawable ทุก Component โดยไม่สนกัน
⑭ ทำไมแขนตัวละครหายหลังใส่เสื้อ
อาการนี้มักเกิดจาก Combination ของ
Top
Torso
Undershirt
ไม่สัมพันธ์กัน
ไม่ได้หมายความว่า Texture เสื้อเสียเสมอไป
ก่อนแก้ Asset ควรลองเปลี่ยน Torso/Arms Variation ที่ Creator แนะนำก่อน
⑮ ทำไมเสื้อทะลุตัว
อาจเกิดจาก
Mesh
Weighting
Torso Combination
Undershirt
Ped Model
Asset Design
หากเกิดกับเสื้อตัวเดียวบนทุก Client ให้สงสัย Asset/Combination มากกว่าปัญหา Network
⑯ ทำไมเสื้อด้านในทะลุแจ็กเก็ต
เพราะเสื้อด้านในกับ Outer Top อาจใช้ Geometry ที่ซ้อนกัน
ตัวอย่าง
Undershirt หนา
+
Jacket คับ
=
Clipping
ระบบ Clothing Script ที่ดีจึงมักต้องจัด Compatible Combinations ของ Tops และ Undershirts
⑰ Female กับ Male Clothes ใช้ร่วมกันได้ไหม
ไม่ควรถือว่าใช้ Asset เดียวกันได้โดยอัตโนมัติ
Ped Models และ Drawable Variations ผูกกับ Model ที่ใช้งาน โดย Cfx.re Native Reference ระบุว่า Components, Drawables และ Texture IDs สัมพันธ์กับ Ped Model.
ดังนั้น Asset ที่ทำสำหรับ Ped Model หนึ่งอาจไม่เหมาะกับอีก Model
⑱ MP Male และ MP Female คืออะไร
FiveM Roleplay Servers จำนวนมากใช้ Multiplayer Freemode Ped Models เป็นฐานของระบบ Character Customization
สิ่งสำคัญในเชิงเทคนิคคือ Clothing IDs ต้องถูกอ่านในบริบทของ Ped Model นั้น ไม่ควรคิดว่า Drawable 50 ของ Ped หนึ่งต้องเป็นเสื้อเดียวกับ Drawable 50 ของ Ped อีกตัว เพราะ IDs สัมพันธ์กับ Ped Model.
⑲ Clothing ID คืออะไร
เวลาระบบแต่งตัวบันทึกค่า เช่น
Component = 11
Drawable = 42
Texture = 3
โดยแนวคิดหมายถึง
Component 11
→ ใช้ Drawable 42
→ Texture 3
FiveM Native ใช้ค่าลักษณะนี้โดยตรงในการกำหนด Component Variation.
⑳ ทำไม Clothing ID เปลี่ยนหลัง GTA Update
Cfx.re ระบุว่า Global Index ของ Custom Drawable Components และ Props สามารถเปลี่ยนทุก Title Update เพราะ Collections ถูกวางต่อกันเป็นชุด และเมื่อ Collection ของเกมมี Drawables เพิ่มเข้ามา Global Index ของ Collections ที่อยู่ถัดไปสามารถเลื่อนได้.
นี่เป็นปัญหาสำคัญของระบบ Clothing ที่เก็บเพียง Global Drawable ID
㉑ Collections คืออะไร
Cfx.re อธิบายว่า Ped Drawable Components และ Props ถูกจัดเก็บใน Named Collections
สามารถมองเป็น
Collection A
├── Drawable 0
├── Drawable 1
└── Drawable 2
Collection B
├── Drawable 0
├── Drawable 1
└── Drawable 2
แต่ละ Collection มีชื่อและมี Local Drawable Index ของตัวเอง.
㉒ Global Index คืออะไร
Global Index คือการนับ Drawables ต่อกันจาก Collections ทั้งหมด
สมมติ
Collection A = 10 Drawables
Collection B = 10 Drawables
Drawable แรกของ Collection B อาจถูกมองเป็น Global Position ต่อจาก Collection A
เมื่อ Game Update เพิ่ม Content ใน Collection ที่มาก่อนหน้า ตำแหน่ง Global ของ Collection หลัง ๆ สามารถเปลี่ยนได้.
㉓ Local Index คืออะไร
Local Index คือ Index ภายใน Collection นั้นเอง
เช่น
Collection custom_police
Drawable 0
Drawable 1
Drawable 2
Cfx.re ระบุว่า Collection-based indexes ถูกออกแบบให้คงที่หลัง Title Updates จึงช่วยลดปัญหา Index Migration.
㉔ Collection-based Natives มีข้อดีอะไร
ประโยชน์สำคัญคือ Server สามารถอ้าง
Collection
+
Local Drawable Index
แทนการพึ่ง Global Index อย่างเดียว
Cfx.re ระบุชัดว่า Collection-based indexes ยังคง Stable หลัง Title Updates ซึ่งช่วยลดงาน Migration เมื่อ Server เปลี่ยน Game Build.
㉕ ตัวอย่าง Collection Component Native
FiveM มี Native เช่น
SetPedCollectionComponentVariation(
ped,
componentId,
collection,
drawableId,
textureId,
paletteId
)
ซึ่งใช้ Local Drawable ID ภายใน Collection แทน Global Drawable Index.
นี่มีประโยชน์มากสำหรับระบบ Clothing ที่ต้องการความเสถียรระยะยาว
㉖ Custom Clothes ต้องมี Script ไหม
ตัว Asset เสื้อผ้าและระบบเลือกเสื้อผ้าเป็นคนละส่วน
สามารถมองเป็น
Clothing Assets
+
Clothing Script/Menu
Asset ทำให้ Content พร้อมใช้งาน
ส่วน Script/Menu ทำหน้าที่
แสดงรายการ
เปลี่ยน Component
เปลี่ยน Texture
Save Outfit
Load Outfit
FiveM มี Native สำหรับเปลี่ยน Ped Variations แต่ระบบ Menu และ Database เป็นสิ่งที่ Server Developer สร้างหรือใช้ Resource เพิ่มเติมเอง.
㉗ Custom Clothes ต้องใช้ ESX ไหม
ตัวระบบ Ped Component ของ FiveM ไม่ได้เป็น ESX API
Native อย่าง
SET_PED_COMPONENT_VARIATION
SET_PED_PROP_INDEX
เป็น FiveM/GTA Client Natives.
แต่ Clothing Shop หรือ Character System ที่ Server ใช้อาจถูกสร้างให้พึ่ง ESX, QBCore หรือ Framework อื่นได้
จึงต้องแยก Asset ออกจาก Gameplay Script
㉘ Custom Clothes ต้องใช้ QBCore ไหม
หลักเดียวกัน
Asset เสื้อผ้าไม่จำเป็นต้องเป็น QBCore โดยตัวมันเอง
แต่ Menu ที่ใช้เลือกและบันทึก Outfit อาจเป็น QBCore Resource
ดังนั้นก่อนซื้อ Clothing Pack ควรตรวจว่า Package มี
เฉพาะ Assets
หรือ
Assets + Clothing Script
㉙ FiveM Resource คืออะไรในบริบทเสื้อผ้า
FiveM Server ทำงานผ่าน Resources ซึ่งสามารถประกอบด้วย Scripts และ Streaming Assets และ Resource สามารถ Start, Stop หรือ Restart แยกกันได้.
ดังนั้น Custom Clothing Pack มักถูกจัดเป็น Resource หนึ่งหรือหลาย Resources ภายใน
resources/
ตาม Package Structure ของ Creator
㉚ โครงสร้าง Resource เสื้อผ้าโดยทั่วไป
ตัวอย่างเชิงแนวคิด
resources/
└── [clothes]/
└── custom_clothes/
├── fxmanifest.lua
└── stream/
FiveM ระบุว่า Resource อยู่ภายใน resources/ และ Folder ในวงเล็บเหลี่ยมสามารถใช้เป็น Category ที่มี Resources หลายตัวอยู่ภายในได้.
㉛ fxmanifest.lua สำคัญไหม
สำคัญ
Resource Manifest ปัจจุบันคือ
fxmanifest.lua
และต้องอยู่ภายใน Resource Folder เพื่อกำหนด Metadata และส่วนต่าง ๆ ของ Resource.
ดังนั้นหากดาวน์โหลด Clothing Pack แล้ว FiveM หา Resource ไม่เจอ ให้ตรวจ Folder ที่มี fxmanifest.lua จริงก่อน
㉜ เสื้อผ้าไม่ขึ้นหลังติดตั้งตรวจอะไร
เริ่มจาก
Resource
↓
fxmanifest.lua
↓
Resource Started
↓
Ped Model
↓
Component
↓
Drawable
↓
Texture
↓
Clothing Menu
อย่าเริ่มด้วยการล้าง Cache หากผู้เล่นทุกคนไม่เห็นเสื้อผ้าชุดเดียวกัน
㉝ ตรวจ Resource ด้วย ensure
หลังวาง Resource ใน Server สามารถใช้ Resource Commands เช่น
ensure custom_clothes
โดย FiveM มีคำสั่ง ensure สำหรับทำให้ Resource ถูก Start หรือ Restart ตาม State ปัจจุบัน.
ควรเพิ่ม Resource ที่ต้องเปิดทุกครั้งไว้ใน Server Configuration ด้วยตามการจัดการ Server ของคุณ
㉞ เพิ่งเพิ่ม Resource ให้ใช้ refresh
ถ้าเพิ่ม Clothing Resource ขณะ FXServer ทำงานอยู่ สามารถใช้
refresh
เพื่อให้ Server Rescan Resources และ Manifests ก่อน ensure Resource ใหม่.
Workflow
refresh
ensure custom_clothes
ช่วยแยกปัญหา “Server ยังไม่รู้จัก Resource” ออกจาก “Asset เสื้อผ้ามีปัญหา”
㉟ เสื้อผ้าขึ้นแต่ Texture ผิด
ถ้า Drawable ถูกต้องแต่
สีผิด
Logo ผิด
Texture ไม่ตรง
Texture Variation อื่นถูกเลือก
ให้ตรวจ textureId
เพราะ FiveM แยก Drawable ID และ Texture ID ใน Ped Component API.
ตัวอย่าง
Drawable 50
Texture 0 = ดำ
Texture 1 = แดง
Texture 2 = Police
㊱ เสื้อคนละตัวขึ้นแทนตัวที่เลือก
หนึ่งในจุดที่ควรตรวจคือระบบกำลังเก็บ Global Drawable Index และ Index เปลี่ยนหลัง Title Update หรือไม่
Cfx.re อธิบายปัญหานี้โดยตรงและแนะนำ Collection-based natives เพื่อให้ Local Index ของ Collection เสถียรกว่า.
นี่สำคัญมากสำหรับ Server ที่เก็บ Outfits ระยะยาว
㊲ Outfit เก่าพังหลังอัปเดต Game Build
ถ้า Outfit Database บันทึกเพียง
componentId
drawableId
textureId
แบบ Global Index และ Game Title Update ทำให้ Index ของ Custom Collection เลื่อน Outfit เก่าสามารถชี้ไปยัง Drawable คนละตัวได้ตามปัญหาที่ Cfx.re อธิบายไว้.
ระบบใหม่ที่ควบคุมได้ควรพิจารณาการเก็บข้อมูล Collection ร่วมด้วย
㊳ Collection Name ควรเก็บใน Database ไหม
หาก Clothing System ของคุณใช้ Collection-based natives การเก็บ
Collection Name
Local Drawable ID
Texture ID
สามารถช่วยให้ Outfit อ้าง Asset ภายใน Collection ได้ตรงกว่า Global Index ระยะยาว เพราะ Local Index ภายใน Collection ไม่ถูกเลื่อนจาก Collections อื่นเมื่อมี Title Update.
รายละเอียด Implementation ต้องสัมพันธ์กับ Clothing Resource และ Database Schema ที่ใช้จริง
㊴ Drawable ID ใช้ร่วมทุก Ped ไม่ได้
FiveM Native Reference ระบุชัดว่า Components, Drawable IDs และ Texture IDs สัมพันธ์กับ Ped Model.
ดังนั้น
Ped A Drawable 10
ไม่ได้รับประกันว่าเท่ากับ
Ped B Drawable 10
ระบบ Outfit จึงควรตรวจ Model ก่อน Apply Clothing Data
㊵ สามารถตรวจว่า Variation ใช้ได้ไหม
ได้
FiveM มี Native IS_PED_COMPONENT_VARIATION_VALID สำหรับตรวจว่า Component Variation ที่กำหนดสามารถใช้กับ Ped ได้หรือไม่.
สิ่งนี้มีประโยชน์เมื่อต้อง
Validate Outfit
Randomize Clothes
ป้องกัน Invalid Combination
ตรวจข้อมูลเก่าหลัง Update
㊶ Collection Variation ก็ตรวจได้ไหม
FiveM ยังมี Native สำหรับตรวจ Collection Component Variation เช่น IS_PED_COLLECTION_COMPONENT_VARIATION_VALID ซึ่งตรวจความถูกต้องจาก Ped, Component, Collection, Drawable และ Texture.
จึงสามารถ Validate Clothing Data ก่อน Apply จริงได้
㊷ เสื้อผ้า Custom ทำให้ FPS ตกไหม
Custom Clothes เป็น Streaming Assets ที่ Client ต้องโหลดและ Render เช่นเดียวกับ Content อื่นของ Server
แต่ไม่ควรสรุปจากจำนวนเสื้อเพียงอย่างเดียวว่า FPS จะตกเสมอ
ควรดู
Model Complexity
Texture Resolution
จำนวนผู้เล่นที่อยู่ใน Scene
จำนวน Custom Assets อื่น
Client Hardware
FiveM Resources สามารถมี Streaming Assets และ Client จะต้องจัดการ Content ของ Resources ที่ใช้งาน.
㊸ เสื้อผ้า 4K ทุกชุดจำเป็นไหม
ไม่
เสื้อผ้าที่ผู้เล่นเห็นในระยะทั่วไปไม่จำเป็นต้องมี Texture ความละเอียดสูงสุดทุกชิ้น
โดยเฉพาะ Server ที่มี
Clothes หลายพันรายการ
+
Custom Cars
+
MLO
+
Maps
ควรคิดเรื่อง Asset Budget รวมมากกว่าคุณภาพ Texture รายตัวเพียงอย่างเดียว
㊹ Clothing Pack ใหญ่ทำให้โหลดช้าไหม
ยิ่ง Server มี Streaming Assets มาก Client ก็มี Content มากขึ้นที่ต้องจัดการ แต่ Performance จริงขึ้นกับคุณภาพและโครงสร้าง Assets ไม่ใช่จำนวน Folder เพียงอย่างเดียว
FiveM Resource System รองรับ Streaming Assets เป็นส่วนหนึ่งของ Resources โดยตรง.
ดังนั้น Pack ใหญ่ควรถูกตรวจก่อน Production แทนการใส่ทั้งหมดแล้วค่อยรอปัญหา
㊺ ไม่ควรรวมเสื้อผ้าทุก Pack แบบ Copy/Replace
หาก Resources สองชุดมี Asset Names ชนกัน การ Copy Files เข้า Folder เดียวแล้วกด Replace สามารถทำให้ Asset จาก Pack หนึ่งหายได้
วิธีที่ปลอดภัยกว่าในขั้นแรกคือ
Pack A แยก Resource
Pack B แยก Resource
ทดสอบทั้งคู่ก่อน แล้วจึงพิจารณา Merge เมื่อเข้าใจ Asset Structure จริง
㊻ Clothing Conflict ดูอย่างไร
อาการ เช่น
เสื้อ A กลายเป็นเสื้อ B
Texture ผิด
Item หายหลังเพิ่ม Pack ใหม่
Outfit เก่าเปลี่ยน
Resource เดี่ยวปกติ แต่ Merge แล้วเสีย
ให้ทดสอบ
Pack A ON
Pack B OFF
แล้ว
Pack A OFF
Pack B ON
ก่อน
ถ้าแยกแล้วปกติ ให้ตรวจ Asset/Index Conflict
㊼ เสื้อผ้าหายหลัง GTA Title Update
จุดสำคัญที่ต้องตรวจคือ Index
Cfx.re ระบุว่า Global Index ของ Custom Components/Props สามารถเปลี่ยนเมื่อ Title Update เพิ่ม Drawables เข้า Collections ของเกม.
ดังนั้นหาก
ก่อน Update → Outfit ปกติ
หลัง Update → ใส่คนละตัว
อย่ารีบคิดว่า Asset File ถูกลบ
ตรวจ Index Migration ก่อน
㊽ Collection-based Natives แก้ทุกปัญหาเสื้อผ้าไหม
ไม่
ช่วยแก้ปัญหา Index Stability ได้มาก แต่ไม่ได้ซ่อม
Model แตก
Texture ผิด
Weighting เสีย
Clipping
Resource ไม่ Start
Missing Asset
ดังนั้นต้องแยกปัญหาระดับ Index ออกจากปัญหา Asset
㊾ Custom Clothes ใช้กับ NPC ได้ไหม
Ped Component/Prop Natives ทำงานกับ Ped Entity และ IDs จะขึ้นกับ Ped Model ที่รองรับ Variations นั้น.
จึงไม่ควรสมมติว่า Custom Clothes ที่สร้างสำหรับ Multiplayer Character Model จะใส่ NPC Model ทุกตัวได้โดยอัตโนมัติ
㊿ เสื้อผ้าควรทดสอบอะไรบ้าง
ก่อน Production ควรทดสอบ
ชาย
หญิง
เดิน
วิ่ง
นั่ง
ขึ้นรถ
ถืออาวุธ
ยกแขน
Emote
หมอบ
ว่ายน้ำถ้าเกี่ยวข้อง
เพื่อดู
Clipping
Weighting
แขนหาย
Texture
Props หลุด
Combination
การเปิดดูเสื้อใน Character Menu อย่างเดียวไม่เพียงพอ
51. เสื้อผ้าตำรวจควรจัดอย่างไร
ควรแยก Combination ที่ผ่านการทดสอบแล้ว เช่น
Top
Torso
Undershirt
Legs
Shoes
Accessories
Props
แทนการให้ผู้เล่น Mix ทุกอย่างแบบไร้ข้อจำกัด
เพราะ Top/Torso/Undershirt บาง Combination สามารถเกิด Clipping แม้แต่ละ Drawable จะใช้งานได้แยกกัน
52. Gang Clothes ควรทำ Texture หรือ Drawable ใหม่
ถ้าเป็นเสื้อทรงเดิมแต่ต่างเพียง
Logo
สี
ลาย
การออกแบบเป็น Texture Variations สามารถเป็นแนวทางหนึ่งได้ เพราะ FiveM แยก Drawable และ Texture IDs อยู่แล้ว.
แต่ถ้ารูปทรงเสื้อแตกต่างจริง จึงเป็นเรื่องของ Drawable/Model Asset
53. เปลี่ยนสีเสื้อด้วย Texture ดีกว่าสร้าง Drawable ซ้ำไหม
ถ้า Geometry เหมือนเดิม การใช้ Texture Variations สามารถหลีกเลี่ยงการสร้าง Model Variation ซ้ำโดยไม่จำเป็น
ตัวอย่าง
Hoodie Model เดียว
├── Black
├── Red
├── Blue
└── Green
สอดคล้องกับระบบที่ FiveM แยก Texture Variation จาก Drawable ID.
54. Props มี Texture Variations ได้ไหม
ได้
FiveM มี Native สำหรับดูจำนวน Texture Variations ของ Ped Props โดยรับ Ped, Prop Index และ Drawable ID.
ดังนั้นหมวกหรือ Prop Drawable หนึ่งตัวสามารถมี Texture Variations ได้ตาม Asset/Ped Model
55. Clothing Menu ควรเช็กจำนวน Drawable อย่างไร
อย่ากำหนด Max Drawable แบบ Hard-code หากระบบสามารถ Query จาก Ped ได้
FiveM มี Native APIs สำหรับ Drawable/Texture Variations และ Collection-based APIs สำหรับ Components/Props.
ระบบ Menu ที่อ่านจำนวน Variation จริงจะทนต่อการเปลี่ยน Content ได้ดีกว่ากำหนดเลขสูงสุดแบบเดา
56. Outfit Database ควรเก็บอะไร
ในระบบแบบพื้นฐานอาจมี
Ped Model
Component ID
Drawable
Texture
Prop Slot
Prop Drawable
Prop Texture
และถ้าใช้ Collection-based Architecture ควรพิจารณา
Collection Name
Local Drawable ID
ด้วย เพราะ Cfx.re ระบุว่าการอ้าง Local Index ภายใน Collection มีความเสถียรต่อ Title Updates มากกว่า Global Index.
57. เสื้อผ้า Custom ต้องใช้ OneSync ไหม
การเปลี่ยน Ped Component เป็น Native Client Function และไม่ได้หมายความว่า Asset เสื้อผ้าต้องใช้ OneSync โดยอัตโนมัติ.
แต่ Character/Outfit System ของ Server อาจมีระบบ Synchronization หรือ Persistence ของตัวเอง ซึ่งต้องพิจารณาตาม Architecture นั้น
58. Asset Escrow ใช้กับ Clothing Resource ได้ไหม
Cfx.re มี Asset Escrow สำหรับปกป้อง Resource Assets และ Scripts ที่รองรับ และ Resources ที่ซื้อผ่านระบบ FiveM Asset สามารถผูกกับ Entitlement ของผู้ซื้อได้.
ดังนั้นถ้าเป็น Clothing Pack เชิงพาณิชย์ ควรติดตั้งตาม Documentation/License ของ Creator และไม่พยายาม Bypass Protection
59. Free Clothes กับ Paid Clothes ต่างกันตรงไหน
ราคาไม่ได้รับประกันคุณภาพทางเทคนิค
ควรตรวจ
Asset Quality
Texture
Clipping
Male/Female Support
Update Support
Game Build Compatibility
Resource Structure
License
จำนวน Variations
มากกว่าดูว่า Free หรือ Paid เพียงอย่างเดียว
60. วิธี Debug FiveM Custom Clothes แบบเร็วที่สุด
ใช้ลำดับนี้
ขั้นที่ 1 — ตรวจ Ped Model
ยืนยันว่า Asset ถูกสร้างสำหรับ Model ที่กำลังใช้ เพราะ Drawable/Texture IDs ขึ้นกับ Ped Model.
ขั้นที่ 2 — ตรวจ Resource
ดูว่า Resource อยู่ใน resources/ และมี Manifest ถูกต้อง.
ขั้นที่ 3 — หากเพิ่งเพิ่ม Resource
ใช้
refresh
ensure resource_name
ตาม Resource Commands ของ FiveM.
ขั้นที่ 4 — ตรวจ Component
เช่น
Top
Legs
Shoes
Torso
ขั้นที่ 5 — ตรวจ Drawable ID
ขั้นที่ 6 — ตรวจ Texture ID
ขั้นที่ 7 — ตรวจ Combination
โดยเฉพาะ
Top + Torso + Undershirt
ขั้นที่ 8 — ถ้า Outfit เปลี่ยนหลัง Update
ตรวจ Global Index Migration และพิจารณา Collection-based natives.
ขั้นที่ 9 — Validate Variation
สามารถใช้ Native สำหรับตรวจ Component Variation ว่าถูกต้องหรือไม่.
ขั้นที่ 10 — ปิด Clothing Pack อื่นชั่วคราว
ตรวจ Asset Conflict
ตารางสรุปปัญหา FiveM เสื้อผ้า Custom
| อาการ | จุดที่ควรตรวจ |
|---|---|
| เสื้อไม่ขึ้นเลย | Resource / Ped Model / Drawable |
| เสื้อคนละตัวขึ้น | Drawable Index |
| สีเสื้อผิด | Texture ID |
| Logo ผิด | Texture Variation |
| แขนหาย | Torso / Top Combination |
| เสื้อด้านในทะลุ | Undershirt / Top |
| เสื้อทะลุตัว | Mesh / Weighting / Combination |
| Male ใช้ได้ Female ไม่ได้ | Ped Model / Asset Version |
| หมวกไม่ขึ้น | Prop Slot / Drawable |
| แว่นผิด | Prop Drawable/Texture |
| Update แล้ว Outfit เปลี่ยน | Global Index Shift |
| Pack เดี่ยวปกติ Merge แล้วเสีย | Asset/Index Conflict |
| ทุก Client ไม่เห็น Item | Resource/Asset |
| Client เดียวไม่เห็น | Client State/Streaming |
| Clothing Menu ไม่มี Item | Menu/Index/Resource Integration |
Custom Clothes ที่ดีควรมีอะไร
เสื้อผ้า FiveM ที่เหมาะกับ Production Server ควรมี
Model เหมาะกับ Ped
Weighting ถูก
Texture Resolution สมเหตุสมผล
ไม่มี Clipping รุนแรง
Male/Female ระบุชัด
Drawable/Texture Structure เป็นระบบ
Compatible Torso/Top ระบุไว้
Resource Structure ชัดเจน
ไม่ชน Asset Pack อื่น
ทดสอบหลัง Game Update
และสำหรับระบบ Clothing ที่พัฒนาเอง ควรพิจารณา Collection-based natives เพราะ Cfx.re ออกแบบมาแก้ปัญหา Global Index ของ Custom Components/Props ที่เปลี่ยนหลัง Title Updates โดยเฉพาะ.
Custom Clothes ต่างจาก Props แบบสั้นที่สุด
จำแบบนี้
Components
→ Tops
→ Legs
→ Shoes
→ Torso
→ Undershirts
→ Accessories บางประเภท
Props
→ Accessories ใน Prop Slots
→ เช่น หมวก/แว่นตาม Ped
FiveM แยก API เป็น
SET_PED_COMPONENT_VARIATION
และ
SET_PED_PROP_INDEX
อย่างชัดเจน.
Custom Clothes กับ Add-on Clothes ต่างกันอย่างไร
Custom Clothes เป็นคำกว้าง ๆ ครอบคลุมเสื้อผ้าที่ถูกปรับแต่งสำหรับ Server
ส่วน Add-on Clothes เป็นแนวทางหนึ่งในการเพิ่ม Clothing Content ใหม่ โดยไม่ตั้งใจ Replace Variation เดิมโดยตรง
ดังนั้น
Custom Clothes
├── Add-on
└── Replace
สามารถใช้เป็นภาพจำพื้นฐานได้
สำหรับ FiveM ปัจจุบัน ประเด็นสำคัญกว่าชื่อเรียกคือระบบอ้าง Drawable อย่างไร เพราะ Cfx.re ระบุว่า Global Index สามารถเปลี่ยนตาม Title Updates แต่ Local Index ภายใน Named Collection ยังคง Stable.
สรุป FiveM เสื้อผ้า Custom คืออะไร
FiveM เสื้อผ้า Custom คือ Custom Ped Clothing Content ที่เพิ่มหรือปรับแต่งเสื้อ กางเกง รองเท้า เครื่องแต่งกาย และ Props เพื่อใช้กับตัวละครใน Server
ระบบพื้นฐานสามารถจำเป็นโครงสร้างนี้
Ped Model
↓
Component / Prop
↓
Drawable
↓
Texture
FiveM มี SET_PED_COMPONENT_VARIATION สำหรับเปลี่ยน Ped Components และ SET_PED_PROP_INDEX สำหรับ Props โดย Drawable และ Texture IDs จะสัมพันธ์กับ Ped Model ที่กำลังใช้งาน.
สำหรับ Server ที่มี Custom Clothes จำนวนมาก ควรให้ความสำคัญกับ Collections ด้วย เพราะ Cfx.re ระบุว่า Global Drawable Index สามารถเปลี่ยนหลัง GTA Title Updates แต่ Collection-based Local Index ถูกออกแบบให้คงที่ ทำให้ระบบ Outfit และ Clothing Migration ดูแลง่ายขึ้น.
หาก เสื้อไม่ขึ้น ให้ตรวจ Resource, Ped Model, Component และ Drawable
หาก สีหรือ Logo ผิด ให้ตรวจ Texture ID
หาก แขนหายหรือเสื้อทะลุ ให้ตรวจ Top/Torso/Undershirt Combination และตัว Asset
หาก หมวกหรือแว่นไม่ขึ้น ให้ตรวจ Prop Slot
และหาก หลัง GTA Update เสื้อคนละตัวขึ้นแทน Outfit เดิม ให้ตรวจ Global Drawable Index ก่อนลบหรือ Reinstall Clothing Pack
แนวทางของ comsiam คือจัด Custom Clothes เป็น Resources ที่ระบุเจ้าของและประเภทชัดเจน ทดสอบ Asset ทีละ Pack และเก็บข้อมูล Ped/Collection/Drawable/Texture ให้เป็นระบบ เพราะเมื่อ Server มีเสื้อผ้าหลายร้อยหรือหลายพันรายการ การจัด Index ให้ถูกตั้งแต่ต้นจะลดปัญหา Outfit เพี้ยนและการแก้ข้อมูลครั้งใหญ่หลัง Game Update ได้มาก
Comments
Post a Comment