FiveM Map คืออะไร ต่างจาก MLO อย่างไร และไฟล์แผนที่มีอะไรบ้าง
คำว่า FiveM Map ไม่ได้หมายถึงเพียงแผนที่ GPS ที่มุมจอ แต่โดยทั่วไปหมายถึง Content ที่ใช้เพิ่ม เปลี่ยน หรือจัดวางพื้นที่ในโลก GTA V สำหรับ FiveM Server เช่น อาคารใหม่ ร้านค้า สถานีตำรวจ Garage เกาะ ถนน สนามแข่ง Props หรือ Interior
FiveM ทำงานด้วยระบบ Resources ซึ่ง Resource สามารถมี Scripts และ Streaming Assets ได้ และสำหรับ Map Resource สามารถใช้ไฟล์อย่าง .ymap และ .ytyp รวมถึง Asset อื่นที่เกี่ยวข้องกับ Model, Texture และ Collision ได้ (docs.fivem.net)
FiveM ยังรองรับการ Stream ไฟล์ .ymap และ .ytyp โดยตรง และ Resource Manifest มี Directive this_is_a_map สำหรับระบุว่า Resource นั้นเป็น GTA Map เพื่อให้ระบบ Reload Map Storage เมื่อ Resource ถูกโหลด (docs.fivem.net)
บทความนี้จาก comsiam จะอธิบายว่า FiveM Map คืออะไร แตกต่างจาก MLO อย่างไร ไฟล์ YMAP, YTYP, YDR, YTD และ YBN ทำอะไร รวมถึงปัญหาที่พบบ่อยเมื่อเพิ่ม Custom Map เข้า Server
FiveM Map คืออะไร
FiveM Map คือ Resource หรือชุด Assets ที่เพิ่มหรือเปลี่ยนแปลงองค์ประกอบในโลกของ GTA V ที่ใช้งานผ่าน FiveM
ตัวอย่างสิ่งที่เรียกว่า Map ได้ เช่น
อาคารใหม่
บ้าน
ร้านอาหาร
Garage
Police Station
Hospital
Mechanic Shop
Dealership
Racetrack
Parking
Props
ถนน
เกาะ
Landscape
Interior
MLO
ดังนั้นคำว่า Map ใน FiveM มีความหมายกว้างกว่าคำว่า “แผนที่นำทาง”
① FiveM Map ทำงานอย่างไร
FiveM Server ทำงานจาก Resources
Cfx.re อธิบายว่า Resource คือ Collection ของไฟล์ เช่น
Client Scripts
Server Scripts
Streaming Assets
และ Resource สามารถ Start, Stop หรือ Restart ได้ระหว่างการทำงานของ Server (docs.fivem.net)
Custom Map จึงมักถูกจัดเป็น Resource เช่น
resources/
└── [maps]/
└── custom_police_station/
จากนั้นเปิดด้วย Server Configuration
ensure custom_police_station
② FiveM Map ต่างจาก GTA V Map เดิมอย่างไร
GTA V มี World และ Assets พื้นฐานอยู่แล้ว
Custom Map สามารถเพิ่มหรือปรับองค์ประกอบเพิ่มเติม เช่น
Los Santos เดิม
+
Custom Building
+
Custom Interior
+
Props
+
Collision
ผู้สร้างไม่จำเป็นต้องสร้าง Los Santos ใหม่ทั้งหมด
สามารถเพิ่มเฉพาะพื้นที่ที่ต้องการ
เช่นเพิ่มร้านอาหารหนึ่งแห่งลงในตำแหน่งเดิมของเมือง
③ Custom Map FiveM คืออะไร
Custom Map คือแผนที่หรือพื้นที่ที่ถูกสร้างหรือแก้ไขเพิ่มเติมจาก Content เดิมของ GTA V
ตัวอย่าง
Custom Police Department
Custom Hospital
Custom Mechanic
Custom Prison
Custom Island
Custom Racetrack
บาง Map มีเพียงการนำ Objects เดิมของ GTA V มาจัดวางใหม่
บาง Map ใช้ Custom Models, Textures และ Collision ใหม่ทั้งหมด
ความซับซ้อนจึงแตกต่างกันอย่างมาก
④ FiveM Map ต่างจาก MLO อย่างไร
คำว่า Map เป็นคำกว้างกว่า
Map
สามารถหมายถึงพื้นที่ Outdoor หรือ Indoor และ Asset ต่าง ๆ ในโลก
MLO
โดยทั่วไปใช้เรียก Interior Asset ที่ถูกสร้างเป็นพื้นที่ภายในอาคาร เช่น
บ้าน
Police Station
Hospital
Office
Club
Restaurant
ดังนั้น
MLO ถือเป็น Map Content รูปแบบหนึ่ง
แต่ Map ทุกตัวไม่จำเป็นต้องเป็น MLO
ตัวอย่างสนามแข่ง Outdoor อาจเป็น Custom Map แต่ไม่ใช่ Interior MLO
⑤ FiveM Map มีไฟล์อะไรบ้าง
ขึ้นอยู่กับ Map แต่ไฟล์ที่พบได้บ่อย ได้แก่
.ymap
.ytyp
.ydr
.ytd
.ybn
อาจพบไฟล์หรือข้อมูลประเภทอื่นเพิ่มเติมตาม Asset
หน้าที่โดยสรุปคือ
YMAP = การจัดวาง Entities
YTYP = Archetype/Asset Definition
YDR = Drawable Model
YTD = Texture Dictionary
YBN = Collision
แต่ Map ไม่จำเป็นต้องมีทุกประเภทเสมอไป
⑥ YMAP คืออะไร
YMAP เป็นไฟล์สำคัญมากสำหรับ Custom Map
ใน Asset Workflow ของ Cfx.re มีการสร้าง YMAP ผ่าน CodeWalker แล้วเพิ่ม Entity ลงใน YMAP โดยกำหนด Archetype และตำแหน่งของ Asset ใน World (docs.fivem.net)
จึงเข้าใจง่าย ๆ ได้ว่า YMAP ทำหน้าที่เกี่ยวข้องกับ
วัตถุอะไรอยู่ตรงไหนในโลก
ตัวอย่าง
Building A → Position X,Y,Z
Prop B → Position X,Y,Z
Lamp C → Position X,Y,Z
หัวข้อ YMAP จะมีบทความเจาะลึกแยกในลำดับถัดไป
⑦ YMAP สามารถวางอะไรได้บ้าง
ใน CodeWalker Workflow สามารถสร้าง YMAP และเพิ่ม Entities เข้าไป จากนั้นกำหนด Archetype และ Transform ของ Entity ได้ (docs.fivem.net)
จึงสามารถใช้กับ Asset เช่น
อาคาร
Props
Walls
Trees
Objects
Custom Models
ตาม Map ที่สร้าง
ตัวอย่างเช่น Restaurant Map อาจมี Entities หลายสิบหรือหลายร้อยชิ้นประกอบกัน
⑧ FiveM รองรับ YMAP โดยตรงหรือไม่
รองรับ
Cfx.re ระบุว่า FiveM และ RedM รองรับ Raw .ymap และ .ytyp Files โดยตรง รวมถึง XML-format ของไฟล์เหล่านี้ใน Workflow ที่รองรับ (docs.fivem.net)
ดังนั้น Custom Map Resources จำนวนมากจึงสามารถ Stream YMAP ผ่าน FiveM Resource ได้
⑨ YTYP คืออะไร
YTYP เกี่ยวข้องกับการกำหนด Archetypes ของ Custom Assets
ใน Cfx.re Assets Manual ขั้นตอนสร้าง GTAV Assets ด้วย Blender/Sollumz มีการสร้าง .ytyp สำหรับ Asset ก่อนนำกลับเข้า CodeWalker (docs.fivem.net)
เข้าใจแบบง่ายได้ว่า
YDR = Model
YTYP = ข้อมูลที่ช่วยให้ Game รู้จัก Archetype ของ Model
YMAP = นำ Archetype ไปวางในโลก
นี่เป็นภาพรวมเพื่อช่วยจำ ไม่ใช่รายละเอียดทั้งหมดของ File Format
⑩ ถ้าไม่มี YTYP Map จะใช้ได้ไหม
ขึ้นอยู่กับ Asset
ถ้า Map ใช้เฉพาะ Archetypes ที่ GTA V มีอยู่แล้ว อาจไม่ต้องมี Custom YTYP สำหรับทุก Object
แต่ถ้ามี Custom Model/Archetype ใหม่ อาจต้องมี YTYP ที่สัมพันธ์กับ Asset นั้น
ดังนั้นไม่ควรลบ .ytyp จาก Resource เพียงเพราะ Map ยังมี .ymap
ถ้า Asset ต้นฉบับมี YTYP ให้รักษาไฟล์ไว้จนกว่าจะรู้ชัดว่าไม่ถูกใช้งาน
⑪ YDR คืออะไร
YDR เป็น Drawable Asset ประเภทหนึ่งที่ใช้กับ Model
Cfx.re Assets Manual อธิบาย Workflow ของการสร้าง Drawable Assets ผ่าน Blender/Sollumz และนำ Assets กลับเข้า CodeWalker (docs.fivem.net)
ใน Custom Map จึงสามารถพบไฟล์ เช่น
custom_wall.ydr
custom_table.ydr
custom_building.ydr
ซึ่งเป็น Model ที่ Map ใช้
⑫ YTD คืออะไร
YTD คือ Texture Dictionary
ใช้เก็บ Texture ที่ Asset อ้างถึง เช่น
Wall Texture
Floor
Logo
Sign
Furniture
Building Surface
ตัวอย่าง
custom_building.ydr
custom_building.ytd
ถ้า Model โหลด แต่ YTD ที่ต้องใช้หาย อาจเกิดอาการ Texture
ขาว
ดำ
หาย
ไม่ครบ
ผิดรูป
คล้ายกับปัญหา Texture ของรถ Custom
⑬ YBN คืออะไร
YBN เกี่ยวข้องกับ Collision Asset
Cfx.re Assets Manual มี Workflow สำหรับสร้าง Collision โดยใช้ Bound Geometry และ Primitive Shapes รวมถึงการสร้าง Collision Mesh สำหรับ Asset (docs.fivem.net)
ถ้า Visual Model ขึ้นแต่ Collision ผิด ผู้เล่นอาจ
เดินทะลุกำแพง
ตกพื้น
ชน Invisible Wall
เดินบนพื้นที่ที่มองไม่เห็น
รถทะลุ Object
ดังนั้น Visual Map ปกติไม่ได้หมายความว่า Collision ปกติ
⑭ Map เดินทะลุเกิดจาก YBN อย่างเดียวไหม
ไม่ควรสรุปว่าเป็น YBN ทุกกรณี แต่ Collision เป็นหนึ่งในสิ่งแรกที่ต้องตรวจ
อาจเป็น
Collision File หาย
Collision ไม่ถูก Stream
Collision Mesh ผิด
Material/Flags ผิด
Custom Asset สร้าง Collision ไม่ครบ
Cfx.re แยกขั้นตอน Collision Creation ออกจาก Drawable Asset Creation โดยชัดเจนใน Assets Manual (docs.fivem.net)
⑮ Map เห็นอาคารแต่เดินทะลุหมายความว่าอะไร
อาการนี้ช่วยวิเคราะห์ได้ดี
ถ้า
เห็น Model
แต่
ไม่มี Collision
แสดงว่า Visual Asset อย่าง YDR/YTD มีโอกาสโหลดได้แล้ว
ควรเน้นตรวจ Collision เพิ่ม
ไม่จำเป็นต้องเริ่มแก้ Texture หรือ YMAP Placement ก่อน
⑯ Map มี Collision แต่ Model ไม่ขึ้นได้ไหม
ได้ในบางกรณี
ผู้เล่นอาจเจอ
Invisible Wall
คือชนกับบางสิ่งแต่ไม่เห็น Model
ให้ตรวจ
YDR
YTD
YTYP
YMAP
Streaming
Asset Reference
หาก Collision อยู่แต่ Drawable ไม่แสดง จะเกิดประสบการณ์แบบชนกำแพงล่องหนได้
⑰ LOD คืออะไรสำหรับ FiveM Map
LOD ย่อมาจาก Level of Detail
ใช้ลดรายละเอียดของ Asset ตามระยะการมอง
Cfx.re มี Workflow ที่สร้าง HD Entity และ LOD Entity แยกกันใน YMAP โดยกำหนด LodLevel, LodDist และความสัมพันธ์ระหว่าง Parent/Child เพื่อให้ Asset รายละเอียดต่ำกว่าทำงานในระยะที่เหมาะสม (docs.fivem.net)
แนวคิดคือ
ใกล้ → Model รายละเอียดสูง
ไกล → Model รายละเอียดต่ำ
ช่วยไม่ให้ Render Geometry รายละเอียดสูงสุดโดยไม่จำเป็น
⑱ Map ไม่มี LOD มีผลอะไร
Map ที่มี Objects จำนวนมากและไม่มี LOD ที่เหมาะสมอาจใช้ Rendering Resources มากเกินจำเป็น
โดยเฉพาะพื้นที่ เช่น
เมืองใหม่
Island
Racetrack
Airport
Complex ใหญ่
Cfx.re แนะนำให้ LOD Models ใช้ Geometry และ Materials ที่ง่ายกว่า HD Asset และกำหนดระยะ Streaming ตามความเหมาะสม (docs.fivem.net)
ดังนั้น LOD เป็นหัวใจสำคัญของ Map Optimization
⑲ Map กับ MLO อะไรหนักกว่า
ไม่มีคำตอบตายตัว
MLO เล็กที่ Optimize ดีอาจเบากว่า Outdoor Map ใหญ่
แต่ MLO ที่มี
Rooms จำนวนมาก
Furniture จำนวนมาก
High Resolution Textures
Custom Props
Collision ซับซ้อน
ก็อาจหนักได้
ต้องดู Asset จริง ไม่ควรตัดสินจากคำว่า “MLO” หรือ “Map”
⑳ FiveM Map Resource คืออะไร
Map มักถูก Package เป็น Resource
ตัวอย่าง
my_map/
│
├── fxmanifest.lua
└── stream/
├── map.ymap
├── props.ytyp
├── building.ydr
├── building.ytd
└── collision.ybn
โครงสร้างจริงขึ้นอยู่กับผู้สร้าง
FiveM Resources สามารถมี Streaming Assets และถูก Start/Stop/Restart ได้ผ่านระบบ Resource ของ Server (docs.fivem.net)
㉑ this_is_a_map คืออะไร
Resource Manifest มี Directive
this_is_a_map 'yes'
Cfx.re ระบุว่า this_is_a_map ใช้ Mark Resource ว่าเป็น GTA Map และจะ Reload Map Storage เมื่อ Resource ถูกโหลด (docs.fivem.net)
ตัวอย่าง Manifest แบบง่าย
fx_version 'cerulean'
game 'gta5'
this_is_a_map 'yes'
แต่ Resource จริงอาจต้องมีข้อมูลอื่นเพิ่มเติมตาม Asset
㉒ ทุก Map ต้องเขียน fxmanifest เหมือนกันไหม
ไม่
Map บางตัวอาจเป็นเพียง Streaming Map
บางตัวมี
Scripts
IPL Management
Door Logic
Teleport
NUI
Dependencies
ดังนั้นอย่า Copy fxmanifest.lua ของ Map อื่นมาใช้ทั้งหมดโดยไม่ตรวจไฟล์จริง
ใช้ Manifest ที่มากับ Asset เป็น Base จะปลอดภัยกว่า
㉓ วิธีเพิ่ม Map เข้า FiveM Server แบบพื้นฐาน
โดยทั่วไป Workflow คือ
ขั้นที่ 1
ตรวจ Resource ที่ดาวน์โหลดมา
ขั้นที่ 2
Backup Server
ขั้นที่ 3
นำ Folder เข้า
resources/[maps]/
ตัวอย่าง
resources/[maps]/custom_hospital/
ขั้นที่ 4
เพิ่ม
ensure custom_hospital
ใน server.cfg
ขั้นที่ 5
ใช้ refresh หากเพิ่งเพิ่ม Resource ขณะ Server ทำงาน
Cfx.re ระบุว่า refresh จะ Rescan Resources Folder และโหลด Resource Manifests ใหม่เพื่อให้ Resource ใหม่สามารถ Start ได้ (docs.fivem.net)
ขั้นที่ 6
Start/Ensure Resource
ขั้นที่ 7
เข้าเกมทดสอบ Map
㉔ Map ลงแล้วไม่ขึ้นควรตรวจอะไร
เริ่มจาก
Resource Start หรือไม่
Folder Name ถูกหรือไม่
fxmanifest.luaอยู่หรือไม่YMAP อยู่หรือไม่
YTYP อยู่ครบหรือไม่
Asset Dependencies ครบหรือไม่
Path ถูกหรือไม่
F8 มี Error หรือไม่
Server Console มี Error หรือไม่
อย่าเริ่มด้วยการล้าง Cache ก่อนโดยยังไม่ได้ดู Resource
㉕ Map ขึ้นบางส่วนเกิดจากอะไร
ตัวอย่าง
อาคารขึ้นแต่ Props หาย
Model ขึ้นแต่ Texture หาย
Interior ขึ้นแต่ประตูหาย
พื้นขึ้นแต่ Collision หาย
ปัญหาเหล่านี้อาจแสดงว่า Resource โหลดเพียงบาง Asset
ให้แยกตามประเภท
Object Placement → YMAP
Archetype → YTYP
Model → YDR
Texture → YTD
Collision → YBN
แล้วตรวจ Asset ที่ตรงกับอาการก่อน
㉖ Map Texture ขาวควรตรวจอะไร
ให้ตรวจ
YTD
Material
Texture Reference
Resource Streaming
ถ้า Model Building แสดงรูปทรงครบแต่เป็นสีขาวหรือไม่มีพื้นผิว ปัญหามีแนวโน้มอยู่ด้าน Texture มากกว่า Placement
อย่าแก้ YMAP Coordinates เพราะตำแหน่ง Model ทำงานอยู่แล้ว
㉗ Map อยู่ผิดตำแหน่งเกิดจากอะไร
ถ้า Asset ขึ้นแต่ไปอยู่
ลอยบนฟ้า
จมใต้ดิน
เยื้องจากถนน
หมุนผิด
ให้ตรวจ Transform/Coordinates ของ Entities ใน Map
Cfx.re Workflow สำหรับ YMAP ผ่าน CodeWalker ให้ผู้สร้างสามารถ Transform Entity ใน World และกำหนด Archetype ได้โดยตรง (docs.fivem.net)
ดังนั้นปัญหาตำแหน่งควรเน้น YMAP/Placement มากกว่า Texture
㉘ Map ซ้อนกับ GTA V เดิมเกิดจากอะไร
Custom Building อาจถูกวางทับพื้นที่ที่มี Vanilla Object อยู่แล้ว
ถ้าไม่ได้ Remove, Hide หรือจัดการ Original World Asset ตามวิธีที่ Map ถูกออกแบบไว้ อาจเห็น
กำแพงซ้อน
อาคารสองหลังทับกัน
ประตูสองชั้น
Props ทะลุกัน
ควรอ่าน Installation Instructions ของ Map โดยเฉพาะ Asset ที่ต้องใช้ IPL หรือ Resource เพิ่ม
㉙ IPL คืออะไรใน Map
IPL เป็นอีกแนวคิดหนึ่งที่เกี่ยวข้องกับการโหลดพื้นที่/World Content ของ GTA V
Custom Map หรือ Interior บางชนิดอาจต้องเปิดหรือปิด IPL ตามการออกแบบ
FiveM มี Native และ Resource Ecosystem ที่สามารถควบคุม World Content เหล่านี้ได้ แต่ Map ไม่ได้จำเป็นต้องใช้ IPL ทุกตัว
ดังนั้นอย่าเพิ่ม IPL Script แบบสุ่มหากผู้สร้าง Map ไม่ได้กำหนด
หัวข้อ FiveM IPL คืออะไร จะมีบทความแยกในลำดับถัดไปของหมวดนี้
㉚ Mapmanager คืออะไร
FiveM มี Resource ที่ชื่อ mapmanager
Cfx.re ระบุว่า mapmanager เป็น CitizenFX Resource ที่จัดการ Map Changes, Game Types และ Compatibility ระหว่าง Gametypes กับ Maps (docs.fivem.net)
อย่างไรก็ตาม Custom YMAP/MLO ที่ Server Owners ใช้ทั่วไปไม่ควรถูกเหมารวมว่าต้องสร้างผ่าน mapmanager ทั้งหมด
คำว่า “Map Resource” ใน Community จึงอาจถูกใช้กว้างกว่าระบบ Map/Game Type ของ mapmanager
㉛ Map กับ Spawn Point เกี่ยวกันไหม
FiveM มี spawnmanager สำหรับจัดการการ Spawn และ Respawn Player
เอกสาร Cfx.re ระบุว่า Map Resources สำหรับ mapmanager สามารถมี Spawnpoints ที่ถูกโหลดและใช้กับ spawnmanager ได้เมื่อ Resource ถูก Start ตามลำดับที่กำหนด (docs.fivem.net)
แต่ Custom MLO/Building ทั่วไปไม่จำเป็นต้องเป็นระบบ Spawn Map ประเภทนี้
ต้องแยกสองความหมายออกจากกัน
㉜ CodeWalker คืออะไรสำหรับ FiveM Map
CodeWalker เป็นเครื่องมือที่ใช้กันใน Asset Workflow ที่ Cfx.re Documentation ใช้ใน Tutorial การสร้าง Map
ตัวอย่างขั้นตอนใน Official Assets Manual คือ
เปิด CodeWalker
↓
Project Window
↓
New YMAP File
↓
New Entity
↓
เลือก Archetype
↓
Transform Object
จึงเป็นเครื่องมือสำคัญสำหรับการทำและตรวจ Custom GTA V Map Assets
㉝ Blender ใช้ทำ FiveM Map ได้หรือไม่
ได้สำหรับ Asset Creation Workflow
Cfx.re Assets Manual ใช้ Blender ร่วมกับ Sollumz ในการสร้าง GTAV Assets เช่น
Models
Materials
UV
YTYP
ก่อนนำกลับเข้า CodeWalker (docs.fivem.net)
ดังนั้น Workflow อาจเป็น
Blender/Sollumz
↓
สร้าง Asset
↓
YTYP
↓
CodeWalker
↓
YMAP Placement
↓
FiveM Resource
㉞ World Editor ใช้ทำ Map ได้ไหม
Cfx.re มี World Editor ใน FxDK ซึ่งทำงานกับ Map File Assets
เอกสารระบุว่า Map Files ของ World Editor จะถูก Compile เป็น Resource ที่ Optimize สำหรับจัดการ Map Additions ก่อนนำไปใช้บน Server (docs.fivem.net)
ดังนั้นนอกจาก CodeWalker Workflow แล้ว FiveM Ecosystem ยังมี World Editor สำหรับการสร้าง Map Content ด้วย
㉟ FiveM Map ทำให้ FPS ตกได้ไหม
ได้ หาก Map มี Asset หนักเกินไปหรือ Optimization ไม่เหมาะสม
สิ่งที่ควรตรวจ เช่น
Geometry
Texture Resolution
LOD
จำนวน Props
Collision
Custom Models
Objects ที่แสดงพร้อมกัน
Scripts ที่มากับ Map
Cfx.re Assets Manual ให้ความสำคัญกับ LOD โดยใช้ Geometry/Materials ที่ง่ายลงสำหรับระยะที่ไกลออกไป ซึ่งช่วยลดรายละเอียดที่ต้องแสดงโดยไม่จำเป็น (docs.fivem.net)
㊱ Map ใหญ่ทำให้ Server Lag เสมอไหม
ไม่เสมอ
ต้องแยก
Client Rendering/Streaming
จาก
Server Script Performance
Map ที่มี Model และ Texture จำนวนมากอาจทำให้ Client FPS/Memory มีปัญหา
แต่ Script ที่มากับ Map เช่น Door System หรือ Runtime Logic อาจเป็นอีกปัญหาหนึ่ง
ดังนั้นอย่าใช้คำว่า Server Lag รวมทุกอาการ
㊲ Map โหลดช้าเกิดจากอะไร
สาเหตุอาจรวมถึง
Asset จำนวนมาก
Texture ใหญ่
Collision จำนวนมาก
LOD ไม่เหมาะสม
Client Storage
Memory
Resource Size
Network Download ตอนเข้า Server
Cache State
FiveM มีคำสั่ง save_gta_cache สำหรับ Resource ที่มี Collision หรือ Map Files จำนวนมาก โดยเอกสารระบุว่าใช้ช่วยลดเวลา Initial Loading สำหรับผู้เล่นใน Resource ประเภทนี้ได้ (docs.fivem.net)
อย่างไรก็ตามควร Optimize Map ต้นทางด้วย ไม่ใช่พึ่ง Cache อย่างเดียว
㊳ save_gta_cache คืออะไร
FiveM Client Console มีคำสั่ง
save_gta_cache
Cfx.re ระบุว่าใช้กับ Resources ที่มี Collision หรือ Map Files จำนวนมาก เพื่อสร้าง Cache Data ที่สามารถนำไปวางใน Resource เพื่อช่วยให้ Initial Loading เร็วขึ้น (docs.fivem.net)
นี่เป็น Feature ขั้นสูงสำหรับ Server/Map Developers
ไม่จำเป็นสำหรับ Custom Map ขนาดเล็กทุกตัว
㊴ Map หลายตัวติดตั้งพร้อมกันได้ไหม
ได้ แต่ต้องตรวจ Conflict
ปัญหาพบบ่อยคือ Map สองตัวแก้พื้นที่เดียวกัน
ตัวอย่าง
Police Station Map A
Police Station Map B
ถูก ensure พร้อมกัน
อาจเกิด
Building ซ้อน
Collision ซ้อน
Props ซ้อน
Invisible Wall
FPS ลด
Interior ผิด
ดังนั้นควรใช้ Map เพียงชุดเดียวต่อพื้นที่หาก Assets ไม่ได้ถูกออกแบบให้ทำงานร่วมกัน
㊵ วิธีหา Map Conflict
เริ่มจาก Disable Map ที่สงสัยทีละ Resource
ตัวอย่าง
custom_pd_a
custom_pd_b
ปิด B แล้วทดสอบ A
จากนั้นปิด A แล้วทดสอบ B
ถ้าทั้งสองปกติเมื่อแยก แต่ผิดเมื่อเปิดพร้อมกัน แสดงว่ามี Conflict ในพื้นที่หรือ Asset ที่ต้องตรวจเพิ่ม
วิธีนี้ดีกว่าแก้ YMAP ทั้งสองพร้อมกัน
㊶ MLO ซ้อนกันได้ไหม
ถ้า MLO สองตัวแก้ Building หรือ Interior พื้นที่เดียวกัน มีโอกาสเกิด Conflict สูง
อาการ เช่น
ประตูซ้อน
ห้องซ้อน
Collision ผิด
Texture กระพริบ
เดินทะลุ
Interior มืดหรือผิด
ดังนั้นก่อนซื้อหรือติดตั้ง MLO ใหม่ ควรตรวจว่า Server มี Map ในตำแหน่งเดียวกันอยู่แล้วหรือไม่
㊷ Map Resource ควรแยกเป็น Folder อย่างไร
ตัวอย่าง
resources/
└── [maps]/
├── police_station/
├── hospital/
├── mechanic/
├── dealership/
└── racetrack/
ดีกว่านำ Map ทุกตัว Merge เข้า Resource เดียวตั้งแต่แรกโดยไม่มีเหตุผล
ข้อดีคือ
Update ง่าย
Stop Test ง่าย
หา Conflict ง่าย
Backup ง่าย
รู้ว่า Asset เป็นของ Map ไหน
FiveM Resources ถูกออกแบบให้ Start, Stop และ Restart แยกกันได้ จึงเหมาะกับโครงสร้างลักษณะนี้ (docs.fivem.net)
㊸ ควรรวม Map หลายตัวเป็น Resource เดียวไหม
ทำได้ แต่ไม่จำเป็นเสมอไป
รวม
ข้อดี
Resource น้อย
Config สั้น
ข้อเสีย
Debug ยาก
Update Map หนึ่งตัวอาจกระทบ Resource ทั้งชุด
Asset Conflict หายากขึ้น
แยก
ข้อดี
Stop Map เป็นรายตัวได้
Update ง่าย
หา Map เสียเร็ว
สำหรับ Server ที่ยังเพิ่ม/เปลี่ยน Maps บ่อย การแยก Resource มักจัดการง่ายกว่า
㊹ Map ดาวน์โหลดมาใช้ได้ทันทีไหม
ไม่เสมอไป
ก่อนติดตั้งควรตรวจ
FiveM Ready หรือไม่
Dependencies
Required Game Build
IPL
Door Script
Framework Dependency
Asset Escrow
License
Installation Instructions
Map ที่ออกแบบสำหรับ Single Player อาจต้องจัด Resource Structure ก่อนใช้กับ FiveM
ไม่ควรนำไฟล์ไปวางสุ่มใน stream แล้วคิดว่าจะทำงานครบทุกตัว
㊺ Map ฟรีกับ Map เสียเงินต่างกันไหม
ราคาไม่ได้รับประกัน Optimization หรือคุณภาพเสมอไป
ทั้ง Map ฟรีและเสียเงินควรตรวจ
Asset Quality
Texture
Collision
LOD
Updates
Dependencies
Support
License
ก่อนนำเข้า Production
สำหรับ Map ที่ใช้ Asset Escrow ควรใช้ระบบและ License ตามเงื่อนไขของ Cfx.re และผู้สร้าง Asset
㊻ FiveM Map ใช้ Asset Escrow ได้ไหม
Cfx.re มี Asset Escrow สำหรับ Creator Assets และ Server Owner สามารถดาวน์โหลด Asset ที่ได้รับสิทธิ์ไปใช้บน Server ที่ตนเป็นเจ้าของตามระบบของ Cfx.re (docs.fivem.net)
ดังนั้น Map Commercial บางตัวอาจถูก Protect ผ่าน Asset Escrow
ไม่ควรพยายามแกะหรือหลีกเลี่ยงระบบ Protection ของ Asset
㊼ Map ควร Backup ก่อน Update ไหม
ควร
ตัวอย่าง
police_station_v1
police_station_v2
ก่อน Replace Production ควรเก็บ
Resource เดิม
Config เดิม
Door Config
Script Config
Customized Files
หาก Version ใหม่มี Collision หรือ Placement ผิด สามารถ Roll Back ได้ทันที
㊽ Map Update แล้วของเดิมซ้อนกันเกิดจากอะไร
อาจเกิดจากเปิดทั้ง Resource Version เก่าและใหม่
เช่น
ensure hospital_old
ensure hospital_new
ถ้าทั้งสองแก้พื้นที่เดียวกัน Map จะซ้อน
ดังนั้นหลัง Update ควรตรวจ server.cfg และ Resource Folders ว่าไม่มี Version เก่าถูก Start อยู่
㊾ วิธี Debug FiveM Map แบบเร็วที่สุด
ใช้ลำดับนี้
ขั้นที่ 1
ยืนยันว่า Resource Start แล้ว
ขั้นที่ 2
ดู Server Console
ขั้นที่ 3
เปิด F8 ดู Client Error
ขั้นที่ 4
ตรวจ fxmanifest.lua
ขั้นที่ 5
ตรวจ this_is_a_map ตามโครงสร้าง Resource หาก Map ต้องใช้ Directive นี้ (docs.fivem.net)
ขั้นที่ 6
ตรวจ YMAP
ขั้นที่ 7
ตรวจ YTYP
ขั้นที่ 8
ตรวจ YDR/YTD
ขั้นที่ 9
ตรวจ YBN หาก Collision ผิด
ขั้นที่ 10
ตรวจ LOD หาก Map โหลด/แสดงผลตามระยะผิด
ขั้นที่ 11
ปิด Map Resource อื่นในพื้นที่เดียวกัน
ขั้นที่ 12
ทดสอบ Map เดี่ยว
ตารางสรุปปัญหา FiveM Map
| อาการ | จุดที่ควรตรวจ |
|---|---|
| Map ไม่ขึ้นเลย | Resource / Manifest / YMAP |
| Object บางส่วนหาย | YMAP / YTYP / Asset |
| อาคารขึ้นแต่ Texture ขาว | YTD / Material |
| เดินทะลุกำแพง | Collision / YBN |
| ชนกำแพงที่มองไม่เห็น | Model/Collision ไม่สัมพันธ์ |
| Map อยู่ผิดตำแหน่ง | YMAP / Coordinates |
| Map ซ้อนกัน | Resource Conflict |
| MLO สองตัวทับกัน | Map Conflict |
| ไกลแล้ว Asset หายผิด | LOD |
| Map FPS ตก | Geometry / Texture / LOD |
| โหลดช้า | Asset / Collision / Cache |
| Update แล้ว Map ซ้อน | Resource เก่ายังทำงาน |
| Map เดี่ยวปกติ เปิดหลาย Map แล้วเสีย | Conflict / Resource Load |
㊿ FiveM Map ที่ดีควรมีอะไร
Map ที่ดีไม่ใช่เพียงสวย
ควรมี
Placement ถูกต้อง
Texture เหมาะสม
Collision ถูกต้อง
LOD เหมาะสม
ไม่มี Object เกินจำเป็น
Resource เป็นระเบียบ
ไม่มี Conflict
Performance เหมาะกับพื้นที่
Dependencies ชัดเจน
Update ได้ง่าย
Cfx.re Assets Manual แสดงให้เห็นว่า Map Asset Workflow ครอบคลุมทั้ง Asset Creation, YTYP, Placement, Collision และ LOD จึงเห็นได้ว่า Map ที่ทำงานดีต้องดูมากกว่ารูปทรงของอาคารอย่างเดียว (docs.fivem.net)
FiveM Map กับ Server Performance
ถ้า Map ทำให้ FPS ตก อย่าเริ่มด้วย Upgrade Dedicated Server ทันที
ให้ดูว่าเป็น
Client Rendering
Client Streaming
Texture
Geometry
LOD
Collision
Script
ด้านใด
ถ้าผู้เล่น FPS ตกเฉพาะเมื่อมองพื้นที่ Map แต่ Server Tick ปกติ ปัญหามีแนวโน้มเกี่ยวกับ Asset/Rendering ฝั่ง Client มากกว่า CPU Server
แต่ถ้า Resource ที่มากับ Map มี Script หนัก ก็ต้องตรวจ Runtime แยกอีกส่วน
ควรติดตั้ง Map กี่ตัวใน FiveM Server
ไม่มีจำนวนตายตัว
Server ที่มี Map 100 ตัวไม่ได้แปลว่าจะหนักกว่า Server ที่มี 20 ตัวเสมอไป
ต้องดู
Map Size
Geometry
Texture
Collision
LOD
Scripts
จำนวน Asset ที่อยู่ใกล้ผู้เล่นพร้อมกัน
สิ่งสำคัญคือทดสอบ Performance หลังเพิ่ม Map ทุกชุด ไม่ใช่รอจนติดตั้งหลายสิบตัวแล้วค่อยหา Map ที่ทำให้ FPS ตก
สรุป FiveM Map คืออะไร
FiveM Map คือ Custom World Content ที่เพิ่มหรือเปลี่ยนพื้นที่ภายใน GTA V สำหรับ FiveM Server ตั้งแต่ Object เล็ก ๆ ไปจนถึงอาคาร Interior MLO สนามแข่ง และเกาะใหม่
ไฟล์สำคัญที่ควรรู้จัก ได้แก่
YMAP → Placement ของ Entities
YTYP → Archetype Definition
YDR → Drawable Model
YTD → Texture
YBN → Collision
FiveM รองรับ .ymap และ .ytyp โดยตรง และ Resource Manifest มี this_is_a_map สำหรับระบุ GTA Map Resource (docs.fivem.net)
ถ้า Map มีปัญหา ให้แยกตามอาการ
ไม่ขึ้น → Resource/YMAP/YTYP
Texture หาย → YTD
เดินทะลุ → Collision/YBN
FPS ตก → Geometry/Texture/LOD
Map ซ้อน → Resource Conflict
แนวทางของ comsiam คือแยก Map เป็น Resources ที่จัดการง่าย เพิ่มทีละชุดและทดสอบทุกครั้ง โดยเฉพาะ Collision, LOD และพื้นที่ที่มี Map อื่นอยู่แล้ว เพราะ Server ที่มี Custom Maps จำนวนมากจะดูแลง่ายกว่ามากเมื่อรู้ว่าแต่ละ Resource รับผิดชอบพื้นที่และ Assets อะไร
Comments
Post a Comment