FiveM YTD คืออะไร ใช้เก็บ Texture อย่างไร และแก้ปัญหา Texture หายหรือโหลดไม่ครบ
ถ้า FiveM Custom Map, MLO, รถ หรือ Custom Object Model ขึ้นครบแต่กลายเป็นสีขาว สีดำ Texture หาย Logo ไม่ขึ้น หรือพื้นผิวโหลดช้า หนึ่งใน Asset ที่ควรตรวจคือไฟล์ .ytd
YTD ใช้เป็น Texture Dictionary สำหรับเก็บ Texture ที่ Assets ของ GTA V/FiveM สามารถนำไปใช้กับ Materials ได้ ขณะที่ Official Cfx.re Asset Workflow แสดงการใช้ Texture แบบ .dds, Shader Materials และยังระบุว่าสามารถเลือกให้ Texture เป็น Embedded ได้หากไม่ต้องการสร้าง Texture Dictionary แยกออกมา
ปัจจุบัน Cfx.re ยังระบุ YTD เป็นหนึ่งใน Asset File Types ที่ Alchemist รองรับสำหรับการ Convert และ Refine Assets ระหว่าง GTAV Legacy และ Enhanced ด้วย
บทความนี้จาก comsiam จะอธิบายว่า FiveM YTD คืออะไร แตกต่างจาก YDR, YTYP, YMAP อย่างไร และแก้ปัญหา Texture ขาว Texture หาย Texture เบลอ หรือ Asset โหลดช้าอย่างไร
FiveM YTD คืออะไร
YTD คือ Texture Dictionary Asset ที่ใช้จัดเก็บ Texture สำหรับ Models และ Materials ของ GTA V/FiveM
ตัวอย่างเช่น
custom_building.ytd
police_station.ytd
restaurant_textures.ytd
vehicle.ytd
ภายในสามารถมี Texture หลายรายการที่ Asset ใช้ร่วมกัน
แนวคิดง่าย ๆ คือ
YDR
= รูปร่าง Model
YTD
= ภาพพื้นผิวของ Model
Official Cfx.re Workflow ระบุการใช้ Diffuse, Normal และ Specular Textures กับ Shader Materials ก่อนสร้าง Drawable Asset
① YTD ต่างจาก YDR อย่างไร
จำแบบง่ายที่สุด
YDR
เป็น Drawable/Model Asset
YTD
เป็น Texture Dictionary
ดังนั้นถ้า
Model ไม่ขึ้นเลย
ให้ตรวจ YDR/YTYP/YMAP ก่อน
แต่ถ้า
Model ขึ้น
แต่เป็นสีขาว
ให้เน้นตรวจ Texture, Material และ YTD
Cfx.re แยกขั้นตอนการ Apply Texture ออกจากการ Convert Mesh เป็น Drawable อย่างชัดเจนใน Asset Creation Workflow
② YTD ต่างจาก YTYP อย่างไร
YTYP
ใช้กับ Archetype Definition
YTD
เก็บ Texture
ดังนั้น YTYP อาจทำให้เกมรู้จัก Custom Model แต่ไม่ได้เป็นตัวเก็บรูปภาพพื้นผิวของ Model
ภาพรวมคือ
YDR
↓
YTYP
↓
YMAP
YTD
→ Texture ที่ Model ใช้
Official Cfx.re Workflow สร้าง YTYP จาก Drawable หลังตั้ง Materials/Textures แล้ว
③ YTD ต่างจาก YMAP อย่างไร
YMAP
บอกว่า Object อยู่ตำแหน่งไหน
YTD
บอกเรื่อง Texture ที่ Asset ใช้
ดังนั้นถ้าอาคาร
อยู่ถูกตำแหน่ง
แต่ผนังขาว
อย่าแก้ Coordinates ใน YMAP
ควรตรวจ Texture/YTD ก่อน
Official YMAP Workflow ใช้ YMAP สำหรับ Entity Placement, Archetype และ Transform ในโลกโดยตรง
④ YTD ต่างจาก YBN อย่างไร
YTD
Texture
YBN
Collision
ดังนั้น
เห็นกำแพงสวยครบ
แต่เดินทะลุ
ไม่ใช่อาการหลักของ YTD
ให้ตรวจ Collision/YBN
แต่ถ้า
เดินชนกำแพงได้
แต่กำแพงขาว
จึงควรกลับมาตรวจ Texture
⑤ YTD ใช้กับอะไรได้บ้าง
สามารถพบกับ Assets เช่น
Custom Map
MLO
Buildings
Props
Signs
Furniture
Vehicles
Clothes/Drawable Assets
Decorations
Cfx.re Alchemist ปัจจุบันรองรับ YTD ร่วมกับ YDR, YFT, YPT และ YDD ซึ่งสะท้อนว่า YTD เป็น Asset Type สำคัญที่ใช้ร่วมกับ Content หลายประเภท
⑥ YTD หนึ่งไฟล์มีหลาย Texture ได้หรือไม่
ได้
แนวคิดของ Texture Dictionary คือรวม Texture หลายรายการไว้ใน Asset เดียว
ตัวอย่างเชิงโครงสร้าง
building.ytd
├── wall_diffuse
├── wall_normal
├── floor_diffuse
├── floor_normal
├── sign_logo
└── glass_texture
ชื่อจริงขึ้นอยู่กับ Asset ที่ Developer สร้าง
สิ่งสำคัญคือ Material ของ Drawable ต้องอ้าง Texture ที่ถูกต้อง
⑦ Diffuse Texture คืออะไร
Diffuse คือ Texture หลักที่ให้สีและรายละเอียดพื้นฐานของ Surface
เช่น
สีผนัง
Logo
ลายไม้
พื้นกระเบื้อง
ป้าย
Official Cfx.re Asset Tutorial ใช้ตัวอย่างที่มี Diffuse, Normal และ Specular Textures และเลือก Shader normal_spec ให้เหมาะกับ Texture Set ดังกล่าว
⑧ Normal Texture คืออะไร
Normal Map ช่วยให้ Surface ดูมีรายละเอียดเชิงแสงและพื้นผิวมากขึ้นโดยไม่จำเป็นต้องสร้าง Geometry ทุกจุด
ตัวอย่าง
ร่องอิฐ
รอยพื้น
พื้นผิวโลหะ
รายละเอียดผนัง
ใน Official Asset Example มีการใช้ Normal Texture ร่วมกับ Diffuse และ Specular ภายใต้ Shader ที่เหมาะสม
⑨ Specular Texture คืออะไร
Specular เกี่ยวข้องกับลักษณะการสะท้อนหรือ Highlight ของ Surface ตาม Shader ที่ Asset ใช้
ตัวอย่างเช่น
โลหะ
พื้นเงา
วัสดุเคลือบ
พื้นผิวที่ต้องตอบสนองกับแสงต่างกัน
ดังนั้นการแทน Specular ด้วยภาพ Diffuse แบบสุ่มอาจทำให้ Material ดูผิด แม้ Texture จะโหลดขึ้นครบ
⑩ DDS คืออะไรในงาน Texture
Official Cfx.re Asset Tutorial ระบุให้เตรียม Texture ในรูปแบบ .dds และแนะนำ NVTT หรือ Nvidia Texture Tools เป็นหนึ่งในเครื่องมือสำหรับสร้าง DDS Textures
ตัวอย่าง
wall_diffuse.dds
wall_normal.dds
wall_specular.dds
จากนั้นจึง Apply เข้ากับ Shader Material ใน Sollumz
⑪ YTD จำเป็นเสมอหรือไม่
ไม่เสมอไป
Official Cfx.re Documentation ระบุว่า Texture สามารถตั้งเป็น
Embedded
ได้ หากไม่ต้องการสร้าง Texture Dictionary แยก
ดังนั้น Custom Asset บางตัวอาจไม่มี .ytd แยก แต่ Texture ยังทำงานได้เพราะถูก Embedded อยู่กับ Asset
⑫ Embedded Texture คืออะไร
Embedded Texture คือ Texture ที่ถูกบรรจุไปพร้อมกับ Asset แทนการใช้ Texture Dictionary แยก
ใน Official Sollumz Workflow ผู้สร้างสามารถเปิด Embedded สำหรับแต่ละ Texture หากไม่ต้องการสร้าง Texture Dictionary
ดังนั้นอย่าเห็น
custom_model.ydr
แต่ไม่มี
custom_model.ytd
แล้วสรุปทันทีว่า Texture File หาย
ต้องตรวจ Asset Structure จริงก่อน
⑬ แบบ Embedded กับ YTD แบบไหนดีกว่า
ไม่มีคำตอบเดียวสำหรับทุก Project
Embedded สามารถทำให้ Asset พก Texture ไปกับตัวเอง
ส่วน YTD แยกช่วยจัด Texture Dictionary เป็นอีก Asset หนึ่ง และอาจเหมาะกับการแชร์หรือจัด Resource ตาม Design
สิ่งสำคัญคือเลือกให้สัมพันธ์กับ Project Structure มากกว่าพยายามทำทุก Asset เป็นรูปแบบเดียวกัน
⑭ Model ขาวเกิดจาก YTD หายได้ไหม
ได้ หาก Model ต้องใช้ Texture จาก YTD แต่ Texture Dictionary ที่จำเป็นหายหรือไม่ถูก Stream
อาการที่มักเห็นคือ
สีขาว
สีเทา
Material ไม่มีรายละเอียด
Logo หาย
แต่ต้องตรวจ Material Reference ด้วย เพราะ YTD อยู่ครบก็ไม่ได้หมายความว่า Shader จะอ้าง Texture ถูกเสมอ
⑮ Model ดำเกิดจากอะไร
Model ดำไม่ได้หมายถึง YTD หายอย่างเดียว
ควรตรวจ
Texture
Shader
Normal/Specular
Material Parameters
Lighting
Vertex Colors
Official Cfx.re Asset Workflow มีทั้ง Shader, Texture Parameters, UV และ Vertex Colors ก่อนสร้าง Drawable จึงมีหลายจุดที่ทำให้ภาพ Material ผิดได้
⑯ Texture หายบางส่วน
ถ้า
ผนังปกติ
พื้นปกติ
แต่ Logo หาย
อย่า Replace YTD ทั้งไฟล์ทันที
ให้ตรวจ Texture Entry ของ Logo โดยเฉพาะ
เช่น
Texture อยู่หรือไม่
ชื่อ Texture ตรงหรือไม่
Material อ้างถูกหรือไม่
Alpha ถูกหรือไม่
อาการเฉพาะจุดมักแก้ได้เร็วกว่าการสร้าง Texture Dictionary ใหม่ทั้งชุด
⑰ Texture Name สำคัญไหม
สำคัญ
Material จะต้องเชื่อมกับ Texture ที่ถูกต้อง
ถ้า Asset เดิมใช้
wall_diff
แต่คุณ Rename Texture เป็น
new_wall
โดยไม่ได้แก้ Material Reference ที่สัมพันธ์กัน Texture อาจไม่แสดงตามที่ต้องการ
อย่า Rename Texture ใน YTD เพื่อให้ “ชื่อสวย” หาก Asset ทำงานอยู่แล้ว
⑱ YTD Filename กับ Texture Name เหมือนกันไหม
ไม่จำเป็น
ตัวอย่าง
hospital.ytd
อาจมี Texture ภายในชื่อ
wall_a
floor_a
hospital_logo
metal_normal
ดังนั้น
ชื่อไฟล์ YTD
กับ
ชื่อ Texture ภายใน
เป็นคนละระดับ
เวลา Debug ต้องรู้ว่าปัญหาอยู่ระดับไหน
⑲ YTD ชื่อเหมือน YDR จำเป็นหรือไม่
บาง Asset จัดชื่อให้ตรงกันเพื่อดูง่าย เช่น
custom_shop.ydr
custom_shop.ytd
แต่ไม่ควรสร้างกฎว่าต้องเหมือนกันทุก Resource
Asset บางชุดอาจใช้ Shared Texture Dictionary เช่น
city_props.ytd
ร่วมกับ YDR หลายตัว
ควรดู Material References และ Resource ต้นฉบับเป็นหลัก
⑳ Shared YTD คืออะไร
Shared YTD คือ Texture Dictionary ที่ Assets หลายตัวใช้ร่วมกัน
ตัวอย่าง
building_a.ydr
building_b.ydr
building_c.ydr
อาจใช้ Texture จาก
city_shared.ytd
ดังนั้นการลบไฟล์เพียงเพราะไม่พบ Model ชื่อเดียวกันอาจทำให้ Asset หลายตัว Texture หายพร้อมกัน
㉑ หลัง Merge Map แล้ว Texture หาย
กรณีนี้ให้สงสัย
YTD ไม่ได้ Copy มา
YTD ถูก Replace
Texture Name ชน
Shared YTD หาย
Model/Material Reference เปลี่ยน
หาก Map เดิมทำงานปกติ แต่เสียหลัง Merge ให้เปรียบเทียบ Resource เดิมกับ Resource ใหม่ก่อนแก้ Texture
㉒ YTD ชื่อซ้ำกันอันตรายไหม
ควรระวัง โดยเฉพาะเมื่อรวม Assets จากหลาย Resource
เช่น
map_a/shared.ytd
map_b/shared.ytd
แต่ภายในเป็นคนละ Texture Set
ถ้า Merge Folder แล้วกด Replace คุณอาจเหลือเพียง YTD ของ Map ใด Map หนึ่ง
ผลคือ Map อีกชุดอาจ
ขาว
Texture หาย
Logo ผิด
Material เพี้ยน
㉓ วิธีหา YTD Conflict
ใช้ Resource Isolation
ทดสอบ
Map A ON
Map B OFF
แล้วสลับ
Map A OFF
Map B ON
หากทั้งคู่ปกติเมื่อแยก แต่ Texture ผิดเมื่อเปิด Resource ที่ Merge แล้ว ให้ตรวจ Asset Name/Texture Dictionary Conflict
㉔ Texture ของ Map A ไปขึ้น Map B
นี่เป็นอาการที่ควรตรวจชื่อ Assets และ Texture References
โดยเฉพาะเมื่อ
YTD ชื่อซ้ำ
Texture Entry ชื่อซ้ำ
YDR/Material ถูก Merge
Shared Dictionary ถูก Replace
อย่าเริ่มจากลด Resolution เพราะปัญหานี้ไม่ใช่เรื่อง Performance
㉕ Texture ขาวเฉพาะหลัง Rename YTD
ถ้า Rename
original.ytd
เป็น
newtextures.ytd
แล้ว Asset เสีย ให้กลับไปทดสอบชื่อเดิมก่อน
การ Rename Container File ไม่ได้หมายความว่า Asset References ภายในและระบบการโหลดจะปรับตามทุกกรณี
หลักที่ปลอดภัยคืออย่า Rename Asset ที่ใช้งานปกติหากไม่มีเหตุผล
㉖ Alpha Channel สำคัญไหม
สำคัญกับ Texture ที่ต้องการ Transparency
ตัวอย่าง
กระจก
ป้ายโปร่ง
Decal
Logo
Fence
Livery
หาก Alpha ผิด อาจเกิด
Background ขาว
Background ดำ
Texture ทึบ
Material โปร่งมากเกินไป
ต้องตรวจ Format และ Shader ที่ Asset ใช้ร่วมด้วย
㉗ Texture เบลอเกิดจากอะไร
ควรตรวจ
Resolution
Mipmap
Compression
Streaming
Memory
Material Setup
ถ้า Original Texture คม แต่หลัง Resize/Export ใหม่กลับเบลอ ให้ย้อนตรวจขั้นตอน Export ก่อนสงสัย YDR
Official Cfx.re Workflow ใช้ DDS Texture และ Shader Assignment ซึ่งหมายความว่าขั้นตอนสร้าง Texture เป็นส่วนหนึ่งของ Asset Pipeline โดยตรง
㉘ Texture กระพริบเกิดจาก YTD ไหม
อาจเกิดจาก Texture/Material แต่ไม่เสมอไป
หาก Surface กระพริบตามมุมกล้อง ควรตรวจ
Geometry ซ้อน
Z-fighting
Map ซ้อน
LOD
Material
ก่อน
เพราะ Surface สองชั้นที่อยู่ตำแหน่งเดียวกันสามารถดูเหมือน Texture มีปัญหา ทั้งที่ YTD ปกติ
㉙ Texture โหลดช้าเกี่ยวกับ YTD ขนาดใหญ่ไหม
Asset Texture ที่มี Resolution สูงหรือมี Texture จำนวนมากเพิ่มภาระด้าน Memory/Streaming ฝั่ง Client
FiveM มีคำสั่ง Streaming Debug หลายตัว และสำหรับ Vehicle Textures มี str_maxVehicleTextureRes ซึ่ง Cfx.re ระบุว่าสามารถจำกัดความละเอียดสูงสุดเพื่อช่วยลดโอกาส Physical Memory หมด โดยแลกกับคุณภาพภาพ
แม้คำสั่งดังกล่าวจะเจาะจง Vehicle Textures แต่ก็สะท้อนหลักสำคัญว่า Texture Resolution มีผลต่อ Memory Budget ฝั่ง Client
㉚ Texture 4K ทุกไฟล์จำเป็นไหม
ไม่จำเป็น
ควรเลือกตาม
ขนาด Surface
ระยะการมอง
ความสำคัญของรายละเอียด
Asset Budget
ตัวอย่าง
กำแพงใหญ่ → อาจต้องละเอียดกว่า
แก้วบนโต๊ะ → ไม่จำเป็นต้องใช้ 4K
การใช้ Resolution สูงสุดกับทุก Asset เพิ่มต้นทุน Memory โดยไม่จำเป็น
㉛ YTD 8K ดีไหม
ไม่ได้แปลว่าดีกว่าเสมอ
ความละเอียดที่สูงขึ้นควรมีเหตุผลด้านคุณภาพที่ผู้เล่นมองเห็นจริง
หาก Texture 8K ถูกใช้กับ Object เล็กมาก ความต่างอาจแทบมองไม่เห็น แต่ใช้ทรัพยากรมากขึ้น
สำหรับ Production Server ควรเน้นความสมดุลมากกว่าความละเอียดสูงสุด
㉜ ควร Resize Texture อย่างไร
อย่า Batch Resize ทุก Texture แบบไม่ตรวจ
แบ่งก่อนว่าเป็น
Diffuse
Normal
Specular
Alpha
Logo
UI-like Decal
จากนั้นจึงกำหนด Resolution ที่เหมาะสม
เพราะ Official Cfx.re Workflow ใช้ Texture หลายประเภทกับ Shader คนละหน้าที่
㉝ DDS Compression สำคัญไหม
สำคัญ
Cfx.re ระบุให้ใช้ Texture ที่ถูก Compress ใน DDS Format และแนะนำ Nvidia Texture Tools เป็นหนึ่งในเครื่องมือที่ใช้สร้าง .dds
Compression ที่ไม่เหมาะกับ Texture Type อาจทำให้
Artifact
Alpha เสีย
Normal Map ผิด
ขอบภาพแตก
จึงต้องเลือกตาม Texture ที่กำลังทำ
㉞ Mipmap สำคัญไหม
สำหรับ Texture ที่ถูกมองหลายระยะ Mipmap เป็นส่วนสำคัญของ Texture Pipeline โดยทั่วไป
หาก Mipmap ผิด อาจเห็น
Texture วิบวับเมื่ออยู่ไกล
เบลอเกินไป
Detail เปลี่ยนผิดระยะ
หลัง Export Texture ใหม่ควรทดสอบทั้งระยะใกล้และระยะไกล ไม่ใช่ดูเพียงภาพใน Editor
㉟ UV Map เกี่ยวกับ YTD อย่างไร
Texture จะถูกวางบน Model ผ่าน UV Mapping
Official Cfx.re Asset Tutorial ระบุให้ตั้งชื่อ UV Map เป็น
UVMap 0
และ Sollumz จะเตือนหากมีปัญหา
ดังนั้นถ้า Texture มีครบใน YTD แต่
ยืด
เบี้ยว
กลับด้าน
วางผิดตำแหน่ง
ปัญหาอาจอยู่ที่ UV ของ Model ไม่ใช่ YTD
㊱ Logo อยู่ผิดตำแหน่งแก้ YTD หรือ UV
ถ้าตัวภาพ Logo ถูกต้อง แต่ตำแหน่งบน Model ผิด ให้ตรวจ UV Mapping
ถ้า UV ถูกแต่ Logo ใน Texture File ถูกวาดผิดตำแหน่ง จึงแก้ภาพ Texture
ต้องแยก
ภาพผิด
กับ
UV ผิด
ก่อน
㊲ Texture กลับด้านเกิดจากอะไร
อาจเกี่ยวกับ UV Orientation หรือ Model Mapping มากกว่า YTD Container
การ Flip รูปภาพเพื่อแก้ทันทีอาจทำให้ส่วนอื่นผิดตาม
ควรดู UV Layout และ Material Assignment ก่อน
㊳ Vertex Color เกี่ยวกับ Texture ไหม
เกี่ยวข้องกับภาพสุดท้ายของ Material ได้
Official Cfx.re Asset Tutorial ให้ตั้ง Color Attribute และแนะนำค่าต่างกันสำหรับ Interior และ Exterior Project ก่อนสร้าง Drawable
ดังนั้นถ้า Texture File ถูกแต่ Model ดูมืดหรือสีผิด อาจต้องตรวจ Vertex Colors/Material เพิ่ม
㊴ YTD ทำให้ Model ไม่ขึ้นเลยได้ไหม
ถ้า Texture Asset มีปัญหารุนแรง Resource/Asset อาจเกิดปัญหาได้ แต่สำหรับอาการ Model หายทั้งชิ้น ควรเริ่มตรวจ
YDR
YTYP
YMAP
Resource
ก่อน
ถ้า Shape ของ Model ขึ้นแล้วแต่ Surface ผิด จึงค่อยเน้น YTD
นี่ช่วยลดเวลาการ Debug ได้มาก
㊵ YTD ทำให้เดินทะลุได้ไหม
ไม่ใช่ไฟล์หลักของ Collision
หากมองเห็น Model แต่เดินทะลุ ให้ตรวจ YBN หรือ Embedded Collision
อย่าแก้ Texture Resolution เพื่อแก้ปัญหา Physics
㊶ YTD ทำให้ FPS ตกได้ไหม
Texture Assets มีผลต่อ Memory และ Rendering Resource Budget โดยเฉพาะเมื่อใช้ Resolution สูงหรือมี Texture จำนวนมาก
อย่างไรก็ตาม FPS ยังขึ้นกับ
Geometry
Materials
จำนวน Objects
LOD
Scripts
Client GPU/VRAM
จึงไม่ควรโทษ YTD เพียงอย่างเดียว
㊷ YTD ทำให้ Server CPU Lag ไหม
YTD เป็น Asset ฝั่ง Content/Rendering มากกว่าจะเป็น Script Runtime
หาก Server CPU สูง ควรตรวจ
Scripts
Resource Loops
Server Profiler
แยกจาก Texture Problem
แต่ถ้า Client FPS ต่ำเมื่อเข้า Map ให้ตรวจ YTD/Geometry/LOD เพิ่ม
㊸ YTD หลายไฟล์ทำให้ Server หนักไหม
จำนวนไฟล์เพียงอย่างเดียวไม่ใช่ตัวชี้วัดหลัก
ตัวอย่าง
20 YTD ขนาดเล็ก
อาจใช้ทรัพยากรน้อยกว่า
2 YTD ที่มี Texture 4K จำนวนมาก
ควรดู Content ภายในและการใช้งานจริงมากกว่าจำนวนไฟล์
㊹ ควรรวม YTD หลายไฟล์เป็นไฟล์เดียวไหม
ไม่จำเป็น
การรวมสามารถทำให้
Resource ดูไฟล์น้อยลง
Shared Textures จัดง่ายในบางกรณี
แต่ก็อาจทำให้
Update ยาก
Conflict ง่าย
Asset Dependency ซับซ้อน
Dictionary ใหญ่เกินจำเป็น
ดังนั้นอย่า Merge เพียงเพื่อลดจำนวนไฟล์
㊺ ควรแยก Shared Textures ไหม
ถ้า Assets หลายตัวใช้ Texture ชุดเดียวกันจริง การจัด Shared Texture ให้เป็นระบบอาจมีประโยชน์
แต่ต้องมี Documentation ว่า Asset ไหนใช้ Dictionary ใด
ไม่เช่นนั้นเมื่อมีคนลบ
shared_textures.ytd
อาจทำให้ทั้ง Police Station, Props และ Signs Texture หายพร้อมกัน
㊻ YTD ต้องอยู่ใน stream ไหม
ใน FiveM Map Resource Workflow Official Cfx.re ให้ย้าย Game Asset Files เข้า stream Folder ของ Resource
ตัวอย่าง
custom_map/
├── fxmanifest.lua
└── stream/
├── map.ymap
├── map.ytyp
├── building.ydr
└── building.ytd
สำหรับ Resource ที่ซื้อหรือดาวน์โหลดมา ควรรักษาโครงสร้างของผู้สร้างไว้ก่อน
㊼ ต้องประกาศ YTD ทีละไฟล์ใน fxmanifest.lua ไหม
สำหรับ Map Streaming Workflow ของ Cfx.re ตัวอย่างจะใส่ Game Asset Files ลง stream Folder และใช้ Map Resource Manifest โดยไม่ได้แสดงการประกาศ YTD ทีละไฟล์เหมือน Data Files ประเภท Vehicle Meta
ดังนั้นอย่านำ
data_file
ของ handling.meta หรือ vehicles.meta มาใช้กับ YTD แบบสุ่ม
㊽ YTD รองรับ FiveM Enhanced หรือไม่
Cfx.re Alchemist ปัจจุบันรองรับ File Types
YDR
YTD
YFT
YPT
YDD
สำหรับ Asset Conversion และ Refinement
ดังนั้น YTD Legacy สามารถเป็นส่วนหนึ่งของ Workflow ที่ต้อง Convert เพื่อใช้กับ FiveM Enhanced ได้
㊾ Alchemist ใช้กับ YTD ทำอะไร
Alchemist มีสองแนวทางหลัก
Asset Conversion
แปลง Legacy Assets ให้เข้ากับ GTAV Enhanced
Asset Refinement
แก้ Formatting/Compatibility Issues ที่อาจเกิดจาก Legacy Tooling
Cfx.re ระบุ YTD เป็น Supported File Type ของทั้ง Workflow นี้
แต่ Alchemist ไม่ได้ทำหน้าที่เป็น Texture Optimizer ที่จะลด Resolution หรือออกแบบ Material ใหม่ให้อัตโนมัติ
㊿ YTD เสียหลัง Convert Enhanced ทำอย่างไร
ถ้าปัญหาเกิดหลัง Conversion ให้เทียบ
Original Legacy YTD
กับ
Converted YTD
และอ่าน Report ของ Alchemist
Cfx.re ระบุว่า Relaxed Mode อาจ Skip Validation บางส่วนและผลลัพธ์สามารถแตกต่างจาก Original เล็กน้อยเนื่องจาก Automatic Corrections
จึงควรทดสอบ Asset หลัง Convert ก่อนขึ้น Production
51. อย่าใช้ Alchemist เพื่อแก้ Texture ทุกปัญหา
ถ้าปัญหาคือ
Texture Name ผิด
Material อ้างผิด
UV ผิด
Alpha ผิด
Alchemist ไม่ได้แทนการแก้ Asset Design เหล่านี้ทั้งหมด
ต้องแก้ Source Asset/Texture Workflow ให้ถูกต้อง
52. วิธีดู Texture จาก Model ต้นฉบับ
Official Cfx.re Part 2 แสดง Workflow ใน CodeWalker:
เลือก Model
↓
เปิด RPF Explorer
↓
เปิด Model
↓
Materials
↓
Save All Textures
จากนั้นใน Blender/Sollumz สามารถใช้ Find Missing Textures เพื่อค้นหา Texture ที่หายจาก Folder ที่ Export ไว้ได้
นี่เป็นวิธีที่ดีเมื่อกำลังศึกษา Asset ต้นฉบับ
53. Find Missing Textures ใช้ทำอะไร
ใน Official Workflow หลัง Import Model เข้า Blender/Sollumz สามารถใช้
Find Missing Textures
แล้วเลือก Folder ที่ Save Textures ไว้ก่อนหน้า
เหมาะกับกรณี
Import แล้ว Material ชมพู/ไม่มีภาพ
Texture Path หาไม่เจอ
ต้อง Restore Texture References ก่อน Export ใหม่
54. วิธี Debug FiveM YTD แบบเร็วที่สุด
ทำตามนี้
ขั้นที่ 1
ดูว่า Model ขึ้นหรือไม่
ถ้าไม่ขึ้นเลย ตรวจ YDR/YTYP/YMAP ก่อน
ขั้นที่ 2
ถ้า Model ขึ้นแต่ขาว ให้ตรวจ YTD
ขั้นที่ 3
ตรวจว่า Texture Entry อยู่ครบหรือไม่
ขั้นที่ 4
ตรวจ Texture Names
ขั้นที่ 5
ตรวจ Material/Shader
Official Cfx.re Workflow Apply Textures ผ่าน Shader Material และ Texture Parameters
ขั้นที่ 6
ตรวจ UV
Official Workflow ใช้ UVMap 0 สำหรับ Asset Example
ขั้นที่ 7
ตรวจ Embedded Texture
ถ้า Asset ไม่มี YTD อาจใช้ Embedded Textures ได้
ขั้นที่ 8
ตรวจ Shared YTD
ขั้นที่ 9
ปิด Resource อื่นที่อาจมีชื่อ Asset ชนกัน
ขั้นที่ 10
ทดสอบ Original Resource
ขั้นที่ 11
ถ้า Texture โหลดช้า ให้ตรวจ Resolution/Streaming Budget
ขั้นที่ 12
ถ้าเป็น Enhanced Compatibility ให้ทดสอบ Alchemist
ตารางสรุปปัญหา FiveM YTD
| อาการ | จุดที่ควรตรวจ |
|---|---|
| Model ไม่ขึ้นเลย | YDR / YTYP / YMAP |
| Model ขึ้นแต่ขาว | YTD / Material |
| Texture ดำ | Shader / Material / Texture |
| Logo หาย | Texture Entry / Alpha |
| Texture เบลอ | Resolution / Mipmap / Streaming |
| Texture กลับด้าน | UV |
| Texture ยืด | UV Mapping |
| Background ขาว | Alpha |
| Texture รถ A ไปขึ้นรถ B | YTD/Texture Name Conflict |
| Merge แล้ว Texture หาย | YTD ถูก Replace/ขาด |
| Shared Props ขาวพร้อมกัน | Shared YTD |
| Model ขึ้นแต่เดินทะลุ | Collision ไม่ใช่ YTD |
| FPS ตกเมื่อเข้า Map | Texture/Geometry/LOD |
| Legacy ใช้ Enhanced แล้วผิด | Alchemist / Compatibility |
วิธี Optimize YTD FiveM
หลักสำคัญคือ
ลด Resolution ที่เกินจำเป็น
อย่าใช้ 4K/8K กับ Object เล็ก
รักษา Texture สำคัญ
เช่น Logo หรือป้ายที่ผู้เล่นอ่านข้อความใกล้ ๆ
ตรวจ Compression
ใช้ DDS Format และ Compression ที่เหมาะกับ Texture Type ตาม Asset Pipeline
ตรวจ Alpha
อย่าทำ Transparency เสีย
ตรวจ Mipmap
ให้ Texture ทำงานเหมาะสมตามระยะ
ลบ Texture ที่ไม่ได้ใช้
แต่ต้องยืนยัน Reference ก่อน
หลีกเลี่ยง Duplicate
โดยเฉพาะ Shared Texture Sets
YTD ที่ดีควรมีลักษณะอย่างไร
YTD ที่จัดการดีควร
Texture Name เป็นระบบ
Resolution เหมาะกับการใช้งาน
ไม่มี Duplicate ที่ไม่จำเป็น
Compression เหมาะสม
Alpha ถูกต้อง
Materials อ้าง Texture ถูก
UV ของ Model ถูก
Shared Textures มี Documentation
ทดสอบทั้งระยะใกล้และไกล
ไม่ทำให้ Asset Budget สูงเกินจำเป็น
Official Cfx.re Asset Workflow เริ่มจาก DDS Textures, Shader Materials, Texture Parameters และ UV ก่อนสร้าง Drawable ซึ่งแสดงว่าคุณภาพ Texture ต้องถูกออกแบบร่วมกับ Model ไม่ใช่แก้ YTD แยกจาก Asset ทั้งหมด
ความสัมพันธ์ YTD กับไฟล์ Map อื่น
จำภาพรวมนี้
YDR
→ Model
YTYP
→ Archetype
YMAP
→ Placement
YTD
→ Texture
YBN
→ Collision
ถ้า Object อยู่ถูกที่แต่ภาพผิด ให้เริ่มที่ YTD/Material
ถ้า Object ไม่อยู่เลย ให้เริ่ม YDR/YTYP/YMAP
และถ้าภาพถูกแต่เดินทะลุ ให้ไป Collision
สรุป FiveM YTD คืออะไร
FiveM YTD คือ Texture Dictionary Asset ที่ใช้จัดเก็บ Textures สำหรับ Models และ Materials ของ GTA V/FiveM
Official Cfx.re Asset Workflow ใช้ Texture แบบ DDS ร่วมกับ Diffuse, Normal และ Specular Maps รวมถึง Shader Materials และเปิดให้ Embed Texture เข้า Asset ได้หากไม่ต้องการใช้ Texture Dictionary แยก
จำง่ายที่สุดว่า
YDR → Model
YTD → Texture
YTYP → Archetype
YMAP → ตำแหน่ง
YBN → Collision
ถ้า Model ขึ้นแต่ขาว ให้ตรวจ YTD/Material
ถ้า Texture ยืดหรือวางผิดตำแหน่ง ให้ตรวจ UV
ถ้า Texture หายหลัง Merge ให้ตรวจ YTD ถูก Replace หรือ Shared Dictionary หายหรือไม่
ถ้า Texture โหลดช้า ให้ตรวจ Resolution และ Asset/Streaming Budget
และถ้า Asset Legacy มีปัญหาบน FiveM Enhanced ปัจจุบัน Cfx.re Alchemist รองรับ YTD สำหรับทั้ง Conversion และ Refinement โดยตรง
แนวทางของ comsiam คืออย่าลด Resolution หรือ Merge YTD ทั้ง Server พร้อมกัน แต่ให้เริ่มจาก Asset ที่มีปัญหาจริง ตรวจ Texture Name, Material, UV และ Shared Dictionary ให้ครบก่อน จากนั้นค่อย Optimize ทีละชุด เพราะ Texture ที่ถูกต้องแต่ขนาดเหมาะสมจะให้ผลดีกว่าทั้งด้านคุณภาพและ Performance มากกว่าการใช้ความละเอียดสูงสุดกับทุก Asset
Comments
Post a Comment