FiveM YMAP คืออะไร ใช้ทำอะไรใน Custom Map และแก้ปัญหา Object ไม่ขึ้นอย่างไร
หากเริ่มแก้ FiveM Custom Map, MLO หรือเพิ่มอาคารและ Props เข้า Server หนึ่งในไฟล์ที่ต้องพบอยู่บ่อย ๆ คือ .ymap
YMAP เป็นส่วนสำคัญของระบบแผนที่ GTA V/FiveM เพราะใช้จัดข้อมูลของ Entities ที่ถูกนำไปวางในโลก เช่น Object ไหนอยู่ตรงไหน หมุนอย่างไร และอ้าง Archetype ใด
ใน Official Cfx.re Assets Manual การสร้าง Map ผ่าน CodeWalker เริ่มจากสร้าง YMAP จากนั้นเพิ่ม Entity เลือก Archetype ปรับตำแหน่ง แล้วคำนวณ Extents/Flags ก่อนบันทึก YMAP ลงใน FiveM Map Resource โดยตรง
บทความนี้จาก comsiam จะอธิบายตั้งแต่ FiveM YMAP คืออะไร แตกต่างจาก YTYP/YDR อย่างไร ใช้สร้าง Custom Map แบบไหน และวิธีตรวจเมื่อ Object ไม่ขึ้น อยู่ผิดตำแหน่ง หรือ Map โหลดผิดระยะ
FiveM YMAP คืออะไร
YMAP คือไฟล์ Map Data ของ GTA V ที่ใช้บันทึกข้อมูลการจัดวาง Entities และองค์ประกอบบางส่วนของ Map ใน World
พูดให้ง่ายที่สุดคือ
YMAP
=
บอกว่าเอาอะไรไปวางตรงไหน
ตัวอย่างเชิงแนวคิด
custom_building
→ X = 100
→ Y = 200
→ Z = 30
→ Rotation = ...
Official Cfx.re Map Tutorial แสดงการสร้าง New YMAP File แล้วเพิ่ม New Entity เลือก Archetype และใช้ Transform เพื่อจัดตำแหน่ง Object ในโลกโดยตรง
① YMAP ไม่ใช่ตัว Model
จุดที่ต้องเข้าใจก่อนคือ
YMAP ไม่ได้เป็นตัว 3D Model ของอาคาร
สมมติ Map มี
custom_shop.ydr
YDR เป็น Asset ของ Model
ส่วน YMAP อาจเป็นตัวบอกว่าให้วาง custom_shop ไว้ตำแหน่งใด
ภาพรวมแบบง่ายคือ
YDR
= Model
YTYP
= Archetype Definition
YMAP
= Placement
Cfx.re Assets Manual แยกขั้นตอนการสร้าง Drawable/YTYP ออกจากขั้นตอนสร้าง YMAP และวาง Entity ใน World อย่างชัดเจน
② YMAP ต่างจาก YTYP อย่างไร
สองไฟล์นี้มักอยู่คู่กันใน Custom Map
YMAP
เน้นการนำ Entity ไปวางใน World
YTYP
ใช้สร้าง/กำหนด Archetype สำหรับ Custom Drawable Assets
ใน Cfx.re Asset Workflow ผู้สร้างจะสร้าง Drawable แล้วสร้าง YTYP ผ่าน Sollumz จากนั้นจึงนำ Archetype ไปใช้ตอนวาง Asset ใน CodeWalker/YMAP
จำแบบสั้น ๆ ว่า
YTYP = เกมรู้จักว่า Object คืออะไร
YMAP = Object นั้นอยู่ตรงไหน
③ YMAP ต่างจาก YDR อย่างไร
YDR
คือ Drawable Model Asset
YMAP
คือ Map Data ที่ใช้วาง Entity/Archetype ใน World
ดังนั้นกรณี
มี YMAP
แต่ไม่มี Custom YDR
ถ้า YMAP อ้าง Custom Model ที่หาย Map ก็อาจแสดงไม่ครบ
และถ้า
มี YDR
แต่ไม่มี YMAP วางมัน
Model ก็ไม่ได้หมายความว่าจะปรากฏในตำแหน่งที่ต้องการโดยอัตโนมัติ
Cfx.re แยก Asset Creation และ Map Placement เป็นคนละขั้นตอนใน Official Assets Manual
④ YMAP ต่างจาก YTD อย่างไร
YTD
คือ Texture Dictionary
YMAP
เกี่ยวกับการวาง Entities/Map Data
ดังนั้นถ้า
อาคารอยู่ตำแหน่งถูก แต่ Texture ขาว
ไม่ควรเริ่มแก้ YMAP
ควรตรวจ
YTD
Material
Texture Reference
ก่อน
แต่ถ้า
อาคารไปอยู่กลางอากาศ
จึงควรกลับมาตรวจ Placement/Transform ใน YMAP
⑤ YMAP ต่างจาก YBN อย่างไร
YBN
เกี่ยวข้องกับ Collision
YMAP
เกี่ยวข้องกับ Map Placement
Cfx.re Assets Manual มีบทแยกสำหรับการสร้างและแก้ Collision .ybn โดยใช้ Bound Geometry/Collision Mesh ซึ่งเป็นคนละ Workflow กับการสร้าง YMAP
ดังนั้นถ้า
เห็นอาคาร
แต่เดินทะลุ
ให้ตรวจ Collision/YBN มากกว่า YMAP เป็นอันดับแรก
⑥ FiveM รองรับไฟล์ YMAP โดยตรงหรือไม่
รองรับ
Cfx.re ระบุว่า FiveM และ RedM รองรับไฟล์ .ymap และ .ytyp แบบ Raw และยังรองรับ XML-format ในรูปแบบที่ตั้ง Extension เป็น .ymap/.ytyp ตามที่ระบบต้องการ
จึงไม่จำเป็นต้อง Convert YMAP ทุกครั้งเพียงเพื่อให้ FiveM อ่านได้ หากไฟล์อยู่ในรูปแบบที่ FiveM รองรับ
⑦ YMAP สามารถเก็บอะไรได้บ้าง
ในระดับที่ผู้ดูแล FiveM ควรรู้ YMAP สามารถประกอบด้วย Entities และข้อมูลที่สัมพันธ์กับการจัดวาง Map
เช่น
Archetype ที่ Entity ใช้
Position
Rotation
LOD Configuration บางส่วน
Parent/Child Relationship สำหรับ LOD
Flags
Map Extents
Official Cfx.re Tutorial มีขั้นตอนให้กำหนด Archetype, Transform และต่อมาคำนวณ Extents/Flags ของ YMAP ก่อนบันทึก
⑧ Entity ใน YMAP คืออะไร
Entity คือ Object Instance ที่ถูกนำไปวางใน Map
ตัวอย่าง
Archetype = custom_bench
Position = X,Y,Z
Rotation = ...
ถ้ามี Bench Model เพียงหนึ่ง Archetype ก็สามารถนำไปวางหลายตำแหน่งได้ผ่าน Entities หลายตัว
ตัวอย่าง
bench_1 → หน้าอาคาร
bench_2 → ข้างสวน
bench_3 → ทางเดิน
Cfx.re Map Tutorial ใช้ขั้นตอน New Entity และเลือก Archetype เพื่อวาง Asset ใน World โดยตรง
⑨ Archetype ใน YMAP คืออะไร
Entity จะอ้างถึง Archetype ที่เกมรู้จัก
ถ้าใช้ GTA V Object เดิม ก็สามารถเลือก Archetype ของ Object เดิม
ถ้าเป็น Custom Object เช่น
comsiam_custom_shop
มักต้องมี Custom Archetype ที่สร้างผ่าน YTYP ให้สัมพันธ์กับ Drawable Asset
Official Assets Manual แสดง Workflow การสร้าง YTYP จาก Drawable แล้วนำ Asset ไปใช้ใน Map Editor ภายหลัง
⑩ Position ใน YMAP คืออะไร
Position คือพิกัดของ Entity ใน World
โดยทั่วไปจะประกอบด้วยแกน
X
Y
Z
หาก Position ผิด Object อาจ
ลอยบนฟ้า
จมใต้พื้น
อยู่ผิดถนน
ไปโผล่อีกฝั่งของเมือง
Official Map Workflow ใช้ Transform Tool ใน CodeWalker เพื่อจัดตำแหน่ง Entity ที่เลือกในโลก
⑪ Rotation ใน YMAP สำคัญไหม
สำคัญ
แม้ Position ถูก แต่ Rotation ผิด อาจทำให้
อาคารหันหลังเข้าถนน
Prop เอียง
ป้ายกลับด้าน
ประตูหันผิด
Object หมุน 90/180 องศา
ดังนั้นเมื่อ Map อยู่ถูกจุดแต่ “หันผิดทาง” ให้ตรวจ Rotation/Transform มากกว่า YTD หรือ Collision
⑫ สามารถวาง Object เดิมหลายครั้งด้วย YMAP ได้ไหม
ได้ในแนวคิดของ Entity Placement
เช่น Archetype
prop_bench
สามารถถูกใช้กับ Entities หลายตำแหน่ง
Entity 1
Entity 2
Entity 3
Entity 4
โดยแต่ละ Entity มี Transform ของตัวเอง
จึงไม่จำเป็นต้องสร้าง Model Bench ใหม่ทุกตัวเพียงเพราะต้องการวางหลายจุด
⑬ YMAP ใช้ทำ Map ที่ใช้ GTA V Props เดิมได้ไหม
ได้
หนึ่งใน Workflow ที่ง่ายที่สุดคือใช้ Archetypes ที่มีอยู่ใน GTA V แล้วนำมาจัดวางใหม่
ตัวอย่าง
ต้นไม้
โต๊ะ
รั้ว
ถังขยะ
ป้าย
Props
Cfx.re Map Tutorial แสดงการเลือก Archetype จาก CodeWalker และเพิ่มลง YMAP โดยตรง
กรณีนี้อาจไม่จำเป็นต้องสร้าง Custom YDR/YTD ใหม่ทุก Object
⑭ YMAP ใช้กับ Custom Model ได้ไหม
ได้
Workflow โดยทั่วไปคือ
สร้าง Custom Model
↓
Export Drawable
↓
สร้าง YTYP
↓
นำ Archetype เข้า CodeWalker
↓
สร้าง YMAP
↓
วาง Entity
ขั้นตอน Custom Drawable/YTYP และ Map Placement ถูกอธิบายแยกกันใน Cfx.re Assets Manual
⑮ YMAP ใช้สร้าง MLO ได้ไหม
MLO มีโครงสร้าง Interior ที่ซับซ้อนกว่าการวาง Props ทั่วไป แต่ Package ของ MLO สามารถมี YMAP สำหรับจัดวาง Entities หรือ Content ที่เกี่ยวข้องกับ Interior/Exterior ได้
ดังนั้น MLO หนึ่งชุดอาจมี
*.ymap
*.ytyp
*.ydr
*.ytd
*.ybn
ร่วมกัน
อย่ามองว่า YMAP เพียงไฟล์เดียวคือ MLO ทั้งหมด
⑯ YMAP ใช้ทำถนนได้ไหม
Custom Map ที่แก้ถนนหรือจัดวาง Object บนถนนสามารถใช้ YMAP เป็นส่วนหนึ่งของ Map
แต่ระบบ Road/Pathing ของ GTA V มีข้อมูลและ Asset ประเภทอื่นเพิ่มเติมตามงานที่ต้องการ
ดังนั้น “วางถนนให้เห็น” กับ “ทำให้ Traffic/AI ใช้ถนนใหม่ถูกต้อง” ไม่จำเป็นต้องเป็นงานเดียวกัน
อย่าแก้ YMAP อย่างเดียวแล้วคาดว่า Navigation ทุกระบบจะเปลี่ยนตามโดยอัตโนมัติ
⑰ YMAP ใช้สร้างเกาะได้ไหม
สามารถเป็นส่วนหนึ่งของ Custom Island ได้
แต่เกาะขนาดใหญ่มักไม่ได้มีเพียง YMAP
อาจประกอบด้วย
Custom Models
Textures
Collision
LOD
Terrain-like Assets
Props
Map Data หลายไฟล์
ดังนั้น Custom Island ที่มี YMAP หลายตัวถือเป็นเรื่องปกติสำหรับ Content ขนาดใหญ่
⑱ YMAP หนึ่งไฟล์มี Object ได้หลายตัวไหม
ได้
YMAP หนึ่งชุดสามารถมี Entities จำนวนมาก
ตัวอย่าง Restaurant Map อาจมี
Building
Wall
Counter
Tables
Chairs
Signs
Lights
Props
อยู่ใน Map Data ชุดเดียวกัน
แต่ไม่ได้หมายความว่าควรรวมทั้งเมืองไว้ YMAP เดียวโดยไม่มีเหตุผล
สำหรับ Project ใหญ่ควรจัดโครงสร้างเพื่อให้ Debug และ LOD Management ง่าย
⑲ Map ใหญ่ควรมี YMAP หลายไฟล์ไหม
สามารถแบ่งได้ตาม Design
เช่น
city_buildings.ymap
city_props.ymap
city_lod.ymap
หรือแบ่งตามพื้นที่
district_a.ymap
district_b.ymap
district_c.ymap
Official LOD Tutorial ของ Cfx.re ยังสร้าง HD YMAP และ LOD YMAP แยกกันเพื่อเชื่อม Parent/Child Hierarchy โดยตรง
⑳ LOD เกี่ยวข้องกับ YMAP อย่างไร
เกี่ยวข้องมาก
Cfx.re LOD Tutorial ใช้ YMAP สองตัว
HD YMAP
LOD YMAP
จากนั้นกำหนดค่าให้ HD Entity เช่น
Flags: LOD in Parent Map
LodLevel: LODTYPES_DEPTH_HD
และกำหนด LOD Entity ด้วย ChildLodDist, LodDist และ LodLevel ก่อนเชื่อม Hierarchy
ดังนั้น YMAP ไม่ได้มีหน้าที่เพียงตำแหน่ง Object แต่ยังเกี่ยวข้องกับการจัดการ LOD Placement/Hierarchy ด้วย
㉑ LodDist คืออะไร
LodDist ใช้ใน Configuration ของการแสดงผล Entity ตามระยะใน LOD Workflow
Official Cfx.re Tutorial ให้เพิ่ม LodDist ของ LOD Entity ตาม Streaming Distance ที่ต้องการ และให้ ChildLodDist สัมพันธ์กับ HD Entity
หากตั้งไม่เหมาะอาจเกิด
Object หายเร็วเกิน
Pop-in
Asset อยู่ไกลแล้วยังใช้รายละเอียดสูง
Transition ระหว่าง HD/LOD แปลก
㉒ YMAP ทำให้ Object หายเมื่ออยู่ไกลได้ไหม
Configuration ใน YMAP/LOD เป็นหนึ่งในจุดที่ควรตรวจ
ถ้า
ใกล้ → Object ขึ้น
ไกล → หายเร็วผิดปกติ
ให้ตรวจ
LodDist
LOD Level
Parent/Child
LOD Asset
YMAP Setup
Official FiveM LOD Workflow เชื่อม HD และ LOD Entities ผ่าน YMAP Hierarchy โดยตรง
㉓ YMAP ทำให้ Object โผล่ช้าได้ไหม
ได้ในแง่ที่ LOD/Placement Configuration สามารถเกี่ยวข้องกับช่วงระยะที่ Entity ถูกใช้
แต่ Pop-in ยังอาจเกิดจาก
Streaming Memory
Heavy Model
Large Texture
Client Performance
ดังนั้นอย่าปรับ LodDist อย่างเดียวหาก Client Streaming ตันจาก Assets จำนวนมาก
㉔ Calculate Extents คืออะไร
หลังจัด Map เสร็จ Official Cfx.re Tutorial ให้เลือก YMAP แล้วใช้
Calculate Extents
ก่อน Save
Extents ช่วยให้ข้อมูลขอบเขตของ Map สัมพันธ์กับ Entities ที่อยู่ภายใน
หากกำลังสร้าง/แก้ YMAP ด้วย CodeWalker จึงไม่ควรข้ามขั้นตอนที่ Official Workflow กำหนดไว้
㉕ Calculate All Flags คืออะไร
ใน Workflow เดียวกัน Cfx.re ให้ใช้
Calculate All Flags
ก่อนบันทึก YMAP
ดังนั้นหลังเพิ่ม/ลบ Entities หรือปรับ Map Structure ควรคำนวณข้อมูลที่เกี่ยวข้องใหม่ตาม Workflow แทนการ Save ทันทีโดยไม่ตรวจ
㉖ _manifest.ymf เกี่ยวข้องกับ YMAP อย่างไร
ใน Official Simple Map Mod Tutorial หลังบันทึก YMAP Cfx.re ให้ใช้ CodeWalker
Tools
→ Manifest Generator
→ Generate
แล้วบันทึก
_manifest.ymf
โดย Documentation ระบุว่าขั้นตอนนี้จำเป็นสำหรับการโหลด Models อย่างถูกต้องใน Workflow ตัวอย่างนั้น
ดังนั้นถ้า Project ต้นฉบับใช้ _manifest.ymf อย่าลบทิ้งโดยไม่เข้าใจหน้าที่
㉗ ทุก YMAP ต้องสร้าง _manifest.ymf ใหม่ไหม
ไม่ควรเหมารวมทุก Resource
คำแนะนำใน Official Assets Manual เป็น Workflow สำหรับ Custom Map/Asset Setup ที่กำลังสร้างใน Tutorial นั้น
ถ้าคุณติดตั้ง Map FiveM ที่ Developer Package มาเรียบร้อยแล้ว ควรใช้ Resource ต้นฉบับก่อน
ไม่ควรสร้าง Manifest ใหม่ทับ Asset ที่ทำงานอยู่แล้วเพียงเพราะเห็น Tutorial
㉘ YMAP ต้องอยู่ใน stream หรือไม่
Custom Map Resources มักเก็บ Streaming Map Assets ไว้ใน Resource และ Cfx.re Tutorial ระบุให้ Save YMAP ลงใน FiveM Map Resource โดยตรง
Resource ของ FiveM สามารถประกอบด้วย Streaming Assets และถูก Start/Stop/Restart แยกกันได้
โครงสร้างจริงควรยึด Resource ที่ผู้สร้างออกแบบมา ไม่ควรย้ายไฟล์แบบสุ่มหากต้นฉบับทำงานอยู่แล้ว
㉙ ตัวอย่างโครงสร้าง YMAP Resource
ตัวอย่างทั่วไป
custom_map/
│
├── fxmanifest.lua
│
└── stream/
├── custom_map.ymap
├── custom_props.ytyp
├── building.ydr
├── building.ytd
└── building.ybn
ไฟล์จริงอาจมากหรือน้อยกว่านี้
FiveM Resource คือ Collection ของ Scripts และ/หรือ Streaming Assets ที่ Server สามารถจัดการเป็น Resource แยกได้
㉚ YMAP ต้องประกาศ data_file หรือไม่
ไม่ควรนำวิธีโหลด Meta Files เช่น HANDLING_FILE มาปรับใช้กับ YMAP แบบเดา
FiveM มีการรองรับ .ymap/.ytyp เป็น Map Assets โดยตรง และ Official Map Tutorial ให้บันทึก YMAP ลง FiveM Map Resource
ดังนั้นใช้โครงสร้างของ Map Resource ตาม Official/Developer Workflow แทนการเพิ่ม data_file ที่ไม่มีความจำเป็น
㉛ this_is_a_map เกี่ยวกับ YMAP ไหม
Resource Manifest ของ FiveM มี
this_is_a_map 'yes'
สำหรับ Mark Resource ว่าเป็น GTA Map และ Reload Map Storage เมื่อ Resource ถูกโหลด
Map Resource จำนวนมากจึงสามารถใช้ Directive นี้ตามโครงสร้างของ Resource
แต่ถ้ากำลังติดตั้ง Map ที่ผู้สร้างทำ Manifest มาแล้ว อย่าแก้ Manifest เพียงเพื่อใส่ Directive เพิ่มโดยไม่ตรวจของเดิม
㉜ YMAP ไม่ขึ้นเลยเช็กอะไร
เริ่มจาก
Resource ถูก Start หรือไม่
fxmanifest.luaอยู่ถูก Folder หรือไม่YMAP อยู่ใน Resource หรือไม่
YTYP ที่ Custom Assets ต้องใช้ครบหรือไม่
Custom Models อยู่ครบหรือไม่
Map อยู่ Coordinates ไหน
Map อื่น Conflict หรือไม่
FiveM Resource Manifest ต้องอยู่ใน Resource Folder และ FiveM รองรับ Streaming Assets ผ่านระบบ Resource
㉝ Object บางตัวใน YMAP ไม่ขึ้น
ถ้า Map มี 100 Objects แต่เสีย 2 ตัว ให้ตรวจสองตัวนั้นโดยเฉพาะ
เช่น
Archetype Name
Custom YDR
Custom YTYP
Entity Entry
Asset ถูก Stream หรือไม่
ไม่จำเป็นต้องสร้าง YMAP ใหม่ทั้งหมด
เพราะ Objects อื่นที่ทำงานแสดงว่า Map Resource ระดับใหญ่มีโอกาสปกติ
㉞ Object Vanilla ขึ้น แต่ Custom Object ไม่ขึ้น
กรณีนี้ชี้ไปยัง Custom Assets ได้ดี
ตัวอย่าง
GTA Bench → ขึ้น
Custom Sign → หาย
ให้ตรวจ
Custom YDR
Custom YTYP
Archetype
ก่อน
เพราะ YMAP เองสามารถทำงานอยู่ แต่ Game ไม่สามารถใช้ Custom Archetype บางตัวได้ตามที่ Map อ้าง
㉟ Object อยู่ผิดตำแหน่งหลัง Merge
ถ้า Original Map ปกติ แต่หลัง Merge YMAP แล้ว Object ย้าย
ให้ตรวจ
Position
Rotation
Entity ที่ Copy
Parent/LOD Relationship
XML Structure หากกำลังแก้ Raw/XML YMAP
FiveM รองรับ Raw/XML-format .ymap ตามรูปแบบที่ Documentation ระบุ
การ Merge ข้อมูลผิดตำแหน่งจึงสามารถสร้าง Map ที่ Parse ได้แต่ Placement ผิดได้
㊱ YMAP ซ้ำกันได้ไหม
ควรระวังการมี Map Content ซ้ำในหลาย Resources
เช่น
pd_map_old
pd_map_new
ทั้งคู่มี Entities ตำแหน่งเดียวกัน
ผลอาจเป็น
Geometry ซ้อน
Z-fighting
Props ซ้ำ
Collision Conflict
FPS ลด
Resource ของ FiveM สามารถ Start/Stop แยกกันได้ จึงควรปิด Resource เก่าระหว่างทดสอบ Map ใหม่
㊲ YMAP สองตัววาง Object จุดเดียวกันเกิดอะไร
ถ้าเป็น Geometry แบบเดียวกันซ้อนเกือบตำแหน่งเดียวกัน อาจเห็น Texture/Surface กระพริบจากการซ้อน
ถ้าเป็น Object คนละตัว อาจเห็น
Props ทะลุกัน
อาคารซ้อน
ทางเดินถูกปิด
ดังนั้น Map Conflict ไม่ได้หมายความว่าไฟล์เสียเสมอไป แต่อาจเป็น Maps สองตัวทำงานตามที่ถูกสร้างมา แต่ถูกเปิดพร้อมกันในพื้นที่เดียวกัน
㊳ วิธีหา YMAP Conflict
ใช้วิธี Isolation
สมมติมี
map_a
map_b
map_c
ทดสอบ
A ON
B OFF
C OFF
ถ้าปกติ ค่อยเปิด B
A ON
B ON
C OFF
ถ้าเริ่มเสีย แสดงว่า A/B เป็นคู่ที่ควรตรวจต่อ
FiveM Resource System รองรับการ Start/Stop Resources แยกกัน จึงเหมาะกับการ Debug แบบนี้
㊴ YMAP ทำให้ FPS ตกได้ไหม
YMAP เป็น Map Data แต่สิ่งที่ถูกวางผ่าน YMAP สามารถเพิ่ม Rendering Load ได้
ตัวอย่าง YMAP วาง
500 Props
+
Custom Buildings
+
High-detail Assets
ภาระหลักจะมาจาก Entities/Models/Textures ที่ Scene ต้องแสดง ไม่ใช่เพียงขนาดไฟล์ .ymap
ดังนั้นถ้า FPS ต่ำ ให้ตรวจ
จำนวน Entities
YDR Geometry
YTD Texture
LOD
Map Conflict
ร่วมกัน
㊵ Props เยอะเกินไปใน YMAP มีผลไหม
มีในแง่ Scene Complexity
การวาง Object เล็กจำนวนมาก เช่น
ขวด
กล่อง
ต้นไม้
ป้าย
เก้าอี้
หลายร้อยหรือหลายพันตัวสามารถเพิ่มจำนวน Entities ที่ต้องจัดการและ Render
จึงควรพิจารณาว่า Decorative Objects ทุกตัวมีประโยชน์ต่อภาพจริงหรือไม่
โดยเฉพาะ Map ที่ผู้เล่นขับผ่านด้วยความเร็วสูง
㊶ LOD ช่วย Map ที่มี Entities เยอะได้อย่างไร
LOD ช่วยให้ Asset ที่อยู่ไกลใช้ Model รายละเอียดต่ำกว่า
Cfx.re แนะนำให้สร้าง HD และ LOD Models แยกกัน โดย LOD มี Geometry/Materials ง่ายกว่า และเชื่อมผ่าน YMAP Hierarchy
ดังนั้น Map ใหญ่ไม่ควรทำทุก Entity ให้ใช้ HD Model ในทุกระยะโดยไม่จำเป็น
㊷ YMAP ใช้ XML แก้ด้วย Text Editor ได้ไหม
FiveM รองรับ XML-format .ymap/.ytyp ในรูปแบบที่ Cfx.re ระบุ โดยไฟล์ต้องตั้งชื่อด้วย Extension ที่เหมาะสม เช่น .ymap ไม่ใช่ .ymap.xml
อย่างไรก็ตามการแก้ Raw Map Data ผ่าน Text Editor ต้องระวังโครงสร้างมาก
สำหรับงาน Placement Visual การใช้ CodeWalker หรือ World Editor มักช่วยให้เห็นผลใน World ได้ชัดกว่า
㊸ CodeWalker ใช้ทำ YMAP อย่างไร
Official Cfx.re Tutorial ใช้ Workflow
CodeWalker
↓
Project Window
↓
New YMAP File
↓
New Entity
↓
เลือก Archetype
↓
Transform
↓
Calculate Extents
↓
Calculate All Flags
↓
Save
นี่เป็น Workflow พื้นฐานที่ดีสำหรับผู้เริ่มต้นศึกษา YMAP
㊹ FxDK World Editor ใช้แทน YMAP Workflow ได้ไหม
FiveM มี World Editor ใน FxDK ซึ่งทำงานกับ Map File Assets และ Compile Map Files ไปเป็น Resource ที่ Optimize สำหรับ Runtime ของ Server
Cfx.re อธิบายว่า World Editor ช่วยให้ผู้สร้างวาง Objects บน Map แบบ Visual แทนการเขียน Script Placement เอง
ดังนั้นผู้สร้าง FiveM Map มี Workflow ได้มากกว่าหนึ่งแบบ ไม่จำเป็นต้องจำกัดอยู่ที่การแก้ YMAP ด้วย Text เพียงอย่างเดียว
㊺ World Editor Map File เหมือน YMAP ทุกอย่างไหม
ไม่ควรถือว่าเหมือนกัน
Cfx.re ระบุว่า FxDK World Editor ทำงานกับ Map File Assets ของตัวเอง และก่อน Server ใช้จะ Compile เป็น Resource ที่ Optimize สำหรับการจัดการ Map Additions แทนการ Compile เป็น Normal Game Map Files โดยตรง
ดังนั้น World Editor Workflow กับ Traditional .ymap Workflow เป็นแนวทางสร้าง Map ที่ต่างกัน
㊻ YMAP ต้องใช้ mapmanager ไหม
ไม่จำเป็นต้องเหมารวม
FiveM มี Resource ชื่อ mapmanager ซึ่ง Cfx.re ระบุว่าจัดการ Map Changes, Game Types และ Compatibility ระหว่าง Gametypes/Maps
แต่ Custom YMAP Resource ที่ใช้เพิ่มอาคาร Props หรือ MLO ไม่ได้หมายความว่าทุกตัวต้องพึ่ง mapmanager ในความหมายเดียวกัน
อย่าสับสน Custom Map Asset กับ Mapmanager Game Mode System
㊼ Rename YMAP ได้ไหม
ชื่อไฟล์สามารถถูกจัดให้เข้าใจง่ายตาม Resource Workflow และ Cfx.re Tutorial แนะนำให้ตั้งชื่อ YMAP ที่มีความหมายเป็น Good Practice
แต่ถ้า Resource ต้นฉบับทำงานอยู่แล้ว ไม่ควร Rename ไฟล์หลายส่วนโดยไม่จำเป็น โดยเฉพาะ Project ที่มี Scripts, Manifest หรือ Asset References อื่นเกี่ยวข้อง
㊽ ควรตั้งชื่อ YMAP อย่างไร
ควรสื่อความหมาย เช่น
police_station.ymap
hospital_exterior.ymap
city_props.ymap
racetrack_hd.ymap
racetrack_lod.ymap
ดีกว่า
map1.ymap
map2.ymap
new.ymap
final2.ymap
Official Cfx.re Tutorial ก็แนะนำให้ตั้งชื่อ YMAP ที่มีความหมายเป็นแนวปฏิบัติที่ดี
㊾ วิธี Debug YMAP แบบเร็วที่สุด
ทำตามลำดับนี้
ขั้นที่ 1
ยืนยัน Resource Start
ขั้นที่ 2
ยืนยัน Coordinates
ขั้นที่ 3
ดูว่า YMAP อยู่ใน Resource
ขั้นที่ 4
ตรวจว่า Object ที่หายใช้ Vanilla หรือ Custom Archetype
ขั้นที่ 5
ถ้า Custom ให้ตรวจ YTYP/YDR
ขั้นที่ 6
ถ้า Object อยู่ผิดที่ ให้ตรวจ Position/Rotation
ขั้นที่ 7
ถ้าไกลแล้วหาย ให้ตรวจ LOD/LodDist
Cfx.re มี Workflow เชื่อม HD/LOD Entities ผ่าน YMAP โดยตรง
ขั้นที่ 8
ถ้า Map ถูกแก้ใน CodeWalker ให้คำนวณ Extents/Flags ตาม Workflow ก่อน Save
ขั้นที่ 9
ตรวจ _manifest.ymf หาก Project Workflow นั้นต้องใช้
ขั้นที่ 10
ปิด Map Resources อื่นในพื้นที่เดียวกัน
ขั้นที่ 11
ทดสอบ YMAP ต้นฉบับ
ขั้นที่ 12
เปรียบเทียบกับ Version ที่ Merge/แก้ไข
㊿ ตารางสรุปปัญหา FiveM YMAP
| อาการ | จุดที่ควรตรวจ |
|---|---|
| YMAP ไม่ขึ้นเลย | Resource / YMAP / Manifest |
| Custom Object ไม่ขึ้น | YTYP / YDR / Archetype |
| Vanilla Object ขึ้นแต่ Custom หาย | Custom Asset/YTYP |
| Object ลอย | Position Z |
| Object อยู่ผิดที่ | Position X/Y |
| Object หันผิด | Rotation |
| Object หายเมื่ออยู่ไกล | LOD / LodDist |
| Object โผล่ช้า | LOD / Streaming |
| Map กระพริบ | Duplicate YMAP/Geometry |
| Props ซ้ำ | Map Conflict |
| หลัง Merge Object ย้าย | YMAP Data/Transform |
| Model ขึ้นแต่ Texture ขาว | YTD |
| Model ขึ้นแต่เดินทะลุ | Collision/YBN |
| FPS ต่ำ | จำนวน Entities / Models / Textures |
| HD/LOD ทำงานผิด | Parent/Child YMAP Hierarchy |
YMAP ที่ดีควรเป็นอย่างไร
YMAP ที่จัดการดีควรมี
Entities เท่าที่จำเป็น
Archetype References ถูก
Position ถูก
Rotation ถูก
Extents/Flags ถูกคำนวณ
LOD ที่เหมาะสมสำหรับ Assets ใหญ่
ไม่มี Object ซ้ำโดยไม่จำเป็น
ไม่มี Conflict กับ Maps อื่น
ชื่อไฟล์อ่านเข้าใจง่าย
Resource Structure เป็นระเบียบ
Official Cfx.re Map Workflow ให้คำนวณ Extents และ Flags ก่อน Save และ Official LOD Workflow ใช้ YMAP Hierarchy เพื่อเชื่อม HD/LOD Entities อย่างเป็นระบบ
YMAP มีผลกับ Map Optimization อย่างไร
YMAP ไม่ได้ทำให้ Model Polygon ลดลงหรือ Texture เล็กลงด้วยตัวเอง
แต่การจัด Entities และ LOD ผ่าน YMAP มีผลอย่างมากต่อสิ่งที่ถูกแสดงในแต่ละระยะ
ตัวอย่างที่ควรหลีกเลี่ยงคือ
อาคารรายละเอียดสูงมาก
+
ไม่มี LOD
+
LodDist สูงมาก
เพราะอาจทำให้ Asset รายละเอียดสูงถูกใช้ในระยะที่ไม่จำเป็น
Cfx.re จึงแนะนำให้ LOD Model ใช้ Geometry และ Materials ที่ง่ายกว่าและเชื่อมผ่าน YMAP Hierarchy
ควร Merge YMAP หลายตัวหรือไม่
ไม่จำเป็นต้อง Merge เพียงเพื่อลดจำนวนไฟล์
หาก Resources แยกกันและทำงานดี การรักษา YMAP แยกตาม
พื้นที่
Map
HD/LOD
ประเภท Asset
อาจ Debug ง่ายกว่า
FiveM Resources สามารถถูก Start, Stop และ Restart แยกกันได้อยู่แล้ว
การ Merge ควรทำเมื่อเข้าใจ Entity References, LOD Hierarchy และ Assets ที่เกี่ยวข้องจริง
สรุป FiveM YMAP คืออะไร
FiveM YMAP คือ Map Data File ที่ใช้กำหนดการจัดวาง Entities ในโลก GTA V/FiveM เช่น Object ใดถูกใช้ อยู่ตำแหน่งไหน หมุนอย่างไร และในงานระดับสูงยังสัมพันธ์กับ LOD Configuration และ Map Hierarchy
Official Cfx.re Assets Manual แสดงขั้นตอนชัดเจนว่า
สร้าง YMAP
↓
เพิ่ม Entity
↓
เลือก Archetype
↓
วางตำแหน่ง
↓
Calculate Extents
↓
Calculate All Flags
↓
Save ลง FiveM Map Resource
และ FiveM รองรับไฟล์ .ymap/.ytyp โดยตรง รวมถึง XML-format ตามรูปแบบที่ Cfx.re กำหนด
จำหน้าที่ไฟล์แบบง่ายได้ว่า
YMAP → วาง Entity ใน World
YTYP → Archetype
YDR → Model
YTD → Texture
YBN → Collision
ถ้า Object ไม่ขึ้น ให้ตรวจ YMAP/YTYP/YDR
ถ้า Object อยู่ผิดตำแหน่ง ให้ตรวจ Position/Rotation ใน YMAP
ถ้า ไกลแล้วหายหรือ Pop-in ให้ตรวจ LOD/LodDist
ถ้า Model ขึ้นแต่ Texture ขาว ให้ตรวจ YTD
และถ้า มองเห็นแต่เดินทะลุ ให้ตรวจ Collision/YBN
แนวทางของ comsiam คืออย่าใช้ YMAP เป็นคำตอบสำหรับทุกปัญหาของ FiveM Map แต่ให้แยกก่อนว่าปัญหาอยู่ที่ Placement, Archetype, Model, Texture, Collision หรือ LOD เพราะเมื่อเข้าใจหน้าที่ของแต่ละ Asset แล้ว การ Debug Custom Map จะเร็วและแม่นยำขึ้นอย่างมาก
Comments
Post a Comment