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 ไม่ขึ้นเลยเช็กอะไร

เริ่มจาก

  1. Resource ถูก Start หรือไม่

  2. fxmanifest.lua อยู่ถูก Folder หรือไม่

  3. YMAP อยู่ใน Resource หรือไม่

  4. YTYP ที่ Custom Assets ต้องใช้ครบหรือไม่

  5. Custom Models อยู่ครบหรือไม่

  6. Map อยู่ Coordinates ไหน

  7. 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

Popular posts from this blog

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

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

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